{"version":3,"file":"UncodeNumber.ChM_8JRE.mjs","names":["useStore","useState","useState","useRef"],"sources":["https:/framer.com/m/framer/store.js@^1.0.0","https:/framer.com/m/Store-RE81.js@kn1vDC0MmWKhXtlIcBig","https:/framer.com/m/Store-nhJr.js","https:/framerusercontent.com/modules/EyvJFDADu0QtHDkg4x4u/EGm4gBSCmeiyonGFJRHb/UncodeNumber.js"],"sourcesContent":["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","import{useEffect}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";// Learn more: https://www.framer.com/docs/guides/overrides/\nconst useStore=createStore({});export const useFormStore=()=>{const[formStore,setFormStore]=useStore();return[formStore,setFormStore];};export const useFormValue=(name,value)=>{var _formStore_nameValue;const[formStore,setFormStore]=useStore();const nameValue=name||\"undefined\";const storeValue=(_formStore_nameValue=formStore[nameValue])===null||_formStore_nameValue===void 0?void 0:_formStore_nameValue.value;const returnedValue=storeValue===undefined?value:storeValue;const setValueStore=datasets=>{let data,type=typeof datasets;if(type===\"string\"||type===\"number\"||type===\"boolean\"){data={value:datasets};}else if(type===\"object\"){data=datasets;}else{return;}setFormStore(prev=>({...prev,[nameValue]:{...prev[nameValue],...data}}));};const deleteStoreValue=()=>{setFormStore(previousStore=>{const newStore=previousStore;delete newStore[nameValue];return newStore;});};useEffect(()=>{value&&setValueStore(value);},[]);return[storeValue,setValueStore,deleteStoreValue];};\nexport const __FramerMetadata__ = {\"exports\":{\"useFormStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Store.map","import{useFormStore,useFormValue}from\"https://framer.com/m/Store-RE81.js@kn1vDC0MmWKhXtlIcBig\";export{useFormStore,useFormValue};\nexport const __FramerMetadata__ = {\"exports\":{\"useFormStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Store.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{useFormValue}from\"https://framer.com/m/Store-nhJr.js\";// Lista de países\nconst defaultCountryOptions=[{code:\"+49\",name:\"Germany\",flag:\"🇩🇪\",format:\"+49 (###) ###-####\"},{code:\"+33\",name:\"France\",flag:\"🇫🇷\",format:\"+33 ## ## ## ##\"},{code:\"+34\",name:\"Spain\",flag:\"🇪🇸\",format:\"+34 ### ## ## ##\"},{code:\"+39\",name:\"Italy\",flag:\"🇮🇹\",format:\"+39 ### ### ####\"},{code:\"+31\",name:\"Netherlands\",flag:\"🇳🇱\",format:\"+31 ## #### ####\"},{code:\"+351\",name:\"Portugal\",flag:\"🇵🇹\",format:\"+351 ### ### ###\"},{code:\"+44\",name:\"UK\",flag:\"🇬🇧\",format:\"+44 #### ### ####\"},{code:\"+55\",name:\"Brazil\",flag:\"🇧🇷\",format:\"+55 (##) # ####-####\"},{code:\"+1\",name:\"USA\",flag:\"🇺🇸\",format:\"+1 (###) ###-####\"}];const useStore=createStore({selectedValue:\"\"});const formatPhoneNumber=(numbers,format)=>{let result=format;let numberIndex=0;for(let i=0;i<format.length&&numberIndex<numbers.length;i++){if(format[i]===\"#\"){result=result.substring(0,i)+numbers[numberIndex]+result.substring(i+1);numberIndex++;}}return result.indexOf(\"#\")>=0?result.substring(0,result.indexOf(\"#\")):result;};export function withFormInput(Component){return props=>{const[inputValue,setInputValue]=useFormValue(props.name,props.defaultValue);const[wasBlurred,setWasBlurred]=useState(false);const handleChange=event=>{const newValue=event.target.value;const selectedCountry=defaultCountryOptions.find(country=>country.code===props.selectedCountry);if(selectedCountry){const formattedValue=formatPhoneNumber(newValue,selectedCountry.format);setInputValue(formattedValue);}const isValid=!newValue.includes(\"#\")&&newValue.trim()!==\"\";props.onValidationChange&&props.onValidationChange(isValid);};return /*#__PURE__*/_jsx(Component,{...props,value:inputValue,onChange:handleChange,required:props.isRequired});};}export function UncodeNumber(props){const{name,placeholder,padding,textColor,backgroundColor,borderColor,borderRadius,font,fontSize,placeholderColor,countryOptions=defaultCountryOptions,isRequired,codeBy,gap,onValidationChange}=props;const[selectedCountry,setSelectedCountry]=useState(countryOptions[0].code);const[inputValue,setInputValue]=useState(\"\");const containerRef=useRef(null);const handleCountryChange=event=>{setSelectedCountry(event.target.value);};const handleChange=event=>{const rawValue=event.target.value;const selectedCountryObj=countryOptions.find(country=>country.code===selectedCountry);if(selectedCountryObj){// Se estiver apagando, permite\nif(rawValue.length<inputValue.length){setInputValue(rawValue);return;}// Remove o código do país do começo do valor se existir\nlet valueWithoutCountryCode=rawValue;if(rawValue.startsWith(selectedCountryObj.code)){valueWithoutCountryCode=rawValue.substring(selectedCountryObj.code.length);}// Remove tudo exceto números\nconst numbersOnly=valueWithoutCountryCode.replace(/\\D/g,\"\");// Limita ao máximo de números do formato\nconst maxNumbers=selectedCountryObj.format.split(\"\").filter(char=>char===\"#\").length;const limitedNumbers=numbersOnly.slice(0,maxNumbers);// Aplica a formatação usando o formato completo com código do país\nconst formattedValue=formatPhoneNumber(limitedNumbers,selectedCountryObj.format);setInputValue(formattedValue);// Validação\nconst isValid=limitedNumbers.length===maxNumbers;onValidationChange&&onValidationChange(isValid);}};const styles={container:{display:\"flex\",flexDirection:\"row\",padding:`${padding}px`,color:textColor,backgroundColor:backgroundColor,borderRadius:`${borderRadius}px`,alignItems:\"center\"},input:{padding:\"10px\",borderRadius:\"24px\",color:textColor,backgroundColor:backgroundColor,flex:1,marginLeft:gap,border:`1px solid ${borderColor}`,transition:\"border 0.3s ease\",fontFamily:font.fontFamily,fontSize:`${fontSize}px`},select:{display:countryOptions.length>1?\"block\":\"none\",padding:\"10px\",borderRadius:\"24px\",border:`1px solid ${borderColor}`,color:\"#284348\",backgroundColor:\"#ffff\",fontSize:`${fontSize}px`,appearance:\"none\",WebkitAppearance:\"none\",MozAppearance:\"none\"}};return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.container,children:[/*#__PURE__*/_jsx(\"select\",{style:styles.select,value:selectedCountry,onChange:handleCountryChange,children:countryOptions.map(country=>/*#__PURE__*/_jsxs(\"option\",{value:country.code,children:[country.flag,\" \",country.code]},country.code))}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",name:name,placeholder:placeholder,value:inputValue,onChange:handleChange,style:styles.input,required:isRequired})]}),/*#__PURE__*/_jsx(\"style\",{children:`\n                   ::placeholder {\n                       color: ${placeholderColor};\n                   }\n               `})]});}addPropertyControls(UncodeNumber,{countryOptions:{type:ControlType.Array,title:\"Country Options\",defaultValue:defaultCountryOptions,propertyControl:{type:ControlType.Object,controls:{code:{type:ControlType.String,title:\"Country Code\",description:\"C\\xf3digo do pa\\xeds / Country code\"},name:{type:ControlType.String,title:\"Country Name\",description:\"Nome do pa\\xeds / Country name\"},flag:{type:ControlType.String,title:\"Flag Emoji\",description:\"Emoji da bandeira do pa\\xeds / Country flag emoji\"},format:{type:ControlType.String,title:\"Phone Number Format\",description:\"Formato do n\\xfamero de telefone / Phone number format\"}}}},name:{type:ControlType.String,title:\"Name\",defaultValue:\"numberInputValue\",description:\"Nome do campo de entrada / Input field name\"},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Enter your phone number\",description:\"Texto de espa\\xe7o reservado / Placeholder text\"},padding:{type:ControlType.FusedNumber,title:\"Padding\",toggleKey:\"paddingPerSide\",toggleTitles:[\"All Sides\",\"Individual\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0,defaultValue:10,description:\"Espa\\xe7amento interno do campo / Internal field spacing\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:10,description:\"Espa\\xe7amento entre o seletor e o campo / Spacing between selector and field\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#ffffff\",description:\"Cor do texto no campo / Text color in field\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#1B2622\",description:\"Cor de fundo do campo / Field background color\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#ffffff\",description:\"Cor da borda do campo / Field border color\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:24,description:\"Raio da borda do campo / Field border radius\"},font:{type:ControlType.Font,controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultFontType:\"monospace\",defaultValue:{fontSize:14,lineHeight:\"1.5em\"},description:\"Fonte a ser utilizada no campo / Font to be used in field\"},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:16,description:\"Tamanho da fonte do campo / Field font size\"},placeholderColor:{type:ControlType.Color,title:\"Placeholder Color\",defaultValue:\"#ffffff\",description:\"Cor do texto do placeholder / Placeholder text color\"},isRequired:{type:ControlType.Boolean,title:\"Required\",defaultValue:false,description:\"Campo \\xe9 obrigat\\xf3rio / Field is required\"},codeBy:{type:ControlType.String,title:\" \",defaultValue:\"Autor:\",readOnly:true,description:\"Este componente foi criado por @omatusaelhorch / This component was created by @omatusaelhorch\"}})// Code by @omatusaelhorch\n;\nexport const __FramerMetadata__ = {\"exports\":{\"UncodeNumber\":{\"type\":\"reactComponent\",\"name\":\"UncodeNumber\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFormInput\":{\"type\":\"reactComponent\",\"name\":\"withFormInput\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UncodeNumber.map"],"mappings":"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"}