@fefade/react
Version:
Reusable React UI components powered by the fefade core system.
54 lines (53 loc) • 3.85 kB
JavaScript
import { jsxs as l, Fragment as u, jsx as a } from "react/jsx-runtime";
import { useState as f, useMemo as h, useEffect as x } from "react";
import { l as n } from "../../index-BPdhNdef.js";
import { Y as y } from "../../index-DdnSr7Dp.js";
import { ThemeConfigContext as k } from "../../contexts/ThemeConfigContext.js";
import "../../contexts/ToastContext.js";
const w = `body{background:var(--ff-bg);color:var(--ff-on-bg)}.text-primary{color:var(--ff-primary)!important}.text-on-primary{color:var(--ff-on-primary)!important}.text-secondary{color:var(--ff-secondary)!important}.text-on-secondary{color:var(--ff-on-secondary)!important}.text{color:var(--ff-on-bg)!important}.text-muted,.muted{color:var(--ff-muted)!important}.text-on-bg{color:var(--ff-on-bg)!important}.text-on-surface{color:var(--ff-on-surface)!important}.text-on-disabled{color:var(--ff-on-disabled)!important}.bg-primary{background:var(--ff-primary)!important}.bg-secondary{background:var(--ff-secondary)!important}.bg-page{background:var(--ff-bg)!important}.bg-surface{background:var(--ff-surface)!important}.bg-disabled{background:var(--ff-disabled)!important}.bg-0{background:none!important}.border{border-color:var(--ff-border)!important}.border-0{border:none!important;border-radius:0!important}.bg-success{background:var(--ff-success)!important}.bg-error,.bg-danger{background:var(--ff-error)!important}.bg-warning{background:var(--ff-warning)!important}.bg-info{background:var(--ff-info)!important}.hover-bg-success:hover{background:var(--ff-success)!important}.hover-bg-error:hover,.hover-bg-danger:hover{background:var(--ff-error)!important}.hover-bg-warning:hover{background:var(--ff-warning)!important}.hover-bg-info:hover{background:var(--ff-info)!important}.text-on-success{color:var(--ff-on-success)!important}.text-on-error,.text-on-danger{color:var(--ff-on-error)!important}.text-on-warning{color:var(--ff-on-warning)!important}.text-on-info{color:var(--ff-on-info)!important}.hover-text-on-success:hover{color:var(--ff-on-success)!important}.hover-text-on-error:hover,.hover-text-on-danger:hover{color:var(--ff-on-error)!important}.hover-text-on-warning:hover{color:var(--ff-on-warning)!important}.hover-text-on-info:hover{color:var(--ff-on-info)!important}.border-on-success{border-color:var(--ff-on-success)!important}.border-on-error,.border-on-danger{border-color:var(--ff-on-error)!important}.border-on-warning{border-color:var(--ff-on-warning)!important}.border-on-info{border-color:var(--ff-on-info)!important}.roundedFull,.rounded-full{border-radius:9999px!important}.hover-border-on-success:hover{border-color:var(--ff-on-success)!important}.hover-border-on-error:hover,.hover-border-on-danger:hover{border-color:var(--ff-on-error)!important}.hover-border-on-warning:hover{border-color:var(--ff-on-warning)!important}.hover-border-on-info:hover{border-color:var(--ff-on-info)!important}.w-full{width:100%!important}.clickable{cursor:pointer}
`;
function F({
children: i,
theme: c,
defaultThemeMode: d = "light"
}) {
const [e, s] = f("light"), [m, v] = f(
n.themeColors.light
), t = (r) => {
s(r), v(n.themeColors[r]);
}, o = y(), b = o.style(c, w), g = h(
() => ({
colors: n.themeColors[e],
mode: e,
toggle: () => {
o.toggleThemeMode((r) => {
t(r);
});
}
}),
[e, m]
);
function p() {
const r = o.storedTheme(d);
o.applyThemeMode(r), t(r);
}
return x(() => {
const r = o.createMetaElement();
return document.head.appendChild(r), p(), () => {
document.head.removeChild(r);
};
}, []), /* @__PURE__ */ l(u, { children: [
/* @__PURE__ */ a(
"div",
{
dangerouslySetInnerHTML: {
__html: b
}
}
),
/* @__PURE__ */ a(k.Provider, { value: g, children: i })
] });
}
export {
F as default
};