UNPKG

koval-ui

Version:

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

3 lines (2 loc) 1.22 kB
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("react/jsx-runtime"),o=require("react"),w=require("classnames"),P=require("../../internal/hooks/useInternalRef.cjs"),j=require("./withFormProvider.cjs"),x=require("./Form.module.css.cjs"),d=require("./useFormContext.cjs"),n=o.forwardRef(({className:F,children:S,onSubmit:c=()=>{},onReset:u=()=>{},onChange:l=()=>{},onInvalid:m=()=>{},...b},g)=>{const{markAsPristine:i,markAsDirty:s}=d.useFormActions(),t=o.useCallback(e=>{const r=new FormData(e),a={};for(const[p,y]of r.entries())a[p]=y;return a},[]),k=o.useCallback(e=>{e.preventDefault();const r=e.currentTarget,a=t(r);c(e,a)},[t,c]),h=o.useCallback(e=>{s();const r=t(e.currentTarget);m(e,r)},[t,s,m]),q=o.useCallback(e=>{const r=t(e.currentTarget);i(),u(e,r)},[t,u,i]),{pristine:f}=d.useFormSelectors(),C=o.useCallback(e=>{f&&s();const r=t(e.currentTarget);l(e,r)},[t,l,s,f]),R=P.useInternalRef(g);return T.jsx("form",{...b,autoFocus:!0,onSubmit:k,onInvalid:h,onReset:q,onChange:C,ref:R,className:w(x.default.form,F),children:S})});n.displayName="Form";const A=j.withFormProvider(n);exports.Form=A;exports.FormVanilla=n; //# sourceMappingURL=Form.cjs.map