소스 검색

fix: docs dev and build

userquin 2 년 전
부모
커밋
7106cf93ed

+ 2 - 2
.gitignore

@@ -23,5 +23,5 @@ coverage
 *.njsproj
 *.sln
 *.sw?
-.vitepress/dist
-.vitepress/cache/
+docs/.vitepress/dist
+docs/.vitepress/cache/deps/*.*

+ 0 - 523
docs/.vitepress/cache/deps/@stackblitz_sdk.js

@@ -1,523 +0,0 @@
-import "./chunk-JC4IRQUL.js";
-
-// node_modules/.pnpm/@stackblitz+sdk@1.9.0/node_modules/@stackblitz/sdk/bundles/sdk.m.js
-var CONNECT_INTERVAL = 500;
-var CONNECT_MAX_ATTEMPTS = 20;
-var DEFAULT_FRAME_HEIGHT = 300;
-var DEFAULT_ORIGIN = "https://stackblitz.com";
-var PROJECT_TEMPLATES = [
-  "angular-cli",
-  "create-react-app",
-  "html",
-  "javascript",
-  "node",
-  "polymer",
-  "typescript",
-  "vue"
-];
-var UI_SIDEBAR_VIEWS = ["project", "search", "ports", "settings"];
-var UI_THEMES = ["light", "dark"];
-var UI_VIEWS = ["editor", "preview"];
-var generators = {
-  clickToLoad: (value) => trueParam("ctl", value),
-  devToolsHeight: (value) => percentParam("devtoolsheight", value),
-  forceEmbedLayout: (value) => trueParam("embed", value),
-  hideDevTools: (value) => trueParam("hidedevtools", value),
-  hideExplorer: (value) => trueParam("hideExplorer", value),
-  hideNavigation: (value) => trueParam("hideNavigation", value),
-  openFile: (value) => stringParams("file", value),
-  showSidebar: (value) => booleanParam("showSidebar", value),
-  sidebarView: (value) => enumParam("sidebarView", value, UI_SIDEBAR_VIEWS),
-  startScript: (value) => stringParams("startScript", value),
-  terminalHeight: (value) => percentParam("terminalHeight", value),
-  theme: (value) => enumParam("theme", value, UI_THEMES),
-  view: (value) => enumParam("view", value, UI_VIEWS),
-  zenMode: (value) => trueParam("zenMode", value)
-};
-function buildParams(options = {}) {
-  const params = Object.entries(options).map(([key, value]) => {
-    if (value != null && generators.hasOwnProperty(key)) {
-      return generators[key](value);
-    }
-    return "";
-  }).filter(Boolean);
-  return params.length ? `?${params.join("&")}` : "";
-}
-function trueParam(name, value) {
-  if (value === true) {
-    return `${name}=1`;
-  }
-  return "";
-}
-function booleanParam(name, value) {
-  if (typeof value === "boolean") {
-    return `${name}=${value ? "1" : "0"}`;
-  }
-  return "";
-}
-function percentParam(name, value) {
-  if (typeof value === "number" && !Number.isNaN(value)) {
-    const clamped = Math.min(100, Math.max(0, value));
-    return `${name}=${encodeURIComponent(Math.round(clamped))}`;
-  }
-  return "";
-}
-function enumParam(name, value = "", allowList = []) {
-  if (allowList.includes(value)) {
-    return `${name}=${encodeURIComponent(value)}`;
-  }
-  return "";
-}
-function stringParams(name, value) {
-  const values = Array.isArray(value) ? value : [value];
-  return values.filter((val) => typeof val === "string" && val.trim() !== "").map((val) => `${name}=${encodeURIComponent(val)}`).join("&");
-}
-function genID() {
-  return Math.random().toString(36).slice(2, 6) + Math.random().toString(36).slice(2, 6);
-}
-function openUrl(route, options) {
-  return `${getOrigin(options)}${route}${buildParams(options)}`;
-}
-function embedUrl(route, options) {
-  const config = {
-    forceEmbedLayout: true
-  };
-  if (options && typeof options === "object") {
-    Object.assign(config, options);
-  }
-  return `${getOrigin(config)}${route}${buildParams(config)}`;
-}
-function getOrigin(options = {}) {
-  const origin = typeof options.origin === "string" ? options.origin : DEFAULT_ORIGIN;
-  return origin.replace(/\/$/, "");
-}
-function replaceAndEmbed(target, frame, options) {
-  if (!frame || !target || !target.parentNode) {
-    throw new Error("Invalid Element");
-  }
-  if (target.id) {
-    frame.id = target.id;
-  }
-  if (target.className) {
-    frame.className = target.className;
-  }
-  setFrameDimensions(frame, options);
-  target.replaceWith(frame);
-}
-function findElement(elementOrId) {
-  if (typeof elementOrId === "string") {
-    const element = document.getElementById(elementOrId);
-    if (!element) {
-      throw new Error(`Could not find element with id '${elementOrId}'`);
-    }
-    return element;
-  } else if (elementOrId instanceof HTMLElement) {
-    return elementOrId;
-  }
-  throw new Error(`Invalid element: ${elementOrId}`);
-}
-function openTarget(options) {
-  return options && options.newWindow === false ? "_self" : "_blank";
-}
-function setFrameDimensions(frame, options = {}) {
-  const height = Object.hasOwnProperty.call(options, "height") ? `${options.height}` : `${DEFAULT_FRAME_HEIGHT}`;
-  const width = Object.hasOwnProperty.call(options, "width") ? `${options.width}` : void 0;
-  frame.setAttribute("height", height);
-  if (width) {
-    frame.setAttribute("width", width);
-  } else {
-    frame.setAttribute("style", "width:100%;");
-  }
-}
-var RDC = class {
-  constructor(port) {
-    this.pending = {};
-    this.port = port;
-    this.port.onmessage = this.messageListener.bind(this);
-  }
-  request({ type, payload }) {
-    return new Promise((resolve, reject) => {
-      const id = genID();
-      this.pending[id] = { resolve, reject };
-      this.port.postMessage({
-        type,
-        payload: {
-          ...payload,
-          // Ensure the payload object includes the request ID
-          __reqid: id
-        }
-      });
-    });
-  }
-  messageListener(event) {
-    var _a;
-    if (typeof ((_a = event.data.payload) == null ? void 0 : _a.__reqid) !== "string") {
-      return;
-    }
-    const { type, payload } = event.data;
-    const { __reqid: id, __success: success, __error: error } = payload;
-    if (this.pending[id]) {
-      if (success) {
-        this.pending[id].resolve(this.cleanResult(payload));
-      } else {
-        this.pending[id].reject(error ? `${type}: ${error}` : type);
-      }
-      delete this.pending[id];
-    }
-  }
-  cleanResult(payload) {
-    const result = { ...payload };
-    delete result.__reqid;
-    delete result.__success;
-    delete result.__error;
-    return Object.keys(result).length ? result : null;
-  }
-};
-var VM = class {
-  constructor(port, config) {
-    this.editor = {
-      /**
-       * Open one of several files in tabs and/or split panes.
-       *
-       * @since 1.7.0 Added support for opening multiple files
-       */
-      openFile: (path) => {
-        return this._rdc.request({
-          type: "SDK_OPEN_FILE",
-          payload: { path }
-        });
-      },
-      /**
-       * Set a project file as the currently selected file.
-       *
-       * - This may update the highlighted file in the file explorer,
-       *   and the currently open and/or focused editor tab.
-       * - It will _not_ open a new editor tab if the provided path does not
-       *   match a currently open tab. See `vm.editor.openFile` to open files.
-       *
-       * @since 1.7.0
-       * @experimental
-       */
-      setCurrentFile: (path) => {
-        return this._rdc.request({
-          type: "SDK_SET_CURRENT_FILE",
-          payload: { path }
-        });
-      },
-      /**
-       * Change the color theme
-       *
-       * @since 1.7.0
-       */
-      setTheme: (theme) => {
-        return this._rdc.request({
-          type: "SDK_SET_UI_THEME",
-          payload: { theme }
-        });
-      },
-      /**
-       * Change the display mode of the project:
-       *
-       * - `default`: show the editor and preview pane
-       * - `editor`: show the editor pane only
-       * - `preview`: show the preview pane only
-       *
-       * @since 1.7.0
-       */
-      setView: (view) => {
-        return this._rdc.request({
-          type: "SDK_SET_UI_VIEW",
-          payload: { view }
-        });
-      },
-      /**
-       * Change the display mode of the sidebar:
-       *
-       * - `true`: show the sidebar
-       * - `false`: hide the sidebar
-       *
-       * @since 1.7.0
-       */
-      showSidebar: (visible = true) => {
-        return this._rdc.request({
-          type: "SDK_TOGGLE_SIDEBAR",
-          payload: { visible }
-        });
-      }
-    };
-    this.preview = {
-      /**
-       * The origin (protocol and domain) of the preview iframe.
-       *
-       * In WebContainers-based projects, the origin will always be `null`;
-       * try using `vm.preview.getUrl` instead.
-       *
-       * @see https://developer.stackblitz.com/guides/user-guide/available-environments
-       */
-      origin: "",
-      /**
-       * Get the current preview URL.
-       *
-       * In both and EngineBlock and WebContainers-based projects, the preview URL
-       * may not reflect the exact path of the current page, after user navigation.
-       *
-       * In WebContainers-based projects, the preview URL will be `null` initially,
-       * and until the project starts a web server.
-       *
-       * @since 1.7.0
-       * @experimental
-       */
-      getUrl: () => {
-        return this._rdc.request({
-          type: "SDK_GET_PREVIEW_URL",
-          payload: {}
-        }).then((data) => (data == null ? void 0 : data.url) ?? null);
-      },
-      /**
-       * Change the path of the preview URL.
-       *
-       * In WebContainers-based projects, this will be ignored if there is no
-       * currently running web server.
-       *
-       * @since 1.7.0
-       * @experimental
-       */
-      setUrl: (path = "/") => {
-        if (typeof path !== "string" || !path.startsWith("/")) {
-          throw new Error(`Invalid argument: expected a path starting with '/', got '${path}'`);
-        }
-        return this._rdc.request({
-          type: "SDK_SET_PREVIEW_URL",
-          payload: { path }
-        });
-      }
-    };
-    this._rdc = new RDC(port);
-    Object.defineProperty(this.preview, "origin", {
-      value: typeof config.previewOrigin === "string" ? config.previewOrigin : null,
-      writable: false
-    });
-  }
-  /**
-   * Apply batch updates to the project files in one call.
-   */
-  applyFsDiff(diff) {
-    const isObject = (val) => val !== null && typeof val === "object";
-    if (!isObject(diff) || !isObject(diff.create)) {
-      throw new Error("Invalid diff object: expected diff.create to be an object.");
-    } else if (!Array.isArray(diff.destroy)) {
-      throw new Error("Invalid diff object: expected diff.destroy to be an array.");
-    }
-    return this._rdc.request({
-      type: "SDK_APPLY_FS_DIFF",
-      payload: diff
-    });
-  }
-  /**
-   * Get the project’s defined dependencies.
-   *
-   * In EngineBlock projects, version numbers represent the resolved dependency versions.
-   * In WebContainers-based projects, returns data from the project’s `package.json` without resolving installed version numbers.
-   */
-  getDependencies() {
-    return this._rdc.request({
-      type: "SDK_GET_DEPS_SNAPSHOT",
-      payload: {}
-    });
-  }
-  /**
-   * Get a snapshot of the project files and their content.
-   */
-  getFsSnapshot() {
-    return this._rdc.request({
-      type: "SDK_GET_FS_SNAPSHOT",
-      payload: {}
-    });
-  }
-};
-var connections = [];
-var Connection = class {
-  constructor(element) {
-    this.id = genID();
-    this.element = element;
-    this.pending = new Promise((resolve, reject) => {
-      const listenForSuccess = ({ data, ports }) => {
-        if ((data == null ? void 0 : data.action) === "SDK_INIT_SUCCESS" && data.id === this.id) {
-          this.vm = new VM(ports[0], data.payload);
-          resolve(this.vm);
-          cleanup();
-        }
-      };
-      const pingFrame = () => {
-        var _a;
-        (_a = this.element.contentWindow) == null ? void 0 : _a.postMessage(
-          {
-            action: "SDK_INIT",
-            id: this.id
-          },
-          "*"
-        );
-      };
-      function cleanup() {
-        window.clearInterval(interval);
-        window.removeEventListener("message", listenForSuccess);
-      }
-      window.addEventListener("message", listenForSuccess);
-      pingFrame();
-      let attempts = 0;
-      const interval = window.setInterval(() => {
-        if (this.vm) {
-          cleanup();
-          return;
-        }
-        if (attempts >= CONNECT_MAX_ATTEMPTS) {
-          cleanup();
-          reject("Timeout: Unable to establish a connection with the StackBlitz VM");
-          connections.forEach((connection, index) => {
-            if (connection.id === this.id) {
-              connections.splice(index, 1);
-            }
-          });
-          return;
-        }
-        attempts++;
-        pingFrame();
-      }, CONNECT_INTERVAL);
-    });
-    connections.push(this);
-  }
-};
-var getConnection = (identifier) => {
-  const key = identifier instanceof Element ? "element" : "id";
-  return connections.find((c) => c[key] === identifier) ?? null;
-};
-function createHiddenInput(name, value) {
-  const input = document.createElement("input");
-  input.type = "hidden";
-  input.name = name;
-  input.value = value;
-  return input;
-}
-function encodeFilePath(path) {
-  return path.replace(/\[/g, "%5B").replace(/\]/g, "%5D");
-}
-function createProjectForm({
-  template,
-  title,
-  description,
-  dependencies,
-  files,
-  settings
-}) {
-  if (!PROJECT_TEMPLATES.includes(template)) {
-    const names = PROJECT_TEMPLATES.map((t) => `'${t}'`).join(", ");
-    console.warn(`Unsupported project.template: must be one of ${names}`);
-  }
-  const inputs = [];
-  const addInput = (name, value, defaultValue = "") => {
-    inputs.push(createHiddenInput(name, typeof value === "string" ? value : defaultValue));
-  };
-  addInput("project[title]", title);
-  if (typeof description === "string" && description.length > 0) {
-    addInput("project[description]", description);
-  }
-  addInput("project[template]", template, "javascript");
-  if (dependencies) {
-    if (template === "node") {
-      console.warn(
-        `Invalid project.dependencies: dependencies must be provided as a 'package.json' file when using the 'node' template.`
-      );
-    } else {
-      addInput("project[dependencies]", JSON.stringify(dependencies));
-    }
-  }
-  if (settings) {
-    addInput("project[settings]", JSON.stringify(settings));
-  }
-  Object.entries(files).forEach(([path, contents]) => {
-    addInput(`project[files][${encodeFilePath(path)}]`, contents);
-  });
-  const form = document.createElement("form");
-  form.method = "POST";
-  form.setAttribute("style", "display:none!important;");
-  form.append(...inputs);
-  return form;
-}
-function createProjectFrameHTML(project, options) {
-  const form = createProjectForm(project);
-  form.action = embedUrl("/run", options);
-  form.id = "sb_run";
-  const html = `<!doctype html>
-<html>
-<head><title></title></head>
-<body>
-  ${form.outerHTML}
-  <script>document.getElementById('${form.id}').submit();<\/script>
-</body>
-</html>`;
-  return html;
-}
-function openNewProject(project, options) {
-  const form = createProjectForm(project);
-  form.action = openUrl("/run", options);
-  form.target = openTarget(options);
-  document.body.appendChild(form);
-  form.submit();
-  document.body.removeChild(form);
-}
-function connect(frameEl) {
-  if (!(frameEl == null ? void 0 : frameEl.contentWindow)) {
-    return Promise.reject("Provided element is not an iframe.");
-  }
-  const connection = getConnection(frameEl) ?? new Connection(frameEl);
-  return connection.pending;
-}
-function openProject(project, options) {
-  openNewProject(project, options);
-}
-function openProjectId(projectId, options) {
-  const url = openUrl(`/edit/${projectId}`, options);
-  const target = openTarget(options);
-  window.open(url, target);
-}
-function openGithubProject(repoSlug, options) {
-  const url = openUrl(`/github/${repoSlug}`, options);
-  const target = openTarget(options);
-  window.open(url, target);
-}
-function embedProject(elementOrId, project, options) {
-  var _a;
-  const element = findElement(elementOrId);
-  const html = createProjectFrameHTML(project, options);
-  const frame = document.createElement("iframe");
-  replaceAndEmbed(element, frame, options);
-  (_a = frame.contentDocument) == null ? void 0 : _a.write(html);
-  return connect(frame);
-}
-function embedProjectId(elementOrId, projectId, options) {
-  const element = findElement(elementOrId);
-  const frame = document.createElement("iframe");
-  frame.src = embedUrl(`/edit/${projectId}`, options);
-  replaceAndEmbed(element, frame, options);
-  return connect(frame);
-}
-function embedGithubProject(elementOrId, repoSlug, options) {
-  const element = findElement(elementOrId);
-  const frame = document.createElement("iframe");
-  frame.src = embedUrl(`/github/${repoSlug}`, options);
-  replaceAndEmbed(element, frame, options);
-  return connect(frame);
-}
-var StackBlitzSDK = {
-  connect,
-  embedGithubProject,
-  embedProject,
-  embedProjectId,
-  openGithubProject,
-  openProject,
-  openProjectId
-};
-export {
-  StackBlitzSDK as default
-};
-//# sourceMappingURL=@stackblitz_sdk.js.map

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 3
docs/.vitepress/cache/deps/@stackblitz_sdk.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1212
docs/.vitepress/cache/deps/@tresjs_cientos.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 3
docs/.vitepress/cache/deps/@tresjs_cientos.js.map


+ 0 - 548
docs/.vitepress/cache/deps/@vueuse_core.js

@@ -1,548 +0,0 @@
-import {
-  DefaultMagicKeysAliasMap,
-  StorageSerializers,
-  TransitionPresets,
-  assert,
-  breakpointsAntDesign,
-  breakpointsBootstrapV5,
-  breakpointsMasterCss,
-  breakpointsQuasar,
-  breakpointsSematic,
-  breakpointsTailwind,
-  breakpointsVuetify,
-  bypassFilter,
-  clamp,
-  cloneFnJSON,
-  computedAsync,
-  computedEager,
-  computedInject,
-  computedWithControl,
-  containsProp,
-  controlledRef,
-  createEventHook,
-  createFetch,
-  createFilterWrapper,
-  createGlobalState,
-  createInjectionState,
-  createReusableTemplate,
-  createSharedComposable,
-  createSingletonPromise,
-  createTemplatePromise,
-  createUnrefFn,
-  customStorageEventName,
-  debounceFilter,
-  defaultDocument,
-  defaultLocation,
-  defaultNavigator,
-  defaultWindow,
-  directiveHooks,
-  executeTransition,
-  extendRef,
-  formatDate,
-  formatTimeAgo,
-  get,
-  getSSRHandler,
-  hasOwn,
-  identity,
-  increaseWithUnit,
-  invoke,
-  isClient,
-  isDef,
-  isDefined,
-  isIOS,
-  isObject,
-  makeDestructurable,
-  mapGamepadToXbox360Controller,
-  noop,
-  normalizeDate,
-  notNullish,
-  now,
-  objectEntries,
-  objectOmit,
-  objectPick,
-  onClickOutside,
-  onKeyDown,
-  onKeyPressed,
-  onKeyStroke,
-  onKeyUp,
-  onLongPress,
-  onStartTyping,
-  pausableFilter,
-  promiseTimeout,
-  rand,
-  reactify,
-  reactifyObject,
-  reactiveComputed,
-  reactiveOmit,
-  reactivePick,
-  refAutoReset,
-  refDebounced,
-  refDefault,
-  refThrottled,
-  refWithControl,
-  resolveRef,
-  resolveUnref,
-  set,
-  setSSRHandler,
-  syncRef,
-  syncRefs,
-  templateRef,
-  throttleFilter,
-  timestamp,
-  toReactive,
-  toRef,
-  toRefs,
-  toValue,
-  tryOnBeforeMount,
-  tryOnBeforeUnmount,
-  tryOnMounted,
-  tryOnScopeDispose,
-  tryOnUnmounted,
-  unrefElement,
-  until,
-  useActiveElement,
-  useAnimate,
-  useArrayDifference,
-  useArrayEvery,
-  useArrayFilter,
-  useArrayFind,
-  useArrayFindIndex,
-  useArrayFindLast,
-  useArrayIncludes,
-  useArrayJoin,
-  useArrayMap,
-  useArrayReduce,
-  useArraySome,
-  useArrayUnique,
-  useAsyncQueue,
-  useAsyncState,
-  useBase64,
-  useBattery,
-  useBluetooth,
-  useBreakpoints,
-  useBroadcastChannel,
-  useBrowserLocation,
-  useCached,
-  useClipboard,
-  useCloned,
-  useColorMode,
-  useConfirmDialog,
-  useCounter,
-  useCssVar,
-  useCurrentElement,
-  useCycleList,
-  useDark,
-  useDateFormat,
-  useDebounceFn,
-  useDebouncedRefHistory,
-  useDeviceMotion,
-  useDeviceOrientation,
-  useDevicePixelRatio,
-  useDevicesList,
-  useDisplayMedia,
-  useDocumentVisibility,
-  useDraggable,
-  useDropZone,
-  useElementBounding,
-  useElementByPoint,
-  useElementHover,
-  useElementSize,
-  useElementVisibility,
-  useEventBus,
-  useEventListener,
-  useEventSource,
-  useEyeDropper,
-  useFavicon,
-  useFetch,
-  useFileDialog,
-  useFileSystemAccess,
-  useFocus,
-  useFocusWithin,
-  useFps,
-  useFullscreen,
-  useGamepad,
-  useGeolocation,
-  useIdle,
-  useImage,
-  useInfiniteScroll,
-  useIntersectionObserver,
-  useInterval,
-  useIntervalFn,
-  useKeyModifier,
-  useLastChanged,
-  useLocalStorage,
-  useMagicKeys,
-  useManualRefHistory,
-  useMediaControls,
-  useMediaQuery,
-  useMemoize,
-  useMemory,
-  useMounted,
-  useMouse,
-  useMouseInElement,
-  useMousePressed,
-  useMutationObserver,
-  useNavigatorLanguage,
-  useNetwork,
-  useNow,
-  useObjectUrl,
-  useOffsetPagination,
-  useOnline,
-  usePageLeave,
-  useParallax,
-  useParentElement,
-  usePerformanceObserver,
-  usePermission,
-  usePointer,
-  usePointerLock,
-  usePointerSwipe,
-  usePreferredColorScheme,
-  usePreferredContrast,
-  usePreferredDark,
-  usePreferredLanguages,
-  usePreferredReducedMotion,
-  usePrevious,
-  useRafFn,
-  useRefHistory,
-  useResizeObserver,
-  useScreenOrientation,
-  useScreenSafeArea,
-  useScriptTag,
-  useScroll,
-  useScrollLock,
-  useSessionStorage,
-  useShare,
-  useSorted,
-  useSpeechRecognition,
-  useSpeechSynthesis,
-  useStepper,
-  useStorage,
-  useStorageAsync,
-  useStyleTag,
-  useSupported,
-  useSwipe,
-  useTemplateRefsList,
-  useTextDirection,
-  useTextSelection,
-  useTextareaAutosize,
-  useThrottleFn,
-  useThrottledRefHistory,
-  useTimeAgo,
-  useTimeout,
-  useTimeoutFn,
-  useTimeoutPoll,
-  useTimestamp,
-  useTitle,
-  useToNumber,
-  useToString,
-  useToggle,
-  useTransition,
-  useUrlSearchParams,
-  useUserMedia,
-  useVModel,
-  useVModels,
-  useVibrate,
-  useVirtualList,
-  useWakeLock,
-  useWebNotification,
-  useWebSocket,
-  useWebWorker,
-  useWebWorkerFn,
-  useWindowFocus,
-  useWindowScroll,
-  useWindowSize,
-  watchArray,
-  watchAtMost,
-  watchDebounced,
-  watchDeep,
-  watchIgnorable,
-  watchImmediate,
-  watchOnce,
-  watchPausable,
-  watchThrottled,
-  watchTriggerable,
-  watchWithFilter,
-  whenever
-} from "./chunk-YZCJI2S3.js";
-import "./chunk-LZPJ5JBW.js";
-import "./chunk-JC4IRQUL.js";
-export {
-  DefaultMagicKeysAliasMap,
-  StorageSerializers,
-  TransitionPresets,
-  assert,
-  computedAsync as asyncComputed,
-  refAutoReset as autoResetRef,
-  breakpointsAntDesign,
-  breakpointsBootstrapV5,
-  breakpointsMasterCss,
-  breakpointsQuasar,
-  breakpointsSematic,
-  breakpointsTailwind,
-  breakpointsVuetify,
-  bypassFilter,
-  clamp,
-  cloneFnJSON,
-  computedAsync,
-  computedEager,
-  computedInject,
-  computedWithControl,
-  containsProp,
-  computedWithControl as controlledComputed,
-  controlledRef,
-  createEventHook,
-  createFetch,
-  createFilterWrapper,
-  createGlobalState,
-  createInjectionState,
-  reactify as createReactiveFn,
-  createReusableTemplate,
-  createSharedComposable,
-  createSingletonPromise,
-  createTemplatePromise,
-  createUnrefFn,
-  customStorageEventName,
-  debounceFilter,
-  refDebounced as debouncedRef,
-  watchDebounced as debouncedWatch,
-  defaultDocument,
-  defaultLocation,
-  defaultNavigator,
-  defaultWindow,
-  directiveHooks,
-  computedEager as eagerComputed,
-  executeTransition,
-  extendRef,
-  formatDate,
-  formatTimeAgo,
-  get,
-  getSSRHandler,
-  hasOwn,
-  identity,
-  watchIgnorable as ignorableWatch,
-  increaseWithUnit,
-  invoke,
-  isClient,
-  isDef,
-  isDefined,
-  isIOS,
-  isObject,
-  makeDestructurable,
-  mapGamepadToXbox360Controller,
-  noop,
-  normalizeDate,
-  notNullish,
-  now,
-  objectEntries,
-  objectOmit,
-  objectPick,
-  onClickOutside,
-  onKeyDown,
-  onKeyPressed,
-  onKeyStroke,
-  onKeyUp,
-  onLongPress,
-  onStartTyping,
-  pausableFilter,
-  watchPausable as pausableWatch,
-  promiseTimeout,
-  rand,
-  reactify,
-  reactifyObject,
-  reactiveComputed,
-  reactiveOmit,
-  reactivePick,
-  refAutoReset,
-  refDebounced,
-  refDefault,
-  refThrottled,
-  refWithControl,
-  resolveRef,
-  resolveUnref,
-  set,
-  setSSRHandler,
-  syncRef,
-  syncRefs,
-  templateRef,
-  throttleFilter,
-  refThrottled as throttledRef,
-  watchThrottled as throttledWatch,
-  timestamp,
-  toReactive,
-  toRef,
-  toRefs,
-  toValue,
-  tryOnBeforeMount,
-  tryOnBeforeUnmount,
-  tryOnMounted,
-  tryOnScopeDispose,
-  tryOnUnmounted,
-  unrefElement,
-  until,
-  useActiveElement,
-  useAnimate,
-  useArrayDifference,
-  useArrayEvery,
-  useArrayFilter,
-  useArrayFind,
-  useArrayFindIndex,
-  useArrayFindLast,
-  useArrayIncludes,
-  useArrayJoin,
-  useArrayMap,
-  useArrayReduce,
-  useArraySome,
-  useArrayUnique,
-  useAsyncQueue,
-  useAsyncState,
-  useBase64,
-  useBattery,
-  useBluetooth,
-  useBreakpoints,
-  useBroadcastChannel,
-  useBrowserLocation,
-  useCached,
-  useClipboard,
-  useCloned,
-  useColorMode,
-  useConfirmDialog,
-  useCounter,
-  useCssVar,
-  useCurrentElement,
-  useCycleList,
-  useDark,
-  useDateFormat,
-  refDebounced as useDebounce,
-  useDebounceFn,
-  useDebouncedRefHistory,
-  useDeviceMotion,
-  useDeviceOrientation,
-  useDevicePixelRatio,
-  useDevicesList,
-  useDisplayMedia,
-  useDocumentVisibility,
-  useDraggable,
-  useDropZone,
-  useElementBounding,
-  useElementByPoint,
-  useElementHover,
-  useElementSize,
-  useElementVisibility,
-  useEventBus,
-  useEventListener,
-  useEventSource,
-  useEyeDropper,
-  useFavicon,
-  useFetch,
-  useFileDialog,
-  useFileSystemAccess,
-  useFocus,
-  useFocusWithin,
-  useFps,
-  useFullscreen,
-  useGamepad,
-  useGeolocation,
-  useIdle,
-  useImage,
-  useInfiniteScroll,
-  useIntersectionObserver,
-  useInterval,
-  useIntervalFn,
-  useKeyModifier,
-  useLastChanged,
-  useLocalStorage,
-  useMagicKeys,
-  useManualRefHistory,
-  useMediaControls,
-  useMediaQuery,
-  useMemoize,
-  useMemory,
-  useMounted,
-  useMouse,
-  useMouseInElement,
-  useMousePressed,
-  useMutationObserver,
-  useNavigatorLanguage,
-  useNetwork,
-  useNow,
-  useObjectUrl,
-  useOffsetPagination,
-  useOnline,
-  usePageLeave,
-  useParallax,
-  useParentElement,
-  usePerformanceObserver,
-  usePermission,
-  usePointer,
-  usePointerLock,
-  usePointerSwipe,
-  usePreferredColorScheme,
-  usePreferredContrast,
-  usePreferredDark,
-  usePreferredLanguages,
-  usePreferredReducedMotion,
-  usePrevious,
-  useRafFn,
-  useRefHistory,
-  useResizeObserver,
-  useScreenOrientation,
-  useScreenSafeArea,
-  useScriptTag,
-  useScroll,
-  useScrollLock,
-  useSessionStorage,
-  useShare,
-  useSorted,
-  useSpeechRecognition,
-  useSpeechSynthesis,
-  useStepper,
-  useStorage,
-  useStorageAsync,
-  useStyleTag,
-  useSupported,
-  useSwipe,
-  useTemplateRefsList,
-  useTextDirection,
-  useTextSelection,
-  useTextareaAutosize,
-  refThrottled as useThrottle,
-  useThrottleFn,
-  useThrottledRefHistory,
-  useTimeAgo,
-  useTimeout,
-  useTimeoutFn,
-  useTimeoutPoll,
-  useTimestamp,
-  useTitle,
-  useToNumber,
-  useToString,
-  useToggle,
-  useTransition,
-  useUrlSearchParams,
-  useUserMedia,
-  useVModel,
-  useVModels,
-  useVibrate,
-  useVirtualList,
-  useWakeLock,
-  useWebNotification,
-  useWebSocket,
-  useWebWorker,
-  useWebWorkerFn,
-  useWindowFocus,
-  useWindowScroll,
-  useWindowSize,
-  watchArray,
-  watchAtMost,
-  watchDebounced,
-  watchDeep,
-  watchIgnorable,
-  watchImmediate,
-  watchOnce,
-  watchPausable,
-  watchThrottled,
-  watchTriggerable,
-  watchWithFilter,
-  whenever
-};
-//# sourceMappingURL=@vueuse_core.js.map

+ 0 - 7
docs/.vitepress/cache/deps/@vueuse_core.js.map

@@ -1,7 +0,0 @@
-{
-  "version": 3,
-  "sources": [],
-  "sourcesContent": [],
-  "mappings": "",
-  "names": []
-}

+ 0 - 56
docs/.vitepress/cache/deps/_metadata.json

@@ -1,56 +0,0 @@
-{
-  "hash": "028d4228",
-  "browserHash": "5bbe5833",
-  "optimized": {
-    "vue": {
-      "src": "../../../../node_modules/.pnpm/vue@3.2.47/node_modules/vue/dist/vue.runtime.esm-bundler.js",
-      "file": "vue.js",
-      "fileHash": "dd414ec0",
-      "needsInterop": false
-    },
-    "three": {
-      "src": "../../../../node_modules/.pnpm/three@0.152.2/node_modules/three/build/three.module.js",
-      "file": "three.js",
-      "fileHash": "201076c8",
-      "needsInterop": false
-    },
-    "@tresjs/cientos": {
-      "src": "../../../../node_modules/.pnpm/@tresjs+cientos@2.0.0_@tresjs+core@_three@0.152.2_vue@3.2.47/node_modules/@tresjs/cientos/dist/trescientos.js",
-      "file": "@tresjs_cientos.js",
-      "fileHash": "43ab126d",
-      "needsInterop": false
-    },
-    "@stackblitz/sdk": {
-      "src": "../../../../node_modules/.pnpm/@stackblitz+sdk@1.9.0/node_modules/@stackblitz/sdk/bundles/sdk.m.js",
-      "file": "@stackblitz_sdk.js",
-      "fileHash": "f3131c6e",
-      "needsInterop": false
-    },
-    "gsap": {
-      "src": "../../../../node_modules/.pnpm/gsap@3.11.5/node_modules/gsap/index.js",
-      "file": "gsap.js",
-      "fileHash": "5a3975c5",
-      "needsInterop": false
-    },
-    "@vueuse/core": {
-      "src": "../../../../node_modules/.pnpm/@vueuse+core@10.1.2_vue@3.2.47/node_modules/@vueuse/core/index.mjs",
-      "file": "@vueuse_core.js",
-      "fileHash": "be8aed76",
-      "needsInterop": false
-    }
-  },
-  "chunks": {
-    "chunk-YZCJI2S3": {
-      "file": "chunk-YZCJI2S3.js"
-    },
-    "chunk-LZPJ5JBW": {
-      "file": "chunk-LZPJ5JBW.js"
-    },
-    "chunk-PDZK3SQX": {
-      "file": "chunk-PDZK3SQX.js"
-    },
-    "chunk-JC4IRQUL": {
-      "file": "chunk-JC4IRQUL.js"
-    }
-  }
-}

+ 0 - 10
docs/.vitepress/cache/deps/chunk-JC4IRQUL.js

@@ -1,10 +0,0 @@
-var __defProp = Object.defineProperty;
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
-
-export {
-  __export
-};
-//# sourceMappingURL=chunk-JC4IRQUL.js.map

+ 0 - 7
docs/.vitepress/cache/deps/chunk-JC4IRQUL.js.map

@@ -1,7 +0,0 @@
-{
-  "version": 3,
-  "sources": [],
-  "sourcesContent": [],
-  "mappings": "",
-  "names": []
-}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 88
docs/.vitepress/cache/deps/chunk-LZPJ5JBW.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 3
docs/.vitepress/cache/deps/chunk-LZPJ5JBW.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 8650
docs/.vitepress/cache/deps/chunk-PDZK3SQX.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 3
docs/.vitepress/cache/deps/chunk-PDZK3SQX.js.map


+ 0 - 9275
docs/.vitepress/cache/deps/chunk-YZCJI2S3.js

@@ -1,9275 +0,0 @@
-import {
-  Fragment,
-  TransitionGroup,
-  computed,
-  customRef,
-  defineComponent,
-  effectScope,
-  getCurrentInstance,
-  getCurrentScope,
-  h,
-  inject,
-  isReactive,
-  isReadonly,
-  isRef,
-  markRaw,
-  nextTick,
-  onBeforeMount,
-  onBeforeUnmount,
-  onBeforeUpdate,
-  onMounted,
-  onScopeDispose,
-  onUnmounted,
-  onUpdated,
-  provide,
-  reactive,
-  readonly,
-  ref,
-  shallowReactive,
-  shallowRef,
-  toRef,
-  toRefs,
-  unref,
-  version,
-  watch,
-  watchEffect
-} from "./chunk-LZPJ5JBW.js";
-
-// node_modules/.pnpm/vue-demi@0.14.0_vue@3.2.47/node_modules/vue-demi/lib/index.mjs
-var isVue2 = false;
-var isVue3 = true;
-function set(target, key, val) {
-  if (Array.isArray(target)) {
-    target.length = Math.max(target.length, key);
-    target.splice(key, 1, val);
-    return val;
-  }
-  target[key] = val;
-  return val;
-}
-function del(target, key) {
-  if (Array.isArray(target)) {
-    target.splice(key, 1);
-    return;
-  }
-  delete target[key];
-}
-
-// node_modules/.pnpm/@vueuse+shared@10.1.2_vue@3.2.47/node_modules/@vueuse/shared/index.mjs
-var __defProp$b = Object.defineProperty;
-var __defProps$8 = Object.defineProperties;
-var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
-var __hasOwnProp$d = Object.prototype.hasOwnProperty;
-var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$b = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$d.call(b, prop))
-      __defNormalProp$b(a, prop, b[prop]);
-  if (__getOwnPropSymbols$d)
-    for (var prop of __getOwnPropSymbols$d(b)) {
-      if (__propIsEnum$d.call(b, prop))
-        __defNormalProp$b(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
-function computedEager(fn, options) {
-  var _a;
-  const result = shallowRef();
-  watchEffect(() => {
-    result.value = fn();
-  }, __spreadProps$8(__spreadValues$b({}, options), {
-    flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync"
-  }));
-  return readonly(result);
-}
-function computedWithControl(source, fn) {
-  let v = void 0;
-  let track;
-  let trigger;
-  const dirty = ref(true);
-  const update = () => {
-    dirty.value = true;
-    trigger();
-  };
-  watch(source, update, { flush: "sync" });
-  const get2 = typeof fn === "function" ? fn : fn.get;
-  const set3 = typeof fn === "function" ? void 0 : fn.set;
-  const result = customRef((_track, _trigger) => {
-    track = _track;
-    trigger = _trigger;
-    return {
-      get() {
-        if (dirty.value) {
-          v = get2();
-          dirty.value = false;
-        }
-        track();
-        return v;
-      },
-      set(v2) {
-        set3 == null ? void 0 : set3(v2);
-      }
-    };
-  });
-  if (Object.isExtensible(result))
-    result.trigger = update;
-  return result;
-}
-function tryOnScopeDispose(fn) {
-  if (getCurrentScope()) {
-    onScopeDispose(fn);
-    return true;
-  }
-  return false;
-}
-function createEventHook() {
-  const fns = /* @__PURE__ */ new Set();
-  const off = (fn) => {
-    fns.delete(fn);
-  };
-  const on = (fn) => {
-    fns.add(fn);
-    const offFn = () => off(fn);
-    tryOnScopeDispose(offFn);
-    return {
-      off: offFn
-    };
-  };
-  const trigger = (param) => {
-    return Promise.all(Array.from(fns).map((fn) => fn(param)));
-  };
-  return {
-    on,
-    off,
-    trigger
-  };
-}
-function createGlobalState(stateFactory) {
-  let initialized = false;
-  let state;
-  const scope = effectScope(true);
-  return (...args) => {
-    if (!initialized) {
-      state = scope.run(() => stateFactory(...args));
-      initialized = true;
-    }
-    return state;
-  };
-}
-function createInjectionState(composable) {
-  const key = Symbol("InjectionState");
-  const useProvidingState = (...args) => {
-    const state = composable(...args);
-    provide(key, state);
-    return state;
-  };
-  const useInjectedState = () => inject(key);
-  return [useProvidingState, useInjectedState];
-}
-function createSharedComposable(composable) {
-  let subscribers = 0;
-  let state;
-  let scope;
-  const dispose = () => {
-    subscribers -= 1;
-    if (scope && subscribers <= 0) {
-      scope.stop();
-      state = void 0;
-      scope = void 0;
-    }
-  };
-  return (...args) => {
-    subscribers += 1;
-    if (!state) {
-      scope = effectScope(true);
-      state = scope.run(() => composable(...args));
-    }
-    tryOnScopeDispose(dispose);
-    return state;
-  };
-}
-function extendRef(ref2, extend, { enumerable = false, unwrap = true } = {}) {
-  if (!isVue3 && !version.startsWith("2.7.")) {
-    if (true)
-      throw new Error("[VueUse] extendRef only works in Vue 2.7 or above.");
-    return;
-  }
-  for (const [key, value] of Object.entries(extend)) {
-    if (key === "value")
-      continue;
-    if (isRef(value) && unwrap) {
-      Object.defineProperty(ref2, key, {
-        get() {
-          return value.value;
-        },
-        set(v) {
-          value.value = v;
-        },
-        enumerable
-      });
-    } else {
-      Object.defineProperty(ref2, key, { value, enumerable });
-    }
-  }
-  return ref2;
-}
-function get(obj, key) {
-  if (key == null)
-    return unref(obj);
-  return unref(obj)[key];
-}
-function isDefined(v) {
-  return unref(v) != null;
-}
-var __defProp$a = Object.defineProperty;
-var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
-var __hasOwnProp$c = Object.prototype.hasOwnProperty;
-var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$a = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$c.call(b, prop))
-      __defNormalProp$a(a, prop, b[prop]);
-  if (__getOwnPropSymbols$c)
-    for (var prop of __getOwnPropSymbols$c(b)) {
-      if (__propIsEnum$c.call(b, prop))
-        __defNormalProp$a(a, prop, b[prop]);
-    }
-  return a;
-};
-function makeDestructurable(obj, arr) {
-  if (typeof Symbol !== "undefined") {
-    const clone = __spreadValues$a({}, obj);
-    Object.defineProperty(clone, Symbol.iterator, {
-      enumerable: false,
-      value() {
-        let index = 0;
-        return {
-          next: () => ({
-            value: arr[index++],
-            done: index > arr.length
-          })
-        };
-      }
-    });
-    return clone;
-  } else {
-    return Object.assign([...arr], obj);
-  }
-}
-function toValue(r) {
-  return typeof r === "function" ? r() : unref(r);
-}
-var resolveUnref = toValue;
-function reactify(fn, options) {
-  const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;
-  return function(...args) {
-    return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));
-  };
-}
-function reactifyObject(obj, optionsOrKeys = {}) {
-  let keys2 = [];
-  let options;
-  if (Array.isArray(optionsOrKeys)) {
-    keys2 = optionsOrKeys;
-  } else {
-    options = optionsOrKeys;
-    const { includeOwnProperties = true } = optionsOrKeys;
-    keys2.push(...Object.keys(obj));
-    if (includeOwnProperties)
-      keys2.push(...Object.getOwnPropertyNames(obj));
-  }
-  return Object.fromEntries(
-    keys2.map((key) => {
-      const value = obj[key];
-      return [
-        key,
-        typeof value === "function" ? reactify(value.bind(obj), options) : value
-      ];
-    })
-  );
-}
-function toReactive(objectRef) {
-  if (!isRef(objectRef))
-    return reactive(objectRef);
-  const proxy = new Proxy({}, {
-    get(_, p, receiver) {
-      return unref(Reflect.get(objectRef.value, p, receiver));
-    },
-    set(_, p, value) {
-      if (isRef(objectRef.value[p]) && !isRef(value))
-        objectRef.value[p].value = value;
-      else
-        objectRef.value[p] = value;
-      return true;
-    },
-    deleteProperty(_, p) {
-      return Reflect.deleteProperty(objectRef.value, p);
-    },
-    has(_, p) {
-      return Reflect.has(objectRef.value, p);
-    },
-    ownKeys() {
-      return Object.keys(objectRef.value);
-    },
-    getOwnPropertyDescriptor() {
-      return {
-        enumerable: true,
-        configurable: true
-      };
-    }
-  });
-  return reactive(proxy);
-}
-function reactiveComputed(fn) {
-  return toReactive(computed(fn));
-}
-function reactiveOmit(obj, ...keys2) {
-  const flatKeys = keys2.flat();
-  const predicate = flatKeys[0];
-  return reactiveComputed(
-    () => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs(obj)).filter((e) => !flatKeys.includes(e[0])))
-  );
-}
-var isClient = typeof window !== "undefined";
-var isDef = (val) => typeof val !== "undefined";
-var notNullish = (val) => val != null;
-var assert = (condition, ...infos) => {
-  if (!condition)
-    console.warn(...infos);
-};
-var toString = Object.prototype.toString;
-var isObject = (val) => toString.call(val) === "[object Object]";
-var now = () => Date.now();
-var timestamp = () => +Date.now();
-var clamp = (n, min, max) => Math.min(max, Math.max(min, n));
-var noop = () => {
-};
-var rand = (min, max) => {
-  min = Math.ceil(min);
-  max = Math.floor(max);
-  return Math.floor(Math.random() * (max - min + 1)) + min;
-};
-var hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);
-var isIOS = getIsIOS();
-function getIsIOS() {
-  var _a;
-  return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);
-}
-function createFilterWrapper(filter, fn) {
-  function wrapper(...args) {
-    return new Promise((resolve, reject) => {
-      Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);
-    });
-  }
-  return wrapper;
-}
-var bypassFilter = (invoke2) => {
-  return invoke2();
-};
-function debounceFilter(ms, options = {}) {
-  let timer;
-  let maxTimer;
-  let lastRejector = noop;
-  const _clearTimeout = (timer2) => {
-    clearTimeout(timer2);
-    lastRejector();
-    lastRejector = noop;
-  };
-  const filter = (invoke2) => {
-    const duration = toValue(ms);
-    const maxDuration = toValue(options.maxWait);
-    if (timer)
-      _clearTimeout(timer);
-    if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
-      if (maxTimer) {
-        _clearTimeout(maxTimer);
-        maxTimer = null;
-      }
-      return Promise.resolve(invoke2());
-    }
-    return new Promise((resolve, reject) => {
-      lastRejector = options.rejectOnCancel ? reject : resolve;
-      if (maxDuration && !maxTimer) {
-        maxTimer = setTimeout(() => {
-          if (timer)
-            _clearTimeout(timer);
-          maxTimer = null;
-          resolve(invoke2());
-        }, maxDuration);
-      }
-      timer = setTimeout(() => {
-        if (maxTimer)
-          _clearTimeout(maxTimer);
-        maxTimer = null;
-        resolve(invoke2());
-      }, duration);
-    });
-  };
-  return filter;
-}
-function throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {
-  let lastExec = 0;
-  let timer;
-  let isLeading = true;
-  let lastRejector = noop;
-  let lastValue;
-  const clear = () => {
-    if (timer) {
-      clearTimeout(timer);
-      timer = void 0;
-      lastRejector();
-      lastRejector = noop;
-    }
-  };
-  const filter = (_invoke) => {
-    const duration = toValue(ms);
-    const elapsed = Date.now() - lastExec;
-    const invoke2 = () => {
-      return lastValue = _invoke();
-    };
-    clear();
-    if (duration <= 0) {
-      lastExec = Date.now();
-      return invoke2();
-    }
-    if (elapsed > duration && (leading || !isLeading)) {
-      lastExec = Date.now();
-      invoke2();
-    } else if (trailing) {
-      lastValue = new Promise((resolve, reject) => {
-        lastRejector = rejectOnCancel ? reject : resolve;
-        timer = setTimeout(() => {
-          lastExec = Date.now();
-          isLeading = true;
-          resolve(invoke2());
-          clear();
-        }, Math.max(0, duration - elapsed));
-      });
-    }
-    if (!leading && !timer)
-      timer = setTimeout(() => isLeading = true, duration);
-    isLeading = false;
-    return lastValue;
-  };
-  return filter;
-}
-function pausableFilter(extendFilter = bypassFilter) {
-  const isActive = ref(true);
-  function pause() {
-    isActive.value = false;
-  }
-  function resume() {
-    isActive.value = true;
-  }
-  const eventFilter = (...args) => {
-    if (isActive.value)
-      extendFilter(...args);
-  };
-  return { isActive: readonly(isActive), pause, resume, eventFilter };
-}
-var directiveHooks = {
-  mounted: isVue3 ? "mounted" : "inserted",
-  updated: isVue3 ? "updated" : "componentUpdated",
-  unmounted: isVue3 ? "unmounted" : "unbind"
-};
-function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") {
-  return new Promise((resolve, reject) => {
-    if (throwOnTimeout)
-      setTimeout(() => reject(reason), ms);
-    else
-      setTimeout(resolve, ms);
-  });
-}
-function identity(arg) {
-  return arg;
-}
-function createSingletonPromise(fn) {
-  let _promise;
-  function wrapper() {
-    if (!_promise)
-      _promise = fn();
-    return _promise;
-  }
-  wrapper.reset = async () => {
-    const _prev = _promise;
-    _promise = void 0;
-    if (_prev)
-      await _prev;
-  };
-  return wrapper;
-}
-function invoke(fn) {
-  return fn();
-}
-function containsProp(obj, ...props) {
-  return props.some((k) => k in obj);
-}
-function increaseWithUnit(target, delta) {
-  var _a;
-  if (typeof target === "number")
-    return target + delta;
-  const value = ((_a = target.match(/^-?[0-9]+\.?[0-9]*/)) == null ? void 0 : _a[0]) || "";
-  const unit = target.slice(value.length);
-  const result = parseFloat(value) + delta;
-  if (Number.isNaN(result))
-    return target;
-  return result + unit;
-}
-function objectPick(obj, keys2, omitUndefined = false) {
-  return keys2.reduce((n, k) => {
-    if (k in obj) {
-      if (!omitUndefined || obj[k] !== void 0)
-        n[k] = obj[k];
-    }
-    return n;
-  }, {});
-}
-function objectOmit(obj, keys2, omitUndefined = false) {
-  return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {
-    return (!omitUndefined || value !== void 0) && !keys2.includes(key);
-  }));
-}
-function objectEntries(obj) {
-  return Object.entries(obj);
-}
-function toRef2(...args) {
-  if (args.length !== 1)
-    return toRef(...args);
-  const r = args[0];
-  return typeof r === "function" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);
-}
-var resolveRef = toRef2;
-function reactivePick(obj, ...keys2) {
-  const flatKeys = keys2.flat();
-  const predicate = flatKeys[0];
-  return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef2(obj, k)])));
-}
-function refAutoReset(defaultValue, afterMs = 1e4) {
-  return customRef((track, trigger) => {
-    let value = defaultValue;
-    let timer;
-    const resetAfter = () => setTimeout(() => {
-      value = defaultValue;
-      trigger();
-    }, toValue(afterMs));
-    tryOnScopeDispose(() => {
-      clearTimeout(timer);
-    });
-    return {
-      get() {
-        track();
-        return value;
-      },
-      set(newValue) {
-        value = newValue;
-        trigger();
-        clearTimeout(timer);
-        timer = resetAfter();
-      }
-    };
-  });
-}
-function useDebounceFn(fn, ms = 200, options = {}) {
-  return createFilterWrapper(
-    debounceFilter(ms, options),
-    fn
-  );
-}
-function refDebounced(value, ms = 200, options = {}) {
-  const debounced = ref(value.value);
-  const updater = useDebounceFn(() => {
-    debounced.value = value.value;
-  }, ms, options);
-  watch(value, () => updater());
-  return debounced;
-}
-function refDefault(source, defaultValue) {
-  return computed({
-    get() {
-      var _a;
-      return (_a = source.value) != null ? _a : defaultValue;
-    },
-    set(value) {
-      source.value = value;
-    }
-  });
-}
-function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
-  return createFilterWrapper(
-    throttleFilter(ms, trailing, leading, rejectOnCancel),
-    fn
-  );
-}
-function refThrottled(value, delay = 200, trailing = true, leading = true) {
-  if (delay <= 0)
-    return value;
-  const throttled = ref(value.value);
-  const updater = useThrottleFn(() => {
-    throttled.value = value.value;
-  }, delay, trailing, leading);
-  watch(value, () => updater());
-  return throttled;
-}
-function refWithControl(initial, options = {}) {
-  let source = initial;
-  let track;
-  let trigger;
-  const ref2 = customRef((_track, _trigger) => {
-    track = _track;
-    trigger = _trigger;
-    return {
-      get() {
-        return get2();
-      },
-      set(v) {
-        set3(v);
-      }
-    };
-  });
-  function get2(tracking = true) {
-    if (tracking)
-      track();
-    return source;
-  }
-  function set3(value, triggering = true) {
-    var _a, _b;
-    if (value === source)
-      return;
-    const old = source;
-    if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)
-      return;
-    source = value;
-    (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);
-    if (triggering)
-      trigger();
-  }
-  const untrackedGet = () => get2(false);
-  const silentSet = (v) => set3(v, false);
-  const peek = () => get2(false);
-  const lay = (v) => set3(v, false);
-  return extendRef(
-    ref2,
-    {
-      get: get2,
-      set: set3,
-      untrackedGet,
-      silentSet,
-      peek,
-      lay
-    },
-    { enumerable: true }
-  );
-}
-var controlledRef = refWithControl;
-function set2(...args) {
-  if (args.length === 2) {
-    const [ref2, value] = args;
-    ref2.value = value;
-  }
-  if (args.length === 3) {
-    if (isVue2) {
-      set(...args);
-    } else {
-      const [target, key, value] = args;
-      target[key] = value;
-    }
-  }
-}
-function syncRef(left, right, options = {}) {
-  var _a, _b;
-  const {
-    flush = "sync",
-    deep = false,
-    immediate = true,
-    direction = "both",
-    transform = {}
-  } = options;
-  let watchLeft;
-  let watchRight;
-  const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;
-  const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;
-  if (direction === "both" || direction === "ltr") {
-    watchLeft = watch(
-      left,
-      (newValue) => right.value = transformLTR(newValue),
-      { flush, deep, immediate }
-    );
-  }
-  if (direction === "both" || direction === "rtl") {
-    watchRight = watch(
-      right,
-      (newValue) => left.value = transformRTL(newValue),
-      { flush, deep, immediate }
-    );
-  }
-  return () => {
-    watchLeft == null ? void 0 : watchLeft();
-    watchRight == null ? void 0 : watchRight();
-  };
-}
-function syncRefs(source, targets, options = {}) {
-  const {
-    flush = "sync",
-    deep = false,
-    immediate = true
-  } = options;
-  if (!Array.isArray(targets))
-    targets = [targets];
-  return watch(
-    source,
-    (newValue) => targets.forEach((target) => target.value = newValue),
-    { flush, deep, immediate }
-  );
-}
-var __defProp$9 = Object.defineProperty;
-var __defProps$7 = Object.defineProperties;
-var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
-var __hasOwnProp$b = Object.prototype.hasOwnProperty;
-var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$9 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$b.call(b, prop))
-      __defNormalProp$9(a, prop, b[prop]);
-  if (__getOwnPropSymbols$b)
-    for (var prop of __getOwnPropSymbols$b(b)) {
-      if (__propIsEnum$b.call(b, prop))
-        __defNormalProp$9(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
-function toRefs2(objectRef) {
-  if (!isRef(objectRef))
-    return toRefs(objectRef);
-  const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};
-  for (const key in objectRef.value) {
-    result[key] = customRef(() => ({
-      get() {
-        return objectRef.value[key];
-      },
-      set(v) {
-        if (Array.isArray(objectRef.value)) {
-          const copy = [...objectRef.value];
-          copy[key] = v;
-          objectRef.value = copy;
-        } else {
-          const newObject = __spreadProps$7(__spreadValues$9({}, objectRef.value), { [key]: v });
-          Object.setPrototypeOf(newObject, objectRef.value);
-          objectRef.value = newObject;
-        }
-      }
-    }));
-  }
-  return result;
-}
-function tryOnBeforeMount(fn, sync = true) {
-  if (getCurrentInstance())
-    onBeforeMount(fn);
-  else if (sync)
-    fn();
-  else
-    nextTick(fn);
-}
-function tryOnBeforeUnmount(fn) {
-  if (getCurrentInstance())
-    onBeforeUnmount(fn);
-}
-function tryOnMounted(fn, sync = true) {
-  if (getCurrentInstance())
-    onMounted(fn);
-  else if (sync)
-    fn();
-  else
-    nextTick(fn);
-}
-function tryOnUnmounted(fn) {
-  if (getCurrentInstance())
-    onUnmounted(fn);
-}
-function createUntil(r, isNot = false) {
-  function toMatch(condition, { flush = "sync", deep = false, timeout, throwOnTimeout } = {}) {
-    let stop = null;
-    const watcher = new Promise((resolve) => {
-      stop = watch(
-        r,
-        (v) => {
-          if (condition(v) !== isNot) {
-            stop == null ? void 0 : stop();
-            resolve(v);
-          }
-        },
-        {
-          flush,
-          deep,
-          immediate: true
-        }
-      );
-    });
-    const promises = [watcher];
-    if (timeout != null) {
-      promises.push(
-        promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())
-      );
-    }
-    return Promise.race(promises);
-  }
-  function toBe(value, options) {
-    if (!isRef(value))
-      return toMatch((v) => v === value, options);
-    const { flush = "sync", deep = false, timeout, throwOnTimeout } = options != null ? options : {};
-    let stop = null;
-    const watcher = new Promise((resolve) => {
-      stop = watch(
-        [r, value],
-        ([v1, v2]) => {
-          if (isNot !== (v1 === v2)) {
-            stop == null ? void 0 : stop();
-            resolve(v1);
-          }
-        },
-        {
-          flush,
-          deep,
-          immediate: true
-        }
-      );
-    });
-    const promises = [watcher];
-    if (timeout != null) {
-      promises.push(
-        promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {
-          stop == null ? void 0 : stop();
-          return toValue(r);
-        })
-      );
-    }
-    return Promise.race(promises);
-  }
-  function toBeTruthy(options) {
-    return toMatch((v) => Boolean(v), options);
-  }
-  function toBeNull(options) {
-    return toBe(null, options);
-  }
-  function toBeUndefined(options) {
-    return toBe(void 0, options);
-  }
-  function toBeNaN(options) {
-    return toMatch(Number.isNaN, options);
-  }
-  function toContains(value, options) {
-    return toMatch((v) => {
-      const array = Array.from(v);
-      return array.includes(value) || array.includes(toValue(value));
-    }, options);
-  }
-  function changed(options) {
-    return changedTimes(1, options);
-  }
-  function changedTimes(n = 1, options) {
-    let count = -1;
-    return toMatch(() => {
-      count += 1;
-      return count >= n;
-    }, options);
-  }
-  if (Array.isArray(toValue(r))) {
-    const instance = {
-      toMatch,
-      toContains,
-      changed,
-      changedTimes,
-      get not() {
-        return createUntil(r, !isNot);
-      }
-    };
-    return instance;
-  } else {
-    const instance = {
-      toMatch,
-      toBe,
-      toBeTruthy,
-      toBeNull,
-      toBeNaN,
-      toBeUndefined,
-      changed,
-      changedTimes,
-      get not() {
-        return createUntil(r, !isNot);
-      }
-    };
-    return instance;
-  }
-}
-function until(r) {
-  return createUntil(r);
-}
-function defaultComparator(value, othVal) {
-  return value === othVal;
-}
-function useArrayDifference(...args) {
-  var _a;
-  const list = args[0];
-  const values = args[1];
-  let compareFn = (_a = args[2]) != null ? _a : defaultComparator;
-  if (typeof compareFn === "string") {
-    const key = compareFn;
-    compareFn = (value, othVal) => value[key] === othVal[key];
-  }
-  return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));
-}
-function useArrayEvery(list, fn) {
-  return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));
-}
-function useArrayFilter(list, fn) {
-  return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));
-}
-function useArrayFind(list, fn) {
-  return computed(
-    () => toValue(
-      toValue(list).find((element, index, array) => fn(toValue(element), index, array))
-    )
-  );
-}
-function useArrayFindIndex(list, fn) {
-  return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));
-}
-function findLast(arr, cb) {
-  let index = arr.length;
-  while (index-- > 0) {
-    if (cb(arr[index], index, arr))
-      return arr[index];
-  }
-  return void 0;
-}
-function useArrayFindLast(list, fn) {
-  return computed(
-    () => toValue(
-      !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))
-    )
-  );
-}
-function isArrayIncludesOptions(obj) {
-  return isObject(obj) && containsProp(obj, "formIndex", "comparator");
-}
-function useArrayIncludes(...args) {
-  var _a;
-  const list = args[0];
-  const value = args[1];
-  let comparator = args[2];
-  let formIndex = 0;
-  if (isArrayIncludesOptions(comparator)) {
-    formIndex = (_a = comparator.fromIndex) != null ? _a : 0;
-    comparator = comparator.comparator;
-  }
-  if (typeof comparator === "string") {
-    const key = comparator;
-    comparator = (element, value2) => element[key] === toValue(value2);
-  }
-  comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);
-  return computed(
-    () => toValue(list).slice(formIndex).some(
-      (element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))
-    )
-  );
-}
-function useArrayJoin(list, separator) {
-  return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));
-}
-function useArrayMap(list, fn) {
-  return computed(() => toValue(list).map((i) => toValue(i)).map(fn));
-}
-function useArrayReduce(list, reducer, ...args) {
-  const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);
-  return computed(() => {
-    const resolved = toValue(list);
-    return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);
-  });
-}
-function useArraySome(list, fn) {
-  return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));
-}
-function uniq(array) {
-  return Array.from(new Set(array));
-}
-function uniqueElementsBy(array, fn) {
-  return array.reduce((acc, v) => {
-    if (!acc.some((x) => fn(v, x, array)))
-      acc.push(v);
-    return acc;
-  }, []);
-}
-function useArrayUnique(list, compareFn) {
-  return computed(() => {
-    const resolvedList = toValue(list).map((element) => toValue(element));
-    return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);
-  });
-}
-function useCounter(initialValue = 0, options = {}) {
-  const count = ref(initialValue);
-  const {
-    max = Infinity,
-    min = -Infinity
-  } = options;
-  const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);
-  const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);
-  const get2 = () => count.value;
-  const set3 = (val) => count.value = Math.max(min, Math.min(max, val));
-  const reset = (val = initialValue) => {
-    initialValue = val;
-    return set3(val);
-  };
-  return { count, inc, dec, get: get2, set: set3, reset };
-}
-var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
-var REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
-function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {
-  let m = hours < 12 ? "AM" : "PM";
-  if (hasPeriod)
-    m = m.split("").reduce((acc, curr) => acc += `${curr}.`, "");
-  return isLowercase ? m.toLowerCase() : m;
-}
-function formatDate(date, formatStr, options = {}) {
-  var _a;
-  const years = date.getFullYear();
-  const month = date.getMonth();
-  const days = date.getDate();
-  const hours = date.getHours();
-  const minutes = date.getMinutes();
-  const seconds = date.getSeconds();
-  const milliseconds = date.getMilliseconds();
-  const day = date.getDay();
-  const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;
-  const matches = {
-    YY: () => String(years).slice(-2),
-    YYYY: () => years,
-    M: () => month + 1,
-    MM: () => `${month + 1}`.padStart(2, "0"),
-    MMM: () => date.toLocaleDateString(options.locales, { month: "short" }),
-    MMMM: () => date.toLocaleDateString(options.locales, { month: "long" }),
-    D: () => String(days),
-    DD: () => `${days}`.padStart(2, "0"),
-    H: () => String(hours),
-    HH: () => `${hours}`.padStart(2, "0"),
-    h: () => `${hours % 12 || 12}`.padStart(1, "0"),
-    hh: () => `${hours % 12 || 12}`.padStart(2, "0"),
-    m: () => String(minutes),
-    mm: () => `${minutes}`.padStart(2, "0"),
-    s: () => String(seconds),
-    ss: () => `${seconds}`.padStart(2, "0"),
-    SSS: () => `${milliseconds}`.padStart(3, "0"),
-    d: () => day,
-    dd: () => date.toLocaleDateString(options.locales, { weekday: "narrow" }),
-    ddd: () => date.toLocaleDateString(options.locales, { weekday: "short" }),
-    dddd: () => date.toLocaleDateString(options.locales, { weekday: "long" }),
-    A: () => meridiem(hours, minutes),
-    AA: () => meridiem(hours, minutes, false, true),
-    a: () => meridiem(hours, minutes, true),
-    aa: () => meridiem(hours, minutes, true, true)
-  };
-  return formatStr.replace(REGEX_FORMAT, (match, $1) => {
-    var _a2;
-    return $1 || ((_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) || match;
-  });
-}
-function normalizeDate(date) {
-  if (date === null)
-    return /* @__PURE__ */ new Date(NaN);
-  if (date === void 0)
-    return /* @__PURE__ */ new Date();
-  if (date instanceof Date)
-    return new Date(date);
-  if (typeof date === "string" && !/Z$/i.test(date)) {
-    const d = date.match(REGEX_PARSE);
-    if (d) {
-      const m = d[2] - 1 || 0;
-      const ms = (d[7] || "0").substring(0, 3);
-      return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
-    }
-  }
-  return new Date(date);
-}
-function useDateFormat(date, formatStr = "HH:mm:ss", options = {}) {
-  return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));
-}
-function useIntervalFn(cb, interval = 1e3, options = {}) {
-  const {
-    immediate = true,
-    immediateCallback = false
-  } = options;
-  let timer = null;
-  const isActive = ref(false);
-  function clean() {
-    if (timer) {
-      clearInterval(timer);
-      timer = null;
-    }
-  }
-  function pause() {
-    isActive.value = false;
-    clean();
-  }
-  function resume() {
-    const intervalValue = toValue(interval);
-    if (intervalValue <= 0)
-      return;
-    isActive.value = true;
-    if (immediateCallback)
-      cb();
-    clean();
-    timer = setInterval(cb, intervalValue);
-  }
-  if (immediate && isClient)
-    resume();
-  if (isRef(interval) || typeof interval === "function") {
-    const stopWatch = watch(interval, () => {
-      if (isActive.value && isClient)
-        resume();
-    });
-    tryOnScopeDispose(stopWatch);
-  }
-  tryOnScopeDispose(pause);
-  return {
-    isActive,
-    pause,
-    resume
-  };
-}
-var __defProp$8 = Object.defineProperty;
-var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
-var __hasOwnProp$a = Object.prototype.hasOwnProperty;
-var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$8 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$a.call(b, prop))
-      __defNormalProp$8(a, prop, b[prop]);
-  if (__getOwnPropSymbols$a)
-    for (var prop of __getOwnPropSymbols$a(b)) {
-      if (__propIsEnum$a.call(b, prop))
-        __defNormalProp$8(a, prop, b[prop]);
-    }
-  return a;
-};
-function useInterval(interval = 1e3, options = {}) {
-  const {
-    controls: exposeControls = false,
-    immediate = true,
-    callback
-  } = options;
-  const counter = ref(0);
-  const update = () => counter.value += 1;
-  const reset = () => {
-    counter.value = 0;
-  };
-  const controls = useIntervalFn(
-    callback ? () => {
-      update();
-      callback(counter.value);
-    } : update,
-    interval,
-    { immediate }
-  );
-  if (exposeControls) {
-    return __spreadValues$8({
-      counter,
-      reset
-    }, controls);
-  } else {
-    return counter;
-  }
-}
-function useLastChanged(source, options = {}) {
-  var _a;
-  const ms = ref((_a = options.initialValue) != null ? _a : null);
-  watch(
-    source,
-    () => ms.value = timestamp(),
-    options
-  );
-  return ms;
-}
-function useTimeoutFn(cb, interval, options = {}) {
-  const {
-    immediate = true
-  } = options;
-  const isPending = ref(false);
-  let timer = null;
-  function clear() {
-    if (timer) {
-      clearTimeout(timer);
-      timer = null;
-    }
-  }
-  function stop() {
-    isPending.value = false;
-    clear();
-  }
-  function start(...args) {
-    clear();
-    isPending.value = true;
-    timer = setTimeout(() => {
-      isPending.value = false;
-      timer = null;
-      cb(...args);
-    }, toValue(interval));
-  }
-  if (immediate) {
-    isPending.value = true;
-    if (isClient)
-      start();
-  }
-  tryOnScopeDispose(stop);
-  return {
-    isPending: readonly(isPending),
-    start,
-    stop
-  };
-}
-var __defProp$7 = Object.defineProperty;
-var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
-var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
-var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$7 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$9.call(b, prop))
-      __defNormalProp$7(a, prop, b[prop]);
-  if (__getOwnPropSymbols$9)
-    for (var prop of __getOwnPropSymbols$9(b)) {
-      if (__propIsEnum$9.call(b, prop))
-        __defNormalProp$7(a, prop, b[prop]);
-    }
-  return a;
-};
-function useTimeout(interval = 1e3, options = {}) {
-  const {
-    controls: exposeControls = false,
-    callback
-  } = options;
-  const controls = useTimeoutFn(
-    callback != null ? callback : noop,
-    interval,
-    options
-  );
-  const ready = computed(() => !controls.isPending.value);
-  if (exposeControls) {
-    return __spreadValues$7({
-      ready
-    }, controls);
-  } else {
-    return ready;
-  }
-}
-function useToNumber(value, options = {}) {
-  const {
-    method = "parseFloat",
-    radix,
-    nanToZero
-  } = options;
-  return computed(() => {
-    let resolved = toValue(value);
-    if (typeof resolved === "string")
-      resolved = Number[method](resolved, radix);
-    if (nanToZero && isNaN(resolved))
-      resolved = 0;
-    return resolved;
-  });
-}
-function useToString(value) {
-  return computed(() => `${toValue(value)}`);
-}
-function useToggle(initialValue = false, options = {}) {
-  const {
-    truthyValue = true,
-    falsyValue = false
-  } = options;
-  const valueIsRef = isRef(initialValue);
-  const _value = ref(initialValue);
-  function toggle(value) {
-    if (arguments.length) {
-      _value.value = value;
-      return _value.value;
-    } else {
-      const truthy = toValue(truthyValue);
-      _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;
-      return _value.value;
-    }
-  }
-  if (valueIsRef)
-    return toggle;
-  else
-    return [_value, toggle];
-}
-function watchArray(source, cb, options) {
-  let oldList = (options == null ? void 0 : options.immediate) ? [] : [
-    ...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)
-  ];
-  return watch(source, (newList, _, onCleanup) => {
-    const oldListRemains = new Array(oldList.length);
-    const added = [];
-    for (const obj of newList) {
-      let found = false;
-      for (let i = 0; i < oldList.length; i++) {
-        if (!oldListRemains[i] && obj === oldList[i]) {
-          oldListRemains[i] = true;
-          found = true;
-          break;
-        }
-      }
-      if (!found)
-        added.push(obj);
-    }
-    const removed = oldList.filter((_2, i) => !oldListRemains[i]);
-    cb(newList, oldList, added, removed, onCleanup);
-    oldList = [...newList];
-  }, options);
-}
-var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
-var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
-var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
-var __objRest$5 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$8)
-    for (var prop of __getOwnPropSymbols$8(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function watchWithFilter(source, cb, options = {}) {
-  const _a = options, {
-    eventFilter = bypassFilter
-  } = _a, watchOptions = __objRest$5(_a, [
-    "eventFilter"
-  ]);
-  return watch(
-    source,
-    createFilterWrapper(
-      eventFilter,
-      cb
-    ),
-    watchOptions
-  );
-}
-var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
-var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
-var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
-var __objRest$4 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$7)
-    for (var prop of __getOwnPropSymbols$7(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function watchAtMost(source, cb, options) {
-  const _a = options, {
-    count
-  } = _a, watchOptions = __objRest$4(_a, [
-    "count"
-  ]);
-  const current = ref(0);
-  const stop = watchWithFilter(
-    source,
-    (...args) => {
-      current.value += 1;
-      if (current.value >= toValue(count))
-        nextTick(() => stop());
-      cb(...args);
-    },
-    watchOptions
-  );
-  return { count: current, stop };
-}
-var __defProp$6 = Object.defineProperty;
-var __defProps$6 = Object.defineProperties;
-var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
-var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
-var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$6 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$6.call(b, prop))
-      __defNormalProp$6(a, prop, b[prop]);
-  if (__getOwnPropSymbols$6)
-    for (var prop of __getOwnPropSymbols$6(b)) {
-      if (__propIsEnum$6.call(b, prop))
-        __defNormalProp$6(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
-var __objRest$3 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$6)
-    for (var prop of __getOwnPropSymbols$6(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function watchDebounced(source, cb, options = {}) {
-  const _a = options, {
-    debounce = 0,
-    maxWait = void 0
-  } = _a, watchOptions = __objRest$3(_a, [
-    "debounce",
-    "maxWait"
-  ]);
-  return watchWithFilter(
-    source,
-    cb,
-    __spreadProps$6(__spreadValues$6({}, watchOptions), {
-      eventFilter: debounceFilter(debounce, { maxWait })
-    })
-  );
-}
-var __defProp$5 = Object.defineProperty;
-var __defProps$5 = Object.defineProperties;
-var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
-var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
-var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$5 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$5.call(b, prop))
-      __defNormalProp$5(a, prop, b[prop]);
-  if (__getOwnPropSymbols$5)
-    for (var prop of __getOwnPropSymbols$5(b)) {
-      if (__propIsEnum$5.call(b, prop))
-        __defNormalProp$5(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
-function watchDeep(source, cb, options) {
-  return watch(
-    source,
-    cb,
-    __spreadProps$5(__spreadValues$5({}, options), {
-      deep: true
-    })
-  );
-}
-var __defProp$4 = Object.defineProperty;
-var __defProps$4 = Object.defineProperties;
-var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
-var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
-var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$4 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$4.call(b, prop))
-      __defNormalProp$4(a, prop, b[prop]);
-  if (__getOwnPropSymbols$4)
-    for (var prop of __getOwnPropSymbols$4(b)) {
-      if (__propIsEnum$4.call(b, prop))
-        __defNormalProp$4(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
-var __objRest$2 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$4)
-    for (var prop of __getOwnPropSymbols$4(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function watchIgnorable(source, cb, options = {}) {
-  const _a = options, {
-    eventFilter = bypassFilter
-  } = _a, watchOptions = __objRest$2(_a, [
-    "eventFilter"
-  ]);
-  const filteredCb = createFilterWrapper(
-    eventFilter,
-    cb
-  );
-  let ignoreUpdates;
-  let ignorePrevAsyncUpdates;
-  let stop;
-  if (watchOptions.flush === "sync") {
-    const ignore = ref(false);
-    ignorePrevAsyncUpdates = () => {
-    };
-    ignoreUpdates = (updater) => {
-      ignore.value = true;
-      updater();
-      ignore.value = false;
-    };
-    stop = watch(
-      source,
-      (...args) => {
-        if (!ignore.value)
-          filteredCb(...args);
-      },
-      watchOptions
-    );
-  } else {
-    const disposables = [];
-    const ignoreCounter = ref(0);
-    const syncCounter = ref(0);
-    ignorePrevAsyncUpdates = () => {
-      ignoreCounter.value = syncCounter.value;
-    };
-    disposables.push(
-      watch(
-        source,
-        () => {
-          syncCounter.value++;
-        },
-        __spreadProps$4(__spreadValues$4({}, watchOptions), { flush: "sync" })
-      )
-    );
-    ignoreUpdates = (updater) => {
-      const syncCounterPrev = syncCounter.value;
-      updater();
-      ignoreCounter.value += syncCounter.value - syncCounterPrev;
-    };
-    disposables.push(
-      watch(
-        source,
-        (...args) => {
-          const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;
-          ignoreCounter.value = 0;
-          syncCounter.value = 0;
-          if (ignore)
-            return;
-          filteredCb(...args);
-        },
-        watchOptions
-      )
-    );
-    stop = () => {
-      disposables.forEach((fn) => fn());
-    };
-  }
-  return { stop, ignoreUpdates, ignorePrevAsyncUpdates };
-}
-var __defProp$3 = Object.defineProperty;
-var __defProps$3 = Object.defineProperties;
-var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
-var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
-var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$3 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$3.call(b, prop))
-      __defNormalProp$3(a, prop, b[prop]);
-  if (__getOwnPropSymbols$3)
-    for (var prop of __getOwnPropSymbols$3(b)) {
-      if (__propIsEnum$3.call(b, prop))
-        __defNormalProp$3(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
-function watchImmediate(source, cb, options) {
-  return watch(
-    source,
-    cb,
-    __spreadProps$3(__spreadValues$3({}, options), {
-      immediate: true
-    })
-  );
-}
-function watchOnce(source, cb, options) {
-  const stop = watch(source, (...args) => {
-    nextTick(() => stop());
-    return cb(...args);
-  }, options);
-}
-var __defProp$2 = Object.defineProperty;
-var __defProps$2 = Object.defineProperties;
-var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
-var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
-var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$2 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$2.call(b, prop))
-      __defNormalProp$2(a, prop, b[prop]);
-  if (__getOwnPropSymbols$2)
-    for (var prop of __getOwnPropSymbols$2(b)) {
-      if (__propIsEnum$2.call(b, prop))
-        __defNormalProp$2(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
-var __objRest$1 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$2)
-    for (var prop of __getOwnPropSymbols$2(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function watchPausable(source, cb, options = {}) {
-  const _a = options, {
-    eventFilter: filter
-  } = _a, watchOptions = __objRest$1(_a, [
-    "eventFilter"
-  ]);
-  const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
-  const stop = watchWithFilter(
-    source,
-    cb,
-    __spreadProps$2(__spreadValues$2({}, watchOptions), {
-      eventFilter
-    })
-  );
-  return { stop, pause, resume, isActive };
-}
-var __defProp$1 = Object.defineProperty;
-var __defProps$1 = Object.defineProperties;
-var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
-var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
-var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$1 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$1.call(b, prop))
-      __defNormalProp$1(a, prop, b[prop]);
-  if (__getOwnPropSymbols$1)
-    for (var prop of __getOwnPropSymbols$1(b)) {
-      if (__propIsEnum$1.call(b, prop))
-        __defNormalProp$1(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
-var __objRest = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$1)
-    for (var prop of __getOwnPropSymbols$1(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function watchThrottled(source, cb, options = {}) {
-  const _a = options, {
-    throttle = 0,
-    trailing = true,
-    leading = true
-  } = _a, watchOptions = __objRest(_a, [
-    "throttle",
-    "trailing",
-    "leading"
-  ]);
-  return watchWithFilter(
-    source,
-    cb,
-    __spreadProps$1(__spreadValues$1({}, watchOptions), {
-      eventFilter: throttleFilter(throttle, trailing, leading)
-    })
-  );
-}
-var __defProp = Object.defineProperty;
-var __defProps = Object.defineProperties;
-var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp.call(b, prop))
-      __defNormalProp(a, prop, b[prop]);
-  if (__getOwnPropSymbols)
-    for (var prop of __getOwnPropSymbols(b)) {
-      if (__propIsEnum.call(b, prop))
-        __defNormalProp(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
-function watchTriggerable(source, cb, options = {}) {
-  let cleanupFn;
-  function onEffect() {
-    if (!cleanupFn)
-      return;
-    const fn = cleanupFn;
-    cleanupFn = void 0;
-    fn();
-  }
-  function onCleanup(callback) {
-    cleanupFn = callback;
-  }
-  const _cb = (value, oldValue) => {
-    onEffect();
-    return cb(value, oldValue, onCleanup);
-  };
-  const res = watchIgnorable(source, _cb, options);
-  const { ignoreUpdates } = res;
-  const trigger = () => {
-    let res2;
-    ignoreUpdates(() => {
-      res2 = _cb(getWatchSources(source), getOldValue(source));
-    });
-    return res2;
-  };
-  return __spreadProps(__spreadValues({}, res), {
-    trigger
-  });
-}
-function getWatchSources(sources) {
-  if (isReactive(sources))
-    return sources;
-  if (Array.isArray(sources))
-    return sources.map((item) => toValue(item));
-  return toValue(sources);
-}
-function getOldValue(source) {
-  return Array.isArray(source) ? source.map(() => void 0) : void 0;
-}
-function whenever(source, cb, options) {
-  return watch(
-    source,
-    (v, ov, onInvalidate) => {
-      if (v)
-        cb(v, ov, onInvalidate);
-    },
-    options
-  );
-}
-
-// node_modules/.pnpm/@vueuse+core@10.1.2_vue@3.2.47/node_modules/@vueuse/core/index.mjs
-function computedAsync(evaluationCallback, initialState, optionsOrRef) {
-  let options;
-  if (isRef(optionsOrRef)) {
-    options = {
-      evaluating: optionsOrRef
-    };
-  } else {
-    options = optionsOrRef || {};
-  }
-  const {
-    lazy = false,
-    evaluating = void 0,
-    shallow = true,
-    onError = noop
-  } = options;
-  const started = ref(!lazy);
-  const current = shallow ? shallowRef(initialState) : ref(initialState);
-  let counter = 0;
-  watchEffect(async (onInvalidate) => {
-    if (!started.value)
-      return;
-    counter++;
-    const counterAtBeginning = counter;
-    let hasFinished = false;
-    if (evaluating) {
-      Promise.resolve().then(() => {
-        evaluating.value = true;
-      });
-    }
-    try {
-      const result = await evaluationCallback((cancelCallback) => {
-        onInvalidate(() => {
-          if (evaluating)
-            evaluating.value = false;
-          if (!hasFinished)
-            cancelCallback();
-        });
-      });
-      if (counterAtBeginning === counter)
-        current.value = result;
-    } catch (e) {
-      onError(e);
-    } finally {
-      if (evaluating && counterAtBeginning === counter)
-        evaluating.value = false;
-      hasFinished = true;
-    }
-  });
-  if (lazy) {
-    return computed(() => {
-      started.value = true;
-      return current.value;
-    });
-  } else {
-    return current;
-  }
-}
-function computedInject(key, options, defaultSource, treatDefaultAsFactory) {
-  let source = inject(key);
-  if (defaultSource)
-    source = inject(key, defaultSource);
-  if (treatDefaultAsFactory)
-    source = inject(key, defaultSource, treatDefaultAsFactory);
-  if (typeof options === "function") {
-    return computed((ctx) => options(source, ctx));
-  } else {
-    return computed({
-      get: (ctx) => options.get(source, ctx),
-      set: options.set
-    });
-  }
-}
-var __defProp$p = Object.defineProperty;
-var __defProps$c = Object.defineProperties;
-var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$s = Object.getOwnPropertySymbols;
-var __hasOwnProp$s = Object.prototype.hasOwnProperty;
-var __propIsEnum$s = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$p = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$p = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$s.call(b, prop))
-      __defNormalProp$p(a, prop, b[prop]);
-  if (__getOwnPropSymbols$s)
-    for (var prop of __getOwnPropSymbols$s(b)) {
-      if (__propIsEnum$s.call(b, prop))
-        __defNormalProp$p(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
-function createReusableTemplate() {
-  if (!isVue3 && !version.startsWith("2.7.")) {
-    if (true)
-      throw new Error("[VueUse] createReusableTemplate only works in Vue 2.7 or above.");
-    return;
-  }
-  const render = shallowRef();
-  const define = defineComponent({
-    setup(_, { slots }) {
-      return () => {
-        render.value = slots.default;
-      };
-    }
-  });
-  const reuse = defineComponent({
-    inheritAttrs: false,
-    setup(_, { attrs, slots }) {
-      return () => {
-        var _a;
-        if (!render.value && true)
-          throw new Error("[VueUse] Failed to find the definition of reusable template");
-        return (_a = render.value) == null ? void 0 : _a.call(render, __spreadProps$c(__spreadValues$p({}, attrs), { $slots: slots }));
-      };
-    }
-  });
-  return makeDestructurable(
-    { define, reuse },
-    [define, reuse]
-  );
-}
-function createTemplatePromise(options = {}) {
-  if (!isVue3) {
-    if (true)
-      throw new Error("[VueUse] createTemplatePromise only works in Vue 3 or above.");
-    return;
-  }
-  let index = 0;
-  const instances = ref([]);
-  function create(...args) {
-    const props = shallowReactive({
-      key: index++,
-      args,
-      promise: void 0,
-      resolve: () => {
-      },
-      reject: () => {
-      },
-      isResolving: false,
-      options
-    });
-    instances.value.push(props);
-    props.promise = new Promise((_resolve, _reject) => {
-      props.resolve = (v) => {
-        props.isResolving = true;
-        return _resolve(v);
-      };
-      props.reject = _reject;
-    }).finally(() => {
-      props.promise = void 0;
-      const index2 = instances.value.indexOf(props);
-      if (index2 !== -1)
-        instances.value.splice(index2, 1);
-    });
-    return props.promise;
-  }
-  function start(...args) {
-    if (options.singleton && instances.value.length > 0)
-      return instances.value[0].promise;
-    return create(...args);
-  }
-  const component = defineComponent((_, { slots }) => {
-    const renderList = () => instances.value.map((props) => {
-      var _a;
-      return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));
-    });
-    if (options.transition)
-      return () => h(TransitionGroup, options.transition, renderList);
-    return renderList;
-  });
-  component.start = start;
-  return component;
-}
-function createUnrefFn(fn) {
-  return function(...args) {
-    return fn.apply(this, args.map((i) => toValue(i)));
-  };
-}
-function unrefElement(elRef) {
-  var _a;
-  const plain = toValue(elRef);
-  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
-}
-var defaultWindow = isClient ? window : void 0;
-var defaultDocument = isClient ? window.document : void 0;
-var defaultNavigator = isClient ? window.navigator : void 0;
-var defaultLocation = isClient ? window.location : void 0;
-function useEventListener(...args) {
-  let target;
-  let events2;
-  let listeners;
-  let options;
-  if (typeof args[0] === "string" || Array.isArray(args[0])) {
-    [events2, listeners, options] = args;
-    target = defaultWindow;
-  } else {
-    [target, events2, listeners, options] = args;
-  }
-  if (!target)
-    return noop;
-  if (!Array.isArray(events2))
-    events2 = [events2];
-  if (!Array.isArray(listeners))
-    listeners = [listeners];
-  const cleanups = [];
-  const cleanup = () => {
-    cleanups.forEach((fn) => fn());
-    cleanups.length = 0;
-  };
-  const register = (el, event, listener, options2) => {
-    el.addEventListener(event, listener, options2);
-    return () => el.removeEventListener(event, listener, options2);
-  };
-  const stopWatch = watch(
-    () => [unrefElement(target), toValue(options)],
-    ([el, options2]) => {
-      cleanup();
-      if (!el)
-        return;
-      cleanups.push(
-        ...events2.flatMap((event) => {
-          return listeners.map((listener) => register(el, event, listener, options2));
-        })
-      );
-    },
-    { immediate: true, flush: "post" }
-  );
-  const stop = () => {
-    stopWatch();
-    cleanup();
-  };
-  tryOnScopeDispose(stop);
-  return stop;
-}
-var _iOSWorkaround = false;
-function onClickOutside(target, handler, options = {}) {
-  const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;
-  if (!window2)
-    return;
-  if (isIOS && !_iOSWorkaround) {
-    _iOSWorkaround = true;
-    Array.from(window2.document.body.children).forEach((el) => el.addEventListener("click", noop));
-  }
-  let shouldListen = true;
-  const shouldIgnore = (event) => {
-    return ignore.some((target2) => {
-      if (typeof target2 === "string") {
-        return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));
-      } else {
-        const el = unrefElement(target2);
-        return el && (event.target === el || event.composedPath().includes(el));
-      }
-    });
-  };
-  const listener = (event) => {
-    const el = unrefElement(target);
-    if (!el || el === event.target || event.composedPath().includes(el))
-      return;
-    if (event.detail === 0)
-      shouldListen = !shouldIgnore(event);
-    if (!shouldListen) {
-      shouldListen = true;
-      return;
-    }
-    handler(event);
-  };
-  const cleanup = [
-    useEventListener(window2, "click", listener, { passive: true, capture }),
-    useEventListener(window2, "pointerdown", (e) => {
-      const el = unrefElement(target);
-      if (el)
-        shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);
-    }, { passive: true }),
-    detectIframe && useEventListener(window2, "blur", (event) => {
-      var _a;
-      const el = unrefElement(target);
-      if (((_a = window2.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window2.document.activeElement)))
-        handler(event);
-    })
-  ].filter(Boolean);
-  const stop = () => cleanup.forEach((fn) => fn());
-  return stop;
-}
-var __defProp$o = Object.defineProperty;
-var __defProps$b = Object.defineProperties;
-var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$r = Object.getOwnPropertySymbols;
-var __hasOwnProp$r = Object.prototype.hasOwnProperty;
-var __propIsEnum$r = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$o = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$r.call(b, prop))
-      __defNormalProp$o(a, prop, b[prop]);
-  if (__getOwnPropSymbols$r)
-    for (var prop of __getOwnPropSymbols$r(b)) {
-      if (__propIsEnum$r.call(b, prop))
-        __defNormalProp$o(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
-function createKeyPredicate(keyFilter) {
-  if (typeof keyFilter === "function")
-    return keyFilter;
-  else if (typeof keyFilter === "string")
-    return (event) => event.key === keyFilter;
-  else if (Array.isArray(keyFilter))
-    return (event) => keyFilter.includes(event.key);
-  return () => true;
-}
-function onKeyStroke(...args) {
-  let key;
-  let handler;
-  let options = {};
-  if (args.length === 3) {
-    key = args[0];
-    handler = args[1];
-    options = args[2];
-  } else if (args.length === 2) {
-    if (typeof args[1] === "object") {
-      key = true;
-      handler = args[0];
-      options = args[1];
-    } else {
-      key = args[0];
-      handler = args[1];
-    }
-  } else {
-    key = true;
-    handler = args[0];
-  }
-  const {
-    target = defaultWindow,
-    eventName = "keydown",
-    passive = false,
-    dedupe = false
-  } = options;
-  const predicate = createKeyPredicate(key);
-  const listener = (e) => {
-    if (e.repeat && toValue(dedupe))
-      return;
-    if (predicate(e))
-      handler(e);
-  };
-  return useEventListener(target, eventName, listener, passive);
-}
-function onKeyDown(key, handler, options = {}) {
-  return onKeyStroke(key, handler, __spreadProps$b(__spreadValues$o({}, options), { eventName: "keydown" }));
-}
-function onKeyPressed(key, handler, options = {}) {
-  return onKeyStroke(key, handler, __spreadProps$b(__spreadValues$o({}, options), { eventName: "keypress" }));
-}
-function onKeyUp(key, handler, options = {}) {
-  return onKeyStroke(key, handler, __spreadProps$b(__spreadValues$o({}, options), { eventName: "keyup" }));
-}
-var DEFAULT_DELAY = 500;
-function onLongPress(target, handler, options) {
-  var _a, _b;
-  const elementRef = computed(() => unrefElement(target));
-  let timeout;
-  function clear() {
-    if (timeout) {
-      clearTimeout(timeout);
-      timeout = void 0;
-    }
-  }
-  function onDown(ev) {
-    var _a2, _b2, _c, _d;
-    if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)
-      return;
-    clear();
-    if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)
-      ev.preventDefault();
-    if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)
-      ev.stopPropagation();
-    timeout = setTimeout(
-      () => handler(ev),
-      (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY
-    );
-  }
-  const listenerOptions = {
-    capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,
-    once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once
-  };
-  useEventListener(elementRef, "pointerdown", onDown, listenerOptions);
-  useEventListener(elementRef, "pointerup", clear, listenerOptions);
-  useEventListener(elementRef, "pointerleave", clear, listenerOptions);
-}
-function isFocusedElementEditable() {
-  const { activeElement, body } = document;
-  if (!activeElement)
-    return false;
-  if (activeElement === body)
-    return false;
-  switch (activeElement.tagName) {
-    case "INPUT":
-    case "TEXTAREA":
-      return true;
-  }
-  return activeElement.hasAttribute("contenteditable");
-}
-function isTypedCharValid({
-  keyCode,
-  metaKey,
-  ctrlKey,
-  altKey
-}) {
-  if (metaKey || ctrlKey || altKey)
-    return false;
-  if (keyCode >= 48 && keyCode <= 57)
-    return true;
-  if (keyCode >= 65 && keyCode <= 90)
-    return true;
-  if (keyCode >= 97 && keyCode <= 122)
-    return true;
-  return false;
-}
-function onStartTyping(callback, options = {}) {
-  const { document: document2 = defaultDocument } = options;
-  const keydown = (event) => {
-    !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);
-  };
-  if (document2)
-    useEventListener(document2, "keydown", keydown, { passive: true });
-}
-function templateRef(key, initialValue = null) {
-  const instance = getCurrentInstance();
-  let _trigger = () => {
-  };
-  const element = customRef((track, trigger) => {
-    _trigger = trigger;
-    return {
-      get() {
-        var _a, _b;
-        track();
-        return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;
-      },
-      set() {
-      }
-    };
-  });
-  tryOnMounted(_trigger);
-  onUpdated(_trigger);
-  return element;
-}
-function useActiveElement(options = {}) {
-  var _a;
-  const { window: window2 = defaultWindow } = options;
-  const document2 = (_a = options.document) != null ? _a : window2 == null ? void 0 : window2.document;
-  const activeElement = computedWithControl(
-    () => null,
-    () => document2 == null ? void 0 : document2.activeElement
-  );
-  if (window2) {
-    useEventListener(window2, "blur", (event) => {
-      if (event.relatedTarget !== null)
-        return;
-      activeElement.trigger();
-    }, true);
-    useEventListener(window2, "focus", activeElement.trigger, true);
-  }
-  return activeElement;
-}
-function useMounted() {
-  const isMounted = ref(false);
-  if (getCurrentInstance()) {
-    onMounted(() => {
-      isMounted.value = true;
-    });
-  }
-  return isMounted;
-}
-function useSupported(callback) {
-  const isMounted = useMounted();
-  return computed(() => {
-    isMounted.value;
-    return Boolean(callback());
-  });
-}
-function useRafFn(fn, options = {}) {
-  const {
-    immediate = true,
-    window: window2 = defaultWindow
-  } = options;
-  const isActive = ref(false);
-  let previousFrameTimestamp = 0;
-  let rafId = null;
-  function loop(timestamp2) {
-    if (!isActive.value || !window2)
-      return;
-    const delta = timestamp2 - previousFrameTimestamp;
-    fn({ delta, timestamp: timestamp2 });
-    previousFrameTimestamp = timestamp2;
-    rafId = window2.requestAnimationFrame(loop);
-  }
-  function resume() {
-    if (!isActive.value && window2) {
-      isActive.value = true;
-      rafId = window2.requestAnimationFrame(loop);
-    }
-  }
-  function pause() {
-    isActive.value = false;
-    if (rafId != null && window2) {
-      window2.cancelAnimationFrame(rafId);
-      rafId = null;
-    }
-  }
-  if (immediate)
-    resume();
-  tryOnScopeDispose(pause);
-  return {
-    isActive: readonly(isActive),
-    pause,
-    resume
-  };
-}
-function useAnimate(target, keyframes, options) {
-  let config;
-  let animateOptions;
-  if (isObject(options)) {
-    config = options;
-    animateOptions = objectOmit(options, ["window", "immediate", "commitStyles", "persist", "onReady", "onError"]);
-  } else {
-    config = { duration: options };
-    animateOptions = options;
-  }
-  const {
-    window: window2 = defaultWindow,
-    immediate = true,
-    commitStyles,
-    persist,
-    playbackRate: _playbackRate = 1,
-    onReady,
-    onError = (e) => {
-      console.error(e);
-    }
-  } = config;
-  const isSupported = useSupported(() => window2 && HTMLElement && "animate" in HTMLElement.prototype);
-  const animate = shallowRef(void 0);
-  const store = shallowReactive({
-    startTime: null,
-    currentTime: null,
-    timeline: null,
-    playbackRate: _playbackRate,
-    pending: false,
-    playState: immediate ? "idle" : "paused",
-    replaceState: "active"
-  });
-  const pending = computed(() => store.pending);
-  const playState = computed(() => store.playState);
-  const replaceState = computed(() => store.replaceState);
-  const startTime = computed({
-    get() {
-      return store.startTime;
-    },
-    set(value) {
-      store.startTime = value;
-      if (animate.value)
-        animate.value.startTime = value;
-    }
-  });
-  const currentTime = computed({
-    get() {
-      return store.currentTime;
-    },
-    set(value) {
-      store.currentTime = value;
-      if (animate.value) {
-        animate.value.currentTime = value;
-        syncResume();
-      }
-    }
-  });
-  const timeline = computed({
-    get() {
-      return store.timeline;
-    },
-    set(value) {
-      store.timeline = value;
-      if (animate.value)
-        animate.value.timeline = value;
-    }
-  });
-  const playbackRate = computed({
-    get() {
-      return store.playbackRate;
-    },
-    set(value) {
-      store.playbackRate = value;
-      if (animate.value)
-        animate.value.playbackRate = value;
-    }
-  });
-  const play = () => {
-    if (animate.value) {
-      try {
-        animate.value.play();
-        syncResume();
-      } catch (e) {
-        syncPause();
-        onError(e);
-      }
-    } else {
-      update();
-    }
-  };
-  const pause = () => {
-    var _a;
-    try {
-      (_a = animate.value) == null ? void 0 : _a.pause();
-      syncPause();
-    } catch (e) {
-      onError(e);
-    }
-  };
-  const reverse = () => {
-    var _a;
-    !animate.value && update();
-    try {
-      (_a = animate.value) == null ? void 0 : _a.reverse();
-      syncResume();
-    } catch (e) {
-      syncPause();
-      onError(e);
-    }
-  };
-  const finish = () => {
-    var _a;
-    try {
-      (_a = animate.value) == null ? void 0 : _a.finish();
-      syncPause();
-    } catch (e) {
-      onError(e);
-    }
-  };
-  const cancel = () => {
-    var _a;
-    try {
-      (_a = animate.value) == null ? void 0 : _a.cancel();
-      syncPause();
-    } catch (e) {
-      onError(e);
-    }
-  };
-  watch(() => unrefElement(target), (el) => {
-    el && update();
-  });
-  watch(() => keyframes, (value) => {
-    !animate.value && update();
-    if (!unrefElement(target) && animate.value) {
-      animate.value.effect = new KeyframeEffect(
-        unrefElement(target),
-        toValue(value),
-        animateOptions
-      );
-    }
-  }, { deep: true });
-  tryOnMounted(() => {
-    nextTick(() => update(true));
-  });
-  tryOnScopeDispose(cancel);
-  function update(init) {
-    const el = unrefElement(target);
-    if (!isSupported.value || !el)
-      return;
-    animate.value = el.animate(toValue(keyframes), animateOptions);
-    if (commitStyles)
-      animate.value.commitStyles();
-    if (persist)
-      animate.value.persist();
-    if (_playbackRate !== 1)
-      animate.value.playbackRate = _playbackRate;
-    if (init && !immediate)
-      animate.value.pause();
-    else
-      syncResume();
-    onReady == null ? void 0 : onReady(animate.value);
-  }
-  useEventListener(animate, "cancel", syncPause);
-  useEventListener(animate, "finish", syncPause);
-  useEventListener(animate, "remove", syncPause);
-  const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {
-    if (!animate.value)
-      return;
-    store.pending = animate.value.pending;
-    store.playState = animate.value.playState;
-    store.replaceState = animate.value.replaceState;
-    store.startTime = animate.value.startTime;
-    store.currentTime = animate.value.currentTime;
-    store.timeline = animate.value.timeline;
-    store.playbackRate = animate.value.playbackRate;
-  }, { immediate: false });
-  function syncResume() {
-    if (isSupported.value)
-      resumeRef();
-  }
-  function syncPause() {
-    if (isSupported.value && window2)
-      window2.requestAnimationFrame(pauseRef);
-  }
-  return {
-    isSupported,
-    animate,
-    // actions
-    play,
-    pause,
-    reverse,
-    finish,
-    cancel,
-    // state
-    pending,
-    playState,
-    replaceState,
-    startTime,
-    currentTime,
-    timeline,
-    playbackRate
-  };
-}
-function useAsyncQueue(tasks, options = {}) {
-  const {
-    interrupt = true,
-    onError = noop,
-    onFinished = noop
-  } = options;
-  const promiseState = {
-    pending: "pending",
-    rejected: "rejected",
-    fulfilled: "fulfilled"
-  };
-  const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));
-  const result = reactive(initialResult);
-  const activeIndex = ref(-1);
-  if (!tasks || tasks.length === 0) {
-    onFinished();
-    return {
-      activeIndex,
-      result
-    };
-  }
-  function updateResult(state, res) {
-    activeIndex.value++;
-    result[activeIndex.value].data = res;
-    result[activeIndex.value].state = state;
-  }
-  tasks.reduce((prev, curr) => {
-    return prev.then((prevRes) => {
-      var _a;
-      if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {
-        onFinished();
-        return;
-      }
-      return curr(prevRes).then((currentRes) => {
-        updateResult(promiseState.fulfilled, currentRes);
-        activeIndex.value === tasks.length - 1 && onFinished();
-        return currentRes;
-      });
-    }).catch((e) => {
-      updateResult(promiseState.rejected, e);
-      onError();
-      return e;
-    });
-  }, Promise.resolve());
-  return {
-    activeIndex,
-    result
-  };
-}
-var __defProp$n = Object.defineProperty;
-var __defProps$a = Object.defineProperties;
-var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$q = Object.getOwnPropertySymbols;
-var __hasOwnProp$q = Object.prototype.hasOwnProperty;
-var __propIsEnum$q = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$n = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$q.call(b, prop))
-      __defNormalProp$n(a, prop, b[prop]);
-  if (__getOwnPropSymbols$q)
-    for (var prop of __getOwnPropSymbols$q(b)) {
-      if (__propIsEnum$q.call(b, prop))
-        __defNormalProp$n(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
-function useAsyncState(promise, initialState, options) {
-  const {
-    immediate = true,
-    delay = 0,
-    onError = noop,
-    onSuccess = noop,
-    resetOnExecute = true,
-    shallow = true,
-    throwError
-  } = options != null ? options : {};
-  const state = shallow ? shallowRef(initialState) : ref(initialState);
-  const isReady = ref(false);
-  const isLoading = ref(false);
-  const error = shallowRef(void 0);
-  async function execute(delay2 = 0, ...args) {
-    if (resetOnExecute)
-      state.value = initialState;
-    error.value = void 0;
-    isReady.value = false;
-    isLoading.value = true;
-    if (delay2 > 0)
-      await promiseTimeout(delay2);
-    const _promise = typeof promise === "function" ? promise(...args) : promise;
-    try {
-      const data = await _promise;
-      state.value = data;
-      isReady.value = true;
-      onSuccess(data);
-    } catch (e) {
-      error.value = e;
-      onError(e);
-      if (throwError)
-        throw e;
-    } finally {
-      isLoading.value = false;
-    }
-    return state.value;
-  }
-  if (immediate)
-    execute(delay);
-  const shell = {
-    state,
-    isReady,
-    isLoading,
-    error,
-    execute
-  };
-  function waitUntilIsLoaded() {
-    return new Promise((resolve, reject) => {
-      until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);
-    });
-  }
-  return __spreadProps$a(__spreadValues$n({}, shell), {
-    then(onFulfilled, onRejected) {
-      return waitUntilIsLoaded().then(onFulfilled, onRejected);
-    }
-  });
-}
-var defaults = {
-  array: (v) => JSON.stringify(v),
-  object: (v) => JSON.stringify(v),
-  set: (v) => JSON.stringify(Array.from(v)),
-  map: (v) => JSON.stringify(Object.fromEntries(v)),
-  null: () => ""
-};
-function getDefaultSerialization(target) {
-  if (!target)
-    return defaults.null;
-  if (target instanceof Map)
-    return defaults.map;
-  else if (target instanceof Set)
-    return defaults.set;
-  else if (Array.isArray(target))
-    return defaults.array;
-  else
-    return defaults.object;
-}
-function useBase64(target, options) {
-  const base64 = ref("");
-  const promise = ref();
-  function execute() {
-    if (!isClient)
-      return;
-    promise.value = new Promise((resolve, reject) => {
-      try {
-        const _target = toValue(target);
-        if (_target == null) {
-          resolve("");
-        } else if (typeof _target === "string") {
-          resolve(blobToBase64(new Blob([_target], { type: "text/plain" })));
-        } else if (_target instanceof Blob) {
-          resolve(blobToBase64(_target));
-        } else if (_target instanceof ArrayBuffer) {
-          resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));
-        } else if (_target instanceof HTMLCanvasElement) {
-          resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));
-        } else if (_target instanceof HTMLImageElement) {
-          const img = _target.cloneNode(false);
-          img.crossOrigin = "Anonymous";
-          imgLoaded(img).then(() => {
-            const canvas = document.createElement("canvas");
-            const ctx = canvas.getContext("2d");
-            canvas.width = img.width;
-            canvas.height = img.height;
-            ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
-            resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));
-          }).catch(reject);
-        } else if (typeof _target === "object") {
-          const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);
-          const serialized = _serializeFn(_target);
-          return resolve(blobToBase64(new Blob([serialized], { type: "application/json" })));
-        } else {
-          reject(new Error("target is unsupported types"));
-        }
-      } catch (error) {
-        reject(error);
-      }
-    });
-    promise.value.then((res) => base64.value = res);
-    return promise.value;
-  }
-  if (isRef(target) || typeof target === "function")
-    watch(target, execute, { immediate: true });
-  else
-    execute();
-  return {
-    base64,
-    promise,
-    execute
-  };
-}
-function imgLoaded(img) {
-  return new Promise((resolve, reject) => {
-    if (!img.complete) {
-      img.onload = () => {
-        resolve();
-      };
-      img.onerror = reject;
-    } else {
-      resolve();
-    }
-  });
-}
-function blobToBase64(blob) {
-  return new Promise((resolve, reject) => {
-    const fr = new FileReader();
-    fr.onload = (e) => {
-      resolve(e.target.result);
-    };
-    fr.onerror = reject;
-    fr.readAsDataURL(blob);
-  });
-}
-function useBattery({ navigator = defaultNavigator } = {}) {
-  const events2 = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"];
-  const isSupported = useSupported(() => navigator && "getBattery" in navigator);
-  const charging = ref(false);
-  const chargingTime = ref(0);
-  const dischargingTime = ref(0);
-  const level = ref(1);
-  let battery;
-  function updateBatteryInfo() {
-    charging.value = this.charging;
-    chargingTime.value = this.chargingTime || 0;
-    dischargingTime.value = this.dischargingTime || 0;
-    level.value = this.level;
-  }
-  if (isSupported.value) {
-    navigator.getBattery().then((_battery) => {
-      battery = _battery;
-      updateBatteryInfo.call(battery);
-      for (const event of events2)
-        useEventListener(battery, event, updateBatteryInfo, { passive: true });
-    });
-  }
-  return {
-    isSupported,
-    charging,
-    chargingTime,
-    dischargingTime,
-    level
-  };
-}
-function useBluetooth(options) {
-  let {
-    acceptAllDevices = false
-  } = options || {};
-  const {
-    filters = void 0,
-    optionalServices = void 0,
-    navigator = defaultNavigator
-  } = options || {};
-  const isSupported = useSupported(() => navigator && "bluetooth" in navigator);
-  const device = shallowRef(void 0);
-  const error = shallowRef(null);
-  watch(device, () => {
-    connectToBluetoothGATTServer();
-  });
-  async function requestDevice() {
-    if (!isSupported.value)
-      return;
-    error.value = null;
-    if (filters && filters.length > 0)
-      acceptAllDevices = false;
-    try {
-      device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({
-        acceptAllDevices,
-        filters,
-        optionalServices
-      }));
-    } catch (err) {
-      error.value = err;
-    }
-  }
-  const server = ref();
-  const isConnected = computed(() => {
-    var _a;
-    return ((_a = server.value) == null ? void 0 : _a.connected) || false;
-  });
-  async function connectToBluetoothGATTServer() {
-    error.value = null;
-    if (device.value && device.value.gatt) {
-      device.value.addEventListener("gattserverdisconnected", () => {
-      });
-      try {
-        server.value = await device.value.gatt.connect();
-      } catch (err) {
-        error.value = err;
-      }
-    }
-  }
-  tryOnMounted(() => {
-    var _a;
-    if (device.value)
-      (_a = device.value.gatt) == null ? void 0 : _a.connect();
-  });
-  tryOnScopeDispose(() => {
-    var _a;
-    if (device.value)
-      (_a = device.value.gatt) == null ? void 0 : _a.disconnect();
-  });
-  return {
-    isSupported,
-    isConnected,
-    // Device:
-    device,
-    requestDevice,
-    // Server:
-    server,
-    // Errors:
-    error
-  };
-}
-function useMediaQuery(query, options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  const isSupported = useSupported(() => window2 && "matchMedia" in window2 && typeof window2.matchMedia === "function");
-  let mediaQuery;
-  const matches = ref(false);
-  const cleanup = () => {
-    if (!mediaQuery)
-      return;
-    if ("removeEventListener" in mediaQuery)
-      mediaQuery.removeEventListener("change", update);
-    else
-      mediaQuery.removeListener(update);
-  };
-  const update = () => {
-    if (!isSupported.value)
-      return;
-    cleanup();
-    mediaQuery = window2.matchMedia(toRef2(query).value);
-    matches.value = !!(mediaQuery == null ? void 0 : mediaQuery.matches);
-    if (!mediaQuery)
-      return;
-    if ("addEventListener" in mediaQuery)
-      mediaQuery.addEventListener("change", update);
-    else
-      mediaQuery.addListener(update);
-  };
-  watchEffect(update);
-  tryOnScopeDispose(() => cleanup());
-  return matches;
-}
-var breakpointsTailwind = {
-  "sm": 640,
-  "md": 768,
-  "lg": 1024,
-  "xl": 1280,
-  "2xl": 1536
-};
-var breakpointsBootstrapV5 = {
-  sm: 576,
-  md: 768,
-  lg: 992,
-  xl: 1200,
-  xxl: 1400
-};
-var breakpointsVuetify = {
-  xs: 600,
-  sm: 960,
-  md: 1264,
-  lg: 1904
-};
-var breakpointsAntDesign = {
-  xs: 480,
-  sm: 576,
-  md: 768,
-  lg: 992,
-  xl: 1200,
-  xxl: 1600
-};
-var breakpointsQuasar = {
-  xs: 600,
-  sm: 1024,
-  md: 1440,
-  lg: 1920
-};
-var breakpointsSematic = {
-  mobileS: 320,
-  mobileM: 375,
-  mobileL: 425,
-  tablet: 768,
-  laptop: 1024,
-  laptopL: 1440,
-  desktop4K: 2560
-};
-var breakpointsMasterCss = {
-  "3xs": 360,
-  "2xs": 480,
-  "xs": 600,
-  "sm": 768,
-  "md": 1024,
-  "lg": 1280,
-  "xl": 1440,
-  "2xl": 1600,
-  "3xl": 1920,
-  "4xl": 2560
-};
-function useBreakpoints(breakpoints, options = {}) {
-  function getValue2(k, delta) {
-    let v = breakpoints[k];
-    if (delta != null)
-      v = increaseWithUnit(v, delta);
-    if (typeof v === "number")
-      v = `${v}px`;
-    return v;
-  }
-  const { window: window2 = defaultWindow } = options;
-  function match(query) {
-    if (!window2)
-      return false;
-    return window2.matchMedia(query).matches;
-  }
-  const greaterOrEqual = (k) => {
-    return useMediaQuery(`(min-width: ${getValue2(k)})`, options);
-  };
-  const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {
-    Object.defineProperty(shortcuts, k, {
-      get: () => greaterOrEqual(k),
-      enumerable: true,
-      configurable: true
-    });
-    return shortcuts;
-  }, {});
-  return Object.assign(shortcutMethods, {
-    greater(k) {
-      return useMediaQuery(`(min-width: ${getValue2(k, 0.1)})`, options);
-    },
-    greaterOrEqual,
-    smaller(k) {
-      return useMediaQuery(`(max-width: ${getValue2(k, -0.1)})`, options);
-    },
-    smallerOrEqual(k) {
-      return useMediaQuery(`(max-width: ${getValue2(k)})`, options);
-    },
-    between(a, b) {
-      return useMediaQuery(`(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`, options);
-    },
-    isGreater(k) {
-      return match(`(min-width: ${getValue2(k, 0.1)})`);
-    },
-    isGreaterOrEqual(k) {
-      return match(`(min-width: ${getValue2(k)})`);
-    },
-    isSmaller(k) {
-      return match(`(max-width: ${getValue2(k, -0.1)})`);
-    },
-    isSmallerOrEqual(k) {
-      return match(`(max-width: ${getValue2(k)})`);
-    },
-    isInBetween(a, b) {
-      return match(`(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`);
-    },
-    current() {
-      const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);
-      return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));
-    }
-  });
-}
-function useBroadcastChannel(options) {
-  const {
-    name,
-    window: window2 = defaultWindow
-  } = options;
-  const isSupported = useSupported(() => window2 && "BroadcastChannel" in window2);
-  const isClosed = ref(false);
-  const channel = ref();
-  const data = ref();
-  const error = shallowRef(null);
-  const post = (data2) => {
-    if (channel.value)
-      channel.value.postMessage(data2);
-  };
-  const close = () => {
-    if (channel.value)
-      channel.value.close();
-    isClosed.value = true;
-  };
-  if (isSupported.value) {
-    tryOnMounted(() => {
-      error.value = null;
-      channel.value = new BroadcastChannel(name);
-      channel.value.addEventListener("message", (e) => {
-        data.value = e.data;
-      }, { passive: true });
-      channel.value.addEventListener("messageerror", (e) => {
-        error.value = e;
-      }, { passive: true });
-      channel.value.addEventListener("close", () => {
-        isClosed.value = true;
-      });
-    });
-  }
-  tryOnScopeDispose(() => {
-    close();
-  });
-  return {
-    isSupported,
-    channel,
-    data,
-    post,
-    close,
-    error,
-    isClosed
-  };
-}
-var __defProp$m = Object.defineProperty;
-var __getOwnPropSymbols$p = Object.getOwnPropertySymbols;
-var __hasOwnProp$p = Object.prototype.hasOwnProperty;
-var __propIsEnum$p = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$m = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$p.call(b, prop))
-      __defNormalProp$m(a, prop, b[prop]);
-  if (__getOwnPropSymbols$p)
-    for (var prop of __getOwnPropSymbols$p(b)) {
-      if (__propIsEnum$p.call(b, prop))
-        __defNormalProp$m(a, prop, b[prop]);
-    }
-  return a;
-};
-var WRITABLE_PROPERTIES = [
-  "hash",
-  "host",
-  "hostname",
-  "href",
-  "pathname",
-  "port",
-  "protocol",
-  "search"
-];
-function useBrowserLocation({ window: window2 = defaultWindow } = {}) {
-  const refs = Object.fromEntries(
-    WRITABLE_PROPERTIES.map((key) => [key, ref()])
-  );
-  for (const [key, ref2] of objectEntries(refs)) {
-    watch(ref2, (value) => {
-      if (!(window2 == null ? void 0 : window2.location) || window2.location[key] === value)
-        return;
-      window2.location[key] = value;
-    });
-  }
-  const buildState = (trigger) => {
-    var _a;
-    const { state: state2, length } = (window2 == null ? void 0 : window2.history) || {};
-    const { origin } = (window2 == null ? void 0 : window2.location) || {};
-    for (const key of WRITABLE_PROPERTIES)
-      refs[key].value = (_a = window2 == null ? void 0 : window2.location) == null ? void 0 : _a[key];
-    return reactive(__spreadValues$m({
-      trigger,
-      state: state2,
-      length,
-      origin
-    }, refs));
-  };
-  const state = ref(buildState("load"));
-  if (window2) {
-    useEventListener(window2, "popstate", () => state.value = buildState("popstate"), { passive: true });
-    useEventListener(window2, "hashchange", () => state.value = buildState("hashchange"), { passive: true });
-  }
-  return state;
-}
-function useCached(refValue, comparator = (a, b) => a === b, watchOptions) {
-  const cachedValue = ref(refValue.value);
-  watch(() => refValue.value, (value) => {
-    if (!comparator(value, cachedValue.value))
-      cachedValue.value = value;
-  }, watchOptions);
-  return cachedValue;
-}
-function useClipboard(options = {}) {
-  const {
-    navigator = defaultNavigator,
-    read = false,
-    source,
-    copiedDuring = 1500,
-    legacy = false
-  } = options;
-  const events2 = ["copy", "cut"];
-  const isClipboardApiSupported = useSupported(() => navigator && "clipboard" in navigator);
-  const isSupported = computed(() => isClipboardApiSupported.value || legacy);
-  const text = ref("");
-  const copied = ref(false);
-  const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);
-  function updateText() {
-    if (isClipboardApiSupported.value) {
-      navigator.clipboard.readText().then((value) => {
-        text.value = value;
-      });
-    } else {
-      text.value = legacyRead();
-    }
-  }
-  if (isSupported.value && read) {
-    for (const event of events2)
-      useEventListener(event, updateText);
-  }
-  async function copy(value = toValue(source)) {
-    if (isSupported.value && value != null) {
-      if (isClipboardApiSupported.value)
-        await navigator.clipboard.writeText(value);
-      else
-        legacyCopy(value);
-      text.value = value;
-      copied.value = true;
-      timeout.start();
-    }
-  }
-  function legacyCopy(value) {
-    const ta = document.createElement("textarea");
-    ta.value = value != null ? value : "";
-    ta.style.position = "absolute";
-    ta.style.opacity = "0";
-    document.body.appendChild(ta);
-    ta.select();
-    document.execCommand("copy");
-    ta.remove();
-  }
-  function legacyRead() {
-    var _a, _b, _c;
-    return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : "";
-  }
-  return {
-    isSupported,
-    text,
-    copied,
-    copy
-  };
-}
-var __defProp$l = Object.defineProperty;
-var __defProps$9 = Object.defineProperties;
-var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$o = Object.getOwnPropertySymbols;
-var __hasOwnProp$o = Object.prototype.hasOwnProperty;
-var __propIsEnum$o = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$l = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$o.call(b, prop))
-      __defNormalProp$l(a, prop, b[prop]);
-  if (__getOwnPropSymbols$o)
-    for (var prop of __getOwnPropSymbols$o(b)) {
-      if (__propIsEnum$o.call(b, prop))
-        __defNormalProp$l(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
-function cloneFnJSON(source) {
-  return JSON.parse(JSON.stringify(source));
-}
-function useCloned(source, options = {}) {
-  const cloned = ref({});
-  const {
-    manual,
-    clone = cloneFnJSON,
-    // watch options
-    deep = true,
-    immediate = true
-  } = options;
-  function sync() {
-    cloned.value = clone(toValue(source));
-  }
-  if (!manual && isRef(source)) {
-    watch(source, sync, __spreadProps$9(__spreadValues$l({}, options), {
-      deep,
-      immediate
-    }));
-  } else {
-    sync();
-  }
-  return { cloned, sync };
-}
-var _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
-var globalKey = "__vueuse_ssr_handlers__";
-var handlers = getHandlers();
-function getHandlers() {
-  if (!(globalKey in _global))
-    _global[globalKey] = _global[globalKey] || {};
-  return _global[globalKey];
-}
-function getSSRHandler(key, fallback) {
-  return handlers[key] || fallback;
-}
-function setSSRHandler(key, fn) {
-  handlers[key] = fn;
-}
-function guessSerializerType(rawInit) {
-  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";
-}
-var __defProp$k = Object.defineProperty;
-var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
-var __hasOwnProp$n = Object.prototype.hasOwnProperty;
-var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$k = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$n.call(b, prop))
-      __defNormalProp$k(a, prop, b[prop]);
-  if (__getOwnPropSymbols$n)
-    for (var prop of __getOwnPropSymbols$n(b)) {
-      if (__propIsEnum$n.call(b, prop))
-        __defNormalProp$k(a, prop, b[prop]);
-    }
-  return a;
-};
-var StorageSerializers = {
-  boolean: {
-    read: (v) => v === "true",
-    write: (v) => String(v)
-  },
-  object: {
-    read: (v) => JSON.parse(v),
-    write: (v) => JSON.stringify(v)
-  },
-  number: {
-    read: (v) => Number.parseFloat(v),
-    write: (v) => String(v)
-  },
-  any: {
-    read: (v) => v,
-    write: (v) => String(v)
-  },
-  string: {
-    read: (v) => v,
-    write: (v) => String(v)
-  },
-  map: {
-    read: (v) => new Map(JSON.parse(v)),
-    write: (v) => JSON.stringify(Array.from(v.entries()))
-  },
-  set: {
-    read: (v) => new Set(JSON.parse(v)),
-    write: (v) => JSON.stringify(Array.from(v))
-  },
-  date: {
-    read: (v) => new Date(v),
-    write: (v) => v.toISOString()
-  }
-};
-var customStorageEventName = "vueuse-storage";
-function useStorage(key, defaults2, storage, options = {}) {
-  var _a;
-  const {
-    flush = "pre",
-    deep = true,
-    listenToStorageChanges = true,
-    writeDefaults = true,
-    mergeDefaults = false,
-    shallow,
-    window: window2 = defaultWindow,
-    eventFilter,
-    onError = (e) => {
-      console.error(e);
-    }
-  } = options;
-  const data = (shallow ? shallowRef : ref)(defaults2);
-  if (!storage) {
-    try {
-      storage = getSSRHandler("getDefaultStorage", () => {
-        var _a2;
-        return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;
-      })();
-    } catch (e) {
-      onError(e);
-    }
-  }
-  if (!storage)
-    return data;
-  const rawInit = toValue(defaults2);
-  const type = guessSerializerType(rawInit);
-  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
-  const { pause: pauseWatch, resume: resumeWatch } = watchPausable(
-    data,
-    () => write(data.value),
-    { flush, deep, eventFilter }
-  );
-  if (window2 && listenToStorageChanges) {
-    useEventListener(window2, "storage", update);
-    useEventListener(window2, customStorageEventName, updateFromCustomEvent);
-  }
-  update();
-  return data;
-  function write(v) {
-    try {
-      if (v == null) {
-        storage.removeItem(key);
-      } else {
-        const serialized = serializer.write(v);
-        const oldValue = storage.getItem(key);
-        if (oldValue !== serialized) {
-          storage.setItem(key, serialized);
-          if (window2) {
-            window2.dispatchEvent(new CustomEvent(customStorageEventName, {
-              detail: {
-                key,
-                oldValue,
-                newValue: serialized,
-                storageArea: storage
-              }
-            }));
-          }
-        }
-      }
-    } catch (e) {
-      onError(e);
-    }
-  }
-  function read(event) {
-    const rawValue = event ? event.newValue : storage.getItem(key);
-    if (rawValue == null) {
-      if (writeDefaults && rawInit !== null)
-        storage.setItem(key, serializer.write(rawInit));
-      return rawInit;
-    } else if (!event && mergeDefaults) {
-      const value = serializer.read(rawValue);
-      if (typeof mergeDefaults === "function")
-        return mergeDefaults(value, rawInit);
-      else if (type === "object" && !Array.isArray(value))
-        return __spreadValues$k(__spreadValues$k({}, rawInit), value);
-      return value;
-    } else if (typeof rawValue !== "string") {
-      return rawValue;
-    } else {
-      return serializer.read(rawValue);
-    }
-  }
-  function updateFromCustomEvent(event) {
-    update(event.detail);
-  }
-  function update(event) {
-    if (event && event.storageArea !== storage)
-      return;
-    if (event && event.key == null) {
-      data.value = rawInit;
-      return;
-    }
-    if (event && event.key !== key)
-      return;
-    pauseWatch();
-    try {
-      data.value = read(event);
-    } catch (e) {
-      onError(e);
-    } finally {
-      if (event)
-        nextTick(resumeWatch);
-      else
-        resumeWatch();
-    }
-  }
-}
-function usePreferredDark(options) {
-  return useMediaQuery("(prefers-color-scheme: dark)", options);
-}
-var __defProp$j = Object.defineProperty;
-var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
-var __hasOwnProp$m = Object.prototype.hasOwnProperty;
-var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$j = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$m.call(b, prop))
-      __defNormalProp$j(a, prop, b[prop]);
-  if (__getOwnPropSymbols$m)
-    for (var prop of __getOwnPropSymbols$m(b)) {
-      if (__propIsEnum$m.call(b, prop))
-        __defNormalProp$j(a, prop, b[prop]);
-    }
-  return a;
-};
-function useColorMode(options = {}) {
-  const {
-    selector = "html",
-    attribute = "class",
-    initialValue = "auto",
-    window: window2 = defaultWindow,
-    storage,
-    storageKey = "vueuse-color-scheme",
-    listenToStorageChanges = true,
-    storageRef,
-    emitAuto,
-    disableTransition = true
-  } = options;
-  const modes = __spreadValues$j({
-    auto: "",
-    light: "light",
-    dark: "dark"
-  }, options.modes || {});
-  const preferredDark = usePreferredDark({ window: window2 });
-  const system = computed(() => preferredDark.value ? "dark" : "light");
-  const store = storageRef || (storageKey == null ? toRef2(initialValue) : useStorage(storageKey, initialValue, storage, { window: window2, listenToStorageChanges }));
-  const state = computed(
-    () => store.value === "auto" ? system.value : store.value
-  );
-  const updateHTMLAttrs = getSSRHandler(
-    "updateHTMLAttrs",
-    (selector2, attribute2, value) => {
-      const el = typeof selector2 === "string" ? window2 == null ? void 0 : window2.document.querySelector(selector2) : unrefElement(selector2);
-      if (!el)
-        return;
-      let style;
-      if (disableTransition) {
-        style = window2.document.createElement("style");
-        style.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"));
-        window2.document.head.appendChild(style);
-      }
-      if (attribute2 === "class") {
-        const current = value.split(/\s/g);
-        Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => {
-          if (current.includes(v))
-            el.classList.add(v);
-          else
-            el.classList.remove(v);
-        });
-      } else {
-        el.setAttribute(attribute2, value);
-      }
-      if (disableTransition) {
-        window2.getComputedStyle(style).opacity;
-        document.head.removeChild(style);
-      }
-    }
-  );
-  function defaultOnChanged(mode) {
-    var _a;
-    updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);
-  }
-  function onChanged(mode) {
-    if (options.onChanged)
-      options.onChanged(mode, defaultOnChanged);
-    else
-      defaultOnChanged(mode);
-  }
-  watch(state, onChanged, { flush: "post", immediate: true });
-  tryOnMounted(() => onChanged(state.value));
-  const auto = computed({
-    get() {
-      return emitAuto ? store.value : state.value;
-    },
-    set(v) {
-      store.value = v;
-    }
-  });
-  try {
-    return Object.assign(auto, { store, system, state });
-  } catch (e) {
-    return auto;
-  }
-}
-function useConfirmDialog(revealed = ref(false)) {
-  const confirmHook = createEventHook();
-  const cancelHook = createEventHook();
-  const revealHook = createEventHook();
-  let _resolve = noop;
-  const reveal = (data) => {
-    revealHook.trigger(data);
-    revealed.value = true;
-    return new Promise((resolve) => {
-      _resolve = resolve;
-    });
-  };
-  const confirm = (data) => {
-    revealed.value = false;
-    confirmHook.trigger(data);
-    _resolve({ data, isCanceled: false });
-  };
-  const cancel = (data) => {
-    revealed.value = false;
-    cancelHook.trigger(data);
-    _resolve({ data, isCanceled: true });
-  };
-  return {
-    isRevealed: computed(() => revealed.value),
-    reveal,
-    confirm,
-    cancel,
-    onReveal: revealHook.on,
-    onConfirm: confirmHook.on,
-    onCancel: cancelHook.on
-  };
-}
-var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
-var __hasOwnProp$l = Object.prototype.hasOwnProperty;
-var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
-var __objRest$32 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$l.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$l)
-    for (var prop of __getOwnPropSymbols$l(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$l.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function useMutationObserver(target, callback, options = {}) {
-  const _a = options, { window: window2 = defaultWindow } = _a, mutationOptions = __objRest$32(_a, ["window"]);
-  let observer;
-  const isSupported = useSupported(() => window2 && "MutationObserver" in window2);
-  const cleanup = () => {
-    if (observer) {
-      observer.disconnect();
-      observer = void 0;
-    }
-  };
-  const stopWatch = watch(
-    () => unrefElement(target),
-    (el) => {
-      cleanup();
-      if (isSupported.value && window2 && el) {
-        observer = new MutationObserver(callback);
-        observer.observe(el, mutationOptions);
-      }
-    },
-    { immediate: true }
-  );
-  const stop = () => {
-    cleanup();
-    stopWatch();
-  };
-  tryOnScopeDispose(stop);
-  return {
-    isSupported,
-    stop
-  };
-}
-function useCssVar(prop, target, options = {}) {
-  const { window: window2 = defaultWindow, initialValue = "", observe = false } = options;
-  const variable = ref(initialValue);
-  const elRef = computed(() => {
-    var _a;
-    return unrefElement(target) || ((_a = window2 == null ? void 0 : window2.document) == null ? void 0 : _a.documentElement);
-  });
-  function updateCssVar() {
-    var _a;
-    const key = toValue(prop);
-    const el = toValue(elRef);
-    if (el && window2) {
-      const value = (_a = window2.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();
-      variable.value = value || initialValue;
-    }
-  }
-  if (observe) {
-    useMutationObserver(elRef, updateCssVar, {
-      attributes: true,
-      window: window2
-    });
-  }
-  watch(
-    [elRef, () => toValue(prop)],
-    updateCssVar,
-    { immediate: true }
-  );
-  watch(
-    variable,
-    (val) => {
-      var _a;
-      if ((_a = elRef.value) == null ? void 0 : _a.style)
-        elRef.value.style.setProperty(toValue(prop), val);
-    }
-  );
-  return variable;
-}
-function useCurrentElement() {
-  const vm = getCurrentInstance();
-  const currentElement = computedWithControl(
-    () => null,
-    () => vm.proxy.$el
-  );
-  onUpdated(currentElement.trigger);
-  onMounted(currentElement.trigger);
-  return currentElement;
-}
-function useCycleList(list, options) {
-  const state = shallowRef(getInitialValue());
-  const listRef = toRef2(list);
-  const index = computed({
-    get() {
-      var _a;
-      const targetList = listRef.value;
-      let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);
-      if (index2 < 0)
-        index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;
-      return index2;
-    },
-    set(v) {
-      set3(v);
-    }
-  });
-  function set3(i) {
-    const targetList = listRef.value;
-    const length = targetList.length;
-    const index2 = (i % length + length) % length;
-    const value = targetList[index2];
-    state.value = value;
-    return value;
-  }
-  function shift(delta = 1) {
-    return set3(index.value + delta);
-  }
-  function next(n = 1) {
-    return shift(n);
-  }
-  function prev(n = 1) {
-    return shift(-n);
-  }
-  function getInitialValue() {
-    var _a, _b;
-    return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;
-  }
-  watch(listRef, () => set3(index.value));
-  return {
-    state,
-    index,
-    next,
-    prev
-  };
-}
-var __defProp$i = Object.defineProperty;
-var __defProps$82 = Object.defineProperties;
-var __getOwnPropDescs$82 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
-var __hasOwnProp$k = Object.prototype.hasOwnProperty;
-var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$i = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$k.call(b, prop))
-      __defNormalProp$i(a, prop, b[prop]);
-  if (__getOwnPropSymbols$k)
-    for (var prop of __getOwnPropSymbols$k(b)) {
-      if (__propIsEnum$k.call(b, prop))
-        __defNormalProp$i(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$82 = (a, b) => __defProps$82(a, __getOwnPropDescs$82(b));
-function useDark(options = {}) {
-  const {
-    valueDark = "dark",
-    valueLight = ""
-  } = options;
-  const mode = useColorMode(__spreadProps$82(__spreadValues$i({}, options), {
-    onChanged: (mode2, defaultHandler) => {
-      var _a;
-      if (options.onChanged)
-        (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === "dark", defaultHandler, mode2);
-      else
-        defaultHandler(mode2);
-    },
-    modes: {
-      dark: valueDark,
-      light: valueLight
-    }
-  }));
-  const isDark = computed({
-    get() {
-      return mode.value === "dark";
-    },
-    set(v) {
-      const modeVal = v ? "dark" : "light";
-      if (mode.system.value === modeVal)
-        mode.value = "auto";
-      else
-        mode.value = modeVal;
-    }
-  });
-  return isDark;
-}
-function fnBypass(v) {
-  return v;
-}
-function fnSetSource(source, value) {
-  return source.value = value;
-}
-function defaultDump(clone) {
-  return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass;
-}
-function defaultParse(clone) {
-  return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass;
-}
-function useManualRefHistory(source, options = {}) {
-  const {
-    clone = false,
-    dump = defaultDump(clone),
-    parse = defaultParse(clone),
-    setSource = fnSetSource
-  } = options;
-  function _createHistoryRecord() {
-    return markRaw({
-      snapshot: dump(source.value),
-      timestamp: timestamp()
-    });
-  }
-  const last = ref(_createHistoryRecord());
-  const undoStack = ref([]);
-  const redoStack = ref([]);
-  const _setSource = (record) => {
-    setSource(source, parse(record.snapshot));
-    last.value = record;
-  };
-  const commit = () => {
-    undoStack.value.unshift(last.value);
-    last.value = _createHistoryRecord();
-    if (options.capacity && undoStack.value.length > options.capacity)
-      undoStack.value.splice(options.capacity, Infinity);
-    if (redoStack.value.length)
-      redoStack.value.splice(0, redoStack.value.length);
-  };
-  const clear = () => {
-    undoStack.value.splice(0, undoStack.value.length);
-    redoStack.value.splice(0, redoStack.value.length);
-  };
-  const undo = () => {
-    const state = undoStack.value.shift();
-    if (state) {
-      redoStack.value.unshift(last.value);
-      _setSource(state);
-    }
-  };
-  const redo = () => {
-    const state = redoStack.value.shift();
-    if (state) {
-      undoStack.value.unshift(last.value);
-      _setSource(state);
-    }
-  };
-  const reset = () => {
-    _setSource(last.value);
-  };
-  const history = computed(() => [last.value, ...undoStack.value]);
-  const canUndo = computed(() => undoStack.value.length > 0);
-  const canRedo = computed(() => redoStack.value.length > 0);
-  return {
-    source,
-    undoStack,
-    redoStack,
-    last,
-    history,
-    canUndo,
-    canRedo,
-    clear,
-    commit,
-    reset,
-    undo,
-    redo
-  };
-}
-var __defProp$h = Object.defineProperty;
-var __defProps$72 = Object.defineProperties;
-var __getOwnPropDescs$72 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
-var __hasOwnProp$j = Object.prototype.hasOwnProperty;
-var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$h = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$j.call(b, prop))
-      __defNormalProp$h(a, prop, b[prop]);
-  if (__getOwnPropSymbols$j)
-    for (var prop of __getOwnPropSymbols$j(b)) {
-      if (__propIsEnum$j.call(b, prop))
-        __defNormalProp$h(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$72 = (a, b) => __defProps$72(a, __getOwnPropDescs$72(b));
-function useRefHistory(source, options = {}) {
-  const {
-    deep = false,
-    flush = "pre",
-    eventFilter
-  } = options;
-  const {
-    eventFilter: composedFilter,
-    pause,
-    resume: resumeTracking,
-    isActive: isTracking
-  } = pausableFilter(eventFilter);
-  const {
-    ignoreUpdates,
-    ignorePrevAsyncUpdates,
-    stop
-  } = watchIgnorable(
-    source,
-    commit,
-    { deep, flush, eventFilter: composedFilter }
-  );
-  function setSource(source2, value) {
-    ignorePrevAsyncUpdates();
-    ignoreUpdates(() => {
-      source2.value = value;
-    });
-  }
-  const manualHistory = useManualRefHistory(source, __spreadProps$72(__spreadValues$h({}, options), { clone: options.clone || deep, setSource }));
-  const { clear, commit: manualCommit } = manualHistory;
-  function commit() {
-    ignorePrevAsyncUpdates();
-    manualCommit();
-  }
-  function resume(commitNow) {
-    resumeTracking();
-    if (commitNow)
-      commit();
-  }
-  function batch(fn) {
-    let canceled = false;
-    const cancel = () => canceled = true;
-    ignoreUpdates(() => {
-      fn(cancel);
-    });
-    if (!canceled)
-      commit();
-  }
-  function dispose() {
-    stop();
-    clear();
-  }
-  return __spreadProps$72(__spreadValues$h({}, manualHistory), {
-    isTracking,
-    pause,
-    resume,
-    commit,
-    batch,
-    dispose
-  });
-}
-var __defProp$g = Object.defineProperty;
-var __defProps$62 = Object.defineProperties;
-var __getOwnPropDescs$62 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
-var __hasOwnProp$i = Object.prototype.hasOwnProperty;
-var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$g = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$i.call(b, prop))
-      __defNormalProp$g(a, prop, b[prop]);
-  if (__getOwnPropSymbols$i)
-    for (var prop of __getOwnPropSymbols$i(b)) {
-      if (__propIsEnum$i.call(b, prop))
-        __defNormalProp$g(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$62 = (a, b) => __defProps$62(a, __getOwnPropDescs$62(b));
-function useDebouncedRefHistory(source, options = {}) {
-  const filter = options.debounce ? debounceFilter(options.debounce) : void 0;
-  const history = useRefHistory(source, __spreadProps$62(__spreadValues$g({}, options), { eventFilter: filter }));
-  return __spreadValues$g({}, history);
-}
-function useDeviceMotion(options = {}) {
-  const {
-    window: window2 = defaultWindow,
-    eventFilter = bypassFilter
-  } = options;
-  const acceleration = ref({ x: null, y: null, z: null });
-  const rotationRate = ref({ alpha: null, beta: null, gamma: null });
-  const interval = ref(0);
-  const accelerationIncludingGravity = ref({
-    x: null,
-    y: null,
-    z: null
-  });
-  if (window2) {
-    const onDeviceMotion = createFilterWrapper(
-      eventFilter,
-      (event) => {
-        acceleration.value = event.acceleration;
-        accelerationIncludingGravity.value = event.accelerationIncludingGravity;
-        rotationRate.value = event.rotationRate;
-        interval.value = event.interval;
-      }
-    );
-    useEventListener(window2, "devicemotion", onDeviceMotion);
-  }
-  return {
-    acceleration,
-    accelerationIncludingGravity,
-    rotationRate,
-    interval
-  };
-}
-function useDeviceOrientation(options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  const isSupported = useSupported(() => window2 && "DeviceOrientationEvent" in window2);
-  const isAbsolute = ref(false);
-  const alpha = ref(null);
-  const beta = ref(null);
-  const gamma = ref(null);
-  if (window2 && isSupported.value) {
-    useEventListener(window2, "deviceorientation", (event) => {
-      isAbsolute.value = event.absolute;
-      alpha.value = event.alpha;
-      beta.value = event.beta;
-      gamma.value = event.gamma;
-    });
-  }
-  return {
-    isSupported,
-    isAbsolute,
-    alpha,
-    beta,
-    gamma
-  };
-}
-function useDevicePixelRatio({
-  window: window2 = defaultWindow
-} = {}) {
-  const pixelRatio = ref(1);
-  if (window2) {
-    let observe = function() {
-      pixelRatio.value = window2.devicePixelRatio;
-      cleanup();
-      media = window2.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);
-      media.addEventListener("change", observe, { once: true });
-    }, cleanup = function() {
-      media == null ? void 0 : media.removeEventListener("change", observe);
-    };
-    let media;
-    observe();
-    tryOnScopeDispose(cleanup);
-  }
-  return { pixelRatio };
-}
-function usePermission(permissionDesc, options = {}) {
-  const {
-    controls = false,
-    navigator = defaultNavigator
-  } = options;
-  const isSupported = useSupported(() => navigator && "permissions" in navigator);
-  let permissionStatus;
-  const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc;
-  const state = ref();
-  const onChange = () => {
-    if (permissionStatus)
-      state.value = permissionStatus.state;
-  };
-  const query = createSingletonPromise(async () => {
-    if (!isSupported.value)
-      return;
-    if (!permissionStatus) {
-      try {
-        permissionStatus = await navigator.permissions.query(desc);
-        useEventListener(permissionStatus, "change", onChange);
-        onChange();
-      } catch (e) {
-        state.value = "prompt";
-      }
-    }
-    return permissionStatus;
-  });
-  query();
-  if (controls) {
-    return {
-      state,
-      isSupported,
-      query
-    };
-  } else {
-    return state;
-  }
-}
-function useDevicesList(options = {}) {
-  const {
-    navigator = defaultNavigator,
-    requestPermissions = false,
-    constraints = { audio: true, video: true },
-    onUpdated: onUpdated2
-  } = options;
-  const devices = ref([]);
-  const videoInputs = computed(() => devices.value.filter((i) => i.kind === "videoinput"));
-  const audioInputs = computed(() => devices.value.filter((i) => i.kind === "audioinput"));
-  const audioOutputs = computed(() => devices.value.filter((i) => i.kind === "audiooutput"));
-  const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);
-  const permissionGranted = ref(false);
-  let stream;
-  async function update() {
-    if (!isSupported.value)
-      return;
-    devices.value = await navigator.mediaDevices.enumerateDevices();
-    onUpdated2 == null ? void 0 : onUpdated2(devices.value);
-    if (stream) {
-      stream.getTracks().forEach((t) => t.stop());
-      stream = null;
-    }
-  }
-  async function ensurePermissions() {
-    if (!isSupported.value)
-      return false;
-    if (permissionGranted.value)
-      return true;
-    const { state, query } = usePermission("camera", { controls: true });
-    await query();
-    if (state.value !== "granted") {
-      stream = await navigator.mediaDevices.getUserMedia(constraints);
-      update();
-      permissionGranted.value = true;
-    } else {
-      permissionGranted.value = true;
-    }
-    return permissionGranted.value;
-  }
-  if (isSupported.value) {
-    if (requestPermissions)
-      ensurePermissions();
-    useEventListener(navigator.mediaDevices, "devicechange", update);
-    update();
-  }
-  return {
-    devices,
-    ensurePermissions,
-    permissionGranted,
-    videoInputs,
-    audioInputs,
-    audioOutputs,
-    isSupported
-  };
-}
-function useDisplayMedia(options = {}) {
-  var _a;
-  const enabled = ref((_a = options.enabled) != null ? _a : false);
-  const video = options.video;
-  const audio = options.audio;
-  const { navigator = defaultNavigator } = options;
-  const isSupported = useSupported(() => {
-    var _a2;
-    return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;
-  });
-  const constraint = { audio, video };
-  const stream = shallowRef();
-  async function _start() {
-    if (!isSupported.value || stream.value)
-      return;
-    stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);
-    return stream.value;
-  }
-  async function _stop() {
-    var _a2;
-    (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());
-    stream.value = void 0;
-  }
-  function stop() {
-    _stop();
-    enabled.value = false;
-  }
-  async function start() {
-    await _start();
-    if (stream.value)
-      enabled.value = true;
-    return stream.value;
-  }
-  watch(
-    enabled,
-    (v) => {
-      if (v)
-        _start();
-      else
-        _stop();
-    },
-    { immediate: true }
-  );
-  return {
-    isSupported,
-    stream,
-    start,
-    stop,
-    enabled
-  };
-}
-function useDocumentVisibility({ document: document2 = defaultDocument } = {}) {
-  if (!document2)
-    return ref("visible");
-  const visibility = ref(document2.visibilityState);
-  useEventListener(document2, "visibilitychange", () => {
-    visibility.value = document2.visibilityState;
-  });
-  return visibility;
-}
-var __defProp$f = Object.defineProperty;
-var __defProps$52 = Object.defineProperties;
-var __getOwnPropDescs$52 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
-var __hasOwnProp$h = Object.prototype.hasOwnProperty;
-var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$f = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$h.call(b, prop))
-      __defNormalProp$f(a, prop, b[prop]);
-  if (__getOwnPropSymbols$h)
-    for (var prop of __getOwnPropSymbols$h(b)) {
-      if (__propIsEnum$h.call(b, prop))
-        __defNormalProp$f(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$52 = (a, b) => __defProps$52(a, __getOwnPropDescs$52(b));
-function useDraggable(target, options = {}) {
-  var _a, _b;
-  const {
-    pointerTypes,
-    preventDefault: preventDefault2,
-    stopPropagation,
-    exact,
-    onMove,
-    onEnd,
-    onStart,
-    initialValue,
-    axis = "both",
-    draggingElement = defaultWindow,
-    handle: draggingHandle = target
-  } = options;
-  const position = ref(
-    (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }
-  );
-  const pressedDelta = ref();
-  const filterEvent = (e) => {
-    if (pointerTypes)
-      return pointerTypes.includes(e.pointerType);
-    return true;
-  };
-  const handleEvent = (e) => {
-    if (toValue(preventDefault2))
-      e.preventDefault();
-    if (toValue(stopPropagation))
-      e.stopPropagation();
-  };
-  const start = (e) => {
-    if (!filterEvent(e))
-      return;
-    if (toValue(exact) && e.target !== toValue(target))
-      return;
-    const rect = toValue(target).getBoundingClientRect();
-    const pos = {
-      x: e.clientX - rect.left,
-      y: e.clientY - rect.top
-    };
-    if ((onStart == null ? void 0 : onStart(pos, e)) === false)
-      return;
-    pressedDelta.value = pos;
-    handleEvent(e);
-  };
-  const move = (e) => {
-    if (!filterEvent(e))
-      return;
-    if (!pressedDelta.value)
-      return;
-    let { x, y } = position.value;
-    if (axis === "x" || axis === "both")
-      x = e.clientX - pressedDelta.value.x;
-    if (axis === "y" || axis === "both")
-      y = e.clientY - pressedDelta.value.y;
-    position.value = {
-      x,
-      y
-    };
-    onMove == null ? void 0 : onMove(position.value, e);
-    handleEvent(e);
-  };
-  const end = (e) => {
-    if (!filterEvent(e))
-      return;
-    if (!pressedDelta.value)
-      return;
-    pressedDelta.value = void 0;
-    onEnd == null ? void 0 : onEnd(position.value, e);
-    handleEvent(e);
-  };
-  if (isClient) {
-    const config = { capture: (_b = options.capture) != null ? _b : true };
-    useEventListener(draggingHandle, "pointerdown", start, config);
-    useEventListener(draggingElement, "pointermove", move, config);
-    useEventListener(draggingElement, "pointerup", end, config);
-  }
-  return __spreadProps$52(__spreadValues$f({}, toRefs2(position)), {
-    position,
-    isDragging: computed(() => !!pressedDelta.value),
-    style: computed(
-      () => `left:${position.value.x}px;top:${position.value.y}px;`
-    )
-  });
-}
-function useDropZone(target, onDrop) {
-  const isOverDropZone = ref(false);
-  let counter = 0;
-  if (isClient) {
-    useEventListener(target, "dragenter", (event) => {
-      event.preventDefault();
-      counter += 1;
-      isOverDropZone.value = true;
-    });
-    useEventListener(target, "dragover", (event) => {
-      event.preventDefault();
-    });
-    useEventListener(target, "dragleave", (event) => {
-      event.preventDefault();
-      counter -= 1;
-      if (counter === 0)
-        isOverDropZone.value = false;
-    });
-    useEventListener(target, "drop", (event) => {
-      var _a, _b;
-      event.preventDefault();
-      counter = 0;
-      isOverDropZone.value = false;
-      const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);
-      onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);
-    });
-  }
-  return {
-    isOverDropZone
-  };
-}
-var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
-var __hasOwnProp$g = Object.prototype.hasOwnProperty;
-var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
-var __objRest$22 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$g)
-    for (var prop of __getOwnPropSymbols$g(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function useResizeObserver(target, callback, options = {}) {
-  const _a = options, { window: window2 = defaultWindow } = _a, observerOptions = __objRest$22(_a, ["window"]);
-  let observer;
-  const isSupported = useSupported(() => window2 && "ResizeObserver" in window2);
-  const cleanup = () => {
-    if (observer) {
-      observer.disconnect();
-      observer = void 0;
-    }
-  };
-  const targets = computed(
-    () => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]
-  );
-  const stopWatch = watch(
-    targets,
-    (els) => {
-      cleanup();
-      if (isSupported.value && window2) {
-        observer = new ResizeObserver(callback);
-        for (const _el of els)
-          _el && observer.observe(_el, observerOptions);
-      }
-    },
-    { immediate: true, flush: "post", deep: true }
-  );
-  const stop = () => {
-    cleanup();
-    stopWatch();
-  };
-  tryOnScopeDispose(stop);
-  return {
-    isSupported,
-    stop
-  };
-}
-function useElementBounding(target, options = {}) {
-  const {
-    reset = true,
-    windowResize = true,
-    windowScroll = true,
-    immediate = true
-  } = options;
-  const height = ref(0);
-  const bottom = ref(0);
-  const left = ref(0);
-  const right = ref(0);
-  const top = ref(0);
-  const width = ref(0);
-  const x = ref(0);
-  const y = ref(0);
-  function update() {
-    const el = unrefElement(target);
-    if (!el) {
-      if (reset) {
-        height.value = 0;
-        bottom.value = 0;
-        left.value = 0;
-        right.value = 0;
-        top.value = 0;
-        width.value = 0;
-        x.value = 0;
-        y.value = 0;
-      }
-      return;
-    }
-    const rect = el.getBoundingClientRect();
-    height.value = rect.height;
-    bottom.value = rect.bottom;
-    left.value = rect.left;
-    right.value = rect.right;
-    top.value = rect.top;
-    width.value = rect.width;
-    x.value = rect.x;
-    y.value = rect.y;
-  }
-  useResizeObserver(target, update);
-  watch(() => unrefElement(target), (ele) => !ele && update());
-  if (windowScroll)
-    useEventListener("scroll", update, { capture: true, passive: true });
-  if (windowResize)
-    useEventListener("resize", update, { passive: true });
-  tryOnMounted(() => {
-    if (immediate)
-      update();
-  });
-  return {
-    height,
-    bottom,
-    left,
-    right,
-    top,
-    width,
-    x,
-    y,
-    update
-  };
-}
-var __defProp$e = Object.defineProperty;
-var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
-var __hasOwnProp$f = Object.prototype.hasOwnProperty;
-var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$e = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$f.call(b, prop))
-      __defNormalProp$e(a, prop, b[prop]);
-  if (__getOwnPropSymbols$f)
-    for (var prop of __getOwnPropSymbols$f(b)) {
-      if (__propIsEnum$f.call(b, prop))
-        __defNormalProp$e(a, prop, b[prop]);
-    }
-  return a;
-};
-function useElementByPoint(options) {
-  const element = ref(null);
-  const { x, y, document: document2 = defaultDocument } = options;
-  const controls = useRafFn(() => {
-    element.value = (document2 == null ? void 0 : document2.elementFromPoint(toValue(x), toValue(y))) || null;
-  });
-  return __spreadValues$e({
-    element
-  }, controls);
-}
-function useElementHover(el, options = {}) {
-  const {
-    delayEnter = 0,
-    delayLeave = 0,
-    window: window2 = defaultWindow
-  } = options;
-  const isHovered = ref(false);
-  let timer;
-  const toggle = (entering) => {
-    const delay = entering ? delayEnter : delayLeave;
-    if (timer) {
-      clearTimeout(timer);
-      timer = void 0;
-    }
-    if (delay)
-      timer = setTimeout(() => isHovered.value = entering, delay);
-    else
-      isHovered.value = entering;
-  };
-  if (!window2)
-    return isHovered;
-  useEventListener(el, "mouseenter", () => toggle(true), { passive: true });
-  useEventListener(el, "mouseleave", () => toggle(false), { passive: true });
-  return isHovered;
-}
-function useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {
-  const { window: window2 = defaultWindow, box = "content-box" } = options;
-  const isSVG = computed(() => {
-    var _a, _b;
-    return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg");
-  });
-  const width = ref(initialSize.width);
-  const height = ref(initialSize.height);
-  useResizeObserver(
-    target,
-    ([entry]) => {
-      const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;
-      if (window2 && isSVG.value) {
-        const $elem = unrefElement(target);
-        if ($elem) {
-          const styles = window2.getComputedStyle($elem);
-          width.value = parseFloat(styles.width);
-          height.value = parseFloat(styles.height);
-        }
-      } else {
-        if (boxSize) {
-          const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];
-          width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);
-          height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);
-        } else {
-          width.value = entry.contentRect.width;
-          height.value = entry.contentRect.height;
-        }
-      }
-    },
-    options
-  );
-  watch(
-    () => unrefElement(target),
-    (ele) => {
-      width.value = ele ? initialSize.width : 0;
-      height.value = ele ? initialSize.height : 0;
-    }
-  );
-  return {
-    width,
-    height
-  };
-}
-function useIntersectionObserver(target, callback, options = {}) {
-  const {
-    root,
-    rootMargin = "0px",
-    threshold = 0.1,
-    window: window2 = defaultWindow,
-    immediate = true
-  } = options;
-  const isSupported = useSupported(() => window2 && "IntersectionObserver" in window2);
-  const targets = computed(() => {
-    const _target = toValue(target);
-    return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);
-  });
-  let cleanup = noop;
-  const isActive = ref(immediate);
-  const stopWatch = isSupported.value ? watch(
-    () => [targets.value, unrefElement(root), isActive.value],
-    ([targets2, root2]) => {
-      cleanup();
-      if (!isActive.value)
-        return;
-      if (!targets2.length)
-        return;
-      const observer = new IntersectionObserver(
-        callback,
-        {
-          root: unrefElement(root2),
-          rootMargin,
-          threshold
-        }
-      );
-      targets2.forEach((el) => el && observer.observe(el));
-      cleanup = () => {
-        observer.disconnect();
-        cleanup = noop;
-      };
-    },
-    { immediate, flush: "post" }
-  ) : noop;
-  const stop = () => {
-    cleanup();
-    stopWatch();
-    isActive.value = false;
-  };
-  tryOnScopeDispose(stop);
-  return {
-    isSupported,
-    isActive,
-    pause() {
-      cleanup();
-      isActive.value = false;
-    },
-    resume() {
-      isActive.value = true;
-    },
-    stop
-  };
-}
-function useElementVisibility(element, { window: window2 = defaultWindow, scrollTarget } = {}) {
-  const elementIsVisible = ref(false);
-  useIntersectionObserver(
-    element,
-    ([{ isIntersecting }]) => {
-      elementIsVisible.value = isIntersecting;
-    },
-    {
-      root: scrollTarget,
-      window: window2
-    }
-  );
-  return elementIsVisible;
-}
-var events = /* @__PURE__ */ new Map();
-function useEventBus(key) {
-  const scope = getCurrentScope();
-  function on(listener) {
-    var _a;
-    const listeners = events.get(key) || /* @__PURE__ */ new Set();
-    listeners.add(listener);
-    events.set(key, listeners);
-    const _off = () => off(listener);
-    (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);
-    return _off;
-  }
-  function once(listener) {
-    function _listener(...args) {
-      off(_listener);
-      listener(...args);
-    }
-    return on(_listener);
-  }
-  function off(listener) {
-    const listeners = events.get(key);
-    if (!listeners)
-      return;
-    listeners.delete(listener);
-    if (!listeners.size)
-      reset();
-  }
-  function reset() {
-    events.delete(key);
-  }
-  function emit(event, payload) {
-    var _a;
-    (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));
-  }
-  return { on, once, off, emit, reset };
-}
-function useEventSource(url, events2 = [], options = {}) {
-  const event = ref(null);
-  const data = ref(null);
-  const status = ref("CONNECTING");
-  const eventSource = ref(null);
-  const error = shallowRef(null);
-  const {
-    withCredentials = false
-  } = options;
-  const close = () => {
-    if (eventSource.value) {
-      eventSource.value.close();
-      eventSource.value = null;
-      status.value = "CLOSED";
-    }
-  };
-  const es = new EventSource(url, { withCredentials });
-  eventSource.value = es;
-  es.onopen = () => {
-    status.value = "OPEN";
-    error.value = null;
-  };
-  es.onerror = (e) => {
-    status.value = "CLOSED";
-    error.value = e;
-  };
-  es.onmessage = (e) => {
-    event.value = null;
-    data.value = e.data;
-  };
-  for (const event_name of events2) {
-    useEventListener(es, event_name, (e) => {
-      event.value = event_name;
-      data.value = e.data || null;
-    });
-  }
-  tryOnScopeDispose(() => {
-    close();
-  });
-  return {
-    eventSource,
-    event,
-    data,
-    status,
-    error,
-    close
-  };
-}
-function useEyeDropper(options = {}) {
-  const { initialValue = "" } = options;
-  const isSupported = useSupported(() => typeof window !== "undefined" && "EyeDropper" in window);
-  const sRGBHex = ref(initialValue);
-  async function open(openOptions) {
-    if (!isSupported.value)
-      return;
-    const eyeDropper = new window.EyeDropper();
-    const result = await eyeDropper.open(openOptions);
-    sRGBHex.value = result.sRGBHex;
-    return result;
-  }
-  return { isSupported, sRGBHex, open };
-}
-function useFavicon(newIcon = null, options = {}) {
-  const {
-    baseUrl = "",
-    rel = "icon",
-    document: document2 = defaultDocument
-  } = options;
-  const favicon = toRef2(newIcon);
-  const applyIcon = (icon) => {
-    document2 == null ? void 0 : document2.head.querySelectorAll(`link[rel*="${rel}"]`).forEach((el) => el.href = `${baseUrl}${icon}`);
-  };
-  watch(
-    favicon,
-    (i, o) => {
-      if (typeof i === "string" && i !== o)
-        applyIcon(i);
-    },
-    { immediate: true }
-  );
-  return favicon;
-}
-var __defProp$d = Object.defineProperty;
-var __defProps$42 = Object.defineProperties;
-var __getOwnPropDescs$42 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
-var __hasOwnProp$e = Object.prototype.hasOwnProperty;
-var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$d = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$e.call(b, prop))
-      __defNormalProp$d(a, prop, b[prop]);
-  if (__getOwnPropSymbols$e)
-    for (var prop of __getOwnPropSymbols$e(b)) {
-      if (__propIsEnum$e.call(b, prop))
-        __defNormalProp$d(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$42 = (a, b) => __defProps$42(a, __getOwnPropDescs$42(b));
-var payloadMapping = {
-  json: "application/json",
-  text: "text/plain"
-};
-function isFetchOptions(obj) {
-  return obj && containsProp(obj, "immediate", "refetch", "initialData", "timeout", "beforeFetch", "afterFetch", "onFetchError", "fetch");
-}
-function isAbsoluteURL(url) {
-  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
-}
-function headersToObject(headers) {
-  if (typeof Headers !== "undefined" && headers instanceof Headers)
-    return Object.fromEntries([...headers.entries()]);
-  return headers;
-}
-function combineCallbacks(combination, ...callbacks) {
-  if (combination === "overwrite") {
-    return async (ctx) => {
-      const callback = callbacks[callbacks.length - 1];
-      if (callback)
-        return __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));
-      return ctx;
-    };
-  } else {
-    return async (ctx) => {
-      for (const callback of callbacks) {
-        if (callback)
-          ctx = __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));
-      }
-      return ctx;
-    };
-  }
-}
-function createFetch(config = {}) {
-  const _combination = config.combination || "chain";
-  const _options = config.options || {};
-  const _fetchOptions = config.fetchOptions || {};
-  function useFactoryFetch(url, ...args) {
-    const computedUrl = computed(() => {
-      const baseUrl = toValue(config.baseUrl);
-      const targetUrl = toValue(url);
-      return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;
-    });
-    let options = _options;
-    let fetchOptions = _fetchOptions;
-    if (args.length > 0) {
-      if (isFetchOptions(args[0])) {
-        options = __spreadProps$42(__spreadValues$d(__spreadValues$d({}, options), args[0]), {
-          beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),
-          afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),
-          onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)
-        });
-      } else {
-        fetchOptions = __spreadProps$42(__spreadValues$d(__spreadValues$d({}, fetchOptions), args[0]), {
-          headers: __spreadValues$d(__spreadValues$d({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})
-        });
-      }
-    }
-    if (args.length > 1 && isFetchOptions(args[1])) {
-      options = __spreadProps$42(__spreadValues$d(__spreadValues$d({}, options), args[1]), {
-        beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),
-        afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),
-        onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)
-      });
-    }
-    return useFetch(computedUrl, fetchOptions, options);
-  }
-  return useFactoryFetch;
-}
-function useFetch(url, ...args) {
-  var _a;
-  const supportsAbort = typeof AbortController === "function";
-  let fetchOptions = {};
-  let options = { immediate: true, refetch: false, timeout: 0 };
-  const config = {
-    method: "GET",
-    type: "text",
-    payload: void 0
-  };
-  if (args.length > 0) {
-    if (isFetchOptions(args[0]))
-      options = __spreadValues$d(__spreadValues$d({}, options), args[0]);
-    else
-      fetchOptions = args[0];
-  }
-  if (args.length > 1) {
-    if (isFetchOptions(args[1]))
-      options = __spreadValues$d(__spreadValues$d({}, options), args[1]);
-  }
-  const {
-    fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,
-    initialData,
-    timeout
-  } = options;
-  const responseEvent = createEventHook();
-  const errorEvent = createEventHook();
-  const finallyEvent = createEventHook();
-  const isFinished = ref(false);
-  const isFetching = ref(false);
-  const aborted = ref(false);
-  const statusCode = ref(null);
-  const response = shallowRef(null);
-  const error = shallowRef(null);
-  const data = shallowRef(initialData || null);
-  const canAbort = computed(() => supportsAbort && isFetching.value);
-  let controller;
-  let timer;
-  const abort = () => {
-    if (supportsAbort) {
-      controller == null ? void 0 : controller.abort();
-      controller = new AbortController();
-      controller.signal.onabort = () => aborted.value = true;
-      fetchOptions = __spreadProps$42(__spreadValues$d({}, fetchOptions), {
-        signal: controller.signal
-      });
-    }
-  };
-  const loading = (isLoading) => {
-    isFetching.value = isLoading;
-    isFinished.value = !isLoading;
-  };
-  if (timeout)
-    timer = useTimeoutFn(abort, timeout, { immediate: false });
-  const execute = async (throwOnFailed = false) => {
-    var _a2;
-    abort();
-    loading(true);
-    error.value = null;
-    statusCode.value = null;
-    aborted.value = false;
-    const defaultFetchOptions = {
-      method: config.method,
-      headers: {}
-    };
-    if (config.payload) {
-      const headers = headersToObject(defaultFetchOptions.headers);
-      if (config.payloadType)
-        headers["Content-Type"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;
-      const payload = toValue(config.payload);
-      defaultFetchOptions.body = config.payloadType === "json" ? JSON.stringify(payload) : payload;
-    }
-    let isCanceled = false;
-    const context = {
-      url: toValue(url),
-      options: __spreadValues$d(__spreadValues$d({}, defaultFetchOptions), fetchOptions),
-      cancel: () => {
-        isCanceled = true;
-      }
-    };
-    if (options.beforeFetch)
-      Object.assign(context, await options.beforeFetch(context));
-    if (isCanceled || !fetch) {
-      loading(false);
-      return Promise.resolve(null);
-    }
-    let responseData = null;
-    if (timer)
-      timer.start();
-    return new Promise((resolve, reject) => {
-      var _a3;
-      fetch(
-        context.url,
-        __spreadProps$42(__spreadValues$d(__spreadValues$d({}, defaultFetchOptions), context.options), {
-          headers: __spreadValues$d(__spreadValues$d({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))
-        })
-      ).then(async (fetchResponse) => {
-        response.value = fetchResponse;
-        statusCode.value = fetchResponse.status;
-        responseData = await fetchResponse[config.type]();
-        if (!fetchResponse.ok) {
-          data.value = initialData || null;
-          throw new Error(fetchResponse.statusText);
-        }
-        if (options.afterFetch)
-          ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));
-        data.value = responseData;
-        responseEvent.trigger(fetchResponse);
-        return resolve(fetchResponse);
-      }).catch(async (fetchError) => {
-        let errorData = fetchError.message || fetchError.name;
-        if (options.onFetchError)
-          ({ error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));
-        error.value = errorData;
-        errorEvent.trigger(fetchError);
-        if (throwOnFailed)
-          return reject(fetchError);
-        return resolve(null);
-      }).finally(() => {
-        loading(false);
-        if (timer)
-          timer.stop();
-        finallyEvent.trigger(null);
-      });
-    });
-  };
-  const refetch = toRef2(options.refetch);
-  watch(
-    [
-      refetch,
-      toRef2(url)
-    ],
-    ([refetch2]) => refetch2 && execute(),
-    { deep: true }
-  );
-  const shell = {
-    isFinished,
-    statusCode,
-    response,
-    error,
-    data,
-    isFetching,
-    canAbort,
-    aborted,
-    abort,
-    execute,
-    onFetchResponse: responseEvent.on,
-    onFetchError: errorEvent.on,
-    onFetchFinally: finallyEvent.on,
-    // method
-    get: setMethod("GET"),
-    put: setMethod("PUT"),
-    post: setMethod("POST"),
-    delete: setMethod("DELETE"),
-    patch: setMethod("PATCH"),
-    head: setMethod("HEAD"),
-    options: setMethod("OPTIONS"),
-    // type
-    json: setType("json"),
-    text: setType("text"),
-    blob: setType("blob"),
-    arrayBuffer: setType("arrayBuffer"),
-    formData: setType("formData")
-  };
-  function setMethod(method) {
-    return (payload, payloadType) => {
-      if (!isFetching.value) {
-        config.method = method;
-        config.payload = payload;
-        config.payloadType = payloadType;
-        if (isRef(config.payload)) {
-          watch(
-            [
-              refetch,
-              toRef2(config.payload)
-            ],
-            ([refetch2]) => refetch2 && execute(),
-            { deep: true }
-          );
-        }
-        const rawPayload = toValue(config.payload);
-        if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype && !(rawPayload instanceof FormData))
-          config.payloadType = "json";
-        return __spreadProps$42(__spreadValues$d({}, shell), {
-          then(onFulfilled, onRejected) {
-            return waitUntilFinished().then(onFulfilled, onRejected);
-          }
-        });
-      }
-      return void 0;
-    };
-  }
-  function waitUntilFinished() {
-    return new Promise((resolve, reject) => {
-      until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));
-    });
-  }
-  function setType(type) {
-    return () => {
-      if (!isFetching.value) {
-        config.type = type;
-        return __spreadProps$42(__spreadValues$d({}, shell), {
-          then(onFulfilled, onRejected) {
-            return waitUntilFinished().then(onFulfilled, onRejected);
-          }
-        });
-      }
-      return void 0;
-    };
-  }
-  if (options.immediate)
-    Promise.resolve().then(() => execute());
-  return __spreadProps$42(__spreadValues$d({}, shell), {
-    then(onFulfilled, onRejected) {
-      return waitUntilFinished().then(onFulfilled, onRejected);
-    }
-  });
-}
-function joinPaths(start, end) {
-  if (!start.endsWith("/") && !end.startsWith("/"))
-    return `${start}/${end}`;
-  return `${start}${end}`;
-}
-var __defProp$c = Object.defineProperty;
-var __getOwnPropSymbols$d2 = Object.getOwnPropertySymbols;
-var __hasOwnProp$d2 = Object.prototype.hasOwnProperty;
-var __propIsEnum$d2 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$c = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$d2.call(b, prop))
-      __defNormalProp$c(a, prop, b[prop]);
-  if (__getOwnPropSymbols$d2)
-    for (var prop of __getOwnPropSymbols$d2(b)) {
-      if (__propIsEnum$d2.call(b, prop))
-        __defNormalProp$c(a, prop, b[prop]);
-    }
-  return a;
-};
-var DEFAULT_OPTIONS = {
-  multiple: true,
-  accept: "*"
-};
-function useFileDialog(options = {}) {
-  const {
-    document: document2 = defaultDocument
-  } = options;
-  const files = ref(null);
-  const { on: onChange, trigger } = createEventHook();
-  let input;
-  if (document2) {
-    input = document2.createElement("input");
-    input.type = "file";
-    input.onchange = (event) => {
-      const result = event.target;
-      files.value = result.files;
-      trigger(files.value);
-    };
-  }
-  const open = (localOptions) => {
-    if (!input)
-      return;
-    const _options = __spreadValues$c(__spreadValues$c(__spreadValues$c({}, DEFAULT_OPTIONS), options), localOptions);
-    input.multiple = _options.multiple;
-    input.accept = _options.accept;
-    if (hasOwn(_options, "capture"))
-      input.capture = _options.capture;
-    input.click();
-  };
-  const reset = () => {
-    files.value = null;
-    if (input)
-      input.value = "";
-  };
-  return {
-    files: readonly(files),
-    open,
-    reset,
-    onChange
-  };
-}
-var __defProp$b2 = Object.defineProperty;
-var __getOwnPropSymbols$c2 = Object.getOwnPropertySymbols;
-var __hasOwnProp$c2 = Object.prototype.hasOwnProperty;
-var __propIsEnum$c2 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$b2 = (obj, key, value) => key in obj ? __defProp$b2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$b2 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$c2.call(b, prop))
-      __defNormalProp$b2(a, prop, b[prop]);
-  if (__getOwnPropSymbols$c2)
-    for (var prop of __getOwnPropSymbols$c2(b)) {
-      if (__propIsEnum$c2.call(b, prop))
-        __defNormalProp$b2(a, prop, b[prop]);
-    }
-  return a;
-};
-function useFileSystemAccess(options = {}) {
-  const {
-    window: _window = defaultWindow,
-    dataType = "Text"
-  } = options;
-  const window2 = _window;
-  const isSupported = useSupported(() => window2 && "showSaveFilePicker" in window2 && "showOpenFilePicker" in window2);
-  const fileHandle = ref();
-  const data = ref();
-  const file = ref();
-  const fileName = computed(() => {
-    var _a, _b;
-    return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : "";
-  });
-  const fileMIME = computed(() => {
-    var _a, _b;
-    return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : "";
-  });
-  const fileSize = computed(() => {
-    var _a, _b;
-    return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;
-  });
-  const fileLastModified = computed(() => {
-    var _a, _b;
-    return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;
-  });
-  async function open(_options = {}) {
-    if (!isSupported.value)
-      return;
-    const [handle] = await window2.showOpenFilePicker(__spreadValues$b2(__spreadValues$b2({}, toValue(options)), _options));
-    fileHandle.value = handle;
-    await updateFile();
-    await updateData();
-  }
-  async function create(_options = {}) {
-    if (!isSupported.value)
-      return;
-    fileHandle.value = await window2.showSaveFilePicker(__spreadValues$b2(__spreadValues$b2({}, options), _options));
-    data.value = void 0;
-    await updateFile();
-    await updateData();
-  }
-  async function save(_options = {}) {
-    if (!isSupported.value)
-      return;
-    if (!fileHandle.value)
-      return saveAs(_options);
-    if (data.value) {
-      const writableStream = await fileHandle.value.createWritable();
-      await writableStream.write(data.value);
-      await writableStream.close();
-    }
-    await updateFile();
-  }
-  async function saveAs(_options = {}) {
-    if (!isSupported.value)
-      return;
-    fileHandle.value = await window2.showSaveFilePicker(__spreadValues$b2(__spreadValues$b2({}, options), _options));
-    if (data.value) {
-      const writableStream = await fileHandle.value.createWritable();
-      await writableStream.write(data.value);
-      await writableStream.close();
-    }
-    await updateFile();
-  }
-  async function updateFile() {
-    var _a;
-    file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());
-  }
-  async function updateData() {
-    var _a, _b;
-    const type = toValue(dataType);
-    if (type === "Text")
-      data.value = await ((_a = file.value) == null ? void 0 : _a.text());
-    else if (type === "ArrayBuffer")
-      data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());
-    else if (type === "Blob")
-      data.value = file.value;
-  }
-  watch(() => toValue(dataType), updateData);
-  return {
-    isSupported,
-    data,
-    file,
-    fileName,
-    fileMIME,
-    fileSize,
-    fileLastModified,
-    open,
-    create,
-    save,
-    saveAs,
-    updateData
-  };
-}
-function useFocus(target, options = {}) {
-  const { initialValue = false } = options;
-  const innerFocused = ref(false);
-  const targetElement = computed(() => unrefElement(target));
-  useEventListener(targetElement, "focus", () => innerFocused.value = true);
-  useEventListener(targetElement, "blur", () => innerFocused.value = false);
-  const focused = computed({
-    get: () => innerFocused.value,
-    set(value) {
-      var _a, _b;
-      if (!value && innerFocused.value)
-        (_a = targetElement.value) == null ? void 0 : _a.blur();
-      else if (value && !innerFocused.value)
-        (_b = targetElement.value) == null ? void 0 : _b.focus();
-    }
-  });
-  watch(
-    targetElement,
-    () => {
-      focused.value = initialValue;
-    },
-    { immediate: true, flush: "post" }
-  );
-  return { focused };
-}
-function useFocusWithin(target, options = {}) {
-  const activeElement = useActiveElement(options);
-  const targetElement = computed(() => unrefElement(target));
-  const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);
-  return { focused };
-}
-function useFps(options) {
-  var _a;
-  const fps = ref(0);
-  if (typeof performance === "undefined")
-    return fps;
-  const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;
-  let last = performance.now();
-  let ticks = 0;
-  useRafFn(() => {
-    ticks += 1;
-    if (ticks >= every) {
-      const now2 = performance.now();
-      const diff = now2 - last;
-      fps.value = Math.round(1e3 / (diff / ticks));
-      last = now2;
-      ticks = 0;
-    }
-  });
-  return fps;
-}
-var eventHandlers = [
-  "fullscreenchange",
-  "webkitfullscreenchange",
-  "webkitendfullscreen",
-  "mozfullscreenchange",
-  "MSFullscreenChange"
-];
-function useFullscreen(target, options = {}) {
-  const {
-    document: document2 = defaultDocument,
-    autoExit = false
-  } = options;
-  const targetRef = computed(() => {
-    var _a;
-    return (_a = unrefElement(target)) != null ? _a : document2 == null ? void 0 : document2.querySelector("html");
-  });
-  const isFullscreen = ref(false);
-  const requestMethod = computed(() => {
-    return [
-      "requestFullscreen",
-      "webkitRequestFullscreen",
-      "webkitEnterFullscreen",
-      "webkitEnterFullScreen",
-      "webkitRequestFullScreen",
-      "mozRequestFullScreen",
-      "msRequestFullscreen"
-    ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value);
-  });
-  const exitMethod = computed(() => {
-    return [
-      "exitFullscreen",
-      "webkitExitFullscreen",
-      "webkitExitFullScreen",
-      "webkitCancelFullScreen",
-      "mozCancelFullScreen",
-      "msExitFullscreen"
-    ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value);
-  });
-  const fullscreenEnabled = computed(() => {
-    return [
-      "fullScreen",
-      "webkitIsFullScreen",
-      "webkitDisplayingFullscreen",
-      "mozFullScreen",
-      "msFullscreenElement"
-    ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value);
-  });
-  const fullscreenElementMethod = [
-    "fullscreenElement",
-    "webkitFullscreenElement",
-    "mozFullScreenElement",
-    "msFullscreenElement"
-  ].find((m) => document2 && m in document2);
-  const isSupported = useSupported(
-    () => targetRef.value && document2 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0
-  );
-  const isCurrentElementFullScreen = () => {
-    if (fullscreenElementMethod)
-      return (document2 == null ? void 0 : document2[fullscreenElementMethod]) === targetRef.value;
-    return false;
-  };
-  const isElementFullScreen = () => {
-    if (fullscreenEnabled.value) {
-      if (document2 && document2[fullscreenEnabled.value] != null) {
-        return document2[fullscreenEnabled.value];
-      } else {
-        const target2 = targetRef.value;
-        if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {
-          return Boolean(target2[fullscreenEnabled.value]);
-        }
-      }
-    }
-    return false;
-  };
-  async function exit() {
-    if (!isSupported.value)
-      return;
-    if (exitMethod.value) {
-      if ((document2 == null ? void 0 : document2[exitMethod.value]) != null) {
-        await document2[exitMethod.value]();
-      } else {
-        const target2 = targetRef.value;
-        if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)
-          await target2[exitMethod.value]();
-      }
-    }
-    isFullscreen.value = false;
-  }
-  async function enter() {
-    if (!isSupported.value)
-      return;
-    if (isElementFullScreen())
-      await exit();
-    const target2 = targetRef.value;
-    if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {
-      await target2[requestMethod.value]();
-      isFullscreen.value = true;
-    }
-  }
-  async function toggle() {
-    await (isFullscreen.value ? exit() : enter());
-  }
-  const handlerCallback = () => {
-    const isElementFullScreenValue = isElementFullScreen();
-    if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())
-      isFullscreen.value = isElementFullScreenValue;
-  };
-  useEventListener(document2, eventHandlers, handlerCallback, false);
-  useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);
-  if (autoExit)
-    tryOnScopeDispose(exit);
-  return {
-    isSupported,
-    isFullscreen,
-    enter,
-    exit,
-    toggle
-  };
-}
-function mapGamepadToXbox360Controller(gamepad) {
-  return computed(() => {
-    if (gamepad.value) {
-      return {
-        buttons: {
-          a: gamepad.value.buttons[0],
-          b: gamepad.value.buttons[1],
-          x: gamepad.value.buttons[2],
-          y: gamepad.value.buttons[3]
-        },
-        bumper: {
-          left: gamepad.value.buttons[4],
-          right: gamepad.value.buttons[5]
-        },
-        triggers: {
-          left: gamepad.value.buttons[6],
-          right: gamepad.value.buttons[7]
-        },
-        stick: {
-          left: {
-            horizontal: gamepad.value.axes[0],
-            vertical: gamepad.value.axes[1],
-            button: gamepad.value.buttons[10]
-          },
-          right: {
-            horizontal: gamepad.value.axes[2],
-            vertical: gamepad.value.axes[3],
-            button: gamepad.value.buttons[11]
-          }
-        },
-        dpad: {
-          up: gamepad.value.buttons[12],
-          down: gamepad.value.buttons[13],
-          left: gamepad.value.buttons[14],
-          right: gamepad.value.buttons[15]
-        },
-        back: gamepad.value.buttons[8],
-        start: gamepad.value.buttons[9]
-      };
-    }
-    return null;
-  });
-}
-function useGamepad(options = {}) {
-  const {
-    navigator = defaultNavigator
-  } = options;
-  const isSupported = useSupported(() => navigator && "getGamepads" in navigator);
-  const gamepads = ref([]);
-  const onConnectedHook = createEventHook();
-  const onDisconnectedHook = createEventHook();
-  const stateFromGamepad = (gamepad) => {
-    const hapticActuators = [];
-    const vibrationActuator = "vibrationActuator" in gamepad ? gamepad.vibrationActuator : null;
-    if (vibrationActuator)
-      hapticActuators.push(vibrationActuator);
-    if (gamepad.hapticActuators)
-      hapticActuators.push(...gamepad.hapticActuators);
-    return {
-      id: gamepad.id,
-      hapticActuators,
-      index: gamepad.index,
-      mapping: gamepad.mapping,
-      connected: gamepad.connected,
-      timestamp: gamepad.timestamp,
-      axes: gamepad.axes.map((axes) => axes),
-      buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))
-    };
-  };
-  const updateGamepadState = () => {
-    const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];
-    for (let i = 0; i < _gamepads.length; ++i) {
-      const gamepad = _gamepads[i];
-      if (gamepad) {
-        const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);
-        if (index > -1)
-          gamepads.value[index] = stateFromGamepad(gamepad);
-      }
-    }
-  };
-  const { isActive, pause, resume } = useRafFn(updateGamepadState);
-  const onGamepadConnected = (gamepad) => {
-    if (!gamepads.value.some(({ index }) => index === gamepad.index)) {
-      gamepads.value.push(stateFromGamepad(gamepad));
-      onConnectedHook.trigger(gamepad.index);
-    }
-    resume();
-  };
-  const onGamepadDisconnected = (gamepad) => {
-    gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);
-    onDisconnectedHook.trigger(gamepad.index);
-  };
-  useEventListener("gamepadconnected", (e) => onGamepadConnected(e.gamepad));
-  useEventListener("gamepaddisconnected", (e) => onGamepadDisconnected(e.gamepad));
-  tryOnMounted(() => {
-    const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];
-    if (_gamepads) {
-      for (let i = 0; i < _gamepads.length; ++i) {
-        const gamepad = _gamepads[i];
-        if (gamepad)
-          onGamepadConnected(gamepad);
-      }
-    }
-  });
-  pause();
-  return {
-    isSupported,
-    onConnected: onConnectedHook.on,
-    onDisconnected: onDisconnectedHook.on,
-    gamepads,
-    pause,
-    resume,
-    isActive
-  };
-}
-function useGeolocation(options = {}) {
-  const {
-    enableHighAccuracy = true,
-    maximumAge = 3e4,
-    timeout = 27e3,
-    navigator = defaultNavigator,
-    immediate = true
-  } = options;
-  const isSupported = useSupported(() => navigator && "geolocation" in navigator);
-  const locatedAt = ref(null);
-  const error = shallowRef(null);
-  const coords = ref({
-    accuracy: 0,
-    latitude: Infinity,
-    longitude: Infinity,
-    altitude: null,
-    altitudeAccuracy: null,
-    heading: null,
-    speed: null
-  });
-  function updatePosition(position) {
-    locatedAt.value = position.timestamp;
-    coords.value = position.coords;
-    error.value = null;
-  }
-  let watcher;
-  function resume() {
-    if (isSupported.value) {
-      watcher = navigator.geolocation.watchPosition(
-        updatePosition,
-        (err) => error.value = err,
-        {
-          enableHighAccuracy,
-          maximumAge,
-          timeout
-        }
-      );
-    }
-  }
-  if (immediate)
-    resume();
-  function pause() {
-    if (watcher && navigator)
-      navigator.geolocation.clearWatch(watcher);
-  }
-  tryOnScopeDispose(() => {
-    pause();
-  });
-  return {
-    isSupported,
-    coords,
-    locatedAt,
-    error,
-    resume,
-    pause
-  };
-}
-var defaultEvents$1 = ["mousemove", "mousedown", "resize", "keydown", "touchstart", "wheel"];
-var oneMinute = 6e4;
-function useIdle(timeout = oneMinute, options = {}) {
-  const {
-    initialState = false,
-    listenForVisibilityChange = true,
-    events: events2 = defaultEvents$1,
-    window: window2 = defaultWindow,
-    eventFilter = throttleFilter(50)
-  } = options;
-  const idle = ref(initialState);
-  const lastActive = ref(timestamp());
-  let timer;
-  const reset = () => {
-    idle.value = false;
-    clearTimeout(timer);
-    timer = setTimeout(() => idle.value = true, timeout);
-  };
-  const onEvent = createFilterWrapper(
-    eventFilter,
-    () => {
-      lastActive.value = timestamp();
-      reset();
-    }
-  );
-  if (window2) {
-    const document2 = window2.document;
-    for (const event of events2)
-      useEventListener(window2, event, onEvent, { passive: true });
-    if (listenForVisibilityChange) {
-      useEventListener(document2, "visibilitychange", () => {
-        if (!document2.hidden)
-          onEvent();
-      });
-    }
-    reset();
-  }
-  return {
-    idle,
-    lastActive,
-    reset
-  };
-}
-var __defProp$a2 = Object.defineProperty;
-var __getOwnPropSymbols$b2 = Object.getOwnPropertySymbols;
-var __hasOwnProp$b2 = Object.prototype.hasOwnProperty;
-var __propIsEnum$b2 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$a2 = (obj, key, value) => key in obj ? __defProp$a2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$a2 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$b2.call(b, prop))
-      __defNormalProp$a2(a, prop, b[prop]);
-  if (__getOwnPropSymbols$b2)
-    for (var prop of __getOwnPropSymbols$b2(b)) {
-      if (__propIsEnum$b2.call(b, prop))
-        __defNormalProp$a2(a, prop, b[prop]);
-    }
-  return a;
-};
-async function loadImage(options) {
-  return new Promise((resolve, reject) => {
-    const img = new Image();
-    const { src, srcset, sizes, class: clazz, loading, crossorigin } = options;
-    img.src = src;
-    if (srcset)
-      img.srcset = srcset;
-    if (sizes)
-      img.sizes = sizes;
-    if (clazz)
-      img.className = clazz;
-    if (loading)
-      img.loading = loading;
-    if (crossorigin)
-      img.crossOrigin = crossorigin;
-    img.onload = () => resolve(img);
-    img.onerror = reject;
-  });
-}
-function useImage(options, asyncStateOptions = {}) {
-  const state = useAsyncState(
-    () => loadImage(toValue(options)),
-    void 0,
-    __spreadValues$a2({
-      resetOnExecute: true
-    }, asyncStateOptions)
-  );
-  watch(
-    () => toValue(options),
-    () => state.execute(asyncStateOptions.delay),
-    { deep: true }
-  );
-  return state;
-}
-var ARRIVED_STATE_THRESHOLD_PIXELS = 1;
-function useScroll(element, options = {}) {
-  const {
-    throttle = 0,
-    idle = 200,
-    onStop = noop,
-    onScroll = noop,
-    offset = {
-      left: 0,
-      right: 0,
-      top: 0,
-      bottom: 0
-    },
-    eventListenerOptions = {
-      capture: false,
-      passive: true
-    },
-    behavior = "auto"
-  } = options;
-  const internalX = ref(0);
-  const internalY = ref(0);
-  const x = computed({
-    get() {
-      return internalX.value;
-    },
-    set(x2) {
-      scrollTo(x2, void 0);
-    }
-  });
-  const y = computed({
-    get() {
-      return internalY.value;
-    },
-    set(y2) {
-      scrollTo(void 0, y2);
-    }
-  });
-  function scrollTo(_x, _y) {
-    var _a, _b, _c;
-    const _element = toValue(element);
-    if (!_element)
-      return;
-    (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
-      top: (_a = toValue(_y)) != null ? _a : y.value,
-      left: (_b = toValue(_x)) != null ? _b : x.value,
-      behavior: toValue(behavior)
-    });
-  }
-  const isScrolling = ref(false);
-  const arrivedState = reactive({
-    left: true,
-    right: false,
-    top: true,
-    bottom: false
-  });
-  const directions = reactive({
-    left: false,
-    right: false,
-    top: false,
-    bottom: false
-  });
-  const onScrollEnd = (e) => {
-    if (!isScrolling.value)
-      return;
-    isScrolling.value = false;
-    directions.left = false;
-    directions.right = false;
-    directions.top = false;
-    directions.bottom = false;
-    onStop(e);
-  };
-  const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);
-  const setArrivedState = (target) => {
-    const el = target === document ? target.documentElement : target;
-    const { display, flexDirection } = getComputedStyle(el);
-    const scrollLeft = el.scrollLeft;
-    directions.left = scrollLeft < internalX.value;
-    directions.right = scrollLeft > internalX.value;
-    const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);
-    const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
-    if (display === "flex" && flexDirection === "row-reverse") {
-      arrivedState.left = right;
-      arrivedState.right = left;
-    } else {
-      arrivedState.left = left;
-      arrivedState.right = right;
-    }
-    internalX.value = scrollLeft;
-    let scrollTop = el.scrollTop;
-    if (target === document && !scrollTop)
-      scrollTop = document.body.scrollTop;
-    directions.top = scrollTop < internalY.value;
-    directions.bottom = scrollTop > internalY.value;
-    const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);
-    const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
-    if (display === "flex" && flexDirection === "column-reverse") {
-      arrivedState.top = bottom;
-      arrivedState.bottom = top;
-    } else {
-      arrivedState.top = top;
-      arrivedState.bottom = bottom;
-    }
-    internalY.value = scrollTop;
-  };
-  const onScrollHandler = (e) => {
-    const eventTarget = e.target === document ? e.target.documentElement : e.target;
-    setArrivedState(eventTarget);
-    isScrolling.value = true;
-    onScrollEndDebounced(e);
-    onScroll(e);
-  };
-  useEventListener(
-    element,
-    "scroll",
-    throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,
-    eventListenerOptions
-  );
-  useEventListener(
-    element,
-    "scrollend",
-    onScrollEnd,
-    eventListenerOptions
-  );
-  return {
-    x,
-    y,
-    isScrolling,
-    arrivedState,
-    directions,
-    measure() {
-      const _element = toValue(element);
-      if (_element)
-        setArrivedState(_element);
-    }
-  };
-}
-var __defProp$92 = Object.defineProperty;
-var __defProps$32 = Object.defineProperties;
-var __getOwnPropDescs$32 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$a2 = Object.getOwnPropertySymbols;
-var __hasOwnProp$a2 = Object.prototype.hasOwnProperty;
-var __propIsEnum$a2 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$92 = (obj, key, value) => key in obj ? __defProp$92(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$92 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$a2.call(b, prop))
-      __defNormalProp$92(a, prop, b[prop]);
-  if (__getOwnPropSymbols$a2)
-    for (var prop of __getOwnPropSymbols$a2(b)) {
-      if (__propIsEnum$a2.call(b, prop))
-        __defNormalProp$92(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$32 = (a, b) => __defProps$32(a, __getOwnPropDescs$32(b));
-function useInfiniteScroll(element, onLoadMore, options = {}) {
-  var _a;
-  const {
-    direction = "bottom",
-    interval = 100
-  } = options;
-  const state = reactive(useScroll(
-    element,
-    __spreadProps$32(__spreadValues$92({}, options), {
-      offset: __spreadValues$92({
-        [direction]: (_a = options.distance) != null ? _a : 0
-      }, options.offset)
-    })
-  ));
-  const promise = ref();
-  const isLoading = computed(() => !!promise.value);
-  function checkAndLoad() {
-    state.measure();
-    const el = toValue(element);
-    if (!el)
-      return;
-    const isNarrower = direction === "bottom" || direction === "top" ? el.scrollHeight <= el.clientHeight : el.scrollWidth <= el.clientWidth;
-    if (state.arrivedState[direction] || isNarrower) {
-      if (!promise.value) {
-        promise.value = Promise.all([
-          onLoadMore(state),
-          new Promise((resolve) => setTimeout(resolve, interval))
-        ]).finally(() => {
-          promise.value = null;
-          nextTick(() => checkAndLoad());
-        });
-      }
-    }
-  }
-  watch(
-    () => [state.arrivedState[direction], toValue(element)],
-    checkAndLoad,
-    { immediate: true }
-  );
-  return {
-    isLoading
-  };
-}
-var defaultEvents = ["mousedown", "mouseup", "keydown", "keyup"];
-function useKeyModifier(modifier, options = {}) {
-  const {
-    events: events2 = defaultEvents,
-    document: document2 = defaultDocument,
-    initial = null
-  } = options;
-  const state = ref(initial);
-  if (document2) {
-    events2.forEach((listenerEvent) => {
-      useEventListener(document2, listenerEvent, (evt) => {
-        if (typeof evt.getModifierState === "function")
-          state.value = evt.getModifierState(modifier);
-      });
-    });
-  }
-  return state;
-}
-function useLocalStorage(key, initialValue, options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  return useStorage(key, initialValue, window2 == null ? void 0 : window2.localStorage, options);
-}
-var DefaultMagicKeysAliasMap = {
-  ctrl: "control",
-  command: "meta",
-  cmd: "meta",
-  option: "alt",
-  up: "arrowup",
-  down: "arrowdown",
-  left: "arrowleft",
-  right: "arrowright"
-};
-function useMagicKeys(options = {}) {
-  const {
-    reactive: useReactive = false,
-    target = defaultWindow,
-    aliasMap = DefaultMagicKeysAliasMap,
-    passive = true,
-    onEventFired = noop
-  } = options;
-  const current = reactive(/* @__PURE__ */ new Set());
-  const obj = {
-    toJSON() {
-      return {};
-    },
-    current
-  };
-  const refs = useReactive ? reactive(obj) : obj;
-  const metaDeps = /* @__PURE__ */ new Set();
-  const usedKeys = /* @__PURE__ */ new Set();
-  function setRefs(key, value) {
-    if (key in refs) {
-      if (useReactive)
-        refs[key] = value;
-      else
-        refs[key].value = value;
-    }
-  }
-  function reset() {
-    current.clear();
-    for (const key of usedKeys)
-      setRefs(key, false);
-  }
-  function updateRefs(e, value) {
-    var _a, _b;
-    const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();
-    const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();
-    const values = [code, key].filter(Boolean);
-    if (key) {
-      if (value)
-        current.add(key);
-      else
-        current.delete(key);
-    }
-    for (const key2 of values) {
-      usedKeys.add(key2);
-      setRefs(key2, value);
-    }
-    if (key === "meta" && !value) {
-      metaDeps.forEach((key2) => {
-        current.delete(key2);
-        setRefs(key2, false);
-      });
-      metaDeps.clear();
-    } else if (typeof e.getModifierState === "function" && e.getModifierState("Meta") && value) {
-      [...current, ...values].forEach((key2) => metaDeps.add(key2));
-    }
-  }
-  useEventListener(target, "keydown", (e) => {
-    updateRefs(e, true);
-    return onEventFired(e);
-  }, { passive });
-  useEventListener(target, "keyup", (e) => {
-    updateRefs(e, false);
-    return onEventFired(e);
-  }, { passive });
-  useEventListener("blur", reset, { passive: true });
-  useEventListener("focus", reset, { passive: true });
-  const proxy = new Proxy(
-    refs,
-    {
-      get(target2, prop, rec) {
-        if (typeof prop !== "string")
-          return Reflect.get(target2, prop, rec);
-        prop = prop.toLowerCase();
-        if (prop in aliasMap)
-          prop = aliasMap[prop];
-        if (!(prop in refs)) {
-          if (/[+_-]/.test(prop)) {
-            const keys2 = prop.split(/[+_-]/g).map((i) => i.trim());
-            refs[prop] = computed(() => keys2.every((key) => toValue(proxy[key])));
-          } else {
-            refs[prop] = ref(false);
-          }
-        }
-        const r = Reflect.get(target2, prop, rec);
-        return useReactive ? toValue(r) : r;
-      }
-    }
-  );
-  return proxy;
-}
-var __defProp$82 = Object.defineProperty;
-var __getOwnPropSymbols$92 = Object.getOwnPropertySymbols;
-var __hasOwnProp$92 = Object.prototype.hasOwnProperty;
-var __propIsEnum$92 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$82 = (obj, key, value) => key in obj ? __defProp$82(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$82 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$92.call(b, prop))
-      __defNormalProp$82(a, prop, b[prop]);
-  if (__getOwnPropSymbols$92)
-    for (var prop of __getOwnPropSymbols$92(b)) {
-      if (__propIsEnum$92.call(b, prop))
-        __defNormalProp$82(a, prop, b[prop]);
-    }
-  return a;
-};
-function usingElRef(source, cb) {
-  if (toValue(source))
-    cb(toValue(source));
-}
-function timeRangeToArray(timeRanges) {
-  let ranges = [];
-  for (let i = 0; i < timeRanges.length; ++i)
-    ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];
-  return ranges;
-}
-function tracksToArray(tracks) {
-  return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));
-}
-var defaultOptions = {
-  src: "",
-  tracks: []
-};
-function useMediaControls(target, options = {}) {
-  options = __spreadValues$82(__spreadValues$82({}, defaultOptions), options);
-  const {
-    document: document2 = defaultDocument
-  } = options;
-  const currentTime = ref(0);
-  const duration = ref(0);
-  const seeking = ref(false);
-  const volume = ref(1);
-  const waiting = ref(false);
-  const ended = ref(false);
-  const playing = ref(false);
-  const rate = ref(1);
-  const stalled = ref(false);
-  const buffered = ref([]);
-  const tracks = ref([]);
-  const selectedTrack = ref(-1);
-  const isPictureInPicture = ref(false);
-  const muted = ref(false);
-  const supportsPictureInPicture = document2 && "pictureInPictureEnabled" in document2;
-  const sourceErrorEvent = createEventHook();
-  const disableTrack = (track) => {
-    usingElRef(target, (el) => {
-      if (track) {
-        const id = typeof track === "number" ? track : track.id;
-        el.textTracks[id].mode = "disabled";
-      } else {
-        for (let i = 0; i < el.textTracks.length; ++i)
-          el.textTracks[i].mode = "disabled";
-      }
-      selectedTrack.value = -1;
-    });
-  };
-  const enableTrack = (track, disableTracks = true) => {
-    usingElRef(target, (el) => {
-      const id = typeof track === "number" ? track : track.id;
-      if (disableTracks)
-        disableTrack();
-      el.textTracks[id].mode = "showing";
-      selectedTrack.value = id;
-    });
-  };
-  const togglePictureInPicture = () => {
-    return new Promise((resolve, reject) => {
-      usingElRef(target, async (el) => {
-        if (supportsPictureInPicture) {
-          if (!isPictureInPicture.value) {
-            el.requestPictureInPicture().then(resolve).catch(reject);
-          } else {
-            document2.exitPictureInPicture().then(resolve).catch(reject);
-          }
-        }
-      });
-    });
-  };
-  watchEffect(() => {
-    if (!document2)
-      return;
-    const el = toValue(target);
-    if (!el)
-      return;
-    const src = toValue(options.src);
-    let sources = [];
-    if (!src)
-      return;
-    if (typeof src === "string")
-      sources = [{ src }];
-    else if (Array.isArray(src))
-      sources = src;
-    else if (isObject(src))
-      sources = [src];
-    el.querySelectorAll("source").forEach((e) => {
-      e.removeEventListener("error", sourceErrorEvent.trigger);
-      e.remove();
-    });
-    sources.forEach(({ src: src2, type }) => {
-      const source = document2.createElement("source");
-      source.setAttribute("src", src2);
-      source.setAttribute("type", type || "");
-      source.addEventListener("error", sourceErrorEvent.trigger);
-      el.appendChild(source);
-    });
-    el.load();
-  });
-  tryOnScopeDispose(() => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    el.querySelectorAll("source").forEach((e) => e.removeEventListener("error", sourceErrorEvent.trigger));
-  });
-  watch([target, volume], () => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    el.volume = volume.value;
-  });
-  watch([target, muted], () => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    el.muted = muted.value;
-  });
-  watch([target, rate], () => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    el.playbackRate = rate.value;
-  });
-  watchEffect(() => {
-    if (!document2)
-      return;
-    const textTracks = toValue(options.tracks);
-    const el = toValue(target);
-    if (!textTracks || !textTracks.length || !el)
-      return;
-    el.querySelectorAll("track").forEach((e) => e.remove());
-    textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {
-      const track = document2.createElement("track");
-      track.default = isDefault || false;
-      track.kind = kind;
-      track.label = label;
-      track.src = src;
-      track.srclang = srcLang;
-      if (track.default)
-        selectedTrack.value = i;
-      el.appendChild(track);
-    });
-  });
-  const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    el.currentTime = time;
-  });
-  const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    isPlaying ? el.play() : el.pause();
-  });
-  useEventListener(target, "timeupdate", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));
-  useEventListener(target, "durationchange", () => duration.value = toValue(target).duration);
-  useEventListener(target, "progress", () => buffered.value = timeRangeToArray(toValue(target).buffered));
-  useEventListener(target, "seeking", () => seeking.value = true);
-  useEventListener(target, "seeked", () => seeking.value = false);
-  useEventListener(target, "waiting", () => waiting.value = true);
-  useEventListener(target, "playing", () => {
-    waiting.value = false;
-    ended.value = false;
-  });
-  useEventListener(target, "ratechange", () => rate.value = toValue(target).playbackRate);
-  useEventListener(target, "stalled", () => stalled.value = true);
-  useEventListener(target, "ended", () => ended.value = true);
-  useEventListener(target, "pause", () => ignorePlayingUpdates(() => playing.value = false));
-  useEventListener(target, "play", () => ignorePlayingUpdates(() => playing.value = true));
-  useEventListener(target, "enterpictureinpicture", () => isPictureInPicture.value = true);
-  useEventListener(target, "leavepictureinpicture", () => isPictureInPicture.value = false);
-  useEventListener(target, "volumechange", () => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    volume.value = el.volume;
-    muted.value = el.muted;
-  });
-  const listeners = [];
-  const stop = watch([target], () => {
-    const el = toValue(target);
-    if (!el)
-      return;
-    stop();
-    listeners[0] = useEventListener(el.textTracks, "addtrack", () => tracks.value = tracksToArray(el.textTracks));
-    listeners[1] = useEventListener(el.textTracks, "removetrack", () => tracks.value = tracksToArray(el.textTracks));
-    listeners[2] = useEventListener(el.textTracks, "change", () => tracks.value = tracksToArray(el.textTracks));
-  });
-  tryOnScopeDispose(() => listeners.forEach((listener) => listener()));
-  return {
-    currentTime,
-    duration,
-    waiting,
-    seeking,
-    ended,
-    stalled,
-    buffered,
-    playing,
-    rate,
-    // Volume
-    volume,
-    muted,
-    // Tracks
-    tracks,
-    selectedTrack,
-    enableTrack,
-    disableTrack,
-    // Picture in Picture
-    supportsPictureInPicture,
-    togglePictureInPicture,
-    isPictureInPicture,
-    // Events
-    onSourceError: sourceErrorEvent.on
-  };
-}
-function getMapVue2Compat() {
-  const data = reactive({});
-  return {
-    get: (key) => data[key],
-    set: (key, value) => set(data, key, value),
-    has: (key) => hasOwn(data, key),
-    delete: (key) => del(data, key),
-    clear: () => {
-      Object.keys(data).forEach((key) => {
-        del(data, key);
-      });
-    }
-  };
-}
-function useMemoize(resolver, options) {
-  const initCache = () => {
-    if (options == null ? void 0 : options.cache)
-      return reactive(options.cache);
-    if (isVue2)
-      return getMapVue2Compat();
-    return reactive(/* @__PURE__ */ new Map());
-  };
-  const cache = initCache();
-  const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);
-  const _loadData = (key, ...args) => {
-    cache.set(key, resolver(...args));
-    return cache.get(key);
-  };
-  const loadData = (...args) => _loadData(generateKey(...args), ...args);
-  const deleteData = (...args) => {
-    cache.delete(generateKey(...args));
-  };
-  const clearData = () => {
-    cache.clear();
-  };
-  const memoized = (...args) => {
-    const key = generateKey(...args);
-    if (cache.has(key))
-      return cache.get(key);
-    return _loadData(key, ...args);
-  };
-  memoized.load = loadData;
-  memoized.delete = deleteData;
-  memoized.clear = clearData;
-  memoized.generateKey = generateKey;
-  memoized.cache = cache;
-  return memoized;
-}
-function useMemory(options = {}) {
-  const memory = ref();
-  const isSupported = useSupported(() => typeof performance !== "undefined" && "memory" in performance);
-  if (isSupported.value) {
-    const { interval = 1e3 } = options;
-    useIntervalFn(() => {
-      memory.value = performance.memory;
-    }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });
-  }
-  return { isSupported, memory };
-}
-var BuiltinExtractors = {
-  page: (event) => [event.pageX, event.pageY],
-  client: (event) => [event.clientX, event.clientY],
-  screen: (event) => [event.screenX, event.screenY],
-  movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]
-};
-function useMouse(options = {}) {
-  const {
-    type = "page",
-    touch = true,
-    resetOnTouchEnds = false,
-    initialValue = { x: 0, y: 0 },
-    window: window2 = defaultWindow,
-    target = window2,
-    eventFilter
-  } = options;
-  const x = ref(initialValue.x);
-  const y = ref(initialValue.y);
-  const sourceType = ref(null);
-  const extractor = typeof type === "function" ? type : BuiltinExtractors[type];
-  const mouseHandler = (event) => {
-    const result = extractor(event);
-    if (result) {
-      [x.value, y.value] = result;
-      sourceType.value = "mouse";
-    }
-  };
-  const touchHandler = (event) => {
-    if (event.touches.length > 0) {
-      const result = extractor(event.touches[0]);
-      if (result) {
-        [x.value, y.value] = result;
-        sourceType.value = "touch";
-      }
-    }
-  };
-  const reset = () => {
-    x.value = initialValue.x;
-    y.value = initialValue.y;
-  };
-  const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);
-  const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);
-  if (target) {
-    useEventListener(target, "mousemove", mouseHandlerWrapper, { passive: true });
-    useEventListener(target, "dragover", mouseHandlerWrapper, { passive: true });
-    if (touch && type !== "movement") {
-      useEventListener(target, "touchstart", touchHandlerWrapper, { passive: true });
-      useEventListener(target, "touchmove", touchHandlerWrapper, { passive: true });
-      if (resetOnTouchEnds)
-        useEventListener(target, "touchend", reset, { passive: true });
-    }
-  }
-  return {
-    x,
-    y,
-    sourceType
-  };
-}
-function useMouseInElement(target, options = {}) {
-  const {
-    handleOutside = true,
-    window: window2 = defaultWindow
-  } = options;
-  const { x, y, sourceType } = useMouse(options);
-  const targetRef = ref(target != null ? target : window2 == null ? void 0 : window2.document.body);
-  const elementX = ref(0);
-  const elementY = ref(0);
-  const elementPositionX = ref(0);
-  const elementPositionY = ref(0);
-  const elementHeight = ref(0);
-  const elementWidth = ref(0);
-  const isOutside = ref(true);
-  let stop = () => {
-  };
-  if (window2) {
-    stop = watch(
-      [targetRef, x, y],
-      () => {
-        const el = unrefElement(targetRef);
-        if (!el)
-          return;
-        const {
-          left,
-          top,
-          width,
-          height
-        } = el.getBoundingClientRect();
-        elementPositionX.value = left + window2.pageXOffset;
-        elementPositionY.value = top + window2.pageYOffset;
-        elementHeight.value = height;
-        elementWidth.value = width;
-        const elX = x.value - elementPositionX.value;
-        const elY = y.value - elementPositionY.value;
-        isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;
-        if (handleOutside || !isOutside.value) {
-          elementX.value = elX;
-          elementY.value = elY;
-        }
-      },
-      { immediate: true }
-    );
-    useEventListener(document, "mouseleave", () => {
-      isOutside.value = true;
-    });
-  }
-  return {
-    x,
-    y,
-    sourceType,
-    elementX,
-    elementY,
-    elementPositionX,
-    elementPositionY,
-    elementHeight,
-    elementWidth,
-    isOutside,
-    stop
-  };
-}
-function useMousePressed(options = {}) {
-  const {
-    touch = true,
-    drag = true,
-    initialValue = false,
-    window: window2 = defaultWindow
-  } = options;
-  const pressed = ref(initialValue);
-  const sourceType = ref(null);
-  if (!window2) {
-    return {
-      pressed,
-      sourceType
-    };
-  }
-  const onPressed = (srcType) => () => {
-    pressed.value = true;
-    sourceType.value = srcType;
-  };
-  const onReleased = () => {
-    pressed.value = false;
-    sourceType.value = null;
-  };
-  const target = computed(() => unrefElement(options.target) || window2);
-  useEventListener(target, "mousedown", onPressed("mouse"), { passive: true });
-  useEventListener(window2, "mouseleave", onReleased, { passive: true });
-  useEventListener(window2, "mouseup", onReleased, { passive: true });
-  if (drag) {
-    useEventListener(target, "dragstart", onPressed("mouse"), { passive: true });
-    useEventListener(window2, "drop", onReleased, { passive: true });
-    useEventListener(window2, "dragend", onReleased, { passive: true });
-  }
-  if (touch) {
-    useEventListener(target, "touchstart", onPressed("touch"), { passive: true });
-    useEventListener(window2, "touchend", onReleased, { passive: true });
-    useEventListener(window2, "touchcancel", onReleased, { passive: true });
-  }
-  return {
-    pressed,
-    sourceType
-  };
-}
-function useNavigatorLanguage(options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  const navigator = window2 == null ? void 0 : window2.navigator;
-  const isSupported = useSupported(() => navigator && "language" in navigator);
-  const language = ref(navigator == null ? void 0 : navigator.language);
-  useEventListener(window2, "languagechange", () => {
-    if (navigator)
-      language.value = navigator.language;
-  });
-  return {
-    isSupported,
-    language
-  };
-}
-function useNetwork(options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  const navigator = window2 == null ? void 0 : window2.navigator;
-  const isSupported = useSupported(() => navigator && "connection" in navigator);
-  const isOnline = ref(true);
-  const saveData = ref(false);
-  const offlineAt = ref(void 0);
-  const onlineAt = ref(void 0);
-  const downlink = ref(void 0);
-  const downlinkMax = ref(void 0);
-  const rtt = ref(void 0);
-  const effectiveType = ref(void 0);
-  const type = ref("unknown");
-  const connection = isSupported.value && navigator.connection;
-  function updateNetworkInformation() {
-    if (!navigator)
-      return;
-    isOnline.value = navigator.onLine;
-    offlineAt.value = isOnline.value ? void 0 : Date.now();
-    onlineAt.value = isOnline.value ? Date.now() : void 0;
-    if (connection) {
-      downlink.value = connection.downlink;
-      downlinkMax.value = connection.downlinkMax;
-      effectiveType.value = connection.effectiveType;
-      rtt.value = connection.rtt;
-      saveData.value = connection.saveData;
-      type.value = connection.type;
-    }
-  }
-  if (window2) {
-    useEventListener(window2, "offline", () => {
-      isOnline.value = false;
-      offlineAt.value = Date.now();
-    });
-    useEventListener(window2, "online", () => {
-      isOnline.value = true;
-      onlineAt.value = Date.now();
-    });
-  }
-  if (connection)
-    useEventListener(connection, "change", updateNetworkInformation, false);
-  updateNetworkInformation();
-  return {
-    isSupported,
-    isOnline,
-    saveData,
-    offlineAt,
-    onlineAt,
-    downlink,
-    downlinkMax,
-    effectiveType,
-    rtt,
-    type
-  };
-}
-var __defProp$72 = Object.defineProperty;
-var __getOwnPropSymbols$82 = Object.getOwnPropertySymbols;
-var __hasOwnProp$82 = Object.prototype.hasOwnProperty;
-var __propIsEnum$82 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$72 = (obj, key, value) => key in obj ? __defProp$72(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$72 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$82.call(b, prop))
-      __defNormalProp$72(a, prop, b[prop]);
-  if (__getOwnPropSymbols$82)
-    for (var prop of __getOwnPropSymbols$82(b)) {
-      if (__propIsEnum$82.call(b, prop))
-        __defNormalProp$72(a, prop, b[prop]);
-    }
-  return a;
-};
-function useNow(options = {}) {
-  const {
-    controls: exposeControls = false,
-    interval = "requestAnimationFrame"
-  } = options;
-  const now2 = ref(/* @__PURE__ */ new Date());
-  const update = () => now2.value = /* @__PURE__ */ new Date();
-  const controls = interval === "requestAnimationFrame" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });
-  if (exposeControls) {
-    return __spreadValues$72({
-      now: now2
-    }, controls);
-  } else {
-    return now2;
-  }
-}
-function useObjectUrl(object) {
-  const url = ref();
-  const release = () => {
-    if (url.value)
-      URL.revokeObjectURL(url.value);
-    url.value = void 0;
-  };
-  watch(
-    () => toValue(object),
-    (newObject) => {
-      release();
-      if (newObject)
-        url.value = URL.createObjectURL(newObject);
-    },
-    { immediate: true }
-  );
-  tryOnScopeDispose(release);
-  return readonly(url);
-}
-function useClamp(value, min, max) {
-  if (typeof value === "function" || isReadonly(value))
-    return computed(() => clamp(toValue(value), toValue(min), toValue(max)));
-  const _value = ref(value);
-  return computed({
-    get() {
-      return _value.value = clamp(_value.value, toValue(min), toValue(max));
-    },
-    set(value2) {
-      _value.value = clamp(value2, toValue(min), toValue(max));
-    }
-  });
-}
-function useOffsetPagination(options) {
-  const {
-    total = Infinity,
-    pageSize = 10,
-    page = 1,
-    onPageChange = noop,
-    onPageSizeChange = noop,
-    onPageCountChange = noop
-  } = options;
-  const currentPageSize = useClamp(pageSize, 1, Infinity);
-  const pageCount = computed(() => Math.max(
-    1,
-    Math.ceil(toValue(total) / toValue(currentPageSize))
-  ));
-  const currentPage = useClamp(page, 1, pageCount);
-  const isFirstPage = computed(() => currentPage.value === 1);
-  const isLastPage = computed(() => currentPage.value === pageCount.value);
-  if (isRef(page))
-    syncRef(page, currentPage);
-  if (isRef(pageSize))
-    syncRef(pageSize, currentPageSize);
-  function prev() {
-    currentPage.value--;
-  }
-  function next() {
-    currentPage.value++;
-  }
-  const returnValue = {
-    currentPage,
-    currentPageSize,
-    pageCount,
-    isFirstPage,
-    isLastPage,
-    prev,
-    next
-  };
-  watch(currentPage, () => {
-    onPageChange(reactive(returnValue));
-  });
-  watch(currentPageSize, () => {
-    onPageSizeChange(reactive(returnValue));
-  });
-  watch(pageCount, () => {
-    onPageCountChange(reactive(returnValue));
-  });
-  return returnValue;
-}
-function useOnline(options = {}) {
-  const { isOnline } = useNetwork(options);
-  return isOnline;
-}
-function usePageLeave(options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  const isLeft = ref(false);
-  const handler = (event) => {
-    if (!window2)
-      return;
-    event = event || window2.event;
-    const from = event.relatedTarget || event.toElement;
-    isLeft.value = !from;
-  };
-  if (window2) {
-    useEventListener(window2, "mouseout", handler, { passive: true });
-    useEventListener(window2.document, "mouseleave", handler, { passive: true });
-    useEventListener(window2.document, "mouseenter", handler, { passive: true });
-  }
-  return isLeft;
-}
-function useParallax(target, options = {}) {
-  const {
-    deviceOrientationTiltAdjust = (i) => i,
-    deviceOrientationRollAdjust = (i) => i,
-    mouseTiltAdjust = (i) => i,
-    mouseRollAdjust = (i) => i,
-    window: window2 = defaultWindow
-  } = options;
-  const orientation = reactive(useDeviceOrientation({ window: window2 }));
-  const {
-    elementX: x,
-    elementY: y,
-    elementWidth: width,
-    elementHeight: height
-  } = useMouseInElement(target, { handleOutside: false, window: window2 });
-  const source = computed(() => {
-    if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))
-      return "deviceOrientation";
-    return "mouse";
-  });
-  const roll = computed(() => {
-    if (source.value === "deviceOrientation") {
-      const value = -orientation.beta / 90;
-      return deviceOrientationRollAdjust(value);
-    } else {
-      const value = -(y.value - height.value / 2) / height.value;
-      return mouseRollAdjust(value);
-    }
-  });
-  const tilt = computed(() => {
-    if (source.value === "deviceOrientation") {
-      const value = orientation.gamma / 90;
-      return deviceOrientationTiltAdjust(value);
-    } else {
-      const value = (x.value - width.value / 2) / width.value;
-      return mouseTiltAdjust(value);
-    }
-  });
-  return { roll, tilt, source };
-}
-function useParentElement(element = useCurrentElement()) {
-  const parentElement = shallowRef();
-  const update = () => {
-    const el = unrefElement(element);
-    if (el)
-      parentElement.value = el.parentElement;
-  };
-  tryOnMounted(update);
-  watch(() => toValue(element), update);
-  return parentElement;
-}
-var __getOwnPropSymbols$72 = Object.getOwnPropertySymbols;
-var __hasOwnProp$72 = Object.prototype.hasOwnProperty;
-var __propIsEnum$72 = Object.prototype.propertyIsEnumerable;
-var __objRest$12 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$72.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$72)
-    for (var prop of __getOwnPropSymbols$72(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$72.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-function usePerformanceObserver(options, callback) {
-  const _a = options, {
-    window: window2 = defaultWindow,
-    immediate = true
-  } = _a, performanceOptions = __objRest$12(_a, [
-    "window",
-    "immediate"
-  ]);
-  const isSupported = useSupported(() => window2 && "PerformanceObserver" in window2);
-  let observer;
-  const stop = () => {
-    observer == null ? void 0 : observer.disconnect();
-  };
-  const start = () => {
-    if (isSupported.value) {
-      stop();
-      observer = new PerformanceObserver(callback);
-      observer.observe(performanceOptions);
-    }
-  };
-  tryOnScopeDispose(stop);
-  if (immediate)
-    start();
-  return {
-    isSupported,
-    start,
-    stop
-  };
-}
-var __defProp$62 = Object.defineProperty;
-var __defProps$22 = Object.defineProperties;
-var __getOwnPropDescs$22 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$62 = Object.getOwnPropertySymbols;
-var __hasOwnProp$62 = Object.prototype.hasOwnProperty;
-var __propIsEnum$62 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$62 = (obj, key, value) => key in obj ? __defProp$62(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$62 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$62.call(b, prop))
-      __defNormalProp$62(a, prop, b[prop]);
-  if (__getOwnPropSymbols$62)
-    for (var prop of __getOwnPropSymbols$62(b)) {
-      if (__propIsEnum$62.call(b, prop))
-        __defNormalProp$62(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$22 = (a, b) => __defProps$22(a, __getOwnPropDescs$22(b));
-var defaultState = {
-  x: 0,
-  y: 0,
-  pointerId: 0,
-  pressure: 0,
-  tiltX: 0,
-  tiltY: 0,
-  width: 0,
-  height: 0,
-  twist: 0,
-  pointerType: null
-};
-var keys = Object.keys(defaultState);
-function usePointer(options = {}) {
-  const {
-    target = defaultWindow
-  } = options;
-  const isInside = ref(false);
-  const state = ref(options.initialValue || {});
-  Object.assign(state.value, defaultState, state.value);
-  const handler = (event) => {
-    isInside.value = true;
-    if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))
-      return;
-    state.value = objectPick(event, keys, false);
-  };
-  if (target) {
-    useEventListener(target, "pointerdown", handler, { passive: true });
-    useEventListener(target, "pointermove", handler, { passive: true });
-    useEventListener(target, "pointerleave", () => isInside.value = false, { passive: true });
-  }
-  return __spreadProps$22(__spreadValues$62({}, toRefs2(state)), {
-    isInside
-  });
-}
-function usePointerLock(target, options = {}) {
-  const { document: document2 = defaultDocument, pointerLockOptions } = options;
-  const isSupported = useSupported(() => document2 && "pointerLockElement" in document2);
-  const element = ref();
-  const triggerElement = ref();
-  let targetElement;
-  if (isSupported.value) {
-    useEventListener(document2, "pointerlockchange", () => {
-      var _a;
-      const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value;
-      if (targetElement && currentElement === targetElement) {
-        element.value = document2.pointerLockElement;
-        if (!element.value)
-          targetElement = triggerElement.value = null;
-      }
-    });
-    useEventListener(document2, "pointerlockerror", () => {
-      var _a;
-      const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value;
-      if (targetElement && currentElement === targetElement) {
-        const action = document2.pointerLockElement ? "release" : "acquire";
-        throw new Error(`Failed to ${action} pointer lock.`);
-      }
-    });
-  }
-  async function lock(e, options2) {
-    var _a;
-    if (!isSupported.value)
-      throw new Error("Pointer Lock API is not supported by your browser.");
-    triggerElement.value = e instanceof Event ? e.currentTarget : null;
-    targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);
-    if (!targetElement)
-      throw new Error("Target element undefined.");
-    targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);
-    return await until(element).toBe(targetElement);
-  }
-  async function unlock() {
-    if (!element.value)
-      return false;
-    document2.exitPointerLock();
-    await until(element).toBeNull();
-    return true;
-  }
-  return {
-    isSupported,
-    element,
-    triggerElement,
-    lock,
-    unlock
-  };
-}
-function usePointerSwipe(target, options = {}) {
-  const targetRef = toRef2(target);
-  const {
-    threshold = 50,
-    onSwipe,
-    onSwipeEnd,
-    onSwipeStart
-  } = options;
-  const posStart = reactive({ x: 0, y: 0 });
-  const updatePosStart = (x, y) => {
-    posStart.x = x;
-    posStart.y = y;
-  };
-  const posEnd = reactive({ x: 0, y: 0 });
-  const updatePosEnd = (x, y) => {
-    posEnd.x = x;
-    posEnd.y = y;
-  };
-  const distanceX = computed(() => posStart.x - posEnd.x);
-  const distanceY = computed(() => posStart.y - posEnd.y);
-  const { max, abs } = Math;
-  const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);
-  const isSwiping = ref(false);
-  const isPointerDown = ref(false);
-  const direction = computed(() => {
-    if (!isThresholdExceeded.value)
-      return "none";
-    if (abs(distanceX.value) > abs(distanceY.value)) {
-      return distanceX.value > 0 ? "left" : "right";
-    } else {
-      return distanceY.value > 0 ? "up" : "down";
-    }
-  });
-  const eventIsAllowed = (e) => {
-    var _a, _b, _c;
-    const isReleasingButton = e.buttons === 0;
-    const isPrimaryButton = e.buttons === 1;
-    return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;
-  };
-  const stops = [
-    useEventListener(target, "pointerdown", (e) => {
-      var _a, _b;
-      if (!eventIsAllowed(e))
-        return;
-      isPointerDown.value = true;
-      (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty("touch-action", "none");
-      const eventTarget = e.target;
-      eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);
-      const { clientX: x, clientY: y } = e;
-      updatePosStart(x, y);
-      updatePosEnd(x, y);
-      onSwipeStart == null ? void 0 : onSwipeStart(e);
-    }),
-    useEventListener(target, "pointermove", (e) => {
-      if (!eventIsAllowed(e))
-        return;
-      if (!isPointerDown.value)
-        return;
-      const { clientX: x, clientY: y } = e;
-      updatePosEnd(x, y);
-      if (!isSwiping.value && isThresholdExceeded.value)
-        isSwiping.value = true;
-      if (isSwiping.value)
-        onSwipe == null ? void 0 : onSwipe(e);
-    }),
-    useEventListener(target, "pointerup", (e) => {
-      var _a, _b;
-      if (!eventIsAllowed(e))
-        return;
-      if (isSwiping.value)
-        onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);
-      isPointerDown.value = false;
-      isSwiping.value = false;
-      (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty("touch-action", "initial");
-    })
-  ];
-  const stop = () => stops.forEach((s) => s());
-  return {
-    isSwiping: readonly(isSwiping),
-    direction: readonly(direction),
-    posStart: readonly(posStart),
-    posEnd: readonly(posEnd),
-    distanceX,
-    distanceY,
-    stop
-  };
-}
-function usePreferredColorScheme(options) {
-  const isLight = useMediaQuery("(prefers-color-scheme: light)", options);
-  const isDark = useMediaQuery("(prefers-color-scheme: dark)", options);
-  return computed(() => {
-    if (isDark.value)
-      return "dark";
-    if (isLight.value)
-      return "light";
-    return "no-preference";
-  });
-}
-function usePreferredContrast(options) {
-  const isMore = useMediaQuery("(prefers-contrast: more)", options);
-  const isLess = useMediaQuery("(prefers-contrast: less)", options);
-  const isCustom = useMediaQuery("(prefers-contrast: custom)", options);
-  return computed(() => {
-    if (isMore.value)
-      return "more";
-    if (isLess.value)
-      return "less";
-    if (isCustom.value)
-      return "custom";
-    return "no-preference";
-  });
-}
-function usePreferredLanguages(options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  if (!window2)
-    return ref(["en"]);
-  const navigator = window2.navigator;
-  const value = ref(navigator.languages);
-  useEventListener(window2, "languagechange", () => {
-    value.value = navigator.languages;
-  });
-  return value;
-}
-function usePreferredReducedMotion(options) {
-  const isReduced = useMediaQuery("(prefers-reduced-motion: reduce)", options);
-  return computed(() => {
-    if (isReduced.value)
-      return "reduce";
-    return "no-preference";
-  });
-}
-function usePrevious(value, initialValue) {
-  const previous = shallowRef(initialValue);
-  watch(
-    toRef2(value),
-    (_, oldValue) => {
-      previous.value = oldValue;
-    },
-    { flush: "sync" }
-  );
-  return readonly(previous);
-}
-function useScreenOrientation(options = {}) {
-  const {
-    window: window2 = defaultWindow
-  } = options;
-  const isSupported = useSupported(() => window2 && "screen" in window2 && "orientation" in window2.screen);
-  const screenOrientation = isSupported.value ? window2.screen.orientation : {};
-  const orientation = ref(screenOrientation.type);
-  const angle = ref(screenOrientation.angle || 0);
-  if (isSupported.value) {
-    useEventListener(window2, "orientationchange", () => {
-      orientation.value = screenOrientation.type;
-      angle.value = screenOrientation.angle;
-    });
-  }
-  const lockOrientation = (type) => {
-    if (!isSupported.value)
-      return Promise.reject(new Error("Not supported"));
-    return screenOrientation.lock(type);
-  };
-  const unlockOrientation = () => {
-    if (isSupported.value)
-      screenOrientation.unlock();
-  };
-  return {
-    isSupported,
-    orientation,
-    angle,
-    lockOrientation,
-    unlockOrientation
-  };
-}
-var topVarName = "--vueuse-safe-area-top";
-var rightVarName = "--vueuse-safe-area-right";
-var bottomVarName = "--vueuse-safe-area-bottom";
-var leftVarName = "--vueuse-safe-area-left";
-function useScreenSafeArea() {
-  const top = ref("");
-  const right = ref("");
-  const bottom = ref("");
-  const left = ref("");
-  if (isClient) {
-    const topCssVar = useCssVar(topVarName);
-    const rightCssVar = useCssVar(rightVarName);
-    const bottomCssVar = useCssVar(bottomVarName);
-    const leftCssVar = useCssVar(leftVarName);
-    topCssVar.value = "env(safe-area-inset-top, 0px)";
-    rightCssVar.value = "env(safe-area-inset-right, 0px)";
-    bottomCssVar.value = "env(safe-area-inset-bottom, 0px)";
-    leftCssVar.value = "env(safe-area-inset-left, 0px)";
-    update();
-    useEventListener("resize", useDebounceFn(update));
-  }
-  function update() {
-    top.value = getValue(topVarName);
-    right.value = getValue(rightVarName);
-    bottom.value = getValue(bottomVarName);
-    left.value = getValue(leftVarName);
-  }
-  return {
-    top,
-    right,
-    bottom,
-    left,
-    update
-  };
-}
-function getValue(position) {
-  return getComputedStyle(document.documentElement).getPropertyValue(position);
-}
-function useScriptTag(src, onLoaded = noop, options = {}) {
-  const {
-    immediate = true,
-    manual = false,
-    type = "text/javascript",
-    async = true,
-    crossOrigin,
-    referrerPolicy,
-    noModule,
-    defer,
-    document: document2 = defaultDocument,
-    attrs = {}
-  } = options;
-  const scriptTag = ref(null);
-  let _promise = null;
-  const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {
-    const resolveWithElement = (el2) => {
-      scriptTag.value = el2;
-      resolve(el2);
-      return el2;
-    };
-    if (!document2) {
-      resolve(false);
-      return;
-    }
-    let shouldAppend = false;
-    let el = document2.querySelector(`script[src="${toValue(src)}"]`);
-    if (!el) {
-      el = document2.createElement("script");
-      el.type = type;
-      el.async = async;
-      el.src = toValue(src);
-      if (defer)
-        el.defer = defer;
-      if (crossOrigin)
-        el.crossOrigin = crossOrigin;
-      if (noModule)
-        el.noModule = noModule;
-      if (referrerPolicy)
-        el.referrerPolicy = referrerPolicy;
-      Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));
-      shouldAppend = true;
-    } else if (el.hasAttribute("data-loaded")) {
-      resolveWithElement(el);
-    }
-    el.addEventListener("error", (event) => reject(event));
-    el.addEventListener("abort", (event) => reject(event));
-    el.addEventListener("load", () => {
-      el.setAttribute("data-loaded", "true");
-      onLoaded(el);
-      resolveWithElement(el);
-    });
-    if (shouldAppend)
-      el = document2.head.appendChild(el);
-    if (!waitForScriptLoad)
-      resolveWithElement(el);
-  });
-  const load = (waitForScriptLoad = true) => {
-    if (!_promise)
-      _promise = loadScript(waitForScriptLoad);
-    return _promise;
-  };
-  const unload = () => {
-    if (!document2)
-      return;
-    _promise = null;
-    if (scriptTag.value)
-      scriptTag.value = null;
-    const el = document2.querySelector(`script[src="${toValue(src)}"]`);
-    if (el)
-      document2.head.removeChild(el);
-  };
-  if (immediate && !manual)
-    tryOnMounted(load);
-  if (!manual)
-    tryOnUnmounted(unload);
-  return { scriptTag, load, unload };
-}
-function checkOverflowScroll(ele) {
-  const style = window.getComputedStyle(ele);
-  if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientHeight < ele.scrollHeight || style.overflowY === "auto" && ele.clientWidth < ele.scrollWidth) {
-    return true;
-  } else {
-    const parent = ele.parentNode;
-    if (!parent || parent.tagName === "BODY")
-      return false;
-    return checkOverflowScroll(parent);
-  }
-}
-function preventDefault(rawEvent) {
-  const e = rawEvent || window.event;
-  const _target = e.target;
-  if (checkOverflowScroll(_target))
-    return false;
-  if (e.touches.length > 1)
-    return true;
-  if (e.preventDefault)
-    e.preventDefault();
-  return false;
-}
-function useScrollLock(element, initialState = false) {
-  const isLocked = ref(initialState);
-  let stopTouchMoveListener = null;
-  let initialOverflow;
-  watch(toRef2(element), (el) => {
-    if (el) {
-      const ele = el;
-      initialOverflow = ele.style.overflow;
-      if (isLocked.value)
-        ele.style.overflow = "hidden";
-    }
-  }, {
-    immediate: true
-  });
-  const lock = () => {
-    const ele = toValue(element);
-    if (!ele || isLocked.value)
-      return;
-    if (isIOS) {
-      stopTouchMoveListener = useEventListener(
-        ele,
-        "touchmove",
-        (e) => {
-          preventDefault(e);
-        },
-        { passive: false }
-      );
-    }
-    ele.style.overflow = "hidden";
-    isLocked.value = true;
-  };
-  const unlock = () => {
-    const ele = toValue(element);
-    if (!ele || !isLocked.value)
-      return;
-    isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
-    ele.style.overflow = initialOverflow;
-    isLocked.value = false;
-  };
-  tryOnScopeDispose(unlock);
-  return computed({
-    get() {
-      return isLocked.value;
-    },
-    set(v) {
-      if (v)
-        lock();
-      else
-        unlock();
-    }
-  });
-}
-function useSessionStorage(key, initialValue, options = {}) {
-  const { window: window2 = defaultWindow } = options;
-  return useStorage(key, initialValue, window2 == null ? void 0 : window2.sessionStorage, options);
-}
-var __defProp$52 = Object.defineProperty;
-var __getOwnPropSymbols$52 = Object.getOwnPropertySymbols;
-var __hasOwnProp$52 = Object.prototype.hasOwnProperty;
-var __propIsEnum$52 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$52 = (obj, key, value) => key in obj ? __defProp$52(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$52 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$52.call(b, prop))
-      __defNormalProp$52(a, prop, b[prop]);
-  if (__getOwnPropSymbols$52)
-    for (var prop of __getOwnPropSymbols$52(b)) {
-      if (__propIsEnum$52.call(b, prop))
-        __defNormalProp$52(a, prop, b[prop]);
-    }
-  return a;
-};
-function useShare(shareOptions = {}, options = {}) {
-  const { navigator = defaultNavigator } = options;
-  const _navigator = navigator;
-  const isSupported = useSupported(() => _navigator && "canShare" in _navigator);
-  const share = async (overrideOptions = {}) => {
-    if (isSupported.value) {
-      const data = __spreadValues$52(__spreadValues$52({}, toValue(shareOptions)), toValue(overrideOptions));
-      let granted = true;
-      if (data.files && _navigator.canShare)
-        granted = _navigator.canShare({ files: data.files });
-      if (granted)
-        return _navigator.share(data);
-    }
-  };
-  return {
-    isSupported,
-    share
-  };
-}
-var defaultSortFn = (source, compareFn) => source.sort(compareFn);
-var defaultCompare = (a, b) => a - b;
-function useSorted(...args) {
-  var _a, _b, _c, _d;
-  const [source] = args;
-  let compareFn = defaultCompare;
-  let options = {};
-  if (args.length === 2) {
-    if (typeof args[1] === "object") {
-      options = args[1];
-      compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;
-    } else {
-      compareFn = (_b = args[1]) != null ? _b : defaultCompare;
-    }
-  } else if (args.length > 2) {
-    compareFn = (_c = args[1]) != null ? _c : defaultCompare;
-    options = (_d = args[2]) != null ? _d : {};
-  }
-  const {
-    dirty = false,
-    sortFn = defaultSortFn
-  } = options;
-  if (!dirty)
-    return computed(() => sortFn([...toValue(source)], compareFn));
-  watchEffect(() => {
-    const result = sortFn(toValue(source), compareFn);
-    if (isRef(source))
-      source.value = result;
-    else
-      source.splice(0, source.length, ...result);
-  });
-  return source;
-}
-function useSpeechRecognition(options = {}) {
-  const {
-    interimResults = true,
-    continuous = true,
-    window: window2 = defaultWindow
-  } = options;
-  const lang = toRef2(options.lang || "en-US");
-  const isListening = ref(false);
-  const isFinal = ref(false);
-  const result = ref("");
-  const error = shallowRef(void 0);
-  const toggle = (value = !isListening.value) => {
-    isListening.value = value;
-  };
-  const start = () => {
-    isListening.value = true;
-  };
-  const stop = () => {
-    isListening.value = false;
-  };
-  const SpeechRecognition = window2 && (window2.SpeechRecognition || window2.webkitSpeechRecognition);
-  const isSupported = useSupported(() => SpeechRecognition);
-  let recognition;
-  if (isSupported.value) {
-    recognition = new SpeechRecognition();
-    recognition.continuous = continuous;
-    recognition.interimResults = interimResults;
-    recognition.lang = toValue(lang);
-    recognition.onstart = () => {
-      isFinal.value = false;
-    };
-    watch(lang, (lang2) => {
-      if (recognition && !isListening.value)
-        recognition.lang = lang2;
-    });
-    recognition.onresult = (event) => {
-      const transcript = Array.from(event.results).map((result2) => {
-        isFinal.value = result2.isFinal;
-        return result2[0];
-      }).map((result2) => result2.transcript).join("");
-      result.value = transcript;
-      error.value = void 0;
-    };
-    recognition.onerror = (event) => {
-      error.value = event;
-    };
-    recognition.onend = () => {
-      isListening.value = false;
-      recognition.lang = toValue(lang);
-    };
-    watch(isListening, () => {
-      if (isListening.value)
-        recognition.start();
-      else
-        recognition.stop();
-    });
-  }
-  tryOnScopeDispose(() => {
-    isListening.value = false;
-  });
-  return {
-    isSupported,
-    isListening,
-    isFinal,
-    recognition,
-    result,
-    error,
-    toggle,
-    start,
-    stop
-  };
-}
-function useSpeechSynthesis(text, options = {}) {
-  const {
-    pitch = 1,
-    rate = 1,
-    volume = 1,
-    window: window2 = defaultWindow
-  } = options;
-  const synth = window2 && window2.speechSynthesis;
-  const isSupported = useSupported(() => synth);
-  const isPlaying = ref(false);
-  const status = ref("init");
-  const spokenText = toRef2(text || "");
-  const lang = toRef2(options.lang || "en-US");
-  const error = shallowRef(void 0);
-  const toggle = (value = !isPlaying.value) => {
-    isPlaying.value = value;
-  };
-  const bindEventsForUtterance = (utterance2) => {
-    utterance2.lang = toValue(lang);
-    utterance2.voice = toValue(options.voice) || null;
-    utterance2.pitch = pitch;
-    utterance2.rate = rate;
-    utterance2.volume = volume;
-    utterance2.onstart = () => {
-      isPlaying.value = true;
-      status.value = "play";
-    };
-    utterance2.onpause = () => {
-      isPlaying.value = false;
-      status.value = "pause";
-    };
-    utterance2.onresume = () => {
-      isPlaying.value = true;
-      status.value = "play";
-    };
-    utterance2.onend = () => {
-      isPlaying.value = false;
-      status.value = "end";
-    };
-    utterance2.onerror = (event) => {
-      error.value = event;
-    };
-  };
-  const utterance = computed(() => {
-    isPlaying.value = false;
-    status.value = "init";
-    const newUtterance = new SpeechSynthesisUtterance(spokenText.value);
-    bindEventsForUtterance(newUtterance);
-    return newUtterance;
-  });
-  const speak = () => {
-    synth.cancel();
-    utterance && synth.speak(utterance.value);
-  };
-  const stop = () => {
-    synth.cancel();
-    isPlaying.value = false;
-  };
-  if (isSupported.value) {
-    bindEventsForUtterance(utterance.value);
-    watch(lang, (lang2) => {
-      if (utterance.value && !isPlaying.value)
-        utterance.value.lang = lang2;
-    });
-    if (options.voice) {
-      watch(options.voice, () => {
-        synth.cancel();
-      });
-    }
-    watch(isPlaying, () => {
-      if (isPlaying.value)
-        synth.resume();
-      else
-        synth.pause();
-    });
-  }
-  tryOnScopeDispose(() => {
-    isPlaying.value = false;
-  });
-  return {
-    isSupported,
-    isPlaying,
-    status,
-    utterance,
-    error,
-    stop,
-    toggle,
-    speak
-  };
-}
-function useStepper(steps, initialStep) {
-  const stepsRef = ref(steps);
-  const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));
-  const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));
-  const current = computed(() => at(index.value));
-  const isFirst = computed(() => index.value === 0);
-  const isLast = computed(() => index.value === stepNames.value.length - 1);
-  const next = computed(() => stepNames.value[index.value + 1]);
-  const previous = computed(() => stepNames.value[index.value - 1]);
-  function at(index2) {
-    if (Array.isArray(stepsRef.value))
-      return stepsRef.value[index2];
-    return stepsRef.value[stepNames.value[index2]];
-  }
-  function get2(step) {
-    if (!stepNames.value.includes(step))
-      return;
-    return at(stepNames.value.indexOf(step));
-  }
-  function goTo(step) {
-    if (stepNames.value.includes(step))
-      index.value = stepNames.value.indexOf(step);
-  }
-  function goToNext() {
-    if (isLast.value)
-      return;
-    index.value++;
-  }
-  function goToPrevious() {
-    if (isFirst.value)
-      return;
-    index.value--;
-  }
-  function goBackTo(step) {
-    if (isAfter(step))
-      goTo(step);
-  }
-  function isNext(step) {
-    return stepNames.value.indexOf(step) === index.value + 1;
-  }
-  function isPrevious(step) {
-    return stepNames.value.indexOf(step) === index.value - 1;
-  }
-  function isCurrent(step) {
-    return stepNames.value.indexOf(step) === index.value;
-  }
-  function isBefore(step) {
-    return index.value < stepNames.value.indexOf(step);
-  }
-  function isAfter(step) {
-    return index.value > stepNames.value.indexOf(step);
-  }
-  return {
-    steps: stepsRef,
-    stepNames,
-    index,
-    current,
-    next,
-    previous,
-    isFirst,
-    isLast,
-    at,
-    get: get2,
-    goTo,
-    goToNext,
-    goToPrevious,
-    goBackTo,
-    isNext,
-    isPrevious,
-    isCurrent,
-    isBefore,
-    isAfter
-  };
-}
-var __defProp$42 = Object.defineProperty;
-var __getOwnPropSymbols$42 = Object.getOwnPropertySymbols;
-var __hasOwnProp$42 = Object.prototype.hasOwnProperty;
-var __propIsEnum$42 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$42 = (obj, key, value) => key in obj ? __defProp$42(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$42 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$42.call(b, prop))
-      __defNormalProp$42(a, prop, b[prop]);
-  if (__getOwnPropSymbols$42)
-    for (var prop of __getOwnPropSymbols$42(b)) {
-      if (__propIsEnum$42.call(b, prop))
-        __defNormalProp$42(a, prop, b[prop]);
-    }
-  return a;
-};
-function useStorageAsync(key, initialValue, storage, options = {}) {
-  var _a;
-  const {
-    flush = "pre",
-    deep = true,
-    listenToStorageChanges = true,
-    writeDefaults = true,
-    mergeDefaults = false,
-    shallow,
-    window: window2 = defaultWindow,
-    eventFilter,
-    onError = (e) => {
-      console.error(e);
-    }
-  } = options;
-  const rawInit = toValue(initialValue);
-  const type = guessSerializerType(rawInit);
-  const data = (shallow ? shallowRef : ref)(initialValue);
-  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
-  if (!storage) {
-    try {
-      storage = getSSRHandler("getDefaultStorage", () => {
-        var _a2;
-        return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;
-      })();
-    } catch (e) {
-      onError(e);
-    }
-  }
-  async function read(event) {
-    if (!storage || event && event.key !== key)
-      return;
-    try {
-      const rawValue = event ? event.newValue : await storage.getItem(key);
-      if (rawValue == null) {
-        data.value = rawInit;
-        if (writeDefaults && rawInit !== null)
-          await storage.setItem(key, await serializer.write(rawInit));
-      } else if (mergeDefaults) {
-        const value = await serializer.read(rawValue);
-        if (typeof mergeDefaults === "function")
-          data.value = mergeDefaults(value, rawInit);
-        else if (type === "object" && !Array.isArray(value))
-          data.value = __spreadValues$42(__spreadValues$42({}, rawInit), value);
-        else
-          data.value = value;
-      } else {
-        data.value = await serializer.read(rawValue);
-      }
-    } catch (e) {
-      onError(e);
-    }
-  }
-  read();
-  if (window2 && listenToStorageChanges)
-    useEventListener(window2, "storage", (e) => Promise.resolve().then(() => read(e)));
-  if (storage) {
-    watchWithFilter(
-      data,
-      async () => {
-        try {
-          if (data.value == null)
-            await storage.removeItem(key);
-          else
-            await storage.setItem(key, await serializer.write(data.value));
-        } catch (e) {
-          onError(e);
-        }
-      },
-      {
-        flush,
-        deep,
-        eventFilter
-      }
-    );
-  }
-  return data;
-}
-var _id = 0;
-function useStyleTag(css, options = {}) {
-  const isLoaded = ref(false);
-  const {
-    document: document2 = defaultDocument,
-    immediate = true,
-    manual = false,
-    id = `vueuse_styletag_${++_id}`
-  } = options;
-  const cssRef = ref(css);
-  let stop = () => {
-  };
-  const load = () => {
-    if (!document2)
-      return;
-    const el = document2.getElementById(id) || document2.createElement("style");
-    if (!el.isConnected) {
-      el.type = "text/css";
-      el.id = id;
-      if (options.media)
-        el.media = options.media;
-      document2.head.appendChild(el);
-    }
-    if (isLoaded.value)
-      return;
-    stop = watch(
-      cssRef,
-      (value) => {
-        el.textContent = value;
-      },
-      { immediate: true }
-    );
-    isLoaded.value = true;
-  };
-  const unload = () => {
-    if (!document2 || !isLoaded.value)
-      return;
-    stop();
-    document2.head.removeChild(document2.getElementById(id));
-    isLoaded.value = false;
-  };
-  if (immediate && !manual)
-    tryOnMounted(load);
-  if (!manual)
-    tryOnScopeDispose(unload);
-  return {
-    id,
-    css: cssRef,
-    unload,
-    load,
-    isLoaded: readonly(isLoaded)
-  };
-}
-function useSwipe(target, options = {}) {
-  const {
-    threshold = 50,
-    onSwipe,
-    onSwipeEnd,
-    onSwipeStart,
-    passive = true,
-    window: window2 = defaultWindow
-  } = options;
-  const coordsStart = reactive({ x: 0, y: 0 });
-  const coordsEnd = reactive({ x: 0, y: 0 });
-  const diffX = computed(() => coordsStart.x - coordsEnd.x);
-  const diffY = computed(() => coordsStart.y - coordsEnd.y);
-  const { max, abs } = Math;
-  const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);
-  const isSwiping = ref(false);
-  const direction = computed(() => {
-    if (!isThresholdExceeded.value)
-      return "none";
-    if (abs(diffX.value) > abs(diffY.value)) {
-      return diffX.value > 0 ? "left" : "right";
-    } else {
-      return diffY.value > 0 ? "up" : "down";
-    }
-  });
-  const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];
-  const updateCoordsStart = (x, y) => {
-    coordsStart.x = x;
-    coordsStart.y = y;
-  };
-  const updateCoordsEnd = (x, y) => {
-    coordsEnd.x = x;
-    coordsEnd.y = y;
-  };
-  let listenerOptions;
-  const isPassiveEventSupported = checkPassiveEventSupport(window2 == null ? void 0 : window2.document);
-  if (!passive)
-    listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };
-  else
-    listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };
-  const onTouchEnd = (e) => {
-    if (isSwiping.value)
-      onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);
-    isSwiping.value = false;
-  };
-  const stops = [
-    useEventListener(target, "touchstart", (e) => {
-      if (e.touches.length !== 1)
-        return;
-      if (listenerOptions.capture && !listenerOptions.passive)
-        e.preventDefault();
-      const [x, y] = getTouchEventCoords(e);
-      updateCoordsStart(x, y);
-      updateCoordsEnd(x, y);
-      onSwipeStart == null ? void 0 : onSwipeStart(e);
-    }, listenerOptions),
-    useEventListener(target, "touchmove", (e) => {
-      if (e.touches.length !== 1)
-        return;
-      const [x, y] = getTouchEventCoords(e);
-      updateCoordsEnd(x, y);
-      if (!isSwiping.value && isThresholdExceeded.value)
-        isSwiping.value = true;
-      if (isSwiping.value)
-        onSwipe == null ? void 0 : onSwipe(e);
-    }, listenerOptions),
-    useEventListener(target, "touchend", onTouchEnd, listenerOptions),
-    useEventListener(target, "touchcancel", onTouchEnd, listenerOptions)
-  ];
-  const stop = () => stops.forEach((s) => s());
-  return {
-    isPassiveEventSupported,
-    isSwiping,
-    direction,
-    coordsStart,
-    coordsEnd,
-    lengthX: diffX,
-    lengthY: diffY,
-    stop
-  };
-}
-function checkPassiveEventSupport(document2) {
-  if (!document2)
-    return false;
-  let supportsPassive = false;
-  const optionsBlock = {
-    get passive() {
-      supportsPassive = true;
-      return false;
-    }
-  };
-  document2.addEventListener("x", noop, optionsBlock);
-  document2.removeEventListener("x", noop);
-  return supportsPassive;
-}
-function useTemplateRefsList() {
-  const refs = ref([]);
-  refs.value.set = (el) => {
-    if (el)
-      refs.value.push(el);
-  };
-  onBeforeUpdate(() => {
-    refs.value.length = 0;
-  });
-  return refs;
-}
-function useTextDirection(options = {}) {
-  const {
-    document: document2 = defaultDocument,
-    selector = "html",
-    observe = false,
-    initialValue = "ltr"
-  } = options;
-  function getValue2() {
-    var _a, _b;
-    return (_b = (_a = document2 == null ? void 0 : document2.querySelector(selector)) == null ? void 0 : _a.getAttribute("dir")) != null ? _b : initialValue;
-  }
-  const dir = ref(getValue2());
-  tryOnMounted(() => dir.value = getValue2());
-  if (observe && document2) {
-    useMutationObserver(
-      document2.querySelector(selector),
-      () => dir.value = getValue2(),
-      { attributes: true }
-    );
-  }
-  return computed({
-    get() {
-      return dir.value;
-    },
-    set(v) {
-      var _a, _b;
-      dir.value = v;
-      if (!document2)
-        return;
-      if (dir.value)
-        (_a = document2.querySelector(selector)) == null ? void 0 : _a.setAttribute("dir", dir.value);
-      else
-        (_b = document2.querySelector(selector)) == null ? void 0 : _b.removeAttribute("dir");
-    }
-  });
-}
-function getRangesFromSelection(selection) {
-  var _a;
-  const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;
-  const ranges = new Array(rangeCount);
-  for (let i = 0; i < rangeCount; i++) {
-    const range = selection.getRangeAt(i);
-    ranges[i] = range;
-  }
-  return ranges;
-}
-function useTextSelection(options = {}) {
-  const {
-    window: window2 = defaultWindow
-  } = options;
-  const selection = ref(null);
-  const text = computed(() => {
-    var _a, _b;
-    return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : "";
-  });
-  const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);
-  const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));
-  function onSelectionChange() {
-    selection.value = null;
-    if (window2)
-      selection.value = window2.getSelection();
-  }
-  if (window2)
-    useEventListener(window2.document, "selectionchange", onSelectionChange);
-  return {
-    text,
-    rects,
-    ranges,
-    selection
-  };
-}
-function useTextareaAutosize(options) {
-  const textarea = ref(options == null ? void 0 : options.element);
-  const input = ref(options == null ? void 0 : options.input);
-  const textareaScrollHeight = ref(1);
-  function triggerResize() {
-    var _a, _b;
-    if (!textarea.value)
-      return;
-    let height = "";
-    textarea.value.style.height = "1px";
-    textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight;
-    if (options == null ? void 0 : options.styleTarget)
-      toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`;
-    else
-      height = `${textareaScrollHeight.value}px`;
-    textarea.value.style.height = height;
-    (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);
-  }
-  watch([input, textarea], triggerResize, { immediate: true });
-  useResizeObserver(textarea, () => triggerResize());
-  if (options == null ? void 0 : options.watch)
-    watch(options.watch, triggerResize, { immediate: true, deep: true });
-  return {
-    textarea,
-    input,
-    triggerResize
-  };
-}
-var __defProp$32 = Object.defineProperty;
-var __defProps$12 = Object.defineProperties;
-var __getOwnPropDescs$12 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols$32 = Object.getOwnPropertySymbols;
-var __hasOwnProp$32 = Object.prototype.hasOwnProperty;
-var __propIsEnum$32 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$32 = (obj, key, value) => key in obj ? __defProp$32(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$32 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$32.call(b, prop))
-      __defNormalProp$32(a, prop, b[prop]);
-  if (__getOwnPropSymbols$32)
-    for (var prop of __getOwnPropSymbols$32(b)) {
-      if (__propIsEnum$32.call(b, prop))
-        __defNormalProp$32(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps$12 = (a, b) => __defProps$12(a, __getOwnPropDescs$12(b));
-function useThrottledRefHistory(source, options = {}) {
-  const { throttle = 200, trailing = true } = options;
-  const filter = throttleFilter(throttle, trailing);
-  const history = useRefHistory(source, __spreadProps$12(__spreadValues$32({}, options), { eventFilter: filter }));
-  return __spreadValues$32({}, history);
-}
-var __defProp$22 = Object.defineProperty;
-var __getOwnPropSymbols$22 = Object.getOwnPropertySymbols;
-var __hasOwnProp$22 = Object.prototype.hasOwnProperty;
-var __propIsEnum$22 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$22 = (obj, key, value) => key in obj ? __defProp$22(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$22 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$22.call(b, prop))
-      __defNormalProp$22(a, prop, b[prop]);
-  if (__getOwnPropSymbols$22)
-    for (var prop of __getOwnPropSymbols$22(b)) {
-      if (__propIsEnum$22.call(b, prop))
-        __defNormalProp$22(a, prop, b[prop]);
-    }
-  return a;
-};
-var __objRest2 = (source, exclude) => {
-  var target = {};
-  for (var prop in source)
-    if (__hasOwnProp$22.call(source, prop) && exclude.indexOf(prop) < 0)
-      target[prop] = source[prop];
-  if (source != null && __getOwnPropSymbols$22)
-    for (var prop of __getOwnPropSymbols$22(source)) {
-      if (exclude.indexOf(prop) < 0 && __propIsEnum$22.call(source, prop))
-        target[prop] = source[prop];
-    }
-  return target;
-};
-var DEFAULT_UNITS = [
-  { max: 6e4, value: 1e3, name: "second" },
-  { max: 276e4, value: 6e4, name: "minute" },
-  { max: 72e6, value: 36e5, name: "hour" },
-  { max: 5184e5, value: 864e5, name: "day" },
-  { max: 24192e5, value: 6048e5, name: "week" },
-  { max: 28512e6, value: 2592e6, name: "month" },
-  { max: Infinity, value: 31536e6, name: "year" }
-];
-var DEFAULT_MESSAGES = {
-  justNow: "just now",
-  past: (n) => n.match(/\d/) ? `${n} ago` : n,
-  future: (n) => n.match(/\d/) ? `in ${n}` : n,
-  month: (n, past) => n === 1 ? past ? "last month" : "next month" : `${n} month${n > 1 ? "s" : ""}`,
-  year: (n, past) => n === 1 ? past ? "last year" : "next year" : `${n} year${n > 1 ? "s" : ""}`,
-  day: (n, past) => n === 1 ? past ? "yesterday" : "tomorrow" : `${n} day${n > 1 ? "s" : ""}`,
-  week: (n, past) => n === 1 ? past ? "last week" : "next week" : `${n} week${n > 1 ? "s" : ""}`,
-  hour: (n) => `${n} hour${n > 1 ? "s" : ""}`,
-  minute: (n) => `${n} minute${n > 1 ? "s" : ""}`,
-  second: (n) => `${n} second${n > 1 ? "s" : ""}`,
-  invalid: ""
-};
-function DEFAULT_FORMATTER(date) {
-  return date.toISOString().slice(0, 10);
-}
-function useTimeAgo(time, options = {}) {
-  const {
-    controls: exposeControls = false,
-    updateInterval = 3e4
-  } = options;
-  const _a = useNow({ interval: updateInterval, controls: true }), { now: now2 } = _a, controls = __objRest2(_a, ["now"]);
-  const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now2.value)));
-  if (exposeControls) {
-    return __spreadValues$22({
-      timeAgo
-    }, controls);
-  } else {
-    return timeAgo;
-  }
-}
-function formatTimeAgo(from, options = {}, now2 = Date.now()) {
-  var _a;
-  const {
-    max,
-    messages = DEFAULT_MESSAGES,
-    fullDateFormatter = DEFAULT_FORMATTER,
-    units = DEFAULT_UNITS,
-    showSecond = false,
-    rounding = "round"
-  } = options;
-  const roundFn = typeof rounding === "number" ? (n) => +n.toFixed(rounding) : Math[rounding];
-  const diff = +now2 - +from;
-  const absDiff = Math.abs(diff);
-  function getValue2(diff2, unit) {
-    return roundFn(Math.abs(diff2) / unit.value);
-  }
-  function format(diff2, unit) {
-    const val = getValue2(diff2, unit);
-    const past = diff2 > 0;
-    const str = applyFormat(unit.name, val, past);
-    return applyFormat(past ? "past" : "future", str, past);
-  }
-  function applyFormat(name, val, isPast) {
-    const formatter = messages[name];
-    if (typeof formatter === "function")
-      return formatter(val, isPast);
-    return formatter.replace("{0}", val.toString());
-  }
-  if (absDiff < 6e4 && !showSecond)
-    return messages.justNow;
-  if (typeof max === "number" && absDiff > max)
-    return fullDateFormatter(new Date(from));
-  if (typeof max === "string") {
-    const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;
-    if (unitMax && absDiff > unitMax)
-      return fullDateFormatter(new Date(from));
-  }
-  for (const [idx, unit] of units.entries()) {
-    const val = getValue2(diff, unit);
-    if (val <= 0 && units[idx - 1])
-      return format(diff, units[idx - 1]);
-    if (absDiff < unit.max)
-      return format(diff, unit);
-  }
-  return messages.invalid;
-}
-function useTimeoutPoll(fn, interval, timeoutPollOptions) {
-  const { start } = useTimeoutFn(loop, interval);
-  const isActive = ref(false);
-  async function loop() {
-    if (!isActive.value)
-      return;
-    await fn();
-    start();
-  }
-  function resume() {
-    if (!isActive.value) {
-      isActive.value = true;
-      loop();
-    }
-  }
-  function pause() {
-    isActive.value = false;
-  }
-  if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)
-    resume();
-  tryOnScopeDispose(pause);
-  return {
-    isActive,
-    pause,
-    resume
-  };
-}
-var __defProp$12 = Object.defineProperty;
-var __getOwnPropSymbols$12 = Object.getOwnPropertySymbols;
-var __hasOwnProp$12 = Object.prototype.hasOwnProperty;
-var __propIsEnum$12 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp$12 = (obj, key, value) => key in obj ? __defProp$12(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues$12 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp$12.call(b, prop))
-      __defNormalProp$12(a, prop, b[prop]);
-  if (__getOwnPropSymbols$12)
-    for (var prop of __getOwnPropSymbols$12(b)) {
-      if (__propIsEnum$12.call(b, prop))
-        __defNormalProp$12(a, prop, b[prop]);
-    }
-  return a;
-};
-function useTimestamp(options = {}) {
-  const {
-    controls: exposeControls = false,
-    offset = 0,
-    immediate = true,
-    interval = "requestAnimationFrame",
-    callback
-  } = options;
-  const ts = ref(timestamp() + offset);
-  const update = () => ts.value = timestamp() + offset;
-  const cb = callback ? () => {
-    update();
-    callback(ts.value);
-  } : update;
-  const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });
-  if (exposeControls) {
-    return __spreadValues$12({
-      timestamp: ts
-    }, controls);
-  } else {
-    return ts;
-  }
-}
-function useTitle(newTitle = null, options = {}) {
-  var _a, _b;
-  const {
-    document: document2 = defaultDocument
-  } = options;
-  const title = toRef2((_a = newTitle != null ? newTitle : document2 == null ? void 0 : document2.title) != null ? _a : null);
-  const isReadonly2 = newTitle && typeof newTitle === "function";
-  function format(t) {
-    if (!("titleTemplate" in options))
-      return t;
-    const template = options.titleTemplate || "%s";
-    return typeof template === "function" ? template(t) : toValue(template).replace(/%s/g, t);
-  }
-  watch(
-    title,
-    (t, o) => {
-      if (t !== o && document2)
-        document2.title = format(typeof t === "string" ? t : "");
-    },
-    { immediate: true }
-  );
-  if (options.observe && !options.titleTemplate && document2 && !isReadonly2) {
-    useMutationObserver(
-      (_b = document2.head) == null ? void 0 : _b.querySelector("title"),
-      () => {
-        if (document2 && document2.title !== title.value)
-          title.value = format(document2.title);
-      },
-      { childList: true }
-    );
-  }
-  return title;
-}
-var __defProp2 = Object.defineProperty;
-var __defProps2 = Object.defineProperties;
-var __getOwnPropDescs2 = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols2 = Object.getOwnPropertySymbols;
-var __hasOwnProp2 = Object.prototype.hasOwnProperty;
-var __propIsEnum2 = Object.prototype.propertyIsEnumerable;
-var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues2 = (a, b) => {
-  for (var prop in b || (b = {}))
-    if (__hasOwnProp2.call(b, prop))
-      __defNormalProp2(a, prop, b[prop]);
-  if (__getOwnPropSymbols2)
-    for (var prop of __getOwnPropSymbols2(b)) {
-      if (__propIsEnum2.call(b, prop))
-        __defNormalProp2(a, prop, b[prop]);
-    }
-  return a;
-};
-var __spreadProps2 = (a, b) => __defProps2(a, __getOwnPropDescs2(b));
-var _TransitionPresets = {
-  easeInSine: [0.12, 0, 0.39, 0],
-  easeOutSine: [0.61, 1, 0.88, 1],
-  easeInOutSine: [0.37, 0, 0.63, 1],
-  easeInQuad: [0.11, 0, 0.5, 0],
-  easeOutQuad: [0.5, 1, 0.89, 1],
-  easeInOutQuad: [0.45, 0, 0.55, 1],
-  easeInCubic: [0.32, 0, 0.67, 0],
-  easeOutCubic: [0.33, 1, 0.68, 1],
-  easeInOutCubic: [0.65, 0, 0.35, 1],
-  easeInQuart: [0.5, 0, 0.75, 0],
-  easeOutQuart: [0.25, 1, 0.5, 1],
-  easeInOutQuart: [0.76, 0, 0.24, 1],
-  easeInQuint: [0.64, 0, 0.78, 0],
-  easeOutQuint: [0.22, 1, 0.36, 1],
-  easeInOutQuint: [0.83, 0, 0.17, 1],
-  easeInExpo: [0.7, 0, 0.84, 0],
-  easeOutExpo: [0.16, 1, 0.3, 1],
-  easeInOutExpo: [0.87, 0, 0.13, 1],
-  easeInCirc: [0.55, 0, 1, 0.45],
-  easeOutCirc: [0, 0.55, 0.45, 1],
-  easeInOutCirc: [0.85, 0, 0.15, 1],
-  easeInBack: [0.36, 0, 0.66, -0.56],
-  easeOutBack: [0.34, 1.56, 0.64, 1],
-  easeInOutBack: [0.68, -0.6, 0.32, 1.6]
-};
-var TransitionPresets = Object.assign({}, { linear: identity }, _TransitionPresets);
-function createEasingFunction([p0, p1, p2, p3]) {
-  const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;
-  const b = (a1, a2) => 3 * a2 - 6 * a1;
-  const c = (a1) => 3 * a1;
-  const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;
-  const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);
-  const getTforX = (x) => {
-    let aGuessT = x;
-    for (let i = 0; i < 4; ++i) {
-      const currentSlope = getSlope(aGuessT, p0, p2);
-      if (currentSlope === 0)
-        return aGuessT;
-      const currentX = calcBezier(aGuessT, p0, p2) - x;
-      aGuessT -= currentX / currentSlope;
-    }
-    return aGuessT;
-  };
-  return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);
-}
-function lerp(a, b, alpha) {
-  return a + alpha * (b - a);
-}
-function toVec(t) {
-  return (typeof t === "number" ? [t] : t) || [];
-}
-function executeTransition(source, from, to, options = {}) {
-  var _a, _b;
-  const fromVal = toValue(from);
-  const toVal = toValue(to);
-  const v1 = toVec(fromVal);
-  const v2 = toVec(toVal);
-  const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;
-  const startedAt = Date.now();
-  const endAt = Date.now() + duration;
-  const trans = typeof options.transition === "function" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;
-  const ease = typeof trans === "function" ? trans : createEasingFunction(trans);
-  return new Promise((resolve) => {
-    source.value = fromVal;
-    const tick = () => {
-      var _a2;
-      if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {
-        resolve();
-        return;
-      }
-      const now2 = Date.now();
-      const alpha = ease((now2 - startedAt) / duration);
-      const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));
-      if (Array.isArray(source.value))
-        source.value = arr.map((n, i) => {
-          var _a3, _b2;
-          return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);
-        });
-      else if (typeof source.value === "number")
-        source.value = arr[0];
-      if (now2 < endAt) {
-        requestAnimationFrame(tick);
-      } else {
-        source.value = toVal;
-        resolve();
-      }
-    };
-    tick();
-  });
-}
-function useTransition(source, options = {}) {
-  let currentId = 0;
-  const sourceVal = () => {
-    const v = toValue(source);
-    return typeof v === "number" ? v : v.map(toValue);
-  };
-  const outputRef = ref(sourceVal());
-  watch(sourceVal, async (to) => {
-    var _a, _b;
-    if (toValue(options.disabled))
-      return;
-    const id = ++currentId;
-    if (options.delay)
-      await promiseTimeout(toValue(options.delay));
-    if (id !== currentId)
-      return;
-    const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);
-    (_a = options.onStarted) == null ? void 0 : _a.call(options);
-    await executeTransition(outputRef, outputRef.value, toVal, __spreadProps2(__spreadValues2({}, options), {
-      abort: () => {
-        var _a2;
-        return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));
-      }
-    }));
-    (_b = options.onFinished) == null ? void 0 : _b.call(options);
-  }, { deep: true });
-  watch(() => toValue(options.disabled), (disabled) => {
-    if (disabled) {
-      currentId++;
-      outputRef.value = sourceVal();
-    }
-  });
-  tryOnScopeDispose(() => {
-    currentId++;
-  });
-  return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);
-}
-function useUrlSearchParams(mode = "history", options = {}) {
-  const {
-    initialValue = {},
-    removeNullishValues = true,
-    removeFalsyValues = false,
-    write: enableWrite = true,
-    window: window2 = defaultWindow
-  } = options;
-  if (!window2)
-    return reactive(initialValue);
-  const state = reactive({});
-  function getRawParams() {
-    if (mode === "history") {
-      return window2.location.search || "";
-    } else if (mode === "hash") {
-      const hash = window2.location.hash || "";
-      const index = hash.indexOf("?");
-      return index > 0 ? hash.slice(index) : "";
-    } else {
-      return (window2.location.hash || "").replace(/^#/, "");
-    }
-  }
-  function constructQuery(params) {
-    const stringified = params.toString();
-    if (mode === "history")
-      return `${stringified ? `?${stringified}` : ""}${window2.location.hash || ""}`;
-    if (mode === "hash-params")
-      return `${window2.location.search || ""}${stringified ? `#${stringified}` : ""}`;
-    const hash = window2.location.hash || "#";
-    const index = hash.indexOf("?");
-    if (index > 0)
-      return `${hash.slice(0, index)}${stringified ? `?${stringified}` : ""}`;
-    return `${hash}${stringified ? `?${stringified}` : ""}`;
-  }
-  function read() {
-    return new URLSearchParams(getRawParams());
-  }
-  function updateState(params) {
-    const unusedKeys = new Set(Object.keys(state));
-    for (const key of params.keys()) {
-      const paramsForKey = params.getAll(key);
-      state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || "";
-      unusedKeys.delete(key);
-    }
-    Array.from(unusedKeys).forEach((key) => delete state[key]);
-  }
-  const { pause, resume } = watchPausable(
-    state,
-    () => {
-      const params = new URLSearchParams("");
-      Object.keys(state).forEach((key) => {
-        const mapEntry = state[key];
-        if (Array.isArray(mapEntry))
-          mapEntry.forEach((value) => params.append(key, value));
-        else if (removeNullishValues && mapEntry == null)
-          params.delete(key);
-        else if (removeFalsyValues && !mapEntry)
-          params.delete(key);
-        else
-          params.set(key, mapEntry);
-      });
-      write(params);
-    },
-    { deep: true }
-  );
-  function write(params, shouldUpdate) {
-    pause();
-    if (shouldUpdate)
-      updateState(params);
-    window2.history.replaceState(
-      window2.history.state,
-      window2.document.title,
-      window2.location.pathname + constructQuery(params)
-    );
-    resume();
-  }
-  function onChanged() {
-    if (!enableWrite)
-      return;
-    write(read(), true);
-  }
-  useEventListener(window2, "popstate", onChanged, false);
-  if (mode !== "history")
-    useEventListener(window2, "hashchange", onChanged, false);
-  const initial = read();
-  if (initial.keys().next().value)
-    updateState(initial);
-  else
-    Object.assign(state, initialValue);
-  return state;
-}
-function useUserMedia(options = {}) {
-  var _a, _b;
-  const enabled = ref((_a = options.enabled) != null ? _a : false);
-  const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);
-  const constraints = ref(options.constraints);
-  const { navigator = defaultNavigator } = options;
-  const isSupported = useSupported(() => {
-    var _a2;
-    return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;
-  });
-  const stream = shallowRef();
-  function getDeviceOptions(type) {
-    switch (type) {
-      case "video": {
-        if (constraints.value)
-          return constraints.value.video || false;
-        break;
-      }
-      case "audio": {
-        if (constraints.value)
-          return constraints.value.audio || false;
-        break;
-      }
-    }
-  }
-  async function _start() {
-    if (!isSupported.value || stream.value)
-      return;
-    stream.value = await navigator.mediaDevices.getUserMedia({
-      video: getDeviceOptions("video"),
-      audio: getDeviceOptions("audio")
-    });
-    return stream.value;
-  }
-  function _stop() {
-    var _a2;
-    (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());
-    stream.value = void 0;
-  }
-  function stop() {
-    _stop();
-    enabled.value = false;
-  }
-  async function start() {
-    await _start();
-    if (stream.value)
-      enabled.value = true;
-    return stream.value;
-  }
-  async function restart() {
-    _stop();
-    return await start();
-  }
-  watch(
-    enabled,
-    (v) => {
-      if (v)
-        _start();
-      else
-        _stop();
-    },
-    { immediate: true }
-  );
-  watch(
-    constraints,
-    () => {
-      if (autoSwitch.value && stream.value)
-        restart();
-    },
-    { immediate: true }
-  );
-  return {
-    isSupported,
-    stream,
-    start,
-    stop,
-    restart,
-    constraints,
-    enabled,
-    autoSwitch
-  };
-}
-function useVModel(props, key, emit, options = {}) {
-  var _a, _b, _c, _d, _e;
-  const {
-    clone = false,
-    passive = false,
-    eventName,
-    deep = false,
-    defaultValue,
-    shouldEmit
-  } = options;
-  const vm = getCurrentInstance();
-  const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));
-  let event = eventName;
-  if (!key) {
-    if (isVue2) {
-      const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;
-      key = (modelOptions == null ? void 0 : modelOptions.value) || "value";
-      if (!eventName)
-        event = (modelOptions == null ? void 0 : modelOptions.event) || "input";
-    } else {
-      key = "modelValue";
-    }
-  }
-  event = eventName || event || `update:${key.toString()}`;
-  const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val);
-  const getValue2 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;
-  const triggerEmit = (value) => {
-    if (shouldEmit) {
-      if (shouldEmit(value))
-        _emit(event, value);
-    } else {
-      _emit(event, value);
-    }
-  };
-  if (passive) {
-    const initialValue = getValue2();
-    const proxy = ref(initialValue);
-    watch(
-      () => props[key],
-      (v) => proxy.value = cloneFn(v)
-    );
-    watch(
-      proxy,
-      (v) => {
-        if (v !== props[key] || deep)
-          triggerEmit(v);
-      },
-      { deep }
-    );
-    return proxy;
-  } else {
-    return computed({
-      get() {
-        return getValue2();
-      },
-      set(value) {
-        triggerEmit(value);
-      }
-    });
-  }
-}
-function useVModels(props, emit, options = {}) {
-  const ret = {};
-  for (const key in props)
-    ret[key] = useVModel(props, key, emit, options);
-  return ret;
-}
-function useVibrate(options) {
-  const {
-    pattern = [],
-    interval = 0,
-    navigator = defaultNavigator
-  } = options || {};
-  const isSupported = useSupported(() => typeof navigator !== "undefined" && "vibrate" in navigator);
-  const patternRef = toRef2(pattern);
-  let intervalControls;
-  const vibrate = (pattern2 = patternRef.value) => {
-    if (isSupported.value)
-      navigator.vibrate(pattern2);
-  };
-  const stop = () => {
-    if (isSupported.value)
-      navigator.vibrate(0);
-    intervalControls == null ? void 0 : intervalControls.pause();
-  };
-  if (interval > 0) {
-    intervalControls = useIntervalFn(
-      vibrate,
-      interval,
-      {
-        immediate: false,
-        immediateCallback: false
-      }
-    );
-  }
-  return {
-    isSupported,
-    pattern,
-    intervalControls,
-    vibrate,
-    stop
-  };
-}
-function useVirtualList(list, options) {
-  const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = "itemHeight" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);
-  return {
-    list: currentList,
-    scrollTo,
-    containerProps: {
-      ref: containerRef,
-      onScroll: () => {
-        calculateRange();
-      },
-      style: containerStyle
-    },
-    wrapperProps
-  };
-}
-function useVirtualListResources(list) {
-  const containerRef = ref(null);
-  const size = useElementSize(containerRef);
-  const currentList = ref([]);
-  const source = shallowRef(list);
-  const state = ref({ start: 0, end: 10 });
-  return { state, source, currentList, size, containerRef };
-}
-function createGetViewCapacity(state, source, itemSize) {
-  return (containerSize) => {
-    if (typeof itemSize === "number")
-      return Math.ceil(containerSize / itemSize);
-    const { start = 0 } = state.value;
-    let sum = 0;
-    let capacity = 0;
-    for (let i = start; i < source.value.length; i++) {
-      const size = itemSize(i);
-      sum += size;
-      capacity = i;
-      if (sum > containerSize)
-        break;
-    }
-    return capacity - start;
-  };
-}
-function createGetOffset(source, itemSize) {
-  return (scrollDirection) => {
-    if (typeof itemSize === "number")
-      return Math.floor(scrollDirection / itemSize) + 1;
-    let sum = 0;
-    let offset = 0;
-    for (let i = 0; i < source.value.length; i++) {
-      const size = itemSize(i);
-      sum += size;
-      if (sum >= scrollDirection) {
-        offset = i;
-        break;
-      }
-    }
-    return offset + 1;
-  };
-}
-function createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {
-  return () => {
-    const element = containerRef.value;
-    if (element) {
-      const offset = getOffset(type === "vertical" ? element.scrollTop : element.scrollLeft);
-      const viewCapacity = getViewCapacity(type === "vertical" ? element.clientHeight : element.clientWidth);
-      const from = offset - overscan;
-      const to = offset + viewCapacity + overscan;
-      state.value = {
-        start: from < 0 ? 0 : from,
-        end: to > source.value.length ? source.value.length : to
-      };
-      currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({
-        data: ele,
-        index: index + state.value.start
-      }));
-    }
-  };
-}
-function createGetDistance(itemSize, source) {
-  return (index) => {
-    if (typeof itemSize === "number") {
-      const size2 = index * itemSize;
-      return size2;
-    }
-    const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);
-    return size;
-  };
-}
-function useWatchForSizes(size, list, calculateRange) {
-  watch([size.width, size.height, list], () => {
-    calculateRange();
-  });
-}
-function createComputedTotalSize(itemSize, source) {
-  return computed(() => {
-    if (typeof itemSize === "number")
-      return source.value.length * itemSize;
-    return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);
-  });
-}
-var scrollToDictionaryForElementScrollKey = {
-  horizontal: "scrollLeft",
-  vertical: "scrollTop"
-};
-function createScrollTo(type, calculateRange, getDistance, containerRef) {
-  return (index) => {
-    if (containerRef.value) {
-      containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);
-      calculateRange();
-    }
-  };
-}
-function useHorizontalVirtualList(options, list) {
-  const resources = useVirtualListResources(list);
-  const { state, source, currentList, size, containerRef } = resources;
-  const containerStyle = { overflowX: "auto" };
-  const { itemWidth, overscan = 5 } = options;
-  const getViewCapacity = createGetViewCapacity(state, source, itemWidth);
-  const getOffset = createGetOffset(source, itemWidth);
-  const calculateRange = createCalculateRange("horizontal", overscan, getOffset, getViewCapacity, resources);
-  const getDistanceLeft = createGetDistance(itemWidth, source);
-  const offsetLeft = computed(() => getDistanceLeft(state.value.start));
-  const totalWidth = createComputedTotalSize(itemWidth, source);
-  useWatchForSizes(size, list, calculateRange);
-  const scrollTo = createScrollTo("horizontal", calculateRange, getDistanceLeft, containerRef);
-  const wrapperProps = computed(() => {
-    return {
-      style: {
-        height: "100%",
-        width: `${totalWidth.value - offsetLeft.value}px`,
-        marginLeft: `${offsetLeft.value}px`,
-        display: "flex"
-      }
-    };
-  });
-  return {
-    scrollTo,
-    calculateRange,
-    wrapperProps,
-    containerStyle,
-    currentList,
-    containerRef
-  };
-}
-function useVerticalVirtualList(options, list) {
-  const resources = useVirtualListResources(list);
-  const { state, source, currentList, size, containerRef } = resources;
-  const containerStyle = { overflowY: "auto" };
-  const { itemHeight, overscan = 5 } = options;
-  const getViewCapacity = createGetViewCapacity(state, source, itemHeight);
-  const getOffset = createGetOffset(source, itemHeight);
-  const calculateRange = createCalculateRange("vertical", overscan, getOffset, getViewCapacity, resources);
-  const getDistanceTop = createGetDistance(itemHeight, source);
-  const offsetTop = computed(() => getDistanceTop(state.value.start));
-  const totalHeight = createComputedTotalSize(itemHeight, source);
-  useWatchForSizes(size, list, calculateRange);
-  const scrollTo = createScrollTo("vertical", calculateRange, getDistanceTop, containerRef);
-  const wrapperProps = computed(() => {
-    return {
-      style: {
-        width: "100%",
-        height: `${totalHeight.value - offsetTop.value}px`,
-        marginTop: `${offsetTop.value}px`
-      }
-    };
-  });
-  return {
-    calculateRange,
-    scrollTo,
-    containerStyle,
-    wrapperProps,
-    currentList,
-    containerRef
-  };
-}
-function useWakeLock(options = {}) {
-  const {
-    navigator = defaultNavigator,
-    document: document2 = defaultDocument
-  } = options;
-  let wakeLock;
-  const isSupported = useSupported(() => navigator && "wakeLock" in navigator);
-  const isActive = ref(false);
-  async function onVisibilityChange() {
-    if (!isSupported.value || !wakeLock)
-      return;
-    if (document2 && document2.visibilityState === "visible")
-      wakeLock = await navigator.wakeLock.request("screen");
-    isActive.value = !wakeLock.released;
-  }
-  if (document2)
-    useEventListener(document2, "visibilitychange", onVisibilityChange, { passive: true });
-  async function request(type) {
-    if (!isSupported.value)
-      return;
-    wakeLock = await navigator.wakeLock.request(type);
-    isActive.value = !wakeLock.released;
-  }
-  async function release() {
-    if (!isSupported.value || !wakeLock)
-      return;
-    await wakeLock.release();
-    isActive.value = !wakeLock.released;
-    wakeLock = null;
-  }
-  return {
-    isSupported,
-    isActive,
-    request,
-    release
-  };
-}
-function useWebNotification(defaultOptions2 = {}) {
-  const {
-    window: window2 = defaultWindow
-  } = defaultOptions2;
-  const isSupported = useSupported(() => !!window2 && "Notification" in window2);
-  const notification = ref(null);
-  const requestPermission = async () => {
-    if (!isSupported.value)
-      return;
-    if ("permission" in Notification && Notification.permission !== "denied")
-      await Notification.requestPermission();
-  };
-  const { on: onClick, trigger: clickTrigger } = createEventHook();
-  const { on: onShow, trigger: showTrigger } = createEventHook();
-  const { on: onError, trigger: errorTrigger } = createEventHook();
-  const { on: onClose, trigger: closeTrigger } = createEventHook();
-  const show = async (overrides) => {
-    if (!isSupported.value)
-      return;
-    await requestPermission();
-    const options = Object.assign({}, defaultOptions2, overrides);
-    notification.value = new Notification(options.title || "", options);
-    notification.value.onclick = clickTrigger;
-    notification.value.onshow = showTrigger;
-    notification.value.onerror = errorTrigger;
-    notification.value.onclose = closeTrigger;
-    return notification.value;
-  };
-  const close = () => {
-    if (notification.value)
-      notification.value.close();
-    notification.value = null;
-  };
-  tryOnMounted(async () => {
-    if (isSupported.value)
-      await requestPermission();
-  });
-  tryOnScopeDispose(close);
-  if (isSupported.value && window2) {
-    const document2 = window2.document;
-    useEventListener(document2, "visibilitychange", (e) => {
-      e.preventDefault();
-      if (document2.visibilityState === "visible") {
-        close();
-      }
-    });
-  }
-  return {
-    isSupported,
-    notification,
-    show,
-    close,
-    onClick,
-    onShow,
-    onError,
-    onClose
-  };
-}
-var DEFAULT_PING_MESSAGE = "ping";
-function resolveNestedOptions(options) {
-  if (options === true)
-    return {};
-  return options;
-}
-function useWebSocket(url, options = {}) {
-  const {
-    onConnected,
-    onDisconnected,
-    onError,
-    onMessage,
-    immediate = true,
-    autoClose = true,
-    protocols = []
-  } = options;
-  const data = ref(null);
-  const status = ref("CLOSED");
-  const wsRef = ref();
-  const urlRef = toRef2(url);
-  let heartbeatPause;
-  let heartbeatResume;
-  let explicitlyClosed = false;
-  let retried = 0;
-  let bufferedData = [];
-  let pongTimeoutWait;
-  const close = (code = 1e3, reason) => {
-    if (!wsRef.value)
-      return;
-    explicitlyClosed = true;
-    heartbeatPause == null ? void 0 : heartbeatPause();
-    wsRef.value.close(code, reason);
-  };
-  const _sendBuffer = () => {
-    if (bufferedData.length && wsRef.value && status.value === "OPEN") {
-      for (const buffer of bufferedData)
-        wsRef.value.send(buffer);
-      bufferedData = [];
-    }
-  };
-  const resetHeartbeat = () => {
-    clearTimeout(pongTimeoutWait);
-    pongTimeoutWait = void 0;
-  };
-  const send = (data2, useBuffer = true) => {
-    if (!wsRef.value || status.value !== "OPEN") {
-      if (useBuffer)
-        bufferedData.push(data2);
-      return false;
-    }
-    _sendBuffer();
-    wsRef.value.send(data2);
-    return true;
-  };
-  const _init = () => {
-    if (explicitlyClosed || typeof urlRef.value === "undefined")
-      return;
-    const ws = new WebSocket(urlRef.value, protocols);
-    wsRef.value = ws;
-    status.value = "CONNECTING";
-    ws.onopen = () => {
-      status.value = "OPEN";
-      onConnected == null ? void 0 : onConnected(ws);
-      heartbeatResume == null ? void 0 : heartbeatResume();
-      _sendBuffer();
-    };
-    ws.onclose = (ev) => {
-      status.value = "CLOSED";
-      wsRef.value = void 0;
-      onDisconnected == null ? void 0 : onDisconnected(ws, ev);
-      if (!explicitlyClosed && options.autoReconnect) {
-        const {
-          retries = -1,
-          delay = 1e3,
-          onFailed
-        } = resolveNestedOptions(options.autoReconnect);
-        retried += 1;
-        if (typeof retries === "number" && (retries < 0 || retried < retries))
-          setTimeout(_init, delay);
-        else if (typeof retries === "function" && retries())
-          setTimeout(_init, delay);
-        else
-          onFailed == null ? void 0 : onFailed();
-      }
-    };
-    ws.onerror = (e) => {
-      onError == null ? void 0 : onError(ws, e);
-    };
-    ws.onmessage = (e) => {
-      if (options.heartbeat) {
-        resetHeartbeat();
-        const {
-          message = DEFAULT_PING_MESSAGE
-        } = resolveNestedOptions(options.heartbeat);
-        if (e.data === message)
-          return;
-      }
-      data.value = e.data;
-      onMessage == null ? void 0 : onMessage(ws, e);
-    };
-  };
-  if (options.heartbeat) {
-    const {
-      message = DEFAULT_PING_MESSAGE,
-      interval = 1e3,
-      pongTimeout = 1e3
-    } = resolveNestedOptions(options.heartbeat);
-    const { pause, resume } = useIntervalFn(
-      () => {
-        send(message, false);
-        if (pongTimeoutWait != null)
-          return;
-        pongTimeoutWait = setTimeout(() => {
-          close();
-        }, pongTimeout);
-      },
-      interval,
-      { immediate: false }
-    );
-    heartbeatPause = pause;
-    heartbeatResume = resume;
-  }
-  if (autoClose) {
-    useEventListener(window, "beforeunload", () => close());
-    tryOnScopeDispose(close);
-  }
-  const open = () => {
-    close();
-    explicitlyClosed = false;
-    retried = 0;
-    _init();
-  };
-  if (immediate)
-    watch(urlRef, open, { immediate: true });
-  return {
-    data,
-    status,
-    close,
-    send,
-    open,
-    ws: wsRef
-  };
-}
-function useWebWorker(arg0, workerOptions, options) {
-  const {
-    window: window2 = defaultWindow
-  } = options != null ? options : {};
-  const data = ref(null);
-  const worker = shallowRef();
-  const post = function post2(val) {
-    if (!worker.value)
-      return;
-    worker.value.postMessage(val);
-  };
-  const terminate = function terminate2() {
-    if (!worker.value)
-      return;
-    worker.value.terminate();
-  };
-  if (window2) {
-    if (typeof arg0 === "string")
-      worker.value = new Worker(arg0, workerOptions);
-    else if (typeof arg0 === "function")
-      worker.value = arg0();
-    else
-      worker.value = arg0;
-    worker.value.onmessage = (e) => {
-      data.value = e.data;
-    };
-    tryOnScopeDispose(() => {
-      if (worker.value)
-        worker.value.terminate();
-    });
-  }
-  return {
-    data,
-    post,
-    terminate,
-    worker
-  };
-}
-function jobRunner(userFunc) {
-  return (e) => {
-    const userFuncArgs = e.data[0];
-    return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {
-      postMessage(["SUCCESS", result]);
-    }).catch((error) => {
-      postMessage(["ERROR", error]);
-    });
-  };
-}
-function depsParser(deps) {
-  if (deps.length === 0)
-    return "";
-  const depsString = deps.map((dep) => `'${dep}'`).toString();
-  return `importScripts(${depsString})`;
-}
-function createWorkerBlobUrl(fn, deps) {
-  const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;
-  const blob = new Blob([blobCode], { type: "text/javascript" });
-  const url = URL.createObjectURL(blob);
-  return url;
-}
-function useWebWorkerFn(fn, options = {}) {
-  const {
-    dependencies = [],
-    timeout,
-    window: window2 = defaultWindow
-  } = options;
-  const worker = ref();
-  const workerStatus = ref("PENDING");
-  const promise = ref({});
-  const timeoutId = ref();
-  const workerTerminate = (status = "PENDING") => {
-    if (worker.value && worker.value._url && window2) {
-      worker.value.terminate();
-      URL.revokeObjectURL(worker.value._url);
-      promise.value = {};
-      worker.value = void 0;
-      window2.clearTimeout(timeoutId.value);
-      workerStatus.value = status;
-    }
-  };
-  workerTerminate();
-  tryOnScopeDispose(workerTerminate);
-  const generateWorker = () => {
-    const blobUrl = createWorkerBlobUrl(fn, dependencies);
-    const newWorker = new Worker(blobUrl);
-    newWorker._url = blobUrl;
-    newWorker.onmessage = (e) => {
-      const { resolve = () => {
-      }, reject = () => {
-      } } = promise.value;
-      const [status, result] = e.data;
-      switch (status) {
-        case "SUCCESS":
-          resolve(result);
-          workerTerminate(status);
-          break;
-        default:
-          reject(result);
-          workerTerminate("ERROR");
-          break;
-      }
-    };
-    newWorker.onerror = (e) => {
-      const { reject = () => {
-      } } = promise.value;
-      reject(e);
-      workerTerminate("ERROR");
-    };
-    if (timeout) {
-      timeoutId.value = setTimeout(
-        () => workerTerminate("TIMEOUT_EXPIRED"),
-        timeout
-      );
-    }
-    return newWorker;
-  };
-  const callWorker = (...fnArgs) => new Promise((resolve, reject) => {
-    promise.value = {
-      resolve,
-      reject
-    };
-    worker.value && worker.value.postMessage([[...fnArgs]]);
-    workerStatus.value = "RUNNING";
-  });
-  const workerFn = (...fnArgs) => {
-    if (workerStatus.value === "RUNNING") {
-      console.error(
-        "[useWebWorkerFn] You can only run one instance of the worker at a time."
-      );
-      return Promise.reject();
-    }
-    worker.value = generateWorker();
-    return callWorker(...fnArgs);
-  };
-  return {
-    workerFn,
-    workerStatus,
-    workerTerminate
-  };
-}
-function useWindowFocus({ window: window2 = defaultWindow } = {}) {
-  if (!window2)
-    return ref(false);
-  const focused = ref(window2.document.hasFocus());
-  useEventListener(window2, "blur", () => {
-    focused.value = false;
-  });
-  useEventListener(window2, "focus", () => {
-    focused.value = true;
-  });
-  return focused;
-}
-function useWindowScroll({ window: window2 = defaultWindow } = {}) {
-  if (!window2) {
-    return {
-      x: ref(0),
-      y: ref(0)
-    };
-  }
-  const x = ref(window2.scrollX);
-  const y = ref(window2.scrollY);
-  useEventListener(
-    window2,
-    "scroll",
-    () => {
-      x.value = window2.scrollX;
-      y.value = window2.scrollY;
-    },
-    {
-      capture: false,
-      passive: true
-    }
-  );
-  return { x, y };
-}
-function useWindowSize(options = {}) {
-  const {
-    window: window2 = defaultWindow,
-    initialWidth = Infinity,
-    initialHeight = Infinity,
-    listenOrientation = true,
-    includeScrollbar = true
-  } = options;
-  const width = ref(initialWidth);
-  const height = ref(initialHeight);
-  const update = () => {
-    if (window2) {
-      if (includeScrollbar) {
-        width.value = window2.innerWidth;
-        height.value = window2.innerHeight;
-      } else {
-        width.value = window2.document.documentElement.clientWidth;
-        height.value = window2.document.documentElement.clientHeight;
-      }
-    }
-  };
-  update();
-  tryOnMounted(update);
-  useEventListener("resize", update, { passive: true });
-  if (listenOrientation) {
-    const matches = useMediaQuery("(orientation: portrait)");
-    watch(matches, () => update());
-  }
-  return { width, height };
-}
-
-export {
-  computedEager,
-  computedWithControl,
-  tryOnScopeDispose,
-  createEventHook,
-  createGlobalState,
-  createInjectionState,
-  createSharedComposable,
-  extendRef,
-  get,
-  isDefined,
-  makeDestructurable,
-  toValue,
-  resolveUnref,
-  reactify,
-  reactifyObject,
-  toReactive,
-  reactiveComputed,
-  reactiveOmit,
-  isClient,
-  isDef,
-  notNullish,
-  assert,
-  isObject,
-  now,
-  timestamp,
-  clamp,
-  noop,
-  rand,
-  hasOwn,
-  isIOS,
-  createFilterWrapper,
-  bypassFilter,
-  debounceFilter,
-  throttleFilter,
-  pausableFilter,
-  directiveHooks,
-  promiseTimeout,
-  identity,
-  createSingletonPromise,
-  invoke,
-  containsProp,
-  increaseWithUnit,
-  objectPick,
-  objectOmit,
-  objectEntries,
-  toRef2 as toRef,
-  resolveRef,
-  reactivePick,
-  refAutoReset,
-  useDebounceFn,
-  refDebounced,
-  refDefault,
-  useThrottleFn,
-  refThrottled,
-  refWithControl,
-  controlledRef,
-  set2 as set,
-  syncRef,
-  syncRefs,
-  toRefs2 as toRefs,
-  tryOnBeforeMount,
-  tryOnBeforeUnmount,
-  tryOnMounted,
-  tryOnUnmounted,
-  until,
-  useArrayDifference,
-  useArrayEvery,
-  useArrayFilter,
-  useArrayFind,
-  useArrayFindIndex,
-  useArrayFindLast,
-  useArrayIncludes,
-  useArrayJoin,
-  useArrayMap,
-  useArrayReduce,
-  useArraySome,
-  useArrayUnique,
-  useCounter,
-  formatDate,
-  normalizeDate,
-  useDateFormat,
-  useIntervalFn,
-  useInterval,
-  useLastChanged,
-  useTimeoutFn,
-  useTimeout,
-  useToNumber,
-  useToString,
-  useToggle,
-  watchArray,
-  watchWithFilter,
-  watchAtMost,
-  watchDebounced,
-  watchDeep,
-  watchIgnorable,
-  watchImmediate,
-  watchOnce,
-  watchPausable,
-  watchThrottled,
-  watchTriggerable,
-  whenever,
-  computedAsync,
-  computedInject,
-  createReusableTemplate,
-  createTemplatePromise,
-  createUnrefFn,
-  unrefElement,
-  defaultWindow,
-  defaultDocument,
-  defaultNavigator,
-  defaultLocation,
-  useEventListener,
-  onClickOutside,
-  onKeyStroke,
-  onKeyDown,
-  onKeyPressed,
-  onKeyUp,
-  onLongPress,
-  onStartTyping,
-  templateRef,
-  useActiveElement,
-  useMounted,
-  useSupported,
-  useRafFn,
-  useAnimate,
-  useAsyncQueue,
-  useAsyncState,
-  useBase64,
-  useBattery,
-  useBluetooth,
-  useMediaQuery,
-  breakpointsTailwind,
-  breakpointsBootstrapV5,
-  breakpointsVuetify,
-  breakpointsAntDesign,
-  breakpointsQuasar,
-  breakpointsSematic,
-  breakpointsMasterCss,
-  useBreakpoints,
-  useBroadcastChannel,
-  useBrowserLocation,
-  useCached,
-  useClipboard,
-  cloneFnJSON,
-  useCloned,
-  getSSRHandler,
-  setSSRHandler,
-  StorageSerializers,
-  customStorageEventName,
-  useStorage,
-  usePreferredDark,
-  useColorMode,
-  useConfirmDialog,
-  useMutationObserver,
-  useCssVar,
-  useCurrentElement,
-  useCycleList,
-  useDark,
-  useManualRefHistory,
-  useRefHistory,
-  useDebouncedRefHistory,
-  useDeviceMotion,
-  useDeviceOrientation,
-  useDevicePixelRatio,
-  usePermission,
-  useDevicesList,
-  useDisplayMedia,
-  useDocumentVisibility,
-  useDraggable,
-  useDropZone,
-  useResizeObserver,
-  useElementBounding,
-  useElementByPoint,
-  useElementHover,
-  useElementSize,
-  useIntersectionObserver,
-  useElementVisibility,
-  useEventBus,
-  useEventSource,
-  useEyeDropper,
-  useFavicon,
-  createFetch,
-  useFetch,
-  useFileDialog,
-  useFileSystemAccess,
-  useFocus,
-  useFocusWithin,
-  useFps,
-  useFullscreen,
-  mapGamepadToXbox360Controller,
-  useGamepad,
-  useGeolocation,
-  useIdle,
-  useImage,
-  useScroll,
-  useInfiniteScroll,
-  useKeyModifier,
-  useLocalStorage,
-  DefaultMagicKeysAliasMap,
-  useMagicKeys,
-  useMediaControls,
-  useMemoize,
-  useMemory,
-  useMouse,
-  useMouseInElement,
-  useMousePressed,
-  useNavigatorLanguage,
-  useNetwork,
-  useNow,
-  useObjectUrl,
-  useOffsetPagination,
-  useOnline,
-  usePageLeave,
-  useParallax,
-  useParentElement,
-  usePerformanceObserver,
-  usePointer,
-  usePointerLock,
-  usePointerSwipe,
-  usePreferredColorScheme,
-  usePreferredContrast,
-  usePreferredLanguages,
-  usePreferredReducedMotion,
-  usePrevious,
-  useScreenOrientation,
-  useScreenSafeArea,
-  useScriptTag,
-  useScrollLock,
-  useSessionStorage,
-  useShare,
-  useSorted,
-  useSpeechRecognition,
-  useSpeechSynthesis,
-  useStepper,
-  useStorageAsync,
-  useStyleTag,
-  useSwipe,
-  useTemplateRefsList,
-  useTextDirection,
-  useTextSelection,
-  useTextareaAutosize,
-  useThrottledRefHistory,
-  useTimeAgo,
-  formatTimeAgo,
-  useTimeoutPoll,
-  useTimestamp,
-  useTitle,
-  TransitionPresets,
-  executeTransition,
-  useTransition,
-  useUrlSearchParams,
-  useUserMedia,
-  useVModel,
-  useVModels,
-  useVibrate,
-  useVirtualList,
-  useWakeLock,
-  useWebNotification,
-  useWebSocket,
-  useWebWorker,
-  useWebWorkerFn,
-  useWindowFocus,
-  useWindowScroll,
-  useWindowSize
-};
-//# sourceMappingURL=chunk-YZCJI2S3.js.map

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 3
docs/.vitepress/cache/deps/chunk-YZCJI2S3.js.map


+ 0 - 4273
docs/.vitepress/cache/deps/gsap.js

@@ -1,4273 +0,0 @@
-import "./chunk-JC4IRQUL.js";
-
-// node_modules/.pnpm/gsap@3.11.5/node_modules/gsap/gsap-core.js
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-  return self;
-}
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
-var _config = {
-  autoSleep: 120,
-  force3D: "auto",
-  nullTargetWarn: 1,
-  units: {
-    lineHeight: ""
-  }
-};
-var _defaults = {
-  duration: 0.5,
-  overwrite: false,
-  delay: 0
-};
-var _suppressOverwrites;
-var _reverting;
-var _context;
-var _bigNum = 1e8;
-var _tinyNum = 1 / _bigNum;
-var _2PI = Math.PI * 2;
-var _HALF_PI = _2PI / 4;
-var _gsID = 0;
-var _sqrt = Math.sqrt;
-var _cos = Math.cos;
-var _sin = Math.sin;
-var _isString = function _isString2(value) {
-  return typeof value === "string";
-};
-var _isFunction = function _isFunction2(value) {
-  return typeof value === "function";
-};
-var _isNumber = function _isNumber2(value) {
-  return typeof value === "number";
-};
-var _isUndefined = function _isUndefined2(value) {
-  return typeof value === "undefined";
-};
-var _isObject = function _isObject2(value) {
-  return typeof value === "object";
-};
-var _isNotFalse = function _isNotFalse2(value) {
-  return value !== false;
-};
-var _windowExists = function _windowExists2() {
-  return typeof window !== "undefined";
-};
-var _isFuncOrString = function _isFuncOrString2(value) {
-  return _isFunction(value) || _isString(value);
-};
-var _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function() {
-};
-var _isArray = Array.isArray;
-var _strictNumExp = /(?:-?\.?\d|\.)+/gi;
-var _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g;
-var _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g;
-var _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi;
-var _relExp = /[+-]=-?[.\d]+/;
-var _delimitedValueExp = /[^,'"\[\]\s]+/gi;
-var _unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i;
-var _globalTimeline;
-var _win;
-var _coreInitted;
-var _doc;
-var _globals = {};
-var _installScope = {};
-var _coreReady;
-var _install = function _install2(scope) {
-  return (_installScope = _merge(scope, _globals)) && gsap;
-};
-var _missingPlugin = function _missingPlugin2(property, value) {
-  return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()");
-};
-var _warn = function _warn2(message, suppress) {
-  return !suppress && console.warn(message);
-};
-var _addGlobal = function _addGlobal2(name, obj) {
-  return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;
-};
-var _emptyFunc = function _emptyFunc2() {
-  return 0;
-};
-var _startAtRevertConfig = {
-  suppressEvents: true,
-  isStart: true,
-  kill: false
-};
-var _revertConfigNoKill = {
-  suppressEvents: true,
-  kill: false
-};
-var _revertConfig = {
-  suppressEvents: true
-};
-var _reservedProps = {};
-var _lazyTweens = [];
-var _lazyLookup = {};
-var _lastRenderedFrame;
-var _plugins = {};
-var _effects = {};
-var _nextGCFrame = 30;
-var _harnessPlugins = [];
-var _callbackNames = "";
-var _harness = function _harness2(targets) {
-  var target = targets[0], harnessPlugin, i;
-  _isObject(target) || _isFunction(target) || (targets = [targets]);
-  if (!(harnessPlugin = (target._gsap || {}).harness)) {
-    i = _harnessPlugins.length;
-    while (i-- && !_harnessPlugins[i].targetTest(target)) {
-    }
-    harnessPlugin = _harnessPlugins[i];
-  }
-  i = targets.length;
-  while (i--) {
-    targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);
-  }
-  return targets;
-};
-var _getCache = function _getCache2(target) {
-  return target._gsap || _harness(toArray(target))[0]._gsap;
-};
-var _getProperty = function _getProperty2(target, property, v) {
-  return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;
-};
-var _forEachName = function _forEachName2(names, func) {
-  return (names = names.split(",")).forEach(func) || names;
-};
-var _round = function _round2(value) {
-  return Math.round(value * 1e5) / 1e5 || 0;
-};
-var _roundPrecise = function _roundPrecise2(value) {
-  return Math.round(value * 1e7) / 1e7 || 0;
-};
-var _parseRelative = function _parseRelative2(start, value) {
-  var operator = value.charAt(0), end = parseFloat(value.substr(2));
-  start = parseFloat(start);
-  return operator === "+" ? start + end : operator === "-" ? start - end : operator === "*" ? start * end : start / end;
-};
-var _arrayContainsAny = function _arrayContainsAny2(toSearch, toFind) {
-  var l = toFind.length, i = 0;
-  for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l; ) {
-  }
-  return i < l;
-};
-var _lazyRender = function _lazyRender2() {
-  var l = _lazyTweens.length, a = _lazyTweens.slice(0), i, tween;
-  _lazyLookup = {};
-  _lazyTweens.length = 0;
-  for (i = 0; i < l; i++) {
-    tween = a[i];
-    tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);
-  }
-};
-var _lazySafeRender = function _lazySafeRender2(animation, time, suppressEvents, force) {
-  _lazyTweens.length && !_reverting && _lazyRender();
-  animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));
-  _lazyTweens.length && !_reverting && _lazyRender();
-};
-var _numericIfPossible = function _numericIfPossible2(value) {
-  var n = parseFloat(value);
-  return (n || n === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;
-};
-var _passThrough = function _passThrough2(p) {
-  return p;
-};
-var _setDefaults = function _setDefaults2(obj, defaults2) {
-  for (var p in defaults2) {
-    p in obj || (obj[p] = defaults2[p]);
-  }
-  return obj;
-};
-var _setKeyframeDefaults = function _setKeyframeDefaults2(excludeDuration) {
-  return function(obj, defaults2) {
-    for (var p in defaults2) {
-      p in obj || p === "duration" && excludeDuration || p === "ease" || (obj[p] = defaults2[p]);
-    }
-  };
-};
-var _merge = function _merge2(base, toMerge) {
-  for (var p in toMerge) {
-    base[p] = toMerge[p];
-  }
-  return base;
-};
-var _mergeDeep = function _mergeDeep2(base, toMerge) {
-  for (var p in toMerge) {
-    p !== "__proto__" && p !== "constructor" && p !== "prototype" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep2(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);
-  }
-  return base;
-};
-var _copyExcluding = function _copyExcluding2(obj, excluding) {
-  var copy = {}, p;
-  for (p in obj) {
-    p in excluding || (copy[p] = obj[p]);
-  }
-  return copy;
-};
-var _inheritDefaults = function _inheritDefaults2(vars) {
-  var parent = vars.parent || _globalTimeline, func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;
-  if (_isNotFalse(vars.inherit)) {
-    while (parent) {
-      func(vars, parent.vars.defaults);
-      parent = parent.parent || parent._dp;
-    }
-  }
-  return vars;
-};
-var _arraysMatch = function _arraysMatch2(a1, a2) {
-  var i = a1.length, match = i === a2.length;
-  while (match && i-- && a1[i] === a2[i]) {
-  }
-  return i < 0;
-};
-var _addLinkedListItem = function _addLinkedListItem2(parent, child, firstProp, lastProp, sortBy) {
-  if (firstProp === void 0) {
-    firstProp = "_first";
-  }
-  if (lastProp === void 0) {
-    lastProp = "_last";
-  }
-  var prev = parent[lastProp], t;
-  if (sortBy) {
-    t = child[sortBy];
-    while (prev && prev[sortBy] > t) {
-      prev = prev._prev;
-    }
-  }
-  if (prev) {
-    child._next = prev._next;
-    prev._next = child;
-  } else {
-    child._next = parent[firstProp];
-    parent[firstProp] = child;
-  }
-  if (child._next) {
-    child._next._prev = child;
-  } else {
-    parent[lastProp] = child;
-  }
-  child._prev = prev;
-  child.parent = child._dp = parent;
-  return child;
-};
-var _removeLinkedListItem = function _removeLinkedListItem2(parent, child, firstProp, lastProp) {
-  if (firstProp === void 0) {
-    firstProp = "_first";
-  }
-  if (lastProp === void 0) {
-    lastProp = "_last";
-  }
-  var prev = child._prev, next = child._next;
-  if (prev) {
-    prev._next = next;
-  } else if (parent[firstProp] === child) {
-    parent[firstProp] = next;
-  }
-  if (next) {
-    next._prev = prev;
-  } else if (parent[lastProp] === child) {
-    parent[lastProp] = prev;
-  }
-  child._next = child._prev = child.parent = null;
-};
-var _removeFromParent = function _removeFromParent2(child, onlyIfParentHasAutoRemove) {
-  child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove(child);
-  child._act = 0;
-};
-var _uncache = function _uncache2(animation, child) {
-  if (animation && (!child || child._end > animation._dur || child._start < 0)) {
-    var a = animation;
-    while (a) {
-      a._dirty = 1;
-      a = a.parent;
-    }
-  }
-  return animation;
-};
-var _recacheAncestors = function _recacheAncestors2(animation) {
-  var parent = animation.parent;
-  while (parent && parent.parent) {
-    parent._dirty = 1;
-    parent.totalDuration();
-    parent = parent.parent;
-  }
-  return animation;
-};
-var _rewindStartAt = function _rewindStartAt2(tween, totalTime, suppressEvents, force) {
-  return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));
-};
-var _hasNoPausedAncestors = function _hasNoPausedAncestors2(animation) {
-  return !animation || animation._ts && _hasNoPausedAncestors2(animation.parent);
-};
-var _elapsedCycleDuration = function _elapsedCycleDuration2(animation) {
-  return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;
-};
-var _animationCycle = function _animationCycle2(tTime, cycleDuration) {
-  var whole = Math.floor(tTime /= cycleDuration);
-  return tTime && whole === tTime ? whole - 1 : whole;
-};
-var _parentToChildTotalTime = function _parentToChildTotalTime2(parentTime, child) {
-  return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);
-};
-var _setEnd = function _setEnd2(animation) {
-  return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));
-};
-var _alignPlayhead = function _alignPlayhead2(animation, totalTime) {
-  var parent = animation._dp;
-  if (parent && parent.smoothChildTiming && animation._ts) {
-    animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));
-    _setEnd(animation);
-    parent._dirty || _uncache(parent, animation);
-  }
-  return animation;
-};
-var _postAddChecks = function _postAddChecks2(timeline2, child) {
-  var t;
-  if (child._time || child._initted && !child._dur) {
-    t = _parentToChildTotalTime(timeline2.rawTime(), child);
-    if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {
-      child.render(t, true);
-    }
-  }
-  if (_uncache(timeline2, child)._dp && timeline2._initted && timeline2._time >= timeline2._dur && timeline2._ts) {
-    if (timeline2._dur < timeline2.duration()) {
-      t = timeline2;
-      while (t._dp) {
-        t.rawTime() >= 0 && t.totalTime(t._tTime);
-        t = t._dp;
-      }
-    }
-    timeline2._zTime = -_tinyNum;
-  }
-};
-var _addToTimeline = function _addToTimeline2(timeline2, child, position, skipChecks) {
-  child.parent && _removeFromParent(child);
-  child._start = _roundPrecise((_isNumber(position) ? position : position || timeline2 !== _globalTimeline ? _parsePosition(timeline2, position, child) : timeline2._time) + child._delay);
-  child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));
-  _addLinkedListItem(timeline2, child, "_first", "_last", timeline2._sort ? "_start" : 0);
-  _isFromOrFromStart(child) || (timeline2._recent = child);
-  skipChecks || _postAddChecks(timeline2, child);
-  timeline2._ts < 0 && _alignPlayhead(timeline2, timeline2._tTime);
-  return timeline2;
-};
-var _scrollTrigger = function _scrollTrigger2(animation, trigger) {
-  return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation);
-};
-var _attemptInitTween = function _attemptInitTween2(tween, time, force, suppressEvents, tTime) {
-  _initTween(tween, time, tTime);
-  if (!tween._initted) {
-    return 1;
-  }
-  if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {
-    _lazyTweens.push(tween);
-    tween._lazy = [tTime, suppressEvents];
-    return 1;
-  }
-};
-var _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart2(_ref) {
-  var parent = _ref.parent;
-  return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart2(parent));
-};
-var _isFromOrFromStart = function _isFromOrFromStart2(_ref2) {
-  var data = _ref2.data;
-  return data === "isFromStart" || data === "isStart";
-};
-var _renderZeroDurationTween = function _renderZeroDurationTween2(tween, totalTime, suppressEvents, force) {
-  var prevRatio = tween.ratio, ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1, repeatDelay = tween._rDelay, tTime = 0, pt, iteration, prevIteration;
-  if (repeatDelay && tween._repeat) {
-    tTime = _clamp(0, tween._tDur, totalTime);
-    iteration = _animationCycle(tTime, repeatDelay);
-    tween._yoyo && iteration & 1 && (ratio = 1 - ratio);
-    if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {
-      prevRatio = 1 - ratio;
-      tween.vars.repeatRefresh && tween._initted && tween.invalidate();
-    }
-  }
-  if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {
-    if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {
-      return;
-    }
-    prevIteration = tween._zTime;
-    tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0);
-    suppressEvents || (suppressEvents = totalTime && !prevIteration);
-    tween.ratio = ratio;
-    tween._from && (ratio = 1 - ratio);
-    tween._time = 0;
-    tween._tTime = tTime;
-    pt = tween._pt;
-    while (pt) {
-      pt.r(ratio, pt.d);
-      pt = pt._next;
-    }
-    totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);
-    tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate");
-    tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat");
-    if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {
-      ratio && _removeFromParent(tween, 1);
-      if (!suppressEvents && !_reverting) {
-        _callback(tween, ratio ? "onComplete" : "onReverseComplete", true);
-        tween._prom && tween._prom();
-      }
-    }
-  } else if (!tween._zTime) {
-    tween._zTime = totalTime;
-  }
-};
-var _findNextPauseTween = function _findNextPauseTween2(animation, prevTime, time) {
-  var child;
-  if (time > prevTime) {
-    child = animation._first;
-    while (child && child._start <= time) {
-      if (child.data === "isPause" && child._start > prevTime) {
-        return child;
-      }
-      child = child._next;
-    }
-  } else {
-    child = animation._last;
-    while (child && child._start >= time) {
-      if (child.data === "isPause" && child._start < prevTime) {
-        return child;
-      }
-      child = child._prev;
-    }
-  }
-};
-var _setDuration = function _setDuration2(animation, duration, skipUncache, leavePlayhead) {
-  var repeat = animation._repeat, dur = _roundPrecise(duration) || 0, totalProgress = animation._tTime / animation._tDur;
-  totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);
-  animation._dur = dur;
-  animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);
-  totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);
-  animation.parent && _setEnd(animation);
-  skipUncache || _uncache(animation.parent, animation);
-  return animation;
-};
-var _onUpdateTotalDuration = function _onUpdateTotalDuration2(animation) {
-  return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);
-};
-var _zeroPosition = {
-  _start: 0,
-  endTime: _emptyFunc,
-  totalDuration: _emptyFunc
-};
-var _parsePosition = function _parsePosition2(animation, position, percentAnimation) {
-  var labels = animation.labels, recent = animation._recent || _zeroPosition, clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, i, offset, isPercent;
-  if (_isString(position) && (isNaN(position) || position in labels)) {
-    offset = position.charAt(0);
-    isPercent = position.substr(-1) === "%";
-    i = position.indexOf("=");
-    if (offset === "<" || offset === ">") {
-      i >= 0 && (position = position.replace(/=/, ""));
-      return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);
-    }
-    if (i < 0) {
-      position in labels || (labels[position] = clippedDuration);
-      return labels[position];
-    }
-    offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));
-    if (isPercent && percentAnimation) {
-      offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();
-    }
-    return i > 1 ? _parsePosition2(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;
-  }
-  return position == null ? clippedDuration : +position;
-};
-var _createTweenType = function _createTweenType2(type, params, timeline2) {
-  var isLegacy = _isNumber(params[1]), varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), vars = params[varsIndex], irVars, parent;
-  isLegacy && (vars.duration = params[1]);
-  vars.parent = timeline2;
-  if (type) {
-    irVars = vars;
-    parent = timeline2;
-    while (parent && !("immediateRender" in irVars)) {
-      irVars = parent.vars.defaults || {};
-      parent = _isNotFalse(parent.vars.inherit) && parent.parent;
-    }
-    vars.immediateRender = _isNotFalse(irVars.immediateRender);
-    type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1];
-  }
-  return new Tween(params[0], vars, params[varsIndex + 1]);
-};
-var _conditionalReturn = function _conditionalReturn2(value, func) {
-  return value || value === 0 ? func(value) : func;
-};
-var _clamp = function _clamp2(min, max, value) {
-  return value < min ? min : value > max ? max : value;
-};
-var getUnit = function getUnit2(value, v) {
-  return !_isString(value) || !(v = _unitExp.exec(value)) ? "" : v[1];
-};
-var clamp = function clamp2(min, max, value) {
-  return _conditionalReturn(value, function(v) {
-    return _clamp(min, max, v);
-  });
-};
-var _slice = [].slice;
-var _isArrayLike = function _isArrayLike2(value, nonEmpty) {
-  return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;
-};
-var _flatten = function _flatten2(ar, leaveStrings, accumulator) {
-  if (accumulator === void 0) {
-    accumulator = [];
-  }
-  return ar.forEach(function(value) {
-    var _accumulator;
-    return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);
-  }) || accumulator;
-};
-var toArray = function toArray2(value, scope, leaveStrings) {
-  return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];
-};
-var selector = function selector2(value) {
-  value = toArray(value)[0] || _warn("Invalid scope") || {};
-  return function(v) {
-    var el = value.current || value.nativeElement || value;
-    return toArray(v, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value);
-  };
-};
-var shuffle = function shuffle2(a) {
-  return a.sort(function() {
-    return 0.5 - Math.random();
-  });
-};
-var distribute = function distribute2(v) {
-  if (_isFunction(v)) {
-    return v;
-  }
-  var vars = _isObject(v) ? v : {
-    each: v
-  }, ease = _parseEase(vars.ease), from = vars.from || 0, base = parseFloat(vars.base) || 0, cache = {}, isDecimal = from > 0 && from < 1, ratios = isNaN(from) || isDecimal, axis = vars.axis, ratioX = from, ratioY = from;
-  if (_isString(from)) {
-    ratioX = ratioY = {
-      center: 0.5,
-      edges: 0.5,
-      end: 1
-    }[from] || 0;
-  } else if (!isDecimal && ratios) {
-    ratioX = from[0];
-    ratioY = from[1];
-  }
-  return function(i, target, a) {
-    var l = (a || vars).length, distances = cache[l], originX, originY, x, y, d, j, max, min, wrapAt;
-    if (!distances) {
-      wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1];
-      if (!wrapAt) {
-        max = -_bigNum;
-        while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {
-        }
-        wrapAt--;
-      }
-      distances = cache[l] = [];
-      originX = ratios ? Math.min(wrapAt, l) * ratioX - 0.5 : from % wrapAt;
-      originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - 0.5 : from / wrapAt | 0;
-      max = 0;
-      min = _bigNum;
-      for (j = 0; j < l; j++) {
-        x = j % wrapAt - originX;
-        y = originY - (j / wrapAt | 0);
-        distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === "y" ? y : x);
-        d > max && (max = d);
-        d < min && (min = d);
-      }
-      from === "random" && shuffle(distances);
-      distances.max = max - min;
-      distances.min = min;
-      distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === "y" ? l / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1);
-      distances.b = l < 0 ? base - l : base;
-      distances.u = getUnit(vars.amount || vars.each) || 0;
-      ease = ease && l < 0 ? _invertEase(ease) : ease;
-    }
-    l = (distances[i] - distances.min) / distances.max || 0;
-    return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u;
-  };
-};
-var _roundModifier = function _roundModifier2(v) {
-  var p = Math.pow(10, ((v + "").split(".")[1] || "").length);
-  return function(raw) {
-    var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);
-    return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw));
-  };
-};
-var snap = function snap2(snapTo, value) {
-  var isArray = _isArray(snapTo), radius, is2D;
-  if (!isArray && _isObject(snapTo)) {
-    radius = isArray = snapTo.radius || _bigNum;
-    if (snapTo.values) {
-      snapTo = toArray(snapTo.values);
-      if (is2D = !_isNumber(snapTo[0])) {
-        radius *= radius;
-      }
-    } else {
-      snapTo = _roundModifier(snapTo.increment);
-    }
-  }
-  return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function(raw) {
-    is2D = snapTo(raw);
-    return Math.abs(is2D - raw) <= radius ? is2D : raw;
-  } : function(raw) {
-    var x = parseFloat(is2D ? raw.x : raw), y = parseFloat(is2D ? raw.y : 0), min = _bigNum, closest = 0, i = snapTo.length, dx, dy;
-    while (i--) {
-      if (is2D) {
-        dx = snapTo[i].x - x;
-        dy = snapTo[i].y - y;
-        dx = dx * dx + dy * dy;
-      } else {
-        dx = Math.abs(snapTo[i] - x);
-      }
-      if (dx < min) {
-        min = dx;
-        closest = i;
-      }
-    }
-    closest = !radius || min <= radius ? snapTo[closest] : raw;
-    return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);
-  });
-};
-var random = function random2(min, max, roundingIncrement, returnFunction) {
-  return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function() {
-    return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * 0.99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;
-  });
-};
-var pipe = function pipe2() {
-  for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {
-    functions[_key] = arguments[_key];
-  }
-  return function(value) {
-    return functions.reduce(function(v, f) {
-      return f(v);
-    }, value);
-  };
-};
-var unitize = function unitize2(func, unit) {
-  return function(value) {
-    return func(parseFloat(value)) + (unit || getUnit(value));
-  };
-};
-var normalize = function normalize2(min, max, value) {
-  return mapRange(min, max, 0, 1, value);
-};
-var _wrapArray = function _wrapArray2(a, wrapper, value) {
-  return _conditionalReturn(value, function(index) {
-    return a[~~wrapper(index)];
-  });
-};
-var wrap = function wrap2(min, max, value) {
-  var range = max - min;
-  return _isArray(min) ? _wrapArray(min, wrap2(0, min.length), max) : _conditionalReturn(value, function(value2) {
-    return (range + (value2 - min) % range) % range + min;
-  });
-};
-var wrapYoyo = function wrapYoyo2(min, max, value) {
-  var range = max - min, total = range * 2;
-  return _isArray(min) ? _wrapArray(min, wrapYoyo2(0, min.length - 1), max) : _conditionalReturn(value, function(value2) {
-    value2 = (total + (value2 - min) % total) % total || 0;
-    return min + (value2 > range ? total - value2 : value2);
-  });
-};
-var _replaceRandom = function _replaceRandom2(value) {
-  var prev = 0, s = "", i, nums, end, isArray;
-  while (~(i = value.indexOf("random(", prev))) {
-    end = value.indexOf(")", i);
-    isArray = value.charAt(i + 7) === "[";
-    nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);
-    s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);
-    prev = end + 1;
-  }
-  return s + value.substr(prev, value.length - prev);
-};
-var mapRange = function mapRange2(inMin, inMax, outMin, outMax, value) {
-  var inRange = inMax - inMin, outRange = outMax - outMin;
-  return _conditionalReturn(value, function(value2) {
-    return outMin + ((value2 - inMin) / inRange * outRange || 0);
-  });
-};
-var interpolate = function interpolate2(start, end, progress, mutate) {
-  var func = isNaN(start + end) ? 0 : function(p2) {
-    return (1 - p2) * start + p2 * end;
-  };
-  if (!func) {
-    var isString = _isString(start), master = {}, p, i, interpolators, l, il;
-    progress === true && (mutate = 1) && (progress = null);
-    if (isString) {
-      start = {
-        p: start
-      };
-      end = {
-        p: end
-      };
-    } else if (_isArray(start) && !_isArray(end)) {
-      interpolators = [];
-      l = start.length;
-      il = l - 2;
-      for (i = 1; i < l; i++) {
-        interpolators.push(interpolate2(start[i - 1], start[i]));
-      }
-      l--;
-      func = function func2(p2) {
-        p2 *= l;
-        var i2 = Math.min(il, ~~p2);
-        return interpolators[i2](p2 - i2);
-      };
-      progress = end;
-    } else if (!mutate) {
-      start = _merge(_isArray(start) ? [] : {}, start);
-    }
-    if (!interpolators) {
-      for (p in end) {
-        _addPropTween.call(master, start, p, "get", end[p]);
-      }
-      func = function func2(p2) {
-        return _renderPropTweens(p2, master) || (isString ? start.p : start);
-      };
-    }
-  }
-  return _conditionalReturn(progress, func);
-};
-var _getLabelInDirection = function _getLabelInDirection2(timeline2, fromTime, backward) {
-  var labels = timeline2.labels, min = _bigNum, p, distance, label;
-  for (p in labels) {
-    distance = labels[p] - fromTime;
-    if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {
-      label = p;
-      min = distance;
-    }
-  }
-  return label;
-};
-var _callback = function _callback2(animation, type, executeLazyFirst) {
-  var v = animation.vars, callback = v[type], prevContext = _context, context3 = animation._ctx, params, scope, result;
-  if (!callback) {
-    return;
-  }
-  params = v[type + "Params"];
-  scope = v.callbackScope || animation;
-  executeLazyFirst && _lazyTweens.length && _lazyRender();
-  context3 && (_context = context3);
-  result = params ? callback.apply(scope, params) : callback.call(scope);
-  _context = prevContext;
-  return result;
-};
-var _interrupt = function _interrupt2(animation) {
-  _removeFromParent(animation);
-  animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);
-  animation.progress() < 1 && _callback(animation, "onInterrupt");
-  return animation;
-};
-var _quickTween;
-var _registerPluginQueue = [];
-var _createPlugin = function _createPlugin2(config3) {
-  if (!_windowExists()) {
-    _registerPluginQueue.push(config3);
-    return;
-  }
-  config3 = !config3.name && config3["default"] || config3;
-  var name = config3.name, isFunc = _isFunction(config3), Plugin = name && !isFunc && config3.init ? function() {
-    this._props = [];
-  } : config3, instanceDefaults = {
-    init: _emptyFunc,
-    render: _renderPropTweens,
-    add: _addPropTween,
-    kill: _killPropTweensOf,
-    modifier: _addPluginModifier,
-    rawVars: 0
-  }, statics = {
-    targetTest: 0,
-    get: 0,
-    getSetter: _getSetter,
-    aliases: {},
-    register: 0
-  };
-  _wake();
-  if (config3 !== Plugin) {
-    if (_plugins[name]) {
-      return;
-    }
-    _setDefaults(Plugin, _setDefaults(_copyExcluding(config3, instanceDefaults), statics));
-    _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config3, statics)));
-    _plugins[Plugin.prop = name] = Plugin;
-    if (config3.targetTest) {
-      _harnessPlugins.push(Plugin);
-      _reservedProps[name] = 1;
-    }
-    name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin";
-  }
-  _addGlobal(name, Plugin);
-  config3.register && config3.register(gsap, Plugin, PropTween);
-};
-var _255 = 255;
-var _colorLookup = {
-  aqua: [0, _255, _255],
-  lime: [0, _255, 0],
-  silver: [192, 192, 192],
-  black: [0, 0, 0],
-  maroon: [128, 0, 0],
-  teal: [0, 128, 128],
-  blue: [0, 0, _255],
-  navy: [0, 0, 128],
-  white: [_255, _255, _255],
-  olive: [128, 128, 0],
-  yellow: [_255, _255, 0],
-  orange: [_255, 165, 0],
-  gray: [128, 128, 128],
-  purple: [128, 0, 128],
-  green: [0, 128, 0],
-  red: [_255, 0, 0],
-  pink: [_255, 192, 203],
-  cyan: [0, _255, _255],
-  transparent: [_255, _255, _255, 0]
-};
-var _hue = function _hue2(h, m1, m2) {
-  h += h < 0 ? 1 : h > 1 ? -1 : 0;
-  return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < 0.5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + 0.5 | 0;
-};
-var splitColor = function splitColor2(v, toHSL, forceAlpha) {
-  var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0, r, g, b, h, s, l, max, min, d, wasHSL;
-  if (!a) {
-    if (v.substr(-1) === ",") {
-      v = v.substr(0, v.length - 1);
-    }
-    if (_colorLookup[v]) {
-      a = _colorLookup[v];
-    } else if (v.charAt(0) === "#") {
-      if (v.length < 6) {
-        r = v.charAt(1);
-        g = v.charAt(2);
-        b = v.charAt(3);
-        v = "#" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : "");
-      }
-      if (v.length === 9) {
-        a = parseInt(v.substr(1, 6), 16);
-        return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];
-      }
-      v = parseInt(v.substr(1), 16);
-      a = [v >> 16, v >> 8 & _255, v & _255];
-    } else if (v.substr(0, 3) === "hsl") {
-      a = wasHSL = v.match(_strictNumExp);
-      if (!toHSL) {
-        h = +a[0] % 360 / 360;
-        s = +a[1] / 100;
-        l = +a[2] / 100;
-        g = l <= 0.5 ? l * (s + 1) : l + s - l * s;
-        r = l * 2 - g;
-        a.length > 3 && (a[3] *= 1);
-        a[0] = _hue(h + 1 / 3, r, g);
-        a[1] = _hue(h, r, g);
-        a[2] = _hue(h - 1 / 3, r, g);
-      } else if (~v.indexOf("=")) {
-        a = v.match(_numExp);
-        forceAlpha && a.length < 4 && (a[3] = 1);
-        return a;
-      }
-    } else {
-      a = v.match(_strictNumExp) || _colorLookup.transparent;
-    }
-    a = a.map(Number);
-  }
-  if (toHSL && !wasHSL) {
-    r = a[0] / _255;
-    g = a[1] / _255;
-    b = a[2] / _255;
-    max = Math.max(r, g, b);
-    min = Math.min(r, g, b);
-    l = (max + min) / 2;
-    if (max === min) {
-      h = s = 0;
-    } else {
-      d = max - min;
-      s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
-      h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;
-      h *= 60;
-    }
-    a[0] = ~~(h + 0.5);
-    a[1] = ~~(s * 100 + 0.5);
-    a[2] = ~~(l * 100 + 0.5);
-  }
-  forceAlpha && a.length < 4 && (a[3] = 1);
-  return a;
-};
-var _colorOrderData = function _colorOrderData2(v) {
-  var values = [], c = [], i = -1;
-  v.split(_colorExp).forEach(function(v2) {
-    var a = v2.match(_numWithUnitExp) || [];
-    values.push.apply(values, a);
-    c.push(i += a.length + 1);
-  });
-  values.c = c;
-  return values;
-};
-var _formatColors = function _formatColors2(s, toHSL, orderMatchData) {
-  var result = "", colors = (s + result).match(_colorExp), type = toHSL ? "hsla(" : "rgba(", i = 0, c, shell, d, l;
-  if (!colors) {
-    return s;
-  }
-  colors = colors.map(function(color) {
-    return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")";
-  });
-  if (orderMatchData) {
-    d = _colorOrderData(s);
-    c = orderMatchData.c;
-    if (c.join(result) !== d.c.join(result)) {
-      shell = s.replace(_colorExp, "1").split(_numWithUnitExp);
-      l = shell.length - 1;
-      for (; i < l; i++) {
-        result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + "0,0,0,0)" : (d.length ? d : colors.length ? colors : orderMatchData).shift());
-      }
-    }
-  }
-  if (!shell) {
-    shell = s.split(_colorExp);
-    l = shell.length - 1;
-    for (; i < l; i++) {
-      result += shell[i] + colors[i];
-    }
-  }
-  return result + shell[l];
-};
-var _colorExp = function() {
-  var s = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b", p;
-  for (p in _colorLookup) {
-    s += "|" + p + "\\b";
-  }
-  return new RegExp(s + ")", "gi");
-}();
-var _hslExp = /hsl[a]?\(/;
-var _colorStringFilter = function _colorStringFilter2(a) {
-  var combined = a.join(" "), toHSL;
-  _colorExp.lastIndex = 0;
-  if (_colorExp.test(combined)) {
-    toHSL = _hslExp.test(combined);
-    a[1] = _formatColors(a[1], toHSL);
-    a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1]));
-    return true;
-  }
-};
-var _tickerActive;
-var _ticker = function() {
-  var _getTime = Date.now, _lagThreshold = 500, _adjustedLag = 33, _startTime = _getTime(), _lastUpdate = _startTime, _gap = 1e3 / 240, _nextTime = _gap, _listeners2 = [], _id, _req, _raf, _self, _delta, _i, _tick = function _tick2(v) {
-    var elapsed = _getTime() - _lastUpdate, manual = v === true, overlap, dispatch, time, frame;
-    elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag);
-    _lastUpdate += elapsed;
-    time = _lastUpdate - _startTime;
-    overlap = time - _nextTime;
-    if (overlap > 0 || manual) {
-      frame = ++_self.frame;
-      _delta = time - _self.time * 1e3;
-      _self.time = time = time / 1e3;
-      _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);
-      dispatch = 1;
-    }
-    manual || (_id = _req(_tick2));
-    if (dispatch) {
-      for (_i = 0; _i < _listeners2.length; _i++) {
-        _listeners2[_i](time, _delta, frame, v);
-      }
-    }
-  };
-  _self = {
-    time: 0,
-    frame: 0,
-    tick: function tick() {
-      _tick(true);
-    },
-    deltaRatio: function deltaRatio(fps) {
-      return _delta / (1e3 / (fps || 60));
-    },
-    wake: function wake() {
-      if (_coreReady) {
-        if (!_coreInitted && _windowExists()) {
-          _win = _coreInitted = window;
-          _doc = _win.document || {};
-          _globals.gsap = gsap;
-          (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);
-          _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});
-          _raf = _win.requestAnimationFrame;
-          _registerPluginQueue.forEach(_createPlugin);
-        }
-        _id && _self.sleep();
-        _req = _raf || function(f) {
-          return setTimeout(f, _nextTime - _self.time * 1e3 + 1 | 0);
-        };
-        _tickerActive = 1;
-        _tick(2);
-      }
-    },
-    sleep: function sleep() {
-      (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id);
-      _tickerActive = 0;
-      _req = _emptyFunc;
-    },
-    lagSmoothing: function lagSmoothing(threshold, adjustedLag) {
-      _lagThreshold = threshold || Infinity;
-      _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);
-    },
-    fps: function fps(_fps) {
-      _gap = 1e3 / (_fps || 240);
-      _nextTime = _self.time * 1e3 + _gap;
-    },
-    add: function add(callback, once, prioritize) {
-      var func = once ? function(t, d, f, v) {
-        callback(t, d, f, v);
-        _self.remove(func);
-      } : callback;
-      _self.remove(callback);
-      _listeners2[prioritize ? "unshift" : "push"](func);
-      _wake();
-      return func;
-    },
-    remove: function remove(callback, i) {
-      ~(i = _listeners2.indexOf(callback)) && _listeners2.splice(i, 1) && _i >= i && _i--;
-    },
-    _listeners: _listeners2
-  };
-  return _self;
-}();
-var _wake = function _wake2() {
-  return !_tickerActive && _ticker.wake();
-};
-var _easeMap = {};
-var _customEaseExp = /^[\d.\-M][\d.\-,\s]/;
-var _quotesExp = /["']/g;
-var _parseObjectInString = function _parseObjectInString2(value) {
-  var obj = {}, split = value.substr(1, value.length - 3).split(":"), key = split[0], i = 1, l = split.length, index, val, parsedVal;
-  for (; i < l; i++) {
-    val = split[i];
-    index = i !== l - 1 ? val.lastIndexOf(",") : val.length;
-    parsedVal = val.substr(0, index);
-    obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal;
-    key = val.substr(index + 1).trim();
-  }
-  return obj;
-};
-var _valueInParentheses = function _valueInParentheses2(value) {
-  var open = value.indexOf("(") + 1, close = value.indexOf(")"), nested = value.indexOf("(", open);
-  return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close);
-};
-var _configEaseFromString = function _configEaseFromString2(name) {
-  var split = (name + "").split("("), ease = _easeMap[split[0]];
-  return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease;
-};
-var _invertEase = function _invertEase2(ease) {
-  return function(p) {
-    return 1 - ease(1 - p);
-  };
-};
-var _propagateYoyoEase = function _propagateYoyoEase2(timeline2, isYoyo) {
-  var child = timeline2._first, ease;
-  while (child) {
-    if (child instanceof Timeline) {
-      _propagateYoyoEase2(child, isYoyo);
-    } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {
-      if (child.timeline) {
-        _propagateYoyoEase2(child.timeline, isYoyo);
-      } else {
-        ease = child._ease;
-        child._ease = child._yEase;
-        child._yEase = ease;
-        child._yoyo = isYoyo;
-      }
-    }
-    child = child._next;
-  }
-};
-var _parseEase = function _parseEase2(ease, defaultEase) {
-  return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;
-};
-var _insertEase = function _insertEase2(names, easeIn, easeOut, easeInOut) {
-  if (easeOut === void 0) {
-    easeOut = function easeOut2(p) {
-      return 1 - easeIn(1 - p);
-    };
-  }
-  if (easeInOut === void 0) {
-    easeInOut = function easeInOut2(p) {
-      return p < 0.5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;
-    };
-  }
-  var ease = {
-    easeIn,
-    easeOut,
-    easeInOut
-  }, lowercaseName;
-  _forEachName(names, function(name) {
-    _easeMap[name] = _globals[name] = ease;
-    _easeMap[lowercaseName = name.toLowerCase()] = easeOut;
-    for (var p in ease) {
-      _easeMap[lowercaseName + (p === "easeIn" ? ".in" : p === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p] = ease[p];
-    }
-  });
-  return ease;
-};
-var _easeInOutFromOut = function _easeInOutFromOut2(easeOut) {
-  return function(p) {
-    return p < 0.5 ? (1 - easeOut(1 - p * 2)) / 2 : 0.5 + easeOut((p - 0.5) * 2) / 2;
-  };
-};
-var _configElastic = function _configElastic2(type, amplitude, period) {
-  var p1 = amplitude >= 1 ? amplitude : 1, p2 = (period || (type ? 0.3 : 0.45)) / (amplitude < 1 ? amplitude : 1), p3 = p2 / _2PI * (Math.asin(1 / p1) || 0), easeOut = function easeOut2(p) {
-    return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;
-  }, ease = type === "out" ? easeOut : type === "in" ? function(p) {
-    return 1 - easeOut(1 - p);
-  } : _easeInOutFromOut(easeOut);
-  p2 = _2PI / p2;
-  ease.config = function(amplitude2, period2) {
-    return _configElastic2(type, amplitude2, period2);
-  };
-  return ease;
-};
-var _configBack = function _configBack2(type, overshoot) {
-  if (overshoot === void 0) {
-    overshoot = 1.70158;
-  }
-  var easeOut = function easeOut2(p) {
-    return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;
-  }, ease = type === "out" ? easeOut : type === "in" ? function(p) {
-    return 1 - easeOut(1 - p);
-  } : _easeInOutFromOut(easeOut);
-  ease.config = function(overshoot2) {
-    return _configBack2(type, overshoot2);
-  };
-  return ease;
-};
-_forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function(name, i) {
-  var power = i < 5 ? i + 1 : i;
-  _insertEase(name + ",Power" + (power - 1), i ? function(p) {
-    return Math.pow(p, power);
-  } : function(p) {
-    return p;
-  }, function(p) {
-    return 1 - Math.pow(1 - p, power);
-  }, function(p) {
-    return p < 0.5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;
-  });
-});
-_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;
-_insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic());
-(function(n, c) {
-  var n1 = 1 / c, n2 = 2 * n1, n3 = 2.5 * n1, easeOut = function easeOut2(p) {
-    return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + 0.75 : p < n3 ? n * (p -= 2.25 / c) * p + 0.9375 : n * Math.pow(p - 2.625 / c, 2) + 0.984375;
-  };
-  _insertEase("Bounce", function(p) {
-    return 1 - easeOut(1 - p);
-  }, easeOut);
-})(7.5625, 2.75);
-_insertEase("Expo", function(p) {
-  return p ? Math.pow(2, 10 * (p - 1)) : 0;
-});
-_insertEase("Circ", function(p) {
-  return -(_sqrt(1 - p * p) - 1);
-});
-_insertEase("Sine", function(p) {
-  return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;
-});
-_insertEase("Back", _configBack("in"), _configBack("out"), _configBack());
-_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {
-  config: function config(steps, immediateStart) {
-    if (steps === void 0) {
-      steps = 1;
-    }
-    var p1 = 1 / steps, p2 = steps + (immediateStart ? 0 : 1), p3 = immediateStart ? 1 : 0, max = 1 - _tinyNum;
-    return function(p) {
-      return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;
-    };
-  }
-};
-_defaults.ease = _easeMap["quad.out"];
-_forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function(name) {
-  return _callbackNames += name + "," + name + "Params,";
-});
-var GSCache = function GSCache2(target, harness) {
-  this.id = _gsID++;
-  target._gsap = this;
-  this.target = target;
-  this.harness = harness;
-  this.get = harness ? harness.get : _getProperty;
-  this.set = harness ? harness.getSetter : _getSetter;
-};
-var Animation = function() {
-  function Animation2(vars) {
-    this.vars = vars;
-    this._delay = +vars.delay || 0;
-    if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {
-      this._rDelay = vars.repeatDelay || 0;
-      this._yoyo = !!vars.yoyo || !!vars.yoyoEase;
-    }
-    this._ts = 1;
-    _setDuration(this, +vars.duration, 1, 1);
-    this.data = vars.data;
-    if (_context) {
-      this._ctx = _context;
-      _context.data.push(this);
-    }
-    _tickerActive || _ticker.wake();
-  }
-  var _proto = Animation2.prototype;
-  _proto.delay = function delay(value) {
-    if (value || value === 0) {
-      this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);
-      this._delay = value;
-      return this;
-    }
-    return this._delay;
-  };
-  _proto.duration = function duration(value) {
-    return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;
-  };
-  _proto.totalDuration = function totalDuration(value) {
-    if (!arguments.length) {
-      return this._tDur;
-    }
-    this._dirty = 0;
-    return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));
-  };
-  _proto.totalTime = function totalTime(_totalTime, suppressEvents) {
-    _wake();
-    if (!arguments.length) {
-      return this._tTime;
-    }
-    var parent = this._dp;
-    if (parent && parent.smoothChildTiming && this._ts) {
-      _alignPlayhead(this, _totalTime);
-      !parent._dp || parent.parent || _postAddChecks(parent, this);
-      while (parent && parent.parent) {
-        if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {
-          parent.totalTime(parent._tTime, true);
-        }
-        parent = parent.parent;
-      }
-      if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {
-        _addToTimeline(this._dp, this, this._start - this._delay);
-      }
-    }
-    if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {
-      this._ts || (this._pTime = _totalTime);
-      _lazySafeRender(this, _totalTime, suppressEvents);
-    }
-    return this;
-  };
-  _proto.time = function time(value, suppressEvents) {
-    return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time;
-  };
-  _proto.totalProgress = function totalProgress(value, suppressEvents) {
-    return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio;
-  };
-  _proto.progress = function progress(value, suppressEvents) {
-    return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio;
-  };
-  _proto.iteration = function iteration(value, suppressEvents) {
-    var cycleDuration = this.duration() + this._rDelay;
-    return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;
-  };
-  _proto.timeScale = function timeScale(value) {
-    if (!arguments.length) {
-      return this._rts === -_tinyNum ? 0 : this._rts;
-    }
-    if (this._rts === value) {
-      return this;
-    }
-    var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime;
-    this._rts = +value || 0;
-    this._ts = this._ps || value === -_tinyNum ? 0 : this._rts;
-    this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), true);
-    _setEnd(this);
-    return _recacheAncestors(this);
-  };
-  _proto.paused = function paused(value) {
-    if (!arguments.length) {
-      return this._ps;
-    }
-    if (this._ps !== value) {
-      this._ps = value;
-      if (value) {
-        this._pTime = this._tTime || Math.max(-this._delay, this.rawTime());
-        this._ts = this._act = 0;
-      } else {
-        _wake();
-        this._ts = this._rts;
-        this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum));
-      }
-    }
-    return this;
-  };
-  _proto.startTime = function startTime(value) {
-    if (arguments.length) {
-      this._start = value;
-      var parent = this.parent || this._dp;
-      parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);
-      return this;
-    }
-    return this._start;
-  };
-  _proto.endTime = function endTime(includeRepeats) {
-    return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);
-  };
-  _proto.rawTime = function rawTime(wrapRepeats) {
-    var parent = this.parent || this._dp;
-    return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);
-  };
-  _proto.revert = function revert(config3) {
-    if (config3 === void 0) {
-      config3 = _revertConfig;
-    }
-    var prevIsReverting = _reverting;
-    _reverting = config3;
-    if (this._initted || this._startAt) {
-      this.timeline && this.timeline.revert(config3);
-      this.totalTime(-0.01, config3.suppressEvents);
-    }
-    this.data !== "nested" && config3.kill !== false && this.kill();
-    _reverting = prevIsReverting;
-    return this;
-  };
-  _proto.globalTime = function globalTime(rawTime) {
-    var animation = this, time = arguments.length ? rawTime : animation.rawTime();
-    while (animation) {
-      time = animation._start + time / (animation._ts || 1);
-      animation = animation._dp;
-    }
-    return !this.parent && this._sat ? this._sat.vars.immediateRender ? -1 : this._sat.globalTime(rawTime) : time;
-  };
-  _proto.repeat = function repeat(value) {
-    if (arguments.length) {
-      this._repeat = value === Infinity ? -2 : value;
-      return _onUpdateTotalDuration(this);
-    }
-    return this._repeat === -2 ? Infinity : this._repeat;
-  };
-  _proto.repeatDelay = function repeatDelay(value) {
-    if (arguments.length) {
-      var time = this._time;
-      this._rDelay = value;
-      _onUpdateTotalDuration(this);
-      return time ? this.time(time) : this;
-    }
-    return this._rDelay;
-  };
-  _proto.yoyo = function yoyo(value) {
-    if (arguments.length) {
-      this._yoyo = value;
-      return this;
-    }
-    return this._yoyo;
-  };
-  _proto.seek = function seek(position, suppressEvents) {
-    return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));
-  };
-  _proto.restart = function restart(includeDelay, suppressEvents) {
-    return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));
-  };
-  _proto.play = function play(from, suppressEvents) {
-    from != null && this.seek(from, suppressEvents);
-    return this.reversed(false).paused(false);
-  };
-  _proto.reverse = function reverse(from, suppressEvents) {
-    from != null && this.seek(from || this.totalDuration(), suppressEvents);
-    return this.reversed(true).paused(false);
-  };
-  _proto.pause = function pause(atTime, suppressEvents) {
-    atTime != null && this.seek(atTime, suppressEvents);
-    return this.paused(true);
-  };
-  _proto.resume = function resume() {
-    return this.paused(false);
-  };
-  _proto.reversed = function reversed(value) {
-    if (arguments.length) {
-      !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0));
-      return this;
-    }
-    return this._rts < 0;
-  };
-  _proto.invalidate = function invalidate() {
-    this._initted = this._act = 0;
-    this._zTime = -_tinyNum;
-    return this;
-  };
-  _proto.isActive = function isActive() {
-    var parent = this.parent || this._dp, start = this._start, rawTime;
-    return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);
-  };
-  _proto.eventCallback = function eventCallback(type, callback, params) {
-    var vars = this.vars;
-    if (arguments.length > 1) {
-      if (!callback) {
-        delete vars[type];
-      } else {
-        vars[type] = callback;
-        params && (vars[type + "Params"] = params);
-        type === "onUpdate" && (this._onUpdate = callback);
-      }
-      return this;
-    }
-    return vars[type];
-  };
-  _proto.then = function then(onFulfilled) {
-    var self = this;
-    return new Promise(function(resolve) {
-      var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough, _resolve = function _resolve2() {
-        var _then = self.then;
-        self.then = null;
-        _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);
-        resolve(f);
-        self.then = _then;
-      };
-      if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {
-        _resolve();
-      } else {
-        self._prom = _resolve;
-      }
-    });
-  };
-  _proto.kill = function kill() {
-    _interrupt(this);
-  };
-  return Animation2;
-}();
-_setDefaults(Animation.prototype, {
-  _time: 0,
-  _start: 0,
-  _end: 0,
-  _tTime: 0,
-  _tDur: 0,
-  _dirty: 0,
-  _repeat: 0,
-  _yoyo: false,
-  parent: null,
-  _initted: false,
-  _rDelay: 0,
-  _ts: 1,
-  _dp: 0,
-  ratio: 0,
-  _zTime: -_tinyNum,
-  _prom: 0,
-  _ps: false,
-  _rts: 1
-});
-var Timeline = function(_Animation) {
-  _inheritsLoose(Timeline2, _Animation);
-  function Timeline2(vars, position) {
-    var _this;
-    if (vars === void 0) {
-      vars = {};
-    }
-    _this = _Animation.call(this, vars) || this;
-    _this.labels = {};
-    _this.smoothChildTiming = !!vars.smoothChildTiming;
-    _this.autoRemoveChildren = !!vars.autoRemoveChildren;
-    _this._sort = _isNotFalse(vars.sortChildren);
-    _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);
-    vars.reversed && _this.reverse();
-    vars.paused && _this.paused(true);
-    vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);
-    return _this;
-  }
-  var _proto2 = Timeline2.prototype;
-  _proto2.to = function to(targets, vars, position) {
-    _createTweenType(0, arguments, this);
-    return this;
-  };
-  _proto2.from = function from(targets, vars, position) {
-    _createTweenType(1, arguments, this);
-    return this;
-  };
-  _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {
-    _createTweenType(2, arguments, this);
-    return this;
-  };
-  _proto2.set = function set(targets, vars, position) {
-    vars.duration = 0;
-    vars.parent = this;
-    _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);
-    vars.immediateRender = !!vars.immediateRender;
-    new Tween(targets, vars, _parsePosition(this, position), 1);
-    return this;
-  };
-  _proto2.call = function call(callback, params, position) {
-    return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);
-  };
-  _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
-    vars.duration = duration;
-    vars.stagger = vars.stagger || stagger;
-    vars.onComplete = onCompleteAll;
-    vars.onCompleteParams = onCompleteAllParams;
-    vars.parent = this;
-    new Tween(targets, vars, _parsePosition(this, position));
-    return this;
-  };
-  _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
-    vars.runBackwards = 1;
-    _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);
-    return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);
-  };
-  _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {
-    toVars.startAt = fromVars;
-    _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);
-    return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);
-  };
-  _proto2.render = function render3(totalTime, suppressEvents, force) {
-    var prevTime = this._time, tDur = this._dirty ? this.totalDuration() : this._tDur, dur = this._dur, tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime), crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur), time, child, next, iteration, cycleDuration, prevPaused, pauseTween, timeScale, prevStart, prevIteration, yoyo, isYoyo;
-    this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);
-    if (tTime !== this._tTime || force || crossingStart) {
-      if (prevTime !== this._time && dur) {
-        tTime += this._time - prevTime;
-        totalTime += this._time - prevTime;
-      }
-      time = tTime;
-      prevStart = this._start;
-      timeScale = this._ts;
-      prevPaused = !timeScale;
-      if (crossingStart) {
-        dur || (prevTime = this._zTime);
-        (totalTime || !suppressEvents) && (this._zTime = totalTime);
-      }
-      if (this._repeat) {
-        yoyo = this._yoyo;
-        cycleDuration = dur + this._rDelay;
-        if (this._repeat < -1 && totalTime < 0) {
-          return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
-        }
-        time = _roundPrecise(tTime % cycleDuration);
-        if (tTime === tDur) {
-          iteration = this._repeat;
-          time = dur;
-        } else {
-          iteration = ~~(tTime / cycleDuration);
-          if (iteration && iteration === tTime / cycleDuration) {
-            time = dur;
-            iteration--;
-          }
-          time > dur && (time = dur);
-        }
-        prevIteration = _animationCycle(this._tTime, cycleDuration);
-        !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration);
-        if (yoyo && iteration & 1) {
-          time = dur - time;
-          isYoyo = 1;
-        }
-        if (iteration !== prevIteration && !this._lock) {
-          var rewinding = yoyo && prevIteration & 1, doesWrap = rewinding === (yoyo && iteration & 1);
-          iteration < prevIteration && (rewinding = !rewinding);
-          prevTime = rewinding ? 0 : dur;
-          this._lock = 1;
-          this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;
-          this._tTime = tTime;
-          !suppressEvents && this.parent && _callback(this, "onRepeat");
-          this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);
-          if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {
-            return this;
-          }
-          dur = this._dur;
-          tDur = this._tDur;
-          if (doesWrap) {
-            this._lock = 2;
-            prevTime = rewinding ? dur : -1e-4;
-            this.render(prevTime, true);
-            this.vars.repeatRefresh && !isYoyo && this.invalidate();
-          }
-          this._lock = 0;
-          if (!this._ts && !prevPaused) {
-            return this;
-          }
-          _propagateYoyoEase(this, isYoyo);
-        }
-      }
-      if (this._hasPause && !this._forcing && this._lock < 2) {
-        pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));
-        if (pauseTween) {
-          tTime -= time - (time = pauseTween._start);
-        }
-      }
-      this._tTime = tTime;
-      this._time = time;
-      this._act = !timeScale;
-      if (!this._initted) {
-        this._onUpdate = this.vars.onUpdate;
-        this._initted = 1;
-        this._zTime = totalTime;
-        prevTime = 0;
-      }
-      if (!prevTime && time && !suppressEvents && !iteration) {
-        _callback(this, "onStart");
-        if (this._tTime !== tTime) {
-          return this;
-        }
-      }
-      if (time >= prevTime && totalTime >= 0) {
-        child = this._first;
-        while (child) {
-          next = child._next;
-          if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {
-            if (child.parent !== this) {
-              return this.render(totalTime, suppressEvents, force);
-            }
-            child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);
-            if (time !== this._time || !this._ts && !prevPaused) {
-              pauseTween = 0;
-              next && (tTime += this._zTime = -_tinyNum);
-              break;
-            }
-          }
-          child = next;
-        }
-      } else {
-        child = this._last;
-        var adjustedTime = totalTime < 0 ? totalTime : time;
-        while (child) {
-          next = child._prev;
-          if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {
-            if (child.parent !== this) {
-              return this.render(totalTime, suppressEvents, force);
-            }
-            child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt));
-            if (time !== this._time || !this._ts && !prevPaused) {
-              pauseTween = 0;
-              next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum);
-              break;
-            }
-          }
-          child = next;
-        }
-      }
-      if (pauseTween && !suppressEvents) {
-        this.pause();
-        pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;
-        if (this._ts) {
-          this._start = prevStart;
-          _setEnd(this);
-          return this.render(totalTime, suppressEvents, force);
-        }
-      }
-      this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true);
-      if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) {
-        if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) {
-          if (!this._lock) {
-            (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
-            if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {
-              _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true);
-              this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
-            }
-          }
-        }
-      }
-    }
-    return this;
-  };
-  _proto2.add = function add(child, position) {
-    var _this2 = this;
-    _isNumber(position) || (position = _parsePosition(this, position, child));
-    if (!(child instanceof Animation)) {
-      if (_isArray(child)) {
-        child.forEach(function(obj) {
-          return _this2.add(obj, position);
-        });
-        return this;
-      }
-      if (_isString(child)) {
-        return this.addLabel(child, position);
-      }
-      if (_isFunction(child)) {
-        child = Tween.delayedCall(0, child);
-      } else {
-        return this;
-      }
-    }
-    return this !== child ? _addToTimeline(this, child, position) : this;
-  };
-  _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {
-    if (nested === void 0) {
-      nested = true;
-    }
-    if (tweens === void 0) {
-      tweens = true;
-    }
-    if (timelines === void 0) {
-      timelines = true;
-    }
-    if (ignoreBeforeTime === void 0) {
-      ignoreBeforeTime = -_bigNum;
-    }
-    var a = [], child = this._first;
-    while (child) {
-      if (child._start >= ignoreBeforeTime) {
-        if (child instanceof Tween) {
-          tweens && a.push(child);
-        } else {
-          timelines && a.push(child);
-          nested && a.push.apply(a, child.getChildren(true, tweens, timelines));
-        }
-      }
-      child = child._next;
-    }
-    return a;
-  };
-  _proto2.getById = function getById2(id) {
-    var animations = this.getChildren(1, 1, 1), i = animations.length;
-    while (i--) {
-      if (animations[i].vars.id === id) {
-        return animations[i];
-      }
-    }
-  };
-  _proto2.remove = function remove(child) {
-    if (_isString(child)) {
-      return this.removeLabel(child);
-    }
-    if (_isFunction(child)) {
-      return this.killTweensOf(child);
-    }
-    _removeLinkedListItem(this, child);
-    if (child === this._recent) {
-      this._recent = this._last;
-    }
-    return _uncache(this);
-  };
-  _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {
-    if (!arguments.length) {
-      return this._tTime;
-    }
-    this._forcing = 1;
-    if (!this._dp && this._ts) {
-      this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));
-    }
-    _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);
-    this._forcing = 0;
-    return this;
-  };
-  _proto2.addLabel = function addLabel(label, position) {
-    this.labels[label] = _parsePosition(this, position);
-    return this;
-  };
-  _proto2.removeLabel = function removeLabel(label) {
-    delete this.labels[label];
-    return this;
-  };
-  _proto2.addPause = function addPause(position, callback, params) {
-    var t = Tween.delayedCall(0, callback || _emptyFunc, params);
-    t.data = "isPause";
-    this._hasPause = 1;
-    return _addToTimeline(this, t, _parsePosition(this, position));
-  };
-  _proto2.removePause = function removePause(position) {
-    var child = this._first;
-    position = _parsePosition(this, position);
-    while (child) {
-      if (child._start === position && child.data === "isPause") {
-        _removeFromParent(child);
-      }
-      child = child._next;
-    }
-  };
-  _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {
-    var tweens = this.getTweensOf(targets, onlyActive), i = tweens.length;
-    while (i--) {
-      _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);
-    }
-    return this;
-  };
-  _proto2.getTweensOf = function getTweensOf2(targets, onlyActive) {
-    var a = [], parsedTargets = toArray(targets), child = this._first, isGlobalTime = _isNumber(onlyActive), children;
-    while (child) {
-      if (child instanceof Tween) {
-        if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {
-          a.push(child);
-        }
-      } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {
-        a.push.apply(a, children);
-      }
-      child = child._next;
-    }
-    return a;
-  };
-  _proto2.tweenTo = function tweenTo(position, vars) {
-    vars = vars || {};
-    var tl = this, endTime = _parsePosition(tl, position), _vars = vars, startAt = _vars.startAt, _onStart = _vars.onStart, onStartParams = _vars.onStartParams, immediateRender = _vars.immediateRender, initted, tween = Tween.to(tl, _setDefaults({
-      ease: vars.ease || "none",
-      lazy: false,
-      immediateRender: false,
-      time: endTime,
-      overwrite: "auto",
-      duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,
-      onStart: function onStart() {
-        tl.pause();
-        if (!initted) {
-          var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale());
-          tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);
-          initted = 1;
-        }
-        _onStart && _onStart.apply(tween, onStartParams || []);
-      }
-    }, vars));
-    return immediateRender ? tween.render(0) : tween;
-  };
-  _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {
-    return this.tweenTo(toPosition, _setDefaults({
-      startAt: {
-        time: _parsePosition(this, fromPosition)
-      }
-    }, vars));
-  };
-  _proto2.recent = function recent() {
-    return this._recent;
-  };
-  _proto2.nextLabel = function nextLabel(afterTime) {
-    if (afterTime === void 0) {
-      afterTime = this._time;
-    }
-    return _getLabelInDirection(this, _parsePosition(this, afterTime));
-  };
-  _proto2.previousLabel = function previousLabel(beforeTime) {
-    if (beforeTime === void 0) {
-      beforeTime = this._time;
-    }
-    return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);
-  };
-  _proto2.currentLabel = function currentLabel(value) {
-    return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);
-  };
-  _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {
-    if (ignoreBeforeTime === void 0) {
-      ignoreBeforeTime = 0;
-    }
-    var child = this._first, labels = this.labels, p;
-    while (child) {
-      if (child._start >= ignoreBeforeTime) {
-        child._start += amount;
-        child._end += amount;
-      }
-      child = child._next;
-    }
-    if (adjustLabels) {
-      for (p in labels) {
-        if (labels[p] >= ignoreBeforeTime) {
-          labels[p] += amount;
-        }
-      }
-    }
-    return _uncache(this);
-  };
-  _proto2.invalidate = function invalidate(soft) {
-    var child = this._first;
-    this._lock = 0;
-    while (child) {
-      child.invalidate(soft);
-      child = child._next;
-    }
-    return _Animation.prototype.invalidate.call(this, soft);
-  };
-  _proto2.clear = function clear(includeLabels) {
-    if (includeLabels === void 0) {
-      includeLabels = true;
-    }
-    var child = this._first, next;
-    while (child) {
-      next = child._next;
-      this.remove(child);
-      child = next;
-    }
-    this._dp && (this._time = this._tTime = this._pTime = 0);
-    includeLabels && (this.labels = {});
-    return _uncache(this);
-  };
-  _proto2.totalDuration = function totalDuration(value) {
-    var max = 0, self = this, child = self._last, prevStart = _bigNum, prev, start, parent;
-    if (arguments.length) {
-      return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));
-    }
-    if (self._dirty) {
-      parent = self.parent;
-      while (child) {
-        prev = child._prev;
-        child._dirty && child.totalDuration();
-        start = child._start;
-        if (start > prevStart && self._sort && child._ts && !self._lock) {
-          self._lock = 1;
-          _addToTimeline(self, child, start - child._delay, 1)._lock = 0;
-        } else {
-          prevStart = start;
-        }
-        if (start < 0 && child._ts) {
-          max -= start;
-          if (!parent && !self._dp || parent && parent.smoothChildTiming) {
-            self._start += start / self._ts;
-            self._time -= start;
-            self._tTime -= start;
-          }
-          self.shiftChildren(-start, false, -Infinity);
-          prevStart = 0;
-        }
-        child._end > max && child._ts && (max = child._end);
-        child = prev;
-      }
-      _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);
-      self._dirty = 0;
-    }
-    return self._tDur;
-  };
-  Timeline2.updateRoot = function updateRoot(time) {
-    if (_globalTimeline._ts) {
-      _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));
-      _lastRenderedFrame = _ticker.frame;
-    }
-    if (_ticker.frame >= _nextGCFrame) {
-      _nextGCFrame += _config.autoSleep || 120;
-      var child = _globalTimeline._first;
-      if (!child || !child._ts) {
-        if (_config.autoSleep && _ticker._listeners.length < 2) {
-          while (child && !child._ts) {
-            child = child._next;
-          }
-          child || _ticker.sleep();
-        }
-      }
-    }
-  };
-  return Timeline2;
-}(Animation);
-_setDefaults(Timeline.prototype, {
-  _lock: 0,
-  _hasPause: 0,
-  _forcing: 0
-});
-var _addComplexStringPropTween = function _addComplexStringPropTween2(target, prop, start, end, setter, stringFilter, funcParam) {
-  var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), index = 0, matchIndex = 0, result, startNums, color, endNum, chunk, startNum, hasRandom, a;
-  pt.b = start;
-  pt.e = end;
-  start += "";
-  end += "";
-  if (hasRandom = ~end.indexOf("random(")) {
-    end = _replaceRandom(end);
-  }
-  if (stringFilter) {
-    a = [start, end];
-    stringFilter(a, target, prop);
-    start = a[0];
-    end = a[1];
-  }
-  startNums = start.match(_complexStringNumExp) || [];
-  while (result = _complexStringNumExp.exec(end)) {
-    endNum = result[0];
-    chunk = end.substring(index, result.index);
-    if (color) {
-      color = (color + 1) % 5;
-    } else if (chunk.substr(-5) === "rgba(") {
-      color = 1;
-    }
-    if (endNum !== startNums[matchIndex++]) {
-      startNum = parseFloat(startNums[matchIndex - 1]) || 0;
-      pt._pt = {
-        _next: pt._pt,
-        p: chunk || matchIndex === 1 ? chunk : ",",
-        //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.
-        s: startNum,
-        c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,
-        m: color && color < 4 ? Math.round : 0
-      };
-      index = _complexStringNumExp.lastIndex;
-    }
-  }
-  pt.c = index < end.length ? end.substring(index, end.length) : "";
-  pt.fp = funcParam;
-  if (_relExp.test(end) || hasRandom) {
-    pt.e = 0;
-  }
-  this._pt = pt;
-  return pt;
-};
-var _addPropTween = function _addPropTween2(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {
-  _isFunction(end) && (end = end(index || 0, target, targets));
-  var currentValue = target[prop], parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](), setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc, pt;
-  if (_isString(end)) {
-    if (~end.indexOf("random(")) {
-      end = _replaceRandom(end);
-    }
-    if (end.charAt(1) === "=") {
-      pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);
-      if (pt || pt === 0) {
-        end = pt;
-      }
-    }
-  }
-  if (!optional || parsedStart !== end || _forceAllPropTweens) {
-    if (!isNaN(parsedStart * end) && end !== "") {
-      pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter);
-      funcParam && (pt.fp = funcParam);
-      modifier && pt.modifier(modifier, this, target);
-      return this._pt = pt;
-    }
-    !currentValue && !(prop in target) && _missingPlugin(prop, end);
-    return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);
-  }
-};
-var _processVars = function _processVars2(vars, index, target, targets, tween) {
-  _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));
-  if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {
-    return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;
-  }
-  var copy = {}, p;
-  for (p in vars) {
-    copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);
-  }
-  return copy;
-};
-var _checkPlugin = function _checkPlugin2(property, vars, tween, index, target, targets) {
-  var plugin, pt, ptLookup, i;
-  if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {
-    tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);
-    if (tween !== _quickTween) {
-      ptLookup = tween._ptLookup[tween._targets.indexOf(target)];
-      i = plugin._props.length;
-      while (i--) {
-        ptLookup[plugin._props[i]] = pt;
-      }
-    }
-  }
-  return plugin;
-};
-var _overwritingTween;
-var _forceAllPropTweens;
-var _initTween = function _initTween2(tween, time, tTime) {
-  var vars = tween.vars, ease = vars.ease, startAt = vars.startAt, immediateRender = vars.immediateRender, lazy = vars.lazy, onUpdate = vars.onUpdate, onUpdateParams = vars.onUpdateParams, callbackScope = vars.callbackScope, runBackwards = vars.runBackwards, yoyoEase = vars.yoyoEase, keyframes = vars.keyframes, autoRevert = vars.autoRevert, dur = tween._dur, prevStartAt = tween._startAt, targets = tween._targets, parent = tween.parent, fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets, autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, tl = tween.timeline, cleanVars, i, p, pt, target, hasPriority, gsData, harness, plugin, ptLookup, index, harnessVars, overwritten;
-  tl && (!keyframes || !ease) && (ease = "none");
-  tween._ease = _parseEase(ease, _defaults.ease);
-  tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;
-  if (yoyoEase && tween._yoyo && !tween._repeat) {
-    yoyoEase = tween._yEase;
-    tween._yEase = tween._ease;
-    tween._ease = yoyoEase;
-  }
-  tween._from = !tl && !!vars.runBackwards;
-  if (!tl || keyframes && !vars.stagger) {
-    harness = targets[0] ? _getCache(targets[0]).harness : 0;
-    harnessVars = harness && vars[harness.prop];
-    cleanVars = _copyExcluding(vars, _reservedProps);
-    if (prevStartAt) {
-      prevStartAt._zTime < 0 && prevStartAt.progress(1);
-      time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig);
-      prevStartAt._lazy = 0;
-    }
-    if (startAt) {
-      _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({
-        data: "isStart",
-        overwrite: false,
-        parent,
-        immediateRender: true,
-        lazy: !prevStartAt && _isNotFalse(lazy),
-        startAt: null,
-        delay: 0,
-        onUpdate,
-        onUpdateParams,
-        callbackScope,
-        stagger: 0
-      }, startAt)));
-      tween._startAt._dp = 0;
-      tween._startAt._sat = tween;
-      time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill);
-      if (immediateRender) {
-        if (dur && time <= 0 && tTime <= 0) {
-          time && (tween._zTime = time);
-          return;
-        }
-      }
-    } else if (runBackwards && dur) {
-      if (!prevStartAt) {
-        time && (immediateRender = false);
-        p = _setDefaults({
-          overwrite: false,
-          data: "isFromStart",
-          //we tag the tween with as "isFromStart" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a "from()" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:"height", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.
-          lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),
-          immediateRender,
-          //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)
-          stagger: 0,
-          parent
-          //ensures that nested tweens that had a stagger are handled properly, like gsap.from(".class", {y:gsap.utils.wrap([-100,100])})
-        }, cleanVars);
-        harnessVars && (p[harness.prop] = harnessVars);
-        _removeFromParent(tween._startAt = Tween.set(targets, p));
-        tween._startAt._dp = 0;
-        tween._startAt._sat = tween;
-        time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));
-        tween._zTime = time;
-        if (!immediateRender) {
-          _initTween2(tween._startAt, _tinyNum, _tinyNum);
-        } else if (!time) {
-          return;
-        }
-      }
-    }
-    tween._pt = tween._ptCache = 0;
-    lazy = dur && _isNotFalse(lazy) || lazy && !dur;
-    for (i = 0; i < targets.length; i++) {
-      target = targets[i];
-      gsData = target._gsap || _harness(targets)[i]._gsap;
-      tween._ptLookup[i] = ptLookup = {};
-      _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender();
-      index = fullTargets === targets ? i : fullTargets.indexOf(target);
-      if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {
-        tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);
-        plugin._props.forEach(function(name) {
-          ptLookup[name] = pt;
-        });
-        plugin.priority && (hasPriority = 1);
-      }
-      if (!harness || harnessVars) {
-        for (p in cleanVars) {
-          if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {
-            plugin.priority && (hasPriority = 1);
-          } else {
-            ptLookup[p] = pt = _addPropTween.call(tween, target, p, "get", cleanVars[p], index, fullTargets, 0, vars.stringFilter);
-          }
-        }
-      }
-      tween._op && tween._op[i] && tween.kill(target, tween._op[i]);
-      if (autoOverwrite && tween._pt) {
-        _overwritingTween = tween;
-        _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time));
-        overwritten = !tween.parent;
-        _overwritingTween = 0;
-      }
-      tween._pt && lazy && (_lazyLookup[gsData.id] = 1);
-    }
-    hasPriority && _sortPropTweensByPriority(tween);
-    tween._onInit && tween._onInit(tween);
-  }
-  tween._onUpdate = onUpdate;
-  tween._initted = (!tween._op || tween._pt) && !overwritten;
-  keyframes && time <= 0 && tl.render(_bigNum, true, true);
-};
-var _updatePropTweens = function _updatePropTweens2(tween, property, value, start, startIsRelative, ratio, time) {
-  var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property], pt, rootPT, lookup, i;
-  if (!ptCache) {
-    ptCache = tween._ptCache[property] = [];
-    lookup = tween._ptLookup;
-    i = tween._targets.length;
-    while (i--) {
-      pt = lookup[i][property];
-      if (pt && pt.d && pt.d._pt) {
-        pt = pt.d._pt;
-        while (pt && pt.p !== property && pt.fp !== property) {
-          pt = pt._next;
-        }
-      }
-      if (!pt) {
-        _forceAllPropTweens = 1;
-        tween.vars[property] = "+=0";
-        _initTween(tween, time);
-        _forceAllPropTweens = 0;
-        return 1;
-      }
-      ptCache.push(pt);
-    }
-  }
-  i = ptCache.length;
-  while (i--) {
-    rootPT = ptCache[i];
-    pt = rootPT._pt || rootPT;
-    pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;
-    pt.c = value - pt.s;
-    rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e));
-    rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b));
-  }
-};
-var _addAliasesToVars = function _addAliasesToVars2(targets, vars) {
-  var harness = targets[0] ? _getCache(targets[0]).harness : 0, propertyAliases = harness && harness.aliases, copy, p, i, aliases;
-  if (!propertyAliases) {
-    return vars;
-  }
-  copy = _merge({}, vars);
-  for (p in propertyAliases) {
-    if (p in copy) {
-      aliases = propertyAliases[p].split(",");
-      i = aliases.length;
-      while (i--) {
-        copy[aliases[i]] = copy[p];
-      }
-    }
-  }
-  return copy;
-};
-var _parseKeyframe = function _parseKeyframe2(prop, obj, allProps, easeEach) {
-  var ease = obj.ease || easeEach || "power1.inOut", p, a;
-  if (_isArray(obj)) {
-    a = allProps[prop] || (allProps[prop] = []);
-    obj.forEach(function(value, i) {
-      return a.push({
-        t: i / (obj.length - 1) * 100,
-        v: value,
-        e: ease
-      });
-    });
-  } else {
-    for (p in obj) {
-      a = allProps[p] || (allProps[p] = []);
-      p === "ease" || a.push({
-        t: parseFloat(prop),
-        v: obj[p],
-        e: ease
-      });
-    }
-  }
-};
-var _parseFuncOrString = function _parseFuncOrString2(value, tween, i, target, targets) {
-  return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value;
-};
-var _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert";
-var _staggerPropsToSkip = {};
-_forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function(name) {
-  return _staggerPropsToSkip[name] = 1;
-});
-var Tween = function(_Animation2) {
-  _inheritsLoose(Tween2, _Animation2);
-  function Tween2(targets, vars, position, skipInherit) {
-    var _this3;
-    if (typeof vars === "number") {
-      position.duration = vars;
-      vars = position;
-      position = null;
-    }
-    _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;
-    var _this3$vars = _this3.vars, duration = _this3$vars.duration, delay = _this3$vars.delay, immediateRender = _this3$vars.immediateRender, stagger = _this3$vars.stagger, overwrite = _this3$vars.overwrite, keyframes = _this3$vars.keyframes, defaults2 = _this3$vars.defaults, scrollTrigger = _this3$vars.scrollTrigger, yoyoEase = _this3$vars.yoyoEase, parent = vars.parent || _globalTimeline, parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets), tl, i, copy, l, p, curTarget, staggerFunc, staggerVarsToMerge;
-    _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://greensock.com", !_config.nullTargetWarn) || [];
-    _this3._ptLookup = [];
-    _this3._overwrite = overwrite;
-    if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
-      vars = _this3.vars;
-      tl = _this3.timeline = new Timeline({
-        data: "nested",
-        defaults: defaults2 || {},
-        targets: parent && parent.data === "nested" ? parent.vars.targets : parsedTargets
-      });
-      tl.kill();
-      tl.parent = tl._dp = _assertThisInitialized(_this3);
-      tl._start = 0;
-      if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
-        l = parsedTargets.length;
-        staggerFunc = stagger && distribute(stagger);
-        if (_isObject(stagger)) {
-          for (p in stagger) {
-            if (~_staggerTweenProps.indexOf(p)) {
-              staggerVarsToMerge || (staggerVarsToMerge = {});
-              staggerVarsToMerge[p] = stagger[p];
-            }
-          }
-        }
-        for (i = 0; i < l; i++) {
-          copy = _copyExcluding(vars, _staggerPropsToSkip);
-          copy.stagger = 0;
-          yoyoEase && (copy.yoyoEase = yoyoEase);
-          staggerVarsToMerge && _merge(copy, staggerVarsToMerge);
-          curTarget = parsedTargets[i];
-          copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);
-          copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;
-          if (!stagger && l === 1 && copy.delay) {
-            _this3._delay = delay = copy.delay;
-            _this3._start += delay;
-            copy.delay = 0;
-          }
-          tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);
-          tl._ease = _easeMap.none;
-        }
-        tl.duration() ? duration = delay = 0 : _this3.timeline = 0;
-      } else if (keyframes) {
-        _inheritDefaults(_setDefaults(tl.vars.defaults, {
-          ease: "none"
-        }));
-        tl._ease = _parseEase(keyframes.ease || vars.ease || "none");
-        var time = 0, a, kf, v;
-        if (_isArray(keyframes)) {
-          keyframes.forEach(function(frame) {
-            return tl.to(parsedTargets, frame, ">");
-          });
-          tl.duration();
-        } else {
-          copy = {};
-          for (p in keyframes) {
-            p === "ease" || p === "easeEach" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);
-          }
-          for (p in copy) {
-            a = copy[p].sort(function(a2, b) {
-              return a2.t - b.t;
-            });
-            time = 0;
-            for (i = 0; i < a.length; i++) {
-              kf = a[i];
-              v = {
-                ease: kf.e,
-                duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration
-              };
-              v[p] = kf.v;
-              tl.to(parsedTargets, v, time);
-              time += v.duration;
-            }
-          }
-          tl.duration() < duration && tl.to({}, {
-            duration: duration - tl.duration()
-          });
-        }
-      }
-      duration || _this3.duration(duration = tl.duration());
-    } else {
-      _this3.timeline = 0;
-    }
-    if (overwrite === true && !_suppressOverwrites) {
-      _overwritingTween = _assertThisInitialized(_this3);
-      _globalTimeline.killTweensOf(parsedTargets);
-      _overwritingTween = 0;
-    }
-    _addToTimeline(parent, _assertThisInitialized(_this3), position);
-    vars.reversed && _this3.reverse();
-    vars.paused && _this3.paused(true);
-    if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") {
-      _this3._tTime = -_tinyNum;
-      _this3.render(Math.max(0, -delay) || 0);
-    }
-    scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);
-    return _this3;
-  }
-  var _proto3 = Tween2.prototype;
-  _proto3.render = function render3(totalTime, suppressEvents, force) {
-    var prevTime = this._time, tDur = this._tDur, dur = this._dur, isNegative = totalTime < 0, tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime, time, pt, iteration, cycleDuration, prevIteration, isYoyo, ratio, timeline2, yoyoEase;
-    if (!dur) {
-      _renderZeroDurationTween(this, totalTime, suppressEvents, force);
-    } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {
-      time = tTime;
-      timeline2 = this.timeline;
-      if (this._repeat) {
-        cycleDuration = dur + this._rDelay;
-        if (this._repeat < -1 && isNegative) {
-          return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
-        }
-        time = _roundPrecise(tTime % cycleDuration);
-        if (tTime === tDur) {
-          iteration = this._repeat;
-          time = dur;
-        } else {
-          iteration = ~~(tTime / cycleDuration);
-          if (iteration && iteration === tTime / cycleDuration) {
-            time = dur;
-            iteration--;
-          }
-          time > dur && (time = dur);
-        }
-        isYoyo = this._yoyo && iteration & 1;
-        if (isYoyo) {
-          yoyoEase = this._yEase;
-          time = dur - time;
-        }
-        prevIteration = _animationCycle(this._tTime, cycleDuration);
-        if (time === prevTime && !force && this._initted) {
-          this._tTime = tTime;
-          return this;
-        }
-        if (iteration !== prevIteration) {
-          timeline2 && this._yEase && _propagateYoyoEase(timeline2, isYoyo);
-          if (this.vars.repeatRefresh && !isYoyo && !this._lock) {
-            this._lock = force = 1;
-            this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;
-          }
-        }
-      }
-      if (!this._initted) {
-        if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {
-          this._tTime = 0;
-          return this;
-        }
-        if (prevTime !== this._time) {
-          return this;
-        }
-        if (dur !== this._dur) {
-          return this.render(totalTime, suppressEvents, force);
-        }
-      }
-      this._tTime = tTime;
-      this._time = time;
-      if (!this._act && this._ts) {
-        this._act = 1;
-        this._lazy = 0;
-      }
-      this.ratio = ratio = (yoyoEase || this._ease)(time / dur);
-      if (this._from) {
-        this.ratio = ratio = 1 - ratio;
-      }
-      if (time && !prevTime && !suppressEvents && !iteration) {
-        _callback(this, "onStart");
-        if (this._tTime !== tTime) {
-          return this;
-        }
-      }
-      pt = this._pt;
-      while (pt) {
-        pt.r(ratio, pt.d);
-        pt = pt._next;
-      }
-      timeline2 && timeline2.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline2._dur * timeline2._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);
-      if (this._onUpdate && !suppressEvents) {
-        isNegative && _rewindStartAt(this, totalTime, suppressEvents, force);
-        _callback(this, "onUpdate");
-      }
-      this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat");
-      if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {
-        isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);
-        (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
-        if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {
-          _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true);
-          this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
-        }
-      }
-    }
-    return this;
-  };
-  _proto3.targets = function targets() {
-    return this._targets;
-  };
-  _proto3.invalidate = function invalidate(soft) {
-    (!soft || !this.vars.runBackwards) && (this._startAt = 0);
-    this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;
-    this._ptLookup = [];
-    this.timeline && this.timeline.invalidate(soft);
-    return _Animation2.prototype.invalidate.call(this, soft);
-  };
-  _proto3.resetTo = function resetTo(property, value, start, startIsRelative) {
-    _tickerActive || _ticker.wake();
-    this._ts || this.play();
-    var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts), ratio;
-    this._initted || _initTween(this, time);
-    ratio = this._ease(time / this._dur);
-    if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time)) {
-      return this.resetTo(property, value, start, startIsRelative);
-    }
-    _alignPlayhead(this, 0);
-    this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0);
-    return this.render(0);
-  };
-  _proto3.kill = function kill(targets, vars) {
-    if (vars === void 0) {
-      vars = "all";
-    }
-    if (!targets && (!vars || vars === "all")) {
-      this._lazy = this._pt = 0;
-      return this.parent ? _interrupt(this) : this;
-    }
-    if (this.timeline) {
-      var tDur = this.timeline.totalDuration();
-      this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this);
-      this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1);
-      return this;
-    }
-    var parsedTargets = this._targets, killingTargets = targets ? toArray(targets) : parsedTargets, propTweenLookup = this._ptLookup, firstPT = this._pt, overwrittenProps, curLookup, curOverwriteProps, props, p, pt, i;
-    if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) {
-      vars === "all" && (this._pt = 0);
-      return _interrupt(this);
-    }
-    overwrittenProps = this._op = this._op || [];
-    if (vars !== "all") {
-      if (_isString(vars)) {
-        p = {};
-        _forEachName(vars, function(name) {
-          return p[name] = 1;
-        });
-        vars = p;
-      }
-      vars = _addAliasesToVars(parsedTargets, vars);
-    }
-    i = parsedTargets.length;
-    while (i--) {
-      if (~killingTargets.indexOf(parsedTargets[i])) {
-        curLookup = propTweenLookup[i];
-        if (vars === "all") {
-          overwrittenProps[i] = vars;
-          props = curLookup;
-          curOverwriteProps = {};
-        } else {
-          curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};
-          props = vars;
-        }
-        for (p in props) {
-          pt = curLookup && curLookup[p];
-          if (pt) {
-            if (!("kill" in pt.d) || pt.d.kill(p) === true) {
-              _removeLinkedListItem(this, pt, "_pt");
-            }
-            delete curLookup[p];
-          }
-          if (curOverwriteProps !== "all") {
-            curOverwriteProps[p] = 1;
-          }
-        }
-      }
-    }
-    this._initted && !this._pt && firstPT && _interrupt(this);
-    return this;
-  };
-  Tween2.to = function to(targets, vars) {
-    return new Tween2(targets, vars, arguments[2]);
-  };
-  Tween2.from = function from(targets, vars) {
-    return _createTweenType(1, arguments);
-  };
-  Tween2.delayedCall = function delayedCall(delay, callback, params, scope) {
-    return new Tween2(callback, 0, {
-      immediateRender: false,
-      lazy: false,
-      overwrite: false,
-      delay,
-      onComplete: callback,
-      onReverseComplete: callback,
-      onCompleteParams: params,
-      onReverseCompleteParams: params,
-      callbackScope: scope
-    });
-  };
-  Tween2.fromTo = function fromTo(targets, fromVars, toVars) {
-    return _createTweenType(2, arguments);
-  };
-  Tween2.set = function set(targets, vars) {
-    vars.duration = 0;
-    vars.repeatDelay || (vars.repeat = 0);
-    return new Tween2(targets, vars);
-  };
-  Tween2.killTweensOf = function killTweensOf(targets, props, onlyActive) {
-    return _globalTimeline.killTweensOf(targets, props, onlyActive);
-  };
-  return Tween2;
-}(Animation);
-_setDefaults(Tween.prototype, {
-  _targets: [],
-  _lazy: 0,
-  _startAt: 0,
-  _op: 0,
-  _onInit: 0
-});
-_forEachName("staggerTo,staggerFrom,staggerFromTo", function(name) {
-  Tween[name] = function() {
-    var tl = new Timeline(), params = _slice.call(arguments, 0);
-    params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0);
-    return tl[name].apply(tl, params);
-  };
-});
-var _setterPlain = function _setterPlain2(target, property, value) {
-  return target[property] = value;
-};
-var _setterFunc = function _setterFunc2(target, property, value) {
-  return target[property](value);
-};
-var _setterFuncWithParam = function _setterFuncWithParam2(target, property, value, data) {
-  return target[property](data.fp, value);
-};
-var _setterAttribute = function _setterAttribute2(target, property, value) {
-  return target.setAttribute(property, value);
-};
-var _getSetter = function _getSetter2(target, property) {
-  return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;
-};
-var _renderPlain = function _renderPlain2(ratio, data) {
-  return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e6) / 1e6, data);
-};
-var _renderBoolean = function _renderBoolean2(ratio, data) {
-  return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);
-};
-var _renderComplexString = function _renderComplexString2(ratio, data) {
-  var pt = data._pt, s = "";
-  if (!ratio && data.b) {
-    s = data.b;
-  } else if (ratio === 1 && data.e) {
-    s = data.e;
-  } else {
-    while (pt) {
-      s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 1e4) / 1e4) + s;
-      pt = pt._next;
-    }
-    s += data.c;
-  }
-  data.set(data.t, data.p, s, data);
-};
-var _renderPropTweens = function _renderPropTweens2(ratio, data) {
-  var pt = data._pt;
-  while (pt) {
-    pt.r(ratio, pt.d);
-    pt = pt._next;
-  }
-};
-var _addPluginModifier = function _addPluginModifier2(modifier, tween, target, property) {
-  var pt = this._pt, next;
-  while (pt) {
-    next = pt._next;
-    pt.p === property && pt.modifier(modifier, tween, target);
-    pt = next;
-  }
-};
-var _killPropTweensOf = function _killPropTweensOf2(property) {
-  var pt = this._pt, hasNonDependentRemaining, next;
-  while (pt) {
-    next = pt._next;
-    if (pt.p === property && !pt.op || pt.op === property) {
-      _removeLinkedListItem(this, pt, "_pt");
-    } else if (!pt.dep) {
-      hasNonDependentRemaining = 1;
-    }
-    pt = next;
-  }
-  return !hasNonDependentRemaining;
-};
-var _setterWithModifier = function _setterWithModifier2(target, property, value, data) {
-  data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);
-};
-var _sortPropTweensByPriority = function _sortPropTweensByPriority2(parent) {
-  var pt = parent._pt, next, pt2, first, last;
-  while (pt) {
-    next = pt._next;
-    pt2 = first;
-    while (pt2 && pt2.pr > pt.pr) {
-      pt2 = pt2._next;
-    }
-    if (pt._prev = pt2 ? pt2._prev : last) {
-      pt._prev._next = pt;
-    } else {
-      first = pt;
-    }
-    if (pt._next = pt2) {
-      pt2._prev = pt;
-    } else {
-      last = pt;
-    }
-    pt = next;
-  }
-  parent._pt = first;
-};
-var PropTween = function() {
-  function PropTween2(next, target, prop, start, change, renderer, data, setter, priority) {
-    this.t = target;
-    this.s = start;
-    this.c = change;
-    this.p = prop;
-    this.r = renderer || _renderPlain;
-    this.d = data || this;
-    this.set = setter || _setterPlain;
-    this.pr = priority || 0;
-    this._next = next;
-    if (next) {
-      next._prev = this;
-    }
-  }
-  var _proto4 = PropTween2.prototype;
-  _proto4.modifier = function modifier(func, tween, target) {
-    this.mSet = this.mSet || this.set;
-    this.set = _setterWithModifier;
-    this.m = func;
-    this.mt = target;
-    this.tween = tween;
-  };
-  return PropTween2;
-}();
-_forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", function(name) {
-  return _reservedProps[name] = 1;
-});
-_globals.TweenMax = _globals.TweenLite = Tween;
-_globals.TimelineLite = _globals.TimelineMax = Timeline;
-_globalTimeline = new Timeline({
-  sortChildren: false,
-  defaults: _defaults,
-  autoRemoveChildren: true,
-  id: "root",
-  smoothChildTiming: true
-});
-_config.stringFilter = _colorStringFilter;
-var _media = [];
-var _listeners = {};
-var _emptyArray = [];
-var _lastMediaTime = 0;
-var _dispatch = function _dispatch2(type) {
-  return (_listeners[type] || _emptyArray).map(function(f) {
-    return f();
-  });
-};
-var _onMediaChange = function _onMediaChange2() {
-  var time = Date.now(), matches = [];
-  if (time - _lastMediaTime > 2) {
-    _dispatch("matchMediaInit");
-    _media.forEach(function(c) {
-      var queries = c.queries, conditions = c.conditions, match, p, anyMatch, toggled;
-      for (p in queries) {
-        match = _win.matchMedia(queries[p]).matches;
-        match && (anyMatch = 1);
-        if (match !== conditions[p]) {
-          conditions[p] = match;
-          toggled = 1;
-        }
-      }
-      if (toggled) {
-        c.revert();
-        anyMatch && matches.push(c);
-      }
-    });
-    _dispatch("matchMediaRevert");
-    matches.forEach(function(c) {
-      return c.onMatch(c);
-    });
-    _lastMediaTime = time;
-    _dispatch("matchMedia");
-  }
-};
-var Context = function() {
-  function Context2(func, scope) {
-    this.selector = scope && selector(scope);
-    this.data = [];
-    this._r = [];
-    this.isReverted = false;
-    func && this.add(func);
-  }
-  var _proto5 = Context2.prototype;
-  _proto5.add = function add(name, func, scope) {
-    if (_isFunction(name)) {
-      scope = func;
-      func = name;
-      name = _isFunction;
-    }
-    var self = this, f = function f2() {
-      var prev = _context, prevSelector = self.selector, result;
-      prev && prev !== self && prev.data.push(self);
-      scope && (self.selector = selector(scope));
-      _context = self;
-      result = func.apply(self, arguments);
-      _isFunction(result) && self._r.push(result);
-      _context = prev;
-      self.selector = prevSelector;
-      self.isReverted = false;
-      return result;
-    };
-    self.last = f;
-    return name === _isFunction ? f(self) : name ? self[name] = f : f;
-  };
-  _proto5.ignore = function ignore(func) {
-    var prev = _context;
-    _context = null;
-    func(this);
-    _context = prev;
-  };
-  _proto5.getTweens = function getTweens() {
-    var a = [];
-    this.data.forEach(function(e) {
-      return e instanceof Context2 ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === "nested") && a.push(e);
-    });
-    return a;
-  };
-  _proto5.clear = function clear() {
-    this._r.length = this.data.length = 0;
-  };
-  _proto5.kill = function kill(revert, matchMedia2) {
-    var _this4 = this;
-    if (revert) {
-      var tweens = this.getTweens();
-      this.data.forEach(function(t) {
-        if (t.data === "isFlip") {
-          t.revert();
-          t.getChildren(true, true, false).forEach(function(tween) {
-            return tweens.splice(tweens.indexOf(tween), 1);
-          });
-        }
-      });
-      tweens.map(function(t) {
-        return {
-          g: t.globalTime(0),
-          t
-        };
-      }).sort(function(a, b) {
-        return b.g - a.g || -1;
-      }).forEach(function(o) {
-        return o.t.revert(revert);
-      });
-      this.data.forEach(function(e) {
-        return !(e instanceof Animation) && e.revert && e.revert(revert);
-      });
-      this._r.forEach(function(f) {
-        return f(revert, _this4);
-      });
-      this.isReverted = true;
-    } else {
-      this.data.forEach(function(e) {
-        return e.kill && e.kill();
-      });
-    }
-    this.clear();
-    if (matchMedia2) {
-      var i = _media.indexOf(this);
-      !!~i && _media.splice(i, 1);
-    }
-  };
-  _proto5.revert = function revert(config3) {
-    this.kill(config3 || {});
-  };
-  return Context2;
-}();
-var MatchMedia = function() {
-  function MatchMedia2(scope) {
-    this.contexts = [];
-    this.scope = scope;
-  }
-  var _proto6 = MatchMedia2.prototype;
-  _proto6.add = function add(conditions, func, scope) {
-    _isObject(conditions) || (conditions = {
-      matches: conditions
-    });
-    var context3 = new Context(0, scope || this.scope), cond = context3.conditions = {}, mq, p, active;
-    this.contexts.push(context3);
-    func = context3.add("onMatch", func);
-    context3.queries = conditions;
-    for (p in conditions) {
-      if (p === "all") {
-        active = 1;
-      } else {
-        mq = _win.matchMedia(conditions[p]);
-        if (mq) {
-          _media.indexOf(context3) < 0 && _media.push(context3);
-          (cond[p] = mq.matches) && (active = 1);
-          mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange);
-        }
-      }
-    }
-    active && func(context3);
-    return this;
-  };
-  _proto6.revert = function revert(config3) {
-    this.kill(config3 || {});
-  };
-  _proto6.kill = function kill(revert) {
-    this.contexts.forEach(function(c) {
-      return c.kill(revert, true);
-    });
-  };
-  return MatchMedia2;
-}();
-var _gsap = {
-  registerPlugin: function registerPlugin() {
-    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-      args[_key2] = arguments[_key2];
-    }
-    args.forEach(function(config3) {
-      return _createPlugin(config3);
-    });
-  },
-  timeline: function timeline(vars) {
-    return new Timeline(vars);
-  },
-  getTweensOf: function getTweensOf(targets, onlyActive) {
-    return _globalTimeline.getTweensOf(targets, onlyActive);
-  },
-  getProperty: function getProperty(target, property, unit, uncache) {
-    _isString(target) && (target = toArray(target)[0]);
-    var getter = _getCache(target || {}).get, format = unit ? _passThrough : _numericIfPossible;
-    unit === "native" && (unit = "");
-    return !target ? target : !property ? function(property2, unit2, uncache2) {
-      return format((_plugins[property2] && _plugins[property2].get || getter)(target, property2, unit2, uncache2));
-    } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));
-  },
-  quickSetter: function quickSetter(target, property, unit) {
-    target = toArray(target);
-    if (target.length > 1) {
-      var setters = target.map(function(t) {
-        return gsap.quickSetter(t, property, unit);
-      }), l = setters.length;
-      return function(value) {
-        var i = l;
-        while (i--) {
-          setters[i](value);
-        }
-      };
-    }
-    target = target[0] || {};
-    var Plugin = _plugins[property], cache = _getCache(target), p = cache.harness && (cache.harness.aliases || {})[property] || property, setter = Plugin ? function(value) {
-      var p2 = new Plugin();
-      _quickTween._pt = 0;
-      p2.init(target, unit ? value + unit : value, _quickTween, 0, [target]);
-      p2.render(1, p2);
-      _quickTween._pt && _renderPropTweens(1, _quickTween);
-    } : cache.set(target, p);
-    return Plugin ? setter : function(value) {
-      return setter(target, p, unit ? value + unit : value, cache, 1);
-    };
-  },
-  quickTo: function quickTo(target, property, vars) {
-    var _merge22;
-    var tween = gsap.to(target, _merge((_merge22 = {}, _merge22[property] = "+=0.1", _merge22.paused = true, _merge22), vars || {})), func = function func2(value, start, startIsRelative) {
-      return tween.resetTo(property, value, start, startIsRelative);
-    };
-    func.tween = tween;
-    return func;
-  },
-  isTweening: function isTweening(targets) {
-    return _globalTimeline.getTweensOf(targets, true).length > 0;
-  },
-  defaults: function defaults(value) {
-    value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));
-    return _mergeDeep(_defaults, value || {});
-  },
-  config: function config2(value) {
-    return _mergeDeep(_config, value || {});
-  },
-  registerEffect: function registerEffect(_ref3) {
-    var name = _ref3.name, effect = _ref3.effect, plugins = _ref3.plugins, defaults2 = _ref3.defaults, extendTimeline = _ref3.extendTimeline;
-    (plugins || "").split(",").forEach(function(pluginName) {
-      return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin.");
-    });
-    _effects[name] = function(targets, vars, tl) {
-      return effect(toArray(targets), _setDefaults(vars || {}, defaults2), tl);
-    };
-    if (extendTimeline) {
-      Timeline.prototype[name] = function(targets, vars, position) {
-        return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);
-      };
-    }
-  },
-  registerEase: function registerEase(name, ease) {
-    _easeMap[name] = _parseEase(ease);
-  },
-  parseEase: function parseEase(ease, defaultEase) {
-    return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;
-  },
-  getById: function getById(id) {
-    return _globalTimeline.getById(id);
-  },
-  exportRoot: function exportRoot(vars, includeDelayedCalls) {
-    if (vars === void 0) {
-      vars = {};
-    }
-    var tl = new Timeline(vars), child, next;
-    tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);
-    _globalTimeline.remove(tl);
-    tl._dp = 0;
-    tl._time = tl._tTime = _globalTimeline._time;
-    child = _globalTimeline._first;
-    while (child) {
-      next = child._next;
-      if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {
-        _addToTimeline(tl, child, child._start - child._delay);
-      }
-      child = next;
-    }
-    _addToTimeline(_globalTimeline, tl, 0);
-    return tl;
-  },
-  context: function context(func, scope) {
-    return func ? new Context(func, scope) : _context;
-  },
-  matchMedia: function matchMedia(scope) {
-    return new MatchMedia(scope);
-  },
-  matchMediaRefresh: function matchMediaRefresh() {
-    return _media.forEach(function(c) {
-      var cond = c.conditions, found, p;
-      for (p in cond) {
-        if (cond[p]) {
-          cond[p] = false;
-          found = 1;
-        }
-      }
-      found && c.revert();
-    }) || _onMediaChange();
-  },
-  addEventListener: function addEventListener(type, callback) {
-    var a = _listeners[type] || (_listeners[type] = []);
-    ~a.indexOf(callback) || a.push(callback);
-  },
-  removeEventListener: function removeEventListener(type, callback) {
-    var a = _listeners[type], i = a && a.indexOf(callback);
-    i >= 0 && a.splice(i, 1);
-  },
-  utils: {
-    wrap,
-    wrapYoyo,
-    distribute,
-    random,
-    snap,
-    normalize,
-    getUnit,
-    clamp,
-    splitColor,
-    toArray,
-    selector,
-    mapRange,
-    pipe,
-    unitize,
-    interpolate,
-    shuffle
-  },
-  install: _install,
-  effects: _effects,
-  ticker: _ticker,
-  updateRoot: Timeline.updateRoot,
-  plugins: _plugins,
-  globalTimeline: _globalTimeline,
-  core: {
-    PropTween,
-    globals: _addGlobal,
-    Tween,
-    Timeline,
-    Animation,
-    getCache: _getCache,
-    _removeLinkedListItem,
-    reverting: function reverting() {
-      return _reverting;
-    },
-    context: function context2(toAdd) {
-      if (toAdd && _context) {
-        _context.data.push(toAdd);
-        toAdd._ctx = _context;
-      }
-      return _context;
-    },
-    suppressOverwrites: function suppressOverwrites(value) {
-      return _suppressOverwrites = value;
-    }
-  }
-};
-_forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function(name) {
-  return _gsap[name] = Tween[name];
-});
-_ticker.add(Timeline.updateRoot);
-_quickTween = _gsap.to({}, {
-  duration: 0
-});
-var _getPluginPropTween = function _getPluginPropTween2(plugin, prop) {
-  var pt = plugin._pt;
-  while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {
-    pt = pt._next;
-  }
-  return pt;
-};
-var _addModifiers = function _addModifiers2(tween, modifiers) {
-  var targets = tween._targets, p, i, pt;
-  for (p in modifiers) {
-    i = targets.length;
-    while (i--) {
-      pt = tween._ptLookup[i][p];
-      if (pt && (pt = pt.d)) {
-        if (pt._pt) {
-          pt = _getPluginPropTween(pt, p);
-        }
-        pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);
-      }
-    }
-  }
-};
-var _buildModifierPlugin = function _buildModifierPlugin2(name, modifier) {
-  return {
-    name,
-    rawVars: 1,
-    //don't pre-process function-based values or "random()" strings.
-    init: function init4(target, vars, tween) {
-      tween._onInit = function(tween2) {
-        var temp, p;
-        if (_isString(vars)) {
-          temp = {};
-          _forEachName(vars, function(name2) {
-            return temp[name2] = 1;
-          });
-          vars = temp;
-        }
-        if (modifier) {
-          temp = {};
-          for (p in vars) {
-            temp[p] = modifier(vars[p]);
-          }
-          vars = temp;
-        }
-        _addModifiers(tween2, vars);
-      };
-    }
-  };
-};
-var gsap = _gsap.registerPlugin({
-  name: "attr",
-  init: function init(target, vars, tween, index, targets) {
-    var p, pt, v;
-    this.tween = tween;
-    for (p in vars) {
-      v = target.getAttribute(p) || "";
-      pt = this.add(target, "setAttribute", (v || 0) + "", vars[p], index, targets, 0, 0, p);
-      pt.op = p;
-      pt.b = v;
-      this._props.push(p);
-    }
-  },
-  render: function render(ratio, data) {
-    var pt = data._pt;
-    while (pt) {
-      _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d);
-      pt = pt._next;
-    }
-  }
-}, {
-  name: "endArray",
-  init: function init2(target, value) {
-    var i = value.length;
-    while (i--) {
-      this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);
-    }
-  }
-}, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap;
-Tween.version = Timeline.version = gsap.version = "3.11.5";
-_coreReady = 1;
-_windowExists() && _wake();
-var Power0 = _easeMap.Power0;
-var Power1 = _easeMap.Power1;
-var Power2 = _easeMap.Power2;
-var Power3 = _easeMap.Power3;
-var Power4 = _easeMap.Power4;
-var Linear = _easeMap.Linear;
-var Quad = _easeMap.Quad;
-var Cubic = _easeMap.Cubic;
-var Quart = _easeMap.Quart;
-var Quint = _easeMap.Quint;
-var Strong = _easeMap.Strong;
-var Elastic = _easeMap.Elastic;
-var Back = _easeMap.Back;
-var SteppedEase = _easeMap.SteppedEase;
-var Bounce = _easeMap.Bounce;
-var Sine = _easeMap.Sine;
-var Expo = _easeMap.Expo;
-var Circ = _easeMap.Circ;
-
-// node_modules/.pnpm/gsap@3.11.5/node_modules/gsap/CSSPlugin.js
-var _win2;
-var _doc2;
-var _docElement;
-var _pluginInitted;
-var _tempDiv;
-var _tempDivStyler;
-var _recentSetterPlugin;
-var _reverting2;
-var _windowExists3 = function _windowExists4() {
-  return typeof window !== "undefined";
-};
-var _transformProps = {};
-var _RAD2DEG = 180 / Math.PI;
-var _DEG2RAD = Math.PI / 180;
-var _atan2 = Math.atan2;
-var _bigNum2 = 1e8;
-var _capsExp = /([A-Z])/g;
-var _horizontalExp = /(left|right|width|margin|padding|x)/i;
-var _complexExp = /[\s,\(]\S/;
-var _propertyAliases = {
-  autoAlpha: "opacity,visibility",
-  scale: "scaleX,scaleY",
-  alpha: "opacity"
-};
-var _renderCSSProp = function _renderCSSProp2(ratio, data) {
-  return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data);
-};
-var _renderPropWithEnd = function _renderPropWithEnd2(ratio, data) {
-  return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data);
-};
-var _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning2(ratio, data) {
-  return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data);
-};
-var _renderRoundedCSSProp = function _renderRoundedCSSProp2(ratio, data) {
-  var value = data.s + data.c * ratio;
-  data.set(data.t, data.p, ~~(value + (value < 0 ? -0.5 : 0.5)) + data.u, data);
-};
-var _renderNonTweeningValue = function _renderNonTweeningValue2(ratio, data) {
-  return data.set(data.t, data.p, ratio ? data.e : data.b, data);
-};
-var _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd2(ratio, data) {
-  return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);
-};
-var _setterCSSStyle = function _setterCSSStyle2(target, property, value) {
-  return target.style[property] = value;
-};
-var _setterCSSProp = function _setterCSSProp2(target, property, value) {
-  return target.style.setProperty(property, value);
-};
-var _setterTransform = function _setterTransform2(target, property, value) {
-  return target._gsap[property] = value;
-};
-var _setterScale = function _setterScale2(target, property, value) {
-  return target._gsap.scaleX = target._gsap.scaleY = value;
-};
-var _setterScaleWithRender = function _setterScaleWithRender2(target, property, value, data, ratio) {
-  var cache = target._gsap;
-  cache.scaleX = cache.scaleY = value;
-  cache.renderTransform(ratio, cache);
-};
-var _setterTransformWithRender = function _setterTransformWithRender2(target, property, value, data, ratio) {
-  var cache = target._gsap;
-  cache[property] = value;
-  cache.renderTransform(ratio, cache);
-};
-var _transformProp = "transform";
-var _transformOriginProp = _transformProp + "Origin";
-var _saveStyle = function _saveStyle2(property, isNotCSS) {
-  var _this = this;
-  var target = this.target, style = target.style;
-  if (property in _transformProps) {
-    this.tfm = this.tfm || {};
-    if (property !== "transform") {
-      property = _propertyAliases[property] || property;
-      ~property.indexOf(",") ? property.split(",").forEach(function(a) {
-        return _this.tfm[a] = _get(target, a);
-      }) : this.tfm[property] = target._gsap.x ? target._gsap[property] : _get(target, property);
-    } else {
-      return _propertyAliases.transform.split(",").forEach(function(p) {
-        return _saveStyle2.call(_this, p, isNotCSS);
-      });
-    }
-    if (this.props.indexOf(_transformProp) >= 0) {
-      return;
-    }
-    if (target._gsap.svg) {
-      this.svgo = target.getAttribute("data-svg-origin");
-      this.props.push(_transformOriginProp, isNotCSS, "");
-    }
-    property = _transformProp;
-  }
-  (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);
-};
-var _removeIndependentTransforms = function _removeIndependentTransforms2(style) {
-  if (style.translate) {
-    style.removeProperty("translate");
-    style.removeProperty("scale");
-    style.removeProperty("rotate");
-  }
-};
-var _revertStyle = function _revertStyle2() {
-  var props = this.props, target = this.target, style = target.style, cache = target._gsap, i, p;
-  for (i = 0; i < props.length; i += 3) {
-    props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === "--" ? props[i] : props[i].replace(_capsExp, "-$1").toLowerCase());
-  }
-  if (this.tfm) {
-    for (p in this.tfm) {
-      cache[p] = this.tfm[p];
-    }
-    if (cache.svg) {
-      cache.renderTransform();
-      target.setAttribute("data-svg-origin", this.svgo || "");
-    }
-    i = _reverting2();
-    if ((!i || !i.isStart) && !style[_transformProp]) {
-      _removeIndependentTransforms(style);
-      cache.uncache = 1;
-    }
-  }
-};
-var _getStyleSaver = function _getStyleSaver2(target, properties) {
-  var saver = {
-    target,
-    props: [],
-    revert: _revertStyle,
-    save: _saveStyle
-  };
-  target._gsap || gsap.core.getCache(target);
-  properties && properties.split(",").forEach(function(p) {
-    return saver.save(p);
-  });
-  return saver;
-};
-var _supports3D;
-var _createElement = function _createElement2(type, ns) {
-  var e = _doc2.createElementNS ? _doc2.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc2.createElement(type);
-  return e.style ? e : _doc2.createElement(type);
-};
-var _getComputedProperty = function _getComputedProperty2(target, property, skipPrefixFallback) {
-  var cs = getComputedStyle(target);
-  return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty2(target, _checkPropPrefix(property) || property, 1) || "";
-};
-var _prefixes = "O,Moz,ms,Ms,Webkit".split(",");
-var _checkPropPrefix = function _checkPropPrefix2(property, element, preferPrefix) {
-  var e = element || _tempDiv, s = e.style, i = 5;
-  if (property in s && !preferPrefix) {
-    return property;
-  }
-  property = property.charAt(0).toUpperCase() + property.substr(1);
-  while (i-- && !(_prefixes[i] + property in s)) {
-  }
-  return i < 0 ? null : (i === 3 ? "ms" : i >= 0 ? _prefixes[i] : "") + property;
-};
-var _initCore = function _initCore2() {
-  if (_windowExists3() && window.document) {
-    _win2 = window;
-    _doc2 = _win2.document;
-    _docElement = _doc2.documentElement;
-    _tempDiv = _createElement("div") || {
-      style: {}
-    };
-    _tempDivStyler = _createElement("div");
-    _transformProp = _checkPropPrefix(_transformProp);
-    _transformOriginProp = _transformProp + "Origin";
-    _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0";
-    _supports3D = !!_checkPropPrefix("perspective");
-    _reverting2 = gsap.core.reverting;
-    _pluginInitted = 1;
-  }
-};
-var _getBBoxHack = function _getBBoxHack2(swapIfPossible) {
-  var svg = _createElement("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), oldParent = this.parentNode, oldSibling = this.nextSibling, oldCSS = this.style.cssText, bbox;
-  _docElement.appendChild(svg);
-  svg.appendChild(this);
-  this.style.display = "block";
-  if (swapIfPossible) {
-    try {
-      bbox = this.getBBox();
-      this._gsapBBox = this.getBBox;
-      this.getBBox = _getBBoxHack2;
-    } catch (e) {
-    }
-  } else if (this._gsapBBox) {
-    bbox = this._gsapBBox();
-  }
-  if (oldParent) {
-    if (oldSibling) {
-      oldParent.insertBefore(this, oldSibling);
-    } else {
-      oldParent.appendChild(this);
-    }
-  }
-  _docElement.removeChild(svg);
-  this.style.cssText = oldCSS;
-  return bbox;
-};
-var _getAttributeFallbacks = function _getAttributeFallbacks2(target, attributesArray) {
-  var i = attributesArray.length;
-  while (i--) {
-    if (target.hasAttribute(attributesArray[i])) {
-      return target.getAttribute(attributesArray[i]);
-    }
-  }
-};
-var _getBBox = function _getBBox2(target) {
-  var bounds;
-  try {
-    bounds = target.getBBox();
-  } catch (error) {
-    bounds = _getBBoxHack.call(target, true);
-  }
-  bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true));
-  return bounds && !bounds.width && !bounds.x && !bounds.y ? {
-    x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0,
-    y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0,
-    width: 0,
-    height: 0
-  } : bounds;
-};
-var _isSVG = function _isSVG2(e) {
-  return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));
-};
-var _removeProperty = function _removeProperty2(target, property) {
-  if (property) {
-    var style = target.style;
-    if (property in _transformProps && property !== _transformOriginProp) {
-      property = _transformProp;
-    }
-    if (style.removeProperty) {
-      if (property.substr(0, 2) === "ms" || property.substr(0, 6) === "webkit") {
-        property = "-" + property;
-      }
-      style.removeProperty(property.replace(_capsExp, "-$1").toLowerCase());
-    } else {
-      style.removeAttribute(property);
-    }
-  }
-};
-var _addNonTweeningPT = function _addNonTweeningPT2(plugin, target, property, beginning, end, onlySetAtEnd) {
-  var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);
-  plugin._pt = pt;
-  pt.b = beginning;
-  pt.e = end;
-  plugin._props.push(property);
-  return pt;
-};
-var _nonConvertibleUnits = {
-  deg: 1,
-  rad: 1,
-  turn: 1
-};
-var _nonStandardLayouts = {
-  grid: 1,
-  flex: 1
-};
-var _convertToUnit = function _convertToUnit2(target, property, value, unit) {
-  var curValue = parseFloat(value) || 0, curUnit = (value + "").trim().substr((curValue + "").length) || "px", style = _tempDiv.style, horizontal = _horizontalExp.test(property), isRootSVG = target.tagName.toLowerCase() === "svg", measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"), amount = 100, toPixels = unit === "px", toPercent = unit === "%", px, parent, cache, isSVG;
-  if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {
-    return curValue;
-  }
-  curUnit !== "px" && !toPixels && (curValue = _convertToUnit2(target, property, value, "px"));
-  isSVG = target.getCTM && _isSVG(target);
-  if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) {
-    px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty];
-    return _round(toPercent ? curValue / px * amount : curValue / 100 * px);
-  }
-  style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit);
-  parent = ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode;
-  if (isSVG) {
-    parent = (target.ownerSVGElement || {}).parentNode;
-  }
-  if (!parent || parent === _doc2 || !parent.appendChild) {
-    parent = _doc2.body;
-  }
-  cache = parent._gsap;
-  if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {
-    return _round(curValue / cache.width * amount);
-  } else {
-    (toPercent || curUnit === "%") && !_nonStandardLayouts[_getComputedProperty(parent, "display")] && (style.position = _getComputedProperty(target, "position"));
-    parent === target && (style.position = "static");
-    parent.appendChild(_tempDiv);
-    px = _tempDiv[measureProperty];
-    parent.removeChild(_tempDiv);
-    style.position = "absolute";
-    if (horizontal && toPercent) {
-      cache = _getCache(parent);
-      cache.time = _ticker.time;
-      cache.width = parent[measureProperty];
-    }
-  }
-  return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);
-};
-var _get = function _get2(target, property, unit, uncache) {
-  var value;
-  _pluginInitted || _initCore();
-  if (property in _propertyAliases && property !== "transform") {
-    property = _propertyAliases[property];
-    if (~property.indexOf(",")) {
-      property = property.split(",")[0];
-    }
-  }
-  if (_transformProps[property] && property !== "transform") {
-    value = _parseTransform(target, uncache);
-    value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px";
-  } else {
-    value = target.style[property];
-    if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) {
-      value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0);
-    }
-  }
-  return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value;
-};
-var _tweenComplexCSSString = function _tweenComplexCSSString2(target, prop, start, end) {
-  if (!start || start === "none") {
-    var p = _checkPropPrefix(prop, target, 1), s = p && _getComputedProperty(target, p, 1);
-    if (s && s !== start) {
-      prop = p;
-      start = s;
-    } else if (prop === "borderColor") {
-      start = _getComputedProperty(target, "borderTopColor");
-    }
-  }
-  var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString), index = 0, matchIndex = 0, a, result, startValues, startNum, color, startValue, endValue, endNum, chunk, endUnit, startUnit, endValues;
-  pt.b = start;
-  pt.e = end;
-  start += "";
-  end += "";
-  if (end === "auto") {
-    target.style[prop] = end;
-    end = _getComputedProperty(target, prop) || end;
-    target.style[prop] = start;
-  }
-  a = [start, end];
-  _colorStringFilter(a);
-  start = a[0];
-  end = a[1];
-  startValues = start.match(_numWithUnitExp) || [];
-  endValues = end.match(_numWithUnitExp) || [];
-  if (endValues.length) {
-    while (result = _numWithUnitExp.exec(end)) {
-      endValue = result[0];
-      chunk = end.substring(index, result.index);
-      if (color) {
-        color = (color + 1) % 5;
-      } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") {
-        color = 1;
-      }
-      if (endValue !== (startValue = startValues[matchIndex++] || "")) {
-        startNum = parseFloat(startValue) || 0;
-        startUnit = startValue.substr((startNum + "").length);
-        endValue.charAt(1) === "=" && (endValue = _parseRelative(startNum, endValue) + startUnit);
-        endNum = parseFloat(endValue);
-        endUnit = endValue.substr((endNum + "").length);
-        index = _numWithUnitExp.lastIndex - endUnit.length;
-        if (!endUnit) {
-          endUnit = endUnit || _config.units[prop] || startUnit;
-          if (index === end.length) {
-            end += endUnit;
-            pt.e += endUnit;
-          }
-        }
-        if (startUnit !== endUnit) {
-          startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;
-        }
-        pt._pt = {
-          _next: pt._pt,
-          p: chunk || matchIndex === 1 ? chunk : ",",
-          //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.
-          s: startNum,
-          c: endNum - startNum,
-          m: color && color < 4 || prop === "zIndex" ? Math.round : 0
-        };
-      }
-    }
-    pt.c = index < end.length ? end.substring(index, end.length) : "";
-  } else {
-    pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;
-  }
-  _relExp.test(end) && (pt.e = 0);
-  this._pt = pt;
-  return pt;
-};
-var _keywordToPercent = {
-  top: "0%",
-  bottom: "100%",
-  left: "0%",
-  right: "100%",
-  center: "50%"
-};
-var _convertKeywordsToPercentages = function _convertKeywordsToPercentages2(value) {
-  var split = value.split(" "), x = split[0], y = split[1] || "50%";
-  if (x === "top" || x === "bottom" || y === "left" || y === "right") {
-    value = x;
-    x = y;
-    y = value;
-  }
-  split[0] = _keywordToPercent[x] || x;
-  split[1] = _keywordToPercent[y] || y;
-  return split.join(" ");
-};
-var _renderClearProps = function _renderClearProps2(ratio, data) {
-  if (data.tween && data.tween._time === data.tween._dur) {
-    var target = data.t, style = target.style, props = data.u, cache = target._gsap, prop, clearTransforms, i;
-    if (props === "all" || props === true) {
-      style.cssText = "";
-      clearTransforms = 1;
-    } else {
-      props = props.split(",");
-      i = props.length;
-      while (--i > -1) {
-        prop = props[i];
-        if (_transformProps[prop]) {
-          clearTransforms = 1;
-          prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp;
-        }
-        _removeProperty(target, prop);
-      }
-    }
-    if (clearTransforms) {
-      _removeProperty(target, _transformProp);
-      if (cache) {
-        cache.svg && target.removeAttribute("transform");
-        _parseTransform(target, 1);
-        cache.uncache = 1;
-        _removeIndependentTransforms(style);
-      }
-    }
-  }
-};
-var _specialProps = {
-  clearProps: function clearProps(plugin, target, property, endValue, tween) {
-    if (tween.data !== "isFromStart") {
-      var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);
-      pt.u = endValue;
-      pt.pr = -10;
-      pt.tween = tween;
-      plugin._props.push(property);
-      return 1;
-    }
-  }
-  /* className feature (about 0.4kb gzipped).
-  , className(plugin, target, property, endValue, tween) {
-  	let _renderClassName = (ratio, data) => {
-  			data.css.render(ratio, data.css);
-  			if (!ratio || ratio === 1) {
-  				let inline = data.rmv,
-  					target = data.t,
-  					p;
-  				target.setAttribute("class", ratio ? data.e : data.b);
-  				for (p in inline) {
-  					_removeProperty(target, p);
-  				}
-  			}
-  		},
-  		_getAllStyles = (target) => {
-  			let styles = {},
-  				computed = getComputedStyle(target),
-  				p;
-  			for (p in computed) {
-  				if (isNaN(p) && p !== "cssText" && p !== "length") {
-  					styles[p] = computed[p];
-  				}
-  			}
-  			_setDefaults(styles, _parseTransform(target, 1));
-  			return styles;
-  		},
-  		startClassList = target.getAttribute("class"),
-  		style = target.style,
-  		cssText = style.cssText,
-  		cache = target._gsap,
-  		classPT = cache.classPT,
-  		inlineToRemoveAtEnd = {},
-  		data = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== "=") ? endValue : startClassList.replace(new RegExp("(?:\\s|^)" + endValue.substr(2) + "(?![\\w-])"), "") + ((endValue.charAt(0) === "+") ? " " + endValue.substr(2) : "")},
-  		changingVars = {},
-  		startVars = _getAllStyles(target),
-  		transformRelated = /(transform|perspective)/i,
-  		endVars, p;
-  	if (classPT) {
-  		classPT.r(1, classPT.d);
-  		_removeLinkedListItem(classPT.d.plugin, classPT, "_pt");
-  	}
-  	target.setAttribute("class", data.e);
-  	endVars = _getAllStyles(target, true);
-  	target.setAttribute("class", startClassList);
-  	for (p in endVars) {
-  		if (endVars[p] !== startVars[p] && !transformRelated.test(p)) {
-  			changingVars[p] = endVars[p];
-  			if (!style[p] && style[p] !== "0") {
-  				inlineToRemoveAtEnd[p] = 1;
-  			}
-  		}
-  	}
-  	cache.classPT = plugin._pt = new PropTween(plugin._pt, target, "className", 0, 0, _renderClassName, data, 0, -11);
-  	if (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://greensock.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.
-  		style.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).
-  	}
-  	_parseTransform(target, true); //to clear the caching of transforms
-  	data.css = new gsap.plugins.css();
-  	data.css.init(target, changingVars, tween);
-  	plugin._props.push(...data.css._props);
-  	return 1;
-  }
-  */
-};
-var _identity2DMatrix = [1, 0, 0, 1, 0, 0];
-var _rotationalProperties = {};
-var _isNullTransform = function _isNullTransform2(value) {
-  return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value;
-};
-var _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray2(target) {
-  var matrixString = _getComputedProperty(target, _transformProp);
-  return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);
-};
-var _getMatrix = function _getMatrix2(target, force2D) {
-  var cache = target._gsap || _getCache(target), style = target.style, matrix = _getComputedTransformMatrixAsArray(target), parent, nextSibling, temp, addedToDOM;
-  if (cache.svg && target.getAttribute("transform")) {
-    temp = target.transform.baseVal.consolidate().matrix;
-    matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];
-    return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix;
-  } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {
-    temp = style.display;
-    style.display = "block";
-    parent = target.parentNode;
-    if (!parent || !target.offsetParent) {
-      addedToDOM = 1;
-      nextSibling = target.nextElementSibling;
-      _docElement.appendChild(target);
-    }
-    matrix = _getComputedTransformMatrixAsArray(target);
-    temp ? style.display = temp : _removeProperty(target, "display");
-    if (addedToDOM) {
-      nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);
-    }
-  }
-  return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;
-};
-var _applySVGOrigin = function _applySVGOrigin2(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {
-  var cache = target._gsap, matrix = matrixArray || _getMatrix(target, true), xOriginOld = cache.xOrigin || 0, yOriginOld = cache.yOrigin || 0, xOffsetOld = cache.xOffset || 0, yOffsetOld = cache.yOffset || 0, a = matrix[0], b = matrix[1], c = matrix[2], d = matrix[3], tx = matrix[4], ty = matrix[5], originSplit = origin.split(" "), xOrigin = parseFloat(originSplit[0]) || 0, yOrigin = parseFloat(originSplit[1]) || 0, bounds, determinant, x, y;
-  if (!originIsAbsolute) {
-    bounds = _getBBox(target);
-    xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin);
-    yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin);
-  } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {
-    x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;
-    y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;
-    xOrigin = x;
-    yOrigin = y;
-  }
-  if (smooth || smooth !== false && cache.smooth) {
-    tx = xOrigin - xOriginOld;
-    ty = yOrigin - yOriginOld;
-    cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;
-    cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;
-  } else {
-    cache.xOffset = cache.yOffset = 0;
-  }
-  cache.xOrigin = xOrigin;
-  cache.yOrigin = yOrigin;
-  cache.smooth = !!smooth;
-  cache.origin = origin;
-  cache.originIsAbsolute = !!originIsAbsolute;
-  target.style[_transformOriginProp] = "0px 0px";
-  if (pluginToAddPropTweensTo) {
-    _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin);
-    _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin);
-    _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset);
-    _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset);
-  }
-  target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin);
-};
-var _parseTransform = function _parseTransform2(target, uncache) {
-  var cache = target._gsap || new GSCache(target);
-  if ("x" in cache && !uncache && !cache.uncache) {
-    return cache;
-  }
-  var style = target.style, invertedScaleX = cache.scaleX < 0, px = "px", deg = "deg", cs = getComputedStyle(target), origin = _getComputedProperty(target, _transformOriginProp) || "0", x, y, z, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY, perspective, xOrigin, yOrigin, matrix, angle, cos, sin, a, b, c, d, a12, a22, t1, t2, t3, a13, a23, a33, a42, a43, a32;
-  x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;
-  scaleX = scaleY = 1;
-  cache.svg = !!(target.getCTM && _isSVG(target));
-  if (cs.translate) {
-    if (cs.translate !== "none" || cs.scale !== "none" || cs.rotate !== "none") {
-      style[_transformProp] = (cs.translate !== "none" ? "translate3d(" + (cs.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (cs.rotate !== "none" ? "rotate(" + cs.rotate + ") " : "") + (cs.scale !== "none" ? "scale(" + cs.scale.split(" ").join(",") + ") " : "") + (cs[_transformProp] !== "none" ? cs[_transformProp] : "");
-    }
-    style.scale = style.rotate = style.translate = "none";
-  }
-  matrix = _getMatrix(target, cache.svg);
-  if (cache.svg) {
-    if (cache.uncache) {
-      t2 = target.getBBox();
-      origin = cache.xOrigin - t2.x + "px " + (cache.yOrigin - t2.y) + "px";
-      t1 = "";
-    } else {
-      t1 = !uncache && target.getAttribute("data-svg-origin");
-    }
-    _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);
-  }
-  xOrigin = cache.xOrigin || 0;
-  yOrigin = cache.yOrigin || 0;
-  if (matrix !== _identity2DMatrix) {
-    a = matrix[0];
-    b = matrix[1];
-    c = matrix[2];
-    d = matrix[3];
-    x = a12 = matrix[4];
-    y = a22 = matrix[5];
-    if (matrix.length === 6) {
-      scaleX = Math.sqrt(a * a + b * b);
-      scaleY = Math.sqrt(d * d + c * c);
-      rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0;
-      skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;
-      skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));
-      if (cache.svg) {
-        x -= xOrigin - (xOrigin * a + yOrigin * c);
-        y -= yOrigin - (xOrigin * b + yOrigin * d);
-      }
-    } else {
-      a32 = matrix[6];
-      a42 = matrix[7];
-      a13 = matrix[8];
-      a23 = matrix[9];
-      a33 = matrix[10];
-      a43 = matrix[11];
-      x = matrix[12];
-      y = matrix[13];
-      z = matrix[14];
-      angle = _atan2(a32, a33);
-      rotationX = angle * _RAD2DEG;
-      if (angle) {
-        cos = Math.cos(-angle);
-        sin = Math.sin(-angle);
-        t1 = a12 * cos + a13 * sin;
-        t2 = a22 * cos + a23 * sin;
-        t3 = a32 * cos + a33 * sin;
-        a13 = a12 * -sin + a13 * cos;
-        a23 = a22 * -sin + a23 * cos;
-        a33 = a32 * -sin + a33 * cos;
-        a43 = a42 * -sin + a43 * cos;
-        a12 = t1;
-        a22 = t2;
-        a32 = t3;
-      }
-      angle = _atan2(-c, a33);
-      rotationY = angle * _RAD2DEG;
-      if (angle) {
-        cos = Math.cos(-angle);
-        sin = Math.sin(-angle);
-        t1 = a * cos - a13 * sin;
-        t2 = b * cos - a23 * sin;
-        t3 = c * cos - a33 * sin;
-        a43 = d * sin + a43 * cos;
-        a = t1;
-        b = t2;
-        c = t3;
-      }
-      angle = _atan2(b, a);
-      rotation = angle * _RAD2DEG;
-      if (angle) {
-        cos = Math.cos(angle);
-        sin = Math.sin(angle);
-        t1 = a * cos + b * sin;
-        t2 = a12 * cos + a22 * sin;
-        b = b * cos - a * sin;
-        a22 = a22 * cos - a12 * sin;
-        a = t1;
-        a12 = t2;
-      }
-      if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {
-        rotationX = rotation = 0;
-        rotationY = 180 - rotationY;
-      }
-      scaleX = _round(Math.sqrt(a * a + b * b + c * c));
-      scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));
-      angle = _atan2(a12, a22);
-      skewX = Math.abs(angle) > 2e-4 ? angle * _RAD2DEG : 0;
-      perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;
-    }
-    if (cache.svg) {
-      t1 = target.getAttribute("transform");
-      cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp));
-      t1 && target.setAttribute("transform", t1);
-    }
-  }
-  if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {
-    if (invertedScaleX) {
-      scaleX *= -1;
-      skewX += rotation <= 0 ? 180 : -180;
-      rotation += rotation <= 0 ? 180 : -180;
-    } else {
-      scaleY *= -1;
-      skewX += skewX <= 0 ? 180 : -180;
-    }
-  }
-  uncache = uncache || cache.uncache;
-  cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;
-  cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;
-  cache.z = z + px;
-  cache.scaleX = _round(scaleX);
-  cache.scaleY = _round(scaleY);
-  cache.rotation = _round(rotation) + deg;
-  cache.rotationX = _round(rotationX) + deg;
-  cache.rotationY = _round(rotationY) + deg;
-  cache.skewX = skewX + deg;
-  cache.skewY = skewY + deg;
-  cache.transformPerspective = perspective + px;
-  if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || 0) {
-    style[_transformOriginProp] = _firstTwoOnly(origin);
-  }
-  cache.xOffset = cache.yOffset = 0;
-  cache.force3D = _config.force3D;
-  cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;
-  cache.uncache = 0;
-  return cache;
-};
-var _firstTwoOnly = function _firstTwoOnly2(value) {
-  return (value = value.split(" "))[0] + " " + value[1];
-};
-var _addPxTranslate = function _addPxTranslate2(target, start, value) {
-  var unit = getUnit(start);
-  return _round(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit;
-};
-var _renderNon3DTransforms = function _renderNon3DTransforms2(ratio, cache) {
-  cache.z = "0px";
-  cache.rotationY = cache.rotationX = "0deg";
-  cache.force3D = 0;
-  _renderCSSTransforms(ratio, cache);
-};
-var _zeroDeg = "0deg";
-var _zeroPx = "0px";
-var _endParenthesis = ") ";
-var _renderCSSTransforms = function _renderCSSTransforms2(ratio, cache) {
-  var _ref = cache || this, xPercent = _ref.xPercent, yPercent = _ref.yPercent, x = _ref.x, y = _ref.y, z = _ref.z, rotation = _ref.rotation, rotationY = _ref.rotationY, rotationX = _ref.rotationX, skewX = _ref.skewX, skewY = _ref.skewY, scaleX = _ref.scaleX, scaleY = _ref.scaleY, transformPerspective = _ref.transformPerspective, force3D = _ref.force3D, target = _ref.target, zOrigin = _ref.zOrigin, transforms = "", use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true;
-  if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {
-    var angle = parseFloat(rotationY) * _DEG2RAD, a13 = Math.sin(angle), a33 = Math.cos(angle), cos;
-    angle = parseFloat(rotationX) * _DEG2RAD;
-    cos = Math.cos(angle);
-    x = _addPxTranslate(target, x, a13 * cos * -zOrigin);
-    y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);
-    z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);
-  }
-  if (transformPerspective !== _zeroPx) {
-    transforms += "perspective(" + transformPerspective + _endParenthesis;
-  }
-  if (xPercent || yPercent) {
-    transforms += "translate(" + xPercent + "%, " + yPercent + "%) ";
-  }
-  if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {
-    transforms += z !== _zeroPx || use3D ? "translate3d(" + x + ", " + y + ", " + z + ") " : "translate(" + x + ", " + y + _endParenthesis;
-  }
-  if (rotation !== _zeroDeg) {
-    transforms += "rotate(" + rotation + _endParenthesis;
-  }
-  if (rotationY !== _zeroDeg) {
-    transforms += "rotateY(" + rotationY + _endParenthesis;
-  }
-  if (rotationX !== _zeroDeg) {
-    transforms += "rotateX(" + rotationX + _endParenthesis;
-  }
-  if (skewX !== _zeroDeg || skewY !== _zeroDeg) {
-    transforms += "skew(" + skewX + ", " + skewY + _endParenthesis;
-  }
-  if (scaleX !== 1 || scaleY !== 1) {
-    transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis;
-  }
-  target.style[_transformProp] = transforms || "translate(0, 0)";
-};
-var _renderSVGTransforms = function _renderSVGTransforms2(ratio, cache) {
-  var _ref2 = cache || this, xPercent = _ref2.xPercent, yPercent = _ref2.yPercent, x = _ref2.x, y = _ref2.y, rotation = _ref2.rotation, skewX = _ref2.skewX, skewY = _ref2.skewY, scaleX = _ref2.scaleX, scaleY = _ref2.scaleY, target = _ref2.target, xOrigin = _ref2.xOrigin, yOrigin = _ref2.yOrigin, xOffset = _ref2.xOffset, yOffset = _ref2.yOffset, forceCSS = _ref2.forceCSS, tx = parseFloat(x), ty = parseFloat(y), a11, a21, a12, a22, temp;
-  rotation = parseFloat(rotation);
-  skewX = parseFloat(skewX);
-  skewY = parseFloat(skewY);
-  if (skewY) {
-    skewY = parseFloat(skewY);
-    skewX += skewY;
-    rotation += skewY;
-  }
-  if (rotation || skewX) {
-    rotation *= _DEG2RAD;
-    skewX *= _DEG2RAD;
-    a11 = Math.cos(rotation) * scaleX;
-    a21 = Math.sin(rotation) * scaleX;
-    a12 = Math.sin(rotation - skewX) * -scaleY;
-    a22 = Math.cos(rotation - skewX) * scaleY;
-    if (skewX) {
-      skewY *= _DEG2RAD;
-      temp = Math.tan(skewX - skewY);
-      temp = Math.sqrt(1 + temp * temp);
-      a12 *= temp;
-      a22 *= temp;
-      if (skewY) {
-        temp = Math.tan(skewY);
-        temp = Math.sqrt(1 + temp * temp);
-        a11 *= temp;
-        a21 *= temp;
-      }
-    }
-    a11 = _round(a11);
-    a21 = _round(a21);
-    a12 = _round(a12);
-    a22 = _round(a22);
-  } else {
-    a11 = scaleX;
-    a22 = scaleY;
-    a21 = a12 = 0;
-  }
-  if (tx && !~(x + "").indexOf("px") || ty && !~(y + "").indexOf("px")) {
-    tx = _convertToUnit(target, "x", x, "px");
-    ty = _convertToUnit(target, "y", y, "px");
-  }
-  if (xOrigin || yOrigin || xOffset || yOffset) {
-    tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);
-    ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);
-  }
-  if (xPercent || yPercent) {
-    temp = target.getBBox();
-    tx = _round(tx + xPercent / 100 * temp.width);
-    ty = _round(ty + yPercent / 100 * temp.height);
-  }
-  temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")";
-  target.setAttribute("transform", temp);
-  forceCSS && (target.style[_transformProp] = temp);
-};
-var _addRotationalPropTween = function _addRotationalPropTween2(plugin, target, property, startNum, endValue) {
-  var cap = 360, isString = _isString(endValue), endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1), change = endNum - startNum, finalValue = startNum + change + "deg", direction, pt;
-  if (isString) {
-    direction = endValue.split("_")[1];
-    if (direction === "short") {
-      change %= cap;
-      if (change !== change % (cap / 2)) {
-        change += change < 0 ? cap : -cap;
-      }
-    }
-    if (direction === "cw" && change < 0) {
-      change = (change + cap * _bigNum2) % cap - ~~(change / cap) * cap;
-    } else if (direction === "ccw" && change > 0) {
-      change = (change - cap * _bigNum2) % cap - ~~(change / cap) * cap;
-    }
-  }
-  plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);
-  pt.e = finalValue;
-  pt.u = "deg";
-  plugin._props.push(property);
-  return pt;
-};
-var _assign = function _assign2(target, source) {
-  for (var p in source) {
-    target[p] = source[p];
-  }
-  return target;
-};
-var _addRawTransformPTs = function _addRawTransformPTs2(plugin, transforms, target) {
-  var startCache = _assign({}, target._gsap), exclude = "perspective,force3D,transformOrigin,svgOrigin", style = target.style, endCache, p, startValue, endValue, startNum, endNum, startUnit, endUnit;
-  if (startCache.svg) {
-    startValue = target.getAttribute("transform");
-    target.setAttribute("transform", "");
-    style[_transformProp] = transforms;
-    endCache = _parseTransform(target, 1);
-    _removeProperty(target, _transformProp);
-    target.setAttribute("transform", startValue);
-  } else {
-    startValue = getComputedStyle(target)[_transformProp];
-    style[_transformProp] = transforms;
-    endCache = _parseTransform(target, 1);
-    style[_transformProp] = startValue;
-  }
-  for (p in _transformProps) {
-    startValue = startCache[p];
-    endValue = endCache[p];
-    if (startValue !== endValue && exclude.indexOf(p) < 0) {
-      startUnit = getUnit(startValue);
-      endUnit = getUnit(endValue);
-      startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);
-      endNum = parseFloat(endValue);
-      plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);
-      plugin._pt.u = endUnit || 0;
-      plugin._props.push(p);
-    }
-  }
-  _assign(endCache, startCache);
-};
-_forEachName("padding,margin,Width,Radius", function(name, index) {
-  var t = "Top", r = "Right", b = "Bottom", l = "Left", props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function(side) {
-    return index < 2 ? name + side : "border" + side + name;
-  });
-  _specialProps[index > 1 ? "border" + name : name] = function(plugin, target, property, endValue, tween) {
-    var a, vars;
-    if (arguments.length < 4) {
-      a = props.map(function(prop) {
-        return _get(plugin, prop, property);
-      });
-      vars = a.join(" ");
-      return vars.split(a[0]).length === 5 ? a[0] : vars;
-    }
-    a = (endValue + "").split(" ");
-    vars = {};
-    props.forEach(function(prop, i) {
-      return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];
-    });
-    plugin.init(target, vars, tween);
-  };
-});
-var CSSPlugin = {
-  name: "css",
-  register: _initCore,
-  targetTest: function targetTest(target) {
-    return target.style && target.nodeType;
-  },
-  init: function init3(target, vars, tween, index, targets) {
-    var props = this._props, style = target.style, startAt = tween.vars.startAt, startValue, endValue, endNum, startNum, type, specialProp, p, startUnit, endUnit, relative, isTransformRelated, transformPropTween, cache, smooth, hasPriority, inlineProps;
-    _pluginInitted || _initCore();
-    this.styles = this.styles || _getStyleSaver(target);
-    inlineProps = this.styles.props;
-    this.tween = tween;
-    for (p in vars) {
-      if (p === "autoRound") {
-        continue;
-      }
-      endValue = vars[p];
-      if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {
-        continue;
-      }
-      type = typeof endValue;
-      specialProp = _specialProps[p];
-      if (type === "function") {
-        endValue = endValue.call(tween, index, target, targets);
-        type = typeof endValue;
-      }
-      if (type === "string" && ~endValue.indexOf("random(")) {
-        endValue = _replaceRandom(endValue);
-      }
-      if (specialProp) {
-        specialProp(this, target, p, endValue, tween) && (hasPriority = 1);
-      } else if (p.substr(0, 2) === "--") {
-        startValue = (getComputedStyle(target).getPropertyValue(p) + "").trim();
-        endValue += "";
-        _colorExp.lastIndex = 0;
-        if (!_colorExp.test(startValue)) {
-          startUnit = getUnit(startValue);
-          endUnit = getUnit(endValue);
-        }
-        endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);
-        this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p);
-        props.push(p);
-        inlineProps.push(p, 0, style[p]);
-      } else if (type !== "undefined") {
-        if (startAt && p in startAt) {
-          startValue = typeof startAt[p] === "function" ? startAt[p].call(tween, index, target, targets) : startAt[p];
-          _isString(startValue) && ~startValue.indexOf("random(") && (startValue = _replaceRandom(startValue));
-          getUnit(startValue + "") || (startValue += _config.units[p] || getUnit(_get(target, p)) || "");
-          (startValue + "").charAt(1) === "=" && (startValue = _get(target, p));
-        } else {
-          startValue = _get(target, p);
-        }
-        startNum = parseFloat(startValue);
-        relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2);
-        relative && (endValue = endValue.substr(2));
-        endNum = parseFloat(endValue);
-        if (p in _propertyAliases) {
-          if (p === "autoAlpha") {
-            if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) {
-              startNum = 0;
-            }
-            inlineProps.push("visibility", 0, style.visibility);
-            _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum);
-          }
-          if (p !== "scale" && p !== "transform") {
-            p = _propertyAliases[p];
-            ~p.indexOf(",") && (p = p.split(",")[0]);
-          }
-        }
-        isTransformRelated = p in _transformProps;
-        if (isTransformRelated) {
-          this.styles.save(p);
-          if (!transformPropTween) {
-            cache = target._gsap;
-            cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform);
-            smooth = vars.smoothOrigin !== false && cache.smooth;
-            transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1);
-            transformPropTween.dep = 1;
-          }
-          if (p === "scale") {
-            this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);
-            this._pt.u = 0;
-            props.push("scaleY", p);
-            p += "X";
-          } else if (p === "transformOrigin") {
-            inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);
-            endValue = _convertKeywordsToPercentages(endValue);
-            if (cache.svg) {
-              _applySVGOrigin(target, endValue, 0, smooth, 0, this);
-            } else {
-              endUnit = parseFloat(endValue.split(" ")[2]) || 0;
-              endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit);
-              _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));
-            }
-            continue;
-          } else if (p === "svgOrigin") {
-            _applySVGOrigin(target, endValue, 1, smooth, 0, this);
-            continue;
-          } else if (p in _rotationalProperties) {
-            _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);
-            continue;
-          } else if (p === "smoothOrigin") {
-            _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue);
-            continue;
-          } else if (p === "force3D") {
-            cache[p] = endValue;
-            continue;
-          } else if (p === "transform") {
-            _addRawTransformPTs(this, endValue, target);
-            continue;
-          }
-        } else if (!(p in style)) {
-          p = _checkPropPrefix(p) || p;
-        }
-        if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {
-          startUnit = (startValue + "").substr((startNum + "").length);
-          endNum || (endNum = 0);
-          endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);
-          startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));
-          this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);
-          this._pt.u = endUnit || 0;
-          if (startUnit !== endUnit && endUnit !== "%") {
-            this._pt.b = startValue;
-            this._pt.r = _renderCSSPropWithBeginning;
-          }
-        } else if (!(p in style)) {
-          if (p in target) {
-            this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);
-          } else if (p !== "parseTransform") {
-            _missingPlugin(p, endValue);
-            continue;
-          }
-        } else {
-          _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);
-        }
-        isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));
-        props.push(p);
-      }
-    }
-    hasPriority && _sortPropTweensByPriority(this);
-  },
-  render: function render2(ratio, data) {
-    if (data.tween._time || !_reverting2()) {
-      var pt = data._pt;
-      while (pt) {
-        pt.r(ratio, pt.d);
-        pt = pt._next;
-      }
-    } else {
-      data.styles.revert();
-    }
-  },
-  get: _get,
-  aliases: _propertyAliases,
-  getSetter: function getSetter(target, property, plugin) {
-    var p = _propertyAliases[property];
-    p && p.indexOf(",") < 0 && (property = p);
-    return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : _getSetter(target, property);
-  },
-  core: {
-    _removeProperty,
-    _getMatrix
-  }
-};
-gsap.utils.checkPrefix = _checkPropPrefix;
-gsap.core.getStyleSaver = _getStyleSaver;
-(function(positionAndScale, rotation, others, aliases) {
-  var all = _forEachName(positionAndScale + "," + rotation + "," + others, function(name) {
-    _transformProps[name] = 1;
-  });
-  _forEachName(rotation, function(name) {
-    _config.units[name] = "deg";
-    _rotationalProperties[name] = 1;
-  });
-  _propertyAliases[all[13]] = positionAndScale + "," + rotation;
-  _forEachName(aliases, function(name) {
-    var split = name.split(":");
-    _propertyAliases[split[1]] = all[split[0]];
-  });
-})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");
-_forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function(name) {
-  _config.units[name] = "px";
-});
-gsap.registerPlugin(CSSPlugin);
-
-// node_modules/.pnpm/gsap@3.11.5/node_modules/gsap/index.js
-var gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap;
-var TweenMaxWithCSS = gsapWithCSS.core.Tween;
-export {
-  Back,
-  Bounce,
-  CSSPlugin,
-  Circ,
-  Cubic,
-  Elastic,
-  Expo,
-  Linear,
-  Power0,
-  Power1,
-  Power2,
-  Power3,
-  Power4,
-  Quad,
-  Quart,
-  Quint,
-  Sine,
-  SteppedEase,
-  Strong,
-  Timeline as TimelineLite,
-  Timeline as TimelineMax,
-  Tween as TweenLite,
-  TweenMaxWithCSS as TweenMax,
-  gsapWithCSS as default,
-  gsapWithCSS as gsap
-};
-/*! Bundled license information:
-
-gsap/gsap-core.js:
-  (*!
-   * GSAP 3.11.5
-   * https://greensock.com
-   *
-   * @license Copyright 2008-2023, GreenSock. All rights reserved.
-   * Subject to the terms at https://greensock.com/standard-license or for
-   * Club GreenSock members, the agreement issued with that membership.
-   * @author: Jack Doyle, jack@greensock.com
-  *)
-
-gsap/CSSPlugin.js:
-  (*!
-   * CSSPlugin 3.11.5
-   * https://greensock.com
-   *
-   * Copyright 2008-2023, GreenSock. All rights reserved.
-   * Subject to the terms at https://greensock.com/standard-license or for
-   * Club GreenSock members, the agreement issued with that membership.
-   * @author: Jack Doyle, jack@greensock.com
-  *)
-*/
-//# sourceMappingURL=gsap.js.map

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 3
docs/.vitepress/cache/deps/gsap.js.map


+ 0 - 3
docs/.vitepress/cache/deps/package.json

@@ -1,3 +0,0 @@
-{
-  "type": "module"
-}

+ 0 - 824
docs/.vitepress/cache/deps/three.js

@@ -1,824 +0,0 @@
-import {
-  ACESFilmicToneMapping,
-  AddEquation,
-  AddOperation,
-  AdditiveAnimationBlendMode,
-  AdditiveBlending,
-  AlphaFormat,
-  AlwaysDepth,
-  AlwaysStencilFunc,
-  AmbientLight,
-  AmbientLightProbe,
-  AnimationAction,
-  AnimationClip,
-  AnimationLoader,
-  AnimationMixer,
-  AnimationObjectGroup,
-  AnimationUtils,
-  ArcCurve,
-  ArrayCamera,
-  ArrowHelper,
-  Audio,
-  AudioAnalyser,
-  AudioContext,
-  AudioListener,
-  AudioLoader,
-  AxesHelper,
-  BackSide,
-  BasicDepthPacking,
-  BasicShadowMap,
-  Bone,
-  BooleanKeyframeTrack,
-  Box2,
-  Box3,
-  Box3Helper,
-  BoxBufferGeometry,
-  BoxGeometry,
-  BoxHelper,
-  BufferAttribute,
-  BufferGeometry,
-  BufferGeometryLoader,
-  ByteType,
-  Cache,
-  Camera,
-  CameraHelper,
-  CanvasTexture,
-  CapsuleBufferGeometry,
-  CapsuleGeometry,
-  CatmullRomCurve3,
-  CineonToneMapping,
-  CircleBufferGeometry,
-  CircleGeometry,
-  ClampToEdgeWrapping,
-  Clock,
-  Color,
-  ColorKeyframeTrack,
-  ColorManagement,
-  CompressedArrayTexture,
-  CompressedTexture,
-  CompressedTextureLoader,
-  ConeBufferGeometry,
-  ConeGeometry,
-  CubeCamera,
-  CubeReflectionMapping,
-  CubeRefractionMapping,
-  CubeTexture,
-  CubeTextureLoader,
-  CubeUVReflectionMapping,
-  CubicBezierCurve,
-  CubicBezierCurve3,
-  CubicInterpolant,
-  CullFaceBack,
-  CullFaceFront,
-  CullFaceFrontBack,
-  CullFaceNone,
-  Curve,
-  CurvePath,
-  CustomBlending,
-  CustomToneMapping,
-  CylinderBufferGeometry,
-  CylinderGeometry,
-  Cylindrical,
-  Data3DTexture,
-  DataArrayTexture,
-  DataTexture,
-  DataTextureLoader,
-  DataUtils,
-  DecrementStencilOp,
-  DecrementWrapStencilOp,
-  DefaultLoadingManager,
-  DepthFormat,
-  DepthStencilFormat,
-  DepthTexture,
-  DirectionalLight,
-  DirectionalLightHelper,
-  DiscreteInterpolant,
-  DisplayP3ColorSpace,
-  DodecahedronBufferGeometry,
-  DodecahedronGeometry,
-  DoubleSide,
-  DstAlphaFactor,
-  DstColorFactor,
-  DynamicCopyUsage,
-  DynamicDrawUsage,
-  DynamicReadUsage,
-  EdgesGeometry,
-  EllipseCurve,
-  EqualDepth,
-  EqualStencilFunc,
-  EquirectangularReflectionMapping,
-  EquirectangularRefractionMapping,
-  Euler,
-  EventDispatcher,
-  ExtrudeBufferGeometry,
-  ExtrudeGeometry,
-  FileLoader,
-  Float16BufferAttribute,
-  Float32BufferAttribute,
-  Float64BufferAttribute,
-  FloatType,
-  Fog,
-  FogExp2,
-  FramebufferTexture,
-  FrontSide,
-  Frustum,
-  GLBufferAttribute,
-  GLSL1,
-  GLSL3,
-  GreaterDepth,
-  GreaterEqualDepth,
-  GreaterEqualStencilFunc,
-  GreaterStencilFunc,
-  GridHelper,
-  Group,
-  HalfFloatType,
-  HemisphereLight,
-  HemisphereLightHelper,
-  HemisphereLightProbe,
-  IcosahedronBufferGeometry,
-  IcosahedronGeometry,
-  ImageBitmapLoader,
-  ImageLoader,
-  ImageUtils,
-  IncrementStencilOp,
-  IncrementWrapStencilOp,
-  InstancedBufferAttribute,
-  InstancedBufferGeometry,
-  InstancedInterleavedBuffer,
-  InstancedMesh,
-  Int16BufferAttribute,
-  Int32BufferAttribute,
-  Int8BufferAttribute,
-  IntType,
-  InterleavedBuffer,
-  InterleavedBufferAttribute,
-  Interpolant,
-  InterpolateDiscrete,
-  InterpolateLinear,
-  InterpolateSmooth,
-  InvertStencilOp,
-  KeepStencilOp,
-  KeyframeTrack,
-  LOD,
-  LatheBufferGeometry,
-  LatheGeometry,
-  Layers,
-  LessDepth,
-  LessEqualDepth,
-  LessEqualStencilFunc,
-  LessStencilFunc,
-  Light,
-  LightProbe,
-  Line,
-  Line3,
-  LineBasicMaterial,
-  LineCurve,
-  LineCurve3,
-  LineDashedMaterial,
-  LineLoop,
-  LineSegments,
-  LinearEncoding,
-  LinearFilter,
-  LinearInterpolant,
-  LinearMipMapLinearFilter,
-  LinearMipMapNearestFilter,
-  LinearMipmapLinearFilter,
-  LinearMipmapNearestFilter,
-  LinearSRGBColorSpace,
-  LinearToneMapping,
-  Loader,
-  LoaderUtils,
-  LoadingManager,
-  LoopOnce,
-  LoopPingPong,
-  LoopRepeat,
-  LuminanceAlphaFormat,
-  LuminanceFormat,
-  MOUSE,
-  Material,
-  MaterialLoader,
-  MathUtils,
-  Matrix3,
-  Matrix4,
-  MaxEquation,
-  Mesh,
-  MeshBasicMaterial,
-  MeshDepthMaterial,
-  MeshDistanceMaterial,
-  MeshLambertMaterial,
-  MeshMatcapMaterial,
-  MeshNormalMaterial,
-  MeshPhongMaterial,
-  MeshPhysicalMaterial,
-  MeshStandardMaterial,
-  MeshToonMaterial,
-  MinEquation,
-  MirroredRepeatWrapping,
-  MixOperation,
-  MultiplyBlending,
-  MultiplyOperation,
-  NearestFilter,
-  NearestMipMapLinearFilter,
-  NearestMipMapNearestFilter,
-  NearestMipmapLinearFilter,
-  NearestMipmapNearestFilter,
-  NeverDepth,
-  NeverStencilFunc,
-  NoBlending,
-  NoColorSpace,
-  NoToneMapping,
-  NormalAnimationBlendMode,
-  NormalBlending,
-  NotEqualDepth,
-  NotEqualStencilFunc,
-  NumberKeyframeTrack,
-  Object3D,
-  ObjectLoader,
-  ObjectSpaceNormalMap,
-  OctahedronBufferGeometry,
-  OctahedronGeometry,
-  OneFactor,
-  OneMinusDstAlphaFactor,
-  OneMinusDstColorFactor,
-  OneMinusSrcAlphaFactor,
-  OneMinusSrcColorFactor,
-  OrthographicCamera,
-  PCFShadowMap,
-  PCFSoftShadowMap,
-  PMREMGenerator,
-  Path,
-  PerspectiveCamera,
-  Plane,
-  PlaneBufferGeometry,
-  PlaneGeometry,
-  PlaneHelper,
-  PointLight,
-  PointLightHelper,
-  Points,
-  PointsMaterial,
-  PolarGridHelper,
-  PolyhedronBufferGeometry,
-  PolyhedronGeometry,
-  PositionalAudio,
-  PropertyBinding,
-  PropertyMixer,
-  QuadraticBezierCurve,
-  QuadraticBezierCurve3,
-  Quaternion,
-  QuaternionKeyframeTrack,
-  QuaternionLinearInterpolant,
-  RED_GREEN_RGTC2_Format,
-  RED_RGTC1_Format,
-  REVISION,
-  RGBADepthPacking,
-  RGBAFormat,
-  RGBAIntegerFormat,
-  RGBA_ASTC_10x10_Format,
-  RGBA_ASTC_10x5_Format,
-  RGBA_ASTC_10x6_Format,
-  RGBA_ASTC_10x8_Format,
-  RGBA_ASTC_12x10_Format,
-  RGBA_ASTC_12x12_Format,
-  RGBA_ASTC_4x4_Format,
-  RGBA_ASTC_5x4_Format,
-  RGBA_ASTC_5x5_Format,
-  RGBA_ASTC_6x5_Format,
-  RGBA_ASTC_6x6_Format,
-  RGBA_ASTC_8x5_Format,
-  RGBA_ASTC_8x6_Format,
-  RGBA_ASTC_8x8_Format,
-  RGBA_BPTC_Format,
-  RGBA_ETC2_EAC_Format,
-  RGBA_PVRTC_2BPPV1_Format,
-  RGBA_PVRTC_4BPPV1_Format,
-  RGBA_S3TC_DXT1_Format,
-  RGBA_S3TC_DXT3_Format,
-  RGBA_S3TC_DXT5_Format,
-  RGB_ETC1_Format,
-  RGB_ETC2_Format,
-  RGB_PVRTC_2BPPV1_Format,
-  RGB_PVRTC_4BPPV1_Format,
-  RGB_S3TC_DXT1_Format,
-  RGFormat,
-  RGIntegerFormat,
-  RawShaderMaterial,
-  Ray,
-  Raycaster,
-  RectAreaLight,
-  RedFormat,
-  RedIntegerFormat,
-  ReinhardToneMapping,
-  RepeatWrapping,
-  ReplaceStencilOp,
-  ReverseSubtractEquation,
-  RingBufferGeometry,
-  RingGeometry,
-  SIGNED_RED_GREEN_RGTC2_Format,
-  SIGNED_RED_RGTC1_Format,
-  SRGBColorSpace,
-  Scene,
-  ShaderChunk,
-  ShaderLib,
-  ShaderMaterial,
-  ShadowMaterial,
-  Shape,
-  ShapeBufferGeometry,
-  ShapeGeometry,
-  ShapePath,
-  ShapeUtils,
-  ShortType,
-  Skeleton,
-  SkeletonHelper,
-  SkinnedMesh,
-  Source,
-  Sphere,
-  SphereBufferGeometry,
-  SphereGeometry,
-  Spherical,
-  SphericalHarmonics3,
-  SplineCurve,
-  SpotLight,
-  SpotLightHelper,
-  Sprite,
-  SpriteMaterial,
-  SrcAlphaFactor,
-  SrcAlphaSaturateFactor,
-  SrcColorFactor,
-  StaticCopyUsage,
-  StaticDrawUsage,
-  StaticReadUsage,
-  StereoCamera,
-  StreamCopyUsage,
-  StreamDrawUsage,
-  StreamReadUsage,
-  StringKeyframeTrack,
-  SubtractEquation,
-  SubtractiveBlending,
-  TOUCH,
-  TangentSpaceNormalMap,
-  TetrahedronBufferGeometry,
-  TetrahedronGeometry,
-  Texture,
-  TextureLoader,
-  TorusBufferGeometry,
-  TorusGeometry,
-  TorusKnotBufferGeometry,
-  TorusKnotGeometry,
-  Triangle,
-  TriangleFanDrawMode,
-  TriangleStripDrawMode,
-  TrianglesDrawMode,
-  TubeBufferGeometry,
-  TubeGeometry,
-  TwoPassDoubleSide,
-  UVMapping,
-  Uint16BufferAttribute,
-  Uint32BufferAttribute,
-  Uint8BufferAttribute,
-  Uint8ClampedBufferAttribute,
-  Uniform,
-  UniformsGroup,
-  UniformsLib,
-  UniformsUtils,
-  UnsignedByteType,
-  UnsignedInt248Type,
-  UnsignedIntType,
-  UnsignedShort4444Type,
-  UnsignedShort5551Type,
-  UnsignedShortType,
-  VSMShadowMap,
-  Vector2,
-  Vector3,
-  Vector4,
-  VectorKeyframeTrack,
-  VideoTexture,
-  WebGL1Renderer,
-  WebGL3DRenderTarget,
-  WebGLArrayRenderTarget,
-  WebGLCubeRenderTarget,
-  WebGLMultipleRenderTargets,
-  WebGLRenderTarget,
-  WebGLRenderer,
-  WebGLUtils,
-  WireframeGeometry,
-  WrapAroundEnding,
-  ZeroCurvatureEnding,
-  ZeroFactor,
-  ZeroSlopeEnding,
-  ZeroStencilOp,
-  _SRGBAFormat,
-  sRGBEncoding
-} from "./chunk-PDZK3SQX.js";
-import "./chunk-JC4IRQUL.js";
-export {
-  ACESFilmicToneMapping,
-  AddEquation,
-  AddOperation,
-  AdditiveAnimationBlendMode,
-  AdditiveBlending,
-  AlphaFormat,
-  AlwaysDepth,
-  AlwaysStencilFunc,
-  AmbientLight,
-  AmbientLightProbe,
-  AnimationAction,
-  AnimationClip,
-  AnimationLoader,
-  AnimationMixer,
-  AnimationObjectGroup,
-  AnimationUtils,
-  ArcCurve,
-  ArrayCamera,
-  ArrowHelper,
-  Audio,
-  AudioAnalyser,
-  AudioContext,
-  AudioListener,
-  AudioLoader,
-  AxesHelper,
-  BackSide,
-  BasicDepthPacking,
-  BasicShadowMap,
-  Bone,
-  BooleanKeyframeTrack,
-  Box2,
-  Box3,
-  Box3Helper,
-  BoxBufferGeometry,
-  BoxGeometry,
-  BoxHelper,
-  BufferAttribute,
-  BufferGeometry,
-  BufferGeometryLoader,
-  ByteType,
-  Cache,
-  Camera,
-  CameraHelper,
-  CanvasTexture,
-  CapsuleBufferGeometry,
-  CapsuleGeometry,
-  CatmullRomCurve3,
-  CineonToneMapping,
-  CircleBufferGeometry,
-  CircleGeometry,
-  ClampToEdgeWrapping,
-  Clock,
-  Color,
-  ColorKeyframeTrack,
-  ColorManagement,
-  CompressedArrayTexture,
-  CompressedTexture,
-  CompressedTextureLoader,
-  ConeBufferGeometry,
-  ConeGeometry,
-  CubeCamera,
-  CubeReflectionMapping,
-  CubeRefractionMapping,
-  CubeTexture,
-  CubeTextureLoader,
-  CubeUVReflectionMapping,
-  CubicBezierCurve,
-  CubicBezierCurve3,
-  CubicInterpolant,
-  CullFaceBack,
-  CullFaceFront,
-  CullFaceFrontBack,
-  CullFaceNone,
-  Curve,
-  CurvePath,
-  CustomBlending,
-  CustomToneMapping,
-  CylinderBufferGeometry,
-  CylinderGeometry,
-  Cylindrical,
-  Data3DTexture,
-  DataArrayTexture,
-  DataTexture,
-  DataTextureLoader,
-  DataUtils,
-  DecrementStencilOp,
-  DecrementWrapStencilOp,
-  DefaultLoadingManager,
-  DepthFormat,
-  DepthStencilFormat,
-  DepthTexture,
-  DirectionalLight,
-  DirectionalLightHelper,
-  DiscreteInterpolant,
-  DisplayP3ColorSpace,
-  DodecahedronBufferGeometry,
-  DodecahedronGeometry,
-  DoubleSide,
-  DstAlphaFactor,
-  DstColorFactor,
-  DynamicCopyUsage,
-  DynamicDrawUsage,
-  DynamicReadUsage,
-  EdgesGeometry,
-  EllipseCurve,
-  EqualDepth,
-  EqualStencilFunc,
-  EquirectangularReflectionMapping,
-  EquirectangularRefractionMapping,
-  Euler,
-  EventDispatcher,
-  ExtrudeBufferGeometry,
-  ExtrudeGeometry,
-  FileLoader,
-  Float16BufferAttribute,
-  Float32BufferAttribute,
-  Float64BufferAttribute,
-  FloatType,
-  Fog,
-  FogExp2,
-  FramebufferTexture,
-  FrontSide,
-  Frustum,
-  GLBufferAttribute,
-  GLSL1,
-  GLSL3,
-  GreaterDepth,
-  GreaterEqualDepth,
-  GreaterEqualStencilFunc,
-  GreaterStencilFunc,
-  GridHelper,
-  Group,
-  HalfFloatType,
-  HemisphereLight,
-  HemisphereLightHelper,
-  HemisphereLightProbe,
-  IcosahedronBufferGeometry,
-  IcosahedronGeometry,
-  ImageBitmapLoader,
-  ImageLoader,
-  ImageUtils,
-  IncrementStencilOp,
-  IncrementWrapStencilOp,
-  InstancedBufferAttribute,
-  InstancedBufferGeometry,
-  InstancedInterleavedBuffer,
-  InstancedMesh,
-  Int16BufferAttribute,
-  Int32BufferAttribute,
-  Int8BufferAttribute,
-  IntType,
-  InterleavedBuffer,
-  InterleavedBufferAttribute,
-  Interpolant,
-  InterpolateDiscrete,
-  InterpolateLinear,
-  InterpolateSmooth,
-  InvertStencilOp,
-  KeepStencilOp,
-  KeyframeTrack,
-  LOD,
-  LatheBufferGeometry,
-  LatheGeometry,
-  Layers,
-  LessDepth,
-  LessEqualDepth,
-  LessEqualStencilFunc,
-  LessStencilFunc,
-  Light,
-  LightProbe,
-  Line,
-  Line3,
-  LineBasicMaterial,
-  LineCurve,
-  LineCurve3,
-  LineDashedMaterial,
-  LineLoop,
-  LineSegments,
-  LinearEncoding,
-  LinearFilter,
-  LinearInterpolant,
-  LinearMipMapLinearFilter,
-  LinearMipMapNearestFilter,
-  LinearMipmapLinearFilter,
-  LinearMipmapNearestFilter,
-  LinearSRGBColorSpace,
-  LinearToneMapping,
-  Loader,
-  LoaderUtils,
-  LoadingManager,
-  LoopOnce,
-  LoopPingPong,
-  LoopRepeat,
-  LuminanceAlphaFormat,
-  LuminanceFormat,
-  MOUSE,
-  Material,
-  MaterialLoader,
-  MathUtils,
-  Matrix3,
-  Matrix4,
-  MaxEquation,
-  Mesh,
-  MeshBasicMaterial,
-  MeshDepthMaterial,
-  MeshDistanceMaterial,
-  MeshLambertMaterial,
-  MeshMatcapMaterial,
-  MeshNormalMaterial,
-  MeshPhongMaterial,
-  MeshPhysicalMaterial,
-  MeshStandardMaterial,
-  MeshToonMaterial,
-  MinEquation,
-  MirroredRepeatWrapping,
-  MixOperation,
-  MultiplyBlending,
-  MultiplyOperation,
-  NearestFilter,
-  NearestMipMapLinearFilter,
-  NearestMipMapNearestFilter,
-  NearestMipmapLinearFilter,
-  NearestMipmapNearestFilter,
-  NeverDepth,
-  NeverStencilFunc,
-  NoBlending,
-  NoColorSpace,
-  NoToneMapping,
-  NormalAnimationBlendMode,
-  NormalBlending,
-  NotEqualDepth,
-  NotEqualStencilFunc,
-  NumberKeyframeTrack,
-  Object3D,
-  ObjectLoader,
-  ObjectSpaceNormalMap,
-  OctahedronBufferGeometry,
-  OctahedronGeometry,
-  OneFactor,
-  OneMinusDstAlphaFactor,
-  OneMinusDstColorFactor,
-  OneMinusSrcAlphaFactor,
-  OneMinusSrcColorFactor,
-  OrthographicCamera,
-  PCFShadowMap,
-  PCFSoftShadowMap,
-  PMREMGenerator,
-  Path,
-  PerspectiveCamera,
-  Plane,
-  PlaneBufferGeometry,
-  PlaneGeometry,
-  PlaneHelper,
-  PointLight,
-  PointLightHelper,
-  Points,
-  PointsMaterial,
-  PolarGridHelper,
-  PolyhedronBufferGeometry,
-  PolyhedronGeometry,
-  PositionalAudio,
-  PropertyBinding,
-  PropertyMixer,
-  QuadraticBezierCurve,
-  QuadraticBezierCurve3,
-  Quaternion,
-  QuaternionKeyframeTrack,
-  QuaternionLinearInterpolant,
-  RED_GREEN_RGTC2_Format,
-  RED_RGTC1_Format,
-  REVISION,
-  RGBADepthPacking,
-  RGBAFormat,
-  RGBAIntegerFormat,
-  RGBA_ASTC_10x10_Format,
-  RGBA_ASTC_10x5_Format,
-  RGBA_ASTC_10x6_Format,
-  RGBA_ASTC_10x8_Format,
-  RGBA_ASTC_12x10_Format,
-  RGBA_ASTC_12x12_Format,
-  RGBA_ASTC_4x4_Format,
-  RGBA_ASTC_5x4_Format,
-  RGBA_ASTC_5x5_Format,
-  RGBA_ASTC_6x5_Format,
-  RGBA_ASTC_6x6_Format,
-  RGBA_ASTC_8x5_Format,
-  RGBA_ASTC_8x6_Format,
-  RGBA_ASTC_8x8_Format,
-  RGBA_BPTC_Format,
-  RGBA_ETC2_EAC_Format,
-  RGBA_PVRTC_2BPPV1_Format,
-  RGBA_PVRTC_4BPPV1_Format,
-  RGBA_S3TC_DXT1_Format,
-  RGBA_S3TC_DXT3_Format,
-  RGBA_S3TC_DXT5_Format,
-  RGB_ETC1_Format,
-  RGB_ETC2_Format,
-  RGB_PVRTC_2BPPV1_Format,
-  RGB_PVRTC_4BPPV1_Format,
-  RGB_S3TC_DXT1_Format,
-  RGFormat,
-  RGIntegerFormat,
-  RawShaderMaterial,
-  Ray,
-  Raycaster,
-  RectAreaLight,
-  RedFormat,
-  RedIntegerFormat,
-  ReinhardToneMapping,
-  RepeatWrapping,
-  ReplaceStencilOp,
-  ReverseSubtractEquation,
-  RingBufferGeometry,
-  RingGeometry,
-  SIGNED_RED_GREEN_RGTC2_Format,
-  SIGNED_RED_RGTC1_Format,
-  SRGBColorSpace,
-  Scene,
-  ShaderChunk,
-  ShaderLib,
-  ShaderMaterial,
-  ShadowMaterial,
-  Shape,
-  ShapeBufferGeometry,
-  ShapeGeometry,
-  ShapePath,
-  ShapeUtils,
-  ShortType,
-  Skeleton,
-  SkeletonHelper,
-  SkinnedMesh,
-  Source,
-  Sphere,
-  SphereBufferGeometry,
-  SphereGeometry,
-  Spherical,
-  SphericalHarmonics3,
-  SplineCurve,
-  SpotLight,
-  SpotLightHelper,
-  Sprite,
-  SpriteMaterial,
-  SrcAlphaFactor,
-  SrcAlphaSaturateFactor,
-  SrcColorFactor,
-  StaticCopyUsage,
-  StaticDrawUsage,
-  StaticReadUsage,
-  StereoCamera,
-  StreamCopyUsage,
-  StreamDrawUsage,
-  StreamReadUsage,
-  StringKeyframeTrack,
-  SubtractEquation,
-  SubtractiveBlending,
-  TOUCH,
-  TangentSpaceNormalMap,
-  TetrahedronBufferGeometry,
-  TetrahedronGeometry,
-  Texture,
-  TextureLoader,
-  TorusBufferGeometry,
-  TorusGeometry,
-  TorusKnotBufferGeometry,
-  TorusKnotGeometry,
-  Triangle,
-  TriangleFanDrawMode,
-  TriangleStripDrawMode,
-  TrianglesDrawMode,
-  TubeBufferGeometry,
-  TubeGeometry,
-  TwoPassDoubleSide,
-  UVMapping,
-  Uint16BufferAttribute,
-  Uint32BufferAttribute,
-  Uint8BufferAttribute,
-  Uint8ClampedBufferAttribute,
-  Uniform,
-  UniformsGroup,
-  UniformsLib,
-  UniformsUtils,
-  UnsignedByteType,
-  UnsignedInt248Type,
-  UnsignedIntType,
-  UnsignedShort4444Type,
-  UnsignedShort5551Type,
-  UnsignedShortType,
-  VSMShadowMap,
-  Vector2,
-  Vector3,
-  Vector4,
-  VectorKeyframeTrack,
-  VideoTexture,
-  WebGL1Renderer,
-  WebGL3DRenderTarget,
-  WebGLArrayRenderTarget,
-  WebGLCubeRenderTarget,
-  WebGLMultipleRenderTargets,
-  WebGLRenderTarget,
-  WebGLRenderer,
-  WebGLUtils,
-  WireframeGeometry,
-  WrapAroundEnding,
-  ZeroCurvatureEnding,
-  ZeroFactor,
-  ZeroSlopeEnding,
-  ZeroStencilOp,
-  _SRGBAFormat,
-  sRGBEncoding
-};
-//# sourceMappingURL=three.js.map

+ 0 - 7
docs/.vitepress/cache/deps/three.js.map

@@ -1,7 +0,0 @@
-{
-  "version": 3,
-  "sources": [],
-  "sourcesContent": [],
-  "mappings": "",
-  "names": []
-}

+ 0 - 298
docs/.vitepress/cache/deps/vue.js

@@ -1,298 +0,0 @@
-import {
-  BaseTransition,
-  Comment,
-  EffectScope,
-  Fragment,
-  KeepAlive,
-  ReactiveEffect,
-  Static,
-  Suspense,
-  Teleport,
-  Text,
-  Transition,
-  TransitionGroup,
-  VueElement,
-  assertNumber,
-  callWithAsyncErrorHandling,
-  callWithErrorHandling,
-  camelize,
-  capitalize,
-  cloneVNode,
-  compatUtils,
-  compile,
-  computed,
-  createApp,
-  createBaseVNode,
-  createBlock,
-  createCommentVNode,
-  createElementBlock,
-  createHydrationRenderer,
-  createPropsRestProxy,
-  createRenderer,
-  createSSRApp,
-  createSlots,
-  createStaticVNode,
-  createTextVNode,
-  createVNode,
-  customRef,
-  defineAsyncComponent,
-  defineComponent,
-  defineCustomElement,
-  defineEmits,
-  defineExpose,
-  defineProps,
-  defineSSRCustomElement,
-  devtools,
-  effect,
-  effectScope,
-  getCurrentInstance,
-  getCurrentScope,
-  getTransitionRawChildren,
-  guardReactiveProps,
-  h,
-  handleError,
-  hydrate,
-  initCustomFormatter,
-  initDirectivesForSSR,
-  inject,
-  isMemoSame,
-  isProxy,
-  isReactive,
-  isReadonly,
-  isRef,
-  isRuntimeOnly,
-  isShallow,
-  isVNode,
-  markRaw,
-  mergeDefaults,
-  mergeProps,
-  nextTick,
-  normalizeClass,
-  normalizeProps,
-  normalizeStyle,
-  onActivated,
-  onBeforeMount,
-  onBeforeUnmount,
-  onBeforeUpdate,
-  onDeactivated,
-  onErrorCaptured,
-  onMounted,
-  onRenderTracked,
-  onRenderTriggered,
-  onScopeDispose,
-  onServerPrefetch,
-  onUnmounted,
-  onUpdated,
-  openBlock,
-  popScopeId,
-  provide,
-  proxyRefs,
-  pushScopeId,
-  queuePostFlushCb,
-  reactive,
-  readonly,
-  ref,
-  registerRuntimeCompiler,
-  render,
-  renderList,
-  renderSlot,
-  resolveComponent,
-  resolveDirective,
-  resolveDynamicComponent,
-  resolveFilter,
-  resolveTransitionHooks,
-  setBlockTracking,
-  setDevtoolsHook,
-  setTransitionHooks,
-  shallowReactive,
-  shallowReadonly,
-  shallowRef,
-  ssrContextKey,
-  ssrUtils,
-  stop,
-  toDisplayString,
-  toHandlerKey,
-  toHandlers,
-  toRaw,
-  toRef,
-  toRefs,
-  transformVNodeArgs,
-  triggerRef,
-  unref,
-  useAttrs,
-  useCssModule,
-  useCssVars,
-  useSSRContext,
-  useSlots,
-  useTransitionState,
-  vModelCheckbox,
-  vModelDynamic,
-  vModelRadio,
-  vModelSelect,
-  vModelText,
-  vShow,
-  version,
-  warn,
-  watch,
-  watchEffect,
-  watchPostEffect,
-  watchSyncEffect,
-  withAsyncContext,
-  withCtx,
-  withDefaults,
-  withDirectives,
-  withKeys,
-  withMemo,
-  withModifiers,
-  withScopeId
-} from "./chunk-LZPJ5JBW.js";
-import "./chunk-JC4IRQUL.js";
-export {
-  BaseTransition,
-  Comment,
-  EffectScope,
-  Fragment,
-  KeepAlive,
-  ReactiveEffect,
-  Static,
-  Suspense,
-  Teleport,
-  Text,
-  Transition,
-  TransitionGroup,
-  VueElement,
-  assertNumber,
-  callWithAsyncErrorHandling,
-  callWithErrorHandling,
-  camelize,
-  capitalize,
-  cloneVNode,
-  compatUtils,
-  compile,
-  computed,
-  createApp,
-  createBlock,
-  createCommentVNode,
-  createElementBlock,
-  createBaseVNode as createElementVNode,
-  createHydrationRenderer,
-  createPropsRestProxy,
-  createRenderer,
-  createSSRApp,
-  createSlots,
-  createStaticVNode,
-  createTextVNode,
-  createVNode,
-  customRef,
-  defineAsyncComponent,
-  defineComponent,
-  defineCustomElement,
-  defineEmits,
-  defineExpose,
-  defineProps,
-  defineSSRCustomElement,
-  devtools,
-  effect,
-  effectScope,
-  getCurrentInstance,
-  getCurrentScope,
-  getTransitionRawChildren,
-  guardReactiveProps,
-  h,
-  handleError,
-  hydrate,
-  initCustomFormatter,
-  initDirectivesForSSR,
-  inject,
-  isMemoSame,
-  isProxy,
-  isReactive,
-  isReadonly,
-  isRef,
-  isRuntimeOnly,
-  isShallow,
-  isVNode,
-  markRaw,
-  mergeDefaults,
-  mergeProps,
-  nextTick,
-  normalizeClass,
-  normalizeProps,
-  normalizeStyle,
-  onActivated,
-  onBeforeMount,
-  onBeforeUnmount,
-  onBeforeUpdate,
-  onDeactivated,
-  onErrorCaptured,
-  onMounted,
-  onRenderTracked,
-  onRenderTriggered,
-  onScopeDispose,
-  onServerPrefetch,
-  onUnmounted,
-  onUpdated,
-  openBlock,
-  popScopeId,
-  provide,
-  proxyRefs,
-  pushScopeId,
-  queuePostFlushCb,
-  reactive,
-  readonly,
-  ref,
-  registerRuntimeCompiler,
-  render,
-  renderList,
-  renderSlot,
-  resolveComponent,
-  resolveDirective,
-  resolveDynamicComponent,
-  resolveFilter,
-  resolveTransitionHooks,
-  setBlockTracking,
-  setDevtoolsHook,
-  setTransitionHooks,
-  shallowReactive,
-  shallowReadonly,
-  shallowRef,
-  ssrContextKey,
-  ssrUtils,
-  stop,
-  toDisplayString,
-  toHandlerKey,
-  toHandlers,
-  toRaw,
-  toRef,
-  toRefs,
-  transformVNodeArgs,
-  triggerRef,
-  unref,
-  useAttrs,
-  useCssModule,
-  useCssVars,
-  useSSRContext,
-  useSlots,
-  useTransitionState,
-  vModelCheckbox,
-  vModelDynamic,
-  vModelRadio,
-  vModelSelect,
-  vModelText,
-  vShow,
-  version,
-  warn,
-  watch,
-  watchEffect,
-  watchPostEffect,
-  watchSyncEffect,
-  withAsyncContext,
-  withCtx,
-  withDefaults,
-  withDirectives,
-  withKeys,
-  withMemo,
-  withModifiers,
-  withScopeId
-};
-//# sourceMappingURL=vue.js.map

+ 0 - 7
docs/.vitepress/cache/deps/vue.js.map

@@ -1,7 +0,0 @@
-{
-  "version": 3,
-  "sources": [],
-  "sourcesContent": [],
-  "mappings": "",
-  "names": []
-}

+ 1 - 0
docs/.vitepress/config.ts

@@ -99,6 +99,7 @@ export default defineConfig({
     plugins: [svgLoader(), Unocss()],
     resolve: {
       alias: {
+        '@tresjs/core': resolve(__dirname, '../../dist/tres.js'),
         '/@': resolve(__dirname, '../../dist'),
       },
     },

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.