// components/Menu.js import { h, each } from "sigpro"; export const Menu = (props, children) => { children === undefined && (children = props, props = {}); return h("ul", { ...props, class: `menu ${props.class ?? ''}` }, children); }; export const MenuItems = (props) => { const { items, keyFn = (item, idx) => item.id ?? idx } = props; const itemsSignal = typeof items === "function" ? items : () => items || []; const renderItem = (item) => { if (item.children) { return h("li", {}, [ h("details", {}, [ h("summary", {}, item.label), h("ul", {}, MenuItems({ items: item.children })) ]) ]); } return h("li", {}, h("a", { href: item.href, onclick: item.onclick ? (e) => { if (!item.href) e.preventDefault(); item.onclick(e); } : null }, item.label)); }; return each(itemsSignal, renderItem, keyFn); };