var _a, _b, _c, _d;
import { j as jsxRuntimeExports, r as reactExports, R as React, a as requireReact, b as requireReactDom, g as getDefaultExportFromCjs, P as PLUGIN_VERSION, c as create, d as React$1, e as clientExports } from "./react.js";
var prefix = "Invariant failed";
function invariant(condition, message) {
  if (condition) {
    return;
  }
  {
    throw new Error(prefix);
  }
}
function warning(condition, message) {
}
const __storeToDerived = /* @__PURE__ */ new WeakMap();
const __derivedToStore = /* @__PURE__ */ new WeakMap();
const __depsThatHaveWrittenThisTick = {
  current: []
};
let __isFlushing = false;
let __batchDepth = 0;
const __pendingUpdates = /* @__PURE__ */ new Set();
const __initialBatchValues = /* @__PURE__ */ new Map();
function __flush_internals(relatedVals) {
  const sorted = Array.from(relatedVals).sort((a, b) => {
    if (a instanceof Derived && a.options.deps.includes(b)) return 1;
    if (b instanceof Derived && b.options.deps.includes(a)) return -1;
    return 0;
  });
  for (const derived of sorted) {
    if (__depsThatHaveWrittenThisTick.current.includes(derived)) {
      continue;
    }
    __depsThatHaveWrittenThisTick.current.push(derived);
    derived.recompute();
    const stores = __derivedToStore.get(derived);
    if (stores) {
      for (const store of stores) {
        const relatedLinkedDerivedVals = __storeToDerived.get(store);
        if (!relatedLinkedDerivedVals) continue;
        __flush_internals(relatedLinkedDerivedVals);
      }
    }
  }
}
function __notifyListeners(store) {
  store.listeners.forEach(
    (listener) => listener({
      prevVal: store.prevState,
      currentVal: store.state
    })
  );
}
function __notifyDerivedListeners(derived) {
  derived.listeners.forEach(
    (listener) => listener({
      prevVal: derived.prevState,
      currentVal: derived.state
    })
  );
}
function __flush(store) {
  if (__batchDepth > 0 && !__initialBatchValues.has(store)) {
    __initialBatchValues.set(store, store.prevState);
  }
  __pendingUpdates.add(store);
  if (__batchDepth > 0) return;
  if (__isFlushing) return;
  try {
    __isFlushing = true;
    while (__pendingUpdates.size > 0) {
      const stores = Array.from(__pendingUpdates);
      __pendingUpdates.clear();
      for (const store2 of stores) {
        const prevState = __initialBatchValues.get(store2) ?? store2.prevState;
        store2.prevState = prevState;
        __notifyListeners(store2);
      }
      for (const store2 of stores) {
        const derivedVals = __storeToDerived.get(store2);
        if (!derivedVals) continue;
        __depsThatHaveWrittenThisTick.current.push(store2);
        __flush_internals(derivedVals);
      }
      for (const store2 of stores) {
        const derivedVals = __storeToDerived.get(store2);
        if (!derivedVals) continue;
        for (const derived of derivedVals) {
          __notifyDerivedListeners(derived);
        }
      }
    }
  } finally {
    __isFlushing = false;
    __depsThatHaveWrittenThisTick.current = [];
    __initialBatchValues.clear();
  }
}
function batch(fn) {
  __batchDepth++;
  try {
    fn();
  } finally {
    __batchDepth--;
    if (__batchDepth === 0) {
      const pendingUpdateToFlush = Array.from(__pendingUpdates)[0];
      if (pendingUpdateToFlush) {
        __flush(pendingUpdateToFlush);
      }
    }
  }
}
function isUpdaterFunction(updater) {
  return typeof updater === "function";
}
class Store {
  constructor(initialState, options) {
    this.listeners = /* @__PURE__ */ new Set();
    this.subscribe = (listener) => {
      var _a2, _b2;
      this.listeners.add(listener);
      const unsub = (_b2 = (_a2 = this.options) == null ? void 0 : _a2.onSubscribe) == null ? void 0 : _b2.call(_a2, listener, this);
      return () => {
        this.listeners.delete(listener);
        unsub == null ? void 0 : unsub();
      };
    };
    this.prevState = initialState;
    this.state = initialState;
    this.options = options;
  }
  setState(updater) {
    var _a2, _b2, _c2;
    this.prevState = this.state;
    if ((_a2 = this.options) == null ? void 0 : _a2.updateFn) {
      this.state = this.options.updateFn(this.prevState)(updater);
    } else {
      if (isUpdaterFunction(updater)) {
        this.state = updater(this.prevState);
      } else {
        this.state = updater;
      }
    }
    (_c2 = (_b2 = this.options) == null ? void 0 : _b2.onUpdate) == null ? void 0 : _c2.call(_b2);
    __flush(this);
  }
}
class Derived {
  constructor(options) {
    this.listeners = /* @__PURE__ */ new Set();
    this._subscriptions = [];
    this.lastSeenDepValues = [];
    this.getDepVals = () => {
      const prevDepVals = [];
      const currDepVals = [];
      for (const dep of this.options.deps) {
        prevDepVals.push(dep.prevState);
        currDepVals.push(dep.state);
      }
      this.lastSeenDepValues = currDepVals;
      return {
        prevDepVals,
        currDepVals,
        prevVal: this.prevState ?? void 0
      };
    };
    this.recompute = () => {
      var _a2, _b2;
      this.prevState = this.state;
      const { prevDepVals, currDepVals, prevVal } = this.getDepVals();
      this.state = this.options.fn({
        prevDepVals,
        currDepVals,
        prevVal
      });
      (_b2 = (_a2 = this.options).onUpdate) == null ? void 0 : _b2.call(_a2);
    };
    this.checkIfRecalculationNeededDeeply = () => {
      for (const dep of this.options.deps) {
        if (dep instanceof Derived) {
          dep.checkIfRecalculationNeededDeeply();
        }
      }
      let shouldRecompute = false;
      const lastSeenDepValues = this.lastSeenDepValues;
      const { currDepVals } = this.getDepVals();
      for (let i = 0; i < currDepVals.length; i++) {
        if (currDepVals[i] !== lastSeenDepValues[i]) {
          shouldRecompute = true;
          break;
        }
      }
      if (shouldRecompute) {
        this.recompute();
      }
    };
    this.mount = () => {
      this.registerOnGraph();
      this.checkIfRecalculationNeededDeeply();
      return () => {
        this.unregisterFromGraph();
        for (const cleanup of this._subscriptions) {
          cleanup();
        }
      };
    };
    this.subscribe = (listener) => {
      var _a2, _b2;
      this.listeners.add(listener);
      const unsub = (_b2 = (_a2 = this.options).onSubscribe) == null ? void 0 : _b2.call(_a2, listener, this);
      return () => {
        this.listeners.delete(listener);
        unsub == null ? void 0 : unsub();
      };
    };
    this.options = options;
    this.state = options.fn({
      prevDepVals: void 0,
      prevVal: void 0,
      currDepVals: this.getDepVals().currDepVals
    });
  }
  registerOnGraph(deps = this.options.deps) {
    for (const dep of deps) {
      if (dep instanceof Derived) {
        dep.registerOnGraph();
        this.registerOnGraph(dep.options.deps);
      } else if (dep instanceof Store) {
        let relatedLinkedDerivedVals = __storeToDerived.get(dep);
        if (!relatedLinkedDerivedVals) {
          relatedLinkedDerivedVals = /* @__PURE__ */ new Set();
          __storeToDerived.set(dep, relatedLinkedDerivedVals);
        }
        relatedLinkedDerivedVals.add(this);
        let relatedStores = __derivedToStore.get(this);
        if (!relatedStores) {
          relatedStores = /* @__PURE__ */ new Set();
          __derivedToStore.set(this, relatedStores);
        }
        relatedStores.add(dep);
      }
    }
  }
  unregisterFromGraph(deps = this.options.deps) {
    for (const dep of deps) {
      if (dep instanceof Derived) {
        this.unregisterFromGraph(dep.options.deps);
      } else if (dep instanceof Store) {
        const relatedLinkedDerivedVals = __storeToDerived.get(dep);
        if (relatedLinkedDerivedVals) {
          relatedLinkedDerivedVals.delete(this);
        }
        const relatedStores = __derivedToStore.get(this);
        if (relatedStores) {
          relatedStores.delete(dep);
        }
      }
    }
  }
}
const stateIndexKey = "__TSR_index";
const popStateEvent = "popstate";
const beforeUnloadEvent = "beforeunload";
function createHistory(opts) {
  let location = opts.getLocation();
  const subscribers = /* @__PURE__ */ new Set();
  const notify = (action) => {
    location = opts.getLocation();
    subscribers.forEach((subscriber) => subscriber({ location, action }));
  };
  const handleIndexChange = (action) => {
    if (opts.notifyOnIndexChange ?? true) notify(action);
    else location = opts.getLocation();
  };
  const tryNavigation = async ({
    task,
    navigateOpts,
    ...actionInfo
  }) => {
    var _a2, _b2;
    const ignoreBlocker = (navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false;
    if (ignoreBlocker) {
      task();
      return;
    }
    const blockers = ((_a2 = opts.getBlockers) == null ? void 0 : _a2.call(opts)) ?? [];
    const isPushOrReplace = actionInfo.type === "PUSH" || actionInfo.type === "REPLACE";
    if (typeof document !== "undefined" && blockers.length && isPushOrReplace) {
      for (const blocker of blockers) {
        const nextLocation = parseHref(actionInfo.path, actionInfo.state);
        const isBlocked = await blocker.blockerFn({
          currentLocation: location,
          nextLocation,
          action: actionInfo.type
        });
        if (isBlocked) {
          (_b2 = opts.onBlocked) == null ? void 0 : _b2.call(opts);
          return;
        }
      }
    }
    task();
  };
  return {
    get location() {
      return location;
    },
    get length() {
      return opts.getLength();
    },
    subscribers,
    subscribe: (cb) => {
      subscribers.add(cb);
      return () => {
        subscribers.delete(cb);
      };
    },
    push: (path, state, navigateOpts) => {
      const currentIndex = location.state[stateIndexKey];
      state = assignKeyAndIndex(currentIndex + 1, state);
      tryNavigation({
        task: () => {
          opts.pushState(path, state);
          notify({ type: "PUSH" });
        },
        navigateOpts,
        type: "PUSH",
        path,
        state
      });
    },
    replace: (path, state, navigateOpts) => {
      const currentIndex = location.state[stateIndexKey];
      state = assignKeyAndIndex(currentIndex, state);
      tryNavigation({
        task: () => {
          opts.replaceState(path, state);
          notify({ type: "REPLACE" });
        },
        navigateOpts,
        type: "REPLACE",
        path,
        state
      });
    },
    go: (index2, navigateOpts) => {
      tryNavigation({
        task: () => {
          opts.go(index2);
          handleIndexChange({ type: "GO", index: index2 });
        },
        navigateOpts,
        type: "GO"
      });
    },
    back: (navigateOpts) => {
      tryNavigation({
        task: () => {
          opts.back((navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false);
          handleIndexChange({ type: "BACK" });
        },
        navigateOpts,
        type: "BACK"
      });
    },
    forward: (navigateOpts) => {
      tryNavigation({
        task: () => {
          opts.forward((navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false);
          handleIndexChange({ type: "FORWARD" });
        },
        navigateOpts,
        type: "FORWARD"
      });
    },
    canGoBack: () => location.state[stateIndexKey] !== 0,
    createHref: (str) => opts.createHref(str),
    block: (blocker) => {
      var _a2;
      if (!opts.setBlockers) return () => {
      };
      const blockers = ((_a2 = opts.getBlockers) == null ? void 0 : _a2.call(opts)) ?? [];
      opts.setBlockers([...blockers, blocker]);
      return () => {
        var _a22, _b2;
        const blockers2 = ((_a22 = opts.getBlockers) == null ? void 0 : _a22.call(opts)) ?? [];
        (_b2 = opts.setBlockers) == null ? void 0 : _b2.call(opts, blockers2.filter((b) => b !== blocker));
      };
    },
    flush: () => {
      var _a2;
      return (_a2 = opts.flush) == null ? void 0 : _a2.call(opts);
    },
    destroy: () => {
      var _a2;
      return (_a2 = opts.destroy) == null ? void 0 : _a2.call(opts);
    },
    notify
  };
}
function assignKeyAndIndex(index2, state) {
  if (!state) {
    state = {};
  }
  const key = createRandomKey();
  return {
    ...state,
    key,
    // TODO: Remove in v2 - use __TSR_key instead
    __TSR_key: key,
    [stateIndexKey]: index2
  };
}
function createBrowserHistory(opts) {
  var _a2, _b2;
  const win = (opts == null ? void 0 : opts.window) ?? (typeof document !== "undefined" ? window : void 0);
  const originalPushState = win.history.pushState;
  const originalReplaceState = win.history.replaceState;
  let blockers = [];
  const _getBlockers = () => blockers;
  const _setBlockers = (newBlockers) => blockers = newBlockers;
  const createHref = (opts == null ? void 0 : opts.createHref) ?? ((path) => path);
  const parseLocation = (opts == null ? void 0 : opts.parseLocation) ?? (() => parseHref(
    `${win.location.pathname}${win.location.search}${win.location.hash}`,
    win.history.state
  ));
  if (!((_a2 = win.history.state) == null ? void 0 : _a2.__TSR_key) && !((_b2 = win.history.state) == null ? void 0 : _b2.key)) {
    const addedKey = createRandomKey();
    win.history.replaceState(
      {
        [stateIndexKey]: 0,
        key: addedKey,
        // TODO: Remove in v2 - use __TSR_key instead
        __TSR_key: addedKey
      },
      ""
    );
  }
  let currentLocation = parseLocation();
  let rollbackLocation;
  let nextPopIsGo = false;
  let ignoreNextPop = false;
  let skipBlockerNextPop = false;
  let ignoreNextBeforeUnload = false;
  const getLocation = () => currentLocation;
  let next;
  let scheduled;
  const flush = () => {
    if (!next) {
      return;
    }
    history._ignoreSubscribers = true;
    (next.isPush ? win.history.pushState : win.history.replaceState)(
      next.state,
      "",
      next.href
    );
    history._ignoreSubscribers = false;
    next = void 0;
    scheduled = void 0;
    rollbackLocation = void 0;
  };
  const queueHistoryAction = (type, destHref, state) => {
    const href = createHref(destHref);
    if (!scheduled) {
      rollbackLocation = currentLocation;
    }
    currentLocation = parseHref(destHref, state);
    next = {
      href,
      state,
      isPush: (next == null ? void 0 : next.isPush) || type === "push"
    };
    if (!scheduled) {
      scheduled = Promise.resolve().then(() => flush());
    }
  };
  const onPushPop = (type) => {
    currentLocation = parseLocation();
    history.notify({ type });
  };
  const onPushPopEvent = async () => {
    if (ignoreNextPop) {
      ignoreNextPop = false;
      return;
    }
    const nextLocation = parseLocation();
    const delta = nextLocation.state[stateIndexKey] - currentLocation.state[stateIndexKey];
    const isForward = delta === 1;
    const isBack = delta === -1;
    const isGo = !isForward && !isBack || nextPopIsGo;
    nextPopIsGo = false;
    const action = isGo ? "GO" : isBack ? "BACK" : "FORWARD";
    const notify = isGo ? {
      type: "GO",
      index: delta
    } : {
      type: isBack ? "BACK" : "FORWARD"
    };
    if (skipBlockerNextPop) {
      skipBlockerNextPop = false;
    } else {
      const blockers2 = _getBlockers();
      if (typeof document !== "undefined" && blockers2.length) {
        for (const blocker of blockers2) {
          const isBlocked = await blocker.blockerFn({
            currentLocation,
            nextLocation,
            action
          });
          if (isBlocked) {
            ignoreNextPop = true;
            win.history.go(1);
            history.notify(notify);
            return;
          }
        }
      }
    }
    currentLocation = parseLocation();
    history.notify(notify);
  };
  const onBeforeUnload = (e) => {
    if (ignoreNextBeforeUnload) {
      ignoreNextBeforeUnload = false;
      return;
    }
    let shouldBlock = false;
    const blockers2 = _getBlockers();
    if (typeof document !== "undefined" && blockers2.length) {
      for (const blocker of blockers2) {
        const shouldHaveBeforeUnload = blocker.enableBeforeUnload ?? true;
        if (shouldHaveBeforeUnload === true) {
          shouldBlock = true;
          break;
        }
        if (typeof shouldHaveBeforeUnload === "function" && shouldHaveBeforeUnload() === true) {
          shouldBlock = true;
          break;
        }
      }
    }
    if (shouldBlock) {
      e.preventDefault();
      return e.returnValue = "";
    }
    return;
  };
  const history = createHistory({
    getLocation,
    getLength: () => win.history.length,
    pushState: (href, state) => queueHistoryAction("push", href, state),
    replaceState: (href, state) => queueHistoryAction("replace", href, state),
    back: (ignoreBlocker) => {
      if (ignoreBlocker) skipBlockerNextPop = true;
      ignoreNextBeforeUnload = true;
      return win.history.back();
    },
    forward: (ignoreBlocker) => {
      if (ignoreBlocker) skipBlockerNextPop = true;
      ignoreNextBeforeUnload = true;
      win.history.forward();
    },
    go: (n) => {
      nextPopIsGo = true;
      win.history.go(n);
    },
    createHref: (href) => createHref(href),
    flush,
    destroy: () => {
      win.history.pushState = originalPushState;
      win.history.replaceState = originalReplaceState;
      win.removeEventListener(beforeUnloadEvent, onBeforeUnload, {
        capture: true
      });
      win.removeEventListener(popStateEvent, onPushPopEvent);
    },
    onBlocked: () => {
      if (rollbackLocation && currentLocation !== rollbackLocation) {
        currentLocation = rollbackLocation;
      }
    },
    getBlockers: _getBlockers,
    setBlockers: _setBlockers,
    notifyOnIndexChange: false
  });
  win.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });
  win.addEventListener(popStateEvent, onPushPopEvent);
  win.history.pushState = function(...args) {
    const res = originalPushState.apply(win.history, args);
    if (!history._ignoreSubscribers) onPushPop("PUSH");
    return res;
  };
  win.history.replaceState = function(...args) {
    const res = originalReplaceState.apply(win.history, args);
    if (!history._ignoreSubscribers) onPushPop("REPLACE");
    return res;
  };
  return history;
}
function createHashHistory(opts) {
  const win = typeof document !== "undefined" ? window : void 0;
  return createBrowserHistory({
    window: win,
    parseLocation: () => {
      const hashSplit = win.location.hash.split("#").slice(1);
      const pathPart = hashSplit[0] ?? "/";
      const searchPart = win.location.search;
      const hashEntries = hashSplit.slice(1);
      const hashPart = hashEntries.length === 0 ? "" : `#${hashEntries.join("#")}`;
      const hashHref = `${pathPart}${searchPart}${hashPart}`;
      return parseHref(hashHref, win.history.state);
    },
    createHref: (href) => `${win.location.pathname}${win.location.search}#${href}`
  });
}
function createMemoryHistory(opts = {
  initialEntries: ["/"]
}) {
  const entries = opts.initialEntries;
  let index2 = opts.initialIndex ? Math.min(Math.max(opts.initialIndex, 0), entries.length - 1) : entries.length - 1;
  const states = entries.map(
    (_entry, index22) => assignKeyAndIndex(index22, void 0)
  );
  const getLocation = () => parseHref(entries[index2], states[index2]);
  return createHistory({
    getLocation,
    getLength: () => entries.length,
    pushState: (path, state) => {
      if (index2 < entries.length - 1) {
        entries.splice(index2 + 1);
        states.splice(index2 + 1);
      }
      states.push(state);
      entries.push(path);
      index2 = Math.max(entries.length - 1, 0);
    },
    replaceState: (path, state) => {
      states[index2] = state;
      entries[index2] = path;
    },
    back: () => {
      index2 = Math.max(index2 - 1, 0);
    },
    forward: () => {
      index2 = Math.min(index2 + 1, entries.length - 1);
    },
    go: (n) => {
      index2 = Math.min(Math.max(index2 + n, 0), entries.length - 1);
    },
    createHref: (path) => path
  });
}
function parseHref(href, state) {
  const hashIndex = href.indexOf("#");
  const searchIndex = href.indexOf("?");
  const addedKey = createRandomKey();
  return {
    href,
    pathname: href.substring(
      0,
      hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : href.length
    ),
    hash: hashIndex > -1 ? href.substring(hashIndex) : "",
    search: searchIndex > -1 ? href.slice(searchIndex, hashIndex === -1 ? void 0 : hashIndex) : "",
    state: state || { [stateIndexKey]: 0, key: addedKey, __TSR_key: addedKey }
  };
}
function createRandomKey() {
  return (Math.random() + 1).toString(36).substring(7);
}
function last(arr) {
  return arr[arr.length - 1];
}
function isFunction$2(d) {
  return typeof d === "function";
}
function functionalUpdate(updater, previous) {
  if (isFunction$2(updater)) {
    return updater(previous);
  }
  return updater;
}
function replaceEqualDeep(prev, _next) {
  if (prev === _next) {
    return prev;
  }
  const next = _next;
  const array = isPlainArray(prev) && isPlainArray(next);
  if (array || isSimplePlainObject(prev) && isSimplePlainObject(next)) {
    const prevItems = array ? prev : Object.keys(prev).concat(
      Object.getOwnPropertySymbols(prev)
    );
    const prevSize = prevItems.length;
    const nextItems = array ? next : Object.keys(next).concat(
      Object.getOwnPropertySymbols(next)
    );
    const nextSize = nextItems.length;
    const copy = array ? [] : {};
    let equalItems = 0;
    for (let i = 0; i < nextSize; i++) {
      const key = array ? i : nextItems[i];
      if ((!array && prevItems.includes(key) || array) && prev[key] === void 0 && next[key] === void 0) {
        copy[key] = void 0;
        equalItems++;
      } else {
        copy[key] = replaceEqualDeep(prev[key], next[key]);
        if (copy[key] === prev[key] && prev[key] !== void 0) {
          equalItems++;
        }
      }
    }
    return prevSize === nextSize && equalItems === prevSize ? prev : copy;
  }
  return next;
}
function isSimplePlainObject(o) {
  return (
    // all the checks from isPlainObject are more likely to hit so we perform them first
    isPlainObject(o) && Object.getOwnPropertyNames(o).length === Object.keys(o).length
  );
}
function isPlainObject(o) {
  if (!hasObjectPrototype(o)) {
    return false;
  }
  const ctor = o.constructor;
  if (typeof ctor === "undefined") {
    return true;
  }
  const prot = ctor.prototype;
  if (!hasObjectPrototype(prot)) {
    return false;
  }
  if (!prot.hasOwnProperty("isPrototypeOf")) {
    return false;
  }
  return true;
}
function hasObjectPrototype(o) {
  return Object.prototype.toString.call(o) === "[object Object]";
}
function isPlainArray(value) {
  return Array.isArray(value) && value.length === Object.keys(value).length;
}
function getObjectKeys(obj, ignoreUndefined) {
  let keys = Object.keys(obj);
  if (ignoreUndefined) {
    keys = keys.filter((key) => obj[key] !== void 0);
  }
  return keys;
}
function deepEqual$1(a, b, opts) {
  if (a === b) {
    return true;
  }
  if (typeof a !== typeof b) {
    return false;
  }
  if (isPlainObject(a) && isPlainObject(b)) {
    const ignoreUndefined = (opts == null ? void 0 : opts.ignoreUndefined) ?? true;
    const aKeys = getObjectKeys(a, ignoreUndefined);
    const bKeys = getObjectKeys(b, ignoreUndefined);
    if (!(opts == null ? void 0 : opts.partial) && aKeys.length !== bKeys.length) {
      return false;
    }
    return bKeys.every((key) => deepEqual$1(a[key], b[key], opts));
  }
  if (Array.isArray(a) && Array.isArray(b)) {
    if (a.length !== b.length) {
      return false;
    }
    return !a.some((item, index2) => !deepEqual$1(item, b[index2], opts));
  }
  return false;
}
function createControlledPromise(onResolve) {
  let resolveLoadPromise;
  let rejectLoadPromise;
  const controlledPromise = new Promise((resolve, reject) => {
    resolveLoadPromise = resolve;
    rejectLoadPromise = reject;
  });
  controlledPromise.status = "pending";
  controlledPromise.resolve = (value) => {
    controlledPromise.status = "resolved";
    controlledPromise.value = value;
    resolveLoadPromise(value);
    onResolve == null ? void 0 : onResolve(value);
  };
  controlledPromise.reject = (e) => {
    controlledPromise.status = "rejected";
    rejectLoadPromise(e);
  };
  return controlledPromise;
}
function isPromise(value) {
  return Boolean(
    value && typeof value === "object" && typeof value.then === "function"
  );
}
const SEGMENT_TYPE_PATHNAME = 0;
const SEGMENT_TYPE_PARAM = 1;
const SEGMENT_TYPE_WILDCARD = 2;
const SEGMENT_TYPE_OPTIONAL_PARAM = 3;
function joinPaths(paths) {
  return cleanPath(
    paths.filter((val) => {
      return val !== void 0;
    }).join("/")
  );
}
function cleanPath(path) {
  return path.replace(/\/{2,}/g, "/");
}
function trimPathLeft(path) {
  return path === "/" ? path : path.replace(/^\/{1,}/, "");
}
function trimPathRight(path) {
  return path === "/" ? path : path.replace(/\/{1,}$/, "");
}
function trimPath(path) {
  return trimPathRight(trimPathLeft(path));
}
function removeTrailingSlash(value, basepath) {
  if ((value == null ? void 0 : value.endsWith("/")) && value !== "/" && value !== `${basepath}/`) {
    return value.slice(0, -1);
  }
  return value;
}
function exactPathTest(pathName1, pathName2, basepath) {
  return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);
}
function segmentToString(segment) {
  const { type, value } = segment;
  if (type === SEGMENT_TYPE_PATHNAME) {
    return value;
  }
  const { prefixSegment, suffixSegment } = segment;
  if (type === SEGMENT_TYPE_PARAM) {
    const param = value.substring(1);
    if (prefixSegment && suffixSegment) {
      return `${prefixSegment}{$${param}}${suffixSegment}`;
    } else if (prefixSegment) {
      return `${prefixSegment}{$${param}}`;
    } else if (suffixSegment) {
      return `{$${param}}${suffixSegment}`;
    }
  }
  if (type === SEGMENT_TYPE_OPTIONAL_PARAM) {
    const param = value.substring(1);
    if (prefixSegment && suffixSegment) {
      return `${prefixSegment}{-$${param}}${suffixSegment}`;
    } else if (prefixSegment) {
      return `${prefixSegment}{-$${param}}`;
    } else if (suffixSegment) {
      return `{-$${param}}${suffixSegment}`;
    }
    return `{-$${param}}`;
  }
  if (type === SEGMENT_TYPE_WILDCARD) {
    if (prefixSegment && suffixSegment) {
      return `${prefixSegment}{$}${suffixSegment}`;
    } else if (prefixSegment) {
      return `${prefixSegment}{$}`;
    } else if (suffixSegment) {
      return `{$}${suffixSegment}`;
    }
  }
  return value;
}
function resolvePath({
  basepath,
  base,
  to,
  trailingSlash = "never",
  caseSensitive,
  parseCache
}) {
  var _a2;
  base = removeBasepath(basepath, base, caseSensitive);
  to = removeBasepath(basepath, to, caseSensitive);
  let baseSegments = parsePathname(base, parseCache).slice();
  const toSegments = parsePathname(to, parseCache);
  if (baseSegments.length > 1 && ((_a2 = last(baseSegments)) == null ? void 0 : _a2.value) === "/") {
    baseSegments.pop();
  }
  for (let index2 = 0, length = toSegments.length; index2 < length; index2++) {
    const toSegment = toSegments[index2];
    const value = toSegment.value;
    if (value === "/") {
      if (!index2) {
        baseSegments = [toSegment];
      } else if (index2 === length - 1) {
        baseSegments.push(toSegment);
      } else ;
    } else if (value === "..") {
      baseSegments.pop();
    } else if (value === ".") ;
    else {
      baseSegments.push(toSegment);
    }
  }
  if (baseSegments.length > 1) {
    if (last(baseSegments).value === "/") {
      if (trailingSlash === "never") {
        baseSegments.pop();
      }
    } else if (trailingSlash === "always") {
      baseSegments.push({ type: SEGMENT_TYPE_PATHNAME, value: "/" });
    }
  }
  const segmentValues = baseSegments.map(segmentToString);
  const joined = joinPaths([basepath, ...segmentValues]);
  return joined;
}
const parsePathname = (pathname, cache) => {
  if (!pathname) return [];
  const cached = cache == null ? void 0 : cache.get(pathname);
  if (cached) return cached;
  const parsed = baseParsePathname(pathname);
  cache == null ? void 0 : cache.set(pathname, parsed);
  return parsed;
};
const PARAM_RE = /^\$.{1,}$/;
const PARAM_W_CURLY_BRACES_RE = /^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/;
const OPTIONAL_PARAM_W_CURLY_BRACES_RE = /^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/;
const WILDCARD_RE = /^\$$/;
const WILDCARD_W_CURLY_BRACES_RE = /^(.*?)\{\$\}(.*)$/;
function baseParsePathname(pathname) {
  pathname = cleanPath(pathname);
  const segments = [];
  if (pathname.slice(0, 1) === "/") {
    pathname = pathname.substring(1);
    segments.push({
      type: SEGMENT_TYPE_PATHNAME,
      value: "/"
    });
  }
  if (!pathname) {
    return segments;
  }
  const split = pathname.split("/").filter(Boolean);
  segments.push(
    ...split.map((part) => {
      const wildcardBracesMatch = part.match(WILDCARD_W_CURLY_BRACES_RE);
      if (wildcardBracesMatch) {
        const prefix2 = wildcardBracesMatch[1];
        const suffix = wildcardBracesMatch[2];
        return {
          type: SEGMENT_TYPE_WILDCARD,
          value: "$",
          prefixSegment: prefix2 || void 0,
          suffixSegment: suffix || void 0
        };
      }
      const optionalParamBracesMatch = part.match(
        OPTIONAL_PARAM_W_CURLY_BRACES_RE
      );
      if (optionalParamBracesMatch) {
        const prefix2 = optionalParamBracesMatch[1];
        const paramName = optionalParamBracesMatch[2];
        const suffix = optionalParamBracesMatch[3];
        return {
          type: SEGMENT_TYPE_OPTIONAL_PARAM,
          value: paramName,
          // Now just $paramName (no prefix)
          prefixSegment: prefix2 || void 0,
          suffixSegment: suffix || void 0
        };
      }
      const paramBracesMatch = part.match(PARAM_W_CURLY_BRACES_RE);
      if (paramBracesMatch) {
        const prefix2 = paramBracesMatch[1];
        const paramName = paramBracesMatch[2];
        const suffix = paramBracesMatch[3];
        return {
          type: SEGMENT_TYPE_PARAM,
          value: "" + paramName,
          prefixSegment: prefix2 || void 0,
          suffixSegment: suffix || void 0
        };
      }
      if (PARAM_RE.test(part)) {
        const paramName = part.substring(1);
        return {
          type: SEGMENT_TYPE_PARAM,
          value: "$" + paramName,
          prefixSegment: void 0,
          suffixSegment: void 0
        };
      }
      if (WILDCARD_RE.test(part)) {
        return {
          type: SEGMENT_TYPE_WILDCARD,
          value: "$",
          prefixSegment: void 0,
          suffixSegment: void 0
        };
      }
      return {
        type: SEGMENT_TYPE_PATHNAME,
        value: part.includes("%25") ? part.split("%25").map((segment) => decodeURI(segment)).join("%25") : decodeURI(part)
      };
    })
  );
  if (pathname.slice(-1) === "/") {
    pathname = pathname.substring(1);
    segments.push({
      type: SEGMENT_TYPE_PATHNAME,
      value: "/"
    });
  }
  return segments;
}
function interpolatePath({
  path,
  params,
  leaveWildcards,
  leaveParams,
  decodeCharMap,
  parseCache
}) {
  const interpolatedPathSegments = parsePathname(path, parseCache);
  function encodeParam(key) {
    const value = params[key];
    const isValueString = typeof value === "string";
    if (key === "*" || key === "_splat") {
      return isValueString ? encodeURI(value) : value;
    } else {
      return isValueString ? encodePathParam(value, decodeCharMap) : value;
    }
  }
  let isMissingParams = false;
  const usedParams = {};
  const interpolatedPath = joinPaths(
    interpolatedPathSegments.map((segment) => {
      if (segment.type === SEGMENT_TYPE_PATHNAME) {
        return segment.value;
      }
      if (segment.type === SEGMENT_TYPE_WILDCARD) {
        usedParams._splat = params._splat;
        const segmentPrefix = segment.prefixSegment || "";
        const segmentSuffix = segment.suffixSegment || "";
        if (!("_splat" in params)) {
          isMissingParams = true;
          if (leaveWildcards) {
            return `${segmentPrefix}${segment.value}${segmentSuffix}`;
          }
          if (segmentPrefix || segmentSuffix) {
            return `${segmentPrefix}${segmentSuffix}`;
          }
          return void 0;
        }
        const value = encodeParam("_splat");
        if (leaveWildcards) {
          return `${segmentPrefix}${segment.value}${value ?? ""}${segmentSuffix}`;
        }
        return `${segmentPrefix}${value}${segmentSuffix}`;
      }
      if (segment.type === SEGMENT_TYPE_PARAM) {
        const key = segment.value.substring(1);
        if (!isMissingParams && !(key in params)) {
          isMissingParams = true;
        }
        usedParams[key] = params[key];
        const segmentPrefix = segment.prefixSegment || "";
        const segmentSuffix = segment.suffixSegment || "";
        if (leaveParams) {
          const value = encodeParam(segment.value);
          return `${segmentPrefix}${segment.value}${value ?? ""}${segmentSuffix}`;
        }
        return `${segmentPrefix}${encodeParam(key) ?? "undefined"}${segmentSuffix}`;
      }
      if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {
        const key = segment.value.substring(1);
        const segmentPrefix = segment.prefixSegment || "";
        const segmentSuffix = segment.suffixSegment || "";
        if (!(key in params) || params[key] == null) {
          if (leaveWildcards) {
            return `${segmentPrefix}${key}${segmentSuffix}`;
          }
          if (segmentPrefix || segmentSuffix) {
            return `${segmentPrefix}${segmentSuffix}`;
          }
          return void 0;
        }
        usedParams[key] = params[key];
        if (leaveParams) {
          const value = encodeParam(segment.value);
          return `${segmentPrefix}${segment.value}${value ?? ""}${segmentSuffix}`;
        }
        if (leaveWildcards) {
          return `${segmentPrefix}${key}${encodeParam(key) ?? ""}${segmentSuffix}`;
        }
        return `${segmentPrefix}${encodeParam(key) ?? ""}${segmentSuffix}`;
      }
      return segment.value;
    })
  );
  return { usedParams, interpolatedPath, isMissingParams };
}
function encodePathParam(value, decodeCharMap) {
  let encoded = encodeURIComponent(value);
  if (decodeCharMap) {
    for (const [encodedChar, char] of decodeCharMap) {
      encoded = encoded.replaceAll(encodedChar, char);
    }
  }
  return encoded;
}
function matchPathname(basepath, currentPathname, matchLocation, parseCache) {
  const pathParams = matchByPath(
    basepath,
    currentPathname,
    matchLocation,
    parseCache
  );
  if (matchLocation.to && !pathParams) {
    return;
  }
  return pathParams ?? {};
}
function removeBasepath(basepath, pathname, caseSensitive = false) {
  const normalizedBasepath = caseSensitive ? basepath : basepath.toLowerCase();
  const normalizedPathname = caseSensitive ? pathname : pathname.toLowerCase();
  switch (true) {
    // default behaviour is to serve app from the root - pathname
    // left untouched
    case normalizedBasepath === "/":
      return pathname;
    // shortcut for removing the basepath if it matches the pathname
    case normalizedPathname === normalizedBasepath:
      return "";
    // in case pathname is shorter than basepath - there is
    // nothing to remove
    case pathname.length < basepath.length:
      return pathname;
    // avoid matching partial segments - strict equality handled
    // earlier, otherwise, basepath separated from pathname with
    // separator, therefore lack of separator means partial
    // segment match (`/app` should not match `/application`)
    case normalizedPathname[normalizedBasepath.length] !== "/":
      return pathname;
    // remove the basepath from the pathname if it starts with it
    case normalizedPathname.startsWith(normalizedBasepath):
      return pathname.slice(basepath.length);
    // otherwise, return the pathname as is
    default:
      return pathname;
  }
}
function matchByPath(basepath, from, {
  to,
  fuzzy,
  caseSensitive
}, parseCache) {
  if (basepath !== "/" && !from.startsWith(basepath)) {
    return void 0;
  }
  from = removeBasepath(basepath, from, caseSensitive);
  to = removeBasepath(basepath, `${to ?? "$"}`, caseSensitive);
  const baseSegments = parsePathname(
    from.startsWith("/") ? from : `/${from}`,
    parseCache
  );
  const routeSegments = parsePathname(
    to.startsWith("/") ? to : `/${to}`,
    parseCache
  );
  const params = {};
  const result = isMatch(
    baseSegments,
    routeSegments,
    params,
    fuzzy,
    caseSensitive
  );
  return result ? params : void 0;
}
function isMatch(baseSegments, routeSegments, params, fuzzy, caseSensitive) {
  var _a2, _b2, _c2;
  let baseIndex = 0;
  let routeIndex = 0;
  while (baseIndex < baseSegments.length || routeIndex < routeSegments.length) {
    const baseSegment = baseSegments[baseIndex];
    const routeSegment = routeSegments[routeIndex];
    if (routeSegment) {
      if (routeSegment.type === SEGMENT_TYPE_WILDCARD) {
        const remainingBaseSegments = baseSegments.slice(baseIndex);
        let _splat;
        if (routeSegment.prefixSegment || routeSegment.suffixSegment) {
          if (!baseSegment) return false;
          const prefix2 = routeSegment.prefixSegment || "";
          const suffix = routeSegment.suffixSegment || "";
          const baseValue = baseSegment.value;
          if ("prefixSegment" in routeSegment) {
            if (!baseValue.startsWith(prefix2)) {
              return false;
            }
          }
          if ("suffixSegment" in routeSegment) {
            if (!((_a2 = baseSegments[baseSegments.length - 1]) == null ? void 0 : _a2.value.endsWith(suffix))) {
              return false;
            }
          }
          let rejoinedSplat = decodeURI(
            joinPaths(remainingBaseSegments.map((d) => d.value))
          );
          if (prefix2 && rejoinedSplat.startsWith(prefix2)) {
            rejoinedSplat = rejoinedSplat.slice(prefix2.length);
          }
          if (suffix && rejoinedSplat.endsWith(suffix)) {
            rejoinedSplat = rejoinedSplat.slice(
              0,
              rejoinedSplat.length - suffix.length
            );
          }
          _splat = rejoinedSplat;
        } else {
          _splat = decodeURI(
            joinPaths(remainingBaseSegments.map((d) => d.value))
          );
        }
        params["*"] = _splat;
        params["_splat"] = _splat;
        return true;
      }
      if (routeSegment.type === SEGMENT_TYPE_PATHNAME) {
        if (routeSegment.value === "/" && !(baseSegment == null ? void 0 : baseSegment.value)) {
          routeIndex++;
          continue;
        }
        if (baseSegment) {
          if (caseSensitive) {
            if (routeSegment.value !== baseSegment.value) {
              return false;
            }
          } else if (routeSegment.value.toLowerCase() !== baseSegment.value.toLowerCase()) {
            return false;
          }
          baseIndex++;
          routeIndex++;
          continue;
        } else {
          return false;
        }
      }
      if (routeSegment.type === SEGMENT_TYPE_PARAM) {
        if (!baseSegment) {
          return false;
        }
        if (baseSegment.value === "/") {
          return false;
        }
        let _paramValue = "";
        let matched = false;
        if (routeSegment.prefixSegment || routeSegment.suffixSegment) {
          const prefix2 = routeSegment.prefixSegment || "";
          const suffix = routeSegment.suffixSegment || "";
          const baseValue = baseSegment.value;
          if (prefix2 && !baseValue.startsWith(prefix2)) {
            return false;
          }
          if (suffix && !baseValue.endsWith(suffix)) {
            return false;
          }
          let paramValue = baseValue;
          if (prefix2 && paramValue.startsWith(prefix2)) {
            paramValue = paramValue.slice(prefix2.length);
          }
          if (suffix && paramValue.endsWith(suffix)) {
            paramValue = paramValue.slice(0, paramValue.length - suffix.length);
          }
          _paramValue = decodeURIComponent(paramValue);
          matched = true;
        } else {
          _paramValue = decodeURIComponent(baseSegment.value);
          matched = true;
        }
        if (matched) {
          params[routeSegment.value.substring(1)] = _paramValue;
          baseIndex++;
        }
        routeIndex++;
        continue;
      }
      if (routeSegment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {
        if (!baseSegment) {
          routeIndex++;
          continue;
        }
        if (baseSegment.value === "/") {
          routeIndex++;
          continue;
        }
        let _paramValue = "";
        let matched = false;
        if (routeSegment.prefixSegment || routeSegment.suffixSegment) {
          const prefix2 = routeSegment.prefixSegment || "";
          const suffix = routeSegment.suffixSegment || "";
          const baseValue = baseSegment.value;
          if ((!prefix2 || baseValue.startsWith(prefix2)) && (!suffix || baseValue.endsWith(suffix))) {
            let paramValue = baseValue;
            if (prefix2 && paramValue.startsWith(prefix2)) {
              paramValue = paramValue.slice(prefix2.length);
            }
            if (suffix && paramValue.endsWith(suffix)) {
              paramValue = paramValue.slice(
                0,
                paramValue.length - suffix.length
              );
            }
            _paramValue = decodeURIComponent(paramValue);
            matched = true;
          }
        } else {
          let shouldMatchOptional = true;
          for (let lookAhead = routeIndex + 1; lookAhead < routeSegments.length; lookAhead++) {
            const futureRouteSegment = routeSegments[lookAhead];
            if ((futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_PATHNAME && futureRouteSegment.value === baseSegment.value) {
              shouldMatchOptional = false;
              break;
            }
            if ((futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_PARAM || (futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_WILDCARD) {
              if (baseSegments.length < routeSegments.length) {
                shouldMatchOptional = false;
              }
              break;
            }
          }
          if (shouldMatchOptional) {
            _paramValue = decodeURIComponent(baseSegment.value);
            matched = true;
          }
        }
        if (matched) {
          params[routeSegment.value.substring(1)] = _paramValue;
          baseIndex++;
        }
        routeIndex++;
        continue;
      }
    }
    if (baseIndex < baseSegments.length && routeIndex >= routeSegments.length) {
      params["**"] = joinPaths(
        baseSegments.slice(baseIndex).map((d) => d.value)
      );
      return !!fuzzy && ((_b2 = routeSegments[routeSegments.length - 1]) == null ? void 0 : _b2.value) !== "/";
    }
    if (routeIndex < routeSegments.length && baseIndex >= baseSegments.length) {
      for (let i = routeIndex; i < routeSegments.length; i++) {
        if (((_c2 = routeSegments[i]) == null ? void 0 : _c2.type) !== SEGMENT_TYPE_OPTIONAL_PARAM) {
          return false;
        }
      }
      break;
    }
    break;
  }
  return true;
}
function isNotFound(obj) {
  return !!(obj == null ? void 0 : obj.isNotFound);
}
function getSafeSessionStorage() {
  try {
    if (typeof window !== "undefined" && typeof window.sessionStorage === "object") {
      return window.sessionStorage;
    }
  } catch {
  }
  return void 0;
}
const storageKey = "tsr-scroll-restoration-v1_3";
const throttle = (fn, wait) => {
  let timeout;
  return (...args) => {
    if (!timeout) {
      timeout = setTimeout(() => {
        fn(...args);
        timeout = null;
      }, wait);
    }
  };
};
function createScrollRestorationCache() {
  const safeSessionStorage = getSafeSessionStorage();
  if (!safeSessionStorage) {
    return void 0;
  }
  const persistedState = safeSessionStorage.getItem(storageKey);
  let state = persistedState ? JSON.parse(persistedState) : {};
  return {
    state,
    // This setter is simply to make sure that we set the sessionStorage right
    // after the state is updated. It doesn't necessarily need to be a functional
    // update.
    set: (updater) => (state = functionalUpdate(updater, state) || state, safeSessionStorage.setItem(storageKey, JSON.stringify(state)))
  };
}
const scrollRestorationCache = createScrollRestorationCache();
const defaultGetScrollRestorationKey = (location) => {
  return location.state.__TSR_key || location.href;
};
function getCssSelector(el) {
  const path = [];
  let parent;
  while (parent = el.parentNode) {
    path.push(
      `${el.tagName}:nth-child(${Array.prototype.indexOf.call(parent.children, el) + 1})`
    );
    el = parent;
  }
  return `${path.reverse().join(" > ")}`.toLowerCase();
}
let ignoreScroll = false;
function restoreScroll({
  storageKey: storageKey2,
  key,
  behavior,
  shouldScrollRestoration,
  scrollToTopSelectors,
  location
}) {
  var _a2, _b2;
  let byKey;
  try {
    byKey = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
  } catch (error) {
    console.error(error);
    return;
  }
  const resolvedKey = key || ((_a2 = window.history.state) == null ? void 0 : _a2.key);
  const elementEntries = byKey[resolvedKey];
  ignoreScroll = true;
  scroll: {
    if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {
      for (const elementSelector in elementEntries) {
        const entry = elementEntries[elementSelector];
        if (elementSelector === "window") {
          window.scrollTo({
            top: entry.scrollY,
            left: entry.scrollX,
            behavior
          });
        } else if (elementSelector) {
          const element = document.querySelector(elementSelector);
          if (element) {
            element.scrollLeft = entry.scrollX;
            element.scrollTop = entry.scrollY;
          }
        }
      }
      break scroll;
    }
    const hash = (location ?? window.location).hash.split("#", 2)[1];
    if (hash) {
      const hashScrollIntoViewOptions = ((_b2 = window.history.state) == null ? void 0 : _b2.__hashScrollIntoViewOptions) ?? true;
      if (hashScrollIntoViewOptions) {
        const el = document.getElementById(hash);
        if (el) {
          el.scrollIntoView(hashScrollIntoViewOptions);
        }
      }
      break scroll;
    }
    const scrollOptions = { top: 0, left: 0, behavior };
    window.scrollTo(scrollOptions);
    if (scrollToTopSelectors) {
      for (const selector of scrollToTopSelectors) {
        if (selector === "window") continue;
        const element = typeof selector === "function" ? selector() : document.querySelector(selector);
        if (element) element.scrollTo(scrollOptions);
      }
    }
  }
  ignoreScroll = false;
}
function setupScrollRestoration(router2, force) {
  if (scrollRestorationCache === void 0) {
    return;
  }
  const shouldScrollRestoration = router2.options.scrollRestoration ?? false;
  if (shouldScrollRestoration) {
    router2.isScrollRestoring = true;
  }
  if (typeof document === "undefined" || router2.isScrollRestorationSetup) {
    return;
  }
  router2.isScrollRestorationSetup = true;
  ignoreScroll = false;
  const getKey = router2.options.getScrollRestorationKey || defaultGetScrollRestorationKey;
  window.history.scrollRestoration = "manual";
  const onScroll = (event) => {
    if (ignoreScroll || !router2.isScrollRestoring) {
      return;
    }
    let elementSelector = "";
    if (event.target === document || event.target === window) {
      elementSelector = "window";
    } else {
      const attrId = event.target.getAttribute(
        "data-scroll-restoration-id"
      );
      if (attrId) {
        elementSelector = `[data-scroll-restoration-id="${attrId}"]`;
      } else {
        elementSelector = getCssSelector(event.target);
      }
    }
    const restoreKey = getKey(router2.state.location);
    scrollRestorationCache.set((state) => {
      const keyEntry = state[restoreKey] || (state[restoreKey] = {});
      const elementEntry = keyEntry[elementSelector] || (keyEntry[elementSelector] = {});
      if (elementSelector === "window") {
        elementEntry.scrollX = window.scrollX || 0;
        elementEntry.scrollY = window.scrollY || 0;
      } else if (elementSelector) {
        const element = document.querySelector(elementSelector);
        if (element) {
          elementEntry.scrollX = element.scrollLeft || 0;
          elementEntry.scrollY = element.scrollTop || 0;
        }
      }
      return state;
    });
  };
  if (typeof document !== "undefined") {
    document.addEventListener("scroll", throttle(onScroll, 100), true);
  }
  router2.subscribe("onRendered", (event) => {
    const cacheKey = getKey(event.toLocation);
    if (!router2.resetNextScroll) {
      router2.resetNextScroll = true;
      return;
    }
    restoreScroll({
      storageKey,
      key: cacheKey,
      behavior: router2.options.scrollRestorationBehavior,
      shouldScrollRestoration: router2.isScrollRestoring,
      scrollToTopSelectors: router2.options.scrollToTopSelectors,
      location: router2.history.location
    });
    if (router2.isScrollRestoring) {
      scrollRestorationCache.set((state) => {
        state[cacheKey] || (state[cacheKey] = {});
        return state;
      });
    }
  });
}
function handleHashScroll(router2) {
  if (typeof document !== "undefined" && document.querySelector) {
    const hashScrollIntoViewOptions = router2.state.location.state.__hashScrollIntoViewOptions ?? true;
    if (hashScrollIntoViewOptions && router2.state.location.hash !== "") {
      const el = document.getElementById(router2.state.location.hash);
      if (el) {
        el.scrollIntoView(hashScrollIntoViewOptions);
      }
    }
  }
}
function encode(obj, stringify = String) {
  const result = new URLSearchParams();
  for (const key in obj) {
    const val = obj[key];
    if (val !== void 0) {
      result.set(key, stringify(val));
    }
  }
  return result.toString();
}
function toValue$1(str) {
  if (!str) return "";
  if (str === "false") return false;
  if (str === "true") return true;
  return +str * 0 === 0 && +str + "" === str ? +str : str;
}
function decode(str) {
  const searchParams = new URLSearchParams(str);
  const result = {};
  for (const [key, value] of searchParams.entries()) {
    const previousValue = result[key];
    if (previousValue == null) {
      result[key] = toValue$1(value);
    } else if (Array.isArray(previousValue)) {
      previousValue.push(toValue$1(value));
    } else {
      result[key] = [previousValue, toValue$1(value)];
    }
  }
  return result;
}
const defaultParseSearch = parseSearchWith(JSON.parse);
const defaultStringifySearch = stringifySearchWith(
  JSON.stringify,
  JSON.parse
);
function parseSearchWith(parser) {
  return (searchStr) => {
    if (searchStr[0] === "?") {
      searchStr = searchStr.substring(1);
    }
    const query = decode(searchStr);
    for (const key in query) {
      const value = query[key];
      if (typeof value === "string") {
        try {
          query[key] = parser(value);
        } catch (_err) {
        }
      }
    }
    return query;
  };
}
function stringifySearchWith(stringify, parser) {
  const hasParser = typeof parser === "function";
  function stringifyValue(val) {
    if (typeof val === "object" && val !== null) {
      try {
        return stringify(val);
      } catch (_err) {
      }
    } else if (hasParser && typeof val === "string") {
      try {
        parser(val);
        return stringify(val);
      } catch (_err) {
      }
    }
    return val;
  }
  return (search) => {
    const searchStr = encode(search, stringifyValue);
    return searchStr ? `?${searchStr}` : "";
  };
}
const rootRouteId = "__root__";
function redirect(opts) {
  opts.statusCode = opts.statusCode || opts.code || 307;
  if (!opts.reloadDocument && typeof opts.href === "string") {
    try {
      new URL(opts.href);
      opts.reloadDocument = true;
    } catch {
    }
  }
  const headers = new Headers(opts.headers || {});
  if (opts.href && headers.get("Location") === null) {
    headers.set("Location", opts.href);
  }
  const response = new Response(null, {
    status: opts.statusCode,
    headers
  });
  response.options = opts;
  if (opts.throw) {
    throw response;
  }
  return response;
}
function isRedirect(obj) {
  return obj instanceof Response && !!obj.options;
}
function createLRUCache(max2) {
  const cache = /* @__PURE__ */ new Map();
  let oldest;
  let newest;
  const touch = (entry) => {
    if (!entry.next) return;
    if (!entry.prev) {
      entry.next.prev = void 0;
      oldest = entry.next;
      entry.next = void 0;
      if (newest) {
        entry.prev = newest;
        newest.next = entry;
      }
    } else {
      entry.prev.next = entry.next;
      entry.next.prev = entry.prev;
      entry.next = void 0;
      if (newest) {
        newest.next = entry;
        entry.prev = newest;
      }
    }
    newest = entry;
  };
  return {
    get(key) {
      const entry = cache.get(key);
      if (!entry) return void 0;
      touch(entry);
      return entry.value;
    },
    set(key, value) {
      if (cache.size >= max2 && oldest) {
        const toDelete = oldest;
        cache.delete(toDelete.key);
        if (toDelete.next) {
          oldest = toDelete.next;
          toDelete.next.prev = void 0;
        }
        if (toDelete === newest) {
          newest = void 0;
        }
      }
      const existing = cache.get(key);
      if (existing) {
        existing.value = value;
        touch(existing);
      } else {
        const entry = { key, value, prev: newest };
        if (newest) newest.next = entry;
        newest = entry;
        if (!oldest) oldest = entry;
        cache.set(key, entry);
      }
    }
  };
}
const triggerOnReady = (inner) => {
  var _a2;
  if (!inner.rendered) {
    inner.rendered = true;
    return (_a2 = inner.onReady) == null ? void 0 : _a2.call(inner);
  }
};
const resolvePreload = (inner, matchId) => {
  return !!(inner.preload && !inner.router.state.matches.some((d) => d.id === matchId));
};
const _handleNotFound = (inner, err) => {
  var _a2;
  const routeCursor = inner.router.routesById[err.routeId ?? ""] ?? inner.router.routeTree;
  if (!routeCursor.options.notFoundComponent && ((_a2 = inner.router.options) == null ? void 0 : _a2.defaultNotFoundComponent)) {
    routeCursor.options.notFoundComponent = inner.router.options.defaultNotFoundComponent;
  }
  invariant(
    routeCursor.options.notFoundComponent
  );
  const matchForRoute = inner.matches.find((m2) => m2.routeId === routeCursor.id);
  invariant(matchForRoute, "Could not find match for route: " + routeCursor.id);
  inner.updateMatch(matchForRoute.id, (prev) => ({
    ...prev,
    status: "notFound",
    error: err,
    isFetching: false
  }));
  if (err.routerCode === "BEFORE_LOAD" && routeCursor.parentRoute) {
    err.routeId = routeCursor.parentRoute.id;
    _handleNotFound(inner, err);
  }
};
const handleRedirectAndNotFound = (inner, match, err) => {
  var _a2, _b2, _c2;
  if (!isRedirect(err) && !isNotFound(err)) return;
  if (isRedirect(err) && err.redirectHandled && !err.options.reloadDocument) {
    throw err;
  }
  if (match) {
    (_a2 = match._nonReactive.beforeLoadPromise) == null ? void 0 : _a2.resolve();
    (_b2 = match._nonReactive.loaderPromise) == null ? void 0 : _b2.resolve();
    match._nonReactive.beforeLoadPromise = void 0;
    match._nonReactive.loaderPromise = void 0;
    const status = isRedirect(err) ? "redirected" : "notFound";
    inner.updateMatch(match.id, (prev) => ({
      ...prev,
      status,
      isFetching: false,
      error: err
    }));
    if (isNotFound(err) && !err.routeId) {
      err.routeId = match.routeId;
    }
    (_c2 = match._nonReactive.loadPromise) == null ? void 0 : _c2.resolve();
  }
  if (isRedirect(err)) {
    inner.rendered = true;
    err.options._fromLocation = inner.location;
    err.redirectHandled = true;
    err = inner.router.resolveRedirect(err);
    throw err;
  } else {
    _handleNotFound(inner, err);
    throw err;
  }
};
const shouldSkipLoader = (inner, matchId) => {
  const match = inner.router.getMatch(matchId);
  if (!inner.router.isServer && match._nonReactive.dehydrated) {
    return true;
  }
  if (inner.router.isServer && match.ssr === false) {
    return true;
  }
  return false;
};
const handleSerialError = (inner, index2, err, routerCode) => {
  var _a2, _b2;
  const { id: matchId, routeId } = inner.matches[index2];
  const route = inner.router.looseRoutesById[routeId];
  if (err instanceof Promise) {
    throw err;
  }
  err.routerCode = routerCode;
  inner.firstBadMatchIndex ?? (inner.firstBadMatchIndex = index2);
  handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err);
  try {
    (_b2 = (_a2 = route.options).onError) == null ? void 0 : _b2.call(_a2, err);
  } catch (errorHandlerErr) {
    err = errorHandlerErr;
    handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err);
  }
  inner.updateMatch(matchId, (prev) => {
    var _a22, _b22;
    (_a22 = prev._nonReactive.beforeLoadPromise) == null ? void 0 : _a22.resolve();
    prev._nonReactive.beforeLoadPromise = void 0;
    (_b22 = prev._nonReactive.loadPromise) == null ? void 0 : _b22.resolve();
    return {
      ...prev,
      error: err,
      status: "error",
      isFetching: false,
      updatedAt: Date.now(),
      abortController: new AbortController()
    };
  });
};
const isBeforeLoadSsr = (inner, matchId, index2, route) => {
  var _a2;
  const existingMatch = inner.router.getMatch(matchId);
  const parentMatchId = (_a2 = inner.matches[index2 - 1]) == null ? void 0 : _a2.id;
  const parentMatch = parentMatchId ? inner.router.getMatch(parentMatchId) : void 0;
  if (inner.router.isShell()) {
    existingMatch.ssr = matchId === rootRouteId;
    return;
  }
  if ((parentMatch == null ? void 0 : parentMatch.ssr) === false) {
    existingMatch.ssr = false;
    return;
  }
  const parentOverride = (tempSsr2) => {
    if (tempSsr2 === true && (parentMatch == null ? void 0 : parentMatch.ssr) === "data-only") {
      return "data-only";
    }
    return tempSsr2;
  };
  const defaultSsr = inner.router.options.defaultSsr ?? true;
  if (route.options.ssr === void 0) {
    existingMatch.ssr = parentOverride(defaultSsr);
    return;
  }
  if (typeof route.options.ssr !== "function") {
    existingMatch.ssr = parentOverride(route.options.ssr);
    return;
  }
  const { search, params } = existingMatch;
  const ssrFnContext = {
    search: makeMaybe(search, existingMatch.searchError),
    params: makeMaybe(params, existingMatch.paramsError),
    location: inner.location,
    matches: inner.matches.map((match) => ({
      index: match.index,
      pathname: match.pathname,
      fullPath: match.fullPath,
      staticData: match.staticData,
      id: match.id,
      routeId: match.routeId,
      search: makeMaybe(match.search, match.searchError),
      params: makeMaybe(match.params, match.paramsError),
      ssr: match.ssr
    }))
  };
  const tempSsr = route.options.ssr(ssrFnContext);
  if (isPromise(tempSsr)) {
    return tempSsr.then((ssr) => {
      existingMatch.ssr = parentOverride(ssr ?? defaultSsr);
    });
  }
  existingMatch.ssr = parentOverride(tempSsr ?? defaultSsr);
  return;
};
const setupPendingTimeout = (inner, matchId, route, match) => {
  var _a2;
  if (match._nonReactive.pendingTimeout !== void 0) return;
  const pendingMs = route.options.pendingMs ?? inner.router.options.defaultPendingMs;
  const shouldPending = !!(inner.onReady && !inner.router.isServer && !resolvePreload(inner, matchId) && (route.options.loader || route.options.beforeLoad || routeNeedsPreload(route)) && typeof pendingMs === "number" && pendingMs !== Infinity && (route.options.pendingComponent ?? ((_a2 = inner.router.options) == null ? void 0 : _a2.defaultPendingComponent)));
  if (shouldPending) {
    const pendingTimeout = setTimeout(() => {
      triggerOnReady(inner);
    }, pendingMs);
    match._nonReactive.pendingTimeout = pendingTimeout;
  }
};
const preBeforeLoadSetup = (inner, matchId, route) => {
  const existingMatch = inner.router.getMatch(matchId);
  if (!existingMatch._nonReactive.beforeLoadPromise && !existingMatch._nonReactive.loaderPromise)
    return;
  setupPendingTimeout(inner, matchId, route, existingMatch);
  const then = () => {
    const match = inner.router.getMatch(matchId);
    if (match.preload && (match.status === "redirected" || match.status === "notFound")) {
      handleRedirectAndNotFound(inner, match, match.error);
    }
  };
  return existingMatch._nonReactive.beforeLoadPromise ? existingMatch._nonReactive.beforeLoadPromise.then(then) : then();
};
const executeBeforeLoad = (inner, matchId, index2, route) => {
  var _a2;
  const match = inner.router.getMatch(matchId);
  const prevLoadPromise = match._nonReactive.loadPromise;
  match._nonReactive.loadPromise = createControlledPromise(() => {
    prevLoadPromise == null ? void 0 : prevLoadPromise.resolve();
  });
  const { paramsError, searchError } = match;
  if (paramsError) {
    handleSerialError(inner, index2, paramsError, "PARSE_PARAMS");
  }
  if (searchError) {
    handleSerialError(inner, index2, searchError, "VALIDATE_SEARCH");
  }
  setupPendingTimeout(inner, matchId, route, match);
  const abortController = new AbortController();
  const parentMatchId = (_a2 = inner.matches[index2 - 1]) == null ? void 0 : _a2.id;
  const parentMatch = parentMatchId ? inner.router.getMatch(parentMatchId) : void 0;
  const parentMatchContext = (parentMatch == null ? void 0 : parentMatch.context) ?? inner.router.options.context ?? void 0;
  const context = { ...parentMatchContext, ...match.__routeContext };
  let isPending = false;
  const pending = () => {
    if (isPending) return;
    isPending = true;
    inner.updateMatch(matchId, (prev) => ({
      ...prev,
      isFetching: "beforeLoad",
      fetchCount: prev.fetchCount + 1,
      abortController,
      context
    }));
  };
  const resolve = () => {
    var _a22;
    (_a22 = match._nonReactive.beforeLoadPromise) == null ? void 0 : _a22.resolve();
    match._nonReactive.beforeLoadPromise = void 0;
    inner.updateMatch(matchId, (prev) => ({
      ...prev,
      isFetching: false
    }));
  };
  if (!route.options.beforeLoad) {
    batch(() => {
      pending();
      resolve();
    });
    return;
  }
  match._nonReactive.beforeLoadPromise = createControlledPromise();
  const { search, params, cause } = match;
  const preload = resolvePreload(inner, matchId);
  const beforeLoadFnContext = {
    search,
    abortController,
    params,
    preload,
    context,
    location: inner.location,
    navigate: (opts) => inner.router.navigate({
      ...opts,
      _fromLocation: inner.location
    }),
    buildLocation: inner.router.buildLocation,
    cause: preload ? "preload" : cause,
    matches: inner.matches
  };
  const updateContext = (beforeLoadContext2) => {
    if (beforeLoadContext2 === void 0) {
      batch(() => {
        pending();
        resolve();
      });
      return;
    }
    if (isRedirect(beforeLoadContext2) || isNotFound(beforeLoadContext2)) {
      pending();
      handleSerialError(inner, index2, beforeLoadContext2, "BEFORE_LOAD");
    }
    batch(() => {
      pending();
      inner.updateMatch(matchId, (prev) => ({
        ...prev,
        __beforeLoadContext: beforeLoadContext2,
        context: {
          ...prev.context,
          ...beforeLoadContext2
        }
      }));
      resolve();
    });
  };
  let beforeLoadContext;
  try {
    beforeLoadContext = route.options.beforeLoad(beforeLoadFnContext);
    if (isPromise(beforeLoadContext)) {
      pending();
      return beforeLoadContext.catch((err) => {
        handleSerialError(inner, index2, err, "BEFORE_LOAD");
      }).then(updateContext);
    }
  } catch (err) {
    pending();
    handleSerialError(inner, index2, err, "BEFORE_LOAD");
  }
  updateContext(beforeLoadContext);
  return;
};
const handleBeforeLoad = (inner, index2) => {
  const { id: matchId, routeId } = inner.matches[index2];
  const route = inner.router.looseRoutesById[routeId];
  const serverSsr = () => {
    if (inner.router.isServer) {
      const maybePromise = isBeforeLoadSsr(inner, matchId, index2, route);
      if (isPromise(maybePromise)) return maybePromise.then(queueExecution);
    }
    return queueExecution();
  };
  const queueExecution = () => {
    if (shouldSkipLoader(inner, matchId)) return;
    const result = preBeforeLoadSetup(inner, matchId, route);
    return isPromise(result) ? result.then(execute) : execute();
  };
  const execute = () => executeBeforeLoad(inner, matchId, index2, route);
  return serverSsr();
};
const executeHead = (inner, matchId, route) => {
  var _a2, _b2, _c2, _d2, _e2, _f;
  const match = inner.router.getMatch(matchId);
  if (!match) {
    return;
  }
  if (!route.options.head && !route.options.scripts && !route.options.headers) {
    return;
  }
  const assetContext = {
    matches: inner.matches,
    match,
    params: match.params,
    loaderData: match.loaderData
  };
  return Promise.all([
    (_b2 = (_a2 = route.options).head) == null ? void 0 : _b2.call(_a2, assetContext),
    (_d2 = (_c2 = route.options).scripts) == null ? void 0 : _d2.call(_c2, assetContext),
    (_f = (_e2 = route.options).headers) == null ? void 0 : _f.call(_e2, assetContext)
  ]).then(([headFnContent, scripts, headers]) => {
    const meta = headFnContent == null ? void 0 : headFnContent.meta;
    const links = headFnContent == null ? void 0 : headFnContent.links;
    const headScripts = headFnContent == null ? void 0 : headFnContent.scripts;
    const styles = headFnContent == null ? void 0 : headFnContent.styles;
    return {
      meta,
      links,
      headScripts,
      headers,
      scripts,
      styles
    };
  });
};
const getLoaderContext = (inner, matchId, index2, route) => {
  const parentMatchPromise = inner.matchPromises[index2 - 1];
  const { params, loaderDeps, abortController, context, cause } = inner.router.getMatch(matchId);
  const preload = resolvePreload(inner, matchId);
  return {
    params,
    deps: loaderDeps,
    preload: !!preload,
    parentMatchPromise,
    abortController,
    context,
    location: inner.location,
    navigate: (opts) => inner.router.navigate({
      ...opts,
      _fromLocation: inner.location
    }),
    cause: preload ? "preload" : cause,
    route
  };
};
const runLoader = async (inner, matchId, index2, route) => {
  var _a2, _b2, _c2, _d2;
  try {
    const match = inner.router.getMatch(matchId);
    try {
      if (!inner.router.isServer || match.ssr === true) {
        loadRouteChunk(route);
      }
      const loaderResult = (_b2 = (_a2 = route.options).loader) == null ? void 0 : _b2.call(
        _a2,
        getLoaderContext(inner, matchId, index2, route)
      );
      const loaderResultIsPromise = route.options.loader && isPromise(loaderResult);
      const willLoadSomething = !!(loaderResultIsPromise || route._lazyPromise || route._componentsPromise || route.options.head || route.options.scripts || route.options.headers || match._nonReactive.minPendingPromise);
      if (willLoadSomething) {
        inner.updateMatch(matchId, (prev) => ({
          ...prev,
          isFetching: "loader"
        }));
      }
      if (route.options.loader) {
        const loaderData = loaderResultIsPromise ? await loaderResult : loaderResult;
        handleRedirectAndNotFound(
          inner,
          inner.router.getMatch(matchId),
          loaderData
        );
        if (loaderData !== void 0) {
          inner.updateMatch(matchId, (prev) => ({
            ...prev,
            loaderData
          }));
        }
      }
      if (route._lazyPromise) await route._lazyPromise;
      const headResult = executeHead(inner, matchId, route);
      const head = headResult ? await headResult : void 0;
      const pendingPromise = match._nonReactive.minPendingPromise;
      if (pendingPromise) await pendingPromise;
      if (route._componentsPromise) await route._componentsPromise;
      inner.updateMatch(matchId, (prev) => ({
        ...prev,
        error: void 0,
        status: "success",
        isFetching: false,
        updatedAt: Date.now(),
        ...head
      }));
    } catch (e) {
      let error = e;
      const pendingPromise = match._nonReactive.minPendingPromise;
      if (pendingPromise) await pendingPromise;
      handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), e);
      try {
        (_d2 = (_c2 = route.options).onError) == null ? void 0 : _d2.call(_c2, e);
      } catch (onErrorError) {
        error = onErrorError;
        handleRedirectAndNotFound(
          inner,
          inner.router.getMatch(matchId),
          onErrorError
        );
      }
      const headResult = executeHead(inner, matchId, route);
      const head = headResult ? await headResult : void 0;
      inner.updateMatch(matchId, (prev) => ({
        ...prev,
        error,
        status: "error",
        isFetching: false,
        ...head
      }));
    }
  } catch (err) {
    const match = inner.router.getMatch(matchId);
    if (match) {
      const headResult = executeHead(inner, matchId, route);
      if (headResult) {
        const head = await headResult;
        inner.updateMatch(matchId, (prev) => ({
          ...prev,
          ...head
        }));
      }
      match._nonReactive.loaderPromise = void 0;
    }
    handleRedirectAndNotFound(inner, match, err);
  }
};
const loadRouteMatch = async (inner, index2) => {
  var _a2, _b2;
  const { id: matchId, routeId } = inner.matches[index2];
  let loaderShouldRunAsync = false;
  let loaderIsRunningAsync = false;
  const route = inner.router.looseRoutesById[routeId];
  if (shouldSkipLoader(inner, matchId)) {
    if (inner.router.isServer) {
      const headResult = executeHead(inner, matchId, route);
      if (headResult) {
        const head = await headResult;
        inner.updateMatch(matchId, (prev) => ({
          ...prev,
          ...head
        }));
      }
      return inner.router.getMatch(matchId);
    }
  } else {
    const prevMatch = inner.router.getMatch(matchId);
    if (prevMatch._nonReactive.loaderPromise) {
      if (prevMatch.status === "success" && !inner.sync && !prevMatch.preload) {
        return prevMatch;
      }
      await prevMatch._nonReactive.loaderPromise;
      const match2 = inner.router.getMatch(matchId);
      if (match2.error) {
        handleRedirectAndNotFound(inner, match2, match2.error);
      }
    } else {
      const age = Date.now() - prevMatch.updatedAt;
      const preload = resolvePreload(inner, matchId);
      const staleAge = preload ? route.options.preloadStaleTime ?? inner.router.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? inner.router.options.defaultStaleTime ?? 0;
      const shouldReloadOption = route.options.shouldReload;
      const shouldReload = typeof shouldReloadOption === "function" ? shouldReloadOption(getLoaderContext(inner, matchId, index2, route)) : shouldReloadOption;
      const nextPreload = !!preload && !inner.router.state.matches.some((d) => d.id === matchId);
      const match2 = inner.router.getMatch(matchId);
      match2._nonReactive.loaderPromise = createControlledPromise();
      if (nextPreload !== match2.preload) {
        inner.updateMatch(matchId, (prev) => ({
          ...prev,
          preload: nextPreload
        }));
      }
      const { status, invalid } = match2;
      loaderShouldRunAsync = status === "success" && (invalid || (shouldReload ?? age > staleAge));
      if (preload && route.options.preload === false) ;
      else if (loaderShouldRunAsync && !inner.sync) {
        loaderIsRunningAsync = true;
        (async () => {
          var _a22, _b22;
          try {
            await runLoader(inner, matchId, index2, route);
            const match3 = inner.router.getMatch(matchId);
            (_a22 = match3._nonReactive.loaderPromise) == null ? void 0 : _a22.resolve();
            (_b22 = match3._nonReactive.loadPromise) == null ? void 0 : _b22.resolve();
            match3._nonReactive.loaderPromise = void 0;
          } catch (err) {
            if (isRedirect(err)) {
              await inner.router.navigate(err.options);
            }
          }
        })();
      } else if (status !== "success" || loaderShouldRunAsync && inner.sync) {
        await runLoader(inner, matchId, index2, route);
      } else {
        const headResult = executeHead(inner, matchId, route);
        if (headResult) {
          const head = await headResult;
          inner.updateMatch(matchId, (prev) => ({
            ...prev,
            ...head
          }));
        }
      }
    }
  }
  const match = inner.router.getMatch(matchId);
  if (!loaderIsRunningAsync) {
    (_a2 = match._nonReactive.loaderPromise) == null ? void 0 : _a2.resolve();
    (_b2 = match._nonReactive.loadPromise) == null ? void 0 : _b2.resolve();
  }
  clearTimeout(match._nonReactive.pendingTimeout);
  match._nonReactive.pendingTimeout = void 0;
  if (!loaderIsRunningAsync) match._nonReactive.loaderPromise = void 0;
  match._nonReactive.dehydrated = void 0;
  const nextIsFetching = loaderIsRunningAsync ? match.isFetching : false;
  if (nextIsFetching !== match.isFetching || match.invalid !== false) {
    inner.updateMatch(matchId, (prev) => ({
      ...prev,
      isFetching: nextIsFetching,
      invalid: false
    }));
    return inner.router.getMatch(matchId);
  } else {
    return match;
  }
};
async function loadMatches(arg) {
  const inner = Object.assign(arg, {
    matchPromises: []
  });
  if (!inner.router.isServer && inner.router.state.matches.some((d) => d._forcePending)) {
    triggerOnReady(inner);
  }
  try {
    for (let i = 0; i < inner.matches.length; i++) {
      const beforeLoad = handleBeforeLoad(inner, i);
      if (isPromise(beforeLoad)) await beforeLoad;
    }
    const max2 = inner.firstBadMatchIndex ?? inner.matches.length;
    for (let i = 0; i < max2; i++) {
      inner.matchPromises.push(loadRouteMatch(inner, i));
    }
    await Promise.all(inner.matchPromises);
    const readyPromise = triggerOnReady(inner);
    if (isPromise(readyPromise)) await readyPromise;
  } catch (err) {
    if (isNotFound(err) && !inner.preload) {
      const readyPromise = triggerOnReady(inner);
      if (isPromise(readyPromise)) await readyPromise;
      throw err;
    }
    if (isRedirect(err)) {
      throw err;
    }
  }
  return inner.matches;
}
async function loadRouteChunk(route) {
  if (!route._lazyLoaded && route._lazyPromise === void 0) {
    if (route.lazyFn) {
      route._lazyPromise = route.lazyFn().then((lazyRoute) => {
        const { id: _id, ...options } = lazyRoute.options;
        Object.assign(route.options, options);
        route._lazyLoaded = true;
        route._lazyPromise = void 0;
      });
    } else {
      route._lazyLoaded = true;
    }
  }
  if (!route._componentsLoaded && route._componentsPromise === void 0) {
    const loadComponents = () => {
      var _a2;
      const preloads = [];
      for (const type of componentTypes) {
        const preload = (_a2 = route.options[type]) == null ? void 0 : _a2.preload;
        if (preload) preloads.push(preload());
      }
      if (preloads.length)
        return Promise.all(preloads).then(() => {
          route._componentsLoaded = true;
          route._componentsPromise = void 0;
        });
      route._componentsLoaded = true;
      route._componentsPromise = void 0;
      return;
    };
    route._componentsPromise = route._lazyPromise ? route._lazyPromise.then(loadComponents) : loadComponents();
  }
  return route._componentsPromise;
}
function makeMaybe(value, error) {
  if (error) {
    return { status: "error", error };
  }
  return { status: "success", value };
}
function routeNeedsPreload(route) {
  var _a2;
  for (const componentType of componentTypes) {
    if ((_a2 = route.options[componentType]) == null ? void 0 : _a2.preload) {
      return true;
    }
  }
  return false;
}
const componentTypes = [
  "component",
  "errorComponent",
  "pendingComponent",
  "notFoundComponent"
];
function getLocationChangeInfo(routerState) {
  const fromLocation = routerState.resolvedLocation;
  const toLocation = routerState.location;
  const pathChanged = (fromLocation == null ? void 0 : fromLocation.pathname) !== toLocation.pathname;
  const hrefChanged = (fromLocation == null ? void 0 : fromLocation.href) !== toLocation.href;
  const hashChanged = (fromLocation == null ? void 0 : fromLocation.hash) !== toLocation.hash;
  return { fromLocation, toLocation, pathChanged, hrefChanged, hashChanged };
}
class RouterCore {
  /**
   * @deprecated Use the `createRouter` function instead
   */
  constructor(options) {
    this.tempLocationKey = `${Math.round(
      Math.random() * 1e7
    )}`;
    this.resetNextScroll = true;
    this.shouldViewTransition = void 0;
    this.isViewTransitionTypesSupported = void 0;
    this.subscribers = /* @__PURE__ */ new Set();
    this.isScrollRestoring = false;
    this.isScrollRestorationSetup = false;
    this.startTransition = (fn) => fn();
    this.update = (newOptions) => {
      var _a2;
      if (newOptions.notFoundRoute) {
        console.warn(
          "The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info."
        );
      }
      const previousOptions = this.options;
      this.options = {
        ...this.options,
        ...newOptions
      };
      this.isServer = this.options.isServer ?? typeof document === "undefined";
      this.pathParamsDecodeCharMap = this.options.pathParamsAllowedCharacters ? new Map(
        this.options.pathParamsAllowedCharacters.map((char) => [
          encodeURIComponent(char),
          char
        ])
      ) : void 0;
      if (!this.basepath || newOptions.basepath && newOptions.basepath !== previousOptions.basepath) {
        if (newOptions.basepath === void 0 || newOptions.basepath === "" || newOptions.basepath === "/") {
          this.basepath = "/";
        } else {
          this.basepath = `/${trimPath(newOptions.basepath)}`;
        }
      }
      if (!this.history || this.options.history && this.options.history !== this.history) {
        this.history = this.options.history ?? (this.isServer ? createMemoryHistory({
          initialEntries: [this.basepath || "/"]
        }) : createBrowserHistory());
        this.updateLatestLocation();
      }
      if (this.options.routeTree !== this.routeTree) {
        this.routeTree = this.options.routeTree;
        this.buildRouteTree();
      }
      if (!this.__store) {
        this.__store = new Store(getInitialRouterState(this.latestLocation), {
          onUpdate: () => {
            this.__store.state = {
              ...this.state,
              cachedMatches: this.state.cachedMatches.filter(
                (d) => !["redirected"].includes(d.status)
              )
            };
          }
        });
        setupScrollRestoration(this);
      }
      if (typeof window !== "undefined" && "CSS" in window && typeof ((_a2 = window.CSS) == null ? void 0 : _a2.supports) === "function") {
        this.isViewTransitionTypesSupported = window.CSS.supports(
          "selector(:active-view-transition-type(a)"
        );
      }
    };
    this.updateLatestLocation = () => {
      this.latestLocation = this.parseLocation(
        this.history.location,
        this.latestLocation
      );
    };
    this.buildRouteTree = () => {
      const { routesById, routesByPath, flatRoutes } = processRouteTree({
        routeTree: this.routeTree,
        initRoute: (route, i) => {
          route.init({
            originalIndex: i
          });
        }
      });
      this.routesById = routesById;
      this.routesByPath = routesByPath;
      this.flatRoutes = flatRoutes;
      const notFoundRoute = this.options.notFoundRoute;
      if (notFoundRoute) {
        notFoundRoute.init({
          originalIndex: 99999999999
        });
        this.routesById[notFoundRoute.id] = notFoundRoute;
      }
    };
    this.subscribe = (eventType, fn) => {
      const listener = {
        eventType,
        fn
      };
      this.subscribers.add(listener);
      return () => {
        this.subscribers.delete(listener);
      };
    };
    this.emit = (routerEvent) => {
      this.subscribers.forEach((listener) => {
        if (listener.eventType === routerEvent.type) {
          listener.fn(routerEvent);
        }
      });
    };
    this.parseLocation = (locationToParse, previousLocation) => {
      const parse2 = ({
        pathname,
        search,
        hash,
        state
      }) => {
        const parsedSearch = this.options.parseSearch(search);
        const searchStr = this.options.stringifySearch(parsedSearch);
        return {
          pathname,
          searchStr,
          search: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.search, parsedSearch),
          hash: hash.split("#").reverse()[0] ?? "",
          href: `${pathname}${searchStr}${hash}`,
          state: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.state, state)
        };
      };
      const location = parse2(locationToParse);
      const { __tempLocation, __tempKey } = location.state;
      if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {
        const parsedTempLocation = parse2(__tempLocation);
        parsedTempLocation.state.key = location.state.key;
        parsedTempLocation.state.__TSR_key = location.state.__TSR_key;
        delete parsedTempLocation.state.__tempLocation;
        return {
          ...parsedTempLocation,
          maskedLocation: location
        };
      }
      return location;
    };
    this.resolvePathWithBase = (from, path) => {
      const resolvedPath = resolvePath({
        basepath: this.basepath,
        base: from,
        to: cleanPath(path),
        trailingSlash: this.options.trailingSlash,
        caseSensitive: this.options.caseSensitive,
        parseCache: this.parsePathnameCache
      });
      return resolvedPath;
    };
    this.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => {
      if (typeof pathnameOrNext === "string") {
        return this.matchRoutesInternal(
          {
            pathname: pathnameOrNext,
            search: locationSearchOrOpts
          },
          opts
        );
      }
      return this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts);
    };
    this.parsePathnameCache = createLRUCache(1e3);
    this.getMatchedRoutes = (pathname, routePathname) => {
      return getMatchedRoutes({
        pathname,
        routePathname,
        basepath: this.basepath,
        caseSensitive: this.options.caseSensitive,
        routesByPath: this.routesByPath,
        routesById: this.routesById,
        flatRoutes: this.flatRoutes,
        parseCache: this.parsePathnameCache
      });
    };
    this.cancelMatch = (id) => {
      const match = this.getMatch(id);
      if (!match) return;
      match.abortController.abort();
      clearTimeout(match._nonReactive.pendingTimeout);
      match._nonReactive.pendingTimeout = void 0;
    };
    this.cancelMatches = () => {
      var _a2;
      (_a2 = this.state.pendingMatches) == null ? void 0 : _a2.forEach((match) => {
        this.cancelMatch(match.id);
      });
    };
    this.buildLocation = (opts) => {
      const build = (dest = {}) => {
        var _a2, _b2;
        const currentLocation = dest._fromLocation || this.latestLocation;
        const allCurrentLocationMatches = this.matchRoutes(currentLocation, {
          _buildLocation: true
        });
        const lastMatch = last(allCurrentLocationMatches);
        if (dest.from && false) ;
        const defaultedFromPath = dest.unsafeRelative === "path" ? currentLocation.pathname : dest.from ?? lastMatch.fullPath;
        const fromPath = this.resolvePathWithBase(defaultedFromPath, ".");
        const fromSearch = lastMatch.search;
        const fromParams = { ...lastMatch.params };
        const nextTo = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, ".");
        const nextParams = dest.params === false || dest.params === null ? {} : (dest.params ?? true) === true ? fromParams : Object.assign(
          fromParams,
          functionalUpdate(dest.params, fromParams)
        );
        const interpolatedNextTo = interpolatePath({
          path: nextTo,
          params: nextParams,
          parseCache: this.parsePathnameCache
        }).interpolatedPath;
        const destRoutes = this.matchRoutes(interpolatedNextTo, void 0, {
          _buildLocation: true
        }).map((d) => this.looseRoutesById[d.routeId]);
        if (Object.keys(nextParams).length > 0) {
          for (const route of destRoutes) {
            const fn = ((_a2 = route.options.params) == null ? void 0 : _a2.stringify) ?? route.options.stringifyParams;
            if (fn) {
              Object.assign(nextParams, fn(nextParams));
            }
          }
        }
        const nextPathname = interpolatePath({
          // Use the original template path for interpolation
          // This preserves the original parameter syntax including optional parameters
          path: nextTo,
          params: nextParams,
          leaveWildcards: false,
          leaveParams: opts.leaveParams,
          decodeCharMap: this.pathParamsDecodeCharMap,
          parseCache: this.parsePathnameCache
        }).interpolatedPath;
        let nextSearch = fromSearch;
        if (opts._includeValidateSearch && ((_b2 = this.options.search) == null ? void 0 : _b2.strict)) {
          const validatedSearch = {};
          destRoutes.forEach((route) => {
            if (route.options.validateSearch) {
              try {
                Object.assign(
                  validatedSearch,
                  validateSearch(route.options.validateSearch, {
                    ...validatedSearch,
                    ...nextSearch
                  })
                );
              } catch {
              }
            }
          });
          nextSearch = validatedSearch;
        }
        nextSearch = applySearchMiddleware({
          search: nextSearch,
          dest,
          destRoutes,
          _includeValidateSearch: opts._includeValidateSearch
        });
        nextSearch = replaceEqualDeep(fromSearch, nextSearch);
        const searchStr = this.options.stringifySearch(nextSearch);
        const hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0;
        const hashStr = hash ? `#${hash}` : "";
        let nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {};
        nextState = replaceEqualDeep(currentLocation.state, nextState);
        return {
          pathname: nextPathname,
          search: nextSearch,
          searchStr,
          state: nextState,
          hash: hash ?? "",
          href: `${nextPathname}${searchStr}${hashStr}`,
          unmaskOnReload: dest.unmaskOnReload
        };
      };
      const buildWithMatches = (dest = {}, maskedDest) => {
        var _a2;
        const next = build(dest);
        let maskedNext = maskedDest ? build(maskedDest) : void 0;
        if (!maskedNext) {
          let params = {};
          const foundMask = (_a2 = this.options.routeMasks) == null ? void 0 : _a2.find((d) => {
            const match = matchPathname(
              this.basepath,
              next.pathname,
              {
                to: d.from,
                caseSensitive: false,
                fuzzy: false
              },
              this.parsePathnameCache
            );
            if (match) {
              params = match;
              return true;
            }
            return false;
          });
          if (foundMask) {
            const { from: _from, ...maskProps } = foundMask;
            maskedDest = {
              from: opts.from,
              ...maskProps,
              params
            };
            maskedNext = build(maskedDest);
          }
        }
        if (maskedNext) {
          const maskedFinal = build(maskedDest);
          next.maskedLocation = maskedFinal;
        }
        return next;
      };
      if (opts.mask) {
        return buildWithMatches(opts, {
          from: opts.from,
          ...opts.mask
        });
      }
      return buildWithMatches(opts);
    };
    this.commitLocation = ({
      viewTransition,
      ignoreBlocker,
      ...next
    }) => {
      const isSameState = () => {
        const ignoredProps = [
          "key",
          // TODO: Remove in v2 - use __TSR_key instead
          "__TSR_key",
          "__TSR_index",
          "__hashScrollIntoViewOptions"
        ];
        ignoredProps.forEach((prop) => {
          next.state[prop] = this.latestLocation.state[prop];
        });
        const isEqual = deepEqual$1(next.state, this.latestLocation.state);
        ignoredProps.forEach((prop) => {
          delete next.state[prop];
        });
        return isEqual;
      };
      const isSameUrl = this.latestLocation.href === next.href;
      const previousCommitPromise = this.commitLocationPromise;
      this.commitLocationPromise = createControlledPromise(() => {
        previousCommitPromise == null ? void 0 : previousCommitPromise.resolve();
      });
      if (isSameUrl && isSameState()) {
        this.load();
      } else {
        let { maskedLocation, hashScrollIntoView, ...nextHistory } = next;
        if (maskedLocation) {
          nextHistory = {
            ...maskedLocation,
            state: {
              ...maskedLocation.state,
              __tempKey: void 0,
              __tempLocation: {
                ...nextHistory,
                search: nextHistory.searchStr,
                state: {
                  ...nextHistory.state,
                  __tempKey: void 0,
                  __tempLocation: void 0,
                  __TSR_key: void 0,
                  key: void 0
                  // TODO: Remove in v2 - use __TSR_key instead
                }
              }
            }
          };
          if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) {
            nextHistory.state.__tempKey = this.tempLocationKey;
          }
        }
        nextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true;
        this.shouldViewTransition = viewTransition;
        this.history[next.replace ? "replace" : "push"](
          nextHistory.href,
          nextHistory.state,
          { ignoreBlocker }
        );
      }
      this.resetNextScroll = next.resetScroll ?? true;
      if (!this.history.subscribers.size) {
        this.load();
      }
      return this.commitLocationPromise;
    };
    this.buildAndCommitLocation = ({
      replace,
      resetScroll,
      hashScrollIntoView,
      viewTransition,
      ignoreBlocker,
      href,
      ...rest
    } = {}) => {
      if (href) {
        const currentIndex = this.history.location.state.__TSR_index;
        const parsed = parseHref(href, {
          __TSR_index: replace ? currentIndex : currentIndex + 1
        });
        rest.to = parsed.pathname;
        rest.search = this.options.parseSearch(parsed.search);
        rest.hash = parsed.hash.slice(1);
      }
      const location = this.buildLocation({
        ...rest,
        _includeValidateSearch: true
      });
      return this.commitLocation({
        ...location,
        viewTransition,
        replace,
        resetScroll,
        hashScrollIntoView,
        ignoreBlocker
      });
    };
    this.navigate = ({ to, reloadDocument, href, ...rest }) => {
      if (!reloadDocument && href) {
        try {
          new URL(`${href}`);
          reloadDocument = true;
        } catch {
        }
      }
      if (reloadDocument) {
        if (!href) {
          const location = this.buildLocation({ to, ...rest });
          href = this.history.createHref(location.href);
        }
        if (rest.replace) {
          window.location.replace(href);
        } else {
          window.location.href = href;
        }
        return Promise.resolve();
      }
      return this.buildAndCommitLocation({
        ...rest,
        href,
        to,
        _isNavigate: true
      });
    };
    this.beforeLoad = () => {
      this.cancelMatches();
      this.updateLatestLocation();
      if (this.isServer) {
        const nextLocation = this.buildLocation({
          to: this.latestLocation.pathname,
          search: true,
          params: true,
          hash: true,
          state: true,
          _includeValidateSearch: true
        });
        const normalizeUrl = (url) => {
          try {
            return encodeURI(decodeURI(url));
          } catch {
            return url;
          }
        };
        if (trimPath(normalizeUrl(this.latestLocation.href)) !== trimPath(normalizeUrl(nextLocation.href))) {
          throw redirect({ href: nextLocation.href });
        }
      }
      const pendingMatches = this.matchRoutes(this.latestLocation);
      this.__store.setState((s) => ({
        ...s,
        status: "pending",
        statusCode: 200,
        isLoading: true,
        location: this.latestLocation,
        pendingMatches,
        // If a cached moved to pendingMatches, remove it from cachedMatches
        cachedMatches: s.cachedMatches.filter(
          (d) => !pendingMatches.some((e) => e.id === d.id)
        )
      }));
    };
    this.load = async (opts) => {
      let redirect2;
      let notFound;
      let loadPromise;
      loadPromise = new Promise((resolve) => {
        this.startTransition(async () => {
          var _a2;
          try {
            this.beforeLoad();
            const next = this.latestLocation;
            const prevLocation = this.state.resolvedLocation;
            if (!this.state.redirect) {
              this.emit({
                type: "onBeforeNavigate",
                ...getLocationChangeInfo({
                  resolvedLocation: prevLocation,
                  location: next
                })
              });
            }
            this.emit({
              type: "onBeforeLoad",
              ...getLocationChangeInfo({
                resolvedLocation: prevLocation,
                location: next
              })
            });
            await loadMatches({
              router: this,
              sync: opts == null ? void 0 : opts.sync,
              matches: this.state.pendingMatches,
              location: next,
              updateMatch: this.updateMatch,
              // eslint-disable-next-line @typescript-eslint/require-await
              onReady: async () => {
                this.startViewTransition(async () => {
                  let exitingMatches;
                  let enteringMatches;
                  let stayingMatches;
                  batch(() => {
                    this.__store.setState((s) => {
                      const previousMatches = s.matches;
                      const newMatches = s.pendingMatches || s.matches;
                      exitingMatches = previousMatches.filter(
                        (match) => !newMatches.some((d) => d.id === match.id)
                      );
                      enteringMatches = newMatches.filter(
                        (match) => !previousMatches.some((d) => d.id === match.id)
                      );
                      stayingMatches = previousMatches.filter(
                        (match) => newMatches.some((d) => d.id === match.id)
                      );
                      return {
                        ...s,
                        isLoading: false,
                        loadedAt: Date.now(),
                        matches: newMatches,
                        pendingMatches: void 0,
                        cachedMatches: [
                          ...s.cachedMatches,
                          ...exitingMatches.filter((d) => d.status !== "error")
                        ]
                      };
                    });
                    this.clearExpiredCache();
                  });
                  [
                    [exitingMatches, "onLeave"],
                    [enteringMatches, "onEnter"],
                    [stayingMatches, "onStay"]
                  ].forEach(([matches, hook]) => {
                    matches.forEach((match) => {
                      var _a22, _b2;
                      (_b2 = (_a22 = this.looseRoutesById[match.routeId].options)[hook]) == null ? void 0 : _b2.call(_a22, match);
                    });
                  });
                });
              }
            });
          } catch (err) {
            if (isRedirect(err)) {
              redirect2 = err;
              if (!this.isServer) {
                this.navigate({
                  ...redirect2.options,
                  replace: true,
                  ignoreBlocker: true
                });
              }
            } else if (isNotFound(err)) {
              notFound = err;
            }
            this.__store.setState((s) => ({
              ...s,
              statusCode: redirect2 ? redirect2.status : notFound ? 404 : s.matches.some((d) => d.status === "error") ? 500 : 200,
              redirect: redirect2
            }));
          }
          if (this.latestLoadPromise === loadPromise) {
            (_a2 = this.commitLocationPromise) == null ? void 0 : _a2.resolve();
            this.latestLoadPromise = void 0;
            this.commitLocationPromise = void 0;
          }
          resolve();
        });
      });
      this.latestLoadPromise = loadPromise;
      await loadPromise;
      while (this.latestLoadPromise && loadPromise !== this.latestLoadPromise) {
        await this.latestLoadPromise;
      }
      if (this.hasNotFoundMatch()) {
        this.__store.setState((s) => ({
          ...s,
          statusCode: 404
        }));
      }
    };
    this.startViewTransition = (fn) => {
      const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition;
      delete this.shouldViewTransition;
      if (shouldViewTransition && typeof document !== "undefined" && "startViewTransition" in document && typeof document.startViewTransition === "function") {
        let startViewTransitionParams;
        if (typeof shouldViewTransition === "object" && this.isViewTransitionTypesSupported) {
          const next = this.latestLocation;
          const prevLocation = this.state.resolvedLocation;
          const resolvedViewTransitionTypes = typeof shouldViewTransition.types === "function" ? shouldViewTransition.types(
            getLocationChangeInfo({
              resolvedLocation: prevLocation,
              location: next
            })
          ) : shouldViewTransition.types;
          startViewTransitionParams = {
            update: fn,
            types: resolvedViewTransitionTypes
          };
        } else {
          startViewTransitionParams = fn;
        }
        document.startViewTransition(startViewTransitionParams);
      } else {
        fn();
      }
    };
    this.updateMatch = (id, updater) => {
      var _a2;
      const matchesKey = ((_a2 = this.state.pendingMatches) == null ? void 0 : _a2.some((d) => d.id === id)) ? "pendingMatches" : this.state.matches.some((d) => d.id === id) ? "matches" : this.state.cachedMatches.some((d) => d.id === id) ? "cachedMatches" : "";
      if (matchesKey) {
        this.__store.setState((s) => {
          var _a22;
          return {
            ...s,
            [matchesKey]: (_a22 = s[matchesKey]) == null ? void 0 : _a22.map((d) => d.id === id ? updater(d) : d)
          };
        });
      }
    };
    this.getMatch = (matchId) => {
      var _a2;
      const findFn = (d) => d.id === matchId;
      return this.state.cachedMatches.find(findFn) ?? ((_a2 = this.state.pendingMatches) == null ? void 0 : _a2.find(findFn)) ?? this.state.matches.find(findFn);
    };
    this.invalidate = (opts) => {
      const invalidate = (d) => {
        var _a2;
        if (((_a2 = opts == null ? void 0 : opts.filter) == null ? void 0 : _a2.call(opts, d)) ?? true) {
          return {
            ...d,
            invalid: true,
            ...(opts == null ? void 0 : opts.forcePending) || d.status === "error" ? { status: "pending", error: void 0 } : void 0
          };
        }
        return d;
      };
      this.__store.setState((s) => {
        var _a2;
        return {
          ...s,
          matches: s.matches.map(invalidate),
          cachedMatches: s.cachedMatches.map(invalidate),
          pendingMatches: (_a2 = s.pendingMatches) == null ? void 0 : _a2.map(invalidate)
        };
      });
      this.shouldViewTransition = false;
      return this.load({ sync: opts == null ? void 0 : opts.sync });
    };
    this.resolveRedirect = (redirect2) => {
      if (!redirect2.options.href) {
        redirect2.options.href = this.buildLocation(redirect2.options).href;
        redirect2.headers.set("Location", redirect2.options.href);
      }
      if (!redirect2.headers.get("Location")) {
        redirect2.headers.set("Location", redirect2.options.href);
      }
      return redirect2;
    };
    this.clearCache = (opts) => {
      const filter = opts == null ? void 0 : opts.filter;
      if (filter !== void 0) {
        this.__store.setState((s) => {
          return {
            ...s,
            cachedMatches: s.cachedMatches.filter(
              (m2) => !filter(m2)
            )
          };
        });
      } else {
        this.__store.setState((s) => {
          return {
            ...s,
            cachedMatches: []
          };
        });
      }
    };
    this.clearExpiredCache = () => {
      const filter = (d) => {
        const route = this.looseRoutesById[d.routeId];
        if (!route.options.loader) {
          return true;
        }
        const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3;
        const isError = d.status === "error";
        if (isError) return true;
        const gcEligible = Date.now() - d.updatedAt >= gcTime;
        return gcEligible;
      };
      this.clearCache({ filter });
    };
    this.loadRouteChunk = loadRouteChunk;
    this.preloadRoute = async (opts) => {
      const next = this.buildLocation(opts);
      let matches = this.matchRoutes(next, {
        throwOnError: true,
        preload: true,
        dest: opts
      });
      const activeMatchIds = new Set(
        [...this.state.matches, ...this.state.pendingMatches ?? []].map(
          (d) => d.id
        )
      );
      const loadedMatchIds = /* @__PURE__ */ new Set([
        ...activeMatchIds,
        ...this.state.cachedMatches.map((d) => d.id)
      ]);
      batch(() => {
        matches.forEach((match) => {
          if (!loadedMatchIds.has(match.id)) {
            this.__store.setState((s) => ({
              ...s,
              cachedMatches: [...s.cachedMatches, match]
            }));
          }
        });
      });
      try {
        matches = await loadMatches({
          router: this,
          matches,
          location: next,
          preload: true,
          updateMatch: (id, updater) => {
            if (activeMatchIds.has(id)) {
              matches = matches.map((d) => d.id === id ? updater(d) : d);
            } else {
              this.updateMatch(id, updater);
            }
          }
        });
        return matches;
      } catch (err) {
        if (isRedirect(err)) {
          if (err.options.reloadDocument) {
            return void 0;
          }
          return await this.preloadRoute({
            ...err.options,
            _fromLocation: next
          });
        }
        if (!isNotFound(err)) {
          console.error(err);
        }
        return void 0;
      }
    };
    this.matchRoute = (location, opts) => {
      const matchLocation = {
        ...location,
        to: location.to ? this.resolvePathWithBase(
          location.from || "",
          location.to
        ) : void 0,
        params: location.params || {},
        leaveParams: true
      };
      const next = this.buildLocation(matchLocation);
      if ((opts == null ? void 0 : opts.pending) && this.state.status !== "pending") {
        return false;
      }
      const pending = (opts == null ? void 0 : opts.pending) === void 0 ? !this.state.isLoading : opts.pending;
      const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation || this.state.location;
      const match = matchPathname(
        this.basepath,
        baseLocation.pathname,
        {
          ...opts,
          to: next.pathname
        },
        this.parsePathnameCache
      );
      if (!match) {
        return false;
      }
      if (location.params) {
        if (!deepEqual$1(match, location.params, { partial: true })) {
          return false;
        }
      }
      if (match && ((opts == null ? void 0 : opts.includeSearch) ?? true)) {
        return deepEqual$1(baseLocation.search, next.search, { partial: true }) ? match : false;
      }
      return match;
    };
    this.hasNotFoundMatch = () => {
      return this.__store.state.matches.some(
        (d) => d.status === "notFound" || d.globalNotFound
      );
    };
    this.update({
      defaultPreloadDelay: 50,
      defaultPendingMs: 1e3,
      defaultPendingMinMs: 500,
      context: void 0,
      ...options,
      caseSensitive: options.caseSensitive ?? false,
      notFoundMode: options.notFoundMode ?? "fuzzy",
      stringifySearch: options.stringifySearch ?? defaultStringifySearch,
      parseSearch: options.parseSearch ?? defaultParseSearch
    });
    if (typeof document !== "undefined") {
      self.__TSR_ROUTER__ = this;
    }
  }
  isShell() {
    return !!this.options.isShell;
  }
  isPrerendering() {
    return !!this.options.isPrerendering;
  }
  get state() {
    return this.__store.state;
  }
  get looseRoutesById() {
    return this.routesById;
  }
  matchRoutesInternal(next, opts) {
    var _a2;
    const { foundRoute, matchedRoutes, routeParams } = this.getMatchedRoutes(
      next.pathname,
      (_a2 = opts == null ? void 0 : opts.dest) == null ? void 0 : _a2.to
    );
    let isGlobalNotFound = false;
    if (
      // If we found a route, and it's not an index route and we have left over path
      foundRoute ? foundRoute.path !== "/" && routeParams["**"] : (
        // Or if we didn't find a route and we have left over path
        trimPathRight(next.pathname)
      )
    ) {
      if (this.options.notFoundRoute) {
        matchedRoutes.push(this.options.notFoundRoute);
      } else {
        isGlobalNotFound = true;
      }
    }
    const globalNotFoundRouteId = (() => {
      if (!isGlobalNotFound) {
        return void 0;
      }
      if (this.options.notFoundMode !== "root") {
        for (let i = matchedRoutes.length - 1; i >= 0; i--) {
          const route = matchedRoutes[i];
          if (route.children) {
            return route.id;
          }
        }
      }
      return rootRouteId;
    })();
    const parseErrors = matchedRoutes.map((route) => {
      var _a22;
      let parsedParamsError;
      const parseParams = ((_a22 = route.options.params) == null ? void 0 : _a22.parse) ?? route.options.parseParams;
      if (parseParams) {
        try {
          const parsedParams = parseParams(routeParams);
          Object.assign(routeParams, parsedParams);
        } catch (err) {
          parsedParamsError = new PathParamError(err.message, {
            cause: err
          });
          if (opts == null ? void 0 : opts.throwOnError) {
            throw parsedParamsError;
          }
          return parsedParamsError;
        }
      }
      return;
    });
    const matches = [];
    const getParentContext = (parentMatch) => {
      const parentMatchId = parentMatch == null ? void 0 : parentMatch.id;
      const parentContext = !parentMatchId ? this.options.context ?? void 0 : parentMatch.context ?? this.options.context ?? void 0;
      return parentContext;
    };
    matchedRoutes.forEach((route, index2) => {
      var _a22, _b2;
      const parentMatch = matches[index2 - 1];
      const [preMatchSearch, strictMatchSearch, searchError] = (() => {
        const parentSearch = (parentMatch == null ? void 0 : parentMatch.search) ?? next.search;
        const parentStrictSearch = (parentMatch == null ? void 0 : parentMatch._strictSearch) ?? void 0;
        try {
          const strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? void 0;
          return [
            {
              ...parentSearch,
              ...strictSearch
            },
            { ...parentStrictSearch, ...strictSearch },
            void 0
          ];
        } catch (err) {
          let searchParamError = err;
          if (!(err instanceof SearchParamError)) {
            searchParamError = new SearchParamError(err.message, {
              cause: err
            });
          }
          if (opts == null ? void 0 : opts.throwOnError) {
            throw searchParamError;
          }
          return [parentSearch, {}, searchParamError];
        }
      })();
      const loaderDeps = ((_b2 = (_a22 = route.options).loaderDeps) == null ? void 0 : _b2.call(_a22, {
        search: preMatchSearch
      })) ?? "";
      const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : "";
      const { usedParams, interpolatedPath } = interpolatePath({
        path: route.fullPath,
        params: routeParams,
        decodeCharMap: this.pathParamsDecodeCharMap
      });
      const matchId = interpolatePath({
        path: route.id,
        params: routeParams,
        leaveWildcards: true,
        decodeCharMap: this.pathParamsDecodeCharMap,
        parseCache: this.parsePathnameCache
      }).interpolatedPath + loaderDepsHash;
      const existingMatch = this.getMatch(matchId);
      const previousMatch = this.state.matches.find(
        (d) => d.routeId === route.id
      );
      const cause = previousMatch ? "stay" : "enter";
      let match;
      if (existingMatch) {
        match = {
          ...existingMatch,
          cause,
          params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,
          _strictParams: usedParams,
          search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : replaceEqualDeep(existingMatch.search, preMatchSearch),
          _strictSearch: strictMatchSearch
        };
      } else {
        const status = route.options.loader || route.options.beforeLoad || route.lazyFn || routeNeedsPreload(route) ? "pending" : "success";
        match = {
          id: matchId,
          index: index2,
          routeId: route.id,
          params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,
          _strictParams: usedParams,
          pathname: joinPaths([this.basepath, interpolatedPath]),
          updatedAt: Date.now(),
          search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch,
          _strictSearch: strictMatchSearch,
          searchError: void 0,
          status,
          isFetching: false,
          error: void 0,
          paramsError: parseErrors[index2],
          __routeContext: void 0,
          _nonReactive: {
            loadPromise: createControlledPromise()
          },
          __beforeLoadContext: void 0,
          context: {},
          abortController: new AbortController(),
          fetchCount: 0,
          cause,
          loaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps,
          invalid: false,
          preload: false,
          links: void 0,
          scripts: void 0,
          headScripts: void 0,
          meta: void 0,
          staticData: route.options.staticData || {},
          fullPath: route.fullPath
        };
      }
      if (!(opts == null ? void 0 : opts.preload)) {
        match.globalNotFound = globalNotFoundRouteId === route.id;
      }
      match.searchError = searchError;
      const parentContext = getParentContext(parentMatch);
      match.context = {
        ...parentContext,
        ...match.__routeContext,
        ...match.__beforeLoadContext
      };
      matches.push(match);
    });
    matches.forEach((match, index2) => {
      const route = this.looseRoutesById[match.routeId];
      const existingMatch = this.getMatch(match.id);
      if (!existingMatch && (opts == null ? void 0 : opts._buildLocation) !== true) {
        const parentMatch = matches[index2 - 1];
        const parentContext = getParentContext(parentMatch);
        if (route.options.context) {
          const contextFnContext = {
            deps: match.loaderDeps,
            params: match.params,
            context: parentContext ?? {},
            location: next,
            navigate: (opts2) => this.navigate({ ...opts2, _fromLocation: next }),
            buildLocation: this.buildLocation,
            cause: match.cause,
            abortController: match.abortController,
            preload: !!match.preload,
            matches
          };
          match.__routeContext = route.options.context(contextFnContext) ?? void 0;
        }
        match.context = {
          ...parentContext,
          ...match.__routeContext,
          ...match.__beforeLoadContext
        };
      }
    });
    return matches;
  }
}
class SearchParamError extends Error {
}
class PathParamError extends Error {
}
function getInitialRouterState(location) {
  return {
    loadedAt: 0,
    isLoading: false,
    isTransitioning: false,
    status: "idle",
    resolvedLocation: void 0,
    location,
    matches: [],
    pendingMatches: [],
    cachedMatches: [],
    statusCode: 200
  };
}
function validateSearch(validateSearch2, input) {
  if (validateSearch2 == null) return {};
  if ("~standard" in validateSearch2) {
    const result = validateSearch2["~standard"].validate(input);
    if (result instanceof Promise)
      throw new SearchParamError("Async validation not supported");
    if (result.issues)
      throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), {
        cause: result
      });
    return result.value;
  }
  if ("parse" in validateSearch2) {
    return validateSearch2.parse(input);
  }
  if (typeof validateSearch2 === "function") {
    return validateSearch2(input);
  }
  return {};
}
const REQUIRED_PARAM_BASE_SCORE = 0.5;
const OPTIONAL_PARAM_BASE_SCORE = 0.4;
const WILDCARD_PARAM_BASE_SCORE = 0.25;
const BOTH_PRESENCE_BASE_SCORE = 0.05;
const PREFIX_PRESENCE_BASE_SCORE = 0.02;
const SUFFIX_PRESENCE_BASE_SCORE = 0.01;
const PREFIX_LENGTH_SCORE_MULTIPLIER = 2e-4;
const SUFFIX_LENGTH_SCORE_MULTIPLIER = 1e-4;
function handleParam(segment, baseScore) {
  if (segment.prefixSegment && segment.suffixSegment) {
    return baseScore + BOTH_PRESENCE_BASE_SCORE + PREFIX_LENGTH_SCORE_MULTIPLIER * segment.prefixSegment.length + SUFFIX_LENGTH_SCORE_MULTIPLIER * segment.suffixSegment.length;
  }
  if (segment.prefixSegment) {
    return baseScore + PREFIX_PRESENCE_BASE_SCORE + PREFIX_LENGTH_SCORE_MULTIPLIER * segment.prefixSegment.length;
  }
  if (segment.suffixSegment) {
    return baseScore + SUFFIX_PRESENCE_BASE_SCORE + SUFFIX_LENGTH_SCORE_MULTIPLIER * segment.suffixSegment.length;
  }
  return baseScore;
}
function processRouteTree({
  routeTree: routeTree2,
  initRoute
}) {
  const routesById = {};
  const routesByPath = {};
  const recurseRoutes = (childRoutes) => {
    childRoutes.forEach((childRoute, i) => {
      initRoute == null ? void 0 : initRoute(childRoute, i);
      const existingRoute = routesById[childRoute.id];
      invariant(
        !existingRoute,
        `Duplicate routes found with id: ${String(childRoute.id)}`
      );
      routesById[childRoute.id] = childRoute;
      if (!childRoute.isRoot && childRoute.path) {
        const trimmedFullPath = trimPathRight(childRoute.fullPath);
        if (!routesByPath[trimmedFullPath] || childRoute.fullPath.endsWith("/")) {
          routesByPath[trimmedFullPath] = childRoute;
        }
      }
      const children = childRoute.children;
      if (children == null ? void 0 : children.length) {
        recurseRoutes(children);
      }
    });
  };
  recurseRoutes([routeTree2]);
  const scoredRoutes = [];
  const routes = Object.values(routesById);
  routes.forEach((d, i) => {
    var _a2;
    if (d.isRoot || !d.path) {
      return;
    }
    const trimmed = trimPathLeft(d.fullPath);
    let parsed = parsePathname(trimmed);
    let skip = 0;
    while (parsed.length > skip + 1 && ((_a2 = parsed[skip]) == null ? void 0 : _a2.value) === "/") {
      skip++;
    }
    if (skip > 0) parsed = parsed.slice(skip);
    let optionalParamCount = 0;
    let hasStaticAfter = false;
    const scores = parsed.map((segment, index2) => {
      if (segment.value === "/") {
        return 0.75;
      }
      let baseScore = void 0;
      if (segment.type === SEGMENT_TYPE_PARAM) {
        baseScore = REQUIRED_PARAM_BASE_SCORE;
      } else if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {
        baseScore = OPTIONAL_PARAM_BASE_SCORE;
        optionalParamCount++;
      } else if (segment.type === SEGMENT_TYPE_WILDCARD) {
        baseScore = WILDCARD_PARAM_BASE_SCORE;
      }
      if (baseScore) {
        for (let i2 = index2 + 1; i2 < parsed.length; i2++) {
          const nextSegment = parsed[i2];
          if (nextSegment.type === SEGMENT_TYPE_PATHNAME && nextSegment.value !== "/") {
            hasStaticAfter = true;
            return handleParam(segment, baseScore + 0.2);
          }
        }
        return handleParam(segment, baseScore);
      }
      return 1;
    });
    scoredRoutes.push({
      child: d,
      trimmed,
      parsed,
      index: i,
      scores,
      optionalParamCount,
      hasStaticAfter
    });
  });
  const flatRoutes = scoredRoutes.sort((a, b) => {
    const minLength = Math.min(a.scores.length, b.scores.length);
    for (let i = 0; i < minLength; i++) {
      if (a.scores[i] !== b.scores[i]) {
        return b.scores[i] - a.scores[i];
      }
    }
    if (a.scores.length !== b.scores.length) {
      if (a.optionalParamCount !== b.optionalParamCount) {
        if (a.hasStaticAfter === b.hasStaticAfter) {
          return a.optionalParamCount - b.optionalParamCount;
        } else if (a.hasStaticAfter && !b.hasStaticAfter) {
          return -1;
        } else if (!a.hasStaticAfter && b.hasStaticAfter) {
          return 1;
        }
      }
      return b.scores.length - a.scores.length;
    }
    for (let i = 0; i < minLength; i++) {
      if (a.parsed[i].value !== b.parsed[i].value) {
        return a.parsed[i].value > b.parsed[i].value ? 1 : -1;
      }
    }
    return a.index - b.index;
  }).map((d, i) => {
    d.child.rank = i;
    return d.child;
  });
  return { routesById, routesByPath, flatRoutes };
}
function getMatchedRoutes({
  pathname,
  routePathname,
  basepath,
  caseSensitive,
  routesByPath,
  routesById,
  flatRoutes,
  parseCache
}) {
  let routeParams = {};
  const trimmedPath = trimPathRight(pathname);
  const getMatchedParams = (route) => {
    var _a2;
    const result = matchPathname(
      basepath,
      trimmedPath,
      {
        to: route.fullPath,
        caseSensitive: ((_a2 = route.options) == null ? void 0 : _a2.caseSensitive) ?? caseSensitive,
        // we need fuzzy matching for `notFoundMode: 'fuzzy'`
        fuzzy: true
      },
      parseCache
    );
    return result;
  };
  let foundRoute = routePathname !== void 0 ? routesByPath[routePathname] : void 0;
  if (foundRoute) {
    routeParams = getMatchedParams(foundRoute);
  } else {
    let fuzzyMatch = void 0;
    for (const route of flatRoutes) {
      const matchedParams = getMatchedParams(route);
      if (matchedParams) {
        if (route.path !== "/" && matchedParams["**"]) {
          if (!fuzzyMatch) {
            fuzzyMatch = { foundRoute: route, routeParams: matchedParams };
          }
        } else {
          foundRoute = route;
          routeParams = matchedParams;
          break;
        }
      }
    }
    if (!foundRoute && fuzzyMatch) {
      foundRoute = fuzzyMatch.foundRoute;
      routeParams = fuzzyMatch.routeParams;
    }
  }
  let routeCursor = foundRoute || routesById[rootRouteId];
  const matchedRoutes = [routeCursor];
  while (routeCursor.parentRoute) {
    routeCursor = routeCursor.parentRoute;
    matchedRoutes.push(routeCursor);
  }
  matchedRoutes.reverse();
  return { matchedRoutes, routeParams, foundRoute };
}
function applySearchMiddleware({
  search,
  dest,
  destRoutes,
  _includeValidateSearch
}) {
  const allMiddlewares = destRoutes.reduce(
    (acc, route) => {
      var _a2;
      const middlewares2 = [];
      if ("search" in route.options) {
        if ((_a2 = route.options.search) == null ? void 0 : _a2.middlewares) {
          middlewares2.push(...route.options.search.middlewares);
        }
      } else if (route.options.preSearchFilters || route.options.postSearchFilters) {
        const legacyMiddleware = ({
          search: search2,
          next
        }) => {
          let nextSearch = search2;
          if ("preSearchFilters" in route.options && route.options.preSearchFilters) {
            nextSearch = route.options.preSearchFilters.reduce(
              (prev, next2) => next2(prev),
              search2
            );
          }
          const result = next(nextSearch);
          if ("postSearchFilters" in route.options && route.options.postSearchFilters) {
            return route.options.postSearchFilters.reduce(
              (prev, next2) => next2(prev),
              result
            );
          }
          return result;
        };
        middlewares2.push(legacyMiddleware);
      }
      if (_includeValidateSearch && route.options.validateSearch) {
        const validate = ({ search: search2, next }) => {
          const result = next(search2);
          try {
            const validatedSearch = {
              ...result,
              ...validateSearch(route.options.validateSearch, result) ?? void 0
            };
            return validatedSearch;
          } catch {
            return result;
          }
        };
        middlewares2.push(validate);
      }
      return acc.concat(middlewares2);
    },
    []
  ) ?? [];
  const final = ({ search: search2 }) => {
    if (!dest.search) {
      return {};
    }
    if (dest.search === true) {
      return search2;
    }
    return functionalUpdate(dest.search, search2);
  };
  allMiddlewares.push(final);
  const applyNext = (index2, currentSearch) => {
    if (index2 >= allMiddlewares.length) {
      return currentSearch;
    }
    const middleware = allMiddlewares[index2];
    const next = (newSearch) => {
      return applyNext(index2 + 1, newSearch);
    };
    return middleware({ search: currentSearch, next });
  };
  return applyNext(0, search);
}
const preloadWarning = "Error preloading route! ☝️";
class BaseRoute {
  constructor(options) {
    this.init = (opts) => {
      var _a2, _b2;
      this.originalIndex = opts.originalIndex;
      const options2 = this.options;
      const isRoot = !(options2 == null ? void 0 : options2.path) && !(options2 == null ? void 0 : options2.id);
      this.parentRoute = (_b2 = (_a2 = this.options).getParentRoute) == null ? void 0 : _b2.call(_a2);
      if (isRoot) {
        this._path = rootRouteId;
      } else if (!this.parentRoute) {
        invariant(
          false
        );
      }
      let path = isRoot ? rootRouteId : options2 == null ? void 0 : options2.path;
      if (path && path !== "/") {
        path = trimPathLeft(path);
      }
      const customId = (options2 == null ? void 0 : options2.id) || path;
      let id = isRoot ? rootRouteId : joinPaths([
        this.parentRoute.id === rootRouteId ? "" : this.parentRoute.id,
        customId
      ]);
      if (path === rootRouteId) {
        path = "/";
      }
      if (id !== rootRouteId) {
        id = joinPaths(["/", id]);
      }
      const fullPath = id === rootRouteId ? "/" : joinPaths([this.parentRoute.fullPath, path]);
      this._path = path;
      this._id = id;
      this._fullPath = fullPath;
      this._to = fullPath;
    };
    this.clone = (other) => {
      this._path = other._path;
      this._id = other._id;
      this._fullPath = other._fullPath;
      this._to = other._to;
      this.options.getParentRoute = other.options.getParentRoute;
      this.children = other.children;
    };
    this.addChildren = (children) => {
      return this._addFileChildren(children);
    };
    this._addFileChildren = (children) => {
      if (Array.isArray(children)) {
        this.children = children;
      }
      if (typeof children === "object" && children !== null) {
        this.children = Object.values(children);
      }
      return this;
    };
    this._addFileTypes = () => {
      return this;
    };
    this.updateLoader = (options2) => {
      Object.assign(this.options, options2);
      return this;
    };
    this.update = (options2) => {
      Object.assign(this.options, options2);
      return this;
    };
    this.lazy = (lazyFn) => {
      this.lazyFn = lazyFn;
      return this;
    };
    this.options = options || {};
    this.isRoot = !(options == null ? void 0 : options.getParentRoute);
    if ((options == null ? void 0 : options.id) && (options == null ? void 0 : options.path)) {
      throw new Error(`Route cannot have both an 'id' and a 'path' option.`);
    }
  }
  get to() {
    return this._to;
  }
  get id() {
    return this._id;
  }
  get path() {
    return this._path;
  }
  get fullPath() {
    return this._fullPath;
  }
}
class BaseRootRoute extends BaseRoute {
  constructor(options) {
    super(options);
  }
}
function CatchBoundary(props) {
  const errorComponent = props.errorComponent ?? ErrorComponent;
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    CatchBoundaryImpl,
    {
      getResetKey: props.getResetKey,
      onCatch: props.onCatch,
      children: ({ error, reset }) => {
        if (error) {
          return reactExports.createElement(errorComponent, {
            error,
            reset
          });
        }
        return props.children;
      }
    }
  );
}
class CatchBoundaryImpl extends reactExports.Component {
  constructor() {
    super(...arguments);
    this.state = { error: null };
  }
  static getDerivedStateFromProps(props) {
    return { resetKey: props.getResetKey() };
  }
  static getDerivedStateFromError(error) {
    return { error };
  }
  reset() {
    this.setState({ error: null });
  }
  componentDidUpdate(prevProps, prevState) {
    if (prevState.error && prevState.resetKey !== this.state.resetKey) {
      this.reset();
    }
  }
  componentDidCatch(error, errorInfo) {
    if (this.props.onCatch) {
      this.props.onCatch(error, errorInfo);
    }
  }
  render() {
    return this.props.children({
      error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error,
      reset: () => {
        this.reset();
      }
    });
  }
}
function ErrorComponent({ error }) {
  const [show, setShow] = reactExports.useState(false);
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { padding: ".5rem", maxWidth: "100%" }, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: ".5rem" }, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { style: { fontSize: "1rem" }, children: "Something went wrong!" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "button",
        {
          style: {
            appearance: "none",
            fontSize: ".6em",
            border: "1px solid currentColor",
            padding: ".1rem .2rem",
            fontWeight: "bold",
            borderRadius: ".25rem"
          },
          onClick: () => setShow((d) => !d),
          children: show ? "Hide Error" : "Show Error"
        }
      )
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { height: ".25rem" } }),
    show ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "pre",
      {
        style: {
          fontSize: ".7em",
          border: "1px solid red",
          borderRadius: ".25rem",
          padding: ".3rem",
          color: "red",
          overflow: "auto"
        },
        children: error.message ? /* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: error.message }) : null
      }
    ) }) : null
  ] });
}
function ClientOnly({ children, fallback = null }) {
  return useHydrated() ? /* @__PURE__ */ jsxRuntimeExports.jsx(React.Fragment, { children }) : /* @__PURE__ */ jsxRuntimeExports.jsx(React.Fragment, { children: fallback });
}
function useHydrated() {
  return React.useSyncExternalStore(
    subscribe,
    () => true,
    () => false
  );
}
function subscribe() {
  return () => {
  };
}
var withSelector = { exports: {} };
var withSelector_production = {};
var shim = { exports: {} };
var useSyncExternalStoreShim_production = {};
/**
 * @license React
 * use-sync-external-store-shim.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var hasRequiredUseSyncExternalStoreShim_production;
function requireUseSyncExternalStoreShim_production() {
  if (hasRequiredUseSyncExternalStoreShim_production) return useSyncExternalStoreShim_production;
  hasRequiredUseSyncExternalStoreShim_production = 1;
  var React2 = requireReact();
  function is(x, y) {
    return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
  }
  var objectIs = "function" === typeof Object.is ? Object.is : is, useState = React2.useState, useEffect = React2.useEffect, useLayoutEffect3 = React2.useLayoutEffect, useDebugValue = React2.useDebugValue;
  function useSyncExternalStore$2(subscribe2, getSnapshot) {
    var value = getSnapshot(), _useState = useState({ inst: { value, getSnapshot } }), inst = _useState[0].inst, forceUpdate = _useState[1];
    useLayoutEffect3(
      function() {
        inst.value = value;
        inst.getSnapshot = getSnapshot;
        checkIfSnapshotChanged(inst) && forceUpdate({ inst });
      },
      [subscribe2, value, getSnapshot]
    );
    useEffect(
      function() {
        checkIfSnapshotChanged(inst) && forceUpdate({ inst });
        return subscribe2(function() {
          checkIfSnapshotChanged(inst) && forceUpdate({ inst });
        });
      },
      [subscribe2]
    );
    useDebugValue(value);
    return value;
  }
  function checkIfSnapshotChanged(inst) {
    var latestGetSnapshot = inst.getSnapshot;
    inst = inst.value;
    try {
      var nextValue = latestGetSnapshot();
      return !objectIs(inst, nextValue);
    } catch (error) {
      return true;
    }
  }
  function useSyncExternalStore$1(subscribe2, getSnapshot) {
    return getSnapshot();
  }
  var shim2 = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
  useSyncExternalStoreShim_production.useSyncExternalStore = void 0 !== React2.useSyncExternalStore ? React2.useSyncExternalStore : shim2;
  return useSyncExternalStoreShim_production;
}
var hasRequiredShim;
function requireShim() {
  if (hasRequiredShim) return shim.exports;
  hasRequiredShim = 1;
  {
    shim.exports = requireUseSyncExternalStoreShim_production();
  }
  return shim.exports;
}
/**
 * @license React
 * use-sync-external-store-shim/with-selector.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var hasRequiredWithSelector_production;
function requireWithSelector_production() {
  if (hasRequiredWithSelector_production) return withSelector_production;
  hasRequiredWithSelector_production = 1;
  var React2 = requireReact(), shim2 = requireShim();
  function is(x, y) {
    return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
  }
  var objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore = shim2.useSyncExternalStore, useRef = React2.useRef, useEffect = React2.useEffect, useMemo = React2.useMemo, useDebugValue = React2.useDebugValue;
  withSelector_production.useSyncExternalStoreWithSelector = function(subscribe2, getSnapshot, getServerSnapshot, selector, isEqual) {
    var instRef = useRef(null);
    if (null === instRef.current) {
      var inst = { hasValue: false, value: null };
      instRef.current = inst;
    } else inst = instRef.current;
    instRef = useMemo(
      function() {
        function memoizedSelector(nextSnapshot) {
          if (!hasMemo) {
            hasMemo = true;
            memoizedSnapshot = nextSnapshot;
            nextSnapshot = selector(nextSnapshot);
            if (void 0 !== isEqual && inst.hasValue) {
              var currentSelection = inst.value;
              if (isEqual(currentSelection, nextSnapshot))
                return memoizedSelection = currentSelection;
            }
            return memoizedSelection = nextSnapshot;
          }
          currentSelection = memoizedSelection;
          if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;
          var nextSelection = selector(nextSnapshot);
          if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
            return memoizedSnapshot = nextSnapshot, currentSelection;
          memoizedSnapshot = nextSnapshot;
          return memoizedSelection = nextSelection;
        }
        var hasMemo = false, memoizedSnapshot, memoizedSelection, maybeGetServerSnapshot = void 0 === getServerSnapshot ? null : getServerSnapshot;
        return [
          function() {
            return memoizedSelector(getSnapshot());
          },
          null === maybeGetServerSnapshot ? void 0 : function() {
            return memoizedSelector(maybeGetServerSnapshot());
          }
        ];
      },
      [getSnapshot, getServerSnapshot, selector, isEqual]
    );
    var value = useSyncExternalStore(subscribe2, instRef[0], instRef[1]);
    useEffect(
      function() {
        inst.hasValue = true;
        inst.value = value;
      },
      [value]
    );
    useDebugValue(value);
    return value;
  };
  return withSelector_production;
}
var hasRequiredWithSelector;
function requireWithSelector() {
  if (hasRequiredWithSelector) return withSelector.exports;
  hasRequiredWithSelector = 1;
  {
    withSelector.exports = requireWithSelector_production();
  }
  return withSelector.exports;
}
var withSelectorExports = requireWithSelector();
function useStore(store, selector = (d) => d) {
  const slice = withSelectorExports.useSyncExternalStoreWithSelector(
    store.subscribe,
    () => store.state,
    () => store.state,
    selector,
    shallow
  );
  return slice;
}
function shallow(objA, objB) {
  if (Object.is(objA, objB)) {
    return true;
  }
  if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
    return false;
  }
  if (objA instanceof Map && objB instanceof Map) {
    if (objA.size !== objB.size) return false;
    for (const [k2, v] of objA) {
      if (!objB.has(k2) || !Object.is(v, objB.get(k2))) return false;
    }
    return true;
  }
  if (objA instanceof Set && objB instanceof Set) {
    if (objA.size !== objB.size) return false;
    for (const v of objA) {
      if (!objB.has(v)) return false;
    }
    return true;
  }
  if (objA instanceof Date && objB instanceof Date) {
    if (objA.getTime() !== objB.getTime()) return false;
    return true;
  }
  const keysA = Object.keys(objA);
  if (keysA.length !== Object.keys(objB).length) {
    return false;
  }
  for (let i = 0; i < keysA.length; i++) {
    if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {
      return false;
    }
  }
  return true;
}
const routerContext = reactExports.createContext(null);
function getRouterContext() {
  if (typeof document === "undefined") {
    return routerContext;
  }
  if (window.__TSR_ROUTER_CONTEXT__) {
    return window.__TSR_ROUTER_CONTEXT__;
  }
  window.__TSR_ROUTER_CONTEXT__ = routerContext;
  return routerContext;
}
function useRouter(opts) {
  const value = reactExports.useContext(getRouterContext());
  warning(
    !(((opts == null ? void 0 : opts.warn) ?? true) && !value)
  );
  return value;
}
function useRouterState(opts) {
  const contextRouter = useRouter({
    warn: (opts == null ? void 0 : opts.router) === void 0
  });
  const router2 = (opts == null ? void 0 : opts.router) || contextRouter;
  const previousResult = reactExports.useRef(void 0);
  return useStore(router2.__store, (state) => {
    if (opts == null ? void 0 : opts.select) {
      if (opts.structuralSharing ?? router2.options.defaultStructuralSharing) {
        const newSlice = replaceEqualDeep(
          previousResult.current,
          opts.select(state)
        );
        previousResult.current = newSlice;
        return newSlice;
      }
      return opts.select(state);
    }
    return state;
  });
}
const matchContext = reactExports.createContext(void 0);
const dummyMatchContext = reactExports.createContext(
  void 0
);
function useMatch(opts) {
  const nearestMatchId = reactExports.useContext(
    opts.from ? dummyMatchContext : matchContext
  );
  const matchSelection = useRouterState({
    select: (state) => {
      const match = state.matches.find(
        (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId
      );
      invariant(
        !((opts.shouldThrow ?? true) && !match),
        `Could not find ${opts.from ? `an active match from "${opts.from}"` : "a nearest match!"}`
      );
      if (match === void 0) {
        return void 0;
      }
      return opts.select ? opts.select(match) : match;
    },
    structuralSharing: opts.structuralSharing
  });
  return matchSelection;
}
function useLoaderData(opts) {
  return useMatch({
    from: opts.from,
    strict: opts.strict,
    structuralSharing: opts.structuralSharing,
    select: (s) => {
      return opts.select ? opts.select(s.loaderData) : s.loaderData;
    }
  });
}
function useLoaderDeps(opts) {
  const { select, ...rest } = opts;
  return useMatch({
    ...rest,
    select: (s) => {
      return select ? select(s.loaderDeps) : s.loaderDeps;
    }
  });
}
function useParams(opts) {
  return useMatch({
    from: opts.from,
    strict: opts.strict,
    shouldThrow: opts.shouldThrow,
    structuralSharing: opts.structuralSharing,
    select: (match) => {
      return opts.select ? opts.select(match.params) : match.params;
    }
  });
}
function useSearch(opts) {
  return useMatch({
    from: opts.from,
    strict: opts.strict,
    shouldThrow: opts.shouldThrow,
    structuralSharing: opts.structuralSharing,
    select: (match) => {
      return opts.select ? opts.select(match.search) : match.search;
    }
  });
}
const useActiveLocation = (location) => {
  const router2 = useRouter();
  const routerLocation = useRouterState({ select: (state) => state.location });
  const [activeLocation, setActiveLocation] = reactExports.useState(
    routerLocation
  );
  const [customActiveLocation, setCustomActiveLocation] = reactExports.useState(location);
  reactExports.useEffect(() => {
    setActiveLocation(customActiveLocation ?? routerLocation);
  }, [routerLocation, customActiveLocation]);
  const matchIndex = useMatch({
    strict: false,
    select: (match) => match.index
  });
  const getFromPath = reactExports.useCallback(
    (from) => {
      const activeLocationMatches = router2.matchRoutes(activeLocation, {
        _buildLocation: false
      });
      const activeLocationMatch = last(activeLocationMatches);
      return from ?? (activeLocationMatch == null ? void 0 : activeLocationMatch.fullPath) ?? router2.state.matches[matchIndex].fullPath;
    },
    [activeLocation, matchIndex, router2]
  );
  return {
    activeLocation,
    getFromPath,
    setActiveLocation: setCustomActiveLocation
  };
};
function useNavigate(_defaultOpts) {
  const router2 = useRouter();
  const { getFromPath, activeLocation } = useActiveLocation();
  return reactExports.useCallback(
    (options) => {
      const from = getFromPath(options.from ?? (_defaultOpts == null ? void 0 : _defaultOpts.from));
      return router2.navigate({
        ...options,
        from
      });
    },
    // eslint-disable-next-line react-hooks/exhaustive-deps
    [_defaultOpts == null ? void 0 : _defaultOpts.from, router2, getFromPath, activeLocation]
  );
}
var reactDomExports = requireReactDom();
const ReactDOM = /* @__PURE__ */ getDefaultExportFromCjs(reactDomExports);
const useLayoutEffect = typeof window !== "undefined" ? reactExports.useLayoutEffect : reactExports.useEffect;
function usePrevious$1(value) {
  const ref = reactExports.useRef({
    value,
    prev: null
  });
  const current = ref.current.value;
  if (value !== current) {
    ref.current = {
      value,
      prev: current
    };
  }
  return ref.current.prev;
}
function useIntersectionObserver(ref, callback, intersectionObserverOptions2 = {}, options = {}) {
  reactExports.useEffect(() => {
    if (!ref.current || options.disabled || typeof IntersectionObserver !== "function") {
      return;
    }
    const observer = new IntersectionObserver(([entry]) => {
      callback(entry);
    }, intersectionObserverOptions2);
    observer.observe(ref.current);
    return () => {
      observer.disconnect();
    };
  }, [callback, intersectionObserverOptions2, options.disabled, ref]);
}
function useForwardedRef(ref) {
  const innerRef = reactExports.useRef(null);
  reactExports.useImperativeHandle(ref, () => innerRef.current, []);
  return innerRef;
}
function useLinkProps(options, forwardedRef) {
  const router2 = useRouter();
  const [isTransitioning, setIsTransitioning] = reactExports.useState(false);
  const hasRenderFetched = reactExports.useRef(false);
  const innerRef = useForwardedRef(forwardedRef);
  const {
    // custom props
    activeProps,
    inactiveProps,
    activeOptions,
    to,
    preload: userPreload,
    preloadDelay: userPreloadDelay,
    hashScrollIntoView,
    replace,
    startTransition,
    resetScroll,
    viewTransition,
    // element props
    children,
    target,
    disabled,
    style,
    className,
    onClick,
    onFocus,
    onMouseEnter,
    onMouseLeave,
    onTouchStart,
    ignoreBlocker,
    // prevent these from being returned
    params: _params,
    search: _search,
    hash: _hash,
    state: _state,
    mask: _mask,
    reloadDocument: _reloadDocument,
    unsafeRelative: _unsafeRelative,
    from: _from,
    _fromLocation,
    ...propsSafeToSpread
  } = options;
  const type = reactExports.useMemo(() => {
    try {
      new URL(to);
      return "external";
    } catch {
    }
    return "internal";
  }, [to]);
  const currentSearch = useRouterState({
    select: (s) => s.location.search,
    structuralSharing: true
  });
  const routerLocation = useRouterState({
    select: (s) => s.location,
    structuralSharing: true
  });
  const { getFromPath } = useActiveLocation();
  const from = getFromPath(options.from);
  const _options = reactExports.useMemo(
    () => {
      return { ...options, from };
    },
    // eslint-disable-next-line react-hooks/exhaustive-deps
    [
      router2,
      routerLocation,
      currentSearch,
      from,
      options._fromLocation,
      options.hash,
      options.to,
      options.search,
      options.params,
      options.state,
      options.mask,
      options.unsafeRelative
    ]
  );
  const next = reactExports.useMemo(
    () => router2.buildLocation({ ..._options }),
    [router2, _options]
  );
  const isExternal = type === "external";
  const preload = options.reloadDocument || isExternal ? false : userPreload ?? router2.options.defaultPreload;
  const preloadDelay = userPreloadDelay ?? router2.options.defaultPreloadDelay ?? 0;
  const isActive = useRouterState({
    select: (s) => {
      if (isExternal) return false;
      if (activeOptions == null ? void 0 : activeOptions.exact) {
        const testExact = exactPathTest(
          s.location.pathname,
          next.pathname,
          router2.basepath
        );
        if (!testExact) {
          return false;
        }
      } else {
        const currentPathSplit = removeTrailingSlash(
          s.location.pathname,
          router2.basepath
        );
        const nextPathSplit = removeTrailingSlash(
          next.pathname,
          router2.basepath
        );
        const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === "/");
        if (!pathIsFuzzyEqual) {
          return false;
        }
      }
      if ((activeOptions == null ? void 0 : activeOptions.includeSearch) ?? true) {
        const searchTest = deepEqual$1(s.location.search, next.search, {
          partial: !(activeOptions == null ? void 0 : activeOptions.exact),
          ignoreUndefined: !(activeOptions == null ? void 0 : activeOptions.explicitUndefined)
        });
        if (!searchTest) {
          return false;
        }
      }
      if (activeOptions == null ? void 0 : activeOptions.includeHash) {
        return s.location.hash === next.hash;
      }
      return true;
    }
  });
  const doPreload = reactExports.useCallback(() => {
    router2.preloadRoute({ ..._options }).catch((err) => {
      console.warn(err);
      console.warn(preloadWarning);
    });
  }, [router2, _options]);
  const preloadViewportIoCallback = reactExports.useCallback(
    (entry) => {
      if (entry == null ? void 0 : entry.isIntersecting) {
        doPreload();
      }
    },
    [doPreload]
  );
  useIntersectionObserver(
    innerRef,
    preloadViewportIoCallback,
    intersectionObserverOptions,
    { disabled: !!disabled || !(preload === "viewport") }
  );
  reactExports.useEffect(() => {
    if (hasRenderFetched.current) {
      return;
    }
    if (!disabled && preload === "render") {
      doPreload();
      hasRenderFetched.current = true;
    }
  }, [disabled, doPreload, preload]);
  const handleClick = (e) => {
    if (!disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!target || target === "_self") && e.button === 0) {
      e.preventDefault();
      reactDomExports.flushSync(() => {
        setIsTransitioning(true);
      });
      const unsub = router2.subscribe("onResolved", () => {
        unsub();
        setIsTransitioning(false);
      });
      router2.navigate({
        ..._options,
        replace,
        resetScroll,
        hashScrollIntoView,
        startTransition,
        viewTransition,
        ignoreBlocker
      });
    }
  };
  if (isExternal) {
    return {
      ...propsSafeToSpread,
      ref: innerRef,
      type,
      href: to,
      ...children && { children },
      ...target && { target },
      ...disabled && { disabled },
      ...style && { style },
      ...className && { className },
      ...onClick && { onClick },
      ...onFocus && { onFocus },
      ...onMouseEnter && { onMouseEnter },
      ...onMouseLeave && { onMouseLeave },
      ...onTouchStart && { onTouchStart }
    };
  }
  const handleFocus = (_) => {
    if (disabled) return;
    if (preload) {
      doPreload();
    }
  };
  const handleTouchStart = handleFocus;
  const handleEnter = (e) => {
    if (disabled || !preload) return;
    if (!preloadDelay) {
      doPreload();
    } else {
      const eventTarget = e.target;
      if (timeoutMap.has(eventTarget)) {
        return;
      }
      const id = setTimeout(() => {
        timeoutMap.delete(eventTarget);
        doPreload();
      }, preloadDelay);
      timeoutMap.set(eventTarget, id);
    }
  };
  const handleLeave = (e) => {
    if (disabled || !preload || !preloadDelay) return;
    const eventTarget = e.target;
    const id = timeoutMap.get(eventTarget);
    if (id) {
      clearTimeout(id);
      timeoutMap.delete(eventTarget);
    }
  };
  const resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;
  const resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;
  const resolvedClassName = [
    className,
    resolvedActiveProps.className,
    resolvedInactiveProps.className
  ].filter(Boolean).join(" ");
  const resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && {
    ...style,
    ...resolvedActiveProps.style,
    ...resolvedInactiveProps.style
  };
  return {
    ...propsSafeToSpread,
    ...resolvedActiveProps,
    ...resolvedInactiveProps,
    href: disabled ? void 0 : next.maskedLocation ? router2.history.createHref(next.maskedLocation.href) : router2.history.createHref(next.href),
    ref: innerRef,
    onClick: composeHandlers([onClick, handleClick]),
    onFocus: composeHandlers([onFocus, handleFocus]),
    onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),
    onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),
    onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),
    disabled: !!disabled,
    target,
    ...resolvedStyle && { style: resolvedStyle },
    ...resolvedClassName && { className: resolvedClassName },
    ...disabled && STATIC_DISABLED_PROPS,
    ...isActive && STATIC_ACTIVE_PROPS,
    ...isTransitioning && STATIC_TRANSITIONING_PROPS
  };
}
const STATIC_EMPTY_OBJECT = {};
const STATIC_ACTIVE_OBJECT = { className: "active" };
const STATIC_DISABLED_PROPS = { role: "link", "aria-disabled": true };
const STATIC_ACTIVE_PROPS = { "data-status": "active", "aria-current": "page" };
const STATIC_TRANSITIONING_PROPS = { "data-transitioning": "transitioning" };
const timeoutMap = /* @__PURE__ */ new WeakMap();
const intersectionObserverOptions = {
  rootMargin: "100px"
};
const composeHandlers = (handlers) => (e) => {
  handlers.filter(Boolean).forEach((handler) => {
    if (e.defaultPrevented) return;
    handler(e);
  });
};
const Link = reactExports.forwardRef(
  (props, ref) => {
    const { _asChild, ...rest } = props;
    const {
      type: _type,
      ref: innerRef,
      ...linkProps
    } = useLinkProps(rest, ref);
    const children = typeof rest.children === "function" ? rest.children({
      isActive: linkProps["data-status"] === "active"
    }) : rest.children;
    if (_asChild === void 0) {
      delete linkProps.disabled;
    }
    return reactExports.createElement(
      _asChild ? _asChild : "a",
      {
        ...linkProps,
        ref: innerRef
      },
      children
    );
  }
);
function isCtrlEvent(e) {
  return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
}
let Route$5 = class Route extends BaseRoute {
  /**
   * @deprecated Use the `createRoute` function instead.
   */
  constructor(options) {
    super(options);
    this.useMatch = (opts) => {
      return useMatch({
        select: opts == null ? void 0 : opts.select,
        from: this.id,
        structuralSharing: opts == null ? void 0 : opts.structuralSharing
      });
    };
    this.useRouteContext = (opts) => {
      return useMatch({
        ...opts,
        from: this.id,
        select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context
      });
    };
    this.useSearch = (opts) => {
      return useSearch({
        select: opts == null ? void 0 : opts.select,
        structuralSharing: opts == null ? void 0 : opts.structuralSharing,
        from: this.id
      });
    };
    this.useParams = (opts) => {
      return useParams({
        select: opts == null ? void 0 : opts.select,
        structuralSharing: opts == null ? void 0 : opts.structuralSharing,
        from: this.id
      });
    };
    this.useLoaderDeps = (opts) => {
      return useLoaderDeps({ ...opts, from: this.id });
    };
    this.useLoaderData = (opts) => {
      return useLoaderData({ ...opts, from: this.id });
    };
    this.useNavigate = () => {
      return useNavigate({ from: this.fullPath });
    };
    this.Link = React.forwardRef(
      (props, ref) => {
        return /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { ref, from: this.fullPath, ...props });
      }
    );
    this.$$typeof = Symbol.for("react.memo");
  }
};
function createRoute(options) {
  return new Route$5(options);
}
class RootRoute extends BaseRootRoute {
  /**
   * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.
   */
  constructor(options) {
    super(options);
    this.useMatch = (opts) => {
      return useMatch({
        select: opts == null ? void 0 : opts.select,
        from: this.id,
        structuralSharing: opts == null ? void 0 : opts.structuralSharing
      });
    };
    this.useRouteContext = (opts) => {
      return useMatch({
        ...opts,
        from: this.id,
        select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context
      });
    };
    this.useSearch = (opts) => {
      return useSearch({
        select: opts == null ? void 0 : opts.select,
        structuralSharing: opts == null ? void 0 : opts.structuralSharing,
        from: this.id
      });
    };
    this.useParams = (opts) => {
      return useParams({
        select: opts == null ? void 0 : opts.select,
        structuralSharing: opts == null ? void 0 : opts.structuralSharing,
        from: this.id
      });
    };
    this.useLoaderDeps = (opts) => {
      return useLoaderDeps({ ...opts, from: this.id });
    };
    this.useLoaderData = (opts) => {
      return useLoaderData({ ...opts, from: this.id });
    };
    this.useNavigate = () => {
      return useNavigate({ from: this.fullPath });
    };
    this.Link = React.forwardRef(
      (props, ref) => {
        return /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { ref, from: this.fullPath, ...props });
      }
    );
    this.$$typeof = Symbol.for("react.memo");
  }
}
function createRootRoute(options) {
  return new RootRoute(options);
}
function createFileRoute(path) {
  if (typeof path === "object") {
    return new FileRoute(path, {
      silent: true
    }).createRoute(path);
  }
  return new FileRoute(path, {
    silent: true
  }).createRoute;
}
class FileRoute {
  constructor(path, _opts) {
    this.path = path;
    this.createRoute = (options) => {
      warning(
        this.silent
      );
      const route = createRoute(options);
      route.isRoot = false;
      return route;
    };
    this.silent = _opts == null ? void 0 : _opts.silent;
  }
}
class LazyRoute {
  constructor(opts) {
    this.useMatch = (opts2) => {
      return useMatch({
        select: opts2 == null ? void 0 : opts2.select,
        from: this.options.id,
        structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing
      });
    };
    this.useRouteContext = (opts2) => {
      return useMatch({
        from: this.options.id,
        select: (d) => (opts2 == null ? void 0 : opts2.select) ? opts2.select(d.context) : d.context
      });
    };
    this.useSearch = (opts2) => {
      return useSearch({
        select: opts2 == null ? void 0 : opts2.select,
        structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing,
        from: this.options.id
      });
    };
    this.useParams = (opts2) => {
      return useParams({
        select: opts2 == null ? void 0 : opts2.select,
        structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing,
        from: this.options.id
      });
    };
    this.useLoaderDeps = (opts2) => {
      return useLoaderDeps({ ...opts2, from: this.options.id });
    };
    this.useLoaderData = (opts2) => {
      return useLoaderData({ ...opts2, from: this.options.id });
    };
    this.useNavigate = () => {
      const router2 = useRouter();
      return useNavigate({ from: router2.routesById[this.options.id].fullPath });
    };
    this.options = opts;
    this.$$typeof = Symbol.for("react.memo");
  }
}
function createLazyFileRoute(id) {
  if (typeof id === "object") {
    return new LazyRoute(id);
  }
  return (opts) => new LazyRoute({ id, ...opts });
}
function Transitioner() {
  const router2 = useRouter();
  const mountLoadForRouter = reactExports.useRef({ router: router2, mounted: false });
  const [isTransitioning, setIsTransitioning] = reactExports.useState(false);
  const { hasPendingMatches, isLoading } = useRouterState({
    select: (s) => ({
      isLoading: s.isLoading,
      hasPendingMatches: s.matches.some((d) => d.status === "pending")
    }),
    structuralSharing: true
  });
  const previousIsLoading = usePrevious$1(isLoading);
  const isAnyPending = isLoading || isTransitioning || hasPendingMatches;
  const previousIsAnyPending = usePrevious$1(isAnyPending);
  const isPagePending = isLoading || hasPendingMatches;
  const previousIsPagePending = usePrevious$1(isPagePending);
  router2.startTransition = (fn) => {
    setIsTransitioning(true);
    reactExports.startTransition(() => {
      fn();
      setIsTransitioning(false);
    });
  };
  reactExports.useEffect(() => {
    const unsub = router2.history.subscribe(router2.load);
    const nextLocation = router2.buildLocation({
      to: router2.latestLocation.pathname,
      search: true,
      params: true,
      hash: true,
      state: true,
      _includeValidateSearch: true
    });
    if (trimPathRight(router2.latestLocation.href) !== trimPathRight(nextLocation.href)) {
      router2.commitLocation({ ...nextLocation, replace: true });
    }
    return () => {
      unsub();
    };
  }, [router2, router2.history]);
  useLayoutEffect(() => {
    if (
      // if we are hydrating from SSR, loading is triggered in ssr-client
      typeof window !== "undefined" && router2.ssr || mountLoadForRouter.current.router === router2 && mountLoadForRouter.current.mounted
    ) {
      return;
    }
    mountLoadForRouter.current = { router: router2, mounted: true };
    const tryLoad = async () => {
      try {
        await router2.load();
      } catch (err) {
        console.error(err);
      }
    };
    tryLoad();
  }, [router2]);
  useLayoutEffect(() => {
    if (previousIsLoading && !isLoading) {
      router2.emit({
        type: "onLoad",
        // When the new URL has committed, when the new matches have been loaded into state.matches
        ...getLocationChangeInfo(router2.state)
      });
    }
  }, [previousIsLoading, router2, isLoading]);
  useLayoutEffect(() => {
    if (previousIsPagePending && !isPagePending) {
      router2.emit({
        type: "onBeforeRouteMount",
        ...getLocationChangeInfo(router2.state)
      });
    }
  }, [isPagePending, previousIsPagePending, router2]);
  useLayoutEffect(() => {
    if (previousIsAnyPending && !isAnyPending) {
      router2.emit({
        type: "onResolved",
        ...getLocationChangeInfo(router2.state)
      });
      router2.__store.setState((s) => ({
        ...s,
        status: "idle",
        resolvedLocation: s.location
      }));
      handleHashScroll(router2);
    }
  }, [isAnyPending, previousIsAnyPending, router2]);
  return null;
}
function CatchNotFound(props) {
  const resetKey = useRouterState({
    select: (s) => `not-found-${s.location.pathname}-${s.status}`
  });
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    CatchBoundary,
    {
      getResetKey: () => resetKey,
      onCatch: (error, errorInfo) => {
        var _a2;
        if (isNotFound(error)) {
          (_a2 = props.onCatch) == null ? void 0 : _a2.call(props, error, errorInfo);
        } else {
          throw error;
        }
      },
      errorComponent: ({ error }) => {
        var _a2;
        if (isNotFound(error)) {
          return (_a2 = props.fallback) == null ? void 0 : _a2.call(props, error);
        } else {
          throw error;
        }
      },
      children: props.children
    }
  );
}
function DefaultGlobalNotFound() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Not Found" });
}
function SafeFragment(props) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: props.children });
}
function renderRouteNotFound(router2, route, data) {
  if (!route.options.notFoundComponent) {
    if (router2.options.defaultNotFoundComponent) {
      return /* @__PURE__ */ jsxRuntimeExports.jsx(router2.options.defaultNotFoundComponent, { data });
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(DefaultGlobalNotFound, {});
  }
  return /* @__PURE__ */ jsxRuntimeExports.jsx(route.options.notFoundComponent, { data });
}
function ScriptOnce({
  children
}) {
  if (typeof document !== "undefined") {
    return null;
  }
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "script",
    {
      className: "$tsr",
      dangerouslySetInnerHTML: {
        __html: [children].filter(Boolean).join("\n")
      }
    }
  );
}
function ScrollRestoration() {
  const router2 = useRouter();
  const getKey = router2.options.getScrollRestorationKey || defaultGetScrollRestorationKey;
  const userKey = getKey(router2.latestLocation);
  const resolvedKey = userKey !== defaultGetScrollRestorationKey(router2.latestLocation) ? userKey : void 0;
  if (!router2.isScrollRestoring || !router2.isServer) {
    return null;
  }
  const restoreScrollOptions = {
    storageKey,
    shouldScrollRestoration: true
  };
  if (resolvedKey) {
    restoreScrollOptions.key = resolvedKey;
  }
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    ScriptOnce,
    {
      children: `(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})`
    }
  );
}
const Match = reactExports.memo(function MatchImpl({
  matchId
}) {
  var _a2, _b2;
  const router2 = useRouter();
  const matchState = useRouterState({
    select: (s) => {
      const match = s.matches.find((d) => d.id === matchId);
      invariant(
        match
      );
      return {
        routeId: match.routeId,
        ssr: match.ssr,
        _displayPending: match._displayPending
      };
    },
    structuralSharing: true
  });
  const route = router2.routesById[matchState.routeId];
  const PendingComponent = route.options.pendingComponent ?? router2.options.defaultPendingComponent;
  const pendingElement = PendingComponent ? /* @__PURE__ */ jsxRuntimeExports.jsx(PendingComponent, {}) : null;
  const routeErrorComponent = route.options.errorComponent ?? router2.options.defaultErrorComponent;
  const routeOnCatch = route.options.onCatch ?? router2.options.defaultOnCatch;
  const routeNotFoundComponent = route.isRoot ? (
    // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
    route.options.notFoundComponent ?? ((_a2 = router2.options.notFoundRoute) == null ? void 0 : _a2.options.component)
  ) : route.options.notFoundComponent;
  const resolvedNoSsr = matchState.ssr === false || matchState.ssr === "data-only";
  const ResolvedSuspenseBoundary = (
    // If we're on the root route, allow forcefully wrapping in suspense
    (!route.isRoot || route.options.wrapInSuspense || resolvedNoSsr) && (route.options.wrapInSuspense ?? PendingComponent ?? (((_b2 = route.options.errorComponent) == null ? void 0 : _b2.preload) || resolvedNoSsr)) ? reactExports.Suspense : SafeFragment
  );
  const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment;
  const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment;
  const resetKey = useRouterState({
    select: (s) => s.loadedAt
  });
  const parentRouteId = useRouterState({
    select: (s) => {
      var _a22;
      const index2 = s.matches.findIndex((d) => d.id === matchId);
      return (_a22 = s.matches[index2 - 1]) == null ? void 0 : _a22.routeId;
    }
  });
  const ShellComponent = route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment;
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(ShellComponent, { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      ResolvedCatchBoundary,
      {
        getResetKey: () => resetKey,
        errorComponent: routeErrorComponent || ErrorComponent,
        onCatch: (error, errorInfo) => {
          if (isNotFound(error)) throw error;
          routeOnCatch == null ? void 0 : routeOnCatch(error, errorInfo);
        },
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          ResolvedNotFoundBoundary,
          {
            fallback: (error) => {
              if (!routeNotFoundComponent || error.routeId && error.routeId !== matchState.routeId || !error.routeId && !route.isRoot)
                throw error;
              return reactExports.createElement(routeNotFoundComponent, error);
            },
            children: resolvedNoSsr || matchState._displayPending ? /* @__PURE__ */ jsxRuntimeExports.jsx(ClientOnly, { fallback: pendingElement, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MatchInner, { matchId }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(MatchInner, { matchId })
          }
        )
      }
    ) }) }),
    parentRouteId === rootRouteId && router2.options.scrollRestoration ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(OnRendered, {}),
      /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollRestoration, {})
    ] }) : null
  ] });
});
function OnRendered() {
  const router2 = useRouter();
  const prevLocationRef = reactExports.useRef(
    void 0
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "script",
    {
      suppressHydrationWarning: true,
      ref: (el) => {
        if (el && (prevLocationRef.current === void 0 || prevLocationRef.current.href !== router2.latestLocation.href)) {
          router2.emit({
            type: "onRendered",
            ...getLocationChangeInfo(router2.state)
          });
          prevLocationRef.current = router2.latestLocation;
        }
      }
    },
    router2.latestLocation.state.__TSR_key
  );
}
const MatchInner = reactExports.memo(function MatchInnerImpl({
  matchId
}) {
  var _a2, _b2, _c2, _d2;
  const router2 = useRouter();
  const { match, key, routeId } = useRouterState({
    select: (s) => {
      const match2 = s.matches.find((d) => d.id === matchId);
      const routeId2 = match2.routeId;
      const remountFn = router2.routesById[routeId2].options.remountDeps ?? router2.options.defaultRemountDeps;
      const remountDeps = remountFn == null ? void 0 : remountFn({
        routeId: routeId2,
        loaderDeps: match2.loaderDeps,
        params: match2._strictParams,
        search: match2._strictSearch
      });
      const key2 = remountDeps ? JSON.stringify(remountDeps) : void 0;
      return {
        key: key2,
        routeId: routeId2,
        match: {
          id: match2.id,
          status: match2.status,
          error: match2.error,
          _forcePending: match2._forcePending,
          _displayPending: match2._displayPending
        }
      };
    },
    structuralSharing: true
  });
  const route = router2.routesById[routeId];
  const out = reactExports.useMemo(() => {
    const Comp = route.options.component ?? router2.options.defaultComponent;
    if (Comp) {
      return /* @__PURE__ */ jsxRuntimeExports.jsx(Comp, {}, key);
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {});
  }, [key, route.options.component, router2.options.defaultComponent]);
  if (match._displayPending) {
    throw (_a2 = router2.getMatch(match.id)) == null ? void 0 : _a2._nonReactive.displayPendingPromise;
  }
  if (match._forcePending) {
    throw (_b2 = router2.getMatch(match.id)) == null ? void 0 : _b2._nonReactive.minPendingPromise;
  }
  if (match.status === "pending") {
    const pendingMinMs = route.options.pendingMinMs ?? router2.options.defaultPendingMinMs;
    if (pendingMinMs) {
      const routerMatch = router2.getMatch(match.id);
      if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
        if (!router2.isServer) {
          const minPendingPromise = createControlledPromise();
          routerMatch._nonReactive.minPendingPromise = minPendingPromise;
          setTimeout(() => {
            minPendingPromise.resolve();
            routerMatch._nonReactive.minPendingPromise = void 0;
          }, pendingMinMs);
        }
      }
    }
    throw (_c2 = router2.getMatch(match.id)) == null ? void 0 : _c2._nonReactive.loadPromise;
  }
  if (match.status === "notFound") {
    invariant(isNotFound(match.error));
    return renderRouteNotFound(router2, route, match.error);
  }
  if (match.status === "redirected") {
    invariant(isRedirect(match.error));
    throw (_d2 = router2.getMatch(match.id)) == null ? void 0 : _d2._nonReactive.loadPromise;
  }
  if (match.status === "error") {
    if (router2.isServer) {
      const RouteErrorComponent = (route.options.errorComponent ?? router2.options.defaultErrorComponent) || ErrorComponent;
      return /* @__PURE__ */ jsxRuntimeExports.jsx(
        RouteErrorComponent,
        {
          error: match.error,
          reset: void 0,
          info: {
            componentStack: ""
          }
        }
      );
    }
    throw match.error;
  }
  return out;
});
const Outlet = reactExports.memo(function OutletImpl() {
  const router2 = useRouter();
  const matchId = reactExports.useContext(matchContext);
  const routeId = useRouterState({
    select: (s) => {
      var _a2;
      return (_a2 = s.matches.find((d) => d.id === matchId)) == null ? void 0 : _a2.routeId;
    }
  });
  const route = router2.routesById[routeId];
  const parentGlobalNotFound = useRouterState({
    select: (s) => {
      const matches = s.matches;
      const parentMatch = matches.find((d) => d.id === matchId);
      invariant(
        parentMatch
      );
      return parentMatch.globalNotFound;
    }
  });
  const childMatchId = useRouterState({
    select: (s) => {
      var _a2;
      const matches = s.matches;
      const index2 = matches.findIndex((d) => d.id === matchId);
      return (_a2 = matches[index2 + 1]) == null ? void 0 : _a2.id;
    }
  });
  const pendingElement = router2.options.defaultPendingComponent ? /* @__PURE__ */ jsxRuntimeExports.jsx(router2.options.defaultPendingComponent, {}) : null;
  if (parentGlobalNotFound) {
    return renderRouteNotFound(router2, route, void 0);
  }
  if (!childMatchId) {
    return null;
  }
  const nextMatch = /* @__PURE__ */ jsxRuntimeExports.jsx(Match, { matchId: childMatchId });
  if (matchId === rootRouteId) {
    return /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: pendingElement, children: nextMatch });
  }
  return nextMatch;
});
function Matches() {
  const router2 = useRouter();
  const pendingElement = router2.options.defaultPendingComponent ? /* @__PURE__ */ jsxRuntimeExports.jsx(router2.options.defaultPendingComponent, {}) : null;
  const ResolvedSuspense = router2.isServer || typeof document !== "undefined" && router2.ssr ? SafeFragment : reactExports.Suspense;
  const inner = /* @__PURE__ */ jsxRuntimeExports.jsxs(ResolvedSuspense, { fallback: pendingElement, children: [
    !router2.isServer && /* @__PURE__ */ jsxRuntimeExports.jsx(Transitioner, {}),
    /* @__PURE__ */ jsxRuntimeExports.jsx(MatchesInner, {})
  ] });
  return router2.options.InnerWrap ? /* @__PURE__ */ jsxRuntimeExports.jsx(router2.options.InnerWrap, { children: inner }) : inner;
}
function MatchesInner() {
  const router2 = useRouter();
  const matchId = useRouterState({
    select: (s) => {
      var _a2;
      return (_a2 = s.matches[0]) == null ? void 0 : _a2.id;
    }
  });
  const resetKey = useRouterState({
    select: (s) => s.loadedAt
  });
  const matchComponent = matchId ? /* @__PURE__ */ jsxRuntimeExports.jsx(Match, { matchId }) : null;
  return /* @__PURE__ */ jsxRuntimeExports.jsx(matchContext.Provider, { value: matchId, children: router2.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ jsxRuntimeExports.jsx(
    CatchBoundary,
    {
      getResetKey: () => resetKey,
      errorComponent: ErrorComponent,
      onCatch: (error) => {
        warning(false, error.message || error.toString());
      },
      children: matchComponent
    }
  ) });
}
const createRouter = (options) => {
  return new Router(options);
};
class Router extends RouterCore {
  constructor(options) {
    super(options);
  }
}
if (typeof globalThis !== "undefined") {
  globalThis.createFileRoute = createFileRoute;
  globalThis.createLazyFileRoute = createLazyFileRoute;
} else if (typeof window !== "undefined") {
  window.createFileRoute = createFileRoute;
  window.createLazyFileRoute = createLazyFileRoute;
}
function RouterContextProvider({
  router: router2,
  children,
  ...rest
}) {
  if (Object.keys(rest).length > 0) {
    router2.update({
      ...router2.options,
      ...rest,
      context: {
        ...router2.options.context,
        ...rest.context
      }
    });
  }
  const routerContext2 = getRouterContext();
  const provider = /* @__PURE__ */ jsxRuntimeExports.jsx(routerContext2.Provider, { value: router2, children });
  if (router2.options.Wrap) {
    return /* @__PURE__ */ jsxRuntimeExports.jsx(router2.options.Wrap, { children: provider });
  }
  return provider;
}
function RouterProvider({ router: router2, ...rest }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(RouterContextProvider, { router: router2, ...rest, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Matches, {}) });
}
const TanStackRouterDevtools = function() {
  return null;
};
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
const toCamelCase = (string) => string.replace(
  /^([A-Z])|[\s-_]+(\w)/g,
  (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
);
const toPascalCase = (string) => {
  const camelCase = toCamelCase(string);
  return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
};
const mergeClasses = (...classes) => classes.filter((className, index2, array) => {
  return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
}).join(" ").trim();
const hasA11yProp = (props) => {
  for (const prop in props) {
    if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
      return true;
    }
  }
};
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
var defaultAttributes = {
  xmlns: "http://www.w3.org/2000/svg",
  width: 24,
  height: 24,
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  strokeWidth: 2,
  strokeLinecap: "round",
  strokeLinejoin: "round"
};
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const Icon$1 = reactExports.forwardRef(
  ({
    color = "currentColor",
    size: size2 = 24,
    strokeWidth = 2,
    absoluteStrokeWidth,
    className = "",
    children,
    iconNode,
    ...rest
  }, ref) => reactExports.createElement(
    "svg",
    {
      ref,
      ...defaultAttributes,
      width: size2,
      height: size2,
      stroke: color,
      strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size2) : strokeWidth,
      className: mergeClasses("lucide", className),
      ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
      ...rest
    },
    [
      ...iconNode.map(([tag, attrs]) => reactExports.createElement(tag, attrs)),
      ...Array.isArray(children) ? children : [children]
    ]
  )
);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const createLucideIcon = (iconName, iconNode) => {
  const Component = reactExports.forwardRef(
    ({ className, ...props }, ref) => reactExports.createElement(Icon$1, {
      ref,
      iconNode,
      className: mergeClasses(
        `lucide-${toKebabCase(toPascalCase(iconName))}`,
        `lucide-${iconName}`,
        className
      ),
      ...props
    })
  );
  Component.displayName = toPascalCase(iconName);
  return Component;
};
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b = [
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
];
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$b);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a = [
  ["path", { d: "M5 12h14", key: "1ays0h" }],
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
];
const ArrowRight = createLucideIcon("arrow-right", __iconNode$a);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9 = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
const Check = createLucideIcon("check", __iconNode$9);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
const ChevronDown = createLucideIcon("chevron-down", __iconNode$8);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
const ChevronUp = createLucideIcon("chevron-up", __iconNode$7);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
const Circle = createLucideIcon("circle", __iconNode$6);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5 = [
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
];
const ExternalLink = createLucideIcon("external-link", __iconNode$5);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4 = [
  [
    "path",
    {
      d: "M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",
      key: "12oyoe"
    }
  ],
  ["path", { d: "M21 16v2a4 4 0 0 1-4 4h-5", key: "1x7m43" }]
];
const Headset = createLucideIcon("headset", __iconNode$4);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m4.93 4.93 4.24 4.24", key: "1ymg45" }],
  ["path", { d: "m14.83 9.17 4.24-4.24", key: "1cb5xl" }],
  ["path", { d: "m14.83 14.83 4.24 4.24", key: "q42g0n" }],
  ["path", { d: "m9.17 14.83-4.24 4.24", key: "bqpfvv" }],
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }]
];
const LifeBuoy = createLucideIcon("life-buoy", __iconNode$3);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2 = [
  ["path", { d: "M5 12h14", key: "1ays0h" }],
  ["path", { d: "M12 5v14", key: "s699le" }]
];
const Plus = createLucideIcon("plus", __iconNode$2);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1 = [
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
];
const Search = createLucideIcon("search", __iconNode$1);
/**
 * @license lucide-react v0.513.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode = [
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
];
const X$1 = createLucideIcon("x", __iconNode);
const LogoIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { ...props, width: "206", height: "21", viewBox: "0 0 206 21", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M9.41998 13.02H3.85998L2.93998 15.68H-1.95205e-05L5.01998 1.7H8.27998L13.3 15.68H10.34L9.41998 13.02ZM8.65998 10.78L6.63998 4.94L4.61998 10.78H8.65998ZM14.4564 10.14C14.4564 8.99333 14.6897 7.99333 15.1564 7.14C15.6231 6.27333 16.2697 5.60667 17.0964 5.14C17.9231 4.66 18.8697 4.42 19.9364 4.42C21.3097 4.42 22.4431 4.76667 23.3364 5.46C24.2431 6.14 24.8497 7.1 25.1564 8.34H22.1364C21.9764 7.86 21.7031 7.48667 21.3164 7.22C20.9431 6.94 20.4764 6.8 19.9164 6.8C19.1164 6.8 18.4831 7.09333 18.0164 7.68C17.5497 8.25333 17.3164 9.07333 17.3164 10.14C17.3164 11.1933 17.5497 12.0133 18.0164 12.6C18.4831 13.1733 19.1164 13.46 19.9164 13.46C21.0497 13.46 21.7897 12.9533 22.1364 11.94H25.1564C24.8497 13.14 24.2431 14.0933 23.3364 14.8C22.4297 15.5067 21.2964 15.86 19.9364 15.86C18.8697 15.86 17.9231 15.6267 17.0964 15.16C16.2697 14.68 15.6231 14.0133 15.1564 13.16C14.6897 12.2933 14.4564 11.2867 14.4564 10.14ZM26.4876 10.14C26.4876 8.99333 26.721 7.99333 27.1876 7.14C27.6543 6.27333 28.301 5.60667 29.1276 5.14C29.9543 4.66 30.901 4.42 31.9676 4.42C33.341 4.42 34.4743 4.76667 35.3676 5.46C36.2743 6.14 36.881 7.1 37.1876 8.34H34.1676C34.0076 7.86 33.7343 7.48667 33.3476 7.22C32.9743 6.94 32.5076 6.8 31.9476 6.8C31.1476 6.8 30.5143 7.09333 30.0476 7.68C29.581 8.25333 29.3476 9.07333 29.3476 10.14C29.3476 11.1933 29.581 12.0133 30.0476 12.6C30.5143 13.1733 31.1476 13.46 31.9476 13.46C33.081 13.46 33.821 12.9533 34.1676 11.94H37.1876C36.881 13.14 36.2743 14.0933 35.3676 14.8C34.461 15.5067 33.3276 15.86 31.9676 15.86C30.901 15.86 29.9543 15.6267 29.1276 15.16C28.301 14.68 27.6543 14.0133 27.1876 13.16C26.721 12.2933 26.4876 11.2867 26.4876 10.14ZM49.5389 9.9C49.5389 10.3 49.5122 10.66 49.4589 10.98H41.3589C41.4256 11.78 41.7056 12.4067 42.1989 12.86C42.6922 13.3133 43.2989 13.54 44.0189 13.54C45.0589 13.54 45.7989 13.0933 46.2389 12.2H49.2589C48.9389 13.2667 48.3256 14.1467 47.4189 14.84C46.5122 15.52 45.3989 15.86 44.0789 15.86C43.0122 15.86 42.0522 15.6267 41.1989 15.16C40.3589 14.68 39.6989 14.0067 39.2189 13.14C38.7522 12.2733 38.5189 11.2733 38.5189 10.14C38.5189 8.99333 38.7522 7.98667 39.2189 7.12C39.6856 6.25333 40.3389 5.58667 41.1789 5.12C42.0189 4.65333 42.9856 4.42 44.0789 4.42C45.1322 4.42 46.0722 4.64667 46.8989 5.1C47.7389 5.55333 48.3856 6.2 48.8389 7.04C49.3056 7.86667 49.5389 8.82 49.5389 9.9ZM46.6389 9.1C46.6256 8.38 46.3656 7.80667 45.8589 7.38C45.3522 6.94 44.7322 6.72 43.9989 6.72C43.3056 6.72 42.7189 6.93333 42.2389 7.36C41.7722 7.77333 41.4856 8.35333 41.3789 9.1H46.6389ZM55.8226 15.86C54.916 15.86 54.1026 15.7 53.3826 15.38C52.6626 15.0467 52.0893 14.6 51.6626 14.04C51.2493 13.48 51.0226 12.86 50.9826 12.18H53.8026C53.856 12.6067 54.0626 12.96 54.4226 13.24C54.796 13.52 55.256 13.66 55.8026 13.66C56.336 13.66 56.7493 13.5533 57.0426 13.34C57.3493 13.1267 57.5026 12.8533 57.5026 12.52C57.5026 12.16 57.316 11.8933 56.9426 11.72C56.5826 11.5333 56.0026 11.3333 55.2026 11.12C54.376 10.92 53.696 10.7133 53.1626 10.5C52.6426 10.2867 52.1893 9.96 51.8026 9.52C51.4293 9.08 51.2426 8.48667 51.2426 7.74C51.2426 7.12667 51.416 6.56667 51.7626 6.06C52.1226 5.55333 52.6293 5.15333 53.2826 4.86C53.9493 4.56667 54.7293 4.42 55.6226 4.42C56.9426 4.42 57.996 4.75333 58.7826 5.42C59.5693 6.07333 60.0026 6.96 60.0826 8.08H57.4026C57.3626 7.64 57.176 7.29333 56.8426 7.04C56.5226 6.77333 56.0893 6.64 55.5426 6.64C55.036 6.64 54.6426 6.73333 54.3626 6.92C54.096 7.10667 53.9626 7.36667 53.9626 7.7C53.9626 8.07333 54.1493 8.36 54.5226 8.56C54.896 8.74667 55.476 8.94 56.2626 9.14C57.0626 9.34 57.7226 9.54667 58.2426 9.76C58.7626 9.97333 59.2093 10.3067 59.5826 10.76C59.9693 11.2 60.1693 11.7867 60.1826 12.52C60.1826 13.16 60.0026 13.7333 59.6426 14.24C59.296 14.7467 58.7893 15.1467 58.1226 15.44C57.4693 15.72 56.7026 15.86 55.8226 15.86ZM66.7211 15.86C65.8144 15.86 65.0011 15.7 64.2811 15.38C63.5611 15.0467 62.9877 14.6 62.5611 14.04C62.1477 13.48 61.9211 12.86 61.8811 12.18H64.7011C64.7544 12.6067 64.9611 12.96 65.3211 13.24C65.6944 13.52 66.1544 13.66 66.7011 13.66C67.2344 13.66 67.6477 13.5533 67.9411 13.34C68.2477 13.1267 68.4011 12.8533 68.4011 12.52C68.4011 12.16 68.2144 11.8933 67.8411 11.72C67.4811 11.5333 66.9011 11.3333 66.1011 11.12C65.2744 10.92 64.5944 10.7133 64.0611 10.5C63.5411 10.2867 63.0877 9.96 62.7011 9.52C62.3277 9.08 62.1411 8.48667 62.1411 7.74C62.1411 7.12667 62.3144 6.56667 62.6611 6.06C63.0211 5.55333 63.5277 5.15333 64.1811 4.86C64.8477 4.56667 65.6277 4.42 66.5211 4.42C67.8411 4.42 68.8944 4.75333 69.6811 5.42C70.4677 6.07333 70.9011 6.96 70.9811 8.08H68.3011C68.2611 7.64 68.0744 7.29333 67.7411 7.04C67.4211 6.77333 66.9877 6.64 66.4411 6.64C65.9344 6.64 65.5411 6.73333 65.2611 6.92C64.9944 7.10667 64.8611 7.36667 64.8611 7.7C64.8611 8.07333 65.0477 8.36 65.4211 8.56C65.7944 8.74667 66.3744 8.94 67.1611 9.14C67.9611 9.34 68.6211 9.54667 69.1411 9.76C69.6611 9.97333 70.1077 10.3067 70.4811 10.76C70.8677 11.2 71.0677 11.7867 71.0811 12.52C71.0811 13.16 70.9011 13.7333 70.5411 14.24C70.1944 14.7467 69.6877 15.1467 69.0211 15.44C68.3677 15.72 67.6011 15.86 66.7211 15.86ZM74.7995 3.28C74.3062 3.28 73.8928 3.12667 73.5595 2.82C73.2395 2.5 73.0795 2.10667 73.0795 1.64C73.0795 1.17333 73.2395 0.786666 73.5595 0.479999C73.8928 0.159999 74.3062 -4.76837e-07 74.7995 -4.76837e-07C75.2928 -4.76837e-07 75.6995 0.159999 76.0195 0.479999C76.3528 0.786666 76.5195 1.17333 76.5195 1.64C76.5195 2.10667 76.3528 2.5 76.0195 2.82C75.6995 3.12667 75.2928 3.28 74.7995 3.28ZM76.1795 4.6V15.68H73.3795V4.6H76.1795ZM81.7459 6.22C82.1059 5.68667 82.5993 5.25333 83.2259 4.92C83.8659 4.58667 84.5926 4.42 85.4059 4.42C86.3526 4.42 87.2059 4.65333 87.9659 5.12C88.7393 5.58667 89.3459 6.25333 89.7859 7.12C90.2393 7.97333 90.4659 8.96667 90.4659 10.1C90.4659 11.2333 90.2393 12.24 89.7859 13.12C89.3459 13.9867 88.7393 14.66 87.9659 15.14C87.2059 15.62 86.3526 15.86 85.4059 15.86C84.5793 15.86 83.8526 15.7 83.2259 15.38C82.6126 15.0467 82.1193 14.62 81.7459 14.1V15.68H78.9459V0.88H81.7459V6.22ZM87.6059 10.1C87.6059 9.43333 87.4659 8.86 87.1859 8.38C86.9193 7.88667 86.5593 7.51333 86.1059 7.26C85.6659 7.00667 85.1859 6.88 84.6659 6.88C84.1593 6.88 83.6793 7.01333 83.2259 7.28C82.7859 7.53333 82.4259 7.90667 82.1459 8.4C81.8793 8.89333 81.7459 9.47333 81.7459 10.14C81.7459 10.8067 81.8793 11.3867 82.1459 11.88C82.4259 12.3733 82.7859 12.7533 83.2259 13.02C83.6793 13.2733 84.1593 13.4 84.6659 13.4C85.1859 13.4 85.6659 13.2667 86.1059 13C86.5593 12.7333 86.9193 12.3533 87.1859 11.86C87.4659 11.3667 87.6059 10.78 87.6059 10.1ZM93.9206 3.28C93.4273 3.28 93.0139 3.12667 92.6806 2.82C92.3606 2.5 92.2006 2.10667 92.2006 1.64C92.2006 1.17333 92.3606 0.786666 92.6806 0.479999C93.0139 0.159999 93.4273 -4.76837e-07 93.9206 -4.76837e-07C94.4139 -4.76837e-07 94.8206 0.159999 95.1406 0.479999C95.4739 0.786666 95.6406 1.17333 95.6406 1.64C95.6406 2.10667 95.4739 2.5 95.1406 2.82C94.8206 3.12667 94.4139 3.28 93.9206 3.28ZM95.3006 4.6V15.68H92.5006V4.6H95.3006ZM100.867 0.88V15.68H98.067V0.88H100.867ZM105.053 3.28C104.56 3.28 104.147 3.12667 103.813 2.82C103.493 2.5 103.333 2.10667 103.333 1.64C103.333 1.17333 103.493 0.786666 103.813 0.479999C104.147 0.159999 104.56 -4.76837e-07 105.053 -4.76837e-07C105.547 -4.76837e-07 105.953 0.159999 106.273 0.479999C106.607 0.786666 106.773 1.17333 106.773 1.64C106.773 2.10667 106.607 2.5 106.273 2.82C105.953 3.12667 105.547 3.28 105.053 3.28ZM106.433 4.6V15.68H103.633V4.6H106.433ZM112.46 6.9V12.26C112.46 12.6333 112.546 12.9067 112.72 13.08C112.906 13.24 113.213 13.32 113.64 13.32H114.94V15.68H113.18C110.82 15.68 109.64 14.5333 109.64 12.24V6.9H108.32V4.6H109.64V1.86H112.46V4.6H114.94V6.9H112.46ZM127.554 4.6L120.694 20.92H117.714L120.114 15.4L115.674 4.6H118.814L121.674 12.34L124.574 4.6H127.554ZM143.329 1.72V3.98H139.609V15.68H136.809V3.98H133.089V1.72H143.329ZM150.292 15.86C149.225 15.86 148.265 15.6267 147.412 15.16C146.558 14.68 145.885 14.0067 145.392 13.14C144.912 12.2733 144.672 11.2733 144.672 10.14C144.672 9.00667 144.918 8.00667 145.412 7.14C145.918 6.27333 146.605 5.60667 147.472 5.14C148.338 4.66 149.305 4.42 150.372 4.42C151.438 4.42 152.405 4.66 153.272 5.14C154.138 5.60667 154.818 6.27333 155.312 7.14C155.818 8.00667 156.072 9.00667 156.072 10.14C156.072 11.2733 155.812 12.2733 155.292 13.14C154.785 14.0067 154.092 14.68 153.212 15.16C152.345 15.6267 151.372 15.86 150.292 15.86ZM150.292 13.42C150.798 13.42 151.272 13.3 151.712 13.06C152.165 12.8067 152.525 12.4333 152.792 11.94C153.058 11.4467 153.192 10.8467 153.192 10.14C153.192 9.08667 152.912 8.28 152.352 7.72C151.805 7.14667 151.132 6.86 150.332 6.86C149.532 6.86 148.858 7.14667 148.312 7.72C147.778 8.28 147.512 9.08667 147.512 10.14C147.512 11.1933 147.772 12.0067 148.292 12.58C148.825 13.14 149.492 13.42 150.292 13.42ZM163.046 15.86C161.979 15.86 161.019 15.6267 160.166 15.16C159.312 14.68 158.639 14.0067 158.146 13.14C157.666 12.2733 157.426 11.2733 157.426 10.14C157.426 9.00667 157.672 8.00667 158.166 7.14C158.672 6.27333 159.359 5.60667 160.226 5.14C161.092 4.66 162.059 4.42 163.126 4.42C164.192 4.42 165.159 4.66 166.026 5.14C166.892 5.60667 167.572 6.27333 168.066 7.14C168.572 8.00667 168.826 9.00667 168.826 10.14C168.826 11.2733 168.566 12.2733 168.046 13.14C167.539 14.0067 166.846 14.68 165.966 15.16C165.099 15.6267 164.126 15.86 163.046 15.86ZM163.046 13.42C163.552 13.42 164.026 13.3 164.466 13.06C164.919 12.8067 165.279 12.4333 165.546 11.94C165.812 11.4467 165.946 10.8467 165.946 10.14C165.946 9.08667 165.666 8.28 165.106 7.72C164.559 7.14667 163.886 6.86 163.086 6.86C162.286 6.86 161.612 7.14667 161.066 7.72C160.532 8.28 160.266 9.08667 160.266 10.14C160.266 11.1933 160.526 12.0067 161.046 12.58C161.579 13.14 162.246 13.42 163.046 13.42ZM173.68 0.88V15.68H170.88V0.88H173.68ZM189.092 15.68L184.012 9.46V15.68H181.212V1.72H184.012V7.98L189.092 1.72H192.472L186.712 8.64L192.632 15.68H189.092ZM195.893 3.28C195.4 3.28 194.987 3.12667 194.653 2.82C194.333 2.5 194.173 2.10667 194.173 1.64C194.173 1.17333 194.333 0.786666 194.653 0.479999C194.987 0.159999 195.4 -4.76837e-07 195.893 -4.76837e-07C196.387 -4.76837e-07 196.793 0.159999 197.113 0.479999C197.447 0.786666 197.613 1.17333 197.613 1.64C197.613 2.10667 197.447 2.5 197.113 2.82C196.793 3.12667 196.387 3.28 195.893 3.28ZM197.273 4.6V15.68H194.473V4.6H197.273ZM203.3 6.9V12.26C203.3 12.6333 203.386 12.9067 203.56 13.08C203.746 13.24 204.053 13.32 204.48 13.32H205.78V15.68H204.02C201.66 15.68 200.48 14.5333 200.48 12.24V6.9H199.16V4.6H200.48V1.86H203.3V4.6H205.78V6.9H203.3Z", fill: "white" }) });
function Header() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "wy-header cy:border-b cy:border-gray-200", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:max-w-7xl cy:w-full cy:mx-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:justify-between cy:items-center cy:py-4 cy:px-2", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:items-center cy:space-x-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "wy-flex", children: /* @__PURE__ */ jsxRuntimeExports.jsx(LogoIcon, { className: "cy:w-[201px] cy:h-[38px] cy:text-white" }) }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-3", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:items-center cy:space-x-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "a",
        {
          href: "https://www.webyes.com/documentation/wordpress-accessibility-toolkit-plugin-setup/",
          target: "_blank",
          className: "cy:inline-flex cy:items-center cy:justify-center cy:whitespace-nowrap cy:text-sm cy:transition-all cy:disabled:pointer-events-none cy:disabled:opacity-50 cy:[&_svg]:pointer-events-none  cy:shrink-0 cy:[&_svg]:shrink-0 cy:outline-none cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:focus-visible:ring-[3px] cy:aria-invalid:ring-destructive/20 cy:dark:aria-invalid:ring-destructive/40 cy:aria-invalid:border-destructive cy:bg-transparent cy:h-8 cy:rounded-md cy:gap-1.5 cy:px-3 cy:border-1 cy:border-white cy:text-white! cy:hover:bg-white cy:hover:text-black!",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(LifeBuoy, { className: "cy:h-4 cy:w-4" }),
            "  Help Guides"
          ]
        }
      ) }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:items-center cy:space-x-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "a",
        {
          href: "https://wordpress.org/support/plugin/accessibility-plus/",
          target: "_blank",
          className: "cy:inline-flex cy:items-center cy:justify-center cy:whitespace-nowrap cy:text-sm cy:transition-all cy:disabled:pointer-events-none cy:disabled:opacity-50 cy:[&_svg]:pointer-events-none  cy:shrink-0 cy:[&_svg]:shrink-0 cy:outline-none cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:focus-visible:ring-[3px] cy:aria-invalid:ring-destructive/20 cy:dark:aria-invalid:ring-destructive/40 cy:aria-invalid:border-destructive cy:bg-transparent cy:h-8 cy:rounded-md cy:gap-1.5 cy:px-3 cy:border-1 cy:border-white cy:text-white! cy:hover:bg-white cy:hover:text-black!",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(Headset, { className: "cy:h-4 cy:w-4" }),
            " Support"
          ]
        }
      ) })
    ] })
  ] }) }) });
}
const navigation = [
  { name: "Accessibility checker", href: "/" },
  { name: "Issue fixes", href: "/issue-fixes" },
  { name: "Toolbar", href: "/accessibility-toolbar" },
  { name: "Statement generator", href: "/statement" }
];
function Navbar() {
  return /* @__PURE__ */ jsxRuntimeExports.jsx("nav", { className: "cy:bg-white cy:border-b cy:border-gray-200 cy:shadow-sm cy:px-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:max-w-7xl cy:mx-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:self-stretch cy:bg-white cy:inline-flex cy:justify-start cy:items-start cy:gap-6", children: navigation.map((item) => {
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Link,
      {
        to: item.href,
        activeProps: {
          className: "cy:border-primary cy:text-primary"
        },
        inactiveProps: {
          className: "cy:border-transparent"
        },
        className: "cy:inline-flex cy:items-center cy:px-1 cy:py-4 cy:border-b-4 cy:text-sm cy:font-medium cy:transition-colors cy:duration-200 cy:text-foreground! cy:hover:text-primary! cy:outline-0! cy:shadow-none!",
        children: item.name
      },
      item.name
    );
  }) }) }) });
}
function r(e) {
  var t, f, n = "";
  if ("string" == typeof e || "number" == typeof e) n += e;
  else if ("object" == typeof e) if (Array.isArray(e)) {
    var o = e.length;
    for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
  } else for (f in e) e[f] && (n && (n += " "), n += f);
  return n;
}
function clsx() {
  for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
  return n;
}
const CLASS_PART_SEPARATOR = "-";
const createClassGroupUtils = (config) => {
  const classMap = createClassMap(config);
  const {
    conflictingClassGroups,
    conflictingClassGroupModifiers
  } = config;
  const getClassGroupId = (className) => {
    const classParts = className.split(CLASS_PART_SEPARATOR);
    if (classParts[0] === "" && classParts.length !== 1) {
      classParts.shift();
    }
    return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
  };
  const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
    const conflicts = conflictingClassGroups[classGroupId] || [];
    if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
      return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
    }
    return conflicts;
  };
  return {
    getClassGroupId,
    getConflictingClassGroupIds
  };
};
const getGroupRecursive = (classParts, classPartObject) => {
  var _a2;
  if (classParts.length === 0) {
    return classPartObject.classGroupId;
  }
  const currentClassPart = classParts[0];
  const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
  const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0;
  if (classGroupFromNextClassPart) {
    return classGroupFromNextClassPart;
  }
  if (classPartObject.validators.length === 0) {
    return void 0;
  }
  const classRest = classParts.join(CLASS_PART_SEPARATOR);
  return (_a2 = classPartObject.validators.find(({
    validator
  }) => validator(classRest))) == null ? void 0 : _a2.classGroupId;
};
const arbitraryPropertyRegex = /^\[(.+)\]$/;
const getGroupIdForArbitraryProperty = (className) => {
  if (arbitraryPropertyRegex.test(className)) {
    const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
    const property = arbitraryPropertyClassName == null ? void 0 : arbitraryPropertyClassName.substring(0, arbitraryPropertyClassName.indexOf(":"));
    if (property) {
      return "arbitrary.." + property;
    }
  }
};
const createClassMap = (config) => {
  const {
    theme,
    classGroups
  } = config;
  const classMap = {
    nextPart: /* @__PURE__ */ new Map(),
    validators: []
  };
  for (const classGroupId in classGroups) {
    processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);
  }
  return classMap;
};
const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
  classGroup.forEach((classDefinition) => {
    if (typeof classDefinition === "string") {
      const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
      classPartObjectToEdit.classGroupId = classGroupId;
      return;
    }
    if (typeof classDefinition === "function") {
      if (isThemeGetter(classDefinition)) {
        processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
        return;
      }
      classPartObject.validators.push({
        validator: classDefinition,
        classGroupId
      });
      return;
    }
    Object.entries(classDefinition).forEach(([key, classGroup2]) => {
      processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme);
    });
  });
};
const getPart = (classPartObject, path) => {
  let currentClassPartObject = classPartObject;
  path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {
    if (!currentClassPartObject.nextPart.has(pathPart)) {
      currentClassPartObject.nextPart.set(pathPart, {
        nextPart: /* @__PURE__ */ new Map(),
        validators: []
      });
    }
    currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
  });
  return currentClassPartObject;
};
const isThemeGetter = (func) => func.isThemeGetter;
const createLruCache = (maxCacheSize) => {
  if (maxCacheSize < 1) {
    return {
      get: () => void 0,
      set: () => {
      }
    };
  }
  let cacheSize = 0;
  let cache = /* @__PURE__ */ new Map();
  let previousCache = /* @__PURE__ */ new Map();
  const update = (key, value) => {
    cache.set(key, value);
    cacheSize++;
    if (cacheSize > maxCacheSize) {
      cacheSize = 0;
      previousCache = cache;
      cache = /* @__PURE__ */ new Map();
    }
  };
  return {
    get(key) {
      let value = cache.get(key);
      if (value !== void 0) {
        return value;
      }
      if ((value = previousCache.get(key)) !== void 0) {
        update(key, value);
        return value;
      }
    },
    set(key, value) {
      if (cache.has(key)) {
        cache.set(key, value);
      } else {
        update(key, value);
      }
    }
  };
};
const IMPORTANT_MODIFIER = "!";
const MODIFIER_SEPARATOR = ":";
const MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;
const createParseClassName = (config) => {
  const {
    prefix: prefix2,
    experimentalParseClassName
  } = config;
  let parseClassName = (className) => {
    const modifiers = [];
    let bracketDepth = 0;
    let parenDepth = 0;
    let modifierStart = 0;
    let postfixModifierPosition;
    for (let index2 = 0; index2 < className.length; index2++) {
      let currentCharacter = className[index2];
      if (bracketDepth === 0 && parenDepth === 0) {
        if (currentCharacter === MODIFIER_SEPARATOR) {
          modifiers.push(className.slice(modifierStart, index2));
          modifierStart = index2 + MODIFIER_SEPARATOR_LENGTH;
          continue;
        }
        if (currentCharacter === "/") {
          postfixModifierPosition = index2;
          continue;
        }
      }
      if (currentCharacter === "[") {
        bracketDepth++;
      } else if (currentCharacter === "]") {
        bracketDepth--;
      } else if (currentCharacter === "(") {
        parenDepth++;
      } else if (currentCharacter === ")") {
        parenDepth--;
      }
    }
    const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
    const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);
    const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;
    const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
    return {
      modifiers,
      hasImportantModifier,
      baseClassName,
      maybePostfixModifierPosition
    };
  };
  if (prefix2) {
    const fullPrefix = prefix2 + MODIFIER_SEPARATOR;
    const parseClassNameOriginal = parseClassName;
    parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {
      isExternal: true,
      modifiers: [],
      hasImportantModifier: false,
      baseClassName: className,
      maybePostfixModifierPosition: void 0
    };
  }
  if (experimentalParseClassName) {
    const parseClassNameOriginal = parseClassName;
    parseClassName = (className) => experimentalParseClassName({
      className,
      parseClassName: parseClassNameOriginal
    });
  }
  return parseClassName;
};
const stripImportantModifier = (baseClassName) => {
  if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {
    return baseClassName.substring(0, baseClassName.length - 1);
  }
  if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {
    return baseClassName.substring(1);
  }
  return baseClassName;
};
const createSortModifiers = (config) => {
  const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map((modifier) => [modifier, true]));
  const sortModifiers = (modifiers) => {
    if (modifiers.length <= 1) {
      return modifiers;
    }
    const sortedModifiers = [];
    let unsortedModifiers = [];
    modifiers.forEach((modifier) => {
      const isPositionSensitive = modifier[0] === "[" || orderSensitiveModifiers[modifier];
      if (isPositionSensitive) {
        sortedModifiers.push(...unsortedModifiers.sort(), modifier);
        unsortedModifiers = [];
      } else {
        unsortedModifiers.push(modifier);
      }
    });
    sortedModifiers.push(...unsortedModifiers.sort());
    return sortedModifiers;
  };
  return sortModifiers;
};
const createConfigUtils = (config) => ({
  cache: createLruCache(config.cacheSize),
  parseClassName: createParseClassName(config),
  sortModifiers: createSortModifiers(config),
  ...createClassGroupUtils(config)
});
const SPLIT_CLASSES_REGEX = /\s+/;
const mergeClassList = (classList, configUtils) => {
  const {
    parseClassName,
    getClassGroupId,
    getConflictingClassGroupIds,
    sortModifiers
  } = configUtils;
  const classGroupsInConflict = [];
  const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
  let result = "";
  for (let index2 = classNames.length - 1; index2 >= 0; index2 -= 1) {
    const originalClassName = classNames[index2];
    const {
      isExternal,
      modifiers,
      hasImportantModifier,
      baseClassName,
      maybePostfixModifierPosition
    } = parseClassName(originalClassName);
    if (isExternal) {
      result = originalClassName + (result.length > 0 ? " " + result : result);
      continue;
    }
    let hasPostfixModifier = !!maybePostfixModifierPosition;
    let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
    if (!classGroupId) {
      if (!hasPostfixModifier) {
        result = originalClassName + (result.length > 0 ? " " + result : result);
        continue;
      }
      classGroupId = getClassGroupId(baseClassName);
      if (!classGroupId) {
        result = originalClassName + (result.length > 0 ? " " + result : result);
        continue;
      }
      hasPostfixModifier = false;
    }
    const variantModifier = sortModifiers(modifiers).join(":");
    const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
    const classId = modifierId + classGroupId;
    if (classGroupsInConflict.includes(classId)) {
      continue;
    }
    classGroupsInConflict.push(classId);
    const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
    for (let i = 0; i < conflictGroups.length; ++i) {
      const group = conflictGroups[i];
      classGroupsInConflict.push(modifierId + group);
    }
    result = originalClassName + (result.length > 0 ? " " + result : result);
  }
  return result;
};
function twJoin() {
  let index2 = 0;
  let argument;
  let resolvedValue;
  let string = "";
  while (index2 < arguments.length) {
    if (argument = arguments[index2++]) {
      if (resolvedValue = toValue(argument)) {
        string && (string += " ");
        string += resolvedValue;
      }
    }
  }
  return string;
}
const toValue = (mix) => {
  if (typeof mix === "string") {
    return mix;
  }
  let resolvedValue;
  let string = "";
  for (let k2 = 0; k2 < mix.length; k2++) {
    if (mix[k2]) {
      if (resolvedValue = toValue(mix[k2])) {
        string && (string += " ");
        string += resolvedValue;
      }
    }
  }
  return string;
};
function createTailwindMerge(createConfigFirst, ...createConfigRest) {
  let configUtils;
  let cacheGet;
  let cacheSet;
  let functionToCall = initTailwindMerge;
  function initTailwindMerge(classList) {
    const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
    configUtils = createConfigUtils(config);
    cacheGet = configUtils.cache.get;
    cacheSet = configUtils.cache.set;
    functionToCall = tailwindMerge;
    return tailwindMerge(classList);
  }
  function tailwindMerge(classList) {
    const cachedResult = cacheGet(classList);
    if (cachedResult) {
      return cachedResult;
    }
    const result = mergeClassList(classList, configUtils);
    cacheSet(classList, result);
    return result;
  }
  return function callTailwindMerge() {
    return functionToCall(twJoin.apply(null, arguments));
  };
}
const fromTheme = (key) => {
  const themeGetter = (theme) => theme[key] || [];
  themeGetter.isThemeGetter = true;
  return themeGetter;
};
const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
const fractionRegex = /^\d+\/\d+$/;
const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
const isFraction = (value) => fractionRegex.test(value);
const isNumber = (value) => !!value && !Number.isNaN(Number(value));
const isInteger = (value) => !!value && Number.isInteger(Number(value));
const isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
const isTshirtSize = (value) => tshirtUnitRegex.test(value);
const isAny = () => true;
const isLengthOnly = (value) => (
  // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
  // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
  // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
  lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
);
const isNever = () => false;
const isShadow = (value) => shadowRegex.test(value);
const isImage = (value) => imageRegex.test(value);
const isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
const isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
const isArbitraryValue = (value) => arbitraryValueRegex.test(value);
const isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
const isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
const isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
const isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
const isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
const isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
const isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
const isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
const isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
const isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
const isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
const isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
const getIsArbitraryValue = (value, testLabel, testValue) => {
  const result = arbitraryValueRegex.exec(value);
  if (result) {
    if (result[1]) {
      return testLabel(result[1]);
    }
    return testValue(result[2]);
  }
  return false;
};
const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
  const result = arbitraryVariableRegex.exec(value);
  if (result) {
    if (result[1]) {
      return testLabel(result[1]);
    }
    return shouldMatchNoLabel;
  }
  return false;
};
const isLabelPosition = (label) => label === "position" || label === "percentage";
const isLabelImage = (label) => label === "image" || label === "url";
const isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
const isLabelLength = (label) => label === "length";
const isLabelNumber = (label) => label === "number";
const isLabelFamilyName = (label) => label === "family-name";
const isLabelShadow = (label) => label === "shadow";
const getDefaultConfig = () => {
  const themeColor = fromTheme("color");
  const themeFont = fromTheme("font");
  const themeText = fromTheme("text");
  const themeFontWeight = fromTheme("font-weight");
  const themeTracking = fromTheme("tracking");
  const themeLeading = fromTheme("leading");
  const themeBreakpoint = fromTheme("breakpoint");
  const themeContainer = fromTheme("container");
  const themeSpacing = fromTheme("spacing");
  const themeRadius = fromTheme("radius");
  const themeShadow = fromTheme("shadow");
  const themeInsetShadow = fromTheme("inset-shadow");
  const themeTextShadow = fromTheme("text-shadow");
  const themeDropShadow = fromTheme("drop-shadow");
  const themeBlur = fromTheme("blur");
  const themePerspective = fromTheme("perspective");
  const themeAspect = fromTheme("aspect");
  const themeEase = fromTheme("ease");
  const themeAnimate = fromTheme("animate");
  const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
  const scalePosition = () => [
    "center",
    "top",
    "bottom",
    "left",
    "right",
    "top-left",
    // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
    "left-top",
    "top-right",
    // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
    "right-top",
    "bottom-right",
    // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
    "right-bottom",
    "bottom-left",
    // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
    "left-bottom"
  ];
  const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
  const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
  const scaleOverscroll = () => ["auto", "contain", "none"];
  const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
  const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
  const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
  const scaleGridColRowStartAndEnd = () => ["auto", {
    span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
  }, isInteger, isArbitraryVariable, isArbitraryValue];
  const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
  const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
  const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
  const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
  const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
  const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
  const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
    position: [isArbitraryVariable, isArbitraryValue]
  }];
  const scaleBgRepeat = () => ["no-repeat", {
    repeat: ["", "x", "y", "space", "round"]
  }];
  const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
    size: [isArbitraryVariable, isArbitraryValue]
  }];
  const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
  const scaleRadius = () => [
    // Deprecated since Tailwind CSS v4.0.0
    "",
    "none",
    "full",
    themeRadius,
    isArbitraryVariable,
    isArbitraryValue
  ];
  const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
  const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
  const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
  const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
  const scaleBlur = () => [
    // Deprecated since Tailwind CSS v4.0.0
    "",
    "none",
    themeBlur,
    isArbitraryVariable,
    isArbitraryValue
  ];
  const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
  const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
  const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
  const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
  return {
    cacheSize: 500,
    theme: {
      animate: ["spin", "ping", "pulse", "bounce"],
      aspect: ["video"],
      blur: [isTshirtSize],
      breakpoint: [isTshirtSize],
      color: [isAny],
      container: [isTshirtSize],
      "drop-shadow": [isTshirtSize],
      ease: ["in", "out", "in-out"],
      font: [isAnyNonArbitrary],
      "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
      "inset-shadow": [isTshirtSize],
      leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
      perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
      radius: [isTshirtSize],
      shadow: [isTshirtSize],
      spacing: ["px", isNumber],
      text: [isTshirtSize],
      "text-shadow": [isTshirtSize],
      tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
    },
    classGroups: {
      // --------------
      // --- Layout ---
      // --------------
      /**
       * Aspect Ratio
       * @see https://tailwindcss.com/docs/aspect-ratio
       */
      aspect: [{
        aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
      }],
      /**
       * Container
       * @see https://tailwindcss.com/docs/container
       * @deprecated since Tailwind CSS v4.0.0
       */
      container: ["container"],
      /**
       * Columns
       * @see https://tailwindcss.com/docs/columns
       */
      columns: [{
        columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
      }],
      /**
       * Break After
       * @see https://tailwindcss.com/docs/break-after
       */
      "break-after": [{
        "break-after": scaleBreak()
      }],
      /**
       * Break Before
       * @see https://tailwindcss.com/docs/break-before
       */
      "break-before": [{
        "break-before": scaleBreak()
      }],
      /**
       * Break Inside
       * @see https://tailwindcss.com/docs/break-inside
       */
      "break-inside": [{
        "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
      }],
      /**
       * Box Decoration Break
       * @see https://tailwindcss.com/docs/box-decoration-break
       */
      "box-decoration": [{
        "box-decoration": ["slice", "clone"]
      }],
      /**
       * Box Sizing
       * @see https://tailwindcss.com/docs/box-sizing
       */
      box: [{
        box: ["border", "content"]
      }],
      /**
       * Display
       * @see https://tailwindcss.com/docs/display
       */
      display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
      /**
       * Screen Reader Only
       * @see https://tailwindcss.com/docs/display#screen-reader-only
       */
      sr: ["sr-only", "not-sr-only"],
      /**
       * Floats
       * @see https://tailwindcss.com/docs/float
       */
      float: [{
        float: ["right", "left", "none", "start", "end"]
      }],
      /**
       * Clear
       * @see https://tailwindcss.com/docs/clear
       */
      clear: [{
        clear: ["left", "right", "both", "none", "start", "end"]
      }],
      /**
       * Isolation
       * @see https://tailwindcss.com/docs/isolation
       */
      isolation: ["isolate", "isolation-auto"],
      /**
       * Object Fit
       * @see https://tailwindcss.com/docs/object-fit
       */
      "object-fit": [{
        object: ["contain", "cover", "fill", "none", "scale-down"]
      }],
      /**
       * Object Position
       * @see https://tailwindcss.com/docs/object-position
       */
      "object-position": [{
        object: scalePositionWithArbitrary()
      }],
      /**
       * Overflow
       * @see https://tailwindcss.com/docs/overflow
       */
      overflow: [{
        overflow: scaleOverflow()
      }],
      /**
       * Overflow X
       * @see https://tailwindcss.com/docs/overflow
       */
      "overflow-x": [{
        "overflow-x": scaleOverflow()
      }],
      /**
       * Overflow Y
       * @see https://tailwindcss.com/docs/overflow
       */
      "overflow-y": [{
        "overflow-y": scaleOverflow()
      }],
      /**
       * Overscroll Behavior
       * @see https://tailwindcss.com/docs/overscroll-behavior
       */
      overscroll: [{
        overscroll: scaleOverscroll()
      }],
      /**
       * Overscroll Behavior X
       * @see https://tailwindcss.com/docs/overscroll-behavior
       */
      "overscroll-x": [{
        "overscroll-x": scaleOverscroll()
      }],
      /**
       * Overscroll Behavior Y
       * @see https://tailwindcss.com/docs/overscroll-behavior
       */
      "overscroll-y": [{
        "overscroll-y": scaleOverscroll()
      }],
      /**
       * Position
       * @see https://tailwindcss.com/docs/position
       */
      position: ["static", "fixed", "absolute", "relative", "sticky"],
      /**
       * Top / Right / Bottom / Left
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      inset: [{
        inset: scaleInset()
      }],
      /**
       * Right / Left
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      "inset-x": [{
        "inset-x": scaleInset()
      }],
      /**
       * Top / Bottom
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      "inset-y": [{
        "inset-y": scaleInset()
      }],
      /**
       * Start
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      start: [{
        start: scaleInset()
      }],
      /**
       * End
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      end: [{
        end: scaleInset()
      }],
      /**
       * Top
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      top: [{
        top: scaleInset()
      }],
      /**
       * Right
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      right: [{
        right: scaleInset()
      }],
      /**
       * Bottom
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      bottom: [{
        bottom: scaleInset()
      }],
      /**
       * Left
       * @see https://tailwindcss.com/docs/top-right-bottom-left
       */
      left: [{
        left: scaleInset()
      }],
      /**
       * Visibility
       * @see https://tailwindcss.com/docs/visibility
       */
      visibility: ["visible", "invisible", "collapse"],
      /**
       * Z-Index
       * @see https://tailwindcss.com/docs/z-index
       */
      z: [{
        z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
      }],
      // ------------------------
      // --- Flexbox and Grid ---
      // ------------------------
      /**
       * Flex Basis
       * @see https://tailwindcss.com/docs/flex-basis
       */
      basis: [{
        basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
      }],
      /**
       * Flex Direction
       * @see https://tailwindcss.com/docs/flex-direction
       */
      "flex-direction": [{
        flex: ["row", "row-reverse", "col", "col-reverse"]
      }],
      /**
       * Flex Wrap
       * @see https://tailwindcss.com/docs/flex-wrap
       */
      "flex-wrap": [{
        flex: ["nowrap", "wrap", "wrap-reverse"]
      }],
      /**
       * Flex
       * @see https://tailwindcss.com/docs/flex
       */
      flex: [{
        flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
      }],
      /**
       * Flex Grow
       * @see https://tailwindcss.com/docs/flex-grow
       */
      grow: [{
        grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Flex Shrink
       * @see https://tailwindcss.com/docs/flex-shrink
       */
      shrink: [{
        shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Order
       * @see https://tailwindcss.com/docs/order
       */
      order: [{
        order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Grid Template Columns
       * @see https://tailwindcss.com/docs/grid-template-columns
       */
      "grid-cols": [{
        "grid-cols": scaleGridTemplateColsRows()
      }],
      /**
       * Grid Column Start / End
       * @see https://tailwindcss.com/docs/grid-column
       */
      "col-start-end": [{
        col: scaleGridColRowStartAndEnd()
      }],
      /**
       * Grid Column Start
       * @see https://tailwindcss.com/docs/grid-column
       */
      "col-start": [{
        "col-start": scaleGridColRowStartOrEnd()
      }],
      /**
       * Grid Column End
       * @see https://tailwindcss.com/docs/grid-column
       */
      "col-end": [{
        "col-end": scaleGridColRowStartOrEnd()
      }],
      /**
       * Grid Template Rows
       * @see https://tailwindcss.com/docs/grid-template-rows
       */
      "grid-rows": [{
        "grid-rows": scaleGridTemplateColsRows()
      }],
      /**
       * Grid Row Start / End
       * @see https://tailwindcss.com/docs/grid-row
       */
      "row-start-end": [{
        row: scaleGridColRowStartAndEnd()
      }],
      /**
       * Grid Row Start
       * @see https://tailwindcss.com/docs/grid-row
       */
      "row-start": [{
        "row-start": scaleGridColRowStartOrEnd()
      }],
      /**
       * Grid Row End
       * @see https://tailwindcss.com/docs/grid-row
       */
      "row-end": [{
        "row-end": scaleGridColRowStartOrEnd()
      }],
      /**
       * Grid Auto Flow
       * @see https://tailwindcss.com/docs/grid-auto-flow
       */
      "grid-flow": [{
        "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
      }],
      /**
       * Grid Auto Columns
       * @see https://tailwindcss.com/docs/grid-auto-columns
       */
      "auto-cols": [{
        "auto-cols": scaleGridAutoColsRows()
      }],
      /**
       * Grid Auto Rows
       * @see https://tailwindcss.com/docs/grid-auto-rows
       */
      "auto-rows": [{
        "auto-rows": scaleGridAutoColsRows()
      }],
      /**
       * Gap
       * @see https://tailwindcss.com/docs/gap
       */
      gap: [{
        gap: scaleUnambiguousSpacing()
      }],
      /**
       * Gap X
       * @see https://tailwindcss.com/docs/gap
       */
      "gap-x": [{
        "gap-x": scaleUnambiguousSpacing()
      }],
      /**
       * Gap Y
       * @see https://tailwindcss.com/docs/gap
       */
      "gap-y": [{
        "gap-y": scaleUnambiguousSpacing()
      }],
      /**
       * Justify Content
       * @see https://tailwindcss.com/docs/justify-content
       */
      "justify-content": [{
        justify: [...scaleAlignPrimaryAxis(), "normal"]
      }],
      /**
       * Justify Items
       * @see https://tailwindcss.com/docs/justify-items
       */
      "justify-items": [{
        "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
      }],
      /**
       * Justify Self
       * @see https://tailwindcss.com/docs/justify-self
       */
      "justify-self": [{
        "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
      }],
      /**
       * Align Content
       * @see https://tailwindcss.com/docs/align-content
       */
      "align-content": [{
        content: ["normal", ...scaleAlignPrimaryAxis()]
      }],
      /**
       * Align Items
       * @see https://tailwindcss.com/docs/align-items
       */
      "align-items": [{
        items: [...scaleAlignSecondaryAxis(), {
          baseline: ["", "last"]
        }]
      }],
      /**
       * Align Self
       * @see https://tailwindcss.com/docs/align-self
       */
      "align-self": [{
        self: ["auto", ...scaleAlignSecondaryAxis(), {
          baseline: ["", "last"]
        }]
      }],
      /**
       * Place Content
       * @see https://tailwindcss.com/docs/place-content
       */
      "place-content": [{
        "place-content": scaleAlignPrimaryAxis()
      }],
      /**
       * Place Items
       * @see https://tailwindcss.com/docs/place-items
       */
      "place-items": [{
        "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
      }],
      /**
       * Place Self
       * @see https://tailwindcss.com/docs/place-self
       */
      "place-self": [{
        "place-self": ["auto", ...scaleAlignSecondaryAxis()]
      }],
      // Spacing
      /**
       * Padding
       * @see https://tailwindcss.com/docs/padding
       */
      p: [{
        p: scaleUnambiguousSpacing()
      }],
      /**
       * Padding X
       * @see https://tailwindcss.com/docs/padding
       */
      px: [{
        px: scaleUnambiguousSpacing()
      }],
      /**
       * Padding Y
       * @see https://tailwindcss.com/docs/padding
       */
      py: [{
        py: scaleUnambiguousSpacing()
      }],
      /**
       * Padding Start
       * @see https://tailwindcss.com/docs/padding
       */
      ps: [{
        ps: scaleUnambiguousSpacing()
      }],
      /**
       * Padding End
       * @see https://tailwindcss.com/docs/padding
       */
      pe: [{
        pe: scaleUnambiguousSpacing()
      }],
      /**
       * Padding Top
       * @see https://tailwindcss.com/docs/padding
       */
      pt: [{
        pt: scaleUnambiguousSpacing()
      }],
      /**
       * Padding Right
       * @see https://tailwindcss.com/docs/padding
       */
      pr: [{
        pr: scaleUnambiguousSpacing()
      }],
      /**
       * Padding Bottom
       * @see https://tailwindcss.com/docs/padding
       */
      pb: [{
        pb: scaleUnambiguousSpacing()
      }],
      /**
       * Padding Left
       * @see https://tailwindcss.com/docs/padding
       */
      pl: [{
        pl: scaleUnambiguousSpacing()
      }],
      /**
       * Margin
       * @see https://tailwindcss.com/docs/margin
       */
      m: [{
        m: scaleMargin()
      }],
      /**
       * Margin X
       * @see https://tailwindcss.com/docs/margin
       */
      mx: [{
        mx: scaleMargin()
      }],
      /**
       * Margin Y
       * @see https://tailwindcss.com/docs/margin
       */
      my: [{
        my: scaleMargin()
      }],
      /**
       * Margin Start
       * @see https://tailwindcss.com/docs/margin
       */
      ms: [{
        ms: scaleMargin()
      }],
      /**
       * Margin End
       * @see https://tailwindcss.com/docs/margin
       */
      me: [{
        me: scaleMargin()
      }],
      /**
       * Margin Top
       * @see https://tailwindcss.com/docs/margin
       */
      mt: [{
        mt: scaleMargin()
      }],
      /**
       * Margin Right
       * @see https://tailwindcss.com/docs/margin
       */
      mr: [{
        mr: scaleMargin()
      }],
      /**
       * Margin Bottom
       * @see https://tailwindcss.com/docs/margin
       */
      mb: [{
        mb: scaleMargin()
      }],
      /**
       * Margin Left
       * @see https://tailwindcss.com/docs/margin
       */
      ml: [{
        ml: scaleMargin()
      }],
      /**
       * Space Between X
       * @see https://tailwindcss.com/docs/margin#adding-space-between-children
       */
      "space-x": [{
        "space-x": scaleUnambiguousSpacing()
      }],
      /**
       * Space Between X Reverse
       * @see https://tailwindcss.com/docs/margin#adding-space-between-children
       */
      "space-x-reverse": ["space-x-reverse"],
      /**
       * Space Between Y
       * @see https://tailwindcss.com/docs/margin#adding-space-between-children
       */
      "space-y": [{
        "space-y": scaleUnambiguousSpacing()
      }],
      /**
       * Space Between Y Reverse
       * @see https://tailwindcss.com/docs/margin#adding-space-between-children
       */
      "space-y-reverse": ["space-y-reverse"],
      // --------------
      // --- Sizing ---
      // --------------
      /**
       * Size
       * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
       */
      size: [{
        size: scaleSizing()
      }],
      /**
       * Width
       * @see https://tailwindcss.com/docs/width
       */
      w: [{
        w: [themeContainer, "screen", ...scaleSizing()]
      }],
      /**
       * Min-Width
       * @see https://tailwindcss.com/docs/min-width
       */
      "min-w": [{
        "min-w": [
          themeContainer,
          "screen",
          /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
          "none",
          ...scaleSizing()
        ]
      }],
      /**
       * Max-Width
       * @see https://tailwindcss.com/docs/max-width
       */
      "max-w": [{
        "max-w": [
          themeContainer,
          "screen",
          "none",
          /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
          "prose",
          /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
          {
            screen: [themeBreakpoint]
          },
          ...scaleSizing()
        ]
      }],
      /**
       * Height
       * @see https://tailwindcss.com/docs/height
       */
      h: [{
        h: ["screen", "lh", ...scaleSizing()]
      }],
      /**
       * Min-Height
       * @see https://tailwindcss.com/docs/min-height
       */
      "min-h": [{
        "min-h": ["screen", "lh", "none", ...scaleSizing()]
      }],
      /**
       * Max-Height
       * @see https://tailwindcss.com/docs/max-height
       */
      "max-h": [{
        "max-h": ["screen", "lh", ...scaleSizing()]
      }],
      // ------------------
      // --- Typography ---
      // ------------------
      /**
       * Font Size
       * @see https://tailwindcss.com/docs/font-size
       */
      "font-size": [{
        text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
      }],
      /**
       * Font Smoothing
       * @see https://tailwindcss.com/docs/font-smoothing
       */
      "font-smoothing": ["antialiased", "subpixel-antialiased"],
      /**
       * Font Style
       * @see https://tailwindcss.com/docs/font-style
       */
      "font-style": ["italic", "not-italic"],
      /**
       * Font Weight
       * @see https://tailwindcss.com/docs/font-weight
       */
      "font-weight": [{
        font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
      }],
      /**
       * Font Stretch
       * @see https://tailwindcss.com/docs/font-stretch
       */
      "font-stretch": [{
        "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
      }],
      /**
       * Font Family
       * @see https://tailwindcss.com/docs/font-family
       */
      "font-family": [{
        font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
      }],
      /**
       * Font Variant Numeric
       * @see https://tailwindcss.com/docs/font-variant-numeric
       */
      "fvn-normal": ["normal-nums"],
      /**
       * Font Variant Numeric
       * @see https://tailwindcss.com/docs/font-variant-numeric
       */
      "fvn-ordinal": ["ordinal"],
      /**
       * Font Variant Numeric
       * @see https://tailwindcss.com/docs/font-variant-numeric
       */
      "fvn-slashed-zero": ["slashed-zero"],
      /**
       * Font Variant Numeric
       * @see https://tailwindcss.com/docs/font-variant-numeric
       */
      "fvn-figure": ["lining-nums", "oldstyle-nums"],
      /**
       * Font Variant Numeric
       * @see https://tailwindcss.com/docs/font-variant-numeric
       */
      "fvn-spacing": ["proportional-nums", "tabular-nums"],
      /**
       * Font Variant Numeric
       * @see https://tailwindcss.com/docs/font-variant-numeric
       */
      "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
      /**
       * Letter Spacing
       * @see https://tailwindcss.com/docs/letter-spacing
       */
      tracking: [{
        tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Line Clamp
       * @see https://tailwindcss.com/docs/line-clamp
       */
      "line-clamp": [{
        "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
      }],
      /**
       * Line Height
       * @see https://tailwindcss.com/docs/line-height
       */
      leading: [{
        leading: [
          /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
          themeLeading,
          ...scaleUnambiguousSpacing()
        ]
      }],
      /**
       * List Style Image
       * @see https://tailwindcss.com/docs/list-style-image
       */
      "list-image": [{
        "list-image": ["none", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * List Style Position
       * @see https://tailwindcss.com/docs/list-style-position
       */
      "list-style-position": [{
        list: ["inside", "outside"]
      }],
      /**
       * List Style Type
       * @see https://tailwindcss.com/docs/list-style-type
       */
      "list-style-type": [{
        list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Text Alignment
       * @see https://tailwindcss.com/docs/text-align
       */
      "text-alignment": [{
        text: ["left", "center", "right", "justify", "start", "end"]
      }],
      /**
       * Placeholder Color
       * @deprecated since Tailwind CSS v3.0.0
       * @see https://v3.tailwindcss.com/docs/placeholder-color
       */
      "placeholder-color": [{
        placeholder: scaleColor()
      }],
      /**
       * Text Color
       * @see https://tailwindcss.com/docs/text-color
       */
      "text-color": [{
        text: scaleColor()
      }],
      /**
       * Text Decoration
       * @see https://tailwindcss.com/docs/text-decoration
       */
      "text-decoration": ["underline", "overline", "line-through", "no-underline"],
      /**
       * Text Decoration Style
       * @see https://tailwindcss.com/docs/text-decoration-style
       */
      "text-decoration-style": [{
        decoration: [...scaleLineStyle(), "wavy"]
      }],
      /**
       * Text Decoration Thickness
       * @see https://tailwindcss.com/docs/text-decoration-thickness
       */
      "text-decoration-thickness": [{
        decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
      }],
      /**
       * Text Decoration Color
       * @see https://tailwindcss.com/docs/text-decoration-color
       */
      "text-decoration-color": [{
        decoration: scaleColor()
      }],
      /**
       * Text Underline Offset
       * @see https://tailwindcss.com/docs/text-underline-offset
       */
      "underline-offset": [{
        "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Text Transform
       * @see https://tailwindcss.com/docs/text-transform
       */
      "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
      /**
       * Text Overflow
       * @see https://tailwindcss.com/docs/text-overflow
       */
      "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
      /**
       * Text Wrap
       * @see https://tailwindcss.com/docs/text-wrap
       */
      "text-wrap": [{
        text: ["wrap", "nowrap", "balance", "pretty"]
      }],
      /**
       * Text Indent
       * @see https://tailwindcss.com/docs/text-indent
       */
      indent: [{
        indent: scaleUnambiguousSpacing()
      }],
      /**
       * Vertical Alignment
       * @see https://tailwindcss.com/docs/vertical-align
       */
      "vertical-align": [{
        align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Whitespace
       * @see https://tailwindcss.com/docs/whitespace
       */
      whitespace: [{
        whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
      }],
      /**
       * Word Break
       * @see https://tailwindcss.com/docs/word-break
       */
      break: [{
        break: ["normal", "words", "all", "keep"]
      }],
      /**
       * Overflow Wrap
       * @see https://tailwindcss.com/docs/overflow-wrap
       */
      wrap: [{
        wrap: ["break-word", "anywhere", "normal"]
      }],
      /**
       * Hyphens
       * @see https://tailwindcss.com/docs/hyphens
       */
      hyphens: [{
        hyphens: ["none", "manual", "auto"]
      }],
      /**
       * Content
       * @see https://tailwindcss.com/docs/content
       */
      content: [{
        content: ["none", isArbitraryVariable, isArbitraryValue]
      }],
      // -------------------
      // --- Backgrounds ---
      // -------------------
      /**
       * Background Attachment
       * @see https://tailwindcss.com/docs/background-attachment
       */
      "bg-attachment": [{
        bg: ["fixed", "local", "scroll"]
      }],
      /**
       * Background Clip
       * @see https://tailwindcss.com/docs/background-clip
       */
      "bg-clip": [{
        "bg-clip": ["border", "padding", "content", "text"]
      }],
      /**
       * Background Origin
       * @see https://tailwindcss.com/docs/background-origin
       */
      "bg-origin": [{
        "bg-origin": ["border", "padding", "content"]
      }],
      /**
       * Background Position
       * @see https://tailwindcss.com/docs/background-position
       */
      "bg-position": [{
        bg: scaleBgPosition()
      }],
      /**
       * Background Repeat
       * @see https://tailwindcss.com/docs/background-repeat
       */
      "bg-repeat": [{
        bg: scaleBgRepeat()
      }],
      /**
       * Background Size
       * @see https://tailwindcss.com/docs/background-size
       */
      "bg-size": [{
        bg: scaleBgSize()
      }],
      /**
       * Background Image
       * @see https://tailwindcss.com/docs/background-image
       */
      "bg-image": [{
        bg: ["none", {
          linear: [{
            to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
          }, isInteger, isArbitraryVariable, isArbitraryValue],
          radial: ["", isArbitraryVariable, isArbitraryValue],
          conic: [isInteger, isArbitraryVariable, isArbitraryValue]
        }, isArbitraryVariableImage, isArbitraryImage]
      }],
      /**
       * Background Color
       * @see https://tailwindcss.com/docs/background-color
       */
      "bg-color": [{
        bg: scaleColor()
      }],
      /**
       * Gradient Color Stops From Position
       * @see https://tailwindcss.com/docs/gradient-color-stops
       */
      "gradient-from-pos": [{
        from: scaleGradientStopPosition()
      }],
      /**
       * Gradient Color Stops Via Position
       * @see https://tailwindcss.com/docs/gradient-color-stops
       */
      "gradient-via-pos": [{
        via: scaleGradientStopPosition()
      }],
      /**
       * Gradient Color Stops To Position
       * @see https://tailwindcss.com/docs/gradient-color-stops
       */
      "gradient-to-pos": [{
        to: scaleGradientStopPosition()
      }],
      /**
       * Gradient Color Stops From
       * @see https://tailwindcss.com/docs/gradient-color-stops
       */
      "gradient-from": [{
        from: scaleColor()
      }],
      /**
       * Gradient Color Stops Via
       * @see https://tailwindcss.com/docs/gradient-color-stops
       */
      "gradient-via": [{
        via: scaleColor()
      }],
      /**
       * Gradient Color Stops To
       * @see https://tailwindcss.com/docs/gradient-color-stops
       */
      "gradient-to": [{
        to: scaleColor()
      }],
      // ---------------
      // --- Borders ---
      // ---------------
      /**
       * Border Radius
       * @see https://tailwindcss.com/docs/border-radius
       */
      rounded: [{
        rounded: scaleRadius()
      }],
      /**
       * Border Radius Start
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-s": [{
        "rounded-s": scaleRadius()
      }],
      /**
       * Border Radius End
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-e": [{
        "rounded-e": scaleRadius()
      }],
      /**
       * Border Radius Top
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-t": [{
        "rounded-t": scaleRadius()
      }],
      /**
       * Border Radius Right
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-r": [{
        "rounded-r": scaleRadius()
      }],
      /**
       * Border Radius Bottom
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-b": [{
        "rounded-b": scaleRadius()
      }],
      /**
       * Border Radius Left
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-l": [{
        "rounded-l": scaleRadius()
      }],
      /**
       * Border Radius Start Start
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-ss": [{
        "rounded-ss": scaleRadius()
      }],
      /**
       * Border Radius Start End
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-se": [{
        "rounded-se": scaleRadius()
      }],
      /**
       * Border Radius End End
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-ee": [{
        "rounded-ee": scaleRadius()
      }],
      /**
       * Border Radius End Start
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-es": [{
        "rounded-es": scaleRadius()
      }],
      /**
       * Border Radius Top Left
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-tl": [{
        "rounded-tl": scaleRadius()
      }],
      /**
       * Border Radius Top Right
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-tr": [{
        "rounded-tr": scaleRadius()
      }],
      /**
       * Border Radius Bottom Right
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-br": [{
        "rounded-br": scaleRadius()
      }],
      /**
       * Border Radius Bottom Left
       * @see https://tailwindcss.com/docs/border-radius
       */
      "rounded-bl": [{
        "rounded-bl": scaleRadius()
      }],
      /**
       * Border Width
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w": [{
        border: scaleBorderWidth()
      }],
      /**
       * Border Width X
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-x": [{
        "border-x": scaleBorderWidth()
      }],
      /**
       * Border Width Y
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-y": [{
        "border-y": scaleBorderWidth()
      }],
      /**
       * Border Width Start
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-s": [{
        "border-s": scaleBorderWidth()
      }],
      /**
       * Border Width End
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-e": [{
        "border-e": scaleBorderWidth()
      }],
      /**
       * Border Width Top
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-t": [{
        "border-t": scaleBorderWidth()
      }],
      /**
       * Border Width Right
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-r": [{
        "border-r": scaleBorderWidth()
      }],
      /**
       * Border Width Bottom
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-b": [{
        "border-b": scaleBorderWidth()
      }],
      /**
       * Border Width Left
       * @see https://tailwindcss.com/docs/border-width
       */
      "border-w-l": [{
        "border-l": scaleBorderWidth()
      }],
      /**
       * Divide Width X
       * @see https://tailwindcss.com/docs/border-width#between-children
       */
      "divide-x": [{
        "divide-x": scaleBorderWidth()
      }],
      /**
       * Divide Width X Reverse
       * @see https://tailwindcss.com/docs/border-width#between-children
       */
      "divide-x-reverse": ["divide-x-reverse"],
      /**
       * Divide Width Y
       * @see https://tailwindcss.com/docs/border-width#between-children
       */
      "divide-y": [{
        "divide-y": scaleBorderWidth()
      }],
      /**
       * Divide Width Y Reverse
       * @see https://tailwindcss.com/docs/border-width#between-children
       */
      "divide-y-reverse": ["divide-y-reverse"],
      /**
       * Border Style
       * @see https://tailwindcss.com/docs/border-style
       */
      "border-style": [{
        border: [...scaleLineStyle(), "hidden", "none"]
      }],
      /**
       * Divide Style
       * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
       */
      "divide-style": [{
        divide: [...scaleLineStyle(), "hidden", "none"]
      }],
      /**
       * Border Color
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color": [{
        border: scaleColor()
      }],
      /**
       * Border Color X
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-x": [{
        "border-x": scaleColor()
      }],
      /**
       * Border Color Y
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-y": [{
        "border-y": scaleColor()
      }],
      /**
       * Border Color S
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-s": [{
        "border-s": scaleColor()
      }],
      /**
       * Border Color E
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-e": [{
        "border-e": scaleColor()
      }],
      /**
       * Border Color Top
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-t": [{
        "border-t": scaleColor()
      }],
      /**
       * Border Color Right
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-r": [{
        "border-r": scaleColor()
      }],
      /**
       * Border Color Bottom
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-b": [{
        "border-b": scaleColor()
      }],
      /**
       * Border Color Left
       * @see https://tailwindcss.com/docs/border-color
       */
      "border-color-l": [{
        "border-l": scaleColor()
      }],
      /**
       * Divide Color
       * @see https://tailwindcss.com/docs/divide-color
       */
      "divide-color": [{
        divide: scaleColor()
      }],
      /**
       * Outline Style
       * @see https://tailwindcss.com/docs/outline-style
       */
      "outline-style": [{
        outline: [...scaleLineStyle(), "none", "hidden"]
      }],
      /**
       * Outline Offset
       * @see https://tailwindcss.com/docs/outline-offset
       */
      "outline-offset": [{
        "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Outline Width
       * @see https://tailwindcss.com/docs/outline-width
       */
      "outline-w": [{
        outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
      }],
      /**
       * Outline Color
       * @see https://tailwindcss.com/docs/outline-color
       */
      "outline-color": [{
        outline: scaleColor()
      }],
      // ---------------
      // --- Effects ---
      // ---------------
      /**
       * Box Shadow
       * @see https://tailwindcss.com/docs/box-shadow
       */
      shadow: [{
        shadow: [
          // Deprecated since Tailwind CSS v4.0.0
          "",
          "none",
          themeShadow,
          isArbitraryVariableShadow,
          isArbitraryShadow
        ]
      }],
      /**
       * Box Shadow Color
       * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
       */
      "shadow-color": [{
        shadow: scaleColor()
      }],
      /**
       * Inset Box Shadow
       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
       */
      "inset-shadow": [{
        "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
      }],
      /**
       * Inset Box Shadow Color
       * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
       */
      "inset-shadow-color": [{
        "inset-shadow": scaleColor()
      }],
      /**
       * Ring Width
       * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
       */
      "ring-w": [{
        ring: scaleBorderWidth()
      }],
      /**
       * Ring Width Inset
       * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
       * @deprecated since Tailwind CSS v4.0.0
       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
       */
      "ring-w-inset": ["ring-inset"],
      /**
       * Ring Color
       * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
       */
      "ring-color": [{
        ring: scaleColor()
      }],
      /**
       * Ring Offset Width
       * @see https://v3.tailwindcss.com/docs/ring-offset-width
       * @deprecated since Tailwind CSS v4.0.0
       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
       */
      "ring-offset-w": [{
        "ring-offset": [isNumber, isArbitraryLength]
      }],
      /**
       * Ring Offset Color
       * @see https://v3.tailwindcss.com/docs/ring-offset-color
       * @deprecated since Tailwind CSS v4.0.0
       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
       */
      "ring-offset-color": [{
        "ring-offset": scaleColor()
      }],
      /**
       * Inset Ring Width
       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
       */
      "inset-ring-w": [{
        "inset-ring": scaleBorderWidth()
      }],
      /**
       * Inset Ring Color
       * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
       */
      "inset-ring-color": [{
        "inset-ring": scaleColor()
      }],
      /**
       * Text Shadow
       * @see https://tailwindcss.com/docs/text-shadow
       */
      "text-shadow": [{
        "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
      }],
      /**
       * Text Shadow Color
       * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
       */
      "text-shadow-color": [{
        "text-shadow": scaleColor()
      }],
      /**
       * Opacity
       * @see https://tailwindcss.com/docs/opacity
       */
      opacity: [{
        opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Mix Blend Mode
       * @see https://tailwindcss.com/docs/mix-blend-mode
       */
      "mix-blend": [{
        "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
      }],
      /**
       * Background Blend Mode
       * @see https://tailwindcss.com/docs/background-blend-mode
       */
      "bg-blend": [{
        "bg-blend": scaleBlendMode()
      }],
      /**
       * Mask Clip
       * @see https://tailwindcss.com/docs/mask-clip
       */
      "mask-clip": [{
        "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
      }, "mask-no-clip"],
      /**
       * Mask Composite
       * @see https://tailwindcss.com/docs/mask-composite
       */
      "mask-composite": [{
        mask: ["add", "subtract", "intersect", "exclude"]
      }],
      /**
       * Mask Image
       * @see https://tailwindcss.com/docs/mask-image
       */
      "mask-image-linear-pos": [{
        "mask-linear": [isNumber]
      }],
      "mask-image-linear-from-pos": [{
        "mask-linear-from": scaleMaskImagePosition()
      }],
      "mask-image-linear-to-pos": [{
        "mask-linear-to": scaleMaskImagePosition()
      }],
      "mask-image-linear-from-color": [{
        "mask-linear-from": scaleColor()
      }],
      "mask-image-linear-to-color": [{
        "mask-linear-to": scaleColor()
      }],
      "mask-image-t-from-pos": [{
        "mask-t-from": scaleMaskImagePosition()
      }],
      "mask-image-t-to-pos": [{
        "mask-t-to": scaleMaskImagePosition()
      }],
      "mask-image-t-from-color": [{
        "mask-t-from": scaleColor()
      }],
      "mask-image-t-to-color": [{
        "mask-t-to": scaleColor()
      }],
      "mask-image-r-from-pos": [{
        "mask-r-from": scaleMaskImagePosition()
      }],
      "mask-image-r-to-pos": [{
        "mask-r-to": scaleMaskImagePosition()
      }],
      "mask-image-r-from-color": [{
        "mask-r-from": scaleColor()
      }],
      "mask-image-r-to-color": [{
        "mask-r-to": scaleColor()
      }],
      "mask-image-b-from-pos": [{
        "mask-b-from": scaleMaskImagePosition()
      }],
      "mask-image-b-to-pos": [{
        "mask-b-to": scaleMaskImagePosition()
      }],
      "mask-image-b-from-color": [{
        "mask-b-from": scaleColor()
      }],
      "mask-image-b-to-color": [{
        "mask-b-to": scaleColor()
      }],
      "mask-image-l-from-pos": [{
        "mask-l-from": scaleMaskImagePosition()
      }],
      "mask-image-l-to-pos": [{
        "mask-l-to": scaleMaskImagePosition()
      }],
      "mask-image-l-from-color": [{
        "mask-l-from": scaleColor()
      }],
      "mask-image-l-to-color": [{
        "mask-l-to": scaleColor()
      }],
      "mask-image-x-from-pos": [{
        "mask-x-from": scaleMaskImagePosition()
      }],
      "mask-image-x-to-pos": [{
        "mask-x-to": scaleMaskImagePosition()
      }],
      "mask-image-x-from-color": [{
        "mask-x-from": scaleColor()
      }],
      "mask-image-x-to-color": [{
        "mask-x-to": scaleColor()
      }],
      "mask-image-y-from-pos": [{
        "mask-y-from": scaleMaskImagePosition()
      }],
      "mask-image-y-to-pos": [{
        "mask-y-to": scaleMaskImagePosition()
      }],
      "mask-image-y-from-color": [{
        "mask-y-from": scaleColor()
      }],
      "mask-image-y-to-color": [{
        "mask-y-to": scaleColor()
      }],
      "mask-image-radial": [{
        "mask-radial": [isArbitraryVariable, isArbitraryValue]
      }],
      "mask-image-radial-from-pos": [{
        "mask-radial-from": scaleMaskImagePosition()
      }],
      "mask-image-radial-to-pos": [{
        "mask-radial-to": scaleMaskImagePosition()
      }],
      "mask-image-radial-from-color": [{
        "mask-radial-from": scaleColor()
      }],
      "mask-image-radial-to-color": [{
        "mask-radial-to": scaleColor()
      }],
      "mask-image-radial-shape": [{
        "mask-radial": ["circle", "ellipse"]
      }],
      "mask-image-radial-size": [{
        "mask-radial": [{
          closest: ["side", "corner"],
          farthest: ["side", "corner"]
        }]
      }],
      "mask-image-radial-pos": [{
        "mask-radial-at": scalePosition()
      }],
      "mask-image-conic-pos": [{
        "mask-conic": [isNumber]
      }],
      "mask-image-conic-from-pos": [{
        "mask-conic-from": scaleMaskImagePosition()
      }],
      "mask-image-conic-to-pos": [{
        "mask-conic-to": scaleMaskImagePosition()
      }],
      "mask-image-conic-from-color": [{
        "mask-conic-from": scaleColor()
      }],
      "mask-image-conic-to-color": [{
        "mask-conic-to": scaleColor()
      }],
      /**
       * Mask Mode
       * @see https://tailwindcss.com/docs/mask-mode
       */
      "mask-mode": [{
        mask: ["alpha", "luminance", "match"]
      }],
      /**
       * Mask Origin
       * @see https://tailwindcss.com/docs/mask-origin
       */
      "mask-origin": [{
        "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
      }],
      /**
       * Mask Position
       * @see https://tailwindcss.com/docs/mask-position
       */
      "mask-position": [{
        mask: scaleBgPosition()
      }],
      /**
       * Mask Repeat
       * @see https://tailwindcss.com/docs/mask-repeat
       */
      "mask-repeat": [{
        mask: scaleBgRepeat()
      }],
      /**
       * Mask Size
       * @see https://tailwindcss.com/docs/mask-size
       */
      "mask-size": [{
        mask: scaleBgSize()
      }],
      /**
       * Mask Type
       * @see https://tailwindcss.com/docs/mask-type
       */
      "mask-type": [{
        "mask-type": ["alpha", "luminance"]
      }],
      /**
       * Mask Image
       * @see https://tailwindcss.com/docs/mask-image
       */
      "mask-image": [{
        mask: ["none", isArbitraryVariable, isArbitraryValue]
      }],
      // ---------------
      // --- Filters ---
      // ---------------
      /**
       * Filter
       * @see https://tailwindcss.com/docs/filter
       */
      filter: [{
        filter: [
          // Deprecated since Tailwind CSS v3.0.0
          "",
          "none",
          isArbitraryVariable,
          isArbitraryValue
        ]
      }],
      /**
       * Blur
       * @see https://tailwindcss.com/docs/blur
       */
      blur: [{
        blur: scaleBlur()
      }],
      /**
       * Brightness
       * @see https://tailwindcss.com/docs/brightness
       */
      brightness: [{
        brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Contrast
       * @see https://tailwindcss.com/docs/contrast
       */
      contrast: [{
        contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Drop Shadow
       * @see https://tailwindcss.com/docs/drop-shadow
       */
      "drop-shadow": [{
        "drop-shadow": [
          // Deprecated since Tailwind CSS v4.0.0
          "",
          "none",
          themeDropShadow,
          isArbitraryVariableShadow,
          isArbitraryShadow
        ]
      }],
      /**
       * Drop Shadow Color
       * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
       */
      "drop-shadow-color": [{
        "drop-shadow": scaleColor()
      }],
      /**
       * Grayscale
       * @see https://tailwindcss.com/docs/grayscale
       */
      grayscale: [{
        grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Hue Rotate
       * @see https://tailwindcss.com/docs/hue-rotate
       */
      "hue-rotate": [{
        "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Invert
       * @see https://tailwindcss.com/docs/invert
       */
      invert: [{
        invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Saturate
       * @see https://tailwindcss.com/docs/saturate
       */
      saturate: [{
        saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Sepia
       * @see https://tailwindcss.com/docs/sepia
       */
      sepia: [{
        sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Filter
       * @see https://tailwindcss.com/docs/backdrop-filter
       */
      "backdrop-filter": [{
        "backdrop-filter": [
          // Deprecated since Tailwind CSS v3.0.0
          "",
          "none",
          isArbitraryVariable,
          isArbitraryValue
        ]
      }],
      /**
       * Backdrop Blur
       * @see https://tailwindcss.com/docs/backdrop-blur
       */
      "backdrop-blur": [{
        "backdrop-blur": scaleBlur()
      }],
      /**
       * Backdrop Brightness
       * @see https://tailwindcss.com/docs/backdrop-brightness
       */
      "backdrop-brightness": [{
        "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Contrast
       * @see https://tailwindcss.com/docs/backdrop-contrast
       */
      "backdrop-contrast": [{
        "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Grayscale
       * @see https://tailwindcss.com/docs/backdrop-grayscale
       */
      "backdrop-grayscale": [{
        "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Hue Rotate
       * @see https://tailwindcss.com/docs/backdrop-hue-rotate
       */
      "backdrop-hue-rotate": [{
        "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Invert
       * @see https://tailwindcss.com/docs/backdrop-invert
       */
      "backdrop-invert": [{
        "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Opacity
       * @see https://tailwindcss.com/docs/backdrop-opacity
       */
      "backdrop-opacity": [{
        "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Saturate
       * @see https://tailwindcss.com/docs/backdrop-saturate
       */
      "backdrop-saturate": [{
        "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Backdrop Sepia
       * @see https://tailwindcss.com/docs/backdrop-sepia
       */
      "backdrop-sepia": [{
        "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      // --------------
      // --- Tables ---
      // --------------
      /**
       * Border Collapse
       * @see https://tailwindcss.com/docs/border-collapse
       */
      "border-collapse": [{
        border: ["collapse", "separate"]
      }],
      /**
       * Border Spacing
       * @see https://tailwindcss.com/docs/border-spacing
       */
      "border-spacing": [{
        "border-spacing": scaleUnambiguousSpacing()
      }],
      /**
       * Border Spacing X
       * @see https://tailwindcss.com/docs/border-spacing
       */
      "border-spacing-x": [{
        "border-spacing-x": scaleUnambiguousSpacing()
      }],
      /**
       * Border Spacing Y
       * @see https://tailwindcss.com/docs/border-spacing
       */
      "border-spacing-y": [{
        "border-spacing-y": scaleUnambiguousSpacing()
      }],
      /**
       * Table Layout
       * @see https://tailwindcss.com/docs/table-layout
       */
      "table-layout": [{
        table: ["auto", "fixed"]
      }],
      /**
       * Caption Side
       * @see https://tailwindcss.com/docs/caption-side
       */
      caption: [{
        caption: ["top", "bottom"]
      }],
      // ---------------------------------
      // --- Transitions and Animation ---
      // ---------------------------------
      /**
       * Transition Property
       * @see https://tailwindcss.com/docs/transition-property
       */
      transition: [{
        transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Transition Behavior
       * @see https://tailwindcss.com/docs/transition-behavior
       */
      "transition-behavior": [{
        transition: ["normal", "discrete"]
      }],
      /**
       * Transition Duration
       * @see https://tailwindcss.com/docs/transition-duration
       */
      duration: [{
        duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Transition Timing Function
       * @see https://tailwindcss.com/docs/transition-timing-function
       */
      ease: [{
        ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Transition Delay
       * @see https://tailwindcss.com/docs/transition-delay
       */
      delay: [{
        delay: [isNumber, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Animation
       * @see https://tailwindcss.com/docs/animation
       */
      animate: [{
        animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
      }],
      // ------------------
      // --- Transforms ---
      // ------------------
      /**
       * Backface Visibility
       * @see https://tailwindcss.com/docs/backface-visibility
       */
      backface: [{
        backface: ["hidden", "visible"]
      }],
      /**
       * Perspective
       * @see https://tailwindcss.com/docs/perspective
       */
      perspective: [{
        perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Perspective Origin
       * @see https://tailwindcss.com/docs/perspective-origin
       */
      "perspective-origin": [{
        "perspective-origin": scalePositionWithArbitrary()
      }],
      /**
       * Rotate
       * @see https://tailwindcss.com/docs/rotate
       */
      rotate: [{
        rotate: scaleRotate()
      }],
      /**
       * Rotate X
       * @see https://tailwindcss.com/docs/rotate
       */
      "rotate-x": [{
        "rotate-x": scaleRotate()
      }],
      /**
       * Rotate Y
       * @see https://tailwindcss.com/docs/rotate
       */
      "rotate-y": [{
        "rotate-y": scaleRotate()
      }],
      /**
       * Rotate Z
       * @see https://tailwindcss.com/docs/rotate
       */
      "rotate-z": [{
        "rotate-z": scaleRotate()
      }],
      /**
       * Scale
       * @see https://tailwindcss.com/docs/scale
       */
      scale: [{
        scale: scaleScale()
      }],
      /**
       * Scale X
       * @see https://tailwindcss.com/docs/scale
       */
      "scale-x": [{
        "scale-x": scaleScale()
      }],
      /**
       * Scale Y
       * @see https://tailwindcss.com/docs/scale
       */
      "scale-y": [{
        "scale-y": scaleScale()
      }],
      /**
       * Scale Z
       * @see https://tailwindcss.com/docs/scale
       */
      "scale-z": [{
        "scale-z": scaleScale()
      }],
      /**
       * Scale 3D
       * @see https://tailwindcss.com/docs/scale
       */
      "scale-3d": ["scale-3d"],
      /**
       * Skew
       * @see https://tailwindcss.com/docs/skew
       */
      skew: [{
        skew: scaleSkew()
      }],
      /**
       * Skew X
       * @see https://tailwindcss.com/docs/skew
       */
      "skew-x": [{
        "skew-x": scaleSkew()
      }],
      /**
       * Skew Y
       * @see https://tailwindcss.com/docs/skew
       */
      "skew-y": [{
        "skew-y": scaleSkew()
      }],
      /**
       * Transform
       * @see https://tailwindcss.com/docs/transform
       */
      transform: [{
        transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
      }],
      /**
       * Transform Origin
       * @see https://tailwindcss.com/docs/transform-origin
       */
      "transform-origin": [{
        origin: scalePositionWithArbitrary()
      }],
      /**
       * Transform Style
       * @see https://tailwindcss.com/docs/transform-style
       */
      "transform-style": [{
        transform: ["3d", "flat"]
      }],
      /**
       * Translate
       * @see https://tailwindcss.com/docs/translate
       */
      translate: [{
        translate: scaleTranslate()
      }],
      /**
       * Translate X
       * @see https://tailwindcss.com/docs/translate
       */
      "translate-x": [{
        "translate-x": scaleTranslate()
      }],
      /**
       * Translate Y
       * @see https://tailwindcss.com/docs/translate
       */
      "translate-y": [{
        "translate-y": scaleTranslate()
      }],
      /**
       * Translate Z
       * @see https://tailwindcss.com/docs/translate
       */
      "translate-z": [{
        "translate-z": scaleTranslate()
      }],
      /**
       * Translate None
       * @see https://tailwindcss.com/docs/translate
       */
      "translate-none": ["translate-none"],
      // ---------------------
      // --- Interactivity ---
      // ---------------------
      /**
       * Accent Color
       * @see https://tailwindcss.com/docs/accent-color
       */
      accent: [{
        accent: scaleColor()
      }],
      /**
       * Appearance
       * @see https://tailwindcss.com/docs/appearance
       */
      appearance: [{
        appearance: ["none", "auto"]
      }],
      /**
       * Caret Color
       * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
       */
      "caret-color": [{
        caret: scaleColor()
      }],
      /**
       * Color Scheme
       * @see https://tailwindcss.com/docs/color-scheme
       */
      "color-scheme": [{
        scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
      }],
      /**
       * Cursor
       * @see https://tailwindcss.com/docs/cursor
       */
      cursor: [{
        cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", isArbitraryVariable, isArbitraryValue]
      }],
      /**
       * Field Sizing
       * @see https://tailwindcss.com/docs/field-sizing
       */
      "field-sizing": [{
        "field-sizing": ["fixed", "content"]
      }],
      /**
       * Pointer Events
       * @see https://tailwindcss.com/docs/pointer-events
       */
      "pointer-events": [{
        "pointer-events": ["auto", "none"]
      }],
      /**
       * Resize
       * @see https://tailwindcss.com/docs/resize
       */
      resize: [{
        resize: ["none", "", "y", "x"]
      }],
      /**
       * Scroll Behavior
       * @see https://tailwindcss.com/docs/scroll-behavior
       */
      "scroll-behavior": [{
        scroll: ["auto", "smooth"]
      }],
      /**
       * Scroll Margin
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-m": [{
        "scroll-m": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin X
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-mx": [{
        "scroll-mx": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin Y
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-my": [{
        "scroll-my": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin Start
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-ms": [{
        "scroll-ms": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin End
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-me": [{
        "scroll-me": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin Top
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-mt": [{
        "scroll-mt": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin Right
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-mr": [{
        "scroll-mr": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin Bottom
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-mb": [{
        "scroll-mb": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Margin Left
       * @see https://tailwindcss.com/docs/scroll-margin
       */
      "scroll-ml": [{
        "scroll-ml": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-p": [{
        "scroll-p": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding X
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-px": [{
        "scroll-px": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding Y
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-py": [{
        "scroll-py": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding Start
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-ps": [{
        "scroll-ps": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding End
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-pe": [{
        "scroll-pe": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding Top
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-pt": [{
        "scroll-pt": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding Right
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-pr": [{
        "scroll-pr": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding Bottom
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-pb": [{
        "scroll-pb": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Padding Left
       * @see https://tailwindcss.com/docs/scroll-padding
       */
      "scroll-pl": [{
        "scroll-pl": scaleUnambiguousSpacing()
      }],
      /**
       * Scroll Snap Align
       * @see https://tailwindcss.com/docs/scroll-snap-align
       */
      "snap-align": [{
        snap: ["start", "end", "center", "align-none"]
      }],
      /**
       * Scroll Snap Stop
       * @see https://tailwindcss.com/docs/scroll-snap-stop
       */
      "snap-stop": [{
        snap: ["normal", "always"]
      }],
      /**
       * Scroll Snap Type
       * @see https://tailwindcss.com/docs/scroll-snap-type
       */
      "snap-type": [{
        snap: ["none", "x", "y", "both"]
      }],
      /**
       * Scroll Snap Type Strictness
       * @see https://tailwindcss.com/docs/scroll-snap-type
       */
      "snap-strictness": [{
        snap: ["mandatory", "proximity"]
      }],
      /**
       * Touch Action
       * @see https://tailwindcss.com/docs/touch-action
       */
      touch: [{
        touch: ["auto", "none", "manipulation"]
      }],
      /**
       * Touch Action X
       * @see https://tailwindcss.com/docs/touch-action
       */
      "touch-x": [{
        "touch-pan": ["x", "left", "right"]
      }],
      /**
       * Touch Action Y
       * @see https://tailwindcss.com/docs/touch-action
       */
      "touch-y": [{
        "touch-pan": ["y", "up", "down"]
      }],
      /**
       * Touch Action Pinch Zoom
       * @see https://tailwindcss.com/docs/touch-action
       */
      "touch-pz": ["touch-pinch-zoom"],
      /**
       * User Select
       * @see https://tailwindcss.com/docs/user-select
       */
      select: [{
        select: ["none", "text", "all", "auto"]
      }],
      /**
       * Will Change
       * @see https://tailwindcss.com/docs/will-change
       */
      "will-change": [{
        "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
      }],
      // -----------
      // --- SVG ---
      // -----------
      /**
       * Fill
       * @see https://tailwindcss.com/docs/fill
       */
      fill: [{
        fill: ["none", ...scaleColor()]
      }],
      /**
       * Stroke Width
       * @see https://tailwindcss.com/docs/stroke-width
       */
      "stroke-w": [{
        stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
      }],
      /**
       * Stroke
       * @see https://tailwindcss.com/docs/stroke
       */
      stroke: [{
        stroke: ["none", ...scaleColor()]
      }],
      // ---------------------
      // --- Accessibility ---
      // ---------------------
      /**
       * Forced Color Adjust
       * @see https://tailwindcss.com/docs/forced-color-adjust
       */
      "forced-color-adjust": [{
        "forced-color-adjust": ["auto", "none"]
      }]
    },
    conflictingClassGroups: {
      overflow: ["overflow-x", "overflow-y"],
      overscroll: ["overscroll-x", "overscroll-y"],
      inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
      "inset-x": ["right", "left"],
      "inset-y": ["top", "bottom"],
      flex: ["basis", "grow", "shrink"],
      gap: ["gap-x", "gap-y"],
      p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
      px: ["pr", "pl"],
      py: ["pt", "pb"],
      m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
      mx: ["mr", "ml"],
      my: ["mt", "mb"],
      size: ["w", "h"],
      "font-size": ["leading"],
      "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
      "fvn-ordinal": ["fvn-normal"],
      "fvn-slashed-zero": ["fvn-normal"],
      "fvn-figure": ["fvn-normal"],
      "fvn-spacing": ["fvn-normal"],
      "fvn-fraction": ["fvn-normal"],
      "line-clamp": ["display", "overflow"],
      rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
      "rounded-s": ["rounded-ss", "rounded-es"],
      "rounded-e": ["rounded-se", "rounded-ee"],
      "rounded-t": ["rounded-tl", "rounded-tr"],
      "rounded-r": ["rounded-tr", "rounded-br"],
      "rounded-b": ["rounded-br", "rounded-bl"],
      "rounded-l": ["rounded-tl", "rounded-bl"],
      "border-spacing": ["border-spacing-x", "border-spacing-y"],
      "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
      "border-w-x": ["border-w-r", "border-w-l"],
      "border-w-y": ["border-w-t", "border-w-b"],
      "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
      "border-color-x": ["border-color-r", "border-color-l"],
      "border-color-y": ["border-color-t", "border-color-b"],
      translate: ["translate-x", "translate-y", "translate-none"],
      "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
      "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
      "scroll-mx": ["scroll-mr", "scroll-ml"],
      "scroll-my": ["scroll-mt", "scroll-mb"],
      "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
      "scroll-px": ["scroll-pr", "scroll-pl"],
      "scroll-py": ["scroll-pt", "scroll-pb"],
      touch: ["touch-x", "touch-y", "touch-pz"],
      "touch-x": ["touch"],
      "touch-y": ["touch"],
      "touch-pz": ["touch"]
    },
    conflictingClassGroupModifiers: {
      "font-size": ["leading"]
    },
    orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
  };
};
const twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
function cn$1(...inputs) {
  return twMerge(clsx(inputs));
}
function Card({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      "data-slot": "card",
      className: cn$1(
        "cy:bg-card cy:text-card-foreground cy:flex cy:flex-col cy:gap-6 cy:rounded-xl cy:border cy:py-6 cy:shadow-sm",
        className
      ),
      ...props
    }
  );
}
function CardHeader({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      "data-slot": "card-header",
      className: cn$1(
        "cy:@container/card-header cy:grid cy:auto-rows-min cy:grid-rows-[auto_auto] cy:items-start cy:gap-1.5 cy:px-6 cy:has-data-[slot=card-action]:grid-cols-[1fr_auto] cy:[.border-b]:pb-6",
        className
      ),
      ...props
    }
  );
}
function CardTitle({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      "data-slot": "card-title",
      className: cn$1("cy:leading-none cy:font-semibold", className),
      ...props
    }
  );
}
function CardDescription({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      "data-slot": "card-description",
      className: cn$1("cy:text-muted-foreground cy:text-sm", className),
      ...props
    }
  );
}
function CardAction({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      "data-slot": "card-action",
      className: cn$1(
        "cy:col-start-2 cy:row-span-2 cy:row-start-1 cy:self-start cy:justify-self-end",
        className
      ),
      ...props
    }
  );
}
function CardContent({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      "data-slot": "card-content",
      className: cn$1("cy:px-6", className),
      ...props
    }
  );
}
const WebYesLogoIcon = ({
  width = 142,
  height = 28
}) => {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      width,
      height,
      viewBox: "0 0 90 44",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("g", { clipPath: "url(#clip0_653_2669)", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { clipPath: "url(#clip1_653_2669)", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M37.7845 15.8569C37.7845 16.2254 37.7615 16.6091 37.7155 17.0083H28.8171C28.8784 17.8067 29.1313 18.4207 29.5759 18.8506C30.0357 19.2652 30.5953 19.4724 31.2543 19.4724C32.2355 19.4724 32.9176 19.0579 33.3008 18.2288H37.4856C37.271 19.0732 36.8801 19.8332 36.3129 20.5087C35.7611 21.1842 35.0636 21.7138 34.2205 22.0977C33.3775 22.4815 32.4347 22.6734 31.3924 22.6734C30.1354 22.6734 29.0164 22.4048 28.0353 21.8674C27.0542 21.3301 26.2878 20.5624 25.736 19.5645C25.1841 18.5666 24.9082 17.3998 24.9082 16.0641C24.9082 14.7285 25.1765 13.5617 25.713 12.5638C26.2648 11.5659 27.0313 10.7982 28.0124 10.2609C28.9934 9.72356 30.12 9.4549 31.3924 9.4549C32.634 9.4549 33.7377 9.71589 34.7034 10.2379C35.6691 10.7599 36.4202 11.5045 36.9567 12.4717C37.5086 13.4389 37.7845 14.5673 37.7845 15.8569ZM33.7606 14.8206C33.7606 14.1451 33.5307 13.6078 33.0708 13.2086C32.611 12.8094 32.0362 12.6098 31.3463 12.6098C30.6872 12.6098 30.1277 12.8017 29.6678 13.1856C29.2233 13.5693 28.9474 14.1144 28.8401 14.8206H33.7606Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M43.3303 11.4583C43.6982 10.8596 44.227 10.376 44.9168 10.0075C45.6067 9.63905 46.3961 9.45481 47.2852 9.45481C48.3428 9.45481 49.3009 9.72348 50.1593 10.2608C51.0177 10.7982 51.6922 11.5658 52.1827 12.5637C52.6885 13.5616 52.9415 14.7207 52.9415 16.0411C52.9415 17.3614 52.6885 18.5282 52.1827 19.5414C51.6922 20.5393 51.0177 21.3146 50.1593 21.8673C49.3009 22.4047 48.3428 22.6733 47.2852 22.6733C46.3807 22.6733 45.5913 22.4968 44.9168 22.1437C44.2424 21.7752 43.7135 21.2916 43.3303 20.6929V22.4891H39.3984V5.44781H43.3303V11.4583ZM48.9406 16.0411C48.9406 15.0585 48.6647 14.2908 48.1129 13.7381C47.5764 13.1701 46.9096 12.8861 46.1125 12.8861C45.3307 12.8861 44.6639 13.1701 44.112 13.7381C43.5755 14.3062 43.3073 15.0815 43.3073 16.064C43.3073 17.0466 43.5755 17.8219 44.112 18.3899C44.6639 18.958 45.3307 19.242 46.1125 19.242C46.8942 19.242 47.5611 18.958 48.1129 18.3899C48.6647 17.8066 48.9406 17.0236 48.9406 16.0411Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M77.7084 15.8569C77.7084 16.2254 77.6851 16.6091 77.6394 17.0083H68.7409C68.8022 17.8067 69.0551 18.4207 69.4997 18.8506C69.9596 19.2652 70.519 19.4724 71.1782 19.4724C72.1592 19.4724 72.8413 19.0579 73.2246 18.2288H77.4093C77.1948 19.0732 76.8039 19.8332 76.2367 20.5087C75.6849 21.1842 74.9875 21.7138 74.1443 22.0977C73.3012 22.4815 72.3585 22.6734 71.3162 22.6734C70.0592 22.6734 68.9402 22.4048 67.9591 21.8674C66.9781 21.3301 66.2117 20.5624 65.6598 19.5645C65.108 18.5666 64.832 17.3998 64.832 16.0641C64.832 14.7285 65.1003 13.5617 65.6368 12.5638C66.1886 11.5659 66.9551 10.7982 67.9361 10.2609C68.9171 9.72356 70.0439 9.4549 71.3162 9.4549C72.5578 9.4549 73.6614 9.71589 74.6272 10.2379C75.5929 10.7599 76.344 11.5045 76.8805 12.4717C77.4324 13.4389 77.7084 14.5673 77.7084 15.8569ZM73.6845 14.8206C73.6845 14.1451 73.4545 13.6078 72.9947 13.2086C72.5348 12.8094 71.9599 12.6098 71.2702 12.6098C70.611 12.6098 70.0515 12.8017 69.5917 13.1855C69.1471 13.5693 68.8712 14.1144 68.7639 14.8206H73.6845Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M84.5409 22.6734C83.422 22.6734 82.4255 22.4815 81.5523 22.0977C80.6782 21.7138 79.9886 21.1919 79.4826 20.5317C78.9766 19.8562 78.693 19.1039 78.6318 18.2749H82.5177C82.5635 18.7201 82.7711 19.0809 83.1384 19.3573C83.5065 19.6336 83.959 19.7718 84.4952 19.7718C84.9857 19.7718 85.3615 19.6796 85.6218 19.4954C85.8977 19.2958 86.0356 19.0425 86.0356 18.7355C86.0356 18.367 85.8442 18.0984 85.4606 17.9295C85.0779 17.7453 84.4572 17.5457 83.5987 17.3307C82.6789 17.1158 81.9126 16.8932 81.2989 16.6629C80.686 16.4172 80.1575 16.0411 79.7128 15.5345C79.268 15.0125 79.0456 14.314 79.0456 13.4389C79.0456 12.7019 79.2447 12.0341 79.6438 11.4354C80.0576 10.8213 80.655 10.3377 81.4368 9.98456C82.2341 9.63145 83.1771 9.4549 84.265 9.4549C85.8752 9.4549 87.1398 9.85406 88.0595 10.6524C88.994 11.4507 89.531 12.51 89.6689 13.8303H86.0356C85.9744 13.3851 85.7752 13.032 85.4382 12.771C85.1158 12.51 84.6866 12.3795 84.1504 12.3795C83.6901 12.3795 83.3375 12.4717 83.0927 12.6559C82.8471 12.8248 82.7246 13.0627 82.7246 13.3697C82.7246 13.7382 82.916 14.0146 83.2996 14.1988C83.6978 14.383 84.3115 14.5673 85.1391 14.7515C86.089 14.9971 86.8639 15.2428 87.4613 15.4884C88.0595 15.7187 88.5802 16.1025 89.025 16.6399C89.4845 17.1618 89.7224 17.868 89.7379 18.7585C89.7379 19.5108 89.5232 20.1863 89.0939 20.7851C88.6802 21.3684 88.0742 21.829 87.2777 22.1667C86.4959 22.5045 85.5838 22.6734 84.5409 22.6734Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M66.3263 6.32285L60.7389 17.1463V22.489H56.8071V17.1463L51.2197 6.32285H55.6804L58.8075 13.0933L61.9116 6.32285H66.3263Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M25.4191 5.46072H20.7922L15.6953 22.2601H20.3222L25.4191 5.46072Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M15.2252 5.46072H10.5982L5.51172 22.2601H10.1387L15.2252 5.46072Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M10.3626 21.4891L10.1194 22.3007L7.76953 14.7531L8.05311 13.8604L10.3626 21.4891Z",
              fill: "#2684FF"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M20.5735 21.4484L20.3304 22.26L17.9805 14.6719L18.2641 13.7791L20.5735 21.4484Z",
              fill: "#2684FF"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M0.395508 5.46069H5.02981L10.1348 22.2601H5.50051L0.395508 5.46069Z",
              fill: "white"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M10.5908 5.46072H15.2252L20.3301 22.2601H15.6958L10.5908 5.46072Z",
              fill: "white"
            }
          )
        ] }) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M7.02209 37.7756H3.02447L2.33759 39.7263H0.702828L4.12347 30.165H5.93682L9.35746 39.7263H7.70896L7.02209 37.7756ZM6.58248 36.498L5.03015 32.0608L3.46407 36.498H6.58248ZM10.4601 35.9348C10.4601 35.1563 10.6158 34.474 10.9272 33.8879C11.2477 33.2926 11.6873 32.8347 12.246 32.5141C12.8046 32.1936 13.4457 32.0333 14.1692 32.0333C15.0851 32.0333 15.8406 32.2531 16.4359 32.6927C17.0404 33.1232 17.4479 33.7413 17.6586 34.5473H15.9689C15.8315 34.1718 15.6117 33.8787 15.3095 33.6681C15.0072 33.4574 14.6272 33.3521 14.1692 33.3521C13.5282 33.3521 13.0153 33.5811 12.6306 34.039C12.2551 34.4877 12.0674 35.1197 12.0674 35.9348C12.0674 36.7499 12.2551 37.3864 12.6306 37.8443C13.0153 38.3022 13.5282 38.5312 14.1692 38.5312C15.0759 38.5312 15.6758 38.1328 15.9689 37.336H17.6586C17.4388 38.1053 17.0266 38.7189 16.4222 39.1768C15.8177 39.6256 15.0668 39.85 14.1692 39.85C13.4457 39.85 12.8046 39.6897 12.246 39.3691C11.6873 39.0394 11.2477 38.5815 10.9272 37.9954C10.6158 37.4001 10.4601 36.7132 10.4601 35.9348ZM18.8346 35.9348C18.8346 35.1563 18.9903 34.474 19.3017 33.8879C19.6222 33.2926 20.0618 32.8347 20.6205 32.5141C21.1792 32.1936 21.8203 32.0333 22.5438 32.0333C23.4596 32.0333 24.2152 32.2531 24.8105 32.6927C25.4149 33.1232 25.8224 33.7413 26.0331 34.5473H24.3434C24.206 34.1718 23.9862 33.8787 23.684 33.6681C23.3817 33.4574 23.0017 33.3521 22.5438 33.3521C21.9027 33.3521 21.3898 33.5811 21.0052 34.039C20.6297 34.4877 20.4419 35.1197 20.4419 35.9348C20.4419 36.7499 20.6297 37.3864 21.0052 37.8443C21.3898 38.3022 21.9027 38.5312 22.5438 38.5312C23.4504 38.5312 24.0503 38.1328 24.3434 37.336H26.0331C25.8133 38.1053 25.4012 38.7189 24.7967 39.1768C24.1923 39.6256 23.4413 39.85 22.5438 39.85C21.8203 39.85 21.1792 39.6897 20.6205 39.3691C20.0618 39.0394 19.6222 38.5815 19.3017 37.9954C18.9903 37.4001 18.8346 36.7132 18.8346 35.9348ZM34.6686 35.7562C34.6686 36.0401 34.6503 36.2965 34.6137 36.5255H28.8302C28.876 37.1299 29.1003 37.6153 29.5033 37.9817C29.9063 38.348 30.4008 38.5312 30.987 38.5312C31.8295 38.5312 32.4248 38.1786 32.7728 37.4734H34.4626C34.2336 38.1694 33.8169 38.7418 33.2124 39.1906C32.6172 39.6302 31.8753 39.85 30.987 39.85C30.2635 39.85 29.6132 39.6897 29.0362 39.3691C28.4684 39.0394 28.0197 38.5815 27.69 37.9954C27.3694 37.4001 27.2092 36.7132 27.2092 35.9348C27.2092 35.1563 27.3648 34.474 27.6762 33.8879C27.9968 33.2926 28.4409 32.8347 29.0088 32.5141C29.5857 32.1936 30.2451 32.0333 30.987 32.0333C31.7013 32.0333 32.3378 32.189 32.8965 32.5004C33.4551 32.8118 33.8902 33.2514 34.2015 33.8192C34.5129 34.3778 34.6686 35.0235 34.6686 35.7562ZM33.0339 35.2616C33.0247 34.6846 32.8186 34.2222 32.4157 33.8741C32.0127 33.5261 31.5136 33.3521 30.9183 33.3521C30.3779 33.3521 29.9154 33.5261 29.5308 33.8741C29.1461 34.213 28.9172 34.6755 28.8439 35.2616H33.0339ZM39.0947 39.85C38.4994 39.85 37.9636 39.7446 37.4874 39.534C37.0203 39.3142 36.6494 39.0211 36.3746 38.6548C36.0999 38.2793 35.9534 37.8626 35.935 37.4047H37.5561C37.5836 37.7252 37.7347 37.9954 38.0094 38.2152C38.2933 38.4258 38.6459 38.5312 39.0672 38.5312C39.5068 38.5312 39.8457 38.4487 40.0838 38.2839C40.3311 38.1099 40.4547 37.8901 40.4547 37.6245C40.4547 37.3406 40.3173 37.1299 40.0426 36.9926C39.777 36.8552 39.3511 36.7041 38.765 36.5392C38.1972 36.3835 37.7347 36.2324 37.3775 36.0859C37.0203 35.9393 36.7089 35.715 36.4433 35.4127C36.1869 35.1105 36.0587 34.7121 36.0587 34.2176C36.0587 33.8146 36.1777 33.4483 36.4159 33.1186C36.654 32.7797 36.9928 32.5141 37.4324 32.3218C37.8812 32.1295 38.3941 32.0333 38.971 32.0333C39.8319 32.0333 40.5234 32.2531 41.0454 32.6927C41.5766 33.1232 41.8605 33.7139 41.8971 34.4648H40.3311C40.3036 34.126 40.1662 33.8558 39.9189 33.6543C39.6717 33.4529 39.3374 33.3521 38.9161 33.3521C38.504 33.3521 38.188 33.43 37.9682 33.5856C37.7484 33.7413 37.6385 33.9474 37.6385 34.2038C37.6385 34.4053 37.7118 34.5747 37.8583 34.7121C38.0048 34.8495 38.1834 34.9594 38.3941 35.0418C38.6047 35.1151 38.9161 35.2113 39.3282 35.3303C39.8777 35.4768 40.3265 35.628 40.6745 35.7837C41.0317 35.9302 41.3385 36.15 41.5949 36.4431C41.8513 36.7361 41.9841 37.1253 41.9933 37.6107C41.9933 38.0412 41.8742 38.4258 41.6361 38.7647C41.398 39.1036 41.0591 39.3691 40.6195 39.5615C40.1891 39.7538 39.6808 39.85 39.0947 39.85ZM46.5704 39.85C45.9751 39.85 45.4393 39.7446 44.9631 39.534C44.496 39.3142 44.1251 39.0211 43.8503 38.6548C43.5756 38.2793 43.429 37.8626 43.4107 37.4047H45.0318C45.0592 37.7252 45.2103 37.9954 45.4851 38.2152C45.769 38.4258 46.1216 38.5312 46.5429 38.5312C46.9825 38.5312 47.3213 38.4487 47.5595 38.2839C47.8067 38.1099 47.9304 37.8901 47.9304 37.6245C47.9304 37.3406 47.793 37.1299 47.5182 36.9926C47.2527 36.8552 46.8268 36.7041 46.2407 36.5392C45.6728 36.3835 45.2103 36.2324 44.8532 36.0859C44.496 35.9393 44.1846 35.715 43.919 35.4127C43.6626 35.1105 43.5344 34.7121 43.5344 34.2176C43.5344 33.8146 43.6534 33.4483 43.8915 33.1186C44.1297 32.7797 44.4685 32.5141 44.9081 32.3218C45.3569 32.1295 45.8697 32.0333 46.4467 32.0333C47.3076 32.0333 47.9991 32.2531 48.5211 32.6927C49.0523 33.1232 49.3362 33.7139 49.3728 34.4648H47.8067C47.7793 34.126 47.6419 33.8558 47.3946 33.6543C47.1473 33.4529 46.8131 33.3521 46.3918 33.3521C45.9796 33.3521 45.6637 33.43 45.4439 33.5856C45.2241 33.7413 45.1142 33.9474 45.1142 34.2038C45.1142 34.4053 45.1874 34.5747 45.334 34.7121C45.4805 34.8495 45.6591 34.9594 45.8697 35.0418C46.0804 35.1151 46.3918 35.2113 46.8039 35.3303C47.3534 35.4768 47.8022 35.628 48.1502 35.7837C48.5073 35.9302 48.8141 36.15 49.0706 36.4431C49.327 36.7361 49.4598 37.1253 49.469 37.6107C49.469 38.0412 49.3499 38.4258 49.1118 38.7647C48.8737 39.1036 48.5348 39.3691 48.0952 39.5615C47.6648 39.7538 47.1565 39.85 46.5704 39.85ZM52.0953 31.1541C51.8114 31.1541 51.5733 31.0579 51.381 30.8656C51.1886 30.6733 51.0925 30.4352 51.0925 30.1513C51.0925 29.8674 51.1886 29.6292 51.381 29.4369C51.5733 29.2446 51.8114 29.1484 52.0953 29.1484C52.3701 29.1484 52.6036 29.2446 52.7959 29.4369C52.9882 29.6292 53.0844 29.8674 53.0844 30.1513C53.0844 30.4352 52.9882 30.6733 52.7959 30.8656C52.6036 31.0579 52.3701 31.1541 52.0953 31.1541ZM52.8646 32.1569V39.7263H51.2985V32.1569H52.8646ZM56.6242 33.2834C56.8898 32.9171 57.2515 32.6194 57.7094 32.3905C58.1765 32.1524 58.694 32.0333 59.2618 32.0333C59.9303 32.0333 60.5348 32.1936 61.0751 32.5141C61.6155 32.8347 62.0413 33.2926 62.3527 33.8879C62.6641 34.474 62.8198 35.1471 62.8198 35.9073C62.8198 36.6674 62.6641 37.3497 62.3527 37.9542C62.0413 38.5495 61.6109 39.0165 61.0614 39.3554C60.5211 39.6851 59.9212 39.85 59.2618 39.85C58.6756 39.85 58.1536 39.7355 57.6957 39.5065C57.2469 39.2776 56.8898 38.9845 56.6242 38.6273V39.7263H55.0581V29.5606H56.6242V33.2834ZM61.2262 35.9073C61.2262 35.3853 61.1163 34.9365 60.8965 34.561C60.6859 34.1764 60.402 33.8879 60.0448 33.6955C59.6968 33.4941 59.3213 33.3933 58.9183 33.3933C58.5245 33.3933 58.149 33.4941 57.7919 33.6955C57.4438 33.897 57.1599 34.1901 56.9401 34.5747C56.7295 34.9594 56.6242 35.4127 56.6242 35.9348C56.6242 36.4568 56.7295 36.9147 56.9401 37.3085C57.1599 37.6932 57.4438 37.9862 57.7919 38.1877C58.149 38.3892 58.5245 38.4899 58.9183 38.4899C59.3213 38.4899 59.6968 38.3892 60.0448 38.1877C60.402 37.9771 60.6859 37.6748 60.8965 37.281C61.1163 36.8872 61.2262 36.4293 61.2262 35.9073ZM65.3026 31.1541C65.0187 31.1541 64.7806 31.0579 64.5883 30.8656C64.396 30.6733 64.2998 30.4352 64.2998 30.1513C64.2998 29.8674 64.396 29.6292 64.5883 29.4369C64.7806 29.2446 65.0187 29.1484 65.3026 29.1484C65.5774 29.1484 65.8109 29.2446 66.0033 29.4369C66.1956 29.6292 66.2917 29.8674 66.2917 30.1513C66.2917 30.4352 66.1956 30.6733 66.0033 30.8656C65.8109 31.0579 65.5774 31.1541 65.3026 31.1541ZM66.0719 32.1569V39.7263H64.5059V32.1569H66.0719ZM69.8315 29.5606V39.7263H68.2654V29.5606H69.8315ZM72.8218 31.1541C72.5379 31.1541 72.2998 31.0579 72.1074 30.8656C71.9151 30.6733 71.8189 30.4352 71.8189 30.1513C71.8189 29.8674 71.9151 29.6292 72.1074 29.4369C72.2998 29.2446 72.5379 29.1484 72.8218 29.1484C73.0965 29.1484 73.3301 29.2446 73.5224 29.4369C73.7147 29.6292 73.8109 29.8674 73.8109 30.1513C73.8109 30.4352 73.7147 30.6733 73.5224 30.8656C73.3301 31.0579 73.0965 31.1541 72.8218 31.1541ZM73.5911 32.1569V39.7263H72.025V32.1569H73.5911ZM77.6117 33.4345V37.6245C77.6117 37.9084 77.6758 38.1144 77.804 38.2427C77.9414 38.3617 78.1703 38.4213 78.4909 38.4213H79.4525V39.7263H78.2161C77.5109 39.7263 76.9706 39.5615 76.5951 39.2318C76.2196 38.9021 76.0319 38.3663 76.0319 37.6245V33.4345H75.1389V32.1569H76.0319V30.2749H77.6117V32.1569H79.4525V33.4345H77.6117ZM87.8471 32.1569L83.2038 43.2843H81.5828L83.1214 39.6027L80.1403 32.1569H81.885L84.0143 37.9267L86.2261 32.1569H87.8471Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_653_2669", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            "rect",
            {
              width: 89.8833,
              height: 28.0507,
              fill: "white",
              transform: "translate(0.117188 0.347046)"
            }
          ) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip1_653_2669", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            "rect",
            {
              width: 89.8833,
              height: 17.8492,
              fill: "white",
              transform: "translate(0.117188 5.44781)"
            }
          ) })
        ] })
      ]
    }
  );
};
const TickIcon = ({
  width = 18,
  height = 18
}) => {
  return /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { width, height, viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M6.87872 1.50578C7.97543 -0.0296763 10.2575 -0.0296763 11.3543 1.50578L11.5289 1.75022C11.7218 2.02046 12.046 2.16515 12.376 2.12849L13.1542 2.04201C14.9058 1.8474 16.3858 3.32737 16.1911 5.07888L16.1047 5.85715C16.068 6.18719 16.2127 6.51127 16.4829 6.70429L16.7274 6.8789C18.2628 7.97561 18.2628 10.2577 16.7274 11.3544L16.4829 11.5291C16.2127 11.722 16.068 12.0462 16.1047 12.3762L16.1911 13.1544C16.3858 14.906 14.9058 16.3859 13.1542 16.1913L12.376 16.1049C12.046 16.0682 11.7218 16.2129 11.5289 16.4831L11.3543 16.7276C10.2575 18.263 7.97552 18.263 6.87872 16.7276L6.70411 16.4831C6.51109 16.2129 6.18701 16.0682 5.85696 16.1049L5.0787 16.1913C3.32718 16.3859 1.84722 14.906 2.04183 13.1544L2.1283 12.3762C2.16497 12.0462 2.02027 11.722 1.75004 11.5291L1.50559 11.3544C-0.0298595 10.2577 -0.0298595 7.9757 1.50559 6.8789L1.75004 6.70429C2.02027 6.51127 2.16497 6.18719 2.1283 5.85714L2.04183 5.07888C1.84722 3.32737 3.32718 1.8474 5.0787 2.04201L5.85696 2.12849C6.18701 2.16515 6.51109 2.02046 6.70411 1.75022L6.87872 1.50578ZM12.5147 6.63516C12.8726 6.99314 12.8726 7.57356 12.5147 7.93152L9.01401 11.4322C8.56439 11.8819 7.83527 11.8819 7.38564 11.4322L5.71831 9.76485C5.36033 9.40689 5.36033 8.82646 5.71831 8.4685C6.07629 8.11054 6.65669 8.11054 7.01468 8.4685L8.19983 9.65366L11.2183 6.63516C11.5763 6.27718 12.1567 6.27718 12.5147 6.63516Z", fill: "#00FFD4" }) });
};
const FeatureItem = ({
  icon,
  message
}) => {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-start cy:gap-4", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-5 cy:h-5 cy:rounded-full cy:flex cy:items-center cy:justify-center cy:flex-shrink-0", children: icon }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-sm", children: message })
  ] });
};
const PromoBanner = () => {
  const features = [
    /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      "Check ",
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "WCAG 2.1 and 2.2 Level A and AA" }),
      " compliance, with ",
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Level AAA" }),
      " checks in premium version."
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Prioritize issues" }),
      " based on the most affected pages, the most common issues, or their severity."
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Identify issue sources in real time" }),
      " using the ",
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Inspector" }),
      " feature."
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      "Get ",
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "AI-powered suggestions" }),
      " on how to fix accessibility problems."
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      "Detect issues on ",
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "both mobile and desktop" }),
      " versions of your pages."
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Schedule scans automatically" }),
      " ",
      /* @__PURE__ */ jsxRuntimeExports.jsx("em", { children: "(available in premium plans only)" }),
      "."
    ] })
  ];
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Card,
    {
      style: {
        backgroundImage: `
          linear-gradient(rgba(44, 119, 226, 0.5) 1px, transparent 1px),
          linear-gradient(90deg, rgba(44, 119, 226, 0.5) 1px, transparent 1px)
          `,
        backgroundSize: "90px 90px"
      },
      className: "cy:py-0 cy:w-[309px] cy:bg-[#055FDD] cy:rounded-2xl cy:text-white cy:border-0 cy:relative",
      children: /* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "cy:p-0 cy:flex cy:flex-col cy:gap-[46px]  cy:rounded-2xl cy:overflow-hidden", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex-1  cy:pt-[19px] cy:px-[19px]", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:p-0 cy:mb-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(WebYesLogoIcon, { width: 90, height: 44 }) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:text-2xl! cy:font-bold cy:mb-6 cy:leading-tight cy:text-white!", children: "How Accessible Is Your Website?" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:text-base! cy:opacity-90 cy:mb-8! cy:leading-relaxed", children: "Check your accessibility score with WebYes. Run a quick audit to uncover accessibility issues that could be affecting your visitors — and your compliance." }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:space-y-3", children: features.map((feature, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
            FeatureItem,
            {
              icon: /* @__PURE__ */ jsxRuntimeExports.jsx(TickIcon, { width: 22, height: 22 }),
              message: feature
            },
            index2
          )) })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:mt-auto cy:bg-[#1B365D] cy:py-7 cy:pl-[19px] cy:pr-[19px] cy:rounded-2xl cy:text-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          "a",
          {
            href: `https://accessibility.webyes.com/trial?plan=accessibility_pro_monthly&utm_source=Pluginscreen&utm_medium=AccessibilityPlus&utm_campaign=PluginSignups&utm_content=${PLUGIN_VERSION}`,
            className: "cy:w-full cy:bg-white cy:hover:bg-white/90!  cy:text-[#0251AF]! cy:font-bold cy:text-base! cy:px-7 cy:py-2 cy:rounded",
            target: "_blank",
            children: "Audit My Site Now"
          }
        ) })
      ] })
    }
  );
};
function setRef(ref, value) {
  if (typeof ref === "function") {
    return ref(value);
  } else if (ref !== null && ref !== void 0) {
    ref.current = value;
  }
}
function composeRefs(...refs) {
  return (node) => {
    let hasCleanup = false;
    const cleanups = refs.map((ref) => {
      const cleanup = setRef(ref, node);
      if (!hasCleanup && typeof cleanup == "function") {
        hasCleanup = true;
      }
      return cleanup;
    });
    if (hasCleanup) {
      return () => {
        for (let i = 0; i < cleanups.length; i++) {
          const cleanup = cleanups[i];
          if (typeof cleanup == "function") {
            cleanup();
          } else {
            setRef(refs[i], null);
          }
        }
      };
    }
  };
}
function useComposedRefs(...refs) {
  return reactExports.useCallback(composeRefs(...refs), refs);
}
// @__NO_SIDE_EFFECTS__
function createSlot(ownerName) {
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
  const Slot2 = reactExports.forwardRef((props, forwardedRef) => {
    const { children, ...slotProps } = props;
    const childrenArray = reactExports.Children.toArray(children);
    const slottable = childrenArray.find(isSlottable);
    if (slottable) {
      const newElement = slottable.props.children;
      const newChildren = childrenArray.map((child) => {
        if (child === slottable) {
          if (reactExports.Children.count(newElement) > 1) return reactExports.Children.only(null);
          return reactExports.isValidElement(newElement) ? newElement.props.children : null;
        } else {
          return child;
        }
      });
      return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: reactExports.isValidElement(newElement) ? reactExports.cloneElement(newElement, void 0, newChildren) : null });
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
  });
  Slot2.displayName = `${ownerName}.Slot`;
  return Slot2;
}
var Slot$3 = /* @__PURE__ */ createSlot("Slot");
// @__NO_SIDE_EFFECTS__
function createSlotClone(ownerName) {
  const SlotClone = reactExports.forwardRef((props, forwardedRef) => {
    const { children, ...slotProps } = props;
    if (reactExports.isValidElement(children)) {
      const childrenRef = getElementRef$1(children);
      const props2 = mergeProps(slotProps, children.props);
      if (children.type !== reactExports.Fragment) {
        props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
      }
      return reactExports.cloneElement(children, props2);
    }
    return reactExports.Children.count(children) > 1 ? reactExports.Children.only(null) : null;
  });
  SlotClone.displayName = `${ownerName}.SlotClone`;
  return SlotClone;
}
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
// @__NO_SIDE_EFFECTS__
function createSlottable(ownerName) {
  const Slottable2 = ({ children }) => {
    return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children });
  };
  Slottable2.displayName = `${ownerName}.Slottable`;
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
  return Slottable2;
}
function isSlottable(child) {
  return reactExports.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
}
function mergeProps(slotProps, childProps) {
  const overrideProps = { ...childProps };
  for (const propName in childProps) {
    const slotPropValue = slotProps[propName];
    const childPropValue = childProps[propName];
    const isHandler = /^on[A-Z]/.test(propName);
    if (isHandler) {
      if (slotPropValue && childPropValue) {
        overrideProps[propName] = (...args) => {
          const result = childPropValue(...args);
          slotPropValue(...args);
          return result;
        };
      } else if (slotPropValue) {
        overrideProps[propName] = slotPropValue;
      }
    } else if (propName === "style") {
      overrideProps[propName] = { ...slotPropValue, ...childPropValue };
    } else if (propName === "className") {
      overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
    }
  }
  return { ...slotProps, ...overrideProps };
}
function getElementRef$1(element) {
  var _a2, _b2;
  let getter = (_a2 = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a2.get;
  let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
  if (mayWarn) {
    return element.ref;
  }
  getter = (_b2 = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b2.get;
  mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
  if (mayWarn) {
    return element.props.ref;
  }
  return element.props.ref || element.ref;
}
const falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
const cx = clsx;
const cva = (base, config) => (props) => {
  var _config_compoundVariants;
  if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
  const { variants, defaultVariants } = config;
  const getVariantClassNames = Object.keys(variants).map((variant) => {
    const variantProp = props === null || props === void 0 ? void 0 : props[variant];
    const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
    if (variantProp === null) return null;
    const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
    return variants[variant][variantKey];
  });
  const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param) => {
    let [key, value] = param;
    if (value === void 0) {
      return acc;
    }
    acc[key] = value;
    return acc;
  }, {});
  const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param) => {
    let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
    return Object.entries(compoundVariantOptions).every((param2) => {
      let [key, value] = param2;
      return Array.isArray(value) ? value.includes({
        ...defaultVariants,
        ...propsWithoutUndefined
      }[key]) : {
        ...defaultVariants,
        ...propsWithoutUndefined
      }[key] === value;
    }) ? [
      ...acc,
      cvClass,
      cvClassName
    ] : acc;
  }, []);
  return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
};
const buttonVariants = cva(
  "cy:inline-flex cy:items-center cy:justify-center cy:gap-2 cy:whitespace-nowrap cy:rounded-md cy:text-sm cy:font-medium cy:transition-all cy:disabled:pointer-events-none cy:disabled:opacity-50 cy:[&_svg]:pointer-events-none cy:[&_svg:not([class*=size-])]:size-4 cy:shrink-0 cy:[&_svg]:shrink-0 cy:outline-none cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:focus-visible:ring-[3px] cy:aria-invalid:ring-destructive/20 cy:dark:aria-invalid:ring-destructive/40 cy:aria-invalid:border-destructive",
  {
    variants: {
      variant: {
        default: "cy:bg-primary cy:text-primary-foreground cy:shadow-xs cy:hover:bg-primary/90",
        destructive: "cy:bg-destructive cy:text-white cy:shadow-xs cy:hover:bg-destructive/90 cy:focus-visible:ring-destructive/20 cy:dark:focus-visible:ring-destructive/40 cy:dark:bg-destructive/60",
        outline: "cy:border cy:bg-background cy:shadow-xs cy:hover:bg-accent cy:hover:text-accent-foreground cy:dark:bg-input/30 cy:dark:border-input cy:dark:hover:bg-input/50",
        secondary: "cy:bg-secondary cy:text-secondary-foreground cy:shadow-xs cy:hover:bg-secondary/80",
        ghost: "cy:hover:bg-accent cy:hover:text-accent-foreground cy:dark:hover:bg-accent/50",
        link: "cy:text-primary cy:underline-offset-4 cy:hover:underline"
      },
      size: {
        default: "cy:h-9 cy:px-4 cy:py-2 cy:has-[>svg]:px-3",
        sm: "cy:h-8 cy:rounded-md cy:gap-1.5 cy:px-3 cy:has-[>svg]:px-2.5",
        lg: "cy:h-10 cy:rounded-md cy:px-6 cy:has-[>svg]:px-4",
        icon: "cy:size-9"
      }
    },
    defaultVariants: {
      variant: "default",
      size: "default"
    }
  }
);
function Button({
  className,
  variant,
  size: size2,
  asChild = false,
  ...props
}) {
  const Comp = asChild ? Slot$3 : "button";
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Comp,
    {
      "data-slot": "button",
      className: cn$1(buttonVariants({ variant, size: size2, className })),
      ...props
    }
  );
}
var sprintf = {};
var hasRequiredSprintf;
function requireSprintf() {
  if (hasRequiredSprintf) return sprintf;
  hasRequiredSprintf = 1;
  (function(exports) {
    !function() {
      var re = {
        not_type: /[^T]/,
        not_primitive: /[^v]/,
        number: /[diefg]/,
        numeric_arg: /[bcdiefguxX]/,
        json: /[j]/,
        text: /^[^\x25]+/,
        modulo: /^\x25{2}/,
        placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,
        key: /^([a-z_][a-z_\d]*)/i,
        key_access: /^\.([a-z_][a-z_\d]*)/i,
        index_access: /^\[(\d+)\]/,
        sign: /^[+-]/
      };
      function sprintf2(key) {
        return sprintf_format(sprintf_parse(key), arguments);
      }
      function vsprintf(fmt, argv) {
        return sprintf2.apply(null, [fmt].concat(argv || []));
      }
      function sprintf_format(parse_tree, argv) {
        var cursor = 1, tree_length = parse_tree.length, arg, output = "", i, k2, ph, pad, pad_character, pad_length, is_positive, sign;
        for (i = 0; i < tree_length; i++) {
          if (typeof parse_tree[i] === "string") {
            output += parse_tree[i];
          } else if (typeof parse_tree[i] === "object") {
            ph = parse_tree[i];
            if (ph.keys) {
              arg = argv[cursor];
              for (k2 = 0; k2 < ph.keys.length; k2++) {
                if (arg == void 0) {
                  throw new Error(sprintf2('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k2], ph.keys[k2 - 1]));
                }
                arg = arg[ph.keys[k2]];
              }
            } else if (ph.param_no) {
              arg = argv[ph.param_no];
            } else {
              arg = argv[cursor++];
            }
            if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {
              arg = arg();
            }
            if (re.numeric_arg.test(ph.type) && (typeof arg !== "number" && isNaN(arg))) {
              throw new TypeError(sprintf2("[sprintf] expecting number but found %T", arg));
            }
            if (re.number.test(ph.type)) {
              is_positive = arg >= 0;
            }
            switch (ph.type) {
              case "b":
                arg = parseInt(arg, 10).toString(2);
                break;
              case "c":
                arg = String.fromCharCode(parseInt(arg, 10));
                break;
              case "d":
              case "i":
                arg = parseInt(arg, 10);
                break;
              case "j":
                arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0);
                break;
              case "e":
                arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential();
                break;
              case "f":
                arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg);
                break;
              case "g":
                arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg);
                break;
              case "o":
                arg = (parseInt(arg, 10) >>> 0).toString(8);
                break;
              case "s":
                arg = String(arg);
                arg = ph.precision ? arg.substring(0, ph.precision) : arg;
                break;
              case "t":
                arg = String(!!arg);
                arg = ph.precision ? arg.substring(0, ph.precision) : arg;
                break;
              case "T":
                arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase();
                arg = ph.precision ? arg.substring(0, ph.precision) : arg;
                break;
              case "u":
                arg = parseInt(arg, 10) >>> 0;
                break;
              case "v":
                arg = arg.valueOf();
                arg = ph.precision ? arg.substring(0, ph.precision) : arg;
                break;
              case "x":
                arg = (parseInt(arg, 10) >>> 0).toString(16);
                break;
              case "X":
                arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
                break;
            }
            if (re.json.test(ph.type)) {
              output += arg;
            } else {
              if (re.number.test(ph.type) && (!is_positive || ph.sign)) {
                sign = is_positive ? "+" : "-";
                arg = arg.toString().replace(re.sign, "");
              } else {
                sign = "";
              }
              pad_character = ph.pad_char ? ph.pad_char === "0" ? "0" : ph.pad_char.charAt(1) : " ";
              pad_length = ph.width - (sign + arg).length;
              pad = ph.width ? pad_length > 0 ? pad_character.repeat(pad_length) : "" : "";
              output += ph.align ? sign + arg + pad : pad_character === "0" ? sign + pad + arg : pad + sign + arg;
            }
          }
        }
        return output;
      }
      var sprintf_cache = /* @__PURE__ */ Object.create(null);
      function sprintf_parse(fmt) {
        if (sprintf_cache[fmt]) {
          return sprintf_cache[fmt];
        }
        var _fmt = fmt, match, parse_tree = [], arg_names = 0;
        while (_fmt) {
          if ((match = re.text.exec(_fmt)) !== null) {
            parse_tree.push(match[0]);
          } else if ((match = re.modulo.exec(_fmt)) !== null) {
            parse_tree.push("%");
          } else if ((match = re.placeholder.exec(_fmt)) !== null) {
            if (match[2]) {
              arg_names |= 1;
              var field_list = [], replacement_field = match[2], field_match = [];
              if ((field_match = re.key.exec(replacement_field)) !== null) {
                field_list.push(field_match[1]);
                while ((replacement_field = replacement_field.substring(field_match[0].length)) !== "") {
                  if ((field_match = re.key_access.exec(replacement_field)) !== null) {
                    field_list.push(field_match[1]);
                  } else if ((field_match = re.index_access.exec(replacement_field)) !== null) {
                    field_list.push(field_match[1]);
                  } else {
                    throw new SyntaxError("[sprintf] failed to parse named argument key");
                  }
                }
              } else {
                throw new SyntaxError("[sprintf] failed to parse named argument key");
              }
              match[2] = field_list;
            } else {
              arg_names |= 2;
            }
            if (arg_names === 3) {
              throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");
            }
            parse_tree.push(
              {
                placeholder: match[0],
                param_no: match[1],
                keys: match[2],
                sign: match[3],
                pad_char: match[4],
                align: match[5],
                width: match[6],
                precision: match[7],
                type: match[8]
              }
            );
          } else {
            throw new SyntaxError("[sprintf] unexpected placeholder");
          }
          _fmt = _fmt.substring(match[0].length);
        }
        return sprintf_cache[fmt] = parse_tree;
      }
      {
        exports["sprintf"] = sprintf2;
        exports["vsprintf"] = vsprintf;
      }
      if (typeof window !== "undefined") {
        window["sprintf"] = sprintf2;
        window["vsprintf"] = vsprintf;
      }
    }();
  })(sprintf);
  return sprintf;
}
requireSprintf();
var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;
PRECEDENCE = {
  "(": 9,
  "!": 8,
  "*": 7,
  "/": 7,
  "%": 7,
  "+": 6,
  "-": 6,
  "<": 5,
  "<=": 5,
  ">": 5,
  ">=": 5,
  "==": 4,
  "!=": 4,
  "&&": 3,
  "||": 2,
  "?": 1,
  "?:": 1
};
OPENERS = ["(", "?"];
TERMINATORS = {
  ")": ["("],
  ":": ["?", "?:"]
};
PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;
function postfix(expression) {
  var terms = [], stack = [], match, operator, term, element;
  while (match = expression.match(PATTERN)) {
    operator = match[0];
    term = expression.substr(0, match.index).trim();
    if (term) {
      terms.push(term);
    }
    while (element = stack.pop()) {
      if (TERMINATORS[operator]) {
        if (TERMINATORS[operator][0] === element) {
          operator = TERMINATORS[operator][1] || operator;
          break;
        }
      } else if (OPENERS.indexOf(element) >= 0 || PRECEDENCE[element] < PRECEDENCE[operator]) {
        stack.push(element);
        break;
      }
      terms.push(element);
    }
    if (!TERMINATORS[operator]) {
      stack.push(operator);
    }
    expression = expression.substr(match.index + operator.length);
  }
  expression = expression.trim();
  if (expression) {
    terms.push(expression);
  }
  return terms.concat(stack.reverse());
}
var OPERATORS = {
  "!": function(a) {
    return !a;
  },
  "*": function(a, b) {
    return a * b;
  },
  "/": function(a, b) {
    return a / b;
  },
  "%": function(a, b) {
    return a % b;
  },
  "+": function(a, b) {
    return a + b;
  },
  "-": function(a, b) {
    return a - b;
  },
  "<": function(a, b) {
    return a < b;
  },
  "<=": function(a, b) {
    return a <= b;
  },
  ">": function(a, b) {
    return a > b;
  },
  ">=": function(a, b) {
    return a >= b;
  },
  "==": function(a, b) {
    return a === b;
  },
  "!=": function(a, b) {
    return a !== b;
  },
  "&&": function(a, b) {
    return a && b;
  },
  "||": function(a, b) {
    return a || b;
  },
  "?:": function(a, b, c) {
    if (a) {
      throw b;
    }
    return c;
  }
};
function evaluate$1(postfix2, variables) {
  var stack = [], i, j, args, getOperatorResult, term, value;
  for (i = 0; i < postfix2.length; i++) {
    term = postfix2[i];
    getOperatorResult = OPERATORS[term];
    if (getOperatorResult) {
      j = getOperatorResult.length;
      args = Array(j);
      while (j--) {
        args[j] = stack.pop();
      }
      try {
        value = getOperatorResult.apply(null, args);
      } catch (earlyReturn) {
        return earlyReturn;
      }
    } else if (variables.hasOwnProperty(term)) {
      value = variables[term];
    } else {
      value = +term;
    }
    stack.push(value);
  }
  return stack[0];
}
function compile(expression) {
  var terms = postfix(expression);
  return function(variables) {
    return evaluate$1(terms, variables);
  };
}
function pluralForms(expression) {
  var evaluate2 = compile(expression);
  return function(n) {
    return +evaluate2({ n });
  };
}
var DEFAULT_OPTIONS$1 = {
  contextDelimiter: "",
  onMissingKey: null
};
function getPluralExpression(pf) {
  var parts, i, part;
  parts = pf.split(";");
  for (i = 0; i < parts.length; i++) {
    part = parts[i].trim();
    if (part.indexOf("plural=") === 0) {
      return part.substr(7);
    }
  }
}
function Tannin(data, options) {
  var key;
  this.data = data;
  this.pluralForms = {};
  this.options = {};
  for (key in DEFAULT_OPTIONS$1) {
    this.options[key] = options !== void 0 && key in options ? options[key] : DEFAULT_OPTIONS$1[key];
  }
}
Tannin.prototype.getPluralForm = function(domain, n) {
  var getPluralForm = this.pluralForms[domain], config, plural, pf;
  if (!getPluralForm) {
    config = this.data[domain][""];
    pf = config["Plural-Forms"] || config["plural-forms"] || // Ignore reason: As known, there's no way to document the empty
    // string property on a key to guarantee this as metadata.
    // @ts-ignore
    config.plural_forms;
    if (typeof pf !== "function") {
      plural = getPluralExpression(
        config["Plural-Forms"] || config["plural-forms"] || // Ignore reason: As known, there's no way to document the empty
        // string property on a key to guarantee this as metadata.
        // @ts-ignore
        config.plural_forms
      );
      pf = pluralForms(plural);
    }
    getPluralForm = this.pluralForms[domain] = pf;
  }
  return getPluralForm(n);
};
Tannin.prototype.dcnpgettext = function(domain, context, singular, plural, n) {
  var index2, key, entry;
  if (n === void 0) {
    index2 = 0;
  } else {
    index2 = this.getPluralForm(domain, n);
  }
  key = singular;
  if (context) {
    key = context + this.options.contextDelimiter + singular;
  }
  entry = this.data[domain][key];
  if (entry && entry[index2]) {
    return entry[index2];
  }
  if (this.options.onMissingKey) {
    this.options.onMissingKey(singular, domain);
  }
  return index2 === 0 ? singular : plural;
};
const DEFAULT_LOCALE_DATA = {
  "": {
    /** @param {number} n */
    plural_forms(n) {
      return n === 1 ? 0 : 1;
    }
  }
};
const I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/;
const createI18n = (initialData, initialDomain, hooks) => {
  const tannin = new Tannin({});
  const listeners = /* @__PURE__ */ new Set();
  const notifyListeners = () => {
    listeners.forEach((listener) => listener());
  };
  const subscribe2 = (callback) => {
    listeners.add(callback);
    return () => listeners.delete(callback);
  };
  const getLocaleData = (domain = "default") => tannin.data[domain];
  const doSetLocaleData = (data, domain = "default") => {
    var _a2;
    tannin.data[domain] = {
      ...tannin.data[domain],
      ...data
    };
    tannin.data[domain][""] = {
      ...DEFAULT_LOCALE_DATA[""],
      ...(_a2 = tannin.data[domain]) == null ? void 0 : _a2[""]
    };
    delete tannin.pluralForms[domain];
  };
  const setLocaleData = (data, domain) => {
    doSetLocaleData(data, domain);
    notifyListeners();
  };
  const addLocaleData = (data, domain = "default") => {
    var _a2;
    tannin.data[domain] = {
      ...tannin.data[domain],
      ...data,
      // Populate default domain configuration (supported locale date which omits
      // a plural forms expression).
      "": {
        ...DEFAULT_LOCALE_DATA[""],
        ...(_a2 = tannin.data[domain]) == null ? void 0 : _a2[""],
        ...data == null ? void 0 : data[""]
      }
    };
    delete tannin.pluralForms[domain];
    notifyListeners();
  };
  const resetLocaleData = (data, domain) => {
    tannin.data = {};
    tannin.pluralForms = {};
    setLocaleData(data, domain);
  };
  const dcnpgettext = (domain = "default", context, single, plural, number) => {
    if (!tannin.data[domain]) {
      doSetLocaleData(void 0, domain);
    }
    return tannin.dcnpgettext(domain, context, single, plural, number);
  };
  const getFilterDomain = (domain = "default") => domain;
  const __2 = (text, domain) => {
    let translation = dcnpgettext(domain, void 0, text);
    if (!hooks) {
      return translation;
    }
    translation = /** @type {string} */
    /** @type {*} */
    hooks.applyFilters("i18n.gettext", translation, text, domain);
    return (
      /** @type {string} */
      /** @type {*} */
      hooks.applyFilters("i18n.gettext_" + getFilterDomain(domain), translation, text, domain)
    );
  };
  const _x = (text, context, domain) => {
    let translation = dcnpgettext(domain, context, text);
    if (!hooks) {
      return translation;
    }
    translation = /** @type {string} */
    /** @type {*} */
    hooks.applyFilters("i18n.gettext_with_context", translation, text, context, domain);
    return (
      /** @type {string} */
      /** @type {*} */
      hooks.applyFilters("i18n.gettext_with_context_" + getFilterDomain(domain), translation, text, context, domain)
    );
  };
  const _n = (single, plural, number, domain) => {
    let translation = dcnpgettext(domain, void 0, single, plural, number);
    if (!hooks) {
      return translation;
    }
    translation = /** @type {string} */
    /** @type {*} */
    hooks.applyFilters("i18n.ngettext", translation, single, plural, number, domain);
    return (
      /** @type {string} */
      /** @type {*} */
      hooks.applyFilters("i18n.ngettext_" + getFilterDomain(domain), translation, single, plural, number, domain)
    );
  };
  const _nx = (single, plural, number, context, domain) => {
    let translation = dcnpgettext(domain, context, single, plural, number);
    if (!hooks) {
      return translation;
    }
    translation = /** @type {string} */
    /** @type {*} */
    hooks.applyFilters("i18n.ngettext_with_context", translation, single, plural, number, context, domain);
    return (
      /** @type {string} */
      /** @type {*} */
      hooks.applyFilters("i18n.ngettext_with_context_" + getFilterDomain(domain), translation, single, plural, number, context, domain)
    );
  };
  const isRTL2 = () => {
    return "rtl" === _x("ltr", "text direction");
  };
  const hasTranslation = (single, context, domain) => {
    var _a2, _b2;
    const key = context ? context + "" + single : single;
    let result = !!((_b2 = (_a2 = tannin.data) == null ? void 0 : _a2[domain !== null && domain !== void 0 ? domain : "default"]) == null ? void 0 : _b2[key]);
    if (hooks) {
      result = /** @type { boolean } */
      /** @type {*} */
      hooks.applyFilters("i18n.has_translation", result, single, context, domain);
      result = /** @type { boolean } */
      /** @type {*} */
      hooks.applyFilters("i18n.has_translation_" + getFilterDomain(domain), result, single, context, domain);
    }
    return result;
  };
  if (hooks) {
    const onHookAddedOrRemoved = (hookName) => {
      if (I18N_HOOK_REGEXP.test(hookName)) {
        notifyListeners();
      }
    };
    hooks.addAction("hookAdded", "core/i18n", onHookAddedOrRemoved);
    hooks.addAction("hookRemoved", "core/i18n", onHookAddedOrRemoved);
  }
  return {
    getLocaleData,
    setLocaleData,
    addLocaleData,
    resetLocaleData,
    subscribe: subscribe2,
    __: __2,
    _x,
    _n,
    _nx,
    isRTL: isRTL2,
    hasTranslation
  };
};
function validateNamespace(namespace) {
  if ("string" !== typeof namespace || "" === namespace) {
    console.error("The namespace must be a non-empty string.");
    return false;
  }
  if (!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(namespace)) {
    console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.");
    return false;
  }
  return true;
}
function validateHookName(hookName) {
  if ("string" !== typeof hookName || "" === hookName) {
    console.error("The hook name must be a non-empty string.");
    return false;
  }
  if (/^__/.test(hookName)) {
    console.error("The hook name cannot begin with `__`.");
    return false;
  }
  if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {
    console.error("The hook name can only contain numbers, letters, dashes, periods and underscores.");
    return false;
  }
  return true;
}
function createAddHook(hooks, storeKey) {
  return function addHook(hookName, namespace, callback, priority = 10) {
    const hooksStore = hooks[storeKey];
    if (!validateHookName(hookName)) {
      return;
    }
    if (!validateNamespace(namespace)) {
      return;
    }
    if ("function" !== typeof callback) {
      console.error("The hook callback must be a function.");
      return;
    }
    if ("number" !== typeof priority) {
      console.error("If specified, the hook priority must be a number.");
      return;
    }
    const handler = {
      callback,
      priority,
      namespace
    };
    if (hooksStore[hookName]) {
      const handlers = hooksStore[hookName].handlers;
      let i;
      for (i = handlers.length; i > 0; i--) {
        if (priority >= handlers[i - 1].priority) {
          break;
        }
      }
      if (i === handlers.length) {
        handlers[i] = handler;
      } else {
        handlers.splice(i, 0, handler);
      }
      hooksStore.__current.forEach((hookInfo) => {
        if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {
          hookInfo.currentIndex++;
        }
      });
    } else {
      hooksStore[hookName] = {
        handlers: [handler],
        runs: 0
      };
    }
    if (hookName !== "hookAdded") {
      hooks.doAction("hookAdded", hookName, namespace, callback, priority);
    }
  };
}
function createRemoveHook(hooks, storeKey, removeAll = false) {
  return function removeHook(hookName, namespace) {
    const hooksStore = hooks[storeKey];
    if (!validateHookName(hookName)) {
      return;
    }
    if (!removeAll && !validateNamespace(namespace)) {
      return;
    }
    if (!hooksStore[hookName]) {
      return 0;
    }
    let handlersRemoved = 0;
    if (removeAll) {
      handlersRemoved = hooksStore[hookName].handlers.length;
      hooksStore[hookName] = {
        runs: hooksStore[hookName].runs,
        handlers: []
      };
    } else {
      const handlers = hooksStore[hookName].handlers;
      for (let i = handlers.length - 1; i >= 0; i--) {
        if (handlers[i].namespace === namespace) {
          handlers.splice(i, 1);
          handlersRemoved++;
          hooksStore.__current.forEach((hookInfo) => {
            if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {
              hookInfo.currentIndex--;
            }
          });
        }
      }
    }
    if (hookName !== "hookRemoved") {
      hooks.doAction("hookRemoved", hookName, namespace);
    }
    return handlersRemoved;
  };
}
function createHasHook(hooks, storeKey) {
  return function hasHook(hookName, namespace) {
    const hooksStore = hooks[storeKey];
    if ("undefined" !== typeof namespace) {
      return hookName in hooksStore && hooksStore[hookName].handlers.some((hook) => hook.namespace === namespace);
    }
    return hookName in hooksStore;
  };
}
function createRunHook(hooks, storeKey, returnFirstArg, async) {
  return function runHook(hookName, ...args) {
    const hooksStore = hooks[storeKey];
    if (!hooksStore[hookName]) {
      hooksStore[hookName] = {
        handlers: [],
        runs: 0
      };
    }
    hooksStore[hookName].runs++;
    const handlers = hooksStore[hookName].handlers;
    if (!handlers || !handlers.length) {
      return returnFirstArg ? args[0] : void 0;
    }
    const hookInfo = {
      name: hookName,
      currentIndex: 0
    };
    async function asyncRunner() {
      try {
        hooksStore.__current.add(hookInfo);
        let result = returnFirstArg ? args[0] : void 0;
        while (hookInfo.currentIndex < handlers.length) {
          const handler = handlers[hookInfo.currentIndex];
          result = await handler.callback.apply(null, args);
          if (returnFirstArg) {
            args[0] = result;
          }
          hookInfo.currentIndex++;
        }
        return returnFirstArg ? result : void 0;
      } finally {
        hooksStore.__current.delete(hookInfo);
      }
    }
    function syncRunner() {
      try {
        hooksStore.__current.add(hookInfo);
        let result = returnFirstArg ? args[0] : void 0;
        while (hookInfo.currentIndex < handlers.length) {
          const handler = handlers[hookInfo.currentIndex];
          result = handler.callback.apply(null, args);
          if (returnFirstArg) {
            args[0] = result;
          }
          hookInfo.currentIndex++;
        }
        return returnFirstArg ? result : void 0;
      } finally {
        hooksStore.__current.delete(hookInfo);
      }
    }
    return (async ? asyncRunner : syncRunner)();
  };
}
function createCurrentHook(hooks, storeKey) {
  return function currentHook() {
    var _a2;
    var _currentArray$at$name;
    const hooksStore = hooks[storeKey];
    const currentArray = Array.from(hooksStore.__current);
    return (_currentArray$at$name = (_a2 = currentArray.at(-1)) == null ? void 0 : _a2.name) !== null && _currentArray$at$name !== void 0 ? _currentArray$at$name : null;
  };
}
function createDoingHook(hooks, storeKey) {
  return function doingHook(hookName) {
    const hooksStore = hooks[storeKey];
    if ("undefined" === typeof hookName) {
      return hooksStore.__current.size > 0;
    }
    return Array.from(hooksStore.__current).some((hook) => hook.name === hookName);
  };
}
function createDidHook(hooks, storeKey) {
  return function didHook(hookName) {
    const hooksStore = hooks[storeKey];
    if (!validateHookName(hookName)) {
      return;
    }
    return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;
  };
}
class _Hooks {
  constructor() {
    this.actions = /* @__PURE__ */ Object.create(null);
    this.actions.__current = /* @__PURE__ */ new Set();
    this.filters = /* @__PURE__ */ Object.create(null);
    this.filters.__current = /* @__PURE__ */ new Set();
    this.addAction = createAddHook(this, "actions");
    this.addFilter = createAddHook(this, "filters");
    this.removeAction = createRemoveHook(this, "actions");
    this.removeFilter = createRemoveHook(this, "filters");
    this.hasAction = createHasHook(this, "actions");
    this.hasFilter = createHasHook(this, "filters");
    this.removeAllActions = createRemoveHook(this, "actions", true);
    this.removeAllFilters = createRemoveHook(this, "filters", true);
    this.doAction = createRunHook(this, "actions", false, false);
    this.doActionAsync = createRunHook(this, "actions", false, true);
    this.applyFilters = createRunHook(this, "filters", true, false);
    this.applyFiltersAsync = createRunHook(this, "filters", true, true);
    this.currentAction = createCurrentHook(this, "actions");
    this.currentFilter = createCurrentHook(this, "filters");
    this.doingAction = createDoingHook(this, "actions");
    this.doingFilter = createDoingHook(this, "filters");
    this.didAction = createDidHook(this, "actions");
    this.didFilter = createDidHook(this, "filters");
  }
}
function createHooks() {
  return new _Hooks();
}
const defaultHooks = createHooks();
const {
  addAction,
  addFilter,
  removeAction,
  removeFilter,
  hasAction,
  hasFilter,
  removeAllActions,
  removeAllFilters,
  doAction,
  doActionAsync,
  applyFilters,
  applyFiltersAsync,
  currentAction,
  currentFilter,
  doingAction,
  doingFilter,
  didAction,
  didFilter,
  actions,
  filters
} = defaultHooks;
const i18n = createI18n(void 0, void 0, defaultHooks);
i18n.getLocaleData.bind(i18n);
i18n.setLocaleData.bind(i18n);
i18n.resetLocaleData.bind(i18n);
i18n.subscribe.bind(i18n);
const __ = i18n.__.bind(i18n);
i18n._x.bind(i18n);
i18n._n.bind(i18n);
i18n._nx.bind(i18n);
i18n.isRTL.bind(i18n);
i18n.hasTranslation.bind(i18n);
function createNonceMiddleware(nonce) {
  const middleware = (options, next) => {
    const {
      headers = {}
    } = options;
    for (const headerName in headers) {
      if (headerName.toLowerCase() === "x-wp-nonce" && headers[headerName] === middleware.nonce) {
        return next(options);
      }
    }
    return next({
      ...options,
      headers: {
        ...headers,
        "X-WP-Nonce": middleware.nonce
      }
    });
  };
  middleware.nonce = nonce;
  return middleware;
}
const namespaceAndEndpointMiddleware = (options, next) => {
  let path = options.path;
  let namespaceTrimmed, endpointTrimmed;
  if (typeof options.namespace === "string" && typeof options.endpoint === "string") {
    namespaceTrimmed = options.namespace.replace(/^\/|\/$/g, "");
    endpointTrimmed = options.endpoint.replace(/^\//, "");
    if (endpointTrimmed) {
      path = namespaceTrimmed + "/" + endpointTrimmed;
    } else {
      path = namespaceTrimmed;
    }
  }
  delete options.namespace;
  delete options.endpoint;
  return next({
    ...options,
    path
  });
};
const createRootURLMiddleware = (rootURL) => (options, next) => {
  return namespaceAndEndpointMiddleware(options, (optionsWithPath) => {
    let url = optionsWithPath.url;
    let path = optionsWithPath.path;
    let apiRoot;
    if (typeof path === "string") {
      apiRoot = rootURL;
      if (-1 !== rootURL.indexOf("?")) {
        path = path.replace("?", "&");
      }
      path = path.replace(/^\//, "");
      if ("string" === typeof apiRoot && -1 !== apiRoot.indexOf("?")) {
        path = path.replace("?", "&");
      }
      url = apiRoot + path;
    }
    return next({
      ...optionsWithPath,
      url
    });
  });
};
function getQueryString(url) {
  let query;
  try {
    query = new URL(url, "http://example.com").search.substring(1);
  } catch (error) {
  }
  if (query) {
    return query;
  }
}
function buildQueryString(data) {
  let string = "";
  const stack = Object.entries(data);
  let pair;
  while (pair = stack.shift()) {
    let [key, value] = pair;
    const hasNestedData = Array.isArray(value) || value && value.constructor === Object;
    if (hasNestedData) {
      const valuePairs = Object.entries(value).reverse();
      for (const [member, memberValue] of valuePairs) {
        stack.unshift([`${key}[${member}]`, memberValue]);
      }
    } else if (value !== void 0) {
      if (value === null) {
        value = "";
      }
      string += "&" + [key, value].map(encodeURIComponent).join("=");
    }
  }
  return string.substr(1);
}
function getFragment(url) {
  const matches = /^\S+?(#[^\s\?]*)/.exec(url);
  if (matches) {
    return matches[1];
  }
}
function safeDecodeURIComponent(uriComponent) {
  try {
    return decodeURIComponent(uriComponent);
  } catch (uriComponentError) {
    return uriComponent;
  }
}
function setPath(object, path, value) {
  const length = path.length;
  const lastIndex = length - 1;
  for (let i = 0; i < length; i++) {
    let key = path[i];
    if (!key && Array.isArray(object)) {
      key = object.length.toString();
    }
    key = ["__proto__", "constructor", "prototype"].includes(key) ? key.toUpperCase() : key;
    const isNextKeyArrayIndex = !isNaN(Number(path[i + 1]));
    object[key] = i === lastIndex ? (
      // If at end of path, assign the intended value.
      value
    ) : (
      // Otherwise, advance to the next object in the path, creating
      // it if it does not yet exist.
      object[key] || (isNextKeyArrayIndex ? [] : {})
    );
    if (Array.isArray(object[key]) && !isNextKeyArrayIndex) {
      object[key] = {
        ...object[key]
      };
    }
    object = object[key];
  }
}
function getQueryArgs(url) {
  return (getQueryString(url) || "").replace(/\+/g, "%20").split("&").reduce((accumulator, keyValue) => {
    const [key, value = ""] = keyValue.split("=").filter(Boolean).map(safeDecodeURIComponent);
    if (key) {
      const segments = key.replace(/\]/g, "").split("[");
      setPath(accumulator, segments, value);
    }
    return accumulator;
  }, /* @__PURE__ */ Object.create(null));
}
function addQueryArgs(url = "", args) {
  if (!args || !Object.keys(args).length) {
    return url;
  }
  const fragment = getFragment(url) || "";
  let baseUrl = url.replace(fragment, "");
  const queryStringIndex = url.indexOf("?");
  if (queryStringIndex !== -1) {
    args = Object.assign(getQueryArgs(url), args);
    baseUrl = baseUrl.substr(0, queryStringIndex);
  }
  return baseUrl + "?" + buildQueryString(args) + fragment;
}
function getQueryArg(url, arg) {
  return getQueryArgs(url)[arg];
}
function hasQueryArg(url, arg) {
  return getQueryArg(url, arg) !== void 0;
}
function removeQueryArgs(url, ...args) {
  const fragment = url.replace(/^[^#]*/, "");
  url = url.replace(/#.*/, "");
  const queryStringIndex = url.indexOf("?");
  if (queryStringIndex === -1) {
    return url + fragment;
  }
  const query = getQueryArgs(url);
  const baseURL = url.substr(0, queryStringIndex);
  args.forEach((arg) => delete query[arg]);
  const queryString = buildQueryString(query);
  const updatedUrl = queryString ? baseURL + "?" + queryString : baseURL;
  return updatedUrl + fragment;
}
function normalizePath(path) {
  const split = path.split("?");
  const query = split[1];
  const base = split[0];
  if (!query) {
    return base;
  }
  return base + "?" + query.split("&").map((entry) => entry.split("=")).map((pair) => pair.map(decodeURIComponent)).sort((a, b) => a[0].localeCompare(b[0])).map((pair) => pair.map(encodeURIComponent)).map((pair) => pair.join("=")).join("&");
}
function createPreloadingMiddleware(preloadedData) {
  const cache = Object.fromEntries(Object.entries(preloadedData).map(([path, data]) => [normalizePath(path), data]));
  return (options, next) => {
    const {
      parse: parse2 = true
    } = options;
    let rawPath = options.path;
    if (!rawPath && options.url) {
      const {
        rest_route: pathFromQuery,
        ...queryArgs
      } = getQueryArgs(options.url);
      if (typeof pathFromQuery === "string") {
        rawPath = addQueryArgs(pathFromQuery, queryArgs);
      }
    }
    if (typeof rawPath !== "string") {
      return next(options);
    }
    const method = options.method || "GET";
    const path = normalizePath(rawPath);
    if ("GET" === method && cache[path]) {
      const cacheData = cache[path];
      delete cache[path];
      return prepareResponse(cacheData, !!parse2);
    } else if ("OPTIONS" === method && cache[method] && cache[method][path]) {
      const cacheData = cache[method][path];
      delete cache[method][path];
      return prepareResponse(cacheData, !!parse2);
    }
    return next(options);
  };
}
function prepareResponse(responseData, parse2) {
  if (parse2) {
    return Promise.resolve(responseData.body);
  }
  try {
    return Promise.resolve(new window.Response(JSON.stringify(responseData.body), {
      status: 200,
      statusText: "OK",
      headers: responseData.headers
    }));
  } catch {
    Object.entries(responseData.headers).forEach(([key, value]) => {
      if (key.toLowerCase() === "link") {
        responseData.headers[key] = value.replace(/<([^>]+)>/, (_, url) => `<${encodeURI(url)}>`);
      }
    });
    return Promise.resolve(parse2 ? responseData.body : new window.Response(JSON.stringify(responseData.body), {
      status: 200,
      statusText: "OK",
      headers: responseData.headers
    }));
  }
}
const modifyQuery = ({
  path,
  url,
  ...options
}, queryArgs) => ({
  ...options,
  url: url && addQueryArgs(url, queryArgs),
  path: path && addQueryArgs(path, queryArgs)
});
const parseResponse$1 = (response) => response.json ? response.json() : Promise.reject(response);
const parseLinkHeader = (linkHeader) => {
  if (!linkHeader) {
    return {};
  }
  const match = linkHeader.match(/<([^>]+)>; rel="next"/);
  return match ? {
    next: match[1]
  } : {};
};
const getNextPageUrl = (response) => {
  const {
    next
  } = parseLinkHeader(response.headers.get("link"));
  return next;
};
const requestContainsUnboundedQuery = (options) => {
  const pathIsUnbounded = !!options.path && options.path.indexOf("per_page=-1") !== -1;
  const urlIsUnbounded = !!options.url && options.url.indexOf("per_page=-1") !== -1;
  return pathIsUnbounded || urlIsUnbounded;
};
const fetchAllMiddleware = async (options, next) => {
  if (options.parse === false) {
    return next(options);
  }
  if (!requestContainsUnboundedQuery(options)) {
    return next(options);
  }
  const response = await apiFetch({
    ...modifyQuery(options, {
      per_page: 100
    }),
    // Ensure headers are returned for page 1.
    parse: false
  });
  const results = await parseResponse$1(response);
  if (!Array.isArray(results)) {
    return results;
  }
  let nextPage = getNextPageUrl(response);
  if (!nextPage) {
    return results;
  }
  let mergedResults = (
    /** @type {any[]} */
    [].concat(results)
  );
  while (nextPage) {
    const nextResponse = await apiFetch({
      ...options,
      // Ensure the URL for the next page is used instead of any provided path.
      path: void 0,
      url: nextPage,
      // Ensure we still get headers so we can identify the next page.
      parse: false
    });
    const nextResults = await parseResponse$1(nextResponse);
    mergedResults = mergedResults.concat(nextResults);
    nextPage = getNextPageUrl(nextResponse);
  }
  return mergedResults;
};
const OVERRIDE_METHODS = /* @__PURE__ */ new Set(["PATCH", "PUT", "DELETE"]);
const DEFAULT_METHOD = "GET";
const httpV1Middleware = (options, next) => {
  const {
    method = DEFAULT_METHOD
  } = options;
  if (OVERRIDE_METHODS.has(method.toUpperCase())) {
    options = {
      ...options,
      headers: {
        ...options.headers,
        "X-HTTP-Method-Override": method,
        "Content-Type": "application/json"
      },
      method: "POST"
    };
  }
  return next(options);
};
const userLocaleMiddleware = (options, next) => {
  if (typeof options.url === "string" && !hasQueryArg(options.url, "_locale")) {
    options.url = addQueryArgs(options.url, {
      _locale: "user"
    });
  }
  if (typeof options.path === "string" && !hasQueryArg(options.path, "_locale")) {
    options.path = addQueryArgs(options.path, {
      _locale: "user"
    });
  }
  return next(options);
};
const parseResponse = (response, shouldParseResponse = true) => {
  if (shouldParseResponse) {
    if (response.status === 204) {
      return null;
    }
    return response.json ? response.json() : Promise.reject(response);
  }
  return response;
};
const parseJsonAndNormalizeError = (response) => {
  const invalidJsonError = {
    code: "invalid_json",
    message: __("The response is not a valid JSON response.")
  };
  if (!response || !response.json) {
    throw invalidJsonError;
  }
  return response.json().catch(() => {
    throw invalidJsonError;
  });
};
const parseResponseAndNormalizeError = (response, shouldParseResponse = true) => {
  return Promise.resolve(parseResponse(response, shouldParseResponse)).catch((res) => parseAndThrowError(res, shouldParseResponse));
};
function parseAndThrowError(response, shouldParseResponse = true) {
  if (!shouldParseResponse) {
    throw response;
  }
  return parseJsonAndNormalizeError(response).then((error) => {
    const unknownError = {
      code: "unknown_error",
      message: __("An unknown error occurred.")
    };
    throw error || unknownError;
  });
}
function isMediaUploadRequest(options) {
  const isCreateMethod = !!options.method && options.method === "POST";
  const isMediaEndpoint = !!options.path && options.path.indexOf("/wp/v2/media") !== -1 || !!options.url && options.url.indexOf("/wp/v2/media") !== -1;
  return isMediaEndpoint && isCreateMethod;
}
const mediaUploadMiddleware = (options, next) => {
  if (!isMediaUploadRequest(options)) {
    return next(options);
  }
  let retries = 0;
  const maxRetries = 5;
  const postProcess = (attachmentId) => {
    retries++;
    return next({
      path: `/wp/v2/media/${attachmentId}/post-process`,
      method: "POST",
      data: {
        action: "create-image-subsizes"
      },
      parse: false
    }).catch(() => {
      if (retries < maxRetries) {
        return postProcess(attachmentId);
      }
      next({
        path: `/wp/v2/media/${attachmentId}?force=true`,
        method: "DELETE"
      });
      return Promise.reject();
    });
  };
  return next({
    ...options,
    parse: false
  }).catch((response) => {
    if (!response.headers) {
      return Promise.reject(response);
    }
    const attachmentId = response.headers.get("x-wp-upload-attachment-id");
    if (response.status >= 500 && response.status < 600 && attachmentId) {
      return postProcess(attachmentId).catch(() => {
        if (options.parse !== false) {
          return Promise.reject({
            code: "post_process",
            message: __("Media upload failed. If this is a photo or a large image, please scale it down and try again.")
          });
        }
        return Promise.reject(response);
      });
    }
    return parseAndThrowError(response, options.parse);
  }).then((response) => parseResponseAndNormalizeError(response, options.parse));
};
const createThemePreviewMiddleware = (themePath) => (options, next) => {
  if (typeof options.url === "string") {
    const wpThemePreview = getQueryArg(options.url, "wp_theme_preview");
    if (wpThemePreview === void 0) {
      options.url = addQueryArgs(options.url, {
        wp_theme_preview: themePath
      });
    } else if (wpThemePreview === "") {
      options.url = removeQueryArgs(options.url, "wp_theme_preview");
    }
  }
  if (typeof options.path === "string") {
    const wpThemePreview = getQueryArg(options.path, "wp_theme_preview");
    if (wpThemePreview === void 0) {
      options.path = addQueryArgs(options.path, {
        wp_theme_preview: themePath
      });
    } else if (wpThemePreview === "") {
      options.path = removeQueryArgs(options.path, "wp_theme_preview");
    }
  }
  return next(options);
};
const DEFAULT_HEADERS = {
  // The backend uses the Accept header as a condition for considering an
  // incoming request as a REST request.
  //
  // See: https://core.trac.wordpress.org/ticket/44534
  Accept: "application/json, */*;q=0.1"
};
const DEFAULT_OPTIONS = {
  credentials: "include"
};
const middlewares = [userLocaleMiddleware, namespaceAndEndpointMiddleware, httpV1Middleware, fetchAllMiddleware];
function registerMiddleware(middleware) {
  middlewares.unshift(middleware);
}
const checkStatus = (response) => {
  if (response.status >= 200 && response.status < 300) {
    return response;
  }
  throw response;
};
const defaultFetchHandler = (nextOptions) => {
  const {
    url,
    path,
    data,
    parse: parse2 = true,
    ...remainingOptions
  } = nextOptions;
  let {
    body,
    headers
  } = nextOptions;
  headers = {
    ...DEFAULT_HEADERS,
    ...headers
  };
  if (data) {
    body = JSON.stringify(data);
    headers["Content-Type"] = "application/json";
  }
  const responsePromise = window.fetch(
    // Fall back to explicitly passing `window.location` which is the behavior if `undefined` is passed.
    url || path || window.location.href,
    {
      ...DEFAULT_OPTIONS,
      ...remainingOptions,
      body,
      headers
    }
  );
  return responsePromise.then((value) => Promise.resolve(value).then(checkStatus).catch((response) => parseAndThrowError(response, parse2)).then((response) => parseResponseAndNormalizeError(response, parse2)), (err) => {
    if (err && err.name === "AbortError") {
      throw err;
    }
    throw {
      code: "fetch_error",
      message: __("You are probably offline.")
    };
  });
};
let fetchHandler = defaultFetchHandler;
function setFetchHandler(newFetchHandler) {
  fetchHandler = newFetchHandler;
}
function apiFetch(options) {
  const enhancedHandler = middlewares.reduceRight((next, middleware) => {
    return (workingOptions) => middleware(workingOptions, next);
  }, fetchHandler);
  return enhancedHandler(options).catch((error) => {
    if (error.code !== "rest_cookie_invalid_nonce") {
      return Promise.reject(error);
    }
    return window.fetch(apiFetch.nonceEndpoint).then(checkStatus).then((data) => data.text()).then((text) => {
      apiFetch.nonceMiddleware.nonce = text;
      return apiFetch(options);
    });
  });
}
apiFetch.use = registerMiddleware;
apiFetch.setFetchHandler = setFetchHandler;
apiFetch.createNonceMiddleware = createNonceMiddleware;
apiFetch.createPreloadingMiddleware = createPreloadingMiddleware;
apiFetch.createRootURLMiddleware = createRootURLMiddleware;
apiFetch.fetchAllMiddleware = fetchAllMiddleware;
apiFetch.mediaUploadMiddleware = mediaUploadMiddleware;
apiFetch.createThemePreviewMiddleware = createThemePreviewMiddleware;
apiFetch.use(apiFetch.createNonceMiddleware(((_b = (_a = window == null ? void 0 : window.wyA11yGlobals) == null ? void 0 : _a.api) == null ? void 0 : _b.nonce) || ""));
apiFetch.use(
  apiFetch.createRootURLMiddleware(((_d = (_c = window == null ? void 0 : window.wyA11yGlobals) == null ? void 0 : _c.api) == null ? void 0 : _d.endpoint) || "")
);
const toStringParams = (params) => Object.entries(params).map(([key, value]) => [key, String(value)]);
const api = {
  post: async (options) => {
    const opts = { ...options, method: "POST" };
    if (opts.params) {
      const urlParams = new URLSearchParams(toStringParams(opts.params));
      opts.path = `${opts.path}?${urlParams}`;
    }
    try {
      return await apiFetch(opts);
    } catch (error) {
      return Promise.reject(error);
    }
  },
  get: async (options) => {
    const opts = { ...options, method: "GET" };
    if (opts.params) {
      const urlParams = new URLSearchParams(toStringParams(opts.params));
      opts.path = `${opts.path}?${urlParams}`;
    }
    try {
      return await apiFetch(opts);
    } catch (error) {
      return Promise.reject(error);
    }
  },
  put: async (options) => {
    const opts = { ...options, method: "PUT" };
    if (opts.params) {
      const urlParams = new URLSearchParams(toStringParams(opts.params));
      opts.path = `${opts.path}?${urlParams}`;
    }
    try {
      return await apiFetch(opts);
    } catch (error) {
      return Promise.reject(error);
    }
  },
  delete: async (options) => {
    const opts = { ...options, method: "DELETE" };
    try {
      return await apiFetch(opts);
    } catch (error) {
      return Promise.reject(error);
    }
  }
};
function useBanner(config) {
  const { slug, defaultState, visibilityCheck } = config;
  const [bannerState, setBannerState] = reactExports.useState(defaultState);
  const [isVisible, setIsVisible] = reactExports.useState(false);
  const [isLoading, setIsLoading] = reactExports.useState(true);
  reactExports.useEffect(() => {
    const fetchBannerState = async () => {
      try {
        setIsLoading(true);
        const response = await api.get({
          path: `/${slug}`
        });
        setBannerState(response);
      } catch (error) {
        console.error(`Error fetching ${slug} banner state:`, error);
        setBannerState(defaultState);
      } finally {
        setIsLoading(false);
      }
    };
    fetchBannerState();
  }, [slug]);
  reactExports.useEffect(() => {
    if (isLoading) {
      setIsVisible(false);
      return;
    }
    if (visibilityCheck) {
      setIsVisible(visibilityCheck(bannerState));
    } else {
      setIsVisible(!bannerState.dismissed);
    }
  }, [bannerState, isLoading, visibilityCheck]);
  const updateState = async (newState) => {
    try {
      const updatedState = { ...bannerState, ...newState };
      await api.post({
        path: `/${slug}`,
        data: updatedState
      });
      setBannerState(updatedState);
    } catch (error) {
      console.error(`Error updating ${slug} banner state:`, error);
    }
  };
  const handleDismiss = () => {
    const newState = {
      dismissed: true,
      dismissedAt: Date.now()
    };
    updateState(newState);
    setIsVisible(false);
  };
  return {
    isVisible,
    bannerState,
    isLoading,
    updateState,
    handleDismiss
  };
}
const ReviewBanner = () => {
  const { isVisible, updateState, handleDismiss } = useBanner({
    slug: "review-banner",
    defaultState: {
      dismissed: false,
      dismissedAt: null,
      remindLater: null,
      ratedUs: false,
      activatedAt: null
    },
    visibilityCheck: (state) => {
      if (state.ratedUs) {
        return false;
      }
      if (state.dismissed) {
        return false;
      }
      if (state.remindLater) {
        const sevenDaysInMs = 7 * 24 * 60 * 60 * 1e3;
        const now = Date.now();
        if (now - state.remindLater < sevenDaysInMs) {
          return false;
        }
      }
      if (state.activatedAt) {
        const fiveDaysInMs = 5 * 24 * 60 * 60 * 1e3;
        const now = Date.now();
        if (now - state.activatedAt < fiveDaysInMs) {
          return false;
        }
      } else {
        return false;
      }
      return true;
    }
  });
  const handleRateNow = async () => {
    await updateState({
      ratedUs: true,
      dismissed: true,
      dismissedAt: Date.now()
    });
    window.open(
      "https://wordpress.org/support/plugin/accessibility-plus/reviews/#new-post",
      "_blank"
    );
  };
  const handleRemindLater = async () => {
    await updateState({
      remindLater: Date.now(),
      dismissed: false
    });
  };
  if (!isVisible) {
    return null;
  }
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Card, { className: "cy:relative cy:mb-6 cy:border-gray-200 cy:bg-gray-50 cy:shadow-sm cy:rounded-none", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: " cy:px-6", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "button",
      {
        onClick: handleDismiss,
        className: "cy:absolute cy:top-2 cy:right-4 cy:text-gray-400 cy:hover:text-gray-600 cy:transition-colors cy:flex cy:items-center cy:gap-1 cy:!text-[13px]",
        "aria-label": "Dismiss banner",
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(X$1, { className: "cy:w-4 cy:h-4" }),
          " Dismiss"
        ]
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "cy:text-[13px] cy:text-gray-700 cy:mb-4 cy:leading-relaxed cy:pr-20", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:font-bold cy:text-gray-900 cy:text-[15px]", children: "Enjoying Accessibility Tool Kit?" }),
        " ",
        "Hi there! We hope the",
        " ",
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "a",
          {
            href: "https://wordpress.org/plugins/accessibility-plus/",
            target: "_blank",
            rel: "noopener noreferrer",
            className: "cy:font-bold cy:text-[15px] cy:text-blue-600 cy:hover:underline",
            children: "Accessibility Tool Kit plugin"
          }
        ),
        " ",
        "has helped make your website more inclusive and user-friendly. Your feedback means a lot! It helps us improve and also helps others discover the plugin."
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:gap-3 cy:pt-2", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Button,
          {
            onClick: handleRateNow,
            className: "cy:bg-[#ff9500] cy:hover:bg-[#e6c200] cy:text-gray-900 cy:font-semibold cy:px-6 cy:py-2 cy:rounded-none cy:transition-colors cy:!text-[13px]",
            children: "Rate us now"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Button,
          {
            onClick: handleRemindLater,
            variant: "outline",
            className: "cy:border-gray-300 cy:text-gray-700 cy:hover:bg-gray-100 cy:px-6 cy:py-2 cy:rounded-none cy:transition-colors cy:!text-[13px]",
            children: "Remind me later"
          }
        )
      ] })
    ] })
  ] }) });
};
const WalkthroughIcon = ({ width = 130, height = 130, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    width,
    height,
    viewBox: "0 0 130 130",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    ...props,
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { clipPath: "url(#clip0_1293_2539)", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M113.801 84.1177C102.931 109.525 74.2379 120.438 51.7566 118.577C45.6182 118.069 33.2678 117.047 23.6245 107.927C5.10516 90.4141 7.95729 53.8067 25.6856 32.2543C27.9687 29.4788 43.7715 10.8832 68.3974 11.1321C86.4271 11.3143 99.0819 21.4991 100.621 22.7679C102.565 24.3707 106.852 28.1796 110.716 34.2222C119.795 48.4203 120.593 68.2408 113.801 84.1177Z",
            fill: "url(#paint0_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M42.1814 59.2984C40.8013 54.3103 41.9487 48.2563 42.2264 42.7733C42.3732 39.8742 42.2607 37.0282 41.4615 34.221C40.6669 31.43 38.9611 28.5128 39.8541 25.5302C41.6535 19.5213 47.8698 21.4127 51.7676 25.3068C56.2906 29.8257 58.3407 37.85 60.5839 43.9493C61.9362 47.6262 63.7554 51.3459 64.6917 55.1458C66.2428 61.4407 65.3298 66.0494 62.6325 69.4112C60.0456 72.6357 55.6525 73.7665 51.8271 72.1992C48.3714 70.7833 44.4078 67.3452 42.1814 59.2984Z",
            fill: "#BDD0FB"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M58.484 81.2524C58.4833 81.2524 58.4826 81.2524 58.4826 81.2524C58.3738 81.2472 58.2904 81.1555 58.2955 81.0475C58.2993 80.9691 58.6529 73.0943 57.4081 62.4288C56.2599 52.5913 53.478 38.3001 46.746 26.082C46.6938 25.9873 46.7283 25.8682 46.823 25.8161C46.9176 25.7639 47.0368 25.7984 47.089 25.893C53.853 38.169 56.646 52.5166 57.798 62.391C59.0458 73.0866 58.6905 80.9875 58.6868 81.0661C58.6816 81.1733 58.5911 81.2564 58.484 81.2524Z",
            fill: "url(#paint1_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M47.2538 55.2826C46.8068 48.7424 44.2613 42.9913 40.5434 39.0635C37.2199 35.5524 35.3433 30.8963 35.4047 26.0668C35.4112 25.5591 35.3971 25.0449 35.3616 24.5257C34.8241 16.6601 29.5689 10.6131 23.6239 11.0193C17.6788 11.4256 13.2952 18.1313 13.8327 25.9969C13.9426 27.6053 14.2499 29.1373 14.7202 30.5535C16.2209 35.0731 16.0377 40.0058 14.0287 44.3257C12.2332 48.1863 11.3393 52.8107 11.6744 57.714C12.1741 65.027 15.2978 71.3539 19.7501 75.2479C21.4343 76.7208 22.8451 78.4912 23.8892 80.468C25.6242 83.7529 28.6859 85.8499 32.0235 85.6218C35.6242 85.3757 38.5382 82.4927 39.6535 78.5665C40.2845 76.3447 41.345 74.2758 42.7069 72.4083C45.9221 67.9998 47.7057 61.895 47.2538 55.2826Z",
            fill: "#91B3FA"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M26.2772 19.2446C27.4091 24.3899 28.3748 29.5675 29.2863 34.755C29.5148 36.0518 29.7224 37.3521 29.9342 38.6518L30.2515 40.6012L30.5526 42.5534C30.7483 43.8556 30.9619 45.1551 31.1429 46.4596L31.6859 50.3728C32.0146 52.9862 32.3655 55.5967 32.6455 58.2162C32.7874 59.5257 32.9548 60.8321 33.07 62.1445L33.434 66.0792C33.8663 71.3301 34.1667 76.5943 34.2003 81.8634L33.9732 81.8671L33.798 77.9258L33.7563 76.9407L33.6901 75.9566L33.5539 73.9889L33.4214 72.0214C33.3784 71.3655 33.3111 70.7112 33.2571 70.056C33.1405 68.7463 33.0342 67.4359 32.909 66.1271C32.3745 60.8947 31.7705 55.6695 31.0587 50.4574C30.6829 47.8541 30.3295 45.2477 29.9356 42.6468L29.6455 40.6954L29.3391 38.7465C29.1356 37.447 28.9321 36.1475 28.7154 34.8501C28.3043 32.2517 27.8745 29.6559 27.4236 27.0639C26.9863 24.4694 26.5244 21.8785 26.0547 19.2901L26.2772 19.2446Z",
            fill: "#BDD0FB"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { opacity: 0.3, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M103.527 29.7807C103.284 29.7708 103.095 29.566 103.105 29.3234C103.125 28.8521 103.124 28.373 103.103 27.8993C103.092 27.6596 103.276 27.4563 103.514 27.4411C103.517 27.4409 103.52 27.4408 103.523 27.4406C103.765 27.4298 103.97 27.6178 103.981 27.8604C104.003 28.359 104.004 28.8634 103.984 29.3596C103.975 29.5864 103.795 29.7661 103.573 29.7802C103.558 29.7812 103.542 29.7815 103.527 29.7807ZM102.842 25.6006C102.757 25.1344 102.651 24.6674 102.527 24.2122C102.463 23.9782 102.601 23.7364 102.835 23.6725C103.071 23.6092 103.311 23.7469 103.375 23.9812C103.506 24.46 103.617 24.9515 103.707 25.442C103.751 25.6809 103.593 25.9099 103.354 25.9537C103.337 25.9568 103.319 25.959 103.302 25.96C103.083 25.974 102.883 25.822 102.842 25.6006ZM101.765 22.0291C101.579 21.5948 101.371 21.1634 101.148 20.7465C101.033 20.5325 101.114 20.266 101.328 20.1514C101.542 20.0372 101.808 20.1175 101.923 20.3315C102.158 20.7705 102.377 21.2249 102.573 21.6822C102.669 21.9053 102.565 22.1638 102.342 22.2597C102.295 22.2801 102.246 22.2914 102.197 22.2945C102.017 22.306 101.84 22.2046 101.765 22.0291ZM99.9161 18.7883C99.637 18.4062 99.3379 18.0318 99.0274 17.6754C98.868 17.4923 98.8871 17.2146 99.0701 17.0551C99.2533 16.8959 99.5308 16.9151 99.6903 17.0978C100.017 17.4732 100.332 17.8674 100.626 18.2694C100.769 18.4654 100.726 18.7405 100.53 18.8837C100.46 18.9349 100.38 18.9624 100.299 18.9675C100.154 18.9767 100.008 18.9141 99.9161 18.7883ZM97.3912 16.0402C97.035 15.7304 96.6605 15.4314 96.2779 15.1518C96.082 15.0084 96.0393 14.7333 96.1826 14.5374C96.3259 14.3413 96.601 14.2987 96.7969 14.4422C97.1993 14.7363 97.5934 15.0509 97.9682 15.3769C98.1514 15.5362 98.1707 15.8139 98.0114 15.9971C97.9311 16.0894 97.8208 16.1401 97.7076 16.1473C97.5961 16.1544 97.4821 16.1193 97.3912 16.0402ZM94.3212 13.9193C93.9047 13.6955 93.4735 13.487 93.0393 13.2993C92.8165 13.203 92.7138 12.9442 92.8102 12.7215C92.9065 12.4986 93.1651 12.396 93.3881 12.4922C93.845 12.6897 94.299 12.9093 94.7373 13.1447C94.9511 13.2597 95.0314 13.5261 94.9165 13.7401C94.8419 13.879 94.7032 13.9614 94.5567 13.9707C94.4776 13.9758 94.3962 13.9596 94.3212 13.9193ZM77.9981 13.7146C77.8838 13.5004 77.9648 13.2341 78.1791 13.1199C78.618 12.8859 79.0731 12.6679 79.5316 12.472C79.755 12.3766 80.0133 12.4804 80.1086 12.7037C80.204 12.9268 80.1003 13.1851 79.877 13.2805C79.4417 13.4664 79.0096 13.6735 78.5929 13.8957C78.5357 13.9262 78.4749 13.9428 78.4142 13.9467C78.2474 13.9572 78.0818 13.8717 77.9981 13.7146ZM90.8595 12.5325C90.404 12.407 89.9374 12.2999 89.4727 12.2141C89.234 12.1698 89.0762 11.9405 89.1203 11.7018C89.1644 11.463 89.3936 11.3065 89.6325 11.3495C90.1218 11.4399 90.6131 11.5527 91.0929 11.6849C91.3269 11.7493 91.4645 11.9913 91.4 12.2254C91.3489 12.4111 91.186 12.536 91.004 12.5476C90.9567 12.5506 90.9079 12.5457 90.8595 12.5325ZM81.523 12.2131C81.4596 11.9789 81.5983 11.7374 81.8327 11.674C82.3127 11.5443 82.8048 11.4335 83.295 11.3446C83.534 11.3002 83.7626 11.46 83.806 11.6988C83.8493 11.9376 83.6907 12.1664 83.4518 12.2098C82.9859 12.2942 82.5183 12.3994 82.0621 12.5229C82.033 12.5307 82.0038 12.5353 81.9748 12.5372C81.7705 12.5502 81.5784 12.4183 81.523 12.2131ZM87.1754 11.9542C86.7035 11.9339 86.2246 11.9336 85.7518 11.9537C85.5091 11.9641 85.3042 11.7758 85.2939 11.5331C85.2838 11.2938 85.467 11.091 85.7051 11.0759C85.7082 11.0757 85.7113 11.0755 85.7144 11.0754C86.2122 11.0542 86.7164 11.0543 87.213 11.0756C87.4557 11.0862 87.6438 11.2912 87.6334 11.5338C87.6237 11.7604 87.444 11.9396 87.2226 11.9536C87.2071 11.9546 87.1913 11.9547 87.1754 11.9542Z",
              fill: "#91B3FA"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M75.8326 15.6396C75.919 15.6341 76.0047 15.6032 76.0777 15.5453C76.2552 15.4042 76.4386 15.2648 76.6228 15.1302C76.8189 14.9871 76.8619 14.7121 76.7188 14.516C76.5757 14.3199 76.3005 14.2766 76.1045 14.4201C75.9107 14.5615 75.7178 14.7083 75.531 14.8566C75.3409 15.0075 75.3091 15.2841 75.46 15.4742C75.5531 15.5914 75.6938 15.6484 75.8326 15.6396Z",
              fill: "#91B3FA"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { opacity: 0.3, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M69.4236 27.4104C69.6353 27.397 69.812 27.2316 69.8329 27.0136C69.8544 26.788 69.8811 26.5591 69.9122 26.3332C69.9453 26.0927 69.7771 25.8709 69.5366 25.8378C69.2951 25.8046 69.0743 25.9729 69.0412 26.2134C69.0085 26.4512 68.9804 26.6923 68.9576 26.9298C68.9345 27.1715 69.1116 27.3861 69.3533 27.4093C69.3771 27.4116 69.4006 27.4118 69.4236 27.4104Z",
              fill: "#91B3FA"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M86.6684 46.1774C86.4257 46.1809 86.226 45.9869 86.2225 45.744C86.2191 45.5013 86.4128 45.3021 86.6558 45.2982C87.118 45.2916 87.587 45.2651 88.0553 45.2195C88.2957 45.1954 88.5119 45.3729 88.5355 45.6146C88.559 45.8562 88.3822 46.0712 88.1405 46.0947C87.9376 46.1145 87.7352 46.1308 87.5333 46.1436C87.2453 46.1619 86.9543 46.1733 86.6684 46.1774ZM89.9746 45.3751C89.9186 45.1389 90.0648 44.902 90.301 44.8461C90.7545 44.7385 91.2084 44.6108 91.65 44.4661C91.8802 44.3899 92.129 44.5162 92.2047 44.7469C92.2802 44.9775 92.1544 45.2259 91.9238 45.3014C91.4588 45.4538 90.981 45.5884 90.5037 45.7015C90.479 45.7073 90.4542 45.711 90.4297 45.7125C90.2199 45.7259 90.0248 45.5867 89.9746 45.3751ZM84.2764 46.0477C83.791 45.9878 83.3015 45.9064 82.8215 45.8054C82.5839 45.7554 82.4318 45.5223 82.4817 45.2846C82.5317 45.0471 82.7648 44.8953 83.0025 44.945C83.4583 45.041 83.9231 45.1183 84.384 45.1751C84.625 45.2049 84.7963 45.4242 84.7666 45.6653C84.7403 45.8784 84.5654 46.0369 84.3586 46.0501C84.3316 46.0518 84.3042 46.0511 84.2764 46.0477ZM93.5566 44.1987C93.4501 43.9805 93.5406 43.7172 93.7588 43.6108C94.177 43.4067 94.5915 43.1822 94.9907 42.9436C95.1992 42.8189 95.4689 42.887 95.5935 43.0955C95.718 43.3039 95.6501 43.5737 95.4417 43.6982C95.0213 43.9495 94.5848 44.1859 94.1445 44.4009C94.0912 44.4268 94.0354 44.4412 93.9797 44.4447C93.8072 44.4556 93.6371 44.3636 93.5566 44.1987ZM80.5184 45.1529C80.0583 44.9878 79.5989 44.8007 79.1528 44.5967C78.932 44.4958 78.8348 44.2351 78.9356 44.0143C79.0365 43.7933 79.2974 43.6962 79.5182 43.7972C79.942 43.9908 80.3784 44.1686 80.8153 44.3253C81.0438 44.4073 81.1626 44.6591 81.0806 44.8876C81.0195 45.0579 80.8642 45.1672 80.6945 45.178C80.6364 45.1816 80.5766 45.1737 80.5184 45.1529ZM77.0477 43.4555C76.6338 43.1932 76.2262 42.9104 75.8362 42.615C75.6427 42.4683 75.6046 42.1926 75.7512 41.999C75.8981 41.8052 76.1738 41.7673 76.3671 41.9142C76.7377 42.1949 77.125 42.4636 77.5183 42.7129C77.7234 42.8429 77.7842 43.1145 77.6543 43.3196C77.5759 43.4431 77.4461 43.5143 77.3105 43.5229C77.221 43.5287 77.1291 43.5071 77.0477 43.4555ZM74.0292 41.0421C73.6821 40.6957 73.3458 40.3308 73.0296 39.9577C72.8726 39.7724 72.8956 39.4951 73.0808 39.3381C73.2663 39.181 73.5435 39.2041 73.7003 39.3893C74.0008 39.7439 74.3203 40.0905 74.6502 40.4197C74.8221 40.5912 74.8224 40.8696 74.6509 41.0413C74.5721 41.1203 74.4709 41.163 74.3678 41.1696C74.2463 41.1773 74.1222 41.1348 74.0292 41.0421ZM71.6092 38.0277C71.3462 37.6139 71.0979 37.184 70.8712 36.75C70.7588 36.5348 70.8421 36.2692 71.0573 36.1568C71.2722 36.0445 71.538 36.1278 71.6505 36.3429C71.8657 36.755 72.1014 37.1631 72.3513 37.5563C72.4815 37.7612 72.4209 38.0328 72.216 38.1629C72.1513 38.204 72.08 38.2261 72.0085 38.2306C71.8537 38.2405 71.6983 38.1679 71.6092 38.0277ZM69.9097 34.5534C69.7448 34.0929 69.5975 33.6193 69.4718 33.1455C69.4095 32.9108 69.5492 32.67 69.7839 32.6078C70.0178 32.5458 70.2592 32.6851 70.3215 32.9198C70.4409 33.3699 70.5809 33.8197 70.7375 34.2572C70.8193 34.4856 70.7003 34.7373 70.4718 34.8191C70.432 34.8334 70.3915 34.8416 70.3513 34.8442C70.1607 34.8562 69.9773 34.7421 69.9097 34.5534ZM69.0156 30.7946C68.9709 30.437 68.9366 30.0735 68.9139 29.7145C68.9056 29.5844 68.8988 29.4548 68.8935 29.3252C68.8834 29.0827 69.0686 28.8732 69.3144 28.8678C69.5569 28.8576 69.7618 29.0461 69.7719 29.2887C69.7771 29.4118 69.7834 29.5352 69.7913 29.6588C69.813 30.0002 69.8454 30.3455 69.8879 30.6856C69.9181 30.9264 69.7471 31.1461 69.5063 31.1762C69.4972 31.1773 69.4882 31.1782 69.4792 31.1788C69.2491 31.1934 69.0445 31.0265 69.0156 30.7946Z",
              fill: "#91B3FA"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M97.1715 42.4194C97.2587 42.4139 97.345 42.3825 97.4183 42.3238C97.604 42.1749 97.79 42.0192 97.9712 41.8611C98.1542 41.7015 98.1732 41.4238 98.0136 41.2409C97.8539 41.058 97.5764 41.0387 97.3933 41.1985C97.2211 41.3487 97.0444 41.4965 96.8682 41.6379C96.6788 41.7897 96.6484 42.0664 96.8003 42.2558C96.8935 42.3719 97.0335 42.4282 97.1715 42.4194Z",
              fill: "#91B3FA"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M98.0017 34.9291C98.0527 34.8577 98.0529 34.762 98.0021 34.6905L96.5539 32.6519C96.9989 31.5722 97.275 30.4138 97.354 29.2146L99.5514 28.0244C99.6285 27.9827 99.6706 27.8966 99.6562 27.8101L99.1655 24.8511C99.1512 24.7646 99.0835 24.6967 98.9971 24.6821L96.5331 24.2649C96.0713 23.1554 95.4361 22.1481 94.6663 21.2699L95.379 18.8729C95.404 18.7889 95.3729 18.6983 95.3016 18.6473L92.8622 16.9019C92.7909 16.8509 92.6951 16.8507 92.6237 16.9015L90.5851 18.3498C89.5054 17.9047 88.347 17.6286 87.1478 17.5496L85.9576 15.3522C85.9159 15.2751 85.8298 15.233 85.7433 15.2474L82.7842 15.7381C82.6977 15.7524 82.6299 15.8201 82.6153 15.9064L82.1981 18.3705C81.0886 18.8323 80.0812 19.4675 79.203 20.2373L76.8061 19.5246C76.7221 19.4996 76.6315 19.5307 76.5805 19.602L74.8351 22.0414C74.7841 22.1126 74.7839 22.2084 74.8346 22.2799L76.2829 24.3185C75.8378 25.3982 75.5618 26.5566 75.4828 27.7558L73.2854 28.946C73.2083 28.9877 73.1662 29.0737 73.1805 29.1602L73.6713 32.1194C73.6856 32.2059 73.7532 32.2737 73.8396 32.2884L76.3036 32.7055C76.7655 33.815 77.4007 34.8224 78.1705 35.7006L77.4578 38.0975C77.4328 38.1815 77.4638 38.2721 77.5352 38.3232L79.9746 40.0686C80.0459 40.1196 80.1417 40.1197 80.2131 40.069L82.2517 38.6207C83.3314 39.0658 84.4898 39.3418 85.6891 39.4208L86.8793 41.6183C86.921 41.6953 87.007 41.7374 87.0935 41.7231L90.0526 41.2323C90.1391 41.218 90.207 41.1504 90.2216 41.0639L90.6387 38.6C91.7483 38.1382 92.7555 37.5029 93.6338 36.7332L96.0307 37.4458C96.1147 37.4708 96.2054 37.4397 96.2564 37.3684L98.0017 34.9291Z",
            fill: "#91B3FA"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M86.1682 31.4898C84.5115 31.352 83.2756 29.8922 83.4133 28.2353C83.4799 27.4327 83.8553 26.7041 84.47 26.1838C85.0845 25.6635 85.865 25.4136 86.6677 25.4805C88.3245 25.6183 89.5603 27.0781 89.4226 28.735C89.2973 30.2423 88.0777 31.4012 86.611 31.4943C86.4656 31.5035 86.3176 31.5022 86.1682 31.4898ZM84.9244 26.7208C84.4531 27.1197 84.1654 27.6783 84.1142 28.2938C84.0087 29.5639 84.9562 30.6834 86.2265 30.789C87.4971 30.895 88.6161 29.947 88.7217 28.6766C88.8273 27.4065 87.8797 26.287 86.6095 26.1814C86.4943 26.1718 86.3799 26.1708 86.2666 26.178C85.7747 26.2093 85.3075 26.3965 84.9244 26.7208Z",
            fill: "#BDD0FB"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M86.8254 35.8442C87.0773 35.8282 87.3299 35.7994 87.5823 35.7576C87.6617 35.7445 87.741 35.73 87.82 35.7143C88.2096 35.6367 88.5923 35.5283 88.9624 35.3907C88.9674 35.3888 88.9724 35.3869 88.9775 35.3851C88.9918 35.3797 89.0061 35.3743 89.0203 35.3687C89.0481 35.3582 89.0758 35.3473 89.1035 35.3365C89.1761 35.3078 89.219 35.236 89.2144 35.162C89.2133 35.144 89.2093 35.1258 89.2023 35.1082C89.1666 35.0179 89.0643 34.974 88.9741 35.0095C88.5094 35.1933 88.0218 35.3282 87.5248 35.4105C85.0562 35.8203 82.6695 34.8899 81.1098 33.1533C80.2421 32.1875 79.6303 30.9722 79.4027 29.5992C79.3627 29.3584 79.3352 29.1174 79.3201 28.8771C79.2176 27.26 79.6706 25.6701 80.6263 24.3347C81.7238 22.8006 83.3532 21.7857 85.214 21.4772C89.0573 20.8402 92.6992 23.4472 93.3362 27.2885C93.3755 27.5254 93.4026 27.7633 93.4176 28.0014C93.4829 29.0329 93.3218 30.0672 92.9421 31.0296C92.9323 31.0545 92.9286 31.0802 92.9303 31.1052C92.9344 31.171 92.9757 31.2319 93.0412 31.2577C93.1317 31.2931 93.2337 31.2492 93.2693 31.1586C93.6679 30.1482 93.8372 29.0622 93.7686 27.9793C93.7529 27.7295 93.7243 27.4797 93.6832 27.2311C93.0144 23.1981 89.1882 20.4616 85.1566 21.1302C83.203 21.4541 81.4926 22.5195 80.3403 24.1301C79.3371 25.532 78.8615 27.2011 78.969 28.8988C78.985 29.151 79.0139 29.404 79.0557 29.6567C79.3798 31.6104 80.4451 33.3208 82.0555 34.4731C83.4578 35.4765 85.1274 35.9519 86.8254 35.8442Z",
            fill: "#BDD0FB"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { opacity: 0.3, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M119.278 40.3914C119.395 40.384 119.498 40.3006 119.525 40.1801C119.576 39.9553 119.621 39.7259 119.658 39.4982C119.682 39.3503 119.582 39.2108 119.434 39.1864C119.286 39.1616 119.146 39.2626 119.122 39.4105C119.087 39.6275 119.044 39.8461 118.996 40.0607C118.962 40.2068 119.054 40.3522 119.201 40.3854C119.227 40.3912 119.252 40.393 119.278 40.3914Z",
              fill: "#91B3FA"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M119.521 38.3209C119.371 38.315 119.255 38.189 119.26 38.039C119.275 37.6609 119.27 37.2776 119.246 36.8999C119.241 36.8203 119.235 36.7404 119.228 36.6603C119.216 36.511 119.326 36.3796 119.476 36.367C119.618 36.3606 119.757 36.4653 119.769 36.6148C119.776 36.6986 119.783 36.7821 119.788 36.8655C119.813 37.2613 119.818 37.6633 119.803 38.0599C119.798 38.2002 119.686 38.3117 119.549 38.3204C119.54 38.321 119.531 38.321 119.521 38.3209ZM119.029 35.296C118.935 34.8469 118.812 34.3995 118.664 33.9665C118.616 33.8245 118.691 33.6704 118.833 33.6218C118.974 33.5738 119.129 33.6489 119.178 33.7909C119.333 34.2447 119.462 34.7137 119.56 35.1846C119.591 35.3314 119.497 35.4753 119.35 35.5062C119.337 35.5088 119.324 35.5105 119.311 35.5113C119.179 35.5197 119.057 35.4297 119.029 35.296ZM118.138 32.692C117.937 32.2802 117.708 31.8768 117.457 31.4926C117.375 31.367 117.411 31.1987 117.536 31.1169C117.662 31.0348 117.83 31.0701 117.912 31.1959C118.175 31.5987 118.415 32.0221 118.626 32.4538C118.691 32.5886 118.635 32.7513 118.501 32.817C118.468 32.8328 118.433 32.8417 118.399 32.8439C118.292 32.8506 118.187 32.7938 118.138 32.692ZM116.634 30.3864C116.338 30.0359 116.017 29.7006 115.681 29.3903C115.571 29.2884 115.564 29.1166 115.666 29.0066C115.767 28.8968 115.939 28.8896 116.05 28.9912C116.402 29.3169 116.738 29.6683 117.049 30.0359C117.146 30.1504 117.131 30.3219 117.017 30.4187C116.97 30.4575 116.915 30.4786 116.859 30.4821C116.776 30.4875 116.692 30.4548 116.634 30.3864ZM114.613 28.5179C114.241 28.2501 113.848 28.0029 113.447 27.7829C113.315 27.711 113.267 27.5459 113.339 27.4143C113.411 27.2828 113.576 27.2343 113.708 27.3067C114.129 27.5372 114.54 27.7964 114.93 28.0769C115.052 28.1645 115.08 28.3342 114.992 28.4558C114.943 28.5246 114.867 28.5634 114.789 28.5684C114.728 28.5722 114.666 28.5559 114.613 28.5179ZM112.2 27.1965C111.774 27.0275 111.334 26.8835 110.891 26.7687C110.746 26.7311 110.658 26.5828 110.696 26.4378C110.734 26.2927 110.881 26.2057 111.027 26.243C111.491 26.3633 111.954 26.5144 112.4 26.6917C112.54 26.7472 112.608 26.9049 112.552 27.0442C112.512 27.145 112.419 27.2086 112.317 27.215C112.278 27.2176 112.238 27.2119 112.2 27.1965ZM109.538 26.5057C109.085 26.4465 108.622 26.415 108.163 26.4123C108.013 26.4112 107.892 26.289 107.893 26.1391C107.894 25.9892 108.016 25.8706 108.166 25.869C108.648 25.8722 109.133 25.9052 109.608 25.9672C109.757 25.9867 109.862 26.123 109.842 26.2717C109.825 26.4025 109.717 26.4993 109.59 26.5074C109.573 26.5085 109.556 26.508 109.538 26.5057ZM105.101 26.5334C105.065 26.3877 105.154 26.2409 105.3 26.2053C105.703 26.1069 106.119 26.029 106.534 25.9737C106.597 25.9649 106.66 25.9572 106.723 25.9498C106.871 25.9282 107.007 26.0391 107.024 26.1884C107.041 26.3374 106.934 26.472 106.786 26.4894C106.726 26.4961 106.667 26.5035 106.607 26.5119C106.21 26.5647 105.813 26.639 105.429 26.7328C105.413 26.7367 105.397 26.7391 105.381 26.74C105.252 26.7483 105.132 26.6632 105.101 26.5334Z",
              fill: "#91B3FA"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { opacity: 0.3, children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M108.664 49.31C108.191 49.3339 107.713 49.3289 107.243 49.2958C107.093 49.2851 106.98 49.1554 106.991 49.0057C107.001 48.856 107.132 48.7448 107.281 48.754C107.73 48.7858 108.186 48.7904 108.637 48.7676C108.786 48.7599 108.914 48.8754 108.921 49.025C108.929 49.1736 108.815 49.3004 108.668 49.3098C108.668 49.3098 108.665 49.3099 108.664 49.31ZM109.764 48.9315C109.738 48.7838 109.837 48.6433 109.985 48.618C110.43 48.5414 110.874 48.4372 111.306 48.308C111.449 48.2658 111.601 48.3467 111.644 48.4906C111.687 48.6343 111.605 48.7853 111.462 48.8284C111.009 48.9637 110.543 49.073 110.077 49.153C110.068 49.1547 110.058 49.1558 110.048 49.1564C109.912 49.1652 109.788 49.0697 109.764 48.9315ZM105.833 49.1087C105.368 49.0176 104.905 48.8974 104.456 48.7513C104.314 48.7048 104.236 48.5515 104.282 48.409C104.329 48.2663 104.481 48.1889 104.625 48.2348C105.052 48.3742 105.494 48.4889 105.937 48.576C106.084 48.605 106.18 48.7476 106.151 48.8945C106.127 49.0183 106.022 49.1057 105.902 49.1133C105.879 49.1148 105.856 49.1134 105.833 49.1087ZM112.439 48.1984C112.379 48.0611 112.442 47.9009 112.579 47.8407C112.992 47.6596 113.398 47.4513 113.786 47.2213C113.915 47.1451 114.081 47.1877 114.158 47.3162C114.234 47.4452 114.192 47.6118 114.063 47.6883C113.656 47.9296 113.23 48.1482 112.797 48.338C112.767 48.3511 112.736 48.3583 112.705 48.3603C112.595 48.3673 112.486 48.3056 112.439 48.1984ZM103.135 48.2294C102.707 48.0297 102.286 47.8016 101.885 47.5515C101.758 47.4722 101.719 47.3046 101.799 47.1774C101.878 47.0501 102.045 47.0111 102.173 47.0907C102.555 47.3294 102.956 47.5468 103.364 47.7372C103.5 47.8005 103.559 47.9621 103.496 48.0981C103.452 48.1912 103.362 48.2482 103.267 48.2543C103.223 48.257 103.177 48.2493 103.135 48.2294ZM100.726 46.7285C100.358 46.4314 100.004 46.1093 99.6749 45.7713C99.5704 45.6639 99.5726 45.4921 99.6801 45.3875C99.7873 45.283 99.9593 45.285 100.064 45.3926C100.378 45.7149 100.715 46.0221 101.067 46.3056C101.184 46.3997 101.202 46.5707 101.108 46.6875C101.058 46.7491 100.987 46.7834 100.914 46.788C100.848 46.7922 100.781 46.7727 100.726 46.7285ZM98.7464 44.6938C98.4595 44.317 98.1933 43.9192 97.9551 43.5118C97.8794 43.3822 97.9231 43.216 98.0525 43.1403C98.1819 43.0646 98.3482 43.1086 98.4239 43.2376C98.6509 43.6262 98.9048 44.0055 99.1785 44.3646C99.2693 44.4839 99.2463 44.6544 99.1269 44.7451C99.0827 44.779 99.0315 44.7969 98.9799 44.8001C98.8924 44.8057 98.8037 44.7689 98.7464 44.6938Z",
              fill: "#91B3FA"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "path",
            {
              d: "M115.101 46.938C115.153 46.9347 115.205 46.9163 115.25 46.8818C115.434 46.7397 115.614 46.5914 115.786 46.4413C115.899 46.3427 115.911 46.1711 115.812 46.0581C115.714 45.9456 115.542 45.9336 115.429 46.032C115.265 46.1752 115.093 46.3166 114.917 46.4523C114.799 46.5441 114.777 46.7147 114.869 46.8332C114.926 46.9072 115.014 46.9435 115.101 46.938Z",
              fill: "#91B3FA"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M115.822 41.8195C115.856 41.7718 115.856 41.7077 115.822 41.6599L114.853 40.2957C115.151 39.5733 115.336 38.7981 115.389 37.9957L116.859 37.1992C116.911 37.1713 116.939 37.1137 116.929 37.0558L116.601 35.0757C116.591 35.0179 116.546 34.9724 116.488 34.9626L114.839 34.6835C114.53 33.9411 114.105 33.267 113.59 32.6793L114.067 31.0754C114.084 31.0192 114.063 30.9586 114.015 30.9244L112.383 29.7565C112.335 29.7224 112.271 29.7222 112.223 29.7562L110.859 30.7253C110.137 30.4275 109.361 30.2428 108.559 30.1899L107.763 28.7195C107.735 28.6679 107.677 28.6398 107.619 28.6494L105.639 28.9777C105.581 28.9873 105.536 29.0326 105.526 29.0904L105.247 30.7392C104.504 31.0482 103.83 31.4733 103.243 31.9884L101.639 31.5115C101.583 31.4948 101.522 31.5155 101.488 31.5632L100.32 33.1956C100.286 33.2433 100.286 33.3074 100.32 33.3552L101.289 34.7194C100.991 35.4418 100.806 36.217 100.753 37.0195L99.283 37.8159C99.2314 37.8438 99.2032 37.9014 99.2128 37.9593L99.5412 39.9394C99.5508 39.9972 99.596 40.0426 99.6538 40.0524L101.303 40.3316C101.612 41.074 102.037 41.7481 102.552 42.3357L102.075 43.9396C102.058 43.9959 102.079 44.0565 102.127 44.0906L103.759 45.2586C103.807 45.2927 103.871 45.2928 103.919 45.2589L105.283 44.2897C106.005 44.5876 106.78 44.7723 107.583 44.8251L108.379 46.2956C108.407 46.3472 108.465 46.3753 108.523 46.3657L110.503 46.0373C110.561 46.0277 110.606 45.9825 110.616 45.9247L110.895 44.2759C111.637 43.9669 112.311 43.5417 112.899 43.0267L114.503 43.5036C114.559 43.5203 114.62 43.4995 114.654 43.4518L115.822 41.8195Z",
            fill: "#91B3FA"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M107.9 39.5542C107.353 39.509 106.857 39.2533 106.502 38.8345C106.148 38.4159 105.978 37.8842 106.023 37.3375C106.117 36.209 107.11 35.3688 108.24 35.4608C109.369 35.5549 110.211 36.5494 110.117 37.6776C110.071 38.2243 109.816 38.7206 109.397 39.0751C109.057 39.3631 108.642 39.5295 108.204 39.5572C108.104 39.5635 108.002 39.5626 107.9 39.5542ZM106.564 37.3823C106.531 37.7845 106.656 38.1756 106.917 38.4837C107.178 38.7916 107.543 38.9796 107.945 39.0131C108.347 39.046 108.738 38.9213 109.046 38.6605C109.354 38.4 109.542 38.0347 109.576 37.6327C109.645 36.8026 109.025 36.0711 108.195 36.0019C108.12 35.9958 108.046 35.9951 107.973 35.9997C107.238 36.0464 106.627 36.6272 106.564 37.3823Z",
            fill: "#BDD0FB"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M108.358 42.5848C108.529 42.5739 108.702 42.5542 108.875 42.5256C109.218 42.4688 109.556 42.3769 109.88 42.2522C109.895 42.2465 109.909 42.2408 109.924 42.2351C110.036 42.1907 110.102 42.08 110.095 41.9657C110.093 41.9379 110.087 41.9098 110.076 41.8827C110.021 41.7432 109.863 41.6756 109.724 41.7302C109.423 41.8495 109.107 41.9368 108.786 41.9898H108.786C108.768 41.9928 108.75 41.9955 108.733 41.9982C107.972 42.1169 107.21 42.0414 106.504 41.7887C106.12 41.6515 105.753 41.4618 105.411 41.2218C105.408 41.2198 105.406 41.2179 105.403 41.2159C105.394 41.2098 105.386 41.204 105.378 41.1979C104.385 40.4872 103.728 39.4325 103.528 38.2278C103.502 38.0719 103.484 37.916 103.474 37.7604C103.408 36.7136 103.701 35.6843 104.32 34.8196C105.03 33.8265 106.085 33.1697 107.29 32.97C108.494 32.7709 109.705 33.0516 110.698 33.762C111.691 34.4726 112.348 35.5274 112.548 36.732C112.573 36.8853 112.591 37.0394 112.601 37.1934C112.643 37.8613 112.539 38.5308 112.293 39.1537C112.278 39.1921 112.272 39.2318 112.274 39.2705C112.281 39.3721 112.345 39.4661 112.446 39.5059C112.585 39.5605 112.743 39.4926 112.798 39.3528C113.073 38.6557 113.19 37.9065 113.143 37.1595C113.132 36.987 113.112 36.8147 113.084 36.6433C112.86 35.2954 112.125 34.1153 111.014 33.3203C109.903 32.5255 108.549 32.2097 107.201 32.4342C105.853 32.6576 104.673 33.3925 103.878 34.5038C103.186 35.471 102.858 36.6226 102.932 37.7938C102.943 37.9676 102.963 38.1423 102.992 38.3165C103.425 40.926 105.773 42.7488 108.358 42.5848Z",
            fill: "#BDD0FB"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M16.6905 99.762C16.6905 100.721 17.4762 101.506 18.4366 101.506H112.858C113.818 101.506 114.604 100.721 114.604 99.762L115.389 45.5008C115.389 44.5414 114.259 42.6684 112.187 42.8091L19.9088 40.4214C18.7038 40.3903 17.5388 40.854 16.6855 41.7045C15.8322 42.555 15.3653 43.7179 15.3938 44.9217L16.6905 99.762Z",
            fill: "url(#paint2_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M18.4139 98.0885C18.4139 98.997 19.1573 99.7404 20.0658 99.7404H110.58C111.489 99.7404 112.232 98.997 112.232 98.0885L112.973 48.8297C112.886 45.8654 110.287 44.8 108.712 44.8629L20.2713 42.4902C19.4247 42.4675 18.6063 42.7936 18.0067 43.3917C17.4071 43.9897 17.0774 44.8082 17.0986 45.6548L18.4139 98.0885Z",
            fill: "#7D97F4"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M20.9254 96.1629C20.9254 96.9846 21.6163 97.657 22.4607 97.657H106.583C107.427 97.657 108.118 96.9846 108.118 96.1629L108.807 51.6096C108.726 48.9285 106.31 47.9649 104.846 48.0218L22.6516 45.8757C21.8649 45.8552 21.1042 46.1502 20.547 46.6911C19.9898 47.232 19.6833 47.9722 19.703 48.7379L20.9254 96.1629Z",
            fill: "#91B3FA"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M111.254 67.9178C111.253 67.9178 111.252 67.9178 111.251 67.9178C111.117 67.9163 111.01 67.8314 111.012 67.7281L111.071 64.6456C111.073 64.5434 111.181 64.4615 111.313 64.4615C111.314 64.4615 111.315 64.4615 111.316 64.4615C111.45 64.4631 111.557 64.5479 111.555 64.6512L111.496 67.7337C111.494 67.8359 111.386 67.9178 111.254 67.9178Z",
            fill: "url(#paint3_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M111.398 60.3639C111.397 60.3639 111.396 60.3639 111.394 60.3639C111.261 60.3624 111.154 60.2774 111.156 60.1743L111.38 48.3681C111.376 47.6668 111.1 47.1069 110.56 46.7077C109.553 45.9626 107.952 46.0006 107.885 46.0031L79.6174 45.4181C79.4838 45.4155 79.3783 45.3295 79.3819 45.2264C79.3855 45.1233 79.4881 45.0355 79.6305 45.0448L107.881 45.6298C108.057 45.6218 109.761 45.599 110.895 46.4379C111.534 46.9098 111.86 47.56 111.865 48.37L111.64 60.1799C111.638 60.2821 111.53 60.3639 111.398 60.3639Z",
            fill: "url(#paint4_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M13.0661 105.437H117.373C117.493 105.437 117.592 105.339 117.592 105.218V101.462C117.592 101.342 117.493 101.243 117.373 101.243H13.0661C12.9457 101.243 12.8472 101.342 12.8472 101.462V105.218C12.8472 105.339 12.9457 105.437 13.0661 105.437Z",
            fill: "url(#paint5_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M75.17 82.1295C74.0251 85.9005 70.5169 88.6522 66.3775 88.6522C61.3133 88.6522 57.1925 84.5315 57.1925 79.466C57.1925 76.6797 58.4402 74.1789 60.4059 72.4921L60.0175 68.6837C56.3318 70.8655 53.8564 74.8822 53.8564 79.466C53.8564 86.3703 59.4731 91.9883 66.3775 91.9883C70.7478 91.9883 74.6029 89.7371 76.8434 86.3329L75.17 82.1295Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M80.8783 88.2143C80.6711 88.2143 80.4638 88.1758 80.267 88.0983C79.8387 87.9296 79.4991 87.5188 79.3286 87.0911L75.0766 76.3415H64.3313C63.4755 76.3415 62.7585 75.7661 62.6718 74.9148L61.1855 60.3612C61.0921 59.4446 61.7594 58.6441 62.6759 58.5507C63.5916 58.4568 64.411 59.1694 64.5044 60.0858L65.838 73.2214H76.2078C76.8907 73.2214 77.5048 73.6021 77.7575 74.2366L81.7711 84.2974L84.9697 82.7772C85.8029 82.3832 86.797 82.7355 87.1904 83.5683C87.584 84.4011 87.2278 85.3932 86.3948 85.7868L81.5909 88.0555C81.3659 88.1619 81.1223 88.2143 80.8783 88.2143Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M73.539 70.1011H63.6641C62.7429 70.1011 61.9961 69.3756 61.9961 68.4544C61.9961 67.5332 62.7429 66.8076 63.6641 66.8076H73.539C74.4602 66.8076 75.207 67.5332 75.207 68.4544C75.207 69.3756 74.4602 70.1011 73.539 70.1011Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M63.9755 61.8518C65.9654 61.8518 67.5785 60.2387 67.5785 58.2488C67.5785 56.259 65.9654 54.6458 63.9755 54.6458C61.9857 54.6458 60.3726 56.259 60.3726 58.2488C60.3726 60.2387 61.9857 61.8518 63.9755 61.8518Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M22.5629 70.9033C22.3965 77.4152 21.8568 99.8774 22.1144 107.837C22.1417 108.681 22.8385 109.357 23.7077 109.385C28.0066 109.522 40.3733 109.867 47.4048 109.581C48.8693 109.522 50.034 108.371 50.0644 106.949C50.2105 100.114 50.5329 80.8891 49.7666 72.0823C49.6748 71.0271 48.8211 70.1869 47.7351 70.0814C43.0534 69.6271 30.6189 68.5164 24.5441 68.8988C23.4486 68.9679 22.5901 69.8385 22.5629 70.9033Z",
            fill: "url(#paint6_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M24.3098 72.9268C24.0749 78.26 23.3343 96.0024 23.5694 102.563C23.6038 103.522 24.3828 104.298 25.3702 104.354C29.4353 104.584 39.862 105.093 45.8245 104.63C46.8982 104.547 47.7407 103.704 47.7986 102.661C48.1008 97.2198 48.9684 80.6991 48.7431 74.2118C48.7071 73.1769 47.8808 72.3318 46.8178 72.2392C42.42 71.8561 31.1249 70.9446 26.0581 71.2128C25.1069 71.2631 24.3504 72.0035 24.3098 72.9268Z",
            fill: "#7D97F4"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M24.8673 73.8475C24.6454 78.876 23.9453 95.6048 24.1675 101.791C24.2 102.695 24.9364 103.426 25.8697 103.479C29.7124 103.696 39.5686 104.176 45.2049 103.74C46.2198 103.661 47.0162 102.867 47.071 101.883C47.3566 96.7526 48.1767 81.1758 47.9637 75.0592C47.9297 74.0834 47.1486 73.2865 46.1438 73.1992C41.9866 72.838 31.3095 71.9786 26.52 72.2315C25.6209 72.2789 24.9057 72.9769 24.8673 73.8475Z",
            fill: "#91B3FA"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            opacity: 0.5,
            d: "M33.187 70.0368C33.187 70.2366 33.3475 70.4014 33.5532 70.4118C34.5686 70.4634 37.4289 70.6094 38.7071 70.6813C38.9592 70.6955 39.157 70.4757 39.1092 70.2352L39.1011 70.1941C39.0684 70.03 38.9281 69.9065 38.7566 69.8913C37.8925 69.8144 35.2852 69.6015 33.5577 69.6613C33.3502 69.6685 33.187 69.8353 33.187 70.0368Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M41.5456 80.8323L40.9079 80.3089C40.7506 80.1797 40.5086 80.196 40.3674 80.3456L30.2129 91.0981C30.0664 91.2532 30.0791 91.4842 30.2414 91.6139L30.8991 92.1393C31.0611 92.2687 31.3108 92.2477 31.4567 92.0925L41.5752 81.3367C41.7159 81.1871 41.7027 80.9613 41.5456 80.8323Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M36.9145 82.4572V82.8505L31.237 88.9108H30.3468C29.9941 88.9108 29.708 88.7531 29.708 88.4004V84.0453C29.708 83.6927 29.994 83.391 30.3468 83.391H32.9279V83.4202C34.0012 82.9072 35.0306 82.3955 36.0763 81.8826C36.2736 81.7864 36.4887 81.7987 36.6748 81.9146C36.8622 82.0317 36.9145 82.2365 36.9145 82.4572Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M34.5649 89.832L36.9154 87.2969V89.9886C36.9154 90.2093 36.8448 90.414 36.6574 90.5311C36.4712 90.647 36.2443 90.6594 36.047 90.562C35.5501 90.319 35.0606 90.0749 34.5649 89.832Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M41.4257 86.3647C41.4257 87.8221 40.8918 89.155 40.0101 90.1797C39.8289 90.3893 39.5083 90.4053 39.3122 90.208L39.2925 90.1895C39.1186 90.0144 39.1051 89.7346 39.2666 89.5471C40.0039 88.6939 40.4503 87.5816 40.4503 86.3646C40.4503 85.5743 40.2616 84.8282 39.9263 84.1686L40.6304 83.4201C41.1359 84.2858 41.4257 85.292 41.4257 86.3647Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M39.8012 86.3646C39.8012 87.372 39.4486 88.2956 38.8603 89.0219C38.6841 89.2388 38.3573 89.2524 38.1588 89.0551L38.1563 89.0514C37.9824 88.8788 37.9738 88.6038 38.1267 88.4127C38.578 87.8528 38.8492 87.1402 38.8492 86.3646C38.8492 86.0477 38.8036 85.742 38.7185 85.4522L39.4485 84.6766C39.6754 85.1933 39.8012 85.7641 39.8012 86.3646Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M43.0129 89.3231C42.9176 93.6849 42.6085 108.73 42.756 114.062C42.7717 114.627 43.1707 115.08 43.6684 115.099C46.1302 115.19 53.212 115.422 57.2387 115.23C58.0773 115.19 58.7443 114.419 58.7617 113.467C58.8454 108.889 59.03 96.0117 58.5912 90.1128C58.5386 89.406 58.0498 88.8432 57.4278 88.7726C54.7469 88.4682 47.6262 87.7243 44.1474 87.9805C43.52 88.0267 43.0284 88.6098 43.0129 89.3231Z",
            fill: "url(#paint7_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M44.0135 90.6784C43.879 94.2506 43.4549 106.135 43.5895 110.529C43.6092 111.172 44.0553 111.691 44.6207 111.729C46.9486 111.883 52.9195 112.224 56.334 111.914C56.9488 111.858 57.4313 111.294 57.4645 110.595C57.6375 106.95 58.1343 95.8844 58.0053 91.5391C57.9847 90.8459 57.5116 90.2798 56.9028 90.2178C54.3844 89.9612 47.9162 89.3507 45.0147 89.5303C44.47 89.564 44.0368 90.0599 44.0135 90.6784Z",
            fill: "#7D97F4"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M44.5024 91.4413C44.3776 94.7551 43.9843 105.779 44.1091 109.855C44.1274 110.451 44.5412 110.933 45.0657 110.968C47.2251 111.111 52.7638 111.428 55.9311 111.14C56.5015 111.088 56.949 110.564 56.9798 109.916C57.1403 106.535 57.6012 96.2706 57.4815 92.2398C57.4624 91.5968 57.0235 91.0716 56.4588 91.0141C54.1226 90.7761 48.1226 90.2098 45.4311 90.3764C44.9258 90.4077 44.524 90.8677 44.5024 91.4413Z",
            fill: "#91B3FA"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            opacity: 0.5,
            d: "M49.0967 88.7426C49.0967 88.8764 49.1886 88.9868 49.3064 88.9938C49.8878 89.0283 51.5258 89.1261 52.2578 89.1743C52.4022 89.1838 52.5154 89.0366 52.4881 88.8755L52.4834 88.848C52.4647 88.7381 52.3844 88.6554 52.2861 88.6451C51.7913 88.5937 50.2982 88.451 49.309 88.4911C49.1901 88.4959 49.0967 88.6077 49.0967 88.7426Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M53.8089 99.0327L52.8081 100.172C52.8622 100.338 52.8942 100.512 52.9003 100.693C52.9366 101.757 52.083 102.645 50.9891 102.679C50.8645 102.683 50.7431 102.675 50.6248 102.658L50.1997 103.141C50.4638 103.169 50.7325 103.178 51.0058 103.169C52.9983 103.107 54.7011 102.093 55.6326 100.621C55.162 99.9725 54.5384 99.4285 53.8089 99.0327ZM50.8571 98.8096C50.9548 98.8072 51.0511 98.8125 51.1459 98.824L51.5659 98.3474C51.3279 98.3243 51.086 98.3144 50.8403 98.3193C48.8307 98.361 47.0836 99.3729 46.1157 100.87C46.5931 101.515 47.2202 102.056 47.9478 102.45L49.0021 101.254C48.9599 101.108 48.9348 100.955 48.9293 100.796C48.8927 99.7233 49.7576 98.8341 50.8571 98.8096Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M54.7104 96.8301L54.2507 96.4783C54.1373 96.3914 53.968 96.4087 53.8725 96.5169L47.0087 104.3C46.9096 104.413 46.924 104.574 47.0409 104.661L47.5147 105.014C47.6314 105.101 47.806 105.08 47.9047 104.968L54.7432 97.1831C54.8383 97.0748 54.8237 96.9168 54.7104 96.8301Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M96.0458 82.7851C96.5306 83.4743 97.0687 84.1311 97.6214 84.767C98.141 85.3649 98.6849 85.9431 99.2622 86.4868C99.6222 86.8257 99.9109 87.2651 100.348 87.5176C100.671 87.7041 100.691 87.6492 100.903 87.4136C101.245 87.0341 101.635 86.8218 102.023 87.1667C102.326 87.4361 102.729 87.6841 102.907 88.0604C103.097 88.4629 102.836 90.7343 102.158 90.5732C102.155 90.5726 99.1108 89.8481 95.8589 83.4768L96.0458 82.7851Z",
            fill: "url(#paint8_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M96.6886 84.2831C96.6792 84.3835 97.0553 84.4529 97.1749 84.0249C97.1421 83.839 97.0836 83.0251 96.9401 82.8987C96.1757 82.2253 94.8127 81.4677 94.8127 81.4677C94.6602 81.6988 94.8602 81.851 94.8602 81.851L95.5406 82.3069C95.4696 82.5403 95.366 82.7467 95.3543 83.0132C95.3454 83.215 95.4205 83.4126 95.5554 83.5656C95.6908 83.7192 95.8731 83.9176 96.0374 84.0682C96.3484 84.3532 96.6886 84.2831 96.6886 84.2831Z",
            fill: "url(#paint9_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M96.7148 83.3362L96.4637 82.9458L95.8648 82.6279C95.7714 82.7036 95.7319 82.8043 95.8843 82.9624C96.0366 83.1205 96.3712 83.93 96.3712 83.93L96.7148 83.3362Z",
            fill: "url(#paint10_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M103.824 94.1381C103.1 95.6493 107.888 96.6381 112.106 97.3128L112.184 87.1751C112.184 87.1751 112.829 82.8754 109.884 82.3983C108.15 81.9588 108.15 81.9629 108.15 81.9629C108.15 81.9629 105.931 81.6413 104.075 82.4044C102.22 83.1677 100.843 87.3082 100.843 87.3082L102.881 89.6605C102.918 89.7025 102.987 89.6873 103.002 89.6339L103.697 87.4762L103.824 94.1381Z",
            fill: "url(#paint11_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M107.867 86.7413C107.888 86.7031 107.899 86.6573 107.91 86.6163C107.962 86.4283 108.051 86.239 108.118 86.0537C108.151 85.9636 108.184 85.8735 108.216 85.7833C108.241 85.7159 108.305 85.6097 108.305 85.5387C108.544 84.8826 108.783 84.2265 109.022 83.5704C109.029 83.5496 109.019 83.5266 108.998 83.5191C108.977 83.5116 108.954 83.5223 108.946 83.5431C108.855 83.7925 108.764 84.0422 108.673 84.2917C108.503 84.761 108.332 85.2302 108.161 85.6995C108.087 85.9027 108.013 86.1058 107.939 86.309C107.915 86.3769 107.882 86.4417 107.855 86.5089C107.841 86.5457 107.832 86.5844 107.818 86.6211C107.818 86.6231 107.785 86.7048 107.776 86.687C107.792 86.7173 107.819 86.7537 107.85 86.7672C107.856 86.7591 107.862 86.7504 107.867 86.7413Z",
            fill: "url(#paint12_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fillRule: "evenodd",
            clipRule: "evenodd",
            d: "M103.15 77.6773C103.15 77.6773 103.389 77.0096 102.781 76.8906C102.174 76.7717 102.753 78.5445 102.753 78.5445L103.15 77.6773Z",
            fill: "url(#paint13_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fillRule: "evenodd",
            clipRule: "evenodd",
            d: "M108.008 79.4889L108.248 82.1053C108.248 82.1053 106.857 82.9122 105.66 82.2068L105.873 79.9215L108.008 79.4889Z",
            fill: "url(#paint14_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fillRule: "evenodd",
            clipRule: "evenodd",
            d: "M102.87 77.6286C102.87 77.6286 102.26 76.5922 103.036 76.0473C103.036 76.0473 102.62 75.1353 103.408 74.4757C103.408 74.4757 104.662 71.5604 107.296 73.6053C107.296 73.6053 109.563 72.9358 110.292 75.7355C110.292 75.7355 111.046 76.1557 110.701 77.2016C110.701 77.2016 110.786 81.0818 107.363 79.7738L102.87 77.6286Z",
            fill: "url(#paint15_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fillRule: "evenodd",
            clipRule: "evenodd",
            d: "M103.996 75.4613C103.996 75.4613 101.095 79.802 104.093 81.1316C106.922 82.3865 108.114 79.5041 108.114 79.5041C108.114 79.5041 109.358 78.2244 108.94 77.239C108.522 76.2537 104.703 74.922 103.996 75.4613Z",
            fill: "url(#paint16_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fillRule: "evenodd",
            clipRule: "evenodd",
            d: "M108.397 78.8204C108.397 78.8204 105.557 77.9279 105.8 76.2628C105.8 76.2628 105.308 76.3116 105.157 75.7363C105.157 75.7363 103.764 76.981 103.396 76.1106C103.396 76.1106 103.64 73.9555 105.343 74.6539C107.045 75.3523 108.6 76.0626 109.056 76.5598C109.512 77.057 109.89 78.2602 108.397 78.8204Z",
            fill: "url(#paint17_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fillRule: "evenodd",
            clipRule: "evenodd",
            d: "M107.742 79.8915L108.246 78.5147C108.246 78.5147 109.221 78.07 109.092 78.819C108.964 79.5681 108.088 79.9818 107.742 79.8915Z",
            fill: "url(#paint18_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M98.4542 101.064L92.8325 111.098C92.7893 111.175 92.6924 111.204 92.6138 111.163L87.3826 108.452C87.1148 108.313 87.0557 107.956 87.2644 107.738C87.4452 107.549 87.7307 107.507 87.9587 107.634L92.3151 110.073C92.3967 110.119 92.4998 110.087 92.5419 110.004L96.6696 101.799C96.6974 101.743 96.7539 101.709 96.8158 101.709L98.4542 101.064Z",
            fill: "url(#paint19_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M101.16 95.4267L91.9343 98.7126C91.7375 98.7827 91.5923 98.9505 91.5521 99.1543L89.6523 107.438C89.8039 107.994 90.1358 107.96 90.8706 107.474C91.9678 105.042 93.5108 102.556 93.463 101.201C93.5547 100.934 93.7904 100.74 94.0723 100.701L99.4992 99.9453L101.16 95.4267Z",
            fill: "url(#paint20_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M90.9171 107.206C90.3677 107.621 90.0197 107.694 89.6865 107.287C88.5563 107.451 88.0679 107.849 88.0596 108.424C89.1748 108.644 90.2882 108.693 91.3974 108.38C91.3652 107.867 91.2358 107.192 90.9171 107.206Z",
            fill: "url(#paint21_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M104.987 96.1108C103.755 98.0467 98.6086 100.478 95.6983 101.104C94.639 100.386 93.6681 99.3996 93.2944 98.2014C94.7982 97.0569 100.84 95.3187 103.75 94.3958L104.987 96.1108Z",
            fill: "url(#paint22_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M112.812 98.254L115.039 99.1388L114.957 85.9993C114.125 84.6772 113.422 84.8209 112.812 85.9993V98.254Z",
            fill: "url(#paint23_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M102.63 96.2015L93.404 99.4874C93.2071 99.5575 93.0619 99.7253 93.0217 99.9291L91.3833 108.239C91.5349 108.795 91.8184 108.82 92.5532 108.335C93.6504 105.902 94.9804 103.331 94.9326 101.976C95.0244 101.709 95.26 101.515 95.542 101.476L100.969 100.72L102.63 96.2015Z",
            fill: "url(#paint24_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M92.6221 108.177C92.0627 108.586 91.7115 108.653 91.3829 108.239C90.2435 108.385 89.7458 108.778 89.728 109.356C90.8462 109.596 91.9653 109.663 93.0862 109.365C93.0621 108.848 92.9428 108.168 92.6221 108.177Z",
            fill: "url(#paint25_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M111.537 96.8514C110.304 98.7873 98.8323 101.581 95.9219 102.208C95.0805 101.637 94.2947 100.898 93.8198 100.017C93.6057 99.6196 93.7577 99.1235 94.1561 98.908C96.3097 97.743 102.265 95.6122 104.862 94.7886L111.537 96.8514Z",
            fill: "url(#paint26_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M112.838 95.5582L95.0263 99.1462C93.8111 99.4108 92.9382 100.47 92.9172 101.705L92.7422 111.982H93.9593L94.7695 102.047L112.172 100.271L112.838 95.5582Z",
            fill: "url(#paint27_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M98.4815 113.15H93.0094C92.9371 113.15 92.8779 113.091 92.8779 113.018V112.298C92.8779 112.226 92.9371 112.167 93.0094 112.167H98.4815C98.5538 112.167 98.613 112.226 98.613 112.298V113.018C98.613 113.091 98.5538 113.15 98.4815 113.15Z",
            fill: "url(#paint28_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M93.2944 117.301C94.8412 117.301 96.0952 116.056 96.0952 114.52C96.0952 112.984 94.8412 111.739 93.2944 111.739C91.7476 111.739 90.4937 112.984 90.4937 114.52C90.4937 116.056 91.7476 117.301 93.2944 117.301Z",
            fill: "url(#paint29_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M93.2942 116.653C94.4808 116.653 95.4428 115.698 95.4428 114.52C95.4428 113.342 94.4808 112.387 93.2942 112.387C92.1075 112.387 91.1455 113.342 91.1455 114.52C91.1455 115.698 92.1075 116.653 93.2942 116.653Z",
            fill: "url(#paint30_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M117.684 81.6134C112.87 80.2324 111.432 82.1164 111.85 87.6307V98.1606H113.052V85.7027C113.157 82.9889 114.058 82.1945 117.238 83.1917C118.262 83.3185 118.793 81.9516 117.684 81.6134Z",
            fill: "url(#paint31_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M112.255 95.7117L98.5713 95.7941V95.7539C98.5713 95.0905 99.1013 94.5467 99.7691 94.525L111.674 94.1384C112.153 94.1229 112.518 94.5618 112.412 95.0266L112.255 95.7117Z",
            fill: "url(#paint32_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M108.406 119.005C114.687 119.005 119.78 113.948 119.78 107.711C119.78 101.474 114.687 96.418 108.406 96.418C102.124 96.418 97.0317 101.474 97.0317 107.711C97.0317 113.948 102.124 119.005 108.406 119.005Z",
            fill: "url(#paint33_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            opacity: 0.51,
            d: "M108.6 117.578C113.981 117.578 118.344 113.247 118.344 107.904C118.344 102.561 113.981 98.2296 108.6 98.2296C103.219 98.2296 98.8564 102.561 98.8564 107.904C98.8564 113.247 103.219 117.578 108.6 117.578Z",
            fill: "url(#paint34_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M93.5342 86.227L99.3337 85.7813C99.5711 85.7631 99.7958 85.8986 99.9053 86.1259L104.245 95.1413C104.454 95.5758 104.152 96.0921 103.697 96.077L98.6635 95.9088C98.469 95.9023 98.2898 95.794 98.1833 95.6188L93.0779 87.2174C92.8292 86.808 93.0808 86.2619 93.5342 86.227Z",
            fill: "url(#paint35_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M110.008 88.0943C109.325 87.7684 108.606 87.4447 108.119 86.9615L105.876 89.5795C105.876 89.5795 101.261 87.9481 100.244 88.6806C99.2283 89.4131 99.6272 89.4747 99.7329 89.4947C99.8386 89.5146 100.428 89.0821 100.428 89.0821C100.428 89.0821 99.8768 89.6415 100.102 89.7137C100.326 89.7859 101.005 89.286 101.005 89.286C101.005 89.286 100.389 89.999 100.684 89.9595C100.979 89.92 101.287 89.5294 101.287 89.5294C101.287 89.5294 100.819 89.9728 101.066 90.039C101.313 90.1053 101.781 89.736 101.781 89.736C101.781 89.736 102.318 90.1113 102.655 90.1748C102.992 90.2383 106.226 91.7204 106.908 91.4864C107.589 91.2524 110.008 88.0943 110.008 88.0943Z",
            fill: "url(#paint36_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M90.5362 59.0114C86.5182 60.2534 82.6204 63.3626 83.1631 67.332C83.6246 70.7074 88.1121 71.7038 90.8344 72.0595C91.5937 72.1587 92.2836 72.4947 92.7763 73.003C93.9554 74.2197 96.4812 76.2474 99.253 74.8977C99.4549 74.7994 99.3646 74.5317 99.133 74.5396C98.3961 74.5649 97.3504 74.4733 96.6386 73.8757C95.6692 73.0617 96.0202 71.6494 97.273 71.2095C99.6438 70.377 104.118 68.1104 103.538 62.9738C102.755 56.027 90.5362 59.0114 90.5362 59.0114Z",
            fill: "url(#paint37_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M92.9827 64.5517C92.9827 64.5517 93.1805 62.2292 95.8628 62.613C98.4039 62.9767 97.5903 65.9773 94.0102 67.8869C93.6221 68.0939 93.1414 68.1243 92.7215 67.9702C91.1496 67.3934 87.4884 65.7412 89.5077 63.4468C90.8119 61.9652 92.9827 64.5517 92.9827 64.5517Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            opacity: 0.7,
            d: "M84.702 64.4595C84.6684 64.4595 84.6342 64.4538 84.6013 64.4418C84.4703 64.3937 84.4093 64.2631 84.4649 64.15C85.9576 61.118 89.5264 59.7687 92.2574 59.1706C92.3955 59.1401 92.5356 59.2124 92.5706 59.3315C92.6057 59.4506 92.5222 59.5716 92.3842 59.6018C89.7662 60.1751 86.3494 61.4597 84.9394 64.324C84.8976 64.4087 84.8023 64.4595 84.702 64.4595Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            opacity: 0.7,
            d: "M84.1121 67.5545C83.9862 67.5545 83.876 67.4748 83.8574 67.364C83.8543 67.3459 83.7833 66.9121 83.854 66.2415C83.867 66.1192 83.992 66.0286 84.1341 66.0403C84.2759 66.0514 84.3803 66.1596 84.3674 66.282C84.3021 66.9006 84.3668 67.296 84.3674 67.3C84.3879 67.4216 84.2904 67.5344 84.1495 67.5521C84.1369 67.5537 84.1244 67.5545 84.1121 67.5545Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M37.1325 71.7264C37.1325 71.7264 34.1221 78.6738 32.2694 77.7475C30.4168 76.8211 29.0273 69.1791 29.0273 69.1791C29.0273 69.1791 35.8629 67.1228 37.1325 71.7264Z",
            fill: "url(#paint38_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M26.6507 114.838C26.6507 114.838 26.3991 116.263 26.2757 117.673C26.2275 118.225 26.6524 118.703 27.2052 118.726C29.0834 118.805 33.101 118.957 34.5426 118.892C34.7593 118.883 34.901 118.661 34.8208 118.459C34.7536 118.29 34.6239 118.154 34.4588 118.078L27.8225 115.028L26.6507 114.838Z",
            fill: "url(#paint39_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M26.4448 114.001L26.647 115.705C26.647 115.705 27.8095 116.247 28.6034 115.637L28.122 113.738L26.4448 114.001Z",
            fill: "url(#paint40_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M26.5962 81.9615C26.5088 82.4065 26.1274 104.17 28.4537 113.923C28.4916 114.082 28.411 114.247 28.2595 114.308C27.9028 114.454 27.2033 114.665 26.3649 114.693C26.1053 114.702 25.8726 114.533 25.7993 114.284C25.1343 112.021 21.9478 100.684 21.5321 89.8534C21.0676 77.7514 21.5321 89.4413 21.5321 89.4413L21.8045 81.9606L26.5962 81.9615Z",
            fill: "url(#paint41_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M19.0164 115.582C19.0164 115.582 18.6158 116.301 18.2279 118.212C18.1579 118.557 18.3991 118.888 18.7496 118.922C19.3698 118.983 20.3245 119.062 21.0893 119.056C21.4418 119.054 21.717 118.747 21.6745 118.397C21.5898 117.699 21.3259 116.555 20.5107 115.663L19.0164 115.582Z",
            fill: "url(#paint42_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M18.665 113.39L19.1375 115.967C19.1375 115.967 19.6047 116.314 20.5288 116.062L20.3033 113.29L18.665 113.39Z",
            fill: "url(#paint43_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M17.3887 82.6294C15.486 94.1121 17.8014 111.01 18.5823 114.317C18.6301 114.52 18.7935 114.675 18.9988 114.709C19.3473 114.767 19.9212 114.814 20.4869 114.649C20.6819 114.593 20.8188 114.417 20.8268 114.214C20.9316 111.54 20.743 95.1254 22.5158 88.6381C22.6057 88.3094 22.8065 88.0226 23.0842 87.8252L26.5253 85.3789L26.789 81.4248L17.3887 82.6294Z",
            fill: "url(#paint44_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M29.7217 61.3055C22.7744 60.6107 17.5187 62.369 17.5187 62.369C15.8191 72.2862 17.2215 83.7251 17.2215 83.7251C21.6358 84.8827 26.6154 83.0173 26.6154 83.0173C27.349 78.8721 30.7722 67.2062 30.7722 67.2062C33.5581 66.8605 31.4718 61.4805 29.7217 61.3055Z",
            fill: "url(#paint45_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M24.789 72.4274C24.789 72.4274 17.8626 75.6399 16.2471 73.6159C15.7911 73.0445 15.8097 72.3452 15.9129 71.7775C14.1204 70.8724 12.4069 70.6261 11.4005 70.5519C11.1364 71.9351 11.4564 73.6657 12.3661 75.0952C15.6591 80.2699 25.6432 74.0801 25.6432 74.0801L24.789 72.4274Z",
            fill: "url(#paint46_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M27.0728 74.1157L29.5308 65.532C29.5587 65.4346 29.6418 65.3635 29.7425 65.3518C30.1879 65.2998 31.4782 65.1539 32.9681 65.0279C34.7628 64.8761 36.8469 64.7531 38.0924 64.8577C38.2694 64.8726 38.3764 65.0599 38.2976 65.2192C37.5894 66.652 34.6763 72.4803 33.2174 74.3896C33.1691 74.4529 33.0944 74.4898 33.0148 74.4891L27.312 74.436C27.146 74.4345 27.0272 74.2753 27.0728 74.1157Z",
            fill: "url(#paint47_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M24.8939 74.6071C24.8939 74.6071 24.4393 72.7378 24.6227 72.0747C24.806 71.4115 25.1613 70.5588 26.3457 70.7483C27.5299 70.9378 28.9269 71.4366 28.9269 71.4366C28.9269 71.4366 28.8564 72.3005 27.9563 72.0218L28.5145 72.4537C28.5145 72.4537 28.4347 73.1453 27.6744 72.7758L28.1935 73.3485C28.1935 73.3485 27.867 73.9166 27.3077 73.5523C26.7483 73.1879 26.4802 74.8323 24.8939 74.6071Z",
            fill: "url(#paint48_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M37.0274 71.8259C37.0274 71.8259 38.4055 70.4836 38.6025 69.8244C38.7994 69.1651 38.9514 68.2539 37.8474 67.7853C36.7434 67.3167 35.2947 66.9973 35.2947 66.9973C35.2947 66.9973 34.8956 67.7667 35.8063 68.0087L35.1039 68.0781C35.1039 68.0781 34.8041 68.7065 35.6446 68.7973L34.9005 69.0067C34.9005 69.0067 34.8753 69.6615 35.5428 69.65C36.2102 69.6383 35.5639 71.174 37.0274 71.8259Z",
            fill: "url(#paint49_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M24.4313 56.6739L22.617 61.9206C22.587 62.0075 22.6227 62.1038 22.7031 62.1483C23.1977 62.4217 24.9795 63.2121 27.1267 61.8507C27.3504 61.7089 27.5026 61.4776 27.5366 61.2149L28.1241 56.6739H24.4313Z",
            fill: "url(#paint50_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M29.5024 53.3037C29.5024 53.3037 30.0824 57.5104 29.3213 58.8449C28.5603 60.1794 26.2794 59.2277 24.6784 57.3305L24.6572 53.01L29.5024 53.3037Z",
            fill: "url(#paint51_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M25.4524 55.4961C25.5481 55.4898 25.6153 55.4002 25.5936 55.3069C25.5276 55.023 25.4179 54.453 25.4782 54.0112C25.4782 54.0112 25.2208 53.6726 26.5176 53.8242C27.8143 53.9758 29.7544 54.1844 30.5 53.3067C31.227 52.4508 31.1816 49.6119 28.9278 51.0346C28.842 51.0888 28.7276 51.0487 28.6973 50.952C28.5663 50.5343 28.156 49.6168 27.0919 49.6919C26.0961 49.7621 25.7701 50.3535 25.6661 50.6737C25.6355 50.7679 25.526 50.8096 25.441 50.7588C25.0388 50.5179 24.0272 50.0667 23.1529 50.9536C22.4326 51.6841 22.51 52.2755 22.6572 52.6047C22.7049 52.7113 22.6239 52.8286 22.5072 52.8222C22.1912 52.8051 21.7359 52.9115 21.5287 53.5907C21.2421 54.5297 22.3009 54.8258 22.6092 54.8912C22.6598 54.9019 22.7021 54.9361 22.7214 54.984C22.8707 55.354 23.57 56.9492 24.7428 57.5405C24.8444 57.5917 24.9649 57.517 24.9672 57.4034L25.0018 55.6681C25.0035 55.5875 25.0665 55.5215 25.1469 55.5162L25.4524 55.4961Z",
            fill: "url(#paint52_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M25.5858 55.7929C25.5858 55.7929 24.5888 54.391 24.2095 55.1249C23.8302 55.8587 25.0003 56.679 25.7477 56.6275L25.5858 55.7929Z",
            fill: "url(#paint53_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M19.7063 67.89L17.5193 62.3689C17.5193 62.3689 12.3088 65.9092 11.3477 70.4261C11.3309 70.5049 11.3876 70.5809 11.4679 70.5878C12.4994 70.6765 14.2409 70.955 15.9474 71.8166C16.3413 69.6502 19.7063 67.89 19.7063 67.89Z",
            fill: "url(#paint54_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M28.3513 55.3342L28.2275 55.1698C28.244 55.1573 28.6341 54.8636 29.027 54.9216C29.2017 54.9474 29.3468 55.0383 29.4585 55.1912L29.2922 55.3128C29.2131 55.2044 29.1164 55.1432 28.9966 55.1254C28.6941 55.0807 28.355 55.3314 28.3513 55.3342Z",
            fill: "url(#paint55_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M28.4032 55.1805C28.4032 55.7407 28.0451 56.1948 27.6032 56.1948C27.1614 56.1948 26.8032 55.7407 26.8032 55.1805C26.8032 54.6204 27.1614 54.1663 27.6032 54.1663C28.045 54.1663 28.4032 54.6204 28.4032 55.1805Z",
            fill: "url(#paint56_linear_1293_2539)"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M30.461 55.1805C30.461 55.7407 30.1987 56.1948 29.8753 56.1948C29.5518 56.1948 29.2896 55.7407 29.2896 55.1805C29.2896 54.6204 29.5518 54.1663 29.8753 54.1663C30.1987 54.1663 30.461 54.6204 30.461 55.1805Z",
            fill: "url(#paint57_linear_1293_2539)"
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint0_linear_1293_2539",
            x1: 124.825,
            y1: 132.775,
            x2: 45.7179,
            y2: 47.3903,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#DAE3FE" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#E9EFFD" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint1_linear_1293_2539",
            x1: 52.9537,
            y1: 22.4037,
            x2: 52.1952,
            y2: 123.077,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#DAE3FE" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#E9EFFD" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint2_linear_1293_2539",
            x1: 42.8894,
            y1: 86.2106,
            x2: 135.797,
            y2: 24.7129,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint3_linear_1293_2539",
            x1: 111.012,
            y1: 66.1896,
            x2: 111.555,
            y2: 66.1896,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#DAE3FE" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#E9EFFD" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint4_linear_1293_2539",
            x1: 79.3818,
            y1: 52.7041,
            x2: 111.865,
            y2: 52.7041,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#DAE3FE" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#E9EFFD" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint5_linear_1293_2539",
            x1: 64.2726,
            y1: 99.3424,
            x2: 47.3724,
            y2: 27.9857,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint6_linear_1293_2539",
            x1: 51.0258,
            y1: 65.472,
            x2: 23.616,
            y2: 109.328,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint7_linear_1293_2539",
            x1: 45.452,
            y1: 92.492,
            x2: 70.3166,
            y2: 138.11,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint8_linear_1293_2539",
            x1: 95.2918,
            y1: 81.2853,
            x2: 101.697,
            y2: 89.0201,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint9_linear_1293_2539",
            x1: 94.9025,
            y1: 81.6069,
            x2: 101.307,
            y2: 89.341,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint10_linear_1293_2539",
            x1: 95.7822,
            y1: 83.279,
            x2: 96.7148,
            y2: 83.279,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FF928E" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FE7062" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint11_linear_1293_2539",
            x1: -59.9017,
            y1: -246.124,
            x2: -53.1142,
            y2: -232.549,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FF928E" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FE7062" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint12_linear_1293_2539",
            x1: -154.024,
            y1: -439.73,
            x2: -147.236,
            y2: -426.155,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#E1473D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#E9605A" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint13_linear_1293_2539",
            x1: 101.276,
            y1: 80.4713,
            x2: 105.661,
            y2: 71.8781,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint14_linear_1293_2539",
            x1: 108.23,
            y1: 86.0818,
            x2: 105.891,
            y2: 77.3134,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint15_linear_1293_2539",
            x1: 87.3433,
            y1: 14.3682,
            x2: 97.6982,
            y2: 47.7165,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint16_linear_1293_2539",
            x1: 104.294,
            y1: 81.0669,
            x2: 107.78,
            y2: 74.2359,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint17_linear_1293_2539",
            x1: 81.652,
            y1: 18.4387,
            x2: 95.3306,
            y2: 50.6037,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint18_linear_1293_2539",
            x1: 106.861,
            y1: 82.266,
            x2: 110.292,
            y2: 75.5421,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint19_linear_1293_2539",
            x1: 87.602,
            y1: 113.728,
            x2: 105.567,
            y2: 81.9736,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint20_linear_1293_2539",
            x1: 91.4972,
            y1: 97.0767,
            x2: 94.3114,
            y2: 100.262,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint21_linear_1293_2539",
            x1: 88.0452,
            y1: 101.368,
            x2: 89.2752,
            y2: 106.411,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint22_linear_1293_2539",
            x1: 96.0831,
            y1: 66.0212,
            x2: 98.0048,
            y2: 85.5878,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint23_linear_1293_2539",
            x1: 106.274,
            y1: 110.058,
            x2: 114.022,
            y2: 92.3469,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint24_linear_1293_2539",
            x1: 95.9315,
            y1: 98.8186,
            x2: 98.3245,
            y2: 106.396,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint25_linear_1293_2539",
            x1: 93.2806,
            y1: 106.542,
            x2: 98.6309,
            y2: 98.8552,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint26_linear_1293_2539",
            x1: 102.269,
            y1: 98.1914,
            x2: 119.914,
            y2: 115.487,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint27_linear_1293_2539",
            x1: 119.849,
            y1: 78.8152,
            x2: 114.56,
            y2: 85.457,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint28_linear_1293_2539",
            x1: 94.0005,
            y1: 108.51,
            x2: 97.0799,
            y2: 115.83,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint29_linear_1293_2539",
            x1: 92.6787,
            y1: 124.372,
            x2: 93.4166,
            y2: 112.565,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint30_linear_1293_2539",
            x1: 95.5053,
            y1: 110.474,
            x2: 91.3868,
            y2: 118.01,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint31_linear_1293_2539",
            x1: 118.631,
            y1: 72.9565,
            x2: 105.778,
            y2: 110.716,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint32_linear_1293_2539",
            x1: 159.271,
            y1: 53.9166,
            x2: 134.209,
            y2: 73.2349,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint33_linear_1293_2539",
            x1: 117.121,
            y1: 115.212,
            x2: 96.8269,
            y2: 97.7465,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint34_linear_1293_2539",
            x1: 113.364,
            y1: 90.4379,
            x2: 105.615,
            y2: 118.85,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint35_linear_1293_2539",
            x1: 94.1902,
            y1: 99.9411,
            x2: 105.252,
            y2: 78.121,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint36_linear_1293_2539",
            x1: 115.375,
            y1: 90.9029,
            x2: 70.6282,
            y2: 81.6284,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint37_linear_1293_2539",
            x1: 64.3047,
            y1: 98.8585,
            x2: 99.1106,
            y2: 61.0128,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#E1473D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#E9605A" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint38_linear_1293_2539",
            x1: 29.0273,
            y1: 73.2769,
            x2: 37.1325,
            y2: 73.2769,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint39_linear_1293_2539",
            x1: 30.4148,
            y1: 102.447,
            x2: 30.5881,
            y2: 121.509,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint40_linear_1293_2539",
            x1: 26.4448,
            y1: 114.832,
            x2: 28.6034,
            y2: 114.832,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint41_linear_1293_2539",
            x1: 24.0052,
            y1: 123.046,
            x2: 25.4785,
            y2: 83.5141,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint42_linear_1293_2539",
            x1: 19.8032,
            y1: 102.543,
            x2: 19.9765,
            y2: 121.605,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint43_linear_1293_2539",
            x1: 18.665,
            y1: 114.722,
            x2: 20.5288,
            y2: 114.722,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint44_linear_1293_2539",
            x1: 20.362,
            y1: 122.91,
            x2: 21.8353,
            y2: 83.3784,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#4F52FF" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#4042E2" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint45_linear_1293_2539",
            x1: -219.536,
            y1: -414.409,
            x2: -212.748,
            y2: -400.834,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FF928E" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FE7062" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint46_linear_1293_2539",
            x1: 11.311,
            y1: 73.8552,
            x2: 25.6432,
            y2: 73.8552,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint47_linear_1293_2539",
            x1: 29.138,
            y1: 61.3049,
            x2: 33.7397,
            y2: 72.1013,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint48_linear_1293_2539",
            x1: 24.5791,
            y1: 72.6749,
            x2: 28.9269,
            y2: 72.6749,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint49_linear_1293_2539",
            x1: 38.3206,
            y1: 70.3561,
            x2: 34.6369,
            y2: 68.0464,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint50_linear_1293_2539",
            x1: 22.6064,
            y1: 59.6497,
            x2: 28.1241,
            y2: 59.6497,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint51_linear_1293_2539",
            x1: 29.0073,
            y1: 57.7278,
            x2: 24.5845,
            y2: 52.1658,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint52_linear_1293_2539",
            x1: 22.9118,
            y1: 47.3984,
            x2: 28.1403,
            y2: 55.9079,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint53_linear_1293_2539",
            x1: 27.0369,
            y1: 58.475,
            x2: 23.0577,
            y2: 53.4709,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FEBBBA" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FF928E" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint54_linear_1293_2539",
            x1: -224.696,
            y1: -411.828,
            x2: -217.909,
            y2: -398.253,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#FF928E" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#FE7062" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint55_linear_1293_2539",
            x1: 29.2262,
            y1: 54.8873,
            x2: 28.4587,
            y2: 55.4745,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint56_linear_1293_2539",
            x1: 32.4013,
            y1: 51.5093,
            x2: 22.3911,
            y2: 59.1686,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "linearGradient",
          {
            id: "paint57_linear_1293_2539",
            x1: 34.061,
            y1: 51.9778,
            x2: 25.3282,
            y2: 58.6597,
            gradientUnits: "userSpaceOnUse",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { stopColor: "#09005D" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: 1, stopColor: "#1A0F91" })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_1293_2539", children: /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { width: 130, height: 130, fill: "white" }) })
      ] })
    ]
  }
);
const WalkthroughBanner = () => {
  const { isVisible, handleDismiss } = useBanner({
    slug: "walkthrough-banner",
    defaultState: {
      dismissed: false,
      dismissedAt: null
    }
  });
  if (!isVisible) {
    return null;
  }
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Card, { className: "cy:relative cy:py-4 cy:mb-6 cy:border-[#D4E3FF] cy:bg-[#EBF2FF] cy:shadow-sm cy:rounded-lg", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "button",
      {
        onClick: handleDismiss,
        className: "cy:absolute cy:top-3 cy:right-3 cy:text-gray-400 cy:hover:text-gray-600 cy:transition-colors",
        "aria-label": "Dismiss banner",
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$1, { className: "cy:w-5 cy:h-5" })
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(WalkthroughIcon, { width: 130, height: 130 }) }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex-1", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "cy:text-[18px] cy:font-bold cy:text-[#1F2937] cy:pb-3 ", children: "Your accessibility tool Kit — all in one place!" }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: "cy:space-y-2 cy:text-[14px] cy:text-black", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "cy:flex cy:items-start cy:gap-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex-shrink-0 cy:w-5 cy:h-5 cy:rounded-full cy:bg-[#0251AF] cy:flex cy:items-center cy:justify-center cy:text-white cy:text-[10px] cy:font-bold cy:mt-0.5", children: "i" }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
              "Scan your site for issues with",
              " ",
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Link,
                {
                  to: "/",
                  className: "cy:font-bold cy:text-black! cy:underline cy:cursor-pointer",
                  children: "Accessibility checker"
                }
              )
            ] })
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "cy:flex cy:items-start cy:gap-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex-shrink-0 cy:w-5 cy:h-5 cy:rounded-full cy:bg-[#0251AF] cy:flex cy:items-center cy:justify-center cy:text-white cy:text-[10px] cy:font-bold cy:mt-0.5", children: "i" }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
              "Fix problems with built-in tools in",
              " ",
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Link,
                {
                  to: "/issue-fixes",
                  className: "cy:font-bold cy:text-black! cy:underline cy:cursor-pointer",
                  children: "Issue fixes"
                }
              )
            ] })
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "cy:flex cy:items-start cy:gap-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex-shrink-0 cy:w-5 cy:h-5 cy:rounded-full cy:bg-[#0251AF] cy:flex cy:items-center cy:justify-center cy:text-white cy:text-[10px] cy:font-bold cy:mt-0.5", children: "i" }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
              "Enhance usability with the",
              " ",
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Link,
                {
                  to: "/accessibility-toolbar",
                  className: "cy:font-bold cy:text-black! cy:underline cy:cursor-pointer",
                  children: "Toolbar"
                }
              )
            ] })
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "cy:flex cy:items-start cy:gap-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex-shrink-0 cy:w-5 cy:h-5 cy:rounded-full cy:bg-[#0251AF] cy:flex cy:items-center cy:justify-center cy:text-white cy:text-[10px] cy:font-bold cy:mt-0.5", children: "i" }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
              "Publish your Accessibility Statement to show your commitment using the",
              " ",
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Link,
                {
                  to: "/statement",
                  className: "cy:font-bold cy:text-black! cy:underline cy:cursor-pointer",
                  children: "Statement generator"
                }
              )
            ] })
          ] })
        ] })
      ] })
    ] })
  ] }) });
};
const CloseIcon$1 = (props) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    ...props,
    width: "7",
    height: "7",
    viewBox: "0 0 7 7",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M0.353516 0.353516L6.35352 6.35352", stroke: "white" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M6.35352 0.353516L0.353516 6.35352", stroke: "white" })
    ]
  }
);
const BlackFridayIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    ...props,
    width: "263",
    height: "62",
    viewBox: "0 0 263 62",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("g", { filter: "url(#filter0_i_2001_380)", children: /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { y: "20", width: "252", height: "36.1395", fill: "black" }) }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { filter: "url(#filter1_d_2001_380)", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M37.8832 37.3177C39.9218 38.0485 41.1863 39.6144 41.1863 41.8329C41.1863 44.9908 38.6057 46.8438 33.7544 46.8438H24V28.5746H33.2383C37.9864 28.5746 40.3089 30.532 40.3089 33.3507C40.3089 35.0993 39.4315 36.5087 37.8832 37.3177ZM32.5673 32.3068H29.0578V35.8301H32.5673C34.2705 35.8301 35.1478 35.2298 35.1478 34.0554C35.1478 32.907 34.2705 32.3068 32.5673 32.3068ZM33.3415 43.1117C35.0962 43.1117 36.0252 42.5114 36.0252 41.2587C36.0252 40.0059 35.0962 39.4057 33.3415 39.4057H29.0578V43.1117H33.3415Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M43.8327 46.8438V28.5746H48.9421V42.7463H57.5611V46.8438H43.8327Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M73.3065 46.8438L71.8872 43.2944H64.2488L62.8296 46.8438H57.6169L65.5907 28.5746H70.6227L78.6223 46.8438H73.3065ZM65.7455 39.484H70.3905L68.068 33.6378L65.7455 39.484Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M88.8249 47.2092C83.0961 47.2092 78.8899 43.2683 78.8899 37.7092C78.8899 32.1502 83.0961 28.2092 88.8249 28.2092C92.1537 28.2092 94.8375 29.4359 96.5922 31.6543L93.3408 34.6296C92.2053 33.2463 90.8119 32.4894 89.0829 32.4894C86.1153 32.4894 84.0509 34.5774 84.0509 37.7092C84.0509 40.8411 86.1153 42.929 89.0829 42.929C90.8119 42.929 92.2053 42.1721 93.3408 40.7889L96.5922 43.7642C94.8375 45.9826 92.1537 47.2092 88.8249 47.2092Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M110.999 46.8438L105.838 40.2147L103.928 42.2765V46.8438H98.8703V28.5746H103.928V36.1694L110.921 28.5746H116.547L109.167 36.6653L116.934 46.8438H110.999Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M139.951 32.5677H130.894V36.587H138.868V40.5801H130.894V46.8438H126.021L126.5 28.5746H130.894L139.951 28.5746V32.5677Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M153.515 46.8438L150.237 41.9894H147.45V46.8438H142.341V28.5746H150.599C155.527 28.5746 158.624 31.1584 158.624 35.3342C158.624 38.0224 157.334 40.0059 155.089 41.1021L158.985 46.8438H153.515ZM153.463 35.3342C153.463 33.6378 152.405 32.646 150.289 32.646H147.45V37.9963H150.289C152.405 37.9963 153.463 37.0046 153.463 35.3342Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M161.443 46.8438V28.5746H166.552V46.8438H161.443Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M170.187 46.8438V28.5746H178.729C184.716 28.5746 188.819 32.098 188.819 37.7092C188.819 43.3205 184.716 46.8438 178.729 46.8438H170.187ZM175.297 42.7202H178.523C181.593 42.7202 183.658 40.8672 183.658 37.7092C183.658 34.5513 181.593 32.6982 178.523 32.6982H175.297V42.7202Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M204.777 46.8438L203.358 43.2944H195.719L194.3 46.8438H189.087L197.061 28.5746H202.093L210.093 46.8438H204.777ZM197.216 39.484H201.861L199.538 33.6378L197.216 39.484Z",
            fill: "#E5E5E5"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M227 28.5746L220.084 40.293V46.8438H214.975V40.2147L208.085 28.5746H213.478L217.762 35.8301L222.045 28.5746H227Z",
            fill: "#E5E5E5"
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("g", { filter: "url(#filter2_d_2001_380)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M231.728 14.7124C232.348 15.3757 233.368 15.6037 234.257 15.278C235.53 14.8111 236.962 15.4914 237.261 16.7066C237.47 17.5553 238.256 18.1872 239.211 18.2731C240.578 18.3955 241.496 19.6014 241.138 20.8039C240.888 21.6441 241.26 22.5345 242.062 23.0124C243.209 23.697 243.404 25.1512 242.471 26.0654C241.819 26.704 241.692 27.6488 242.157 28.41C242.822 29.4993 242.249 30.8693 240.954 31.2852C240.05 31.576 239.453 32.3593 239.474 33.2292C239.504 34.4742 238.295 35.4454 236.935 35.2685C235.985 35.1443 235.055 35.5874 234.628 36.3664C234.016 37.4813 232.447 37.8316 231.335 37.102C230.557 36.5917 229.506 36.5917 228.729 37.102C227.616 37.8316 226.047 37.4813 225.435 36.3664C225.008 35.5874 224.078 35.1443 223.128 35.2685C221.769 35.4462 220.559 34.4742 220.589 33.2292C220.611 32.3593 220.013 31.576 219.109 31.2852C217.814 30.8693 217.241 29.4993 217.906 28.41C218.371 27.6488 218.244 26.7032 217.592 26.0654C216.659 25.152 216.854 23.697 218.001 23.0124C218.802 22.5345 219.176 21.6433 218.925 20.8039C218.567 19.6023 219.485 18.3964 220.852 18.2731C221.807 18.1872 222.593 17.5553 222.802 16.7066C223.101 15.4914 224.533 14.8102 225.806 15.278C226.695 15.6045 227.716 15.3766 228.336 14.7124C229.223 13.7625 230.839 13.7625 231.728 14.7124Z",
          fill: "#155DFC"
        }
      ) }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M225.032 29.4238C224.568 29.4238 224.139 29.3221 223.747 29.1187C223.359 28.9152 223.046 28.6445 222.807 28.3067C222.572 27.9652 222.455 27.5909 222.455 27.184L222.468 23.6473C222.468 23.2331 222.585 22.8607 222.82 22.5301C223.05 22.1959 223.361 21.9288 223.753 21.729C224.145 21.5256 224.572 21.4238 225.032 21.4238C225.51 21.4238 225.938 21.5237 226.318 21.7236C226.701 21.9234 227.008 22.1922 227.238 22.5301C227.473 22.8643 227.59 23.2367 227.59 23.6473L227.603 27.184C227.603 27.5909 227.488 27.9633 227.258 28.3012C227.023 28.6427 226.712 28.9152 226.324 29.1187C225.936 29.3221 225.505 29.4238 225.032 29.4238ZM225.032 28.0778C225.297 28.0778 225.527 27.987 225.723 27.8053C225.919 27.62 226.017 27.4129 226.017 27.184L226.004 23.6473C226.004 23.4002 225.913 23.1913 225.729 23.0206C225.546 22.8498 225.314 22.7644 225.032 22.7644C224.764 22.7644 224.533 22.848 224.342 23.0151C224.15 23.1822 224.054 23.3929 224.054 23.6473V27.184C224.054 27.4275 224.15 27.6382 224.342 27.8162C224.533 27.9906 224.764 28.0778 225.032 28.0778Z",
          fill: "white"
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M230.129 29.3148H228.658C228.615 29.3148 228.594 29.2967 228.594 29.2603L228.62 21.5928C228.62 21.5637 228.637 21.5492 228.671 21.5492H232.866C232.909 21.5492 232.93 21.5637 232.93 21.5928V22.8516C232.93 22.8807 232.913 22.8952 232.879 22.8952H230.193V24.6282H232.879C232.913 24.6282 232.93 24.6464 232.93 24.6827L232.943 25.947C232.943 25.9761 232.921 25.9906 232.879 25.9906H230.193V29.2603C230.193 29.2967 230.172 29.3148 230.129 29.3148Z",
          fill: "white"
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M235.641 29.3148H234.171C234.128 29.3148 234.107 29.2967 234.107 29.2603L234.132 21.5928C234.132 21.5637 234.149 21.5492 234.183 21.5492H238.378C238.421 21.5492 238.442 21.5637 238.442 21.5928V22.8516C238.442 22.8807 238.425 22.8952 238.391 22.8952H235.705V24.6282H238.391C238.425 24.6282 238.442 24.6464 238.442 24.6827L238.455 25.947C238.455 25.9761 238.434 25.9906 238.391 25.9906H235.705V29.2603C235.705 29.2967 235.684 29.3148 235.641 29.3148Z",
          fill: "white"
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "filter",
          {
            id: "filter0_i_2001_380",
            x: "0",
            y: "20",
            width: "252",
            height: "40.1396",
            filterUnits: "userSpaceOnUse",
            colorInterpolationFilters: "sRGB",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  mode: "normal",
                  in: "SourceGraphic",
                  in2: "BackgroundImageFix",
                  result: "shape"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feColorMatrix",
                {
                  in: "SourceAlpha",
                  type: "matrix",
                  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
                  result: "hardAlpha"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feOffset", { dy: "4" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "6.5" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feComposite", { in2: "hardAlpha", operator: "arithmetic", k2: "-1", k3: "1" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feColorMatrix",
                {
                  type: "matrix",
                  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  mode: "normal",
                  in2: "shape",
                  result: "effect1_innerShadow_2001_380"
                }
              )
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "filter",
          {
            id: "filter1_d_2001_380",
            x: "14",
            y: "21.2092",
            width: "223",
            height: "39",
            filterUnits: "userSpaceOnUse",
            colorInterpolationFilters: "sRGB",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feColorMatrix",
                {
                  in: "SourceAlpha",
                  type: "matrix",
                  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
                  result: "hardAlpha"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feOffset", { dy: "3" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "5" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feColorMatrix",
                {
                  type: "matrix",
                  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  mode: "multiply",
                  in2: "BackgroundImageFix",
                  result: "effect1_dropShadow_2001_380"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  mode: "normal",
                  in: "SourceGraphic",
                  in2: "effect1_dropShadow_2001_380",
                  result: "shape"
                }
              )
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "filter",
          {
            id: "filter2_d_2001_380",
            x: "198",
            y: "0",
            width: "64.0625",
            height: "61.4849",
            filterUnits: "userSpaceOnUse",
            colorInterpolationFilters: "sRGB",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feColorMatrix",
                {
                  in: "SourceAlpha",
                  type: "matrix",
                  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
                  result: "hardAlpha"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feOffset", { dy: "5" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "9.5" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feColorMatrix",
                {
                  type: "matrix",
                  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  mode: "normal",
                  in2: "BackgroundImageFix",
                  result: "effect1_dropShadow_2001_380"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "feBlend",
                {
                  mode: "normal",
                  in: "SourceGraphic",
                  in2: "effect1_dropShadow_2001_380",
                  result: "shape"
                }
              )
            ]
          }
        )
      ] })
    ]
  }
);
const ThirtyOffIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    ...props,
    width: "59",
    height: "62",
    viewBox: "0 0 59 62",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { width: "59", height: "62", fill: "#155DFC" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M14.5952 28.2808C13.7244 28.2808 12.9147 28.0488 12.166 27.585C11.4255 27.1292 10.8314 26.5189 10.3838 25.7539C9.94434 24.9808 9.72461 24.1385 9.72461 23.2271V22.104C9.72461 22.0145 9.75716 21.9697 9.82227 21.9697H12.6299C12.7113 21.9697 12.752 22.0145 12.752 22.104V23.2271C12.752 23.7723 12.9269 24.2443 13.2769 24.6431C13.6268 25.0337 14.0662 25.229 14.5952 25.229C15.1812 25.229 15.641 25.0256 15.9746 24.6187C16.3083 24.2036 16.4751 23.7397 16.4751 23.2271V22.5557C16.4751 22.0348 16.3123 21.5669 15.9868 21.1519C15.6613 20.7368 15.2503 20.5293 14.7539 20.5293H13.7773C13.696 20.5293 13.6553 20.4845 13.6553 20.395L13.6797 17.5996C13.6797 17.5345 13.7122 17.502 13.7773 17.502H14.7539C15.2015 17.502 15.6003 17.327 15.9502 16.9771C16.3001 16.6271 16.4751 16.1673 16.4751 15.5977V15.2559C16.4751 14.7188 16.2961 14.263 15.938 13.8887C15.5799 13.5143 15.1323 13.3271 14.5952 13.3271C14.0825 13.3271 13.6471 13.5143 13.2891 13.8887C12.931 14.263 12.752 14.7188 12.752 15.2559V16.4521C12.752 16.5335 12.7194 16.5742 12.6543 16.5742H9.84668C9.78158 16.5742 9.74902 16.5335 9.74902 16.4521V15.1216C9.74902 14.2101 9.98096 13.3963 10.4448 12.6802C10.9006 11.964 11.4987 11.3944 12.2393 10.9712C12.9798 10.5399 13.7651 10.3242 14.5952 10.3242C15.4985 10.3242 16.3205 10.5439 17.061 10.9834C17.8016 11.431 18.3875 12.021 18.8188 12.7534C19.2583 13.4858 19.478 14.2915 19.478 15.1704V15.5732C19.478 16.3057 19.356 16.9404 19.1118 17.4775C18.8677 18.0065 18.5299 18.5151 18.0986 19.0034C18.5299 19.4998 18.8717 20.0451 19.124 20.6392C19.3763 21.2332 19.5024 21.8436 19.5024 22.4702V23.2271C19.5024 24.1548 19.2827 25.0052 18.8433 25.7783C18.3957 26.5433 17.8016 27.1536 17.061 27.6094C16.3205 28.057 15.4985 28.2808 14.5952 28.2808ZM26.436 28.2441C25.3781 28.2441 24.4382 28.0163 23.6162 27.5605C22.8024 27.1048 22.1636 26.4985 21.6997 25.7417C21.244 24.9767 21.0161 24.1385 21.0161 23.2271L21.0405 15.3047C21.0405 14.377 21.2725 13.5428 21.7363 12.8022C22.1921 12.0535 22.8268 11.4554 23.6406 11.0078C24.4544 10.5521 25.3862 10.3242 26.436 10.3242C27.5103 10.3242 28.4461 10.548 29.2437 10.9956C30.0412 11.4432 30.6678 12.0454 31.1235 12.8022C31.5874 13.5509 31.8193 14.3851 31.8193 15.3047L31.8438 23.2271C31.8438 24.1304 31.6159 24.9645 31.1602 25.7295C30.6963 26.4945 30.0575 27.1048 29.2437 27.5605C28.438 28.0163 27.5021 28.2441 26.436 28.2441ZM28.8164 23.2271L28.792 15.3047C28.792 14.7188 28.5723 14.2427 28.1328 13.8765C27.7015 13.5103 27.1359 13.3271 26.436 13.3271C25.7199 13.3271 25.1462 13.5103 24.7148 13.8765C24.2835 14.2427 24.0679 14.7188 24.0679 15.3047V23.2271C24.0679 23.8455 24.2835 24.3338 24.7148 24.6919C25.1462 25.05 25.7199 25.229 26.436 25.229C27.1359 25.229 27.7056 25.05 28.145 24.6919C28.5926 24.3338 28.8164 23.8455 28.8164 23.2271ZM36.3604 18.6738C35.7744 18.6738 35.2414 18.5233 34.7612 18.2222C34.2648 17.9211 33.8701 17.5223 33.5771 17.0259C33.2842 16.5213 33.1377 15.9801 33.1377 15.4023V13.6201C33.1377 13.0179 33.2842 12.4686 33.5771 11.9722C33.8701 11.4676 34.2607 11.0729 34.749 10.7881C35.2454 10.4951 35.7826 10.3486 36.3604 10.3486C36.9626 10.3486 37.5078 10.4951 37.9961 10.7881C38.4762 11.0811 38.8547 11.4798 39.1313 11.9844C39.4162 12.4808 39.5586 13.026 39.5586 13.6201V15.4023C39.5586 15.9964 39.4162 16.5417 39.1313 17.0381C38.8384 17.5264 38.4478 17.9211 37.9595 18.2222C37.4793 18.5233 36.9463 18.6738 36.3604 18.6738ZM37.4834 28H34.5659C34.4845 28 34.4601 27.9593 34.4927 27.8779L44.4658 10.7026C44.5146 10.6375 44.5635 10.605 44.6123 10.605H47.5176C47.6071 10.605 47.6315 10.6375 47.5908 10.7026L37.6421 27.8779C37.6095 27.9593 37.5566 28 37.4834 28ZM36.3115 16.6475C36.6452 16.6475 36.9178 16.5295 37.1294 16.2935C37.3491 16.0493 37.459 15.7523 37.459 15.4023V13.6689C37.459 13.3434 37.3491 13.0586 37.1294 12.8145C36.9178 12.5703 36.6452 12.4482 36.3115 12.4482C35.9779 12.4482 35.6971 12.5703 35.4692 12.8145C35.2495 13.0586 35.1396 13.3434 35.1396 13.6689V15.4023C35.1396 15.736 35.2536 16.029 35.4814 16.2812C35.7174 16.5254 35.9941 16.6475 36.3115 16.6475ZM45.9917 28.2441C45.3976 28.2441 44.8605 28.0936 44.3804 27.7925C43.884 27.4995 43.4893 27.1048 43.1963 26.6084C42.9033 26.1038 42.7568 25.5586 42.7568 24.9727V23.2026C42.7568 22.5923 42.9033 22.0389 43.1963 21.5425C43.4893 21.0379 43.8799 20.6432 44.3682 20.3584C44.8646 20.0654 45.4058 19.9189 45.9917 19.9189C46.5858 19.9189 47.127 20.0654 47.6152 20.3584C48.0954 20.6514 48.4779 21.0501 48.7627 21.5547C49.0475 22.0511 49.1899 22.6004 49.1899 23.2026V24.9727C49.1899 25.5749 49.0435 26.1201 48.7505 26.6084C48.4575 27.1048 48.0669 27.5036 47.5786 27.8047C47.0985 28.0977 46.5695 28.2441 45.9917 28.2441ZM45.9673 26.23C46.3009 26.23 46.5736 26.1079 46.7852 25.8638C47.0049 25.6196 47.1147 25.3226 47.1147 24.9727V23.2515C47.1147 22.9178 47.0049 22.633 46.7852 22.397C46.5736 22.1528 46.3009 22.0308 45.9673 22.0308C45.6336 22.0308 45.3529 22.1528 45.125 22.397C44.8971 22.633 44.7832 22.9178 44.7832 23.2515V24.9727C44.7832 25.3063 44.9012 25.5993 45.1372 25.8516C45.3732 26.1038 45.6499 26.23 45.9673 26.23Z",
          fill: "white"
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M18.8799 53.2441C17.9928 53.2441 17.175 53.0163 16.4263 52.5605C15.6857 52.1048 15.0876 51.4985 14.6318 50.7417C14.1842 49.9767 13.9604 49.1385 13.9604 48.2271L13.9849 40.3047C13.9849 39.377 14.2087 38.5428 14.6562 37.8022C15.0957 37.0535 15.6898 36.4554 16.4385 36.0078C17.1872 35.5521 18.001 35.3242 18.8799 35.3242C19.7913 35.3242 20.6092 35.548 21.3335 35.9956C22.0659 36.4432 22.6519 37.0454 23.0913 37.8022C23.5389 38.5509 23.7627 39.3851 23.7627 40.3047L23.7871 48.2271C23.7871 49.1385 23.5674 49.9727 23.1279 50.7295C22.6803 51.4945 22.0863 52.1048 21.3457 52.5605C20.6051 53.0163 19.7832 53.2441 18.8799 53.2441ZM18.8799 50.229C19.3844 50.229 19.8239 50.0256 20.1982 49.6187C20.5726 49.2036 20.7598 48.7397 20.7598 48.2271L20.7354 40.3047C20.7354 39.7513 20.5604 39.2834 20.2104 38.9009C19.8605 38.5184 19.417 38.3271 18.8799 38.3271C18.3672 38.3271 17.9277 38.5143 17.5615 38.8887C17.1953 39.263 17.0122 39.735 17.0122 40.3047V48.2271C17.0122 48.7723 17.1953 49.2443 17.5615 49.6431C17.9277 50.0337 18.3672 50.229 18.8799 50.229ZM28.6089 53H25.8013C25.7199 53 25.6792 52.9593 25.6792 52.8779L25.728 35.7026C25.728 35.6375 25.7606 35.605 25.8257 35.605H33.8335C33.9149 35.605 33.9556 35.6375 33.9556 35.7026V38.5225C33.9556 38.5876 33.923 38.6201 33.8579 38.6201H28.731V42.502H33.8579C33.923 42.502 33.9556 42.5426 33.9556 42.624L33.98 45.4561C33.98 45.5212 33.9393 45.5537 33.8579 45.5537H28.731V52.8779C28.731 52.9593 28.6903 53 28.6089 53ZM39.1313 53H36.3237C36.2424 53 36.2017 52.9593 36.2017 52.8779L36.2505 35.7026C36.2505 35.6375 36.283 35.605 36.3481 35.605H44.356C44.4373 35.605 44.478 35.6375 44.478 35.7026V38.5225C44.478 38.5876 44.4455 38.6201 44.3804 38.6201H39.2534V42.502H44.3804C44.4455 42.502 44.478 42.5426 44.478 42.624L44.5024 45.4561C44.5024 45.5212 44.4618 45.5537 44.3804 45.5537H39.2534V52.8779C39.2534 52.9593 39.2127 53 39.1313 53Z",
          fill: "white"
        }
      )
    ]
  }
);
const ExploreNowIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "svg",
  {
    ...props,
    width: "82",
    height: "14",
    viewBox: "0 0 82 14",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "path",
      {
        d: "M0.000355095 10.1819V6.62804e-05H6.62251V1.54623H1.84482V4.31044H6.27947V5.8566H1.84482V8.63572H6.66229V10.1819H0.000355095ZM9.89631 2.54552L11.4375 5.36441L13.0036 2.54552H14.9077L12.6058 6.3637L14.9474 10.1819H13.0533L11.4375 7.43259L9.83665 10.1819H7.92756L10.2543 6.3637L7.98722 2.54552H9.89631ZM16.2997 13.0455V2.54552H18.0696V3.80831H18.174C18.2668 3.6227 18.3977 3.42549 18.5668 3.21669C18.7358 3.00456 18.9645 2.82393 19.2528 2.67478C19.5412 2.52232 19.9091 2.44609 20.3565 2.44609C20.9465 2.44609 21.4785 2.59689 21.9524 2.8985C22.4297 3.1968 22.8075 3.63927 23.0859 4.22592C23.3677 4.80925 23.5085 5.52516 23.5085 6.37365C23.5085 7.21219 23.371 7.92478 23.0959 8.51143C22.8208 9.09808 22.4463 9.54552 21.9723 9.85376C21.4983 10.162 20.9614 10.3161 20.3615 10.3161C19.924 10.3161 19.5611 10.2432 19.2727 10.0974C18.9844 9.95153 18.7524 9.77587 18.5767 9.57038C18.4044 9.36157 18.2701 9.16437 18.174 8.97876H18.0994V13.0455H16.2997ZM18.0646 6.3637C18.0646 6.85755 18.1342 7.29008 18.2734 7.66129C18.416 8.0325 18.6198 8.32251 18.8849 8.53132C19.1534 8.73681 19.4782 8.83956 19.8594 8.83956C20.2571 8.83956 20.5902 8.73349 20.8587 8.52137C21.1271 8.30594 21.3293 8.01261 21.4652 7.6414C21.6044 7.26688 21.674 6.84098 21.674 6.3637C21.674 5.88974 21.6061 5.46882 21.4702 5.10092C21.3343 4.73302 21.1321 4.44467 20.8636 4.23586C20.5952 4.02705 20.2604 3.92265 19.8594 3.92265C19.4749 3.92265 19.1484 4.02374 18.88 4.22592C18.6115 4.4281 18.4077 4.71148 18.2685 5.07606C18.1326 5.44064 18.0646 5.86986 18.0646 6.3637ZM26.8494 6.62804e-05V10.1819H25.0497V6.62804e-05H26.8494ZM32.0311 10.331C31.2853 10.331 30.639 10.167 30.0922 9.83884C29.5453 9.51072 29.121 9.05168 28.8194 8.46171C28.5211 7.87175 28.372 7.18236 28.372 6.39353C28.372 5.60471 28.5211 4.91366 28.8194 4.32038C29.121 3.7271 29.5453 3.2664 30.0922 2.93828C30.639 2.61015 31.2853 2.44609 32.0311 2.44609C32.7768 2.44609 33.4231 2.61015 33.97 2.93828C34.5169 3.2664 34.9395 3.7271 35.2377 4.32038C35.5394 4.91366 35.6902 5.60471 35.6902 6.39353C35.6902 7.18236 35.5394 7.87175 35.2377 8.46171C34.9395 9.05168 34.5169 9.51072 33.97 9.83884C33.4231 10.167 32.7768 10.331 32.0311 10.331ZM32.041 8.88927C32.4454 8.88927 32.7834 8.77824 33.0552 8.55617C33.327 8.3308 33.5292 8.02919 33.6618 7.65134C33.7976 7.2735 33.8656 6.85258 33.8656 6.38856C33.8656 5.92123 33.7976 5.49865 33.6618 5.12081C33.5292 4.73965 33.327 4.43638 33.0552 4.211C32.7834 3.98563 32.4454 3.87294 32.041 3.87294C31.6267 3.87294 31.282 3.98563 31.0069 4.211C30.7351 4.43638 30.5313 4.73965 30.3954 5.12081C30.2628 5.49865 30.1966 5.92123 30.1966 6.38856C30.1966 6.85258 30.2628 7.2735 30.3954 7.65134C30.5313 8.02919 30.7351 8.3308 31.0069 8.55617C31.282 8.77824 31.6267 8.88927 32.041 8.88927ZM37.2177 10.1819V2.54552H38.9627V3.81825H39.0423C39.1815 3.37743 39.4201 3.03771 39.7582 2.79907C40.0996 2.55712 40.489 2.43615 40.9265 2.43615C41.0259 2.43615 41.137 2.44112 41.2596 2.45106C41.3855 2.45769 41.4899 2.46929 41.5728 2.48586V4.1414C41.4966 4.11489 41.3756 4.09169 41.2099 4.0718C41.0475 4.0486 40.89 4.037 40.7376 4.037C40.4094 4.037 40.1145 4.10826 39.8526 4.25078C39.5941 4.38998 39.3903 4.58387 39.2411 4.83245C39.092 5.08103 39.0174 5.36773 39.0174 5.69254V10.1819H37.2177ZM45.8347 10.331C45.0691 10.331 44.4078 10.1719 43.851 9.85376C43.2975 9.53226 42.8716 9.07819 42.5733 8.49154C42.275 7.90158 42.1259 7.20722 42.1259 6.40845C42.1259 5.62294 42.275 4.93354 42.5733 4.34027C42.8749 3.74367 43.2959 3.27966 43.8361 2.94822C44.3764 2.61347 45.0111 2.44609 45.7402 2.44609C46.2109 2.44609 46.655 2.52232 47.0726 2.67478C47.4935 2.82393 47.8648 3.05594 48.1863 3.37081C48.5111 3.68567 48.7663 4.08671 48.9519 4.57393C49.1375 5.05783 49.2303 5.63454 49.2303 6.30404V6.85589H42.9711V5.64282H47.5051C47.5018 5.29813 47.4273 4.99154 47.2814 4.72308C47.1356 4.4513 46.9318 4.23752 46.6699 4.08174C46.4114 3.92597 46.1098 3.84808 45.7651 3.84808C45.3972 3.84808 45.074 3.93757 44.7956 4.11654C44.5172 4.29221 44.3001 4.52421 44.1444 4.81257C43.9919 5.0976 43.914 5.41081 43.9107 5.7522V6.81115C43.9107 7.25527 43.9919 7.63643 44.1543 7.95461C44.3167 8.26948 44.5437 8.51143 44.8354 8.68046C45.1271 8.84618 45.4685 8.92904 45.8596 8.92904C46.1214 8.92904 46.3584 8.89259 46.5705 8.81967C46.7826 8.74344 46.9666 8.63241 47.1223 8.48657C47.2781 8.34074 47.3958 8.1601 47.4753 7.94467L49.1557 8.13359C49.0497 8.57772 48.8475 8.9655 48.5492 9.29694C48.2542 9.62507 47.8764 9.88027 47.4157 10.0626C46.955 10.2415 46.428 10.331 45.8347 10.331ZM56.0252 5.70745V10.1819H54.2255V2.54552H55.9457V3.84311H56.0352C56.2108 3.41555 56.4909 3.07582 56.8754 2.82393C57.2631 2.57204 57.7421 2.44609 58.3121 2.44609C58.8391 2.44609 59.2982 2.55878 59.6893 2.78416C60.0837 3.00954 60.3886 3.336 60.604 3.76356C60.8228 4.19112 60.9305 4.70982 60.9272 5.31967V10.1819H59.1275V5.59808C59.1275 5.08766 58.9949 4.68828 58.7298 4.39992C58.4679 4.11157 58.105 3.9674 57.641 3.9674C57.3261 3.9674 57.046 4.037 56.8008 4.1762C56.5588 4.31209 56.3683 4.5093 56.229 4.76782C56.0932 5.02634 56.0252 5.33956 56.0252 5.70745ZM66.0877 10.331C65.342 10.331 64.6957 10.167 64.1488 9.83884C63.6019 9.51072 63.1777 9.05168 62.8761 8.46171C62.5778 7.87175 62.4286 7.18236 62.4286 6.39353C62.4286 5.60471 62.5778 4.91366 62.8761 4.32038C63.1777 3.7271 63.6019 3.2664 64.1488 2.93828C64.6957 2.61015 65.342 2.44609 66.0877 2.44609C66.8335 2.44609 67.4798 2.61015 68.0266 2.93828C68.5735 3.2664 68.9961 3.7271 69.2944 4.32038C69.596 4.91366 69.7468 5.60471 69.7468 6.39353C69.7468 7.18236 69.596 7.87175 69.2944 8.46171C68.9961 9.05168 68.5735 9.51072 68.0266 9.83884C67.4798 10.167 66.8335 10.331 66.0877 10.331ZM66.0977 8.88927C66.502 8.88927 66.8401 8.77824 67.1119 8.55617C67.3836 8.3308 67.5858 8.02919 67.7184 7.65134C67.8543 7.2735 67.9222 6.85258 67.9222 6.38856C67.9222 5.92123 67.8543 5.49865 67.7184 5.12081C67.5858 4.73965 67.3836 4.43638 67.1119 4.211C66.8401 3.98563 66.502 3.87294 66.0977 3.87294C65.6834 3.87294 65.3387 3.98563 65.0636 4.211C64.7918 4.43638 64.5879 4.73965 64.4521 5.12081C64.3195 5.49865 64.2532 5.92123 64.2532 6.38856C64.2532 6.85258 64.3195 7.2735 64.4521 7.65134C64.5879 8.02919 64.7918 8.3308 65.0636 8.55617C65.3387 8.77824 65.6834 8.88927 66.0977 8.88927ZM72.6316 10.1819L70.4739 2.54552H72.3084L73.6507 7.91484H73.7203L75.0925 2.54552H76.9071L78.2793 7.88501H78.3539L79.6763 2.54552H81.5158L79.3532 10.1819H77.4789L76.0471 5.02137H75.9426L74.5108 10.1819H72.6316Z",
        fill: "white"
      }
    )
  }
);
const START_DATE = /* @__PURE__ */ new Date("2025-11-25T00:00:00Z");
const END_DATE = /* @__PURE__ */ new Date("2025-12-02T00:00:00Z");
const BlackFridayBanner = () => {
  const { isVisible, updateState } = useBanner({
    slug: "black-friday-banner",
    defaultState: {
      dismissed: false,
      dismissedAt: null
    },
    visibilityCheck: (state) => {
      if (state.dismissed) {
        return false;
      }
      const now = /* @__PURE__ */ new Date();
      if (now >= START_DATE && now < END_DATE) {
        return true;
      }
      return false;
    }
  });
  const handleDismiss = async () => {
    await updateState({
      dismissed: true,
      dismissedAt: Date.now()
    });
  };
  if (!isVisible) {
    return null;
  }
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:relative cy:w-full cy:bg-black cy:h-[62px] cy:overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:max-w-full cy:w-full cy:h-full cy:mx-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between cy:gap-4 cy:relative cy:h-[62px] cy:px-6 cy:py-0", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "button",
      {
        onClick: handleDismiss,
        className: "cy:absolute cy:top-[19px] cy:right-[18px] cy:text-white cy:hover:text-gray-300 cy:transition-colors cy:flex cy:items-center cy:justify-center cy:p-1 cy:z-10 cy:cursor-pointer cy:bg-transparent cy:border-0",
        "aria-label": "Dismiss banner",
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(CloseIcon$1, { className: "cy:w-[7px] cy:h-[7px]" })
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:items-center cy:relative cy:flex-shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(BlackFridayIcon, { className: "cy:h-[62px] cy:w-[263px] cy:block" }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-shrink-0 cy:flex cy:items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThirtyOffIcon, { className: "cy:w-[59px] cy:h-[62px]" }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-1 cy:flex cy:items-center cy:min-w-0 cy:pr-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "cy:text-white cy:text-[14px] cy:leading-[156%] cy:font-normal cy:m-0", children: [
      "Limited time offer to get comprehensive accessibility audits with",
      " ",
      /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:font-bold", children: "WebYes Accessibility" }),
      "."
    ] }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-shrink-0 cy:flex cy:items-center cy:mr-[18px]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "a",
      {
        href: "https://accessibility.webyes.com/signUp?utm_source=Pluginscreen&utm_medium=AccessibilityPlus&utm_campaign=BlackFriday2025&utm_content=Banner",
        target: "_blank",
        rel: "noopener noreferrer",
        className: "cy:inline-flex cy:items-center cy:justify-center cy:bg-[#155DFC] cy:hover:bg-[#1249CC] cy:text-white cy:px-5 cy:py-2.5 cy:rounded-full cy:transition-colors cy:cursor-pointer cy:no-underline",
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(ExploreNowIcon, { className: "cy:w-[82px] cy:h-[14px]" })
      }
    ) })
  ] }) }) });
};
const BOOK_CALL_URL = `https://www.webyes.com/free-accessibility-consultation/?utm_source=accessibility_toolkit&utm_medium=wordpress&utm_campaign=consultation&utm_content=${PLUGIN_VERSION}`;
const StarSVG = () => /* @__PURE__ */ jsxRuntimeExports.jsx(
  "svg",
  {
    width: "28",
    height: "28",
    viewBox: "0 0 35 35",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    "aria-hidden": "true",
    children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      "path",
      {
        d: "M16.8073 3.34686C16.8712 3.21774 16.9699 3.10906 17.0923 3.03307C17.2147 2.95708 17.3559 2.91681 17.5 2.91681C17.6441 2.91681 17.7853 2.95708 17.9077 3.03307C18.0301 3.10906 18.1288 3.21774 18.1927 3.34686L21.5615 10.1704C21.7834 10.6195 22.111 11.0081 22.5161 11.3027C22.9213 11.5974 23.3919 11.7893 23.8875 11.8621L31.4213 12.9646C31.564 12.9853 31.6981 13.0455 31.8084 13.1384C31.9188 13.2313 32.0009 13.3533 32.0455 13.4905C32.0901 13.6276 32.0954 13.7745 32.0609 13.9146C32.0263 14.0546 31.9533 14.1822 31.85 14.2829L26.4017 19.5883C26.0424 19.9385 25.7735 20.3707 25.6183 20.8478C25.4631 21.3249 25.4261 21.8325 25.5106 22.3271L26.7969 29.8229C26.8221 29.9656 26.8067 30.1125 26.7524 30.2468C26.6981 30.3812 26.6072 30.4975 26.49 30.5827C26.3727 30.6678 26.2339 30.7183 26.0894 30.7284C25.9449 30.7384 25.8004 30.7077 25.6725 30.6396L18.9379 27.0987C18.4942 26.8657 18.0005 26.744 17.4993 26.744C16.9981 26.744 16.5044 26.8657 16.0606 27.0987L9.32752 30.6396C9.19967 30.7073 9.05539 30.7377 8.91109 30.7274C8.7668 30.7172 8.62828 30.6666 8.51128 30.5816C8.39429 30.4965 8.30353 30.3803 8.24931 30.2461C8.19509 30.112 8.1796 29.9654 8.2046 29.8229L9.48939 22.3285C9.57426 21.8338 9.5375 21.3258 9.38226 20.8484C9.22703 20.371 8.95799 19.9385 8.59835 19.5883L3.15002 14.2844C3.04589 14.1838 2.97209 14.056 2.93705 13.9155C2.902 13.775 2.90712 13.6276 2.9518 13.4898C2.99649 13.3521 3.07895 13.2298 3.1898 13.1366C3.30065 13.0435 3.43542 12.9834 3.57877 12.9631L11.1111 11.8621C11.6073 11.7899 12.0785 11.5982 12.4842 11.3035C12.8899 11.0088 13.2179 10.62 13.44 10.1704L16.8073 3.34686Z",
        fill: "#FFB700"
      }
    )
  }
);
const AccessibilityIcon = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    width: "12",
    height: "14",
    viewBox: "0 0 14 16",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    "aria-hidden": "true",
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "7", cy: "2.5", r: "2", fill: "white" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M3.5 5.5L7 6.5L10.5 5.5M7 6.5V10M5 14L7 10L9 14",
          stroke: "white",
          strokeWidth: "1.4",
          strokeLinecap: "round",
          strokeLinejoin: "round"
        }
      )
    ]
  }
);
const ConsultationBanner = () => {
  const { isVisible, handleDismiss } = useBanner({
    slug: "consultation-banner",
    defaultState: {
      dismissed: false,
      dismissedAt: null
    }
  });
  if (!isVisible) return null;
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:mb-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:min-h-[112px] cy:relative cy:bg-gradient-to-br cy:from-blue-600 cy:to-sky-500 cy:overflow-hidden cy:rounded-xl cy:flex cy:items-center cy:pl-[267px] cy:pr-10 cy:py-4", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "div",
      {
        "aria-hidden": "true",
        className: "cy:w-12 cy:h-48 cy:absolute cy:origin-top-left cy:bg-blue-800 cy:blur-[50px]",
        style: {
          left: "calc(100% - 115px)",
          top: "-52.16px",
          transform: "rotate(-50.18deg)",
          boxShadow: "-24px 4px 28px 0px rgba(0,0,0,0.25)"
        }
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "div",
      {
        "aria-hidden": "true",
        className: "cy:w-28 cy:h-32 cy:left-[30px] cy:top-[15px] cy:absolute cy:bg-white cy:rounded-2xl cy:outline cy:outline-2 cy:outline-white/30 cy:overflow-hidden",
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-12 cy:h-10 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 59, top: 17.29 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-24 cy:h-5 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 8.81, top: 74.17 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-8 cy:h-6 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 8.81, top: 88.06 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-8 cy:h-6 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 43.15, top: 88.06 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-8 cy:h-6 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 77.49, top: 88.06 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-11 cy:h-1.5 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 8.81, top: 23.02 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-4 cy:h-1.5 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 8.81, top: 47.67 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:w-4 cy:h-1.5 cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { left: 27.74, top: 47.67 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { width: 40, height: 2.64, left: 8.81, top: 32.26 }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:absolute cy:bg-indigo-100 cy:rounded-sm",
              style: { width: 28, height: 2.64, left: 8.81, top: 37.55 }
            }
          )
        ]
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "div",
      {
        "aria-hidden": "true",
        className: "cy:px-2.5 cy:py-1.5 cy:left-[70px] cy:top-[32px] cy:absolute cy:bg-white cy:rounded-xl cy:inline-flex cy:justify-start cy:items-center cy:gap-2",
        style: { boxShadow: "0px 16px 24px 0px rgba(33,15,111,0.37)" },
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-6 cy:h-6 cy:bg-[#0B66E4] cy:rounded-full cy:flex cy:items-center cy:justify-center cy:shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(AccessibilityIcon, {}) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-zinc-800 cy:text-xs cy:font-medium cy:leading-4 cy:whitespace-nowrap", children: "Accessibility Expert" })
        ]
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-1 cy:items-center cy:justify-between cy:gap-4 cy:min-w-0", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:justify-center cy:items-start cy:gap-1.5 cy:min-w-0", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:text-xl cy:font-bold cy:leading-8 cy:text-white", children: "You've unlocked a free 45-min accessibility consultation!" }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cy:text-white cy:text-sm cy:font-normal cy:leading-5", children: [
            "Get a live site review + a clear, prioritised plan for",
            " "
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-white cy:text-sm cy:font-bold cy:leading-5", children: "WCAG 2.2, ADA & EAA." })
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "a",
        {
          href: BOOK_CALL_URL,
          target: "_blank",
          rel: "noopener noreferrer",
          className: "cy:px-9 cy:py-3 cy:bg-white cy:hover:bg-white/90 cy:rounded cy:inline-flex cy:justify-center cy:items-center cy:gap-2.5 cy:text-[#0B66E4]! cy:text-base cy:font-bold! cy:leading-6 cy:no-underline",
          children: [
            "Book a call",
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:sr-only", children: "(opens in a new tab)" })
          ]
        }
      ) })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-9 cy:h-9 cy:left-[12px] cy:top-[7px] cy:absolute cy:overflow-hidden cy:flex cy:items-center cy:justify-center cy:z-20", children: /* @__PURE__ */ jsxRuntimeExports.jsx(StarSVG, {}) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "button",
      {
        onClick: handleDismiss,
        className: "cy:w-6 cy:h-6 cy:absolute cy:top-[9px] cy:right-[9px] cy:z-50 cy:flex cy:items-center cy:justify-center cy:text-white/70 cy:hover:text-white cy:transition-colors cy:rounded-full cy:hover:bg-white/10 cy:bg-transparent cy:border-0 cy:cursor-pointer",
        "aria-label": "Dismiss banner",
        type: "button",
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$1, { size: 16 })
      }
    )
  ] }) });
};
function __insertCSS(code) {
  if (typeof document == "undefined") return;
  let head = document.head || document.getElementsByTagName("head")[0];
  let style = document.createElement("style");
  style.type = "text/css";
  head.appendChild(style);
  style.styleSheet ? style.styleSheet.cssText = code : style.appendChild(document.createTextNode(code));
}
const getAsset = (type) => {
  switch (type) {
    case "success":
      return SuccessIcon;
    case "info":
      return InfoIcon;
    case "warning":
      return WarningIcon;
    case "error":
      return ErrorIcon;
    default:
      return null;
  }
};
const bars = Array(12).fill(0);
const Loader = ({ visible, className }) => {
  return /* @__PURE__ */ React.createElement("div", {
    className: [
      "sonner-loading-wrapper",
      className
    ].filter(Boolean).join(" "),
    "data-visible": visible
  }, /* @__PURE__ */ React.createElement("div", {
    className: "sonner-spinner"
  }, bars.map((_, i) => /* @__PURE__ */ React.createElement("div", {
    className: "sonner-loading-bar",
    key: `spinner-bar-${i}`
  }))));
};
const SuccessIcon = /* @__PURE__ */ React.createElement("svg", {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 20 20",
  fill: "currentColor",
  height: "20",
  width: "20"
}, /* @__PURE__ */ React.createElement("path", {
  fillRule: "evenodd",
  d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
  clipRule: "evenodd"
}));
const WarningIcon = /* @__PURE__ */ React.createElement("svg", {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  fill: "currentColor",
  height: "20",
  width: "20"
}, /* @__PURE__ */ React.createElement("path", {
  fillRule: "evenodd",
  d: "M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",
  clipRule: "evenodd"
}));
const InfoIcon = /* @__PURE__ */ React.createElement("svg", {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 20 20",
  fill: "currentColor",
  height: "20",
  width: "20"
}, /* @__PURE__ */ React.createElement("path", {
  fillRule: "evenodd",
  d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",
  clipRule: "evenodd"
}));
const ErrorIcon = /* @__PURE__ */ React.createElement("svg", {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 20 20",
  fill: "currentColor",
  height: "20",
  width: "20"
}, /* @__PURE__ */ React.createElement("path", {
  fillRule: "evenodd",
  d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",
  clipRule: "evenodd"
}));
const CloseIcon = /* @__PURE__ */ React.createElement("svg", {
  xmlns: "http://www.w3.org/2000/svg",
  width: "12",
  height: "12",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  strokeWidth: "1.5",
  strokeLinecap: "round",
  strokeLinejoin: "round"
}, /* @__PURE__ */ React.createElement("line", {
  x1: "18",
  y1: "6",
  x2: "6",
  y2: "18"
}), /* @__PURE__ */ React.createElement("line", {
  x1: "6",
  y1: "6",
  x2: "18",
  y2: "18"
}));
const useIsDocumentHidden = () => {
  const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);
  React.useEffect(() => {
    const callback = () => {
      setIsDocumentHidden(document.hidden);
    };
    document.addEventListener("visibilitychange", callback);
    return () => window.removeEventListener("visibilitychange", callback);
  }, []);
  return isDocumentHidden;
};
let toastsCounter = 1;
class Observer {
  constructor() {
    this.subscribe = (subscriber) => {
      this.subscribers.push(subscriber);
      return () => {
        const index2 = this.subscribers.indexOf(subscriber);
        this.subscribers.splice(index2, 1);
      };
    };
    this.publish = (data) => {
      this.subscribers.forEach((subscriber) => subscriber(data));
    };
    this.addToast = (data) => {
      this.publish(data);
      this.toasts = [
        ...this.toasts,
        data
      ];
    };
    this.create = (data) => {
      var _data_id;
      const { message, ...rest } = data;
      const id = typeof (data == null ? void 0 : data.id) === "number" || ((_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;
      const alreadyExists = this.toasts.find((toast2) => {
        return toast2.id === id;
      });
      const dismissible = data.dismissible === void 0 ? true : data.dismissible;
      if (this.dismissedToasts.has(id)) {
        this.dismissedToasts.delete(id);
      }
      if (alreadyExists) {
        this.toasts = this.toasts.map((toast2) => {
          if (toast2.id === id) {
            this.publish({
              ...toast2,
              ...data,
              id,
              title: message
            });
            return {
              ...toast2,
              ...data,
              id,
              dismissible,
              title: message
            };
          }
          return toast2;
        });
      } else {
        this.addToast({
          title: message,
          ...rest,
          dismissible,
          id
        });
      }
      return id;
    };
    this.dismiss = (id) => {
      if (id) {
        this.dismissedToasts.add(id);
        requestAnimationFrame(() => this.subscribers.forEach((subscriber) => subscriber({
          id,
          dismiss: true
        })));
      } else {
        this.toasts.forEach((toast2) => {
          this.subscribers.forEach((subscriber) => subscriber({
            id: toast2.id,
            dismiss: true
          }));
        });
      }
      return id;
    };
    this.message = (message, data) => {
      return this.create({
        ...data,
        message
      });
    };
    this.error = (message, data) => {
      return this.create({
        ...data,
        message,
        type: "error"
      });
    };
    this.success = (message, data) => {
      return this.create({
        ...data,
        type: "success",
        message
      });
    };
    this.info = (message, data) => {
      return this.create({
        ...data,
        type: "info",
        message
      });
    };
    this.warning = (message, data) => {
      return this.create({
        ...data,
        type: "warning",
        message
      });
    };
    this.loading = (message, data) => {
      return this.create({
        ...data,
        type: "loading",
        message
      });
    };
    this.promise = (promise, data) => {
      if (!data) {
        return;
      }
      let id = void 0;
      if (data.loading !== void 0) {
        id = this.create({
          ...data,
          promise,
          type: "loading",
          message: data.loading,
          description: typeof data.description !== "function" ? data.description : void 0
        });
      }
      const p2 = Promise.resolve(promise instanceof Function ? promise() : promise);
      let shouldDismiss = id !== void 0;
      let result;
      const originalPromise = p2.then(async (response) => {
        result = [
          "resolve",
          response
        ];
        const isReactElementResponse = React.isValidElement(response);
        if (isReactElementResponse) {
          shouldDismiss = false;
          this.create({
            id,
            type: "default",
            message: response
          });
        } else if (isHttpResponse(response) && !response.ok) {
          shouldDismiss = false;
          const promiseData = typeof data.error === "function" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;
          const description = typeof data.description === "function" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;
          const isExtendedResult = typeof promiseData === "object" && !React.isValidElement(promiseData);
          const toastSettings = isExtendedResult ? promiseData : {
            message: promiseData
          };
          this.create({
            id,
            type: "error",
            description,
            ...toastSettings
          });
        } else if (response instanceof Error) {
          shouldDismiss = false;
          const promiseData = typeof data.error === "function" ? await data.error(response) : data.error;
          const description = typeof data.description === "function" ? await data.description(response) : data.description;
          const isExtendedResult = typeof promiseData === "object" && !React.isValidElement(promiseData);
          const toastSettings = isExtendedResult ? promiseData : {
            message: promiseData
          };
          this.create({
            id,
            type: "error",
            description,
            ...toastSettings
          });
        } else if (data.success !== void 0) {
          shouldDismiss = false;
          const promiseData = typeof data.success === "function" ? await data.success(response) : data.success;
          const description = typeof data.description === "function" ? await data.description(response) : data.description;
          const isExtendedResult = typeof promiseData === "object" && !React.isValidElement(promiseData);
          const toastSettings = isExtendedResult ? promiseData : {
            message: promiseData
          };
          this.create({
            id,
            type: "success",
            description,
            ...toastSettings
          });
        }
      }).catch(async (error) => {
        result = [
          "reject",
          error
        ];
        if (data.error !== void 0) {
          shouldDismiss = false;
          const promiseData = typeof data.error === "function" ? await data.error(error) : data.error;
          const description = typeof data.description === "function" ? await data.description(error) : data.description;
          const isExtendedResult = typeof promiseData === "object" && !React.isValidElement(promiseData);
          const toastSettings = isExtendedResult ? promiseData : {
            message: promiseData
          };
          this.create({
            id,
            type: "error",
            description,
            ...toastSettings
          });
        }
      }).finally(() => {
        if (shouldDismiss) {
          this.dismiss(id);
          id = void 0;
        }
        data.finally == null ? void 0 : data.finally.call(data);
      });
      const unwrap = () => new Promise((resolve, reject) => originalPromise.then(() => result[0] === "reject" ? reject(result[1]) : resolve(result[1])).catch(reject));
      if (typeof id !== "string" && typeof id !== "number") {
        return {
          unwrap
        };
      } else {
        return Object.assign(id, {
          unwrap
        });
      }
    };
    this.custom = (jsx, data) => {
      const id = (data == null ? void 0 : data.id) || toastsCounter++;
      this.create({
        jsx: jsx(id),
        id,
        ...data
      });
      return id;
    };
    this.getActiveToasts = () => {
      return this.toasts.filter((toast2) => !this.dismissedToasts.has(toast2.id));
    };
    this.subscribers = [];
    this.toasts = [];
    this.dismissedToasts = /* @__PURE__ */ new Set();
  }
}
const ToastState = new Observer();
const toastFunction = (message, data) => {
  const id = (data == null ? void 0 : data.id) || toastsCounter++;
  ToastState.addToast({
    title: message,
    ...data,
    id
  });
  return id;
};
const isHttpResponse = (data) => {
  return data && typeof data === "object" && "ok" in data && typeof data.ok === "boolean" && "status" in data && typeof data.status === "number";
};
const basicToast = toastFunction;
const getHistory = () => ToastState.toasts;
const getToasts = () => ToastState.getActiveToasts();
const toast = Object.assign(basicToast, {
  success: ToastState.success,
  info: ToastState.info,
  warning: ToastState.warning,
  error: ToastState.error,
  custom: ToastState.custom,
  message: ToastState.message,
  promise: ToastState.promise,
  dismiss: ToastState.dismiss,
  loading: ToastState.loading
}, {
  getHistory,
  getToasts
});
__insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
function isAction(action) {
  return action.label !== void 0;
}
const VISIBLE_TOASTS_AMOUNT = 3;
const VIEWPORT_OFFSET = "24px";
const MOBILE_VIEWPORT_OFFSET = "16px";
const TOAST_LIFETIME = 4e3;
const TOAST_WIDTH = 356;
const GAP = 14;
const SWIPE_THRESHOLD = 45;
const TIME_BEFORE_UNMOUNT = 200;
function cn(...classes) {
  return classes.filter(Boolean).join(" ");
}
function getDefaultSwipeDirections(position) {
  const [y, x] = position.split("-");
  const directions = [];
  if (y) {
    directions.push(y);
  }
  if (x) {
    directions.push(x);
  }
  return directions;
}
const Toast = (props) => {
  var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;
  const { invert: ToasterInvert, toast: toast2, unstyled, interacting, setHeights, visibleToasts, heights, index: index2, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = "", descriptionClassName = "", duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = "Close toast" } = props;
  const [swipeDirection, setSwipeDirection] = React.useState(null);
  const [swipeOutDirection, setSwipeOutDirection] = React.useState(null);
  const [mounted, setMounted] = React.useState(false);
  const [removed, setRemoved] = React.useState(false);
  const [swiping, setSwiping] = React.useState(false);
  const [swipeOut, setSwipeOut] = React.useState(false);
  const [isSwiped, setIsSwiped] = React.useState(false);
  const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);
  const [initialHeight, setInitialHeight] = React.useState(0);
  const remainingTime = React.useRef(toast2.duration || durationFromToaster || TOAST_LIFETIME);
  const dragStartTime = React.useRef(null);
  const toastRef = React.useRef(null);
  const isFront = index2 === 0;
  const isVisible = index2 + 1 <= visibleToasts;
  const toastType = toast2.type;
  const dismissible = toast2.dismissible !== false;
  const toastClassname = toast2.className || "";
  const toastDescriptionClassname = toast2.descriptionClassName || "";
  const heightIndex = React.useMemo(() => heights.findIndex((height) => height.toastId === toast2.id) || 0, [
    heights,
    toast2.id
  ]);
  const closeButton = React.useMemo(() => {
    var _toast_closeButton;
    return (_toast_closeButton = toast2.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;
  }, [
    toast2.closeButton,
    closeButtonFromToaster
  ]);
  const duration = React.useMemo(() => toast2.duration || durationFromToaster || TOAST_LIFETIME, [
    toast2.duration,
    durationFromToaster
  ]);
  const closeTimerStartTimeRef = React.useRef(0);
  const offset2 = React.useRef(0);
  const lastCloseTimerStartTimeRef = React.useRef(0);
  const pointerStartRef = React.useRef(null);
  const [y, x] = position.split("-");
  const toastsHeightBefore = React.useMemo(() => {
    return heights.reduce((prev, curr, reducerIndex) => {
      if (reducerIndex >= heightIndex) {
        return prev;
      }
      return prev + curr.height;
    }, 0);
  }, [
    heights,
    heightIndex
  ]);
  const isDocumentHidden = useIsDocumentHidden();
  const invert = toast2.invert || ToasterInvert;
  const disabled = toastType === "loading";
  offset2.current = React.useMemo(() => heightIndex * gap + toastsHeightBefore, [
    heightIndex,
    toastsHeightBefore
  ]);
  React.useEffect(() => {
    remainingTime.current = duration;
  }, [
    duration
  ]);
  React.useEffect(() => {
    setMounted(true);
  }, []);
  React.useEffect(() => {
    const toastNode = toastRef.current;
    if (toastNode) {
      const height = toastNode.getBoundingClientRect().height;
      setInitialHeight(height);
      setHeights((h) => [
        {
          toastId: toast2.id,
          height,
          position: toast2.position
        },
        ...h
      ]);
      return () => setHeights((h) => h.filter((height2) => height2.toastId !== toast2.id));
    }
  }, [
    setHeights,
    toast2.id
  ]);
  React.useLayoutEffect(() => {
    if (!mounted) return;
    const toastNode = toastRef.current;
    const originalHeight = toastNode.style.height;
    toastNode.style.height = "auto";
    const newHeight = toastNode.getBoundingClientRect().height;
    toastNode.style.height = originalHeight;
    setInitialHeight(newHeight);
    setHeights((heights2) => {
      const alreadyExists = heights2.find((height) => height.toastId === toast2.id);
      if (!alreadyExists) {
        return [
          {
            toastId: toast2.id,
            height: newHeight,
            position: toast2.position
          },
          ...heights2
        ];
      } else {
        return heights2.map((height) => height.toastId === toast2.id ? {
          ...height,
          height: newHeight
        } : height);
      }
    });
  }, [
    mounted,
    toast2.title,
    toast2.description,
    setHeights,
    toast2.id,
    toast2.jsx,
    toast2.action,
    toast2.cancel
  ]);
  const deleteToast = React.useCallback(() => {
    setRemoved(true);
    setOffsetBeforeRemove(offset2.current);
    setHeights((h) => h.filter((height) => height.toastId !== toast2.id));
    setTimeout(() => {
      removeToast(toast2);
    }, TIME_BEFORE_UNMOUNT);
  }, [
    toast2,
    removeToast,
    setHeights,
    offset2
  ]);
  React.useEffect(() => {
    if (toast2.promise && toastType === "loading" || toast2.duration === Infinity || toast2.type === "loading") return;
    let timeoutId;
    const pauseTimer = () => {
      if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {
        const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef.current;
        remainingTime.current = remainingTime.current - elapsedTime;
      }
      lastCloseTimerStartTimeRef.current = (/* @__PURE__ */ new Date()).getTime();
    };
    const startTimer = () => {
      if (remainingTime.current === Infinity) return;
      closeTimerStartTimeRef.current = (/* @__PURE__ */ new Date()).getTime();
      timeoutId = setTimeout(() => {
        toast2.onAutoClose == null ? void 0 : toast2.onAutoClose.call(toast2, toast2);
        deleteToast();
      }, remainingTime.current);
    };
    if (expanded || interacting || isDocumentHidden) {
      pauseTimer();
    } else {
      startTimer();
    }
    return () => clearTimeout(timeoutId);
  }, [
    expanded,
    interacting,
    toast2,
    toastType,
    isDocumentHidden,
    deleteToast
  ]);
  React.useEffect(() => {
    if (toast2.delete) {
      deleteToast();
      toast2.onDismiss == null ? void 0 : toast2.onDismiss.call(toast2, toast2);
    }
  }, [
    deleteToast,
    toast2.delete
  ]);
  function getLoadingIcon() {
    var _toast_classNames9;
    if (icons == null ? void 0 : icons.loading) {
      var _toast_classNames12;
      return /* @__PURE__ */ React.createElement("div", {
        className: cn(classNames == null ? void 0 : classNames.loader, toast2 == null ? void 0 : (_toast_classNames12 = toast2.classNames) == null ? void 0 : _toast_classNames12.loader, "sonner-loader"),
        "data-visible": toastType === "loading"
      }, icons.loading);
    }
    return /* @__PURE__ */ React.createElement(Loader, {
      className: cn(classNames == null ? void 0 : classNames.loader, toast2 == null ? void 0 : (_toast_classNames9 = toast2.classNames) == null ? void 0 : _toast_classNames9.loader),
      visible: toastType === "loading"
    });
  }
  const icon = toast2.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);
  var _toast_richColors, _icons_close;
  return /* @__PURE__ */ React.createElement("li", {
    tabIndex: 0,
    ref: toastRef,
    className: cn(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast2 == null ? void 0 : (_toast_classNames = toast2.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames.default, classNames == null ? void 0 : classNames[toastType], toast2 == null ? void 0 : (_toast_classNames1 = toast2.classNames) == null ? void 0 : _toast_classNames1[toastType]),
    "data-sonner-toast": "",
    "data-rich-colors": (_toast_richColors = toast2.richColors) != null ? _toast_richColors : defaultRichColors,
    "data-styled": !Boolean(toast2.jsx || toast2.unstyled || unstyled),
    "data-mounted": mounted,
    "data-promise": Boolean(toast2.promise),
    "data-swiped": isSwiped,
    "data-removed": removed,
    "data-visible": isVisible,
    "data-y-position": y,
    "data-x-position": x,
    "data-index": index2,
    "data-front": isFront,
    "data-swiping": swiping,
    "data-dismissible": dismissible,
    "data-type": toastType,
    "data-invert": invert,
    "data-swipe-out": swipeOut,
    "data-swipe-direction": swipeOutDirection,
    "data-expanded": Boolean(expanded || expandByDefault && mounted),
    style: {
      "--index": index2,
      "--toasts-before": index2,
      "--z-index": toasts.length - index2,
      "--offset": `${removed ? offsetBeforeRemove : offset2.current}px`,
      "--initial-height": expandByDefault ? "auto" : `${initialHeight}px`,
      ...style,
      ...toast2.style
    },
    onDragEnd: () => {
      setSwiping(false);
      setSwipeDirection(null);
      pointerStartRef.current = null;
    },
    onPointerDown: (event) => {
      if (event.button === 2) return;
      if (disabled || !dismissible) return;
      dragStartTime.current = /* @__PURE__ */ new Date();
      setOffsetBeforeRemove(offset2.current);
      event.target.setPointerCapture(event.pointerId);
      if (event.target.tagName === "BUTTON") return;
      setSwiping(true);
      pointerStartRef.current = {
        x: event.clientX,
        y: event.clientY
      };
    },
    onPointerUp: () => {
      var _toastRef_current, _toastRef_current1, _dragStartTime_current;
      if (swipeOut || !dismissible) return;
      pointerStartRef.current = null;
      const swipeAmountX = Number(((_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.getPropertyValue("--swipe-amount-x").replace("px", "")) || 0);
      const swipeAmountY = Number(((_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.getPropertyValue("--swipe-amount-y").replace("px", "")) || 0);
      const timeTaken = (/* @__PURE__ */ new Date()).getTime() - ((_dragStartTime_current = dragStartTime.current) == null ? void 0 : _dragStartTime_current.getTime());
      const swipeAmount = swipeDirection === "x" ? swipeAmountX : swipeAmountY;
      const velocity = Math.abs(swipeAmount) / timeTaken;
      if (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11) {
        setOffsetBeforeRemove(offset2.current);
        toast2.onDismiss == null ? void 0 : toast2.onDismiss.call(toast2, toast2);
        if (swipeDirection === "x") {
          setSwipeOutDirection(swipeAmountX > 0 ? "right" : "left");
        } else {
          setSwipeOutDirection(swipeAmountY > 0 ? "down" : "up");
        }
        deleteToast();
        setSwipeOut(true);
        return;
      } else {
        var _toastRef_current2, _toastRef_current3;
        (_toastRef_current2 = toastRef.current) == null ? void 0 : _toastRef_current2.style.setProperty("--swipe-amount-x", `0px`);
        (_toastRef_current3 = toastRef.current) == null ? void 0 : _toastRef_current3.style.setProperty("--swipe-amount-y", `0px`);
      }
      setIsSwiped(false);
      setSwiping(false);
      setSwipeDirection(null);
    },
    onPointerMove: (event) => {
      var _window_getSelection, _toastRef_current, _toastRef_current1;
      if (!pointerStartRef.current || !dismissible) return;
      const isHighlighted = ((_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString().length) > 0;
      if (isHighlighted) return;
      const yDelta = event.clientY - pointerStartRef.current.y;
      const xDelta = event.clientX - pointerStartRef.current.x;
      var _props_swipeDirections;
      const swipeDirections = (_props_swipeDirections = props.swipeDirections) != null ? _props_swipeDirections : getDefaultSwipeDirections(position);
      if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {
        setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? "x" : "y");
      }
      let swipeAmount = {
        x: 0,
        y: 0
      };
      const getDampening = (delta) => {
        const factor = Math.abs(delta) / 20;
        return 1 / (1.5 + factor);
      };
      if (swipeDirection === "y") {
        if (swipeDirections.includes("top") || swipeDirections.includes("bottom")) {
          if (swipeDirections.includes("top") && yDelta < 0 || swipeDirections.includes("bottom") && yDelta > 0) {
            swipeAmount.y = yDelta;
          } else {
            const dampenedDelta = yDelta * getDampening(yDelta);
            swipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;
          }
        }
      } else if (swipeDirection === "x") {
        if (swipeDirections.includes("left") || swipeDirections.includes("right")) {
          if (swipeDirections.includes("left") && xDelta < 0 || swipeDirections.includes("right") && xDelta > 0) {
            swipeAmount.x = xDelta;
          } else {
            const dampenedDelta = xDelta * getDampening(xDelta);
            swipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;
          }
        }
      }
      if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {
        setIsSwiped(true);
      }
      (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty("--swipe-amount-x", `${swipeAmount.x}px`);
      (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty("--swipe-amount-y", `${swipeAmount.y}px`);
    }
  }, closeButton && !toast2.jsx && toastType !== "loading" ? /* @__PURE__ */ React.createElement("button", {
    "aria-label": closeButtonAriaLabel,
    "data-disabled": disabled,
    "data-close-button": true,
    onClick: disabled || !dismissible ? () => {
    } : () => {
      deleteToast();
      toast2.onDismiss == null ? void 0 : toast2.onDismiss.call(toast2, toast2);
    },
    className: cn(classNames == null ? void 0 : classNames.closeButton, toast2 == null ? void 0 : (_toast_classNames2 = toast2.classNames) == null ? void 0 : _toast_classNames2.closeButton)
  }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast2.icon || toast2.promise) && toast2.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast2.icon) ? /* @__PURE__ */ React.createElement("div", {
    "data-icon": "",
    className: cn(classNames == null ? void 0 : classNames.icon, toast2 == null ? void 0 : (_toast_classNames3 = toast2.classNames) == null ? void 0 : _toast_classNames3.icon)
  }, toast2.promise || toast2.type === "loading" && !toast2.icon ? toast2.icon || getLoadingIcon() : null, toast2.type !== "loading" ? icon : null) : null, /* @__PURE__ */ React.createElement("div", {
    "data-content": "",
    className: cn(classNames == null ? void 0 : classNames.content, toast2 == null ? void 0 : (_toast_classNames4 = toast2.classNames) == null ? void 0 : _toast_classNames4.content)
  }, /* @__PURE__ */ React.createElement("div", {
    "data-title": "",
    className: cn(classNames == null ? void 0 : classNames.title, toast2 == null ? void 0 : (_toast_classNames5 = toast2.classNames) == null ? void 0 : _toast_classNames5.title)
  }, toast2.jsx ? toast2.jsx : typeof toast2.title === "function" ? toast2.title() : toast2.title), toast2.description ? /* @__PURE__ */ React.createElement("div", {
    "data-description": "",
    className: cn(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast2 == null ? void 0 : (_toast_classNames6 = toast2.classNames) == null ? void 0 : _toast_classNames6.description)
  }, typeof toast2.description === "function" ? toast2.description() : toast2.description) : null), /* @__PURE__ */ React.isValidElement(toast2.cancel) ? toast2.cancel : toast2.cancel && isAction(toast2.cancel) ? /* @__PURE__ */ React.createElement("button", {
    "data-button": true,
    "data-cancel": true,
    style: toast2.cancelButtonStyle || cancelButtonStyle,
    onClick: (event) => {
      if (!isAction(toast2.cancel)) return;
      if (!dismissible) return;
      toast2.cancel.onClick == null ? void 0 : toast2.cancel.onClick.call(toast2.cancel, event);
      deleteToast();
    },
    className: cn(classNames == null ? void 0 : classNames.cancelButton, toast2 == null ? void 0 : (_toast_classNames7 = toast2.classNames) == null ? void 0 : _toast_classNames7.cancelButton)
  }, toast2.cancel.label) : null, /* @__PURE__ */ React.isValidElement(toast2.action) ? toast2.action : toast2.action && isAction(toast2.action) ? /* @__PURE__ */ React.createElement("button", {
    "data-button": true,
    "data-action": true,
    style: toast2.actionButtonStyle || actionButtonStyle,
    onClick: (event) => {
      if (!isAction(toast2.action)) return;
      toast2.action.onClick == null ? void 0 : toast2.action.onClick.call(toast2.action, event);
      if (event.defaultPrevented) return;
      deleteToast();
    },
    className: cn(classNames == null ? void 0 : classNames.actionButton, toast2 == null ? void 0 : (_toast_classNames8 = toast2.classNames) == null ? void 0 : _toast_classNames8.actionButton)
  }, toast2.action.label) : null);
};
function getDocumentDirection() {
  if (typeof window === "undefined") return "ltr";
  if (typeof document === "undefined") return "ltr";
  const dirAttribute = document.documentElement.getAttribute("dir");
  if (dirAttribute === "auto" || !dirAttribute) {
    return window.getComputedStyle(document.documentElement).direction;
  }
  return dirAttribute;
}
function assignOffset(defaultOffset, mobileOffset) {
  const styles = {};
  [
    defaultOffset,
    mobileOffset
  ].forEach((offset2, index2) => {
    const isMobile = index2 === 1;
    const prefix2 = isMobile ? "--mobile-offset" : "--offset";
    const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;
    function assignAll(offset3) {
      [
        "top",
        "right",
        "bottom",
        "left"
      ].forEach((key) => {
        styles[`${prefix2}-${key}`] = typeof offset3 === "number" ? `${offset3}px` : offset3;
      });
    }
    if (typeof offset2 === "number" || typeof offset2 === "string") {
      assignAll(offset2);
    } else if (typeof offset2 === "object") {
      [
        "top",
        "right",
        "bottom",
        "left"
      ].forEach((key) => {
        if (offset2[key] === void 0) {
          styles[`${prefix2}-${key}`] = defaultValue;
        } else {
          styles[`${prefix2}-${key}`] = typeof offset2[key] === "number" ? `${offset2[key]}px` : offset2[key];
        }
      });
    } else {
      assignAll(defaultValue);
    }
  });
  return styles;
}
const Toaster = /* @__PURE__ */ React.forwardRef(function Toaster2(props, ref) {
  const { invert, position = "bottom-right", hotkey = [
    "altKey",
    "KeyT"
  ], expand, closeButton, className, offset: offset2, mobileOffset, theme = "light", richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = "Notifications" } = props;
  const [toasts, setToasts] = React.useState([]);
  const possiblePositions = React.useMemo(() => {
    return Array.from(new Set([
      position
    ].concat(toasts.filter((toast2) => toast2.position).map((toast2) => toast2.position))));
  }, [
    toasts,
    position
  ]);
  const [heights, setHeights] = React.useState([]);
  const [expanded, setExpanded] = React.useState(false);
  const [interacting, setInteracting] = React.useState(false);
  const [actualTheme, setActualTheme] = React.useState(theme !== "system" ? theme : typeof window !== "undefined" ? window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
  const listRef = React.useRef(null);
  const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
  const lastFocusedElementRef = React.useRef(null);
  const isFocusWithinRef = React.useRef(false);
  const removeToast = React.useCallback((toastToRemove) => {
    setToasts((toasts2) => {
      var _toasts_find;
      if (!((_toasts_find = toasts2.find((toast2) => toast2.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {
        ToastState.dismiss(toastToRemove.id);
      }
      return toasts2.filter(({ id }) => id !== toastToRemove.id);
    });
  }, []);
  React.useEffect(() => {
    return ToastState.subscribe((toast2) => {
      if (toast2.dismiss) {
        requestAnimationFrame(() => {
          setToasts((toasts2) => toasts2.map((t) => t.id === toast2.id ? {
            ...t,
            delete: true
          } : t));
        });
        return;
      }
      setTimeout(() => {
        ReactDOM.flushSync(() => {
          setToasts((toasts2) => {
            const indexOfExistingToast = toasts2.findIndex((t) => t.id === toast2.id);
            if (indexOfExistingToast !== -1) {
              return [
                ...toasts2.slice(0, indexOfExistingToast),
                {
                  ...toasts2[indexOfExistingToast],
                  ...toast2
                },
                ...toasts2.slice(indexOfExistingToast + 1)
              ];
            }
            return [
              toast2,
              ...toasts2
            ];
          });
        });
      });
    });
  }, [
    toasts
  ]);
  React.useEffect(() => {
    if (theme !== "system") {
      setActualTheme(theme);
      return;
    }
    if (theme === "system") {
      if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
        setActualTheme("dark");
      } else {
        setActualTheme("light");
      }
    }
    if (typeof window === "undefined") return;
    const darkMediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
    try {
      darkMediaQuery.addEventListener("change", ({ matches }) => {
        if (matches) {
          setActualTheme("dark");
        } else {
          setActualTheme("light");
        }
      });
    } catch (error) {
      darkMediaQuery.addListener(({ matches }) => {
        try {
          if (matches) {
            setActualTheme("dark");
          } else {
            setActualTheme("light");
          }
        } catch (e) {
          console.error(e);
        }
      });
    }
  }, [
    theme
  ]);
  React.useEffect(() => {
    if (toasts.length <= 1) {
      setExpanded(false);
    }
  }, [
    toasts
  ]);
  React.useEffect(() => {
    const handleKeyDown = (event) => {
      var _listRef_current;
      const isHotkeyPressed = hotkey.every((key) => event[key] || event.code === key);
      if (isHotkeyPressed) {
        var _listRef_current1;
        setExpanded(true);
        (_listRef_current1 = listRef.current) == null ? void 0 : _listRef_current1.focus();
      }
      if (event.code === "Escape" && (document.activeElement === listRef.current || ((_listRef_current = listRef.current) == null ? void 0 : _listRef_current.contains(document.activeElement)))) {
        setExpanded(false);
      }
    };
    document.addEventListener("keydown", handleKeyDown);
    return () => document.removeEventListener("keydown", handleKeyDown);
  }, [
    hotkey
  ]);
  React.useEffect(() => {
    if (listRef.current) {
      return () => {
        if (lastFocusedElementRef.current) {
          lastFocusedElementRef.current.focus({
            preventScroll: true
          });
          lastFocusedElementRef.current = null;
          isFocusWithinRef.current = false;
        }
      };
    }
  }, [
    listRef.current
  ]);
  return (
    // Remove item from normal navigation flow, only available via hotkey
    /* @__PURE__ */ React.createElement("section", {
      ref,
      "aria-label": `${containerAriaLabel} ${hotkeyLabel}`,
      tabIndex: -1,
      "aria-live": "polite",
      "aria-relevant": "additions text",
      "aria-atomic": "false",
      suppressHydrationWarning: true
    }, possiblePositions.map((position2, index2) => {
      var _heights_;
      const [y, x] = position2.split("-");
      if (!toasts.length) return null;
      return /* @__PURE__ */ React.createElement("ol", {
        key: position2,
        dir: dir === "auto" ? getDocumentDirection() : dir,
        tabIndex: -1,
        ref: listRef,
        className,
        "data-sonner-toaster": true,
        "data-sonner-theme": actualTheme,
        "data-y-position": y,
        "data-x-position": x,
        style: {
          "--front-toast-height": `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,
          "--width": `${TOAST_WIDTH}px`,
          "--gap": `${gap}px`,
          ...style,
          ...assignOffset(offset2, mobileOffset)
        },
        onBlur: (event) => {
          if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {
            isFocusWithinRef.current = false;
            if (lastFocusedElementRef.current) {
              lastFocusedElementRef.current.focus({
                preventScroll: true
              });
              lastFocusedElementRef.current = null;
            }
          }
        },
        onFocus: (event) => {
          const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === "false";
          if (isNotDismissible) return;
          if (!isFocusWithinRef.current) {
            isFocusWithinRef.current = true;
            lastFocusedElementRef.current = event.relatedTarget;
          }
        },
        onMouseEnter: () => setExpanded(true),
        onMouseMove: () => setExpanded(true),
        onMouseLeave: () => {
          if (!interacting) {
            setExpanded(false);
          }
        },
        onDragEnd: () => setExpanded(false),
        onPointerDown: (event) => {
          const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === "false";
          if (isNotDismissible) return;
          setInteracting(true);
        },
        onPointerUp: () => setInteracting(false)
      }, toasts.filter((toast2) => !toast2.position && index2 === 0 || toast2.position === position2).map((toast2, index3) => {
        var _toastOptions_duration, _toastOptions_closeButton;
        return /* @__PURE__ */ React.createElement(Toast, {
          key: toast2.id,
          icons,
          index: index3,
          toast: toast2,
          defaultRichColors: richColors,
          duration: (_toastOptions_duration = toastOptions == null ? void 0 : toastOptions.duration) != null ? _toastOptions_duration : duration,
          className: toastOptions == null ? void 0 : toastOptions.className,
          descriptionClassName: toastOptions == null ? void 0 : toastOptions.descriptionClassName,
          invert,
          visibleToasts,
          closeButton: (_toastOptions_closeButton = toastOptions == null ? void 0 : toastOptions.closeButton) != null ? _toastOptions_closeButton : closeButton,
          interacting,
          position: position2,
          style: toastOptions == null ? void 0 : toastOptions.style,
          unstyled: toastOptions == null ? void 0 : toastOptions.unstyled,
          classNames: toastOptions == null ? void 0 : toastOptions.classNames,
          cancelButtonStyle: toastOptions == null ? void 0 : toastOptions.cancelButtonStyle,
          actionButtonStyle: toastOptions == null ? void 0 : toastOptions.actionButtonStyle,
          closeButtonAriaLabel: toastOptions == null ? void 0 : toastOptions.closeButtonAriaLabel,
          removeToast,
          toasts: toasts.filter((t) => t.position == toast2.position),
          heights: heights.filter((h) => h.position == toast2.position),
          setHeights,
          expandByDefault: expand,
          gap,
          expanded,
          swipeDirections: props.swipeDirections
        });
      }));
    }))
  );
});
const Route$4 = createRootRoute({
  component: () => /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:min-h-screen", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(BlackFridayBanner, {}),
    /* @__PURE__ */ jsxRuntimeExports.jsx(Header, {}),
    /* @__PURE__ */ jsxRuntimeExports.jsx(Navbar, {}),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:max-w-full cy:mx-auto  cy:py-8 cy:relative cy:pl-2 cy:bg-[#E9EEF4]", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Toaster,
        {
          position: "top-right",
          expand: true,
          closeButton: true,
          toastOptions: {
            style: {
              maxWidth: "100%",
              width: "100%",
              margin: "0 0 16px 0",
              borderRadius: "4px",
              padding: "12px 16px",
              borderLeft: "4px solid #22c55e",
              backgroundColor: "#f0fdf4",
              color: "#166534"
            },
            className: "cy:shadow-sm"
          }
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:max-w-7xl cy:mx-auto", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(WalkthroughBanner, {}),
        /* @__PURE__ */ jsxRuntimeExports.jsx(ReviewBanner, {}),
        /* @__PURE__ */ jsxRuntimeExports.jsx(ConsultationBanner, {}),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-12 cy:gap-4", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-9", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {}) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(PromoBanner, {}) })
        ] })
      ] })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(TanStackRouterDevtools, {})
  ] }) })
});
const __vite_import_meta_env__ = { "BASE_URL": "/wp-content/plugins/accessibility-plus/lite/admin/app/dist", "DEV": false, "MODE": "production", "PROD": true, "SSR": false };
const trackedConnections = /* @__PURE__ */ new Map();
const getTrackedConnectionState = (name) => {
  const api2 = trackedConnections.get(name);
  if (!api2) return {};
  return Object.fromEntries(
    Object.entries(api2.stores).map(([key, api22]) => [key, api22.getState()])
  );
};
const extractConnectionInformation = (store, extensionConnector, options) => {
  if (store === void 0) {
    return {
      type: "untracked",
      connection: extensionConnector.connect(options)
    };
  }
  const existingConnection = trackedConnections.get(options.name);
  if (existingConnection) {
    return { type: "tracked", store, ...existingConnection };
  }
  const newConnection = {
    connection: extensionConnector.connect(options),
    stores: {}
  };
  trackedConnections.set(options.name, newConnection);
  return { type: "tracked", store, ...newConnection };
};
const removeStoreFromTrackedConnections = (name, store) => {
  if (store === void 0) return;
  const connectionInfo = trackedConnections.get(name);
  if (!connectionInfo) return;
  delete connectionInfo.stores[store];
  if (Object.keys(connectionInfo.stores).length === 0) {
    trackedConnections.delete(name);
  }
};
const findCallerName = (stack) => {
  var _a2, _b2;
  if (!stack) return void 0;
  const traceLines = stack.split("\n");
  const apiSetStateLineIndex = traceLines.findIndex(
    (traceLine) => traceLine.includes("api.setState")
  );
  if (apiSetStateLineIndex < 0) return void 0;
  const callerLine = ((_a2 = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a2.trim()) || "";
  return (_b2 = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b2[1];
};
const devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api2) => {
  const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;
  let extensionConnector;
  try {
    extensionConnector = (enabled != null ? enabled : (__vite_import_meta_env__ ? "production" : void 0) !== "production") && window.__REDUX_DEVTOOLS_EXTENSION__;
  } catch (e) {
  }
  if (!extensionConnector) {
    return fn(set, get, api2);
  }
  const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);
  let isRecording = true;
  api2.setState = (state, replace, nameOrAction) => {
    const r2 = set(state, replace);
    if (!isRecording) return r2;
    const action = nameOrAction === void 0 ? {
      type: anonymousActionType || findCallerName(new Error().stack) || "anonymous"
    } : typeof nameOrAction === "string" ? { type: nameOrAction } : nameOrAction;
    if (store === void 0) {
      connection == null ? void 0 : connection.send(action, get());
      return r2;
    }
    connection == null ? void 0 : connection.send(
      {
        ...action,
        type: `${store}/${action.type}`
      },
      {
        ...getTrackedConnectionState(options.name),
        [store]: api2.getState()
      }
    );
    return r2;
  };
  api2.devtools = {
    cleanup: () => {
      if (connection && typeof connection.unsubscribe === "function") {
        connection.unsubscribe();
      }
      removeStoreFromTrackedConnections(options.name, store);
    }
  };
  const setStateFromDevtools = (...a) => {
    const originalIsRecording = isRecording;
    isRecording = false;
    set(...a);
    isRecording = originalIsRecording;
  };
  const initialState = fn(api2.setState, get, api2);
  if (connectionInformation.type === "untracked") {
    connection == null ? void 0 : connection.init(initialState);
  } else {
    connectionInformation.stores[connectionInformation.store] = api2;
    connection == null ? void 0 : connection.init(
      Object.fromEntries(
        Object.entries(connectionInformation.stores).map(([key, store2]) => [
          key,
          key === connectionInformation.store ? initialState : store2.getState()
        ])
      )
    );
  }
  if (api2.dispatchFromDevtools && typeof api2.dispatch === "function") {
    let didWarnAboutReservedActionType = false;
    const originalDispatch = api2.dispatch;
    api2.dispatch = (...args) => {
      if ((__vite_import_meta_env__ ? "production" : void 0) !== "production" && args[0].type === "__setState" && !didWarnAboutReservedActionType) {
        console.warn(
          '[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'
        );
        didWarnAboutReservedActionType = true;
      }
      originalDispatch(...args);
    };
  }
  connection.subscribe((message) => {
    var _a2;
    switch (message.type) {
      case "ACTION":
        if (typeof message.payload !== "string") {
          console.error(
            "[zustand devtools middleware] Unsupported action format"
          );
          return;
        }
        return parseJsonThen(
          message.payload,
          (action) => {
            if (action.type === "__setState") {
              if (store === void 0) {
                setStateFromDevtools(action.state);
                return;
              }
              if (Object.keys(action.state).length !== 1) {
                console.error(
                  `
                    [zustand devtools middleware] Unsupported __setState action format.
                    When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
                    and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
                    `
                );
              }
              const stateFromDevtools = action.state[store];
              if (stateFromDevtools === void 0 || stateFromDevtools === null) {
                return;
              }
              if (JSON.stringify(api2.getState()) !== JSON.stringify(stateFromDevtools)) {
                setStateFromDevtools(stateFromDevtools);
              }
              return;
            }
            if (!api2.dispatchFromDevtools) return;
            if (typeof api2.dispatch !== "function") return;
            api2.dispatch(action);
          }
        );
      case "DISPATCH":
        switch (message.payload.type) {
          case "RESET":
            setStateFromDevtools(initialState);
            if (store === void 0) {
              return connection == null ? void 0 : connection.init(api2.getState());
            }
            return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
          case "COMMIT":
            if (store === void 0) {
              connection == null ? void 0 : connection.init(api2.getState());
              return;
            }
            return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
          case "ROLLBACK":
            return parseJsonThen(message.state, (state) => {
              if (store === void 0) {
                setStateFromDevtools(state);
                connection == null ? void 0 : connection.init(api2.getState());
                return;
              }
              setStateFromDevtools(state[store]);
              connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
            });
          case "JUMP_TO_STATE":
          case "JUMP_TO_ACTION":
            return parseJsonThen(message.state, (state) => {
              if (store === void 0) {
                setStateFromDevtools(state);
                return;
              }
              if (JSON.stringify(api2.getState()) !== JSON.stringify(state[store])) {
                setStateFromDevtools(state[store]);
              }
            });
          case "IMPORT_STATE": {
            const { nextLiftedState } = message.payload;
            const lastComputedState = (_a2 = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a2.state;
            if (!lastComputedState) return;
            if (store === void 0) {
              setStateFromDevtools(lastComputedState);
            } else {
              setStateFromDevtools(lastComputedState[store]);
            }
            connection == null ? void 0 : connection.send(
              null,
              // FIXME no-any
              nextLiftedState
            );
            return;
          }
          case "PAUSE_RECORDING":
            return isRecording = !isRecording;
        }
        return;
    }
  });
  return initialState;
};
const devtools = devtoolsImpl;
const parseJsonThen = (stringified, fn) => {
  let parsed;
  try {
    parsed = JSON.parse(stringified);
  } catch (e) {
    console.error(
      "[zustand devtools middleware] Could not parse the received json",
      e
    );
  }
  if (parsed !== void 0) fn(parsed);
};
const DEFAULT_CONFIG = {
  fixes: {
    langDir: {
      status: false
    },
    removeTabIndex: {
      status: false
    },
    removeTitleIfAccessibleName: {
      status: false
    },
    forceUnderlineOnLinks: {
      status: false
    },
    metaViewportScale: {
      status: false
    },
    removeTargetBlank: {
      status: false
    },
    addTargetBlankLabel: {
      status: false
    },
    enableSkipLink: {
      status: false,
      targets: ""
    },
    addMissingCommentFormLabels: {
      status: false
    },
    addMissingSearchFormLabels: {
      status: false
    },
    addFocusOutline: {
      status: false
    },
    addAccessibleNamesToInteractiveElements: {
      status: false
    },
    addMissingAltTextToImages: {
      status: false
    },
    addMissingTitlesToFrames: {
      status: false
    }
  },
  // Toolbar configuration
  toolbar: {
    enabled: false,
    features: {
      fontSize: true,
      contrast: true,
      grayscale: true,
      hideOnSmallScreens: false
    },
    settings: {
      fontSize: 14
    },
    placement: {
      position: "right",
      verticalOffset: 50
    }
  },
  // Checker configuration
  checker: {
    enabled: false,
    placement: {
      position: "right"
    }
  }
};
const getWidgetConfig = async () => {
  const response = await api.get({ path: "/settings" });
  return response;
};
const saveWidgetConfig = async (config) => {
  const response = await api.post({ path: "/settings", data: config });
  return response;
};
function deepMerge(target, source) {
  const output = { ...target };
  if (isObject(target) && isObject(source)) {
    Object.keys(source).forEach((key) => {
      const sourceValue = source[key];
      const targetValue = target[key];
      if (isObject(sourceValue) && targetValue !== void 0 && isObject(targetValue)) {
        output[key] = deepMerge(targetValue, sourceValue);
      } else if (sourceValue !== void 0) {
        output[key] = sourceValue;
      }
    });
  }
  return output;
}
function isObject(item) {
  return item && typeof item === "object" && !Array.isArray(item);
}
const useConfigStore = create()(
  devtools(
    (set, get) => ({
      isLoading: true,
      error: null,
      config: DEFAULT_CONFIG,
      // API Actions
      fetchConfig: async () => {
        set({ isLoading: true, error: null });
        try {
          const response = await getWidgetConfig();
          const mergedConfig = deepMerge(DEFAULT_CONFIG, response);
          set({ config: mergedConfig });
        } catch (error) {
          console.error(error);
          set({ error: "An unexpected error occurred" });
        } finally {
          set({ isLoading: false });
        }
      },
      saveConfig: async () => {
        set({ isLoading: true, error: null });
        try {
          const currentConfig = get().config;
          await saveWidgetConfig(currentConfig);
          set({ error: null });
        } catch (error) {
          console.error(error);
          set({ error: "Failed to save settings" });
        } finally {
          set({ isLoading: false });
        }
      },
      // Utility Actions
      resetToDefaults: () => set({ config: DEFAULT_CONFIG }, false, "resetToDefaults"),
      loadConfig: (newConfig) => {
        set(
          (state) => ({ config: { ...state.config, ...newConfig } }),
          false,
          "loadConfig"
        );
      },
      setConfig: (key, value) => {
        set((state) => {
          const keys = key.split(".");
          const newConfig = { ...state.config };
          let current = newConfig;
          for (let i = 0; i < keys.length - 1; i++) {
            current = current[keys[i]];
          }
          current[keys[keys.length - 1]] = value;
          return { config: newConfig };
        }, false, "setConfig");
      },
      setFixes: (key, value) => {
        set((state) => {
          const newConfig = { ...state.config };
          const keys = key.split(".");
          let current = newConfig.fixes;
          for (let i = 0; i < keys.length - 1; i++) {
            current = current[keys[i]];
          }
          current[keys[keys.length - 1]] = value;
          return { config: newConfig };
        }, false, "setFixes");
      },
      setToolbar: (key, value) => {
        set((state) => {
          const newConfig = { ...state.config };
          const keys = key.split(".");
          let current = newConfig.toolbar;
          for (let i = 0; i < keys.length - 1; i++) {
            current = current[keys[i]];
          }
          current[keys[keys.length - 1]] = value;
          return { config: newConfig };
        }, false, "setToolbar");
      },
      setChecker: (key, value) => {
        set((state) => {
          const newConfig = { ...state.config };
          const keys = key.split(".");
          let current = newConfig.checker;
          for (let i = 0; i < keys.length - 1; i++) {
            current = current[keys[i]];
          }
          current[keys[keys.length - 1]] = value;
          return { config: newConfig };
        }, false, "setChecker");
      }
    }),
    { name: "widget-store" }
  )
);
function Textarea({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "textarea",
    {
      "data-slot": "textarea",
      className: cn$1(
        "cy:border-input cy:placeholder:text-muted-foreground cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:aria-invalid:ring-destructive/20 cy:dark:aria-invalid:ring-destructive/40 cy:aria-invalid:border-destructive cy:dark:bg-input/30 cy:flex cy:field-sizing-content cy:min-h-16 cy:w-full cy:rounded-md cy:border cy:bg-transparent cy:px-3 cy:py-2 cy:text-base cy:shadow-xs cy:transition-[color,box-shadow] cy:outline-none cy:focus-visible:ring-[3px] cy:disabled:cursor-not-allowed cy:disabled:opacity-50 cy:md:text-sm",
        className
      ),
      ...props
    }
  );
}
const SkipLinkTargetsInput = () => {
  var _a2;
  const { config, setFixes } = useConfigStore();
  const handleChange = reactExports.useCallback((e) => {
    const value = e.target.value;
    setFixes("enableSkipLink.targets", value);
  }, [setFixes]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:mt-4 cy:pl-14", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:max-w-md", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "cy:block cy:text-sm cy:font-medium cy:text-gray-700 cy:mb-2", children: "Define the ID(s) of the main content area(s)" }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      Textarea,
      {
        placeholder: "Enter multiple IDs separated by commas (e.g., #main, #content, #primary)",
        rows: 3,
        value: (_a2 = config.fixes.enableSkipLink) == null ? void 0 : _a2.targets,
        onChange: handleChange
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:mt-1 cy:text-xs cy:text-gray-500", children: "The system will cascade through the list to find the appropriate one for each page." })
  ] }) });
};
function createContext2(rootComponentName, defaultContext) {
  const Context = reactExports.createContext(defaultContext);
  const Provider2 = (props) => {
    const { children, ...context } = props;
    const value = reactExports.useMemo(() => context, Object.values(context));
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Context.Provider, { value, children });
  };
  Provider2.displayName = rootComponentName + "Provider";
  function useContext2(consumerName) {
    const context = reactExports.useContext(Context);
    if (context) return context;
    if (defaultContext !== void 0) return defaultContext;
    throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
  }
  return [Provider2, useContext2];
}
function createContextScope(scopeName, createContextScopeDeps = []) {
  let defaultContexts = [];
  function createContext3(rootComponentName, defaultContext) {
    const BaseContext = reactExports.createContext(defaultContext);
    const index2 = defaultContexts.length;
    defaultContexts = [...defaultContexts, defaultContext];
    const Provider2 = (props) => {
      var _a2;
      const { scope, children, ...context } = props;
      const Context = ((_a2 = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a2[index2]) || BaseContext;
      const value = reactExports.useMemo(() => context, Object.values(context));
      return /* @__PURE__ */ jsxRuntimeExports.jsx(Context.Provider, { value, children });
    };
    Provider2.displayName = rootComponentName + "Provider";
    function useContext2(consumerName, scope) {
      var _a2;
      const Context = ((_a2 = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a2[index2]) || BaseContext;
      const context = reactExports.useContext(Context);
      if (context) return context;
      if (defaultContext !== void 0) return defaultContext;
      throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
    }
    return [Provider2, useContext2];
  }
  const createScope = () => {
    const scopeContexts = defaultContexts.map((defaultContext) => {
      return reactExports.createContext(defaultContext);
    });
    return function useScope(scope) {
      const contexts = (scope == null ? void 0 : scope[scopeName]) || scopeContexts;
      return reactExports.useMemo(
        () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
        [scope, contexts]
      );
    };
  };
  createScope.scopeName = scopeName;
  return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];
}
function composeContextScopes(...scopes) {
  const baseScope = scopes[0];
  if (scopes.length === 1) return baseScope;
  const createScope = () => {
    const scopeHooks = scopes.map((createScope2) => ({
      useScope: createScope2(),
      scopeName: createScope2.scopeName
    }));
    return function useComposedScopes(overrideScopes) {
      const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
        const scopeProps = useScope(overrideScopes);
        const currentScope = scopeProps[`__scope${scopeName}`];
        return { ...nextScopes2, ...currentScope };
      }, {});
      return reactExports.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
    };
  };
  createScope.scopeName = baseScope.scopeName;
  return createScope;
}
function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
  return function handleEvent(event) {
    originalEventHandler == null ? void 0 : originalEventHandler(event);
    if (checkForDefaultPrevented === false || !event.defaultPrevented) {
      return ourEventHandler == null ? void 0 : ourEventHandler(event);
    }
  };
}
var useLayoutEffect2 = (globalThis == null ? void 0 : globalThis.document) ? reactExports.useLayoutEffect : () => {
};
var useInsertionEffect = React$1[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
function useControllableState({
  prop,
  defaultProp,
  onChange = () => {
  },
  caller
}) {
  const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
    defaultProp,
    onChange
  });
  const isControlled = prop !== void 0;
  const value = isControlled ? prop : uncontrolledProp;
  {
    const isControlledRef = reactExports.useRef(prop !== void 0);
    reactExports.useEffect(() => {
      const wasControlled = isControlledRef.current;
      if (wasControlled !== isControlled) {
        const from = wasControlled ? "controlled" : "uncontrolled";
        const to = isControlled ? "controlled" : "uncontrolled";
        console.warn(
          `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
        );
      }
      isControlledRef.current = isControlled;
    }, [isControlled, caller]);
  }
  const setValue = reactExports.useCallback(
    (nextValue) => {
      var _a2;
      if (isControlled) {
        const value2 = isFunction$1(nextValue) ? nextValue(prop) : nextValue;
        if (value2 !== prop) {
          (_a2 = onChangeRef.current) == null ? void 0 : _a2.call(onChangeRef, value2);
        }
      } else {
        setUncontrolledProp(nextValue);
      }
    },
    [isControlled, prop, setUncontrolledProp, onChangeRef]
  );
  return [value, setValue];
}
function useUncontrolledState({
  defaultProp,
  onChange
}) {
  const [value, setValue] = reactExports.useState(defaultProp);
  const prevValueRef = reactExports.useRef(value);
  const onChangeRef = reactExports.useRef(onChange);
  useInsertionEffect(() => {
    onChangeRef.current = onChange;
  }, [onChange]);
  reactExports.useEffect(() => {
    var _a2;
    if (prevValueRef.current !== value) {
      (_a2 = onChangeRef.current) == null ? void 0 : _a2.call(onChangeRef, value);
      prevValueRef.current = value;
    }
  }, [value, prevValueRef]);
  return [value, setValue, onChangeRef];
}
function isFunction$1(value) {
  return typeof value === "function";
}
function usePrevious(value) {
  const ref = reactExports.useRef({ value, previous: value });
  return reactExports.useMemo(() => {
    if (ref.current.value !== value) {
      ref.current.previous = ref.current.value;
      ref.current.value = value;
    }
    return ref.current.previous;
  }, [value]);
}
function useSize(element) {
  const [size2, setSize] = reactExports.useState(void 0);
  useLayoutEffect2(() => {
    if (element) {
      setSize({ width: element.offsetWidth, height: element.offsetHeight });
      const resizeObserver = new ResizeObserver((entries) => {
        if (!Array.isArray(entries)) {
          return;
        }
        if (!entries.length) {
          return;
        }
        const entry = entries[0];
        let width;
        let height;
        if ("borderBoxSize" in entry) {
          const borderSizeEntry = entry["borderBoxSize"];
          const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
          width = borderSize["inlineSize"];
          height = borderSize["blockSize"];
        } else {
          width = element.offsetWidth;
          height = element.offsetHeight;
        }
        setSize({ width, height });
      });
      resizeObserver.observe(element, { box: "border-box" });
      return () => resizeObserver.unobserve(element);
    } else {
      setSize(void 0);
    }
  }, [element]);
  return size2;
}
function useStateMachine(initialState, machine) {
  return reactExports.useReducer((state, event) => {
    const nextState = machine[state][event];
    return nextState ?? state;
  }, initialState);
}
var Presence = (props) => {
  const { present, children } = props;
  const presence = usePresence(present);
  const child = typeof children === "function" ? children({ present: presence.isPresent }) : reactExports.Children.only(children);
  const ref = useComposedRefs(presence.ref, getElementRef(child));
  const forceMount = typeof children === "function";
  return forceMount || presence.isPresent ? reactExports.cloneElement(child, { ref }) : null;
};
Presence.displayName = "Presence";
function usePresence(present) {
  const [node, setNode] = reactExports.useState();
  const stylesRef = reactExports.useRef(null);
  const prevPresentRef = reactExports.useRef(present);
  const prevAnimationNameRef = reactExports.useRef("none");
  const initialState = present ? "mounted" : "unmounted";
  const [state, send] = useStateMachine(initialState, {
    mounted: {
      UNMOUNT: "unmounted",
      ANIMATION_OUT: "unmountSuspended"
    },
    unmountSuspended: {
      MOUNT: "mounted",
      ANIMATION_END: "unmounted"
    },
    unmounted: {
      MOUNT: "mounted"
    }
  });
  reactExports.useEffect(() => {
    const currentAnimationName = getAnimationName(stylesRef.current);
    prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
  }, [state]);
  useLayoutEffect2(() => {
    const styles = stylesRef.current;
    const wasPresent = prevPresentRef.current;
    const hasPresentChanged = wasPresent !== present;
    if (hasPresentChanged) {
      const prevAnimationName = prevAnimationNameRef.current;
      const currentAnimationName = getAnimationName(styles);
      if (present) {
        send("MOUNT");
      } else if (currentAnimationName === "none" || (styles == null ? void 0 : styles.display) === "none") {
        send("UNMOUNT");
      } else {
        const isAnimating = prevAnimationName !== currentAnimationName;
        if (wasPresent && isAnimating) {
          send("ANIMATION_OUT");
        } else {
          send("UNMOUNT");
        }
      }
      prevPresentRef.current = present;
    }
  }, [present, send]);
  useLayoutEffect2(() => {
    if (node) {
      let timeoutId;
      const ownerWindow = node.ownerDocument.defaultView ?? window;
      const handleAnimationEnd = (event) => {
        const currentAnimationName = getAnimationName(stylesRef.current);
        const isCurrentAnimation = currentAnimationName.includes(event.animationName);
        if (event.target === node && isCurrentAnimation) {
          send("ANIMATION_END");
          if (!prevPresentRef.current) {
            const currentFillMode = node.style.animationFillMode;
            node.style.animationFillMode = "forwards";
            timeoutId = ownerWindow.setTimeout(() => {
              if (node.style.animationFillMode === "forwards") {
                node.style.animationFillMode = currentFillMode;
              }
            });
          }
        }
      };
      const handleAnimationStart = (event) => {
        if (event.target === node) {
          prevAnimationNameRef.current = getAnimationName(stylesRef.current);
        }
      };
      node.addEventListener("animationstart", handleAnimationStart);
      node.addEventListener("animationcancel", handleAnimationEnd);
      node.addEventListener("animationend", handleAnimationEnd);
      return () => {
        ownerWindow.clearTimeout(timeoutId);
        node.removeEventListener("animationstart", handleAnimationStart);
        node.removeEventListener("animationcancel", handleAnimationEnd);
        node.removeEventListener("animationend", handleAnimationEnd);
      };
    } else {
      send("ANIMATION_END");
    }
  }, [node, send]);
  return {
    isPresent: ["mounted", "unmountSuspended"].includes(state),
    ref: reactExports.useCallback((node2) => {
      stylesRef.current = node2 ? getComputedStyle(node2) : null;
      setNode(node2);
    }, [])
  };
}
function getAnimationName(styles) {
  return (styles == null ? void 0 : styles.animationName) || "none";
}
function getElementRef(element) {
  var _a2, _b2;
  let getter = (_a2 = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a2.get;
  let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
  if (mayWarn) {
    return element.ref;
  }
  getter = (_b2 = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b2.get;
  mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
  if (mayWarn) {
    return element.props.ref;
  }
  return element.props.ref || element.ref;
}
var NODES = [
  "a",
  "button",
  "div",
  "form",
  "h2",
  "h3",
  "img",
  "input",
  "label",
  "li",
  "nav",
  "ol",
  "p",
  "select",
  "span",
  "svg",
  "ul"
];
var Primitive = NODES.reduce((primitive, node) => {
  const Slot2 = /* @__PURE__ */ createSlot(`Primitive.${node}`);
  const Node2 = reactExports.forwardRef((props, forwardedRef) => {
    const { asChild, ...primitiveProps } = props;
    const Comp = asChild ? Slot2 : node;
    if (typeof window !== "undefined") {
      window[Symbol.for("radix-ui")] = true;
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Comp, { ...primitiveProps, ref: forwardedRef });
  });
  Node2.displayName = `Primitive.${node}`;
  return { ...primitive, [node]: Node2 };
}, {});
function dispatchDiscreteCustomEvent(target, event) {
  if (target) reactDomExports.flushSync(() => target.dispatchEvent(event));
}
var CHECKBOX_NAME = "Checkbox";
var [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);
var [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
function CheckboxProvider(props) {
  const {
    __scopeCheckbox,
    checked: checkedProp,
    children,
    defaultChecked,
    disabled,
    form,
    name,
    onCheckedChange,
    required,
    value = "on",
    // @ts-expect-error
    internal_do_not_use_render
  } = props;
  const [checked, setChecked] = useControllableState({
    prop: checkedProp,
    defaultProp: defaultChecked ?? false,
    onChange: onCheckedChange,
    caller: CHECKBOX_NAME
  });
  const [control, setControl] = reactExports.useState(null);
  const [bubbleInput, setBubbleInput] = reactExports.useState(null);
  const hasConsumerStoppedPropagationRef = reactExports.useRef(false);
  const isFormControl = control ? !!form || !!control.closest("form") : (
    // We set this to true by default so that events bubble to forms without JS (SSR)
    true
  );
  const context = {
    checked,
    disabled,
    setChecked,
    control,
    setControl,
    name,
    form,
    value,
    hasConsumerStoppedPropagationRef,
    required,
    defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,
    isFormControl,
    bubbleInput,
    setBubbleInput
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    CheckboxProviderImpl,
    {
      scope: __scopeCheckbox,
      ...context,
      children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
    }
  );
}
var TRIGGER_NAME$5 = "CheckboxTrigger";
var CheckboxTrigger = reactExports.forwardRef(
  ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {
    const {
      control,
      value,
      disabled,
      checked,
      required,
      setControl,
      setChecked,
      hasConsumerStoppedPropagationRef,
      isFormControl,
      bubbleInput
    } = useCheckboxContext(TRIGGER_NAME$5, __scopeCheckbox);
    const composedRefs = useComposedRefs(forwardedRef, setControl);
    const initialCheckedStateRef = reactExports.useRef(checked);
    reactExports.useEffect(() => {
      const form = control == null ? void 0 : control.form;
      if (form) {
        const reset = () => setChecked(initialCheckedStateRef.current);
        form.addEventListener("reset", reset);
        return () => form.removeEventListener("reset", reset);
      }
    }, [control, setChecked]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        type: "button",
        role: "checkbox",
        "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
        "aria-required": required,
        "data-state": getState$5(checked),
        "data-disabled": disabled ? "" : void 0,
        disabled,
        value,
        ...checkboxProps,
        ref: composedRefs,
        onKeyDown: composeEventHandlers(onKeyDown, (event) => {
          if (event.key === "Enter") event.preventDefault();
        }),
        onClick: composeEventHandlers(onClick, (event) => {
          setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);
          if (bubbleInput && isFormControl) {
            hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
            if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
          }
        })
      }
    );
  }
);
CheckboxTrigger.displayName = TRIGGER_NAME$5;
var Checkbox$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeCheckbox,
      name,
      checked,
      defaultChecked,
      required,
      disabled,
      value,
      onCheckedChange,
      form,
      ...checkboxProps
    } = props;
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      CheckboxProvider,
      {
        __scopeCheckbox,
        checked,
        defaultChecked,
        disabled,
        required,
        onCheckedChange,
        name,
        form,
        value,
        internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            CheckboxTrigger,
            {
              ...checkboxProps,
              ref: forwardedRef,
              __scopeCheckbox
            }
          ),
          isFormControl && /* @__PURE__ */ jsxRuntimeExports.jsx(
            CheckboxBubbleInput,
            {
              __scopeCheckbox
            }
          )
        ] })
      }
    );
  }
);
Checkbox$1.displayName = CHECKBOX_NAME;
var INDICATOR_NAME$1 = "CheckboxIndicator";
var CheckboxIndicator = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeCheckbox, forceMount, ...indicatorProps } = props;
    const context = useCheckboxContext(INDICATOR_NAME$1, __scopeCheckbox);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Presence,
      {
        present: forceMount || isIndeterminate(context.checked) || context.checked === true,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Primitive.span,
          {
            "data-state": getState$5(context.checked),
            "data-disabled": context.disabled ? "" : void 0,
            ...indicatorProps,
            ref: forwardedRef,
            style: { pointerEvents: "none", ...props.style }
          }
        )
      }
    );
  }
);
CheckboxIndicator.displayName = INDICATOR_NAME$1;
var BUBBLE_INPUT_NAME$4 = "CheckboxBubbleInput";
var CheckboxBubbleInput = reactExports.forwardRef(
  ({ __scopeCheckbox, ...props }, forwardedRef) => {
    const {
      control,
      hasConsumerStoppedPropagationRef,
      checked,
      defaultChecked,
      required,
      disabled,
      name,
      value,
      form,
      bubbleInput,
      setBubbleInput
    } = useCheckboxContext(BUBBLE_INPUT_NAME$4, __scopeCheckbox);
    const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);
    const prevChecked = usePrevious(checked);
    const controlSize = useSize(control);
    reactExports.useEffect(() => {
      const input = bubbleInput;
      if (!input) return;
      const inputProto = window.HTMLInputElement.prototype;
      const descriptor = Object.getOwnPropertyDescriptor(
        inputProto,
        "checked"
      );
      const setChecked = descriptor.set;
      const bubbles = !hasConsumerStoppedPropagationRef.current;
      if (prevChecked !== checked && setChecked) {
        const event = new Event("click", { bubbles });
        input.indeterminate = isIndeterminate(checked);
        setChecked.call(input, isIndeterminate(checked) ? false : checked);
        input.dispatchEvent(event);
      }
    }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);
    const defaultCheckedRef = reactExports.useRef(isIndeterminate(checked) ? false : checked);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.input,
      {
        type: "checkbox",
        "aria-hidden": true,
        defaultChecked: defaultChecked ?? defaultCheckedRef.current,
        required,
        disabled,
        name,
        value,
        form,
        ...props,
        tabIndex: -1,
        ref: composedRefs,
        style: {
          ...props.style,
          ...controlSize,
          position: "absolute",
          pointerEvents: "none",
          opacity: 0,
          margin: 0,
          // We transform because the input is absolutely positioned but we have
          // rendered it **after** the button. This pulls it back to sit on top
          // of the button.
          transform: "translateX(-100%)"
        }
      }
    );
  }
);
CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME$4;
function isFunction(value) {
  return typeof value === "function";
}
function isIndeterminate(checked) {
  return checked === "indeterminate";
}
function getState$5(checked) {
  return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
}
function Checkbox({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Checkbox$1,
    {
      "data-slot": "checkbox",
      className: cn$1(
        "cy:peer cy:size-4.5 cy:shrink-0 cy:rounded-[2px] cy:border-2 cy:border-[#49454F] cy:bg-white cy:transition-all cy:outline-none cy:focus-visible:ring-2 cy:focus-visible:ring-primary cy:focus-visible:ring-offset-2 cy:disabled:cursor-not-allowed cy:disabled:opacity-50 cy:data-[state=checked]:bg-primary cy:data-[state=checked]:border-primary",
        className
      ),
      ...props,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        CheckboxIndicator,
        {
          "data-slot": "checkbox-indicator",
          className: "cy:flex cy:items-center cy:justify-center cy:text-white cy:transition-none",
          children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "cy:size-3.5 cy:font-bold" })
        }
      )
    }
  );
}
var NAME$2 = "Label";
var Label$1 = reactExports.forwardRef((props, forwardedRef) => {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Primitive.label,
    {
      ...props,
      ref: forwardedRef,
      onMouseDown: (event) => {
        var _a2;
        const target = event.target;
        if (target.closest("button, input, select, textarea")) return;
        (_a2 = props.onMouseDown) == null ? void 0 : _a2.call(props, event);
        if (!event.defaultPrevented && event.detail > 1) event.preventDefault();
      }
    }
  );
});
Label$1.displayName = NAME$2;
var Root$7 = Label$1;
function Label({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Root$7,
    {
      "data-slot": "label",
      className: cn$1(
        "cy:flex cy:items-center cy:gap-2 cy:text-sm cy:leading-none cy:font-medium cy:select-none cy:group-data-[disabled=true]:pointer-events-none cy:group-data-[disabled=true]:opacity-50 cy:peer-disabled:cursor-not-allowed cy:peer-disabled:opacity-50",
        className
      ),
      ...props
    }
  );
}
const SettingSwitch = ({
  id: propId,
  checked,
  onCheckedChange,
  label,
  description
}) => {
  const generatedId = reactExports.useId();
  const id = propId || generatedId;
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-start cy:justify-start cy:space-x-5", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      Checkbox,
      {
        id,
        checked,
        onCheckedChange
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Label,
        {
          htmlFor: id,
          className: "cy:text-sm! cy:text-foreground!",
          children: label
        }
      ),
      description && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-sm cy:text-muted-foreground", children: description })
    ] })
  ] });
};
const SettingGroup = ({ category, settings, learnMoreUrl, learnMoreText, learnMoreLinkText }) => {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-20 cy:border cy:border-[#EAEBEC] cy:rounded-xs", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-4 cy:bg-[#EAEBEC] cy:flex cy:items-center cy:justify-start cy:py-[10px] cy:px-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "cy:text-sm! cy:font-normal! cy:text-[#0251AF] cy:text-left!", children: category }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:col-span-16 cy:bg-white cy:p-4 cy:space-y-[10px]", children: [
      settings.map((setting) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-1 cy:pl-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            SettingSwitch,
            {
              checked: setting.checked,
              onCheckedChange: setting.onCheckedChange,
              label: setting.label,
              description: setting.description
            }
          ) }),
          setting.guideline && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:ml-4 cy:text-sm cy:text-[#73767F] cy:font-medium", children: [
            "WCAG ",
            setting.guideline
          ] })
        ] }),
        setting.key === "enableSkipLink.status" && setting.checked && /* @__PURE__ */ jsxRuntimeExports.jsx(
          SkipLinkTargetsInput,
          {}
        )
      ] }, setting.key)),
      learnMoreUrl && learnMoreText && learnMoreLinkText && (() => {
        const linkIndex = learnMoreText.indexOf(learnMoreLinkText);
        if (linkIndex === -1) {
          return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:pl-4 cy:pt-[10px] cy:mt-2 cy:border-t cy:border-[#EAEBEC]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            "a",
            {
              href: learnMoreUrl,
              target: "_blank",
              rel: "noopener noreferrer",
              className: "cy:text-sm cy:text-[#0251AF] cy:underline",
              children: learnMoreText
            }
          ) });
        }
        const beforeLink = learnMoreText.substring(0, linkIndex);
        const afterLink = learnMoreText.substring(linkIndex + learnMoreLinkText.length);
        return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:pl-4 cy:pt-[10px] cy:mt-2 cy:border-t cy:border-[#EAEBEC] cy:text-sm", children: [
          beforeLink && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-[#4E4B66]", children: beforeLink }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "a",
            {
              href: learnMoreUrl,
              target: "_blank",
              rel: "noopener noreferrer",
              className: "cy:text-[#0251AF] cy:underline",
              children: learnMoreLinkText
            }
          ),
          afterLink && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-[#4E4B66]", children: afterLink })
        ] });
      })()
    ] })
  ] });
};
const CATEGORIES = {
  READABILITY: "Readability",
  KEYBOARD_NAVIGATION: "Keyboard Navigation",
  ACCESSIBLE_NAME: "Accessible Names",
  RESPONSIVE_DESIGN: "Responsive Design",
  PERFORMANCE: "Performance & SEO",
  LINK_VISIBILITY: "Link Visibility",
  LINK_BEHAVIOR: "Link Behavior",
  FORM_LABELS: "Forms",
  IMAGE_ACCESSIBILITY: "Image Accessibility",
  MEDIA_ACCESSIBILITY: "Media Accessibility"
};
const CATEGORY_LEARN_MORE = {
  [CATEGORIES.READABILITY]: {
    text: "Learn how lang and dir attributes fixes readability",
    url: `https://www.webyes.com/documentation/how-to-add-dir-and-lang-attributes?utm_source=IssueFixes&utm_medium=AccessibilityPlus&utm_campaign=Documentation&utm_content=${PLUGIN_VERSION}`,
    linkText: "how lang and dir attributes fixes readability"
  },
  [CATEGORIES.KEYBOARD_NAVIGATION]: {
    text: "Enable these options on to have accessibility fixes applied automatically to your markup. ",
    url: `https://www.webyes.com/documentation/how-keyboard-navigation-enhances-web-accessibility?utm_source=IssueFixes&utm_medium=AccessibilityPlus&utm_campaign=Documentation&utm_content=${PLUGIN_VERSION}`,
    linkText: "accessibility fixes"
  },
  [CATEGORIES.ACCESSIBLE_NAME]: {
    text: "See our guide on Why Managing Accessible Names Is Important",
    url: `https://www.webyes.com/documentation/managing-accessible-name?utm_source=IssueFixes&utm_medium=AccessibilityPlus&utm_campaign=Documentation&utm_content=${PLUGIN_VERSION}`,
    linkText: "Why Managing Accessible Names Is Important"
  },
  [CATEGORIES.RESPONSIVE_DESIGN]: {
    text: "Ensure you have the fundamentals of mobile responsiveness implemented.",
    url: `https://www.webyes.com/documentation/responsive-design-accessibility?utm_source=IssueFixes&utm_medium=AccessibilityPlus&utm_campaign=Documentation&utm_content=${PLUGIN_VERSION}`,
    linkText: "fundamentals of mobile responsiveness implemented"
  },
  [CATEGORIES.LINK_VISIBILITY]: {
    text: "Remove color independence from links and ensure proper link visibility.",
    url: `https://www.webyes.com/documentation/link-visibility-in-accessibility?utm_source=IssueFixes&utm_medium=AccessibilityPlus&utm_campaign=Documentation&utm_content=${PLUGIN_VERSION}`,
    linkText: "link visibility"
  },
  [CATEGORIES.LINK_BEHAVIOR]: {
    text: "Remove uncertainty and avoid confusion with predictable link behavior.",
    url: `https://www.webyes.com/documentation/link-behaviour-accessibility?utm_source=IssueFixes&utm_medium=AccessibilityPlus&utm_campaign=Documentation&utm_content=${PLUGIN_VERSION}`,
    linkText: "predictable link behavior"
  },
  [CATEGORIES.FORM_LABELS]: {
    text: "Understand the fundamentals of making forms accessible.",
    url: `https://www.webyes.com/documentation/proper-form-labelling-accessibility?utm_source=IssueFixes&utm_medium=AccessibilityPlus&utm_campaign=Documentation&utm_content=${PLUGIN_VERSION}`,
    linkText: "fundamentals of making forms accessible"
  }
};
const SETTINGS_CONFIG = [
  {
    key: "langDir.status",
    label: "Add lang and dir attributes to <html>",
    description: "Helps screen readers detect language and text direction for accurate reading.",
    category: CATEGORIES.READABILITY,
    guideline: "3.1.1"
  },
  {
    key: "removeTabIndex.status",
    label: "Remove tabindex from focusable elements",
    description: "Prevents custom tab order from breaking natural keyboard navigation.",
    category: CATEGORIES.KEYBOARD_NAVIGATION,
    guideline: "2.4.3"
  },
  {
    key: "removeTitleIfAccessibleName.status",
    label: "Remove title attributes when accessible names exist",
    description: "Avoids redundancy and confusion from overused or ignored title attributes",
    category: CATEGORIES.ACCESSIBLE_NAME,
    guideline: "2.4.4, 1.1.1"
  },
  {
    key: "forceUnderlineOnLinks.status",
    label: "Underline non-navigation links",
    description: "Makes links clearly visible without relying on color alone.",
    category: CATEGORIES.LINK_VISIBILITY,
    guideline: "1.4.1"
  },
  {
    key: "metaViewportScale.status",
    label: "Ensure viewport allows scaling",
    description: "Lets users zoom on mobile for better readability and accessibility.",
    category: CATEGORIES.RESPONSIVE_DESIGN,
    guideline: "1.4.4, 1.4.10"
  },
  {
    key: "removeTargetBlank.status",
    label: 'Remove target="_blank" by default',
    description: "Prevents unexpected new tabs or windows that can disorient users.",
    category: CATEGORIES.LINK_BEHAVIOR,
    guideline: "3.2.5"
  },
  {
    key: "addTargetBlankLabel.status",
    label: 'Add label/icon for target="_blank" links',
    description: "Informs users when a link opens in a new tab or window.",
    category: CATEGORIES.LINK_BEHAVIOR,
    guideline: "3.2.5"
  },
  {
    key: "enableSkipLink.status",
    label: "Add skip link to content",
    description: "Lets keyboard users jump directly to the main content area.",
    category: CATEGORIES.KEYBOARD_NAVIGATION,
    guideline: "2.4.1"
  },
  {
    key: "addMissingCommentFormLabels.status",
    label: "Add missing labels to WordPress comment form",
    description: "Ensures all form fields are properly labeled for screen readers.",
    category: CATEGORIES.FORM_LABELS,
    guideline: "3.3.2"
  },
  {
    key: "addMissingSearchFormLabels.status",
    label: "Add missing labels to WordPress search form",
    description: "Adds a descriptive label to the search field for accessibility.",
    category: CATEGORIES.FORM_LABELS,
    guideline: "1.3.1, 3.3.2"
  },
  {
    key: "addFocusOutline.status",
    label: "Add outline to focused elements",
    description: "Makes it easier to see which element is focused during keyboard use.",
    category: CATEGORIES.KEYBOARD_NAVIGATION,
    guideline: "2.4.7"
  }
];
const SettingsTab = ({ onSave }) => {
  const { config, setFixes, isLoading, error } = useConfigStore();
  const getSettingValue = (key) => {
    const keys = key.split(".");
    let value = config.fixes;
    for (const k2 of keys) {
      value = value == null ? void 0 : value[k2];
    }
    return Boolean(value);
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { className: "cy:rounded-lg cy:gap-0 cy:shadow-none!", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { className: "cy:border-b cy:border-gray-200 cy:pb-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "cy:text-xl", children: "Issue fixes" }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs(CardDescription, { children: [
        "Enable these options on to have accessibility fixes applied automatically to your markup. No coding needed on your end.",
        /* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
        /* @__PURE__ */ jsxRuntimeExports.jsx("em", { children: "Note: This works only for content that's present when your page first loads. Elements added later through JavaScript won't be included." })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(CardAction, {})
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(CardContent, { className: "cy:p-0", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:max-w-7xl cy:mx-auto cy:px-4 cy:sm:px-6 cy:lg:px-8", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:flex-col cy:gap-4 cy:py-6", children: Object.values(CATEGORIES).map((category) => {
        const categorySettings = SETTINGS_CONFIG.filter(
          (setting) => setting.category === category
        );
        if (categorySettings.length === 0) return null;
        const learnMore = CATEGORY_LEARN_MORE[category];
        return /* @__PURE__ */ jsxRuntimeExports.jsx(
          SettingGroup,
          {
            category,
            settings: categorySettings.map((setting) => ({
              key: setting.key,
              label: setting.label,
              description: setting.description,
              guideline: setting.guideline,
              checked: getSettingValue(setting.key),
              onCheckedChange: (checked) => setFixes(setting.key, checked)
            })),
            learnMoreUrl: learnMore == null ? void 0 : learnMore.url,
            learnMoreText: learnMore == null ? void 0 : learnMore.text,
            learnMoreLinkText: learnMore == null ? void 0 : learnMore.linkText
          },
          category
        );
      }) }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:py-2", children: [
        error && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:text-red-500 cy:text-sm", children: error }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Button,
          {
            onClick: onSave,
            disabled: isLoading,
            className: "cy:rounded! cy:font-semibold!",
            children: isLoading ? "Saving..." : "Save settings"
          }
        )
      ] })
    ] }) })
  ] });
};
function useToast() {
  const showToast = ({ title, description, variant = "default", duration = 4e3 }) => {
    const message = title || description || "";
    const fullMessage = title && description ? `${title} ${description}` : message;
    switch (variant) {
      case "success":
        return toast.success(fullMessage, { duration });
      case "destructive":
        return toast.error(fullMessage, { duration });
      case "warning":
        return toast.warning(fullMessage, { duration });
      case "info":
        return toast.info(fullMessage, { duration });
      default:
        return toast(fullMessage, { duration });
    }
  };
  return {
    toast: showToast,
    success: (message, duration) => showToast({ description: message, variant: "success", duration }),
    error: (message, duration) => showToast({ description: message, variant: "destructive", duration }),
    warning: (message, duration) => showToast({ description: message, variant: "warning", duration }),
    info: (message, duration) => showToast({ description: message, variant: "info", duration }),
    promise: toast.promise,
    dismiss: toast.dismiss,
    loading: toast.loading
  };
}
({
  promise: toast.promise,
  dismiss: toast.dismiss,
  loading: toast.loading
});
const SkeletonLoader = () => {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:bg-white cy:rounded-lg cy:shadow-sm", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:border-b cy:border-gray-200 cy:pb-6 cy:p-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-6 cy:bg-gray-200 cy:rounded cy:w-48 cy:mb-2 cy:animate-pulse" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-100 cy:rounded cy:w-96 cy:animate-pulse" })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:p-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:gap-4", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-20 cy:border cy:border-[#EAEBEC] cy:rounded-xs", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-4 cy:bg-[#EAEBEC] cy:flex cy:items-center cy:justify-start cy:py-4 cy:px-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-300 cy:rounded cy:w-20 cy:animate-pulse" }) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-16 cy:bg-white cy:p-4 cy:space-y-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-1 cy:pl-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-start cy:space-x-5", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-4.5 cy:h-4.5 cy:bg-gray-200 cy:rounded-[2px] cy:border-2 cy:border-[#49454F] cy:animate-pulse" }),
              /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-64 cy:mb-1 cy:animate-pulse" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-80 cy:animate-pulse" })
              ] })
            ] }) }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:ml-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-16 cy:animate-pulse" }) })
          ] }) })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-20 cy:border cy:border-[#EAEBEC] cy:rounded-xs", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-4 cy:bg-[#EAEBEC] cy:flex cy:items-center cy:justify-start cy:py-4 cy:px-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-300 cy:rounded cy:w-32 cy:animate-pulse" }) }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:col-span-16 cy:bg-white cy:p-4 cy:space-y-6", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-1 cy:pl-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-start cy:space-x-5", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-4.5 cy:h-4.5 cy:bg-gray-200 cy:rounded-[2px] cy:border-2 cy:border-[#49454F] cy:animate-pulse" }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-72 cy:mb-1 cy:animate-pulse" }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-80 cy:animate-pulse" })
                ] })
              ] }) }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:ml-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-16 cy:animate-pulse" }) })
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-1 cy:pl-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-start cy:space-x-5", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-4.5 cy:h-4.5 cy:bg-gray-200 cy:rounded-[2px] cy:border-2 cy:border-[#49454F] cy:animate-pulse" }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-48 cy:mb-1 cy:animate-pulse" }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-80 cy:animate-pulse" })
                ] })
              ] }) }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:ml-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-16 cy:animate-pulse" }) })
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:mt-4 cy:pl-14", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:max-w-md", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-64 cy:mb-2 cy:animate-pulse" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-20 cy:bg-gray-100 cy:border cy:border-gray-300 cy:rounded-md cy:animate-pulse" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-80 cy:mt-1 cy:animate-pulse" })
            ] }) }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-1 cy:pl-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-start cy:space-x-5", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-4.5 cy:h-4.5 cy:bg-gray-200 cy:rounded-[2px] cy:border-2 cy:border-[#49454F] cy:animate-pulse" }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-56 cy:mb-1 cy:animate-pulse" }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-80 cy:animate-pulse" })
                ] })
              ] }) }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:ml-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-16 cy:animate-pulse" }) })
            ] })
          ] })
        ] }),
        [...Array(5)].map((_, i) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-20 cy:border cy:border-[#EAEBEC] cy:rounded-xs", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-4 cy:bg-[#EAEBEC] cy:flex cy:items-center cy:justify-start cy:py-4 cy:px-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-300 cy:rounded cy:w-24 cy:animate-pulse" }) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-16 cy:bg-white cy:p-4 cy:space-y-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex-1 cy:pl-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-start cy:space-x-5", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-4.5 cy:h-4.5 cy:bg-gray-200 cy:rounded-[2px] cy:border-2 cy:border-[#49454F] cy:animate-pulse" }),
              /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-60 cy:mb-1 cy:animate-pulse" }),
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-72 cy:animate-pulse" })
              ] })
            ] }) }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:ml-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-3 cy:bg-gray-100 cy:rounded cy:w-16 cy:animate-pulse" }) })
          ] }) })
        ] }, i))
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:py-2 cy:mt-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-10 cy:bg-gray-200 cy:rounded cy:w-32 cy:animate-pulse" }) })
    ] })
  ] });
};
const Route$3 = createFileRoute("/issue-fixes")({
  component: IssueFixes
});
function IssueFixes() {
  const { isLoading, fetchConfig, saveConfig } = useConfigStore();
  const { toast: toast2 } = useToast();
  reactExports.useEffect(() => {
    fetchConfig();
  }, [fetchConfig]);
  const handleSave = reactExports.useCallback(async () => {
    try {
      await saveConfig();
      toast2({
        title: "Setting saved!",
        description: "Clear the cache if you are using any cache plugins.",
        variant: "success"
      });
    } catch {
      toast2({
        title: "Failed to save settings",
        description: "Please try again",
        variant: "destructive"
      });
    }
  }, [saveConfig, toast2]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonLoader, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(SettingsTab, { onSave: handleSave }) });
}
var SWITCH_NAME = "Switch";
var [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);
var [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);
var Switch$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeSwitch,
      name,
      checked: checkedProp,
      defaultChecked,
      required,
      disabled,
      value = "on",
      onCheckedChange,
      form,
      ...switchProps
    } = props;
    const [button, setButton] = reactExports.useState(null);
    const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));
    const hasConsumerStoppedPropagationRef = reactExports.useRef(false);
    const isFormControl = button ? form || !!button.closest("form") : true;
    const [checked, setChecked] = useControllableState({
      prop: checkedProp,
      defaultProp: defaultChecked ?? false,
      onChange: onCheckedChange,
      caller: SWITCH_NAME
    });
    return /* @__PURE__ */ jsxRuntimeExports.jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Primitive.button,
        {
          type: "button",
          role: "switch",
          "aria-checked": checked,
          "aria-required": required,
          "data-state": getState$4(checked),
          "data-disabled": disabled ? "" : void 0,
          disabled,
          value,
          ...switchProps,
          ref: composedRefs,
          onClick: composeEventHandlers(props.onClick, (event) => {
            setChecked((prevChecked) => !prevChecked);
            if (isFormControl) {
              hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
              if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
            }
          })
        }
      ),
      isFormControl && /* @__PURE__ */ jsxRuntimeExports.jsx(
        SwitchBubbleInput,
        {
          control: button,
          bubbles: !hasConsumerStoppedPropagationRef.current,
          name,
          value,
          checked,
          required,
          disabled,
          form,
          style: { transform: "translateX(-100%)" }
        }
      )
    ] });
  }
);
Switch$1.displayName = SWITCH_NAME;
var THUMB_NAME$1 = "SwitchThumb";
var SwitchThumb = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSwitch, ...thumbProps } = props;
    const context = useSwitchContext(THUMB_NAME$1, __scopeSwitch);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.span,
      {
        "data-state": getState$4(context.checked),
        "data-disabled": context.disabled ? "" : void 0,
        ...thumbProps,
        ref: forwardedRef
      }
    );
  }
);
SwitchThumb.displayName = THUMB_NAME$1;
var BUBBLE_INPUT_NAME$3 = "SwitchBubbleInput";
var SwitchBubbleInput = reactExports.forwardRef(
  ({
    __scopeSwitch,
    control,
    checked,
    bubbles = true,
    ...props
  }, forwardedRef) => {
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(ref, forwardedRef);
    const prevChecked = usePrevious(checked);
    const controlSize = useSize(control);
    reactExports.useEffect(() => {
      const input = ref.current;
      if (!input) return;
      const inputProto = window.HTMLInputElement.prototype;
      const descriptor = Object.getOwnPropertyDescriptor(
        inputProto,
        "checked"
      );
      const setChecked = descriptor.set;
      if (prevChecked !== checked && setChecked) {
        const event = new Event("click", { bubbles });
        setChecked.call(input, checked);
        input.dispatchEvent(event);
      }
    }, [prevChecked, checked, bubbles]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      "input",
      {
        type: "checkbox",
        "aria-hidden": true,
        defaultChecked: checked,
        ...props,
        tabIndex: -1,
        ref: composedRefs,
        style: {
          ...props.style,
          ...controlSize,
          position: "absolute",
          pointerEvents: "none",
          opacity: 0,
          margin: 0
        }
      }
    );
  }
);
SwitchBubbleInput.displayName = BUBBLE_INPUT_NAME$3;
function getState$4(checked) {
  return checked ? "checked" : "unchecked";
}
var Root$6 = Switch$1;
var Thumb$1 = SwitchThumb;
function Switch({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Root$6,
    {
      "data-slot": "switch",
      className: cn$1(
        "cy:peer cy:data-[state=checked]:bg-primary cy:data-[state=unchecked]:bg-input cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:dark:data-[state=unchecked]:bg-input/80 cy:inline-flex cy:h-[28px] cy:w-[48px] cy:shrink-0 cy:items-center cy:rounded-full cy:border cy:border-transparent cy:shadow-xs cy:transition-all cy:outline-none cy:focus-visible:ring-[3px] cy:disabled:cursor-not-allowed cy:disabled:opacity-50",
        className
      ),
      ...props,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        Thumb$1,
        {
          "data-slot": "switch-thumb",
          className: cn$1(
            "cy:bg-background cy:dark:data-[state=unchecked]:bg-foreground cy:dark:data-[state=checked]:bg-primary-foreground cy:pointer-events-none cy:block cy:size-5.5 cy:rounded-full cy:ring-0 cy:transition-transform cy:data-[state=checked]:translate-x-[21px] cy:data-[state=unchecked]:translate-x-0.5"
          )
        }
      )
    }
  );
}
function clamp$1(value, [min2, max2]) {
  return Math.min(max2, Math.max(min2, value));
}
function createCollection(name) {
  const PROVIDER_NAME2 = name + "CollectionProvider";
  const [createCollectionContext, createCollectionScope2] = createContextScope(PROVIDER_NAME2);
  const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(
    PROVIDER_NAME2,
    { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }
  );
  const CollectionProvider = (props) => {
    const { scope, children } = props;
    const ref = React.useRef(null);
    const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;
    return /* @__PURE__ */ jsxRuntimeExports.jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
  };
  CollectionProvider.displayName = PROVIDER_NAME2;
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
  const CollectionSlotImpl = /* @__PURE__ */ createSlot(COLLECTION_SLOT_NAME);
  const CollectionSlot = React.forwardRef(
    (props, forwardedRef) => {
      const { scope, children } = props;
      const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
      const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
      return /* @__PURE__ */ jsxRuntimeExports.jsx(CollectionSlotImpl, { ref: composedRefs, children });
    }
  );
  CollectionSlot.displayName = COLLECTION_SLOT_NAME;
  const ITEM_SLOT_NAME = name + "CollectionItemSlot";
  const ITEM_DATA_ATTR = "data-radix-collection-item";
  const CollectionItemSlotImpl = /* @__PURE__ */ createSlot(ITEM_SLOT_NAME);
  const CollectionItemSlot = React.forwardRef(
    (props, forwardedRef) => {
      const { scope, children, ...itemData } = props;
      const ref = React.useRef(null);
      const composedRefs = useComposedRefs(forwardedRef, ref);
      const context = useCollectionContext(ITEM_SLOT_NAME, scope);
      React.useEffect(() => {
        context.itemMap.set(ref, { ref, ...itemData });
        return () => void context.itemMap.delete(ref);
      });
      return /* @__PURE__ */ jsxRuntimeExports.jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
    }
  );
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
  function useCollection2(scope) {
    const context = useCollectionContext(name + "CollectionConsumer", scope);
    const getItems = React.useCallback(() => {
      const collectionNode = context.collectionRef.current;
      if (!collectionNode) return [];
      const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
      const items = Array.from(context.itemMap.values());
      const orderedItems = items.sort(
        (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)
      );
      return orderedItems;
    }, [context.collectionRef, context.itemMap]);
    return getItems;
  }
  return [
    { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },
    useCollection2,
    createCollectionScope2
  ];
}
var DirectionContext = reactExports.createContext(void 0);
function useDirection(localDir) {
  const globalDir = reactExports.useContext(DirectionContext);
  return localDir || globalDir || "ltr";
}
function useCallbackRef$1(callback) {
  const callbackRef = reactExports.useRef(callback);
  reactExports.useEffect(() => {
    callbackRef.current = callback;
  });
  return reactExports.useMemo(() => (...args) => {
    var _a2;
    return (_a2 = callbackRef.current) == null ? void 0 : _a2.call(callbackRef, ...args);
  }, []);
}
function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
  const onEscapeKeyDown = useCallbackRef$1(onEscapeKeyDownProp);
  reactExports.useEffect(() => {
    const handleKeyDown = (event) => {
      if (event.key === "Escape") {
        onEscapeKeyDown(event);
      }
    };
    ownerDocument.addEventListener("keydown", handleKeyDown, { capture: true });
    return () => ownerDocument.removeEventListener("keydown", handleKeyDown, { capture: true });
  }, [onEscapeKeyDown, ownerDocument]);
}
var DISMISSABLE_LAYER_NAME = "DismissableLayer";
var CONTEXT_UPDATE = "dismissableLayer.update";
var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
var originalBodyPointerEvents;
var DismissableLayerContext = reactExports.createContext({
  layers: /* @__PURE__ */ new Set(),
  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
  branches: /* @__PURE__ */ new Set()
});
var DismissableLayer = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      disableOutsidePointerEvents = false,
      onEscapeKeyDown,
      onPointerDownOutside,
      onFocusOutside,
      onInteractOutside,
      onDismiss,
      ...layerProps
    } = props;
    const context = reactExports.useContext(DismissableLayerContext);
    const [node, setNode] = reactExports.useState(null);
    const ownerDocument = (node == null ? void 0 : node.ownerDocument) ?? (globalThis == null ? void 0 : globalThis.document);
    const [, force] = reactExports.useState({});
    const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));
    const layers = Array.from(context.layers);
    const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
    const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
    const index2 = node ? layers.indexOf(node) : -1;
    const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
    const isPointerEventsEnabled = index2 >= highestLayerWithOutsidePointerEventsDisabledIndex;
    const pointerDownOutside = usePointerDownOutside((event) => {
      const target = event.target;
      const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
      if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
      onPointerDownOutside == null ? void 0 : onPointerDownOutside(event);
      onInteractOutside == null ? void 0 : onInteractOutside(event);
      if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
    }, ownerDocument);
    const focusOutside = useFocusOutside((event) => {
      const target = event.target;
      const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));
      if (isFocusInBranch) return;
      onFocusOutside == null ? void 0 : onFocusOutside(event);
      onInteractOutside == null ? void 0 : onInteractOutside(event);
      if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
    }, ownerDocument);
    useEscapeKeydown((event) => {
      const isHighestLayer = index2 === context.layers.size - 1;
      if (!isHighestLayer) return;
      onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(event);
      if (!event.defaultPrevented && onDismiss) {
        event.preventDefault();
        onDismiss();
      }
    }, ownerDocument);
    reactExports.useEffect(() => {
      if (!node) return;
      if (disableOutsidePointerEvents) {
        if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
          originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
          ownerDocument.body.style.pointerEvents = "none";
        }
        context.layersWithOutsidePointerEventsDisabled.add(node);
      }
      context.layers.add(node);
      dispatchUpdate();
      return () => {
        if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {
          ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
        }
      };
    }, [node, ownerDocument, disableOutsidePointerEvents, context]);
    reactExports.useEffect(() => {
      return () => {
        if (!node) return;
        context.layers.delete(node);
        context.layersWithOutsidePointerEventsDisabled.delete(node);
        dispatchUpdate();
      };
    }, [node, context]);
    reactExports.useEffect(() => {
      const handleUpdate = () => force({});
      document.addEventListener(CONTEXT_UPDATE, handleUpdate);
      return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
    }, []);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.div,
      {
        ...layerProps,
        ref: composedRefs,
        style: {
          pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
          ...props.style
        },
        onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
        onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
        onPointerDownCapture: composeEventHandlers(
          props.onPointerDownCapture,
          pointerDownOutside.onPointerDownCapture
        )
      }
    );
  }
);
DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
var BRANCH_NAME = "DismissableLayerBranch";
var DismissableLayerBranch = reactExports.forwardRef((props, forwardedRef) => {
  const context = reactExports.useContext(DismissableLayerContext);
  const ref = reactExports.useRef(null);
  const composedRefs = useComposedRefs(forwardedRef, ref);
  reactExports.useEffect(() => {
    const node = ref.current;
    if (node) {
      context.branches.add(node);
      return () => {
        context.branches.delete(node);
      };
    }
  }, [context.branches]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { ...props, ref: composedRefs });
});
DismissableLayerBranch.displayName = BRANCH_NAME;
function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
  const handlePointerDownOutside = useCallbackRef$1(onPointerDownOutside);
  const isPointerInsideReactTreeRef = reactExports.useRef(false);
  const handleClickRef = reactExports.useRef(() => {
  });
  reactExports.useEffect(() => {
    const handlePointerDown = (event) => {
      if (event.target && !isPointerInsideReactTreeRef.current) {
        let handleAndDispatchPointerDownOutsideEvent2 = function() {
          handleAndDispatchCustomEvent(
            POINTER_DOWN_OUTSIDE,
            handlePointerDownOutside,
            eventDetail,
            { discrete: true }
          );
        };
        const eventDetail = { originalEvent: event };
        if (event.pointerType === "touch") {
          ownerDocument.removeEventListener("click", handleClickRef.current);
          handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
          ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
        } else {
          handleAndDispatchPointerDownOutsideEvent2();
        }
      } else {
        ownerDocument.removeEventListener("click", handleClickRef.current);
      }
      isPointerInsideReactTreeRef.current = false;
    };
    const timerId = window.setTimeout(() => {
      ownerDocument.addEventListener("pointerdown", handlePointerDown);
    }, 0);
    return () => {
      window.clearTimeout(timerId);
      ownerDocument.removeEventListener("pointerdown", handlePointerDown);
      ownerDocument.removeEventListener("click", handleClickRef.current);
    };
  }, [ownerDocument, handlePointerDownOutside]);
  return {
    // ensures we check React component tree (not just DOM tree)
    onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true
  };
}
function useFocusOutside(onFocusOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
  const handleFocusOutside = useCallbackRef$1(onFocusOutside);
  const isFocusInsideReactTreeRef = reactExports.useRef(false);
  reactExports.useEffect(() => {
    const handleFocus = (event) => {
      if (event.target && !isFocusInsideReactTreeRef.current) {
        const eventDetail = { originalEvent: event };
        handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
          discrete: false
        });
      }
    };
    ownerDocument.addEventListener("focusin", handleFocus);
    return () => ownerDocument.removeEventListener("focusin", handleFocus);
  }, [ownerDocument, handleFocusOutside]);
  return {
    onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
    onBlurCapture: () => isFocusInsideReactTreeRef.current = false
  };
}
function dispatchUpdate() {
  const event = new CustomEvent(CONTEXT_UPDATE);
  document.dispatchEvent(event);
}
function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
  const target = detail.originalEvent.target;
  const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
  if (handler) target.addEventListener(name, handler, { once: true });
  if (discrete) {
    dispatchDiscreteCustomEvent(target, event);
  } else {
    target.dispatchEvent(event);
  }
}
var count$1 = 0;
function useFocusGuards() {
  reactExports.useEffect(() => {
    const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]");
    document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard());
    document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard());
    count$1++;
    return () => {
      if (count$1 === 1) {
        document.querySelectorAll("[data-radix-focus-guard]").forEach((node) => node.remove());
      }
      count$1--;
    };
  }, []);
}
function createFocusGuard() {
  const element = document.createElement("span");
  element.setAttribute("data-radix-focus-guard", "");
  element.tabIndex = 0;
  element.style.outline = "none";
  element.style.opacity = "0";
  element.style.position = "fixed";
  element.style.pointerEvents = "none";
  return element;
}
var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
var EVENT_OPTIONS$1 = { bubbles: false, cancelable: true };
var FOCUS_SCOPE_NAME = "FocusScope";
var FocusScope = reactExports.forwardRef((props, forwardedRef) => {
  const {
    loop = false,
    trapped = false,
    onMountAutoFocus: onMountAutoFocusProp,
    onUnmountAutoFocus: onUnmountAutoFocusProp,
    ...scopeProps
  } = props;
  const [container, setContainer] = reactExports.useState(null);
  const onMountAutoFocus = useCallbackRef$1(onMountAutoFocusProp);
  const onUnmountAutoFocus = useCallbackRef$1(onUnmountAutoFocusProp);
  const lastFocusedElementRef = reactExports.useRef(null);
  const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));
  const focusScope = reactExports.useRef({
    paused: false,
    pause() {
      this.paused = true;
    },
    resume() {
      this.paused = false;
    }
  }).current;
  reactExports.useEffect(() => {
    if (trapped) {
      let handleFocusIn2 = function(event) {
        if (focusScope.paused || !container) return;
        const target = event.target;
        if (container.contains(target)) {
          lastFocusedElementRef.current = target;
        } else {
          focus(lastFocusedElementRef.current, { select: true });
        }
      }, handleFocusOut2 = function(event) {
        if (focusScope.paused || !container) return;
        const relatedTarget = event.relatedTarget;
        if (relatedTarget === null) return;
        if (!container.contains(relatedTarget)) {
          focus(lastFocusedElementRef.current, { select: true });
        }
      }, handleMutations2 = function(mutations) {
        const focusedElement = document.activeElement;
        if (focusedElement !== document.body) return;
        for (const mutation of mutations) {
          if (mutation.removedNodes.length > 0) focus(container);
        }
      };
      document.addEventListener("focusin", handleFocusIn2);
      document.addEventListener("focusout", handleFocusOut2);
      const mutationObserver = new MutationObserver(handleMutations2);
      if (container) mutationObserver.observe(container, { childList: true, subtree: true });
      return () => {
        document.removeEventListener("focusin", handleFocusIn2);
        document.removeEventListener("focusout", handleFocusOut2);
        mutationObserver.disconnect();
      };
    }
  }, [trapped, container, focusScope.paused]);
  reactExports.useEffect(() => {
    if (container) {
      focusScopesStack.add(focusScope);
      const previouslyFocusedElement = document.activeElement;
      const hasFocusedCandidate = container.contains(previouslyFocusedElement);
      if (!hasFocusedCandidate) {
        const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS$1);
        container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
        container.dispatchEvent(mountEvent);
        if (!mountEvent.defaultPrevented) {
          focusFirst$1(removeLinks(getTabbableCandidates(container)), { select: true });
          if (document.activeElement === previouslyFocusedElement) {
            focus(container);
          }
        }
      }
      return () => {
        container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
        setTimeout(() => {
          const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS$1);
          container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
          container.dispatchEvent(unmountEvent);
          if (!unmountEvent.defaultPrevented) {
            focus(previouslyFocusedElement ?? document.body, { select: true });
          }
          container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
          focusScopesStack.remove(focusScope);
        }, 0);
      };
    }
  }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
  const handleKeyDown = reactExports.useCallback(
    (event) => {
      if (!loop && !trapped) return;
      if (focusScope.paused) return;
      const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
      const focusedElement = document.activeElement;
      if (isTabKey && focusedElement) {
        const container2 = event.currentTarget;
        const [first, last2] = getTabbableEdges(container2);
        const hasTabbableElementsInside = first && last2;
        if (!hasTabbableElementsInside) {
          if (focusedElement === container2) event.preventDefault();
        } else {
          if (!event.shiftKey && focusedElement === last2) {
            event.preventDefault();
            if (loop) focus(first, { select: true });
          } else if (event.shiftKey && focusedElement === first) {
            event.preventDefault();
            if (loop) focus(last2, { select: true });
          }
        }
      }
    },
    [loop, trapped, focusScope.paused]
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
});
FocusScope.displayName = FOCUS_SCOPE_NAME;
function focusFirst$1(candidates, { select = false } = {}) {
  const previouslyFocusedElement = document.activeElement;
  for (const candidate of candidates) {
    focus(candidate, { select });
    if (document.activeElement !== previouslyFocusedElement) return;
  }
}
function getTabbableEdges(container) {
  const candidates = getTabbableCandidates(container);
  const first = findVisible(candidates, container);
  const last2 = findVisible(candidates.reverse(), container);
  return [first, last2];
}
function getTabbableCandidates(container) {
  const nodes = [];
  const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
    acceptNode: (node) => {
      const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
      if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;
      return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
    }
  });
  while (walker.nextNode()) nodes.push(walker.currentNode);
  return nodes;
}
function findVisible(elements, container) {
  for (const element of elements) {
    if (!isHidden(element, { upTo: container })) return element;
  }
}
function isHidden(node, { upTo }) {
  if (getComputedStyle(node).visibility === "hidden") return true;
  while (node) {
    if (upTo !== void 0 && node === upTo) return false;
    if (getComputedStyle(node).display === "none") return true;
    node = node.parentElement;
  }
  return false;
}
function isSelectableInput(element) {
  return element instanceof HTMLInputElement && "select" in element;
}
function focus(element, { select = false } = {}) {
  if (element && element.focus) {
    const previouslyFocusedElement = document.activeElement;
    element.focus({ preventScroll: true });
    if (element !== previouslyFocusedElement && isSelectableInput(element) && select)
      element.select();
  }
}
var focusScopesStack = createFocusScopesStack();
function createFocusScopesStack() {
  let stack = [];
  return {
    add(focusScope) {
      const activeFocusScope = stack[0];
      if (focusScope !== activeFocusScope) {
        activeFocusScope == null ? void 0 : activeFocusScope.pause();
      }
      stack = arrayRemove(stack, focusScope);
      stack.unshift(focusScope);
    },
    remove(focusScope) {
      var _a2;
      stack = arrayRemove(stack, focusScope);
      (_a2 = stack[0]) == null ? void 0 : _a2.resume();
    }
  };
}
function arrayRemove(array, item) {
  const updatedArray = [...array];
  const index2 = updatedArray.indexOf(item);
  if (index2 !== -1) {
    updatedArray.splice(index2, 1);
  }
  return updatedArray;
}
function removeLinks(items) {
  return items.filter((item) => item.tagName !== "A");
}
var useReactId = React$1[" useId ".trim().toString()] || (() => void 0);
var count = 0;
function useId(deterministicId) {
  const [id, setId] = reactExports.useState(useReactId());
  useLayoutEffect2(() => {
    setId((reactId) => reactId ?? String(count++));
  }, [deterministicId]);
  return deterministicId || (id ? `radix-${id}` : "");
}
const sides = ["top", "right", "bottom", "left"];
const min = Math.min;
const max = Math.max;
const round = Math.round;
const floor = Math.floor;
const createCoords = (v) => ({
  x: v,
  y: v
});
const oppositeSideMap = {
  left: "right",
  right: "left",
  bottom: "top",
  top: "bottom"
};
const oppositeAlignmentMap = {
  start: "end",
  end: "start"
};
function clamp(start, value, end) {
  return max(start, min(value, end));
}
function evaluate(value, param) {
  return typeof value === "function" ? value(param) : value;
}
function getSide(placement) {
  return placement.split("-")[0];
}
function getAlignment(placement) {
  return placement.split("-")[1];
}
function getOppositeAxis(axis) {
  return axis === "x" ? "y" : "x";
}
function getAxisLength(axis) {
  return axis === "y" ? "height" : "width";
}
const yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]);
function getSideAxis(placement) {
  return yAxisSides.has(getSide(placement)) ? "y" : "x";
}
function getAlignmentAxis(placement) {
  return getOppositeAxis(getSideAxis(placement));
}
function getAlignmentSides(placement, rects, rtl) {
  if (rtl === void 0) {
    rtl = false;
  }
  const alignment = getAlignment(placement);
  const alignmentAxis = getAlignmentAxis(placement);
  const length = getAxisLength(alignmentAxis);
  let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
  if (rects.reference[length] > rects.floating[length]) {
    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
  }
  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
}
function getExpandedPlacements(placement) {
  const oppositePlacement = getOppositePlacement(placement);
  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
}
function getOppositeAlignmentPlacement(placement) {
  return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
}
const lrPlacement = ["left", "right"];
const rlPlacement = ["right", "left"];
const tbPlacement = ["top", "bottom"];
const btPlacement = ["bottom", "top"];
function getSideList(side, isStart, rtl) {
  switch (side) {
    case "top":
    case "bottom":
      if (rtl) return isStart ? rlPlacement : lrPlacement;
      return isStart ? lrPlacement : rlPlacement;
    case "left":
    case "right":
      return isStart ? tbPlacement : btPlacement;
    default:
      return [];
  }
}
function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
  const alignment = getAlignment(placement);
  let list = getSideList(getSide(placement), direction === "start", rtl);
  if (alignment) {
    list = list.map((side) => side + "-" + alignment);
    if (flipAlignment) {
      list = list.concat(list.map(getOppositeAlignmentPlacement));
    }
  }
  return list;
}
function getOppositePlacement(placement) {
  return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
}
function expandPaddingObject(padding) {
  return {
    top: 0,
    right: 0,
    bottom: 0,
    left: 0,
    ...padding
  };
}
function getPaddingObject(padding) {
  return typeof padding !== "number" ? expandPaddingObject(padding) : {
    top: padding,
    right: padding,
    bottom: padding,
    left: padding
  };
}
function rectToClientRect(rect) {
  const {
    x,
    y,
    width,
    height
  } = rect;
  return {
    width,
    height,
    top: y,
    left: x,
    right: x + width,
    bottom: y + height,
    x,
    y
  };
}
function computeCoordsFromPlacement(_ref, placement, rtl) {
  let {
    reference,
    floating
  } = _ref;
  const sideAxis = getSideAxis(placement);
  const alignmentAxis = getAlignmentAxis(placement);
  const alignLength = getAxisLength(alignmentAxis);
  const side = getSide(placement);
  const isVertical = sideAxis === "y";
  const commonX = reference.x + reference.width / 2 - floating.width / 2;
  const commonY = reference.y + reference.height / 2 - floating.height / 2;
  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
  let coords;
  switch (side) {
    case "top":
      coords = {
        x: commonX,
        y: reference.y - floating.height
      };
      break;
    case "bottom":
      coords = {
        x: commonX,
        y: reference.y + reference.height
      };
      break;
    case "right":
      coords = {
        x: reference.x + reference.width,
        y: commonY
      };
      break;
    case "left":
      coords = {
        x: reference.x - floating.width,
        y: commonY
      };
      break;
    default:
      coords = {
        x: reference.x,
        y: reference.y
      };
  }
  switch (getAlignment(placement)) {
    case "start":
      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
      break;
    case "end":
      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
      break;
  }
  return coords;
}
const computePosition$1 = async (reference, floating, config) => {
  const {
    placement = "bottom",
    strategy = "absolute",
    middleware = [],
    platform: platform2
  } = config;
  const validMiddleware = middleware.filter(Boolean);
  const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));
  let rects = await platform2.getElementRects({
    reference,
    floating,
    strategy
  });
  let {
    x,
    y
  } = computeCoordsFromPlacement(rects, placement, rtl);
  let statefulPlacement = placement;
  let middlewareData = {};
  let resetCount = 0;
  for (let i = 0; i < validMiddleware.length; i++) {
    const {
      name,
      fn
    } = validMiddleware[i];
    const {
      x: nextX,
      y: nextY,
      data,
      reset
    } = await fn({
      x,
      y,
      initialPlacement: placement,
      placement: statefulPlacement,
      strategy,
      middlewareData,
      rects,
      platform: platform2,
      elements: {
        reference,
        floating
      }
    });
    x = nextX != null ? nextX : x;
    y = nextY != null ? nextY : y;
    middlewareData = {
      ...middlewareData,
      [name]: {
        ...middlewareData[name],
        ...data
      }
    };
    if (reset && resetCount <= 50) {
      resetCount++;
      if (typeof reset === "object") {
        if (reset.placement) {
          statefulPlacement = reset.placement;
        }
        if (reset.rects) {
          rects = reset.rects === true ? await platform2.getElementRects({
            reference,
            floating,
            strategy
          }) : reset.rects;
        }
        ({
          x,
          y
        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
      }
      i = -1;
    }
  }
  return {
    x,
    y,
    placement: statefulPlacement,
    strategy,
    middlewareData
  };
};
async function detectOverflow(state, options) {
  var _await$platform$isEle;
  if (options === void 0) {
    options = {};
  }
  const {
    x,
    y,
    platform: platform2,
    rects,
    elements,
    strategy
  } = state;
  const {
    boundary = "clippingAncestors",
    rootBoundary = "viewport",
    elementContext = "floating",
    altBoundary = false,
    padding = 0
  } = evaluate(options, state);
  const paddingObject = getPaddingObject(padding);
  const altContext = elementContext === "floating" ? "reference" : "floating";
  const element = elements[altBoundary ? altContext : elementContext];
  const clippingClientRect = rectToClientRect(await platform2.getClippingRect({
    element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),
    boundary,
    rootBoundary,
    strategy
  }));
  const rect = elementContext === "floating" ? {
    x,
    y,
    width: rects.floating.width,
    height: rects.floating.height
  } : rects.reference;
  const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));
  const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {
    x: 1,
    y: 1
  } : {
    x: 1,
    y: 1
  };
  const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({
    elements,
    rect,
    offsetParent,
    strategy
  }) : rect);
  return {
    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
  };
}
const arrow$3 = (options) => ({
  name: "arrow",
  options,
  async fn(state) {
    const {
      x,
      y,
      placement,
      rects,
      platform: platform2,
      elements,
      middlewareData
    } = state;
    const {
      element,
      padding = 0
    } = evaluate(options, state) || {};
    if (element == null) {
      return {};
    }
    const paddingObject = getPaddingObject(padding);
    const coords = {
      x,
      y
    };
    const axis = getAlignmentAxis(placement);
    const length = getAxisLength(axis);
    const arrowDimensions = await platform2.getDimensions(element);
    const isYAxis = axis === "y";
    const minProp = isYAxis ? "top" : "left";
    const maxProp = isYAxis ? "bottom" : "right";
    const clientProp = isYAxis ? "clientHeight" : "clientWidth";
    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
    const startDiff = coords[axis] - rects.reference[axis];
    const arrowOffsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(element));
    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
    if (!clientSize || !await (platform2.isElement == null ? void 0 : platform2.isElement(arrowOffsetParent))) {
      clientSize = elements.floating[clientProp] || rects.floating[length];
    }
    const centerToReference = endDiff / 2 - startDiff / 2;
    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
    const minPadding = min(paddingObject[minProp], largestPossiblePadding);
    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
    const min$1 = minPadding;
    const max2 = clientSize - arrowDimensions[length] - maxPadding;
    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
    const offset2 = clamp(min$1, center, max2);
    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset2 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0;
    return {
      [axis]: coords[axis] + alignmentOffset,
      data: {
        [axis]: offset2,
        centerOffset: center - offset2 - alignmentOffset,
        ...shouldAddOffset && {
          alignmentOffset
        }
      },
      reset: shouldAddOffset
    };
  }
});
const flip$2 = function(options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: "flip",
    options,
    async fn(state) {
      var _middlewareData$arrow, _middlewareData$flip;
      const {
        placement,
        middlewareData,
        rects,
        initialPlacement,
        platform: platform2,
        elements
      } = state;
      const {
        mainAxis: checkMainAxis = true,
        crossAxis: checkCrossAxis = true,
        fallbackPlacements: specifiedFallbackPlacements,
        fallbackStrategy = "bestFit",
        fallbackAxisSideDirection = "none",
        flipAlignment = true,
        ...detectOverflowOptions
      } = evaluate(options, state);
      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
        return {};
      }
      const side = getSide(placement);
      const initialSideAxis = getSideAxis(initialPlacement);
      const isBasePlacement = getSide(initialPlacement) === initialPlacement;
      const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
      }
      const placements = [initialPlacement, ...fallbackPlacements];
      const overflow = await detectOverflow(state, detectOverflowOptions);
      const overflows = [];
      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
      if (checkMainAxis) {
        overflows.push(overflow[side]);
      }
      if (checkCrossAxis) {
        const sides2 = getAlignmentSides(placement, rects, rtl);
        overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
      }
      overflowsData = [...overflowsData, {
        placement,
        overflows
      }];
      if (!overflows.every((side2) => side2 <= 0)) {
        var _middlewareData$flip2, _overflowsData$filter;
        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
        const nextPlacement = placements[nextIndex];
        if (nextPlacement) {
          const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
          if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
          // overflows the main axis.
          overflowsData.every((d) => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
            return {
              data: {
                index: nextIndex,
                overflows: overflowsData
              },
              reset: {
                placement: nextPlacement
              }
            };
          }
        }
        let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
        if (!resetPlacement) {
          switch (fallbackStrategy) {
            case "bestFit": {
              var _overflowsData$filter2;
              const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {
                if (hasFallbackAxisSideDirection) {
                  const currentSideAxis = getSideAxis(d.placement);
                  return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
                  // reading directions favoring greater width.
                  currentSideAxis === "y";
                }
                return true;
              }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
              if (placement2) {
                resetPlacement = placement2;
              }
              break;
            }
            case "initialPlacement":
              resetPlacement = initialPlacement;
              break;
          }
        }
        if (placement !== resetPlacement) {
          return {
            reset: {
              placement: resetPlacement
            }
          };
        }
      }
      return {};
    }
  };
};
function getSideOffsets(overflow, rect) {
  return {
    top: overflow.top - rect.height,
    right: overflow.right - rect.width,
    bottom: overflow.bottom - rect.height,
    left: overflow.left - rect.width
  };
}
function isAnySideFullyClipped(overflow) {
  return sides.some((side) => overflow[side] >= 0);
}
const hide$2 = function(options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: "hide",
    options,
    async fn(state) {
      const {
        rects
      } = state;
      const {
        strategy = "referenceHidden",
        ...detectOverflowOptions
      } = evaluate(options, state);
      switch (strategy) {
        case "referenceHidden": {
          const overflow = await detectOverflow(state, {
            ...detectOverflowOptions,
            elementContext: "reference"
          });
          const offsets = getSideOffsets(overflow, rects.reference);
          return {
            data: {
              referenceHiddenOffsets: offsets,
              referenceHidden: isAnySideFullyClipped(offsets)
            }
          };
        }
        case "escaped": {
          const overflow = await detectOverflow(state, {
            ...detectOverflowOptions,
            altBoundary: true
          });
          const offsets = getSideOffsets(overflow, rects.floating);
          return {
            data: {
              escapedOffsets: offsets,
              escaped: isAnySideFullyClipped(offsets)
            }
          };
        }
        default: {
          return {};
        }
      }
    }
  };
};
const originSides = /* @__PURE__ */ new Set(["left", "top"]);
async function convertValueToCoords(state, options) {
  const {
    placement,
    platform: platform2,
    elements
  } = state;
  const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
  const side = getSide(placement);
  const alignment = getAlignment(placement);
  const isVertical = getSideAxis(placement) === "y";
  const mainAxisMulti = originSides.has(side) ? -1 : 1;
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
  const rawValue = evaluate(options, state);
  let {
    mainAxis,
    crossAxis,
    alignmentAxis
  } = typeof rawValue === "number" ? {
    mainAxis: rawValue,
    crossAxis: 0,
    alignmentAxis: null
  } : {
    mainAxis: rawValue.mainAxis || 0,
    crossAxis: rawValue.crossAxis || 0,
    alignmentAxis: rawValue.alignmentAxis
  };
  if (alignment && typeof alignmentAxis === "number") {
    crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
  }
  return isVertical ? {
    x: crossAxis * crossAxisMulti,
    y: mainAxis * mainAxisMulti
  } : {
    x: mainAxis * mainAxisMulti,
    y: crossAxis * crossAxisMulti
  };
}
const offset$2 = function(options) {
  if (options === void 0) {
    options = 0;
  }
  return {
    name: "offset",
    options,
    async fn(state) {
      var _middlewareData$offse, _middlewareData$arrow;
      const {
        x,
        y,
        placement,
        middlewareData
      } = state;
      const diffCoords = await convertValueToCoords(state, options);
      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
        return {};
      }
      return {
        x: x + diffCoords.x,
        y: y + diffCoords.y,
        data: {
          ...diffCoords,
          placement
        }
      };
    }
  };
};
const shift$2 = function(options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: "shift",
    options,
    async fn(state) {
      const {
        x,
        y,
        placement
      } = state;
      const {
        mainAxis: checkMainAxis = true,
        crossAxis: checkCrossAxis = false,
        limiter = {
          fn: (_ref) => {
            let {
              x: x2,
              y: y2
            } = _ref;
            return {
              x: x2,
              y: y2
            };
          }
        },
        ...detectOverflowOptions
      } = evaluate(options, state);
      const coords = {
        x,
        y
      };
      const overflow = await detectOverflow(state, detectOverflowOptions);
      const crossAxis = getSideAxis(getSide(placement));
      const mainAxis = getOppositeAxis(crossAxis);
      let mainAxisCoord = coords[mainAxis];
      let crossAxisCoord = coords[crossAxis];
      if (checkMainAxis) {
        const minSide = mainAxis === "y" ? "top" : "left";
        const maxSide = mainAxis === "y" ? "bottom" : "right";
        const min2 = mainAxisCoord + overflow[minSide];
        const max2 = mainAxisCoord - overflow[maxSide];
        mainAxisCoord = clamp(min2, mainAxisCoord, max2);
      }
      if (checkCrossAxis) {
        const minSide = crossAxis === "y" ? "top" : "left";
        const maxSide = crossAxis === "y" ? "bottom" : "right";
        const min2 = crossAxisCoord + overflow[minSide];
        const max2 = crossAxisCoord - overflow[maxSide];
        crossAxisCoord = clamp(min2, crossAxisCoord, max2);
      }
      const limitedCoords = limiter.fn({
        ...state,
        [mainAxis]: mainAxisCoord,
        [crossAxis]: crossAxisCoord
      });
      return {
        ...limitedCoords,
        data: {
          x: limitedCoords.x - x,
          y: limitedCoords.y - y,
          enabled: {
            [mainAxis]: checkMainAxis,
            [crossAxis]: checkCrossAxis
          }
        }
      };
    }
  };
};
const limitShift$2 = function(options) {
  if (options === void 0) {
    options = {};
  }
  return {
    options,
    fn(state) {
      const {
        x,
        y,
        placement,
        rects,
        middlewareData
      } = state;
      const {
        offset: offset2 = 0,
        mainAxis: checkMainAxis = true,
        crossAxis: checkCrossAxis = true
      } = evaluate(options, state);
      const coords = {
        x,
        y
      };
      const crossAxis = getSideAxis(placement);
      const mainAxis = getOppositeAxis(crossAxis);
      let mainAxisCoord = coords[mainAxis];
      let crossAxisCoord = coords[crossAxis];
      const rawOffset = evaluate(offset2, state);
      const computedOffset = typeof rawOffset === "number" ? {
        mainAxis: rawOffset,
        crossAxis: 0
      } : {
        mainAxis: 0,
        crossAxis: 0,
        ...rawOffset
      };
      if (checkMainAxis) {
        const len = mainAxis === "y" ? "height" : "width";
        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
        if (mainAxisCoord < limitMin) {
          mainAxisCoord = limitMin;
        } else if (mainAxisCoord > limitMax) {
          mainAxisCoord = limitMax;
        }
      }
      if (checkCrossAxis) {
        var _middlewareData$offse, _middlewareData$offse2;
        const len = mainAxis === "y" ? "width" : "height";
        const isOriginSide = originSides.has(getSide(placement));
        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
        if (crossAxisCoord < limitMin) {
          crossAxisCoord = limitMin;
        } else if (crossAxisCoord > limitMax) {
          crossAxisCoord = limitMax;
        }
      }
      return {
        [mainAxis]: mainAxisCoord,
        [crossAxis]: crossAxisCoord
      };
    }
  };
};
const size$2 = function(options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: "size",
    options,
    async fn(state) {
      var _state$middlewareData, _state$middlewareData2;
      const {
        placement,
        rects,
        platform: platform2,
        elements
      } = state;
      const {
        apply = () => {
        },
        ...detectOverflowOptions
      } = evaluate(options, state);
      const overflow = await detectOverflow(state, detectOverflowOptions);
      const side = getSide(placement);
      const alignment = getAlignment(placement);
      const isYAxis = getSideAxis(placement) === "y";
      const {
        width,
        height
      } = rects.floating;
      let heightSide;
      let widthSide;
      if (side === "top" || side === "bottom") {
        heightSide = side;
        widthSide = alignment === (await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
      } else {
        widthSide = side;
        heightSide = alignment === "end" ? "top" : "bottom";
      }
      const maximumClippingHeight = height - overflow.top - overflow.bottom;
      const maximumClippingWidth = width - overflow.left - overflow.right;
      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
      const noShift = !state.middlewareData.shift;
      let availableHeight = overflowAvailableHeight;
      let availableWidth = overflowAvailableWidth;
      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
        availableWidth = maximumClippingWidth;
      }
      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
        availableHeight = maximumClippingHeight;
      }
      if (noShift && !alignment) {
        const xMin = max(overflow.left, 0);
        const xMax = max(overflow.right, 0);
        const yMin = max(overflow.top, 0);
        const yMax = max(overflow.bottom, 0);
        if (isYAxis) {
          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
        } else {
          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
        }
      }
      await apply({
        ...state,
        availableWidth,
        availableHeight
      });
      const nextDimensions = await platform2.getDimensions(elements.floating);
      if (width !== nextDimensions.width || height !== nextDimensions.height) {
        return {
          reset: {
            rects: true
          }
        };
      }
      return {};
    }
  };
};
function hasWindow() {
  return typeof window !== "undefined";
}
function getNodeName(node) {
  if (isNode(node)) {
    return (node.nodeName || "").toLowerCase();
  }
  return "#document";
}
function getWindow(node) {
  var _node$ownerDocument;
  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
}
function getDocumentElement(node) {
  var _ref;
  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
}
function isNode(value) {
  if (!hasWindow()) {
    return false;
  }
  return value instanceof Node || value instanceof getWindow(value).Node;
}
function isElement(value) {
  if (!hasWindow()) {
    return false;
  }
  return value instanceof Element || value instanceof getWindow(value).Element;
}
function isHTMLElement(value) {
  if (!hasWindow()) {
    return false;
  }
  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
}
function isShadowRoot(value) {
  if (!hasWindow() || typeof ShadowRoot === "undefined") {
    return false;
  }
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
}
const invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]);
function isOverflowElement(element) {
  const {
    overflow,
    overflowX,
    overflowY,
    display
  } = getComputedStyle$1(element);
  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
}
const tableElements = /* @__PURE__ */ new Set(["table", "td", "th"]);
function isTableElement(element) {
  return tableElements.has(getNodeName(element));
}
const topLayerSelectors = [":popover-open", ":modal"];
function isTopLayer(element) {
  return topLayerSelectors.some((selector) => {
    try {
      return element.matches(selector);
    } catch (_e2) {
      return false;
    }
  });
}
const transformProperties = ["transform", "translate", "scale", "rotate", "perspective"];
const willChangeValues = ["transform", "translate", "scale", "rotate", "perspective", "filter"];
const containValues = ["paint", "layout", "strict", "content"];
function isContainingBlock(elementOrCss) {
  const webkit = isWebKit();
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
  return transformProperties.some((value) => css[value] ? css[value] !== "none" : false) || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || willChangeValues.some((value) => (css.willChange || "").includes(value)) || containValues.some((value) => (css.contain || "").includes(value));
}
function getContainingBlock(element) {
  let currentNode = getParentNode(element);
  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
    if (isContainingBlock(currentNode)) {
      return currentNode;
    } else if (isTopLayer(currentNode)) {
      return null;
    }
    currentNode = getParentNode(currentNode);
  }
  return null;
}
function isWebKit() {
  if (typeof CSS === "undefined" || !CSS.supports) return false;
  return CSS.supports("-webkit-backdrop-filter", "none");
}
const lastTraversableNodeNames = /* @__PURE__ */ new Set(["html", "body", "#document"]);
function isLastTraversableNode(node) {
  return lastTraversableNodeNames.has(getNodeName(node));
}
function getComputedStyle$1(element) {
  return getWindow(element).getComputedStyle(element);
}
function getNodeScroll(element) {
  if (isElement(element)) {
    return {
      scrollLeft: element.scrollLeft,
      scrollTop: element.scrollTop
    };
  }
  return {
    scrollLeft: element.scrollX,
    scrollTop: element.scrollY
  };
}
function getParentNode(node) {
  if (getNodeName(node) === "html") {
    return node;
  }
  const result = (
    // Step into the shadow DOM of the parent of a slotted node.
    node.assignedSlot || // DOM Element detected.
    node.parentNode || // ShadowRoot detected.
    isShadowRoot(node) && node.host || // Fallback.
    getDocumentElement(node)
  );
  return isShadowRoot(result) ? result.host : result;
}
function getNearestOverflowAncestor(node) {
  const parentNode = getParentNode(node);
  if (isLastTraversableNode(parentNode)) {
    return node.ownerDocument ? node.ownerDocument.body : node.body;
  }
  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
    return parentNode;
  }
  return getNearestOverflowAncestor(parentNode);
}
function getOverflowAncestors(node, list, traverseIframes) {
  var _node$ownerDocument2;
  if (list === void 0) {
    list = [];
  }
  if (traverseIframes === void 0) {
    traverseIframes = true;
  }
  const scrollableAncestor = getNearestOverflowAncestor(node);
  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
  const win = getWindow(scrollableAncestor);
  if (isBody) {
    const frameElement = getFrameElement(win);
    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
  }
  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
}
function getFrameElement(win) {
  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
}
function getCssDimensions(element) {
  const css = getComputedStyle$1(element);
  let width = parseFloat(css.width) || 0;
  let height = parseFloat(css.height) || 0;
  const hasOffset = isHTMLElement(element);
  const offsetWidth = hasOffset ? element.offsetWidth : width;
  const offsetHeight = hasOffset ? element.offsetHeight : height;
  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
  if (shouldFallback) {
    width = offsetWidth;
    height = offsetHeight;
  }
  return {
    width,
    height,
    $: shouldFallback
  };
}
function unwrapElement(element) {
  return !isElement(element) ? element.contextElement : element;
}
function getScale(element) {
  const domElement = unwrapElement(element);
  if (!isHTMLElement(domElement)) {
    return createCoords(1);
  }
  const rect = domElement.getBoundingClientRect();
  const {
    width,
    height,
    $: $2
  } = getCssDimensions(domElement);
  let x = ($2 ? round(rect.width) : rect.width) / width;
  let y = ($2 ? round(rect.height) : rect.height) / height;
  if (!x || !Number.isFinite(x)) {
    x = 1;
  }
  if (!y || !Number.isFinite(y)) {
    y = 1;
  }
  return {
    x,
    y
  };
}
const noOffsets = /* @__PURE__ */ createCoords(0);
function getVisualOffsets(element) {
  const win = getWindow(element);
  if (!isWebKit() || !win.visualViewport) {
    return noOffsets;
  }
  return {
    x: win.visualViewport.offsetLeft,
    y: win.visualViewport.offsetTop
  };
}
function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
  if (isFixed === void 0) {
    isFixed = false;
  }
  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
    return false;
  }
  return isFixed;
}
function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
  if (includeScale === void 0) {
    includeScale = false;
  }
  if (isFixedStrategy === void 0) {
    isFixedStrategy = false;
  }
  const clientRect = element.getBoundingClientRect();
  const domElement = unwrapElement(element);
  let scale = createCoords(1);
  if (includeScale) {
    if (offsetParent) {
      if (isElement(offsetParent)) {
        scale = getScale(offsetParent);
      }
    } else {
      scale = getScale(element);
    }
  }
  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
  let x = (clientRect.left + visualOffsets.x) / scale.x;
  let y = (clientRect.top + visualOffsets.y) / scale.y;
  let width = clientRect.width / scale.x;
  let height = clientRect.height / scale.y;
  if (domElement) {
    const win = getWindow(domElement);
    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
    let currentWin = win;
    let currentIFrame = getFrameElement(currentWin);
    while (currentIFrame && offsetParent && offsetWin !== currentWin) {
      const iframeScale = getScale(currentIFrame);
      const iframeRect = currentIFrame.getBoundingClientRect();
      const css = getComputedStyle$1(currentIFrame);
      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
      x *= iframeScale.x;
      y *= iframeScale.y;
      width *= iframeScale.x;
      height *= iframeScale.y;
      x += left;
      y += top;
      currentWin = getWindow(currentIFrame);
      currentIFrame = getFrameElement(currentWin);
    }
  }
  return rectToClientRect({
    width,
    height,
    x,
    y
  });
}
function getWindowScrollBarX(element, rect) {
  const leftScroll = getNodeScroll(element).scrollLeft;
  if (!rect) {
    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
  }
  return rect.left + leftScroll;
}
function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
  if (ignoreScrollbarX === void 0) {
    ignoreScrollbarX = false;
  }
  const htmlRect = documentElement.getBoundingClientRect();
  const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 : (
    // RTL <body> scrollbar.
    getWindowScrollBarX(documentElement, htmlRect)
  ));
  const y = htmlRect.top + scroll.scrollTop;
  return {
    x,
    y
  };
}
function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
  let {
    elements,
    rect,
    offsetParent,
    strategy
  } = _ref;
  const isFixed = strategy === "fixed";
  const documentElement = getDocumentElement(offsetParent);
  const topLayer = elements ? isTopLayer(elements.floating) : false;
  if (offsetParent === documentElement || topLayer && isFixed) {
    return rect;
  }
  let scroll = {
    scrollLeft: 0,
    scrollTop: 0
  };
  let scale = createCoords(1);
  const offsets = createCoords(0);
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
    if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
      scroll = getNodeScroll(offsetParent);
    }
    if (isHTMLElement(offsetParent)) {
      const offsetRect = getBoundingClientRect(offsetParent);
      scale = getScale(offsetParent);
      offsets.x = offsetRect.x + offsetParent.clientLeft;
      offsets.y = offsetRect.y + offsetParent.clientTop;
    }
  }
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
  return {
    width: rect.width * scale.x,
    height: rect.height * scale.y,
    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
  };
}
function getClientRects(element) {
  return Array.from(element.getClientRects());
}
function getDocumentRect(element) {
  const html = getDocumentElement(element);
  const scroll = getNodeScroll(element);
  const body = element.ownerDocument.body;
  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
  const y = -scroll.scrollTop;
  if (getComputedStyle$1(body).direction === "rtl") {
    x += max(html.clientWidth, body.clientWidth) - width;
  }
  return {
    width,
    height,
    x,
    y
  };
}
function getViewportRect(element, strategy) {
  const win = getWindow(element);
  const html = getDocumentElement(element);
  const visualViewport = win.visualViewport;
  let width = html.clientWidth;
  let height = html.clientHeight;
  let x = 0;
  let y = 0;
  if (visualViewport) {
    width = visualViewport.width;
    height = visualViewport.height;
    const visualViewportBased = isWebKit();
    if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
      x = visualViewport.offsetLeft;
      y = visualViewport.offsetTop;
    }
  }
  return {
    width,
    height,
    x,
    y
  };
}
const absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]);
function getInnerBoundingClientRect(element, strategy) {
  const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
  const top = clientRect.top + element.clientTop;
  const left = clientRect.left + element.clientLeft;
  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
  const width = element.clientWidth * scale.x;
  const height = element.clientHeight * scale.y;
  const x = left * scale.x;
  const y = top * scale.y;
  return {
    width,
    height,
    x,
    y
  };
}
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
  let rect;
  if (clippingAncestor === "viewport") {
    rect = getViewportRect(element, strategy);
  } else if (clippingAncestor === "document") {
    rect = getDocumentRect(getDocumentElement(element));
  } else if (isElement(clippingAncestor)) {
    rect = getInnerBoundingClientRect(clippingAncestor, strategy);
  } else {
    const visualOffsets = getVisualOffsets(element);
    rect = {
      x: clippingAncestor.x - visualOffsets.x,
      y: clippingAncestor.y - visualOffsets.y,
      width: clippingAncestor.width,
      height: clippingAncestor.height
    };
  }
  return rectToClientRect(rect);
}
function hasFixedPositionAncestor(element, stopNode) {
  const parentNode = getParentNode(element);
  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
    return false;
  }
  return getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
}
function getClippingElementAncestors(element, cache) {
  const cachedResult = cache.get(element);
  if (cachedResult) {
    return cachedResult;
  }
  let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
  let currentContainingBlockComputedStyle = null;
  const elementIsFixed = getComputedStyle$1(element).position === "fixed";
  let currentNode = elementIsFixed ? getParentNode(element) : element;
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
    const computedStyle = getComputedStyle$1(currentNode);
    const currentNodeIsContaining = isContainingBlock(currentNode);
    if (!currentNodeIsContaining && computedStyle.position === "fixed") {
      currentContainingBlockComputedStyle = null;
    }
    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
    if (shouldDropCurrentNode) {
      result = result.filter((ancestor) => ancestor !== currentNode);
    } else {
      currentContainingBlockComputedStyle = computedStyle;
    }
    currentNode = getParentNode(currentNode);
  }
  cache.set(element, result);
  return result;
}
function getClippingRect(_ref) {
  let {
    element,
    boundary,
    rootBoundary,
    strategy
  } = _ref;
  const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
  const clippingAncestors = [...elementClippingAncestors, rootBoundary];
  const firstClippingAncestor = clippingAncestors[0];
  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
    accRect.top = max(rect.top, accRect.top);
    accRect.right = min(rect.right, accRect.right);
    accRect.bottom = min(rect.bottom, accRect.bottom);
    accRect.left = max(rect.left, accRect.left);
    return accRect;
  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
  return {
    width: clippingRect.right - clippingRect.left,
    height: clippingRect.bottom - clippingRect.top,
    x: clippingRect.left,
    y: clippingRect.top
  };
}
function getDimensions(element) {
  const {
    width,
    height
  } = getCssDimensions(element);
  return {
    width,
    height
  };
}
function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
  const documentElement = getDocumentElement(offsetParent);
  const isFixed = strategy === "fixed";
  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
  let scroll = {
    scrollLeft: 0,
    scrollTop: 0
  };
  const offsets = createCoords(0);
  function setLeftRTLScrollbarOffset() {
    offsets.x = getWindowScrollBarX(documentElement);
  }
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
    if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
      scroll = getNodeScroll(offsetParent);
    }
    if (isOffsetParentAnElement) {
      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
      offsets.x = offsetRect.x + offsetParent.clientLeft;
      offsets.y = offsetRect.y + offsetParent.clientTop;
    } else if (documentElement) {
      setLeftRTLScrollbarOffset();
    }
  }
  if (isFixed && !isOffsetParentAnElement && documentElement) {
    setLeftRTLScrollbarOffset();
  }
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
  return {
    x,
    y,
    width: rect.width,
    height: rect.height
  };
}
function isStaticPositioned(element) {
  return getComputedStyle$1(element).position === "static";
}
function getTrueOffsetParent(element, polyfill) {
  if (!isHTMLElement(element) || getComputedStyle$1(element).position === "fixed") {
    return null;
  }
  if (polyfill) {
    return polyfill(element);
  }
  let rawOffsetParent = element.offsetParent;
  if (getDocumentElement(element) === rawOffsetParent) {
    rawOffsetParent = rawOffsetParent.ownerDocument.body;
  }
  return rawOffsetParent;
}
function getOffsetParent(element, polyfill) {
  const win = getWindow(element);
  if (isTopLayer(element)) {
    return win;
  }
  if (!isHTMLElement(element)) {
    let svgOffsetParent = getParentNode(element);
    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
        return svgOffsetParent;
      }
      svgOffsetParent = getParentNode(svgOffsetParent);
    }
    return win;
  }
  let offsetParent = getTrueOffsetParent(element, polyfill);
  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
    offsetParent = getTrueOffsetParent(offsetParent, polyfill);
  }
  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
    return win;
  }
  return offsetParent || getContainingBlock(element) || win;
}
const getElementRects = async function(data) {
  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
  const getDimensionsFn = this.getDimensions;
  const floatingDimensions = await getDimensionsFn(data.floating);
  return {
    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
    floating: {
      x: 0,
      y: 0,
      width: floatingDimensions.width,
      height: floatingDimensions.height
    }
  };
};
function isRTL(element) {
  return getComputedStyle$1(element).direction === "rtl";
}
const platform = {
  convertOffsetParentRelativeRectToViewportRelativeRect,
  getDocumentElement,
  getClippingRect,
  getOffsetParent,
  getElementRects,
  getClientRects,
  getDimensions,
  getScale,
  isElement,
  isRTL
};
function rectsAreEqual(a, b) {
  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
}
function observeMove(element, onMove) {
  let io = null;
  let timeoutId;
  const root = getDocumentElement(element);
  function cleanup() {
    var _io;
    clearTimeout(timeoutId);
    (_io = io) == null || _io.disconnect();
    io = null;
  }
  function refresh(skip, threshold) {
    if (skip === void 0) {
      skip = false;
    }
    if (threshold === void 0) {
      threshold = 1;
    }
    cleanup();
    const elementRectForRootMargin = element.getBoundingClientRect();
    const {
      left,
      top,
      width,
      height
    } = elementRectForRootMargin;
    if (!skip) {
      onMove();
    }
    if (!width || !height) {
      return;
    }
    const insetTop = floor(top);
    const insetRight = floor(root.clientWidth - (left + width));
    const insetBottom = floor(root.clientHeight - (top + height));
    const insetLeft = floor(left);
    const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
    const options = {
      rootMargin,
      threshold: max(0, min(1, threshold)) || 1
    };
    let isFirstUpdate = true;
    function handleObserve(entries) {
      const ratio = entries[0].intersectionRatio;
      if (ratio !== threshold) {
        if (!isFirstUpdate) {
          return refresh();
        }
        if (!ratio) {
          timeoutId = setTimeout(() => {
            refresh(false, 1e-7);
          }, 1e3);
        } else {
          refresh(false, ratio);
        }
      }
      if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
        refresh();
      }
      isFirstUpdate = false;
    }
    try {
      io = new IntersectionObserver(handleObserve, {
        ...options,
        // Handle <iframe>s
        root: root.ownerDocument
      });
    } catch (_e2) {
      io = new IntersectionObserver(handleObserve, options);
    }
    io.observe(element);
  }
  refresh(true);
  return cleanup;
}
function autoUpdate(reference, floating, update, options) {
  if (options === void 0) {
    options = {};
  }
  const {
    ancestorScroll = true,
    ancestorResize = true,
    elementResize = typeof ResizeObserver === "function",
    layoutShift = typeof IntersectionObserver === "function",
    animationFrame = false
  } = options;
  const referenceEl = unwrapElement(reference);
  const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
  ancestors.forEach((ancestor) => {
    ancestorScroll && ancestor.addEventListener("scroll", update, {
      passive: true
    });
    ancestorResize && ancestor.addEventListener("resize", update);
  });
  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
  let reobserveFrame = -1;
  let resizeObserver = null;
  if (elementResize) {
    resizeObserver = new ResizeObserver((_ref) => {
      let [firstEntry] = _ref;
      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
        resizeObserver.unobserve(floating);
        cancelAnimationFrame(reobserveFrame);
        reobserveFrame = requestAnimationFrame(() => {
          var _resizeObserver;
          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
        });
      }
      update();
    });
    if (referenceEl && !animationFrame) {
      resizeObserver.observe(referenceEl);
    }
    resizeObserver.observe(floating);
  }
  let frameId;
  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
  if (animationFrame) {
    frameLoop();
  }
  function frameLoop() {
    const nextRefRect = getBoundingClientRect(reference);
    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
      update();
    }
    prevRefRect = nextRefRect;
    frameId = requestAnimationFrame(frameLoop);
  }
  update();
  return () => {
    var _resizeObserver2;
    ancestors.forEach((ancestor) => {
      ancestorScroll && ancestor.removeEventListener("scroll", update);
      ancestorResize && ancestor.removeEventListener("resize", update);
    });
    cleanupIo == null || cleanupIo();
    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
    resizeObserver = null;
    if (animationFrame) {
      cancelAnimationFrame(frameId);
    }
  };
}
const offset$1 = offset$2;
const shift$1 = shift$2;
const flip$1 = flip$2;
const size$1 = size$2;
const hide$1 = hide$2;
const arrow$2 = arrow$3;
const limitShift$1 = limitShift$2;
const computePosition = (reference, floating, options) => {
  const cache = /* @__PURE__ */ new Map();
  const mergedOptions = {
    platform,
    ...options
  };
  const platformWithCache = {
    ...mergedOptions.platform,
    _c: cache
  };
  return computePosition$1(reference, floating, {
    ...mergedOptions,
    platform: platformWithCache
  });
};
var isClient = typeof document !== "undefined";
var noop = function noop2() {
};
var index = isClient ? reactExports.useLayoutEffect : noop;
function deepEqual(a, b) {
  if (a === b) {
    return true;
  }
  if (typeof a !== typeof b) {
    return false;
  }
  if (typeof a === "function" && a.toString() === b.toString()) {
    return true;
  }
  let length;
  let i;
  let keys;
  if (a && b && typeof a === "object") {
    if (Array.isArray(a)) {
      length = a.length;
      if (length !== b.length) return false;
      for (i = length; i-- !== 0; ) {
        if (!deepEqual(a[i], b[i])) {
          return false;
        }
      }
      return true;
    }
    keys = Object.keys(a);
    length = keys.length;
    if (length !== Object.keys(b).length) {
      return false;
    }
    for (i = length; i-- !== 0; ) {
      if (!{}.hasOwnProperty.call(b, keys[i])) {
        return false;
      }
    }
    for (i = length; i-- !== 0; ) {
      const key = keys[i];
      if (key === "_owner" && a.$$typeof) {
        continue;
      }
      if (!deepEqual(a[key], b[key])) {
        return false;
      }
    }
    return true;
  }
  return a !== a && b !== b;
}
function getDPR(element) {
  if (typeof window === "undefined") {
    return 1;
  }
  const win = element.ownerDocument.defaultView || window;
  return win.devicePixelRatio || 1;
}
function roundByDPR(element, value) {
  const dpr = getDPR(element);
  return Math.round(value * dpr) / dpr;
}
function useLatestRef(value) {
  const ref = reactExports.useRef(value);
  index(() => {
    ref.current = value;
  });
  return ref;
}
function useFloating(options) {
  if (options === void 0) {
    options = {};
  }
  const {
    placement = "bottom",
    strategy = "absolute",
    middleware = [],
    platform: platform2,
    elements: {
      reference: externalReference,
      floating: externalFloating
    } = {},
    transform = true,
    whileElementsMounted,
    open
  } = options;
  const [data, setData] = reactExports.useState({
    x: 0,
    y: 0,
    strategy,
    placement,
    middlewareData: {},
    isPositioned: false
  });
  const [latestMiddleware, setLatestMiddleware] = reactExports.useState(middleware);
  if (!deepEqual(latestMiddleware, middleware)) {
    setLatestMiddleware(middleware);
  }
  const [_reference, _setReference] = reactExports.useState(null);
  const [_floating, _setFloating] = reactExports.useState(null);
  const setReference = reactExports.useCallback((node) => {
    if (node !== referenceRef.current) {
      referenceRef.current = node;
      _setReference(node);
    }
  }, []);
  const setFloating = reactExports.useCallback((node) => {
    if (node !== floatingRef.current) {
      floatingRef.current = node;
      _setFloating(node);
    }
  }, []);
  const referenceEl = externalReference || _reference;
  const floatingEl = externalFloating || _floating;
  const referenceRef = reactExports.useRef(null);
  const floatingRef = reactExports.useRef(null);
  const dataRef = reactExports.useRef(data);
  const hasWhileElementsMounted = whileElementsMounted != null;
  const whileElementsMountedRef = useLatestRef(whileElementsMounted);
  const platformRef = useLatestRef(platform2);
  const openRef = useLatestRef(open);
  const update = reactExports.useCallback(() => {
    if (!referenceRef.current || !floatingRef.current) {
      return;
    }
    const config = {
      placement,
      strategy,
      middleware: latestMiddleware
    };
    if (platformRef.current) {
      config.platform = platformRef.current;
    }
    computePosition(referenceRef.current, floatingRef.current, config).then((data2) => {
      const fullData = {
        ...data2,
        // The floating element's position may be recomputed while it's closed
        // but still mounted (such as when transitioning out). To ensure
        // `isPositioned` will be `false` initially on the next open, avoid
        // setting it to `true` when `open === false` (must be specified).
        isPositioned: openRef.current !== false
      };
      if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {
        dataRef.current = fullData;
        reactDomExports.flushSync(() => {
          setData(fullData);
        });
      }
    });
  }, [latestMiddleware, placement, strategy, platformRef, openRef]);
  index(() => {
    if (open === false && dataRef.current.isPositioned) {
      dataRef.current.isPositioned = false;
      setData((data2) => ({
        ...data2,
        isPositioned: false
      }));
    }
  }, [open]);
  const isMountedRef = reactExports.useRef(false);
  index(() => {
    isMountedRef.current = true;
    return () => {
      isMountedRef.current = false;
    };
  }, []);
  index(() => {
    if (referenceEl) referenceRef.current = referenceEl;
    if (floatingEl) floatingRef.current = floatingEl;
    if (referenceEl && floatingEl) {
      if (whileElementsMountedRef.current) {
        return whileElementsMountedRef.current(referenceEl, floatingEl, update);
      }
      update();
    }
  }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);
  const refs = reactExports.useMemo(() => ({
    reference: referenceRef,
    floating: floatingRef,
    setReference,
    setFloating
  }), [setReference, setFloating]);
  const elements = reactExports.useMemo(() => ({
    reference: referenceEl,
    floating: floatingEl
  }), [referenceEl, floatingEl]);
  const floatingStyles = reactExports.useMemo(() => {
    const initialStyles = {
      position: strategy,
      left: 0,
      top: 0
    };
    if (!elements.floating) {
      return initialStyles;
    }
    const x = roundByDPR(elements.floating, data.x);
    const y = roundByDPR(elements.floating, data.y);
    if (transform) {
      return {
        ...initialStyles,
        transform: "translate(" + x + "px, " + y + "px)",
        ...getDPR(elements.floating) >= 1.5 && {
          willChange: "transform"
        }
      };
    }
    return {
      position: strategy,
      left: x,
      top: y
    };
  }, [strategy, transform, elements.floating, data.x, data.y]);
  return reactExports.useMemo(() => ({
    ...data,
    update,
    refs,
    elements,
    floatingStyles
  }), [data, update, refs, elements, floatingStyles]);
}
const arrow$1 = (options) => {
  function isRef(value) {
    return {}.hasOwnProperty.call(value, "current");
  }
  return {
    name: "arrow",
    options,
    fn(state) {
      const {
        element,
        padding
      } = typeof options === "function" ? options(state) : options;
      if (element && isRef(element)) {
        if (element.current != null) {
          return arrow$2({
            element: element.current,
            padding
          }).fn(state);
        }
        return {};
      }
      if (element) {
        return arrow$2({
          element,
          padding
        }).fn(state);
      }
      return {};
    }
  };
};
const offset = (options, deps) => ({
  ...offset$1(options),
  options: [options, deps]
});
const shift = (options, deps) => ({
  ...shift$1(options),
  options: [options, deps]
});
const limitShift = (options, deps) => ({
  ...limitShift$1(options),
  options: [options, deps]
});
const flip = (options, deps) => ({
  ...flip$1(options),
  options: [options, deps]
});
const size = (options, deps) => ({
  ...size$1(options),
  options: [options, deps]
});
const hide = (options, deps) => ({
  ...hide$1(options),
  options: [options, deps]
});
const arrow = (options, deps) => ({
  ...arrow$1(options),
  options: [options, deps]
});
var NAME$1 = "Arrow";
var Arrow$1 = reactExports.forwardRef((props, forwardedRef) => {
  const { children, width = 10, height = 5, ...arrowProps } = props;
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Primitive.svg,
    {
      ...arrowProps,
      ref: forwardedRef,
      width,
      height,
      viewBox: "0 0 30 10",
      preserveAspectRatio: "none",
      children: props.asChild ? children : /* @__PURE__ */ jsxRuntimeExports.jsx("polygon", { points: "0,0 30,0 15,10" })
    }
  );
});
Arrow$1.displayName = NAME$1;
var Root$5 = Arrow$1;
var POPPER_NAME = "Popper";
var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
var Popper = (props) => {
  const { __scopePopper, children } = props;
  const [anchor, setAnchor] = reactExports.useState(null);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
};
Popper.displayName = POPPER_NAME;
var ANCHOR_NAME$1 = "PopperAnchor";
var PopperAnchor = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopePopper, virtualRef, ...anchorProps } = props;
    const context = usePopperContext(ANCHOR_NAME$1, __scopePopper);
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, ref);
    reactExports.useEffect(() => {
      context.onAnchorChange((virtualRef == null ? void 0 : virtualRef.current) || ref.current);
    });
    return virtualRef ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { ...anchorProps, ref: composedRefs });
  }
);
PopperAnchor.displayName = ANCHOR_NAME$1;
var CONTENT_NAME$5 = "PopperContent";
var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME$5);
var PopperContent = reactExports.forwardRef(
  (props, forwardedRef) => {
    var _a2, _b2, _c2, _d2, _e2, _f;
    const {
      __scopePopper,
      side = "bottom",
      sideOffset = 0,
      align = "center",
      alignOffset = 0,
      arrowPadding = 0,
      avoidCollisions = true,
      collisionBoundary = [],
      collisionPadding: collisionPaddingProp = 0,
      sticky = "partial",
      hideWhenDetached = false,
      updatePositionStrategy = "optimized",
      onPlaced,
      ...contentProps
    } = props;
    const context = usePopperContext(CONTENT_NAME$5, __scopePopper);
    const [content, setContent] = reactExports.useState(null);
    const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));
    const [arrow$12, setArrow] = reactExports.useState(null);
    const arrowSize = useSize(arrow$12);
    const arrowWidth = (arrowSize == null ? void 0 : arrowSize.width) ?? 0;
    const arrowHeight = (arrowSize == null ? void 0 : arrowSize.height) ?? 0;
    const desiredPlacement = side + (align !== "center" ? "-" + align : "");
    const collisionPadding = typeof collisionPaddingProp === "number" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };
    const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];
    const hasExplicitBoundaries = boundary.length > 0;
    const detectOverflowOptions = {
      padding: collisionPadding,
      boundary: boundary.filter(isNotNull),
      // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
      altBoundary: hasExplicitBoundaries
    };
    const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({
      // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
      strategy: "fixed",
      placement: desiredPlacement,
      whileElementsMounted: (...args) => {
        const cleanup = autoUpdate(...args, {
          animationFrame: updatePositionStrategy === "always"
        });
        return cleanup;
      },
      elements: {
        reference: context.anchor
      },
      middleware: [
        offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),
        avoidCollisions && shift({
          mainAxis: true,
          crossAxis: false,
          limiter: sticky === "partial" ? limitShift() : void 0,
          ...detectOverflowOptions
        }),
        avoidCollisions && flip({ ...detectOverflowOptions }),
        size({
          ...detectOverflowOptions,
          apply: ({ elements, rects, availableWidth, availableHeight }) => {
            const { width: anchorWidth, height: anchorHeight } = rects.reference;
            const contentStyle = elements.floating.style;
            contentStyle.setProperty("--radix-popper-available-width", `${availableWidth}px`);
            contentStyle.setProperty("--radix-popper-available-height", `${availableHeight}px`);
            contentStyle.setProperty("--radix-popper-anchor-width", `${anchorWidth}px`);
            contentStyle.setProperty("--radix-popper-anchor-height", `${anchorHeight}px`);
          }
        }),
        arrow$12 && arrow({ element: arrow$12, padding: arrowPadding }),
        transformOrigin({ arrowWidth, arrowHeight }),
        hideWhenDetached && hide({ strategy: "referenceHidden", ...detectOverflowOptions })
      ]
    });
    const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
    const handlePlaced = useCallbackRef$1(onPlaced);
    useLayoutEffect2(() => {
      if (isPositioned) {
        handlePlaced == null ? void 0 : handlePlaced();
      }
    }, [isPositioned, handlePlaced]);
    const arrowX = (_a2 = middlewareData.arrow) == null ? void 0 : _a2.x;
    const arrowY = (_b2 = middlewareData.arrow) == null ? void 0 : _b2.y;
    const cannotCenterArrow = ((_c2 = middlewareData.arrow) == null ? void 0 : _c2.centerOffset) !== 0;
    const [contentZIndex, setContentZIndex] = reactExports.useState();
    useLayoutEffect2(() => {
      if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
    }, [content]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      "div",
      {
        ref: refs.setFloating,
        "data-radix-popper-content-wrapper": "",
        style: {
          ...floatingStyles,
          transform: isPositioned ? floatingStyles.transform : "translate(0, -200%)",
          // keep off the page when measuring
          minWidth: "max-content",
          zIndex: contentZIndex,
          ["--radix-popper-transform-origin"]: [
            (_d2 = middlewareData.transformOrigin) == null ? void 0 : _d2.x,
            (_e2 = middlewareData.transformOrigin) == null ? void 0 : _e2.y
          ].join(" "),
          // hide the content if using the hide middleware and should be hidden
          // set visibility to hidden and disable pointer events so the UI behaves
          // as if the PopperContent isn't there at all
          ...((_f = middlewareData.hide) == null ? void 0 : _f.referenceHidden) && {
            visibility: "hidden",
            pointerEvents: "none"
          }
        },
        dir: props.dir,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          PopperContentProvider,
          {
            scope: __scopePopper,
            placedSide,
            onArrowChange: setArrow,
            arrowX,
            arrowY,
            shouldHideArrow: cannotCenterArrow,
            children: /* @__PURE__ */ jsxRuntimeExports.jsx(
              Primitive.div,
              {
                "data-side": placedSide,
                "data-align": placedAlign,
                ...contentProps,
                ref: composedRefs,
                style: {
                  ...contentProps.style,
                  // if the PopperContent hasn't been placed yet (not all measurements done)
                  // we prevent animations so that users's animation don't kick in too early referring wrong sides
                  animation: !isPositioned ? "none" : void 0
                }
              }
            )
          }
        )
      }
    );
  }
);
PopperContent.displayName = CONTENT_NAME$5;
var ARROW_NAME$3 = "PopperArrow";
var OPPOSITE_SIDE = {
  top: "bottom",
  right: "left",
  bottom: "top",
  left: "right"
};
var PopperArrow = reactExports.forwardRef(function PopperArrow2(props, forwardedRef) {
  const { __scopePopper, ...arrowProps } = props;
  const contentContext = useContentContext(ARROW_NAME$3, __scopePopper);
  const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
  return (
    // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
    // doesn't report size as we'd expect on SVG elements.
    // it reports their bounding box which is effectively the largest path inside the SVG.
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "span",
      {
        ref: contentContext.onArrowChange,
        style: {
          position: "absolute",
          left: contentContext.arrowX,
          top: contentContext.arrowY,
          [baseSide]: 0,
          transformOrigin: {
            top: "",
            right: "0 0",
            bottom: "center 0",
            left: "100% 0"
          }[contentContext.placedSide],
          transform: {
            top: "translateY(100%)",
            right: "translateY(50%) rotate(90deg) translateX(-50%)",
            bottom: `rotate(180deg)`,
            left: "translateY(50%) rotate(-90deg) translateX(50%)"
          }[contentContext.placedSide],
          visibility: contentContext.shouldHideArrow ? "hidden" : void 0
        },
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Root$5,
          {
            ...arrowProps,
            ref: forwardedRef,
            style: {
              ...arrowProps.style,
              // ensures the element can be measured correctly (mostly for if SVG)
              display: "block"
            }
          }
        )
      }
    )
  );
});
PopperArrow.displayName = ARROW_NAME$3;
function isNotNull(value) {
  return value !== null;
}
var transformOrigin = (options) => ({
  name: "transformOrigin",
  options,
  fn(data) {
    var _a2, _b2, _c2;
    const { placement, rects, middlewareData } = data;
    const cannotCenterArrow = ((_a2 = middlewareData.arrow) == null ? void 0 : _a2.centerOffset) !== 0;
    const isArrowHidden = cannotCenterArrow;
    const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
    const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
    const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
    const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
    const arrowXCenter = (((_b2 = middlewareData.arrow) == null ? void 0 : _b2.x) ?? 0) + arrowWidth / 2;
    const arrowYCenter = (((_c2 = middlewareData.arrow) == null ? void 0 : _c2.y) ?? 0) + arrowHeight / 2;
    let x = "";
    let y = "";
    if (placedSide === "bottom") {
      x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
      y = `${-arrowHeight}px`;
    } else if (placedSide === "top") {
      x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
      y = `${rects.floating.height + arrowHeight}px`;
    } else if (placedSide === "right") {
      x = `${-arrowHeight}px`;
      y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
    } else if (placedSide === "left") {
      x = `${rects.floating.width + arrowHeight}px`;
      y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
    }
    return { data: { x, y } };
  }
});
function getSideAndAlignFromPlacement(placement) {
  const [side, align = "center"] = placement.split("-");
  return [side, align];
}
var Root2$3 = Popper;
var Anchor = PopperAnchor;
var Content$1 = PopperContent;
var Arrow = PopperArrow;
var PORTAL_NAME$4 = "Portal";
var Portal$4 = reactExports.forwardRef((props, forwardedRef) => {
  var _a2;
  const { container: containerProp, ...portalProps } = props;
  const [mounted, setMounted] = reactExports.useState(false);
  useLayoutEffect2(() => setMounted(true), []);
  const container = containerProp || mounted && ((_a2 = globalThis == null ? void 0 : globalThis.document) == null ? void 0 : _a2.body);
  return container ? ReactDOM.createPortal(/* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
});
Portal$4.displayName = PORTAL_NAME$4;
var VISUALLY_HIDDEN_STYLES = Object.freeze({
  // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
  position: "absolute",
  border: 0,
  width: 1,
  height: 1,
  padding: 0,
  margin: -1,
  overflow: "hidden",
  clip: "rect(0, 0, 0, 0)",
  whiteSpace: "nowrap",
  wordWrap: "normal"
});
var NAME = "VisuallyHidden";
var VisuallyHidden = reactExports.forwardRef(
  (props, forwardedRef) => {
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.span,
      {
        ...props,
        ref: forwardedRef,
        style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }
      }
    );
  }
);
VisuallyHidden.displayName = NAME;
var Root$4 = VisuallyHidden;
var getDefaultParent = function(originalTarget) {
  if (typeof document === "undefined") {
    return null;
  }
  var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;
  return sampleTarget.ownerDocument.body;
};
var counterMap = /* @__PURE__ */ new WeakMap();
var uncontrolledNodes = /* @__PURE__ */ new WeakMap();
var markerMap = {};
var lockCount = 0;
var unwrapHost = function(node) {
  return node && (node.host || unwrapHost(node.parentNode));
};
var correctTargets = function(parent, targets) {
  return targets.map(function(target) {
    if (parent.contains(target)) {
      return target;
    }
    var correctedTarget = unwrapHost(target);
    if (correctedTarget && parent.contains(correctedTarget)) {
      return correctedTarget;
    }
    console.error("aria-hidden", target, "in not contained inside", parent, ". Doing nothing");
    return null;
  }).filter(function(x) {
    return Boolean(x);
  });
};
var applyAttributeToOthers = function(originalTarget, parentNode, markerName, controlAttribute) {
  var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
  if (!markerMap[markerName]) {
    markerMap[markerName] = /* @__PURE__ */ new WeakMap();
  }
  var markerCounter = markerMap[markerName];
  var hiddenNodes = [];
  var elementsToKeep = /* @__PURE__ */ new Set();
  var elementsToStop = new Set(targets);
  var keep = function(el) {
    if (!el || elementsToKeep.has(el)) {
      return;
    }
    elementsToKeep.add(el);
    keep(el.parentNode);
  };
  targets.forEach(keep);
  var deep = function(parent) {
    if (!parent || elementsToStop.has(parent)) {
      return;
    }
    Array.prototype.forEach.call(parent.children, function(node) {
      if (elementsToKeep.has(node)) {
        deep(node);
      } else {
        try {
          var attr = node.getAttribute(controlAttribute);
          var alreadyHidden = attr !== null && attr !== "false";
          var counterValue = (counterMap.get(node) || 0) + 1;
          var markerValue = (markerCounter.get(node) || 0) + 1;
          counterMap.set(node, counterValue);
          markerCounter.set(node, markerValue);
          hiddenNodes.push(node);
          if (counterValue === 1 && alreadyHidden) {
            uncontrolledNodes.set(node, true);
          }
          if (markerValue === 1) {
            node.setAttribute(markerName, "true");
          }
          if (!alreadyHidden) {
            node.setAttribute(controlAttribute, "true");
          }
        } catch (e) {
          console.error("aria-hidden: cannot operate on ", node, e);
        }
      }
    });
  };
  deep(parentNode);
  elementsToKeep.clear();
  lockCount++;
  return function() {
    hiddenNodes.forEach(function(node) {
      var counterValue = counterMap.get(node) - 1;
      var markerValue = markerCounter.get(node) - 1;
      counterMap.set(node, counterValue);
      markerCounter.set(node, markerValue);
      if (!counterValue) {
        if (!uncontrolledNodes.has(node)) {
          node.removeAttribute(controlAttribute);
        }
        uncontrolledNodes.delete(node);
      }
      if (!markerValue) {
        node.removeAttribute(markerName);
      }
    });
    lockCount--;
    if (!lockCount) {
      counterMap = /* @__PURE__ */ new WeakMap();
      counterMap = /* @__PURE__ */ new WeakMap();
      uncontrolledNodes = /* @__PURE__ */ new WeakMap();
      markerMap = {};
    }
  };
};
var hideOthers = function(originalTarget, parentNode, markerName) {
  if (markerName === void 0) {
    markerName = "data-aria-hidden";
  }
  var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
  var activeParentNode = getDefaultParent(originalTarget);
  if (!activeParentNode) {
    return function() {
      return null;
    };
  }
  targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll("[aria-live], script")));
  return applyAttributeToOthers(targets, activeParentNode, markerName, "aria-hidden");
};
var __assign = function() {
  __assign = Object.assign || function __assign2(t) {
    for (var s, i = 1, n = arguments.length; i < n; i++) {
      s = arguments[i];
      for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2)) t[p2] = s[p2];
    }
    return t;
  };
  return __assign.apply(this, arguments);
};
function __rest(s, e) {
  var t = {};
  for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0)
    t[p2] = s[p2];
  if (s != null && typeof Object.getOwnPropertySymbols === "function")
    for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++) {
      if (e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i]))
        t[p2[i]] = s[p2[i]];
    }
  return t;
}
function __spreadArray(to, from, pack) {
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
    if (ar || !(i in from)) {
      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
      ar[i] = from[i];
    }
  }
  return to.concat(ar || Array.prototype.slice.call(from));
}
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
  var e = new Error(message);
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
var zeroRightClassName = "right-scroll-bar-position";
var fullWidthClassName = "width-before-scroll-bar";
var noScrollbarsClassName = "with-scroll-bars-hidden";
var removedBarSizeVariable = "--removed-body-scroll-bar-size";
function assignRef(ref, value) {
  if (typeof ref === "function") {
    ref(value);
  } else if (ref) {
    ref.current = value;
  }
  return ref;
}
function useCallbackRef(initialValue, callback) {
  var ref = reactExports.useState(function() {
    return {
      // value
      value: initialValue,
      // last callback
      callback,
      // "memoized" public interface
      facade: {
        get current() {
          return ref.value;
        },
        set current(value) {
          var last2 = ref.value;
          if (last2 !== value) {
            ref.value = value;
            ref.callback(value, last2);
          }
        }
      }
    };
  })[0];
  ref.callback = callback;
  return ref.facade;
}
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? reactExports.useLayoutEffect : reactExports.useEffect;
var currentValues = /* @__PURE__ */ new WeakMap();
function useMergeRefs(refs, defaultValue) {
  var callbackRef = useCallbackRef(null, function(newValue) {
    return refs.forEach(function(ref) {
      return assignRef(ref, newValue);
    });
  });
  useIsomorphicLayoutEffect(function() {
    var oldValue = currentValues.get(callbackRef);
    if (oldValue) {
      var prevRefs_1 = new Set(oldValue);
      var nextRefs_1 = new Set(refs);
      var current_1 = callbackRef.current;
      prevRefs_1.forEach(function(ref) {
        if (!nextRefs_1.has(ref)) {
          assignRef(ref, null);
        }
      });
      nextRefs_1.forEach(function(ref) {
        if (!prevRefs_1.has(ref)) {
          assignRef(ref, current_1);
        }
      });
    }
    currentValues.set(callbackRef, refs);
  }, [refs]);
  return callbackRef;
}
function ItoI(a) {
  return a;
}
function innerCreateMedium(defaults, middleware) {
  if (middleware === void 0) {
    middleware = ItoI;
  }
  var buffer = [];
  var assigned = false;
  var medium = {
    read: function() {
      if (assigned) {
        throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");
      }
      if (buffer.length) {
        return buffer[buffer.length - 1];
      }
      return defaults;
    },
    useMedium: function(data) {
      var item = middleware(data, assigned);
      buffer.push(item);
      return function() {
        buffer = buffer.filter(function(x) {
          return x !== item;
        });
      };
    },
    assignSyncMedium: function(cb) {
      assigned = true;
      while (buffer.length) {
        var cbs = buffer;
        buffer = [];
        cbs.forEach(cb);
      }
      buffer = {
        push: function(x) {
          return cb(x);
        },
        filter: function() {
          return buffer;
        }
      };
    },
    assignMedium: function(cb) {
      assigned = true;
      var pendingQueue = [];
      if (buffer.length) {
        var cbs = buffer;
        buffer = [];
        cbs.forEach(cb);
        pendingQueue = buffer;
      }
      var executeQueue = function() {
        var cbs2 = pendingQueue;
        pendingQueue = [];
        cbs2.forEach(cb);
      };
      var cycle = function() {
        return Promise.resolve().then(executeQueue);
      };
      cycle();
      buffer = {
        push: function(x) {
          pendingQueue.push(x);
          cycle();
        },
        filter: function(filter) {
          pendingQueue = pendingQueue.filter(filter);
          return buffer;
        }
      };
    }
  };
  return medium;
}
function createSidecarMedium(options) {
  if (options === void 0) {
    options = {};
  }
  var medium = innerCreateMedium(null);
  medium.options = __assign({ async: true, ssr: false }, options);
  return medium;
}
var SideCar$1 = function(_a2) {
  var sideCar = _a2.sideCar, rest = __rest(_a2, ["sideCar"]);
  if (!sideCar) {
    throw new Error("Sidecar: please provide `sideCar` property to import the right car");
  }
  var Target = sideCar.read();
  if (!Target) {
    throw new Error("Sidecar medium not found");
  }
  return reactExports.createElement(Target, __assign({}, rest));
};
SideCar$1.isSideCarExport = true;
function exportSidecar(medium, exported) {
  medium.useMedium(exported);
  return SideCar$1;
}
var effectCar = createSidecarMedium();
var nothing = function() {
  return;
};
var RemoveScroll = reactExports.forwardRef(function(props, parentRef) {
  var ref = reactExports.useRef(null);
  var _a2 = reactExports.useState({
    onScrollCapture: nothing,
    onWheelCapture: nothing,
    onTouchMoveCapture: nothing
  }), callbacks = _a2[0], setCallbacks = _a2[1];
  var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b2 = props.as, Container = _b2 === void 0 ? "div" : _b2, gapMode = props.gapMode, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noRelative", "noIsolation", "inert", "allowPinchZoom", "as", "gapMode"]);
  var SideCar2 = sideCar;
  var containerRef = useMergeRefs([ref, parentRef]);
  var containerProps = __assign(__assign({}, rest), callbacks);
  return reactExports.createElement(
    reactExports.Fragment,
    null,
    enabled && reactExports.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noRelative, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }),
    forwardProps ? reactExports.cloneElement(reactExports.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : reactExports.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children)
  );
});
RemoveScroll.defaultProps = {
  enabled: true,
  removeScrollBar: true,
  inert: false
};
RemoveScroll.classNames = {
  fullWidth: fullWidthClassName,
  zeroRight: zeroRightClassName
};
var getNonce = function() {
  if (typeof __webpack_nonce__ !== "undefined") {
    return __webpack_nonce__;
  }
  return void 0;
};
function makeStyleTag() {
  if (!document)
    return null;
  var tag = document.createElement("style");
  tag.type = "text/css";
  var nonce = getNonce();
  if (nonce) {
    tag.setAttribute("nonce", nonce);
  }
  return tag;
}
function injectStyles(tag, css) {
  if (tag.styleSheet) {
    tag.styleSheet.cssText = css;
  } else {
    tag.appendChild(document.createTextNode(css));
  }
}
function insertStyleTag(tag) {
  var head = document.head || document.getElementsByTagName("head")[0];
  head.appendChild(tag);
}
var stylesheetSingleton = function() {
  var counter = 0;
  var stylesheet = null;
  return {
    add: function(style) {
      if (counter == 0) {
        if (stylesheet = makeStyleTag()) {
          injectStyles(stylesheet, style);
          insertStyleTag(stylesheet);
        }
      }
      counter++;
    },
    remove: function() {
      counter--;
      if (!counter && stylesheet) {
        stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);
        stylesheet = null;
      }
    }
  };
};
var styleHookSingleton = function() {
  var sheet = stylesheetSingleton();
  return function(styles, isDynamic) {
    reactExports.useEffect(function() {
      sheet.add(styles);
      return function() {
        sheet.remove();
      };
    }, [styles && isDynamic]);
  };
};
var styleSingleton = function() {
  var useStyle = styleHookSingleton();
  var Sheet = function(_a2) {
    var styles = _a2.styles, dynamic = _a2.dynamic;
    useStyle(styles, dynamic);
    return null;
  };
  return Sheet;
};
var zeroGap = {
  left: 0,
  top: 0,
  right: 0,
  gap: 0
};
var parse = function(x) {
  return parseInt(x || "", 10) || 0;
};
var getOffset = function(gapMode) {
  var cs = window.getComputedStyle(document.body);
  var left = cs[gapMode === "padding" ? "paddingLeft" : "marginLeft"];
  var top = cs[gapMode === "padding" ? "paddingTop" : "marginTop"];
  var right = cs[gapMode === "padding" ? "paddingRight" : "marginRight"];
  return [parse(left), parse(top), parse(right)];
};
var getGapWidth = function(gapMode) {
  if (gapMode === void 0) {
    gapMode = "margin";
  }
  if (typeof window === "undefined") {
    return zeroGap;
  }
  var offsets = getOffset(gapMode);
  var documentWidth = document.documentElement.clientWidth;
  var windowWidth = window.innerWidth;
  return {
    left: offsets[0],
    top: offsets[1],
    right: offsets[2],
    gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])
  };
};
var Style = styleSingleton();
var lockAttribute = "data-scroll-locked";
var getStyles = function(_a2, allowRelative, gapMode, important) {
  var left = _a2.left, top = _a2.top, right = _a2.right, gap = _a2.gap;
  if (gapMode === void 0) {
    gapMode = "margin";
  }
  return "\n  .".concat(noScrollbarsClassName, " {\n   overflow: hidden ").concat(important, ";\n   padding-right: ").concat(gap, "px ").concat(important, ";\n  }\n  body[").concat(lockAttribute, "] {\n    overflow: hidden ").concat(important, ";\n    overscroll-behavior: contain;\n    ").concat([
    allowRelative && "position: relative ".concat(important, ";"),
    gapMode === "margin" && "\n    padding-left: ".concat(left, "px;\n    padding-top: ").concat(top, "px;\n    padding-right: ").concat(right, "px;\n    margin-left:0;\n    margin-top:0;\n    margin-right: ").concat(gap, "px ").concat(important, ";\n    "),
    gapMode === "padding" && "padding-right: ".concat(gap, "px ").concat(important, ";")
  ].filter(Boolean).join(""), "\n  }\n  \n  .").concat(zeroRightClassName, " {\n    right: ").concat(gap, "px ").concat(important, ";\n  }\n  \n  .").concat(fullWidthClassName, " {\n    margin-right: ").concat(gap, "px ").concat(important, ";\n  }\n  \n  .").concat(zeroRightClassName, " .").concat(zeroRightClassName, " {\n    right: 0 ").concat(important, ";\n  }\n  \n  .").concat(fullWidthClassName, " .").concat(fullWidthClassName, " {\n    margin-right: 0 ").concat(important, ";\n  }\n  \n  body[").concat(lockAttribute, "] {\n    ").concat(removedBarSizeVariable, ": ").concat(gap, "px;\n  }\n");
};
var getCurrentUseCounter = function() {
  var counter = parseInt(document.body.getAttribute(lockAttribute) || "0", 10);
  return isFinite(counter) ? counter : 0;
};
var useLockAttribute = function() {
  reactExports.useEffect(function() {
    document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());
    return function() {
      var newCounter = getCurrentUseCounter() - 1;
      if (newCounter <= 0) {
        document.body.removeAttribute(lockAttribute);
      } else {
        document.body.setAttribute(lockAttribute, newCounter.toString());
      }
    };
  }, []);
};
var RemoveScrollBar = function(_a2) {
  var noRelative = _a2.noRelative, noImportant = _a2.noImportant, _b2 = _a2.gapMode, gapMode = _b2 === void 0 ? "margin" : _b2;
  useLockAttribute();
  var gap = reactExports.useMemo(function() {
    return getGapWidth(gapMode);
  }, [gapMode]);
  return reactExports.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? "!important" : "") });
};
var passiveSupported = false;
if (typeof window !== "undefined") {
  try {
    var options = Object.defineProperty({}, "passive", {
      get: function() {
        passiveSupported = true;
        return true;
      }
    });
    window.addEventListener("test", options, options);
    window.removeEventListener("test", options, options);
  } catch (err) {
    passiveSupported = false;
  }
}
var nonPassive = passiveSupported ? { passive: false } : false;
var alwaysContainsScroll = function(node) {
  return node.tagName === "TEXTAREA";
};
var elementCanBeScrolled = function(node, overflow) {
  if (!(node instanceof Element)) {
    return false;
  }
  var styles = window.getComputedStyle(node);
  return (
    // not-not-scrollable
    styles[overflow] !== "hidden" && // contains scroll inside self
    !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === "visible")
  );
};
var elementCouldBeVScrolled = function(node) {
  return elementCanBeScrolled(node, "overflowY");
};
var elementCouldBeHScrolled = function(node) {
  return elementCanBeScrolled(node, "overflowX");
};
var locationCouldBeScrolled = function(axis, node) {
  var ownerDocument = node.ownerDocument;
  var current = node;
  do {
    if (typeof ShadowRoot !== "undefined" && current instanceof ShadowRoot) {
      current = current.host;
    }
    var isScrollable = elementCouldBeScrolled(axis, current);
    if (isScrollable) {
      var _a2 = getScrollVariables(axis, current), scrollHeight = _a2[1], clientHeight = _a2[2];
      if (scrollHeight > clientHeight) {
        return true;
      }
    }
    current = current.parentNode;
  } while (current && current !== ownerDocument.body);
  return false;
};
var getVScrollVariables = function(_a2) {
  var scrollTop = _a2.scrollTop, scrollHeight = _a2.scrollHeight, clientHeight = _a2.clientHeight;
  return [
    scrollTop,
    scrollHeight,
    clientHeight
  ];
};
var getHScrollVariables = function(_a2) {
  var scrollLeft = _a2.scrollLeft, scrollWidth = _a2.scrollWidth, clientWidth = _a2.clientWidth;
  return [
    scrollLeft,
    scrollWidth,
    clientWidth
  ];
};
var elementCouldBeScrolled = function(axis, node) {
  return axis === "v" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);
};
var getScrollVariables = function(axis, node) {
  return axis === "v" ? getVScrollVariables(node) : getHScrollVariables(node);
};
var getDirectionFactor = function(axis, direction) {
  return axis === "h" && direction === "rtl" ? -1 : 1;
};
var handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) {
  var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);
  var delta = directionFactor * sourceDelta;
  var target = event.target;
  var targetInLock = endTarget.contains(target);
  var shouldCancelScroll = false;
  var isDeltaPositive = delta > 0;
  var availableScroll = 0;
  var availableScrollTop = 0;
  do {
    if (!target) {
      break;
    }
    var _a2 = getScrollVariables(axis, target), position = _a2[0], scroll_1 = _a2[1], capacity = _a2[2];
    var elementScroll = scroll_1 - capacity - directionFactor * position;
    if (position || elementScroll) {
      if (elementCouldBeScrolled(axis, target)) {
        availableScroll += elementScroll;
        availableScrollTop += position;
      }
    }
    var parent_1 = target.parentNode;
    target = parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1;
  } while (
    // portaled content
    !targetInLock && target !== document.body || // self content
    targetInLock && (endTarget.contains(target) || endTarget === target)
  );
  if (isDeltaPositive && (Math.abs(availableScroll) < 1 || false)) {
    shouldCancelScroll = true;
  } else if (!isDeltaPositive && (Math.abs(availableScrollTop) < 1 || false)) {
    shouldCancelScroll = true;
  }
  return shouldCancelScroll;
};
var getTouchXY = function(event) {
  return "changedTouches" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];
};
var getDeltaXY = function(event) {
  return [event.deltaX, event.deltaY];
};
var extractRef = function(ref) {
  return ref && "current" in ref ? ref.current : ref;
};
var deltaCompare = function(x, y) {
  return x[0] === y[0] && x[1] === y[1];
};
var generateStyle = function(id) {
  return "\n  .block-interactivity-".concat(id, " {pointer-events: none;}\n  .allow-interactivity-").concat(id, " {pointer-events: all;}\n");
};
var idCounter = 0;
var lockStack = [];
function RemoveScrollSideCar(props) {
  var shouldPreventQueue = reactExports.useRef([]);
  var touchStartRef = reactExports.useRef([0, 0]);
  var activeAxis = reactExports.useRef();
  var id = reactExports.useState(idCounter++)[0];
  var Style2 = reactExports.useState(styleSingleton)[0];
  var lastProps = reactExports.useRef(props);
  reactExports.useEffect(function() {
    lastProps.current = props;
  }, [props]);
  reactExports.useEffect(function() {
    if (props.inert) {
      document.body.classList.add("block-interactivity-".concat(id));
      var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
      allow_1.forEach(function(el) {
        return el.classList.add("allow-interactivity-".concat(id));
      });
      return function() {
        document.body.classList.remove("block-interactivity-".concat(id));
        allow_1.forEach(function(el) {
          return el.classList.remove("allow-interactivity-".concat(id));
        });
      };
    }
    return;
  }, [props.inert, props.lockRef.current, props.shards]);
  var shouldCancelEvent = reactExports.useCallback(function(event, parent) {
    if ("touches" in event && event.touches.length === 2 || event.type === "wheel" && event.ctrlKey) {
      return !lastProps.current.allowPinchZoom;
    }
    var touch = getTouchXY(event);
    var touchStart = touchStartRef.current;
    var deltaX = "deltaX" in event ? event.deltaX : touchStart[0] - touch[0];
    var deltaY = "deltaY" in event ? event.deltaY : touchStart[1] - touch[1];
    var currentAxis;
    var target = event.target;
    var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? "h" : "v";
    if ("touches" in event && moveDirection === "h" && target.type === "range") {
      return false;
    }
    var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);
    if (!canBeScrolledInMainDirection) {
      return true;
    }
    if (canBeScrolledInMainDirection) {
      currentAxis = moveDirection;
    } else {
      currentAxis = moveDirection === "v" ? "h" : "v";
      canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);
    }
    if (!canBeScrolledInMainDirection) {
      return false;
    }
    if (!activeAxis.current && "changedTouches" in event && (deltaX || deltaY)) {
      activeAxis.current = currentAxis;
    }
    if (!currentAxis) {
      return true;
    }
    var cancelingAxis = activeAxis.current || currentAxis;
    return handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY);
  }, []);
  var shouldPrevent = reactExports.useCallback(function(_event) {
    var event = _event;
    if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) {
      return;
    }
    var delta = "deltaY" in event ? getDeltaXY(event) : getTouchXY(event);
    var sourceEvent = shouldPreventQueue.current.filter(function(e) {
      return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta);
    })[0];
    if (sourceEvent && sourceEvent.should) {
      if (event.cancelable) {
        event.preventDefault();
      }
      return;
    }
    if (!sourceEvent) {
      var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) {
        return node.contains(event.target);
      });
      var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;
      if (shouldStop) {
        if (event.cancelable) {
          event.preventDefault();
        }
      }
    }
  }, []);
  var shouldCancel = reactExports.useCallback(function(name, delta, target, should) {
    var event = { name, delta, target, should, shadowParent: getOutermostShadowParent(target) };
    shouldPreventQueue.current.push(event);
    setTimeout(function() {
      shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e) {
        return e !== event;
      });
    }, 1);
  }, []);
  var scrollTouchStart = reactExports.useCallback(function(event) {
    touchStartRef.current = getTouchXY(event);
    activeAxis.current = void 0;
  }, []);
  var scrollWheel = reactExports.useCallback(function(event) {
    shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
  }, []);
  var scrollTouchMove = reactExports.useCallback(function(event) {
    shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
  }, []);
  reactExports.useEffect(function() {
    lockStack.push(Style2);
    props.setCallbacks({
      onScrollCapture: scrollWheel,
      onWheelCapture: scrollWheel,
      onTouchMoveCapture: scrollTouchMove
    });
    document.addEventListener("wheel", shouldPrevent, nonPassive);
    document.addEventListener("touchmove", shouldPrevent, nonPassive);
    document.addEventListener("touchstart", scrollTouchStart, nonPassive);
    return function() {
      lockStack = lockStack.filter(function(inst) {
        return inst !== Style2;
      });
      document.removeEventListener("wheel", shouldPrevent, nonPassive);
      document.removeEventListener("touchmove", shouldPrevent, nonPassive);
      document.removeEventListener("touchstart", scrollTouchStart, nonPassive);
    };
  }, []);
  var removeScrollBar = props.removeScrollBar, inert = props.inert;
  return reactExports.createElement(
    reactExports.Fragment,
    null,
    inert ? reactExports.createElement(Style2, { styles: generateStyle(id) }) : null,
    removeScrollBar ? reactExports.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null
  );
}
function getOutermostShadowParent(node) {
  var shadowParent = null;
  while (node !== null) {
    if (node instanceof ShadowRoot) {
      shadowParent = node.host;
      node = node.host;
    }
    node = node.parentNode;
  }
  return shadowParent;
}
const SideCar = exportSidecar(effectCar, RemoveScrollSideCar);
var ReactRemoveScroll = reactExports.forwardRef(function(props, ref) {
  return reactExports.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: SideCar }));
});
ReactRemoveScroll.classNames = RemoveScroll.classNames;
var OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
var SELECTION_KEYS = [" ", "Enter"];
var SELECT_NAME = "Select";
var [Collection$2, useCollection$2, createCollectionScope$2] = createCollection(SELECT_NAME);
var [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [
  createCollectionScope$2,
  createPopperScope
]);
var usePopperScope$2 = createPopperScope();
var [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
var [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);
var Select$1 = (props) => {
  const {
    __scopeSelect,
    children,
    open: openProp,
    defaultOpen,
    onOpenChange,
    value: valueProp,
    defaultValue,
    onValueChange,
    dir,
    name,
    autoComplete,
    disabled,
    required,
    form
  } = props;
  const popperScope = usePopperScope$2(__scopeSelect);
  const [trigger, setTrigger] = reactExports.useState(null);
  const [valueNode, setValueNode] = reactExports.useState(null);
  const [valueNodeHasChildren, setValueNodeHasChildren] = reactExports.useState(false);
  const direction = useDirection(dir);
  const [open, setOpen] = useControllableState({
    prop: openProp,
    defaultProp: defaultOpen ?? false,
    onChange: onOpenChange,
    caller: SELECT_NAME
  });
  const [value, setValue] = useControllableState({
    prop: valueProp,
    defaultProp: defaultValue,
    onChange: onValueChange,
    caller: SELECT_NAME
  });
  const triggerPointerDownPosRef = reactExports.useRef(null);
  const isFormControl = trigger ? form || !!trigger.closest("form") : true;
  const [nativeOptionsSet, setNativeOptionsSet] = reactExports.useState(/* @__PURE__ */ new Set());
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Root2$3, { ...popperScope, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
    SelectProvider,
    {
      required,
      scope: __scopeSelect,
      trigger,
      onTriggerChange: setTrigger,
      valueNode,
      onValueNodeChange: setValueNode,
      valueNodeHasChildren,
      onValueNodeHasChildrenChange: setValueNodeHasChildren,
      contentId: useId(),
      value,
      onValueChange: setValue,
      open,
      onOpenChange: setOpen,
      dir: direction,
      triggerPointerDownPosRef,
      disabled,
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(Collection$2.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          SelectNativeOptionsProvider,
          {
            scope: props.__scopeSelect,
            onNativeOptionAdd: reactExports.useCallback((option) => {
              setNativeOptionsSet((prev) => new Set(prev).add(option));
            }, []),
            onNativeOptionRemove: reactExports.useCallback((option) => {
              setNativeOptionsSet((prev) => {
                const optionsSet = new Set(prev);
                optionsSet.delete(option);
                return optionsSet;
              });
            }, []),
            children
          }
        ) }),
        isFormControl ? /* @__PURE__ */ jsxRuntimeExports.jsxs(
          SelectBubbleInput,
          {
            "aria-hidden": true,
            required,
            tabIndex: -1,
            name,
            autoComplete,
            value,
            onChange: (event) => setValue(event.target.value),
            disabled,
            form,
            children: [
              value === void 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "" }) : null,
              Array.from(nativeOptionsSet)
            ]
          },
          nativeSelectKey
        ) : null
      ]
    }
  ) });
};
Select$1.displayName = SELECT_NAME;
var TRIGGER_NAME$4 = "SelectTrigger";
var SelectTrigger$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, disabled = false, ...triggerProps } = props;
    const popperScope = usePopperScope$2(__scopeSelect);
    const context = useSelectContext(TRIGGER_NAME$4, __scopeSelect);
    const isDisabled = context.disabled || disabled;
    const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);
    const getItems = useCollection$2(__scopeSelect);
    const pointerTypeRef = reactExports.useRef("touch");
    const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {
      const enabledItems = getItems().filter((item) => !item.disabled);
      const currentItem = enabledItems.find((item) => item.value === context.value);
      const nextItem = findNextItem(enabledItems, search, currentItem);
      if (nextItem !== void 0) {
        context.onValueChange(nextItem.value);
      }
    });
    const handleOpen = (pointerEvent) => {
      if (!isDisabled) {
        context.onOpenChange(true);
        resetTypeahead();
      }
      if (pointerEvent) {
        context.triggerPointerDownPosRef.current = {
          x: Math.round(pointerEvent.pageX),
          y: Math.round(pointerEvent.pageY)
        };
      }
    };
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        type: "button",
        role: "combobox",
        "aria-controls": context.contentId,
        "aria-expanded": context.open,
        "aria-required": context.required,
        "aria-autocomplete": "none",
        dir: context.dir,
        "data-state": context.open ? "open" : "closed",
        disabled: isDisabled,
        "data-disabled": isDisabled ? "" : void 0,
        "data-placeholder": shouldShowPlaceholder(context.value) ? "" : void 0,
        ...triggerProps,
        ref: composedRefs,
        onClick: composeEventHandlers(triggerProps.onClick, (event) => {
          event.currentTarget.focus();
          if (pointerTypeRef.current !== "mouse") {
            handleOpen(event);
          }
        }),
        onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {
          pointerTypeRef.current = event.pointerType;
          const target = event.target;
          if (target.hasPointerCapture(event.pointerId)) {
            target.releasePointerCapture(event.pointerId);
          }
          if (event.button === 0 && event.ctrlKey === false && event.pointerType === "mouse") {
            handleOpen(event);
            event.preventDefault();
          }
        }),
        onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {
          const isTypingAhead = searchRef.current !== "";
          const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
          if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
          if (isTypingAhead && event.key === " ") return;
          if (OPEN_KEYS.includes(event.key)) {
            handleOpen();
            event.preventDefault();
          }
        })
      }
    ) });
  }
);
SelectTrigger$1.displayName = TRIGGER_NAME$4;
var VALUE_NAME = "SelectValue";
var SelectValue$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, className, style, children, placeholder = "", ...valueProps } = props;
    const context = useSelectContext(VALUE_NAME, __scopeSelect);
    const { onValueNodeHasChildrenChange } = context;
    const hasChildren = children !== void 0;
    const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);
    useLayoutEffect2(() => {
      onValueNodeHasChildrenChange(hasChildren);
    }, [onValueNodeHasChildrenChange, hasChildren]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.span,
      {
        ...valueProps,
        ref: composedRefs,
        style: { pointerEvents: "none" },
        children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: placeholder }) : children
      }
    );
  }
);
SelectValue$1.displayName = VALUE_NAME;
var ICON_NAME = "SelectIcon";
var SelectIcon = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, children, ...iconProps } = props;
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "▼" });
  }
);
SelectIcon.displayName = ICON_NAME;
var PORTAL_NAME$3 = "SelectPortal";
var SelectPortal = (props) => {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$4, { asChild: true, ...props });
};
SelectPortal.displayName = PORTAL_NAME$3;
var CONTENT_NAME$4 = "SelectContent";
var SelectContent$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const context = useSelectContext(CONTENT_NAME$4, props.__scopeSelect);
    const [fragment, setFragment] = reactExports.useState();
    useLayoutEffect2(() => {
      setFragment(new DocumentFragment());
    }, []);
    if (!context.open) {
      const frag = fragment;
      return frag ? reactDomExports.createPortal(
        /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Collection$2.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: props.children }) }) }),
        frag
      ) : null;
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContentImpl, { ...props, ref: forwardedRef });
  }
);
SelectContent$1.displayName = CONTENT_NAME$4;
var CONTENT_MARGIN = 10;
var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME$4);
var CONTENT_IMPL_NAME = "SelectContentImpl";
var Slot$2 = /* @__PURE__ */ createSlot("SelectContent.RemoveScroll");
var SelectContentImpl = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeSelect,
      position = "item-aligned",
      onCloseAutoFocus,
      onEscapeKeyDown,
      onPointerDownOutside,
      //
      // PopperContent props
      side,
      sideOffset,
      align,
      alignOffset,
      arrowPadding,
      collisionBoundary,
      collisionPadding,
      sticky,
      hideWhenDetached,
      avoidCollisions,
      //
      ...contentProps
    } = props;
    const context = useSelectContext(CONTENT_NAME$4, __scopeSelect);
    const [content, setContent] = reactExports.useState(null);
    const [viewport, setViewport] = reactExports.useState(null);
    const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));
    const [selectedItem, setSelectedItem] = reactExports.useState(null);
    const [selectedItemText, setSelectedItemText] = reactExports.useState(
      null
    );
    const getItems = useCollection$2(__scopeSelect);
    const [isPositioned, setIsPositioned] = reactExports.useState(false);
    const firstValidItemFoundRef = reactExports.useRef(false);
    reactExports.useEffect(() => {
      if (content) return hideOthers(content);
    }, [content]);
    useFocusGuards();
    const focusFirst2 = reactExports.useCallback(
      (candidates) => {
        const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);
        const [lastItem] = restItems.slice(-1);
        const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
        for (const candidate of candidates) {
          if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
          candidate == null ? void 0 : candidate.scrollIntoView({ block: "nearest" });
          if (candidate === firstItem && viewport) viewport.scrollTop = 0;
          if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;
          candidate == null ? void 0 : candidate.focus();
          if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
        }
      },
      [getItems, viewport]
    );
    const focusSelectedItem = reactExports.useCallback(
      () => focusFirst2([selectedItem, content]),
      [focusFirst2, selectedItem, content]
    );
    reactExports.useEffect(() => {
      if (isPositioned) {
        focusSelectedItem();
      }
    }, [isPositioned, focusSelectedItem]);
    const { onOpenChange, triggerPointerDownPosRef } = context;
    reactExports.useEffect(() => {
      if (content) {
        let pointerMoveDelta = { x: 0, y: 0 };
        const handlePointerMove = (event) => {
          var _a2, _b2;
          pointerMoveDelta = {
            x: Math.abs(Math.round(event.pageX) - (((_a2 = triggerPointerDownPosRef.current) == null ? void 0 : _a2.x) ?? 0)),
            y: Math.abs(Math.round(event.pageY) - (((_b2 = triggerPointerDownPosRef.current) == null ? void 0 : _b2.y) ?? 0))
          };
        };
        const handlePointerUp = (event) => {
          if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {
            event.preventDefault();
          } else {
            if (!content.contains(event.target)) {
              onOpenChange(false);
            }
          }
          document.removeEventListener("pointermove", handlePointerMove);
          triggerPointerDownPosRef.current = null;
        };
        if (triggerPointerDownPosRef.current !== null) {
          document.addEventListener("pointermove", handlePointerMove);
          document.addEventListener("pointerup", handlePointerUp, { capture: true, once: true });
        }
        return () => {
          document.removeEventListener("pointermove", handlePointerMove);
          document.removeEventListener("pointerup", handlePointerUp, { capture: true });
        };
      }
    }, [content, onOpenChange, triggerPointerDownPosRef]);
    reactExports.useEffect(() => {
      const close = () => onOpenChange(false);
      window.addEventListener("blur", close);
      window.addEventListener("resize", close);
      return () => {
        window.removeEventListener("blur", close);
        window.removeEventListener("resize", close);
      };
    }, [onOpenChange]);
    const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {
      const enabledItems = getItems().filter((item) => !item.disabled);
      const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);
      const nextItem = findNextItem(enabledItems, search, currentItem);
      if (nextItem) {
        setTimeout(() => nextItem.ref.current.focus());
      }
    });
    const itemRefCallback = reactExports.useCallback(
      (node, value, disabled) => {
        const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
        const isSelectedItem = context.value !== void 0 && context.value === value;
        if (isSelectedItem || isFirstValidItem) {
          setSelectedItem(node);
          if (isFirstValidItem) firstValidItemFoundRef.current = true;
        }
      },
      [context.value]
    );
    const handleItemLeave = reactExports.useCallback(() => content == null ? void 0 : content.focus(), [content]);
    const itemTextRefCallback = reactExports.useCallback(
      (node, value, disabled) => {
        const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
        const isSelectedItem = context.value !== void 0 && context.value === value;
        if (isSelectedItem || isFirstValidItem) {
          setSelectedItemText(node);
        }
      },
      [context.value]
    );
    const SelectPosition = position === "popper" ? SelectPopperPosition : SelectItemAlignedPosition;
    const popperContentProps = SelectPosition === SelectPopperPosition ? {
      side,
      sideOffset,
      align,
      alignOffset,
      arrowPadding,
      collisionBoundary,
      collisionPadding,
      sticky,
      hideWhenDetached,
      avoidCollisions
    } : {};
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      SelectContentProvider,
      {
        scope: __scopeSelect,
        content,
        viewport,
        onViewportChange: setViewport,
        itemRefCallback,
        selectedItem,
        onItemLeave: handleItemLeave,
        itemTextRefCallback,
        focusSelectedItem,
        selectedItemText,
        position,
        isPositioned,
        searchRef,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(ReactRemoveScroll, { as: Slot$2, allowPinchZoom: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          FocusScope,
          {
            asChild: true,
            trapped: context.open,
            onMountAutoFocus: (event) => {
              event.preventDefault();
            },
            onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {
              var _a2;
              (_a2 = context.trigger) == null ? void 0 : _a2.focus({ preventScroll: true });
              event.preventDefault();
            }),
            children: /* @__PURE__ */ jsxRuntimeExports.jsx(
              DismissableLayer,
              {
                asChild: true,
                disableOutsidePointerEvents: true,
                onEscapeKeyDown,
                onPointerDownOutside,
                onFocusOutside: (event) => event.preventDefault(),
                onDismiss: () => context.onOpenChange(false),
                children: /* @__PURE__ */ jsxRuntimeExports.jsx(
                  SelectPosition,
                  {
                    role: "listbox",
                    id: context.contentId,
                    "data-state": context.open ? "open" : "closed",
                    dir: context.dir,
                    onContextMenu: (event) => event.preventDefault(),
                    ...contentProps,
                    ...popperContentProps,
                    onPlaced: () => setIsPositioned(true),
                    ref: composedRefs,
                    style: {
                      // flex layout so we can place the scroll buttons properly
                      display: "flex",
                      flexDirection: "column",
                      // reset the outline by default as the content MAY get focused
                      outline: "none",
                      ...contentProps.style
                    },
                    onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {
                      const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
                      if (event.key === "Tab") event.preventDefault();
                      if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
                      if (["ArrowUp", "ArrowDown", "Home", "End"].includes(event.key)) {
                        const items = getItems().filter((item) => !item.disabled);
                        let candidateNodes = items.map((item) => item.ref.current);
                        if (["ArrowUp", "End"].includes(event.key)) {
                          candidateNodes = candidateNodes.slice().reverse();
                        }
                        if (["ArrowUp", "ArrowDown"].includes(event.key)) {
                          const currentElement = event.target;
                          const currentIndex = candidateNodes.indexOf(currentElement);
                          candidateNodes = candidateNodes.slice(currentIndex + 1);
                        }
                        setTimeout(() => focusFirst2(candidateNodes));
                        event.preventDefault();
                      }
                    })
                  }
                )
              }
            )
          }
        ) })
      }
    );
  }
);
SelectContentImpl.displayName = CONTENT_IMPL_NAME;
var ITEM_ALIGNED_POSITION_NAME = "SelectItemAlignedPosition";
var SelectItemAlignedPosition = reactExports.forwardRef((props, forwardedRef) => {
  const { __scopeSelect, onPlaced, ...popperProps } = props;
  const context = useSelectContext(CONTENT_NAME$4, __scopeSelect);
  const contentContext = useSelectContentContext(CONTENT_NAME$4, __scopeSelect);
  const [contentWrapper, setContentWrapper] = reactExports.useState(null);
  const [content, setContent] = reactExports.useState(null);
  const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));
  const getItems = useCollection$2(__scopeSelect);
  const shouldExpandOnScrollRef = reactExports.useRef(false);
  const shouldRepositionRef = reactExports.useRef(true);
  const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;
  const position = reactExports.useCallback(() => {
    if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
      const triggerRect = context.trigger.getBoundingClientRect();
      const contentRect = content.getBoundingClientRect();
      const valueNodeRect = context.valueNode.getBoundingClientRect();
      const itemTextRect = selectedItemText.getBoundingClientRect();
      if (context.dir !== "rtl") {
        const itemTextOffset = itemTextRect.left - contentRect.left;
        const left = valueNodeRect.left - itemTextOffset;
        const leftDelta = triggerRect.left - left;
        const minContentWidth = triggerRect.width + leftDelta;
        const contentWidth = Math.max(minContentWidth, contentRect.width);
        const rightEdge = window.innerWidth - CONTENT_MARGIN;
        const clampedLeft = clamp$1(left, [
          CONTENT_MARGIN,
          // Prevents the content from going off the starting edge of the
          // viewport. It may still go off the ending edge, but this can be
          // controlled by the user since they may want to manage overflow in a
          // specific way.
          // https://github.com/radix-ui/primitives/issues/2049
          Math.max(CONTENT_MARGIN, rightEdge - contentWidth)
        ]);
        contentWrapper.style.minWidth = minContentWidth + "px";
        contentWrapper.style.left = clampedLeft + "px";
      } else {
        const itemTextOffset = contentRect.right - itemTextRect.right;
        const right = window.innerWidth - valueNodeRect.right - itemTextOffset;
        const rightDelta = window.innerWidth - triggerRect.right - right;
        const minContentWidth = triggerRect.width + rightDelta;
        const contentWidth = Math.max(minContentWidth, contentRect.width);
        const leftEdge = window.innerWidth - CONTENT_MARGIN;
        const clampedRight = clamp$1(right, [
          CONTENT_MARGIN,
          Math.max(CONTENT_MARGIN, leftEdge - contentWidth)
        ]);
        contentWrapper.style.minWidth = minContentWidth + "px";
        contentWrapper.style.right = clampedRight + "px";
      }
      const items = getItems();
      const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
      const itemsHeight = viewport.scrollHeight;
      const contentStyles = window.getComputedStyle(content);
      const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);
      const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);
      const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);
      const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);
      const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;
      const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);
      const viewportStyles = window.getComputedStyle(viewport);
      const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);
      const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);
      const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;
      const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
      const selectedItemHalfHeight = selectedItem.offsetHeight / 2;
      const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;
      const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
      const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
      const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;
      if (willAlignWithoutTopOverflow) {
        const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;
        contentWrapper.style.bottom = "0px";
        const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;
        const clampedTriggerMiddleToBottomEdge = Math.max(
          triggerMiddleToBottomEdge,
          selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport
          (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth
        );
        const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;
        contentWrapper.style.height = height + "px";
      } else {
        const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;
        contentWrapper.style.top = "0px";
        const clampedTopEdgeToTriggerMiddle = Math.max(
          topEdgeToTriggerMiddle,
          contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport
          (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight
        );
        const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;
        contentWrapper.style.height = height + "px";
        viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;
      }
      contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;
      contentWrapper.style.minHeight = minContentHeight + "px";
      contentWrapper.style.maxHeight = availableHeight + "px";
      onPlaced == null ? void 0 : onPlaced();
      requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);
    }
  }, [
    getItems,
    context.trigger,
    context.valueNode,
    contentWrapper,
    content,
    viewport,
    selectedItem,
    selectedItemText,
    context.dir,
    onPlaced
  ]);
  useLayoutEffect2(() => position(), [position]);
  const [contentZIndex, setContentZIndex] = reactExports.useState();
  useLayoutEffect2(() => {
    if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
  }, [content]);
  const handleScrollButtonChange = reactExports.useCallback(
    (node) => {
      if (node && shouldRepositionRef.current === true) {
        position();
        focusSelectedItem == null ? void 0 : focusSelectedItem();
        shouldRepositionRef.current = false;
      }
    },
    [position, focusSelectedItem]
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    SelectViewportProvider,
    {
      scope: __scopeSelect,
      contentWrapper,
      shouldExpandOnScrollRef,
      onScrollButtonChange: handleScrollButtonChange,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "div",
        {
          ref: setContentWrapper,
          style: {
            display: "flex",
            flexDirection: "column",
            position: "fixed",
            zIndex: contentZIndex
          },
          children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            Primitive.div,
            {
              ...popperProps,
              ref: composedRefs,
              style: {
                // When we get the height of the content, it includes borders. If we were to set
                // the height without having `boxSizing: 'border-box'` it would be too big.
                boxSizing: "border-box",
                // We need to ensure the content doesn't get taller than the wrapper
                maxHeight: "100%",
                ...popperProps.style
              }
            }
          )
        }
      )
    }
  );
});
SelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;
var POPPER_POSITION_NAME = "SelectPopperPosition";
var SelectPopperPosition = reactExports.forwardRef((props, forwardedRef) => {
  const {
    __scopeSelect,
    align = "start",
    collisionPadding = CONTENT_MARGIN,
    ...popperProps
  } = props;
  const popperScope = usePopperScope$2(__scopeSelect);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Content$1,
    {
      ...popperScope,
      ...popperProps,
      ref: forwardedRef,
      align,
      collisionPadding,
      style: {
        // Ensure border-box for floating-ui calculations
        boxSizing: "border-box",
        ...popperProps.style,
        // re-namespace exposed content custom properties
        ...{
          "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
          "--radix-select-content-available-width": "var(--radix-popper-available-width)",
          "--radix-select-content-available-height": "var(--radix-popper-available-height)",
          "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
          "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
        }
      }
    }
  );
});
SelectPopperPosition.displayName = POPPER_POSITION_NAME;
var [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME$4, {});
var VIEWPORT_NAME = "SelectViewport";
var SelectViewport = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, nonce, ...viewportProps } = props;
    const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);
    const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
    const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);
    const prevScrollTopRef = reactExports.useRef(0);
    return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        "style",
        {
          dangerouslySetInnerHTML: {
            __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`
          },
          nonce
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(Collection$2.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        Primitive.div,
        {
          "data-radix-select-viewport": "",
          role: "presentation",
          ...viewportProps,
          ref: composedRefs,
          style: {
            // we use position: 'relative' here on the `viewport` so that when we call
            // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport
            // (independent of the scrollUpButton).
            position: "relative",
            flex: 1,
            // Viewport should only be scrollable in the vertical direction.
            // This won't work in vertical writing modes, so we'll need to
            // revisit this if/when that is supported
            // https://developer.chrome.com/blog/vertical-form-controls
            overflow: "hidden auto",
            ...viewportProps.style
          },
          onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {
            const viewport = event.currentTarget;
            const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;
            if ((shouldExpandOnScrollRef == null ? void 0 : shouldExpandOnScrollRef.current) && contentWrapper) {
              const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);
              if (scrolledBy > 0) {
                const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
                const cssMinHeight = parseFloat(contentWrapper.style.minHeight);
                const cssHeight = parseFloat(contentWrapper.style.height);
                const prevHeight = Math.max(cssMinHeight, cssHeight);
                if (prevHeight < availableHeight) {
                  const nextHeight = prevHeight + scrolledBy;
                  const clampedNextHeight = Math.min(availableHeight, nextHeight);
                  const heightDiff = nextHeight - clampedNextHeight;
                  contentWrapper.style.height = clampedNextHeight + "px";
                  if (contentWrapper.style.bottom === "0px") {
                    viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;
                    contentWrapper.style.justifyContent = "flex-end";
                  }
                }
              }
            }
            prevScrollTopRef.current = viewport.scrollTop;
          })
        }
      ) })
    ] });
  }
);
SelectViewport.displayName = VIEWPORT_NAME;
var GROUP_NAME$1 = "SelectGroup";
var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME$1);
var SelectGroup = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, ...groupProps } = props;
    const groupId = useId();
    return /* @__PURE__ */ jsxRuntimeExports.jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
  }
);
SelectGroup.displayName = GROUP_NAME$1;
var LABEL_NAME = "SelectLabel";
var SelectLabel = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, ...labelProps } = props;
    const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
  }
);
SelectLabel.displayName = LABEL_NAME;
var ITEM_NAME$2 = "SelectItem";
var [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME$2);
var SelectItem$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeSelect,
      value,
      disabled = false,
      textValue: textValueProp,
      ...itemProps
    } = props;
    const context = useSelectContext(ITEM_NAME$2, __scopeSelect);
    const contentContext = useSelectContentContext(ITEM_NAME$2, __scopeSelect);
    const isSelected = context.value === value;
    const [textValue, setTextValue] = reactExports.useState(textValueProp ?? "");
    const [isFocused, setIsFocused] = reactExports.useState(false);
    const composedRefs = useComposedRefs(
      forwardedRef,
      (node) => {
        var _a2;
        return (_a2 = contentContext.itemRefCallback) == null ? void 0 : _a2.call(contentContext, node, value, disabled);
      }
    );
    const textId = useId();
    const pointerTypeRef = reactExports.useRef("touch");
    const handleSelect = () => {
      if (!disabled) {
        context.onValueChange(value);
        context.onOpenChange(false);
      }
    };
    if (value === "") {
      throw new Error(
        "A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder."
      );
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      SelectItemContextProvider,
      {
        scope: __scopeSelect,
        value,
        disabled,
        textId,
        isSelected,
        onItemTextChange: reactExports.useCallback((node) => {
          setTextValue((prevTextValue) => prevTextValue || ((node == null ? void 0 : node.textContent) ?? "").trim());
        }, []),
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Collection$2.ItemSlot,
          {
            scope: __scopeSelect,
            value,
            disabled,
            textValue,
            children: /* @__PURE__ */ jsxRuntimeExports.jsx(
              Primitive.div,
              {
                role: "option",
                "aria-labelledby": textId,
                "data-highlighted": isFocused ? "" : void 0,
                "aria-selected": isSelected && isFocused,
                "data-state": isSelected ? "checked" : "unchecked",
                "aria-disabled": disabled || void 0,
                "data-disabled": disabled ? "" : void 0,
                tabIndex: disabled ? void 0 : -1,
                ...itemProps,
                ref: composedRefs,
                onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),
                onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),
                onClick: composeEventHandlers(itemProps.onClick, () => {
                  if (pointerTypeRef.current !== "mouse") handleSelect();
                }),
                onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {
                  if (pointerTypeRef.current === "mouse") handleSelect();
                }),
                onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {
                  pointerTypeRef.current = event.pointerType;
                }),
                onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {
                  var _a2;
                  pointerTypeRef.current = event.pointerType;
                  if (disabled) {
                    (_a2 = contentContext.onItemLeave) == null ? void 0 : _a2.call(contentContext);
                  } else if (pointerTypeRef.current === "mouse") {
                    event.currentTarget.focus({ preventScroll: true });
                  }
                }),
                onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {
                  var _a2;
                  if (event.currentTarget === document.activeElement) {
                    (_a2 = contentContext.onItemLeave) == null ? void 0 : _a2.call(contentContext);
                  }
                }),
                onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {
                  var _a2;
                  const isTypingAhead = ((_a2 = contentContext.searchRef) == null ? void 0 : _a2.current) !== "";
                  if (isTypingAhead && event.key === " ") return;
                  if (SELECTION_KEYS.includes(event.key)) handleSelect();
                  if (event.key === " ") event.preventDefault();
                })
              }
            )
          }
        )
      }
    );
  }
);
SelectItem$1.displayName = ITEM_NAME$2;
var ITEM_TEXT_NAME = "SelectItemText";
var SelectItemText = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, className, style, ...itemTextProps } = props;
    const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);
    const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);
    const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
    const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);
    const [itemTextNode, setItemTextNode] = reactExports.useState(null);
    const composedRefs = useComposedRefs(
      forwardedRef,
      (node) => setItemTextNode(node),
      itemContext.onItemTextChange,
      (node) => {
        var _a2;
        return (_a2 = contentContext.itemTextRefCallback) == null ? void 0 : _a2.call(contentContext, node, itemContext.value, itemContext.disabled);
      }
    );
    const textContent = itemTextNode == null ? void 0 : itemTextNode.textContent;
    const nativeOption = reactExports.useMemo(
      () => /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),
      [itemContext.disabled, itemContext.value, textContent]
    );
    const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
    useLayoutEffect2(() => {
      onNativeOptionAdd(nativeOption);
      return () => onNativeOptionRemove(nativeOption);
    }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
    return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
      itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? reactDomExports.createPortal(itemTextProps.children, context.valueNode) : null
    ] });
  }
);
SelectItemText.displayName = ITEM_TEXT_NAME;
var ITEM_INDICATOR_NAME = "SelectItemIndicator";
var SelectItemIndicator = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, ...itemIndicatorProps } = props;
    const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
    return itemContext.isSelected ? /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
  }
);
SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
var SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
var SelectScrollUpButton$1 = reactExports.forwardRef((props, forwardedRef) => {
  const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
  const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
  const [canScrollUp, setCanScrollUp] = reactExports.useState(false);
  const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
  useLayoutEffect2(() => {
    if (contentContext.viewport && contentContext.isPositioned) {
      let handleScroll2 = function() {
        const canScrollUp2 = viewport.scrollTop > 0;
        setCanScrollUp(canScrollUp2);
      };
      const viewport = contentContext.viewport;
      handleScroll2();
      viewport.addEventListener("scroll", handleScroll2);
      return () => viewport.removeEventListener("scroll", handleScroll2);
    }
  }, [contentContext.viewport, contentContext.isPositioned]);
  return canScrollUp ? /* @__PURE__ */ jsxRuntimeExports.jsx(
    SelectScrollButtonImpl,
    {
      ...props,
      ref: composedRefs,
      onAutoScroll: () => {
        const { viewport, selectedItem } = contentContext;
        if (viewport && selectedItem) {
          viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;
        }
      }
    }
  ) : null;
});
SelectScrollUpButton$1.displayName = SCROLL_UP_BUTTON_NAME;
var SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
var SelectScrollDownButton$1 = reactExports.forwardRef((props, forwardedRef) => {
  const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
  const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
  const [canScrollDown, setCanScrollDown] = reactExports.useState(false);
  const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
  useLayoutEffect2(() => {
    if (contentContext.viewport && contentContext.isPositioned) {
      let handleScroll2 = function() {
        const maxScroll = viewport.scrollHeight - viewport.clientHeight;
        const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;
        setCanScrollDown(canScrollDown2);
      };
      const viewport = contentContext.viewport;
      handleScroll2();
      viewport.addEventListener("scroll", handleScroll2);
      return () => viewport.removeEventListener("scroll", handleScroll2);
    }
  }, [contentContext.viewport, contentContext.isPositioned]);
  return canScrollDown ? /* @__PURE__ */ jsxRuntimeExports.jsx(
    SelectScrollButtonImpl,
    {
      ...props,
      ref: composedRefs,
      onAutoScroll: () => {
        const { viewport, selectedItem } = contentContext;
        if (viewport && selectedItem) {
          viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;
        }
      }
    }
  ) : null;
});
SelectScrollDownButton$1.displayName = SCROLL_DOWN_BUTTON_NAME;
var SelectScrollButtonImpl = reactExports.forwardRef((props, forwardedRef) => {
  const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;
  const contentContext = useSelectContentContext("SelectScrollButton", __scopeSelect);
  const autoScrollTimerRef = reactExports.useRef(null);
  const getItems = useCollection$2(__scopeSelect);
  const clearAutoScrollTimer = reactExports.useCallback(() => {
    if (autoScrollTimerRef.current !== null) {
      window.clearInterval(autoScrollTimerRef.current);
      autoScrollTimerRef.current = null;
    }
  }, []);
  reactExports.useEffect(() => {
    return () => clearAutoScrollTimer();
  }, [clearAutoScrollTimer]);
  useLayoutEffect2(() => {
    var _a2;
    const activeItem = getItems().find((item) => item.ref.current === document.activeElement);
    (_a2 = activeItem == null ? void 0 : activeItem.ref.current) == null ? void 0 : _a2.scrollIntoView({ block: "nearest" });
  }, [getItems]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Primitive.div,
    {
      "aria-hidden": true,
      ...scrollIndicatorProps,
      ref: forwardedRef,
      style: { flexShrink: 0, ...scrollIndicatorProps.style },
      onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {
        if (autoScrollTimerRef.current === null) {
          autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
        }
      }),
      onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {
        var _a2;
        (_a2 = contentContext.onItemLeave) == null ? void 0 : _a2.call(contentContext);
        if (autoScrollTimerRef.current === null) {
          autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
        }
      }),
      onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {
        clearAutoScrollTimer();
      })
    }
  );
});
var SEPARATOR_NAME = "SelectSeparator";
var SelectSeparator = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, ...separatorProps } = props;
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
  }
);
SelectSeparator.displayName = SEPARATOR_NAME;
var ARROW_NAME$2 = "SelectArrow";
var SelectArrow = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSelect, ...arrowProps } = props;
    const popperScope = usePopperScope$2(__scopeSelect);
    const context = useSelectContext(ARROW_NAME$2, __scopeSelect);
    const contentContext = useSelectContentContext(ARROW_NAME$2, __scopeSelect);
    return context.open && contentContext.position === "popper" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
  }
);
SelectArrow.displayName = ARROW_NAME$2;
var BUBBLE_INPUT_NAME$2 = "SelectBubbleInput";
var SelectBubbleInput = reactExports.forwardRef(
  ({ __scopeSelect, value, ...props }, forwardedRef) => {
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, ref);
    const prevValue = usePrevious(value);
    reactExports.useEffect(() => {
      const select = ref.current;
      if (!select) return;
      const selectProto = window.HTMLSelectElement.prototype;
      const descriptor = Object.getOwnPropertyDescriptor(
        selectProto,
        "value"
      );
      const setValue = descriptor.set;
      if (prevValue !== value && setValue) {
        const event = new Event("change", { bubbles: true });
        setValue.call(select, value);
        select.dispatchEvent(event);
      }
    }, [prevValue, value]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.select,
      {
        ...props,
        style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },
        ref: composedRefs,
        defaultValue: value
      }
    );
  }
);
SelectBubbleInput.displayName = BUBBLE_INPUT_NAME$2;
function shouldShowPlaceholder(value) {
  return value === "" || value === void 0;
}
function useTypeaheadSearch(onSearchChange) {
  const handleSearchChange = useCallbackRef$1(onSearchChange);
  const searchRef = reactExports.useRef("");
  const timerRef = reactExports.useRef(0);
  const handleTypeaheadSearch = reactExports.useCallback(
    (key) => {
      const search = searchRef.current + key;
      handleSearchChange(search);
      (function updateSearch(value) {
        searchRef.current = value;
        window.clearTimeout(timerRef.current);
        if (value !== "") timerRef.current = window.setTimeout(() => updateSearch(""), 1e3);
      })(search);
    },
    [handleSearchChange]
  );
  const resetTypeahead = reactExports.useCallback(() => {
    searchRef.current = "";
    window.clearTimeout(timerRef.current);
  }, []);
  reactExports.useEffect(() => {
    return () => window.clearTimeout(timerRef.current);
  }, []);
  return [searchRef, handleTypeaheadSearch, resetTypeahead];
}
function findNextItem(items, search, currentItem) {
  const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);
  const normalizedSearch = isRepeated ? search[0] : search;
  const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;
  let wrappedItems = wrapArray$1(items, Math.max(currentItemIndex, 0));
  const excludeCurrentItem = normalizedSearch.length === 1;
  if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);
  const nextItem = wrappedItems.find(
    (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())
  );
  return nextItem !== currentItem ? nextItem : void 0;
}
function wrapArray$1(array, startIndex) {
  return array.map((_, index2) => array[(startIndex + index2) % array.length]);
}
var Root2$2 = Select$1;
var Trigger$2 = SelectTrigger$1;
var Value = SelectValue$1;
var Icon = SelectIcon;
var Portal$3 = SelectPortal;
var Content2$2 = SelectContent$1;
var Viewport = SelectViewport;
var Item$1 = SelectItem$1;
var ItemText = SelectItemText;
var ItemIndicator = SelectItemIndicator;
var ScrollUpButton = SelectScrollUpButton$1;
var ScrollDownButton = SelectScrollDownButton$1;
function Select({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Root2$2, { "data-slot": "select", ...props });
}
function SelectValue({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Value, { "data-slot": "select-value", ...props });
}
function SelectTrigger({
  className,
  size: size2 = "default",
  children,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    Trigger$2,
    {
      "data-slot": "select-trigger",
      "data-size": size2,
      className: cn$1(
        "cy:border-input cy:data-[placeholder]:text-muted-foreground cy:[&_svg:not([class*=text-])]:text-muted-foreground cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:aria-invalid:ring-destructive/20 cy:dark:aria-invalid:ring-destructive/40 cy:aria-invalid:border-destructive cy:dark:bg-input/30 cy:dark:hover:bg-input/50 cy:flex cy:w-fit cy:items-center cy:justify-between cy:gap-2 cy:rounded-md cy:border cy:bg-transparent cy:px-3 cy:py-2 cy:text-sm cy:whitespace-nowrap cy:shadow-xs cy:transition-[color,box-shadow] cy:outline-none cy:focus-visible:ring-[3px] cy:disabled:cursor-not-allowed cy:disabled:opacity-50 cy:data-[size=default]:h-9 cy:data-[size=sm]:h-8 cy:*:data-[slot=select-value]:line-clamp-1 cy:*:data-[slot=select-value]:flex cy:*:data-[slot=select-value]:items-center cy:*:data-[slot=select-value]:gap-2 cy:[&_svg]:pointer-events-none cy:[&_svg]:shrink-0 cy:[&_svg:not([class*=size-])]:size-4",
        className
      ),
      ...props,
      children: [
        children,
        /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "cy:size-4 cy:opacity-50" }) })
      ]
    }
  );
}
function SelectContent({
  className,
  children,
  position = "popper",
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$3, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
    Content2$2,
    {
      "data-slot": "select-content",
      className: cn$1(
        "cy:bg-popover cy:text-popover-foreground cy:data-[state=open]:animate-in cy:data-[state=closed]:animate-out cy:data-[state=closed]:fade-out-0 cy:data-[state=open]:fade-in-0 cy:data-[state=closed]:zoom-out-95 cy:data-[state=open]:zoom-in-95 cy:data-[side=bottom]:slide-in-from-top-2 cy:data-[side=left]:slide-in-from-right-2 cy:data-[side=right]:slide-in-from-left-2 cy:data-[side=top]:slide-in-from-bottom-2 cy:relative cy:z-50 cy:max-h-(--radix-select-content-available-height) cy:min-w-[8rem] cy:origin-(--radix-select-content-transform-origin) cy:overflow-x-hidden cy:overflow-y-auto cy:rounded-md cy:border cy:shadow-md",
        position === "popper" && "cy:data-[side=bottom]:translate-y-1 cy:data-[side=left]:-translate-x-1 cy:data-[side=right]:translate-x-1 cy:data-[side=top]:-translate-y-1",
        className
      ),
      position,
      ...props,
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(SelectScrollUpButton, {}),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Viewport,
          {
            className: cn$1(
              "cy:p-1",
              position === "popper" && "cy:h-[var(--radix-select-trigger-height)] cy:w-full cy:min-w-[var(--radix-select-trigger-width)] cy:scroll-my-1"
            ),
            children
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(SelectScrollDownButton, {})
      ]
    }
  ) });
}
function SelectItem({
  className,
  children,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    Item$1,
    {
      "data-slot": "select-item",
      className: cn$1(
        "cy:focus:bg-accent cy:focus:text-accent-foreground cy:[&_svg:not([class*=text-])]:text-muted-foreground cy:relative cy:flex cy:w-full cy:cursor-default cy:items-center cy:gap-2 cy:rounded-sm cy:py-1.5 cy:pr-8 cy:pl-2 cy:text-sm cy:outline-hidden cy:select-none cy:data-[disabled]:pointer-events-none cy:data-[disabled]:opacity-50 cy:[&_svg]:pointer-events-none cy:[&_svg]:shrink-0 cy:[&_svg:not([class*=size-])]:size-4 cy:*:[span]:last:flex cy:*:[span]:last:items-center cy:*:[span]:last:gap-2",
        className
      ),
      ...props,
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:absolute cy:right-2 cy:flex cy:size-3.5 cy:items-center cy:justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemIndicator, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "cy:size-4" }) }) }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(ItemText, { children })
      ]
    }
  );
}
function SelectScrollUpButton({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    ScrollUpButton,
    {
      "data-slot": "select-scroll-up-button",
      className: cn$1(
        "cy:flex cy:cursor-default cy:items-center cy:justify-center cy:py-1",
        className
      ),
      ...props,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronUp, { className: "cy:size-4" })
    }
  );
}
function SelectScrollDownButton({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    ScrollDownButton,
    {
      "data-slot": "select-scroll-down-button",
      className: cn$1(
        "cy:flex cy:cursor-default cy:items-center cy:justify-center cy:py-1",
        className
      ),
      ...props,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "cy:size-4" })
    }
  );
}
var PAGE_KEYS = ["PageUp", "PageDown"];
var ARROW_KEYS$1 = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
var BACK_KEYS = {
  "from-left": ["Home", "PageDown", "ArrowDown", "ArrowLeft"],
  "from-right": ["Home", "PageDown", "ArrowDown", "ArrowRight"],
  "from-bottom": ["Home", "PageDown", "ArrowDown", "ArrowLeft"],
  "from-top": ["Home", "PageDown", "ArrowUp", "ArrowLeft"]
};
var SLIDER_NAME = "Slider";
var [Collection$1, useCollection$1, createCollectionScope$1] = createCollection(SLIDER_NAME);
var [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [
  createCollectionScope$1
]);
var [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);
var Slider$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      name,
      min: min2 = 0,
      max: max2 = 100,
      step = 1,
      orientation = "horizontal",
      disabled = false,
      minStepsBetweenThumbs = 0,
      defaultValue = [min2],
      value,
      onValueChange = () => {
      },
      onValueCommit = () => {
      },
      inverted = false,
      form,
      ...sliderProps
    } = props;
    const thumbRefs = reactExports.useRef(/* @__PURE__ */ new Set());
    const valueIndexToChangeRef = reactExports.useRef(0);
    const isHorizontal = orientation === "horizontal";
    const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;
    const [values = [], setValues] = useControllableState({
      prop: value,
      defaultProp: defaultValue,
      onChange: (value2) => {
        var _a2;
        const thumbs = [...thumbRefs.current];
        (_a2 = thumbs[valueIndexToChangeRef.current]) == null ? void 0 : _a2.focus();
        onValueChange(value2);
      }
    });
    const valuesBeforeSlideStartRef = reactExports.useRef(values);
    function handleSlideStart(value2) {
      const closestIndex = getClosestValueIndex(values, value2);
      updateValues(value2, closestIndex);
    }
    function handleSlideMove(value2) {
      updateValues(value2, valueIndexToChangeRef.current);
    }
    function handleSlideEnd() {
      const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];
      const nextValue = values[valueIndexToChangeRef.current];
      const hasChanged = nextValue !== prevValue;
      if (hasChanged) onValueCommit(values);
    }
    function updateValues(value2, atIndex, { commit } = { commit: false }) {
      const decimalCount = getDecimalCount(step);
      const snapToStep = roundValue(Math.round((value2 - min2) / step) * step + min2, decimalCount);
      const nextValue = clamp$1(snapToStep, [min2, max2]);
      setValues((prevValues = []) => {
        const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);
        if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {
          valueIndexToChangeRef.current = nextValues.indexOf(nextValue);
          const hasChanged = String(nextValues) !== String(prevValues);
          if (hasChanged && commit) onValueCommit(nextValues);
          return hasChanged ? nextValues : prevValues;
        } else {
          return prevValues;
        }
      });
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      SliderProvider,
      {
        scope: props.__scopeSlider,
        name,
        disabled,
        min: min2,
        max: max2,
        valueIndexToChangeRef,
        thumbs: thumbRefs.current,
        values,
        orientation,
        form,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(Collection$1.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Collection$1.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          SliderOrientation,
          {
            "aria-disabled": disabled,
            "data-disabled": disabled ? "" : void 0,
            ...sliderProps,
            ref: forwardedRef,
            onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {
              if (!disabled) valuesBeforeSlideStartRef.current = values;
            }),
            min: min2,
            max: max2,
            inverted,
            onSlideStart: disabled ? void 0 : handleSlideStart,
            onSlideMove: disabled ? void 0 : handleSlideMove,
            onSlideEnd: disabled ? void 0 : handleSlideEnd,
            onHomeKeyDown: () => !disabled && updateValues(min2, 0, { commit: true }),
            onEndKeyDown: () => !disabled && updateValues(max2, values.length - 1, { commit: true }),
            onStepKeyDown: ({ event, direction: stepDirection }) => {
              if (!disabled) {
                const isPageKey = PAGE_KEYS.includes(event.key);
                const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS$1.includes(event.key);
                const multiplier = isSkipKey ? 10 : 1;
                const atIndex = valueIndexToChangeRef.current;
                const value2 = values[atIndex];
                const stepInDirection = step * multiplier * stepDirection;
                updateValues(value2 + stepInDirection, atIndex, { commit: true });
              }
            }
          }
        ) }) })
      }
    );
  }
);
Slider$1.displayName = SLIDER_NAME;
var [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
  startEdge: "left",
  endEdge: "right",
  size: "width",
  direction: 1
});
var SliderHorizontal = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      min: min2,
      max: max2,
      dir,
      inverted,
      onSlideStart,
      onSlideMove,
      onSlideEnd,
      onStepKeyDown,
      ...sliderProps
    } = props;
    const [slider, setSlider] = reactExports.useState(null);
    const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));
    const rectRef = reactExports.useRef(void 0);
    const direction = useDirection(dir);
    const isDirectionLTR = direction === "ltr";
    const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;
    function getValueFromPointer(pointerPosition) {
      const rect = rectRef.current || slider.getBoundingClientRect();
      const input = [0, rect.width];
      const output = isSlidingFromLeft ? [min2, max2] : [max2, min2];
      const value = linearScale(input, output);
      rectRef.current = rect;
      return value(pointerPosition - rect.left);
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      SliderOrientationProvider,
      {
        scope: props.__scopeSlider,
        startEdge: isSlidingFromLeft ? "left" : "right",
        endEdge: isSlidingFromLeft ? "right" : "left",
        direction: isSlidingFromLeft ? 1 : -1,
        size: "width",
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          SliderImpl,
          {
            dir: direction,
            "data-orientation": "horizontal",
            ...sliderProps,
            ref: composedRefs,
            style: {
              ...sliderProps.style,
              ["--radix-slider-thumb-transform"]: "translateX(-50%)"
            },
            onSlideStart: (event) => {
              const value = getValueFromPointer(event.clientX);
              onSlideStart == null ? void 0 : onSlideStart(value);
            },
            onSlideMove: (event) => {
              const value = getValueFromPointer(event.clientX);
              onSlideMove == null ? void 0 : onSlideMove(value);
            },
            onSlideEnd: () => {
              rectRef.current = void 0;
              onSlideEnd == null ? void 0 : onSlideEnd();
            },
            onStepKeyDown: (event) => {
              const slideDirection = isSlidingFromLeft ? "from-left" : "from-right";
              const isBackKey = BACK_KEYS[slideDirection].includes(event.key);
              onStepKeyDown == null ? void 0 : onStepKeyDown({ event, direction: isBackKey ? -1 : 1 });
            }
          }
        )
      }
    );
  }
);
var SliderVertical = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      min: min2,
      max: max2,
      inverted,
      onSlideStart,
      onSlideMove,
      onSlideEnd,
      onStepKeyDown,
      ...sliderProps
    } = props;
    const sliderRef = reactExports.useRef(null);
    const ref = useComposedRefs(forwardedRef, sliderRef);
    const rectRef = reactExports.useRef(void 0);
    const isSlidingFromBottom = !inverted;
    function getValueFromPointer(pointerPosition) {
      const rect = rectRef.current || sliderRef.current.getBoundingClientRect();
      const input = [0, rect.height];
      const output = isSlidingFromBottom ? [max2, min2] : [min2, max2];
      const value = linearScale(input, output);
      rectRef.current = rect;
      return value(pointerPosition - rect.top);
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      SliderOrientationProvider,
      {
        scope: props.__scopeSlider,
        startEdge: isSlidingFromBottom ? "bottom" : "top",
        endEdge: isSlidingFromBottom ? "top" : "bottom",
        size: "height",
        direction: isSlidingFromBottom ? 1 : -1,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          SliderImpl,
          {
            "data-orientation": "vertical",
            ...sliderProps,
            ref,
            style: {
              ...sliderProps.style,
              ["--radix-slider-thumb-transform"]: "translateY(50%)"
            },
            onSlideStart: (event) => {
              const value = getValueFromPointer(event.clientY);
              onSlideStart == null ? void 0 : onSlideStart(value);
            },
            onSlideMove: (event) => {
              const value = getValueFromPointer(event.clientY);
              onSlideMove == null ? void 0 : onSlideMove(value);
            },
            onSlideEnd: () => {
              rectRef.current = void 0;
              onSlideEnd == null ? void 0 : onSlideEnd();
            },
            onStepKeyDown: (event) => {
              const slideDirection = isSlidingFromBottom ? "from-bottom" : "from-top";
              const isBackKey = BACK_KEYS[slideDirection].includes(event.key);
              onStepKeyDown == null ? void 0 : onStepKeyDown({ event, direction: isBackKey ? -1 : 1 });
            }
          }
        )
      }
    );
  }
);
var SliderImpl = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeSlider,
      onSlideStart,
      onSlideMove,
      onSlideEnd,
      onHomeKeyDown,
      onEndKeyDown,
      onStepKeyDown,
      ...sliderProps
    } = props;
    const context = useSliderContext(SLIDER_NAME, __scopeSlider);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.span,
      {
        ...sliderProps,
        ref: forwardedRef,
        onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
          if (event.key === "Home") {
            onHomeKeyDown(event);
            event.preventDefault();
          } else if (event.key === "End") {
            onEndKeyDown(event);
            event.preventDefault();
          } else if (PAGE_KEYS.concat(ARROW_KEYS$1).includes(event.key)) {
            onStepKeyDown(event);
            event.preventDefault();
          }
        }),
        onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
          const target = event.target;
          target.setPointerCapture(event.pointerId);
          event.preventDefault();
          if (context.thumbs.has(target)) {
            target.focus();
          } else {
            onSlideStart(event);
          }
        }),
        onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
          const target = event.target;
          if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);
        }),
        onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {
          const target = event.target;
          if (target.hasPointerCapture(event.pointerId)) {
            target.releasePointerCapture(event.pointerId);
            onSlideEnd(event);
          }
        })
      }
    );
  }
);
var TRACK_NAME = "SliderTrack";
var SliderTrack = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSlider, ...trackProps } = props;
    const context = useSliderContext(TRACK_NAME, __scopeSlider);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.span,
      {
        "data-disabled": context.disabled ? "" : void 0,
        "data-orientation": context.orientation,
        ...trackProps,
        ref: forwardedRef
      }
    );
  }
);
SliderTrack.displayName = TRACK_NAME;
var RANGE_NAME = "SliderRange";
var SliderRange = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSlider, ...rangeProps } = props;
    const context = useSliderContext(RANGE_NAME, __scopeSlider);
    const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, ref);
    const valuesCount = context.values.length;
    const percentages = context.values.map(
      (value) => convertValueToPercentage(value, context.min, context.max)
    );
    const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;
    const offsetEnd = 100 - Math.max(...percentages);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.span,
      {
        "data-orientation": context.orientation,
        "data-disabled": context.disabled ? "" : void 0,
        ...rangeProps,
        ref: composedRefs,
        style: {
          ...props.style,
          [orientation.startEdge]: offsetStart + "%",
          [orientation.endEdge]: offsetEnd + "%"
        }
      }
    );
  }
);
SliderRange.displayName = RANGE_NAME;
var THUMB_NAME = "SliderThumb";
var SliderThumb = reactExports.forwardRef(
  (props, forwardedRef) => {
    const getItems = useCollection$1(props.__scopeSlider);
    const [thumb, setThumb] = reactExports.useState(null);
    const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));
    const index2 = reactExports.useMemo(
      () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,
      [getItems, thumb]
    );
    return /* @__PURE__ */ jsxRuntimeExports.jsx(SliderThumbImpl, { ...props, ref: composedRefs, index: index2 });
  }
);
var SliderThumbImpl = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeSlider, index: index2, name, ...thumbProps } = props;
    const context = useSliderContext(THUMB_NAME, __scopeSlider);
    const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);
    const [thumb, setThumb] = reactExports.useState(null);
    const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));
    const isFormControl = thumb ? context.form || !!thumb.closest("form") : true;
    const size2 = useSize(thumb);
    const value = context.values[index2];
    const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);
    const label = getLabel(index2, context.values.length);
    const orientationSize = size2 == null ? void 0 : size2[orientation.size];
    const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;
    reactExports.useEffect(() => {
      if (thumb) {
        context.thumbs.add(thumb);
        return () => {
          context.thumbs.delete(thumb);
        };
      }
    }, [thumb, context.thumbs]);
    return /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "span",
      {
        style: {
          transform: "var(--radix-slider-thumb-transform)",
          position: "absolute",
          [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`
        },
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(Collection$1.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            Primitive.span,
            {
              role: "slider",
              "aria-label": props["aria-label"] || label,
              "aria-valuemin": context.min,
              "aria-valuenow": value,
              "aria-valuemax": context.max,
              "aria-orientation": context.orientation,
              "data-orientation": context.orientation,
              "data-disabled": context.disabled ? "" : void 0,
              tabIndex: context.disabled ? void 0 : 0,
              ...thumbProps,
              ref: composedRefs,
              style: value === void 0 ? { display: "none" } : props.style,
              onFocus: composeEventHandlers(props.onFocus, () => {
                context.valueIndexToChangeRef.current = index2;
              })
            }
          ) }),
          isFormControl && /* @__PURE__ */ jsxRuntimeExports.jsx(
            SliderBubbleInput,
            {
              name: name ?? (context.name ? context.name + (context.values.length > 1 ? "[]" : "") : void 0),
              form: context.form,
              value
            },
            index2
          )
        ]
      }
    );
  }
);
SliderThumb.displayName = THUMB_NAME;
var BUBBLE_INPUT_NAME$1 = "RadioBubbleInput";
var SliderBubbleInput = reactExports.forwardRef(
  ({ __scopeSlider, value, ...props }, forwardedRef) => {
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(ref, forwardedRef);
    const prevValue = usePrevious(value);
    reactExports.useEffect(() => {
      const input = ref.current;
      if (!input) return;
      const inputProto = window.HTMLInputElement.prototype;
      const descriptor = Object.getOwnPropertyDescriptor(inputProto, "value");
      const setValue = descriptor.set;
      if (prevValue !== value && setValue) {
        const event = new Event("input", { bubbles: true });
        setValue.call(input, value);
        input.dispatchEvent(event);
      }
    }, [prevValue, value]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.input,
      {
        style: { display: "none" },
        ...props,
        ref: composedRefs,
        defaultValue: value
      }
    );
  }
);
SliderBubbleInput.displayName = BUBBLE_INPUT_NAME$1;
function getNextSortedValues(prevValues = [], nextValue, atIndex) {
  const nextValues = [...prevValues];
  nextValues[atIndex] = nextValue;
  return nextValues.sort((a, b) => a - b);
}
function convertValueToPercentage(value, min2, max2) {
  const maxSteps = max2 - min2;
  const percentPerStep = 100 / maxSteps;
  const percentage = percentPerStep * (value - min2);
  return clamp$1(percentage, [0, 100]);
}
function getLabel(index2, totalValues) {
  if (totalValues > 2) {
    return `Value ${index2 + 1} of ${totalValues}`;
  } else if (totalValues === 2) {
    return ["Minimum", "Maximum"][index2];
  } else {
    return void 0;
  }
}
function getClosestValueIndex(values, nextValue) {
  if (values.length === 1) return 0;
  const distances = values.map((value) => Math.abs(value - nextValue));
  const closestDistance = Math.min(...distances);
  return distances.indexOf(closestDistance);
}
function getThumbInBoundsOffset(width, left, direction) {
  const halfWidth = width / 2;
  const halfPercent = 50;
  const offset2 = linearScale([0, halfPercent], [0, halfWidth]);
  return (halfWidth - offset2(left) * direction) * direction;
}
function getStepsBetweenValues(values) {
  return values.slice(0, -1).map((value, index2) => values[index2 + 1] - value);
}
function hasMinStepsBetweenValues(values, minStepsBetweenValues) {
  if (minStepsBetweenValues > 0) {
    const stepsBetweenValues = getStepsBetweenValues(values);
    const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);
    return actualMinStepsBetweenValues >= minStepsBetweenValues;
  }
  return true;
}
function linearScale(input, output) {
  return (value) => {
    if (input[0] === input[1] || output[0] === output[1]) return output[0];
    const ratio = (output[1] - output[0]) / (input[1] - input[0]);
    return output[0] + ratio * (value - input[0]);
  };
}
function getDecimalCount(value) {
  return (String(value).split(".")[1] || "").length;
}
function roundValue(value, decimalCount) {
  const rounder = Math.pow(10, decimalCount);
  return Math.round(value * rounder) / rounder;
}
var Root$3 = Slider$1;
var Track = SliderTrack;
var Range = SliderRange;
var Thumb = SliderThumb;
function Slider({
  className,
  defaultValue,
  value,
  min: min2 = 0,
  max: max2 = 100,
  ...props
}) {
  const _values = reactExports.useMemo(
    () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min2, max2],
    [value, defaultValue, min2, max2]
  );
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    Root$3,
    {
      "data-slot": "slider",
      defaultValue,
      value,
      min: min2,
      max: max2,
      className: cn$1(
        "cy:relative cy:flex cy:w-full cy:touch-none cy:items-center cy:select-none cy:data-[disabled]:opacity-50 cy:data-[orientation=vertical]:h-full cy:data-[orientation=vertical]:min-h-44 cy:data-[orientation=vertical]:w-auto cy:data-[orientation=vertical]:flex-col",
        className
      ),
      ...props,
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Track,
          {
            "data-slot": "slider-track",
            className: cn$1(
              "cy:bg-muted cy:relative cy:grow cy:overflow-hidden cy:rounded-full cy:data-[orientation=horizontal]:h-3 cy:data-[orientation=horizontal]:w-full cy:data-[orientation=vertical]:h-full cy:data-[orientation=vertical]:w-1.5"
            ),
            children: /* @__PURE__ */ jsxRuntimeExports.jsx(
              Range,
              {
                "data-slot": "slider-range",
                className: cn$1(
                  "cy:bg-primary cy:absolute cy:data-[orientation=horizontal]:h-full cy:data-[orientation=vertical]:w-full"
                )
              }
            )
          }
        ),
        Array.from({ length: _values.length }, (_, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
          Thumb,
          {
            "data-slot": "slider-thumb",
            className: "cy:border-white cy:bg-primary cy:ring-ring/50 cy:block cy:size-6 cy:shrink-0 cy:rounded-full cy:border-3 cy:shadow-md cy:transition-[color,box-shadow] cy:hover:ring-4 cy:focus-visible:ring-4 cy:focus-visible:outline-hidden cy:disabled:pointer-events-none cy:disabled:opacity-50"
          },
          index2
        ))
      ]
    }
  );
}
const BrowserPreview = () => {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      width: "381",
      height: "220",
      viewBox: "0 0 381 220",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { clipPath: "url(#clip0_537_603)", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "rect",
            {
              x: "1",
              y: "0.5",
              width: "379.5",
              height: "219",
              rx: "5.5",
              fill: "white",
              stroke: "#1869E3"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { clipPath: "url(#clip1_537_603)", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M13.6778 0H368.323C374.767 0 380 4.78413 380 10.6753V189.411C380 195.302 374.767 200.086 368.323 200.086H13.3442C6.5311 200.086 1 195.03 1 188.801V11.5904C1 5.19364 6.68092 0 13.6778 0Z",
                fill: "#7C95A5"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M1.33363 0H380V220.078H1V0.335485C1 0.150658 1.14982 0 1.33363 0Z",
                fill: "#1578F7"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M380 35.8364H1V219H380V35.8364Z", fill: "white" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M103.254 22.8129C100.947 22.8129 99.077 20.9321 99.0801 18.6116C99.0847 14.8126 99.0863 9.81289 99.0863 9.81289C99.0863 6.24681 96.2103 3.3548 92.664 3.3548H33.4452C29.8989 3.3548 27.0229 6.24681 27.0229 9.81289C27.0229 9.81289 27.0244 13.8605 27.0275 17.439C27.0306 20.4071 24.6381 22.8129 21.688 22.8129H1V47.6389H380V22.8129H103.254Z",
                fill: "white"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M17.4589 35.1701C17.4527 35.4667 17.2087 35.7044 16.9137 35.6981L5.97351 35.4916C5.6785 35.4854 5.44218 35.24 5.44836 34.9433C5.45454 34.6466 5.69858 34.409 5.99359 34.4152L16.9338 34.6218C17.2288 34.628 17.4651 34.8734 17.4589 35.1701Z",
                fill: "#D7D9E5"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M5.53202 34.8202L5.65395 34.684C5.78001 34.5432 5.99493 34.5329 6.13384 34.6587L10.106 38.2538C10.246 38.3806 10.2563 38.5967 10.1312 38.7364L10.0093 38.8726C9.88322 39.0135 9.6683 39.0237 9.52939 38.898L5.55725 35.3028C5.41719 35.176 5.40699 34.9599 5.53202 34.8202Z",
                fill: "#D7D9E5"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M10.2748 31.3311L10.1581 31.1904C10.0379 31.0455 9.8236 31.026 9.67948 31.1468L5.5754 34.5889C5.43128 34.7098 5.41189 34.9253 5.5321 35.0702L5.64884 35.211C5.76904 35.3559 5.98332 35.3754 6.12744 35.2545L10.2315 31.8124C10.3756 31.6915 10.395 31.4761 10.2748 31.3311Z",
                fill: "#D7D9E5"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M23.465 35.1701C23.4711 35.4668 23.7152 35.7044 24.0102 35.6982L34.9504 35.4916C35.2454 35.4854 35.4817 35.24 35.4755 34.9434C35.4693 34.6467 35.2253 34.4091 34.9303 34.4153L23.9901 34.6219C23.6951 34.6281 23.4588 34.8735 23.465 35.1701Z",
                fill: "#D7D9E5"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M30.9133 38.8701L30.7914 38.7339C30.6654 38.593 30.6778 38.377 30.8167 38.2513L34.7895 34.6568C34.9296 34.5301 35.1444 34.5426 35.2694 34.6823L35.3913 34.8185C35.5174 34.9594 35.5049 35.1754 35.366 35.3011L31.3932 38.8956C31.2531 39.0223 31.0383 39.0098 30.9133 38.8701Z",
                fill: "#D7D9E5"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M35.2808 35.2117L35.3976 35.071C35.5178 34.9261 35.4984 34.7106 35.3543 34.5897L31.2502 31.1476C31.1061 31.0268 30.8918 31.0463 30.7716 31.1912L30.6549 31.3319C30.5347 31.4768 30.554 31.6923 30.6982 31.8132L34.8022 35.2553C34.9464 35.3762 35.1606 35.3567 35.2808 35.2117Z",
                fill: "#D7D9E5"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M351.38 25.9675H56.1515C51.1765 25.9675 47.1436 30.023 47.1436 35.0256C47.1436 40.0283 51.1765 44.0837 56.1515 44.0837H351.38C356.355 44.0837 360.388 40.0283 360.388 35.0256C360.388 30.023 356.355 25.9675 351.38 25.9675Z",
                fill: "#EFF2FF"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M370.825 32.9831H367.21C366.501 32.9831 365.927 32.4053 365.927 31.6924C365.927 30.9795 366.501 30.4017 367.21 30.4017H370.825C371.534 30.4017 372.108 30.9795 372.108 31.6924C372.108 32.4053 371.534 32.9831 370.825 32.9831Z",
                fill: "#CFD3E8"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M370.825 36.3162H367.21C366.501 36.3162 365.927 35.7385 365.927 35.0255C365.927 34.3126 366.501 33.7349 367.21 33.7349H370.825C371.534 33.7349 372.108 34.3126 372.108 35.0255C372.108 35.7385 371.534 36.3162 370.825 36.3162Z",
                fill: "#CFD3E8"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M370.825 39.6477H367.21C366.501 39.6477 365.927 39.0699 365.927 38.357C365.927 37.6441 366.501 37.0663 367.21 37.0663H370.825C371.534 37.0663 372.108 37.6441 372.108 38.357C372.108 39.0699 371.534 39.6477 370.825 39.6477Z",
                fill: "#CFD3E8"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M59.7008 30.9097C58.3493 29.5507 56.1483 29.5507 54.7968 30.9097C53.4453 32.2687 53.4453 34.482 54.7968 35.841C55.9923 37.0432 57.8489 37.1814 59.1988 36.2588L62.8888 39.9694C63.1421 40.2241 63.553 40.2241 63.8063 39.9694C64.0596 39.7147 64.0596 39.3015 63.8063 39.0468L60.1163 35.3363C61.0338 33.9803 60.8963 32.1119 59.7008 30.9097ZM58.7834 34.92C57.9369 35.7711 56.5607 35.7711 55.7143 34.92C54.8679 34.0689 54.8679 32.685 55.7143 31.8339C56.5607 30.9827 57.9369 30.9827 58.7834 31.8339C59.6298 32.685 59.6298 34.0689 58.7834 34.92Z",
                fill: "#CFD3E8"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                opacity: "0.2",
                d: "M341.169 77.4766H215.795C214.907 77.4766 214.188 78.8204 214.188 80.478V196.866C214.188 198.523 214.907 199.867 215.795 199.867H341.169C342.057 199.867 342.777 198.523 342.777 196.866V80.478C342.777 78.8204 342.057 77.4766 341.169 77.4766Z",
                fill: "#F2F3F8"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { clipPath: "url(#clip2_537_603)", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "rect",
                {
                  width: "128.227",
                  height: "122.886",
                  transform: "translate(214.188 77.8303)",
                  fill: "#F2F3F8"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "path",
                {
                  opacity: "0.2",
                  d: "M328.978 140.274C361.777 140.274 377.756 166.081 409.715 200.717C383.644 200.717 272.029 200.717 239.829 200.717C267.583 172.193 296.177 140.274 328.978 140.274Z",
                  fill: "#D3DAFB"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "path",
                {
                  opacity: "0.2",
                  d: "M219.803 130.659C254.862 130.659 277.545 164.064 308.89 200.717C267.763 200.717 168.165 200.717 130.717 200.717C160.994 164.064 184.745 130.659 219.803 130.659Z",
                  fill: "#CDD9FF"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "path",
                {
                  opacity: "0.5",
                  d: "M278.501 130.891C285.367 130.891 290.932 125.326 290.932 118.46C290.932 111.595 285.367 106.03 278.501 106.03C271.636 106.03 266.07 111.595 266.07 118.46C266.07 125.326 271.636 130.891 278.501 130.891Z",
                  fill: "#D3DAFB"
                }
              )
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                opacity: "0.5",
                d: "M190.253 125.759H35.0857C33.7035 125.759 32.583 126.764 32.583 128.005C32.583 129.245 33.7035 130.25 35.0857 130.25H190.253C191.635 130.25 192.756 129.245 192.756 128.005C192.756 126.764 191.635 125.759 190.253 125.759Z",
                fill: "#E3E8FF"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M75.1954 160.567H35.0896C33.7052 160.567 32.583 161.657 32.583 163V172.732C32.583 174.075 33.7052 175.164 35.0896 175.164H75.1954C76.5798 175.164 77.7021 174.075 77.7021 172.732V163C77.7021 161.657 76.5798 160.567 75.1954 160.567Z",
                fill: "#E3E8FF"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "path",
              {
                d: "M114.693 105.548H35.0712C33.697 105.548 32.583 106.679 32.583 108.074V113.127C32.583 114.522 33.697 115.653 35.0712 115.653H114.693C116.067 115.653 117.181 114.522 117.181 113.127V108.074C117.181 106.679 116.067 105.548 114.693 105.548Z",
                fill: "#E3E8FF"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "362.516", cy: "12.9717", r: "3.94792", fill: "white" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "350.109", cy: "12.9717", r: "3.94792", fill: "white" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "337.701", cy: "12.9717", r: "3.94792", fill: "white" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "line",
              {
                x1: "1",
                y1: "46.811",
                x2: "380",
                y2: "46.811",
                stroke: "#F2F3F8",
                strokeWidth: "1.12798"
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "rect",
              {
                x: "34.8389",
                y: "11.2797",
                width: "45.119",
                height: "3.38393",
                fill: "#EBEEF9"
              }
            )
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "rect",
            {
              x: "1.25",
              y: "0.25",
              width: "378.5",
              height: "218.5",
              rx: "4.75",
              stroke: "#1578F7",
              strokeWidth: "0.5"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_537_603", children: /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { width: "380.5", height: "220", fill: "white", transform: "translate(0.5)" }) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip1_537_603", children: /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { x: "1", width: "379", height: "219", rx: "5", fill: "white" }) }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip2_537_603", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            "rect",
            {
              width: "128.227",
              height: "122.886",
              fill: "white",
              transform: "translate(214.188 77.8303)"
            }
          ) })
        ] })
      ]
    }
  );
};
const ToolbarIcon = () => {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "svg",
    {
      width: "36",
      height: "36",
      viewBox: "0 0 36 36",
      fill: "none",
      xmlns: "http://www.w3.org/2000/svg",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M0 12.8C0 8.31958 0 6.07937 0.871948 4.36808C1.63893 2.86278 2.86278 1.63893 4.36808 0.871948C6.07937 0 8.31958 0 12.8 0H36V36H12.8C8.31958 36 6.07937 36 4.36808 35.1281C2.86278 34.3611 1.63893 33.1372 0.871948 31.6319C0 29.9206 0 27.6804 0 23.2V12.8Z",
            fill: "#0B66E4"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M9.81792 9.8178C7.64785 11.9879 6.42871 14.931 6.42871 18C6.42871 21.069 7.64785 24.0122 9.81792 26.1822C11.988 28.3523 14.9312 29.5714 18.0001 29.5714C21.0691 29.5714 24.0123 28.3523 26.1824 26.1822C28.3524 24.0122 29.5716 21.069 29.5716 18C29.5716 15.6619 28.864 13.3969 27.5674 11.4911L26.2568 12.5165C27.3281 14.1297 27.9117 16.0347 27.9117 18C27.9117 20.6288 26.8675 23.1498 25.0088 25.0087C23.1499 26.8674 20.6289 27.9116 18.0001 27.9116C15.3714 27.9116 12.8504 26.8674 10.9915 25.0087C9.13277 23.1498 8.08854 20.6288 8.08854 18C8.08854 15.3712 9.13277 12.8502 10.9915 10.9914C12.8504 9.13265 15.3714 8.08842 18.0001 8.08842C18.6148 8.08842 19.2236 8.14552 19.8195 8.25677L20.1917 6.63797C19.4746 6.49964 18.741 6.42859 18.0001 6.42859C14.9312 6.42859 11.988 7.64773 9.81792 9.8178Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            fillRule: "evenodd",
            clipRule: "evenodd",
            d: "M17.7175 20.2388C17.6399 20.4201 16.5984 24.4628 16.5984 24.4628C16.5742 24.5534 16.5328 24.6382 16.4763 24.7124C16.4198 24.7868 16.3493 24.8491 16.269 24.8959C16.1068 24.9903 15.9141 25.0158 15.7332 24.9665C15.6438 24.9423 15.5599 24.9003 15.4864 24.8431C15.4129 24.786 15.3513 24.7147 15.305 24.6336C15.2116 24.4695 15.1864 24.2746 15.2351 24.0919C15.2351 24.0919 16.477 20.0576 16.477 19.1971V17.1008L13.7137 16.3516C13.6229 16.3287 13.5374 16.2877 13.4623 16.2311C13.3872 16.1744 13.324 16.1033 13.2765 16.0217C13.2289 15.9401 13.1979 15.8498 13.1852 15.756C13.1725 15.6621 13.1784 15.5667 13.2026 15.4751C13.2267 15.3837 13.2687 15.2979 13.3259 15.223C13.3833 15.148 13.4547 15.0854 13.5362 15.0387C13.6176 14.9919 13.7075 14.9621 13.8005 14.9508C13.8934 14.9396 13.9878 14.9472 14.0778 14.9731C14.0778 14.9731 16.4121 15.7765 17.3238 15.7765H19.1711C20.0814 15.7765 22.4144 14.9731 22.4144 14.9731C22.5951 14.9239 22.7878 14.9493 22.9501 15.0438C23.1123 15.1383 23.2308 15.2941 23.2795 15.4768C23.3281 15.6597 23.3029 15.8545 23.2095 16.0185C23.1161 16.1826 22.9621 16.3024 22.7813 16.3516L20.0067 17.1036V19.1971C20.0067 20.0576 21.2486 24.0876 21.2486 24.0876C21.297 24.2703 21.2718 24.4651 21.1782 24.6291C21.0846 24.7929 20.9304 24.9126 20.7497 24.9616C20.569 25.0106 20.3763 24.9849 20.2142 24.8904C20.052 24.7958 19.9338 24.6399 19.8853 24.4572C19.8853 24.4572 18.8395 20.4201 18.7675 20.2388C18.697 20.0576 18.4585 20.0576 18.4585 20.0576H18.0252C18.0252 20.0576 17.781 20.0576 17.7175 20.2388ZM18.2468 14.7019C18.6679 14.7019 19.0717 14.5328 19.3695 14.2317C19.6672 13.9307 19.8345 13.5223 19.8345 13.0965C19.8345 12.6708 19.6672 12.2624 19.3695 11.9614C19.0717 11.6603 18.6679 11.4911 18.2468 11.4911C17.8257 11.4911 17.4219 11.6603 17.124 11.9614C16.8263 12.2624 16.6591 12.6708 16.6591 13.0965C16.6591 13.5223 16.8263 13.9307 17.124 14.2317C17.4219 14.5328 17.8257 14.7019 18.2468 14.7019Z",
            fill: "white"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "path",
          {
            d: "M21.8574 8.48573V9.5143H23.9146V11.5714H24.9431V9.5143H27.0003V8.48573H24.9431V6.42859H23.9146V8.48573H21.8574Z",
            fill: "white"
          }
        )
      ]
    }
  );
};
const AccessibilityToolbarTab = ({
  onSave
}) => {
  const { config, setToolbar, isLoading, error } = useConfigStore();
  const toolbar = config.toolbar;
  const PREVIEW_HEIGHT = 220;
  const ICON_HEIGHT = 36;
  const calculatePreviewPosition = (percentage) => {
    return percentage / 100 * ((PREVIEW_HEIGHT - ICON_HEIGHT - PREVIEW_HEIGHT * 0.15) / PREVIEW_HEIGHT) * 100;
  };
  const isDisabled = !toolbar.enabled;
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    Card,
    {
      className: "cy:rounded-lg cy:shadow-none! cy:w-full cy:sm:p-8",
      style: {
        background: "#FFFFFF",
        border: "1px solid #CACEE4",
        borderRadius: "12px",
        gap: "8px"
      },
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { className: "cy:border-b cy:border-gray-200 cy:pb-6 cy:px-0", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-4 cy:mb-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "cy:text-xl cy:font-semibold", children: "Toolbar" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Switch,
              {
                checked: toolbar.enabled,
                onCheckedChange: (checked) => setToolbar("enabled", checked)
              }
            )
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { className: "cy:text-sm cy:text-gray-600", children: "Enable a simple display settings toolbar on your website with high contrast mode and text size enlarging." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(CardContent, { className: "cy:px-0 cy:pt-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-8", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-3", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Checkbox,
                {
                  id: "fontSize",
                  checked: toolbar.features.fontSize,
                  disabled: isDisabled,
                  onCheckedChange: (checked) => setToolbar("features.fontSize", checked)
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Label,
                {
                  htmlFor: "fontSize",
                  className: `cy:text-sm cy:cursor-pointer ${isDisabled ? "cy:text-gray-400" : ""}`,
                  children: "Include font size button"
                }
              )
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-3", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Checkbox,
                {
                  id: "contrast",
                  checked: toolbar.features.contrast,
                  disabled: isDisabled,
                  onCheckedChange: (checked) => setToolbar("features.contrast", checked)
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Label,
                {
                  htmlFor: "contrast",
                  className: `cy:text-sm cy:cursor-pointer ${isDisabled ? "cy:text-gray-400" : ""}`,
                  children: "Include contrast button"
                }
              )
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-3", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Checkbox,
                {
                  id: "grayscale",
                  checked: toolbar.features.grayscale,
                  disabled: isDisabled,
                  onCheckedChange: (checked) => setToolbar("features.grayscale", checked)
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Label,
                {
                  htmlFor: "grayscale",
                  className: `cy:text-sm cy:cursor-pointer ${isDisabled ? "cy:text-gray-400" : ""}`,
                  children: "Test with grayscale"
                }
              )
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-3", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Checkbox,
                {
                  id: "hideSmall",
                  checked: toolbar.features.hideOnSmallScreens,
                  disabled: isDisabled,
                  onCheckedChange: (checked) => setToolbar("features.hideOnSmallScreens", checked)
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Label,
                {
                  htmlFor: "hideSmall",
                  className: `cy:text-sm cy:cursor-pointer ${isDisabled ? "cy:text-gray-400" : ""}`,
                  children: "Hide toolbar on small screens."
                }
              )
            ] })
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:p-4 cy:border cy:border-gray-200", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: "cy:text-base cy:font-semibold cy:pb-2", children: "Placing toolbar" }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-2 cy:gap-8", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    Label,
                    {
                      className: `cy:block cy:mb-3 cy:text-sm ${isDisabled ? "cy:text-gray-400" : ""}`,
                      children: "Position"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:gap-3", children: [
                    /* @__PURE__ */ jsxRuntimeExports.jsxs(
                      "label",
                      {
                        className: `cy:flex-1 cy:inline-flex cy:items-center cy:justify-start cy:gap-2 cy:px-3 cy:pt-2 cy:pb-1 cy:rounded cy:border-2 cy:cursor-pointer cy:transition-all ${toolbar.placement.position === "left" ? "cy:border-blue-600 cy:bg-white" : "cy:border-gray-300 cy:bg-white"} ${isDisabled ? "cy:opacity-50 cy:cursor-not-allowed" : "cy:hover:border-blue-400"}`,
                        children: [
                          /* @__PURE__ */ jsxRuntimeExports.jsx(
                            "input",
                            {
                              type: "radio",
                              name: "toolbar-position",
                              value: "left",
                              checked: toolbar.placement.position === "left",
                              onChange: () => setToolbar("placement.position", "left"),
                              disabled: isDisabled,
                              className: "cy:w-4 cy:h-4 cy:text-blue-600 focus:cy:ring-blue-500 cy:flex-shrink-0"
                            }
                          ),
                          /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-[13px] cy:font-bold cy:text-gray-700 cy:leading-[16px] cy:pb-1", children: "Left" })
                        ]
                      }
                    ),
                    /* @__PURE__ */ jsxRuntimeExports.jsxs(
                      "label",
                      {
                        className: `cy:flex-1 cy:inline-flex cy:items-center cy:justify-start cy:gap-2 cy:px-3 cy:pt-2 cy:pb-1 cy:rounded cy:border-2 cy:cursor-pointer cy:transition-all ${toolbar.placement.position === "right" ? "cy:border-blue-600 cy:bg-white" : "cy:border-gray-300 cy:bg-white"} ${isDisabled ? "cy:opacity-50 cy:cursor-not-allowed" : "cy:hover:border-blue-400"}`,
                        children: [
                          /* @__PURE__ */ jsxRuntimeExports.jsx(
                            "input",
                            {
                              type: "radio",
                              name: "toolbar-position",
                              value: "right",
                              checked: toolbar.placement.position === "right",
                              onChange: () => setToolbar("placement.position", "right"),
                              disabled: isDisabled,
                              className: "cy:w-4 cy:h-4 cy:text-blue-600 focus:cy:ring-blue-500 cy:flex-shrink-0"
                            }
                          ),
                          /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-[13px] cy:font-bold cy:text-gray-700 cy:leading-[16px] cy:pb-1", children: "Right" })
                        ]
                      }
                    )
                  ] })
                ] }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    Label,
                    {
                      className: `cy:block cy:mb-3 cy:text-sm ${isDisabled ? "cy:text-gray-400" : ""}`,
                      children: "Vertical position"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:gap-4", children: [
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      Slider,
                      {
                        value: [toolbar.placement.verticalOffset],
                        onValueChange: (values) => setToolbar("placement.verticalOffset", values[0]),
                        max: 80,
                        min: 10,
                        step: 1,
                        disabled: isDisabled,
                        className: "cy:flex-1"
                      }
                    ),
                    /* @__PURE__ */ jsxRuntimeExports.jsxs(
                      Select,
                      {
                        value: toolbar.placement.verticalOffset.toString(),
                        onValueChange: (value) => setToolbar("placement.verticalOffset", parseInt(value)),
                        disabled: isDisabled,
                        children: [
                          /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "cy:w-20", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
                          /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: Array.from({ length: 72 }, (_, i) => i + 9).map((val) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: val.toString(), children: val }, val)) })
                        ]
                      }
                    ),
                    /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-sm cy:text-gray-600", children: "%" })
                  ] })
                ] })
              ] }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:relative cy:flex cy:items-center cy:justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
                "div",
                {
                  className: `cy:relative cy:w-[381px] cy:h-[220px] cy:transition-opacity cy:duration-200 ${isDisabled ? "cy:opacity-40 cy:grayscale cy:pointer-events-none" : ""}`,
                  children: [
                    /* @__PURE__ */ jsxRuntimeExports.jsx(BrowserPreview, {}),
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      "div",
                      {
                        className: "cy:absolute cy:transition-all cy:duration-300",
                        style: {
                          [toolbar.placement.position]: "0px",
                          bottom: `${calculatePreviewPosition(toolbar.placement.verticalOffset)}%`,
                          transform: toolbar.placement.position === "left" ? "scaleX(-1)" : "scaleX(1)"
                        },
                        children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarIcon, {})
                      }
                    )
                  ]
                }
              ) })
            ] })
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:pt-4", children: [
            error && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:text-red-500 cy:mb-2 cy:text-sm", children: error }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Button,
              {
                onClick: onSave,
                disabled: isLoading,
                className: "cy:rounded! cy:font-semibold!",
                children: isLoading ? "Saving..." : "Save settings"
              }
            )
          ] })
        ] }) })
      ]
    }
  );
};
const ToolbarSkeletonLoader = () => {
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:max-w-7xl cy:mx-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:bg-white cy:rounded-lg cy:shadow-sm", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:border-b cy:border-gray-200 cy:pb-6 cy:p-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-6 cy:bg-gray-200 cy:rounded cy:w-56 cy:mb-2 cy:animate-pulse" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-100 cy:rounded cy:w-full cy:max-w-2xl cy:animate-pulse" })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:p-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-1 cy:md:grid-cols-2 cy:gap-8", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between cy:pb-4 cy:border-b cy:border-gray-200", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-5 cy:bg-gray-200 cy:rounded cy:w-40 cy:animate-pulse" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-6 cy:w-11 cy:bg-gray-200 cy:rounded-full cy:animate-pulse" })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-5 cy:bg-gray-200 cy:rounded cy:w-32 cy:mb-4 cy:animate-pulse" }),
          [...Array(4)].map((_, i) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:space-x-3", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-4 cy:h-4 cy:bg-gray-200 cy:rounded cy:animate-pulse" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-32 cy:animate-pulse" })
          ] }, i))
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:pt-4 cy:border-t cy:border-gray-200 cy:space-y-4", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-5 cy:bg-gray-200 cy:rounded cy:w-36 cy:mb-4 cy:animate-pulse" }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-32 cy:animate-pulse" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-10 cy:bg-gray-200 cy:rounded cy:w-32 cy:animate-pulse" })
          ] })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:p-4 cy:border cy:border-gray-200 cy:space-y-4", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-5 cy:bg-gray-200 cy:rounded cy:w-36 cy:mb-4 cy:animate-pulse" }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-3", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-24 cy:animate-pulse" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:space-x-4", children: [...Array(2)].map((_, i) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:space-x-2", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-4 cy:h-4 cy:bg-gray-200 cy:rounded-full cy:animate-pulse" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-12 cy:animate-pulse" })
            ] }, i)) })
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-3", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:justify-between cy:items-center", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-28 cy:animate-pulse" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-4 cy:bg-gray-200 cy:rounded cy:w-12 cy:animate-pulse" })
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-2 cy:bg-gray-200 cy:rounded-full cy:w-full cy:animate-pulse" })
          ] })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:pt-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-10 cy:bg-gray-200 cy:rounded cy:w-32 cy:animate-pulse" }) })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:h-5 cy:bg-gray-200 cy:rounded cy:w-24 cy:animate-pulse" }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:relative cy:bg-gray-100 cy:rounded-lg cy:p-4 cy:h-64", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:absolute cy:top-4 cy:left-4 cy:right-4 cy:h-8 cy:bg-gray-200 cy:rounded cy:animate-pulse" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:absolute cy:top-16 cy:left-4 cy:right-4 cy:h-4 cy:bg-gray-200 cy:rounded cy:animate-pulse" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:absolute cy:top-24 cy:left-4 cy:right-4 cy:h-4 cy:bg-gray-200 cy:rounded cy:w-3/4 cy:animate-pulse" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "div",
            {
              className: "cy:absolute cy:right-8 cy:w-10 cy:h-10 cy:bg-gray-300 cy:rounded-full cy:animate-pulse",
              style: { top: "40%" }
            }
          )
        ] })
      ] })
    ] }) })
  ] }) });
};
const Route$2 = createFileRoute("/accessibility-toolbar")({
  component: AccessibilityToolbar
});
function AccessibilityToolbar() {
  const { isLoading, fetchConfig, saveConfig } = useConfigStore();
  const { toast: toast2 } = useToast();
  reactExports.useEffect(() => {
    fetchConfig();
  }, [fetchConfig]);
  const handleSave = reactExports.useCallback(async () => {
    try {
      await saveConfig();
      toast2({
        title: "Settings saved. ",
        description: "Clear the cache if you are using any cache plugins.",
        variant: "success"
      });
    } catch {
      toast2({
        title: "Failed to save settings. ",
        description: "Please try again.",
        variant: "destructive"
      });
    }
  }, [saveConfig, toast2]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarSkeletonLoader, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(AccessibilityToolbarTab, { onSave: handleSave }) });
}
function Skeleton({ className, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "div",
    {
      "data-slot": "skeleton",
      className: cn$1("cy:bg-accent cy:animate-pulse cy:rounded-md", className),
      ...props
    }
  );
}
const getAuditableUrls = (force = false) => api.get({
  path: "/auditable-urls",
  ...force ? { params: { force: true } } : {}
});
function useAuditableUrls() {
  const [data, setData] = reactExports.useState(null);
  const [isLoading, setIsLoading] = reactExports.useState(true);
  const [error, setError] = reactExports.useState(null);
  const isMountedRef = reactExports.useRef(true);
  reactExports.useEffect(() => {
    isMountedRef.current = true;
    return () => {
      isMountedRef.current = false;
    };
  }, []);
  const fetchData = reactExports.useCallback(async (force = false) => {
    if (isMountedRef.current) {
      setIsLoading(true);
      setError(null);
    }
    try {
      const result = await getAuditableUrls(force);
      if (isMountedRef.current) setData(result);
    } catch (err) {
      if (isMountedRef.current) {
        setError(err instanceof Error ? err : new Error(String(err)));
      }
    } finally {
      if (isMountedRef.current) setIsLoading(false);
    }
  }, []);
  reactExports.useEffect(() => {
    fetchData();
  }, [fetchData]);
  return { data, isLoading, error, refetch: fetchData };
}
var U = 1, Y$1 = 0.9, H = 0.8, J = 0.17, p = 0.1, u = 0.999, $ = 0.9999;
var k$1 = 0.99, m = /[\\\/_+.#"@\[\(\{&]/, B$1 = /[\\\/_+.#"@\[\(\{&]/g, K$1 = /[\s-]/, X = /[\s-]/g;
function G(_, C, h, P2, A, f, O) {
  if (f === C.length) return A === _.length ? U : k$1;
  var T2 = `${A},${f}`;
  if (O[T2] !== void 0) return O[T2];
  for (var L2 = P2.charAt(f), c = h.indexOf(L2, A), S = 0, E, N2, R, M; c >= 0; ) E = G(_, C, h, P2, c + 1, f + 1, O), E > S && (c === A ? E *= U : m.test(_.charAt(c - 1)) ? (E *= H, R = _.slice(A, c - 1).match(B$1), R && A > 0 && (E *= Math.pow(u, R.length))) : K$1.test(_.charAt(c - 1)) ? (E *= Y$1, M = _.slice(A, c - 1).match(X), M && A > 0 && (E *= Math.pow(u, M.length))) : (E *= J, A > 0 && (E *= Math.pow(u, c - A))), _.charAt(c) !== C.charAt(f) && (E *= $)), (E < p && h.charAt(c - 1) === P2.charAt(f + 1) || P2.charAt(f + 1) === P2.charAt(f) && h.charAt(c - 1) !== P2.charAt(f)) && (N2 = G(_, C, h, P2, c + 1, f + 2, O), N2 * p > E && (E = N2 * p)), E > S && (S = E), c = h.indexOf(L2, c + 1);
  return O[T2] = S, S;
}
function D(_) {
  return _.toLowerCase().replace(X, " ");
}
function W(_, C, h) {
  return _ = h && h.length > 0 ? `${_ + " " + h.join(" ")}` : _, G(_, C, D(_), D(C), 0, 0, {});
}
var DIALOG_NAME = "Dialog";
var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
var Dialog = (props) => {
  const {
    __scopeDialog,
    children,
    open: openProp,
    defaultOpen,
    onOpenChange,
    modal = true
  } = props;
  const triggerRef = reactExports.useRef(null);
  const contentRef = reactExports.useRef(null);
  const [open, setOpen] = useControllableState({
    prop: openProp,
    defaultProp: defaultOpen ?? false,
    onChange: onOpenChange,
    caller: DIALOG_NAME
  });
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    DialogProvider,
    {
      scope: __scopeDialog,
      triggerRef,
      contentRef,
      contentId: useId(),
      titleId: useId(),
      descriptionId: useId(),
      open,
      onOpenChange: setOpen,
      onOpenToggle: reactExports.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
      modal,
      children
    }
  );
};
Dialog.displayName = DIALOG_NAME;
var TRIGGER_NAME$3 = "DialogTrigger";
var DialogTrigger = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeDialog, ...triggerProps } = props;
    const context = useDialogContext(TRIGGER_NAME$3, __scopeDialog);
    const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        type: "button",
        "aria-haspopup": "dialog",
        "aria-expanded": context.open,
        "aria-controls": context.contentId,
        "data-state": getState$3(context.open),
        ...triggerProps,
        ref: composedTriggerRef,
        onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
      }
    );
  }
);
DialogTrigger.displayName = TRIGGER_NAME$3;
var PORTAL_NAME$2 = "DialogPortal";
var [PortalProvider$2, usePortalContext$2] = createDialogContext(PORTAL_NAME$2, {
  forceMount: void 0
});
var DialogPortal = (props) => {
  const { __scopeDialog, forceMount, children, container } = props;
  const context = useDialogContext(PORTAL_NAME$2, __scopeDialog);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(PortalProvider$2, { scope: __scopeDialog, forceMount, children: reactExports.Children.map(children, (child) => /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$4, { asChild: true, container, children: child }) })) });
};
DialogPortal.displayName = PORTAL_NAME$2;
var OVERLAY_NAME = "DialogOverlay";
var DialogOverlay = reactExports.forwardRef(
  (props, forwardedRef) => {
    const portalContext = usePortalContext$2(OVERLAY_NAME, props.__scopeDialog);
    const { forceMount = portalContext.forceMount, ...overlayProps } = props;
    const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
    return context.modal ? /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
  }
);
DialogOverlay.displayName = OVERLAY_NAME;
var Slot$1 = /* @__PURE__ */ createSlot("DialogOverlay.RemoveScroll");
var DialogOverlayImpl = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeDialog, ...overlayProps } = props;
    const context = useDialogContext(OVERLAY_NAME, __scopeDialog);
    return (
      // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
      // ie. when `Overlay` and `Content` are siblings
      /* @__PURE__ */ jsxRuntimeExports.jsx(ReactRemoveScroll, { as: Slot$1, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        Primitive.div,
        {
          "data-state": getState$3(context.open),
          ...overlayProps,
          ref: forwardedRef,
          style: { pointerEvents: "auto", ...overlayProps.style }
        }
      ) })
    );
  }
);
var CONTENT_NAME$3 = "DialogContent";
var DialogContent = reactExports.forwardRef(
  (props, forwardedRef) => {
    const portalContext = usePortalContext$2(CONTENT_NAME$3, props.__scopeDialog);
    const { forceMount = portalContext.forceMount, ...contentProps } = props;
    const context = useDialogContext(CONTENT_NAME$3, props.__scopeDialog);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
  }
);
DialogContent.displayName = CONTENT_NAME$3;
var DialogContentModal = reactExports.forwardRef(
  (props, forwardedRef) => {
    const context = useDialogContext(CONTENT_NAME$3, props.__scopeDialog);
    const contentRef = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
    reactExports.useEffect(() => {
      const content = contentRef.current;
      if (content) return hideOthers(content);
    }, []);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      DialogContentImpl,
      {
        ...props,
        ref: composedRefs,
        trapFocus: context.open,
        disableOutsidePointerEvents: true,
        onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
          var _a2;
          event.preventDefault();
          (_a2 = context.triggerRef.current) == null ? void 0 : _a2.focus();
        }),
        onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {
          const originalEvent = event.detail.originalEvent;
          const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
          const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
          if (isRightClick) event.preventDefault();
        }),
        onFocusOutside: composeEventHandlers(
          props.onFocusOutside,
          (event) => event.preventDefault()
        )
      }
    );
  }
);
var DialogContentNonModal = reactExports.forwardRef(
  (props, forwardedRef) => {
    const context = useDialogContext(CONTENT_NAME$3, props.__scopeDialog);
    const hasInteractedOutsideRef = reactExports.useRef(false);
    const hasPointerDownOutsideRef = reactExports.useRef(false);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      DialogContentImpl,
      {
        ...props,
        ref: forwardedRef,
        trapFocus: false,
        disableOutsidePointerEvents: false,
        onCloseAutoFocus: (event) => {
          var _a2, _b2;
          (_a2 = props.onCloseAutoFocus) == null ? void 0 : _a2.call(props, event);
          if (!event.defaultPrevented) {
            if (!hasInteractedOutsideRef.current) (_b2 = context.triggerRef.current) == null ? void 0 : _b2.focus();
            event.preventDefault();
          }
          hasInteractedOutsideRef.current = false;
          hasPointerDownOutsideRef.current = false;
        },
        onInteractOutside: (event) => {
          var _a2, _b2;
          (_a2 = props.onInteractOutside) == null ? void 0 : _a2.call(props, event);
          if (!event.defaultPrevented) {
            hasInteractedOutsideRef.current = true;
            if (event.detail.originalEvent.type === "pointerdown") {
              hasPointerDownOutsideRef.current = true;
            }
          }
          const target = event.target;
          const targetIsTrigger = (_b2 = context.triggerRef.current) == null ? void 0 : _b2.contains(target);
          if (targetIsTrigger) event.preventDefault();
          if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
            event.preventDefault();
          }
        }
      }
    );
  }
);
var DialogContentImpl = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;
    const context = useDialogContext(CONTENT_NAME$3, __scopeDialog);
    const contentRef = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, contentRef);
    useFocusGuards();
    return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        FocusScope,
        {
          asChild: true,
          loop: true,
          trapped: trapFocus,
          onMountAutoFocus: onOpenAutoFocus,
          onUnmountAutoFocus: onCloseAutoFocus,
          children: /* @__PURE__ */ jsxRuntimeExports.jsx(
            DismissableLayer,
            {
              role: "dialog",
              id: context.contentId,
              "aria-describedby": context.descriptionId,
              "aria-labelledby": context.titleId,
              "data-state": getState$3(context.open),
              ...contentProps,
              ref: composedRefs,
              onDismiss: () => context.onOpenChange(false)
            }
          )
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(TitleWarning, { titleId: context.titleId }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
      ] })
    ] });
  }
);
var TITLE_NAME = "DialogTitle";
var DialogTitle = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeDialog, ...titleProps } = props;
    const context = useDialogContext(TITLE_NAME, __scopeDialog);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
  }
);
DialogTitle.displayName = TITLE_NAME;
var DESCRIPTION_NAME = "DialogDescription";
var DialogDescription = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeDialog, ...descriptionProps } = props;
    const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
  }
);
DialogDescription.displayName = DESCRIPTION_NAME;
var CLOSE_NAME$1 = "DialogClose";
var DialogClose = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeDialog, ...closeProps } = props;
    const context = useDialogContext(CLOSE_NAME$1, __scopeDialog);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        type: "button",
        ...closeProps,
        ref: forwardedRef,
        onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))
      }
    );
  }
);
DialogClose.displayName = CLOSE_NAME$1;
function getState$3(open) {
  return open ? "open" : "closed";
}
var TITLE_WARNING_NAME = "DialogTitleWarning";
var [WarningProvider, useWarningContext] = createContext2(TITLE_WARNING_NAME, {
  contentName: CONTENT_NAME$3,
  titleName: TITLE_NAME,
  docsSlug: "dialog"
});
var TitleWarning = ({ titleId }) => {
  const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);
  const MESSAGE = `\`${titleWarningContext.contentName}\` requires a \`${titleWarningContext.titleName}\` for the component to be accessible for screen reader users.

If you want to hide the \`${titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component.

For more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;
  reactExports.useEffect(() => {
    if (titleId) {
      const hasTitle = document.getElementById(titleId);
      if (!hasTitle) console.error(MESSAGE);
    }
  }, [MESSAGE, titleId]);
  return null;
};
var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning";
var DescriptionWarning = ({ contentRef, descriptionId }) => {
  const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);
  const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${descriptionWarningContext.contentName}}.`;
  reactExports.useEffect(() => {
    var _a2;
    const describedById = (_a2 = contentRef.current) == null ? void 0 : _a2.getAttribute("aria-describedby");
    if (descriptionId && describedById) {
      const hasDescription = document.getElementById(descriptionId);
      if (!hasDescription) console.warn(MESSAGE);
    }
  }, [MESSAGE, contentRef, descriptionId]);
  return null;
};
var Root$2 = Dialog;
var Portal$2 = DialogPortal;
var Overlay = DialogOverlay;
var Content = DialogContent;
var N = '[cmdk-group=""]', Y = '[cmdk-group-items=""]', be = '[cmdk-group-heading=""]', le = '[cmdk-item=""]', ce = `${le}:not([aria-disabled="true"])`, Z = "cmdk-item-select", T = "data-value", Re = (r2, o, n) => W(r2, o, n), ue = reactExports.createContext(void 0), K = () => reactExports.useContext(ue), de = reactExports.createContext(void 0), ee = () => reactExports.useContext(de), fe = reactExports.createContext(void 0), me = reactExports.forwardRef((r2, o) => {
  let n = L(() => {
    var e, a;
    return { search: "", value: (a = (e = r2.value) != null ? e : r2.defaultValue) != null ? a : "", selectedItemId: void 0, filtered: { count: 0, items: /* @__PURE__ */ new Map(), groups: /* @__PURE__ */ new Set() } };
  }), u2 = L(() => /* @__PURE__ */ new Set()), c = L(() => /* @__PURE__ */ new Map()), d = L(() => /* @__PURE__ */ new Map()), f = L(() => /* @__PURE__ */ new Set()), p2 = pe(r2), { label: b, children: m2, value: R, onValueChange: x, filter: C, shouldFilter: S, loop: A, disablePointerSelection: ge = false, vimBindings: j = true, ...O } = r2, $2 = useId(), q = useId(), _ = useId(), I = reactExports.useRef(null), v = ke();
  k(() => {
    if (R !== void 0) {
      let e = R.trim();
      n.current.value = e, E.emit();
    }
  }, [R]), k(() => {
    v(6, ne);
  }, []);
  let E = reactExports.useMemo(() => ({ subscribe: (e) => (f.current.add(e), () => f.current.delete(e)), snapshot: () => n.current, setState: (e, a, s) => {
    var i, l, g, y;
    if (!Object.is(n.current[e], a)) {
      if (n.current[e] = a, e === "search") J2(), z(), v(1, W2);
      else if (e === "value") {
        if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) {
          let h = document.getElementById(_);
          h ? h.focus() : (i = document.getElementById($2)) == null || i.focus();
        }
        if (v(7, () => {
          var h;
          n.current.selectedItemId = (h = M()) == null ? void 0 : h.id, E.emit();
        }), s || v(5, ne), ((l = p2.current) == null ? void 0 : l.value) !== void 0) {
          let h = a != null ? a : "";
          (y = (g = p2.current).onValueChange) == null || y.call(g, h);
          return;
        }
      }
      E.emit();
    }
  }, emit: () => {
    f.current.forEach((e) => e());
  } }), []), U2 = reactExports.useMemo(() => ({ value: (e, a, s) => {
    var i;
    a !== ((i = d.current.get(e)) == null ? void 0 : i.value) && (d.current.set(e, { value: a, keywords: s }), n.current.filtered.items.set(e, te(a, s)), v(2, () => {
      z(), E.emit();
    }));
  }, item: (e, a) => (u2.current.add(e), a && (c.current.has(a) ? c.current.get(a).add(e) : c.current.set(a, /* @__PURE__ */ new Set([e]))), v(3, () => {
    J2(), z(), n.current.value || W2(), E.emit();
  }), () => {
    d.current.delete(e), u2.current.delete(e), n.current.filtered.items.delete(e);
    let s = M();
    v(4, () => {
      J2(), (s == null ? void 0 : s.getAttribute("id")) === e && W2(), E.emit();
    });
  }), group: (e) => (c.current.has(e) || c.current.set(e, /* @__PURE__ */ new Set()), () => {
    d.current.delete(e), c.current.delete(e);
  }), filter: () => p2.current.shouldFilter, label: b || r2["aria-label"], getDisablePointerSelection: () => p2.current.disablePointerSelection, listId: $2, inputId: _, labelId: q, listInnerRef: I }), []);
  function te(e, a) {
    var i, l;
    let s = (l = (i = p2.current) == null ? void 0 : i.filter) != null ? l : Re;
    return e ? s(e, n.current.search, a) : 0;
  }
  function z() {
    if (!n.current.search || p2.current.shouldFilter === false) return;
    let e = n.current.filtered.items, a = [];
    n.current.filtered.groups.forEach((i) => {
      let l = c.current.get(i), g = 0;
      l.forEach((y) => {
        let h = e.get(y);
        g = Math.max(h, g);
      }), a.push([i, g]);
    });
    let s = I.current;
    V().sort((i, l) => {
      var h, F;
      let g = i.getAttribute("id"), y = l.getAttribute("id");
      return ((h = e.get(y)) != null ? h : 0) - ((F = e.get(g)) != null ? F : 0);
    }).forEach((i) => {
      let l = i.closest(Y);
      l ? l.appendChild(i.parentElement === l ? i : i.closest(`${Y} > *`)) : s.appendChild(i.parentElement === s ? i : i.closest(`${Y} > *`));
    }), a.sort((i, l) => l[1] - i[1]).forEach((i) => {
      var g;
      let l = (g = I.current) == null ? void 0 : g.querySelector(`${N}[${T}="${encodeURIComponent(i[0])}"]`);
      l == null || l.parentElement.appendChild(l);
    });
  }
  function W2() {
    let e = V().find((s) => s.getAttribute("aria-disabled") !== "true"), a = e == null ? void 0 : e.getAttribute(T);
    E.setState("value", a || void 0);
  }
  function J2() {
    var a, s, i, l;
    if (!n.current.search || p2.current.shouldFilter === false) {
      n.current.filtered.count = u2.current.size;
      return;
    }
    n.current.filtered.groups = /* @__PURE__ */ new Set();
    let e = 0;
    for (let g of u2.current) {
      let y = (s = (a = d.current.get(g)) == null ? void 0 : a.value) != null ? s : "", h = (l = (i = d.current.get(g)) == null ? void 0 : i.keywords) != null ? l : [], F = te(y, h);
      n.current.filtered.items.set(g, F), F > 0 && e++;
    }
    for (let [g, y] of c.current) for (let h of y) if (n.current.filtered.items.get(h) > 0) {
      n.current.filtered.groups.add(g);
      break;
    }
    n.current.filtered.count = e;
  }
  function ne() {
    var a, s, i;
    let e = M();
    e && (((a = e.parentElement) == null ? void 0 : a.firstChild) === e && ((i = (s = e.closest(N)) == null ? void 0 : s.querySelector(be)) == null || i.scrollIntoView({ block: "nearest" })), e.scrollIntoView({ block: "nearest" }));
  }
  function M() {
    var e;
    return (e = I.current) == null ? void 0 : e.querySelector(`${le}[aria-selected="true"]`);
  }
  function V() {
    var e;
    return Array.from(((e = I.current) == null ? void 0 : e.querySelectorAll(ce)) || []);
  }
  function X2(e) {
    let s = V()[e];
    s && E.setState("value", s.getAttribute(T));
  }
  function Q(e) {
    var g;
    let a = M(), s = V(), i = s.findIndex((y) => y === a), l = s[i + e];
    (g = p2.current) != null && g.loop && (l = i + e < 0 ? s[s.length - 1] : i + e === s.length ? s[0] : s[i + e]), l && E.setState("value", l.getAttribute(T));
  }
  function re(e) {
    let a = M(), s = a == null ? void 0 : a.closest(N), i;
    for (; s && !i; ) s = e > 0 ? we(s, N) : De(s, N), i = s == null ? void 0 : s.querySelector(ce);
    i ? E.setState("value", i.getAttribute(T)) : Q(e);
  }
  let oe = () => X2(V().length - 1), ie = (e) => {
    e.preventDefault(), e.metaKey ? oe() : e.altKey ? re(1) : Q(1);
  }, se = (e) => {
    e.preventDefault(), e.metaKey ? X2(0) : e.altKey ? re(-1) : Q(-1);
  };
  return reactExports.createElement(Primitive.div, { ref: o, tabIndex: -1, ...O, "cmdk-root": "", onKeyDown: (e) => {
    var s;
    (s = O.onKeyDown) == null || s.call(O, e);
    let a = e.nativeEvent.isComposing || e.keyCode === 229;
    if (!(e.defaultPrevented || a)) switch (e.key) {
      case "n":
      case "j": {
        j && e.ctrlKey && ie(e);
        break;
      }
      case "ArrowDown": {
        ie(e);
        break;
      }
      case "p":
      case "k": {
        j && e.ctrlKey && se(e);
        break;
      }
      case "ArrowUp": {
        se(e);
        break;
      }
      case "Home": {
        e.preventDefault(), X2(0);
        break;
      }
      case "End": {
        e.preventDefault(), oe();
        break;
      }
      case "Enter": {
        e.preventDefault();
        let i = M();
        if (i) {
          let l = new Event(Z);
          i.dispatchEvent(l);
        }
      }
    }
  } }, reactExports.createElement("label", { "cmdk-label": "", htmlFor: U2.inputId, id: U2.labelId, style: Te }, b), B(r2, (e) => reactExports.createElement(de.Provider, { value: E }, reactExports.createElement(ue.Provider, { value: U2 }, e))));
}), he = reactExports.forwardRef((r2, o) => {
  var _, I;
  let n = useId(), u2 = reactExports.useRef(null), c = reactExports.useContext(fe), d = K(), f = pe(r2), p2 = (I = (_ = f.current) == null ? void 0 : _.forceMount) != null ? I : c == null ? void 0 : c.forceMount;
  k(() => {
    if (!p2) return d.item(n, c == null ? void 0 : c.id);
  }, [p2]);
  let b = ve(n, u2, [r2.value, r2.children, u2], r2.keywords), m2 = ee(), R = P((v) => v.value && v.value === b.current), x = P((v) => p2 || d.filter() === false ? true : v.search ? v.filtered.items.get(n) > 0 : true);
  reactExports.useEffect(() => {
    let v = u2.current;
    if (!(!v || r2.disabled)) return v.addEventListener(Z, C), () => v.removeEventListener(Z, C);
  }, [x, r2.onSelect, r2.disabled]);
  function C() {
    var v, E;
    S(), (E = (v = f.current).onSelect) == null || E.call(v, b.current);
  }
  function S() {
    m2.setState("value", b.current, true);
  }
  if (!x) return null;
  let { disabled: A, value: ge, onSelect: j, forceMount: O, keywords: $2, ...q } = r2;
  return reactExports.createElement(Primitive.div, { ref: composeRefs(u2, o), ...q, id: n, "cmdk-item": "", role: "option", "aria-disabled": !!A, "aria-selected": !!R, "data-disabled": !!A, "data-selected": !!R, onPointerMove: A || d.getDisablePointerSelection() ? void 0 : S, onClick: A ? void 0 : C }, r2.children);
}), Ee = reactExports.forwardRef((r2, o) => {
  let { heading: n, children: u2, forceMount: c, ...d } = r2, f = useId(), p2 = reactExports.useRef(null), b = reactExports.useRef(null), m2 = useId(), R = K(), x = P((S) => c || R.filter() === false ? true : S.search ? S.filtered.groups.has(f) : true);
  k(() => R.group(f), []), ve(f, p2, [r2.value, r2.heading, b]);
  let C = reactExports.useMemo(() => ({ id: f, forceMount: c }), [c]);
  return reactExports.createElement(Primitive.div, { ref: composeRefs(p2, o), ...d, "cmdk-group": "", role: "presentation", hidden: x ? void 0 : true }, n && reactExports.createElement("div", { ref: b, "cmdk-group-heading": "", "aria-hidden": true, id: m2 }, n), B(r2, (S) => reactExports.createElement("div", { "cmdk-group-items": "", role: "group", "aria-labelledby": n ? m2 : void 0 }, reactExports.createElement(fe.Provider, { value: C }, S))));
}), ye = reactExports.forwardRef((r2, o) => {
  let { alwaysRender: n, ...u2 } = r2, c = reactExports.useRef(null), d = P((f) => !f.search);
  return !n && !d ? null : reactExports.createElement(Primitive.div, { ref: composeRefs(c, o), ...u2, "cmdk-separator": "", role: "separator" });
}), Se = reactExports.forwardRef((r2, o) => {
  let { onValueChange: n, ...u2 } = r2, c = r2.value != null, d = ee(), f = P((m2) => m2.search), p2 = P((m2) => m2.selectedItemId), b = K();
  return reactExports.useEffect(() => {
    r2.value != null && d.setState("search", r2.value);
  }, [r2.value]), reactExports.createElement(Primitive.input, { ref: o, ...u2, "cmdk-input": "", autoComplete: "off", autoCorrect: "off", spellCheck: false, "aria-autocomplete": "list", role: "combobox", "aria-expanded": true, "aria-controls": b.listId, "aria-labelledby": b.labelId, "aria-activedescendant": p2, id: b.inputId, type: "text", value: c ? r2.value : f, onChange: (m2) => {
    c || d.setState("search", m2.target.value), n == null || n(m2.target.value);
  } });
}), Ce = reactExports.forwardRef((r2, o) => {
  let { children: n, label: u2 = "Suggestions", ...c } = r2, d = reactExports.useRef(null), f = reactExports.useRef(null), p2 = P((m2) => m2.selectedItemId), b = K();
  return reactExports.useEffect(() => {
    if (f.current && d.current) {
      let m2 = f.current, R = d.current, x, C = new ResizeObserver(() => {
        x = requestAnimationFrame(() => {
          let S = m2.offsetHeight;
          R.style.setProperty("--cmdk-list-height", S.toFixed(1) + "px");
        });
      });
      return C.observe(m2), () => {
        cancelAnimationFrame(x), C.unobserve(m2);
      };
    }
  }, []), reactExports.createElement(Primitive.div, { ref: composeRefs(d, o), ...c, "cmdk-list": "", role: "listbox", tabIndex: -1, "aria-activedescendant": p2, "aria-label": u2, id: b.listId }, B(r2, (m2) => reactExports.createElement("div", { ref: composeRefs(f, b.listInnerRef), "cmdk-list-sizer": "" }, m2)));
}), xe = reactExports.forwardRef((r2, o) => {
  let { open: n, onOpenChange: u2, overlayClassName: c, contentClassName: d, container: f, ...p2 } = r2;
  return reactExports.createElement(Root$2, { open: n, onOpenChange: u2 }, reactExports.createElement(Portal$2, { container: f }, reactExports.createElement(Overlay, { "cmdk-overlay": "", className: c }), reactExports.createElement(Content, { "aria-label": r2.label, "cmdk-dialog": "", className: d }, reactExports.createElement(me, { ref: o, ...p2 }))));
}), Ie = reactExports.forwardRef((r2, o) => P((u2) => u2.filtered.count === 0) ? reactExports.createElement(Primitive.div, { ref: o, ...r2, "cmdk-empty": "", role: "presentation" }) : null), Pe = reactExports.forwardRef((r2, o) => {
  let { progress: n, children: u2, label: c = "Loading...", ...d } = r2;
  return reactExports.createElement(Primitive.div, { ref: o, ...d, "cmdk-loading": "", role: "progressbar", "aria-valuenow": n, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": c }, B(r2, (f) => reactExports.createElement("div", { "aria-hidden": true }, f)));
}), _e = Object.assign(me, { List: Ce, Item: he, Input: Se, Group: Ee, Separator: ye, Dialog: xe, Empty: Ie, Loading: Pe });
function we(r2, o) {
  let n = r2.nextElementSibling;
  for (; n; ) {
    if (n.matches(o)) return n;
    n = n.nextElementSibling;
  }
}
function De(r2, o) {
  let n = r2.previousElementSibling;
  for (; n; ) {
    if (n.matches(o)) return n;
    n = n.previousElementSibling;
  }
}
function pe(r2) {
  let o = reactExports.useRef(r2);
  return k(() => {
    o.current = r2;
  }), o;
}
var k = typeof window == "undefined" ? reactExports.useEffect : reactExports.useLayoutEffect;
function L(r2) {
  let o = reactExports.useRef();
  return o.current === void 0 && (o.current = r2()), o;
}
function P(r2) {
  let o = ee(), n = () => r2(o.snapshot());
  return reactExports.useSyncExternalStore(o.subscribe, n, n);
}
function ve(r2, o, n, u2 = []) {
  let c = reactExports.useRef(), d = K();
  return k(() => {
    var b;
    let f = (() => {
      var m2;
      for (let R of n) {
        if (typeof R == "string") return R.trim();
        if (typeof R == "object" && "current" in R) return R.current ? (m2 = R.current.textContent) == null ? void 0 : m2.trim() : c.current;
      }
    })(), p2 = u2.map((m2) => m2.trim());
    d.value(r2, f, p2), (b = o.current) == null || b.setAttribute(T, f), c.current = f;
  }), c;
}
var ke = () => {
  let [r2, o] = reactExports.useState(), n = L(() => /* @__PURE__ */ new Map());
  return k(() => {
    n.current.forEach((u2) => u2()), n.current = /* @__PURE__ */ new Map();
  }, [r2]), (u2, c) => {
    n.current.set(u2, c), o({});
  };
};
function Me(r2) {
  let o = r2.type;
  return typeof o == "function" ? o(r2.props) : "render" in o ? o.render(r2.props) : r2;
}
function B({ asChild: r2, children: o }, n) {
  return r2 && reactExports.isValidElement(o) ? reactExports.cloneElement(Me(o), { ref: o.ref }, n(o.props.children)) : n(o);
}
var Te = { position: "absolute", width: "1px", height: "1px", padding: "0", margin: "-1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0" };
function Command({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    _e,
    {
      "data-slot": "command",
      className: cn$1(
        "cy:bg-popover cy:text-popover-foreground cy:flex cy:h-full cy:w-full cy:flex-col cy:overflow-hidden cy:rounded-md",
        className
      ),
      ...props
    }
  );
}
function CommandInput({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "div",
    {
      "data-slot": "command-input-wrapper",
      className: "cy:flex cy:h-9 cy:items-center cy:gap-2 cy:border-b cy:px-3",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "cy:size-4 cy:shrink-0 cy:opacity-50" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          _e.Input,
          {
            "data-slot": "command-input",
            className: cn$1(
              "cy:placeholder:text-muted-foreground cy:flex cy:h-10 cy:w-full cy:rounded-md cy:bg-transparent cy:py-3 cy:text-sm cy:outline-hidden cy:disabled:cursor-not-allowed cy:disabled:opacity-50",
              className
            ),
            ...props
          }
        )
      ]
    }
  );
}
function CommandList({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    _e.List,
    {
      "data-slot": "command-list",
      className: cn$1(
        "cy:max-h-[300px] cy:scroll-py-1 cy:overflow-x-hidden cy:overflow-y-auto",
        className
      ),
      ...props
    }
  );
}
function CommandEmpty({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    _e.Empty,
    {
      "data-slot": "command-empty",
      className: "cy:py-6 cy:text-center cy:text-sm",
      ...props
    }
  );
}
function CommandGroup({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    _e.Group,
    {
      "data-slot": "command-group",
      className: cn$1(
        "cy:text-foreground cy:[&_[cmdk-group-heading]]:text-muted-foreground cy:overflow-hidden cy:p-1 cy:[&_[cmdk-group-heading]]:px-2 cy:[&_[cmdk-group-heading]]:py-1.5 cy:[&_[cmdk-group-heading]]:text-xs cy:[&_[cmdk-group-heading]]:font-medium",
        className
      ),
      ...props
    }
  );
}
function CommandItem({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    _e.Item,
    {
      "data-slot": "command-item",
      className: cn$1(
        "cy:data-[selected=true]:bg-accent cy:data-[selected=true]:text-accent-foreground cy:[&_svg:not([class*=text-])]:text-muted-foreground cy:relative cy:flex cy:cursor-default cy:items-center cy:gap-2 cy:rounded-sm cy:px-2 cy:py-1.5 cy:text-sm cy:outline-hidden cy:select-none cy:data-[disabled=true]:pointer-events-none cy:data-[disabled=true]:opacity-50 cy:[&_svg]:pointer-events-none cy:[&_svg]:shrink-0 cy:[&_svg:not([class*=size-])]:size-4",
        className
      ),
      ...props
    }
  );
}
var POPOVER_NAME = "Popover";
var [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [
  createPopperScope
]);
var usePopperScope$1 = createPopperScope();
var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
var Popover$1 = (props) => {
  const {
    __scopePopover,
    children,
    open: openProp,
    defaultOpen,
    onOpenChange,
    modal = false
  } = props;
  const popperScope = usePopperScope$1(__scopePopover);
  const triggerRef = reactExports.useRef(null);
  const [hasCustomAnchor, setHasCustomAnchor] = reactExports.useState(false);
  const [open, setOpen] = useControllableState({
    prop: openProp,
    defaultProp: defaultOpen ?? false,
    onChange: onOpenChange,
    caller: POPOVER_NAME
  });
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Root2$3, { ...popperScope, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
    PopoverProvider,
    {
      scope: __scopePopover,
      contentId: useId(),
      triggerRef,
      open,
      onOpenChange: setOpen,
      onOpenToggle: reactExports.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
      hasCustomAnchor,
      onCustomAnchorAdd: reactExports.useCallback(() => setHasCustomAnchor(true), []),
      onCustomAnchorRemove: reactExports.useCallback(() => setHasCustomAnchor(false), []),
      modal,
      children
    }
  ) });
};
Popover$1.displayName = POPOVER_NAME;
var ANCHOR_NAME = "PopoverAnchor";
var PopoverAnchor = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopePopover, ...anchorProps } = props;
    const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
    const popperScope = usePopperScope$1(__scopePopover);
    const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
    reactExports.useEffect(() => {
      onCustomAnchorAdd();
      return () => onCustomAnchorRemove();
    }, [onCustomAnchorAdd, onCustomAnchorRemove]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
  }
);
PopoverAnchor.displayName = ANCHOR_NAME;
var TRIGGER_NAME$2 = "PopoverTrigger";
var PopoverTrigger$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopePopover, ...triggerProps } = props;
    const context = usePopoverContext(TRIGGER_NAME$2, __scopePopover);
    const popperScope = usePopperScope$1(__scopePopover);
    const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
    const trigger = /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        type: "button",
        "aria-haspopup": "dialog",
        "aria-expanded": context.open,
        "aria-controls": context.contentId,
        "data-state": getState$2(context.open),
        ...triggerProps,
        ref: composedTriggerRef,
        onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
      }
    );
    return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsxRuntimeExports.jsx(Anchor, { asChild: true, ...popperScope, children: trigger });
  }
);
PopoverTrigger$1.displayName = TRIGGER_NAME$2;
var PORTAL_NAME$1 = "PopoverPortal";
var [PortalProvider$1, usePortalContext$1] = createPopoverContext(PORTAL_NAME$1, {
  forceMount: void 0
});
var PopoverPortal = (props) => {
  const { __scopePopover, forceMount, children, container } = props;
  const context = usePopoverContext(PORTAL_NAME$1, __scopePopover);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(PortalProvider$1, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$4, { asChild: true, container, children }) }) });
};
PopoverPortal.displayName = PORTAL_NAME$1;
var CONTENT_NAME$2 = "PopoverContent";
var PopoverContent$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const portalContext = usePortalContext$1(CONTENT_NAME$2, props.__scopePopover);
    const { forceMount = portalContext.forceMount, ...contentProps } = props;
    const context = usePopoverContext(CONTENT_NAME$2, props.__scopePopover);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsxRuntimeExports.jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsxRuntimeExports.jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
  }
);
PopoverContent$1.displayName = CONTENT_NAME$2;
var Slot = /* @__PURE__ */ createSlot("PopoverContent.RemoveScroll");
var PopoverContentModal = reactExports.forwardRef(
  (props, forwardedRef) => {
    const context = usePopoverContext(CONTENT_NAME$2, props.__scopePopover);
    const contentRef = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, contentRef);
    const isRightClickOutsideRef = reactExports.useRef(false);
    reactExports.useEffect(() => {
      const content = contentRef.current;
      if (content) return hideOthers(content);
    }, []);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(ReactRemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      PopoverContentImpl,
      {
        ...props,
        ref: composedRefs,
        trapFocus: context.open,
        disableOutsidePointerEvents: true,
        onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
          var _a2;
          event.preventDefault();
          if (!isRightClickOutsideRef.current) (_a2 = context.triggerRef.current) == null ? void 0 : _a2.focus();
        }),
        onPointerDownOutside: composeEventHandlers(
          props.onPointerDownOutside,
          (event) => {
            const originalEvent = event.detail.originalEvent;
            const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
            const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
            isRightClickOutsideRef.current = isRightClick;
          },
          { checkForDefaultPrevented: false }
        ),
        onFocusOutside: composeEventHandlers(
          props.onFocusOutside,
          (event) => event.preventDefault(),
          { checkForDefaultPrevented: false }
        )
      }
    ) });
  }
);
var PopoverContentNonModal = reactExports.forwardRef(
  (props, forwardedRef) => {
    const context = usePopoverContext(CONTENT_NAME$2, props.__scopePopover);
    const hasInteractedOutsideRef = reactExports.useRef(false);
    const hasPointerDownOutsideRef = reactExports.useRef(false);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      PopoverContentImpl,
      {
        ...props,
        ref: forwardedRef,
        trapFocus: false,
        disableOutsidePointerEvents: false,
        onCloseAutoFocus: (event) => {
          var _a2, _b2;
          (_a2 = props.onCloseAutoFocus) == null ? void 0 : _a2.call(props, event);
          if (!event.defaultPrevented) {
            if (!hasInteractedOutsideRef.current) (_b2 = context.triggerRef.current) == null ? void 0 : _b2.focus();
            event.preventDefault();
          }
          hasInteractedOutsideRef.current = false;
          hasPointerDownOutsideRef.current = false;
        },
        onInteractOutside: (event) => {
          var _a2, _b2;
          (_a2 = props.onInteractOutside) == null ? void 0 : _a2.call(props, event);
          if (!event.defaultPrevented) {
            hasInteractedOutsideRef.current = true;
            if (event.detail.originalEvent.type === "pointerdown") {
              hasPointerDownOutsideRef.current = true;
            }
          }
          const target = event.target;
          const targetIsTrigger = (_b2 = context.triggerRef.current) == null ? void 0 : _b2.contains(target);
          if (targetIsTrigger) event.preventDefault();
          if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
            event.preventDefault();
          }
        }
      }
    );
  }
);
var PopoverContentImpl = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopePopover,
      trapFocus,
      onOpenAutoFocus,
      onCloseAutoFocus,
      disableOutsidePointerEvents,
      onEscapeKeyDown,
      onPointerDownOutside,
      onFocusOutside,
      onInteractOutside,
      ...contentProps
    } = props;
    const context = usePopoverContext(CONTENT_NAME$2, __scopePopover);
    const popperScope = usePopperScope$1(__scopePopover);
    useFocusGuards();
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      FocusScope,
      {
        asChild: true,
        loop: true,
        trapped: trapFocus,
        onMountAutoFocus: onOpenAutoFocus,
        onUnmountAutoFocus: onCloseAutoFocus,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          DismissableLayer,
          {
            asChild: true,
            disableOutsidePointerEvents,
            onInteractOutside,
            onEscapeKeyDown,
            onPointerDownOutside,
            onFocusOutside,
            onDismiss: () => context.onOpenChange(false),
            children: /* @__PURE__ */ jsxRuntimeExports.jsx(
              Content$1,
              {
                "data-state": getState$2(context.open),
                role: "dialog",
                id: context.contentId,
                ...popperScope,
                ...contentProps,
                ref: forwardedRef,
                style: {
                  ...contentProps.style,
                  // re-namespace exposed content custom properties
                  ...{
                    "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
                    "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
                    "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
                    "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
                    "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
                  }
                }
              }
            )
          }
        )
      }
    );
  }
);
var CLOSE_NAME = "PopoverClose";
var PopoverClose = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopePopover, ...closeProps } = props;
    const context = usePopoverContext(CLOSE_NAME, __scopePopover);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        type: "button",
        ...closeProps,
        ref: forwardedRef,
        onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))
      }
    );
  }
);
PopoverClose.displayName = CLOSE_NAME;
var ARROW_NAME$1 = "PopoverArrow";
var PopoverArrow = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopePopover, ...arrowProps } = props;
    const popperScope = usePopperScope$1(__scopePopover);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
  }
);
PopoverArrow.displayName = ARROW_NAME$1;
function getState$2(open) {
  return open ? "open" : "closed";
}
var Root2$1 = Popover$1;
var Trigger$1 = PopoverTrigger$1;
var Portal$1 = PopoverPortal;
var Content2$1 = PopoverContent$1;
function Popover({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Root2$1, { "data-slot": "popover", ...props });
}
function PopoverTrigger({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Trigger$1, { "data-slot": "popover-trigger", ...props });
}
function PopoverContent({
  className,
  align = "center",
  sideOffset = 4,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
    Content2$1,
    {
      "data-slot": "popover-content",
      align,
      sideOffset,
      className: cn$1(
        "cy:bg-popover cy:text-popover-foreground cy:data-[state=open]:animate-in cy:data-[state=closed]:animate-out cy:data-[state=closed]:fade-out-0 cy:data-[state=open]:fade-in-0 cy:data-[state=closed]:zoom-out-95 cy:data-[state=open]:zoom-in-95 cy:data-[side=bottom]:slide-in-from-top-2 cy:data-[side=left]:slide-in-from-right-2 cy:data-[side=right]:slide-in-from-left-2 cy:data-[side=top]:slide-in-from-bottom-2 cy:z-50 cy:w-72 cy:origin-(--radix-popover-content-transform-origin) cy:rounded-md cy:border cy:p-4 cy:shadow-md cy:outline-hidden",
        className
      ),
      ...props
    }
  ) });
}
const flatten = (groups) => Object.values(groups).flat();
function UrlCombobox({
  groups,
  value,
  onChange,
  placeholder = "Choose a page to scan",
  className
}) {
  var _a2;
  const [open, setOpen] = reactExports.useState(false);
  const selected = reactExports.useMemo(
    () => flatten(groups).find((item) => item.url === value) ?? null,
    [groups, value]
  );
  const triggerLabel = selected ? ((_a2 = selected.label) == null ? void 0 : _a2.trim()) || selected.url : placeholder;
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Popover, { open, onOpenChange: setOpen, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "button",
      {
        type: "button",
        "aria-haspopup": "listbox",
        "aria-expanded": open,
        className: cn$1(
          "cy:bg-white cy:border cy:border-[#6c6c6c] cy:rounded-[4px] cy:px-[12px] cy:py-[10px]",
          "cy:flex cy:items-center cy:justify-between cy:gap-2",
          "cy:text-[13px] cy:text-left cy:w-full cy:max-w-[428px]",
          "cy:focus-visible:outline-none cy:focus-visible:ring-2 cy:focus-visible:ring-[#0b66e4]/30",
          className
        ),
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "span",
            {
              className: cn$1(
                "cy:truncate",
                selected ? "cy:text-[#21242d]" : "cy:text-[#767676]"
              ),
              children: triggerLabel
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "cy:size-5 cy:shrink-0 cy:text-[#21242d]" })
        ]
      }
    ) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      PopoverContent,
      {
        align: "start",
        sideOffset: 6,
        className: cn$1(
          "cy:w-[var(--radix-popover-trigger-width)] cy:max-w-[428px] cy:p-0",
          "cy:bg-white cy:border cy:border-[#d7d7d7] cy:rounded-[4px]",
          "cy:shadow-[0_6px_12px_rgba(23,0,121,0.1)]"
        ),
        children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Command,
          {
            filter: (value2, search) => value2.toLowerCase().includes(search.toLowerCase()) ? 1 : 0,
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(CommandInput, { placeholder: "Filter URLs…", className: "cy:h-10" }),
              /* @__PURE__ */ jsxRuntimeExports.jsxs(CommandList, { className: "cy:max-h-[320px]", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx(CommandEmpty, { children: "No URLs match." }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(CommandGroup, { children: Object.entries(groups).flatMap(
                  ([groupLabel, items]) => items.map((item) => {
                    var _a3;
                    const title = ((_a3 = item.label) == null ? void 0 : _a3.trim()) ?? "";
                    const display = title ? `${title} — ${item.url}` : item.url;
                    return /* @__PURE__ */ jsxRuntimeExports.jsx(
                      CommandItem,
                      {
                        value: `${title} ${item.url}`,
                        onSelect: () => {
                          onChange(item);
                          setOpen(false);
                        },
                        children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-[13px] cy:text-black cy:truncate cy:w-full", children: display })
                      },
                      `${groupLabel}::${item.url}`
                    );
                  })
                ) })
              ] })
            ]
          }
        )
      }
    )
  ] });
}
const buildAuditUrl = (url) => {
  try {
    const parsed = new URL(url, window.location.origin);
    parsed.searchParams.set("wya11y_audit", "1");
    return parsed.toString();
  } catch {
    const separator = url.includes("?") ? "&" : "?";
    return `${url}${separator}wya11y_audit=1`;
  }
};
function PageScanner({ groups }) {
  const [selected, setSelected] = reactExports.useState(null);
  reactExports.useEffect(() => {
    if (!selected) return;
    const stillPresent = Object.values(groups).flat().some((item) => item.url === selected.url);
    if (!stillPresent) {
      setSelected(null);
    }
  }, [groups, selected]);
  const handleScan = () => {
    if (!selected) return;
    window.open(buildAuditUrl(selected.url), "_blank", "noopener,noreferrer");
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:bg-white cy:border cy:border-[#cacee4] cy:rounded-[12px] cy:px-8 cy:py-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:gap-8", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:gap-2", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:font-bold cy:text-[20px] cy:text-[#21242d] cy:tracking-[-0.4px]", children: "Select a page to scan" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:text-[14px] cy:text-[#4e4b66] cy:tracking-[-0.28px]", children: "Pick any URL that visitors can reach. Drafts, password-protected, and admin-only URLs are hidden." })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-wrap cy:gap-3 cy:items-center", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        UrlCombobox,
        {
          groups,
          value: (selected == null ? void 0 : selected.url) ?? "",
          onChange: setSelected
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsxs(
        Button,
        {
          type: "button",
          disabled: !selected,
          onClick: handleScan,
          className: "cy:bg-[#0b66e4] cy:hover:bg-[#0b66e4]/90 cy:text-white cy:rounded-[3px] cy:h-[40px] cy:px-3 cy:font-semibold cy:text-[15px]",
          children: [
            "Scan page",
            /* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink, { className: "cy:size-4" })
          ]
        }
      )
    ] })
  ] }) });
}
function ScannerEmptyState() {
  const goToPages = () => {
    var _a2;
    const base = ((_a2 = window.wyA11yGlobals) == null ? void 0 : _a2.adminUrl) || "/wp-admin/";
    window.location.href = `${base.replace(/\/?$/, "/")}edit.php?post_type=page`;
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
    "div",
    {
      className: "cy:bg-white cy:border cy:border-[#cacee4] cy:rounded-[12px] cy:px-8 cy:py-6 cy:flex cy:flex-col cy:items-center cy:justify-center cy:gap-8 cy:min-h-[328px]",
      children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:gap-2 cy:items-start cy:w-full", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:font-bold cy:text-[20px] cy:text-[#21242d] cy:tracking-[-0.4px]", children: "No auditable URLs found." }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:text-[14px] cy:text-[#4e4b66] cy:tracking-[-0.28px]", children: "Publish at least one page or post so visitors have somewhere to land." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:w-full", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Button,
          {
            type: "button",
            onClick: goToPages,
            className: "cy:bg-[#0b66e4] cy:hover:bg-[#0b66e4]/90 cy:text-white cy:rounded-[3px] cy:h-[44px] cy:px-3",
            children: "Go to pages"
          }
        ) })
      ]
    }
  );
}
const Route$1 = createFileRoute("/")({
  component: AccessibilityChecker
});
function AccessibilityChecker() {
  const { data, isLoading, error } = useAuditableUrls();
  if (isLoading) {
    return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:bg-white cy:border cy:border-[#cacee4] cy:rounded-[12px] cy:px-8 cy:py-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:gap-8", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:gap-2", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { className: "cy:h-6 cy:w-[240px]" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { className: "cy:h-4 cy:w-[420px]" })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:gap-3 cy:items-center", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { className: "cy:h-[44px] cy:w-[428px] cy:rounded-[4px]" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { className: "cy:h-[40px] cy:w-[120px] cy:rounded-[3px]" })
      ] })
    ] }) });
  }
  if (error) {
    return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:bg-white cy:border cy:border-red-200 cy:rounded-[12px] cy:px-8 cy:py-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:font-bold cy:text-[20px] cy:text-[#21242d]", children: "Couldn't load URLs" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:mt-2 cy:text-[14px] cy:text-[#4e4b66]", children: error.message || "Something went wrong loading the page list. Refresh and try again." })
    ] });
  }
  const groups = data ?? {};
  const totalCount = Object.values(groups).reduce(
    (sum, items) => sum + items.length,
    0
  );
  if (totalCount === 0) {
    return /* @__PURE__ */ jsxRuntimeExports.jsx(ScannerEmptyState, {});
  }
  return /* @__PURE__ */ jsxRuntimeExports.jsx(PageScanner, { groups });
}
const defaultStatement = {
  status: "draft",
  id: "",
  url: "",
  preview: "",
  edit_url: "",
  date: "",
  basicInfo: {
    companyName: "",
    websiteUrl: "",
    websiteName: "",
    publicationDate: (/* @__PURE__ */ new Date()).toISOString().split("T")[0]
  },
  efforts: {
    selectedEfforts: [],
    additionalEfforts: [""]
  },
  conformanceStatus: {
    standard: "wcag21-aa",
    customStandard: "",
    conformanceLevel: "",
    additionalConsiderations: "",
    knownIssues: [{ title: "", description: "" }],
    unresolvedBarriers: "",
    contentOutsideScope: ""
  },
  technicalSpecs: {
    knownCompatibilities: {
      browsers: [""],
      operatingSystems: [""],
      assistiveTechnologies: [""]
    },
    knownIncompatibilities: {
      browsers: [""],
      operatingSystems: [""],
      assistiveTechnologies: [""]
    },
    technologyReliance: {
      selected: [],
      other: ""
    },
    assessmentApproach: {
      selected: [],
      otherMethods: [""]
    }
  },
  feedback: {
    companyPhoneNumber: "",
    companyEmailAddress: "",
    companyVisitorAddress: "",
    companyPostalAddress: "",
    sameAsVisitorAddress: false,
    otherContactOptions: "",
    typicalDurationForResponse: "",
    enforcementTeam: [
      {
        name: "",
        linkToEnforcementProcedure: "",
        contactDetails: ""
      }
    ]
  },
  relatedEvidence: {
    recentEvaluationReport: "",
    evaluationStatement: "",
    otherEvidence: [""]
  }
};
function useLocalStorage(key, initialValue) {
  const [storedValue, setStoredValue] = reactExports.useState(() => {
    try {
      const item = window.localStorage.getItem(key);
      return item ? JSON.parse(item) : initialValue;
    } catch (error) {
      console.error(`Error reading localStorage key "${key}":`, error);
      return initialValue;
    }
  });
  const setValue = (value) => {
    try {
      const valueToStore = value instanceof Function ? value(storedValue) : value;
      setStoredValue(valueToStore);
      window.localStorage.setItem(key, JSON.stringify(valueToStore));
    } catch (error) {
      console.error(`Error setting localStorage key "${key}":`, error);
    }
  };
  return [storedValue, setValue];
}
const getStatement = async () => {
  return await api.get({ path: "/statement" });
};
const saveStatement = async (config, options) => {
  const data = { ...config };
  if (options == null ? void 0 : options.preview) {
    data.isPreview = true;
  }
  return await api.post({ path: "/statement", data });
};
function Input({ className, type, ...props }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "input",
    {
      type,
      "data-slot": "input",
      className: cn$1(
        "cy:file:text-foreground cy:placeholder:text-muted-foreground cy:selection:bg-primary cy:selection:text-primary-foreground cy:dark:bg-input/30 cy:border-input! cy:flex cy:h-9! cy:w-full cy:min-w-0 cy:rounded-md! cy:border! cy:bg-transparent cy:px-3 cy:py-1 cy:text-base! cy:shadow-xs cy:transition-[color,box-shadow] cy:outline-none cy:file:inline-flex cy:file:h-7 cy:file:border-0 cy:file:bg-transparent cy:file:text-sm cy:file:font-medium cy:disabled:pointer-events-none cy:disabled:cursor-not-allowed cy:disabled:opacity-50 cy:md:text-sm",
        "cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:focus-visible:ring-[3px]",
        "cy:aria-invalid:ring-destructive/20 cy:dark:aria-invalid:ring-destructive/40 cy:aria-invalid:border-destructive cy:h-13! cy:rounded! cy:text-base!",
        className
      ),
      ...props
    }
  );
}
var util;
(function(util2) {
  util2.assertEqual = (_) => {
  };
  function assertIs(_arg) {
  }
  util2.assertIs = assertIs;
  function assertNever(_x) {
    throw new Error();
  }
  util2.assertNever = assertNever;
  util2.arrayToEnum = (items) => {
    const obj = {};
    for (const item of items) {
      obj[item] = item;
    }
    return obj;
  };
  util2.getValidEnumValues = (obj) => {
    const validKeys = util2.objectKeys(obj).filter((k2) => typeof obj[obj[k2]] !== "number");
    const filtered = {};
    for (const k2 of validKeys) {
      filtered[k2] = obj[k2];
    }
    return util2.objectValues(filtered);
  };
  util2.objectValues = (obj) => {
    return util2.objectKeys(obj).map(function(e) {
      return obj[e];
    });
  };
  util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => {
    const keys = [];
    for (const key in object) {
      if (Object.prototype.hasOwnProperty.call(object, key)) {
        keys.push(key);
      }
    }
    return keys;
  };
  util2.find = (arr, checker) => {
    for (const item of arr) {
      if (checker(item))
        return item;
    }
    return void 0;
  };
  util2.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && Number.isFinite(val) && Math.floor(val) === val;
  function joinValues(array, separator = " | ") {
    return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
  }
  util2.joinValues = joinValues;
  util2.jsonStringifyReplacer = (_, value) => {
    if (typeof value === "bigint") {
      return value.toString();
    }
    return value;
  };
})(util || (util = {}));
var objectUtil;
(function(objectUtil2) {
  objectUtil2.mergeShapes = (first, second) => {
    return {
      ...first,
      ...second
      // second overwrites first
    };
  };
})(objectUtil || (objectUtil = {}));
const ZodParsedType = util.arrayToEnum([
  "string",
  "nan",
  "number",
  "integer",
  "float",
  "boolean",
  "date",
  "bigint",
  "symbol",
  "function",
  "undefined",
  "null",
  "array",
  "object",
  "unknown",
  "promise",
  "void",
  "never",
  "map",
  "set"
]);
const getParsedType = (data) => {
  const t = typeof data;
  switch (t) {
    case "undefined":
      return ZodParsedType.undefined;
    case "string":
      return ZodParsedType.string;
    case "number":
      return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
    case "boolean":
      return ZodParsedType.boolean;
    case "function":
      return ZodParsedType.function;
    case "bigint":
      return ZodParsedType.bigint;
    case "symbol":
      return ZodParsedType.symbol;
    case "object":
      if (Array.isArray(data)) {
        return ZodParsedType.array;
      }
      if (data === null) {
        return ZodParsedType.null;
      }
      if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
        return ZodParsedType.promise;
      }
      if (typeof Map !== "undefined" && data instanceof Map) {
        return ZodParsedType.map;
      }
      if (typeof Set !== "undefined" && data instanceof Set) {
        return ZodParsedType.set;
      }
      if (typeof Date !== "undefined" && data instanceof Date) {
        return ZodParsedType.date;
      }
      return ZodParsedType.object;
    default:
      return ZodParsedType.unknown;
  }
};
const ZodIssueCode = util.arrayToEnum([
  "invalid_type",
  "invalid_literal",
  "custom",
  "invalid_union",
  "invalid_union_discriminator",
  "invalid_enum_value",
  "unrecognized_keys",
  "invalid_arguments",
  "invalid_return_type",
  "invalid_date",
  "invalid_string",
  "too_small",
  "too_big",
  "invalid_intersection_types",
  "not_multiple_of",
  "not_finite"
]);
class ZodError extends Error {
  get errors() {
    return this.issues;
  }
  constructor(issues) {
    super();
    this.issues = [];
    this.addIssue = (sub) => {
      this.issues = [...this.issues, sub];
    };
    this.addIssues = (subs = []) => {
      this.issues = [...this.issues, ...subs];
    };
    const actualProto = new.target.prototype;
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(this, actualProto);
    } else {
      this.__proto__ = actualProto;
    }
    this.name = "ZodError";
    this.issues = issues;
  }
  format(_mapper) {
    const mapper = _mapper || function(issue) {
      return issue.message;
    };
    const fieldErrors = { _errors: [] };
    const processError = (error) => {
      for (const issue of error.issues) {
        if (issue.code === "invalid_union") {
          issue.unionErrors.map(processError);
        } else if (issue.code === "invalid_return_type") {
          processError(issue.returnTypeError);
        } else if (issue.code === "invalid_arguments") {
          processError(issue.argumentsError);
        } else if (issue.path.length === 0) {
          fieldErrors._errors.push(mapper(issue));
        } else {
          let curr = fieldErrors;
          let i = 0;
          while (i < issue.path.length) {
            const el = issue.path[i];
            const terminal = i === issue.path.length - 1;
            if (!terminal) {
              curr[el] = curr[el] || { _errors: [] };
            } else {
              curr[el] = curr[el] || { _errors: [] };
              curr[el]._errors.push(mapper(issue));
            }
            curr = curr[el];
            i++;
          }
        }
      }
    };
    processError(this);
    return fieldErrors;
  }
  static assert(value) {
    if (!(value instanceof ZodError)) {
      throw new Error(`Not a ZodError: ${value}`);
    }
  }
  toString() {
    return this.message;
  }
  get message() {
    return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
  }
  get isEmpty() {
    return this.issues.length === 0;
  }
  flatten(mapper = (issue) => issue.message) {
    const fieldErrors = {};
    const formErrors = [];
    for (const sub of this.issues) {
      if (sub.path.length > 0) {
        const firstEl = sub.path[0];
        fieldErrors[firstEl] = fieldErrors[firstEl] || [];
        fieldErrors[firstEl].push(mapper(sub));
      } else {
        formErrors.push(mapper(sub));
      }
    }
    return { formErrors, fieldErrors };
  }
  get formErrors() {
    return this.flatten();
  }
}
ZodError.create = (issues) => {
  const error = new ZodError(issues);
  return error;
};
const errorMap = (issue, _ctx) => {
  let message;
  switch (issue.code) {
    case ZodIssueCode.invalid_type:
      if (issue.received === ZodParsedType.undefined) {
        message = "Required";
      } else {
        message = `Expected ${issue.expected}, received ${issue.received}`;
      }
      break;
    case ZodIssueCode.invalid_literal:
      message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;
      break;
    case ZodIssueCode.unrecognized_keys:
      message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`;
      break;
    case ZodIssueCode.invalid_union:
      message = `Invalid input`;
      break;
    case ZodIssueCode.invalid_union_discriminator:
      message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;
      break;
    case ZodIssueCode.invalid_enum_value:
      message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;
      break;
    case ZodIssueCode.invalid_arguments:
      message = `Invalid function arguments`;
      break;
    case ZodIssueCode.invalid_return_type:
      message = `Invalid function return type`;
      break;
    case ZodIssueCode.invalid_date:
      message = `Invalid date`;
      break;
    case ZodIssueCode.invalid_string:
      if (typeof issue.validation === "object") {
        if ("includes" in issue.validation) {
          message = `Invalid input: must include "${issue.validation.includes}"`;
          if (typeof issue.validation.position === "number") {
            message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
          }
        } else if ("startsWith" in issue.validation) {
          message = `Invalid input: must start with "${issue.validation.startsWith}"`;
        } else if ("endsWith" in issue.validation) {
          message = `Invalid input: must end with "${issue.validation.endsWith}"`;
        } else {
          util.assertNever(issue.validation);
        }
      } else if (issue.validation !== "regex") {
        message = `Invalid ${issue.validation}`;
      } else {
        message = "Invalid";
      }
      break;
    case ZodIssueCode.too_small:
      if (issue.type === "array")
        message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
      else if (issue.type === "string")
        message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
      else if (issue.type === "number")
        message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
      else if (issue.type === "bigint")
        message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
      else if (issue.type === "date")
        message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
      else
        message = "Invalid input";
      break;
    case ZodIssueCode.too_big:
      if (issue.type === "array")
        message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
      else if (issue.type === "string")
        message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
      else if (issue.type === "number")
        message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
      else if (issue.type === "bigint")
        message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
      else if (issue.type === "date")
        message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
      else
        message = "Invalid input";
      break;
    case ZodIssueCode.custom:
      message = `Invalid input`;
      break;
    case ZodIssueCode.invalid_intersection_types:
      message = `Intersection results could not be merged`;
      break;
    case ZodIssueCode.not_multiple_of:
      message = `Number must be a multiple of ${issue.multipleOf}`;
      break;
    case ZodIssueCode.not_finite:
      message = "Number must be finite";
      break;
    default:
      message = _ctx.defaultError;
      util.assertNever(issue);
  }
  return { message };
};
let overrideErrorMap = errorMap;
function getErrorMap() {
  return overrideErrorMap;
}
const makeIssue = (params) => {
  const { data, path, errorMaps, issueData } = params;
  const fullPath = [...path, ...issueData.path || []];
  const fullIssue = {
    ...issueData,
    path: fullPath
  };
  if (issueData.message !== void 0) {
    return {
      ...issueData,
      path: fullPath,
      message: issueData.message
    };
  }
  let errorMessage = "";
  const maps = errorMaps.filter((m2) => !!m2).slice().reverse();
  for (const map of maps) {
    errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;
  }
  return {
    ...issueData,
    path: fullPath,
    message: errorMessage
  };
};
function addIssueToContext(ctx, issueData) {
  const overrideMap = getErrorMap();
  const issue = makeIssue({
    issueData,
    data: ctx.data,
    path: ctx.path,
    errorMaps: [
      ctx.common.contextualErrorMap,
      // contextual error map is first priority
      ctx.schemaErrorMap,
      // then schema-bound map if available
      overrideMap,
      // then global override map
      overrideMap === errorMap ? void 0 : errorMap
      // then global default map
    ].filter((x) => !!x)
  });
  ctx.common.issues.push(issue);
}
class ParseStatus {
  constructor() {
    this.value = "valid";
  }
  dirty() {
    if (this.value === "valid")
      this.value = "dirty";
  }
  abort() {
    if (this.value !== "aborted")
      this.value = "aborted";
  }
  static mergeArray(status, results) {
    const arrayValue = [];
    for (const s of results) {
      if (s.status === "aborted")
        return INVALID;
      if (s.status === "dirty")
        status.dirty();
      arrayValue.push(s.value);
    }
    return { status: status.value, value: arrayValue };
  }
  static async mergeObjectAsync(status, pairs) {
    const syncPairs = [];
    for (const pair of pairs) {
      const key = await pair.key;
      const value = await pair.value;
      syncPairs.push({
        key,
        value
      });
    }
    return ParseStatus.mergeObjectSync(status, syncPairs);
  }
  static mergeObjectSync(status, pairs) {
    const finalObject = {};
    for (const pair of pairs) {
      const { key, value } = pair;
      if (key.status === "aborted")
        return INVALID;
      if (value.status === "aborted")
        return INVALID;
      if (key.status === "dirty")
        status.dirty();
      if (value.status === "dirty")
        status.dirty();
      if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
        finalObject[key.value] = value.value;
      }
    }
    return { status: status.value, value: finalObject };
  }
}
const INVALID = Object.freeze({
  status: "aborted"
});
const DIRTY = (value) => ({ status: "dirty", value });
const OK = (value) => ({ status: "valid", value });
const isAborted = (x) => x.status === "aborted";
const isDirty = (x) => x.status === "dirty";
const isValid = (x) => x.status === "valid";
const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
var errorUtil;
(function(errorUtil2) {
  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
  errorUtil2.toString = (message) => typeof message === "string" ? message : message == null ? void 0 : message.message;
})(errorUtil || (errorUtil = {}));
class ParseInputLazyPath {
  constructor(parent, value, path, key) {
    this._cachedPath = [];
    this.parent = parent;
    this.data = value;
    this._path = path;
    this._key = key;
  }
  get path() {
    if (!this._cachedPath.length) {
      if (Array.isArray(this._key)) {
        this._cachedPath.push(...this._path, ...this._key);
      } else {
        this._cachedPath.push(...this._path, this._key);
      }
    }
    return this._cachedPath;
  }
}
const handleResult = (ctx, result) => {
  if (isValid(result)) {
    return { success: true, data: result.value };
  } else {
    if (!ctx.common.issues.length) {
      throw new Error("Validation failed but no issues detected.");
    }
    return {
      success: false,
      get error() {
        if (this._error)
          return this._error;
        const error = new ZodError(ctx.common.issues);
        this._error = error;
        return this._error;
      }
    };
  }
};
function processCreateParams(params) {
  if (!params)
    return {};
  const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;
  if (errorMap2 && (invalid_type_error || required_error)) {
    throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
  }
  if (errorMap2)
    return { errorMap: errorMap2, description };
  const customMap = (iss, ctx) => {
    const { message } = params;
    if (iss.code === "invalid_enum_value") {
      return { message: message ?? ctx.defaultError };
    }
    if (typeof ctx.data === "undefined") {
      return { message: message ?? required_error ?? ctx.defaultError };
    }
    if (iss.code !== "invalid_type")
      return { message: ctx.defaultError };
    return { message: message ?? invalid_type_error ?? ctx.defaultError };
  };
  return { errorMap: customMap, description };
}
class ZodType {
  get description() {
    return this._def.description;
  }
  _getType(input) {
    return getParsedType(input.data);
  }
  _getOrReturnCtx(input, ctx) {
    return ctx || {
      common: input.parent.common,
      data: input.data,
      parsedType: getParsedType(input.data),
      schemaErrorMap: this._def.errorMap,
      path: input.path,
      parent: input.parent
    };
  }
  _processInputParams(input) {
    return {
      status: new ParseStatus(),
      ctx: {
        common: input.parent.common,
        data: input.data,
        parsedType: getParsedType(input.data),
        schemaErrorMap: this._def.errorMap,
        path: input.path,
        parent: input.parent
      }
    };
  }
  _parseSync(input) {
    const result = this._parse(input);
    if (isAsync(result)) {
      throw new Error("Synchronous parse encountered promise.");
    }
    return result;
  }
  _parseAsync(input) {
    const result = this._parse(input);
    return Promise.resolve(result);
  }
  parse(data, params) {
    const result = this.safeParse(data, params);
    if (result.success)
      return result.data;
    throw result.error;
  }
  safeParse(data, params) {
    const ctx = {
      common: {
        issues: [],
        async: (params == null ? void 0 : params.async) ?? false,
        contextualErrorMap: params == null ? void 0 : params.errorMap
      },
      path: (params == null ? void 0 : params.path) || [],
      schemaErrorMap: this._def.errorMap,
      parent: null,
      data,
      parsedType: getParsedType(data)
    };
    const result = this._parseSync({ data, path: ctx.path, parent: ctx });
    return handleResult(ctx, result);
  }
  "~validate"(data) {
    var _a2, _b2;
    const ctx = {
      common: {
        issues: [],
        async: !!this["~standard"].async
      },
      path: [],
      schemaErrorMap: this._def.errorMap,
      parent: null,
      data,
      parsedType: getParsedType(data)
    };
    if (!this["~standard"].async) {
      try {
        const result = this._parseSync({ data, path: [], parent: ctx });
        return isValid(result) ? {
          value: result.value
        } : {
          issues: ctx.common.issues
        };
      } catch (err) {
        if ((_b2 = (_a2 = err == null ? void 0 : err.message) == null ? void 0 : _a2.toLowerCase()) == null ? void 0 : _b2.includes("encountered")) {
          this["~standard"].async = true;
        }
        ctx.common = {
          issues: [],
          async: true
        };
      }
    }
    return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? {
      value: result.value
    } : {
      issues: ctx.common.issues
    });
  }
  async parseAsync(data, params) {
    const result = await this.safeParseAsync(data, params);
    if (result.success)
      return result.data;
    throw result.error;
  }
  async safeParseAsync(data, params) {
    const ctx = {
      common: {
        issues: [],
        contextualErrorMap: params == null ? void 0 : params.errorMap,
        async: true
      },
      path: (params == null ? void 0 : params.path) || [],
      schemaErrorMap: this._def.errorMap,
      parent: null,
      data,
      parsedType: getParsedType(data)
    };
    const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
    const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
    return handleResult(ctx, result);
  }
  refine(check, message) {
    const getIssueProperties = (val) => {
      if (typeof message === "string" || typeof message === "undefined") {
        return { message };
      } else if (typeof message === "function") {
        return message(val);
      } else {
        return message;
      }
    };
    return this._refinement((val, ctx) => {
      const result = check(val);
      const setError = () => ctx.addIssue({
        code: ZodIssueCode.custom,
        ...getIssueProperties(val)
      });
      if (typeof Promise !== "undefined" && result instanceof Promise) {
        return result.then((data) => {
          if (!data) {
            setError();
            return false;
          } else {
            return true;
          }
        });
      }
      if (!result) {
        setError();
        return false;
      } else {
        return true;
      }
    });
  }
  refinement(check, refinementData) {
    return this._refinement((val, ctx) => {
      if (!check(val)) {
        ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData);
        return false;
      } else {
        return true;
      }
    });
  }
  _refinement(refinement) {
    return new ZodEffects({
      schema: this,
      typeName: ZodFirstPartyTypeKind.ZodEffects,
      effect: { type: "refinement", refinement }
    });
  }
  superRefine(refinement) {
    return this._refinement(refinement);
  }
  constructor(def) {
    this.spa = this.safeParseAsync;
    this._def = def;
    this.parse = this.parse.bind(this);
    this.safeParse = this.safeParse.bind(this);
    this.parseAsync = this.parseAsync.bind(this);
    this.safeParseAsync = this.safeParseAsync.bind(this);
    this.spa = this.spa.bind(this);
    this.refine = this.refine.bind(this);
    this.refinement = this.refinement.bind(this);
    this.superRefine = this.superRefine.bind(this);
    this.optional = this.optional.bind(this);
    this.nullable = this.nullable.bind(this);
    this.nullish = this.nullish.bind(this);
    this.array = this.array.bind(this);
    this.promise = this.promise.bind(this);
    this.or = this.or.bind(this);
    this.and = this.and.bind(this);
    this.transform = this.transform.bind(this);
    this.brand = this.brand.bind(this);
    this.default = this.default.bind(this);
    this.catch = this.catch.bind(this);
    this.describe = this.describe.bind(this);
    this.pipe = this.pipe.bind(this);
    this.readonly = this.readonly.bind(this);
    this.isNullable = this.isNullable.bind(this);
    this.isOptional = this.isOptional.bind(this);
    this["~standard"] = {
      version: 1,
      vendor: "zod",
      validate: (data) => this["~validate"](data)
    };
  }
  optional() {
    return ZodOptional.create(this, this._def);
  }
  nullable() {
    return ZodNullable.create(this, this._def);
  }
  nullish() {
    return this.nullable().optional();
  }
  array() {
    return ZodArray.create(this);
  }
  promise() {
    return ZodPromise.create(this, this._def);
  }
  or(option) {
    return ZodUnion.create([this, option], this._def);
  }
  and(incoming) {
    return ZodIntersection.create(this, incoming, this._def);
  }
  transform(transform) {
    return new ZodEffects({
      ...processCreateParams(this._def),
      schema: this,
      typeName: ZodFirstPartyTypeKind.ZodEffects,
      effect: { type: "transform", transform }
    });
  }
  default(def) {
    const defaultValueFunc = typeof def === "function" ? def : () => def;
    return new ZodDefault({
      ...processCreateParams(this._def),
      innerType: this,
      defaultValue: defaultValueFunc,
      typeName: ZodFirstPartyTypeKind.ZodDefault
    });
  }
  brand() {
    return new ZodBranded({
      typeName: ZodFirstPartyTypeKind.ZodBranded,
      type: this,
      ...processCreateParams(this._def)
    });
  }
  catch(def) {
    const catchValueFunc = typeof def === "function" ? def : () => def;
    return new ZodCatch({
      ...processCreateParams(this._def),
      innerType: this,
      catchValue: catchValueFunc,
      typeName: ZodFirstPartyTypeKind.ZodCatch
    });
  }
  describe(description) {
    const This = this.constructor;
    return new This({
      ...this._def,
      description
    });
  }
  pipe(target) {
    return ZodPipeline.create(this, target);
  }
  readonly() {
    return ZodReadonly.create(this);
  }
  isOptional() {
    return this.safeParse(void 0).success;
  }
  isNullable() {
    return this.safeParse(null).success;
  }
}
const cuidRegex = /^c[^\s-]{8,}$/i;
const cuid2Regex = /^[0-9a-z]+$/;
const ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;
const uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
const nanoidRegex = /^[a-z0-9_-]{21}$/i;
const jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;
const durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
const emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
const _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
let emojiRegex;
const ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
const ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/;
const ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;
const ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;
const base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
const base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;
const dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`;
const dateRegex = new RegExp(`^${dateRegexSource}$`);
function timeRegexSource(args) {
  let secondsRegexSource = `[0-5]\\d`;
  if (args.precision) {
    secondsRegexSource = `${secondsRegexSource}\\.\\d{${args.precision}}`;
  } else if (args.precision == null) {
    secondsRegexSource = `${secondsRegexSource}(\\.\\d+)?`;
  }
  const secondsQuantifier = args.precision ? "+" : "?";
  return `([01]\\d|2[0-3]):[0-5]\\d(:${secondsRegexSource})${secondsQuantifier}`;
}
function timeRegex(args) {
  return new RegExp(`^${timeRegexSource(args)}$`);
}
function datetimeRegex(args) {
  let regex = `${dateRegexSource}T${timeRegexSource(args)}`;
  const opts = [];
  opts.push(args.local ? `Z?` : `Z`);
  if (args.offset)
    opts.push(`([+-]\\d{2}:?\\d{2})`);
  regex = `${regex}(${opts.join("|")})`;
  return new RegExp(`^${regex}$`);
}
function isValidIP(ip, version) {
  if ((version === "v4" || !version) && ipv4Regex.test(ip)) {
    return true;
  }
  if ((version === "v6" || !version) && ipv6Regex.test(ip)) {
    return true;
  }
  return false;
}
function isValidJWT(jwt, alg) {
  if (!jwtRegex.test(jwt))
    return false;
  try {
    const [header] = jwt.split(".");
    if (!header)
      return false;
    const base64 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "=");
    const decoded = JSON.parse(atob(base64));
    if (typeof decoded !== "object" || decoded === null)
      return false;
    if ("typ" in decoded && (decoded == null ? void 0 : decoded.typ) !== "JWT")
      return false;
    if (!decoded.alg)
      return false;
    if (alg && decoded.alg !== alg)
      return false;
    return true;
  } catch {
    return false;
  }
}
function isValidCidr(ip, version) {
  if ((version === "v4" || !version) && ipv4CidrRegex.test(ip)) {
    return true;
  }
  if ((version === "v6" || !version) && ipv6CidrRegex.test(ip)) {
    return true;
  }
  return false;
}
class ZodString extends ZodType {
  _parse(input) {
    if (this._def.coerce) {
      input.data = String(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.string) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.string,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    const status = new ParseStatus();
    let ctx = void 0;
    for (const check of this._def.checks) {
      if (check.kind === "min") {
        if (input.data.length < check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            minimum: check.value,
            type: "string",
            inclusive: true,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        if (input.data.length > check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            maximum: check.value,
            type: "string",
            inclusive: true,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "length") {
        const tooBig = input.data.length > check.value;
        const tooSmall = input.data.length < check.value;
        if (tooBig || tooSmall) {
          ctx = this._getOrReturnCtx(input, ctx);
          if (tooBig) {
            addIssueToContext(ctx, {
              code: ZodIssueCode.too_big,
              maximum: check.value,
              type: "string",
              inclusive: true,
              exact: true,
              message: check.message
            });
          } else if (tooSmall) {
            addIssueToContext(ctx, {
              code: ZodIssueCode.too_small,
              minimum: check.value,
              type: "string",
              inclusive: true,
              exact: true,
              message: check.message
            });
          }
          status.dirty();
        }
      } else if (check.kind === "email") {
        if (!emailRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "email",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "emoji") {
        if (!emojiRegex) {
          emojiRegex = new RegExp(_emojiRegex, "u");
        }
        if (!emojiRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "emoji",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "uuid") {
        if (!uuidRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "uuid",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "nanoid") {
        if (!nanoidRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "nanoid",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "cuid") {
        if (!cuidRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "cuid",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "cuid2") {
        if (!cuid2Regex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "cuid2",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "ulid") {
        if (!ulidRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "ulid",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "url") {
        try {
          new URL(input.data);
        } catch {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "url",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "regex") {
        check.regex.lastIndex = 0;
        const testResult = check.regex.test(input.data);
        if (!testResult) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "regex",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "trim") {
        input.data = input.data.trim();
      } else if (check.kind === "includes") {
        if (!input.data.includes(check.value, check.position)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: { includes: check.value, position: check.position },
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "toLowerCase") {
        input.data = input.data.toLowerCase();
      } else if (check.kind === "toUpperCase") {
        input.data = input.data.toUpperCase();
      } else if (check.kind === "startsWith") {
        if (!input.data.startsWith(check.value)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: { startsWith: check.value },
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "endsWith") {
        if (!input.data.endsWith(check.value)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: { endsWith: check.value },
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "datetime") {
        const regex = datetimeRegex(check);
        if (!regex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: "datetime",
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "date") {
        const regex = dateRegex;
        if (!regex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: "date",
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "time") {
        const regex = timeRegex(check);
        if (!regex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: "time",
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "duration") {
        if (!durationRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "duration",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "ip") {
        if (!isValidIP(input.data, check.version)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "ip",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "jwt") {
        if (!isValidJWT(input.data, check.alg)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "jwt",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "cidr") {
        if (!isValidCidr(input.data, check.version)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "cidr",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "base64") {
        if (!base64Regex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "base64",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "base64url") {
        if (!base64urlRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "base64url",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return { status: status.value, value: input.data };
  }
  _regex(regex, validation, message) {
    return this.refinement((data) => regex.test(data), {
      validation,
      code: ZodIssueCode.invalid_string,
      ...errorUtil.errToObj(message)
    });
  }
  _addCheck(check) {
    return new ZodString({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  email(message) {
    return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) });
  }
  url(message) {
    return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) });
  }
  emoji(message) {
    return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) });
  }
  uuid(message) {
    return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) });
  }
  nanoid(message) {
    return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) });
  }
  cuid(message) {
    return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
  }
  cuid2(message) {
    return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) });
  }
  ulid(message) {
    return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) });
  }
  base64(message) {
    return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) });
  }
  base64url(message) {
    return this._addCheck({
      kind: "base64url",
      ...errorUtil.errToObj(message)
    });
  }
  jwt(options) {
    return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) });
  }
  ip(options) {
    return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) });
  }
  cidr(options) {
    return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) });
  }
  datetime(options) {
    if (typeof options === "string") {
      return this._addCheck({
        kind: "datetime",
        precision: null,
        offset: false,
        local: false,
        message: options
      });
    }
    return this._addCheck({
      kind: "datetime",
      precision: typeof (options == null ? void 0 : options.precision) === "undefined" ? null : options == null ? void 0 : options.precision,
      offset: (options == null ? void 0 : options.offset) ?? false,
      local: (options == null ? void 0 : options.local) ?? false,
      ...errorUtil.errToObj(options == null ? void 0 : options.message)
    });
  }
  date(message) {
    return this._addCheck({ kind: "date", message });
  }
  time(options) {
    if (typeof options === "string") {
      return this._addCheck({
        kind: "time",
        precision: null,
        message: options
      });
    }
    return this._addCheck({
      kind: "time",
      precision: typeof (options == null ? void 0 : options.precision) === "undefined" ? null : options == null ? void 0 : options.precision,
      ...errorUtil.errToObj(options == null ? void 0 : options.message)
    });
  }
  duration(message) {
    return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) });
  }
  regex(regex, message) {
    return this._addCheck({
      kind: "regex",
      regex,
      ...errorUtil.errToObj(message)
    });
  }
  includes(value, options) {
    return this._addCheck({
      kind: "includes",
      value,
      position: options == null ? void 0 : options.position,
      ...errorUtil.errToObj(options == null ? void 0 : options.message)
    });
  }
  startsWith(value, message) {
    return this._addCheck({
      kind: "startsWith",
      value,
      ...errorUtil.errToObj(message)
    });
  }
  endsWith(value, message) {
    return this._addCheck({
      kind: "endsWith",
      value,
      ...errorUtil.errToObj(message)
    });
  }
  min(minLength, message) {
    return this._addCheck({
      kind: "min",
      value: minLength,
      ...errorUtil.errToObj(message)
    });
  }
  max(maxLength, message) {
    return this._addCheck({
      kind: "max",
      value: maxLength,
      ...errorUtil.errToObj(message)
    });
  }
  length(len, message) {
    return this._addCheck({
      kind: "length",
      value: len,
      ...errorUtil.errToObj(message)
    });
  }
  /**
   * Equivalent to `.min(1)`
   */
  nonempty(message) {
    return this.min(1, errorUtil.errToObj(message));
  }
  trim() {
    return new ZodString({
      ...this._def,
      checks: [...this._def.checks, { kind: "trim" }]
    });
  }
  toLowerCase() {
    return new ZodString({
      ...this._def,
      checks: [...this._def.checks, { kind: "toLowerCase" }]
    });
  }
  toUpperCase() {
    return new ZodString({
      ...this._def,
      checks: [...this._def.checks, { kind: "toUpperCase" }]
    });
  }
  get isDatetime() {
    return !!this._def.checks.find((ch) => ch.kind === "datetime");
  }
  get isDate() {
    return !!this._def.checks.find((ch) => ch.kind === "date");
  }
  get isTime() {
    return !!this._def.checks.find((ch) => ch.kind === "time");
  }
  get isDuration() {
    return !!this._def.checks.find((ch) => ch.kind === "duration");
  }
  get isEmail() {
    return !!this._def.checks.find((ch) => ch.kind === "email");
  }
  get isURL() {
    return !!this._def.checks.find((ch) => ch.kind === "url");
  }
  get isEmoji() {
    return !!this._def.checks.find((ch) => ch.kind === "emoji");
  }
  get isUUID() {
    return !!this._def.checks.find((ch) => ch.kind === "uuid");
  }
  get isNANOID() {
    return !!this._def.checks.find((ch) => ch.kind === "nanoid");
  }
  get isCUID() {
    return !!this._def.checks.find((ch) => ch.kind === "cuid");
  }
  get isCUID2() {
    return !!this._def.checks.find((ch) => ch.kind === "cuid2");
  }
  get isULID() {
    return !!this._def.checks.find((ch) => ch.kind === "ulid");
  }
  get isIP() {
    return !!this._def.checks.find((ch) => ch.kind === "ip");
  }
  get isCIDR() {
    return !!this._def.checks.find((ch) => ch.kind === "cidr");
  }
  get isBase64() {
    return !!this._def.checks.find((ch) => ch.kind === "base64");
  }
  get isBase64url() {
    return !!this._def.checks.find((ch) => ch.kind === "base64url");
  }
  get minLength() {
    let min2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min2 === null || ch.value > min2)
          min2 = ch.value;
      }
    }
    return min2;
  }
  get maxLength() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2;
  }
}
ZodString.create = (params) => {
  return new ZodString({
    checks: [],
    typeName: ZodFirstPartyTypeKind.ZodString,
    coerce: (params == null ? void 0 : params.coerce) ?? false,
    ...processCreateParams(params)
  });
};
function floatSafeRemainder(val, step) {
  const valDecCount = (val.toString().split(".")[1] || "").length;
  const stepDecCount = (step.toString().split(".")[1] || "").length;
  const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
  const valInt = Number.parseInt(val.toFixed(decCount).replace(".", ""));
  const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
  return valInt % stepInt / 10 ** decCount;
}
class ZodNumber extends ZodType {
  constructor() {
    super(...arguments);
    this.min = this.gte;
    this.max = this.lte;
    this.step = this.multipleOf;
  }
  _parse(input) {
    if (this._def.coerce) {
      input.data = Number(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.number) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.number,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    let ctx = void 0;
    const status = new ParseStatus();
    for (const check of this._def.checks) {
      if (check.kind === "int") {
        if (!util.isInteger(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_type,
            expected: "integer",
            received: "float",
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "min") {
        const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
        if (tooSmall) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            minimum: check.value,
            type: "number",
            inclusive: check.inclusive,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
        if (tooBig) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            maximum: check.value,
            type: "number",
            inclusive: check.inclusive,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "multipleOf") {
        if (floatSafeRemainder(input.data, check.value) !== 0) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.not_multiple_of,
            multipleOf: check.value,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "finite") {
        if (!Number.isFinite(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.not_finite,
            message: check.message
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return { status: status.value, value: input.data };
  }
  gte(value, message) {
    return this.setLimit("min", value, true, errorUtil.toString(message));
  }
  gt(value, message) {
    return this.setLimit("min", value, false, errorUtil.toString(message));
  }
  lte(value, message) {
    return this.setLimit("max", value, true, errorUtil.toString(message));
  }
  lt(value, message) {
    return this.setLimit("max", value, false, errorUtil.toString(message));
  }
  setLimit(kind, value, inclusive, message) {
    return new ZodNumber({
      ...this._def,
      checks: [
        ...this._def.checks,
        {
          kind,
          value,
          inclusive,
          message: errorUtil.toString(message)
        }
      ]
    });
  }
  _addCheck(check) {
    return new ZodNumber({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  int(message) {
    return this._addCheck({
      kind: "int",
      message: errorUtil.toString(message)
    });
  }
  positive(message) {
    return this._addCheck({
      kind: "min",
      value: 0,
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  negative(message) {
    return this._addCheck({
      kind: "max",
      value: 0,
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  nonpositive(message) {
    return this._addCheck({
      kind: "max",
      value: 0,
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  nonnegative(message) {
    return this._addCheck({
      kind: "min",
      value: 0,
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  multipleOf(value, message) {
    return this._addCheck({
      kind: "multipleOf",
      value,
      message: errorUtil.toString(message)
    });
  }
  finite(message) {
    return this._addCheck({
      kind: "finite",
      message: errorUtil.toString(message)
    });
  }
  safe(message) {
    return this._addCheck({
      kind: "min",
      inclusive: true,
      value: Number.MIN_SAFE_INTEGER,
      message: errorUtil.toString(message)
    })._addCheck({
      kind: "max",
      inclusive: true,
      value: Number.MAX_SAFE_INTEGER,
      message: errorUtil.toString(message)
    });
  }
  get minValue() {
    let min2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min2 === null || ch.value > min2)
          min2 = ch.value;
      }
    }
    return min2;
  }
  get maxValue() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2;
  }
  get isInt() {
    return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
  }
  get isFinite() {
    let max2 = null;
    let min2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
        return true;
      } else if (ch.kind === "min") {
        if (min2 === null || ch.value > min2)
          min2 = ch.value;
      } else if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return Number.isFinite(min2) && Number.isFinite(max2);
  }
}
ZodNumber.create = (params) => {
  return new ZodNumber({
    checks: [],
    typeName: ZodFirstPartyTypeKind.ZodNumber,
    coerce: (params == null ? void 0 : params.coerce) || false,
    ...processCreateParams(params)
  });
};
class ZodBigInt extends ZodType {
  constructor() {
    super(...arguments);
    this.min = this.gte;
    this.max = this.lte;
  }
  _parse(input) {
    if (this._def.coerce) {
      try {
        input.data = BigInt(input.data);
      } catch {
        return this._getInvalidInput(input);
      }
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.bigint) {
      return this._getInvalidInput(input);
    }
    let ctx = void 0;
    const status = new ParseStatus();
    for (const check of this._def.checks) {
      if (check.kind === "min") {
        const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
        if (tooSmall) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            type: "bigint",
            minimum: check.value,
            inclusive: check.inclusive,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
        if (tooBig) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            type: "bigint",
            maximum: check.value,
            inclusive: check.inclusive,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "multipleOf") {
        if (input.data % check.value !== BigInt(0)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.not_multiple_of,
            multipleOf: check.value,
            message: check.message
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return { status: status.value, value: input.data };
  }
  _getInvalidInput(input) {
    const ctx = this._getOrReturnCtx(input);
    addIssueToContext(ctx, {
      code: ZodIssueCode.invalid_type,
      expected: ZodParsedType.bigint,
      received: ctx.parsedType
    });
    return INVALID;
  }
  gte(value, message) {
    return this.setLimit("min", value, true, errorUtil.toString(message));
  }
  gt(value, message) {
    return this.setLimit("min", value, false, errorUtil.toString(message));
  }
  lte(value, message) {
    return this.setLimit("max", value, true, errorUtil.toString(message));
  }
  lt(value, message) {
    return this.setLimit("max", value, false, errorUtil.toString(message));
  }
  setLimit(kind, value, inclusive, message) {
    return new ZodBigInt({
      ...this._def,
      checks: [
        ...this._def.checks,
        {
          kind,
          value,
          inclusive,
          message: errorUtil.toString(message)
        }
      ]
    });
  }
  _addCheck(check) {
    return new ZodBigInt({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  positive(message) {
    return this._addCheck({
      kind: "min",
      value: BigInt(0),
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  negative(message) {
    return this._addCheck({
      kind: "max",
      value: BigInt(0),
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  nonpositive(message) {
    return this._addCheck({
      kind: "max",
      value: BigInt(0),
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  nonnegative(message) {
    return this._addCheck({
      kind: "min",
      value: BigInt(0),
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  multipleOf(value, message) {
    return this._addCheck({
      kind: "multipleOf",
      value,
      message: errorUtil.toString(message)
    });
  }
  get minValue() {
    let min2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min2 === null || ch.value > min2)
          min2 = ch.value;
      }
    }
    return min2;
  }
  get maxValue() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2;
  }
}
ZodBigInt.create = (params) => {
  return new ZodBigInt({
    checks: [],
    typeName: ZodFirstPartyTypeKind.ZodBigInt,
    coerce: (params == null ? void 0 : params.coerce) ?? false,
    ...processCreateParams(params)
  });
};
class ZodBoolean extends ZodType {
  _parse(input) {
    if (this._def.coerce) {
      input.data = Boolean(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.boolean) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.boolean,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
}
ZodBoolean.create = (params) => {
  return new ZodBoolean({
    typeName: ZodFirstPartyTypeKind.ZodBoolean,
    coerce: (params == null ? void 0 : params.coerce) || false,
    ...processCreateParams(params)
  });
};
class ZodDate extends ZodType {
  _parse(input) {
    if (this._def.coerce) {
      input.data = new Date(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.date) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.date,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    if (Number.isNaN(input.data.getTime())) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_date
      });
      return INVALID;
    }
    const status = new ParseStatus();
    let ctx = void 0;
    for (const check of this._def.checks) {
      if (check.kind === "min") {
        if (input.data.getTime() < check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            message: check.message,
            inclusive: true,
            exact: false,
            minimum: check.value,
            type: "date"
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        if (input.data.getTime() > check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            message: check.message,
            inclusive: true,
            exact: false,
            maximum: check.value,
            type: "date"
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return {
      status: status.value,
      value: new Date(input.data.getTime())
    };
  }
  _addCheck(check) {
    return new ZodDate({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  min(minDate, message) {
    return this._addCheck({
      kind: "min",
      value: minDate.getTime(),
      message: errorUtil.toString(message)
    });
  }
  max(maxDate, message) {
    return this._addCheck({
      kind: "max",
      value: maxDate.getTime(),
      message: errorUtil.toString(message)
    });
  }
  get minDate() {
    let min2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min2 === null || ch.value > min2)
          min2 = ch.value;
      }
    }
    return min2 != null ? new Date(min2) : null;
  }
  get maxDate() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2 != null ? new Date(max2) : null;
  }
}
ZodDate.create = (params) => {
  return new ZodDate({
    checks: [],
    coerce: (params == null ? void 0 : params.coerce) || false,
    typeName: ZodFirstPartyTypeKind.ZodDate,
    ...processCreateParams(params)
  });
};
class ZodSymbol extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.symbol) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.symbol,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
}
ZodSymbol.create = (params) => {
  return new ZodSymbol({
    typeName: ZodFirstPartyTypeKind.ZodSymbol,
    ...processCreateParams(params)
  });
};
class ZodUndefined extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.undefined) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.undefined,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
}
ZodUndefined.create = (params) => {
  return new ZodUndefined({
    typeName: ZodFirstPartyTypeKind.ZodUndefined,
    ...processCreateParams(params)
  });
};
class ZodNull extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.null) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.null,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
}
ZodNull.create = (params) => {
  return new ZodNull({
    typeName: ZodFirstPartyTypeKind.ZodNull,
    ...processCreateParams(params)
  });
};
class ZodAny extends ZodType {
  constructor() {
    super(...arguments);
    this._any = true;
  }
  _parse(input) {
    return OK(input.data);
  }
}
ZodAny.create = (params) => {
  return new ZodAny({
    typeName: ZodFirstPartyTypeKind.ZodAny,
    ...processCreateParams(params)
  });
};
class ZodUnknown extends ZodType {
  constructor() {
    super(...arguments);
    this._unknown = true;
  }
  _parse(input) {
    return OK(input.data);
  }
}
ZodUnknown.create = (params) => {
  return new ZodUnknown({
    typeName: ZodFirstPartyTypeKind.ZodUnknown,
    ...processCreateParams(params)
  });
};
class ZodNever extends ZodType {
  _parse(input) {
    const ctx = this._getOrReturnCtx(input);
    addIssueToContext(ctx, {
      code: ZodIssueCode.invalid_type,
      expected: ZodParsedType.never,
      received: ctx.parsedType
    });
    return INVALID;
  }
}
ZodNever.create = (params) => {
  return new ZodNever({
    typeName: ZodFirstPartyTypeKind.ZodNever,
    ...processCreateParams(params)
  });
};
class ZodVoid extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.undefined) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.void,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
}
ZodVoid.create = (params) => {
  return new ZodVoid({
    typeName: ZodFirstPartyTypeKind.ZodVoid,
    ...processCreateParams(params)
  });
};
class ZodArray extends ZodType {
  _parse(input) {
    const { ctx, status } = this._processInputParams(input);
    const def = this._def;
    if (ctx.parsedType !== ZodParsedType.array) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.array,
        received: ctx.parsedType
      });
      return INVALID;
    }
    if (def.exactLength !== null) {
      const tooBig = ctx.data.length > def.exactLength.value;
      const tooSmall = ctx.data.length < def.exactLength.value;
      if (tooBig || tooSmall) {
        addIssueToContext(ctx, {
          code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,
          minimum: tooSmall ? def.exactLength.value : void 0,
          maximum: tooBig ? def.exactLength.value : void 0,
          type: "array",
          inclusive: true,
          exact: true,
          message: def.exactLength.message
        });
        status.dirty();
      }
    }
    if (def.minLength !== null) {
      if (ctx.data.length < def.minLength.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_small,
          minimum: def.minLength.value,
          type: "array",
          inclusive: true,
          exact: false,
          message: def.minLength.message
        });
        status.dirty();
      }
    }
    if (def.maxLength !== null) {
      if (ctx.data.length > def.maxLength.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_big,
          maximum: def.maxLength.value,
          type: "array",
          inclusive: true,
          exact: false,
          message: def.maxLength.message
        });
        status.dirty();
      }
    }
    if (ctx.common.async) {
      return Promise.all([...ctx.data].map((item, i) => {
        return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));
      })).then((result2) => {
        return ParseStatus.mergeArray(status, result2);
      });
    }
    const result = [...ctx.data].map((item, i) => {
      return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));
    });
    return ParseStatus.mergeArray(status, result);
  }
  get element() {
    return this._def.type;
  }
  min(minLength, message) {
    return new ZodArray({
      ...this._def,
      minLength: { value: minLength, message: errorUtil.toString(message) }
    });
  }
  max(maxLength, message) {
    return new ZodArray({
      ...this._def,
      maxLength: { value: maxLength, message: errorUtil.toString(message) }
    });
  }
  length(len, message) {
    return new ZodArray({
      ...this._def,
      exactLength: { value: len, message: errorUtil.toString(message) }
    });
  }
  nonempty(message) {
    return this.min(1, message);
  }
}
ZodArray.create = (schema, params) => {
  return new ZodArray({
    type: schema,
    minLength: null,
    maxLength: null,
    exactLength: null,
    typeName: ZodFirstPartyTypeKind.ZodArray,
    ...processCreateParams(params)
  });
};
function deepPartialify(schema) {
  if (schema instanceof ZodObject) {
    const newShape = {};
    for (const key in schema.shape) {
      const fieldSchema = schema.shape[key];
      newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));
    }
    return new ZodObject({
      ...schema._def,
      shape: () => newShape
    });
  } else if (schema instanceof ZodArray) {
    return new ZodArray({
      ...schema._def,
      type: deepPartialify(schema.element)
    });
  } else if (schema instanceof ZodOptional) {
    return ZodOptional.create(deepPartialify(schema.unwrap()));
  } else if (schema instanceof ZodNullable) {
    return ZodNullable.create(deepPartialify(schema.unwrap()));
  } else if (schema instanceof ZodTuple) {
    return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));
  } else {
    return schema;
  }
}
class ZodObject extends ZodType {
  constructor() {
    super(...arguments);
    this._cached = null;
    this.nonstrict = this.passthrough;
    this.augment = this.extend;
  }
  _getCached() {
    if (this._cached !== null)
      return this._cached;
    const shape = this._def.shape();
    const keys = util.objectKeys(shape);
    this._cached = { shape, keys };
    return this._cached;
  }
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.object) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.object,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    const { status, ctx } = this._processInputParams(input);
    const { shape, keys: shapeKeys } = this._getCached();
    const extraKeys = [];
    if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) {
      for (const key in ctx.data) {
        if (!shapeKeys.includes(key)) {
          extraKeys.push(key);
        }
      }
    }
    const pairs = [];
    for (const key of shapeKeys) {
      const keyValidator = shape[key];
      const value = ctx.data[key];
      pairs.push({
        key: { status: "valid", value: key },
        value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),
        alwaysSet: key in ctx.data
      });
    }
    if (this._def.catchall instanceof ZodNever) {
      const unknownKeys = this._def.unknownKeys;
      if (unknownKeys === "passthrough") {
        for (const key of extraKeys) {
          pairs.push({
            key: { status: "valid", value: key },
            value: { status: "valid", value: ctx.data[key] }
          });
        }
      } else if (unknownKeys === "strict") {
        if (extraKeys.length > 0) {
          addIssueToContext(ctx, {
            code: ZodIssueCode.unrecognized_keys,
            keys: extraKeys
          });
          status.dirty();
        }
      } else if (unknownKeys === "strip") ;
      else {
        throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);
      }
    } else {
      const catchall = this._def.catchall;
      for (const key of extraKeys) {
        const value = ctx.data[key];
        pairs.push({
          key: { status: "valid", value: key },
          value: catchall._parse(
            new ParseInputLazyPath(ctx, value, ctx.path, key)
            //, ctx.child(key), value, getParsedType(value)
          ),
          alwaysSet: key in ctx.data
        });
      }
    }
    if (ctx.common.async) {
      return Promise.resolve().then(async () => {
        const syncPairs = [];
        for (const pair of pairs) {
          const key = await pair.key;
          const value = await pair.value;
          syncPairs.push({
            key,
            value,
            alwaysSet: pair.alwaysSet
          });
        }
        return syncPairs;
      }).then((syncPairs) => {
        return ParseStatus.mergeObjectSync(status, syncPairs);
      });
    } else {
      return ParseStatus.mergeObjectSync(status, pairs);
    }
  }
  get shape() {
    return this._def.shape();
  }
  strict(message) {
    errorUtil.errToObj;
    return new ZodObject({
      ...this._def,
      unknownKeys: "strict",
      ...message !== void 0 ? {
        errorMap: (issue, ctx) => {
          var _a2, _b2;
          const defaultError = ((_b2 = (_a2 = this._def).errorMap) == null ? void 0 : _b2.call(_a2, issue, ctx).message) ?? ctx.defaultError;
          if (issue.code === "unrecognized_keys")
            return {
              message: errorUtil.errToObj(message).message ?? defaultError
            };
          return {
            message: defaultError
          };
        }
      } : {}
    });
  }
  strip() {
    return new ZodObject({
      ...this._def,
      unknownKeys: "strip"
    });
  }
  passthrough() {
    return new ZodObject({
      ...this._def,
      unknownKeys: "passthrough"
    });
  }
  // const AugmentFactory =
  //   <Def extends ZodObjectDef>(def: Def) =>
  //   <Augmentation extends ZodRawShape>(
  //     augmentation: Augmentation
  //   ): ZodObject<
  //     extendShape<ReturnType<Def["shape"]>, Augmentation>,
  //     Def["unknownKeys"],
  //     Def["catchall"]
  //   > => {
  //     return new ZodObject({
  //       ...def,
  //       shape: () => ({
  //         ...def.shape(),
  //         ...augmentation,
  //       }),
  //     }) as any;
  //   };
  extend(augmentation) {
    return new ZodObject({
      ...this._def,
      shape: () => ({
        ...this._def.shape(),
        ...augmentation
      })
    });
  }
  /**
   * Prior to zod@1.0.12 there was a bug in the
   * inferred type of merged objects. Please
   * upgrade if you are experiencing issues.
   */
  merge(merging) {
    const merged = new ZodObject({
      unknownKeys: merging._def.unknownKeys,
      catchall: merging._def.catchall,
      shape: () => ({
        ...this._def.shape(),
        ...merging._def.shape()
      }),
      typeName: ZodFirstPartyTypeKind.ZodObject
    });
    return merged;
  }
  // merge<
  //   Incoming extends AnyZodObject,
  //   Augmentation extends Incoming["shape"],
  //   NewOutput extends {
  //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
  //       ? Augmentation[k]["_output"]
  //       : k extends keyof Output
  //       ? Output[k]
  //       : never;
  //   },
  //   NewInput extends {
  //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
  //       ? Augmentation[k]["_input"]
  //       : k extends keyof Input
  //       ? Input[k]
  //       : never;
  //   }
  // >(
  //   merging: Incoming
  // ): ZodObject<
  //   extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
  //   Incoming["_def"]["unknownKeys"],
  //   Incoming["_def"]["catchall"],
  //   NewOutput,
  //   NewInput
  // > {
  //   const merged: any = new ZodObject({
  //     unknownKeys: merging._def.unknownKeys,
  //     catchall: merging._def.catchall,
  //     shape: () =>
  //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
  //     typeName: ZodFirstPartyTypeKind.ZodObject,
  //   }) as any;
  //   return merged;
  // }
  setKey(key, schema) {
    return this.augment({ [key]: schema });
  }
  // merge<Incoming extends AnyZodObject>(
  //   merging: Incoming
  // ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
  // ZodObject<
  //   extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
  //   Incoming["_def"]["unknownKeys"],
  //   Incoming["_def"]["catchall"]
  // > {
  //   // const mergedShape = objectUtil.mergeShapes(
  //   //   this._def.shape(),
  //   //   merging._def.shape()
  //   // );
  //   const merged: any = new ZodObject({
  //     unknownKeys: merging._def.unknownKeys,
  //     catchall: merging._def.catchall,
  //     shape: () =>
  //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
  //     typeName: ZodFirstPartyTypeKind.ZodObject,
  //   }) as any;
  //   return merged;
  // }
  catchall(index2) {
    return new ZodObject({
      ...this._def,
      catchall: index2
    });
  }
  pick(mask) {
    const shape = {};
    for (const key of util.objectKeys(mask)) {
      if (mask[key] && this.shape[key]) {
        shape[key] = this.shape[key];
      }
    }
    return new ZodObject({
      ...this._def,
      shape: () => shape
    });
  }
  omit(mask) {
    const shape = {};
    for (const key of util.objectKeys(this.shape)) {
      if (!mask[key]) {
        shape[key] = this.shape[key];
      }
    }
    return new ZodObject({
      ...this._def,
      shape: () => shape
    });
  }
  /**
   * @deprecated
   */
  deepPartial() {
    return deepPartialify(this);
  }
  partial(mask) {
    const newShape = {};
    for (const key of util.objectKeys(this.shape)) {
      const fieldSchema = this.shape[key];
      if (mask && !mask[key]) {
        newShape[key] = fieldSchema;
      } else {
        newShape[key] = fieldSchema.optional();
      }
    }
    return new ZodObject({
      ...this._def,
      shape: () => newShape
    });
  }
  required(mask) {
    const newShape = {};
    for (const key of util.objectKeys(this.shape)) {
      if (mask && !mask[key]) {
        newShape[key] = this.shape[key];
      } else {
        const fieldSchema = this.shape[key];
        let newField = fieldSchema;
        while (newField instanceof ZodOptional) {
          newField = newField._def.innerType;
        }
        newShape[key] = newField;
      }
    }
    return new ZodObject({
      ...this._def,
      shape: () => newShape
    });
  }
  keyof() {
    return createZodEnum(util.objectKeys(this.shape));
  }
}
ZodObject.create = (shape, params) => {
  return new ZodObject({
    shape: () => shape,
    unknownKeys: "strip",
    catchall: ZodNever.create(),
    typeName: ZodFirstPartyTypeKind.ZodObject,
    ...processCreateParams(params)
  });
};
ZodObject.strictCreate = (shape, params) => {
  return new ZodObject({
    shape: () => shape,
    unknownKeys: "strict",
    catchall: ZodNever.create(),
    typeName: ZodFirstPartyTypeKind.ZodObject,
    ...processCreateParams(params)
  });
};
ZodObject.lazycreate = (shape, params) => {
  return new ZodObject({
    shape,
    unknownKeys: "strip",
    catchall: ZodNever.create(),
    typeName: ZodFirstPartyTypeKind.ZodObject,
    ...processCreateParams(params)
  });
};
class ZodUnion extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const options = this._def.options;
    function handleResults(results) {
      for (const result of results) {
        if (result.result.status === "valid") {
          return result.result;
        }
      }
      for (const result of results) {
        if (result.result.status === "dirty") {
          ctx.common.issues.push(...result.ctx.common.issues);
          return result.result;
        }
      }
      const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_union,
        unionErrors
      });
      return INVALID;
    }
    if (ctx.common.async) {
      return Promise.all(options.map(async (option) => {
        const childCtx = {
          ...ctx,
          common: {
            ...ctx.common,
            issues: []
          },
          parent: null
        };
        return {
          result: await option._parseAsync({
            data: ctx.data,
            path: ctx.path,
            parent: childCtx
          }),
          ctx: childCtx
        };
      })).then(handleResults);
    } else {
      let dirty = void 0;
      const issues = [];
      for (const option of options) {
        const childCtx = {
          ...ctx,
          common: {
            ...ctx.common,
            issues: []
          },
          parent: null
        };
        const result = option._parseSync({
          data: ctx.data,
          path: ctx.path,
          parent: childCtx
        });
        if (result.status === "valid") {
          return result;
        } else if (result.status === "dirty" && !dirty) {
          dirty = { result, ctx: childCtx };
        }
        if (childCtx.common.issues.length) {
          issues.push(childCtx.common.issues);
        }
      }
      if (dirty) {
        ctx.common.issues.push(...dirty.ctx.common.issues);
        return dirty.result;
      }
      const unionErrors = issues.map((issues2) => new ZodError(issues2));
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_union,
        unionErrors
      });
      return INVALID;
    }
  }
  get options() {
    return this._def.options;
  }
}
ZodUnion.create = (types, params) => {
  return new ZodUnion({
    options: types,
    typeName: ZodFirstPartyTypeKind.ZodUnion,
    ...processCreateParams(params)
  });
};
function mergeValues(a, b) {
  const aType = getParsedType(a);
  const bType = getParsedType(b);
  if (a === b) {
    return { valid: true, data: a };
  } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {
    const bKeys = util.objectKeys(b);
    const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
    const newObj = { ...a, ...b };
    for (const key of sharedKeys) {
      const sharedValue = mergeValues(a[key], b[key]);
      if (!sharedValue.valid) {
        return { valid: false };
      }
      newObj[key] = sharedValue.data;
    }
    return { valid: true, data: newObj };
  } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {
    if (a.length !== b.length) {
      return { valid: false };
    }
    const newArray = [];
    for (let index2 = 0; index2 < a.length; index2++) {
      const itemA = a[index2];
      const itemB = b[index2];
      const sharedValue = mergeValues(itemA, itemB);
      if (!sharedValue.valid) {
        return { valid: false };
      }
      newArray.push(sharedValue.data);
    }
    return { valid: true, data: newArray };
  } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {
    return { valid: true, data: a };
  } else {
    return { valid: false };
  }
}
class ZodIntersection extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    const handleParsed = (parsedLeft, parsedRight) => {
      if (isAborted(parsedLeft) || isAborted(parsedRight)) {
        return INVALID;
      }
      const merged = mergeValues(parsedLeft.value, parsedRight.value);
      if (!merged.valid) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.invalid_intersection_types
        });
        return INVALID;
      }
      if (isDirty(parsedLeft) || isDirty(parsedRight)) {
        status.dirty();
      }
      return { status: status.value, value: merged.data };
    };
    if (ctx.common.async) {
      return Promise.all([
        this._def.left._parseAsync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        }),
        this._def.right._parseAsync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        })
      ]).then(([left, right]) => handleParsed(left, right));
    } else {
      return handleParsed(this._def.left._parseSync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      }), this._def.right._parseSync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      }));
    }
  }
}
ZodIntersection.create = (left, right, params) => {
  return new ZodIntersection({
    left,
    right,
    typeName: ZodFirstPartyTypeKind.ZodIntersection,
    ...processCreateParams(params)
  });
};
class ZodTuple extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.array) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.array,
        received: ctx.parsedType
      });
      return INVALID;
    }
    if (ctx.data.length < this._def.items.length) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.too_small,
        minimum: this._def.items.length,
        inclusive: true,
        exact: false,
        type: "array"
      });
      return INVALID;
    }
    const rest = this._def.rest;
    if (!rest && ctx.data.length > this._def.items.length) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.too_big,
        maximum: this._def.items.length,
        inclusive: true,
        exact: false,
        type: "array"
      });
      status.dirty();
    }
    const items = [...ctx.data].map((item, itemIndex) => {
      const schema = this._def.items[itemIndex] || this._def.rest;
      if (!schema)
        return null;
      return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));
    }).filter((x) => !!x);
    if (ctx.common.async) {
      return Promise.all(items).then((results) => {
        return ParseStatus.mergeArray(status, results);
      });
    } else {
      return ParseStatus.mergeArray(status, items);
    }
  }
  get items() {
    return this._def.items;
  }
  rest(rest) {
    return new ZodTuple({
      ...this._def,
      rest
    });
  }
}
ZodTuple.create = (schemas, params) => {
  if (!Array.isArray(schemas)) {
    throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
  }
  return new ZodTuple({
    items: schemas,
    typeName: ZodFirstPartyTypeKind.ZodTuple,
    rest: null,
    ...processCreateParams(params)
  });
};
class ZodMap extends ZodType {
  get keySchema() {
    return this._def.keyType;
  }
  get valueSchema() {
    return this._def.valueType;
  }
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.map) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.map,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const keyType = this._def.keyType;
    const valueType = this._def.valueType;
    const pairs = [...ctx.data.entries()].map(([key, value], index2) => {
      return {
        key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index2, "key"])),
        value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index2, "value"]))
      };
    });
    if (ctx.common.async) {
      const finalMap = /* @__PURE__ */ new Map();
      return Promise.resolve().then(async () => {
        for (const pair of pairs) {
          const key = await pair.key;
          const value = await pair.value;
          if (key.status === "aborted" || value.status === "aborted") {
            return INVALID;
          }
          if (key.status === "dirty" || value.status === "dirty") {
            status.dirty();
          }
          finalMap.set(key.value, value.value);
        }
        return { status: status.value, value: finalMap };
      });
    } else {
      const finalMap = /* @__PURE__ */ new Map();
      for (const pair of pairs) {
        const key = pair.key;
        const value = pair.value;
        if (key.status === "aborted" || value.status === "aborted") {
          return INVALID;
        }
        if (key.status === "dirty" || value.status === "dirty") {
          status.dirty();
        }
        finalMap.set(key.value, value.value);
      }
      return { status: status.value, value: finalMap };
    }
  }
}
ZodMap.create = (keyType, valueType, params) => {
  return new ZodMap({
    valueType,
    keyType,
    typeName: ZodFirstPartyTypeKind.ZodMap,
    ...processCreateParams(params)
  });
};
class ZodSet extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.set) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.set,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const def = this._def;
    if (def.minSize !== null) {
      if (ctx.data.size < def.minSize.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_small,
          minimum: def.minSize.value,
          type: "set",
          inclusive: true,
          exact: false,
          message: def.minSize.message
        });
        status.dirty();
      }
    }
    if (def.maxSize !== null) {
      if (ctx.data.size > def.maxSize.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_big,
          maximum: def.maxSize.value,
          type: "set",
          inclusive: true,
          exact: false,
          message: def.maxSize.message
        });
        status.dirty();
      }
    }
    const valueType = this._def.valueType;
    function finalizeSet(elements2) {
      const parsedSet = /* @__PURE__ */ new Set();
      for (const element of elements2) {
        if (element.status === "aborted")
          return INVALID;
        if (element.status === "dirty")
          status.dirty();
        parsedSet.add(element.value);
      }
      return { status: status.value, value: parsedSet };
    }
    const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));
    if (ctx.common.async) {
      return Promise.all(elements).then((elements2) => finalizeSet(elements2));
    } else {
      return finalizeSet(elements);
    }
  }
  min(minSize, message) {
    return new ZodSet({
      ...this._def,
      minSize: { value: minSize, message: errorUtil.toString(message) }
    });
  }
  max(maxSize, message) {
    return new ZodSet({
      ...this._def,
      maxSize: { value: maxSize, message: errorUtil.toString(message) }
    });
  }
  size(size2, message) {
    return this.min(size2, message).max(size2, message);
  }
  nonempty(message) {
    return this.min(1, message);
  }
}
ZodSet.create = (valueType, params) => {
  return new ZodSet({
    valueType,
    minSize: null,
    maxSize: null,
    typeName: ZodFirstPartyTypeKind.ZodSet,
    ...processCreateParams(params)
  });
};
class ZodLazy extends ZodType {
  get schema() {
    return this._def.getter();
  }
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const lazySchema = this._def.getter();
    return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });
  }
}
ZodLazy.create = (getter, params) => {
  return new ZodLazy({
    getter,
    typeName: ZodFirstPartyTypeKind.ZodLazy,
    ...processCreateParams(params)
  });
};
class ZodLiteral extends ZodType {
  _parse(input) {
    if (input.data !== this._def.value) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        received: ctx.data,
        code: ZodIssueCode.invalid_literal,
        expected: this._def.value
      });
      return INVALID;
    }
    return { status: "valid", value: input.data };
  }
  get value() {
    return this._def.value;
  }
}
ZodLiteral.create = (value, params) => {
  return new ZodLiteral({
    value,
    typeName: ZodFirstPartyTypeKind.ZodLiteral,
    ...processCreateParams(params)
  });
};
function createZodEnum(values, params) {
  return new ZodEnum({
    values,
    typeName: ZodFirstPartyTypeKind.ZodEnum,
    ...processCreateParams(params)
  });
}
class ZodEnum extends ZodType {
  _parse(input) {
    if (typeof input.data !== "string") {
      const ctx = this._getOrReturnCtx(input);
      const expectedValues = this._def.values;
      addIssueToContext(ctx, {
        expected: util.joinValues(expectedValues),
        received: ctx.parsedType,
        code: ZodIssueCode.invalid_type
      });
      return INVALID;
    }
    if (!this._cache) {
      this._cache = new Set(this._def.values);
    }
    if (!this._cache.has(input.data)) {
      const ctx = this._getOrReturnCtx(input);
      const expectedValues = this._def.values;
      addIssueToContext(ctx, {
        received: ctx.data,
        code: ZodIssueCode.invalid_enum_value,
        options: expectedValues
      });
      return INVALID;
    }
    return OK(input.data);
  }
  get options() {
    return this._def.values;
  }
  get enum() {
    const enumValues = {};
    for (const val of this._def.values) {
      enumValues[val] = val;
    }
    return enumValues;
  }
  get Values() {
    const enumValues = {};
    for (const val of this._def.values) {
      enumValues[val] = val;
    }
    return enumValues;
  }
  get Enum() {
    const enumValues = {};
    for (const val of this._def.values) {
      enumValues[val] = val;
    }
    return enumValues;
  }
  extract(values, newDef = this._def) {
    return ZodEnum.create(values, {
      ...this._def,
      ...newDef
    });
  }
  exclude(values, newDef = this._def) {
    return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {
      ...this._def,
      ...newDef
    });
  }
}
ZodEnum.create = createZodEnum;
class ZodNativeEnum extends ZodType {
  _parse(input) {
    const nativeEnumValues = util.getValidEnumValues(this._def.values);
    const ctx = this._getOrReturnCtx(input);
    if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {
      const expectedValues = util.objectValues(nativeEnumValues);
      addIssueToContext(ctx, {
        expected: util.joinValues(expectedValues),
        received: ctx.parsedType,
        code: ZodIssueCode.invalid_type
      });
      return INVALID;
    }
    if (!this._cache) {
      this._cache = new Set(util.getValidEnumValues(this._def.values));
    }
    if (!this._cache.has(input.data)) {
      const expectedValues = util.objectValues(nativeEnumValues);
      addIssueToContext(ctx, {
        received: ctx.data,
        code: ZodIssueCode.invalid_enum_value,
        options: expectedValues
      });
      return INVALID;
    }
    return OK(input.data);
  }
  get enum() {
    return this._def.values;
  }
}
ZodNativeEnum.create = (values, params) => {
  return new ZodNativeEnum({
    values,
    typeName: ZodFirstPartyTypeKind.ZodNativeEnum,
    ...processCreateParams(params)
  });
};
class ZodPromise extends ZodType {
  unwrap() {
    return this._def.type;
  }
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.promise,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);
    return OK(promisified.then((data) => {
      return this._def.type.parseAsync(data, {
        path: ctx.path,
        errorMap: ctx.common.contextualErrorMap
      });
    }));
  }
}
ZodPromise.create = (schema, params) => {
  return new ZodPromise({
    type: schema,
    typeName: ZodFirstPartyTypeKind.ZodPromise,
    ...processCreateParams(params)
  });
};
class ZodEffects extends ZodType {
  innerType() {
    return this._def.schema;
  }
  sourceType() {
    return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
  }
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    const effect = this._def.effect || null;
    const checkCtx = {
      addIssue: (arg) => {
        addIssueToContext(ctx, arg);
        if (arg.fatal) {
          status.abort();
        } else {
          status.dirty();
        }
      },
      get path() {
        return ctx.path;
      }
    };
    checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
    if (effect.type === "preprocess") {
      const processed = effect.transform(ctx.data, checkCtx);
      if (ctx.common.async) {
        return Promise.resolve(processed).then(async (processed2) => {
          if (status.value === "aborted")
            return INVALID;
          const result = await this._def.schema._parseAsync({
            data: processed2,
            path: ctx.path,
            parent: ctx
          });
          if (result.status === "aborted")
            return INVALID;
          if (result.status === "dirty")
            return DIRTY(result.value);
          if (status.value === "dirty")
            return DIRTY(result.value);
          return result;
        });
      } else {
        if (status.value === "aborted")
          return INVALID;
        const result = this._def.schema._parseSync({
          data: processed,
          path: ctx.path,
          parent: ctx
        });
        if (result.status === "aborted")
          return INVALID;
        if (result.status === "dirty")
          return DIRTY(result.value);
        if (status.value === "dirty")
          return DIRTY(result.value);
        return result;
      }
    }
    if (effect.type === "refinement") {
      const executeRefinement = (acc) => {
        const result = effect.refinement(acc, checkCtx);
        if (ctx.common.async) {
          return Promise.resolve(result);
        }
        if (result instanceof Promise) {
          throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
        }
        return acc;
      };
      if (ctx.common.async === false) {
        const inner = this._def.schema._parseSync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        });
        if (inner.status === "aborted")
          return INVALID;
        if (inner.status === "dirty")
          status.dirty();
        executeRefinement(inner.value);
        return { status: status.value, value: inner.value };
      } else {
        return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {
          if (inner.status === "aborted")
            return INVALID;
          if (inner.status === "dirty")
            status.dirty();
          return executeRefinement(inner.value).then(() => {
            return { status: status.value, value: inner.value };
          });
        });
      }
    }
    if (effect.type === "transform") {
      if (ctx.common.async === false) {
        const base = this._def.schema._parseSync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        });
        if (!isValid(base))
          return INVALID;
        const result = effect.transform(base.value, checkCtx);
        if (result instanceof Promise) {
          throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);
        }
        return { status: status.value, value: result };
      } else {
        return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {
          if (!isValid(base))
            return INVALID;
          return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({
            status: status.value,
            value: result
          }));
        });
      }
    }
    util.assertNever(effect);
  }
}
ZodEffects.create = (schema, effect, params) => {
  return new ZodEffects({
    schema,
    typeName: ZodFirstPartyTypeKind.ZodEffects,
    effect,
    ...processCreateParams(params)
  });
};
ZodEffects.createWithPreprocess = (preprocess, schema, params) => {
  return new ZodEffects({
    schema,
    effect: { type: "preprocess", transform: preprocess },
    typeName: ZodFirstPartyTypeKind.ZodEffects,
    ...processCreateParams(params)
  });
};
class ZodOptional extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType === ZodParsedType.undefined) {
      return OK(void 0);
    }
    return this._def.innerType._parse(input);
  }
  unwrap() {
    return this._def.innerType;
  }
}
ZodOptional.create = (type, params) => {
  return new ZodOptional({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodOptional,
    ...processCreateParams(params)
  });
};
class ZodNullable extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType === ZodParsedType.null) {
      return OK(null);
    }
    return this._def.innerType._parse(input);
  }
  unwrap() {
    return this._def.innerType;
  }
}
ZodNullable.create = (type, params) => {
  return new ZodNullable({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodNullable,
    ...processCreateParams(params)
  });
};
class ZodDefault extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    let data = ctx.data;
    if (ctx.parsedType === ZodParsedType.undefined) {
      data = this._def.defaultValue();
    }
    return this._def.innerType._parse({
      data,
      path: ctx.path,
      parent: ctx
    });
  }
  removeDefault() {
    return this._def.innerType;
  }
}
ZodDefault.create = (type, params) => {
  return new ZodDefault({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodDefault,
    defaultValue: typeof params.default === "function" ? params.default : () => params.default,
    ...processCreateParams(params)
  });
};
class ZodCatch extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const newCtx = {
      ...ctx,
      common: {
        ...ctx.common,
        issues: []
      }
    };
    const result = this._def.innerType._parse({
      data: newCtx.data,
      path: newCtx.path,
      parent: {
        ...newCtx
      }
    });
    if (isAsync(result)) {
      return result.then((result2) => {
        return {
          status: "valid",
          value: result2.status === "valid" ? result2.value : this._def.catchValue({
            get error() {
              return new ZodError(newCtx.common.issues);
            },
            input: newCtx.data
          })
        };
      });
    } else {
      return {
        status: "valid",
        value: result.status === "valid" ? result.value : this._def.catchValue({
          get error() {
            return new ZodError(newCtx.common.issues);
          },
          input: newCtx.data
        })
      };
    }
  }
  removeCatch() {
    return this._def.innerType;
  }
}
ZodCatch.create = (type, params) => {
  return new ZodCatch({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodCatch,
    catchValue: typeof params.catch === "function" ? params.catch : () => params.catch,
    ...processCreateParams(params)
  });
};
class ZodNaN extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.nan) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.nan,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return { status: "valid", value: input.data };
  }
}
ZodNaN.create = (params) => {
  return new ZodNaN({
    typeName: ZodFirstPartyTypeKind.ZodNaN,
    ...processCreateParams(params)
  });
};
class ZodBranded extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const data = ctx.data;
    return this._def.type._parse({
      data,
      path: ctx.path,
      parent: ctx
    });
  }
  unwrap() {
    return this._def.type;
  }
}
class ZodPipeline extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.common.async) {
      const handleAsync = async () => {
        const inResult = await this._def.in._parseAsync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        });
        if (inResult.status === "aborted")
          return INVALID;
        if (inResult.status === "dirty") {
          status.dirty();
          return DIRTY(inResult.value);
        } else {
          return this._def.out._parseAsync({
            data: inResult.value,
            path: ctx.path,
            parent: ctx
          });
        }
      };
      return handleAsync();
    } else {
      const inResult = this._def.in._parseSync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      });
      if (inResult.status === "aborted")
        return INVALID;
      if (inResult.status === "dirty") {
        status.dirty();
        return {
          status: "dirty",
          value: inResult.value
        };
      } else {
        return this._def.out._parseSync({
          data: inResult.value,
          path: ctx.path,
          parent: ctx
        });
      }
    }
  }
  static create(a, b) {
    return new ZodPipeline({
      in: a,
      out: b,
      typeName: ZodFirstPartyTypeKind.ZodPipeline
    });
  }
}
class ZodReadonly extends ZodType {
  _parse(input) {
    const result = this._def.innerType._parse(input);
    const freeze = (data) => {
      if (isValid(data)) {
        data.value = Object.freeze(data.value);
      }
      return data;
    };
    return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);
  }
  unwrap() {
    return this._def.innerType;
  }
}
ZodReadonly.create = (type, params) => {
  return new ZodReadonly({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodReadonly,
    ...processCreateParams(params)
  });
};
var ZodFirstPartyTypeKind;
(function(ZodFirstPartyTypeKind2) {
  ZodFirstPartyTypeKind2["ZodString"] = "ZodString";
  ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber";
  ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN";
  ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt";
  ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean";
  ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate";
  ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol";
  ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined";
  ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull";
  ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny";
  ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown";
  ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever";
  ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid";
  ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray";
  ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject";
  ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion";
  ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion";
  ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection";
  ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple";
  ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord";
  ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap";
  ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet";
  ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction";
  ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy";
  ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral";
  ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum";
  ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects";
  ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum";
  ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional";
  ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable";
  ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault";
  ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch";
  ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
  ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
  ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
  ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly";
})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
const stringType = ZodString.create;
const anyType = ZodAny.create;
ZodNever.create;
ZodArray.create;
const objectType = ZodObject.create;
ZodUnion.create;
ZodIntersection.create;
ZodTuple.create;
ZodEnum.create;
ZodPromise.create;
ZodOptional.create;
ZodNullable.create;
function HelpText({ children, className }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `cy:text-base cy:italic cy:text-foreground cy:font-normal cy:my-1 cy:block${className ? ` ${className}` : ""}`, children });
}
const basicInfoSchema = objectType({
  companyName: stringType().min(1, { message: "Company name is required" }),
  websiteUrl: stringType().min(1, { message: "Website URL is required" }).url({ message: "Website URL must be a valid URL" }),
  websiteName: stringType().min(1, { message: "Website name is required" })
});
function BasicInformationStep({
  data,
  onChange,
  externalErrors
}) {
  const [errors, setErrors] = reactExports.useState({});
  const handleChange = (field, value) => {
    const newData = { ...data, [field]: value };
    if (field in basicInfoSchema.shape) {
      const fieldSchema = objectType({ [field]: basicInfoSchema.shape[field] });
      const result = fieldSchema.safeParse({ [field]: value });
      if (!result.success) {
        setErrors((prev) => {
          var _a2;
          return {
            ...prev,
            [field]: ((_a2 = result.error.errors[0]) == null ? void 0 : _a2.message) || ""
          };
        });
      } else {
        setErrors((prev) => ({ ...prev, [field]: void 0 }));
      }
    }
    onChange(newData, field);
  };
  const displayError = (field) => {
    return (externalErrors == null ? void 0 : externalErrors[field]) || errors[field];
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:text-2xl cy:font-semibold cy:mb-2", children: "Basic information" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:text-secondary-foreground! cy:text-base! cy:antialiased", children: "To get started, tell us about your business and website. Fields with an asterisk (*) must be filled in." })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6 cy:mt-10", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "companyName",
            className: "cy:text-lg cy:font-semibold",
            children: "Organisation name*"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Example Inc." }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "companyName",
            value: data.companyName,
            onChange: (e) => handleChange("companyName", e.target.value),
            className: "cy:mt-2",
            "aria-invalid": !!displayError("companyName"),
            "aria-describedby": displayError("companyName") ? "companyName-error" : void 0
          }
        ),
        displayError("companyName") && /* @__PURE__ */ jsxRuntimeExports.jsx(
          "div",
          {
            id: "companyName-error",
            className: "cy:text-red-600 cy:text-sm cy:mt-1",
            children: displayError("companyName")
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "websiteUrl",
            className: "cy:text-lg cy:font-semibold",
            children: "Website*"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: https://yourwebsite.com" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "websiteUrl",
            value: data.websiteUrl,
            onChange: (e) => handleChange("websiteUrl", e.target.value),
            className: "cy:mt-1",
            "aria-invalid": !!displayError("websiteUrl"),
            "aria-describedby": displayError("websiteUrl") ? "websiteUrl-error" : void 0
          }
        ),
        displayError("websiteUrl") && /* @__PURE__ */ jsxRuntimeExports.jsx(
          "div",
          {
            id: "websiteUrl-error",
            className: "cy:text-red-600 cy:text-sm cy:mt-1",
            children: displayError("websiteUrl")
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "websiteName",
            className: "cy:text-lg cy:font-semibold",
            children: "Website name*"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Example Site" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "websiteName",
            value: data.websiteName,
            onChange: (e) => handleChange("websiteName", e.target.value),
            className: "cy:mt-1",
            "aria-invalid": !!displayError("websiteName"),
            "aria-describedby": displayError("websiteName") ? "websiteName-error" : void 0
          }
        ),
        displayError("websiteName") && /* @__PURE__ */ jsxRuntimeExports.jsx(
          "div",
          {
            id: "websiteName-error",
            className: "cy:text-red-600 cy:text-sm cy:mt-1",
            children: displayError("websiteName")
          }
        )
      ] })
    ] })
  ] });
}
const TooltipIcon = (props) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
  "svg",
  {
    width: 15,
    height: 15,
    viewBox: "0 0 16 16",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    ...props,
    children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("g", { clipPath: "url(#clip0_144_3707)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "path",
        {
          d: "M8 0.833008C12.2339 0.833184 15.6658 4.26608 15.666 8.5C15.6658 12.7339 12.2339 16.1658 8 16.166C3.76608 16.1658 0.333184 12.7339 0.333008 8.5C0.333184 4.26608 3.76608 0.833184 8 0.833008ZM8 7.75C7.5859 7.75 7.25018 8.08594 7.25 8.5V11.166L7.25391 11.2432C7.29238 11.6213 7.61172 11.916 8 11.916C8.38828 11.916 8.70762 11.6213 8.74609 11.2432L8.75 11.166V8.5L8.74609 8.42285C8.70747 8.04488 8.38817 7.75 8 7.75ZM8 5.08301C7.5859 5.08301 7.25018 5.41894 7.25 5.83301C7.25 6.24722 7.58579 6.58301 8 6.58301H8.00684L8.08301 6.5791C8.46134 6.54083 8.75684 6.22144 8.75684 5.83301C8.75667 5.44472 8.46126 5.12516 8.08301 5.08691L8.00684 5.08301H8Z",
          fill: "#404041"
        }
      ) }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_144_3707)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        "rect",
        {
          width: 16,
          height: 16,
          fill: "white",
          transform: "translate(0 0.5)"
        }
      ) }) })
    ]
  }
);
var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
  createPopperScope
]);
var usePopperScope = createPopperScope();
var PROVIDER_NAME = "TooltipProvider";
var DEFAULT_DELAY_DURATION = 700;
var TOOLTIP_OPEN = "tooltip.open";
var [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);
var TooltipProvider$1 = (props) => {
  const {
    __scopeTooltip,
    delayDuration = DEFAULT_DELAY_DURATION,
    skipDelayDuration = 300,
    disableHoverableContent = false,
    children
  } = props;
  const isOpenDelayedRef = reactExports.useRef(true);
  const isPointerInTransitRef = reactExports.useRef(false);
  const skipDelayTimerRef = reactExports.useRef(0);
  reactExports.useEffect(() => {
    const skipDelayTimer = skipDelayTimerRef.current;
    return () => window.clearTimeout(skipDelayTimer);
  }, []);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    TooltipProviderContextProvider,
    {
      scope: __scopeTooltip,
      isOpenDelayedRef,
      delayDuration,
      onOpen: reactExports.useCallback(() => {
        window.clearTimeout(skipDelayTimerRef.current);
        isOpenDelayedRef.current = false;
      }, []),
      onClose: reactExports.useCallback(() => {
        window.clearTimeout(skipDelayTimerRef.current);
        skipDelayTimerRef.current = window.setTimeout(
          () => isOpenDelayedRef.current = true,
          skipDelayDuration
        );
      }, [skipDelayDuration]),
      isPointerInTransitRef,
      onPointerInTransitChange: reactExports.useCallback((inTransit) => {
        isPointerInTransitRef.current = inTransit;
      }, []),
      disableHoverableContent,
      children
    }
  );
};
TooltipProvider$1.displayName = PROVIDER_NAME;
var TOOLTIP_NAME = "Tooltip";
var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
var Tooltip$1 = (props) => {
  const {
    __scopeTooltip,
    children,
    open: openProp,
    defaultOpen,
    onOpenChange,
    disableHoverableContent: disableHoverableContentProp,
    delayDuration: delayDurationProp
  } = props;
  const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
  const popperScope = usePopperScope(__scopeTooltip);
  const [trigger, setTrigger] = reactExports.useState(null);
  const contentId = useId();
  const openTimerRef = reactExports.useRef(0);
  const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;
  const delayDuration = delayDurationProp ?? providerContext.delayDuration;
  const wasOpenDelayedRef = reactExports.useRef(false);
  const [open, setOpen] = useControllableState({
    prop: openProp,
    defaultProp: defaultOpen ?? false,
    onChange: (open2) => {
      if (open2) {
        providerContext.onOpen();
        document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
      } else {
        providerContext.onClose();
      }
      onOpenChange == null ? void 0 : onOpenChange(open2);
    },
    caller: TOOLTIP_NAME
  });
  const stateAttribute = reactExports.useMemo(() => {
    return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
  }, [open]);
  const handleOpen = reactExports.useCallback(() => {
    window.clearTimeout(openTimerRef.current);
    openTimerRef.current = 0;
    wasOpenDelayedRef.current = false;
    setOpen(true);
  }, [setOpen]);
  const handleClose = reactExports.useCallback(() => {
    window.clearTimeout(openTimerRef.current);
    openTimerRef.current = 0;
    setOpen(false);
  }, [setOpen]);
  const handleDelayedOpen = reactExports.useCallback(() => {
    window.clearTimeout(openTimerRef.current);
    openTimerRef.current = window.setTimeout(() => {
      wasOpenDelayedRef.current = true;
      setOpen(true);
      openTimerRef.current = 0;
    }, delayDuration);
  }, [delayDuration, setOpen]);
  reactExports.useEffect(() => {
    return () => {
      if (openTimerRef.current) {
        window.clearTimeout(openTimerRef.current);
        openTimerRef.current = 0;
      }
    };
  }, []);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Root2$3, { ...popperScope, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
    TooltipContextProvider,
    {
      scope: __scopeTooltip,
      contentId,
      open,
      stateAttribute,
      trigger,
      onTriggerChange: setTrigger,
      onTriggerEnter: reactExports.useCallback(() => {
        if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();
        else handleOpen();
      }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),
      onTriggerLeave: reactExports.useCallback(() => {
        if (disableHoverableContent) {
          handleClose();
        } else {
          window.clearTimeout(openTimerRef.current);
          openTimerRef.current = 0;
        }
      }, [handleClose, disableHoverableContent]),
      onOpen: handleOpen,
      onClose: handleClose,
      disableHoverableContent,
      children
    }
  ) });
};
Tooltip$1.displayName = TOOLTIP_NAME;
var TRIGGER_NAME$1 = "TooltipTrigger";
var TooltipTrigger$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeTooltip, ...triggerProps } = props;
    const context = useTooltipContext(TRIGGER_NAME$1, __scopeTooltip);
    const providerContext = useTooltipProviderContext(TRIGGER_NAME$1, __scopeTooltip);
    const popperScope = usePopperScope(__scopeTooltip);
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);
    const isPointerDownRef = reactExports.useRef(false);
    const hasPointerMoveOpenedRef = reactExports.useRef(false);
    const handlePointerUp = reactExports.useCallback(() => isPointerDownRef.current = false, []);
    reactExports.useEffect(() => {
      return () => document.removeEventListener("pointerup", handlePointerUp);
    }, [handlePointerUp]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        "aria-describedby": context.open ? context.contentId : void 0,
        "data-state": context.stateAttribute,
        ...triggerProps,
        ref: composedRefs,
        onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
          if (event.pointerType === "touch") return;
          if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {
            context.onTriggerEnter();
            hasPointerMoveOpenedRef.current = true;
          }
        }),
        onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {
          context.onTriggerLeave();
          hasPointerMoveOpenedRef.current = false;
        }),
        onPointerDown: composeEventHandlers(props.onPointerDown, () => {
          if (context.open) {
            context.onClose();
          }
          isPointerDownRef.current = true;
          document.addEventListener("pointerup", handlePointerUp, { once: true });
        }),
        onFocus: composeEventHandlers(props.onFocus, () => {
          if (!isPointerDownRef.current) context.onOpen();
        }),
        onBlur: composeEventHandlers(props.onBlur, context.onClose),
        onClick: composeEventHandlers(props.onClick, context.onClose)
      }
    ) });
  }
);
TooltipTrigger$1.displayName = TRIGGER_NAME$1;
var PORTAL_NAME = "TooltipPortal";
var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
  forceMount: void 0
});
var TooltipPortal = (props) => {
  const { __scopeTooltip, forceMount, children, container } = props;
  const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$4, { asChild: true, container, children }) }) });
};
TooltipPortal.displayName = PORTAL_NAME;
var CONTENT_NAME$1 = "TooltipContent";
var TooltipContent$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const portalContext = usePortalContext(CONTENT_NAME$1, props.__scopeTooltip);
    const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
    const context = useTooltipContext(CONTENT_NAME$1, props.__scopeTooltip);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
  }
);
var TooltipContentHoverable = reactExports.forwardRef((props, forwardedRef) => {
  const context = useTooltipContext(CONTENT_NAME$1, props.__scopeTooltip);
  const providerContext = useTooltipProviderContext(CONTENT_NAME$1, props.__scopeTooltip);
  const ref = reactExports.useRef(null);
  const composedRefs = useComposedRefs(forwardedRef, ref);
  const [pointerGraceArea, setPointerGraceArea] = reactExports.useState(null);
  const { trigger, onClose } = context;
  const content = ref.current;
  const { onPointerInTransitChange } = providerContext;
  const handleRemoveGraceArea = reactExports.useCallback(() => {
    setPointerGraceArea(null);
    onPointerInTransitChange(false);
  }, [onPointerInTransitChange]);
  const handleCreateGraceArea = reactExports.useCallback(
    (event, hoverTarget) => {
      const currentTarget = event.currentTarget;
      const exitPoint = { x: event.clientX, y: event.clientY };
      const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
      const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
      const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
      const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);
      setPointerGraceArea(graceArea);
      onPointerInTransitChange(true);
    },
    [onPointerInTransitChange]
  );
  reactExports.useEffect(() => {
    return () => handleRemoveGraceArea();
  }, [handleRemoveGraceArea]);
  reactExports.useEffect(() => {
    if (trigger && content) {
      const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
      const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
      trigger.addEventListener("pointerleave", handleTriggerLeave);
      content.addEventListener("pointerleave", handleContentLeave);
      return () => {
        trigger.removeEventListener("pointerleave", handleTriggerLeave);
        content.removeEventListener("pointerleave", handleContentLeave);
      };
    }
  }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);
  reactExports.useEffect(() => {
    if (pointerGraceArea) {
      const handleTrackPointerGrace = (event) => {
        const target = event.target;
        const pointerPosition = { x: event.clientX, y: event.clientY };
        const hasEnteredTarget = (trigger == null ? void 0 : trigger.contains(target)) || (content == null ? void 0 : content.contains(target));
        const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
        if (hasEnteredTarget) {
          handleRemoveGraceArea();
        } else if (isPointerOutsideGraceArea) {
          handleRemoveGraceArea();
          onClose();
        }
      };
      document.addEventListener("pointermove", handleTrackPointerGrace);
      return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
    }
  }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipContentImpl, { ...props, ref: composedRefs });
});
var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
var Slottable = /* @__PURE__ */ createSlottable("TooltipContent");
var TooltipContentImpl = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeTooltip,
      children,
      "aria-label": ariaLabel,
      onEscapeKeyDown,
      onPointerDownOutside,
      ...contentProps
    } = props;
    const context = useTooltipContext(CONTENT_NAME$1, __scopeTooltip);
    const popperScope = usePopperScope(__scopeTooltip);
    const { onClose } = context;
    reactExports.useEffect(() => {
      document.addEventListener(TOOLTIP_OPEN, onClose);
      return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
    }, [onClose]);
    reactExports.useEffect(() => {
      if (context.trigger) {
        const handleScroll2 = (event) => {
          const target = event.target;
          if (target == null ? void 0 : target.contains(context.trigger)) onClose();
        };
        window.addEventListener("scroll", handleScroll2, { capture: true });
        return () => window.removeEventListener("scroll", handleScroll2, { capture: true });
      }
    }, [context.trigger, onClose]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      DismissableLayer,
      {
        asChild: true,
        disableOutsidePointerEvents: false,
        onEscapeKeyDown,
        onPointerDownOutside,
        onFocusOutside: (event) => event.preventDefault(),
        onDismiss: onClose,
        children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Content$1,
          {
            "data-state": context.stateAttribute,
            ...popperScope,
            ...contentProps,
            ref: forwardedRef,
            style: {
              ...contentProps.style,
              // re-namespace exposed content custom properties
              ...{
                "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
                "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
                "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
                "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
                "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
              }
            },
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(Slottable, { children }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Root$4, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
            ]
          }
        )
      }
    );
  }
);
TooltipContent$1.displayName = CONTENT_NAME$1;
var ARROW_NAME = "TooltipArrow";
var TooltipArrow = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeTooltip, ...arrowProps } = props;
    const popperScope = usePopperScope(__scopeTooltip);
    const visuallyHiddenContentContext = useVisuallyHiddenContentContext(
      ARROW_NAME,
      __scopeTooltip
    );
    return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
  }
);
TooltipArrow.displayName = ARROW_NAME;
function getExitSideFromRect(point, rect) {
  const top = Math.abs(rect.top - point.y);
  const bottom = Math.abs(rect.bottom - point.y);
  const right = Math.abs(rect.right - point.x);
  const left = Math.abs(rect.left - point.x);
  switch (Math.min(top, bottom, right, left)) {
    case left:
      return "left";
    case right:
      return "right";
    case top:
      return "top";
    case bottom:
      return "bottom";
    default:
      throw new Error("unreachable");
  }
}
function getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
  const paddedExitPoints = [];
  switch (exitSide) {
    case "top":
      paddedExitPoints.push(
        { x: exitPoint.x - padding, y: exitPoint.y + padding },
        { x: exitPoint.x + padding, y: exitPoint.y + padding }
      );
      break;
    case "bottom":
      paddedExitPoints.push(
        { x: exitPoint.x - padding, y: exitPoint.y - padding },
        { x: exitPoint.x + padding, y: exitPoint.y - padding }
      );
      break;
    case "left":
      paddedExitPoints.push(
        { x: exitPoint.x + padding, y: exitPoint.y - padding },
        { x: exitPoint.x + padding, y: exitPoint.y + padding }
      );
      break;
    case "right":
      paddedExitPoints.push(
        { x: exitPoint.x - padding, y: exitPoint.y - padding },
        { x: exitPoint.x - padding, y: exitPoint.y + padding }
      );
      break;
  }
  return paddedExitPoints;
}
function getPointsFromRect(rect) {
  const { top, right, bottom, left } = rect;
  return [
    { x: left, y: top },
    { x: right, y: top },
    { x: right, y: bottom },
    { x: left, y: bottom }
  ];
}
function isPointInPolygon(point, polygon) {
  const { x, y } = point;
  let inside = false;
  for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
    const ii = polygon[i];
    const jj = polygon[j];
    const xi = ii.x;
    const yi = ii.y;
    const xj = jj.x;
    const yj = jj.y;
    const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
    if (intersect) inside = !inside;
  }
  return inside;
}
function getHull(points) {
  const newPoints = points.slice();
  newPoints.sort((a, b) => {
    if (a.x < b.x) return -1;
    else if (a.x > b.x) return 1;
    else if (a.y < b.y) return -1;
    else if (a.y > b.y) return 1;
    else return 0;
  });
  return getHullPresorted(newPoints);
}
function getHullPresorted(points) {
  if (points.length <= 1) return points.slice();
  const upperHull = [];
  for (let i = 0; i < points.length; i++) {
    const p2 = points[i];
    while (upperHull.length >= 2) {
      const q = upperHull[upperHull.length - 1];
      const r2 = upperHull[upperHull.length - 2];
      if ((q.x - r2.x) * (p2.y - r2.y) >= (q.y - r2.y) * (p2.x - r2.x)) upperHull.pop();
      else break;
    }
    upperHull.push(p2);
  }
  upperHull.pop();
  const lowerHull = [];
  for (let i = points.length - 1; i >= 0; i--) {
    const p2 = points[i];
    while (lowerHull.length >= 2) {
      const q = lowerHull[lowerHull.length - 1];
      const r2 = lowerHull[lowerHull.length - 2];
      if ((q.x - r2.x) * (p2.y - r2.y) >= (q.y - r2.y) * (p2.x - r2.x)) lowerHull.pop();
      else break;
    }
    lowerHull.push(p2);
  }
  lowerHull.pop();
  if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
    return upperHull;
  } else {
    return upperHull.concat(lowerHull);
  }
}
var Provider = TooltipProvider$1;
var Root3 = Tooltip$1;
var Trigger = TooltipTrigger$1;
var Portal = TooltipPortal;
var Content2 = TooltipContent$1;
var Arrow2 = TooltipArrow;
function TooltipProvider({
  delayDuration = 0,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Provider,
    {
      "data-slot": "tooltip-provider",
      delayDuration,
      ...props
    }
  );
}
function Tooltip({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Root3, { "data-slot": "tooltip", ...props }) });
}
function TooltipTrigger({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Trigger, { "data-slot": "tooltip-trigger", ...props });
}
function TooltipContent({
  className,
  sideOffset = 0,
  children,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
    Content2,
    {
      "data-slot": "tooltip-content",
      sideOffset,
      collisionPadding: { top: 8, right: 320, bottom: 8, left: 8 },
      avoidCollisions: true,
      className: cn$1(
        "cy:bg-[#2E3240] cy:text-primary-foreground cy:animate-in cy:fade-in-0 cy:zoom-in-95 cy:data-[state=closed]:animate-out cy:data-[state=closed]:fade-out-0 cy:data-[state=closed]:zoom-out-95 cy:data-[side=bottom]:slide-in-from-top-2 cy:data-[side=left]:slide-in-from-right-2 cy:data-[side=right]:slide-in-from-left-2 cy:data-[side=top]:slide-in-from-bottom-2 cy:z-[9999] cy:max-w-xs cy:w-fit cy:origin-(--radix-tooltip-content-transform-origin) cy:rounded-md cy:px-3 cy:py-1.5 cy:text-xs cy:break-words cy:whitespace-normal",
        className
      ),
      style: {
        maxWidth: "min(calc(100vw - 16px), 20rem)",
        wordWrap: "break-word",
        overflowWrap: "break-word",
        ...props.style
      },
      ...props,
      children: [
        children,
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Arrow2,
          {
            className: "cy:fill-[#2E3240]",
            width: 11,
            height: 5,
            style: {
              transform: "translateY(-2.5px)"
            }
          }
        )
      ]
    }
  ) });
}
function TooltipWrapper({ content, className }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip, { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipIcon, { className: `wysg:h-4 wysg:w-4 wysg:text-gray-500 wysg:inline-block ${className}` }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      TooltipContent,
      {
        align: "start",
        side: "right",
        sideOffset: 8,
        className: "wysg:text-white wysg:rounded-md wysg:px-3 wysg:text-sm wysg:max-w-xs",
        children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "wysg:text-xs! wysg:text-white! wysg:m-0! wysg:break-words wysg:whitespace-normal", children: content })
      }
    )
  ] }) });
}
const effortOptions = [
  "Accessibility is part of our mission statement.",
  "Accessibility is part of our internal policies.",
  "Accessibility is integrated into our procurement practices.",
  "An accessibility officer or official has been appointed.",
  "Continual accessibility training is provided for employees.",
  "Clear accessibility targets and responsibilities exist within the organisation.",
  "Formal accessibility quality assurance methods exist within the organisation."
];
function YourEffortsStep({ data, onChange }) {
  const handleEffortToggle = (effort, checked) => {
    const updatedEfforts = checked ? [...data.selectedEfforts, effort] : data.selectedEfforts.filter((e) => e !== effort);
    onChange({ ...data, selectedEfforts: updatedEfforts }, "selectedEfforts");
  };
  const handleAdditionalEffortChange = (index2, value) => {
    const updatedAdditionalEfforts = [...data.additionalEfforts];
    updatedAdditionalEfforts[index2] = value;
    onChange(
      { ...data, additionalEfforts: updatedAdditionalEfforts },
      "additionalEfforts"
    );
  };
  const addAdditionalEffort = () => {
    if (data.additionalEfforts.length < 5) {
      onChange(
        { ...data, additionalEfforts: [...data.additionalEfforts, ""] },
        "additionalEfforts"
      );
    }
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:text-[28px] cy:font-semibold cy:mb-2", children: "Your efforts" }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "cy:text-base! cy:flow-root! cy:gap-0! cy:mt-10", children: [
        "Select any current actions your company or organisation is taking to ensure web accessibility.",
        /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { className: "cy:ml-1", content: "This helps users understand your commitment and builds trust in your statement." })
      ] })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:space-y-3", children: effortOptions.map((effort, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
      "div",
      {
        className: "cy:flex cy:items-start cy:space-x-3",
        children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Checkbox,
            {
              id: `effort-${index2}`,
              checked: data.selectedEfforts.includes(effort),
              onCheckedChange: (checked) => handleEffortToggle(effort, checked),
              className: "cy:mr-3! cy:rounded-[4px]!"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Label,
            {
              htmlFor: `effort-${index2}`,
              className: "cy:text-base cy:font-normal! cy:mb-1! cy:-mt-1",
              children: effort
            }
          )
        ]
      },
      index2
    )) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4", children: [
      data.additionalEfforts.map((effort, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Label,
          {
            htmlFor: `additional-${index2}`,
            className: "cy:text-lg cy:font-semibold",
            children: [
              "Additional efforts ",
              index2 + 1
            ]
          }
        ),
        index2 === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: We include people with disabilities in our user testing processes." }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: `additional-${index2}`,
            value: effort,
            onChange: (e) => handleAdditionalEffortChange(index2, e.target.value),
            className: "cy:mt-1"
          }
        )
      ] }, index2)),
      data.additionalEfforts.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "button",
        {
          type: "button",
          onClick: addAdditionalEffort,
          className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
            "Additional efforts"
          ]
        }
      )
    ] })
  ] });
}
var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus";
var EVENT_OPTIONS = { bubbles: false, cancelable: true };
var GROUP_NAME = "RovingFocusGroup";
var [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);
var [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(
  GROUP_NAME,
  [createCollectionScope]
);
var [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);
var RovingFocusGroup = reactExports.forwardRef(
  (props, forwardedRef) => {
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsxRuntimeExports.jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });
  }
);
RovingFocusGroup.displayName = GROUP_NAME;
var RovingFocusGroupImpl = reactExports.forwardRef((props, forwardedRef) => {
  const {
    __scopeRovingFocusGroup,
    orientation,
    loop = false,
    dir,
    currentTabStopId: currentTabStopIdProp,
    defaultCurrentTabStopId,
    onCurrentTabStopIdChange,
    onEntryFocus,
    preventScrollOnEntryFocus = false,
    ...groupProps
  } = props;
  const ref = reactExports.useRef(null);
  const composedRefs = useComposedRefs(forwardedRef, ref);
  const direction = useDirection(dir);
  const [currentTabStopId, setCurrentTabStopId] = useControllableState({
    prop: currentTabStopIdProp,
    defaultProp: defaultCurrentTabStopId ?? null,
    onChange: onCurrentTabStopIdChange,
    caller: GROUP_NAME
  });
  const [isTabbingBackOut, setIsTabbingBackOut] = reactExports.useState(false);
  const handleEntryFocus = useCallbackRef$1(onEntryFocus);
  const getItems = useCollection(__scopeRovingFocusGroup);
  const isClickFocusRef = reactExports.useRef(false);
  const [focusableItemsCount, setFocusableItemsCount] = reactExports.useState(0);
  reactExports.useEffect(() => {
    const node = ref.current;
    if (node) {
      node.addEventListener(ENTRY_FOCUS, handleEntryFocus);
      return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);
    }
  }, [handleEntryFocus]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    RovingFocusProvider,
    {
      scope: __scopeRovingFocusGroup,
      orientation,
      dir: direction,
      loop,
      currentTabStopId,
      onItemFocus: reactExports.useCallback(
        (tabStopId) => setCurrentTabStopId(tabStopId),
        [setCurrentTabStopId]
      ),
      onItemShiftTab: reactExports.useCallback(() => setIsTabbingBackOut(true), []),
      onFocusableItemAdd: reactExports.useCallback(
        () => setFocusableItemsCount((prevCount) => prevCount + 1),
        []
      ),
      onFocusableItemRemove: reactExports.useCallback(
        () => setFocusableItemsCount((prevCount) => prevCount - 1),
        []
      ),
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        Primitive.div,
        {
          tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,
          "data-orientation": orientation,
          ...groupProps,
          ref: composedRefs,
          style: { outline: "none", ...props.style },
          onMouseDown: composeEventHandlers(props.onMouseDown, () => {
            isClickFocusRef.current = true;
          }),
          onFocus: composeEventHandlers(props.onFocus, (event) => {
            const isKeyboardFocus = !isClickFocusRef.current;
            if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {
              const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);
              event.currentTarget.dispatchEvent(entryFocusEvent);
              if (!entryFocusEvent.defaultPrevented) {
                const items = getItems().filter((item) => item.focusable);
                const activeItem = items.find((item) => item.active);
                const currentItem = items.find((item) => item.id === currentTabStopId);
                const candidateItems = [activeItem, currentItem, ...items].filter(
                  Boolean
                );
                const candidateNodes = candidateItems.map((item) => item.ref.current);
                focusFirst(candidateNodes, preventScrollOnEntryFocus);
              }
            }
            isClickFocusRef.current = false;
          }),
          onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))
        }
      )
    }
  );
});
var ITEM_NAME$1 = "RovingFocusGroupItem";
var RovingFocusGroupItem = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeRovingFocusGroup,
      focusable = true,
      active = false,
      tabStopId,
      children,
      ...itemProps
    } = props;
    const autoId = useId();
    const id = tabStopId || autoId;
    const context = useRovingFocusContext(ITEM_NAME$1, __scopeRovingFocusGroup);
    const isCurrentTabStop = context.currentTabStopId === id;
    const getItems = useCollection(__scopeRovingFocusGroup);
    const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;
    reactExports.useEffect(() => {
      if (focusable) {
        onFocusableItemAdd();
        return () => onFocusableItemRemove();
      }
    }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Collection.ItemSlot,
      {
        scope: __scopeRovingFocusGroup,
        id,
        focusable,
        active,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Primitive.span,
          {
            tabIndex: isCurrentTabStop ? 0 : -1,
            "data-orientation": context.orientation,
            ...itemProps,
            ref: forwardedRef,
            onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {
              if (!focusable) event.preventDefault();
              else context.onItemFocus(id);
            }),
            onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),
            onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
              if (event.key === "Tab" && event.shiftKey) {
                context.onItemShiftTab();
                return;
              }
              if (event.target !== event.currentTarget) return;
              const focusIntent = getFocusIntent(event, context.orientation, context.dir);
              if (focusIntent !== void 0) {
                if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;
                event.preventDefault();
                const items = getItems().filter((item) => item.focusable);
                let candidateNodes = items.map((item) => item.ref.current);
                if (focusIntent === "last") candidateNodes.reverse();
                else if (focusIntent === "prev" || focusIntent === "next") {
                  if (focusIntent === "prev") candidateNodes.reverse();
                  const currentIndex = candidateNodes.indexOf(event.currentTarget);
                  candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);
                }
                setTimeout(() => focusFirst(candidateNodes));
              }
            }),
            children: typeof children === "function" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children
          }
        )
      }
    );
  }
);
RovingFocusGroupItem.displayName = ITEM_NAME$1;
var MAP_KEY_TO_FOCUS_INTENT = {
  ArrowLeft: "prev",
  ArrowUp: "prev",
  ArrowRight: "next",
  ArrowDown: "next",
  PageUp: "first",
  Home: "first",
  PageDown: "last",
  End: "last"
};
function getDirectionAwareKey(key, dir) {
  if (dir !== "rtl") return key;
  return key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key;
}
function getFocusIntent(event, orientation, dir) {
  const key = getDirectionAwareKey(event.key, dir);
  if (orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key)) return void 0;
  if (orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key)) return void 0;
  return MAP_KEY_TO_FOCUS_INTENT[key];
}
function focusFirst(candidates, preventScroll = false) {
  const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
  for (const candidate of candidates) {
    if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
    candidate.focus({ preventScroll });
    if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
  }
}
function wrapArray(array, startIndex) {
  return array.map((_, index2) => array[(startIndex + index2) % array.length]);
}
var Root$1 = RovingFocusGroup;
var Item = RovingFocusGroupItem;
var RADIO_NAME = "Radio";
var [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);
var [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);
var Radio = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeRadio,
      name,
      checked = false,
      required,
      disabled,
      value = "on",
      onCheck,
      form,
      ...radioProps
    } = props;
    const [button, setButton] = reactExports.useState(null);
    const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));
    const hasConsumerStoppedPropagationRef = reactExports.useRef(false);
    const isFormControl = button ? form || !!button.closest("form") : true;
    return /* @__PURE__ */ jsxRuntimeExports.jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Primitive.button,
        {
          type: "button",
          role: "radio",
          "aria-checked": checked,
          "data-state": getState$1(checked),
          "data-disabled": disabled ? "" : void 0,
          disabled,
          value,
          ...radioProps,
          ref: composedRefs,
          onClick: composeEventHandlers(props.onClick, (event) => {
            if (!checked) onCheck == null ? void 0 : onCheck();
            if (isFormControl) {
              hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
              if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
            }
          })
        }
      ),
      isFormControl && /* @__PURE__ */ jsxRuntimeExports.jsx(
        RadioBubbleInput,
        {
          control: button,
          bubbles: !hasConsumerStoppedPropagationRef.current,
          name,
          value,
          checked,
          required,
          disabled,
          form,
          style: { transform: "translateX(-100%)" }
        }
      )
    ] });
  }
);
Radio.displayName = RADIO_NAME;
var INDICATOR_NAME = "RadioIndicator";
var RadioIndicator = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeRadio, forceMount, ...indicatorProps } = props;
    const context = useRadioContext(INDICATOR_NAME, __scopeRadio);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.span,
      {
        "data-state": getState$1(context.checked),
        "data-disabled": context.disabled ? "" : void 0,
        ...indicatorProps,
        ref: forwardedRef
      }
    ) });
  }
);
RadioIndicator.displayName = INDICATOR_NAME;
var BUBBLE_INPUT_NAME = "RadioBubbleInput";
var RadioBubbleInput = reactExports.forwardRef(
  ({
    __scopeRadio,
    control,
    checked,
    bubbles = true,
    ...props
  }, forwardedRef) => {
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(ref, forwardedRef);
    const prevChecked = usePrevious(checked);
    const controlSize = useSize(control);
    reactExports.useEffect(() => {
      const input = ref.current;
      if (!input) return;
      const inputProto = window.HTMLInputElement.prototype;
      const descriptor = Object.getOwnPropertyDescriptor(
        inputProto,
        "checked"
      );
      const setChecked = descriptor.set;
      if (prevChecked !== checked && setChecked) {
        const event = new Event("click", { bubbles });
        setChecked.call(input, checked);
        input.dispatchEvent(event);
      }
    }, [prevChecked, checked, bubbles]);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.input,
      {
        type: "radio",
        "aria-hidden": true,
        defaultChecked: checked,
        ...props,
        tabIndex: -1,
        ref: composedRefs,
        style: {
          ...props.style,
          ...controlSize,
          position: "absolute",
          pointerEvents: "none",
          opacity: 0,
          margin: 0
        }
      }
    );
  }
);
RadioBubbleInput.displayName = BUBBLE_INPUT_NAME;
function getState$1(checked) {
  return checked ? "checked" : "unchecked";
}
var ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
var RADIO_GROUP_NAME = "RadioGroup";
var [createRadioGroupContext, createRadioGroupScope] = createContextScope(RADIO_GROUP_NAME, [
  createRovingFocusGroupScope,
  createRadioScope
]);
var useRovingFocusGroupScope = createRovingFocusGroupScope();
var useRadioScope = createRadioScope();
var [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);
var RadioGroup$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeRadioGroup,
      name,
      defaultValue,
      value: valueProp,
      required = false,
      disabled = false,
      orientation,
      dir,
      loop = true,
      onValueChange,
      ...groupProps
    } = props;
    const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);
    const direction = useDirection(dir);
    const [value, setValue] = useControllableState({
      prop: valueProp,
      defaultProp: defaultValue ?? null,
      onChange: onValueChange,
      caller: RADIO_GROUP_NAME
    });
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      RadioGroupProvider,
      {
        scope: __scopeRadioGroup,
        name,
        required,
        disabled,
        value,
        onValueChange: setValue,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Root$1,
          {
            asChild: true,
            ...rovingFocusGroupScope,
            orientation,
            dir: direction,
            loop,
            children: /* @__PURE__ */ jsxRuntimeExports.jsx(
              Primitive.div,
              {
                role: "radiogroup",
                "aria-required": required,
                "aria-orientation": orientation,
                "data-disabled": disabled ? "" : void 0,
                dir: direction,
                ...groupProps,
                ref: forwardedRef
              }
            )
          }
        )
      }
    );
  }
);
RadioGroup$1.displayName = RADIO_GROUP_NAME;
var ITEM_NAME = "RadioGroupItem";
var RadioGroupItem$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeRadioGroup, disabled, ...itemProps } = props;
    const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);
    const isDisabled = context.disabled || disabled;
    const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);
    const radioScope = useRadioScope(__scopeRadioGroup);
    const ref = reactExports.useRef(null);
    const composedRefs = useComposedRefs(forwardedRef, ref);
    const checked = context.value === itemProps.value;
    const isArrowKeyPressedRef = reactExports.useRef(false);
    reactExports.useEffect(() => {
      const handleKeyDown = (event) => {
        if (ARROW_KEYS.includes(event.key)) {
          isArrowKeyPressedRef.current = true;
        }
      };
      const handleKeyUp = () => isArrowKeyPressedRef.current = false;
      document.addEventListener("keydown", handleKeyDown);
      document.addEventListener("keyup", handleKeyUp);
      return () => {
        document.removeEventListener("keydown", handleKeyDown);
        document.removeEventListener("keyup", handleKeyUp);
      };
    }, []);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Item,
      {
        asChild: true,
        ...rovingFocusGroupScope,
        focusable: !isDisabled,
        active: checked,
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Radio,
          {
            disabled: isDisabled,
            required: context.required,
            checked,
            ...radioScope,
            ...itemProps,
            name: context.name,
            ref: composedRefs,
            onCheck: () => context.onValueChange(itemProps.value),
            onKeyDown: composeEventHandlers((event) => {
              if (event.key === "Enter") event.preventDefault();
            }),
            onFocus: composeEventHandlers(itemProps.onFocus, () => {
              var _a2;
              if (isArrowKeyPressedRef.current) (_a2 = ref.current) == null ? void 0 : _a2.click();
            })
          }
        )
      }
    );
  }
);
RadioGroupItem$1.displayName = ITEM_NAME;
var INDICATOR_NAME2 = "RadioGroupIndicator";
var RadioGroupIndicator = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeRadioGroup, ...indicatorProps } = props;
    const radioScope = useRadioScope(__scopeRadioGroup);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });
  }
);
RadioGroupIndicator.displayName = INDICATOR_NAME2;
var Root2 = RadioGroup$1;
var Item2 = RadioGroupItem$1;
var Indicator = RadioGroupIndicator;
function RadioGroup({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Root2,
    {
      "data-slot": "radio-group",
      className: cn$1("cy:grid cy:gap-3", className),
      ...props
    }
  );
}
function RadioGroupItem({
  className,
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Item2,
    {
      "data-slot": "radio-group-item",
      className: cn$1(
        "cy:border-input cy:text-primary cy:focus-visible:border-ring cy:focus-visible:ring-ring/50 cy:aria-invalid:ring-destructive/20 cy:dark:aria-invalid:ring-destructive/40 cy:aria-invalid:border-destructive cy:dark:bg-input/30 cy:aspect-square cy:size-4 cy:shrink-0 cy:rounded-full cy:border cy:shadow-xs cy:transition-[color,box-shadow] cy:outline-none cy:focus-visible:ring-[3px] cy:disabled:cursor-not-allowed cy:disabled:opacity-50",
        className
      ),
      ...props,
      children: /* @__PURE__ */ jsxRuntimeExports.jsx(
        Indicator,
        {
          "data-slot": "radio-group-indicator",
          className: "cy:relative cy:flex cy:items-center cy:justify-center",
          children: /* @__PURE__ */ jsxRuntimeExports.jsx(Circle, { className: "cy:fill-primary cy:absolute cy:top-1/2 cy:left-1/2 cy:size-2 cy:-translate-x-1/2 cy:-translate-y-1/2" })
        }
      )
    }
  );
}
var COLLAPSIBLE_NAME = "Collapsible";
var [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);
var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
var Collapsible$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const {
      __scopeCollapsible,
      open: openProp,
      defaultOpen,
      disabled,
      onOpenChange,
      ...collapsibleProps
    } = props;
    const [open, setOpen] = useControllableState({
      prop: openProp,
      defaultProp: defaultOpen ?? false,
      onChange: onOpenChange,
      caller: COLLAPSIBLE_NAME
    });
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      CollapsibleProvider,
      {
        scope: __scopeCollapsible,
        disabled,
        contentId: useId(),
        open,
        onOpenToggle: reactExports.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
        children: /* @__PURE__ */ jsxRuntimeExports.jsx(
          Primitive.div,
          {
            "data-state": getState(open),
            "data-disabled": disabled ? "" : void 0,
            ...collapsibleProps,
            ref: forwardedRef
          }
        )
      }
    );
  }
);
Collapsible$1.displayName = COLLAPSIBLE_NAME;
var TRIGGER_NAME = "CollapsibleTrigger";
var CollapsibleTrigger$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { __scopeCollapsible, ...triggerProps } = props;
    const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(
      Primitive.button,
      {
        type: "button",
        "aria-controls": context.contentId,
        "aria-expanded": context.open || false,
        "data-state": getState(context.open),
        "data-disabled": context.disabled ? "" : void 0,
        disabled: context.disabled,
        ...triggerProps,
        ref: forwardedRef,
        onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
      }
    );
  }
);
CollapsibleTrigger$1.displayName = TRIGGER_NAME;
var CONTENT_NAME = "CollapsibleContent";
var CollapsibleContent$1 = reactExports.forwardRef(
  (props, forwardedRef) => {
    const { forceMount, ...contentProps } = props;
    const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);
    return /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
  }
);
CollapsibleContent$1.displayName = CONTENT_NAME;
var CollapsibleContentImpl = reactExports.forwardRef((props, forwardedRef) => {
  const { __scopeCollapsible, present, children, ...contentProps } = props;
  const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);
  const [isPresent, setIsPresent] = reactExports.useState(present);
  const ref = reactExports.useRef(null);
  const composedRefs = useComposedRefs(forwardedRef, ref);
  const heightRef = reactExports.useRef(0);
  const height = heightRef.current;
  const widthRef = reactExports.useRef(0);
  const width = widthRef.current;
  const isOpen = context.open || isPresent;
  const isMountAnimationPreventedRef = reactExports.useRef(isOpen);
  const originalStylesRef = reactExports.useRef(void 0);
  reactExports.useEffect(() => {
    const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);
    return () => cancelAnimationFrame(rAF);
  }, []);
  useLayoutEffect2(() => {
    const node = ref.current;
    if (node) {
      originalStylesRef.current = originalStylesRef.current || {
        transitionDuration: node.style.transitionDuration,
        animationName: node.style.animationName
      };
      node.style.transitionDuration = "0s";
      node.style.animationName = "none";
      const rect = node.getBoundingClientRect();
      heightRef.current = rect.height;
      widthRef.current = rect.width;
      if (!isMountAnimationPreventedRef.current) {
        node.style.transitionDuration = originalStylesRef.current.transitionDuration;
        node.style.animationName = originalStylesRef.current.animationName;
      }
      setIsPresent(present);
    }
  }, [context.open, present]);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    Primitive.div,
    {
      "data-state": getState(context.open),
      "data-disabled": context.disabled ? "" : void 0,
      id: context.contentId,
      hidden: !isOpen,
      ...contentProps,
      ref: composedRefs,
      style: {
        [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,
        [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,
        ...props.style
      },
      children: isOpen && children
    }
  );
});
function getState(open) {
  return open ? "open" : "closed";
}
var Root = Collapsible$1;
function Collapsible({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Root, { "data-slot": "collapsible", ...props });
}
function CollapsibleTrigger({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    CollapsibleTrigger$1,
    {
      "data-slot": "collapsible-trigger",
      ...props
    }
  );
}
function CollapsibleContent({
  ...props
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    CollapsibleContent$1,
    {
      "data-slot": "collapsible-content",
      ...props
    }
  );
}
const conformanceStatusSchema = objectType({
  standard: stringType().min(1, { message: "Accessibility standard is required" }),
  conformanceLevel: stringType().min(1, { message: "Conformance status is required" }),
  customStandard: stringType().optional(),
  additionalConsiderations: stringType().optional(),
  knownIssues: anyType(),
  unresolvedBarriers: stringType().optional(),
  contentOutsideScope: stringType().optional()
});
const standardOptions = [
  { value: "wcag22-aa", label: "WCAG 2.2 Level AA" },
  { value: "wcag21-aa", label: "WCAG 2.1 level AA" },
  { value: "wcag20-aa", label: "WCAG 2.0 level AA" },
  { value: "other", label: "Other (Please specify)" }
];
const conformanceLevels = [
  {
    value: "fully-conformant",
    label: "Fully conformant:",
    description: "The content fully conforms to the accessibility standard without any exceptions"
  },
  {
    value: "partially-conformant",
    label: "Partially conformant:",
    description: "Some parts of the content do not fully conform to the accessibility standard (you can indicate these parts in later sections of this form)"
  },
  {
    value: "non-conformant",
    label: "Non conformant:",
    description: "The content fully conforms to the accessibility standard without any exceptions"
  },
  {
    value: "not-assessed",
    label: "Not assessed",
    description: "The content has not been evaluated or the evaluation results are not available"
  }
];
function ConformanceStatusStep({
  data,
  onChange,
  externalErrors
}) {
  const [issuesOpen, setIssuesOpen] = reactExports.useState(true);
  const [barriersOpen, setBarriersOpen] = reactExports.useState(false);
  const [contentOutsideScopeOpen, setContentOutsideScopeOpen] = reactExports.useState(false);
  const [errors, setErrors] = reactExports.useState({});
  const handleStandardChange = (value) => {
    const fieldSchema = objectType({
      standard: conformanceStatusSchema.shape.standard
    });
    const result = fieldSchema.safeParse({ standard: value });
    if (!result.success) {
      setErrors((prev) => {
        var _a2;
        return {
          ...prev,
          standard: ((_a2 = result.error.errors[0]) == null ? void 0 : _a2.message) || ""
        };
      });
    } else {
      setErrors((prev) => ({ ...prev, standard: void 0 }));
    }
    onChange({ ...data, standard: value }, "standard");
  };
  const handleConformanceLevelChange = (value) => {
    const fieldSchema = objectType({
      conformanceLevel: conformanceStatusSchema.shape.conformanceLevel
    });
    const result = fieldSchema.safeParse({ conformanceLevel: value });
    if (!result.success) {
      setErrors((prev) => {
        var _a2;
        return {
          ...prev,
          conformanceLevel: ((_a2 = result.error.errors[0]) == null ? void 0 : _a2.message) || ""
        };
      });
    } else {
      setErrors((prev) => ({ ...prev, conformanceLevel: void 0 }));
    }
    onChange({ ...data, conformanceLevel: value }, "conformanceLevel");
  };
  const addKnownIssue = () => {
    if (data.knownIssues.length < 5) {
      onChange(
        {
          ...data,
          knownIssues: [...data.knownIssues, { title: "", description: "" }]
        },
        "knownIssues"
      );
    }
  };
  const updateKnownIssue = (index2, field, value) => {
    const updatedIssues = [...data.knownIssues];
    updatedIssues[index2][field] = value;
    onChange({ ...data, knownIssues: updatedIssues }, "knownIssues");
  };
  const displayError = (field) => {
    return (externalErrors == null ? void 0 : externalErrors[field]) || errors[field];
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:text-[28px]! cy:font-semibold cy:mb-2", children: "Conformance status" }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "span",
          {
            id: "standard",
            style: {
              position: "absolute",
              left: "-9999px",
              height: 0,
              width: 0
            },
            "aria-hidden": "true"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:flex! cy:items-center cy:gap-1 cy:mb-4!", children: [
          "Which accessibility standard have you been following?*",
          /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "Select the accessibility standard your organisation follows. The Web Content Accessibility Guidelines (WCAG) are globally recognised, and the current version is 2.2." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          RadioGroup,
          {
            value: data.standard,
            onValueChange: handleStandardChange,
            className: "cy:rounded-full!",
            children: standardOptions.map((option) => /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
              "div",
              {
                className: "cy:flex cy:items-start cy:space-x-2",
                children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    RadioGroupItem,
                    {
                      value: option.value,
                      id: option.value,
                      className: "cy:mt-1! cy:mr-3! cy:rounded-full!"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    Label,
                    {
                      htmlFor: option.value,
                      className: "cy:text-base cy:mb-0! cy:block",
                      children: option.label
                    }
                  )
                ]
              },
              option.value
            ) }))
          }
        ),
        displayError("standard") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:text-red-600 cy:text-sm cy:mt-1", children: displayError("standard") }),
        data.standard === "other" && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: WCAG 2.1 Level AAA" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Input,
            {
              value: data.customStandard,
              onChange: (e) => onChange({ ...data, customStandard: e.target.value }),
              className: "cy:mt-2"
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          "span",
          {
            id: "conformanceLevel",
            style: {
              position: "absolute",
              left: "-9999px",
              height: 0,
              width: 0
            },
            "aria-hidden": "true"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:flex! cy:items-center cy:gap-1 cy:mb-4!", children: [
          "Current content conformance status?*",
          /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "How closely does your website follow the accessibility standard mentioned above? Full conformance isn't always possible, and you can explain any exceptions or support options later in the form." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          RadioGroup,
          {
            value: data.conformanceLevel,
            onValueChange: handleConformanceLevelChange,
            children: conformanceLevels.map((level) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-1", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-start cy:space-x-2", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  RadioGroupItem,
                  {
                    value: level.value,
                    id: level.value,
                    className: "cy:mt-1! cy:mr-3! cy:rounded-full!"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  Label,
                  {
                    htmlFor: level.value,
                    className: "cy:text-base cy:font-semibold cy:mb-0!",
                    children: level.label
                  }
                )
              ] }),
              level.description && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:text-base cy:font-normal cy:ml-6 ", children: level.description })
            ] }, level.value))
          }
        ),
        displayError("conformanceLevel") && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:text-red-600 cy:text-sm cy:mt-1", children: displayError("conformanceLevel") })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-2", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Label,
          {
            htmlFor: "additional-considerations",
            className: "cy:text-lg cy:font-semibold cy:flex! cy:gap-1",
            children: [
              "Additional accessibility considerations",
              /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "Sometimes, additional accessibility features beyond the stated standard may be applied. For example, sign language videos or context-sensitive help. You can list these extra enhancements here." })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: While aiming for WCAG 2.2 Level AA conformance, we also implemented some Level AAA criteria, such as decorative-only images of text, data preservation after session expiration, and sign language interpretation in some videos." }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Textarea,
          {
            id: "additional-considerations",
            value: data.additionalConsiderations,
            onChange: (e) => onChange({ ...data, additionalConsiderations: e.target.value }),
            className: "cy:mt-2 cy:h-[140px] cy:rounded cy:text-base!",
            rows: 8
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:mb-4! cy:flex! cy:gap-1", children: [
          "Accessibility limitations",
          /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "List content that has accessibility limitations, explain the issue users may encounter, and why it occurs. If possible, suggest accessible alternatives or provide contact information for assistance.This helps maintain transparency and aligns with requirements such as the EU Web Accessibility Directive." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Collapsible,
          {
            open: issuesOpen,
            onOpenChange: setIssuesOpen,
            className: "cy:bg-white cy:px-7.5 cy:py-1",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "cy:flex cy:items-center cy:justify-between cy:w-full cy:text-left cy:border-b cy:pb-3", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cy:text-base cy:font-medium cy:grid cy:grid-cols-20 cy:gap-1", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-base cy:font-medium", children: "1. " }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-base cy:font-semibold cy:col-span-19", children: "Features/content that do not meet accessibility standards" })
                ] }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  ChevronDown,
                  {
                    className: `w-4 cy:h-4 cy:transition-transform ${issuesOpen ? "cy:cy:rotate-180" : ""}`
                  }
                )
              ] }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { className: "cy:space-y-4 cy:mt-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-20 cy:gap-1", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-1" }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:col-span-19 cy:space-y-4", children: [
                  data.knownIssues.map((issue, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-2", children: [
                    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:flex-col cy:gap-1", children: [
                      /* @__PURE__ */ jsxRuntimeExports.jsx(
                        Label,
                        {
                          htmlFor: `issue-title-${index2}`,
                          className: "cy:text-base cy:font-semibold",
                          children: "Title"
                        }
                      ),
                      /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Videos" }),
                      /* @__PURE__ */ jsxRuntimeExports.jsx(
                        Input,
                        {
                          id: `issue-title-${index2}`,
                          value: issue.title,
                          onChange: (e) => updateKnownIssue(index2, "title", e.target.value)
                        }
                      )
                    ] }),
                    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
                      /* @__PURE__ */ jsxRuntimeExports.jsx(
                        Label,
                        {
                          htmlFor: `issue-desc-${index2}`,
                          className: "cy:text-base cy:font-semibold",
                          children: "Issue description and expected resolution timeline"
                        }
                      ),
                      /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Our videos currently lack closed captions, and we plan to add accurate captions to all existing and new videos by the end of Q3 2025." }),
                      /* @__PURE__ */ jsxRuntimeExports.jsx(
                        Textarea,
                        {
                          id: `issue-desc-${index2}`,
                          value: issue.description,
                          onChange: (e) => updateKnownIssue(
                            index2,
                            "description",
                            e.target.value
                          ),
                          className: "cy:mt-2 cy:h-[118px] cy:rounded cy:text-base!"
                        }
                      )
                    ] })
                  ] }, index2)),
                  data.knownIssues.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
                    "button",
                    {
                      type: "button",
                      onClick: addKnownIssue,
                      className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none cy:mt-3",
                      children: [
                        /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                        "Add another issue"
                      ]
                    }
                  )
                ] })
              ] }) })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Collapsible,
          {
            open: barriersOpen,
            onOpenChange: setBarriersOpen,
            className: "cy:mt-4 cy:bg-white cy:px-7.5 cy:py-1",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "cy:flex cy:items-center cy:justify-between cy:w-full cy:text-left cy:border-b cy:pb-3", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cy:text-base cy:font-medium cy:grid cy:grid-cols-20 cy:gap-1", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-base cy:font-medium", children: "2. " }),
                  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cy:text-base cy:font-semibold cy:col-span-19 cy:space-x-3", children: [
                    "Unresolved accessibility barriers due to budget or technical limitations (Disproportionate burden)",
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      TooltipWrapper,
                      {
                        className: "cy:ml-1",
                        content: "Explain which accessibility issues cannot be resolved at this time, why (budget or technical limitations), and when you will review."
                      }
                    )
                  ] })
                ] }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  ChevronDown,
                  {
                    className: `w-4 cy:h-4 cy:transition-transform ${barriersOpen ? "cy:cy:rotate-180" : ""}`
                  }
                )
              ] }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { className: "cy:space-y-4 cy:mt-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-20 cy:gap-1", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-1" }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:col-span-19 cy:space-y-2", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    Label,
                    {
                      htmlFor: "unresolved-barriers",
                      className: "cy:text-base cy:font-semibold",
                      children: "Describe the issue"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Providing full video captions for our archived webinars is not currently possible due to budget limitations. We will review this annually." }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    Textarea,
                    {
                      id: "unresolved-barriers",
                      value: data.unresolvedBarriers,
                      onChange: (e) => onChange({
                        ...data,
                        unresolvedBarriers: e.target.value
                      }),
                      className: "cy:mt-2 cy:h-[118px] cy:rounded cy:text-base!",
                      rows: 8
                    }
                  )
                ] })
              ] }) })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Collapsible,
          {
            open: contentOutsideScopeOpen,
            onOpenChange: setContentOutsideScopeOpen,
            className: "cy:mt-4 cy:bg-white cy:px-7.5 cy:py-1",
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "cy:flex cy:items-center cy:justify-between cy:w-full cy:text-left cy:mb-2 cy:border-b cy:pb-3", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cy:text-base cy:font-medium cy:grid cy:grid-cols-20 cy:gap-1", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-base cy:font-medium", children: "3. " }),
                  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "cy:text-base cy:font-semibold cy:col-span-19 cy:space-x-3", children: [
                    "Content outside the scope of accessibility legislation",
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      TooltipWrapper,
                      {
                        className: "cy:ml-1",
                        content: "Describe any content that is not covered by accessibility laws, such as third-party content you do not control."
                      }
                    )
                  ] })
                ] }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  ChevronDown,
                  {
                    className: `w-4 cy:h-4 cy:transition-transform ${barriersOpen ? "cy:cy:rotate-180" : ""}`
                  }
                )
              ] }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { className: "cy:space-y-4 cy:mt-0", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-20 cy:gap-1", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:col-span-1" }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:col-span-19 cy:space-y-2", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    Label,
                    {
                      htmlFor: "content-outside-scope",
                      className: "cy:text-base cy:font-semibold",
                      children: "Describe the issue"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Live video streams without captions are currently exempt under the regulations." }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    Textarea,
                    {
                      id: "content-outside-scope",
                      value: data.contentOutsideScope,
                      onChange: (e) => onChange({ ...data, contentOutsideScope: e.target.value }),
                      className: "cy:mt-2 cy:h-[118px] cy:rounded cy:text-base!",
                      rows: 8
                    }
                  )
                ] })
              ] }) })
            ]
          }
        )
      ] })
    ] })
  ] });
}
const TECHNOLOGY_OPTIONS = [
  "HTML",
  "WAI-ARIA",
  "CSS",
  "JavaScript",
  "SMIL",
  "Other"
];
function TechnicalSpecificationsStep({
  data,
  onChange
}) {
  var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i, _j, _k, _l;
  const addCompatibleBrowser = () => {
    if (data.knownCompatibilities.browsers.length < 5) {
      onChange(
        {
          ...data,
          knownCompatibilities: {
            ...data.knownCompatibilities,
            browsers: [...data.knownCompatibilities.browsers, ""]
          }
        },
        "knownCompatibilities"
      );
    }
  };
  const updateCompatibleBrowser = (index2, value) => {
    const updated = [...data.knownCompatibilities.browsers];
    updated[index2] = value;
    onChange(
      {
        ...data,
        knownCompatibilities: {
          ...data.knownCompatibilities,
          browsers: updated
        }
      },
      "knownCompatibilities"
    );
  };
  const addCompatibleOS = () => {
    if (data.knownCompatibilities.operatingSystems.length < 5) {
      onChange(
        {
          ...data,
          knownCompatibilities: {
            ...data.knownCompatibilities,
            operatingSystems: [
              ...data.knownCompatibilities.operatingSystems,
              ""
            ]
          }
        },
        "knownCompatibilities"
      );
    }
  };
  const updateCompatibleOS = (index2, value) => {
    const updated = [...data.knownCompatibilities.operatingSystems];
    updated[index2] = value;
    onChange(
      {
        ...data,
        knownCompatibilities: {
          ...data.knownCompatibilities,
          operatingSystems: updated
        }
      },
      "knownCompatibilities"
    );
  };
  const addCompatibleAT = () => {
    if (data.knownCompatibilities.assistiveTechnologies.length < 5) {
      onChange(
        {
          ...data,
          knownCompatibilities: {
            ...data.knownCompatibilities,
            assistiveTechnologies: [
              ...data.knownCompatibilities.assistiveTechnologies,
              ""
            ]
          }
        },
        "knownCompatibilities"
      );
    }
  };
  const updateCompatibleAT = (index2, value) => {
    const updated = [...data.knownCompatibilities.assistiveTechnologies];
    updated[index2] = value;
    onChange(
      {
        ...data,
        knownCompatibilities: {
          ...data.knownCompatibilities,
          assistiveTechnologies: updated
        }
      },
      "knownCompatibilities"
    );
  };
  const addIncompatibleBrowser = () => {
    if (data.knownIncompatibilities.browsers.length < 5) {
      onChange(
        {
          ...data,
          knownIncompatibilities: {
            ...data.knownIncompatibilities,
            browsers: [...data.knownIncompatibilities.browsers, ""]
          }
        },
        "knownIncompatibilities"
      );
    }
  };
  const updateIncompatibleBrowser = (index2, value) => {
    const updated = [...data.knownIncompatibilities.browsers];
    updated[index2] = value;
    onChange(
      {
        ...data,
        knownIncompatibilities: {
          ...data.knownIncompatibilities,
          browsers: updated
        }
      },
      "knownIncompatibilities"
    );
  };
  const addIncompatibleOS = () => {
    if (data.knownIncompatibilities.operatingSystems.length < 5) {
      onChange(
        {
          ...data,
          knownIncompatibilities: {
            ...data.knownIncompatibilities,
            operatingSystems: [
              ...data.knownIncompatibilities.operatingSystems,
              ""
            ]
          }
        },
        "knownIncompatibilities"
      );
    }
  };
  const updateIncompatibleOS = (index2, value) => {
    const updated = [...data.knownIncompatibilities.operatingSystems];
    updated[index2] = value;
    onChange(
      {
        ...data,
        knownIncompatibilities: {
          ...data.knownIncompatibilities,
          operatingSystems: updated
        }
      },
      "knownIncompatibilities"
    );
  };
  const addIncompatibleAT = () => {
    if (data.knownIncompatibilities.assistiveTechnologies.length < 5) {
      onChange(
        {
          ...data,
          knownIncompatibilities: {
            ...data.knownIncompatibilities,
            assistiveTechnologies: [
              ...data.knownIncompatibilities.assistiveTechnologies,
              ""
            ]
          }
        },
        "knownIncompatibilities"
      );
    }
  };
  const updateIncompatibleAT = (index2, value) => {
    const updated = [...data.knownIncompatibilities.assistiveTechnologies];
    updated[index2] = value;
    onChange(
      {
        ...data,
        knownIncompatibilities: {
          ...data.knownIncompatibilities,
          assistiveTechnologies: updated
        }
      },
      "knownIncompatibilities"
    );
  };
  const handleTechToggle = (tech, checked) => {
    var _a3, _b3;
    const selected = checked ? [...((_a3 = data.technologyReliance) == null ? void 0 : _a3.selected) || [], tech] : (((_b3 = data.technologyReliance) == null ? void 0 : _b3.selected) || []).filter((t) => t !== tech);
    onChange(
      {
        ...data,
        technologyReliance: {
          ...data.technologyReliance,
          selected
        }
      },
      "technologyReliance"
    );
  };
  const handleTechOtherChange = (value) => {
    onChange(
      {
        ...data,
        technologyReliance: {
          ...data.technologyReliance,
          other: value
        }
      },
      "technologyReliance"
    );
  };
  const handleAssessmentToggle = (option, checked) => {
    var _a3, _b3;
    const selected = checked ? [...((_a3 = data.assessmentApproach) == null ? void 0 : _a3.selected) || [], option] : (((_b3 = data.assessmentApproach) == null ? void 0 : _b3.selected) || []).filter((o) => o !== option);
    onChange(
      {
        ...data,
        assessmentApproach: {
          ...data.assessmentApproach,
          selected
        }
      },
      "assessmentApproach"
    );
  };
  const handleAssessmentOtherChange = (idx, value) => {
    var _a3;
    const updated = [...((_a3 = data.assessmentApproach) == null ? void 0 : _a3.otherMethods) || []];
    updated[idx] = value;
    onChange(
      {
        ...data,
        assessmentApproach: {
          ...data.assessmentApproach,
          otherMethods: updated
        }
      },
      "assessmentApproach"
    );
  };
  const addAssessmentOther = () => {
    var _a3;
    onChange(
      {
        ...data,
        assessmentApproach: {
          ...data.assessmentApproach,
          otherMethods: [...((_a3 = data.assessmentApproach) == null ? void 0 : _a3.otherMethods) || [], ""]
        }
      },
      "assessmentApproach"
    );
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:text-[28px] cy:font-semibold cy:mb-2", children: "Technical specifications" }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:mb-6", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:mb-1! cy:block", children: [
          "Technology reliance",
          " ",
          /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { className: "cy:ml-1", content: "Some features rely on specific web technologies to be accessible. Mention these here so users understand why something may not work if a required technology is disabled or not supported." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:space-y-2 cy:mb-2", children: TECHNOLOGY_OPTIONS.map((tech) => {
          var _a3, _b3;
          return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "div",
            {
              className: "cy:flex cy:items-center cy:gap-2",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  Checkbox,
                  {
                    id: `tech-${tech}`,
                    checked: ((_b3 = (_a3 = data.technologyReliance) == null ? void 0 : _a3.selected) == null ? void 0 : _b3.includes(tech)) || false,
                    onCheckedChange: (checked) => handleTechToggle(tech, checked)
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  Label,
                  {
                    htmlFor: `tech-${tech}`,
                    className: "cy:text-base cy:font-normal cy:mb-0!",
                    children: tech === "Other" ? "Other (Please specify)" : tech
                  }
                )
              ]
            },
            tech
          ) });
        }) }),
        ((_b2 = (_a2 = data.technologyReliance) == null ? void 0 : _a2.selected) == null ? void 0 : _b2.includes("Other")) && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { className: "cy:ml-5 cy:flex cy:w-full", children: "Example: Python" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Input,
            {
              value: ((_c2 = data.technologyReliance) == null ? void 0 : _c2.other) || "",
              onChange: (e) => handleTechOtherChange(e.target.value),
              className: "cy:mt-1"
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:flex! cy:items-center cy:gap-1 cy:mb-4!", children: [
          "Compatibility with user environment",
          /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "Accessibility may not function consistently across all platforms and assistive tools. WCAG requires features to be accessibility supported. Listing tested environments helps users understand potential compatibility limitations." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4 cy:px-5 cy:py-4 cy:bg-white cy:rounded-sm", children: [
          data.knownCompatibilities.browsers.map((browser, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:gap-2 cy:flex cy:flex-col", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              Label,
              {
                htmlFor: `comp-browser-${index2}`,
                className: "cy:text-base cy:font-semibold",
                children: [
                  "Browser ",
                  index2 + 1
                ]
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Safari" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Input,
              {
                id: `comp-browser-${index2}`,
                value: browser,
                onChange: (e) => updateCompatibleBrowser(index2, e.target.value)
              }
            )
          ] }, index2)),
          data.knownCompatibilities.browsers.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "button",
            {
              type: "button",
              onClick: addCompatibleBrowser,
              className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                "Add another browser"
              ]
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4 cy:px-5 cy:py-4 cy:mt-6 cy:bg-white cy:rounded-sm", children: [
          data.knownCompatibilities.operatingSystems.map((os, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:gap-2 cy:flex cy:flex-col", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              Label,
              {
                htmlFor: `comp-os-${index2}`,
                className: "cy:text-base cy:font-semibold",
                children: [
                  "Operating system ",
                  index2 + 1
                ]
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example : Windows 11" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Input,
              {
                id: `comp-os-${index2}`,
                value: os,
                onChange: (e) => updateCompatibleOS(index2, e.target.value)
              }
            )
          ] }, index2)),
          data.knownCompatibilities.operatingSystems.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "button",
            {
              type: "button",
              onClick: addCompatibleOS,
              className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                "Add operating system"
              ]
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4 cy:px-5 cy:py-4 cy:mt-6 cy:bg-white cy:rounded-sm", children: [
          data.knownCompatibilities.assistiveTechnologies.map(
            (at, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:gap-2 cy:flex cy:flex-col", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(
                Label,
                {
                  htmlFor: `comp-at-${index2}`,
                  className: "cy:text-base cy:font-semibold",
                  children: [
                    "Assistive technologies ",
                    index2 + 1
                  ]
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: JAWS Screen Reader" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Input,
                {
                  id: `comp-at-${index2}`,
                  value: at,
                  onChange: (e) => updateCompatibleAT(index2, e.target.value)
                }
              )
            ] }, index2)
          ),
          data.knownCompatibilities.assistiveTechnologies.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "button",
            {
              type: "button",
              onClick: addCompatibleAT,
              className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                "Add another assistive technology"
              ]
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:mb-10", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:flex! cy:items-center cy:gap-1 cy:mb-4!", children: [
          "Known incompatibility",
          /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "List unsupported versions of operating systems, browsers, or assistive tools so users can check if their setup works with your site or app." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4 cy:px-5 cy:py-4 cy:bg-white cy:rounded-sm", children: [
          data.knownIncompatibilities.browsers.map((browser, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:gap-2 cy:flex cy:flex-col", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              Label,
              {
                htmlFor: `incomp-browser-${index2}`,
                className: "cy:text-base cy:font-semibold",
                children: [
                  "Browser ",
                  index2 + 1
                ]
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Internet Explorer 11" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Input,
              {
                id: `incomp-browser-${index2}`,
                value: browser,
                onChange: (e) => updateIncompatibleBrowser(index2, e.target.value)
              }
            )
          ] }, index2)),
          data.knownIncompatibilities.browsers.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "button",
            {
              type: "button",
              onClick: addIncompatibleBrowser,
              className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                "Add another browser"
              ]
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4 cy:px-5 cy:py-4 cy:mt-6 cy:bg-white cy:rounded-sm", children: [
          data.knownIncompatibilities.operatingSystems.map((os, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:gap-2 cy:flex cy:flex-col", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              Label,
              {
                htmlFor: `incomp-os-${index2}`,
                className: "cy:text-base cy:font-semibold",
                children: [
                  "Operating system ",
                  index2 + 1
                ]
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Windows XP" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Input,
              {
                id: `incomp-os-${index2}`,
                value: os,
                onChange: (e) => updateIncompatibleOS(index2, e.target.value)
              }
            )
          ] }, index2)),
          data.knownIncompatibilities.operatingSystems.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "button",
            {
              type: "button",
              onClick: addIncompatibleOS,
              className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-sm cy:font-normal cy:text-slate-800 cy:focus:outline-none",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                "Add operating system"
              ]
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4 cy:px-5 cy:py-4 cy:mt-6 cy:bg-white cy:rounded-sm", children: [
          data.knownIncompatibilities.assistiveTechnologies.map(
            (at, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:gap-2 cy:flex cy:flex-col", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(
                Label,
                {
                  htmlFor: `incomp-at-${index2}`,
                  className: "cy:text-base cy:font-semibold",
                  children: [
                    "Assistive technologies ",
                    index2 + 1
                  ]
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: JAWS Screen Reader" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Input,
                {
                  id: `incomp-at-${index2}`,
                  value: at,
                  onChange: (e) => updateIncompatibleAT(index2, e.target.value)
                }
              )
            ] }, index2)
          ),
          data.knownIncompatibilities.assistiveTechnologies.length < 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "button",
            {
              type: "button",
              onClick: addIncompatibleAT,
              className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                "Add another assistive technology"
              ]
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:mb-10", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:mb-4! cy:flex! cy:gap-1", children: [
          "Assessment approach",
          " ",
          /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "Let users know how you checked your website or app for accessibility. This adds transparency to the claims made in your statement." })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-2 cy:mb-2", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-start cy:gap-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Checkbox,
              {
                id: "assessment-self",
                checked: ((_e2 = (_d2 = data.assessmentApproach) == null ? void 0 : _d2.selected) == null ? void 0 : _e2.includes(
                  "Self-evaluation"
                )) || false,
                onCheckedChange: (checked) => handleAssessmentToggle("Self-evaluation", checked)
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              Label,
              {
                htmlFor: "assessment-self",
                className: "cy:flex cy:flex-col cy:items-start cy:gap-0",
                children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-base cy:font-semibold cy:leading-none", children: "Self-evaluation:" }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:block cy:text-base cy:text-gray-600  cy:font-normal cy:mt-1", children: "The content was evaluated by your own organization or the developer of the content" })
                ]
              }
            )
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-start cy:gap-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Checkbox,
              {
                id: "assessment-external",
                checked: ((_g = (_f = data.assessmentApproach) == null ? void 0 : _f.selected) == null ? void 0 : _g.includes(
                  "External evaluation"
                )) || false,
                onCheckedChange: (checked) => handleAssessmentToggle(
                  "External evaluation",
                  checked
                )
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              Label,
              {
                htmlFor: "assessment-external",
                className: "cy:flex cy:flex-col cy:items-start cy:gap-0",
                children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:text-base cy:font-semibold cy:leading-none", children: "External evaluation:" }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:block cy:text-base cy:text-gray-600 cy:font-normal cy:mt-1", children: "The content was evaluated by an external entity not involved in the design and development process" })
                ]
              }
            )
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-start cy:gap-2", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Checkbox,
              {
                id: "assessment-other",
                checked: ((_i = (_h = data.assessmentApproach) == null ? void 0 : _h.selected) == null ? void 0 : _i.includes(
                  "Other methods"
                )) || false,
                onCheckedChange: (checked) => handleAssessmentToggle("Other methods", checked)
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Label,
              {
                className: "cy:text-base cy:font-normal cy:flex cy:flex-col cy:items-baseline cy:gap-0 cy:leading-none",
                htmlFor: "assessment-other",
                children: "Other methods"
              }
            )
          ] })
        ] }),
        ((_k = (_j = data.assessmentApproach) == null ? void 0 : _j.selected) == null ? void 0 : _k.includes("Other methods")) && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
          (((_l = data.assessmentApproach) == null ? void 0 : _l.otherMethods) || [""]).map(
            (method, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
              idx === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: User feedback assessment" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Input,
                {
                  value: method,
                  onChange: (e) => handleAssessmentOtherChange(idx, e.target.value),
                  className: "cy:mt-4!"
                },
                idx
              )
            ] })
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsxs(
            "button",
            {
              type: "button",
              onClick: addAssessmentOther,
              className: "cy:flex cy:items-center cy:gap-2 cy:mt-2 cy:text-base cy:font-normal cy:focus:outline-none",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:w-5 cy:h-5 cy:bg-blue-600 cy:text-white cy:rounded-full cy:flex cy:items-center cy:justify-center cy:mr-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
                "Add another method"
              ]
            }
          )
        ] })
      ] })
    ] })
  ] });
}
function FeedbackStep({
  data,
  onChange,
  publicationDate,
  onPublicationDateChange
}) {
  const handleChange = (field, value) => {
    if (field === "sameAsVisitorAddress" && value === true) {
      onChange({
        ...data,
        sameAsVisitorAddress: true,
        companyPostalAddress: data.companyVisitorAddress
      }, field);
    } else if (field === "sameAsVisitorAddress" && value === false) {
      onChange({
        ...data,
        sameAsVisitorAddress: false,
        companyPostalAddress: ""
      }, field);
    } else if (field === "companyVisitorAddress" && data.sameAsVisitorAddress) {
      onChange({
        ...data,
        companyVisitorAddress: value,
        companyPostalAddress: value
      }, field);
    } else {
      onChange({ ...data, [field]: value }, field);
    }
  };
  const handleEnforcementTeamChange = (index2, field, value) => {
    const updatedTeams = data.enforcementTeam.map(
      (team, idx) => idx === index2 ? { ...team, [field]: value } : team
    );
    onChange({ ...data, enforcementTeam: updatedTeams }, "enforcementTeam");
  };
  const addEnforcementTeam = () => {
    onChange({
      ...data,
      enforcementTeam: [
        ...data.enforcementTeam,
        { name: "", linkToEnforcementProcedure: "", contactDetails: "" }
      ]
    }, "enforcementTeam");
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "cy:text-[28px] cy:font-semibold cy:mb-10", children: "Feedback options" }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "companyPhoneNumber",
            className: "cy:text-lg cy:font-semibold",
            children: "Company phone number"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: +12 34 567 89 00" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "companyPhoneNumber",
            type: "tel",
            value: data.companyPhoneNumber,
            onChange: (e) => handleChange("companyPhoneNumber", e.target.value),
            className: "cy:mt-1"
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "companyEmailAddress",
            className: "cy:text-lg cy:font-semibold",
            children: "Company email address"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: accessibility@example.com" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "companyEmailAddress",
            type: "email",
            value: data.companyEmailAddress,
            onChange: (e) => handleChange("companyEmailAddress", e.target.value),
            className: "cy:mt-1"
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "companyVisitorAddress",
            className: "cy:text-lg cy:font-semibold",
            children: "Company visitor address"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: Sample Street 1, 234 Example House" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Textarea,
          {
            id: "companyVisitorAddress",
            value: data.companyVisitorAddress,
            onChange: (e) => handleChange("companyVisitorAddress", e.target.value),
            className: "cy:mt-2 cy:h-[118px] cy:rounded cy:text-base!",
            rows: 3
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "companyPostalAddress",
            className: "cy:text-lg cy:font-semibold",
            children: "Company postal address"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: PO Box1, 234 Example House" }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:mb-1 cy:mt-1", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            "input",
            {
              id: "sameAsVisitorAddress",
              type: "checkbox",
              checked: data.sameAsVisitorAddress,
              onChange: (e) => handleChange("sameAsVisitorAddress", e.target.checked),
              className: "cy:mr-2"
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Label,
            {
              htmlFor: "sameAsVisitorAddress",
              className: "cy:text-sm cy:font-normal cy:mb-0!",
              children: "Same as visitor address"
            }
          )
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Textarea,
          {
            id: "companyPostalAddress",
            value: data.companyPostalAddress,
            onChange: (e) => handleChange("companyPostalAddress", e.target.value),
            className: "cy:mt-2 cy:h-[118px] cy:rounded cy:text-base!",
            rows: 3,
            disabled: data.sameAsVisitorAddress
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "otherContactOptions",
            className: "cy:text-lg cy:font-semibold",
            children: "Other contact options"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: on social media; Twitter: @ExampleUser" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "otherContactOptions",
            value: data.otherContactOptions,
            onChange: (e) => handleChange("otherContactOptions", e.target.value),
            className: "cy:mt-1"
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "typicalDurationForResponse",
            className: "cy:text-lg cy:font-semibold",
            children: "Typical duration for response"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: 2 business days" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "typicalDurationForResponse",
            value: data.typicalDurationForResponse,
            onChange: (e) => handleChange("typicalDurationForResponse", e.target.value),
            className: "cy:mt-1"
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("hr", { className: "cy:my-4 cy:mt-6" }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "cy:text-lg cy:font-semibold cy:mb-1", children: "Formal complaints" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:p-2 cy:rounded-sm cy:mb-2 cy:bg-[#2684ff26] cy:border cy:border-[#2684ff40]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Note : If you don’t receive a timely or adequate response to their accessibility issue." }) })
      ] }),
      data.enforcementTeam.map((team, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "div",
        {
          className: "",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:mt-4", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Label,
                {
                  htmlFor: `enforcementTeam-name-${idx}`,
                  className: "cy:text-lg cy:font-semibold",
                  children: "Name of the enforcement team"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example:  European Union Agency for Fundamental Rights (FRA)" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Input,
                {
                  id: `enforcementTeam-name-${idx}`,
                  value: team.name,
                  onChange: (e) => handleEnforcementTeamChange(idx, "name", e.target.value),
                  className: "cy:mt-1"
                }
              )
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:mt-4", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(
                Label,
                {
                  htmlFor: `enforcementTeam-link-${idx}`,
                  className: "cy:text-lg cy:font-semibold cy:flex! cy:gap-1",
                  children: [
                    "Link to the enforcement authority",
                    /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "Provide a URL to the relevant national body’s complaint procedure page or form, if available." })
                  ]
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example:  https://example.org/eaa-enforcement-team" }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Input,
                {
                  id: `enforcementTeam-link-${idx}`,
                  value: team.linkToEnforcementProcedure,
                  onChange: (e) => handleEnforcementTeamChange(
                    idx,
                    "linkToEnforcementProcedure",
                    e.target.value
                  ),
                  className: "cy:mt-1"
                }
              )
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:mt-4", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(
                Label,
                {
                  htmlFor: `enforcementTeam-contact-${idx}`,
                  className: "cy:text-lg cy:font-semibold cy:flex! cy:gap-1",
                  children: [
                    "Contact information for the enforcement body",
                    /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "This might be a digital accessibility monitoring agency, ombudsman, or equality authority, depending on your country." })
                  ]
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsxs(HelpText, { children: [
                "Example: ",
                /* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
                /* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
                "Email : mail@example.com ",
                /* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
                "Contact : 00 800 67 89 10 11 (from inside the EU) ",
                /* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
                "+32 2 299 96 96 (from outside the EU)"
              ] }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                Textarea,
                {
                  id: `enforcementTeam-contact-${idx}`,
                  value: team.contactDetails,
                  onChange: (e) => handleEnforcementTeamChange(
                    idx,
                    "contactDetails",
                    e.target.value
                  ),
                  className: "cy:mt-2 cy:h-[160px] cy:rounded cy:text-base!",
                  rows: 6
                }
              )
            ] })
          ]
        },
        idx
      )),
      /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "button",
        {
          type: "button",
          onClick: addEnforcementTeam,
          className: "cy:flex cy:items-center cy:gap-2 cy:mt-2  cy:text-base cy:font-normal cy:focus:outline-none cy:mb-4",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:w-5 cy:h-5 cy:bg-blue-600 cy:text-white cy:rounded-full cy:flex cy:items-center cy:justify-center cy:mr-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
            "Add another enforcement team details"
          ]
        }
      )
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs(
        Label,
        {
          htmlFor: "publicationDate",
          className: "cy:text-lg cy:font-semibold cy:flex! cy:items-center cy:gap-1",
          children: [
            "Date of publication",
            /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "Providing the date of your accessibility statement helps users know if it's up to date. Statements older than a year may seem unmaintained. To avoid confusion with international date formats, use the full date (e.g., '1 February 2019' instead of '01/02/2019'" })
          ]
        }
      ),
      /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example:  01 July 2025" }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        Input,
        {
          id: "publicationDate",
          type: "date",
          value: publicationDate,
          onChange: (e) => onPublicationDateChange(e.target.value),
          className: "cy:mt-1"
        }
      )
    ] })
  ] });
}
function RelatedEvidenceStep({
  data,
  onChange
}) {
  const handleChange = (field, value) => {
    onChange({ ...data, [field]: value }, field);
  };
  const handleOtherEvidenceChange = (index2, value) => {
    const updated = [...data.otherEvidence];
    updated[index2] = value;
    onChange({ ...data, otherEvidence: updated }, "otherEvidence");
  };
  const addOtherEvidence = () => {
    onChange(
      { ...data, otherEvidence: [...data.otherEvidence, ""] },
      "otherEvidence"
    );
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-6", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { className: "cy:text-lg cy:font-semibold cy:mb-4! cy:flex! cy:gap-1", children: [
      "Related evidence",
      " ",
      /* @__PURE__ */ jsxRuntimeExports.jsx(
        TooltipWrapper,
        {
          className: "cy:ml-1",
          content: "Add links to any reports, statements, or certifications that support your accessibility claims. This helps build trust and provide clear evidence."
        }
      )
    ] }) }),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:space-y-4", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Label,
          {
            htmlFor: "recentEvaluationReport",
            className: "cy:text-base cy:font-semibold",
            children: "Link to recent evaluation report"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: https://example.org/accessibility-evaluation-report" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "recentEvaluationReport",
            type: "url",
            value: data.recentEvaluationReport,
            onChange: (e) => handleChange("recentEvaluationReport", e.target.value),
            className: "cy:mt-1"
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Label,
          {
            htmlFor: "evaluationStatement",
            className: "cy:text-base cy:font-semibold cy:flex! cy:gap-1",
            children: [
              "Link to evaluation statement",
              /* @__PURE__ */ jsxRuntimeExports.jsx(TooltipWrapper, { content: "An evaluation statement summarises the key findings from an accessibility evaluation report." })
            ]
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(HelpText, { children: "Example: https://example.org/accessibility-evaluation-statement" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Input,
          {
            id: "evaluationStatement",
            type: "url",
            value: data.evaluationStatement,
            onChange: (e) => handleChange("evaluationStatement", e.target.value),
            className: "cy:mt-1"
          }
        )
      ] }),
      data.otherEvidence.map((evidence, idx) => /* @__PURE__ */ jsxRuntimeExports.jsx(
        "div",
        {
          className: "cy:flex cy:items-center cy:gap-2 cy:mt-2",
          children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:w-full", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs(
              Label,
              {
                htmlFor: `otherEvidence-${idx}`,
                className: "cy:text-base cy:font-semibold",
                children: [
                  "Other evidence ",
                  idx + 1
                ]
              }
            ),
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Input,
              {
                id: `otherEvidence-${idx}`,
                type: "url",
                value: evidence,
                onChange: (e) => handleOtherEvidenceChange(idx, e.target.value),
                className: "cy:mt-1"
              }
            )
          ] })
        },
        idx
      )),
      /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "button",
        {
          type: "button",
          onClick: addOtherEvidence,
          className: "cy:flex cy:items-center cy:gap-3 cy:bg-transparent cy:border-none cy:cursor-pointer cy:p-0 cy:text-base cy:font-normal cy:text-slate-800 cy:focus:outline-none",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:flex cy:items-center cy:justify-center cy:w-5 cy:h-5 cy:rounded-full cy:bg-primary cy:text-white cy:text-base", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "cy:w-3 cy:h-3" }) }),
            "Add another evidence"
          ]
        }
      )
    ] })
  ] });
}
function SuccessScreen({
  setShowSuccessScreen,
  setCurrentStep,
  setStorage,
  statement
}) {
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:p-10", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:max-w-7xl cy:mx-auto cy:p-10 cy:rounded-lg", style: { boxShadow: "rgba(100, 100, 111, 0.2) 0px 7px 29px 0px" }, children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:mb-8 cy:flex cy:justify-between", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("h5", { className: "cy:text-base! cy:font-semibold! cy:mb-1", children: "Accessibility Statement" }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "cy:text-gray-600", children: [
          "Last updated:",
          " ",
          (/* @__PURE__ */ new Date()).toLocaleDateString("en-US", {
            year: "numeric",
            month: "long",
            day: "numeric"
          })
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:gap-4 cy:mt-4", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Button,
          {
            variant: "outline",
            className: "cy:rounded! cy:font-semibold! cy:border-primary! cy:text-primary",
            onClick: () => {
              setShowSuccessScreen(false);
              setCurrentStep(0);
              if (setStorage) {
                setStorage((prev) => ({
                  ...prev,
                  status: "in_progress"
                }));
              }
            },
            children: "Edit statement"
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsx(
          Button,
          {
            className: "cy:rounded! cy:font-semibold! cy:bg-primary cy:text-white",
            onClick: () => {
              if (statement == null ? void 0 : statement.edit_url) {
                window.open(statement.edit_url, "_blank");
              }
            },
            children: "View Accessibility Statement"
          }
        )
      ] })
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:bg-[#F0F6FF] cy:rounded-lg cy:border cy:border-[#798DA8] cy:pt-6 cy:px-6", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:grid cy:grid-cols-12 cy:gap-8", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:space-y-6 cy:col-span-5", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-start", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:rounded-full cy:flex cy:items-center cy:justify-center cy:flex-shrink-0 cy:mt-1" }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: "cy:flex! cy:items-center cy:gap-2 cy:text-base! cy:font-semibold cy:mt-0! cy:mb-4", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              "svg",
              {
                width: "18",
                height: "18",
                viewBox: "0 0 18 18",
                fill: "none",
                xmlns: "http://www.w3.org/2000/svg",
                children: /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    "fill-rule": "evenodd",
                    "clip-rule": "evenodd",
                    d: "M0.666016 8.99999C0.666016 4.39762 4.39698 0.666656 8.99935 0.666656C13.6017 0.666656 17.3327 4.39762 17.3327 8.99999C17.3327 13.6024 13.6017 17.3333 8.99935 17.3333C4.39698 17.3333 0.666016 13.6024 0.666016 8.99999ZM9.83268 6.49999V4.83332H8.16602V6.49999H9.83268ZM8.16602 7.33332V13.1667H9.83268V7.33332H8.16602Z",
                    fill: "#0B66E4"
                  }
                )
              }
            ),
            " ",
            "Publish your page"
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: "cy:space-y-3 cy:text-sm! cy:list-disc! cy:pl-4! cy:pb-6!", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("li", { children: "Your accessibility statement has been generated!" }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { children: [
              "Click ",
              /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Edit Statement" }),
              " to go back and make changes."
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { children: [
              "Click ",
              /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "View Accessibility Statement" }),
              " to open the draft page. From there, review and hit",
              " ",
              /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Publish" }),
              " to make it live."
            ] })
          ] })
        ] })
      ] }) }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:justify-end cy:col-span-7 cy:items-end", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "svg",
        {
          width: "381",
          height: "189",
          viewBox: "0 0 381 189",
          fill: "none",
          xmlns: "http://www.w3.org/2000/svg",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { "clip-path": "url(#clip0_692_1786)", children: [
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "rect",
                {
                  x: "0.5",
                  y: "0.5",
                  width: "379.5",
                  height: "219",
                  rx: "5.5",
                  fill: "white",
                  stroke: "#1869E3"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { "clip-path": "url(#clip1_692_1786)", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M13.1778 0H367.823C374.267 0 379.5 4.78413 379.5 10.6753V189.411C379.5 195.302 374.267 200.086 367.823 200.086H12.8442C6.0311 200.086 0.5 195.03 0.5 188.801V11.5904C0.5 5.19364 6.18092 0 13.1778 0Z",
                    fill: "#7C95A5"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M0.833627 0H379.5V220.078H0.5V0.335485C0.5 0.150658 0.649823 0 0.833627 0Z",
                    fill: "#1578F7"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M379.5 35.8364H0.5V219H379.5V35.8364Z",
                    fill: "white"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M102.754 22.813C100.447 22.813 98.577 20.9321 98.5801 18.6116C98.5847 14.8126 98.5863 9.81292 98.5863 9.81292C98.5863 6.24684 95.7103 3.35483 92.164 3.35483H32.9452C29.3989 3.35483 26.5229 6.24684 26.5229 9.81292C26.5229 9.81292 26.5244 13.8605 26.5275 17.439C26.5306 20.4071 24.1381 22.813 21.188 22.813H0.5V47.6389H379.5V22.813H102.754Z",
                    fill: "white"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M16.9579 35.1701C16.9518 35.4667 16.7077 35.7044 16.4127 35.6981L5.47254 35.4916C5.17752 35.4854 4.94121 35.24 4.94738 34.9433C4.95356 34.6466 5.1976 34.409 5.49262 34.4152L16.4328 34.6218C16.7278 34.628 16.9641 34.8734 16.9579 35.1701Z",
                    fill: "#D7D9E5"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M5.03202 34.8202L5.15395 34.684C5.28001 34.5432 5.49493 34.5329 5.63384 34.6587L9.60599 38.2538C9.74604 38.3806 9.75625 38.5967 9.63122 38.7364L9.50929 38.8726C9.38322 39.0135 9.1683 39.0237 9.02939 38.898L5.05725 35.3028C4.91719 35.176 4.90699 34.9599 5.03202 34.8202Z",
                    fill: "#D7D9E5"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M9.77579 31.3311L9.65906 31.1904C9.53885 31.0455 9.32457 31.026 9.18045 31.1468L5.07638 34.5889C4.93226 34.7098 4.91287 34.9253 5.03308 35.0702L5.14981 35.211C5.27002 35.3559 5.4843 35.3754 5.62842 35.2545L9.73249 31.8124C9.87661 31.6915 9.896 31.4761 9.77579 31.3311Z",
                    fill: "#D7D9E5"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M22.965 35.1701C22.9711 35.4668 23.2152 35.7044 23.5102 35.6982L34.4504 35.4916C34.7454 35.4854 34.9817 35.24 34.9755 34.9434C34.9693 34.6467 34.7253 34.4091 34.4303 34.4153L23.4901 34.6219C23.1951 34.6281 22.9588 34.8735 22.965 35.1701Z",
                    fill: "#D7D9E5"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M30.4133 38.8701L30.2914 38.7339C30.1654 38.593 30.1778 38.377 30.3167 38.2513L34.2895 34.6568C34.4296 34.5301 34.6444 34.5426 34.7694 34.6823L34.8913 34.8185C35.0174 34.9594 35.0049 35.1754 34.866 35.3011L30.8932 38.8956C30.7531 39.0223 30.5383 39.0098 30.4133 38.8701Z",
                    fill: "#D7D9E5"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M34.7808 35.2118L34.8976 35.0711C35.0178 34.9261 34.9984 34.7107 34.8543 34.5898L30.7502 31.1477C30.6061 31.0268 30.3918 31.0463 30.2716 31.1912L30.1549 31.332C30.0347 31.4769 30.054 31.6924 30.1982 31.8133L34.3022 35.2554C34.4464 35.3762 34.6606 35.3567 34.7808 35.2118Z",
                    fill: "#D7D9E5"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M350.879 25.9675H55.6505C50.6756 25.9675 46.6426 30.023 46.6426 35.0256C46.6426 40.0283 50.6756 44.0837 55.6505 44.0837H350.879C355.854 44.0837 359.887 40.0283 359.887 35.0256C359.887 30.023 355.854 25.9675 350.879 25.9675Z",
                    fill: "#EFF2FF"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M370.324 32.9831H366.709C366 32.9831 365.426 32.4053 365.426 31.6924C365.426 30.9795 366 30.4017 366.709 30.4017H370.324C371.033 30.4017 371.607 30.9795 371.607 31.6924C371.607 32.4053 371.033 32.9831 370.324 32.9831Z",
                    fill: "#CFD3E8"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M370.324 36.3162H366.709C366 36.3162 365.426 35.7385 365.426 35.0255C365.426 34.3126 366 33.7349 366.709 33.7349H370.324C371.033 33.7349 371.607 34.3126 371.607 35.0255C371.607 35.7385 371.033 36.3162 370.324 36.3162Z",
                    fill: "#CFD3E8"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M370.324 39.6477H366.709C366 39.6477 365.426 39.0699 365.426 38.357C365.426 37.6441 366 37.0663 366.709 37.0663H370.324C371.033 37.0663 371.607 37.6441 371.607 38.357C371.607 39.0699 371.033 39.6477 370.324 39.6477Z",
                    fill: "#CFD3E8"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M59.2008 30.9097C57.8493 29.5507 55.6483 29.5507 54.2968 30.9097C52.9453 32.2687 52.9453 34.482 54.2968 35.841C55.4923 37.0432 57.3489 37.1814 58.6988 36.2588L62.3888 39.9694C62.6421 40.2241 63.053 40.2241 63.3063 39.9694C63.5596 39.7147 63.5596 39.3015 63.3063 39.0468L59.6163 35.3363C60.5338 33.9803 60.3963 32.1119 59.2008 30.9097ZM58.2834 34.92C57.4369 35.7711 56.0607 35.7711 55.2143 34.92C54.3679 34.0689 54.3679 32.685 55.2143 31.8339C56.0607 30.9827 57.4369 30.9827 58.2834 31.8339C59.1298 32.685 59.1298 34.0689 58.2834 34.92Z",
                    fill: "#CFD3E8"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    opacity: "0.2",
                    d: "M340.669 77.4766H215.295C214.407 77.4766 213.688 78.8204 213.688 80.478V196.866C213.688 198.523 214.407 199.867 215.295 199.867H340.669C341.557 199.867 342.277 198.523 342.277 196.866V80.478C342.277 78.8204 341.557 77.4766 340.669 77.4766Z",
                    fill: "#F2F3F8"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { "clip-path": "url(#clip2_692_1786)", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    "rect",
                    {
                      width: "128.227",
                      height: "122.886",
                      transform: "translate(213.688 95.8303)",
                      fill: "#F2F3F8"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    "path",
                    {
                      opacity: "0.2",
                      d: "M328.479 116.274C361.278 116.274 377.257 142.081 409.216 176.717C383.145 176.717 271.53 176.717 239.33 176.717C267.084 148.193 295.678 116.274 328.479 116.274Z",
                      fill: "#D3DAFB"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    "path",
                    {
                      opacity: "0.2",
                      d: "M219.303 106.659C254.362 106.659 277.045 140.064 308.39 176.717C267.263 176.717 167.665 176.717 130.217 176.717C160.494 140.064 184.245 106.659 219.303 106.659Z",
                      fill: "#CDD9FF"
                    }
                  ),
                  /* @__PURE__ */ jsxRuntimeExports.jsx(
                    "path",
                    {
                      opacity: "0.5",
                      d: "M278.001 106.891C284.867 106.891 290.432 101.326 290.432 94.4604C290.432 87.5952 284.867 82.0297 278.001 82.0297C271.136 82.0297 265.57 87.5952 265.57 94.4604C265.57 101.326 271.136 106.891 278.001 106.891Z",
                      fill: "#D3DAFB"
                    }
                  )
                ] }),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    opacity: "0.5",
                    d: "M189.752 125.759H34.5847C33.2025 125.759 32.082 126.764 32.082 128.005C32.082 129.245 33.2025 130.25 34.5847 130.25H189.752C191.134 130.25 192.255 129.245 192.255 128.005C192.255 126.764 191.134 125.759 189.752 125.759Z",
                    fill: "#E3E8FF"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M74.6945 160.567H34.5886C33.2042 160.567 32.082 161.657 32.082 163V172.732C32.082 174.075 33.2042 175.164 34.5886 175.164H74.6945C76.0789 175.164 77.2011 174.075 77.2011 172.732V163C77.2011 161.657 76.0789 160.567 74.6945 160.567Z",
                    fill: "#E3E8FF"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M114.192 115.548H34.5702C33.196 115.548 32.082 116.679 32.082 118.074V123.127C32.082 124.522 33.196 125.653 34.5702 125.653H114.192C115.566 125.653 116.68 124.522 116.68 123.127V118.074C116.68 116.679 115.566 115.548 114.192 115.548Z",
                    fill: "#E3E8FF"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "circle",
                  {
                    cx: "362.016",
                    cy: "12.9717",
                    r: "3.94792",
                    fill: "white"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "circle",
                  {
                    cx: "349.608",
                    cy: "12.9717",
                    r: "3.94792",
                    fill: "white"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "circle",
                  {
                    cx: "337.202",
                    cy: "12.9717",
                    r: "3.94792",
                    fill: "white"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "line",
                  {
                    x1: "0.5",
                    y1: "46.811",
                    x2: "379.5",
                    y2: "46.811",
                    stroke: "#F2F3F8",
                    "stroke-width": "1.12798"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "rect",
                  {
                    x: "290",
                    y: "55",
                    width: "63",
                    height: "24",
                    rx: "2",
                    fill: "#219653"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M301.959 71V62.2727H305.07C305.749 62.2727 306.311 62.3963 306.757 62.6435C307.203 62.8906 307.537 63.2287 307.759 63.6577C307.98 64.0838 308.091 64.5639 308.091 65.098C308.091 65.6349 307.979 66.1179 307.754 66.5469C307.533 66.973 307.197 67.3111 306.749 67.5611C306.303 67.8082 305.741 67.9318 305.065 67.9318H302.926V66.8153H304.946C305.375 66.8153 305.723 66.7415 305.99 66.5938C306.257 66.4432 306.453 66.2386 306.578 65.9801C306.703 65.7216 306.766 65.4276 306.766 65.098C306.766 64.7685 306.703 64.4759 306.578 64.2202C306.453 63.9645 306.256 63.7642 305.986 63.6193C305.719 63.4744 305.366 63.402 304.929 63.402H303.276V71H301.959ZM313.439 68.2855V64.4545H314.717V71H313.464V69.8665H313.396C313.245 70.2159 313.004 70.5071 312.672 70.7401C312.342 70.9702 311.932 71.0852 311.44 71.0852C311.02 71.0852 310.647 70.9929 310.324 70.8082C310.003 70.6207 309.75 70.3438 309.565 69.9773C309.383 69.6108 309.292 69.1577 309.292 68.6179V64.4545H310.566V68.4645C310.566 68.9105 310.69 69.2656 310.937 69.5298C311.184 69.794 311.505 69.9261 311.9 69.9261C312.139 69.9261 312.376 69.8665 312.612 69.7472C312.851 69.6278 313.048 69.4474 313.204 69.206C313.363 68.9645 313.441 68.6577 313.439 68.2855ZM316.291 71V62.2727H317.565V65.5156H317.642C317.716 65.3793 317.823 65.2216 317.962 65.0426C318.101 64.8636 318.294 64.7074 318.541 64.5739C318.788 64.4375 319.115 64.3693 319.521 64.3693C320.05 64.3693 320.521 64.5028 320.936 64.7699C321.351 65.0369 321.676 65.4219 321.912 65.9247C322.151 66.4276 322.27 67.0327 322.27 67.7401C322.27 68.4474 322.152 69.054 321.916 69.5597C321.681 70.0625 321.357 70.4503 320.945 70.723C320.533 70.9929 320.063 71.1278 319.534 71.1278C319.136 71.1278 318.811 71.0611 318.558 70.9276C318.308 70.794 318.112 70.6378 317.97 70.4588C317.828 70.2798 317.719 70.1207 317.642 69.9815H317.536V71H316.291ZM317.54 67.7273C317.54 68.1875 317.607 68.5909 317.74 68.9375C317.874 69.2841 318.067 69.5554 318.32 69.7514C318.573 69.9446 318.882 70.0412 319.249 70.0412C319.629 70.0412 319.948 69.9403 320.203 69.7386C320.459 69.5341 320.652 69.2571 320.783 68.9077C320.916 68.5582 320.983 68.1648 320.983 67.7273C320.983 67.2955 320.918 66.9077 320.787 66.5639C320.659 66.2202 320.466 65.9489 320.208 65.75C319.952 65.5511 319.632 65.4517 319.249 65.4517C318.879 65.4517 318.567 65.5469 318.311 65.7372C318.058 65.9276 317.867 66.1932 317.736 66.5341C317.605 66.875 317.54 67.2727 317.54 67.7273ZM324.735 62.2727V71H323.461V62.2727H324.735ZM326.209 71V64.4545H327.483V71H326.209ZM326.853 63.4446C326.631 63.4446 326.441 63.3707 326.281 63.223C326.125 63.0724 326.047 62.8935 326.047 62.6861C326.047 62.4759 326.125 62.2969 326.281 62.1491C326.441 61.9986 326.631 61.9233 326.853 61.9233C327.074 61.9233 327.263 61.9986 327.419 62.1491C327.578 62.2969 327.658 62.4759 327.658 62.6861C327.658 62.8935 327.578 63.0724 327.419 63.223C327.263 63.3707 327.074 63.4446 326.853 63.4446ZM333.862 66.0526L332.707 66.2571C332.659 66.1094 332.582 65.9687 332.477 65.8352C332.375 65.7017 332.236 65.5923 332.06 65.5071C331.883 65.4219 331.663 65.3793 331.399 65.3793C331.038 65.3793 330.737 65.4602 330.496 65.6222C330.254 65.7812 330.133 65.9872 330.133 66.2401C330.133 66.4588 330.214 66.6349 330.376 66.7685C330.538 66.902 330.8 67.0114 331.16 67.0966L332.2 67.3352C332.802 67.4744 333.251 67.6889 333.547 67.9787C333.842 68.2685 333.99 68.6449 333.99 69.108C333.99 69.5 333.876 69.8494 333.649 70.1562C333.425 70.4602 333.111 70.6989 332.707 70.8722C332.307 71.0455 331.842 71.1321 331.314 71.1321C330.581 71.1321 329.983 70.9759 329.52 70.6634C329.057 70.348 328.773 69.9006 328.668 69.321L329.899 69.1335C329.976 69.4545 330.133 69.6974 330.372 69.8622C330.611 70.0241 330.922 70.1051 331.305 70.1051C331.723 70.1051 332.057 70.0185 332.307 69.8452C332.557 69.669 332.682 69.4545 332.682 69.2017C332.682 68.9972 332.605 68.8253 332.452 68.6861C332.301 68.5469 332.07 68.4418 331.757 68.3707L330.649 68.1278C330.038 67.9886 329.587 67.767 329.294 67.4631C329.004 67.1591 328.859 66.7741 328.859 66.3082C328.859 65.9219 328.967 65.5838 329.183 65.294C329.399 65.0043 329.697 64.7784 330.078 64.6165C330.459 64.4517 330.895 64.3693 331.386 64.3693C332.094 64.3693 332.65 64.5227 333.057 64.8295C333.463 65.1335 333.731 65.5412 333.862 66.0526ZM336.425 67.1136V71H335.151V62.2727H336.408V65.5199H336.489C336.642 65.1676 336.877 64.8878 337.192 64.6804C337.507 64.473 337.919 64.3693 338.428 64.3693C338.877 64.3693 339.269 64.4616 339.604 64.6463C339.942 64.831 340.203 65.1065 340.388 65.473C340.576 65.8366 340.669 66.2912 340.669 66.8366V71H339.395V66.9901C339.395 66.5099 339.272 66.1378 339.024 65.8736C338.777 65.6065 338.434 65.473 337.993 65.473C337.692 65.473 337.422 65.5369 337.184 65.6648C336.948 65.7926 336.762 65.9801 336.625 66.2273C336.492 66.4716 336.425 66.767 336.425 67.1136Z",
                    fill: "white"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "rect",
                  {
                    x: "34.3398",
                    y: "11.2797",
                    width: "45.119",
                    height: "3.38393",
                    fill: "#EBEEF9"
                  }
                )
              ] }),
              /* @__PURE__ */ jsxRuntimeExports.jsx(
                "rect",
                {
                  x: "0.75",
                  y: "0.25",
                  width: "378.5",
                  height: "218.5",
                  rx: "4.75",
                  stroke: "#1578F7",
                  "stroke-width": "0.5"
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { filter: "url(#filter0_d_692_1786)", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    "fill-rule": "evenodd",
                    "clip-rule": "evenodd",
                    d: "M357.841 79.5161L362.487 77.8649L350 71L353.64 84.7764L356.366 80.668L359.63 84.8454L361.104 83.6935L357.841 79.5161Z",
                    fill: "white"
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "path",
                  {
                    d: "M350.289 70.4746L362.775 77.3389L363.946 77.9824L362.688 78.4307L358.825 79.8018L361.577 83.3242L361.946 83.7969L361.474 84.166L359.999 85.3184L359.526 85.6875L359.157 85.2148L356.405 81.6934L354.141 85.1084L353.401 86.2217L353.061 84.9297L349.42 71.1533L349.062 69.7998L350.289 70.4746Z",
                    stroke: "#363B3E",
                    "stroke-width": "1.2"
                  }
                )
              ] })
            ] }),
            /* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(
                "filter",
                {
                  id: "filter0_d_692_1786",
                  x: "345.125",
                  y: "66.5995",
                  width: "23.2812",
                  height: "25.067",
                  filterUnits: "userSpaceOnUse",
                  "color-interpolation-filters": "sRGB",
                  children: [
                    /* @__PURE__ */ jsxRuntimeExports.jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }),
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      "feColorMatrix",
                      {
                        in: "SourceAlpha",
                        type: "matrix",
                        values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
                        result: "hardAlpha"
                      }
                    ),
                    /* @__PURE__ */ jsxRuntimeExports.jsx("feOffset", { dy: "1" }),
                    /* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "1.5" }),
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      "feColorMatrix",
                      {
                        type: "matrix",
                        values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"
                      }
                    ),
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      "feBlend",
                      {
                        mode: "normal",
                        in2: "BackgroundImageFix",
                        result: "effect1_dropShadow_692_1786"
                      }
                    ),
                    /* @__PURE__ */ jsxRuntimeExports.jsx(
                      "feBlend",
                      {
                        mode: "normal",
                        in: "SourceGraphic",
                        in2: "effect1_dropShadow_692_1786",
                        result: "shape"
                      }
                    )
                  ]
                }
              ),
              /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip0_692_1786", children: /* @__PURE__ */ jsxRuntimeExports.jsx("rect", { width: "380.5", height: "220", fill: "white" }) }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip1_692_1786", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
                "rect",
                {
                  x: "0.5",
                  width: "379",
                  height: "219",
                  rx: "5",
                  fill: "white"
                }
              ) }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("clipPath", { id: "clip2_692_1786", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
                "rect",
                {
                  width: "128.227",
                  height: "122.886",
                  fill: "white",
                  transform: "translate(213.688 95.8303)"
                }
              ) })
            ] })
          ]
        }
      ) })
    ] }) })
  ] }) });
}
const steps = [
  { id: "basic", label: "Basic information", number: 1 },
  { id: "efforts", label: "Your efforts", number: 2 },
  { id: "conformance", label: "Conformance Status", number: 3 },
  { id: "technical", label: "Technical specifications", number: 4 },
  { id: "feedback", label: "Feedback options", number: 5 }
];
const AccessibilityStatementGenerator = reactExports.forwardRef(
  ({ onSuccessScreenChange }, ref) => {
    const previewRef = reactExports.useRef(null);
    const hasLoadedRef = reactExports.useRef(false);
    const [currentStep, setCurrentStep] = reactExports.useState(0);
    const [storage, setStorage] = useLocalStorage(
      "accessibility-statement",
      defaultStatement
    );
    const statement = storage;
    const [showSuccessScreen, setShowSuccessScreen] = reactExports.useState(false);
    const [isLoading, setIsLoading] = reactExports.useState(true);
    const [basicInfoErrors, setBasicInfoErrors] = reactExports.useState(null);
    const [conformanceStatusErrors, setConformanceStatusErrors] = reactExports.useState(null);
    reactExports.useEffect(() => {
      onSuccessScreenChange == null ? void 0 : onSuccessScreenChange(showSuccessScreen);
    }, [showSuccessScreen, onSuccessScreenChange]);
    const handlePreview = reactExports.useCallback(async () => {
      try {
        const response = await saveStatement(statement, { preview: true });
        const savedStatement = response;
        setStorage(savedStatement);
        if (savedStatement == null ? void 0 : savedStatement.preview) {
          window.open(savedStatement.preview, "_blank");
        }
      } catch (error) {
        console.error("Failed to save statement for preview:", error);
      }
    }, [statement, setStorage]);
    reactExports.useImperativeHandle(ref, () => ({
      handlePreview
    }), [handlePreview]);
    reactExports.useEffect(() => {
      if (hasLoadedRef.current) return;
      const loadStatementData = async () => {
        try {
          setIsLoading(true);
          if ((statement == null ? void 0 : statement.status) === "published") {
            setShowSuccessScreen(true);
          }
          if (statement.status === "in_progress" || statement.status === "published")
            return;
          const response = await getStatement();
          if (response && typeof response === "object") {
            const apiData = response;
            apiData.status = "in_progress";
            setStorage((prev) => ({
              ...prev,
              ...apiData
            }));
          }
        } catch (error) {
          console.error("Failed to load statement data:", error);
        } finally {
          setIsLoading(false);
          hasLoadedRef.current = true;
        }
      };
      loadStatementData();
    }, []);
    const updateStatement = (updates) => {
      setStorage((prev) => ({
        ...prev,
        ...updates
      }));
    };
    const fieldToSection = {
      // Basic Info
      companyName: "preview-basic",
      website: "preview-basic",
      publicationDate: "preview-basic",
      // Efforts
      selectedEfforts: "preview-efforts",
      additionalEfforts: "preview-efforts",
      // Conformance
      standard: "preview-conformance",
      conformanceLevel: "preview-conformance",
      customStandard: "preview-conformance",
      additionalConsiderations: "preview-conformance",
      knownIssues: "preview-conformance",
      unresolvedBarriers: "preview-conformance",
      contentOutsideScope: "preview-conformance",
      // Technical
      knownCompatibilities: "preview-technical",
      knownIncompatibilities: "preview-technical",
      technologyReliance: "preview-technical",
      assessmentApproach: "preview-technical",
      // Feedback
      companyPhoneNumber: "preview-feedback",
      companyEmailAddress: "preview-feedback",
      companyVisitorAddress: "preview-feedback",
      companyPostalAddress: "preview-feedback",
      sameAsVisitorAddress: "preview-feedback",
      otherContactOptions: "preview-feedback",
      typicalDurationForResponse: "preview-feedback",
      enforcementTeam: "preview-feedback",
      // Evidence
      recentEvaluationReport: "preview-evidence",
      evaluationStatement: "preview-evidence",
      otherEvidence: "preview-evidence"
    };
    function scrollPreviewToSection(sectionId) {
      if (!previewRef.current) return;
      const section = previewRef.current.querySelector(`#${sectionId}`);
      if (section) {
        const rect = section.getBoundingClientRect();
        const previewRect = previewRef.current.getBoundingClientRect();
        if (rect.top < previewRect.top || rect.bottom > previewRect.bottom) {
          section.scrollIntoView({ behavior: "smooth", block: "center" });
        }
      }
    }
    const nextStep = () => {
      var _a2, _b2;
      if (currentStep === 0) {
        const result = basicInfoSchema.safeParse(statement.basicInfo);
        if (!result.success) {
          const fieldErrors = {};
          result.error.errors.forEach((err) => {
            if (err.path[0] === "companyName")
              fieldErrors.companyName = err.message;
            if (err.path[0] === "websiteUrl")
              fieldErrors.websiteUrl = err.message;
            if (err.path[0] === "websiteName")
              fieldErrors.websiteName = err.message;
          });
          setBasicInfoErrors(fieldErrors);
          const order = ["companyName", "websiteUrl", "websiteName"];
          for (const key of order) {
            if (fieldErrors[key]) {
              const el = document.getElementById(key);
              if (el) {
                const y = el.getBoundingClientRect().top + window.scrollY - 110;
                window.scrollTo({ top: y, behavior: "smooth" });
                (_a2 = el.focus) == null ? void 0 : _a2.call(el);
              }
              break;
            }
          }
          return;
        } else {
          setBasicInfoErrors(null);
        }
      }
      if (currentStep === 2) {
        const result = conformanceStatusSchema.safeParse(
          statement.conformanceStatus
        );
        if (!result.success) {
          const fieldErrors = {};
          result.error.errors.forEach((err) => {
            if (err.path[0] === "standard") fieldErrors.standard = err.message;
            if (err.path[0] === "conformanceLevel")
              fieldErrors.conformanceLevel = err.message;
          });
          setConformanceStatusErrors(fieldErrors);
          const order = ["standard", "conformanceLevel"];
          for (const key of order) {
            if (fieldErrors[key]) {
              const el = document.getElementById(key);
              if (el) {
                el.scrollIntoView({ behavior: "smooth", block: "center" });
                (_b2 = el.focus) == null ? void 0 : _b2.call(el);
              }
              break;
            }
          }
          return;
        } else {
          setConformanceStatusErrors(null);
        }
      }
      if (currentStep < steps.length - 1) {
        setCurrentStep(currentStep + 1);
        const el = document.getElementById("wysg-statement-generator");
        if (el) {
          const y = el.getBoundingClientRect().top + window.scrollY - 110;
          window.scrollTo({ top: y, behavior: "smooth" });
        }
      }
    };
    const prevStep = () => {
      if (currentStep > 0) {
        setCurrentStep(currentStep - 1);
        const el = document.getElementById("wysg-statement-generator");
        if (el) {
          const y = el.getBoundingClientRect().top + window.scrollY - 110;
          window.scrollTo({ top: y, behavior: "smooth" });
        }
      }
    };
    const goToStep = (stepIndex) => {
      setCurrentStep(stepIndex);
    };
    if (isLoading) {
      return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:items-center cy:justify-center cy:min-h-[400px]", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:text-center", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:animate-spin cy:rounded-full cy:h-12 cy:w-12 cy:border-b-2 cy:border-primary cy:mx-auto cy:mb-4" }),
        /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "cy:text-gray-600", children: "Loading accessibility statement data..." })
      ] }) });
    }
    if (showSuccessScreen) {
      return /* @__PURE__ */ jsxRuntimeExports.jsx(
        SuccessScreen,
        {
          setShowSuccessScreen,
          setCurrentStep,
          setStorage,
          statement
        }
      );
    }
    return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:bg-white", id: "wysg-statement-generator", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:grid cy:grid-cols-12 cy:gap-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "wysg-form-container cy:col-span-10 cy:pt-10 cy:lg:py-10", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "wysg-form-container", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cy:flex cy:items-center wysg-form-steps cy:px-4 cy:lg:px-10 cy:justify-between", children: steps.map((step, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
        "div",
        {
          className: "cy:flex cy:items-center cy:flex-1",
          children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx(
              Button,
              {
                variant: index2 === currentStep ? "default" : index2 < currentStep ? "secondary" : "outline",
                size: "sm",
                className: `cy:rounded-full! cy:font-medium cy:text-base cy:text-foreground! cy:flex-shrink-0 cy:flex-grow-0 cy:w-9 cy:h-9 cy:p-0 cy:relative ${index2 === currentStep ? "cy:md:w-auto cy:md:px-3 cy:md:bg-transparent cy:md:tex-base cy:text-white! cy:md:text-foreground! cy:md:border cy:md:border-primary! cy:md:hover:text-white!" : index2 < currentStep ? "cy:bg-primary cy:text-white! cy:hover:bg-primary" : "cy:bg-transparent cy:text-gray-400 cy:border"}`,
                onClick: () => goToStep(index2),
                children: index2 === currentStep ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:inline cy:md:hidden cy:font-semibold", children: step.number }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "cy:hidden cy:md:inline cy:font-semibold", children: step.label })
                ] }) : step.number
              }
            ),
            index2 < steps.length - 1 && /* @__PURE__ */ jsxRuntimeExports.jsx(
              "div",
              {
                className: `cy:h-px cy:mx-1 cy:flex-grow cy:min-w-4 cy:lg:min-w-10 ${index2 < currentStep ? "cy:bg-primary" : "cy:bg-gray-300"}`
              }
            )
          ]
        },
        step.id
      )) }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "wysg-form-content cy:py-10 cy:px-4 cy:lg:px-10", children: [
        currentStep === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
          BasicInformationStep,
          {
            data: statement.basicInfo,
            onChange: (basicInfo, changedField) => {
              updateStatement({ basicInfo });
              if (changedField && fieldToSection[changedField]) {
                scrollPreviewToSection(fieldToSection[changedField]);
              }
            },
            externalErrors: basicInfoErrors
          }
        ),
        currentStep === 1 && /* @__PURE__ */ jsxRuntimeExports.jsx(
          YourEffortsStep,
          {
            data: statement.efforts,
            onChange: (efforts, changedField) => {
              updateStatement({ efforts });
              if (changedField && fieldToSection[changedField]) {
                scrollPreviewToSection(fieldToSection[changedField]);
              }
            }
          }
        ),
        currentStep === 2 && /* @__PURE__ */ jsxRuntimeExports.jsx(
          ConformanceStatusStep,
          {
            data: statement.conformanceStatus,
            onChange: (conformanceStatus, changedField) => {
              updateStatement({ conformanceStatus });
              if (changedField && fieldToSection[changedField]) {
                scrollPreviewToSection(fieldToSection[changedField]);
              }
            },
            externalErrors: conformanceStatusErrors
          }
        ),
        currentStep === 3 && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            TechnicalSpecificationsStep,
            {
              data: statement.technicalSpecs,
              onChange: (technicalSpecs, changedField) => {
                updateStatement({ technicalSpecs });
                if (changedField && fieldToSection[changedField]) {
                  scrollPreviewToSection(fieldToSection[changedField]);
                }
              }
            }
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            RelatedEvidenceStep,
            {
              data: statement.relatedEvidence,
              onChange: (relatedEvidence, changedField) => {
                updateStatement({ relatedEvidence });
                if (changedField && fieldToSection[changedField]) {
                  scrollPreviewToSection(fieldToSection[changedField]);
                }
              }
            }
          )
        ] }),
        currentStep === 4 && /* @__PURE__ */ jsxRuntimeExports.jsx(
          FeedbackStep,
          {
            data: statement.feedback,
            onChange: (feedback, changedField) => {
              updateStatement({ feedback });
              if (changedField && fieldToSection[changedField]) {
                scrollPreviewToSection(fieldToSection[changedField]);
              }
            },
            publicationDate: statement.basicInfo.publicationDate,
            onPublicationDateChange: (date) => {
              updateStatement({
                basicInfo: {
                  ...statement.basicInfo,
                  publicationDate: date
                }
              });
            }
          }
        ),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:justify-start cy:mt-8 cy:gap-4", children: [
          currentStep !== 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
            Button,
            {
              onClick: prevStep,
              size: "lg",
              variant: "outline",
              className: "cy:flex cy:items-center cy:gap-2 cy:py-4 cy:px-8! cy:rounded cy:text- cy:text-primary cy:font-semibold cy:border-primary",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowLeft, { className: "cy:w-[24px]! cy:h-[24px]! cy:text-primary" }),
                "Previous"
              ]
            }
          ),
          currentStep === steps.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsxs(
            Button,
            {
              type: "button",
              onClick: async () => {
                try {
                  const updatedStatement = {
                    ...statement,
                    status: "published"
                  };
                  const response = await saveStatement(updatedStatement);
                  setStorage(response);
                  setShowSuccessScreen(true);
                } catch (error) {
                  console.error("Failed to save statement:", error);
                  setShowSuccessScreen(true);
                }
              },
              size: "lg",
              id: "wysg-generate-btn",
              className: "cy:flex cy:items-center cy:gap-2 cy:py-4 cy:px-8! cy:rounded cy:text-base cy:font-semibold cy:bg-[#229D56]!",
              children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "cy:w-[24px]! cy:h-[24px]!" }),
                "Generate"
              ]
            }
          ) : /* @__PURE__ */ jsxRuntimeExports.jsxs(
            Button,
            {
              onClick: nextStep,
              disabled: currentStep === steps.length - 1,
              size: "lg",
              className: "cy:flex cy:items-center cy:gap-2 cy:py-4 cy:px-8! cy:rounded cy:text-base cy:font-semibold",
              children: [
                "Next",
                /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { className: "cy:w-[24px]! cy:h-[24px]!" })
              ]
            }
          )
        ] })
      ] })
    ] }) }) }) }) });
  }
);
AccessibilityStatementGenerator.displayName = "AccessibilityStatementGenerator";
const Route2 = createFileRoute("/statement/")({
  component: Statement
});
function Statement() {
  const [showSuccessScreen, setShowSuccessScreen] = reactExports.useState(false);
  const generatorRef = reactExports.useRef(null);
  const handlePreview = async () => {
    if (generatorRef.current) {
      await generatorRef.current.handlePreview();
    }
  };
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { className: "cy:rounded-lg cy:gap-0 cy:shadow-none!", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { className: "cy:border-b cy:border-gray-200 cy:pb-6", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "cy:flex cy:items-center cy:justify-between", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "cy:text-xl", children: "Statement generator" }),
        !showSuccessScreen && /* @__PURE__ */ jsxRuntimeExports.jsxs(
          Button,
          {
            variant: "link",
            size: "sm",
            className: "cy:flex cy:items-center cy:gap-2 cy:text-primary cy:font-semibold!",
            onClick: handlePreview,
            children: [
              "Preview",
              /* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink, { className: "cy:font-semibold!", size: 32, strokeWidth: 3 })
            ]
          }
        )
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx(CardAction, {})
    ] }),
    /* @__PURE__ */ jsxRuntimeExports.jsx(CardContent, { className: "cy:p-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
      AccessibilityStatementGenerator,
      {
        ref: generatorRef,
        onSuccessScreenChange: setShowSuccessScreen
      }
    ) })
  ] });
}
const IssueFixesRoute = Route$3.update({
  id: "/issue-fixes",
  path: "/issue-fixes",
  getParentRoute: () => Route$4
});
const AccessibilityToolbarRoute = Route$2.update({
  id: "/accessibility-toolbar",
  path: "/accessibility-toolbar",
  getParentRoute: () => Route$4
});
const IndexRoute = Route$1.update({
  id: "/",
  path: "/",
  getParentRoute: () => Route$4
});
const StatementIndexRoute = Route2.update({
  id: "/statement/",
  path: "/statement/",
  getParentRoute: () => Route$4
});
const rootRouteChildren = {
  IndexRoute,
  IssueFixesRoute,
  AccessibilityToolbarRoute,
  StatementIndexRoute
};
const routeTree = Route$4._addFileChildren(rootRouteChildren)._addFileTypes();
const isDebugMode = () => {
  if (typeof window !== "undefined") {
    return window.location.search.includes("debug=true") || localStorage.getItem("debug") === "true" || window.location.hash.includes("debug=true");
  }
  return false;
};
const debug = {
  log: (message, ...args) => {
    if (isDebugMode()) {
      console.log(`[DEBUG] ${message}`, ...args);
    }
  },
  error: (message, ...args) => {
    if (isDebugMode()) {
      console.error(`[DEBUG ERROR] ${message}`, ...args);
    }
  },
  warn: (message, ...args) => {
    if (isDebugMode()) {
      console.warn(`[DEBUG WARN] ${message}`, ...args);
    }
  },
  info: (message, ...args) => {
    if (isDebugMode()) {
      console.info(`[DEBUG INFO] ${message}`, ...args);
    }
  },
  // Log router state for debugging
  router: (router2) => {
    if (isDebugMode()) {
      console.log("[DEBUG ROUTER] State:", router2.state);
      console.log("[DEBUG ROUTER] Location:", router2.state.location);
      console.log("[DEBUG ROUTER] Hash:", router2.state.location.hash);
      console.log("[DEBUG ROUTER] Pathname:", router2.state.location.pathname);
    }
  },
  // Log component props and state
  component: (componentName, props, state) => {
    if (isDebugMode()) {
      console.log(`[DEBUG COMPONENT] ${componentName}:`, { props, state });
    }
  }
};
debug.log("Application starting...");
debug.log("Router configuration:", routeTree);
const router = createRouter({ routeTree, history: createHashHistory() });
const targetElement = document.getElementById("accessibility-plus-app");
debug.log("Target element:", targetElement);
if (!targetElement) {
  debug.error("Target element #accessibility-plus-app not found!");
  throw new Error("Target element #accessibility-plus-app not found!");
}
if (!targetElement.innerHTML) {
  const root = clientExports.createRoot(targetElement);
  root.render(
    /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(RouterProvider, { router }) })
  );
}
//# sourceMappingURL=index.js.map
