@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
63 lines (62 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const MultiButton_styles = require("./MultiButton.styles.cjs");
const HvMultiButton = (props) => {
const {
className,
children,
classes: classesProp,
disabled = false,
vertical = false,
variant = "secondarySubtle",
size,
split,
...others
} = uikitReactUtils.useDefaultProps("HvMultiButton", props);
const { classes, cx } = MultiButton_styles.useClasses(classesProp);
const buttons = React.useMemo(() => {
const btns = [];
React.Children.forEach(children, (child) => {
if (child && React.isValidElement(child)) {
btns.push(child);
}
});
return btns;
}, [children]);
return /* @__PURE__ */ jsxRuntime.jsx(
"div",
{
className: cx(
classes.root,
{
[classes.multiple]: !split,
[classes.vertical]: !split && vertical,
[classes[variant]]: variant,
// TODO - remove in v6
[classes.splitGroup]: split,
[classes.splitGroupDisabled]: split && disabled
},
className
),
...others,
children: buttons.map((child, index) => {
return React.cloneElement(child, {
key: index,
variant,
disabled: disabled || child.props.disabled,
size,
className: cx(classes.button, child.props.className, {
[classes.firstButton]: index === 0,
[classes.lastButton]: index === buttons.length - 1,
[classes.selected]: child.props.selected
})
});
})
}
);
};
exports.multiButtonClasses = MultiButton_styles.staticClasses;
exports.HvMultiButton = HvMultiButton;