koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
3 lines (2 loc) • 1.93 kB
JavaScript
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),n=require("react"),r=require("classnames"),P=require("../../internal/inputs/ValidationProps.cjs"),M=require("../../internal/inputs/useValidation.cjs"),T=require("../../internal/inputs/useRevalidateOnFormChange.cjs"),_=require("../../internal/inputs/useExternalValidation.cjs"),z=require("../../internal/inputs/useValidationIcon.cjs"),A=require("../../internal/hooks/useInternalId.cjs"),D=require("../../internal/hooks/useInternalRef.cjs"),e=require("./InputCheckbox.module.css.cjs"),p=n.forwardRef(({className:m,disabled:x,value:V,onChange:u=()=>{},onFocus:b=()=>{},onBlur:q=()=>{},onKeyDown:C=()=>{},onKeyUp:R=()=>{},checked:k,defaultChecked:v,id:j,label:c,required:s,revalidateOnFormChange:N,validation:o,errorMessage:g,indeterminate:i=!1,displayIcon:d=!0,...y},w)=>{const f=A.useInternalId(j),E=!!o||!!s,{validateInteractive:I,validity:h,setValidity:l}=M.useValidation({validation:o,hasValidators:E}),t=D.useInternalRef(w);T.useRevalidateOnFormChange(t,I,N),_.useExternalValidation({errorMessage:g,inputRef:t,setValidity:l,validation:o});const F=z.useValidationIcon(h),O=n.useCallback(B=>{u(B)},[u]),S=n.useCallback(()=>{l(P.ValidationState.error)},[l]);return n.useEffect(()=>{t.current&&(t.current.indeterminate=i)},[i,t]),a.jsxs("div",{className:r(e.default.wrapper,{[e.default.withValidationIcon]:d},m),children:[a.jsx("input",{...y,className:r(e.default.input,{[e.default.indeterminate]:i}),ref:t,disabled:x,type:"checkbox",id:f,value:V,checked:k,defaultChecked:v,onChange:O,onBlur:q,onFocus:b,onKeyUp:R,onKeyDown:C,onInput:I,onInvalid:S,required:s}),c&&a.jsx("label",{className:r(e.default.label,{[e.default.required]:s}),htmlFor:f,children:c}),d&&h&&a.jsx(F,{className:e.default.icon})]})});p.displayName="InputCheckbox";exports.InputCheckbox=p;
//# sourceMappingURL=InputCheckbox.cjs.map