UNPKG

adwaita-web

Version:

A GTK inspired toolkit designed to build awesome web apps

39 lines (38 loc) 1.13 kB
import clsx from "clsx"; import React, { useState } from "react"; import { Label } from "./Label"; import { Menu } from "./Menu"; import { MenuItem } from "./MenuItem"; import { Popover } from "./Popover"; function MenuBarButton({ label, children, className, ...rest }) { const [open, setOpen] = useState(false); return /* @__PURE__ */ React.createElement(Popover, { method: "click-controlled", className: "MenuBar__popover", placement: "bottom-start", arrow: false, delay: 50, content: children || /* @__PURE__ */ React.createElement(EmptyMenu, null), open, onClose: () => setOpen(false) }, /* @__PURE__ */ React.createElement("button", { className: clsx("MenuBar__button", className, { active: open }) + (open ? " active" : ""), onClick: () => setOpen(!open), ...rest }, label)); } function EmptyMenu() { return /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(MenuItem, null, /* @__PURE__ */ React.createElement(Label, { muted: true, italic: true, noSelect: true }, "(Empty menu)"))); } export { MenuBarButton };