@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
54 lines (53 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const generic = require("../types/generic.cjs");
const ButtonBase_styles = require("./ButtonBase.styles.cjs");
const HvButtonBase = generic.fixedForwardRef(function HvButtonBase2(props, ref) {
const {
className,
classes: classesProp,
children,
selected,
disabled,
focusableWhenDisabled,
component: Component = "button",
onClick: onClickProp,
onMouseDown: onMouseDownProp,
...others
} = uikitReactUtils.useDefaultProps("HvButtonBase", props);
const { classes, cx } = ButtonBase_styles.useClasses(classesProp);
return /* @__PURE__ */ jsxRuntime.jsx(
Component,
{
ref,
className: cx(
classes.root,
{
[classes.disabled]: disabled
},
className
),
onClick: (e) => {
if (disabled) return;
onClickProp?.(e);
},
onMouseDown: (e) => {
if (disabled) return;
onMouseDownProp?.(e);
},
...Component === "button" && { type: "button" },
...disabled && {
disabled: !focusableWhenDisabled,
tabIndex: focusableWhenDisabled ? 0 : -1,
"aria-disabled": true
},
...selected && { "aria-pressed": selected },
...others,
children
}
);
});
exports.buttonBaseClasses = ButtonBase_styles.staticClasses;
exports.HvButtonBase = HvButtonBase;