import { jsxs as g, jsx as p, Fragment as le } from "react/jsx-runtime";
import I, { cloneElement as Ke, useState as W, useRef as ee, useEffect as H } from "react";
import { createPortal as Y } from "react-dom";
const Le = "@sencha/reext", Me = "1.0.20", Ue = "ReExt - Sencha Ext JS components in React", Fe = "./dist/ReExt/types.d.ts", Be = "./dist/reext.es.js", qe = {
  b: "npm run buildclonedeep && npm run buildisequal && npm run buildfill && npm run buildgetconfig && npm run buildglobalprovider && npm run buildisevent && npm run builditeratechildren && npm run buildloadextjsfiles && npm run buildpropupdate && npm run buildresizeobserver && npm run builduntilextloaded && npm run buildwatermark",
  buildplugin: "esbuild ./src/lib/modules/vite-plugin-reext.js --format=esm --bundle --minify --outfile=./src/lib/vite-plugin-reext.js --platform=node",
  buildclonedeep: "esbuild ./src/lib/modules/cloneDeep.jsx --format=esm --bundle --minify --outfile=./src/lib/cloneDeep.js",
  buildisequal: "esbuild ./src/lib/modules/isEqual.jsx --format=esm --bundle --minify --outfile=./src/lib/isEqual.js",
  buildfill: "esbuild ./src/lib/modules/Fill.jsx --format=esm --bundle --minify --outfile=./src/lib/Fill.js",
  buildgetconfig: "esbuild ./src/lib/modules/getconfig.jsx --format=esm --bundle --minify --outfile=./src/lib/getconfig.js",
  buildglobalprovider: "esbuild ./src/lib/modules/GlobalProvider.jsx --format=esm --minify --outfile=./src/lib/GlobalProvider.js --inject:./src/lib/modules/react-shim.js",
  buildisevent: "esbuild ./src/lib/modules/isevent.jsx --format=esm --bundle --minify --outfile=./src/lib/isevent.js",
  builditeratechildren: "esbuild ./src/lib/modules/iteratechildren.jsx --format=esm --bundle --minify --outfile=./src/lib/iteratechildren.js --external:react --external:react-dom",
  buildloadextjsfiles: "esbuild ./src/lib/modules/loadextjsfiles.jsx --format=esm --bundle --minify --outfile=./src/lib/loadextjsfiles.js",
  buildpropupdate: "esbuild ./src/lib/modules/propupdate.jsx --format=esm --bundle --minify --outfile=./src/lib/propupdate.js",
  buildresizeobserver: "esbuild ./src/lib/modules/resizeobserver.jsx --format=esm --bundle --minify --outfile=./src/lib/resizeobserver.js",
  builduntilextloaded: "esbuild ./src/lib/modules/untilextloaded.jsx --format=esm --bundle --minify --outfile=./src/lib/untilextloaded.js",
  buildwatermark: "esbuild ./src/lib/modules/watermark.jsx --format=esm --bundle --minify --outfile=./src/lib/watermark.js",
  preinstall: "node ./dist/scripts/preinstall.js",
  postinstall: "node ./dist/scripts/postinstall.js",
  prepublishOnly: "node ./public/scripts/prepublish.js",
  postpack: "node ./public/scripts/postpack.js",
  postpublish: "node ./public/scripts/postpublish.js",
  pack: "npm pack --pack-destination zip",
  dev: "vite",
  builddev: "vite build -m development",
  build: "vite build",
  test: "vitest run",
  watch: "vitest",
  coverage: "vitest run --coverage",
  lint: "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0"
}, Ve = {
  name: "Sencha, Inc.",
  email: "marc.gusmano@sencha.com",
  url: "http://www.sencha.com"
}, Ge = "https://www.sencha.com/products/reext/", Xe = [
  "React",
  "NextJS",
  "Sencha",
  "ExtJS",
  "Components",
  "ReExt"
], Ye = "MIT", Qe = {
  ".": {
    import: "./dist/reext.es.js"
  }
}, Ze = {
  "@vitejs/plugin-react-swc": "^3.7.0",
  eslint: "8.57.0",
  "eslint-plugin-react": "^7.35.0",
  "eslint-plugin-react-hooks": "^4.6.2",
  "eslint-plugin-react-refresh": "^0.4.9",
  vite: "^5.4.1"
}, et = {
  react: "^18.3.1",
  "react-dom": "^18.3.1"
}, ke = {
  name: Le,
  version: Me,
  description: Ue,
  types: Fe,
  module: Be,
  scripts: qe,
  author: Ve,
  homepage: Ge,
  keywords: Xe,
  license: Ye,
  exports: Qe,
  devDependencies: Ze,
  dependencies: et
}, tt = (e, t) => {
  for (var r in e) typeof e[r] == "function" && function(i, n) {
    var s = r;
    e[r] = function() {
      t === !0 && console.log("---"), console.log("globalState." + s + " payload:", arguments[0]), t === !0 && console.log(new Error().stack), t === !0 && console.log("---");
      var a = n.apply(this, arguments);
      return a;
    };
  }(r, e[r]);
}, rt = async (e, t, r) => {
  console.log("dispatch:", e.type, e.payload), r.dispatchStack && console.log(new Error().stack);
}, it = (e, t, r) => {
  const [i, n] = I.useReducer(e, t), s = I.useRef(null);
  var a = r.middleware;
  a === void 0 && (a = []);
  var o = r.middlewareafter;
  return o === void 0 && (o = []), I.useEffect(() => {
    o.map((l) => l(s.current, i));
  }, [o, i]), [i, (l) => {
    a.map((f) => f(l, i, r)), s.current = l, n(l);
  }];
}, Re = I.createContext(), Ce = () => I.useContext(Re), nt = (e, t) => {
  var r = { ...e };
  return r[t.type.toLowerCase()] = t.payload, window.vscodeapi !== void 0 && vscodeapi.setState(r), r;
}, at = (e) => {
  if (e === void 0) return;
  var t = e.types, r = {};
  for (let o in t) t.hasOwnProperty(o) && (r["set" + o] = (l) => s({ type: o, payload: l }));
  var i = {};
  for (let o in t) t.hasOwnProperty(o) && (i[o.toLowerCase()] = t[o].value);
  I.useEffect(() => {
    e.dispatchTrace && e.middleware.push(rt);
  }, [e]), e.actionTrace && tt(r, e.actionStack);
  const [n, s] = it(nt, i, e), a = (o, l) => {
    var f = {};
    for (const [c] of Object.entries(l)) f[c] = o[c];
    return f;
  };
  return I.createElement(Re.Provider, { value: { ...a(n, i), ...r } }, e.children);
};
function re(e) {
  if (e === null || typeof e != "object") return e;
  if (e instanceof Date) return new Date(e);
  if (Array.isArray(e)) {
    let t = [];
    for (let r = 0; r < e.length; r++) t[r] = re(e[r]);
    return t;
  }
  if (e instanceof Object) {
    let t = {};
    for (let r in e) e.hasOwnProperty(r) && (t[r] = re(e[r]));
    return t;
  }
  return e;
}
function he(e, t) {
  if (e === t) return !0;
  if (e == null || t == null) return e === t;
  if (typeof e != typeof t) return !1;
  if (e instanceof Date && t instanceof Date) return e.getTime() === t.getTime();
  if (Array.isArray(e) && Array.isArray(t)) {
    if (e.length !== t.length) return !1;
    for (let r = 0; r < e.length; r++) if (!he(e[r], t[r])) return !1;
    return !0;
  }
  if (e instanceof Object && t instanceof Object) {
    let r = Object.keys(e), i = Object.keys(t);
    if (r.length !== i.length) return !1;
    for (let n of r) if (!t.hasOwnProperty(n) || !he(e[n], t[n])) return !1;
    return !0;
  }
  return !1;
}
function ot({ reextplugin: e, rid: t, reactversion: r, extver: i, extlocation: n, exttoolkit: s, exttheme: a, type: o, packageversion: l, style: f, flexdirection: c, ...y }) {
  return /* @__PURE__ */ g("div", { name: "ReExtRootLogo", "data-rid": y.rid, style: { display: "flex", flexDirection: c, alignItems: "center", color: "black", padding: 5, ...f }, children: [
    /* @__PURE__ */ p("img", { style: { height: 40, width: 80 }, src: "../ReExt/ReExt.png" }),
    /* @__PURE__ */ g("div", { style: { margin: "0 0 0 3px" }, children: [
      /* @__PURE__ */ p("div", { style: { margin: "0 0 0 1px", fontSize: 12, color: "black" }, children: /* @__PURE__ */ p("a", { style: y.style, target: "_blank", rel: "noreferrer", href: "https://www.npmjs.com/package/@sencha/reext", children: /* @__PURE__ */ g("i", { children: [
        "ReExt ",
        l
      ] }) }) }),
      /* @__PURE__ */ p("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: /* @__PURE__ */ g("span", { style: { margin: "0 0 0 0" }, children: [
        o,
        ", reextplugin: ",
        e.toString()
      ] }) }),
      /* @__PURE__ */ p("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: /* @__PURE__ */ g("span", { style: { margin: "0 0 0 0" }, children: [
        "React: ",
        /* @__PURE__ */ p("b", { children: r })
      ] }) }),
      /* @__PURE__ */ p("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: /* @__PURE__ */ g("span", { style: { margin: "0 0 0 0" }, children: [
        "ExtJS: ",
        /* @__PURE__ */ g("b", { children: [
          i,
          " (",
          n,
          ")"
        ] })
      ] }) }),
      /* @__PURE__ */ g("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: [
        /* @__PURE__ */ g("span", { style: { margin: "0 0 0 0" }, children: [
          "toolkit: ",
          /* @__PURE__ */ p("b", { children: s })
        ] }),
        /* @__PURE__ */ g("span", { style: { margin: "0 0 0 5px" }, children: [
          "theme: ",
          /* @__PURE__ */ p("b", { children: a })
        ] })
      ] })
    ] })
  ] });
}
var st = (e) => {
  var t = null, r = e.slice(0, 2);
  if (r === "on") {
    var i = e.charAt(2), n = e.charAt(2).toUpperCase();
    i === n && (t = e.slice(2).toLowerCase());
  }
  return window.Ext.isClassic === !0 && t === "tap" && (t = "click"), t;
}, lt = (e, t, r, i) => {
  if (!(typeof window === void 0 || typeof window > "u")) {
    var n = {};
    if (n.xtype = e, t !== void 0) for (let [a, o] of Object.entries(t)) n[a] = o;
    if (r.references === !0 && (n.controller = window.Ext.create("Ext.app.ViewController")), n.store !== void 0 && (n.store.listeners !== void 0 ? n.store.listeners.load === void 0 && (n.store.listeners.load = (a) => {
      r.storeloaded !== void 0 && r.storeloaded(a, i());
    }) : n.store.listeners = { load: (a) => {
      r.storeloaded !== void 0 && r.storeloaded(a, i());
    } }), n.listeners === void 0) {
      n.listeners = {};
      for (let [a, o] of Object.entries(r)) {
        var s = st(a);
        s !== null && (n.listeners[s] = function() {
          o(...arguments);
        });
      }
      Object.keys(n.listeners).length === 0 && delete n.listeners;
    }
    return n;
  }
}, ct = (e) => {
  var t = null, r = e.slice(0, 2);
  if (r === "on") {
    var i = e.charAt(2), n = e.charAt(2).toUpperCase();
    i === n && (t = e.slice(2).toLowerCase());
  }
  return window.Ext.isClassic === !0 && t === "tap" && (t = "click"), t;
}, ve = (e, t, r) => {
  if (!(typeof window === void 0 || typeof window > "u")) {
    var i = [], n = [];
    if (e === void 0) return [];
    e.length === void 0 ? n.push(e) : n = e;
    try {
      return n.map((s) => {
        var a, o;
        if (t.xtype === "tabpanel") {
          var l;
          window.Ext.ReExtTheme === "classic" ? l = "Ext.panel.Panel" : l = "Ext.Panel", a = window.Ext.create(l, { layout: "fit", title: s.props.title, cls: "ReExtTabChildRoot", items: [{ xtype: "component", listeners: { boxready: (u) => {
            o = Y(s, u.el.dom), i.push(o);
            var R = u.el.dom.parentNode;
            r.observe(R);
          } }, style: { backgroundColor: "transparent", display: "flex", height: "100%", width: "100%" } }] }), t.add(a), window.Ext.isClassic === !0 ? f = "Ext.container.Container" : f = "Ext.Container", window.Ext.isClassic !== !0 && (o = Y(s, a.items.items[0].el.dom), i.push(o));
        } else {
          var f;
          window.Ext.isClassic === !0 ? f = "Ext.container.Container" : f = "Ext.Container";
          var c = { ...s.props.style, layout: "fit", cls: "ReExtWidgetRoot" };
          a = window.Ext.create(f, c), t.add(a);
          var y = Ke(s, { ReExtParent: t });
          window.Ext.isClassic === !0 ? o = Y(y, a.el.dom) : o = Y(y, a.innerElement.dom), i.push(o);
        }
      }), i;
    } catch (s) {
      return console.error("iteratechldren:", s.toString()), [];
    }
  }
}, dt = (e, t, r) => {
  if (!(typeof window === void 0 || typeof window > "u")) {
    var i = (s) => {
      let a = s.charAt(0).toUpperCase(), o = s.slice(1);
      var l = "set" + (a + o);
      return l;
    }, n;
    window.Ext.isClassic === !0 ? t === "items" ? (e.removeAll(!0), e.add(r)) : t !== "layout" && (n = i(t), e[n] !== void 0 ? e[n](r) : e[t] = r) : (n = i(t), e[n] !== void 0 && e[n](r));
  }
}, ut = () => {
  var e;
  return typeof ResizeObserver < "u" ? (e = new ResizeObserver((t) => {
    if (!(typeof window === void 0 || typeof window > "u")) for (let o of t) {
      var r = 0, i = o.target.children.item(r);
      if (i !== null && o.contentBoxSize) {
        let l = o.contentBoxSize[0];
        var n = l.inlineSize, s = window.Ext.getCmp(i.id);
        if (s !== void 0) window.Ext.getCmp(i.id).setWidth(n), window.Ext.getCmp(i.id).setHeight(l.blockSize);
        else if (!i.classList.contains("wm")) {
          console.log("child not found", i.id);
          var a = i.getAttribute("w");
          a !== "w" && console.warn("child not resized", i);
        }
      }
    }
  }), e) : null;
};
async function ft() {
  return await new Promise((e) => {
    function t() {
      window.Ext !== void 0 && window.Ext.onReady(function() {
        return clearInterval(r), e(1);
      });
    }
    var r = setInterval(t, 5);
  });
}
var pt = (e, t, r) => {
  if (typeof window > "u") return;
  let i = document.createElement("div");
  i.classList.add("wm"), i.style.zIndex = 2e4, i.style.position = "absolute", i.style.bottom = "0px", i.style.right = "0px", i.style.color = "white", i.style.fontSize = "10px", i.style.fontWeight = "bold", i.style.fontStyle = "italic", i.style.background = "#B87333", i.style.padding = "1px 3px 1px 1px", i.style.border = "1px solid lightgray", i.style.borderRadius = "3px 3px 3px 3px", i.innerText = "ReExt " + t, r !== null ? r.appendChild(i) : e.el !== void 0 && e.el.dom.appendChild(i);
};
function Rr(e) {
  const t = Ce();
  if (typeof window === void 0 || typeof window > "u")
    return;
  const [r, i] = W(null), [n, s] = W(null), a = ee(null);
  a.current = n;
  const o = () => a.current, [l, f] = W(null), c = ee(null);
  c.current = l;
  const y = () => c.current, u = ee(null);
  var R = ut();
  const [A, J] = W(!1);
  H(() => {
    try {
      var m = __IS_REEXT_RUNNING__;
      J(!0);
    } catch {
      J(!1);
    }
  }, []), H(() => {
    var m, v = "false";
    if (!(typeof window === void 0 || typeof window > "u"))
      return (async () => {
        if (await ft(), e.children !== void 0 && e.config.items === void 0 && (e.config.items = []), v === "false" && e.xtype !== "logo") {
          var b;
          y() == null ? b = e.config : b = y();
          try {
            var w = lt(e.xtype, b, e, o), L = Ext.ClassManager.getByAlias("widget." + w.xtype);
            if (L === void 0) {
              var oe = "ReExt " + w.xtype + " could not be created";
              w = { xtype: "label", text: oe, style: { color: "red", background: "lightgray" } };
            }
            if (w.height === void 0 && w.xtype !== "window" && (window.Ext.isClassic === !0 && w.xtype === "grid" ? w.height = 0 : w.height = "100%"), w.width === void 0 && w.xtype !== "window" && (window.Ext.isClassic === !0 && w.xtype === "grid" ? w.width = 0 : w.width = "100%"), window.Ext.isClassic === !0) {
              const O = (se) => {
                var B = se.el.dom.parentNode;
                R.observe(B);
              };
              w.listeners === void 0 ? w.listeners = { boxready: O } : w.listeners.boxready = O;
            }
            w.xtype !== "window" && (w.renderTo = u.current), m = window.Ext.create(w), s(m), a.current = m, e.config !== void 0 && e.config.reference !== void 0 && e.ReExtParent !== void 0 && (e.ReExtParent.ReExtChildren === void 0 && (e.ReExtParent.ReExtChildren = []), e.ReExtParent.ReExtChildren.push(m)), u.current === null ? console.warn("ReExtRootRef.current,props", u.current, e) : (u.current.style.background = "transparent", u.current.firstChild.remove());
            var _ = ve(e.children, m, R);
            i(_), t.type !== null && t.type !== "production" && pt(m, w.xtype, u.current), e.ready !== void 0 && e.ready(m);
          } catch (O) {
            console.error(O);
          }
        }
      })(), () => {
        v = "true", !(typeof window === void 0 || typeof window > "u") && window.Ext !== void 0 && window.Ext.destroy !== void 0 && m != null && (s(null), window.Ext.destroy(m));
      };
  }, [t.type]), H(() => {
    if (!(typeof window === void 0 || typeof window > "u") && e.config !== void 0) {
      if (a.current !== null) {
        e.children !== void 0 && e.config.items === void 0 && (e.config.items = []);
        for (const [_] of Object.entries(c.current)) {
          if (ct(_) != null || _ === "xtype") return;
          var m = re(c.current[_]), v = re(e.config[_]);
          m != null && delete m.listeners, v !== void 0 && m !== null && delete v.listeners;
          const O = (se) => {
            let B = [], ze = JSON.stringify(se, function(Er, q) {
              if (typeof q == "object" && q !== null) {
                if (B.indexOf(q) !== -1)
                  return;
                B.push(q);
              }
              return q;
            });
            return B = null, ze;
          };
          var b = O(m), w = O(v), L = he(b, w);
          if (!L && (dt(a.current, _, v), _ === "items")) {
            var oe = ve(e.children, a.current, R);
            i(oe);
          }
        }
      }
      f(e.config), c.current = e.config;
    }
  }, [e.config]);
  var N = "", S = "", z = "", d = "";
  if (!(typeof window === void 0 || typeof window > "u")) {
    if (window.Ext !== void 0 && window.Ext.versions !== null && window.Ext.versions !== void 0) {
      S = window.Ext.versions.core.version, d = window.Ext.ReExtTheme, N = window.Ext.ReExtLocation;
      var D = window.Ext.isClassic;
      D === !0 ? z = "classic" : z = "modern";
    }
    if (!(typeof window === void 0 || typeof window > "u")) {
      var x = "";
      if (t.type === "production" || t.type === null ? x = "production" : x = `${t.type} - ${t.daysleft} days left`, e.xtype === "logo")
        return /* @__PURE__ */ p(
          ot,
          {
            reextplugin: A,
            rid: e.rid,
            reactversion: I.version,
            extver: S,
            extlocation: N,
            exttoolkit: z,
            exttheme: d,
            type: x,
            packageversion: ke.version,
            flexdirection: e.flexdirection,
            style: e.style
          }
        );
      var h;
      e.style === void 0 || e.style.height === void 0 ? h = 1 : h = "none";
      var K = "";
      if (e.className !== void 0 && (K = e.className), e.xtype === "window")
        return null;
      var E, C, k = {};
      return e.child === !0 && (k = { height: "100%" }), r === null ? (E = { ...e.style, ...k, flex: h, position: "relative", display: "flex", overflow: "hidden" }, C = K + " fill") : r.length === 0 ? (E = { ...e.style, ...k, flex: h, position: "relative", display: "flex", overflow: "hidden" }, C = K + " fill") : (E = { ...e.style, flex: h, position: "relative", display: "flex", overflow: "hidden" }, C = K), /* @__PURE__ */ p(
        "div",
        {
          name: "ReExtRoot-" + e.xtype,
          "data-rid": e.rid,
          className: C,
          style: E,
          ref: u,
          children: /* @__PURE__ */ p("div", { className: "portalroot", style: { display: "flex", flex: 1, alignItems: "center", justifyContent: "center" }, children: r !== null && r.map((m) => m) })
        }
      );
    }
  }
}
async function Cr() {
  if (typeof window === void 0 || typeof window > "u") return;
  function e(t) {
    t.style.width = "100%", t.style.height = "100%", t.style.margin = "0", t.style.padding = "0", t.style.padding = "0", t.style.boxSizing = "border-box", t.style.overflow = "hidden";
  }
  document.documentElement && e(document.documentElement), document.body && e(document.body), document.getElementById("root") && e(document.getElementById("root"));
}
function yt() {
  if (!(typeof window === void 0 || typeof window > "u"))
    return /* @__PURE__ */ p("div", { className: "splash", style: {
      fontSize: "36px",
      border: "10px solid #0960a5",
      width: "100%",
      height: "100%",
      margin: 0,
      padding: 0,
      boxSizing: "border-box",
      overflow: "hidden",
      display: "flex",
      flexDirection: "column",
      flex: 1,
      justifyContent: "center",
      alignItems: "center"
    }, children: /* @__PURE__ */ p("img", { style: { height: 500, width: 1e3 }, src: "../ReExt/ReExt.png" }) });
}
var ht = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), mt = ht(() => {
}), me = crypto, Ae = (e) => e instanceof CryptoKey, Q = new TextEncoder(), X = new TextDecoder();
function wt(...e) {
  let t = e.reduce((n, { length: s }) => n + s, 0), r = new Uint8Array(t), i = 0;
  for (let n of e) r.set(n, i), i += n.length;
  return r;
}
var vt = (e) => {
  let t = atob(e), r = new Uint8Array(t.length);
  for (let i = 0; i < t.length; i++) r[i] = t.charCodeAt(i);
  return r;
}, V = (e) => {
  let t = e;
  t instanceof Uint8Array && (t = X.decode(t)), t = t.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "");
  try {
    return vt(t);
  } catch {
    throw new TypeError("The input to be decoded is not correctly encoded.");
  }
}, F = class extends Error {
  static get code() {
    return "ERR_JOSE_GENERIC";
  }
  constructor(e) {
    var t;
    super(e), this.code = "ERR_JOSE_GENERIC", this.name = this.constructor.name, (t = Error.captureStackTrace) == null || t.call(Error, this, this.constructor);
  }
}, j = class extends F {
  static get code() {
    return "ERR_JWT_CLAIM_VALIDATION_FAILED";
  }
  constructor(e, t, r = "unspecified", i = "unspecified") {
    super(e), this.code = "ERR_JWT_CLAIM_VALIDATION_FAILED", this.claim = r, this.reason = i, this.payload = t;
  }
}, ge = class extends F {
  static get code() {
    return "ERR_JWT_EXPIRED";
  }
  constructor(e, t, r = "unspecified", i = "unspecified") {
    super(e), this.code = "ERR_JWT_EXPIRED", this.claim = r, this.reason = i, this.payload = t;
  }
}, U = class extends F {
  constructor() {
    super(...arguments), this.code = "ERR_JOSE_NOT_SUPPORTED";
  }
  static get code() {
    return "ERR_JOSE_NOT_SUPPORTED";
  }
}, $ = class extends F {
  constructor() {
    super(...arguments), this.code = "ERR_JWS_INVALID";
  }
  static get code() {
    return "ERR_JWS_INVALID";
  }
}, P = class extends F {
  constructor() {
    super(...arguments), this.code = "ERR_JWT_INVALID";
  }
  static get code() {
    return "ERR_JWT_INVALID";
  }
}, gt = class extends F {
  constructor() {
    super(...arguments), this.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED", this.message = "signature verification failed";
  }
  static get code() {
    return "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
  }
};
function T(e, t = "algorithm.name") {
  return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`);
}
function Z(e, t) {
  return e.name === t;
}
function ce(e) {
  return parseInt(e.name.slice(4), 10);
}
function xt(e) {
  switch (e) {
    case "ES256":
      return "P-256";
    case "ES384":
      return "P-384";
    case "ES512":
      return "P-521";
    default:
      throw new Error("unreachable");
  }
}
function bt(e, t) {
  if (t.length && !t.some((r) => e.usages.includes(r))) {
    let r = "CryptoKey does not support this operation, its usages must include ";
    if (t.length > 2) {
      let i = t.pop();
      r += `one of ${t.join(", ")}, or ${i}.`;
    } else t.length === 2 ? r += `one of ${t[0]} or ${t[1]}.` : r += `${t[0]}.`;
    throw new TypeError(r);
  }
}
function Et(e, t, ...r) {
  switch (t) {
    case "HS256":
    case "HS384":
    case "HS512": {
      if (!Z(e.algorithm, "HMAC")) throw T("HMAC");
      let i = parseInt(t.slice(2), 10);
      if (ce(e.algorithm.hash) !== i) throw T(`SHA-${i}`, "algorithm.hash");
      break;
    }
    case "RS256":
    case "RS384":
    case "RS512": {
      if (!Z(e.algorithm, "RSASSA-PKCS1-v1_5")) throw T("RSASSA-PKCS1-v1_5");
      let i = parseInt(t.slice(2), 10);
      if (ce(e.algorithm.hash) !== i) throw T(`SHA-${i}`, "algorithm.hash");
      break;
    }
    case "PS256":
    case "PS384":
    case "PS512": {
      if (!Z(e.algorithm, "RSA-PSS")) throw T("RSA-PSS");
      let i = parseInt(t.slice(2), 10);
      if (ce(e.algorithm.hash) !== i) throw T(`SHA-${i}`, "algorithm.hash");
      break;
    }
    case "EdDSA": {
      if (e.algorithm.name !== "Ed25519" && e.algorithm.name !== "Ed448") throw T("Ed25519 or Ed448");
      break;
    }
    case "ES256":
    case "ES384":
    case "ES512": {
      if (!Z(e.algorithm, "ECDSA")) throw T("ECDSA");
      let i = xt(t);
      if (e.algorithm.namedCurve !== i) throw T(i, "algorithm.namedCurve");
      break;
    }
    default:
      throw new TypeError("CryptoKey does not support this operation");
  }
  bt(e, r);
}
function je(e, t, ...r) {
  var i;
  if (r.length > 2) {
    let n = r.pop();
    e += `one of type ${r.join(", ")}, or ${n}.`;
  } else r.length === 2 ? e += `one of type ${r[0]} or ${r[1]}.` : e += `of type ${r[0]}.`;
  return t == null ? e += ` Received ${t}` : typeof t == "function" && t.name ? e += ` Received function ${t.name}` : typeof t == "object" && t != null && ((i = t.constructor) != null && i.name) && (e += ` Received an instance of ${t.constructor.name}`), e;
}
var xe = (e, ...t) => je("Key must be ", e, ...t);
function Te(e, t, ...r) {
  return je(`Key for the ${e} algorithm must be `, t, ...r);
}
var Pe = (e) => Ae(e) ? !0 : (e == null ? void 0 : e[Symbol.toStringTag]) === "KeyObject", ie = ["CryptoKey"], St = (...e) => {
  let t = e.filter(Boolean);
  if (t.length === 0 || t.length === 1) return !0;
  let r;
  for (let i of t) {
    let n = Object.keys(i);
    if (!r || r.size === 0) {
      r = new Set(n);
      continue;
    }
    for (let s of n) {
      if (r.has(s)) return !1;
      r.add(s);
    }
  }
  return !0;
}, $t = St;
function kt(e) {
  return typeof e == "object" && e !== null;
}
function ne(e) {
  if (!kt(e) || Object.prototype.toString.call(e) !== "[object Object]") return !1;
  if (Object.getPrototypeOf(e) === null) return !0;
  let t = e;
  for (; Object.getPrototypeOf(t) !== null; ) t = Object.getPrototypeOf(t);
  return Object.getPrototypeOf(e) === t;
}
var Rt = (e, t) => {
  if (e.startsWith("RS") || e.startsWith("PS")) {
    let { modulusLength: r } = t.algorithm;
    if (typeof r != "number" || r < 2048) throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`);
  }
};
function Ct(e) {
  let t, r;
  switch (e.kty) {
    case "RSA": {
      switch (e.alg) {
        case "PS256":
        case "PS384":
        case "PS512":
          t = { name: "RSA-PSS", hash: `SHA-${e.alg.slice(-3)}` }, r = e.d ? ["sign"] : ["verify"];
          break;
        case "RS256":
        case "RS384":
        case "RS512":
          t = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${e.alg.slice(-3)}` }, r = e.d ? ["sign"] : ["verify"];
          break;
        case "RSA-OAEP":
        case "RSA-OAEP-256":
        case "RSA-OAEP-384":
        case "RSA-OAEP-512":
          t = { name: "RSA-OAEP", hash: `SHA-${parseInt(e.alg.slice(-3), 10) || 1}` }, r = e.d ? ["decrypt", "unwrapKey"] : ["encrypt", "wrapKey"];
          break;
        default:
          throw new U('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
      }
      break;
    }
    case "EC": {
      switch (e.alg) {
        case "ES256":
          t = { name: "ECDSA", namedCurve: "P-256" }, r = e.d ? ["sign"] : ["verify"];
          break;
        case "ES384":
          t = { name: "ECDSA", namedCurve: "P-384" }, r = e.d ? ["sign"] : ["verify"];
          break;
        case "ES512":
          t = { name: "ECDSA", namedCurve: "P-521" }, r = e.d ? ["sign"] : ["verify"];
          break;
        case "ECDH-ES":
        case "ECDH-ES+A128KW":
        case "ECDH-ES+A192KW":
        case "ECDH-ES+A256KW":
          t = { name: "ECDH", namedCurve: e.crv }, r = e.d ? ["deriveBits"] : [];
          break;
        default:
          throw new U('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
      }
      break;
    }
    case "OKP": {
      switch (e.alg) {
        case "EdDSA":
          t = { name: e.crv }, r = e.d ? ["sign"] : ["verify"];
          break;
        case "ECDH-ES":
        case "ECDH-ES+A128KW":
        case "ECDH-ES+A192KW":
        case "ECDH-ES+A256KW":
          t = { name: e.crv }, r = e.d ? ["deriveBits"] : [];
          break;
        default:
          throw new U('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
      }
      break;
    }
    default:
      throw new U('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
  }
  return { algorithm: t, keyUsages: r };
}
var At = async (e) => {
  if (!e.alg) throw new TypeError('"alg" argument is required when "jwk.alg" is not present');
  let { algorithm: t, keyUsages: r } = Ct(e), i = [t, e.ext ?? !1, e.key_ops ?? r], n = { ...e };
  return delete n.alg, delete n.use, me.subtle.importKey("jwk", n, ...i);
}, jt = At, _e = (e) => V(e), de, ue, Ie = (e) => (e == null ? void 0 : e[Symbol.toStringTag]) === "KeyObject", De = async (e, t, r, i) => {
  let n = e.get(t);
  if (n != null && n[i]) return n[i];
  let s = await jt({ ...r, alg: i });
  return n ? n[i] = s : e.set(t, { [i]: s }), s;
}, Tt = (e, t) => {
  if (Ie(e)) {
    let r = e.export({ format: "jwk" });
    return delete r.d, delete r.dp, delete r.dq, delete r.p, delete r.q, delete r.qi, r.k ? _e(r.k) : (ue || (ue = /* @__PURE__ */ new WeakMap()), De(ue, e, r, t));
  }
  return e;
}, Pt = (e, t) => {
  if (Ie(e)) {
    let r = e.export({ format: "jwk" });
    return r.k ? _e(r.k) : (de || (de = /* @__PURE__ */ new WeakMap()), De(de, e, r, t));
  }
  return e;
}, _t = { normalizePublicKey: Tt, normalizePrivateKey: Pt }, M = (e) => e == null ? void 0 : e[Symbol.toStringTag], It = (e, t) => {
  if (!(t instanceof Uint8Array)) {
    if (!Pe(t)) throw new TypeError(Te(e, t, ...ie, "Uint8Array"));
    if (t.type !== "secret") throw new TypeError(`${M(t)} instances for symmetric algorithms must be of type "secret"`);
  }
}, Dt = (e, t, r) => {
  if (!Pe(t)) throw new TypeError(Te(e, t, ...ie));
  if (t.type === "secret") throw new TypeError(`${M(t)} instances for asymmetric algorithms must not be of type "secret"`);
  if (r === "sign" && t.type === "public") throw new TypeError(`${M(t)} instances for asymmetric algorithm signing must be of type "private"`);
  if (r === "decrypt" && t.type === "public") throw new TypeError(`${M(t)} instances for asymmetric algorithm decryption must be of type "private"`);
  if (t.algorithm && r === "verify" && t.type === "private") throw new TypeError(`${M(t)} instances for asymmetric algorithm verifying must be of type "public"`);
  if (t.algorithm && r === "encrypt" && t.type === "private") throw new TypeError(`${M(t)} instances for asymmetric algorithm encryption must be of type "public"`);
}, Ot = (e, t, r) => {
  e.startsWith("HS") || e === "dir" || e.startsWith("PBES2") || /^A\d{3}(?:GCM)?KW$/.test(e) ? It(e, t) : Dt(e, t, r);
}, Wt = Ot;
function Ht(e, t, r, i, n) {
  if (n.crit !== void 0 && (i == null ? void 0 : i.crit) === void 0) throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');
  if (!i || i.crit === void 0) return /* @__PURE__ */ new Set();
  if (!Array.isArray(i.crit) || i.crit.length === 0 || i.crit.some((a) => typeof a != "string" || a.length === 0)) throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
  let s;
  r !== void 0 ? s = new Map([...Object.entries(r), ...t.entries()]) : s = t;
  for (let a of i.crit) {
    if (!s.has(a)) throw new U(`Extension Header Parameter "${a}" is not recognized`);
    if (n[a] === void 0) throw new e(`Extension Header Parameter "${a}" is missing`);
    if (s.get(a) && i[a] === void 0) throw new e(`Extension Header Parameter "${a}" MUST be integrity protected`);
  }
  return new Set(i.crit);
}
var Jt = Ht;
function Nt(e, t) {
  let r = `SHA-${e.slice(-3)}`;
  switch (e) {
    case "HS256":
    case "HS384":
    case "HS512":
      return { hash: r, name: "HMAC" };
    case "PS256":
    case "PS384":
    case "PS512":
      return { hash: r, name: "RSA-PSS", saltLength: e.slice(-3) >> 3 };
    case "RS256":
    case "RS384":
    case "RS512":
      return { hash: r, name: "RSASSA-PKCS1-v1_5" };
    case "ES256":
    case "ES384":
    case "ES512":
      return { hash: r, name: "ECDSA", namedCurve: t.namedCurve };
    case "EdDSA":
      return { name: t.name };
    default:
      throw new U(`alg ${e} is not supported either by JOSE or your javascript runtime`);
  }
}
async function zt(e, t, r) {
  if (t = await _t.normalizePublicKey(t, e), Ae(t)) return Et(t, e, r), t;
  if (t instanceof Uint8Array) {
    if (!e.startsWith("HS")) throw new TypeError(xe(t, ...ie));
    return me.subtle.importKey("raw", t, { hash: `SHA-${e.slice(-3)}`, name: "HMAC" }, !1, [r]);
  }
  throw new TypeError(xe(t, ...ie, "Uint8Array"));
}
var Kt = async (e, t, r, i) => {
  let n = await zt(e, t, "verify");
  Rt(e, n);
  let s = Nt(e, n.algorithm);
  try {
    return await me.subtle.verify(s, n, r, i);
  } catch {
    return !1;
  }
}, Lt = Kt;
async function Mt(e, t, r) {
  if (!ne(e)) throw new $("Flattened JWS must be an object");
  if (e.protected === void 0 && e.header === void 0) throw new $('Flattened JWS must have either of the "protected" or "header" members');
  if (e.protected !== void 0 && typeof e.protected != "string") throw new $("JWS Protected Header incorrect type");
  if (e.payload === void 0) throw new $("JWS Payload missing");
  if (typeof e.signature != "string") throw new $("JWS Signature missing or incorrect type");
  if (e.header !== void 0 && !ne(e.header)) throw new $("JWS Unprotected Header incorrect type");
  let i = {};
  if (e.protected) try {
    let R = V(e.protected);
    i = JSON.parse(X.decode(R));
  } catch {
    throw new $("JWS Protected Header is invalid");
  }
  if (!$t(i, e.header)) throw new $("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
  let n = { ...i, ...e.header }, s = Jt($, /* @__PURE__ */ new Map([["b64", !0]]), r == null ? void 0 : r.crit, i, n), a = !0;
  if (s.has("b64") && (a = i.b64, typeof a != "boolean")) throw new $('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
  let { alg: o } = n;
  if (typeof o != "string" || !o) throw new $('JWS "alg" (Algorithm) Header Parameter missing or invalid');
  if (a) {
    if (typeof e.payload != "string") throw new $("JWS Payload must be a string");
  } else if (typeof e.payload != "string" && !(e.payload instanceof Uint8Array)) throw new $("JWS Payload must be a string or an Uint8Array instance");
  let l = !1;
  typeof t == "function" && (t = await t(i, e), l = !0), Wt(o, t, "verify");
  let f = wt(Q.encode(e.protected ?? ""), Q.encode("."), typeof e.payload == "string" ? Q.encode(e.payload) : e.payload), c;
  try {
    c = V(e.signature);
  } catch {
    throw new $("Failed to base64url decode the signature");
  }
  if (!await Lt(o, t, c, f)) throw new gt();
  let y;
  if (a) try {
    y = V(e.payload);
  } catch {
    throw new $("Failed to base64url decode the payload");
  }
  else typeof e.payload == "string" ? y = Q.encode(e.payload) : y = e.payload;
  let u = { payload: y };
  return e.protected !== void 0 && (u.protectedHeader = i), e.header !== void 0 && (u.unprotectedHeader = e.header), l ? { ...u, key: t } : u;
}
async function Ut(e, t, r) {
  if (e instanceof Uint8Array && (e = X.decode(e)), typeof e != "string") throw new $("Compact JWS must be a string or Uint8Array");
  let { 0: i, 1: n, 2: s, length: a } = e.split(".");
  if (a !== 3) throw new $("Invalid Compact JWS");
  let o = await Mt({ payload: n, protected: i, signature: s }, t, r), l = { payload: o.payload, protectedHeader: o.protectedHeader };
  return typeof t == "function" ? { ...l, key: o.key } : l;
}
var Ft = (e) => Math.floor(e.getTime() / 1e3), Bt = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, be = (e) => {
  let t = Bt.exec(e);
  if (!t || t[4] && t[1]) throw new TypeError("Invalid time period format");
  let r = parseFloat(t[2]), i = t[3].toLowerCase(), n;
  switch (i) {
    case "sec":
    case "secs":
    case "second":
    case "seconds":
    case "s":
      n = Math.round(r);
      break;
    case "minute":
    case "minutes":
    case "min":
    case "mins":
    case "m":
      n = Math.round(r * 60);
      break;
    case "hour":
    case "hours":
    case "hr":
    case "hrs":
    case "h":
      n = Math.round(r * 3600);
      break;
    case "day":
    case "days":
    case "d":
      n = Math.round(r * 86400);
      break;
    case "week":
    case "weeks":
    case "w":
      n = Math.round(r * 604800);
      break;
    default:
      n = Math.round(r * 31557600);
      break;
  }
  return t[1] === "-" || t[4] === "ago" ? -n : n;
}, Ee = (e) => e.toLowerCase().replace(/^application\//, ""), qt = (e, t) => typeof e == "string" ? t.includes(e) : Array.isArray(e) ? t.some(Set.prototype.has.bind(new Set(e))) : !1, Vt = (e, t, r = {}) => {
  let i;
  try {
    i = JSON.parse(X.decode(t));
  } catch {
  }
  if (!ne(i)) throw new P("JWT Claims Set must be a top-level JSON object");
  let { typ: n } = r;
  if (n && (typeof e.typ != "string" || Ee(e.typ) !== Ee(n))) throw new j('unexpected "typ" JWT header value', i, "typ", "check_failed");
  let { requiredClaims: s = [], issuer: a, subject: o, audience: l, maxTokenAge: f } = r, c = [...s];
  f !== void 0 && c.push("iat"), l !== void 0 && c.push("aud"), o !== void 0 && c.push("sub"), a !== void 0 && c.push("iss");
  for (let A of new Set(c.reverse())) if (!(A in i)) throw new j(`missing required "${A}" claim`, i, A, "missing");
  if (a && !(Array.isArray(a) ? a : [a]).includes(i.iss)) throw new j('unexpected "iss" claim value', i, "iss", "check_failed");
  if (o && i.sub !== o) throw new j('unexpected "sub" claim value', i, "sub", "check_failed");
  if (l && !qt(i.aud, typeof l == "string" ? [l] : l)) throw new j('unexpected "aud" claim value', i, "aud", "check_failed");
  let y;
  switch (typeof r.clockTolerance) {
    case "string":
      y = be(r.clockTolerance);
      break;
    case "number":
      y = r.clockTolerance;
      break;
    case "undefined":
      y = 0;
      break;
    default:
      throw new TypeError("Invalid clockTolerance option type");
  }
  let { currentDate: u } = r, R = Ft(u || /* @__PURE__ */ new Date());
  if ((i.iat !== void 0 || f) && typeof i.iat != "number") throw new j('"iat" claim must be a number', i, "iat", "invalid");
  if (i.nbf !== void 0) {
    if (typeof i.nbf != "number") throw new j('"nbf" claim must be a number', i, "nbf", "invalid");
    if (i.nbf > R + y) throw new j('"nbf" claim timestamp check failed', i, "nbf", "check_failed");
  }
  if (i.exp !== void 0) {
    if (typeof i.exp != "number") throw new j('"exp" claim must be a number', i, "exp", "invalid");
    if (i.exp <= R - y) throw new ge('"exp" claim timestamp check failed', i, "exp", "check_failed");
  }
  if (f) {
    let A = R - i.iat, J = typeof f == "number" ? f : be(f);
    if (A - y > J) throw new ge('"iat" claim timestamp check failed (too far in the past)', i, "iat", "check_failed");
    if (A < 0 - y) throw new j('"iat" claim timestamp check failed (it should be in the past)', i, "iat", "check_failed");
  }
  return i;
};
async function Gt(e, t, r) {
  var s;
  let i = await Ut(e, t, r);
  if ((s = i.protectedHeader.crit) != null && s.includes("b64") && i.protectedHeader.b64 === !1) throw new P("JWTs MUST NOT use unencoded payload");
  let n = { payload: Vt(i.protectedHeader, i.payload, r), protectedHeader: i.protectedHeader };
  return typeof t == "function" ? { ...n, key: i.key } : n;
}
var Xt = V;
function Yt(e) {
  if (typeof e != "string") throw new P("JWTs must use Compact JWS serialization, JWT must be a string");
  let { 1: t, length: r } = e.split(".");
  if (r === 5) throw new P("Only JWTs using Compact JWS serialization can be decoded");
  if (r !== 3) throw new P("Invalid JWT");
  if (!t) throw new P("JWTs must contain a payload");
  let i;
  try {
    i = Xt(t);
  } catch {
    throw new P("Failed to base64url decode the payload");
  }
  let n;
  try {
    n = JSON.parse(X.decode(i));
  } catch {
    throw new P("Failed to parse the decoded payload as JSON");
  }
  if (!ne(n)) throw new P("Invalid JWT Claims Set");
  return n;
}
function te(e) {
  var t = new Error(e);
  return t.source = "ulid", t;
}
var we = "0123456789ABCDEFGHJKMNPQRSTVWXYZ", G = we.length, Se = Math.pow(2, 48) - 1, Qt = 10, Zt = 16;
function er(e) {
  var t = Math.floor(e() * G);
  return t === G && (t = G - 1), we.charAt(t);
}
function tr(e, t) {
  if (isNaN(e)) throw new Error(e + " must be a number");
  if (e > Se) throw te("cannot encode time greater than " + Se);
  if (e < 0) throw te("time must be positive");
  if (Number.isInteger(e) === !1) throw te("time must be an integer");
  for (var r = void 0, i = ""; t > 0; t--) r = e % G, i = we.charAt(r) + i, e = (e - r) / G;
  return i;
}
function rr(e, t) {
  for (var r = ""; e > 0; e--) r = er(t) + r;
  return r;
}
function ir() {
  var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, t = arguments[1];
  t || (t = typeof window < "u" ? window : null);
  var r = t && (t.crypto || t.msCrypto);
  if (r) return function() {
    var n = new Uint8Array(1);
    return r.getRandomValues(n), n[0] / 255;
  };
  try {
    var i = mt();
    return function() {
      return i.randomBytes(1).readUInt8() / 255;
    };
  } catch {
  }
  if (e) {
    try {
      console.error("secure crypto unusable, falling back to insecure Math.random()!");
    } catch {
    }
    return function() {
      return Math.random();
    };
  }
  throw te("secure crypto unusable, insecure Math.random not allowed");
}
function nr(e) {
  return e || (e = ir()), function(t) {
    return isNaN(t) && (t = Date.now()), tr(t, Qt) + rr(Zt, e);
  };
}
nr();
var fe;
function ar(e) {
  return fe == null ? void 0 : fe.get(e);
}
var pe;
function or(e) {
  return pe == null ? void 0 : pe.get(e);
}
var ye;
function sr(e, t) {
  var r;
  return (r = ye == null ? void 0 : ye.get(e)) == null ? void 0 : r.get(t);
}
function lr(e) {
  var r, i;
  let t = typeof e;
  return t === "string" ? `"${e}"` : t === "number" || t === "bigint" || t === "boolean" ? `${e}` : t === "object" || t === "function" ? (e && ((i = (r = Object.getPrototypeOf(e)) == null ? void 0 : r.constructor) == null ? void 0 : i.name)) ?? "null" : t;
}
function ae(e, t, r, i, n) {
  let s = n && "input" in n ? n.input : r.value, a = (n == null ? void 0 : n.expected) ?? e.expects ?? null, o = (n == null ? void 0 : n.received) ?? lr(s), l = { kind: e.kind, type: e.type, input: s, expected: a, received: o, message: `Invalid ${t}: ${a ? `Expected ${a} but r` : "R"}eceived ${o}`, requirement: e.requirement, path: n == null ? void 0 : n.path, issues: n == null ? void 0 : n.issues, lang: i.lang, abortEarly: i.abortEarly, abortPipeEarly: i.abortPipeEarly }, f = e.kind === "schema", c = (n == null ? void 0 : n.message) ?? e.message ?? sr(e.reference, l.lang) ?? (f ? or(l.lang) : null) ?? i.message ?? ar(l.lang);
  c && (l.message = typeof c == "function" ? c(l) : c), f && (r.typed = !1), r.issues ? r.issues.push(l) : r.issues = [l];
}
function Oe(e) {
  return { kind: "transformation", type: "brand", reference: Oe, async: !1, name: e, _run(t) {
    return t;
  } };
}
function cr(e, t, r) {
  return typeof e.default == "function" ? e.default(t, r) : e.default;
}
function We(e) {
  return { kind: "schema", type: "number", reference: We, expects: "number", async: !1, message: e, _run(t, r) {
    return typeof t.value == "number" && !isNaN(t.value) ? t.typed = !0 : ae(this, "type", t, r), t;
  } };
}
function He(e, ...t) {
  let r = { kind: "schema", type: "optional", reference: He, expects: `${e.expects} | undefined`, async: !1, wrapped: e, _run(i, n) {
    return i.value === void 0 && ("default" in this && (i.value = cr(this, i, n)), i.value === void 0) ? (i.typed = !0, i) : this.wrapped._run(i, n);
  } };
  return 0 in t && (r.default = t[0]), r;
}
function Je(e, t) {
  return { kind: "schema", type: "strict_object", reference: Je, expects: "Object", async: !1, entries: e, message: t, _run(r, i) {
    var s;
    let n = r.value;
    if (n && typeof n == "object") {
      r.typed = !0, r.value = {};
      for (let a in this.entries) {
        let o = n[a], l = this.entries[a]._run({ typed: !1, value: o }, i);
        if (l.issues) {
          let f = { type: "object", origin: "value", input: n, key: a, value: o };
          for (let c of l.issues) c.path ? c.path.unshift(f) : c.path = [f], (s = r.issues) == null || s.push(c);
          if (r.issues || (r.issues = l.issues), i.abortEarly) {
            r.typed = !1;
            break;
          }
        }
        l.typed || (r.typed = !1), (l.value !== void 0 || a in n) && (r.value[a] = l.value);
      }
      if (!r.issues || !i.abortEarly) {
        for (let a in n) if (!(a in this.entries)) {
          let o = n[a];
          ae(this, "type", r, i, { input: o, expected: "never", path: [{ type: "object", origin: "value", input: n, key: a, value: o }] });
          break;
        }
      }
    } else ae(this, "type", r, i);
    return r;
  } };
}
function Ne(e) {
  return { kind: "schema", type: "string", reference: Ne, expects: "string", async: !1, message: e, _run(t, r) {
    return typeof t.value == "string" ? t.typed = !0 : ae(this, "type", t, r), t;
  } };
}
function dr(...e) {
  return { ...e[0], pipe: e, _run(t, r) {
    for (let i of e) if (i.kind !== "metadata") {
      if (t.issues && (i.kind === "schema" || i.kind === "transformation")) {
        t.typed = !1;
        break;
      }
      (!t.issues || !r.abortEarly && !r.abortPipeEarly) && (t = i._run(t, r));
    }
    return t;
  } };
}
var ur = dr(Ne(), Oe("lid"));
Je({ id: ur, ver: He(We()) });
var fr = (e) => () => e * 48271 % 2147483647 / 2147483647, pr = (e) => typeof Buffer < "u" ? Buffer.from(e).toString("base64") : btoa(typeof e == "string" ? e : String.fromCharCode(...e)), yr = (e) => typeof Buffer < "u" ? Buffer.from(e, "base64").toString() : atob(e), hr = (e, t) => {
  let r = fr(t), i = new TextEncoder().encode(e).map((n) => n ^ Math.floor(r() * 256));
  return pr(i);
}, mr = (e) => e.split("").reverse().join(""), wr = (e) => typeof e == "object" && !!e && "sub" in e && "exp" in e && typeof e.sub == "string" && typeof e.exp == "number", vr = async (e) => {
  let t = mr(yr(e));
  return { decoded: Yt(t), jwt: t };
}, gr = async (e) => {
  let { decoded: t, jwt: r } = await vr(e);
  if (!wr(t)) throw new Error("Invalid license key");
  let { sub: i, exp: n } = t, s = new TextEncoder().encode(hr(i, n));
  return await Gt(r, s), t;
};
function xr({ r: e, v: t, t: r }) {
  const i = Ce();
  if (H(() => {
    e !== void 0 && e.toLowerCase().includes("ehsug") ? i.setType("production") : i.setType(r);
  }, []), H(() => {
    const n = async (a) => {
      if (a === void 0)
        return { type: "nokey", daysleft: 0 };
      try {
        const o = await gr(a), c = new Date(o.exp * 1e3) - /* @__PURE__ */ new Date(), y = Math.floor(c / (1e3 * 60 * 60 * 24));
        return y > 0 ? { type: "trial", daysleft: y } : { type: "expired", daysleft: 0 };
      } catch (o) {
        return o.message.includes("claim timestamp check failed") ? { type: "expired", daysleft: 0 } : { type: "invalidkey", daysleft: 0 };
      }
    }, s = async () => {
      var a = await n(e);
      switch (i.setType(a.type), i.setDaysLeft(a.daysleft), a.type) {
        case "production":
        case "trial":
          i.setTrialDialog(!1);
          break;
        case "nokey":
        case "expired":
        case "invalidkey":
        default:
          i.setTrialDialog(!0);
          break;
      }
    };
    i.type !== null && i.type !== "production" && s();
  }, [i.type]), i.type !== "production" && i.trialdialog === !0)
    return /* @__PURE__ */ p("div", { style: {
      zIndex: 2e5,
      fontSize: "22px",
      background: "rgb(211,211,211,.4)",
      color: "black",
      display: "flex",
      flexDirection: "column",
      position: "absolute",
      left: "50%",
      width: "100%",
      height: "100%",
      transform: "translateX(-50%)",
      padding: "10px 10px 10px 10px",
      border: "1px solid black"
    }, children: /* @__PURE__ */ g("div", { style: {
      height: "100%",
      display: "flex",
      padding: "10px 10px 10px 10px",
      flexDirection: "column",
      margin: "40px",
      borderRadius: "5px",
      border: "1px solid gray",
      background: "white"
    }, children: [
      /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "row", alignItems: "center" }, children: [
        /* @__PURE__ */ p("img", { style: { width: 160 }, src: "../ReExt/ReExt.png" }),
        /* @__PURE__ */ g("div", { style: { margin: "0 0 0 20px" }, children: [
          "Welcome to the ReExt v",
          t,
          " Trial"
        ] })
      ] }),
      i.type === "trial" || i.type === "nokey" && /* @__PURE__ */ g(le, { children: [
        /* @__PURE__ */ g("div", { style: { margin: "10px 0 10px 0", fontSize: "18px" }, children: [
          "This is a 30 day trial version of ReExt.",
          /* @__PURE__ */ p("br", {}),
          "Without a valid trial key, this dialog will appear.",
          /* @__PURE__ */ p("br", {}),
          /* @__PURE__ */ p("br", {}),
          "To have a trial key emailed to you, fill in this form and click 'Get Trial Key'."
        ] }),
        /* @__PURE__ */ p("div", { style: { xwidth: "100%", flex: 1, display: "flex", border: "0px solid red" }, children: /* @__PURE__ */ p("iframe", { style: { width: "100%", margin: "0 0 10px 0", flex: 1, border: "0px solid lightgray" }, src: "https://www.sencha.com/forms/reext/trial-reext.php" }) }),
        /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "row", justifyContent: "space-between", alignItems: "flex-end" }, children: [
          /* @__PURE__ */ p("div", { style: { fontSize: "12px" }, children: i.type }),
          /* @__PURE__ */ p(
            "button",
            {
              style: { fontSize: "18px", padding: "5px 5px 5px 5px" },
              onClick: () => {
                i.setTrialDialog(!1);
              },
              children: "Close"
            }
          )
        ] })
      ] }),
      i.type === "expired" && /* @__PURE__ */ p(le, { children: /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", margin: "10px 0 10px 0", fontSize: "18px", height: "100%" }, children: [
        /* @__PURE__ */ p("div", { style: { margin: "0 0 20px 0", fontSize: "24px" }, children: "Your ReExt trial key has expired" }),
        /* @__PURE__ */ p("div", { children: "Contact Sencha Sales" }),
        /* @__PURE__ */ p("div", { children: /* @__PURE__ */ p("a", { href: "https://www.sencha.com/company/contact/", target: "_blank", rel: "noopener noreferrer", children: "https://www.sencha.com/company/contact/" }) })
      ] }) }),
      i.type === "invalidkey" && /* @__PURE__ */ p(le, { children: /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", margin: "10px 0 10px 0", fontSize: "18px", height: "100%" }, children: [
        /* @__PURE__ */ p("div", { style: { margin: "0 0 20px 0", fontSize: "24px" }, children: "Your ReExt trial key is invalid" }),
        /* @__PURE__ */ p("div", { children: "Contact Sencha Sales" }),
        /* @__PURE__ */ p("div", { children: /* @__PURE__ */ p("a", { href: "https://www.sencha.com/company/contact/", target: "_blank", rel: "noopener noreferrer", children: "https://www.sencha.com/company/contact/" }) })
      ] }) })
    ] }) });
}
async function br(e) {
  try {
    let D = async (E, C, k) => await new Promise((m) => {
      window.Ext.onReady(function() {
        return window.Ext.ReExtLocation = k, window.Ext.ReExtTheme = E, window.Ext.ReExtLi = !0, m(1);
      });
    }), x = async (E) => typeof window === void 0 || typeof window > "u" ? void 0 : await new Promise((C, k) => {
      let m = document.getElementsByTagName("HEAD")[0];
      var v = !1;
      for (let b = 0; b < m.childNodes.length; b++) m.childNodes[b].src === E && (v = !0);
      if (v === !1) {
        let b = document.createElement("script");
        b.addEventListener("load", () => C(1)), b.addEventListener("error", () => {
          var w = `${E} (js)

 - did you download the SDK from the support portal?
 - are you trying to download a file without an enterprise license?`;
          console.error(w), k(w);
        }), b.src = E, m.appendChild(b);
      }
    }), h = async (E) => typeof window === void 0 || typeof window > "u" ? void 0 : await new Promise((C, k) => {
      let m = document.getElementsByTagName("HEAD")[0], v = document.createElement("link");
      v.rel = "stylesheet", v.type = "text/css", v.href = E, v.addEventListener("error", () => {
        var b = `${E} (css)

- did you download the SDK from the support portal?
- are you trying to download a file without an enterprise license?`;
        return console.error(b), k(b);
      }), v.addEventListener("load", () => C(1)), m.appendChild(v);
    });
    var t = e.toolkit;
    (t == null || t === "") && (t = "modern");
    var r = e.theme;
    (r == null || r === "") && (r = "material");
    var i = e.packages;
    i === void 0 && (i = { charts: !1, fontawesome: !1, ux: !1, calendar: !1, d3: !1, exporter: !1, pivot: !1, pivotd3: !1, pivotlocale: !1, froalaeditor: !1 });
    var n = e.debug, s = e.license, a = e.urlbase, o = e.location;
    (o === "remote" || o === null) && (a = "https://cdn.sencha.com/reext/ext/");
    var l = e.rtl;
    l === !1 || l === void 0 ? l = "" : l = "-rtl";
    var f = e.locale;
    f === void 0 && (f = "en");
    var c = e.sdkversion;
    switch (c) {
      case "7.0.0":
        c = c + ".156";
        break;
      case "7.1.0":
        c = c + ".46";
        break;
      case "7.2.0":
      case "7.3.0":
      case "7.3.1":
      case "7.4.0":
      case "7.5.0":
      case "7.5.1":
      case "7.6.0":
      case "7.7.0":
      case "7.8.0":
        break;
      default:
        throw `SDK version ${c} is not valid`;
    }
    var y = a + "ext-" + c, u = a + "ext-addons-" + c;
    n === !0 ? n = "-debug" : n = "";
    var R = "";
    t === "modern" && (R = "-modern");
    var A = ["ios", "material", "neptune", "triton"];
    if (t === "modern" && !A.includes(r)) throw `${r} theme is not in ${t} toolkit for SDK version ${c}`;
    var J = ["classic", "crisp", "graphite", "gray", "material", "neptune", "triton"];
    t === "classic" && !J.includes(r) && console.warn(`${r} is a custom theme in ${t} toolkit for SDK version ${c}`);
    var N = !1;
    (i.calendar === !0 || i.d3 === !0 || i.exporter === !0 || i.pivot === !0 || i.pivotd3 === !0 || i.pivotlocale === !0 || i.froalaeditor === !0) && (N = !0), e.debug === !0 && await x("node_modules/@sencha/reext/dist/ReExt/debug.js");
    var S = y + "/build";
    if (c.slice(-1) === "c") {
      await x(`${S}/ext-${c}-toolkit-${t}-sdk.js`), await h(`${S}/ext-${c}-theme-${r}-sdk.css`), N === !0 && (await x(`${y}/ext-${c}-toolkit-${t}-addons.js`), await h(`${y}/ext-${c}-theme-${r}-addons.css`)), await D(r, s, o);
      return;
    }
    if (await x(`${S}/ext${R}-all${l}${n}.js`), await h(`${S}/${t}/theme-${r}/resources/theme-${r}-all${l}.css`), i.fontawesome === !0 && await h(`${S}/packages/font-awesome/resources/font-awesome-all${n}.css`), x(`${S}/${t}/locale/locale-${f}${n}.js`), i.ux === !0 && (await x(`${S}/packages/ux/${t}/ux${n}.js`), c === "7.0.0" && t === "modern" && r === "neptune" && await h(`${S}/packages/ux/${t}/${t}-${r}/resources/ux-all${n}.css`), c === "7.0.0" && t === "classic" && await h(`${S}/packages/ux/${t}/${r}/resources/ux-all${n}.css`), c !== "7.0.0" && t === "classic" && r === "material" && await h(`${S}/packages/ux/${t}/${t}-${r}/resources/ux-all${n}.css`), c !== "7.0.0" && t === "classic" && r !== "material" && r !== "gray" && await h(`${S}/packages/ux/${t}/${r}/resources/ux-all${n}.css`)), i.charts === !0) {
      await x(`${S}/packages/charts/${t}/charts${n}.js`);
      var z = !0;
      (t === "modern" && r === "ios" && c === "7.0.0" || r === "gray") && (z = !1), z === !0 && (t === "classic" && r !== "material" ? await h(`${S}/packages/charts/${t}/${r}/resources/charts-all${n}.css`) : await h(`${S}/packages/charts/${t}/${t}-${r}/resources/charts-all${n}.css`));
    }
    if (N === !0) {
      var d;
      u = u + "/packages", i.calendar === !0 && (d = "calendar", await x(`${u}/${d}/build/${t}/${d}${n}.js`), t === "modern" && r === "ios" || c === "7.0.0.156" ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : r !== "gray" && r !== "graphite" && (t === "classic" && r !== "material" ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : await h(`${u}/${d}/build/${t}/${t}-${r}/resources/${d}-all${n}.css`))), i.d3 === !0 && (d = "d3", await x(`${u}/${d}/build/${t}/${d}${n}.js`), t === "modern" && (r === "ios" || r === "material") ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : r !== "gray" && r !== "graphite" && (t === "classic" && r !== "material" ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : await h(`${u}/${d}/build/${t}/${t}-${r}/resources/${d}-all${n}.css`))), i.exporter === !0 && (d = "exporter", await x(`${u}/${d}/build/${t}/${d}${n}.js`), await h(`${u}/${d}/build/${t}/resources/${d}-all${n}.css`)), i.pivot === !0 && (d = "pivot", await x(`${u}/${d}/build/${t}/${d}${n}.js`), t === "modern" && (r === "ios" || r === "material") ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : r !== "gray" && r !== "graphite" && (t === "classic" && r !== "material" ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : await h(`${u}/${d}/build/${t}/${t}-${r}/resources/${d}-all${n}.css`))), i.pivotd3 === !0 && (d = "pivot-d3", await x(`${u}/${d}/build/${t}/${d}${n}.js`), t === "modern" && (r === "ios" || r === "material") ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : r !== "gray" && r !== "graphite" && (t === "classic" && r !== "material" ? await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`) : await h(`${u}/${d}/build/${t}/${t}-${r}/resources/${d}-all${n}.css`))), i.froalaeditor === !0 && (d = "froala-editor", await x(`${u}/${d}/build/${t}/${d}${n}.js`), await h(`${u}/${d}/build/${t}/${r}/resources/${d}-all${n}.css`), await x(`${u}/${d}/development/froalaeditor.pkgd.js`), await h(`${u}/${d}/development/froalaeditor.pkgd.css`)), i.pivotlocale;
    }
    async function K(E) {
      var C = E.location;
      if (C === "local") {
        var k = E.overrides;
        if (k === void 0 && (k = !1), k !== !0 && (k = !1), k === !0) {
          var m = `${E.urlbase}ext-${E.sdkversion}/${t}overrides.js`;
          console.log("overridefile", m);
          async function b(w) {
            try {
              let L = await fetch(w, { method: "HEAD" });
              return L.status === 404 ? (console.error("ReExtData.overrides is true but no overrides file exists"), !1) : L.status === 200;
            } catch {
              return !1;
            }
          }
          var v = await b(m);
          v && await x(m);
        }
      }
    }
    await K(e), await D(r, s, o);
  } catch (D) {
    console.warn("fail", D), alert(`Loading Failed: 
` + D.toString());
  }
}
var $e = "trial";
function Ar({ children: e, ReExtData: t, reextkey: r, splash: i }) {
  if (typeof window === void 0 || typeof window > "u")
    return;
  const [n, s] = W(!1), [a, o] = W(!1);
  H(() => {
    try {
      console.log("right before"), console.log("isReextRunning:", __IS_REEXT_RUNNING__);
      var f = __IS_REEXT_RUNNING__;
      console.log("isReextRunning:", f);
      var c = /* @__PURE__ */ new Date(), y = c.getTime();
      console.log("now:", y), console.log("diff:", y - f), o(!0);
    } catch {
      o(!1);
    }
  }, []);
  try {
    if (H(() => {
      (async () => {
        var c = {
          sdkversion: "7.8.0",
          toolkit: "classic",
          theme: "classic",
          packages: { charts: !1, fontawesome: !1, ux: !1, calendar: !1, d3: !1, exporter: !1, pivot: !1, pivotd3: !1, pivotlocale: !1, froalaeditor: !1 },
          rtl: !1,
          locale: "en",
          debug: !1,
          urlbase: "./",
          location: "remote",
          overrides: !1
        };
        t === void 0 && (t = c);
        try {
          await br(t), s(!0);
        } catch (y) {
          console.error("fail", y);
        }
      })();
    }, []), !n)
      return i === !0 || i === "true" ? /* @__PURE__ */ p(yt, {}) : null;
    if (n) {
      var l = {
        TrialDialog: { value: null },
        Version: { value: "2024-09-21-a" },
        Type: { value: null },
        DaysLeft: { value: null }
      };
      return /* @__PURE__ */ g(at, { types: l, actionTrace: !1, actionStack: !1, dispatchTrace: !1, dispatchStack: !1, middleware: [], middlewareafter: [], children: [
        $e !== "production" && /* @__PURE__ */ p(xr, { r, v: ke.version, t: $e }),
        a === !1 && /* @__PURE__ */ g(
          "div",
          {
            style: {
              border: "10px solid red",
              boxSizing: "border-box",
              display: "flex",
              flexDirection: "column",
              alignItems: "center",
              justifyContent: "center",
              height: "100vh",
              width: "100vw",
              fontSize: 24,
              color: "red"
            },
            children: [
              /* @__PURE__ */ p("div", { children: "the Vite ReExt plugin is needed to run this app" }),
              /* @__PURE__ */ p("div", { children: "modify vite.config.js like this" }),
              /* @__PURE__ */ p("div", { dangerouslySetInnerHTML: { __html: `
<pre>
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
import reext from './node_modules/@sencha/reext/dist/ReExt/vite-plugin-reext.js'

export default defineConfig({
  plugins: [
    react(), 
    reext()
  ]
})
</pre>` } })
            ]
          }
        ),
        a === !0 && e
      ] });
    }
  } catch (f) {
    return /* @__PURE__ */ p("div", { children: f.toString() });
  }
}
const jr = (e) => {
  if (typeof window === void 0 || typeof window > "u")
    return;
  const [t, r] = W(e);
  var i = ee();
  return i.current = t, [() => i.current, r];
};
function Tr(e) {
  if (!(typeof window === void 0 || typeof window > "u")) {
    for (var t, r = e.getController(), i = e; r === void 0; )
      r = e.parent.getController(), i = e.parent;
    if (t = r.getReferences(), t === null && (t = {}), i.ReExtChildren !== void 0)
      for (var n = 0; n < i.ReExtChildren.length; n++)
        i.ReExtChildren[n].reference !== null && (t[i.ReExtChildren[n].reference] = i.ReExtChildren[n]);
    return t;
  }
}
export {
  Cr as Fill,
  Ar as ReExtProvider,
  Tr as ReExtReferences,
  Rr as default,
  jr as useReExtState
};
