UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

63 lines (62 loc) 1.89 kB
"use strict"; 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;