UNPKG

@hitachivantara/uikit-react-core

Version:
36 lines (35 loc) 1.25 kB
import { fixedForwardRef } from "../types/generic.js"; import { useClasses } from "./ButtonBase.styles.js"; import { useDefaultProps } from "@hitachivantara/uikit-react-utils"; import { jsx } from "react/jsx-runtime"; //#region src/ButtonBase/ButtonBase.tsx /** * Button component is used to trigger an action or event. */ var HvButtonBase = fixedForwardRef(function HvButtonBase(props, ref) { const { className, classes: classesProp, children, selected, disabled, focusableWhenDisabled, component: Component = "button", onClick: onClickProp, onMouseDown: onMouseDownProp, ...others } = useDefaultProps("HvButtonBase", props); const { classes, cx } = useClasses(classesProp); return /* @__PURE__ */ 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 }); }); //#endregion export { HvButtonBase };