UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

55 lines (54 loc) 1.43 kB
import { jsx } from "react/jsx-runtime"; import { useDefaultProps } from "@hitachivantara/uikit-react-utils"; import { fixedForwardRef } from "../types/generic.js"; import { useClasses } from "./ButtonBase.styles.js"; import { staticClasses } from "./ButtonBase.styles.js"; const HvButtonBase = fixedForwardRef(function HvButtonBase2(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 } ); }); export { HvButtonBase, staticClasses as buttonBaseClasses };