UNPKG

@primer/react-brand

Version:

Primer Brand is a GitHub's design system for creating React-based marketing websites and digital experiences.

32 lines (31 loc) 1.24 kB
import e from "../node_modules/clsx/dist/clsx.js"; import { Button as t } from "../Button/Button.js"; import { ActionMenu as n } from "../ActionMenu/ActionMenu.js"; import r from "./ButtonGroup.module.js"; import i, { forwardRef as a } from "react"; import { jsx as o } from "react/jsx-runtime"; //#region src/ButtonGroup/ButtonGroup.tsx var s = a(({ buttonSize: a = "medium", buttonsAs: s, className: c, children: l, ...u }, d) => { let f = i.Children.toArray(l).filter((e) => i.isValidElement(e) && (e.type === t || e.type === n)).slice(0, 2).map((e, r) => { let o = r === 0 ? "primary" : "secondary"; if (i.isValidElement(e) && e.type === t) return i.cloneElement(e, { size: e.props.size ?? a, as: e.props.as ?? s, variant: e.props.variant ?? o }); let c = e, l = a === "large" ? "medium" : a, u = i.Children.map(c.props.children, (e) => i.isValidElement(e) && e.type === n.Button ? i.cloneElement(e, { variant: e.props.variant ?? o }) : e); return i.cloneElement(c, { children: u, size: c.props.size ?? l }); }); return /* @__PURE__ */ o("section", { ref: d, ...u, className: e(r.ButtonGroup, c), children: f }); }); //#endregion export { s as ButtonGroup }; //# sourceMappingURL=ButtonGroup.js.map