UNPKG

@batijs/elements

Version:

BatiJS website as Web Components

1,240 lines 304 kB
function Hr(e) { return Object.keys(e).reduce((i, r) => { const o = e[r]; return i[r] = Object.assign({}, o), Fi(o.value) && !$r(o.value) && !Array.isArray(o.value) && (i[r].value = Object.assign({}, o.value)), Array.isArray(o.value) && (i[r].value = o.value.slice(0)), i; }, {}); } function _r(e) { return e ? Object.keys(e).reduce((i, r) => { const o = e[r]; return i[r] = Fi(o) && "value" in o ? o : { value: o }, i[r].attribute || (i[r].attribute = Jr(r)), i[r].parse = "parse" in i[r] ? i[r].parse : typeof i[r].value != "string", i; }, {}) : {}; } function Vr(e) { return Object.keys(e).reduce((i, r) => (i[r] = e[r].value, i), {}); } function Fr(e, t) { const i = Hr(t); return Object.keys(t).forEach((o) => { const n = i[o], a = e.getAttribute(n.attribute), l = e[o]; a != null && (n.value = n.parse ? Vi(a) : a), l != null && (n.value = Array.isArray(l) ? l.slice(0) : l), n.reflect && Ii(e, n.attribute, n.value, !!n.parse), Object.defineProperty(e, o, { get() { return n.value; }, set(s) { const c = n.value; n.value = s, n.reflect && Ii(this, n.attribute, n.value, !!n.parse); for (let M = 0, u = this.__propertyChangedCallbacks.length; M < u; M++) this.__propertyChangedCallbacks[M](o, s, c); }, enumerable: !0, configurable: !0 }); }), i; } function Vi(e) { if (e) try { return JSON.parse(e); } catch { return e; } } function Ii(e, t, i, r) { if (i == null || i === !1) return e.removeAttribute(t); let o = r ? JSON.stringify(i) : i; e.__updating[t] = !0, o === "true" && (o = ""), e.setAttribute(t, o), Promise.resolve().then(() => delete e.__updating[t]); } function Jr(e) { return e.replace(/\.?([A-Z]+)/g, (t, i) => "-" + i.toLowerCase()).replace("_", "-").replace(/^-/, ""); } function Fi(e) { return e != null && (typeof e == "object" || typeof e == "function"); } function $r(e) { return Object.prototype.toString.call(e) === "[object Function]"; } function Xr(e) { return typeof e == "function" && e.toString().indexOf("class") === 0; } let zt; function Kr(e, t) { const i = Object.keys(t); return class extends e { static get observedAttributes() { return i.map((o) => t[o].attribute); } constructor() { super(), this.__initialized = !1, this.__released = !1, this.__releaseCallbacks = [], this.__propertyChangedCallbacks = [], this.__updating = {}, this.props = {}; } connectedCallback() { if (this.__initialized) return; this.__releaseCallbacks = [], this.__propertyChangedCallbacks = [], this.__updating = {}, this.props = Fr(this, t); const o = Vr(this.props), n = this.Component, a = zt; try { zt = this, this.__initialized = !0, Xr(n) ? new n(o, { element: this }) : n(o, { element: this }); } finally { zt = a; } } async disconnectedCallback() { if (await Promise.resolve(), this.isConnected) return; this.__propertyChangedCallbacks.length = 0; let o = null; for (; o = this.__releaseCallbacks.pop(); ) o(this); delete this.__initialized, this.__released = !0; } attributeChangedCallback(o, n, a) { if (this.__initialized && !this.__updating[o] && (o = this.lookupProp(o), o in t)) { if (a == null && !this[o]) return; this[o] = t[o].parse ? Vi(a) : a; } } lookupProp(o) { if (t) return i.find((n) => o === n || o === t[n].attribute); } get renderRoot() { return this.shadowRoot || this.attachShadow({ mode: "open" }); } addReleaseCallback(o) { this.__releaseCallbacks.push(o); } addPropertyChangedCallback(o) { this.__propertyChangedCallbacks.push(o); } }; } function qr(e, t = {}, i = {}) { const { BaseElement: r = HTMLElement, extension: o, customElements: n = window.customElements } = i; return (a) => { let l = n.get(e); return l ? (l.prototype.Component = a, l) : (l = Kr(r, _r(t)), l.prototype.Component = a, l.prototype.registeredTag = e, n.define(e, l, o), l); }; } const eo = !1, to = (e, t) => e === t, $ = Symbol("solid-proxy"), Ji = typeof Proxy == "function", Gt = Symbol("solid-track"), at = { equals: to }; let $i = tr; const le = 1, lt = 2, Xi = { owned: null, cleanups: null, context: null, owner: null }, vt = {}; var S = null; let St = null, io = null, k = null, U = null, ne = null, Dt = 0; function it(e, t) { const i = k, r = S, o = e.length === 0, n = t === void 0 ? r : t, a = o ? Xi : { owned: null, cleanups: null, context: n ? n.context : null, owner: n }, l = o ? e : () => e(() => Z(() => Pe(a))); S = a, k = null; try { return ae(l, !0); } finally { k = i, S = r; } } function Q(e, t) { t = t ? Object.assign({}, at, t) : at; const i = { value: e, observers: null, observerSlots: null, comparator: t.equals || void 0 }, r = (o) => (typeof o == "function" && (o = o(i.value)), er(i, o)); return [qi.bind(i), r]; } function ro(e, t, i) { const r = xt(e, t, !0, le); Ee(r); } function C(e, t, i) { const r = xt(e, t, !1, le); Ee(r); } function be(e, t, i) { $i = uo; const r = xt(e, t, !1, le); r.user = !0, ne ? ne.push(r) : Ee(r); } function z(e, t, i) { i = i ? Object.assign({}, at, i) : at; const r = xt(e, t, !0, 0); return r.observers = null, r.observerSlots = null, r.comparator = i.equals || void 0, Ee(r), qi.bind(r); } function oo(e) { return e && typeof e == "object" && "then" in e; } function no(e, t, i) { let r, o, n; typeof t == "function" ? (r = e, o = t, n = i || {}) : (r = !0, o = e, n = t || {}); let a = null, l = vt, s = !1, c = "initialValue" in n, M = typeof r == "function" && z(r); const u = /* @__PURE__ */ new Set(), [g, d] = (n.storage || Q)(n.initialValue), [I, N] = Q(void 0), [x, b] = Q(void 0, { equals: !1 }), [p, j] = Q(c ? "ready" : "unresolved"); function L(f, m, A, O) { return a === f && (a = null, O !== void 0 && (c = !0), (f === l || m === l) && n.onHydrated && queueMicrotask(() => n.onHydrated(O, { value: m })), l = vt, w(m, A)), m; } function w(f, m) { ae(() => { m === void 0 && d(() => f), j(m !== void 0 ? "errored" : c ? "ready" : "unresolved"), N(m); for (const A of u.keys()) A.decrement(); u.clear(); }, !1); } function E() { const f = so, m = g(), A = I(); if (A !== void 0 && !a) throw A; return k && k.user, m; } function T(f = !0) { if (f !== !1 && s) return; s = !1; const m = M ? M() : r; if (m == null || m === !1) { L(a, Z(g)); return; } let A; const O = l !== vt ? l : Z(() => { try { return o(m, { value: g(), refetching: f }); } catch (Y) { A = Y; } }); if (A !== void 0) { L(a, void 0, rt(A), m); return; } else if (!oo(O)) return L(a, O, void 0, m), O; return a = O, "v" in O ? (O.s === 1 ? L(a, O.v, void 0, m) : L(a, void 0, rt(O.v), m), O) : (s = !0, queueMicrotask(() => s = !1), ae(() => { j(c ? "refreshing" : "pending"), b(); }, !1), O.then((Y) => L(O, Y, void 0, m), (Y) => L(O, void 0, rt(Y), m))); } Object.defineProperties(E, { state: { get: () => p() }, error: { get: () => I() }, loading: { get() { const f = p(); return f === "pending" || f === "refreshing"; } }, latest: { get() { if (!c) return E(); const f = I(); if (f && !a) throw f; return g(); } } }); let v = S; return M ? ro(() => (v = S, T(!1))) : T(!1), [E, { refetch: (f) => lo(v, () => T(f)), mutate: d }]; } function Rt(e) { return ae(e, !1); } function Z(e) { if (k === null) return e(); const t = k; k = null; try { return e(); } finally { k = t; } } function ao(e, t, i) { const r = Array.isArray(e); let o; return (n) => { let a; if (r) { a = Array(e.length); for (let s = 0; s < e.length; s++) a[s] = e[s](); } else a = e(); const l = Z(() => t(a, o, n)); return o = a, l; }; } function yt(e) { be(() => Z(e)); } function Fe(e) { return S === null || (S.cleanups === null ? S.cleanups = [e] : S.cleanups.push(e)), e; } function Wt() { return k; } function lo(e, t) { const i = S, r = k; S = e, k = null; try { return ae(t, !0); } catch (o) { ti(o); } finally { S = i, k = r; } } const [Zs, Ps] = /* @__PURE__ */ Q(!1); function bt(e, t) { const i = Symbol("context"); return { id: i, Provider: go(i), defaultValue: e }; } function P(e) { let t; return S && S.context && (t = S.context[e.id]) !== void 0 ? t : e.defaultValue; } function Ki(e) { const t = z(e), i = z(() => Bt(t())); return i.toArray = () => { const r = i(); return Array.isArray(r) ? r : r != null ? [r] : []; }, i; } let so; function qi() { if (this.sources && this.state) if (this.state === le) Ee(this); else { const e = U; U = null, ae(() => ct(this), !1), U = e; } if (k) { const e = this.observers ? this.observers.length : 0; k.sources ? (k.sources.push(this), k.sourceSlots.push(e)) : (k.sources = [this], k.sourceSlots = [e]), this.observers ? (this.observers.push(k), this.observerSlots.push(k.sources.length - 1)) : (this.observers = [k], this.observerSlots = [k.sources.length - 1]); } return this.value; } function er(e, t, i) { let r = e.value; return (!e.comparator || !e.comparator(r, t)) && (e.value = t, e.observers && e.observers.length && ae(() => { for (let o = 0; o < e.observers.length; o += 1) { const n = e.observers[o], a = St && St.running; a && St.disposed.has(n), (a ? !n.tState : !n.state) && (n.pure ? U.push(n) : ne.push(n), n.observers && ir(n)), a || (n.state = le); } if (U.length > 1e6) throw U = [], new Error(); }, !1)), t; } function Ee(e) { if (!e.fn) return; Pe(e); const t = Dt; co(e, e.value, t); } function co(e, t, i) { let r; const o = S, n = k; k = S = e; try { r = e.fn(t); } catch (a) { return e.pure && (e.state = le, e.owned && e.owned.forEach(Pe), e.owned = null), e.updatedAt = i + 1, ti(a); } finally { k = n, S = o; } (!e.updatedAt || e.updatedAt <= i) && (e.updatedAt != null && "observers" in e ? er(e, r) : e.value = r, e.updatedAt = i); } function xt(e, t, i, r = le, o) { const n = { fn: e, state: r, updatedAt: null, owned: null, sources: null, sourceSlots: null, cleanups: null, value: t, owner: S, context: S ? S.context : null, pure: i }; return S === null || S !== Xi && (S.owned ? S.owned.push(n) : S.owned = [n]), n; } function st(e) { if (e.state === 0) return; if (e.state === lt) return ct(e); if (e.suspense && Z(e.suspense.inFallback)) return e.suspense.effects.push(e); const t = [e]; for (; (e = e.owner) && (!e.updatedAt || e.updatedAt < Dt); ) e.state && t.push(e); for (let i = t.length - 1; i >= 0; i--) if (e = t[i], e.state === le) Ee(e); else if (e.state === lt) { const r = U; U = null, ae(() => ct(e, t[0]), !1), U = r; } } function ae(e, t) { if (U) return e(); let i = !1; t || (U = []), ne ? i = !0 : ne = [], Dt++; try { const r = e(); return Mo(i), r; } catch (r) { i || (ne = null), U = null, ti(r); } } function Mo(e) { if (U && (tr(U), U = null), e) return; const t = ne; ne = null, t.length && ae(() => $i(t), !1); } function tr(e) { for (let t = 0; t < e.length; t++) st(e[t]); } function uo(e) { let t, i = 0; for (t = 0; t < e.length; t++) { const r = e[t]; r.user ? e[i++] = r : st(r); } for (t = 0; t < i; t++) st(e[t]); } function ct(e, t) { e.state = 0; for (let i = 0; i < e.sources.length; i += 1) { const r = e.sources[i]; if (r.sources) { const o = r.state; o === le ? r !== t && (!r.updatedAt || r.updatedAt < Dt) && st(r) : o === lt && ct(r, t); } } } function ir(e) { for (let t = 0; t < e.observers.length; t += 1) { const i = e.observers[t]; i.state || (i.state = lt, i.pure ? U.push(i) : ne.push(i), i.observers && ir(i)); } } function Pe(e) { let t; if (e.sources) for (; e.sources.length; ) { const i = e.sources.pop(), r = e.sourceSlots.pop(), o = i.observers; if (o && o.length) { const n = o.pop(), a = i.observerSlots.pop(); r < o.length && (n.sourceSlots[a] = r, o[r] = n, i.observerSlots[r] = a); } } if (e.tOwned) { for (t = e.tOwned.length - 1; t >= 0; t--) Pe(e.tOwned[t]); delete e.tOwned; } if (e.owned) { for (t = e.owned.length - 1; t >= 0; t--) Pe(e.owned[t]); e.owned = null; } if (e.cleanups) { for (t = e.cleanups.length - 1; t >= 0; t--) e.cleanups[t](); e.cleanups = null; } e.state = 0; } function rt(e) { return e instanceof Error ? e : new Error(typeof e == "string" ? e : "Unknown error", { cause: e }); } function ti(e, t = S) { throw rt(e); } function Bt(e) { if (typeof e == "function" && !e.length) return Bt(e()); if (Array.isArray(e)) { const t = []; for (let i = 0; i < e.length; i++) { const r = Bt(e[i]); Array.isArray(r) ? t.push.apply(t, r) : t.push(r); } return t; } return e; } function go(e, t) { return function(r) { let o; return C(() => o = Z(() => (S.context = { ...S.context, [e]: r.value }, Ki(() => r.children))), void 0), o; }; } const No = Symbol("fallback"); function ji(e) { for (let t = 0; t < e.length; t++) e[t](); } function Io(e, t, i = {}) { let r = [], o = [], n = [], a = 0, l = t.length > 1 ? [] : null; return Fe(() => ji(n)), () => { let s = e() || [], c = s.length, M, u; return s[Gt], Z(() => { let d, I, N, x, b, p, j, L, w; if (c === 0) a !== 0 && (ji(n), n = [], r = [], o = [], a = 0, l && (l = [])), i.fallback && (r = [No], o[0] = it((E) => (n[0] = E, i.fallback())), a = 1); else if (a === 0) { for (o = new Array(c), u = 0; u < c; u++) r[u] = s[u], o[u] = it(g); a = c; } else { for (N = new Array(c), x = new Array(c), l && (b = new Array(c)), p = 0, j = Math.min(a, c); p < j && r[p] === s[p]; p++) ; for (j = a - 1, L = c - 1; j >= p && L >= p && r[j] === s[L]; j--, L--) N[L] = o[j], x[L] = n[j], l && (b[L] = l[j]); for (d = /* @__PURE__ */ new Map(), I = new Array(L + 1), u = L; u >= p; u--) w = s[u], M = d.get(w), I[u] = M === void 0 ? -1 : M, d.set(w, u); for (M = p; M <= j; M++) w = r[M], u = d.get(w), u !== void 0 && u !== -1 ? (N[u] = o[M], x[u] = n[M], l && (b[u] = l[M]), u = I[u], d.set(w, u)) : n[M](); for (u = p; u < c; u++) u in N ? (o[u] = N[u], n[u] = x[u], l && (l[u] = b[u], l[u](u))) : o[u] = it(g); o = o.slice(0, a = c), r = s.slice(0); } return o; }); function g(d) { if (n[u] = d, l) { const [I, N] = Q(u); return l[u] = N, t(s[u], I); } return t(s[u]); } }; } function D(e, t) { return Z(() => e(t || {})); } function Xe() { return !0; } const Ht = { get(e, t, i) { return t === $ ? i : e.get(t); }, has(e, t) { return t === $ ? !0 : e.has(t); }, set: Xe, deleteProperty: Xe, getOwnPropertyDescriptor(e, t) { return { configurable: !0, enumerable: !0, get() { return e.get(t); }, set: Xe, deleteProperty: Xe }; }, ownKeys(e) { return e.keys(); } }; function Et(e) { return (e = typeof e == "function" ? e() : e) ? e : {}; } function jo() { for (let e = 0, t = this.length; e < t; ++e) { const i = this[e](); if (i !== void 0) return i; } } function rr(...e) { let t = !1; for (let a = 0; a < e.length; a++) { const l = e[a]; t = t || !!l && $ in l, e[a] = typeof l == "function" ? (t = !0, z(l)) : l; } if (Ji && t) return new Proxy({ get(a) { for (let l = e.length - 1; l >= 0; l--) { const s = Et(e[l])[a]; if (s !== void 0) return s; } }, has(a) { for (let l = e.length - 1; l >= 0; l--) if (a in Et(e[l])) return !0; return !1; }, keys() { const a = []; for (let l = 0; l < e.length; l++) a.push(...Object.keys(Et(e[l]))); return [...new Set(a)]; } }, Ht); const i = {}, r = /* @__PURE__ */ Object.create(null); for (let a = e.length - 1; a >= 0; a--) { const l = e[a]; if (!l) continue; const s = Object.getOwnPropertyNames(l); for (let c = s.length - 1; c >= 0; c--) { const M = s[c]; if (M === "__proto__" || M === "constructor") continue; const u = Object.getOwnPropertyDescriptor(l, M); if (!r[M]) r[M] = u.get ? { enumerable: !0, configurable: !0, get: jo.bind(i[M] = [u.get.bind(l)]) } : u.value !== void 0 ? u : void 0; else { const g = i[M]; g && (u.get ? g.push(u.get.bind(l)) : u.value !== void 0 && g.push(() => u.value)); } } } const o = {}, n = Object.keys(r); for (let a = n.length - 1; a >= 0; a--) { const l = n[a], s = r[l]; s && s.get ? Object.defineProperty(o, l, s) : o[l] = s ? s.value : void 0; } return o; } function or(e, ...t) { if (Ji && $ in e) { const o = new Set(t.length > 1 ? t.flat() : t[0]), n = t.map((a) => new Proxy({ get(l) { return a.includes(l) ? e[l] : void 0; }, has(l) { return a.includes(l) && l in e; }, keys() { return a.filter((l) => l in e); } }, Ht)); return n.push(new Proxy({ get(a) { return o.has(a) ? void 0 : e[a]; }, has(a) { return o.has(a) ? !1 : a in e; }, keys() { return Object.keys(e).filter((a) => !o.has(a)); } }, Ht)), n; } const i = {}, r = t.map(() => ({})); for (const o of Object.getOwnPropertyNames(e)) { const n = Object.getOwnPropertyDescriptor(e, o), a = !n.get && !n.set && n.enumerable && n.writable && n.configurable; let l = !1, s = 0; for (const c of t) c.includes(o) && (l = !0, a ? r[s][o] = n.value : Object.defineProperty(r[s], o, n)), ++s; l || (a ? i[o] = n.value : Object.defineProperty(i, o, n)); } return [...r, i]; } const nr = (e) => `Stale read from <${e}>.`; function de(e) { const t = "fallback" in e && { fallback: () => e.fallback }; return z(Io(() => e.each, e.children, t || void 0)); } function R(e) { const t = e.keyed, i = z(() => e.when, void 0, void 0), r = t ? i : z(i, void 0, { equals: (o, n) => !o == !n }); return z(() => { const o = r(); if (o) { const n = e.children; return typeof n == "function" && n.length > 0 ? Z(() => n(t ? o : () => { if (!Z(r)) throw nr("Show"); return i(); })) : n; } return e.fallback; }, void 0, void 0); } function Do(e) { const t = Ki(() => e.children), i = z(() => { const r = t(), o = Array.isArray(r) ? r : [r]; let n = () => { }; for (let a = 0; a < o.length; a++) { const l = a, s = o[a], c = n, M = z(() => c() ? void 0 : s.when, void 0, void 0), u = s.keyed ? M : z(M, void 0, { equals: (g, d) => !g == !d }); n = () => c() || (u() ? [l, M, s] : void 0); } return n; }); return z(() => { const r = i()(); if (!r) return e.fallback; const [o, n, a] = r, l = a.children; return typeof l == "function" && l.length > 0 ? Z(() => l(a.keyed ? n() : () => { var c; if (((c = Z(i)()) == null ? void 0 : c[0]) !== o) throw nr("Match"); return n(); })) : l; }, void 0, void 0); } function Di(e) { return e; } const yo = ["allowfullscreen", "async", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "inert", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "seamless", "selected"], bo = /* @__PURE__ */ new Set(["className", "value", "readOnly", "noValidate", "formNoValidate", "isMap", "noModule", "playsInline", ...yo]), xo = /* @__PURE__ */ new Set(["innerHTML", "textContent", "innerText", "children"]), wo = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), { className: "class", htmlFor: "for" }), fo = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), { class: "className", novalidate: { $: "noValidate", FORM: 1 }, formnovalidate: { $: "formNoValidate", BUTTON: 1, INPUT: 1 }, ismap: { $: "isMap", IMG: 1 }, nomodule: { $: "noModule", SCRIPT: 1 }, playsinline: { $: "playsInline", VIDEO: 1 }, readonly: { $: "readOnly", INPUT: 1, TEXTAREA: 1 } }); function po(e, t) { const i = fo[e]; return typeof i == "object" ? i[t] ? i.$ : void 0 : i; } const Lo = /* @__PURE__ */ new Set(["beforeinput", "click", "dblclick", "contextmenu", "focusin", "focusout", "input", "keydown", "keyup", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "pointerdown", "pointermove", "pointerout", "pointerover", "pointerup", "touchend", "touchmove", "touchstart"]), ho = /* @__PURE__ */ new Set([ "altGlyph", "altGlyphDef", "altGlyphItem", "animate", "animateColor", "animateMotion", "animateTransform", "circle", "clipPath", "color-profile", "cursor", "defs", "desc", "ellipse", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "filter", "font", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignObject", "g", "glyph", "glyphRef", "hkern", "image", "line", "linearGradient", "marker", "mask", "metadata", "missing-glyph", "mpath", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "set", "stop", "svg", "switch", "symbol", "text", "textPath", "tref", "tspan", "use", "view", "vkern" ]), To = { xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace" }, De = (e) => z(() => e()); function Ao(e, t, i) { let r = i.length, o = t.length, n = r, a = 0, l = 0, s = t[o - 1].nextSibling, c = null; for (; a < o || l < n; ) { if (t[a] === i[l]) { a++, l++; continue; } for (; t[o - 1] === i[n - 1]; ) o--, n--; if (o === a) { const M = n < r ? l ? i[l - 1].nextSibling : i[n - l] : s; for (; l < n; ) e.insertBefore(i[l++], M); } else if (n === l) for (; a < o; ) (!c || !c.has(t[a])) && t[a].remove(), a++; else if (t[a] === i[n - 1] && i[l] === t[o - 1]) { const M = t[--o].nextSibling; e.insertBefore(i[l++], t[a++].nextSibling), e.insertBefore(i[--n], M), t[o] = i[n]; } else { if (!c) { c = /* @__PURE__ */ new Map(); let u = l; for (; u < n; ) c.set(i[u], u++); } const M = c.get(t[a]); if (M != null) if (l < M && M < n) { let u = a, g = 1, d; for (; ++u < o && u < n && !((d = c.get(t[u])) == null || d !== M + g); ) g++; if (g > M - l) { const I = t[a]; for (; l < M; ) e.insertBefore(i[l++], I); } else e.replaceChild(i[l++], t[a++]); } else a++; else t[a++].remove(); } } } const yi = "_$DX_DELEGATE"; function h(e, t, i, r) { let o; const n = () => { const l = document.createElement("template"); return l.innerHTML = e, l.content.firstChild; }, a = () => (o || (o = n())).cloneNode(!0); return a.cloneNode = a, a; } function Ce(e, t = window.document) { const i = t[yi] || (t[yi] = /* @__PURE__ */ new Set()); for (let r = 0, o = e.length; r < o; r++) { const n = e[r]; i.has(n) || (i.add(n), t.addEventListener(n, Co)); } } function G(e, t, i) { i == null ? e.removeAttribute(t) : e.setAttribute(t, i); } function mo(e, t, i, r) { r == null ? e.removeAttributeNS(t, i) : e.setAttributeNS(t, i, r); } function zo(e, t, i) { i ? e.setAttribute(t, "") : e.removeAttribute(t); } function q(e, t) { t == null ? e.removeAttribute("class") : e.className = t; } function _t(e, t, i, r) { if (r) Array.isArray(i) ? (e[`$$${t}`] = i[0], e[`$$${t}Data`] = i[1]) : e[`$$${t}`] = i; else if (Array.isArray(i)) { const o = i[0]; e.addEventListener(t, i[0] = (n) => o.call(e, i[1], n)); } else e.addEventListener(t, i, typeof i != "function" && i); } function xe(e, t, i = {}) { const r = Object.keys(t || {}), o = Object.keys(i); let n, a; for (n = 0, a = o.length; n < a; n++) { const l = o[n]; !l || l === "undefined" || t[l] || (bi(e, l, !1), delete i[l]); } for (n = 0, a = r.length; n < a; n++) { const l = r[n], s = !!t[l]; !l || l === "undefined" || i[l] === s || !s || (bi(e, l, !0), i[l] = s); } return i; } function ar(e, t, i) { if (!t) return i ? G(e, "style") : t; const r = e.style; if (typeof t == "string") return r.cssText = t; typeof i == "string" && (r.cssText = i = void 0), i || (i = {}), t || (t = {}); let o, n; for (n in i) t[n] == null && r.removeProperty(n), delete i[n]; for (n in t) o = t[n], o !== i[n] && (r.setProperty(n, o), i[n] = o); return i; } function vo(e, t = {}, i, r) { const o = {}; return C(() => o.children = Ge(e, t.children, o.children)), C(() => typeof t.ref == "function" && ye(t.ref, e)), C(() => So(e, t, i, !0, o, !0)), o; } function ye(e, t, i) { return Z(() => e(t, i)); } function y(e, t, i, r) { if (i !== void 0 && !r && (r = []), typeof t != "function") return Ge(e, t, r, i); C((o) => Ge(e, t(), o, i), r); } function So(e, t, i, r, o = {}, n = !1) { t || (t = {}); for (const a in o) if (!(a in t)) { if (a === "children") continue; o[a] = xi(e, a, null, o[a], i, n, t); } for (const a in t) { if (a === "children") continue; const l = t[a]; o[a] = xi(e, a, l, o[a], i, n, t); } } function Eo(e) { return e.toLowerCase().replace(/-([a-z])/g, (t, i) => i.toUpperCase()); } function bi(e, t, i) { const r = t.trim().split(/\s+/); for (let o = 0, n = r.length; o < n; o++) e.classList.toggle(r[o], i); } function xi(e, t, i, r, o, n, a) { let l, s, c, M, u; if (t === "style") return ar(e, i, r); if (t === "classList") return xe(e, i, r); if (i === r) return r; if (t === "ref") n || i(e); else if (t.slice(0, 3) === "on:") { const g = t.slice(3); r && e.removeEventListener(g, r, typeof r != "function" && r), i && e.addEventListener(g, i, typeof i != "function" && i); } else if (t.slice(0, 10) === "oncapture:") { const g = t.slice(10); r && e.removeEventListener(g, r, !0), i && e.addEventListener(g, i, !0); } else if (t.slice(0, 2) === "on") { const g = t.slice(2).toLowerCase(), d = Lo.has(g); if (!d && r) { const I = Array.isArray(r) ? r[0] : r; e.removeEventListener(g, I); } (d || i) && (_t(e, g, i, d), d && Ce([g])); } else if (t.slice(0, 5) === "attr:") G(e, t.slice(5), i); else if (t.slice(0, 5) === "bool:") zo(e, t.slice(5), i); else if ((u = t.slice(0, 5) === "prop:") || (c = xo.has(t)) || !o && ((M = po(t, e.tagName)) || (s = bo.has(t))) || (l = e.nodeName.includes("-") || "is" in a)) u && (t = t.slice(5), s = !0), t === "class" || t === "className" ? q(e, i) : l && !s && !c ? e[Eo(t)] = i : e[M || t] = i; else { const g = o && t.indexOf(":") > -1 && To[t.split(":")[0]]; g ? mo(e, g, t, i) : G(e, wo[t] || t, i); } return i; } function Co(e) { let t = e.target; const i = `$$${e.type}`, r = e.target, o = e.currentTarget, n = (s) => Object.defineProperty(e, "target", { configurable: !0, value: s }), a = () => { const s = t[i]; if (s && !t.disabled) { const c = t[`${i}Data`]; if (c !== void 0 ? s.call(t, c, e) : s.call(t, e), e.cancelBubble) return; } return t.host && typeof t.host != "string" && !t.host._$host && t.contains(e.target) && n(t.host), !0; }, l = () => { for (; a() && (t = t._$host || t.parentNode || t.host); ) ; }; if (Object.defineProperty(e, "currentTarget", { configurable: !0, get() { return t || document; } }), e.composedPath) { const s = e.composedPath(); n(s[0]); for (let c = 0; c < s.length - 2 && (t = s[c], !!a()); c++) { if (t._$host) { t = t._$host, l(); break; } if (t.parentNode === o) break; } } else l(); n(r); } function Ge(e, t, i, r, o) { for (; typeof i == "function"; ) i = i(); if (t === i) return i; const n = typeof t, a = r !== void 0; if (e = a && i[0] && i[0].parentNode || e, n === "string" || n === "number") { if (n === "number" && (t = t.toString(), t === i)) return i; if (a) { let l = i[0]; l && l.nodeType === 3 ? l.data !== t && (l.data = t) : l = document.createTextNode(t), i = pe(e, i, r, l); } else i !== "" && typeof i == "string" ? i = e.firstChild.data = t : i = e.textContent = t; } else if (t == null || n === "boolean") i = pe(e, i, r); else { if (n === "function") return C(() => { let l = t(); for (; typeof l == "function"; ) l = l(); i = Ge(e, l, i, r); }), () => i; if (Array.isArray(t)) { const l = [], s = i && Array.isArray(i); if (Vt(l, t, i, o)) return C(() => i = Ge(e, l, i, r, !0)), () => i; if (l.length === 0) { if (i = pe(e, i, r), a) return i; } else s ? i.length === 0 ? wi(e, l, r) : Ao(e, i, l) : (i && pe(e), wi(e, l)); i = l; } else if (t.nodeType) { if (Array.isArray(i)) { if (a) return i = pe(e, i, r, t); pe(e, i, null, t); } else i == null || i === "" || !e.firstChild ? e.appendChild(t) : e.replaceChild(t, e.firstChild); i = t; } } return i; } function Vt(e, t, i, r) { let o = !1; for (let n = 0, a = t.length; n < a; n++) { let l = t[n], s = i && i[e.length], c; if (!(l == null || l === !0 || l === !1)) if ((c = typeof l) == "object" && l.nodeType) e.push(l); else if (Array.isArray(l)) o = Vt(e, l, s) || o; else if (c === "function") if (r) { for (; typeof l == "function"; ) l = l(); o = Vt(e, Array.isArray(l) ? l : [l], Array.isArray(s) ? s : [s]) || o; } else e.push(l), o = !0; else { const M = String(l); s && s.nodeType === 3 && s.data === M ? e.push(s) : e.push(document.createTextNode(M)); } } return o; } function wi(e, t, i = null) { for (let r = 0, o = t.length; r < o; r++) e.insertBefore(t[r], i); } function pe(e, t, i, r) { if (i === void 0) return e.textContent = ""; const o = r || document.createTextNode(""); if (t.length) { let n = !1; for (let a = t.length - 1; a >= 0; a--) { const l = t[a]; if (o !== l) { const s = l.parentNode === e; !n && !a ? s ? e.replaceChild(o, l) : e.insertBefore(o, i) : s && l.remove(); } else n = !0; } } else e.insertBefore(o, i); return [o]; } const Oo = "http://www.w3.org/2000/svg"; function ko(e, t = !1) { return t ? document.createElementNS(Oo, e) : document.createElement(e); } function Yo(e, t) { const i = z(e); return z(() => { const r = i(); switch (typeof r) { case "function": return Z(() => r(t)); case "string": const o = ho.has(r), n = ko(r, o); return vo(n, t, o), n; } }); } function ii(e) { const [, t] = or(e, ["component"]); return Yo(() => e.component, t); } function Qo(e) { const t = Object.keys(e), i = {}; for (let r = 0; r < t.length; r++) { const [o, n] = Q(e[t[r]]); Object.defineProperty(i, t[r], { get: o, set(a) { n(() => a); } }); } return i; } function Uo(e) { if (e.assignedSlot && e.assignedSlot._$owner) return e.assignedSlot._$owner; let t = e.parentNode; for (; t && !t._$owner && !(t.assignedSlot && t.assignedSlot._$owner); ) t = t.parentNode; return t && t.assignedSlot ? t.assignedSlot._$owner : e._$owner; } function Zo(e) { return (t, i) => { const { element: r } = i; return it((o) => { const n = Qo(t); r.addPropertyChangedCallback((l, s) => n[l] = s), r.addReleaseCallback(() => { r.renderRoot.textContent = "", o(); }); const a = e(n, i); return y(r.renderRoot, a); }, Uo(r)); }; } function Po(e, t, i) { return arguments.length === 2 && (i = t, t = {}), qr(e, t)(Zo(i)); } var wt = [ // Vike { category: "Frontend Framework", label: "Vike", flag: "vike", image: "data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaGFtbWVyIiB3aWR0aD0iNDcuMjE3IiBoZWlnaHQ9IjQ3LjIxNyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSItNTAgLTUwIDQ3LjIxNyA0Ny4yMTciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzAuMjksLTIxLjMpIj4KICA8ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICA8cGF0aCBkPSJtLTguNTExLTEwLjQ0OSAxLjEyNiA0LjA2NCAyLjcwNy0yLjc2NXoiIGZpbGw9IiNhYmFiYWIiLz4KICAgPHBhdGggZD0ibS0yLjI3My0yNC40OTYtNi4yMzggMTQuMDQ3IDMuODMzIDEuMjk5IDYuMjM4LTE0LjA0OHoiIGZpbGw9IiM5NDk0OTQiLz4KICAgPHBhdGggZD0ibS0yLjI3My0yNC40OTYgMy40NjUtMS4yMDQuMzY4IDIuNTAyeiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTcuNTExIDQuNjc0LTIuNzA3IDIuNzY2LTIyLjE4OS0xMy44MjUgMi43MDctMi43NjV6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgPC9nPgogIDxnIHN0cm9rZT0iIzgyODI4MiI+CiAgIDxwYXRoIGQ9Im0tMTAuNTI2IDIzLjcwNS0xLjE3IDIuNjM0IiBzdHJva2Utd2lkdGg9IjkuNiIvPgogICA8cGF0aCBkPSJtLTEzLjg5OSAyNi41MjhjLTEuODUxLTEuMTUzLTIuMzI2LTIuMTMzLTEuMDg3LTIuMjM5IDEuMjQtLjEwNiAzLjY0My43MDkgNS40OTQgMS44NjIgMS44NSAxLjE1MyAyLjMyNiAyLjEzMiAxLjA4NiAyLjIzOC0xLjIzOS4xMDYtMy42NDItLjcwOC01LjQ5My0xLjg2MSIgZmlsbD0iIzgyODI4MiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgIDxwYXRoIGQ9Im0tMTIuNzMgMjMuODk0YzEuODUxIDEuMTUzIDQuMjU1IDEuOTY3IDUuNDk0IDEuODYxcy43NjQtMS4wODUtMS4wODctMi4yMzhjLTEuODUtMS4xNTMtNC4yNTQtMS45NjctNS40OTMtMS44NjEtMS4yNC4xMDYtLjc2NCAxLjA4NSAxLjA4NiAyLjIzOCIgZmlsbD0iIzgyODI4MiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgPC9nPgogIDxnIHN0cm9rZT0iIzdhN2E3YSI+CiAgIDxwYXRoIGQ9Im0tOS44NDQgMjIuMTY5LS4zOS44NzgiIHN0cm9rZS13aWR0aD0iOS4xIi8+CiAgIDxwYXRoIGQ9Im0tMTIuNDM3IDIzLjIzNWMtMS44NTEtMS4xNTMtMi4zMjYtMi4xMzItMS4wODctMi4yMzggMS4yNC0uMTA2IDMuNjQzLjcwOCA1LjQ5NCAxLjg2MSAxLjg1IDEuMTUzIDIuMzI2IDIuMTMzIDEuMDg2IDIuMjM5LTEuMjM5LjEwNi0zLjY0Mi0uNzA5LTUuNDkzLTEuODYyIiBmaWxsPSIjN2E3YTdhIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjUiLz4KICAgPHBhdGggZD0ibS0xMi4wNDcgMjIuMzU3YzEuODUgMS4xNTMgNC4yNTQgMS45NjggNS40OTMgMS44NjIgMS4yNC0uMTA2Ljc2NC0xLjA4Ni0xLjA4Ny0yLjIzOS0xLjg1LTEuMTUzLTQuMjU0LTEuOTY3LTUuNDkzLTEuODYxcy0uNzY0IDEuMDg1IDEuMDg3IDIuMjM4IiBmaWxsPSIjN2E3YTdhIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjUiLz4KICA8L2c+CiAgPGcgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgPHBhdGggZD0ibS0xNi43MS05Ljc0OCA4LjE5OS0uNzAxIDEuMTI2IDQuMDY0LTguMTk5LjcwMXoiIGZpbGw9IiM5NDk0OTQiLz4KICAgPHBhdGggZD0ibTIzLjc0OS05LjM3My02LjIzOCAxNC4wNDctMjIuMTg5LTEzLjgyNCA2LjIzOC0xNC4wNDh6IiBmaWxsPSIjNzU3NTc1Ii8+CiAgIDxwYXRoIGQ9Im0xMC4yNzEtMTYuMDczIDMuNzUxIDMuNTM0Yy4wNjIuMDU4LjA4My4xNTYuMDUyLjIzOGwtMS45NSA1LjEyOGMtLjA0Ni4xMjEtLjE4LjE1My0uMjY4LjA2NWwtMS4wMjQtMS4wM2MtLjA5NS0uMDk2LS4yNDItLjA0OC0uMjc1LjA5MWwtLjUxNiAyLjE1MmMtLjAzNC4xNDUtLjE5MS4xOS0uMjg0LjA4MiAwIDAtLjYwNi0uNjk2LS42MDYtLjY5Ni0uMDk0LS4xMDgtLjI1LS4wNjMtLjI4NS4wODJsLS44MDMgMy4zODRjLS4wNS4yMTItLjMxNy4xNzgtLjMzNi0uMDQzbC0uMDE0LS4xNDdzLjA1OC05Ljg5Mi4wNTgtOS44OTJjLjAwMS0uMTY1LjE2NS0uMjUzLjI3Ny0uMTQ4bDEuMDc3IDEuMDA5Yy4xMDEuMDk1LjI1LjAzNC4yNzQtLjExMWwuNTk3LTMuNTg3Yy4wMjUtLjE0Ni4xNzQtLjIwNi4yNzUtLjExMXoiIGZpbGw9IiNmYmJmMjgiIHN0cm9rZT0iI2ZiYmYyOCIgc3Ryb2tlLXdpZHRoPSIuNiIvPgogICA8cGF0aCBkPSJtLTE2LjcxLTkuNzQ4IDguMTk5LS43MDEgNi4yMzgtMTQuMDQ3LTguMTk5LjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICA8L2c+CiAgPHBhdGggZD0ibS0xLjc1NCAzLjk1MS03Ljk5MiAxNy45OTgiIHN0cm9rZT0iIzkxNTEyYiIgc3Ryb2tlLXdpZHRoPSI4LjYiLz4KICA8ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICA8cGF0aCBkPSJtLTExLjk1IDIyLjEzOGMtMS44NTEtMS4xNTMtMi4zMjYtMi4xMzItMS4wODctMi4yMzggMS4yNC0uMTA2IDMuNjQzLjcwOCA1LjQ5NCAxLjg2MXMyLjMyNiAyLjEzMiAxLjA4NyAyLjIzOGMtMS4yNC4xMDYtMy42NDMtLjcwOC01LjQ5NC0xLjg2MSIgZmlsbD0iIzkxNTEyYiIvPgogICA8cGF0aCBkPSJtLTMuOTU4IDQuMTM5YzEuODUxIDEuMTUzIDQuMjU0IDEuOTY4IDUuNDk0IDEuODYyIDEuMjM5LS4xMDYuNzY0LTEuMDg2LTEuMDg3LTIuMjM5cy00LjI1NC0xLjk2Ny01LjQ5My0xLjg2MWMtMS4yNC4xMDYtLjc2NCAxLjA4NSAxLjA4NiAyLjIzOCIgZmlsbD0iIzkxNTEyYiIvPgogICA8cGF0aCBkPSJtMS4xOTItMjUuNy4zNjggMi41MDIgMjIuMTg5IDEzLjgyNS0uMzY4LTIuNTAzeiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtLTEwLjQ3Mi0yMy43OTUgOC4xOTktLjcwMSAzLjQ2NS0xLjIwNC04LjE5OS43MDF6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgPC9nPgogIDxnIHN0cm9rZT0iIzZlNmU2ZSI+CiAgIDxwYXRoIGQ9Im0tLjQ4NyAxLjA5Ny0xLjE3IDIuNjM0IiBzdHJva2Utd2lkdGg9IjkuMSIvPgogICA8cGF0aCBkPSJtLTMuODYgMy45MmMtMS44NTEtMS4xNTMtMi4zMjYtMi4xMzItMS4wODctMi4yMzhzMy42NDMuNzA4IDUuNDkzIDEuODYxYzEuODUxIDEuMTUzIDIuMzI3IDIuMTMyIDEuMDg3IDIuMjM4LTEuMjM5LjEwNi0zLjY0My0uNzA4LTUuNDkzLTEuODYxIiBmaWxsPSIjNmU2ZTZlIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjUiLz4KICAgPHBhdGggZD0ibS0yLjY5MSAxLjI4NmMxLjg1MSAxLjE1MyA0LjI1NCAxLjk2NyA1LjQ5NCAxLjg2MSAxLjIzOS0uMTA2Ljc2NC0xLjA4NS0xLjA4Ny0yLjIzOHMtNC4yNTQtMS45NjctNS40OTMtMS44NjFjLTEuMjQuMTA2LS43NjQgMS4wODUgMS4wODYgMi4yMzgiIGZpbGw9IiM2ZTZlNmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIuNSIvPgogIDwvZz4KICA8ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICA8cGF0aCBkPSJtMTguMjY5IDYuMjM2LTMuNDY1IDEuMjA0IDIuNzA3LTIuNzY2eiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTQuODA0IDcuNDQtOC4xOTkuNzAxLTIyLjE4OS0xMy44MjUgOC4xOTktLjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICAgPHBhdGggZD0ibS0xNi43MS05Ljc0OCAxLjEyNiA0LjA2NC0uMzY3LTIuNTAyeiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMjQuNTA3LTcuODEyLTYuMjM4IDE0LjA0OC0uNzU4LTEuNTYyIDYuMjM4LTE0LjA0N3oiIGZpbGw9IiM5NDk0OTQiLz4KICAgPHBhdGggZD0ibS0xMC40NzItMjMuNzk1LTYuMjM4IDE0LjA0Ny43NTkgMS41NjIgNi4yMzctMTQuMDQ4eiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtMjQuNTA3LTcuODEyLTEuMTI2LTQuMDY0LjM2OCAyLjUwM3oiIGZpbGw9IiNhYmFiYWIiLz4KICAgPHBhdGggZD0ibTIzLjM4MS0xMS44NzYtOC4xOTkuNzAxLTIyLjE4OS0xMy44MjQgOC4xOTktLjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICAgPHBhdGggZD0ibS0xMC40NzItMjMuNzk1IDMuNDY1LTEuMjA0LTIuNzA3IDIuNzY1eiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTguMjY5IDYuMjM2LTguMTk5LjcwMS0zLjQ2NSAxLjIwNCA4LjE5OS0uNzAxeiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtLTE1Ljk1MS04LjE4Ni4zNjcgMi41MDIgMjIuMTg5IDEzLjgyNS0uMzY3LTIuNTAzeiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtMTguMjY5IDYuMjM2LTguMTk5LjcwMSA2LjIzOC0xNC4wNDggOC4xOTktLjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICAgPHBhdGggZD0ibS05LjcxNC0yMi4yMzQtNi4yMzcgMTQuMDQ4IDIyLjE4OSAxMy44MjQgNi4yMzctMTQuMDQ3eiIgZmlsbD0iIzc1NzU3NSIvPgogICA8cGF0aCBkPSJtMi41NDUtMTIuNzktNC41ODMtMS42NTljLS4wNzYtLjAyNy0uMTU2LjAwOC0uMTk1LjA4NSAwIDAtMi40NjMgNC44MDgtMi40NjMgNC44MDgtLjA1OC4xMTQtLjAwNS4yNjMuMTA3LjI5OGwxLjI5Ni40MTZjLjEyMi4wMzkuMTcxLjIxLjA5My4zMjEgMCAwLTEuMjA1IDEuNzIyLTEuMjA1IDEuNzIyLS4wODEuMTE2LS4wMjQuMjk0LjEwNS4zMjVsLjgyNy4xOTZjLjEyOC4wMzEuMTg2LjIwOS4xMDQuMzI1IDAgMC0xLjg5OSAyLjcwMS0xLjg5OSAyLjcwMS0uMTE4LjE2OS4wNTYuNDEuMjIuMzA0bC4xMS0uMDcgNi44NDktNS42NjFjLjExNS0uMDk1LjA4My0uMzA0LS4wNTQtLjM1NGwtMS4zMTItLjQ4Yy0uMTIzLS4wNDUtLjE2NS0uMjI0LS4wNzgtLjMzMSAwIDAgMi4xNTctMi42MTUgMi4xNTctMi42MTUuMDg3LS4xMDYuMDQ1LS4yODYtLjA3OS0uMzMxeiIgZmlsbD0iI2ZiYmYyOCIgc3Ryb2tlPSIjZmJiZjI4IiBzdHJva2Utd2lkdGg9Ii42Ii8+CiAgIDxwYXRoIGQ9Im0yNC41MDctNy44MTItOC4xOTkuNzAxLTEuMTI2LTQuMDY0IDguMTk5LS43MDF6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgIDxwYXRoIGQ9Im0xNS4xODItMTEuMTc1LTIuNzA3IDIuNzY2LTIyLjE4OS0xMy44MjUgMi43MDctMi43NjV6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgIDxwYXRoIGQ9Im0xMC4wNyA2LjkzNy0zLjQ2NSAxLjIwNC0uMzY3LTIuNTAzeiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTYuMzA4LTcuMTExLTYuMjM4IDE0LjA0OC0zLjgzMi0xLjI5OSA2LjIzNy0xNC4wNDd6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgIDxwYXRoIGQ9Im0xNi4zMDgtNy4xMTEtMS4xMjYtNC4wNjQtMi43MDcgMi43NjZ6IiBmaWxsPSIjYWJhYmFiIi8+CiAgPC9nPgogPC9nPgo8L3N2Zz4K", url: "https://vike.dev", tagline: "Flexible, lean, reliable, community-driven, fast Vite-based frontend framework", repo: "vikejs/vike", links: [ { label: "Docs", href: "https://vike.dev" }, { label: "FAQ", href: "https://vike.dev/faq" } ], invisibleCli: !0, readonly: !0 }, // UI Framework { category: "UI Framework", label: "React", flag: "react", image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjEzZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyOCI+PHBhdGggZmlsbD0iIzAwRDhGRiIgZD0iTTIxMC40ODMgNzMuODI0YTE3MS40OSAxNzEuNDkgMCAwIDAtOC4yNC0yLjU5N2MuNDY1LTEuOS44OTMtMy43NzcgMS4yNzMtNS42MjFjNi4yMzgtMzAuMjgxIDIuMTYtNTQuNjc2LTExLjc2OS02Mi43MDhjLTEzLjM1NS03LjctMzUuMTk2LjMyOS01Ny4yNTQgMTkuNTI2YTE3MS4yMyAxNzEuMjMgMCAwIDAtNi4zNzUgNS44NDhhMTU1Ljg2NiAxNTUuODY2IDAgMCAwLTQuMjQxLTMuOTE3QzEwMC43NTkgMy44MjkgNzcuNTg3LTQuODIyIDYzLjY3MyAzLjIzM0M1MC4zMyAxMC45NTcgNDYuMzc5IDMzLjg5IDUxLjk5NSA2Mi41ODhhMTcwLjk3NCAxNzAuOTc0IDAgMCAwIDEuODkyIDguNDhjLTMuMjguOTMyLTYuNDQ1IDEuOTI0LTkuNDc0IDIuOThDMTcuMzA5IDgzLjQ5OCAwIDk4LjMwNyAwIDExMy42NjhjMCAxNS44NjUgMTguNTgyIDMxLjc3OCA0Ni44MTIgNDEuNDI3YTE0NS41MiAxNDUuNTIgMCAwIDAgNi45MjEgMi4xNjVhMTY3LjQ2NyAxNjcuNDY3IDAgMCAwLTIuMDEgOS4xMzhjLTUuMzU0IDI4LjItMS4xNzMgNTAuNTkxIDEyLjEzNCA1OC4yNjZjMTMuNzQ0IDcuOTI2IDM2LjgxMi0uMjIgNTkuMjczLTE5Ljg1NWExNDUuNTY3IDE0NS41NjcgMCAwIDAgNS4zNDItNC45MjNhMTY4LjA2NCAxNjguMDY0IDAgMCAwIDYuOTIgNi4zMTRjMjEuNzU4IDE4LjcyMiA0My4yNDYgMjYuMjgyIDU2LjU0IDE4LjU4NmMxMy43MzEtNy45NDkgMTguMTk0LTMyLjAwMyAxMi40LTYxLjI2OGExNDUuMDE2IDE0NS4wMTYgMCAwIDAtMS41MzUtNi44NDJjMS42Mi0uNDggMy4yMS0uOTc0IDQuNzYtMS40ODhjMjkuMzQ4LTkuNzIzIDQ4LjQ0My0yNS40NDMgNDguNDQzLTQxLjUyYzAtMTUuNDE3LTE3Ljg2OC0zMC4zMjYtNDUuNTE3LTM5Ljg0NFptLTYuMzY1IDcwLjk4NGMtMS40LjQ2My0yLjgzNi45MS00LjMgMS4zNDVjLTMuMjQtMTAuMjU3LTcuNjEyLTIxLjE2My0xMi45NjMtMzIuNDMyYzUuMTA2LTExIDkuMzEtMjEuNzY3IDEyLjQ1OS0zMS45NTdjMi42MTkuNzU4IDUuMTYgMS41NTcgNy42MSAyLjRjMjMuNjkgOC4xNTYgMzguMTQgMjAuMjEzIDM4LjE0IDI5LjUwNGMwIDkuODk2LTE1LjYwNiAyMi43NDMtNDAuOTQ2IDMxLjE0Wm0tMTAuNTE0IDIwLjgzNGMyLjU2MiAxMi45NCAyLjkyNyAyNC42NCAxLjIzIDMzLjc4N2MtMS41MjQgOC4yMTktNC41OSAxMy42OTgtOC4zODIgMTUuODkzYy04LjA2NyA0LjY3LTI1LjMyLTEuNC00My45MjctMTcuNDEyYTE1Ni43MjYgMTU2LjcyNiAwIDAgMS02LjQzNy01Ljg3YzcuMjE0LTcuODg5IDE0LjQyMy0xNy4wNiAyMS40NTktMjcuMjQ2YzEyLjM3Ni0xLjA5OCAyNC4wNjgtMi44OTQgMzQuNjcxLTUuMzQ1YTEzNC4xNyAxMzQuMTcgMCAwIDEgMS4zODYgNi4xOTNaTTg3LjI3NiAyMTQuNTE1Yy03Ljg4MiAyLjc4My0xNC4xNiAyLjg2My0xNy45NTUuNjc1Yy04LjA3NS00LjY1Ny0xMS40MzItMjIuNjM2LTYuODUzLTQ2Ljc1MmExNTYuOTIzIDE1Ni45MjMgMCAwIDEgMS44NjktOC40OTljMTAuNDg2IDIuMzIgMjIuMDkzIDMuOTg4IDM0LjQ5OCA0Ljk5NGM3LjA4NCA5Ljk2NyAxNC41MDEgMTkuMTI4IDIxLjk3NiAyNy4xNWExMzQuNjY4IDEzNC42NjggMCAwIDEtNC44NzcgNC40OTJjLTkuOTMzIDguNjgyLTE5Ljg4NiAxNC44NDItMjguNjU4IDE3Ljk0Wk01MC4zNSAxNDQuNzQ3Yy0xMi40ODMtNC4yNjctMjIuNzkyLTkuODEyLTI5Ljg1OC0xNS44NjNjLTYuMzUtNS40MzctOS41NTUtMTAuODM2LTkuNTU1LTE1LjIxNmMwLTkuMzIyIDEzLjg5Ny0yMS4yMTIgMzcuMDc2LTI5LjI5M2MyLjgxMy0uOTggNS43NTctMS45MDUgOC44MTItMi43NzNjMy4yMDQgMTAuNDIgNy40MDYgMjEuMzE1IDEyLjQ3NyAzMi4zMzJjLTUuMTM3IDExLjE4LTkuMzk5IDIyLjI0OS0xMi42MzQgMzIuNzkyYTEzNC43MTggMTM0LjcxOCAwIDAgMS02LjMxOC0xLjk3OVptMTIuMzc4LTg0LjI2Yy00LjgxMS0yNC41ODctMS42MTYtNDMuMTM0IDYuNDI1LTQ3Ljc4OWM4LjU2NC00Ljk1OCAyNy41MDIgMi4xMTEgNDcuNDYzIDE5LjgzNWExNDQuMzE4IDE0NC4zMTggMCAwIDEgMy44NDEgMy41NDVjLTcuNDM4IDcuOTg3LTE0Ljc4NyAxNy4wOC0yMS44MDggMjYuOTg4Yy0xMi4wNCAxLjExNi0yMy41NjUgMi45MDgtMzQuMTYxIDUuMzA5YTE2MC4zNDIgMTYwLjM0MiAwIDAgMS0xLjc2LTcuODg3Wm0xMTAuNDI3IDI3LjI2OGEzNDcuOCAzNDcuOCAwIDAgMC03Ljc4NS0xMi44MDNjOC4xNjggMS4wMzMgMTUuOTk0IDIuNDA0IDIzLjM0MyA0LjA4Yy0yLjIwNiA3LjA3Mi00Ljk1NiAxNC40NjUtOC4xOTMgMjIuMDQ1YTM4MS4xNTEgMzgxLjE1MSAwIDAgMC03LjM2NS0xMy4zMjJabS00NS4wMzItNDMuODYxYzUuMDQ0IDUuNDY1IDEwLjA5NiAxMS41NjYgMTUuMDY1IDE4LjE4NmEzMjIuMDQgMzIyLjA0IDAgMCAwLTMwLjI1Ny0uMDA2YzQuOTc0LTYuNTU5IDEwLjA2OS0xMi42NTIgMTUuMTkyLTE4LjE4Wk04Mi44MDIgODcuODNhMzIzLjE2NyAzMjMuMTY3IDAgMCAwLTcuMjI3IDEzLjIzOGMtMy4xODQtNy41NTMtNS45MDktMTQuOTgtOC4xMzQtMjIuMTUyYzcuMzA0LTEuNjM0IDE1LjA5My0yLjk3IDIzLjIwOS0zLjk4NGEzMjEuNTI0IDMyMS41MjQgMCAwIDAtNy44NDggMTIuODk3Wm04LjA4MSA2NS4zNTJjLTguMzg1LS45MzYtMTYuMjkxLTIuMjAzLTIzLjU5My0zLjc5M2MyLjI2LTcuMyA1LjA0NS0xNC44ODUgOC4yOTgtMjIuNmEzMjEuMTg3IDMyMS4xODcgMCAwIDAgNy4yNTcgMTMuMjQ2YzIuNTk0IDQuNDggNS4yOCA4Ljg2OCA4LjAzOCAxMy4xNDdabTM3LjU0MiAzMS4wM2MtNS4xODQtNS41OTItMTAuMzU0LTExLjc3OS0xNS40MDMtMTguNDMzYzQuOTAyLjE5MiA5Ljg5OS4yOSAxNC45NzguMjljNS4yMTggMCAxMC4zNzYtLjExNyAxNS40NTMtLjM0M2MtNC45ODUgNi43NzQtMTAuMDE4IDEyLjk3LTE1LjAyOCAxOC40ODZabTUyLjE5OC01Ny44MTdjMy40MjIgNy44IDYuMzA2IDE1LjM0NSA4LjU5NiAyMi41MmMtNy40MjIgMS42OTQtMTUuNDM2IDMuMDU4LTIzLjg4IDQuMDcxYTM4Mi40MTcgMzgyLjQxNyAwIDAgMCA3Ljg1OS0xMy4wMjZhMzQ3LjQwMyAzNDcuNDAzIDAgMCAwIDcuNDI1LTEzLjU2NVptLTE2Ljg5OCA4LjEwMWEzNTguNTU3IDM1OC41NTcgMCAwIDEtMTIuMjgxIDE5LjgxNWEzMjkuNCAzMjkuNCAwIDAgMS0yMy40NDQuODIzYy03Ljk2NyAwLTE1LjcxNi0uMjQ4LTIzLjE3OC0uNzMyYTMxMC4yMDIgMzEwLjIwMiAwIDAgMS0xMi41MTMtMTkuODQ2aC4wMDFhMzA3LjQxIDMwNy40MSAwIDAgMS0xMC45MjMtMjAuNjI3YTMxMC4yNzggMzEwLjI3OCAwIDAgMSAxMC44OS0yMC42MzdsLS4wMDEuMDAxYTMwNy4zMTggMzA3LjMxOCAwIDAgMSAxMi40MTMtMTkuNzYxYzcuNjEzLS41NzYgMTUuNDItLjg3NiAyMy4zMS0uODc2SDEyOGM3LjkyNiAwIDE1Ljc0My4zMDMgMjMuMzU0Ljg4M2EzMjkuMzU3IDMyOS4zNTcgMCAwIDEgMTIuMzM1IDE5LjY5NWEzNTguNDg5IDM1OC40ODkgMCAwIDEgMTEuMDM2IDIwLjU0YTMyOS40NzIgMzI5LjQ3MiAwIDAgMS0xMSAyMC43MjJabTIyLjU2LTEyMi4xMjRjOC41NzIgNC45NDQgMTEuOTA2IDI0Ljg4MSA2LjUyIDUxLjAyNmMtLjM0NCAxLjY2OC0uNzMgMy4zNjctMS4xNSA1LjA5Yy0xMC42MjItMi40NTItMjIuMTU1LTQuMjc1LTM0LjIzLTUuNDA4Yy03LjAzNC0xMC4wMTctMTQuMzIzLTE5LjEyNC0yMS42NC0yNy4wMDhhMTYwLjc4OSAxNjAuNzg5IDAgMCAxIDUuODg4LTUuNGMxOC45LTE2LjQ0NyAzNi41NjQtMjIuOTQxIDQ0LjYxMi0xOC4zWk0xMjggOTAuODA4YzEyLjYyNSAwIDIyLjg2IDEwLjIzNSAyMi44NiAyMi44NnMtMTAuMjM1IDIyLjg2LTIyLjg2IDIyLjg2cy0yMi44Ni0xMC4yMzUtMjIuODYtMjIuODZzMTAuMjM1LTIyLjg2IDIyLjg2LTIyLjg2WiIvPjwvc3ZnPg==", url: "https://react.dev", spectrum: "beaten_path", tagline: "The library for web and native user interfaces", repo: "facebook/react", selected: !0, links: [ { label: "Learn", href: "https://react.dev/learn" }, { label: "Docs", href: "https://react.dev/reference/react" } ] }, { category: "UI Framework", label: "Vue", flag: "vue", image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjE2ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyMSI+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0iTTIwNC44IDBIMjU2TDEyOCAyMjAuOEwwIDBoOTcuOTJMMTI4IDUxLjJMMTU3LjQ0IDBoNDcuMzZaIi8+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0ibTAgMGwxMjggMjIwLjhMMjU2IDBoLTUxLjJMMTI4IDEzMi40OEw1MC41NiAwSDBaIi8+PHBhdGggZmlsbD0iIzM1NDk1RSIgZD0iTTUwLjU2IDBMMTI4IDEzMy4xMkwyMDQuOCAwaC00Ny4zNkwxMjggNTEuMkw5Ny45MiAwSDUwLjU2WiIvPjwvc3ZnPg==", url: "https://vuejs.org", tagline: "The Progressive JavaScript Framework", repo: "vuejs/core", links: [ { label: "Quick start", href: "https://vuejs.org/guide/quick-start.html" }, { label: "Examples", href: "https://vuejs.org/examples/#hello-world" }, { label: "API", href: "https://vuejs.org/api/" } ] }, { category: "UI Framework", label: "SolidJS", flag: "solid", image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjA4ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIyNTYgMjM5IDI1NiAyMzkiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0ibG9nb3NTb2xpZGpzSWNvbjAiIHgxPSIyNy41IiB4Mj0iMTUyIiB5MT0iMyIgeTI9IjYzLjUiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ5LjU2IDIzMy4xMikgc2NhbGUoMS42MTAwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9Ii4xIiBzdG9wLWNvbG9yPSIjNzZiM2UxIi8+PHN0b3Agb2Zmc2V0PSIuMyIgc3RvcC1jb2xvcj0iI2RjZjJmZCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc2YjNlMSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJsb2dvc1NvbGlkanNJY29uMSIgeDE9Ijk1LjgiIHgyPSI3NCIgeTE9IjMyLjYiIHkyPSIxMDUuMiIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgyNDkuNTYgMjMzLjEyKSBzY2FsZSgxLjYxMDA2KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzc2YjNlMSIvPjxzdG9wIG9mZnNldD0iLjUiIHN0b3AtY29sb3I9IiM0Mzc3YmIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxZjNiNzciLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibG9nb3NTb2xpZGpzSWNvbjIiIHgxPSIxOC40IiB4Mj0iMTQ0LjMiIHkxPSI2NC4yIiB5Mj0iMTQ5LjgiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ5LjU2IDIzMy4xMikgc2NhbGUoMS42MTAwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMzMTVhYTkiLz48c3RvcCBvZmZzZXQ9Ii41IiBzdG9wLWNvbG9yPSIjNTE4YWM4Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMzE1YWE5Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImxvZ29zU29saWRqc0ljb24zIiB4MT0iNzUuMiIgeDI9IjI0LjQiIHkxPSI3NC41IiB5Mj0iMjYwLjgiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ5LjU2IDIzMy4xMikgc2NhbGUoMS42MTAwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0Mzc3YmIiLz48c3RvcCBvZmZzZXQ9Ii41IiBzdG9wLWNvbG9yPSIjMWEzMzZiIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMWEzMzZiIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzc2YjNlMSIgZD0iTTUxMiAyODkuNDcycy04NS4zMzMtNjIuNzkxLTE1MS4zNDctNDguMzAxbC00LjgyOSAxLjYxYy05LjY2IDMuMjIxLTE3LjcxMSA4LjA1LTIyLjU0MiAxNC40OTFsLTMuMjE5IDQuODI5bC0yNC4xNTIgNDEuODYybDQxLjg2MyA4LjA1MWMxNy43MSAxMS4yNyA0MC4yNTEgMTYuMTAxIDYxLjE4MiAxMS4yN2w3NC4wNjMgMTQu