@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
36 lines (35 loc) • 1.67 kB
JavaScript
;
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 useUniqueId = require("../hooks/useUniqueId.cjs");
const context = require("./context.cjs");
const FormElement_styles = require("./FormElement.styles.cjs");
const utils = require("./utils.cjs");
const HvFormElement = (props) => {
const {
classes: classesProp,
className,
children,
id: idProp,
name,
value,
disabled,
required,
readOnly,
status = "standBy",
...others
} = uikitReactUtils.useDefaultProps("HvFormElement", props);
const { classes, cx } = FormElement_styles.useClasses(classesProp);
const id = useUniqueId.useUniqueId(idProp);
const contextValue = React.useMemo(
() => ({ id, name, status, disabled, required, readOnly }),
[id, name, status, disabled, required, readOnly]
);
const descriptors = React.useMemo(() => utils.findDescriptors(children), [children]);
return /* @__PURE__ */ jsxRuntime.jsx("div", { id, className: cx(classes.root, className), ...others, children: /* @__PURE__ */ jsxRuntime.jsx(context.HvFormElementContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(context.HvFormElementValueContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(context.HvFormElementDescriptorsContext.Provider, { value: descriptors, children }) }) }) });
};
HvFormElement.formElementType = "formelement";
exports.formElementClasses = FormElement_styles.staticClasses;
exports.HvFormElement = HvFormElement;