UNPKG

@batijs/elements

Version:

BatiJS website as Web Components

1,374 lines 317 kB
function Jo(e) { return Object.keys(e).reduce((i, o) => { const r = e[o]; return i[o] = Object.assign({}, r), Xi(r.value) && !er(r.value) && !Array.isArray(r.value) && (i[o].value = Object.assign({}, r.value)), Array.isArray(r.value) && (i[o].value = r.value.slice(0)), i; }, {}); } function $o(e) { return e ? Object.keys(e).reduce((i, o) => { const r = e[o]; return i[o] = Xi(r) && "value" in r ? r : { value: r }, i[o].attribute || (i[o].attribute = qo(o)), i[o].parse = "parse" in i[o] ? i[o].parse : typeof i[o].value != "string", i; }, {}) : {}; } function Xo(e) { return Object.keys(e).reduce((i, o) => (i[o] = e[o].value, i), {}); } function Ko(e, t) { const i = Jo(t); return Object.keys(t).forEach((r) => { const n = i[r], a = e.getAttribute(n.attribute), l = e[r]; a != null && (n.value = n.parse ? $i(a) : a), l != null && (n.value = Array.isArray(l) ? l.slice(0) : l), n.reflect && Ni(e, n.attribute, n.value, !!n.parse), Object.defineProperty(e, r, { get() { return n.value; }, set(s) { const c = n.value; n.value = s, n.reflect && Ni(this, n.attribute, n.value, !!n.parse); for (let M = 0, u = this.__propertyChangedCallbacks.length; M < u; M++) this.__propertyChangedCallbacks[M](r, s, c); }, enumerable: !0, configurable: !0 }); }), i; } function $i(e) { if (e) try { return JSON.parse(e); } catch { return e; } } function Ni(e, t, i, o) { if (i == null || i === !1) return e.removeAttribute(t); let r = o ? JSON.stringify(i) : i; e.__updating[t] = !0, r === "true" && (r = ""), e.setAttribute(t, r), Promise.resolve().then(() => delete e.__updating[t]); } function qo(e) { return e.replace(/\.?([A-Z]+)/g, (t, i) => "-" + i.toLowerCase()).replace("_", "-").replace(/^-/, ""); } function Xi(e) { return e != null && (typeof e == "object" || typeof e == "function"); } function er(e) { return Object.prototype.toString.call(e) === "[object Function]"; } function tr(e) { return typeof e == "function" && e.toString().indexOf("class") === 0; } let vt; function ir(e, t) { const i = Object.keys(t); return class extends e { static get observedAttributes() { return i.map((r) => t[r].attribute); } constructor() { super(), this.__initialized = !1, this.__released = !1, this.__releaseCallbacks = [], this.__propertyChangedCallbacks = [], this.__updating = {}, this.props = {}; for (let r of i) this[r] = void 0; } connectedCallback() { if (this.__initialized) return; this.__releaseCallbacks = [], this.__propertyChangedCallbacks = [], this.__updating = {}, this.props = Ko(this, t); const r = Xo(this.props), n = this.Component, a = vt; try { vt = this, this.__initialized = !0, tr(n) ? new n(r, { element: this }) : n(r, { element: this }); } finally { vt = a; } } async disconnectedCallback() { if (await Promise.resolve(), this.isConnected) return; this.__propertyChangedCallbacks.length = 0; let r = null; for (; r = this.__releaseCallbacks.pop(); ) r(this); delete this.__initialized, this.__released = !0; } attributeChangedCallback(r, n, a) { if (this.__initialized && !this.__updating[r] && (r = this.lookupProp(r), r in t)) { if (a == null && !this[r]) return; this[r] = t[r].parse ? $i(a) : a; } } lookupProp(r) { if (t) return i.find((n) => r === n || r === t[n].attribute); } get renderRoot() { return this.shadowRoot || this.attachShadow({ mode: "open" }); } addReleaseCallback(r) { this.__releaseCallbacks.push(r); } addPropertyChangedCallback(r) { this.__propertyChangedCallbacks.push(r); } }; } function or(e, t = {}, i = {}) { const { BaseElement: o = HTMLElement, extension: r, customElements: n = window.customElements } = i; return (a) => { let l = n.get(e); return l ? (l.prototype.Component = a, l) : (l = ir(o, $o(t)), l.prototype.Component = a, l.prototype.registeredTag = e, n.define(e, l, r), l); }; } const rr = !1, nr = (e, t) => e === t, $ = /* @__PURE__ */ Symbol("solid-proxy"), Ki = typeof Proxy == "function", Rt = /* @__PURE__ */ Symbol("solid-track"), at = { equals: nr }; let qi = ro; const se = 1, lt = 2, eo = { owned: null, cleanups: null, context: null, owner: null }, St = {}; var S = null; let Et = null, ar = null, k = null, P = null, ae = null, Dt = 0; function it(e, t) { const i = k, o = S, r = e.length === 0, n = t === void 0 ? o : t, a = r ? eo : { owned: null, cleanups: null, context: n ? n.context : null, owner: n }, l = r ? e : () => e(() => U(() => Re(a))); S = a, k = null; try { return le(l, !0); } finally { k = i, S = o; } } function Q(e, t) { t = t ? Object.assign({}, at, t) : at; const i = { value: e, observers: null, observerSlots: null, comparator: t.equals || void 0 }, o = (r) => (typeof r == "function" && (r = r(i.value)), oo(i, r)); return [io.bind(i), o]; } function lr(e, t, i) { const o = pt(e, t, !0, se); Ee(o); } function E(e, t, i) { const o = pt(e, t, !1, se); Ee(o); } function be(e, t, i) { qi = Nr; const o = pt(e, t, !1, se); o.user = !0, ae ? ae.push(o) : Ee(o); } function m(e, t, i) { i = i ? Object.assign({}, at, i) : at; const o = pt(e, t, !0, 0); return o.observers = null, o.observerSlots = null, o.comparator = i.equals || void 0, Ee(o), io.bind(o); } function sr(e) { return e && typeof e == "object" && "then" in e; } function cr(e, t, i) { let o, r, n; typeof t == "function" ? (o = e, r = t, n = i || {}) : (o = !0, r = e, n = t || {}); let a = null, l = St, s = !1, c = "initialValue" in n, M = typeof o == "function" && m(o); const u = /* @__PURE__ */ new Set(), [g, d] = (n.storage || Q)(n.initialValue), [I, N] = Q(void 0), [w, j] = Q(void 0, { equals: !1 }), [p, b] = Q(c ? "ready" : "unresolved"); function x(T, z, A, O) { return a === T && (a = null, O !== void 0 && (c = !0), (T === l || z === l) && n.onHydrated && queueMicrotask(() => n.onHydrated(O, { value: z })), l = St, L(z, A)), z; } function L(T, z) { le(() => { z === void 0 && d(() => T), b(z !== void 0 ? "errored" : c ? "ready" : "unresolved"), N(z); for (const A of u.keys()) A.decrement(); u.clear(); }, !1); } function v() { const T = gr, z = g(), A = I(); if (A !== void 0 && !a) throw A; return k && k.user, z; } function h(T = !0) { if (T !== !1 && s) return; s = !1; const z = M ? M() : o; if (z == null || z === !1) { x(a, U(g)); return; } let A; const O = l !== St ? l : U(() => { try { return r(z, { value: g(), refetching: T }); } catch (Y) { A = Y; } }); if (A !== void 0) { x(a, void 0, ot(A), z); return; } else if (!sr(O)) return x(a, O, void 0, z), O; return a = O, "v" in O ? (O.s === 1 ? x(a, O.v, void 0, z) : x(a, void 0, ot(O.v), z), O) : (s = !0, queueMicrotask(() => s = !1), le(() => { b(c ? "refreshing" : "pending"), j(); }, !1), O.then((Y) => x(O, Y, void 0, z), (Y) => x(O, void 0, ot(Y), z))); } Object.defineProperties(v, { state: { get: () => p() }, error: { get: () => I() }, loading: { get() { const T = p(); return T === "pending" || T === "refreshing"; } }, latest: { get() { if (!c) return v(); const T = I(); if (T && !a) throw T; return g(); } } }); let C = S; return M ? lr(() => (C = S, h(!1))) : h(!1), [v, { refetch: (T) => ur(C, () => h(T)), mutate: d }]; } function Wt(e) { return le(e, !1); } function U(e) { if (k === null) return e(); const t = k; k = null; try { return e(); } finally { k = t; } } function Mr(e, t, i) { const o = Array.isArray(e); let r; return (n) => { let a; if (o) { a = Array(e.length); for (let s = 0; s < e.length; s++) a[s] = e[s](); } else a = e(); const l = U(() => t(a, r, n)); return r = a, l; }; } function yt(e) { be(() => U(e)); } function $e(e) { return S === null || (S.cleanups === null ? S.cleanups = [e] : S.cleanups.push(e)), e; } function Bt() { return k; } function ur(e, t) { const i = S, o = k; S = e, k = null; try { return le(t, !0); } catch (r) { ii(r); } finally { S = i, k = o; } } const [oc, rc] = /* @__PURE__ */ Q(!1); function bt(e, t) { const i = /* @__PURE__ */ Symbol("context"); return { id: i, Provider: jr(i), defaultValue: e }; } function G(e) { let t; return S && S.context && (t = S.context[e.id]) !== void 0 ? t : e.defaultValue; } function to(e) { const t = m(e), i = m(() => Ht(t())); return i.toArray = () => { const o = i(); return Array.isArray(o) ? o : o != null ? [o] : []; }, i; } let gr; function io() { if (this.sources && this.state) if (this.state === se) Ee(this); else { const e = P; P = null, le(() => ct(this), !1), P = 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 oo(e, t, i) { let o = e.value; return (!e.comparator || !e.comparator(o, t)) && (e.value = t, e.observers && e.observers.length && le(() => { for (let r = 0; r < e.observers.length; r += 1) { const n = e.observers[r], a = Et && Et.running; a && Et.disposed.has(n), (a ? !n.tState : !n.state) && (n.pure ? P.push(n) : ae.push(n), n.observers && no(n)), a || (n.state = se); } if (P.length > 1e6) throw P = [], new Error(); }, !1)), t; } function Ee(e) { if (!e.fn) return; Re(e); const t = Dt; dr(e, e.value, t); } function dr(e, t, i) { let o; const r = S, n = k; k = S = e; try { o = e.fn(t); } catch (a) { return e.pure && (e.state = se, e.owned && e.owned.forEach(Re), e.owned = null), e.updatedAt = i + 1, ii(a); } finally { k = n, S = r; } (!e.updatedAt || e.updatedAt <= i) && (e.updatedAt != null && "observers" in e ? oo(e, o) : e.value = o, e.updatedAt = i); } function pt(e, t, i, o = se, r) { const n = { fn: e, state: o, 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 !== eo && (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 && U(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 === se) Ee(e); else if (e.state === lt) { const o = P; P = null, le(() => ct(e, t[0]), !1), P = o; } } function le(e, t) { if (P) return e(); let i = !1; t || (P = []), ae ? i = !0 : ae = [], Dt++; try { const o = e(); return Ir(i), o; } catch (o) { i || (ae = null), P = null, ii(o); } } function Ir(e) { if (P && (ro(P), P = null), e) return; const t = ae; ae = null, t.length && le(() => qi(t), !1); } function ro(e) { for (let t = 0; t < e.length; t++) st(e[t]); } function Nr(e) { let t, i = 0; for (t = 0; t < e.length; t++) { const o = e[t]; o.user ? e[i++] = o : st(o); } 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 o = e.sources[i]; if (o.sources) { const r = o.state; r === se ? o !== t && (!o.updatedAt || o.updatedAt < Dt) && st(o) : r === lt && ct(o, t); } } } function no(e) { for (let t = 0; t < e.observers.length; t += 1) { const i = e.observers[t]; i.state || (i.state = lt, i.pure ? P.push(i) : ae.push(i), i.observers && no(i)); } } function Re(e) { let t; if (e.sources) for (; e.sources.length; ) { const i = e.sources.pop(), o = e.sourceSlots.pop(), r = i.observers; if (r && r.length) { const n = r.pop(), a = i.observerSlots.pop(); o < r.length && (n.sourceSlots[a] = o, r[o] = n, i.observerSlots[o] = a); } } if (e.tOwned) { for (t = e.tOwned.length - 1; t >= 0; t--) Re(e.tOwned[t]); delete e.tOwned; } if (e.owned) { for (t = e.owned.length - 1; t >= 0; t--) Re(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 ot(e) { return e instanceof Error ? e : new Error(typeof e == "string" ? e : "Unknown error", { cause: e }); } function ii(e, t = S) { throw ot(e); } function Ht(e) { if (typeof e == "function" && !e.length) return Ht(e()); if (Array.isArray(e)) { const t = []; for (let i = 0; i < e.length; i++) { const o = Ht(e[i]); Array.isArray(o) ? t.push.apply(t, o) : t.push(o); } return t; } return e; } function jr(e, t) { return function(o) { let r; return E(() => r = U(() => (S.context = { ...S.context, [e]: o.value }, to(() => o.children))), void 0), r; }; } const Dr = /* @__PURE__ */ Symbol("fallback"); function ji(e) { for (let t = 0; t < e.length; t++) e[t](); } function yr(e, t, i = {}) { let o = [], r = [], n = [], a = 0, l = t.length > 1 ? [] : null; return $e(() => ji(n)), () => { let s = e() || [], c = s.length, M, u; return s[Rt], U(() => { let d, I, N, w, j, p, b, x, L; if (c === 0) a !== 0 && (ji(n), n = [], o = [], r = [], a = 0, l && (l = [])), i.fallback && (o = [Dr], r[0] = it((v) => (n[0] = v, i.fallback())), a = 1); else if (a === 0) { for (r = new Array(c), u = 0; u < c; u++) o[u] = s[u], r[u] = it(g); a = c; } else { for (N = new Array(c), w = new Array(c), l && (j = new Array(c)), p = 0, b = Math.min(a, c); p < b && o[p] === s[p]; p++) ; for (b = a - 1, x = c - 1; b >= p && x >= p && o[b] === s[x]; b--, x--) N[x] = r[b], w[x] = n[b], l && (j[x] = l[b]); for (d = /* @__PURE__ */ new Map(), I = new Array(x + 1), u = x; u >= p; u--) L = s[u], M = d.get(L), I[u] = M === void 0 ? -1 : M, d.set(L, u); for (M = p; M <= b; M++) L = o[M], u = d.get(L), u !== void 0 && u !== -1 ? (N[u] = r[M], w[u] = n[M], l && (j[u] = l[M]), u = I[u], d.set(L, u)) : n[M](); for (u = p; u < c; u++) u in N ? (r[u] = N[u], n[u] = w[u], l && (l[u] = j[u], l[u](u))) : r[u] = it(g); r = r.slice(0, a = c), o = s.slice(0); } return r; }); 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 U(() => e(t || {})); } function qe() { return !0; } const _t = { get(e, t, i) { return t === $ ? i : e.get(t); }, has(e, t) { return t === $ ? !0 : e.has(t); }, set: qe, deleteProperty: qe, getOwnPropertyDescriptor(e, t) { return { configurable: !0, enumerable: !0, get() { return e.get(t); }, set: qe, deleteProperty: qe }; }, ownKeys(e) { return e.keys(); } }; function Ct(e) { return (e = typeof e == "function" ? e() : e) ? e : {}; } function br() { for (let e = 0, t = this.length; e < t; ++e) { const i = this[e](); if (i !== void 0) return i; } } function ao(...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, m(l)) : l; } if (Ki && t) return new Proxy({ get(a) { for (let l = e.length - 1; l >= 0; l--) { const s = Ct(e[l])[a]; if (s !== void 0) return s; } }, has(a) { for (let l = e.length - 1; l >= 0; l--) if (a in Ct(e[l])) return !0; return !1; }, keys() { const a = []; for (let l = 0; l < e.length; l++) a.push(...Object.keys(Ct(e[l]))); return [...new Set(a)]; } }, _t); const i = {}, o = /* @__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 (!o[M]) o[M] = u.get ? { enumerable: !0, configurable: !0, get: br.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 r = {}, n = Object.keys(o); for (let a = n.length - 1; a >= 0; a--) { const l = n[a], s = o[l]; s && s.get ? Object.defineProperty(r, l, s) : r[l] = s ? s.value : void 0; } return r; } function lo(e, ...t) { const i = t.length; if (Ki && $ in e) { const r = i > 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); } }, _t)); return n.push(new Proxy({ get(a) { return r.includes(a) ? void 0 : e[a]; }, has(a) { return r.includes(a) ? !1 : a in e; }, keys() { return Object.keys(e).filter((a) => !r.includes(a)); } }, _t)), n; } const o = []; for (let r = 0; r <= i; r++) o[r] = {}; for (const r of Object.getOwnPropertyNames(e)) { let n = i; for (let s = 0; s < t.length; s++) if (t[s].includes(r)) { n = s; break; } const a = Object.getOwnPropertyDescriptor(e, r); !a.get && !a.set && a.enumerable && a.writable && a.configurable ? o[n][r] = a.value : Object.defineProperty(o[n], r, a); } return o; } const so = (e) => `Stale read from <${e}>.`; function de(e) { const t = "fallback" in e && { fallback: () => e.fallback }; return m(yr(() => e.each, e.children, t || void 0)); } function R(e) { const t = e.keyed, i = m(() => e.when, void 0, void 0), o = t ? i : m(i, void 0, { equals: (r, n) => !r == !n }); return m(() => { const r = o(); if (r) { const n = e.children; return typeof n == "function" && n.length > 0 ? U(() => n(t ? r : () => { if (!U(o)) throw so("Show"); return i(); })) : n; } return e.fallback; }, void 0, void 0); } function pr(e) { const t = to(() => e.children), i = m(() => { const o = t(), r = Array.isArray(o) ? o : [o]; let n = () => { }; for (let a = 0; a < r.length; a++) { const l = a, s = r[a], c = n, M = m(() => c() ? void 0 : s.when, void 0, void 0), u = s.keyed ? M : m(M, void 0, { equals: (g, d) => !g == !d }); n = () => c() || (u() ? [l, M, s] : void 0); } return n; }); return m(() => { const o = i()(); if (!o) return e.fallback; const [r, n, a] = o, l = a.children; return typeof l == "function" && l.length > 0 ? U(() => l(a.keyed ? n() : () => { if (U(i)()?.[0] !== r) throw so("Match"); return n(); })) : l; }, void 0, void 0); } function Di(e) { return e; } const xr = [ "allowfullscreen", "async", "alpha", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "inert", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "seamless", "selected", "adauctionheaders", "browsingtopics", "credentialless", "defaultchecked", "defaultmuted", "defaultselected", "defer", "disablepictureinpicture", "disableremoteplayback", "preservespitch", "shadowrootclonable", "shadowrootcustomelementregistry", "shadowrootdelegatesfocus", "shadowrootserializable", "sharedstoragewritable" ], wr = /* @__PURE__ */ new Set([ "className", "value", "readOnly", "noValidate", "formNoValidate", "isMap", "noModule", "playsInline", "adAuctionHeaders", "allowFullscreen", "browsingTopics", "defaultChecked", "defaultMuted", "defaultSelected", "disablePictureInPicture", "disableRemotePlayback", "preservesPitch", "shadowRootClonable", "shadowRootCustomElementRegistry", "shadowRootDelegatesFocus", "shadowRootSerializable", "sharedStorageWritable", ...xr ]), Lr = /* @__PURE__ */ new Set(["innerHTML", "textContent", "innerText", "children"]), fr = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), { className: "class", htmlFor: "for" }), Tr = /* @__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 }, adauctionheaders: { $: "adAuctionHeaders", IFRAME: 1 }, allowfullscreen: { $: "allowFullscreen", IFRAME: 1 }, browsingtopics: { $: "browsingTopics", IMG: 1 }, defaultchecked: { $: "defaultChecked", INPUT: 1 }, defaultmuted: { $: "defaultMuted", AUDIO: 1, VIDEO: 1 }, defaultselected: { $: "defaultSelected", OPTION: 1 }, disablepictureinpicture: { $: "disablePictureInPicture", VIDEO: 1 }, disableremoteplayback: { $: "disableRemotePlayback", AUDIO: 1, VIDEO: 1 }, preservespitch: { $: "preservesPitch", AUDIO: 1, VIDEO: 1 }, shadowrootclonable: { $: "shadowRootClonable", TEMPLATE: 1 }, shadowrootdelegatesfocus: { $: "shadowRootDelegatesFocus", TEMPLATE: 1 }, shadowrootserializable: { $: "shadowRootSerializable", TEMPLATE: 1 }, sharedstoragewritable: { $: "sharedStorageWritable", IFRAME: 1, IMG: 1 } }); function hr(e, t) { const i = Tr[e]; return typeof i == "object" ? i[t] ? i.$ : void 0 : i; } const Ar = /* @__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"]), mr = /* @__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" ]), zr = { xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace" }, De = (e) => m(() => e()); function vr(e, t, i) { let o = i.length, r = t.length, n = o, a = 0, l = 0, s = t[r - 1].nextSibling, c = null; for (; a < r || l < n; ) { if (t[a] === i[l]) { a++, l++; continue; } for (; t[r - 1] === i[n - 1]; ) r--, n--; if (r === a) { const M = n < o ? l ? i[l - 1].nextSibling : i[n - l] : s; for (; l < n; ) e.insertBefore(i[l++], M); } else if (n === l) for (; a < r; ) (!c || !c.has(t[a])) && t[a].remove(), a++; else if (t[a] === i[n - 1] && i[l] === t[r - 1]) { const M = t[--r].nextSibling; e.insertBefore(i[l++], t[a++].nextSibling), e.insertBefore(i[--n], M), t[r] = 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 < r && 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 f(e, t, i, o) { let r; const n = () => { const l = document.createElement("template"); return l.innerHTML = e, l.content.firstChild; }, a = () => (r || (r = 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 o = 0, r = e.length; o < r; o++) { const n = e[o]; i.has(n) || (i.add(n), t.addEventListener(n, Qr)); } } function Z(e, t, i) { i == null ? e.removeAttribute(t) : e.setAttribute(t, i); } function Sr(e, t, i, o) { o == null ? e.removeAttributeNS(t, i) : e.setAttributeNS(t, i, o); } function Er(e, t, i) { i ? e.setAttribute(t, "") : e.removeAttribute(t); } function q(e, t) { t == null ? e.removeAttribute("class") : e.className = t; } function Vt(e, t, i, o) { if (o) Array.isArray(i) ? (e[`$$${t}`] = i[0], e[`$$${t}Data`] = i[1]) : e[`$$${t}`] = i; else if (Array.isArray(i)) { const r = i[0]; e.addEventListener(t, i[0] = (n) => r.call(e, i[1], n)); } else e.addEventListener(t, i, typeof i != "function" && i); } function pe(e, t, i = {}) { const o = Object.keys(t || {}), r = Object.keys(i); let n, a; for (n = 0, a = r.length; n < a; n++) { const l = r[n]; !l || l === "undefined" || t[l] || (bi(e, l, !1), delete i[l]); } for (n = 0, a = o.length; n < a; n++) { const l = o[n], s = !!t[l]; !l || l === "undefined" || i[l] === s || !s || (bi(e, l, !0), i[l] = s); } return i; } function co(e, t, i) { if (!t) return i ? Z(e, "style") : t; const o = e.style; if (typeof t == "string") return o.cssText = t; typeof i == "string" && (o.cssText = i = void 0), i || (i = {}), t || (t = {}); let r, n; for (n in i) t[n] == null && o.removeProperty(n), delete i[n]; for (n in t) r = t[n], r !== i[n] && (o.setProperty(n, r), i[n] = r); return i; } function Cr(e, t, i) { i != null ? e.style.setProperty(t, i) : e.style.removeProperty(t); } function Or(e, t = {}, i, o) { const r = {}; return E(() => r.children = We(e, t.children, r.children)), E(() => typeof t.ref == "function" && ye(t.ref, e)), E(() => kr(e, t, i, !0, r, !0)), r; } function ye(e, t, i) { return U(() => e(t, i)); } function y(e, t, i, o) { if (i !== void 0 && !o && (o = []), typeof t != "function") return We(e, t, o, i); E((r) => We(e, t(), r, i), o); } function kr(e, t, i, o, r = {}, n = !1) { t || (t = {}); for (const a in r) if (!(a in t)) { if (a === "children") continue; r[a] = pi(e, a, null, r[a], i, n, t); } for (const a in t) { if (a === "children") continue; const l = t[a]; r[a] = pi(e, a, l, r[a], i, n, t); } } function Yr(e) { return e.toLowerCase().replace(/-([a-z])/g, (t, i) => i.toUpperCase()); } function bi(e, t, i) { const o = t.trim().split(/\s+/); for (let r = 0, n = o.length; r < n; r++) e.classList.toggle(o[r], i); } function pi(e, t, i, o, r, n, a) { let l, s, c, M, u; if (t === "style") return co(e, i, o); if (t === "classList") return pe(e, i, o); if (i === o) return o; if (t === "ref") n || i(e); else if (t.slice(0, 3) === "on:") { const g = t.slice(3); o && e.removeEventListener(g, o, typeof o != "function" && o), i && e.addEventListener(g, i, typeof i != "function" && i); } else if (t.slice(0, 10) === "oncapture:") { const g = t.slice(10); o && e.removeEventListener(g, o, !0), i && e.addEventListener(g, i, !0); } else if (t.slice(0, 2) === "on") { const g = t.slice(2).toLowerCase(), d = Ar.has(g); if (!d && o) { const I = Array.isArray(o) ? o[0] : o; e.removeEventListener(g, I); } (d || i) && (Vt(e, g, i, d), d && Ce([g])); } else if (t.slice(0, 5) === "attr:") Z(e, t.slice(5), i); else if (t.slice(0, 5) === "bool:") Er(e, t.slice(5), i); else if ((u = t.slice(0, 5) === "prop:") || (c = Lr.has(t)) || !r && ((M = hr(t, e.tagName)) || (s = wr.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[Yr(t)] = i : e[M || t] = i; else { const g = r && t.indexOf(":") > -1 && zr[t.split(":")[0]]; g ? Sr(e, g, t, i) : Z(e, fr[t] || t, i); } return i; } function Qr(e) { let t = e.target; const i = `$$${e.type}`, o = e.target, r = 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 === r) break; } } else l(); n(o); } function We(e, t, i, o, r) { for (; typeof i == "function"; ) i = i(); if (t === i) return i; const n = typeof t, a = o !== 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 = Le(e, i, o, l); } else i !== "" && typeof i == "string" ? i = e.firstChild.data = t : i = e.textContent = t; } else if (t == null || n === "boolean") i = Le(e, i, o); else { if (n === "function") return E(() => { let l = t(); for (; typeof l == "function"; ) l = l(); i = We(e, l, i, o); }), () => i; if (Array.isArray(t)) { const l = [], s = i && Array.isArray(i); if (Ft(l, t, i, r)) return E(() => i = We(e, l, i, o, !0)), () => i; if (l.length === 0) { if (i = Le(e, i, o), a) return i; } else s ? i.length === 0 ? xi(e, l, o) : vr(e, i, l) : (i && Le(e), xi(e, l)); i = l; } else if (t.nodeType) { if (Array.isArray(i)) { if (a) return i = Le(e, i, o, t); Le(e, i, null, t); } else i == null || i === "" || !e.firstChild ? e.appendChild(t) : e.replaceChild(t, e.firstChild); i = t; } } return i; } function Ft(e, t, i, o) { let r = !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)) r = Ft(e, l, s) || r; else if (c === "function") if (o) { for (; typeof l == "function"; ) l = l(); r = Ft(e, Array.isArray(l) ? l : [l], Array.isArray(s) ? s : [s]) || r; } else e.push(l), r = !0; else { const M = String(l); s && s.nodeType === 3 && s.data === M ? e.push(s) : e.push(document.createTextNode(M)); } } return r; } function xi(e, t, i = null) { for (let o = 0, r = t.length; o < r; o++) e.insertBefore(t[o], i); } function Le(e, t, i, o) { if (i === void 0) return e.textContent = ""; const r = o || document.createTextNode(""); if (t.length) { let n = !1; for (let a = t.length - 1; a >= 0; a--) { const l = t[a]; if (r !== l) { const s = l.parentNode === e; !n && !a ? s ? e.replaceChild(r, l) : e.insertBefore(r, i) : s && l.remove(); } else n = !0; } } else e.insertBefore(r, i); return [r]; } const Ur = "http://www.w3.org/2000/svg"; function Zr(e, t = !1, i = void 0) { return t ? document.createElementNS(Ur, e) : document.createElement(e, { is: i }); } function Pr(e, t) { const i = m(e); return m(() => { const o = i(); switch (typeof o) { case "function": return U(() => o(t)); case "string": const r = mr.has(o), n = Zr(o, r, U(() => t.is)); return Or(n, t, r), n; } }); } function oi(e) { const [, t] = lo(e, ["component"]); return Pr(() => e.component, t); } function Gr(e) { const t = Object.keys(e), i = {}; for (let o = 0; o < t.length; o++) { const [r, n] = Q(e[t[o]]); Object.defineProperty(i, t[o], { get: r, set(a) { n(() => a); } }); } return i; } function Rr(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 Wr(e) { return (t, i) => { const { element: o } = i; return it((r) => { const n = Gr(t); o.addPropertyChangedCallback((l, s) => n[l] = s), o.addReleaseCallback(() => { o.renderRoot.textContent = "", r(); }); const a = e(n, i); return y(o.renderRoot, a); }, Rr(o)); }; } function Br(e, t, i) { return arguments.length === 2 && (i = t, t = {}), or(e, t)(Wr(i)); } var xt = [ // 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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjA