UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

61 lines (60 loc) 1.96 kB
"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 setId = require("../../utils/setId.cjs"); const context = require("../context.cjs"); const utils = require("../utils.cjs"); const Label_styles = require("./Label.styles.cjs"); const Typography = require("../../Typography/Typography.cjs"); const HvLabel = (props) => { const { id: idProp, classes: classesProp, className, children, label, showGutter, disabled: disabledProp, required: requiredProp, htmlFor: htmlForProp, ...others } = uikitReactUtils.useDefaultProps("HvLabel", props); const { classes, cx } = Label_styles.useClasses(classesProp); const context$1 = React.useContext(context.HvFormElementContext); const disabled = disabledProp ?? context$1.disabled; const required = requiredProp ?? context$1.required; const id = idProp ?? setId.setId(context$1.id, "label"); const forId = React.useMemo( () => htmlForProp || utils.findDescriptors(children)?.input?.[0]?.id, [children, htmlForProp] ); return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [ /* @__PURE__ */ jsxRuntime.jsxs( Typography.HvTypography, { id, className: cx( classes.root, { [classes.labelDisabled]: disabled, [classes.childGutter]: showGutter || children && label }, className ), variant: "label", component: "label", htmlFor: forId, ...others, children: [ label, required && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: "*" }) ] } ), children ] }); }; exports.labelClasses = Label_styles.staticClasses; exports.HvLabel = HvLabel;