@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
51 lines (50 loc) • 1.86 kB
JavaScript
"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 icons = require("../icons.cjs");
const DropdownButton_styles = require("./DropdownButton.styles.cjs");
const Button = require("../Button/Button.cjs");
const HvDropdownButton = React.forwardRef(function HvDropdownButton2(props, ref) {
const {
className,
classes: classesProp,
placement = "bottom",
disabled,
open,
icon,
readOnly,
children: childrenProp,
variant,
...others
} = uikitReactUtils.useDefaultProps("HvDropdownButton", props);
const { classes, cx } = DropdownButton_styles.useClasses(classesProp, false);
const endIcon = !icon && /* @__PURE__ */ jsxRuntime.jsx(icons.HvIcon, { name: "CaretDown", size: "xs", rotate: open });
const children = childrenProp && typeof childrenProp === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.placeholder, children: childrenProp }) : childrenProp;
return /* @__PURE__ */ jsxRuntime.jsx(
Button.HvButton,
{
ref,
icon,
disabled: disabled || readOnly,
"data-popper-placement": placement,
className: cx(
classes.root,
{
[classes.open]: open,
[classes.disabled]: disabled,
[classes.readOnly]: readOnly
},
className
),
classes: { endIcon: classes.arrowContainer },
endIcon,
variant: open ? "secondarySubtle" : variant,
...others,
children: icon ? children : /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.selection, children })
}
);
});
exports.dropdownButtonClasses = DropdownButton_styles.staticClasses;
exports.HvDropdownButton = HvDropdownButton;