@payfit/unity-components
Version:
33 lines (32 loc) • 1.42 kB
JavaScript
import { useResponsiveValue as e } from "../../hooks/use-responsive-value.js";
import { Children as t, forwardRef as n, isValidElement as r } from "react";
import { jsx as i } from "react/jsx-runtime";
import { DisclosureGroup as a } from "react-aria-components/DisclosureGroup";
//#region src/components/collapsible-group/CollapsibleGroup.tsx
var o = (e) => {
let n = /* @__PURE__ */ new Set();
return t.forEach(e, (e) => {
r(e) && e.props.isDisabled === !0 && e.props.id != null && n.add(e.props.id);
}), n;
}, s = (e, t) => {
if (e !== void 0) return new Set([...e].filter((e) => !t.has(e)));
}, c = ({ defaultExpandedKeys: e, disabledKeys: t, expandedKeys: n, isDisabled: r }) => n === void 0 ? { defaultExpandedKeys: r ? [] : s(e, t) } : { expandedKeys: r ? /* @__PURE__ */ new Set() : s(n, t) }, l = n(({ children: t, gap: n, isDisabled: r, defaultExpandedKeys: s, expandedKeys: l, ...u }, d) => {
let f = e(n), p = c({
defaultExpandedKeys: s,
disabledKeys: typeof t == "function" ? /* @__PURE__ */ new Set() : o(t),
expandedKeys: l,
isDisabled: r
});
return /* @__PURE__ */ i(a, {
ref: d,
className: "uy:flex uy:flex-col uy:gap-(--uy-collapsible-group-gap)",
style: { "--uy-collapsible-group-gap": `var(--uy-spacing-${f ? f.replace("$", "") : 0})` },
isDisabled: r,
...p,
...u,
children: t
});
});
l.displayName = "CollapsibleGroup";
//#endregion
export { l as CollapsibleGroup };