UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

37 lines (36 loc) 1.29 kB
"use client"; import { jsxs as v, jsx as t } from "react/jsx-runtime"; import { forwardRef as x, useMemo as y, Children as j, isValidElement as w, cloneElement as E } from "react"; import c from "classnames"; import s from "./InputGroup.module.css.js"; const G = x( ({ className: d, id: f, label: m, children: l, name: n, disabled: r, hint: a, required: i, onChange: p, ...u }, N) => { const h = y(() => j.map(l, (o) => { if (w(o)) { const e = { name: n }; return r !== void 0 && typeof o.props.disabled != "boolean" && (e.disabled = r), i !== void 0 && typeof o.props.required != "boolean" && (e.required = i), p !== void 0 && (e.onChange = p), E(o, e); } return o; }), [l, r, n, p, i]); return /* @__PURE__ */ v( "fieldset", { ...u, className: c(s.wrapper, d), disabled: r, id: f, ref: N, children: [ /* @__PURE__ */ t("legend", { className: c(s.legend, { [s.disabled]: r }), children: m }), /* @__PURE__ */ t("div", { className: s.inputs, children: h }), a && /* @__PURE__ */ t("div", { className: s.hint, children: a }) ] } ); } ); G.displayName = "InputGroup"; export { G as InputGroup }; //# sourceMappingURL=InputGroup.js.map