@konstructio/ui
Version:
A set of reusable and customizable React components built for konstruct.io
76 lines (75 loc) • 2.43 kB
JavaScript
import { r as v } from "./utils-COaoD3PI.js";
import { ThemeContext as h } from "./contexts/theme.context.js";
import { useEffect as a, useState as g } from "react";
import { jsx as l } from "react/jsx-runtime";
function s(r) {
for (var o = 1; o < arguments.length; o++) {
var t = arguments[o];
for (var i in t)
i !== "__proto__" && (r[i] = t[i]);
}
return r;
}
var C = {
read: function(r) {
return r[0] === '"' && (r = r.slice(1, -1)), r.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
},
write: function(r) {
return encodeURIComponent(r).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);
}
};
function d(r, o) {
function t(n, p, e) {
if (!(typeof document > "u")) {
e = s({}, o, e), typeof e.expires == "number" && (e.expires = new Date(Date.now() + e.expires * 864e5)), e.expires && (e.expires = e.expires.toUTCString()), n = encodeURIComponent(n).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
var c = "";
for (var f in e)
e[f] && (c += "; " + f, e[f] !== !0 && (c += "=" + e[f].split(";")[0]));
return document.cookie = n + "=" + r.write(p, n) + c;
}
}
function i(n) {
if (!(typeof document > "u" || arguments.length && !n)) {
for (var p = document.cookie ? document.cookie.split("; ") : [], e = {}, c = 0; c < p.length; c++) {
var f = p[c].split("="), m = f.slice(1).join("=");
try {
var u = decodeURIComponent(f[0]);
if (u in e || (e[u] = r.read(m, u)), n === u) break;
} catch {
}
}
return n ? e[n] : e;
}
}
return Object.create({
set: t,
get: i,
remove: function(n, p) {
t(n, "", s({}, p, { expires: -1 }));
},
withAttributes: function(n) {
return d(this.converter, s({}, this.attributes, n));
},
withConverter: function(n) {
return d(s({}, this.converter, n), this.attributes);
}
}, {
attributes: { value: Object.freeze(o) },
converter: { value: Object.freeze(r) }
});
}
var x = d(C, { path: "/" }), R = ({ children: r, theme: o }) => {
const [t, i] = g(() => o || (v ? x.get("konstruct-theme") : "kubefirst"));
return a(() => {
document.querySelector("body")?.setAttribute("data-theme", t);
}, [t]), /* @__PURE__ */ l(h.Provider, {
value: {
theme: t,
setTheme: i
},
children: r
});
};
export {
R as t
};