components / menu

menu.

action dropdown: a trigger opening a list of items, each running its onSelect. optional selected markers (e.g. a sort menu). behavior split into a headless useMenu hook.

installation
bunx @justin06lee/chrome@latest add menu
usage
Sort menu
const [sel, setSel] = useState("Newest");
<Menu
trigger={<><ListFilter /> Sort: {sel}</>}
label="Sort by"
items={opts.map((o) => ({
label: o, selected: sel === o, onSelect: () => setSel(o),
}))}
/>