@lanaco/lnc-react-ui
Version:
React component library
60 lines (59 loc) • 1.77 kB
JavaScript
import { jsxs as D } from "react/jsx-runtime";
import { forwardRef as N, useState as O, Children as i, isValidElement as c, cloneElement as l } from "react";
import { s as R } from "./emotion-styled.browser.esm-DfbrHHed.js";
import { c as S, d as g, i as x } from "./utils-BUdHa0nB.js";
import { u as I } from "./emotion-element-f0de968e.browser.esm-CkCiQliQ.js";
import { u as T } from "./useUpdateEffect-CuYWz7EA.js";
const M = R.div`
color: ${(t) => !t.disabled && S(t.theme, "Accordion", "primary", "enabled", "text")};
background-color: transparent;
${(t) => g(t.theme, "Accordion", t.size, "enabled")};
${(t) => t.disabled === !0 ? x(t.theme) : ""}
`, V = N((t, f) => {
const {
expanded: a = !1,
disabled: n = !1,
change: u = () => {
},
size: r = "small",
className: C = "",
style: A = {},
children: m,
..._
} = t, y = {
theme: I(),
size: r,
style: A,
className: "lnc-ui-accordion " + C
}, [o, d] = O(a);
T(() => {
d(a);
}, [a]);
const p = (e) => {
u(!o, e), d(!o);
}, E = i.map(m, (e) => {
var s;
if (c(e) && (e.props.__TYPE__ == "ACCORDION_SUMMARY" || ((s = e == null ? void 0 : e.type) == null ? void 0 : s.displayName) === "ACCORDION_SUMMARY"))
return l(e, {
size: r,
onClick: p,
onExpand: p,
isExpanded: o,
disabled: n
});
}), b = i.map(m, (e) => {
var s;
if (c(e) && (e.props.__TYPE__ == "ACCORDION_DETAILS" || ((s = e == null ? void 0 : e.type) == null ? void 0 : s.displayName) === "ACCORDION_DETAILS"))
return l(e, {
size: r,
isExpanded: o
});
});
return /* @__PURE__ */ D(M, { ref: f, ...y, disabled: n, ..._, children: [
E,
b
] });
});
export {
V as default
};