UNPKG

@payfit/unity-components

Version:

33 lines (32 loc) 1.42 kB
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 };