@postenbring/hedwig-react
Version:
React components for [Hedwig Design System](https://github.com/bring/hedwig-design-system).
43 lines (41 loc) • 1.41 kB
JavaScript
import {
AccordionItemContext
} from "./chunk-YQFL5UN4.mjs";
import {
__objRest,
__spreadProps,
__spreadValues
} from "./chunk-YOSPWY5K.mjs";
// src/accordion/accordion-item.tsx
import { forwardRef, useId, useState } from "react";
import { clsx } from "@postenbring/hedwig-css/typed-classname";
import { jsx } from "react/jsx-runtime";
var AccordionItem = forwardRef(
(_a, ref) => {
var _b = _a, { children, defaultOpen, open: outerOpen, onOpenChange, className } = _b, rest = __objRest(_b, ["children", "defaultOpen", "open", "onOpenChange", "className"]);
const contentId = useId();
const [innerOpen, setInnerOpen] = useState(defaultOpen != null ? defaultOpen : false);
const open = outerOpen != null ? outerOpen : innerOpen;
const handleOpen = () => {
if (outerOpen !== void 0) {
onOpenChange && onOpenChange(!open);
} else {
setInnerOpen(!open);
}
};
return /* @__PURE__ */ jsx(
"div",
__spreadProps(__spreadValues({}, rest), {
"data-state": open ? "open" : "closed",
className: clsx("hds-accordion-item", className),
ref,
children: /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: { contentId, open, setOpen: handleOpen }, children })
})
);
}
);
AccordionItem.displayName = "Accordion.Item";
export {
AccordionItem
};
//# sourceMappingURL=chunk-EZVEYJOX.mjs.map