@batijs/elements
Version:
BatiJS website as Web Components
1,374 lines • 317 kB
JavaScript
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