This commit is contained in:
22
components/Accordion.js
Normal file
22
components/Accordion.js
Normal file
@@ -0,0 +1,22 @@
|
||||
// components/Accordion.js
|
||||
import { h } from "sigpro";
|
||||
|
||||
export const Accordion = (props, children) => {
|
||||
const name = props.name || `accordion-${Math.random().toString(36).slice(2, 9)}`;
|
||||
|
||||
if (props.items && Array.isArray(props.items)) {
|
||||
return h("div", { class: `space-y-2 ${props.class ?? ''}` },
|
||||
props.items.map(item => h("div", { class: `collapse ${item.class ?? ''}` }, [
|
||||
h("input", { type: "radio", name, checked: item.open }),
|
||||
h("div", { class: "collapse-title text-xl font-medium" }, item.title),
|
||||
h("div", { class: "collapse-content" }, children)
|
||||
]))
|
||||
);
|
||||
}
|
||||
|
||||
return h("div", { class: `collapse ${props.class ?? ''}` }, [
|
||||
h("input", { type: "radio", name, checked: props.open }),
|
||||
h("div", { class: "collapse-title text-xl font-medium" }, props.title),
|
||||
h("div", { class: "collapse-content" }, children)
|
||||
]);
|
||||
};
|
||||
Reference in New Issue
Block a user