UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

67 lines (66 loc) 1.99 kB
import { jsx, jsxs } from "react/jsx-runtime"; import { useContext } from "react"; import { useDefaultProps } from "@hitachivantara/uikit-react-utils"; import { HvIcon } from "../../icons.js"; import { setId } from "../../utils/setId.js"; import { HvFormElementContext } from "../context.js"; import { useClasses } from "./WarningText.styles.js"; import { staticClasses } from "./WarningText.styles.js"; const HvWarningText = (props) => { const { children, adornment: adornmentProp, isVisible: isVisibleProp, classes: classesProp, className, id: idProp, disabled: disabledProp, disableGutter, disableBorder, disableAdornment, hideText, ...others } = useDefaultProps("HvWarningText", props); const { classes, cx } = useClasses(classesProp); const context = useContext(HvFormElementContext); const disabled = disabledProp ?? context.disabled; const visible = isVisibleProp ?? context.status === "invalid"; const id = idProp ?? setId(context.id, "error"); const showWarning = visible && !disabled; const adornment = adornmentProp || /* @__PURE__ */ jsx(HvIcon, { name: "Fail", size: "xs", className: classes.defaultIcon }); return /* @__PURE__ */ jsxs( "div", { className: cx( classes.root, { [classes.show]: showWarning, [classes.topBorder]: !disableBorder }, className ), children: [ !disableAdornment && adornment, /* @__PURE__ */ jsx( "span", { id, className: cx(classes.warningText, { [classes.topGutter]: !disableGutter, [classes.hideText]: hideText }), role: "status", "aria-live": "polite", "aria-relevant": "additions text", ...others, children: showWarning && children } ) ] } ); }; export { HvWarningText, staticClasses as warningTextClasses };