UNPKG

@hitachivantara/uikit-react-core

Version:
50 lines (49 loc) 1.51 kB
import { HvLabel } from "./Label/Label.js"; import { HvInfoMessage } from "./InfoMessage/InfoMessage.js"; import { theme } from "@hitachivantara/uikit-styles"; import { createClasses, useDefaultProps } from "@hitachivantara/uikit-react-utils"; import { jsx, jsxs } from "react/jsx-runtime"; //#region src/FormElement/LabelContainer.tsx var { useClasses } = createClasses("HvLabelContainer", { root: { display: "flex", alignItems: "center", gap: theme.space.xs, height: 24, marginBottom: theme.space.xxs }, label: {}, description: {} }); /** * A container for the label and description combo of form elements. * @internal @private */ var HvLabelContainer = (props) => { const { label, description, inputId, labelId, descriptionId, classes: classesProp, labelProps, descriptionProps, children, ...others } = useDefaultProps("HvLabelContainer", props); const { classes } = useClasses(classesProp, false); if (label == null && description == null && children == null) return null; return /* @__PURE__ */ jsxs("div", { className: classes.root, ...others, children: [ label != null && /* @__PURE__ */ jsx(HvLabel, { id: labelId, className: classes.label, htmlFor: inputId, label, ...labelProps }), description != null && /* @__PURE__ */ jsx(HvInfoMessage, { disableGutter: true, id: descriptionId, className: classes.description, ...descriptionProps, children: description }), children ] }); }; //#endregion export { HvLabelContainer };