{"version":3,"file":"Number.CyXbrEDP.mjs","names":["useState","useCallback"],"sources":["https:/framerusercontent.com/modules/rXnTybmav2xhvVdb2apt/UxV01TxUi2sUlvjxdQ0Q/Number.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useCallback}from\"react\";// ─── Konfiguracja ────────────────────────────────────────────────────────────\nconst MIN_CHARS=14;const MAX_CHARS=500;// ─── Kolory walidacji ─────────────────────────────────────────────────────────\nconst COLOR_DEFAULT=\"#888888\";const COLOR_ERROR=\"#E53E3E\";const COLOR_WARNING=\"#D69E2E\";const COLOR_SUCCESS=\"#38A169\";// ─────────────────────────────────────────────────────────────────────────────\nfunction getValidationState(length){if(length===0)return\"empty\";if(length<MIN_CHARS)return\"too-short\";if(length>MAX_CHARS)return\"too-long\";if(length>MAX_CHARS*.9)return\"warning\";return\"ok\";}function getColor(state){switch(state){case\"too-short\":return COLOR_ERROR;case\"too-long\":return COLOR_ERROR;case\"warning\":return COLOR_WARNING;case\"ok\":return COLOR_SUCCESS;default:return COLOR_DEFAULT;}}function getMessage(state,length){switch(state){case\"empty\":return`Wpisz minimum ${MIN_CHARS} znak\\xf3w`;case\"too-short\":return`Za kr\\xf3tko — brakuje ${MIN_CHARS-length} ${plural(MIN_CHARS-length,\"znak\",\"znaki\",\"znak\\xf3w\")}`;case\"too-long\":return`Za długo — usuń ${length-MAX_CHARS} ${plural(length-MAX_CHARS,\"znak\",\"znaki\",\"znak\\xf3w\")}`;case\"warning\":return`Pozostało ${MAX_CHARS-length} ${plural(MAX_CHARS-length,\"znak\",\"znaki\",\"znak\\xf3w\")}`;case\"ok\":return`${length} / ${MAX_CHARS}`;}}function plural(n,one,few,many){if(n===1)return one;if(n>=2&&n<=4)return few;return many;}// ─── Override: walidacja i licznik znaków ─────────────────────────────────────\nexport function withCharacterLimit(Component){return function WrappedComponent(props){const[value,setValue]=useState(\"\");const[touched,setTouched]=useState(false);const length=value.length;const state=getValidationState(length);const color=getColor(state);const message=getMessage(state,length);const showMessage=touched||length>0;const handleChange=useCallback(event=>{const raw=event.target.value;// Blokuj wpisywanie po osiągnięciu limitu\nif(raw.length>MAX_CHARS)return;setValue(raw);props.onChange?.(event);},[props.onChange]);const handleBlur=useCallback(event=>{setTouched(true);props.onBlur?.(event);},[props.onBlur]);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",fontFamily:\"inherit\"},children:[/*#__PURE__*/_jsx(Component,{...props,value:value,onChange:handleChange,onBlur:handleBlur,maxLength:MAX_CHARS,style:{...props.style,// Subtelna ramka walidacyjna gdy dotknięty\noutline:touched&&(state===\"too-short\"||state===\"too-long\")?`2px solid ${COLOR_ERROR}`:props.style?.outline}}),showMessage&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginTop:6,fontSize:12,lineHeight:\"1.4\",color,transition:\"color 0.2s ease\",userSelect:\"none\"},children:[/*#__PURE__*/_jsx(\"span\",{children:message}),/*#__PURE__*/_jsx(\"div\",{style:{width:80,height:4,borderRadius:2,background:\"#E2E8F0\",overflow:\"hidden\",flexShrink:0,marginLeft:8},children:/*#__PURE__*/_jsx(\"div\",{style:{height:\"100%\",borderRadius:2,background:color,width:`${Math.min(length/MAX_CHARS*100,100)}%`,transition:\"width 0.15s ease, background 0.2s ease\"}})})]}),showMessage&&length<MAX_CHARS&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",bottom:-20,right:0,fontSize:11,color:\"#A0AEC0\",userSelect:\"none\"},children:[\"min. \",MIN_CHARS,\" / max. \",MAX_CHARS]})]});};}// ─── Override: tylko blokada maxLength (lżejsza wersja) ──────────────────────\nexport function withMaxLength(Component){return function WrappedComponent(props){return /*#__PURE__*/_jsx(Component,{...props,maxLength:MAX_CHARS,minLength:MIN_CHARS});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withMaxLength\":{\"type\":\"reactHoc\",\"name\":\"withMaxLength\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCharacterLimit\":{\"type\":\"reactHoc\",\"name\":\"withCharacterLimit\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Number.map"],"mappings":"gIAGA,SAAS,EAAmB,EAAO,CAA+I,OAA3I,IAAS,EAAQ,QAAW,EAAO,EAAgB,YAAe,EAAO,EAAgB,WAAc,EAAO,EAAU,GAAS,UAAgB,KAAM,SAAS,EAAS,EAAM,CAAC,OAAO,EAAP,CAAc,IAAI,YAAY,OAAO,EAAY,IAAI,WAAW,OAAO,EAAY,IAAI,UAAU,OAAO,EAAc,IAAI,KAAK,OAAO,EAAc,QAAQ,OAAO,GAAgB,SAAS,EAAW,EAAM,EAAO,CAAC,OAAO,EAAP,CAAc,IAAI,QAAQ,MAAM,iBAAiB,EAAU,YAAY,IAAI,YAAY,MAAM,0BAA0B,EAAU,EAAO,GAAG,EAAO,EAAU,EAAO,OAAO,QAAQ,SAAY,GAAG,IAAI,WAAW,MAAM,mBAAmB,EAAO,EAAU,GAAG,EAAO,EAAO,EAAU,OAAO,QAAQ,SAAY,GAAG,IAAI,UAAU,MAAM,aAAa,EAAU,EAAO,GAAG,EAAO,EAAU,EAAO,OAAO,QAAQ,SAAY,GAAG,IAAI,KAAK,MAAM,GAAG,EAAO,KAAK,KAAc,SAAS,EAAO,EAAE,EAAI,EAAI,EAAK,CAA8C,OAA1C,IAAI,EAAS,EAAO,GAAG,GAAG,GAAG,EAAS,EAAW,EAC18B,SAAgB,EAAmB,EAAU,CAAC,OAAO,SAA0B,EAAM,CAAC,GAAK,CAAC,EAAM,GAAUA,EAAS,GAAG,CAAM,CAAC,EAAQ,GAAYA,EAAS,GAAM,CAAO,EAAO,EAAM,OAAa,EAAM,EAAmB,EAAO,CAAO,EAAM,EAAS,EAAM,CAAO,EAAQ,EAAW,EAAM,EAAO,CAAO,EAAY,GAAS,EAAO,EAAQ,EAAaC,EAAY,GAAO,CAAC,IAAM,EAAI,EAAM,OAAO,MACtY,EAAI,OAAO,IAAiB,EAAS,EAAI,CAAC,EAAM,WAAW,EAAM,GAAG,CAAC,EAAM,SAAS,CAAC,CAAO,EAAWA,EAAY,GAAO,CAAC,EAAW,GAAK,CAAC,EAAM,SAAS,EAAM,EAAG,CAAC,EAAM,OAAO,CAAC,CAAC,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,WAAW,UAAU,CAAC,SAAS,CAAc,EAAK,EAAU,CAAC,GAAG,EAAY,QAAM,SAAS,EAAa,OAAO,EAAW,UAAU,EAAU,MAAM,CAAC,GAAG,EAAM,MAC9Z,QAAQ,IAAU,IAAQ,aAAa,IAAQ,YAAY,aAAa,IAAc,EAAM,OAAO,QAAQ,CAAC,CAAC,CAAC,GAA0B,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,eAAe,gBAAgB,WAAW,SAAS,UAAU,EAAE,SAAS,GAAG,WAAW,MAAM,QAAM,WAAW,kBAAkB,WAAW,OAAO,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,SAAS,EAAQ,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,aAAa,EAAE,WAAW,UAAU,SAAS,SAAS,WAAW,EAAE,WAAW,EAAE,CAAC,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,OAAO,OAAO,aAAa,EAAE,WAAW,EAAM,MAAM,GAAG,KAAK,IAAI,EAAO,EAAU,IAAI,IAAI,CAAC,GAAG,WAAW,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAa,EAAO,GAAwB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,OAAO,IAAI,MAAM,EAAE,SAAS,GAAG,MAAM,UAAU,WAAW,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAU,WAAW,EAAU,CAAC,CAAC,CAAC,CAAC,CAAC,+BAN50B,IAAwC,CAC3F,EAAU,GAAS,EAAU,IAC7B,EAAc,UAAgB,EAAY,UAAgB,EAAc,UAAgB,EAAc"}