@hitachivantara/uikit-react-core
Version:
UI Kit Core React components.
50 lines (49 loc) • 1.51 kB
JavaScript
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 };