@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
JavaScript
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