UNPKG

urbi-exhibitions

Version:
1,455 lines 64.4 kB
import { jsxs as k, jsx as d, Fragment as de } from "react/jsx-runtime";
import * as DA from "react";
import { memo as ct, useState as wt, useMemo as Ct, useEffect as gt, createContext as pe, useContext as he, useCallback as qt } from "react";
import { renderToStaticMarkup as Bt } from "react-dom/server";
import { d as ge } from "../index-Brsqgp8S.js";
import { c as lt, g as ZA } from "../_commonjsHelpers-DaMA6jEr.js";
import { b as be } from "../index-BfejLMcB.js";
import { u as QA } from "../exhibitionContext-C8CeOMRn.js";
import { a as CA, c as Vt } from "../cn-BYe7EnTr.js";
var aA, YA;
function We() {
  if (YA) return aA;
  YA = 1;
  var n = 9007199254740991, l = "[object Arguments]", a = "[object Function]", o = "[object GeneratorFunction]", i = typeof lt == "object" && lt && lt.Object === Object && lt, b = typeof self == "object" && self && self.Object === Object && self, u = i || b || Function("return this")();
  function N(c, H) {
    for (var K = -1, tt = H.length, C = c.length; ++K < tt; )
      c[C + K] = H[K];
    return c;
  }
  var W = Object.prototype, w = W.hasOwnProperty, V = W.toString, p = u.Symbol, X = W.propertyIsEnumerable, L = p ? p.isConcatSpreadable : void 0;
  function Q(c, H, K, tt, C) {
    var z = -1, yt = c.length;
    for (K || (K = J), C || (C = []); ++z < yt; ) {
      var h = c[z];
      K(h) ? N(C, h) : C[C.length] = h;
    }
    return C;
  }
  function J(c) {
    return B(c) || T(c) || !!(L && c && c[L]);
  }
  function O(c) {
    var H = c ? c.length : 0;
    return H ? Q(c) : [];
  }
  function T(c) {
    return m(c) && w.call(c, "callee") && (!X.call(c, "callee") || V.call(c) == l);
  }
  var B = Array.isArray;
  function S(c) {
    return c != null && G(c.length) && !q(c);
  }
  function m(c) {
    return $(c) && S(c);
  }
  function q(c) {
    var H = E(c) ? V.call(c) : "";
    return H == a || H == o;
  }
  function G(c) {
    return typeof c == "number" && c > -1 && c % 1 == 0 && c <= n;
  }
  function E(c) {
    var H = typeof c;
    return !!c && (H == "object" || H == "function");
  }
  function $(c) {
    return !!c && typeof c == "object";
  }
  return aA = O, aA;
}
var me = We();
const ve = /* @__PURE__ */ ZA(me);
function SA(n, l, a) {
  if (n !== null)
    for (var o, i, b, u, N, W, w, V = 0, p = 0, X, L = n.type, Q = L === "FeatureCollection", J = L === "Feature", O = Q ? n.features.length : 1, T = 0; T < O; T++) {
      w = Q ? n.features[T].geometry : J ? n.geometry : n, X = w ? w.type === "GeometryCollection" : !1, N = X ? w.geometries.length : 1;
      for (var B = 0; B < N; B++) {
        var S = 0, m = 0;
        if (u = X ? w.geometries[B] : w, u !== null) {
          W = u.coordinates;
          var q = u.type;
          switch (V = 0, q) {
            case null:
              break;
            case "Point":
              if (l(
                W,
                p,
                T,
                S,
                m
              ) === !1)
                return !1;
              p++, S++;
              break;
            case "LineString":
            case "MultiPoint":
              for (o = 0; o < W.length; o++) {
                if (l(
                  W[o],
                  p,
                  T,
                  S,
                  m
                ) === !1)
                  return !1;
                p++, q === "MultiPoint" && S++;
              }
              q === "LineString" && S++;
              break;
            case "Polygon":
            case "MultiLineString":
              for (o = 0; o < W.length; o++) {
                for (i = 0; i < W[o].length - V; i++) {
                  if (l(
                    W[o][i],
                    p,
                    T,
                    S,
                    m
                  ) === !1)
                    return !1;
                  p++;
                }
                q === "MultiLineString" && S++, q === "Polygon" && m++;
              }
              q === "Polygon" && S++;
              break;
            case "MultiPolygon":
              for (o = 0; o < W.length; o++) {
                for (m = 0, i = 0; i < W[o].length; i++) {
                  for (b = 0; b < W[o][i].length - V; b++) {
                    if (l(
                      W[o][i][b],
                      p,
                      T,
                      S,
                      m
                    ) === !1)
                      return !1;
                    p++;
                  }
                  m++;
                }
                S++;
              }
              break;
            case "GeometryCollection":
              for (o = 0; o < u.geometries.length; o++)
                if (SA(u.geometries[o], l) === !1)
                  return !1;
              break;
            default:
              throw new Error("Unknown Geometry Type");
          }
        }
      }
    }
}
function qe(n, l = {}) {
  if (n.bbox != null && l.recompute !== !0)
    return n.bbox;
  const a = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
  return SA(n, (o) => {
    a[0] > o[0] && (a[0] = o[0]), a[1] > o[1] && (a[1] = o[1]), a[2] < o[0] && (a[2] = o[0]), a[3] < o[1] && (a[3] = o[1]);
  }), a;
}
const MA = 14, we = 10, Kt = ct(
  ({
    tooltipPosition: n = "top",
    icon: l,
    children: a,
    size: o = 20,
    aura: i,
    isTooltipTransparent: b
  }) => {
    const u = i === "static-half" ? MA / 2 : MA, N = u + (i ? we : 0) + o / 2;
    return /* @__PURE__ */ k(
      "div",
      {
        "data-marker": "",
        className: "relative cursor-pointer",
        children: [
          /* @__PURE__ */ d(
            "div",
            {
              style: {
                height: `${o}px`,
                width: `${o}px`,
                borderWidth: i ? u : void 0
              },
              className: "border-th-marker-aura absolute box-content -translate-y-1/2 rounded-full ltr:-translate-x-1/2 rtl:translate-x-1/2",
              children: /* @__PURE__ */ d(
                "div",
                {
                  className: "bg-th-marker relative flex items-center justify-center rounded-full",
                  style: { height: `${o}px`, width: `${o}px` },
                  children: l
                }
              )
            }
          ),
          a && /* @__PURE__ */ k(
            "div",
            {
              style: {
                top: n === "bottom" ? N : void 0,
                bottom: n === "top" ? N : void 0
              },
              className: CA(
                "t-medium bg-clr-control text-clr-control-text absolute text-[14px] leading-[17px] ltr:-translate-x-1/2 rtl:translate-x-1/2",
                !b && "card-base rounded-[13px] px-[9px] py-[7px]"
              ),
              children: [
                a,
                !b && /* @__PURE__ */ d(
                  "div",
                  {
                    className: CA(
                      "absolute h-0 w-0 backdrop-blur-[20px] ltr:left-1/2 ltr:-translate-x-1/2 rtl:right-1/2 rtl:translate-x-1/2",
                      n === "top" ? "border-t-clr-control top-full border-x-[9px] border-t-[6px] border-x-white/0" : "border-b-clr-control bottom-full border-x-[9px] border-b-[6px] border-x-white/0"
                    )
                  }
                )
              ]
            }
          )
        ]
      }
    );
  }
);
Kt.displayName = "Marker";
const Gt = 18, jA = ct(
  ({
    tooltipPosition: n = "top",
    children: l
  }) => /* @__PURE__ */ k("div", { className: "relative cursor-pointer", children: [
    /* @__PURE__ */ d(
      "div",
      {
        style: {
          height: `${Gt}px`,
          width: `${Gt}px`
        },
        className: Vt(
          "absolute z-10 box-content -translate-y-1/2 rounded-full backdrop-blur-[10px] ltr:-translate-x-1/2 rtl:translate-x-1/2"
        ),
        children: /* @__PURE__ */ d(
          "div",
          {
            className: Vt(
              "relative flex items-center justify-center rounded-full",
              "border-th-marker-stroke border-[4px] bg-white"
            ),
            style: {
              height: `${Gt}px`,
              width: `${Gt}px`
            }
          }
        )
      }
    ),
    l && /* @__PURE__ */ k(de, { children: [
      /* @__PURE__ */ d(
        "div",
        {
          className: "bg-th-marker absolute inset-y-0 left-[2px] h-[250px] w-[2px] origin-top",
          style: {
            rotate: ye(n)
          }
        }
      ),
      /* @__PURE__ */ d(
        "div",
        {
          className: Vt(
            "t-medium absolute text-[14px] leading-[17px]",
            Ve(n)
          ),
          children: l
        }
      )
    ] })
  ] })
), Ve = (n) => {
  switch (n) {
    case "bottom":
      return "-translate-x-1/2 top-[210px]";
    case "top":
      return "-translate-x-1/2 bottom-[210px]";
    case "left":
      return "-translate-x-full -translate-y-1/2 left-[-64px]";
    case "right":
      return "-translate-y-1/2 left-[64px]";
    case "top-left":
      return "-translate-x-full bottom-[140px] left-[-140px]";
    case "top-right":
      return "bottom-[140px] left-[140px]";
    case "bottom-left":
      return "-translate-x-full left-[-140px] top-[140px]";
    case "bottom-right":
      return "left-[140px] top-[140px]";
  }
}, ye = (n) => {
  switch (n) {
    case "top-right":
      return "-135deg";
    case "top-left":
      return "135deg";
    case "bottom-right":
      return "-45deg";
    case "bottom-left":
      return "45deg";
    case "bottom":
      return "0deg";
    case "top":
      return "180deg";
    case "right":
      return "-90deg";
    case "left":
      return "90deg";
  }
};
jA.displayName = "PovMarker";
var Yt = { exports: {} };
Yt.exports;
var NA;
function xe() {
  return NA || (NA = 1, function(n, l) {
    var a = 200, o = "Expected a function", i = "__lodash_hash_undefined__", b = 1, u = 2, N = 1 / 0, W = 9007199254740991, w = "[object Arguments]", V = "[object Array]", p = "[object Boolean]", X = "[object Date]", L = "[object Error]", Q = "[object Function]", J = "[object GeneratorFunction]", O = "[object Map]", T = "[object Number]", B = "[object Object]", S = "[object Promise]", m = "[object RegExp]", q = "[object Set]", G = "[object String]", E = "[object Symbol]", $ = "[object WeakMap]", c = "[object ArrayBuffer]", H = "[object DataView]", K = "[object Float32Array]", tt = "[object Float64Array]", C = "[object Int8Array]", z = "[object Int16Array]", yt = "[object Int32Array]", h = "[object Uint8Array]", P = "[object Uint8ClampedArray]", v = "[object Uint16Array]", Y = "[object Uint32Array]", F = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, _ = /^\w*$/, zt = /^\./, Mt = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Nt = /[\\^$.*+?()[\]{}|]/g, bt = /\\(\\)?/g, ft = /^\[object .+?Constructor\]$/, xt = /^(?:0|[1-9]\d*)$/, x = {};
    x[K] = x[tt] = x[C] = x[z] = x[yt] = x[h] = x[P] = x[v] = x[Y] = !0, x[w] = x[V] = x[c] = x[p] = x[H] = x[X] = x[L] = x[Q] = x[O] = x[T] = x[B] = x[m] = x[q] = x[G] = x[$] = !1;
    var sA = typeof lt == "object" && lt && lt.Object === Object && lt, TA = typeof self == "object" && self && self.Object === Object && self, st = sA || TA || Function("return this")(), oA = l && !l.nodeType && l, iA = oA && !0 && n && !n.nodeType && n, BA = iA && iA.exports === oA, lA = BA && sA.process, cA = function() {
      try {
        return lA && lA.binding("util");
      } catch {
      }
    }(), fA = cA && cA.isTypedArray;
    function GA(t, A) {
      var r = t ? t.length : 0;
      return !!r && FA(t, A, 0) > -1;
    }
    function KA(t, A) {
      for (var r = -1, e = t ? t.length : 0; ++r < e; )
        if (A(t[r], r, t))
          return !0;
      return !1;
    }
    function zA(t, A, r, e) {
      for (var f = t.length, s = r + -1; ++s < f; )
        if (A(t[s], s, t))
          return s;
      return -1;
    }
    function FA(t, A, r) {
      if (A !== A)
        return zA(t, RA, r);
      for (var e = r - 1, f = t.length; ++e < f; )
        if (t[e] === A)
          return e;
      return -1;
    }
    function RA(t) {
      return t !== t;
    }
    function UA(t) {
      return function(A) {
        return A == null ? void 0 : A[t];
      };
    }
    function kA(t, A) {
      for (var r = -1, e = Array(t); ++r < t; )
        e[r] = A(r);
      return e;
    }
    function JA(t) {
      return function(A) {
        return t(A);
      };
    }
    function _A(t, A) {
      return t.has(A);
    }
    function $A(t, A) {
      return t == null ? void 0 : t[A];
    }
    function Ft(t) {
      var A = !1;
      if (t != null && typeof t.toString != "function")
        try {
          A = !!(t + "");
        } catch {
        }
      return A;
    }
    function tr(t) {
      var A = -1, r = Array(t.size);
      return t.forEach(function(e, f) {
        r[++A] = [f, e];
      }), r;
    }
    function Ar(t, A) {
      return function(r) {
        return t(A(r));
      };
    }
    function Rt(t) {
      var A = -1, r = Array(t.size);
      return t.forEach(function(e) {
        r[++A] = e;
      }), r;
    }
    var rr = Array.prototype, er = Function.prototype, Lt = Object.prototype, Ut = st["__core-js_shared__"], uA = function() {
      var t = /[^.]+$/.exec(Ut && Ut.keys && Ut.keys.IE_PROTO || "");
      return t ? "Symbol(src)_1." + t : "";
    }(), dA = er.toString, At = Lt.hasOwnProperty, Wt = Lt.toString, nr = RegExp(
      "^" + dA.call(At).replace(Nt, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
    ), pA = st.Symbol, hA = st.Uint8Array, ar = Lt.propertyIsEnumerable, sr = rr.splice, or = Ar(Object.keys, Object), kt = vt(st, "DataView"), Pt = vt(st, "Map"), Jt = vt(st, "Promise"), mt = vt(st, "Set"), _t = vt(st, "WeakMap"), Xt = vt(Object, "create"), ir = dt(kt), lr = dt(Pt), cr = dt(Jt), fr = dt(mt), ur = dt(_t), Zt = pA ? pA.prototype : void 0, $t = Zt ? Zt.valueOf : void 0, gA = Zt ? Zt.toString : void 0;
    function ut(t) {
      var A = -1, r = t ? t.length : 0;
      for (this.clear(); ++A < r; ) {
        var e = t[A];
        this.set(e[0], e[1]);
      }
    }
    function dr() {
      this.__data__ = Xt ? Xt(null) : {};
    }
    function pr(t) {
      return this.has(t) && delete this.__data__[t];
    }
    function hr(t) {
      var A = this.__data__;
      if (Xt) {
        var r = A[t];
        return r === i ? void 0 : r;
      }
      return At.call(A, t) ? A[t] : void 0;
    }
    function gr(t) {
      var A = this.__data__;
      return Xt ? A[t] !== void 0 : At.call(A, t);
    }
    function br(t, A) {
      var r = this.__data__;
      return r[t] = Xt && A === void 0 ? i : A, this;
    }
    ut.prototype.clear = dr, ut.prototype.delete = pr, ut.prototype.get = hr, ut.prototype.has = gr, ut.prototype.set = br;
    function rt(t) {
      var A = -1, r = t ? t.length : 0;
      for (this.clear(); ++A < r; ) {
        var e = t[A];
        this.set(e[0], e[1]);
      }
    }
    function Wr() {
      this.__data__ = [];
    }
    function mr(t) {
      var A = this.__data__, r = Qt(A, t);
      if (r < 0)
        return !1;
      var e = A.length - 1;
      return r == e ? A.pop() : sr.call(A, r, 1), !0;
    }
    function vr(t) {
      var A = this.__data__, r = Qt(A, t);
      return r < 0 ? void 0 : A[r][1];
    }
    function qr(t) {
      return Qt(this.__data__, t) > -1;
    }
    function wr(t, A) {
      var r = this.__data__, e = Qt(r, t);
      return e < 0 ? r.push([t, A]) : r[e][1] = A, this;
    }
    rt.prototype.clear = Wr, rt.prototype.delete = mr, rt.prototype.get = vr, rt.prototype.has = qr, rt.prototype.set = wr;
    function et(t) {
      var A = -1, r = t ? t.length : 0;
      for (this.clear(); ++A < r; ) {
        var e = t[A];
        this.set(e[0], e[1]);
      }
    }
    function Vr() {
      this.__data__ = {
        hash: new ut(),
        map: new (Pt || rt)(),
        string: new ut()
      };
    }
    function yr(t) {
      return St(this, t).delete(t);
    }
    function xr(t) {
      return St(this, t).get(t);
    }
    function Pr(t) {
      return St(this, t).has(t);
    }
    function Xr(t, A) {
      return St(this, t).set(t, A), this;
    }
    et.prototype.clear = Vr, et.prototype.delete = yr, et.prototype.get = xr, et.prototype.has = Pr, et.prototype.set = Xr;
    function Dt(t) {
      var A = -1, r = t ? t.length : 0;
      for (this.__data__ = new et(); ++A < r; )
        this.add(t[A]);
    }
    function Dr(t) {
      return this.__data__.set(t, i), this;
    }
    function Cr(t) {
      return this.__data__.has(t);
    }
    Dt.prototype.add = Dt.prototype.push = Dr, Dt.prototype.has = Cr;
    function nt(t) {
      this.__data__ = new rt(t);
    }
    function Yr() {
      this.__data__ = new rt();
    }
    function Mr(t) {
      return this.__data__.delete(t);
    }
    function Nr(t) {
      return this.__data__.get(t);
    }
    function Lr(t) {
      return this.__data__.has(t);
    }
    function Zr(t, A) {
      var r = this.__data__;
      if (r instanceof rt) {
        var e = r.__data__;
        if (!Pt || e.length < a - 1)
          return e.push([t, A]), this;
        r = this.__data__ = new et(e);
      }
      return r.set(t, A), this;
    }
    nt.prototype.clear = Yr, nt.prototype.delete = Mr, nt.prototype.get = Nr, nt.prototype.has = Lr, nt.prototype.set = Zr;
    function Qr(t, A) {
      var r = pt(t) || yA(t) ? kA(t.length, String) : [], e = r.length, f = !!e;
      for (var s in t)
        At.call(t, s) && !(f && (s == "length" || vA(s, e))) && r.push(s);
      return r;
    }
    function Qt(t, A) {
      for (var r = t.length; r--; )
        if (VA(t[r][0], A))
          return r;
      return -1;
    }
    function bA(t, A) {
      A = jt(A, t) ? [A] : WA(A);
      for (var r = 0, e = A.length; t != null && r < e; )
        t = t[Et(A[r++])];
      return r && r == e ? t : void 0;
    }
    function Sr(t) {
      return Wt.call(t);
    }
    function jr(t, A) {
      return t != null && A in Object(t);
    }
    function tA(t, A, r, e, f) {
      return t === A ? !0 : t == null || A == null || !Ht(t) && !It(A) ? t !== t && A !== A : Er(t, A, tA, r, e, f);
    }
    function Er(t, A, r, e, f, s) {
      var g = pt(t), D = pt(A), y = V, j = V;
      g || (y = ot(t), y = y == w ? B : y), D || (j = ot(A), j = j == w ? B : j);
      var M = y == B && !Ft(t), Z = j == B && !Ft(A), I = y == j;
      if (I && !M)
        return s || (s = new nt()), g || se(t) ? mA(t, A, r, e, f, s) : kr(t, A, y, r, e, f, s);
      if (!(f & u)) {
        var R = M && At.call(t, "__wrapped__"), U = Z && At.call(A, "__wrapped__");
        if (R || U) {
          var it = R ? t.value() : t, at = U ? A.value() : A;
          return s || (s = new nt()), r(it, at, e, f, s);
        }
      }
      return I ? (s || (s = new nt()), Jr(t, A, r, e, f, s)) : !1;
    }
    function Hr(t, A, r, e) {
      var f = r.length, s = f;
      if (t == null)
        return !s;
      for (t = Object(t); f--; ) {
        var g = r[f];
        if (g[2] ? g[1] !== t[g[0]] : !(g[0] in t))
          return !1;
      }
      for (; ++f < s; ) {
        g = r[f];
        var D = g[0], y = t[D], j = g[1];
        if (g[2]) {
          if (y === void 0 && !(D in t))
            return !1;
        } else {
          var M = new nt(), Z;
          if (!(Z === void 0 ? tA(j, y, e, b | u, M) : Z))
            return !1;
        }
      }
      return !0;
    }
    function Ir(t) {
      if (!Ht(t) || Ae(t))
        return !1;
      var A = PA(t) || Ft(t) ? nr : ft;
      return A.test(dt(t));
    }
    function Or(t) {
      return It(t) && rA(t.length) && !!x[Wt.call(t)];
    }
    function Tr(t) {
      return typeof t == "function" ? t : t == null ? ce : typeof t == "object" ? pt(t) ? Kr(t[0], t[1]) : Gr(t) : ue(t);
    }
    function Br(t) {
      if (!re(t))
        return or(t);
      var A = [];
      for (var r in Object(t))
        At.call(t, r) && r != "constructor" && A.push(r);
      return A;
    }
    function Gr(t) {
      var A = _r(t);
      return A.length == 1 && A[0][2] ? wA(A[0][0], A[0][1]) : function(r) {
        return r === t || Hr(r, t, A);
      };
    }
    function Kr(t, A) {
      return jt(t) && qA(A) ? wA(Et(t), A) : function(r) {
        var e = ie(r, t);
        return e === void 0 && e === A ? le(r, t) : tA(A, e, void 0, b | u);
      };
    }
    function zr(t) {
      return function(A) {
        return bA(A, t);
      };
    }
    function Fr(t) {
      if (typeof t == "string")
        return t;
      if (eA(t))
        return gA ? gA.call(t) : "";
      var A = t + "";
      return A == "0" && 1 / t == -1 / 0 ? "-0" : A;
    }
    function Rr(t, A, r) {
      var e = -1, f = GA, s = t.length, g = !0, D = [], y = D;
      if (s >= a) {
        var j = A ? null : Ur(t);
        if (j)
          return Rt(j);
        g = !1, f = _A, y = new Dt();
      } else
        y = A ? [] : D;
      t:
        for (; ++e < s; ) {
          var M = t[e], Z = A ? A(M) : M;
          if (M = M !== 0 ? M : 0, g && Z === Z) {
            for (var I = y.length; I--; )
              if (y[I] === Z)
                continue t;
            A && y.push(Z), D.push(M);
          } else f(y, Z, r) || (y !== D && y.push(Z), D.push(M));
        }
      return D;
    }
    function WA(t) {
      return pt(t) ? t : ee(t);
    }
    var Ur = mt && 1 / Rt(new mt([, -0]))[1] == N ? function(t) {
      return new mt(t);
    } : fe;
    function mA(t, A, r, e, f, s) {
      var g = f & u, D = t.length, y = A.length;
      if (D != y && !(g && y > D))
        return !1;
      var j = s.get(t);
      if (j && s.get(A))
        return j == A;
      var M = -1, Z = !0, I = f & b ? new Dt() : void 0;
      for (s.set(t, A), s.set(A, t); ++M < D; ) {
        var R = t[M], U = A[M];
        if (e)
          var it = g ? e(U, R, M, A, t, s) : e(R, U, M, t, A, s);
        if (it !== void 0) {
          if (it)
            continue;
          Z = !1;
          break;
        }
        if (I) {
          if (!KA(A, function(at, ht) {
            if (!I.has(ht) && (R === at || r(R, at, e, f, s)))
              return I.add(ht);
          })) {
            Z = !1;
            break;
          }
        } else if (!(R === U || r(R, U, e, f, s))) {
          Z = !1;
          break;
        }
      }
      return s.delete(t), s.delete(A), Z;
    }
    function kr(t, A, r, e, f, s, g) {
      switch (r) {
        case H:
          if (t.byteLength != A.byteLength || t.byteOffset != A.byteOffset)
            return !1;
          t = t.buffer, A = A.buffer;
        case c:
          return !(t.byteLength != A.byteLength || !e(new hA(t), new hA(A)));
        case p:
        case X:
        case T:
          return VA(+t, +A);
        case L:
          return t.name == A.name && t.message == A.message;
        case m:
        case G:
          return t == A + "";
        case O:
          var D = tr;
        case q:
          var y = s & u;
          if (D || (D = Rt), t.size != A.size && !y)
            return !1;
          var j = g.get(t);
          if (j)
            return j == A;
          s |= b, g.set(t, A);
          var M = mA(D(t), D(A), e, f, s, g);
          return g.delete(t), M;
        case E:
          if ($t)
            return $t.call(t) == $t.call(A);
      }
      return !1;
    }
    function Jr(t, A, r, e, f, s) {
      var g = f & u, D = nA(t), y = D.length, j = nA(A), M = j.length;
      if (y != M && !g)
        return !1;
      for (var Z = y; Z--; ) {
        var I = D[Z];
        if (!(g ? I in A : At.call(A, I)))
          return !1;
      }
      var R = s.get(t);
      if (R && s.get(A))
        return R == A;
      var U = !0;
      s.set(t, A), s.set(A, t);
      for (var it = g; ++Z < y; ) {
        I = D[Z];
        var at = t[I], ht = A[I];
        if (e)
          var XA = g ? e(ht, at, I, A, t, s) : e(at, ht, I, t, A, s);
        if (!(XA === void 0 ? at === ht || r(at, ht, e, f, s) : XA)) {
          U = !1;
          break;
        }
        it || (it = I == "constructor");
      }
      if (U && !it) {
        var Ot = t.constructor, Tt = A.constructor;
        Ot != Tt && "constructor" in t && "constructor" in A && !(typeof Ot == "function" && Ot instanceof Ot && typeof Tt == "function" && Tt instanceof Tt) && (U = !1);
      }
      return s.delete(t), s.delete(A), U;
    }
    function St(t, A) {
      var r = t.__data__;
      return te(A) ? r[typeof A == "string" ? "string" : "hash"] : r.map;
    }
    function _r(t) {
      for (var A = nA(t), r = A.length; r--; ) {
        var e = A[r], f = t[e];
        A[r] = [e, f, qA(f)];
      }
      return A;
    }
    function vt(t, A) {
      var r = $A(t, A);
      return Ir(r) ? r : void 0;
    }
    var ot = Sr;
    (kt && ot(new kt(new ArrayBuffer(1))) != H || Pt && ot(new Pt()) != O || Jt && ot(Jt.resolve()) != S || mt && ot(new mt()) != q || _t && ot(new _t()) != $) && (ot = function(t) {
      var A = Wt.call(t), r = A == B ? t.constructor : void 0, e = r ? dt(r) : void 0;
      if (e)
        switch (e) {
          case ir:
            return H;
          case lr:
            return O;
          case cr:
            return S;
          case fr:
            return q;
          case ur:
            return $;
        }
      return A;
    });
    function $r(t, A, r) {
      A = jt(A, t) ? [A] : WA(A);
      for (var e, f = -1, g = A.length; ++f < g; ) {
        var s = Et(A[f]);
        if (!(e = t != null && r(t, s)))
          break;
        t = t[s];
      }
      if (e)
        return e;
      var g = t ? t.length : 0;
      return !!g && rA(g) && vA(s, g) && (pt(t) || yA(t));
    }
    function vA(t, A) {
      return A = A ?? W, !!A && (typeof t == "number" || xt.test(t)) && t > -1 && t % 1 == 0 && t < A;
    }
    function jt(t, A) {
      if (pt(t))
        return !1;
      var r = typeof t;
      return r == "number" || r == "symbol" || r == "boolean" || t == null || eA(t) ? !0 : _.test(t) || !F.test(t) || A != null && t in Object(A);
    }
    function te(t) {
      var A = typeof t;
      return A == "string" || A == "number" || A == "symbol" || A == "boolean" ? t !== "__proto__" : t === null;
    }
    function Ae(t) {
      return !!uA && uA in t;
    }
    function re(t) {
      var A = t && t.constructor, r = typeof A == "function" && A.prototype || Lt;
      return t === r;
    }
    function qA(t) {
      return t === t && !Ht(t);
    }
    function wA(t, A) {
      return function(r) {
        return r == null ? !1 : r[t] === A && (A !== void 0 || t in Object(r));
      };
    }
    var ee = AA(function(t) {
      t = oe(t);
      var A = [];
      return zt.test(t) && A.push(""), t.replace(Mt, function(r, e, f, s) {
        A.push(f ? s.replace(bt, "$1") : e || r);
      }), A;
    });
    function Et(t) {
      if (typeof t == "string" || eA(t))
        return t;
      var A = t + "";
      return A == "0" && 1 / t == -1 / 0 ? "-0" : A;
    }
    function dt(t) {
      if (t != null) {
        try {
          return dA.call(t);
        } catch {
        }
        try {
          return t + "";
        } catch {
        }
      }
      return "";
    }
    function ne(t, A) {
      return t && t.length ? Rr(t, Tr(A)) : [];
    }
    function AA(t, A) {
      if (typeof t != "function" || A && typeof A != "function")
        throw new TypeError(o);
      var r = function() {
        var e = arguments, f = A ? A.apply(this, e) : e[0], s = r.cache;
        if (s.has(f))
          return s.get(f);
        var g = t.apply(this, e);
        return r.cache = s.set(f, g), g;
      };
      return r.cache = new (AA.Cache || et)(), r;
    }
    AA.Cache = et;
    function VA(t, A) {
      return t === A || t !== t && A !== A;
    }
    function yA(t) {
      return ae(t) && At.call(t, "callee") && (!ar.call(t, "callee") || Wt.call(t) == w);
    }
    var pt = Array.isArray;
    function xA(t) {
      return t != null && rA(t.length) && !PA(t);
    }
    function ae(t) {
      return It(t) && xA(t);
    }
    function PA(t) {
      var A = Ht(t) ? Wt.call(t) : "";
      return A == Q || A == J;
    }
    function rA(t) {
      return typeof t == "number" && t > -1 && t % 1 == 0 && t <= W;
    }
    function Ht(t) {
      var A = typeof t;
      return !!t && (A == "object" || A == "function");
    }
    function It(t) {
      return !!t && typeof t == "object";
    }
    function eA(t) {
      return typeof t == "symbol" || It(t) && Wt.call(t) == E;
    }
    var se = fA ? JA(fA) : Or;
    function oe(t) {
      return t == null ? "" : Fr(t);
    }
    function ie(t, A, r) {
      var e = t == null ? void 0 : bA(t, A);
      return e === void 0 ? r : e;
    }
    function le(t, A) {
      return t != null && $r(t, A, jr);
    }
    function nA(t) {
      return xA(t) ? Qr(t) : Br(t);
    }
    function ce(t) {
      return t;
    }
    function fe() {
    }
    function ue(t) {
      return jt(t) ? UA(Et(t)) : zr(t);
    }
    n.exports = ne;
  }(Yt, Yt.exports)), Yt.exports;
}
var Pe = xe();
const Xe = /* @__PURE__ */ ZA(Pe), EA = ct(({ city: n, limit: l = 2 }) => {
  const a = Xe(n.complexes, "id"), o = a.filter((b) => !n.complexPreviews || n.complexPreviews.includes(b.id)).slice(0, l), i = a.length - o.length;
  return /* @__PURE__ */ k(
    "div",
    {
      className: "-mx-1 flex",
      dir: "ltr",
      children: [
        o.map((b, u) => /* @__PURE__ */ d(
          "div",
          {
            "data-complex-marker": "",
            "data-complex-marker-id": b.id,
            className: "border-clr-preview bg-clr-preview mx-1 h-16 w-16 shrink-0 rounded border-4 bg-contain bg-no-repeat",
            style: {
              backgroundImage: `url(${b.image})`
            }
          },
          u
        )),
        !!i && /* @__PURE__ */ k("div", { className: "bg-clr-preview mx-1 flex h-16 w-16 shrink-0 items-center justify-center rounded text-2xl font-bold", children: [
          "+",
          i
        ] })
      ]
    }
  );
});
EA.displayName = "ComplexesList";
const HA = ct(
  ({ complex: n, t: l }) => /* @__PURE__ */ k(
    "div",
    {
      dir: "ltr",
      className: "mx-[-3px] flex",
      children: [
        n.image && /* @__PURE__ */ d(
          "div",
          {
            id: "complexPreview",
            className: "border-clr-preview bg-clr-preview mx-[3px] h-[70px] w-[70px] shrink-0 rounded border-4 bg-contain bg-no-repeat",
            style: {
              backgroundImage: `url('${n.image}')`
            }
          }
        ),
        /* @__PURE__ */ d("div", { className: "t-medium text-clr-control-text mx-[3px] flex h-[70px] min-w-[90px] grow items-center justify-center text-center text-[12px] leading-[15px] whitespace-normal", children: /* @__PURE__ */ d("span", { children: l(n.title) }) })
      ]
    }
  )
);
HA.displayName = "ComplexCardPreview";
const De = "data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoEP/P5XxfEIm4ZYjAAAAAElFTkSuQmCC", IA = ct(
  ({ complex: n, pov: l, t: a }) => /* @__PURE__ */ d(
    "div",
    {
      dir: "ltr",
      className: "bg-clr-control w-[384px] rounded-3xl bg-cover bg-right-top bg-no-repeat p-7",
      style: { backgroundImage: `url(${De})` },
      children: /* @__PURE__ */ k("div", { children: [
        /* @__PURE__ */ d("div", { className: "text-th-marker mb-3", children: a(n.title).toUpperCase() }),
        /* @__PURE__ */ d("div", { className: "mb-4 text-3xl font-medium", children: a(l.title) }),
        /* @__PURE__ */ d("div", { children: a(l.description) })
      ] })
    }
  )
);
IA.displayName = "ComplexPovTooltip";
const Ce = 8, Ye = 16, Me = 5, Ne = ct(
  ({
    children: n,
    activeBuildingId: l,
    activePovId: a,
    map: o,
    gltfPlugin: i,
    cityBuildings: b,
    onBuildingClick: u,
    onResetBuilding: N,
    onPovClick: W,
    onResetPov: w,
    onCityClick: V,
    minZoomCityMarker: p = Ce,
    gltfMinStyleZoom: X = Ye,
    shouldRemoveModelsOnUnmount: L = !1,
    shouldRemovePovMarkers: Q = !1,
    onAllModelsLoaded: J,
    markerOptions: O = {},
    ComplexesListComponent: T = EA,
    ComplexCardPreviewComponent: B = HA,
    shouldAddComplexesList: S = !0
  }) => {
    const { theme: m, t: q } = QA(), G = m === "dark", [E, $] = wt("city"), [c, H] = wt(!1), K = Ct(() => b.reduce(
      (h, P) => h.concat(ve(P.complexes.map((v) => v.buildings))),
      []
    ), [b]), tt = Ct(() => b.reduce(
      (h, P) => h.concat(P.complexes.map((v) => ({ ...v, cityId: P.id }))),
      []
    ), [b]), C = Ct(() => tt.find((h) => h.id === l), [l, tt]), z = Ct(() => {
      var h;
      return (h = C == null ? void 0 : C.pointsOfView) == null ? void 0 : h.find(
        (P) => P.id === a
      );
    }, [C, a]), yt = (h) => G && h.isDark ? !0 : !G && !h.isDark;
    return gt(() => {
      const h = ge(({ isUser: P }) => {
        const v = o.getStyleZoom();
        if (v < p) {
          E !== "city" && ($("city"), P && (N(), w == null || w()));
          return;
        }
        if (v < X) {
          E !== "buildings" && ($("buildings"), P && (N(), w == null || w()));
          return;
        }
        if (E !== "model") {
          $("model");
          return;
        }
      }, Me);
      return o.on("zoom", h), () => {
        o.off("zoom", h);
      };
    }, [E, p, X]), gt(() => {
      const h = K.filter(
        (P) => i.getModelStatus(P.modelId) === 0
      );
      return i.addModels(h).then(() => {
        H(!0), J == null || J();
      }).catch((P) => {
        console.log("[Immersive] Loading model error: ", P);
      }), () => {
        L && i.hideModels(K.map((P) => P.modelId));
      };
    }, [K, L]), gt(() => {
      c && K.forEach((h) => {
        yt(h) ? i.showModel(h.modelId) : i.hideModel(h.modelId);
      });
    }, [c, K, m]), gt(() => {
      if (C) return;
      const h = [], P = [];
      if (E === "city")
        return N(), w == null || w(), b.forEach((v) => {
          const Y = v.mapOptions;
          if (!Y || !Y.center) return;
          const F = new mapgl.HtmlMarker(o, {
            html: Bt(
              /* @__PURE__ */ d(
                Kt,
                {
                  ...O,
                  tooltipPosition: v.tooltipPosition,
                  children: S ? /* @__PURE__ */ d(T, { city: v }) : null
                }
              )
            ),
            coordinates: Y.center,
            preventMapInteractions: !1
          });
          h.push(F);
          const _ = (zt) => {
            const Mt = zt.target;
            if (!Mt) return;
            const Nt = Mt.closest(
              "[data-complex-marker]"
            );
            if (Nt) {
              const bt = Nt.dataset.complexMarkerId, ft = v.complexes.find(
                (xt) => xt.id === bt
              );
              bt && ft && u(ft);
              return;
            }
            if (v.complexes.length > 1) {
              const bt = be(
                v.complexes.map((x) => x.coordinates)
              ), ft = qe(bt), xt = {
                southWest: ft.slice(0, 2),
                northEast: ft.slice(2, 4)
              };
              V(v, xt);
            } else
              V(v);
          };
          P.push(_), F.getContent().addEventListener("click", _);
        }), () => {
          h.forEach((v, Y) => {
            v.getContent().removeEventListener("click", P[Y]), v.destroy();
          });
        };
    }, [
      E,
      b,
      C,
      O,
      S,
      T
    ]), gt(() => {
      if (C) return;
      const h = [], P = [];
      return (E === "buildings" || E === "model") && tt.forEach((v) => {
        const Y = {
          t: q,
          complex: v
        }, F = new mapgl.HtmlMarker(o, {
          coordinates: v.coordinates,
          html: Bt(
            /* @__PURE__ */ d(
              Kt,
              {
                ...O,
                tooltipPosition: v.tooltipPosition,
                children: /* @__PURE__ */ d(B, { ...Y })
              }
            )
          ),
          preventMapInteractions: !1
        });
        h.push(F);
        const _ = () => {
          u(v);
        };
        P.push(_), F.getContent().addEventListener("click", _);
      }), () => {
        h.forEach((v, Y) => {
          v.getContent().removeEventListener("click", P[Y]), v.destroy();
        });
      };
    }, [
      E,
      tt,
      C,
      O,
      B,
      q
    ]), gt(() => {
      if (!C || Q) return;
      const h = [], P = [], v = C.pointsOfView || [];
      if (!z)
        v.forEach((Y) => {
          const F = new mapgl.HtmlMarker(o, {
            html: Bt(
              /* @__PURE__ */ d(
                Kt,
                {
                  ...O,
                  tooltipPosition: Y.markerTooltipPos ?? "bottom",
                  children: /* @__PURE__ */ d("span", { className: "font-medium whitespace-nowrap", children: q(Y.title) })
                }
              )
            ),
            coordinates: [...Y.lonLat, Y.height ?? 0],
            preventMapInteractions: !1
          }), _ = () => {
            W == null || W(Y);
          };
          F.getContent().addEventListener("click", _), P.push(_), h.push(F);
        });
      else if (z) {
        const Y = new mapgl.HtmlMarker(o, {
          html: Bt(
            /* @__PURE__ */ d(jA, { tooltipPosition: z.tooltipPos, children: /* @__PURE__ */ d(
              IA,
              {
                t: q,
                complex: C,
                pov: z
              }
            ) })
          ),
          coordinates: [...z.lonLat, z.height ?? 0],
          preventMapInteractions: !1
        });
        h.push(Y);
      }
      return () => {
        h.forEach((Y, F) => {
          Y.getContent().removeEventListener("click", P[F]), Y.destroy();
        });
      };
    }, [
      E,
      z,
      C,
      Q,
      O,
      q
    ]), n;
  }
);
Ne.displayName = "ImmersiveScenario";
const Le = ct(
  ({
    complex: n,
    className: l,
    architectsLabel: a = "Architects",
    yearLabel: o = "Year of completion",
    style: i,
    dir: b = "ltr"
  }) => {
    const { t: u } = QA();
    return /* @__PURE__ */ d(
      "article",
      {
        dir: b,
        className: Vt(
          "bg-clr-control w-[410px] rounded-2xl border border-white/10 p-6",
          l
        ),
        style: i,
        children: /* @__PURE__ */ k("div", { children: [
          /* @__PURE__ */ d("h2", { className: "mb-4 text-3xl font-semibold", children: u(n.title) }),
          n.description && /* @__PURE__ */ d("p", { children: u(n.description) }),
          n.architects && /* @__PURE__ */ k("div", { className: "mt-6", children: [
            /* @__PURE__ */ d("p", { className: "text-clr-control-sub-text font-semibold", children: u(a) }),
            /* @__PURE__ */ d("p", { children: u(n.architects) })
          ] }),
          n.year && /* @__PURE__ */ k("div", { className: "mt-6", children: [
            /* @__PURE__ */ d("p", { className: "text-clr-control-sub-text font-semibold", children: u(o) }),
            /* @__PURE__ */ d("p", { children: u(n.year) })
          ] })
        ] })
      }
    );
  }
);
Le.displayName = "ComplexCard";
const LA = (n) => /* @__PURE__ */ DA.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...n }, /* @__PURE__ */ DA.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M14 7.1665L8 12.4998L14 17.8332", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" })), Ze = ct(
  ({
    initialValue: n,
    pointsOfView: l,
    onItemClick: a,
    className: o,
    style: i,
    dir: b = "ltr"
  }) => {
    const [u, N] = wt(n), W = (l || []).map((p) => ({
      value: p.id
    }));
    gt(() => {
      N(n);
    }, [n]);
    const w = () => {
      const p = W.findIndex((Q) => Q.value === u), X = p < W.length - 1 ? W[p + 1].value : W[0].value;
      N(X);
      const L = l == null ? void 0 : l.find((Q) => Q.id === X);
      L && (a == null || a(L));
    }, V = () => {
      const p = W.findIndex((Q) => Q.value === u), X = p > 0 ? W[p - 1].value : W[W.length - 1].value;
      N(X);
      const L = l == null ? void 0 : l.find((Q) => Q.id === X);
      L && (a == null || a(L));
    };
    return /* @__PURE__ */ k(
      "div",
      {
        dir: b,
        className: Vt(
          "bg-clr-control flex items-center rounded-[36px] p-3",
          o
        ),
        style: i,
        children: [
          /* @__PURE__ */ d(
            "div",
            {
              className: "bg-clr-preview text-th-marker flex h-12 w-12 shrink-0 cursor-pointer items-center justify-center rounded-full",
              onClick: V,
              children: /* @__PURE__ */ d(LA, {})
            }
          ),
          /* @__PURE__ */ d("div", { className: "mx-11 flex w-full items-center justify-center", children: W.map(({ value: p }) => /* @__PURE__ */ d(
            "div",
            {
              className: Vt(
                "mx-4 h-5 w-5 cursor-pointer rounded-full",
                u === p ? "bg-th-marker" : "bg-clr-preview"
              ),
              onClick: () => {
                const X = l == null ? void 0 : l.find(
                  (L) => L.id === p
                );
                N(p), X && (a == null || a(X));
              }
            },
            p
          )) }),
          /* @__PURE__ */ d(
            "div",
            {
              className: "bg-clr-preview text-th-marker flex h-12 w-12 shrink-0 rotate-180 cursor-pointer items-center justify-center rounded-full",
              onClick: w,
              children: /* @__PURE__ */ d(LA, {})
            }
          )
        ]
      }
    );
  }
);
Ze.displayName = "PovPagination";
const Be = ({
  mapFlight: n,
  map: l,
  building: a,
  actionBeforeFlight: o,
  actionAfterFlight: i
}) => {
  if (o == null || o(), a.flightScenario) {
    n.runFlight(l, [
      ...a.flightScenario,
      {
        f: () => {
          a.flightDontResetView ? i == null || i() : n.flyToOpts(
            l,
            a.mapOptions,
            () => i == null ? void 0 : i()
          );
        }
      }
    ]);
    return;
  }
  n.runBuildingFlight(
    l,
    {
      center: a.coordinates,
      styleZoom: a.flightStyleZoom,
      pitch: a.flightPitch,
      rotationDuration: a.flightRotationDuration
    },
    () => {
      n.flyToOpts(
        l,
        a.mapOptions,
        () => i == null ? void 0 : i()
      );
    }
  );
}, OA = pe(void 0), Ge = () => {
  const n = he(OA);
  if (!n)
    throw new Error("useQuizContext must be used within a QuizProvider");
  return n;
}, Ke = (n) => {
  const { config: l, map: a, children: o } = n, [i, b] = wt(-1), [u, N] = wt({}), [W, w] = wt(!1), V = Ct(() => l.questions, [l.questions]), p = qt(() => {
    if (i >= 0 && i < V.length)
      return V[i];
  }, [i, V]), X = i === V.length - 1, L = i === 0, Q = i >= 0, J = qt(() => {
    const m = p();
    if (m != null && m.onQuestionClose && a && m.onQuestionClose(a), X) {
      w(!0);
      return;
    }
    const q = i + 1;
    b(q);
    const G = V[q];
    G != null && G.onQuestionOpen && a && G.onQuestionOpen(a);
  }, [
    i,
    p,
    X,
    a,
    V
  ]), O = qt(
    (m) => {
      const q = p();
      q && (N((G) => ({
        ...G,
        [q.id]: m
      })), q.onQuestionAnswer && a && q.onQuestionAnswer(a, m));
    },
    [p, a]
  ), T = qt(() => {
    const m = V.reduce((G, E) => u[E.id] === E.correctOption ? G + 1 : G, 0), q = V.length;
    return { correct: m, total: q };
  }, [u, V]), B = qt(() => {
    b(-1), N({}), w(!1);
  }, []), S = qt(() => {
    b(0);
    const m = V[0];
    m != null && m.onQuestionOpen && a && m.onQuestionOpen(a);
  }, [a, V]);
  return /* @__PURE__ */ d(
    OA.Provider,
    {
      value: {
        currentQuestionIndex: i,
        answers: u,
        questions: V,
        config: l,
        goToNextQuestion: J,
        answerQuestion: O,
        getCurrentQuestion: p,
        isLastQuestion: X,
        isFirstQuestion: L,
        getScore: T,
        restart: B,
        startQuiz: S,
        isCompleted: W,
        isStarted: Q
      },
      children: o
    }
  );
};
export {
  Le as ComplexCard,
  Ne as ImmersiveScenario,
  Ze as PovPagination,
  Ke as QuizProvider,
  Be as flyOverImmersiveBuilding,
  Ge as useQuizContext
};