{"version":3,"file":"TextInput.WjbpbCnl.mjs","names":["useState","useId","useRef","useCallback","_Fragment","_Fragment","_Fragment","useState","useRef","useState"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/itVumdSpaLTGejsnG4cS/6LKYMWPrWe4DJ5B7wYmL/QuizScoringShared.js","https:/framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js","https:/framerusercontent.com/modules/1LECUrurTpenvfDn1ShM/nL9gmnXABjh04Nl8aaL8/Countries.js","https:/framerusercontent.com/modules/PwJ4k4IqmEWPlM2ZI4Eu/Wof3uC3VdIgYyyDoK0vM/DropdownUtilities.js","https:/framerusercontent.com/modules/SRHLnHriy9CtZfYf0KJF/6tUGIogjIAN5qEnujlm9/CountryDropdown.js","https:/framerusercontent.com/modules/IQzDFpniaD3AmKydBXP4/LHWQ8wbZlMg3l9LnhO0B/PhoneNumberInput.js","https:/framerusercontent.com/modules/tN5l0aqIzWiUvVuvMcpG/gHVohRD14HLiC9GkfyyX/TextInput.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","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","import{ControlType}from\"framer\";export const QUIZ_MULTI_SELECT_AGGREGATES=[\"sum\",\"average\",\"max\",\"min\"];export function normalizeQuizMultiSelectAggregate(raw){if(raw===\"average\"||raw===\"max\"||raw===\"min\"){return raw;}return\"sum\";}export function normalizeOptionPointRows(raw){if(!raw?.length)return[];return raw.map(r=>({optionValue:(r.optionValue??\"\").trim(),points:r.points!==undefined&&Number.isFinite(r.points)?Number(r.points):0})).filter(r=>r.optionValue.length>0);}export function parseOptionPointsAttr(attr){if(!attr)return null;try{const v=JSON.parse(attr);const rows=normalizeOptionPointRows(v.rows);if(!rows.length)return null;const defaultPoints=v.defaultPoints!==undefined&&Number.isFinite(v.defaultPoints)?Number(v.defaultPoints):0;return{defaultPoints,rows};}catch{return null;}}function resolvePartToPoints(part,rows,defaultPoints){const row=rows.find(r=>r.optionValue===part);if(row&&Number.isFinite(row.points))return row.points;return defaultPoints;}function splitMultiSelectValue(value,valueSeparator){return value.split(valueSeparator).map(s=>s.trim()).filter(Boolean);}function aggregateMultiSelectPoints(partPoints,aggregate){if(!partPoints.length)return 0;switch(aggregate){case\"sum\":return partPoints.reduce((sum,p)=>sum+p,0);case\"average\":return partPoints.reduce((sum,p)=>sum+p,0)/partPoints.length;case\"max\":return Math.max(...partPoints);case\"min\":return Math.min(...partPoints);default:return partPoints.reduce((sum,p)=>sum+p,0);}}/** Maximum achievable points for one weighted question. */export function maxWeightedQuestionPoints(parsed,multiSelect,aggregate=\"sum\"){const{rows,defaultPoints}=parsed;if(!rows.length)return 0;if(!multiSelect){const rowMax=Math.max(...rows.map(r=>r.points),defaultPoints);return Number.isFinite(rowMax)?rowMax:defaultPoints;}const positiveSum=rows.filter(r=>r.points>0).reduce((sum,r)=>sum+r.points,0);const maxPoint=Math.max(...rows.map(r=>r.points),defaultPoints);switch(aggregate){case\"sum\":return positiveSum;case\"average\":case\"max\":case\"min\":return Number.isFinite(maxPoint)?maxPoint:defaultPoints;default:return positiveSum;}}export function scoreWeightedFieldValue(value,parsed,opts){const multiSelect=opts.matchMode===\"set\";const aggregate=normalizeQuizMultiSelectAggregate(opts.multiSelectAggregate);const maxPoints=maxWeightedQuestionPoints(parsed,multiSelect,aggregate);const trimmed=value.trim();if(!trimmed){return{earned:0,maxPoints};}if(multiSelect){const sep=opts.valueSeparator??\", \";const parts=splitMultiSelectValue(trimmed,sep);const partPoints=parts.map(part=>resolvePartToPoints(part,parsed.rows,parsed.defaultPoints));const earned=aggregateMultiSelectPoints(partPoints,aggregate);return{earned,maxPoints};}const earned=resolvePartToPoints(trimmed,parsed.rows,parsed.defaultPoints);return{earned,maxPoints};}export function isQuizWeightedConfig(quiz){return!!quiz?.isQuizInput&&quiz.scoringMethod===\"weighted\"&&normalizeOptionPointRows(quiz.optionPoints).length>0;}export const QUIZ_DATA_ATTRIBUTE_KEYS=[\"data-framerforms-quiz\",\"data-framerforms-quiz-scoring\",\"data-framerforms-correct-answer\",\"data-framerforms-quiz-points\",\"data-framerforms-quiz-wrong-points\",\"data-framerforms-quiz-options\",\"data-framerforms-quiz-option-points\",\"data-framerforms-quiz-multiselect-aggregate\"];export function clearQuizDataAttributes(el){for(const key of QUIZ_DATA_ATTRIBUTE_KEYS){el.removeAttribute(key);}}export function applyQuizDataAttributes(el,attrs){clearQuizDataAttributes(el);for(const[key,value]of Object.entries(attrs)){el.setAttribute(key,value);}}export function buildQuizInputDataAttributes(quiz,options){if(!quiz?.isQuizInput)return{};if(isQuizWeightedConfig(quiz)){const rows=normalizeOptionPointRows(quiz.optionPoints);const defaultPoints=quiz.defaultOptionPoints!==undefined&&Number.isFinite(quiz.defaultOptionPoints)?Number(quiz.defaultOptionPoints):0;const attrs={\"data-framerforms-quiz\":\"true\",\"data-framerforms-quiz-scoring\":\"weighted\",\"data-framerforms-quiz-option-points\":JSON.stringify({defaultPoints,rows})};if(quiz.multiSelect){attrs[\"data-framerforms-quiz-multiselect-aggregate\"]=normalizeQuizMultiSelectAggregate(quiz.multiSelectAggregate);}if(options.quizOptionsJson&&Object.keys(options.quizOptionsJson).length){attrs[\"data-framerforms-quiz-options\"]=JSON.stringify(options.quizOptionsJson);}return attrs;}const ca=options.correctAnswer;const hasCorrect=ca!=null&&ca!==\"\"&&!(Array.isArray(ca)&&ca.length===0);if(!hasCorrect)return{};const correctStr=Array.isArray(ca)?JSON.stringify(ca):String(ca);const attrs={\"data-framerforms-quiz\":\"true\",\"data-framerforms-quiz-scoring\":\"correctIncorrect\",\"data-framerforms-correct-answer\":correctStr,\"data-framerforms-quiz-points\":String(quiz.points??1),\"data-framerforms-quiz-wrong-points\":String(quiz.wrongPoints??0)};if(options.quizOptionsJson&&Object.keys(options.quizOptionsJson).length){attrs[\"data-framerforms-quiz-options\"]=JSON.stringify(options.quizOptionsJson);}return attrs;}export function createQuizNestedControls(correctControls,options){const hideUnlessQuiz=inner=>!inner.isQuizInput;const hideUnlessWeighted=inner=>!inner.isQuizInput||inner.scoringMethod!==\"weighted\";const hideQuizMultiSelect=inner=>hideUnlessWeighted(inner)||!options?.supportsMultiSelect;const hideMultiSelectAggregate=inner=>hideQuizMultiSelect(inner)||!inner.multiSelect;const hideUnlessCorrect=inner=>!inner.isQuizInput||(inner.scoringMethod??\"correctIncorrect\")===\"weighted\";const wrappedCorrect={};for(const[key,ctrl]of Object.entries(correctControls)){const c=ctrl;const prevHidden=c.hidden;wrappedCorrect[key]={...c,hidden:inner=>hideUnlessCorrect(inner)||typeof prevHidden===\"function\"&&prevHidden(inner)};}return{isQuizInput:{type:ControlType.Boolean,title:\"Quiz\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},scoringMethod:{type:ControlType.Enum,title:\"Scoring\",options:[\"correctIncorrect\",\"weighted\"],optionTitles:[\"Correct / wrong\",\"Weighted options\"],defaultValue:\"correctIncorrect\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:hideUnlessQuiz},...wrappedCorrect,points:{type:ControlType.Number,title:\"Correct\",defaultValue:1,min:-100,max:100,step:1,displayStepper:true,hidden:hideUnlessCorrect},wrongPoints:{type:ControlType.Number,title:\"Wrong\",defaultValue:0,min:-100,max:100,step:1,displayStepper:true,hidden:hideUnlessCorrect},defaultOptionPoints:{type:ControlType.Number,title:\"If no match\",defaultValue:0,min:-1e9,max:1e9,step:.01,displayStepper:true,hidden:hideUnlessWeighted},optionPoints:{type:ControlType.Array,title:\"Points\",defaultValue:[{optionValue:\"\",points:1}],description:\"Points per answer value.\",hidden:hideUnlessWeighted,control:{type:ControlType.Object,controls:{optionValue:{type:ControlType.String,title:\"Value\",defaultValue:\"\",placeholder:\"e.g. 'Option1'\"},points:{type:ControlType.Number,title:\"Points\",defaultValue:1,min:-1e9,max:1e9,step:.01,displayStepper:true}}}},...options?.supportsMultiSelect?{multiSelect:{type:ControlType.Boolean,title:\"Multi-select\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:hideQuizMultiSelect},multiSelectAggregate:{type:ControlType.Enum,title:\"Calculate\",options:QUIZ_MULTI_SELECT_AGGREGATES,optionTitles:[\"Sum\",\"Average\",\"Highest\",\"Lowest\"],defaultValue:\"sum\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",description:\"How to combine points when multiple options are selected.\",hidden:hideMultiSelectAggregate}}:{}};}\nexport const __FramerMetadata__ = {\"exports\":{\"clearQuizDataAttributes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeOptionPointRows\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"applyQuizDataAttributes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"maxWeightedQuestionPoints\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CreateQuizNestedControlsOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NormalizedOptionPoints\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizInputConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizScoringMethod\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createQuizNestedControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QUIZ_MULTI_SELECT_AGGREGATES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QUIZ_DATA_ATTRIBUTE_KEYS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isQuizWeightedConfig\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizMultiSelectAggregate\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizOptionPointRow\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeQuizMultiSelectAggregate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scoreWeightedFieldValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildQuizInputDataAttributes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseOptionPointsAttr\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QuizScoringShared.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{ControlType,RenderTarget,withCSS}from\"framer\";import{forwardRef,useEffect,useState,useRef,useId,useCallback}from\"react\";import{motion}from\"framer-motion\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{parseOptionPointsAttr,scoreWeightedFieldValue,normalizeQuizMultiSelectAggregate}from\"https://framerusercontent.com/modules/itVumdSpaLTGejsnG4cS/6LKYMWPrWe4DJ5B7wYmL/QuizScoringShared.js\";// ---------------------------------------------------------------------------\n// Shared property controls (Insert Frame docs / support)\n// ---------------------------------------------------------------------------\nconst INSERT_FRAME_FRAMER_FORMS_DOCS=\"https://insertframe.io/docs/framerforms\";/** Spread into `addPropertyControls`: “Need help?” → Get support (Framer Forms docs). */export const insertFrameSupportPropertyControl={needHelp:{type:ControlType.Object,title:\"Need help?\",buttonTitle:\"Get support\",icon:\"interaction\",controls:{info:{type:ControlType.Enum,defaultValue:\"info\",options:[\"info\"],optionTitles:[\"Get support 🛟\"],displaySegmentedControl:true,title:\"Get support\",description:`Documentation and live chat: [FramerForms docs](${INSERT_FRAME_FRAMER_FORMS_DOCS}).`}}}};export const useMultiStepFormStore=createStore({});export const useQuizStore=createStore({});/** Typed tuple for consumers (avoids `as` at every call site). */export function useQuizStoreApi(){return useQuizStore();}export function createEmptyQuizScore(){return{correct:0,total:0,points:0,maxPoints:0,answers:{}};}export const useFormSubmittedStore=createStore({});export function useFormSubmittedStoreApi(){return useFormSubmittedStore();}export const HIDDEN_CLASS_NAME=\"framerforms-hidden\";const CANVAS_HIDDEN_CLASS_NAME=\"framerforms-canvas-hidden\";export const useInstanceId=()=>{const id=useId();const cleanId=id.replace(/:/g,\"\");const instanceId=`superfields-${cleanId}`;return instanceId;};export const HiddenInput=/*#__PURE__*/forwardRef(function HiddenInput({name,required,value,setInvalid,onSetValueEvent,noPrefill=false,disabled=false,style:styleProp,...rest},parentRef){const internalRef=useRef(null);const setRefs=useCallback(el=>{internalRef.current=el;if(typeof parentRef===\"function\"){parentRef(el);}else if(parentRef){parentRef.current=el;}},[parentRef]);const prevValueRef=useRef(value);// Store callback in ref to avoid listener churn\nconst onSetValueEventRef=useRef(onSetValueEvent);onSetValueEventRef.current=onSetValueEvent;useEffect(()=>{const element=internalRef.current;if(!element||!onSetValueEventRef.current)return;// Use a wrapper that always calls the latest callback\nconst handler=event=>{onSetValueEventRef.current?.(event);};element.addEventListener(\"framerFormsSetValue\",handler);// Mark as ready AFTER listener is attached - FormPersistence checks for this\nelement.dataset.framerformsSetValueReady=\"true\";return()=>{element.removeEventListener(\"framerFormsSetValue\",handler);delete element.dataset.framerformsSetValueReady;};},[])// Empty deps - only attach once\n;// Dispatch change event when value changes so FormPersistence can track updates\nuseEffect(()=>{const element=internalRef.current;if(!element)return;// Only dispatch if value actually changed (not on initial mount)\nif(prevValueRef.current!==value){prevValueRef.current=value;// Dispatch both input and change events for compatibility\nelement.dispatchEvent(new Event(\"input\",{bubbles:true}));element.dispatchEvent(new Event(\"change\",{bubbles:true}));}},[value]);return /*#__PURE__*/_jsx(\"input\",{ref:setRefs,type:\"text\",\"data-framerforms-set-value-event\":!!onSetValueEvent,\"data-framerforms-no-prefill\":noPrefill,...rest,style:{position:\"absolute\",opacity:0,pointerEvents:\"none\",inset:0,...styleProp},tabIndex:-1,name:name,required:required,value:value,disabled:disabled,onChange:()=>{},onInvalid:event=>{event.preventDefault();setInvalid(true);}});});const HideElementComponent=/*#__PURE__*/forwardRef(({},ref)=>{return /*#__PURE__*/_jsx(\"div\",{ref:ref,className:HIDDEN_CLASS_NAME});});export const HideElement=withCSS(HideElementComponent,[`div:has(> .${HIDDEN_CLASS_NAME}) { display: none; }`,`.${HIDDEN_CLASS_NAME} { display: none; }`],HIDDEN_CLASS_NAME);HideElement.displayName=\"FramerForms/Hide Element\";export const HiddenComponentLabel=/*#__PURE__*/forwardRef(function HiddenComponentLabel({text,subtext=\"\",children=null,...otherProps},ref){const isCanvas=RenderTarget.current()===RenderTarget.canvas;return isCanvas?/*#__PURE__*/_jsxs(\"div\",{\"data-framerforms\":true,...otherProps,ref:ref,className:CANVAS_HIDDEN_CLASS_NAME,style:{backgroundColor:\"rgba(187, 187, 187, 0.15)\",borderRadius:10,padding:\"12px 16px\",fontFamily:\"Inter\",fontWeight:500,fontSize:12,color:\"#999\",display:\"flex\",flexDirection:\"column\",gap:4,alignItems:\"center\",textAlign:\"center\",width:\"100%\",height:\"100%\",textWrap:\"nowrap\"},children:[children,text,subtext&&/*#__PURE__*/_jsx(\"span\",{style:{opacity:.7,whiteSpace:\"pre\",lineHeight:1.4},children:subtext}),/*#__PURE__*/_jsx(Border,{width:\"1px\",style:\"solid\",borderColor:\"rgba(136, 136, 136, 0.1)\"}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n                        [data-framer-component-container=\"true\"] div:has(> .${CANVAS_HIDDEN_CLASS_NAME}) {\n                            display: none !important;\n                        }`}})]}):/*#__PURE__*/_jsxs(\"div\",{...otherProps,ref:ref,className:HIDDEN_CLASS_NAME,children:[/*#__PURE__*/_jsx(HideElement,{}),children]});});HiddenComponentLabel.displayName=\"FramerForms/Hidden Component Label\";export function iconProp({size=16,buttonTitle=\"Icon\",controls={}}={}){return{type:ControlType.Object,buttonTitle,optional:true,defaultValue:{color:\"#999\",size},controls:{image:{type:ControlType.Image},color:{type:ControlType.Color,optional:true,defaultValue:\"#999\"},size:{type:ControlType.Number,defaultValue:size,min:1,step:1,displayStepper:true},...controls}};}export function Icon({image,color,size,style={},defaultImage}){return /*#__PURE__*/_jsx(\"div\",{style:{width:size,height:size,minWidth:size,minHeight:size,pointerEvents:\"none\",backgroundColor:color,backgroundImage:color?\"none\":image?`url('${image}')`:defaultImage,maskImage:image?`url('${image}')`:defaultImage,backgroundSize:\"contain\",backgroundPosition:\"center\",maskSize:\"contain\",maskPosition:\"center\",...style}});}Icon.displayName=\"FramerForms/Icon\";export function Border({width,style,transition=null,borderColor=\"inherit\",opacity=1}){return /*#__PURE__*/_jsx(motion.div,{animate:{borderColor,opacity},style:{position:\"absolute\",inset:0,borderWidth:width,borderStyle:style,borderRadius:\"inherit\",pointerEvents:\"none\"},initial:false,transition:transition});}Border.displayName=\"FramerForms/Border Staging\";export function createBackground(fill,on=null,focused=null,invalid=null){if(fill){const onOff=typeof on==\"boolean\";if(fill.type==\"color\"){let color=invalid&&fill.colorInvalid||focused&&fill.colorFocus||(onOff?on?fill.colorOn:fill.colorOff:fill.color);return{backgroundColor:color,backgroundImage:\"none\"};}else{const colorA=invalid&&fill.colorAInvalid||focused&&fill.colorAFocus||(onOff?on?fill.colorAOn:fill.colorAOff:fill.colorA);const colorB=invalid&&fill.colorBInvalid||focused&&fill.colorBFocus||(onOff?on?fill.colorBOn:fill.colorBOff:fill.colorB);return{backgroundColor:\"none\",backgroundImage:`linear-gradient(${fill.gradientAngle}deg, ${colorB}, ${colorA})`};}}return{};}export function parsePadding(padding){if(typeof padding!==\"string\"){return[0,0,0,0];}const values=padding.split(\" \");const parsedValues=values.map(value=>parseInt(value.replace(\"px\",\"\"),10));switch(parsedValues.length){case 1:const p=parsedValues[0];return[p,p,p,p];case 4:return parsedValues;}return[0,0,0,0];}export function fillProp({onOff=false,focus=true,invalid=true,optional=false,hidden=null,color=\"rgba(187, 187, 187, 0.15)\",colorA=\"#BBB\",colorB=\"#676767\",colorOn=\"rgba(70, 160, 219, 0.2)\",colorAOn=\"#66C2FF\",colorBOn=\"#0099FF\",colorOff=\"rgba(187, 187, 187, 0.15)\",colorAOff=\"#BBB\",colorBOff=\"#676767\"}={}){return{type:ControlType.Object,optional,hidden,icon:\"color\",defaultValue:{type:\"color\",...onOff?{colorOn,colorOff}:{color,colorA,colorB}},controls:{type:{type:ControlType.Enum,defaultValue:\"color\",options:[\"color\",\"linearGradient\"],optionTitles:[\"Color\",\"Gradient\"],displaySegmentedControl:true},...onOff?{colorOn:{type:ControlType.Color,defaultValue:colorOn,hidden:props=>props.type!==\"color\"},colorOff:{type:ControlType.Color,defaultValue:colorOff,hidden:props=>props.type!==\"color\"}}:{color:{type:ControlType.Color,defaultValue:color,hidden:props=>props.type!==\"color\"}},...focus?{colorFocus:{type:ControlType.Color,optional:true,title:\"Focus\",hidden:props=>props.type!==\"color\"}}:{},...invalid?{colorInvalid:{type:ControlType.Color,optional:true,title:\"Invalid\",hidden:props=>props.type!==\"color\"}}:{},...onOff?{colorAOn:{type:ControlType.Color,defaultValue:colorAOn,title:\"Colors On\",hidden:props=>props.type!==\"linearGradient\"},colorBOn:{type:ControlType.Color,defaultValue:colorBOn,title:\" \",hidden:props=>props.type!==\"linearGradient\"},colorAOff:{type:ControlType.Color,defaultValue:colorAOff,title:\"Colors Off\",hidden:props=>props.type!==\"linearGradient\"},colorBOff:{type:ControlType.Color,defaultValue:colorBOff,title:\" \",hidden:props=>props.type!==\"linearGradient\"}}:{colorA:{type:ControlType.Color,defaultValue:colorA,title:\"Colors\",hidden:props=>props.type!==\"linearGradient\"},colorB:{type:ControlType.Color,defaultValue:colorB,title:\" \",hidden:props=>props.type!==\"linearGradient\"}},...focus?{colorAFocus:{type:ControlType.Color,optional:true,title:\"Focus\",hidden:props=>props.type!==\"linearGradient\"},colorBFocus:{type:ControlType.Color,optional:true,title:\" \",hidden:props=>props.type!==\"linearGradient\"}}:{},...invalid?{colorAInvalid:{type:ControlType.Color,optional:true,title:\"Invalid\",hidden:props=>props.type!==\"linearGradient\"},colorBInvalid:{type:ControlType.Color,optional:true,title:\" \",hidden:props=>props.type!==\"linearGradient\"}}:{},gradientAngle:{type:ControlType.Number,defaultValue:0,title:\"Angle\",step:1,min:0,max:360,unit:\"\\xb0\",hidden:props=>props.type!=\"linearGradient\"}}};}export function borderProp({onOff=false,focus=true,invalid=true,defaultValue=true,color=\"rgba(136, 136, 136, 0.1)\",colorOn=\"#0099FF\",colorOff=\"rgba(136, 136, 136, 0.1)\",colorFocus=\"#0099FF\",colorInvalid=\"#FF5A6F\",hidden=null}={}){return{type:ControlType.Object,optional:true,hidden,defaultValue:defaultValue?{color,colorOn,colorOff,colorFocus,colorInvalid,width:\"1px\"}:undefined,controls:{...onOff?{colorOn:{type:ControlType.Color,defaultValue:colorOn},colorOff:{type:ControlType.Color,defaultValue:colorOff}}:{color:{type:ControlType.Color,defaultValue:color}},...focus?{colorFocus:{type:ControlType.Color,defaultValue:colorFocus,optional:true,title:\"Focus\"}}:{},...invalid?{colorInvalid:{type:ControlType.Color,defaultValue:colorInvalid,optional:true,title:\"Invalid\"}}:{},width:{type:ControlType.Padding,defaultValue:\"1px\"},style:{type:ControlType.Enum,defaultValue:\"solid\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"]}}};}export function shadowsProp({invalid=true,onOff=false}={}){return{type:ControlType.Object,buttonTitle:\"Shadows\",optional:true,controls:{...onOff?{on:{type:ControlType.BoxShadow,defaultValue:\"rgba(0, 153, 255, 0.5) 0px 2px 4px 0px\"},off:{type:ControlType.BoxShadow,defaultValue:\"rgba(0, 0, 0, 0.25) 0px 2px 4px 0px\"}}:{default:{type:ControlType.BoxShadow,defaultValue:\"rgba(0, 0, 0, 0.25) 0px 2px 4px 0px\"}},focus:{type:ControlType.BoxShadow},invalid:invalid?{type:ControlType.BoxShadow}:null}};}export function useCanvasState(ref){const[totalPages,setTotalPages]=useState(1);useEffect(()=>{const element=ref.current;let pages=null;function updateState(){setTotalPages(pages?pages.children.length:1);}if(element){const multiStepForms=document.querySelectorAll(\"div[data-framerforms-multi-step-form]\");for(const multiStepForm of multiStepForms){const form=multiStepForm.closest(\"form\")||multiStepForm.parentElement.parentElement.parentElement;if(form&&isAncestor(form,element)){pages=form.querySelector(':scope > [data-framer-name=\"Pages\" i]');}}}updateState();if(pages){const observer=new MutationObserver((mutationsList,observer)=>{for(let mutation of mutationsList){if(mutation.type===\"childList\"){updateState();}}});observer.observe(pages,{childList:true});return()=>observer.disconnect();}},[]);return{page:0,totalPages};}export function isAncestor(ancestorElement,descendantElement){if(!ancestorElement||!descendantElement){return false;}let currentElement=descendantElement;while(currentElement!==null){if(currentElement===ancestorElement){return true;}currentElement=currentElement.parentElement;}return false;}export function getFormInfo(element){const form=element?.closest(\"form\")??null;let formId=null;let pages=null;if(form){formId=form.getAttribute(\"framerforms-id\");pages=form.querySelector(':scope > [data-framer-name=\"Pages\" i]');if(!formId){formId=uuid();form.setAttribute(\"framerforms-id\",formId);}}return{form,formId,pages};}function uuid(){let d=new Date().getTime()// Timestamp\n;let d2=performance&&performance.now&&performance.now()*1e3||0// Time in microseconds since page-load or 0 if unsupported\n;return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(c){let r=Math.random()*16// random number between 0 and 16\n;if(d>0){// Use timestamp until depleted\nr=(d+r)%16|0;d=Math.floor(d/16);}else{// Use microseconds since page-load if supported\nr=(d2+r)%16|0;d2=Math.floor(d2/16);}return(c===\"x\"?r:r&3|8).toString(16);});}function parseQuizOptions(attr){if(!attr)return{};try{const v=JSON.parse(attr);return{caseSensitive:Boolean(v.caseSensitive),ignoreSpaces:Boolean(v.ignoreSpaces),useRegex:Boolean(v.useRegex),matchMode:v.matchMode===\"set\"?\"set\":\"exact\",valueSeparator:typeof v.valueSeparator===\"string\"?v.valueSeparator:\", \",multiSelectAggregate:normalizeQuizMultiSelectAggregate(v.multiSelectAggregate)};}catch{return{};}}function readQuizMultiSelectAggregate(el,opts){const fromAttr=el.getAttribute(\"data-framerforms-quiz-multiselect-aggregate\");if(fromAttr){return normalizeQuizMultiSelectAggregate(fromAttr);}return normalizeQuizMultiSelectAggregate(opts.multiSelectAggregate);}function parseExpectedAnswer(raw){if(raw==null||raw===\"\")return\"\";const trimmed=raw.trim();if(trimmed.startsWith(\"[\")&&trimmed.endsWith(\"]\")){try{const v=JSON.parse(trimmed);if(Array.isArray(v)){return v.map(x=>String(x));}}catch{return raw;}}return raw;}function normalizeCompare(s,ignoreSpaces,caseSensitive){let out=s;if(ignoreSpaces)out=out.replace(/\\s/g,\"\");if(!caseSensitive)out=out.toLowerCase();return out;}function isQuizAnswerCorrect(value,expected,opts){const matchMode=opts.matchMode??\"exact\";if(matchMode===\"set\"&&Array.isArray(expected)&&expected.length>0){const sep=opts.valueSeparator??\", \";const userParts=value.split(sep).map(s=>s.trim()).filter(Boolean);const expParts=expected.map(e=>String(e).trim()).filter(Boolean);if(userParts.length!==expParts.length)return false;const normOne=s=>normalizeCompare(s,!!opts.ignoreSpaces,!!opts.caseSensitive);const sortedUser=[...userParts].map(normOne).sort();const sortedExp=[...expParts].map(normOne).sort();return sortedUser.every((x,i)=>x===sortedExp[i]);}const caseSensitive=!!opts.caseSensitive;const ignoreSpaces=!!opts.ignoreSpaces;const useRegex=!!opts.useRegex;if(Array.isArray(expected)){return expected.some(e=>{const exp=String(e);if(useRegex){try{return new RegExp(exp).test(value);}catch{return false;}}return normalizeCompare(value,ignoreSpaces,caseSensitive)===normalizeCompare(exp,ignoreSpaces,caseSensitive);});}const exp=String(expected);if(useRegex){try{return new RegExp(exp).test(value);}catch{return false;}}return normalizeCompare(value,ignoreSpaces,caseSensitive)===normalizeCompare(exp,ignoreSpaces,caseSensitive);}function readQuizQuestionPoints(el){const pCorrect=Number(el.getAttribute(\"data-framerforms-quiz-points\")??\"1\");const pWrong=Number(el.getAttribute(\"data-framerforms-quiz-wrong-points\")??\"0\");return{maxPointsIfCorrect:Number.isFinite(pCorrect)?pCorrect:1,pointsIfWrong:Number.isFinite(pWrong)?pWrong:0};}/**\n * Read one quiz field’s live answer, expected answer text, and correctness.\n * Use the field’s `name` (same as in the Layers / form). For radio groups,\n * pass the shared `name` attribute.\n */export function getQuestionData(form,inputName){const empty={userValue:\"\",correctAnswer:\"\",isCorrect:null,isQuizField:false,maxPointsIfCorrect:0,pointsIfWrong:0};if(!form||!inputName?.trim())return empty;const esc=typeof CSS!==\"undefined\"&&typeof CSS.escape===\"function\"?CSS.escape(inputName):inputName.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"');const sel=`input[name=\"${esc}\"], select[name=\"${esc}\"], textarea[name=\"${esc}\"]`;const all=form.querySelectorAll(sel);if(all.length===0)return empty;let el=all[0];if(all.length>1&&el instanceof HTMLInputElement&&el.type===\"radio\"){let checked=null;for(const n of all){if(n instanceof HTMLInputElement&&n.type===\"radio\"&&n.checked){checked=n;break;}}el=checked??el;}const userValue=getQuizFieldValue(el);if(el.getAttribute(\"data-framerforms-quiz\")!==\"true\"){return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:false,maxPointsIfCorrect:0,pointsIfWrong:0};}if(el.getAttribute(\"data-framerforms-quiz-scoring\")===\"weighted\"){const parsed=parseOptionPointsAttr(el.getAttribute(\"data-framerforms-quiz-option-points\"));if(!parsed){return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:true,maxPointsIfCorrect:0,pointsIfWrong:0,earnedPoints:0};}const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const{earned,maxPoints}=scoreWeightedFieldValue(userValue,parsed,{...opts,multiSelectAggregate:readQuizMultiSelectAggregate(el,opts)});return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:true,maxPointsIfCorrect:maxPoints,pointsIfWrong:0,earnedPoints:earned};}const expectedRaw=el.getAttribute(\"data-framerforms-correct-answer\")??\"\";const expected=parseExpectedAnswer(expectedRaw);const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const{maxPointsIfCorrect,pointsIfWrong}=readQuizQuestionPoints(el);const correctAnswer=Array.isArray(expected)?expected.map(String).join(\", \"):String(expected??\"\");if(expected===\"\"||Array.isArray(expected)&&expected.length===0){return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:true,maxPointsIfCorrect,pointsIfWrong};}const isOk=isQuizAnswerCorrect(userValue,expected,opts);return{userValue,correctAnswer,isCorrect:isOk,isQuizField:true,maxPointsIfCorrect,pointsIfWrong};}function getQuizFieldValue(el){if(el instanceof HTMLSelectElement){return el.value??\"\";}const inp=el;if(inp.type===\"checkbox\"||inp.type===\"radio\"){return inp.checked?inp.value||\"on\":\"\";}return inp.value??\"\";}/**\n * Computes quiz score from the form DOM.\n * Correct/incorrect fields need `data-framerforms-correct-answer`.\n * Weighted fields use `data-framerforms-quiz-option-points` (no correct answer).\n * Skips inputs disabled for multi-step unvisited pages (`disabled=\"FramerForms\"`).\n */export function calculateQuizScoreFromForm(form,_scoringMode){const nodes=form.querySelectorAll('input[data-framerforms-quiz=\"true\"], select[data-framerforms-quiz=\"true\"], textarea[data-framerforms-quiz=\"true\"]');let correct=0;let total=0;let points=0;let maxPoints=0;const answers={};const countedNames=new Set;let fieldIndex=0;const fieldKey=el=>{fieldIndex+=1;return el.name?.trim()?el.name:`quiz-field-${fieldIndex}`;};nodes.forEach(el=>{if(el.getAttribute(\"disabled\")===\"FramerForms\")return;const nameKey=el.name?.trim();if(nameKey&&countedNames.has(nameKey))return;const scoringMethod=el.getAttribute(\"data-framerforms-quiz-scoring\")??\"correctIncorrect\";if(scoringMethod===\"weighted\"){const parsed=parseOptionPointsAttr(el.getAttribute(\"data-framerforms-quiz-option-points\"));if(!parsed)return;const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const value=getQuizFieldValue(el);const{earned,maxPoints:fieldMax}=scoreWeightedFieldValue(value,parsed,{...opts,multiSelectAggregate:readQuizMultiSelectAggregate(el,opts)});const key=fieldKey(el);if(nameKey)countedNames.add(nameKey);total+=1;maxPoints+=fieldMax;points+=earned;answers[key]={isCorrect:null,earnedPoints:earned};return;}if(!el.hasAttribute(\"data-framerforms-correct-answer\"))return;const expectedRaw=el.getAttribute(\"data-framerforms-correct-answer\")??\"\";const expected=parseExpectedAnswer(expectedRaw);if(expected===\"\"||Array.isArray(expected)&&expected.length===0)return;const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const pCorrect=Number(el.getAttribute(\"data-framerforms-quiz-points\")??\"1\");const pWrong=Number(el.getAttribute(\"data-framerforms-quiz-wrong-points\")??\"0\");const pc=Number.isFinite(pCorrect)?pCorrect:1;const pw=Number.isFinite(pWrong)?pWrong:0;const key=fieldKey(el);if(nameKey)countedNames.add(nameKey);total+=1;maxPoints+=pc;const value=getQuizFieldValue(el);const isOk=isQuizAnswerCorrect(value,expected,opts);if(isOk){correct+=1;points+=pc;answers[key]={isCorrect:true,earnedPoints:pc};}else{points+=pw;answers[key]={isCorrect:false,earnedPoints:pw};}});return{correct,total,points,maxPoints,answers};}// ============================================================================\n// FORM UTILITIES\n// ============================================================================\n/**\n * Clears all form input values and dispatches events to notify React components.\n * Handles regular inputs, checkboxes, radios, and custom FramerForms inputs\n * (RatingInput, PhoneNumberInput, etc.).\n *\n * @param form - The form element to clear\n */export function clearFormInputs(form){if(!form)return;// Reset the form (clears most inputs)\nform.reset();// Manually clear inputs that might not be reset by form.reset()\nconst inputs=form.querySelectorAll(\"input, select, textarea\");inputs.forEach(input=>{if(input.type===\"checkbox\"||input.type===\"radio\"){input.checked=false;}else{input.value=\"\";}// Dispatch events to notify React components\ninput.dispatchEvent(new Event(\"input\",{bubbles:true}));input.dispatchEvent(new Event(\"change\",{bubbles:true}));});// Clear custom FramerForms inputs (RatingInput, PhoneNumberInput, etc.)\n// These use HiddenInput with data-framerforms-set-value-event=\"true\"\nconst customInputs=form.querySelectorAll('input[data-framerforms-set-value-event=\"true\"]');customInputs.forEach(input=>{const inputName=input.name?.toLowerCase()||\"\";// Identify component type by checking parent structure\nconst parent=input.closest(\"[data-framerforms]\");const buttonCount=parent?.querySelectorAll('button[type=\"button\"]').length||0;// RatingInput typically has 2-10 star buttons\nconst isLikelyRating=buttonCount>=2&&buttonCount<=10;// RatingInput needs 0 to clear, others need empty string\nconst clearValue=isLikelyRating||inputName.includes(\"rating\")?0:\"\";input.dispatchEvent(new CustomEvent(\"framerFormsSetValue\",{detail:clearValue,bubbles:true}));});}// ============================================================================\n// AUTOFILL STYLING OVERRIDE\n// ============================================================================\n/**\n * Sets up global CSS to override browser autofill styling.\n * This prevents browsers from applying their default yellow/blue backgrounds\n * to autofilled form inputs, which can break custom designs.\n *\n * Runs once when the module loads and applies to all inputs on the page,\n * including native Framer components.\n */function setupAutofillOverride(){// Check if we're in a browser environment\nif(typeof document===\"undefined\")return;// Check if the style tag already exists to avoid duplicates\nconst existingStyle=document.getElementById(\"framerforms-autofill-override\");if(existingStyle)return;// Create and inject the style tag\nconst style=document.createElement(\"style\");style.id=\"framerforms-autofill-override\";style.textContent=`\n        /* Override browser autofill styling for all inputs */\n        input:-webkit-autofill,\n        input:-webkit-autofill:hover,\n        input:-webkit-autofill:focus,\n        input:-webkit-autofill:active,\n        select:-webkit-autofill,\n        select:-webkit-autofill:hover,\n        select:-webkit-autofill:focus,\n        select:-webkit-autofill:active,\n        textarea:-webkit-autofill,\n        textarea:-webkit-autofill:hover,\n        textarea:-webkit-autofill:focus,\n        textarea:-webkit-autofill:active {\n            /* Use box-shadow to override background color */\n            /* The large spread radius ensures it covers the entire input */\n            -webkit-box-shadow: 0 0 0 1000px transparent inset !important;\n            box-shadow: 0 0 0 1000px transparent inset !important;\n            \n            /* Override text color */\n            -webkit-text-fill-color: inherit !important;\n            color: inherit !important;\n            \n            /* Use transition trick to prevent background color changes */\n            /* The extremely long duration (5000s) effectively prevents the change */\n            transition: background-color 5000s ease-in-out 0s, \n                        color 5000s ease-in-out 0s !important;\n        }\n        \n        /* Ensure autofilled inputs maintain their original styling */\n        input:-webkit-autofill::first-line,\n        select:-webkit-autofill::first-line,\n        textarea:-webkit-autofill::first-line {\n            -webkit-text-fill-color: inherit !important;\n            color: inherit !important;\n        }\n    `;// Append to document head\ndocument.head.appendChild(style);}// Run the setup immediately when the module loads\n// This ensures it applies globally before any components render\nif(typeof document!==\"undefined\"){// Use requestAnimationFrame to ensure DOM is ready\nif(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",setupAutofillOverride);}else{// DOM is already loaded, run immediately\nsetupAutofillOverride();}}\nexport const __FramerMetadata__ = {\"exports\":{\"getFormInfo\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"iconProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HIDDEN_CLASS_NAME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parsePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createBackground\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InsertFrameNeedHelpProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScoringMode\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useQuizStoreApi\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormSubmittedSetter\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInstanceId\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculateQuizScoreFromForm\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenComponentLabel\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useQuizStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormSubmittedStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormInfo\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenInputProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormSubmittedStoreState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormSubmittedStoreApi\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HideElement\":{\"type\":\"reactComponent\",\"name\":\"HideElement\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"createEmptyQuizScore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizRuntimeState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"shadowsProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isAncestor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MultiStepFormState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizScore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenComponentLabelProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCanvasState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Border\":{\"type\":\"reactComponent\",\"name\":\"Border\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearFormInputs\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizStoreState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenInput\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"getQuestionData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fillProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MultiStepFormStore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiStepFormStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertFrameSupportPropertyControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizStoreSetter\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PageHistory\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LogicConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenInputOwnProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FramerFormsShared.map","export const countries=[\"Afghanistan\",\"\\xc5land Islands\",\"Albania\",\"Algeria\",\"American Samoa\",\"Andorra\",\"Angola\",\"Anguilla\",\"Antarctica\",\"Antigua & Barbuda\",\"Argentina\",\"Armenia\",\"Aruba\",\"Ascension Island\",\"Australia\",\"Austria\",\"Azerbaijan\",\"Bahamas\",\"Bahrain\",\"Bangladesh\",\"Barbados\",\"Belarus\",\"Belgium\",\"Belize\",\"Benin\",\"Bermuda\",\"Bhutan\",\"Bolivia\",\"Bosnia & Herzegovina\",\"Botswana\",\"Bouvet Island\",\"Brazil\",\"British Indian Ocean Territory\",\"British Virgin Islands\",\"Brunei\",\"Bulgaria\",\"Burkina Faso\",\"Burundi\",\"Cambodia\",\"Cameroon\",\"Canada\",\"Canary Islands\",\"Cape Verde\",\"Caribbean Netherlands\",\"Cayman Islands\",\"Central African Republic\",\"Ceuta & Melilla\",\"Chad\",\"Chile\",\"China\",\"Christmas Island\",\"Clipperton Island\",\"Cocos (Keeling) Islands\",\"Colombia\",\"Comoros\",\"Congo - Brazzaville\",\"Congo - Kinshasa\",\"Cook Islands\",\"Costa Rica\",\"C\\xf4te D’Ivoire\",\"Croatia\",\"Cuba\",\"Cura\\xe7ao\",\"Cyprus\",\"Czechia\",\"Denmark\",\"Diego Garcia\",\"Djibouti\",\"Dominica\",\"Dominican Republic\",\"Ecuador\",\"Egypt\",\"El Salvador\",\"England\",\"Equatorial Guinea\",\"Eritrea\",\"Estonia\",\"Ethiopia\",\"European Union\",\"Falkland Islands\",\"Faroe Islands\",\"Fiji\",\"Finland\",\"France\",\"French Guiana\",\"French Polynesia\",\"French Southern Territories\",\"Gabon\",\"Gambia\",\"Georgia\",\"Germany\",\"Ghana\",\"Gibraltar\",\"Greece\",\"Greenland\",\"Grenada\",\"Guadeloupe\",\"Guam\",\"Guatemala\",\"Guernsey\",\"Guinea\",\"Guinea-Bissau\",\"Guyana\",\"Haiti\",\"Heard & McDonald Islands\",\"Honduras\",\"Hong Kong SAR China\",\"Hungary\",\"Iceland\",\"India\",\"Indonesia\",\"Iran\",\"Iraq\",\"Ireland\",\"Isle of Man\",\"Israel\",\"Italy\",\"Jamaica\",\"Japan\",\"Jersey\",\"Jordan\",\"Kazakhstan\",\"Kenya\",\"Kiribati\",\"Kosovo\",\"Kuwait\",\"Kyrgyzstan\",\"Laos\",\"Latvia\",\"Lebanon\",\"Lesotho\",\"Liberia\",\"Libya\",\"Liechtenstein\",\"Lithuania\",\"Luxembourg\",\"Macau SAR China\",\"Macedonia\",\"Madagascar\",\"Malawi\",\"Malaysia\",\"Maldives\",\"Mali\",\"Malta\",\"Marshall Islands\",\"Martinique\",\"Mauritania\",\"Mauritius\",\"Mayotte\",\"Mexico\",\"Micronesia\",\"Moldova\",\"Monaco\",\"Mongolia\",\"Montenegro\",\"Montserrat\",\"Morocco\",\"Mozambique\",\"Myanmar (Burma)\",\"Namibia\",\"Nauru\",\"Nepal\",\"Netherlands\",\"New Caledonia\",\"New Zealand\",\"Nicaragua\",\"Niger\",\"Nigeria\",\"Niue\",\"Norfolk Island\",\"North Korea\",\"Northern Mariana Islands\",\"Norway\",\"Oman\",\"Pakistan\",\"Palau\",\"Palestinian Territories\",\"Panama\",\"Papua New Guinea\",\"Paraguay\",\"Peru\",\"Philippines\",\"Pitcairn Islands\",\"Poland\",\"Portugal\",\"Puerto Rico\",\"Qatar\",\"R\\xe9union\",\"Romania\",\"Russia\",\"Rwanda\",\"Samoa\",\"San Marino\",\"S\\xe3o Tom\\xe9 & Pr\\xedncipe\",\"Saudi Arabia\",\"Scotland\",\"Senegal\",\"Serbia\",\"Seychelles\",\"Sierra Leone\",\"Singapore\",\"Sint Maarten\",\"Slovakia\",\"Slovenia\",\"Solomon Islands\",\"Somalia\",\"South Africa\",\"South Georgia & South Sandwich Islands\",\"South Korea\",\"South Sudan\",\"Spain\",\"Sri Lanka\",\"St. Barth\\xe9lemy\",\"St. Helena\",\"St. Kitts & Nevis\",\"St. Lucia\",\"St. Martin\",\"St. Pierre & Miquelon\",\"St. Vincent & Grenadines\",\"Sudan\",\"Suriname\",\"Svalbard & Jan Mayen\",\"Swaziland\",\"Sweden\",\"Switzerland\",\"Syria\",\"Taiwan\",\"Tajikistan\",\"Tanzania\",\"Thailand\",\"Timor-Leste\",\"Togo\",\"Tokelau\",\"Tonga\",\"Trinidad & Tobago\",\"Tristan Da Cunha\",\"Tunisia\",\"Turkey\",\"Turkmenistan\",\"Turks & Caicos Islands\",\"Tuvalu\",\"U.S. Outlying Islands\",\"U.S. Virgin Islands\",\"Uganda\",\"Ukraine\",\"United Arab Emirates\",\"United Kingdom\",\"United Nations\",\"United States\",\"Uruguay\",\"Uzbekistan\",\"Vanuatu\",\"Vatican City\",\"Venezuela\",\"Vietnam\",\"Wales\",\"Wallis & Futuna\",\"Western Sahara\",\"Yemen\",\"Zambia\",\"Zimbabwe\"];export const countryEmojis=[\"🇦🇫\",\"🇦🇽\",\"🇦🇱\",\"🇩🇿\",\"🇦🇸\",\"🇦🇩\",\"🇦🇴\",\"🇦🇮\",\"🇦🇶\",\"🇦🇬\",\"🇦🇷\",\"🇦🇲\",\"🇦🇼\",\"🇦🇨\",\"🇦🇺\",\"🇦🇹\",\"🇦🇿\",\"🇧🇸\",\"🇧🇭\",\"🇧🇩\",\"🇧🇧\",\"🇧🇾\",\"🇧🇪\",\"🇧🇿\",\"🇧🇯\",\"🇧🇲\",\"🇧🇹\",\"🇧🇴\",\"🇧🇦\",\"🇧🇼\",\"🇧🇻\",\"🇧🇷\",\"🇮🇴\",\"🇻🇬\",\"🇧🇳\",\"🇧🇬\",\"🇧🇫\",\"🇧🇮\",\"🇰🇭\",\"🇨🇲\",\"🇨🇦\",\"🇮🇨\",\"🇨🇻\",\"🇧🇶\",\"🇰🇾\",\"🇨🇫\",\"🇪🇦\",\"🇹🇩\",\"🇨🇱\",\"🇨🇳\",\"🇨🇽\",\"🇨🇵\",\"🇨🇨\",\"🇨🇴\",\"🇰🇲\",\"🇨🇬\",\"🇨🇩\",\"🇨🇰\",\"🇨🇷\",\"🇨🇮\",\"🇭🇷\",\"🇨🇺\",\"🇨🇼\",\"🇨🇾\",\"🇨🇿\",\"🇩🇰\",\"🇩🇬\",\"🇩🇯\",\"🇩🇲\",\"🇩🇴\",\"🇪🇨\",\"🇪🇬\",\"🇸🇻\",\"🏴󠁧󠁢󠁥󠁮󠁧󠁿\",\"🇬🇶\",\"🇪🇷\",\"🇪🇪\",\"🇪🇹\",\"🇪🇺\",\"🇫🇰\",\"🇫🇴\",\"🇫🇯\",\"🇫🇮\",\"🇫🇷\",\"🇬🇫\",\"🇵🇫\",\"🇹🇫\",\"🇬🇦\",\"🇬🇲\",\"🇬🇪\",\"🇩🇪\",\"🇬🇭\",\"🇬🇮\",\"🇬🇷\",\"🇬🇱\",\"🇬🇩\",\"🇬🇵\",\"🇬🇺\",\"🇬🇹\",\"🇬🇬\",\"🇬🇳\",\"🇬🇼\",\"🇬🇾\",\"🇭🇹\",\"🇭🇲\",\"🇭🇳\",\"🇭🇰\",\"🇭🇺\",\"🇮🇸\",\"🇮🇳\",\"🇮🇩\",\"🇮🇷\",\"🇮🇶\",\"🇮🇪\",\"🇮🇲\",\"🇮🇱\",\"🇮🇹\",\"🇯🇲\",\"🇯🇵\",\"🇯🇪\",\"🇯🇴\",\"🇰🇿\",\"🇰🇪\",\"🇰🇮\",\"🇽🇰\",\"🇰🇼\",\"🇰🇬\",\"🇱🇦\",\"🇱🇻\",\"🇱🇧\",\"🇱🇸\",\"🇱🇷\",\"🇱🇾\",\"🇱🇮\",\"🇱🇹\",\"🇱🇺\",\"🇲🇴\",\"🇲🇰\",\"🇲🇬\",\"🇲🇼\",\"🇲🇾\",\"🇲🇻\",\"🇲🇱\",\"🇲🇹\",\"🇲🇭\",\"🇲🇶\",\"🇲🇷\",\"🇲🇺\",\"🇾🇹\",\"🇲🇽\",\"🇫🇲\",\"🇲🇩\",\"🇲🇨\",\"🇲🇳\",\"🇲🇪\",\"🇲🇸\",\"🇲🇦\",\"🇲🇿\",\"🇲🇲\",\"🇳🇦\",\"🇳🇷\",\"🇳🇵\",\"🇳🇱\",\"🇳🇨\",\"🇳🇿\",\"🇳🇮\",\"🇳🇪\",\"🇳🇬\",\"🇳🇺\",\"🇳🇫\",\"🇰🇵\",\"🇲🇵\",\"🇳🇴\",\"🇴🇲\",\"🇵🇰\",\"🇵🇼\",\"🇵🇸\",\"🇵🇦\",\"🇵🇬\",\"🇵🇾\",\"🇵🇪\",\"🇵🇭\",\"🇵🇳\",\"🇵🇱\",\"🇵🇹\",\"🇵🇷\",\"🇶🇦\",\"🇷🇪\",\"🇷🇴\",\"🇷🇺\",\"🇷🇼\",\"🇼🇸\",\"🇸🇲\",\"🇸🇹\",\"🇸🇦\",\"🏴󠁧󠁢󠁳󠁣󠁴󠁿\",\"🇸🇳\",\"🇷🇸\",\"🇸🇨\",\"🇸🇱\",\"🇸🇬\",\"🇸🇽\",\"🇸🇰\",\"🇸🇮\",\"🇸🇧\",\"🇸🇴\",\"🇿🇦\",\"🇬🇸\",\"🇰🇷\",\"🇸🇸\",\"🇪🇸\",\"🇱🇰\",\"🇧🇱\",\"🇸🇭\",\"🇰🇳\",\"🇱🇨\",\"🇲🇫\",\"🇵🇲\",\"🇻🇨\",\"🇸🇩\",\"🇸🇷\",\"🇸🇯\",\"🇸🇿\",\"🇸🇪\",\"🇨🇭\",\"🇸🇾\",\"🇹🇼\",\"🇹🇯\",\"🇹🇿\",\"🇹🇭\",\"🇹🇱\",\"🇹🇬\",\"🇹🇰\",\"🇹🇴\",\"🇹🇹\",\"🇹🇦\",\"🇹🇳\",\"🇹🇷\",\"🇹🇲\",\"🇹🇨\",\"🇹🇻\",\"🇺🇲\",\"🇻🇮\",\"🇺🇬\",\"🇺🇦\",\"🇦🇪\",\"🇬🇧\",\"🇺🇳\",\"🇺🇸\",\"🇺🇾\",\"🇺🇿\",\"🇻🇺\",\"🇻🇦\",\"🇻🇪\",\"🇻🇳\",\"🏴󠁧󠁢󠁷󠁬󠁳󠁿\",\"🇼🇫\",\"🇪🇭\",\"🇾🇪\",\"🇿🇲\",\"🇿🇼\"];// Country dial codes (international calling codes)\nexport const countryDialCodes=[\"93\",\"358\",\"355\",\"213\",\"1684\",\"376\",\"244\",\"1264\",\"672\",\"1268\",\"54\",\"374\",\"297\",\"247\",\"61\",\"43\",\"994\",\"1242\",\"973\",\"880\",\"1246\",\"375\",\"32\",\"501\",\"229\",\"1441\",\"975\",\"591\",\"387\",\"267\",\"47\",\"55\",\"246\",\"1284\",\"673\",\"359\",\"226\",\"257\",\"855\",\"237\",\"1\",\"34\",\"238\",\"599\",\"1345\",\"236\",\"34\",\"235\",\"56\",\"86\",\"61\",\"33\",\"61\",\"57\",\"269\",\"242\",\"243\",\"682\",\"506\",\"225\",\"385\",\"53\",\"599\",\"357\",\"420\",\"45\",\"246\",\"253\",\"1767\",\"1809\",\"593\",\"20\",\"503\",\"44\",\"240\",\"291\",\"372\",\"251\",\"\",\"500\",\"298\",\"679\",\"358\",\"33\",\"594\",\"689\",\"262\",\"241\",\"220\",\"995\",\"49\",\"233\",\"350\",\"30\",\"299\",\"1473\",\"590\",\"1671\",\"502\",\"44\",\"224\",\"245\",\"592\",\"509\",\"672\",\"504\",\"852\",\"36\",\"354\",\"91\",\"62\",\"98\",\"964\",\"353\",\"44\",\"972\",\"39\",\"1876\",\"81\",\"44\",\"962\",\"7\",\"254\",\"686\",\"383\",\"965\",\"996\",\"856\",\"371\",\"961\",\"266\",\"231\",\"218\",\"423\",\"370\",\"352\",\"853\",\"389\",\"261\",\"265\",\"60\",\"960\",\"223\",\"356\",\"692\",\"596\",\"222\",\"230\",\"262\",\"52\",\"691\",\"373\",\"377\",\"976\",\"382\",\"1664\",\"212\",\"258\",\"95\",\"264\",\"674\",\"977\",\"31\",\"687\",\"64\",\"505\",\"227\",\"234\",\"683\",\"672\",\"850\",\"1670\",\"47\",\"968\",\"92\",\"680\",\"970\",\"507\",\"675\",\"595\",\"51\",\"63\",\"870\",\"48\",\"351\",\"1787\",\"974\",\"262\",\"40\",\"7\",\"250\",\"685\",\"378\",\"239\",\"966\",\"44\",\"221\",\"381\",\"248\",\"232\",\"65\",\"1721\",\"421\",\"386\",\"677\",\"252\",\"27\",\"500\",\"82\",\"211\",\"34\",\"94\",\"590\",\"290\",\"1869\",\"1758\",\"590\",\"508\",\"1784\",\"249\",\"597\",\"47\",\"268\",\"46\",\"41\",\"963\",\"886\",\"992\",\"255\",\"66\",\"670\",\"228\",\"690\",\"676\",\"1868\",\"290\",\"216\",\"90\",\"993\",\"1649\",\"688\",\"1\",\"1340\",\"256\",\"380\",\"971\",\"44\",\"\",\"1\",\"598\",\"998\",\"678\",\"39\",\"58\",\"84\",\"44\",\"681\",\"212\",\"967\",\"260\",\"263\"];// Country-specific phone formats (using X for digits)\n// Default format for countries without specific format: \"XXXXXXXXXX\"\nexport const countryPhoneFormats=[\"XX XXX XXXX\",\"XXX XXX XXXX\",\"XXX XXX XXX\",\"XXXX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXX XXX\",\"XXX XXX XXX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"(XXX) XXX-XXXX\",\"XX XXXX-XXXX\",\"XX XXX XXX\",\"XXX XXXX\",\"XXXX\",\"XXXX XXX XXX\",\"XXXX XXXXXXXXX\",\"XX XXX XX XX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XXXX-XXXXXX\",\"(XXX) XXX-XXXX\",\"XX XXX-XX-XX\",\"XXXX XX XX XX\",\"XXX-XXXX\",\"XX XX XX XX\",\"(XXX) XXX-XXXX\",\"X XXXX XXXX\",\"X XXX XXXX\",\"XX XXX XXX\",\"XX XXX XXX\",\"XXX XX XXX\",\"(XX) XXXX-XXXX\",\"XXXX\",\"(XXX) XXX-XXXX\",\"XXX XXXX\",\"XXX XXX XXX\",\"XX XX XX XX\",\"XX XX XX XX\",\"XXX XXX XXX\",\"X XX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXX\",\"XXX XX XX\",\"XXX XXXX\",\"(XXX) XXX-XXXX\",\"XX XX XX XX\",\"XXX XXX XXX\",\"XX XX XX XX\",\"X XXXX XXXX\",\"XXX XXXX XXXX\",\"XXXX XXX XXX\",\"X XX XX XX XX\",\"XXXX XXX XXX\",\"X XXX XXXX\",\"XXX XX XX\",\"XX XXX XXXX\",\"XXX XXX XXXX\",\"XX XXX\",\"XXXX XXXX\",\"XX XX XX XX XX\",\"XX XXX XXXX\",\"X XXX XXXX\",\"X XXX XXXX\",\"XX XXX XXX\",\"XXX XXX XXX\",\"XX XX XX XX\",\"XXXX\",\"XX XX XX XX\",\"(XXX) XXX-XXXX\",\"(XXX) XXX-XXXX\",\"XX XXX XXXX\",\"XXX XXX XXXX\",\"XXXX XXXX\",\"XXXX XXXX XXX\",\"XXX XXX XXX\",\"X XXX XXX\",\"XXXX XXXX\",\"XXX XXX XXXX\",\"XXXXXXXXXX\",\"XXXXX\",\"XXX XXX\",\"XXX XXXX\",\"XX XXX XXXX\",\"X XX XX XX XX XX\",\"XXXX XX XX XX\",\"XX XX XX XX\",\"XXX XX XX XX\",\"X XX XX XX XX\",\"XXX XXXX\",\"XXX XX XX XX\",\"XXXX XXXXXXXXX\",\"XXX XXX XXXX\",\"XXXX XXXXX\",\"XXX XXX XXXX\",\"XX XX XX\",\"(XXX) XXX-XXXX\",\"XXXX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XXXX XXXX XXX\",\"XXX XX XX XX\",\"XXX XXXX\",\"XXX XXXX\",\"XX XX-XXXX\",\"XXXX XXXX\",\"XXXX-XXXX\",\"XXXX XXXX\",\"XX XXX XXXX\",\"XXX XXXX\",\"XXXXX XXXXX\",\"XXX-XXXX-XXXX\",\"XXX XXX XXXX\",\"XXX XXX XXXX\",\"XX XXX XXXX\",\"XXXX XXXX XXX\",\"XX-XXX-XXXX\",\"XXX XXX XXXX\",\"(XXX) XXX-XXXX\",\"XX-XXXX-XXXX\",\"XXXX XXXX XXX\",\"X XXXX XXXX\",\"X XXX XXX-XX-XX\",\"XXX XXXXXXX\",\"XXXXX\",\"XXX XXX XXX\",\"XXXX XXXX\",\"XXX XX-XX-XX\",\"XX XX XXX XXX\",\"XX XXX XXX\",\"X XXX XXX\",\"X XXX XXXX\",\"XXX XXX XXXX\",\"XX-XXXX-XXXX\",\"XXX XX XX\",\"(X-XX) XXXXX\",\"XXX XXX XXX\",\"XXXX XXXX\",\"XX XXX XXX\",\"XX XX XXX XX\",\"X XXXX XXXX\",\"XX-XXX XXXX\",\"XXX-XXXX\",\"XX XX XX XX\",\"XXXX XXXX\",\"XXX-XXXX\",\"XXXX XX XX XX\",\"XX XX XX XX\",\"XXXX XXXX\",\"XXX XX XX XX\",\"XX XXXX XXXX\",\"XXX-XXXX\",\"XXXX XXXX\",\"X XX XX XX XX\",\"XXXX XXXX\",\"XX XXX XXX\",\"(XXX) XXX-XXXX\",\"XXXX-XXXXXX\",\"XX XXX XXXX\",\"X XXXX XXXX\",\"XX XXX XXXX\",\"XXX XXXX\",\"XXX-XXX-XXXX\",\"X XXXX XXXX\",\"XX.XX.XX\",\"XXX XXX XXXX\",\"XXXX XXXX\",\"XX XX XX XX\",\"XXX XXX XXXX\",\"XXXX\",\"XXXX XXX\",\"XXX-XXXX-XXXX\",\"(XXX) XXX-XXXX\",\"XXX XX XXX\",\"XXXX XXXX\",\"XXX-XXXXXXX\",\"XXX-XXXX\",\"XX XXX XXXX\",\"XXXX-XXXX\",\"XXX XXXX\",\"XXXX XXX XXX\",\"XXX XXX XXX\",\"XXXX XXX XXXX\",\"XXXXX\",\"XXX XXX XXX\",\"XXX XXX XXX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XXX XX XX XX\",\"XXX XXX XXX\",\"XXX XXX-XX-XX\",\"XXX XXX XXX\",\"XXXX\",\"XXXX XXXXXXX\",\"XXX XXXX\",\"XX XXX XXXX\",\"XXXX XXXX XXX\",\"XX XXX XX XX\",\"XX XXX XXXX\",\"X XXX XXX\",\"XX XXX XXX\",\"XXXX XXXX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXX\",\"XX XXX XXX\",\"XXXX\",\"XX XXXX XXX\",\"XX XXX XXXX\",\"XXXXX\",\"XX-XXXX-XXXX\",\"XXXX XXX XXX\",\"XXX XXX XXX\",\"XX X XXX XXXX\",\"XXXX XX XX XX\",\"XXXX\",\"(XXX) XXX-XXXX\",\"(XXX) XXX-XXXX\",\"XXXX XX XX XX\",\"XX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXXX\",\"XXX-XXXX\",\"XXX XX XXX\",\"XXXX XXXX\",\"XX-XXX XX XX\",\"XX XXX XX XX\",\"XXX XXX XXXX\",\"XXXX XXX XXX\",\"XXX XX-XX-XX\",\"XXX XXX XXXX\",\"XX-XXX-XXXX\",\"XXXX XXXX\",\"XX XX XX XX\",\"XXXX\",\"XXXXX\",\"(XXX) XXX-XXXX\",\"XXXX\",\"XX XXX XXX\",\"XXX XXX XX XX\",\"XX XX-XX-XX\",\"(XXX) XXX-XXXX\",\"XXXXX\",\"(XXX) XXX-XXXX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXX\",\"XXX XXX XX XX\",\"XX XXX XXXX\",\"XXXX XXXX XXX\",\"XXXXXXXXXX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XX XXX XX XX\",\"XXXXX\",\"XX XXXX XXXX\",\"XXXX-XXXXXXX\",\"XXX XXXX XXX\",\"XXXX XXXX XXX\",\"XX XX XX\",\"XXXX-XXXXXX\",\"X XXX XXX\",\"XX XXXX XXXX\",\"X XXXX XXXX\"];// Helper function to get dial code by country name\nexport function getDialCodeByCountry(countryName){const index=countries.indexOf(countryName);return index>=0?countryDialCodes[index]:\"1\";}// Helper function to get phone format by country name\nexport function getPhoneFormatByCountry(countryName){const index=countries.indexOf(countryName);return index>=0?countryPhoneFormats[index]:\"(XXX) XXX-XXXX\";}// Helper function to get country by dial code\nexport function getCountryByDialCode(dialCode){const index=countryDialCodes.indexOf(dialCode);return index>=0?countries[index]:null;}\nexport const __FramerMetadata__ = {\"exports\":{\"getPhoneFormatByCountry\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countryDialCodes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDialCodeByCountry\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCountryByDialCode\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countryEmojis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countries\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countryPhoneFormats\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Countries.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{ControlType}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";import{parsePadding,fillProp,borderProp,shadowsProp,iconProp,createBackground}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";// ============================================================================\n// CONSTANTS\n// ============================================================================\nconst COLORS={selectedBg:\"rgba(0, 153, 255, 0.1)\",transparent:\"transparent\"};// ============================================================================\n// UTILITY FUNCTIONS\n// ============================================================================\nconst hoverHandlers=(isSelected,hoverBg)=>({onMouseEnter:e=>{if(!isSelected)e.currentTarget.style.backgroundColor=hoverBg;},onMouseLeave:e=>{if(!isSelected)e.currentTarget.style.backgroundColor=COLORS.transparent;}});// ============================================================================\n// REUSABLE DROPDOWN COMPONENTS\n// ============================================================================\n/**\n * Standard dropdown option item component.\n */export function DropdownItem({option,isSelected,onSelect,color,font,padding,hoverBg=\"rgba(255, 255, 255, 0.1)\",showBorder=false}){if(option.type===\"line\"){return /*#__PURE__*/_jsx(\"div\",{style:{height:1,backgroundColor:\"rgba(0, 0, 0, 0.1)\",margin:`4px 0`}});}return /*#__PURE__*/_jsx(\"div\",{onClick:()=>onSelect(option.value||\"\"),style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",padding,cursor:\"pointer\",backgroundColor:isSelected?COLORS.selectedBg:COLORS.transparent,...font,fontSize:font.fontSize||14,borderBottom:showBorder?\"1px solid rgba(0, 0, 0, 0.1)\":\"none\"},...hoverHandlers(isSelected,hoverBg),children:/*#__PURE__*/_jsx(\"span\",{style:{width:\"fitContent\",color},children:option.title||option.value})});}/**\n * Dropdown search input component.\n */export function DropdownSearch({searchInputRef,searchQuery,onSearchChange,placeholder,color,font,padding,placeholderColor,containerId,showBorder,borderColor}){const searchInputId=`search-${containerId}`;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{padding,borderBottom:showBorder?`1px solid ${borderColor}`:\"none\"},children:/*#__PURE__*/_jsx(\"input\",{ref:searchInputRef,id:searchInputId,type:\"text\",placeholder:placeholder,value:searchQuery,onChange:e=>onSearchChange(e.target.value),style:{width:\"100%\",border:\"none\",outline:\"none\",background:\"transparent\",color,...font,fontSize:font.fontSize||14}})}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`#${searchInputId}::placeholder { color: ${placeholderColor||color+\"80\"}; }`}})]});}/**\n * Scrollable dropdown content area with customizable scrollbar.\n */export function DropdownScrollArea({children,containerId,isCanvas,showDropdown,scrollbar}){const scrollableId=`scrollable-${containerId}`;const showScrollbar=scrollbar?.show!==false;const scrollbarWidth=scrollbar?.width||8;const scrollbarBgColor=scrollbar?.bgColor||\"rgba(0, 0, 0, 0.2)\";const forceScrollbar=isCanvas&&showDropdown&&showScrollbar;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:showScrollbar?`\n                        #${scrollableId}::-webkit-scrollbar {\n                            width: ${scrollbarWidth}px;\n                        }\n                        #${scrollableId}::-webkit-scrollbar-track {\n                            background: transparent;\n                        }\n                        #${scrollableId}::-webkit-scrollbar-thumb {\n                            background: ${scrollbarBgColor};\n                            border-radius: ${scrollbarWidth/2}px;\n                        }\n                        #${scrollableId}::-webkit-scrollbar-thumb:hover {\n                            opacity: 0.8;\n                        }\n                        #${scrollableId} {\n                            scrollbar-width: thin;\n                            scrollbar-color: ${scrollbarBgColor} transparent;\n                            ${forceScrollbar?`overflow-y: scroll !important;`:\"\"}\n                        }\n                    `:`\n                        #${scrollableId}::-webkit-scrollbar {\n                            display: none;\n                        }\n                        #${scrollableId} {\n                            scrollbar-width: none;\n                            -ms-overflow-style: none;\n                        }\n                    `}}),/*#__PURE__*/_jsx(\"div\",{id:scrollableId,style:{overflowY:forceScrollbar?\"scroll\":\"auto\",flex:1},children:children})]});}/**\n * Generic dropdown content component.\n * Renders search (optional), header (optional), and options list.\n */export function GenericDropdownContent({options,selectedValue,onOptionSelect,color,font,padding,placeholderColor,dropdownStyle,containerId,isCanvas,showDropdown,showSearch=false,searchPlaceholder=\"Search...\",searchQuery=\"\",onSearchChange,searchInputRef,renderItem,renderHeader}){const hoverBg=dropdownStyle?.hoverBg||\"rgba(255, 255, 255, 0.1)\";const searchBorderColor=dropdownStyle?.searchBorderColor||\"rgba(0, 0, 0, 0.1)\";const hasResults=options.length>0;// Filter options based on search query if search is enabled\nconst filteredOptions=showSearch&&searchQuery?options.filter(opt=>{if(opt.type===\"line\")return false;const searchLower=searchQuery.toLowerCase();return(opt.title||\"\").toLowerCase().includes(searchLower)||(opt.value||\"\").toLowerCase().includes(searchLower);}):options;return /*#__PURE__*/_jsxs(_Fragment,{children:[showSearch&&onSearchChange&&/*#__PURE__*/_jsx(DropdownSearch,{searchInputRef:searchInputRef,searchQuery:searchQuery,onSearchChange:onSearchChange,placeholder:searchPlaceholder,color:color,font:font,padding:padding,placeholderColor:placeholderColor,containerId:containerId,showBorder:hasResults,borderColor:searchBorderColor}),/*#__PURE__*/_jsxs(DropdownScrollArea,{containerId:containerId,isCanvas:isCanvas,showDropdown:showDropdown,scrollbar:dropdownStyle?.scrollbar,children:[renderHeader?.(),filteredOptions.map((option,index)=>{const isSelected=option.value===selectedValue;const isLastBeforeLine=index<filteredOptions.length-1&&filteredOptions[index+1]?.type===\"line\";if(renderItem){return renderItem({option,isSelected,onSelect:onOptionSelect,color,font,padding,hoverBg,showBorder:isLastBeforeLine});}return /*#__PURE__*/_jsx(DropdownItem,{option:option,isSelected:isSelected,onSelect:onOptionSelect,color:color,font:font,padding:padding,hoverBg:hoverBg,showBorder:isLastBeforeLine},option.value||`line-${index}`);})]})]});}/**\n * Generic dropdown container component with animation support.\n * This is the core dropdown that can be customized for different use cases.\n */export function GenericDropdown(props){const{isOpen,dropdownRef,containerId,fill,isCanvas,showDropdown=false,right,left,width,dropdownStyle,borderRadius,bgBlur}=props;const shouldShow=isOpen||isCanvas&&showDropdown;if(!shouldShow)return null;// Parse border configuration\nconst borderWidth=dropdownStyle?.border?.width?parsePadding(dropdownStyle.border.width):[0,0,0,0];const borderColor=dropdownStyle?.border?.color||\"rgba(136, 136, 136, 0.1)\";const borderStyle=borderWidth.some(w=>w>0)?\"solid\":\"none\";// Use dropdownFill from dropdownStyle if provided, otherwise fall back to fill, otherwise use default\nconst fillToUse=dropdownStyle?.dropdownFill||fill;const backgroundStyle=createBackground(fillToUse);const defaultBgColor=\"#BBBBBB\"// Default dropdown background color (full opacity)\n;const dropdownStyleCSS={position:\"absolute\",top:\"100%\",left:left??0,right:right??undefined,width:width??document.querySelector(\"#\"+containerId)?.clientWidth??\"100%\",marginTop:dropdownStyle?.marginTop??4,backgroundColor:backgroundStyle.backgroundColor||defaultBgColor,backgroundImage:backgroundStyle.backgroundImage,borderRadius:borderRadius||\"8px\",boxShadow:dropdownStyle?.shadows?.default||\"0 4px 12px rgba(0, 0, 0, 0.15)\",zIndex:1e3,maxHeight:dropdownStyle?.height?`${dropdownStyle.height}px`:\"300px\",overflow:\"hidden\",display:\"flex\",flexDirection:\"column\",borderWidth:`${borderWidth[0]}px ${borderWidth[1]}px ${borderWidth[2]}px ${borderWidth[3]}px`,borderStyle,borderColor,backdropFilter:dropdownStyle?.bgBlur!==undefined&&dropdownStyle.bgBlur!==0?`blur(${dropdownStyle.bgBlur}px)`:bgBlur!==0?`blur(${bgBlur}px)`:undefined};const initialY=dropdownStyle?.initialY??-10;const animationConfig={initial:{opacity:0,y:initialY},animate:{opacity:1,y:0},exit:{opacity:0,y:initialY},transition:dropdownStyle?.animation?.type!==false?dropdownStyle?.animation:{duration:.2}};// Canvas preview mode: render without animation\nif(isCanvas&&showDropdown&&!isOpen){return /*#__PURE__*/_jsx(\"div\",{ref:dropdownRef,style:dropdownStyleCSS,children:/*#__PURE__*/_jsx(GenericDropdownContent,{...props})});}return /*#__PURE__*/_jsx(AnimatePresence,{children:shouldShow&&/*#__PURE__*/_jsx(motion.div,{ref:dropdownRef,...animationConfig,style:dropdownStyleCSS,children:/*#__PURE__*/_jsx(GenericDropdownContent,{...props})})});}// ============================================================================\n// PROPERTY CONTROLS (Exported for reuse)\n// ============================================================================\n/**\n * Dropdown style property controls.\n * Import and spread these in other components that use dropdowns.\n */export function getDropdownStyleControls(){return{height:{type:ControlType.Number,defaultValue:300,min:100,max:800,step:10,displayStepper:true,unit:\"px\",title:\"Height\"},animation:{type:ControlType.Transition,defaultValue:{type:\"easing\"},title:\"Animation\"},initialY:{type:ControlType.Number,defaultValue:-10,min:-100,max:100,step:1,displayStepper:true,unit:\"px\",title:\"Initial Y\"},marginTop:{type:ControlType.Number,defaultValue:4,min:0,max:32,step:1,displayStepper:true,unit:\"px\",title:\"Margin\"},hoverBg:{type:ControlType.Color,defaultValue:\"rgba(255, 255, 255, 0.1)\",title:\"Hover BG\"},searchBorderColor:{type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.1)\",title:\"Divider\"},scrollbar:{type:ControlType.Object,optional:true,title:\"Scrollbar\",controls:{show:{type:ControlType.Boolean,defaultValue:true,title:\"Show\"},width:{type:ControlType.Number,defaultValue:8,min:4,max:20,step:1,displayStepper:true,unit:\"px\",title:\"Width\",hidden:props=>props.show===false},bgColor:{type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.6)\",title:\"Color\",hidden:props=>props.show===false}}},dropdownFill:{...getDropdownFillControl(),title:\"Fill\"},bgBlur:{type:ControlType.Number,defaultValue:16,min:0,max:100,step:1,displayStepper:true,title:\"BG Blur\"},border:borderProp({invalid:false,focus:false}),shadows:shadowsProp({invalid:false})};}/**\n * Creates a dropdown property control object.\n * Use this in components that need dropdown settings.\n */export function dropdownProp(options={}){return{type:ControlType.Object,optional:false,title:options.title||\"Dropdown\",controls:getDropdownStyleControls()};}/**\n * Option item property controls for the options array.\n */export function getOptionItemControls(){return{type:{type:ControlType.Enum,defaultValue:\"text\",options:[\"text\",\"line\"],optionTitles:[\"Text\",\"Line\"],displaySegmentedControl:true},value:{type:ControlType.String,hidden:props=>props.type===\"line\"},title:{type:ControlType.String,hidden:props=>props.type===\"line\"},enabled:{type:ControlType.Boolean,defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>props.type===\"line\"},default:{type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>props.type===\"line\"}};}// ============================================================================\n// SHARED PROPERTY CONTROLS (Exported for reuse across components)\n// ============================================================================\n/**\n * Default values for shared controls.\n *\n * HOW TO USE:\n * - Change values here to cascade updates to ALL components (Dropdown, CountryInput, PhoneNumberInput)\n * - To override a default in a specific component, pass it as an option to getSharedStyleControls():\n *   Example: getSharedStyleControls({ color: \"#999999\" }) // Overrides default color\n *\n * AVAILABLE DEFAULTS:\n * - color: Default text color\n * - placeholderColor: Default placeholder text color\n * - fillColor: Default fill background color\n * - radius: Default border radius\n * - padding: Default padding\n * - fontSize: Default font size\n * - lineHeight: Default line height\n * - bgBlur: Background blur settings (min, max, step)\n */export const SHARED_DEFAULTS={color:\"#999999\",placeholderColor:\"#999999\",fillColor:\"rgba(187, 187, 187, 0.15)\",dropdownFillColor:\"rgba(187, 187, 187, 0.15)\",radius:\"10px\",padding:\"12px\",fontSize:14,lineHeight:1.2,bgBlur:{min:0,max:100,step:1}};/**\n * Factory function for color control.\n * @param defaultValue - Default color value (defaults to SHARED_DEFAULTS.color)\n */export function getColorControl(defaultValue=SHARED_DEFAULTS.color){return{type:ControlType.Color,defaultValue};}/**\n * Factory function for fill control.\n * @param options - Options for fillProp (invalid, color, etc.)\n */export function getFillControl(options={}){return fillProp({invalid:options.invalid!==false,color:options.color||SHARED_DEFAULTS.fillColor});}/**\n * Factory function for dropdown fill control.\n * @param defaultValue - Default dropdown fill color value (defaults to SHARED_DEFAULTS.dropdownFillColor)\n */export function getDropdownFillControl(defaultValue=SHARED_DEFAULTS.dropdownFillColor){return fillProp({invalid:false,focus:false,color:defaultValue});}/**\n * Factory function for font control.\n */export function getFontControl(){return{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:SHARED_DEFAULTS.fontSize,lineHeight:SHARED_DEFAULTS.lineHeight}};}/**\n * Factory function for radius control.\n * @param defaultValue - Default radius value (defaults to SHARED_DEFAULTS.radius)\n */export function getRadiusControl(defaultValue=SHARED_DEFAULTS.radius){return{type:ControlType.BorderRadius,defaultValue,title:\"Radius\"};}/**\n * Factory function for padding control.\n * @param defaultValue - Default padding value (defaults to SHARED_DEFAULTS.padding)\n */export function getPaddingControl(defaultValue=SHARED_DEFAULTS.padding){return{type:ControlType.Padding,defaultValue,title:\"Padding\"};}/**\n * Factory function for placeholder color control.\n * @param defaultValue - Default placeholder color value (defaults to SHARED_DEFAULTS.placeholderColor)\n * @param title - Title for the control (defaults to \"Placeholder Color\")\n * @param optional - Whether the control is optional (defaults to true)\n */export function getPlaceholderColorControl(defaultValue=SHARED_DEFAULTS.placeholderColor,title=\"Placeholder Color\",optional=true){return{type:ControlType.Color,defaultValue,title,...optional?{optional:true}:{}};}/**\n * Factory function for icon control.\n * @param buttonTitle - Title for the icon button (defaults to \"Caret\")\n */export function getIconControl(buttonTitle=\"Caret\"){return iconProp({buttonTitle});}/**\n * Factory function for border control.\n * @param options - Options for borderProp (invalid, focus, etc.)\n */export function getBorderControl(options={}){return borderProp({invalid:options.invalid!==false,focus:options.focus!==false});}/**\n * Factory function for shadows control.\n * @param options - Options for shadowsProp (invalid, etc.)\n */export function getShadowsControl(options={}){return shadowsProp({invalid:options.invalid!==false});}/**\n * Factory function for bgBlur control.\n */export function getBgBlurControl(){return{type:ControlType.Number,min:SHARED_DEFAULTS.bgBlur.min,max:SHARED_DEFAULTS.bgBlur.max,step:SHARED_DEFAULTS.bgBlur.step,displayStepper:true,title:\"BG Blur\"};}/**\n * Factory function for transition control.\n */export function getTransitionControl(){return{type:ControlType.Transition,defaultValue:{type:false}};}/**\n * Shared event handler controls.\n * These are identical across all components.\n */export const sharedEventControls={focusEvent:{type:ControlType.EventHandler,title:\"Focus\"},blurEvent:{type:ControlType.EventHandler,title:\"Blur\"},invalidEvent:{type:ControlType.EventHandler,title:\"Invalid\"}};/**\n * Shared style controls object.\n * Use this to get all common style controls at once.\n *\n * USAGE:\n *   ...getSharedStyleControls({ invalid: true })\n *\n * TO OVERRIDE DEFAULTS:\n *   ...getSharedStyleControls({\n *     color: \"#999999\",           // Override default color\n *     placeholderColor: \"#666\",   // Override default placeholder color\n *     fillColor: \"#353535\",       // Override default fill color\n *     radius: \"8px\",              // Override default radius\n *     padding: \"16px\",            // Override default padding\n *     invalid: true               // Enable invalid state styling\n *   })\n *\n * Individual controls can be overridden by passing options.\n * All defaults come from SHARED_DEFAULTS constant above.\n *\n * NOTE: Component-specific controls (like placeholder text) should be added separately,\n * as they differ per component (e.g., \"Select...\" vs \"Select a country...\" vs none).\n */export function getSharedStyleControls(options={}){return{font:getFontControl(),color:getColorControl(options.color),placeholderColor:getPlaceholderColorControl(options.placeholderColor,options.placeholderColorTitle,options.placeholderColorOptional),fill:getFillControl({invalid:options.invalid!==false,color:options.fillColor}),radius:getRadiusControl(options.radius),padding:getPaddingControl(options.padding),icon:getIconControl(options.iconTitle),border:getBorderControl({invalid:options.invalid!==false,focus:options.focus!==false}),shadows:getShadowsControl({invalid:options.invalid!==false}),bgBlur:getBgBlurControl(),transition:getTransitionControl(),...sharedEventControls};}\nexport const __FramerMetadata__ = {\"exports\":{\"getOptionItemControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDropdownStyleControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTransitionControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownItemRenderProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDropdownFillControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownOption\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHARED_DEFAULTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GenericDropdown\":{\"type\":\"reactComponent\",\"name\":\"GenericDropdown\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPaddingControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRadiusControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSharedStyleControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownItem\":{\"type\":\"reactComponent\",\"name\":\"DropdownItem\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"dropdownProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sharedEventControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFillControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getColorControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownStyleConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownSearch\":{\"type\":\"reactComponent\",\"name\":\"DropdownSearch\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"GenericDropdownContent\":{\"type\":\"reactComponent\",\"name\":\"GenericDropdownContent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"getBorderControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getBgBlurControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownScrollArea\":{\"type\":\"reactComponent\",\"name\":\"DropdownScrollArea\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPlaceholderColorControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownItemProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BaseDropdownProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GenericDropdownProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIconControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getShadowsControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFontControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DropdownUtilities.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";import{parsePadding,createBackground}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";import{countries,countryEmojis,countryDialCodes}from\"https://framerusercontent.com/modules/1LECUrurTpenvfDn1ShM/nL9gmnXABjh04Nl8aaL8/Countries.js\";import{DropdownScrollArea,DropdownSearch}from\"https://framerusercontent.com/modules/PwJ4k4IqmEWPlM2ZI4Eu/Wof3uC3VdIgYyyDoK0vM/DropdownUtilities.js\";// ============================================================================\n// CONSTANTS\n// ============================================================================\nconst COLORS={selectedBg:\"rgba(0, 153, 255, 0.1)\",transparent:\"transparent\"};// ============================================================================\n// UTILITY FUNCTIONS\n// ============================================================================\nconst hoverHandlers=(isSelected,hoverBg)=>({onMouseEnter:e=>{if(!isSelected)e.currentTarget.style.backgroundColor=hoverBg;},onMouseLeave:e=>{if(!isSelected)e.currentTarget.style.backgroundColor=COLORS.transparent;}});function CountryItem({country,isSelected,onSelect,color,font,padding,showFlags,showDialCodes,showBorder=false,hoverBg=\"rgba(255, 255, 255, 0.1)\"}){const countryIndex=countries.indexOf(country);const dialCode=countryDialCodes[countryIndex];const emoji=countryEmojis[countryIndex];return /*#__PURE__*/_jsxs(\"div\",{onClick:()=>onSelect(country),style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",padding,cursor:\"pointer\",backgroundColor:isSelected?COLORS.selectedBg:COLORS.transparent,...font,fontSize:font.fontSize||14,borderBottom:showBorder?\"1px solid rgba(0, 0, 0, 0.1)\":\"none\"},...hoverHandlers(isSelected,hoverBg),children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:4},children:[showFlags&&/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"18px\",lineHeight:1,width:\"fitContent\"},children:emoji}),/*#__PURE__*/_jsx(\"span\",{style:{width:\"fitContent\",color},children:country})]}),showDialCodes&&/*#__PURE__*/_jsxs(\"span\",{style:{width:\"fitContent\",color:color||\"#999\",opacity:.7},children:[\"+\",dialCode]})]});}function NoneOption({isSelected,onSelect,color,font,padding,text,showBorder,hoverBg=\"rgba(255, 255, 255, 0.1)\"}){return /*#__PURE__*/_jsx(\"div\",{onClick:onSelect,style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",padding,cursor:\"pointer\",backgroundColor:isSelected?COLORS.selectedBg:COLORS.transparent,...font,fontSize:font.fontSize||14,borderBottom:showBorder?\"1px solid rgba(0, 0, 0, 0.1)\":\"none\"},...hoverHandlers(isSelected,hoverBg),children:/*#__PURE__*/_jsx(\"span\",{style:{width:\"fitContent\",color},children:text})});}function CountryDropdownContent({searchInputRef,searchQuery,onSearchChange,filteredCountries,selectedCountry,onCountrySelect,color,font,showFlags=true,showDialCodes=false,pinnedCountries=[],showNoneOption=false,noneOptionText=\"Select a country...\",onNoneSelect,padding,placeholderColor,dropdownStyle,containerId,isCanvas,showDropdown}){const pinnedSet=new Set(pinnedCountries);const regularCountries=filteredCountries.filter(c=>!pinnedSet.has(c));const pinnedFiltered=pinnedCountries.filter(c=>filteredCountries.includes(c));const isNoneSelected=selectedCountry===\"\"||selectedCountry===\"none\";const hasMoreItems=pinnedFiltered.length>0||regularCountries.length>0;const hasResults=filteredCountries.length>0;const hoverBg=dropdownStyle?.hoverBg||\"rgba(255, 255, 255, 0.1)\";const searchBorderColor=dropdownStyle?.searchBorderColor||\"rgba(0, 0, 0, 0.1)\";return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(DropdownSearch,{searchInputRef:searchInputRef,searchQuery:searchQuery,onSearchChange:onSearchChange,placeholder:\"Search countries...\",color:color,font:font,padding:padding,placeholderColor:placeholderColor,containerId:containerId,showBorder:hasResults,borderColor:searchBorderColor}),/*#__PURE__*/_jsxs(DropdownScrollArea,{containerId:containerId,isCanvas:isCanvas,showDropdown:showDropdown,scrollbar:dropdownStyle?.scrollbar,children:[showNoneOption&&/*#__PURE__*/_jsx(NoneOption,{isSelected:isNoneSelected,onSelect:onNoneSelect,color:color,font:font,padding:padding,text:noneOptionText,showBorder:hasMoreItems,hoverBg:hoverBg}),pinnedFiltered.map(country=>/*#__PURE__*/_jsx(CountryItem,{country:country,isSelected:country===selectedCountry,onSelect:onCountrySelect,color:color,font:font,padding:padding,showFlags:showFlags,showDialCodes:showDialCodes,showBorder:regularCountries.length>0,hoverBg:hoverBg},`pinned-${country}`)),regularCountries.map(country=>/*#__PURE__*/_jsx(CountryItem,{country:country,isSelected:country===selectedCountry,onSelect:onCountrySelect,color:color,font:font,padding:padding,showFlags:showFlags,showDialCodes:showDialCodes,hoverBg:hoverBg},country))]})]});}/**\n * Reusable country dropdown component with search, flags, and dial codes support.\n * Used by both CountryInput and PhoneNumberInput components.\n */export function CountryDropdown(props){const{isOpen,dropdownRef,containerId,fill,isCanvas,showDropdown=false,right,left,width,dropdownStyle,borderRadius,bgBlur}=props;const shouldShow=isOpen||isCanvas&&showDropdown;if(!shouldShow)return null;// Parse border configuration\nconst borderWidth=dropdownStyle?.border?.width?parsePadding(dropdownStyle.border.width):[0,0,0,0];const borderColor=dropdownStyle?.border?.color||\"rgba(136, 136, 136, 0.1)\";const borderStyle=borderWidth.some(w=>w>0)?\"solid\":\"none\";// Use dropdownFill from dropdownStyle if provided, otherwise fall back to fill, otherwise use default\nconst fillToUse=dropdownStyle?.dropdownFill||fill;const backgroundStyle=createBackground(fillToUse);const defaultBgColor=\"#BBBBBB\"// Default dropdown background color (full opacity)\n;const dropdownStyleCSS={position:\"absolute\",top:\"100%\",left:left??0,right:right??undefined,width:width??document.querySelector(\"#\"+containerId)?.clientWidth??\"100%\",marginTop:dropdownStyle?.marginTop??4,backgroundColor:backgroundStyle.backgroundColor||defaultBgColor,backgroundImage:backgroundStyle.backgroundImage,borderRadius:borderRadius||\"8px\",boxShadow:dropdownStyle?.shadows?.default||\"0 4px 12px rgba(0, 0, 0, 0.15)\",zIndex:1e3,maxHeight:dropdownStyle?.height?`${dropdownStyle.height}px`:\"300px\",overflow:\"hidden\",display:\"flex\",flexDirection:\"column\",borderWidth:`${borderWidth[0]}px ${borderWidth[1]}px ${borderWidth[2]}px ${borderWidth[3]}px`,borderStyle,borderColor,backdropFilter:dropdownStyle?.bgBlur!==undefined&&dropdownStyle.bgBlur!==0?`blur(${dropdownStyle.bgBlur}px)`:bgBlur!==0?`blur(${bgBlur}px)`:undefined};const initialY=dropdownStyle?.initialY??-10;const animationConfig={initial:{opacity:0,y:initialY},animate:{opacity:1,y:0},exit:{opacity:0,y:initialY},transition:dropdownStyle?.animation?.type!==false?dropdownStyle?.animation:{duration:.2}};// Canvas preview mode: render without animation\nif(isCanvas&&showDropdown&&!isOpen){return /*#__PURE__*/_jsx(\"div\",{ref:dropdownRef,style:dropdownStyleCSS,children:/*#__PURE__*/_jsx(CountryDropdownContent,{...props})});}return /*#__PURE__*/_jsx(motion.div,{ref:dropdownRef,...animationConfig,style:dropdownStyleCSS,children:/*#__PURE__*/_jsx(CountryDropdownContent,{...props})});}\nexport const __FramerMetadata__ = {\"exports\":{\"CountryDropdownProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CountryDropdown\":{\"type\":\"reactComponent\",\"name\":\"CountryDropdown\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{Border,createBackground,parsePadding,useInstanceId,HiddenInput,Icon,iconProp}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";import{countries,countryEmojis,countryDialCodes,getDialCodeByCountry,getPhoneFormatByCountry,getCountryByDialCode}from\"https://framerusercontent.com/modules/1LECUrurTpenvfDn1ShM/nL9gmnXABjh04Nl8aaL8/Countries.js\";import{CountryDropdown}from\"https://framerusercontent.com/modules/SRHLnHriy9CtZfYf0KJF/6tUGIogjIAN5qEnujlm9/CountryDropdown.js\";import{dropdownProp,getSharedStyleControls}from\"https://framerusercontent.com/modules/PwJ4k4IqmEWPlM2ZI4Eu/Wof3uC3VdIgYyyDoK0vM/DropdownUtilities.js\";// ============================================================================\n// UTILITY FUNCTIONS\n// ============================================================================\nfunction formatPhoneNumber(phoneNumber,format){if(!phoneNumber)return\"\";let index=0;let cutOffIndex=null;const result=format.replace(/[Xx]/g,(match,offset)=>{if(index<phoneNumber.length){return phoneNumber[index++];}else{if(phoneNumber.length<10&&cutOffIndex===null){cutOffIndex=offset;}return\"\";}});return cutOffIndex!==null?result.slice(0,cutOffIndex):result;}function replaceXWithNumbers(input){let count=1;return input.replace(/[Xx]/g,()=>{const number=count%10;count++;return String(number);});}function unformatValue(value){return value.replace(/\\D/g,\"\");}function isLastCharacterANumber(str){if(str.length===0)return false;const lastChar=str[str.length-1];return!isNaN(Number(lastChar))&&!isNaN(parseFloat(lastChar));}function countXCharacters(str){const lowercaseStr=str.toLowerCase();const xRegex=/x/g;const matches=lowercaseStr.match(xRegex);return matches?matches.length:0;}const px=(a,b,c,d)=>`${a}px ${b}px ${c}px ${d}px`;function Divider({isVisible,width,color,inset,transition}){return /*#__PURE__*/_jsx(motion.div,{animate:{opacity:isVisible?0:1},style:{position:\"absolute\",opacity:1,width,right:-width/2,top:inset,bottom:inset,backgroundColor:color,zIndex:1e3},initial:false,transition:transition});}function CountryCodeSelector({countryCodeRef,selectedCountryEmoji,countryCode,isCanvas,showDropdown,countryCodeFocused,countryDropdownOpen,onCountryCodeClick,onCountryCodeFocus,onCountryCodeBlur,countryCodeOptions,ccConnected,padding,color,font,transition,border,invalid,phoneNumberFocused,radius,dropdownRef,searchInputRef,searchQuery,onSearchChange,filteredCountries,selectedCountry,onCountrySelect,containerId,fill,shadows,bgBlur,placeholderColor,dropdownStyle}){const[pt,pr,pb,pl]=parsePadding(padding);const[tl,tr,br,bl]=parsePadding(radius);const[bwt,bwr,bwb,bwl]=parsePadding(border?.width);return /*#__PURE__*/_jsxs(motion.div,{animate:{...createBackground(fill,null,countryCodeFocused,invalid),boxShadow:invalid&&shadows?.invalid||countryCodeFocused&&shadows?.focus||shadows?.default},style:{gap:8,position:\"relative\",borderRadius:ccConnected?px(tl,0,0,bl):radius},initial:false,transition:transition,children:[bgBlur!==0&&bgBlur!==undefined&&/*#__PURE__*/_jsx(\"div\",{style:{zIndex:-1,position:\"absolute\",inset:0,backdropFilter:`blur(${bgBlur}px)`}}),/*#__PURE__*/_jsx(CountryDropdown,{isOpen:countryDropdownOpen,dropdownRef:dropdownRef,searchInputRef:searchInputRef,searchQuery:searchQuery,onSearchChange:onSearchChange,filteredCountries:filteredCountries,selectedCountry:selectedCountry,onCountrySelect:onCountrySelect,containerId:containerId,fill:fill,color:color,font:font,isCanvas:isCanvas,showDropdown:showDropdown,showFlags:true,showDialCodes:true,right:ccConnected?0:undefined,padding:padding,borderRadius:radius,placeholderColor:placeholderColor,bgBlur:bgBlur,dropdownStyle:dropdownStyle}),/*#__PURE__*/_jsxs(\"div\",{ref:countryCodeRef,onClick:onCountryCodeClick,onFocus:onCountryCodeFocus,onBlur:onCountryCodeBlur,tabIndex:0,style:{display:\"flex\",alignItems:\"center\",gap:4,padding:px(pt,pr,pb,pl),cursor:\"pointer\",width:\"fitContent\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"18px\",lineHeight:1},children:selectedCountryEmoji}),/*#__PURE__*/_jsxs(\"span\",{style:{color,...font,width:\"fitContent\",whiteSpace:\"nowrap\"},children:[\"+\",countryCode]}),countryCodeOptions.icon&&/*#__PURE__*/_jsx(Icon,{...countryCodeOptions.icon,style:{transform:countryDropdownOpen?\"rotate(180deg)\":\"rotate(0deg)\",transition:\"transform 0.2s\"},defaultImage:`url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"><path d=\"M 3.5 6 L 8 10.5 L 12.5 6\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"rgb(153, 153, 153)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>')`}),countryCodeOptions?.style===\"divider\"&&/*#__PURE__*/_jsx(Divider,{isVisible:!!(border?.colorFocus&&(countryCodeFocused||phoneNumberFocused)),width:countryCodeOptions.divider.width,color:countryCodeOptions.divider.color,inset:countryCodeOptions.divider.inset,transition:transition})]}),border&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Border,{...border,borderColor:invalid&&border?.colorInvalid||border.color,width:ccConnected?px(bwt,0,bwb,bwl):border.width,opacity:countryCodeFocused&&border?.colorFocus?0:1,transition:transition}),border?.colorFocus&&/*#__PURE__*/_jsx(Border,{...border,borderColor:border.colorFocus,width:border.width,opacity:countryCodeFocused?1:0,transition:transition})]})]});}function PhoneNumberInputField({phoneNumberInputRef,autoFocus,formattedValue,onPhoneNumberChange,onPhoneNumberFocus,onPhoneNumberBlur,onPhoneNumberKeyDown,placeholder,padding,color,font,ccConnected,phoneNumberFocused,invalid,border,transition,fill,shadows,bgBlur,radius}){const[tr,br]=parsePadding(radius);const[bwt,bwr,bwb]=parsePadding(border?.width);return /*#__PURE__*/_jsxs(motion.div,{animate:{...createBackground(fill,null,phoneNumberFocused,invalid),boxShadow:invalid&&shadows?.invalid||phoneNumberFocused&&shadows?.focus||shadows?.default},style:{position:\"relative\",borderRadius:ccConnected?px(0,tr,br,0):radius,flex:1,backdropFilter:bgBlur?`blur(${bgBlur}px)`:undefined},initial:false,transition:transition,children:[/*#__PURE__*/_jsx(\"input\",{ref:phoneNumberInputRef,autoFocus:autoFocus,value:formattedValue,onChange:onPhoneNumberChange,onFocus:onPhoneNumberFocus,onBlur:onPhoneNumberBlur,onKeyDown:onPhoneNumberKeyDown,placeholder:placeholder,style:{background:\"none\",border:\"none\",color,margin:0,display:\"block\",padding,width:\"100%\",height:\"100%\",textOverflow:\"ellipsis\",...font},\"data-framerforms-no-prefill\":true}),border&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Border,{...border,borderColor:invalid&&border?.colorInvalid||border.color,width:ccConnected?px(bwt,bwr,bwb,0):border.width,opacity:phoneNumberFocused&&border?.colorFocus?0:1,transition:transition}),border?.colorFocus&&/*#__PURE__*/_jsx(Border,{...border,borderColor:border.colorFocus,width:border.width,opacity:phoneNumberFocused?1:0,transition:transition})]})]});}// ============================================================================\n// MAIN COMPONENT\n// ============================================================================\n/**\n * @framerSupportedLayoutWidth fixed\n * @framerIntrinsicWidth 400\n * @framerDisableUnlink\n */export default function PhoneNumberInput(props){const{countryCodeOptions,border,shadows}=props;const id=useInstanceId();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const hasCC=!!countryCodeOptions;const ccConnected=hasCC&&countryCodeOptions?.style!==\"split\";// Get default country\nconst getDefaultCountry=()=>{if(countryCodeOptions?.defaultCountry){const index=countries.indexOf(countryCodeOptions.defaultCountry);if(index>=0)return countries[index];}return\"United States\";};const defaultCountry=getDefaultCountry();const defaultCountryIndex=countries.indexOf(defaultCountry);const defaultDialCode=countryDialCodes[defaultCountryIndex>=0?defaultCountryIndex:countries.indexOf(\"United States\")];// State\nconst[selectedCountry,setSelectedCountry]=useState(defaultCountry);const[countryCode,setCountryCode]=useState(defaultDialCode);const[phoneNumber,setPhoneNumber]=useState(\"\");const[countryDropdownOpen,setCountryDropdownOpen]=useState(false);const[countryCodeFocused,setCountryCodeFocused]=useState(false);const[phoneNumberFocused,setPhoneNumberFocused]=useState(false);const[invalid,setInvalid]=useState(false);const[searchQuery,setSearchQuery]=useState(\"\");// Use refs for flags that need to be synchronous (not batched like state)\n// to avoid race conditions with event listeners\nconst dialCodeManuallySet=useRef(false);const persistenceInitialized=useRef(false);const isRestoringFromPersistence=useRef(false);// Refs\nconst countryCodeRef=useRef(null);const phoneNumberInputRef=useRef(null);const dropdownRef=useRef(null);const searchInputRef=useRef(null);// Get phone format\nconst phoneFormat=props.formatting===\"auto\"?getPhoneFormatByCountry(selectedCountry):props.format===\"custom\"?props.customFormat===\"\"?\"XXXXXXXXXX\":props.customFormat:props.format;const maxDigits=countXCharacters(phoneFormat);const formattedValue=formatPhoneNumber(phoneNumber,phoneFormat);const isComplete=phoneNumber.length===maxDigits;// Filter countries based on search query\nconst filteredCountries=searchQuery?countries.filter((country,index)=>{const searchLower=searchQuery.toLowerCase();return country.toLowerCase().includes(searchLower)||countryDialCodes[index].includes(searchQuery)||(countryEmojis[index]+\" \"+country).toLowerCase().includes(searchLower);}):countries;const selectedCountryIndex=countries.indexOf(selectedCountry);const selectedCountryEmoji=selectedCountryIndex>=0?countryEmojis[selectedCountryIndex]:\"🇺🇸\";// Auto-sync with Country field earlier in the form\n// Only pre-fills if dial code hasn't been manually set and phone number is empty\n// Delayed to allow form persistence to initialize first\nuseEffect(()=>{if(!hasCC)return;// Wait for form persistence to have a chance to restore values\n// before enabling auto-sync\nconst timeoutId=setTimeout(()=>{persistenceInitialized.current=true;},100);const formElement=countryCodeRef.current?.closest(\"form\");if(!formElement)return;// Listen for both select and input elements with country-related names\n// CountryInput uses a hidden input, not a select\nconst countryInputs=formElement.querySelectorAll('select[name*=\"Country\" i], select[name*=\"country\" i], input[name*=\"Country\" i], input[name*=\"country\" i]');const handleCountryChange=event=>{// Only auto-sync if:\n// 1. Persistence has initialized (avoid race with form restoration)\n// 2. We're not currently restoring from persistence\n// 3. Phone number is empty\n// 4. Dial code hasn't been manually set\nif(persistenceInitialized.current&&!isRestoringFromPersistence.current&&phoneNumber.length===0&&!dialCodeManuallySet.current){const target=event.target;const countryValue=target.value;if(countryValue&&countries.includes(countryValue)){setSelectedCountry(countryValue);const dialCode=getDialCodeByCountry(countryValue);setCountryCode(dialCode);}}};countryInputs.forEach(input=>{input.addEventListener(\"change\",handleCountryChange);});return()=>{clearTimeout(timeoutId);countryInputs.forEach(input=>{input.removeEventListener(\"change\",handleCountryChange);});};},[hasCC,phoneNumber]);// Close dropdown when clicking outside\nuseEffect(()=>{const handleClickOutside=event=>{const target=event.target;const isOutsideDropdown=dropdownRef.current&&!dropdownRef.current.contains(target);const isOutsideCountryCode=countryCodeRef.current&&!countryCodeRef.current.contains(target);const isPhoneInput=phoneNumberInputRef.current&&phoneNumberInputRef.current.contains(target);if(isOutsideDropdown&&isOutsideCountryCode||isPhoneInput){setCountryDropdownOpen(false);setSearchQuery(\"\");setCountryCodeFocused(false);countryCodeRef.current?.blur();}};if(countryDropdownOpen||countryCodeFocused){document.addEventListener(\"mousedown\",handleClickOutside);return()=>{document.removeEventListener(\"mousedown\",handleClickOutside);};}},[countryDropdownOpen,countryCodeFocused]);// Focus search input when dropdown opens\nuseEffect(()=>{if(countryDropdownOpen&&searchInputRef.current){setTimeout(()=>{searchInputRef.current?.focus();},100);}},[countryDropdownOpen]);useEffect(()=>{if(invalid){props.invalidEvent?.();}},[invalid]);// Event handlers\nfunction onPhoneNumberChange(event){const unformatted=unformatValue(event.target.value).substring(0,maxDigits);const currentFormatted=formatPhoneNumber(phoneNumber,phoneFormat);if(!isLastCharacterANumber(currentFormatted)&&event.target.value.length<currentFormatted.length){setPhoneNumber(unformatted.slice(0,-1));}else{setPhoneNumber(unformatted);}}function onCountrySelect(country){setSelectedCountry(country);const dialCode=getDialCodeByCountry(country);setCountryCode(dialCode);// Mark dial code as manually set when user selects from dropdown\ndialCodeManuallySet.current=true;setCountryDropdownOpen(false);setSearchQuery(\"\");setCountryCodeFocused(false);countryCodeRef.current?.blur();setTimeout(()=>{phoneNumberInputRef.current?.focus();},10);}function onCountryCodeClick(){if(!hasCC)return;const willBeOpen=!countryDropdownOpen;setCountryDropdownOpen(willBeOpen);setCountryCodeFocused(willBeOpen);if(invalid){setInvalid(false);}if(willBeOpen){props.focusEvent?.();}else{setTimeout(()=>{setCountryCodeFocused(false);countryCodeRef.current?.blur();},100);}}function onCountryCodeFocus(){setCountryCodeFocused(true);if(invalid){setInvalid(false);}props.focusEvent?.();}function onPhoneNumberKeyDown(event){if(hasCC&&phoneNumber===\"\"){if(event.key===\"Backspace\"){countryCodeRef.current?.focus();}if(event.key===\"ArrowLeft\"){countryCodeRef.current?.focus();event.preventDefault();}}}function onCountryCodeBlur(event){const relatedTarget=event.relatedTarget;if(dropdownRef.current?.contains(relatedTarget)||searchInputRef.current===relatedTarget){return;}if(!countryDropdownOpen){setCountryCodeFocused(false);setSearchQuery(\"\");props.blurEvent?.();}}function onPhoneNumberFocus(){setPhoneNumberFocused(true);setCountryCodeFocused(false);props.focusEvent?.();if(invalid){setInvalid(false);}}function onPhoneNumberBlur(){setPhoneNumberFocused(false);props.blurEvent?.();}// Handle value restoration from FormPersistence\nfunction onSetValueEvent(event){// Mark that we're restoring from persistence to prevent auto-sync from interfering\nisRestoringFromPersistence.current=true;// Mark persistence as initialized immediately\npersistenceInitialized.current=true;const value=event.detail;if(!value){setSelectedCountry(defaultCountry);setCountryCode(defaultDialCode);setPhoneNumber(\"\");dialCodeManuallySet.current=false// Reset when clearing\n;// Re-enable auto-sync after a short delay\nsetTimeout(()=>{isRestoringFromPersistence.current=false;},200);return;}const valueStr=String(value);if(valueStr.startsWith(\"+\")){const match=valueStr.match(/^\\+(\\d+)(?:\\s+(.*))?$/);if(match){const dialCode=match[1];const phonePart=match[2]||\"\";// If dial code matches default and there's no phone number, use default country\n// This prevents issues where dial code \"1\" could map to Canada instead of United States\nif(dialCode===defaultDialCode&&!phonePart){setSelectedCountry(defaultCountry);setCountryCode(defaultDialCode);setPhoneNumber(\"\");dialCodeManuallySet.current=false// Not manually set if using default\n;// Re-enable auto-sync after a short delay\nsetTimeout(()=>{isRestoringFromPersistence.current=false;},200);return;}// For dial code \"1\" with no phone number, prefer \"United States\" over \"Canada\"\n// (since dial code \"1\" is shared by multiple countries)\nlet country=getCountryByDialCode(dialCode);if(dialCode===\"1\"&&!phonePart&&country===\"Canada\"){country=\"United States\";}if(country){setSelectedCountry(country);setCountryCode(dialCode);// Mark as manually set since we're restoring a persisted value\ndialCodeManuallySet.current=true;const restoredFormat=props.formatting===\"auto\"?getPhoneFormatByCountry(country):props.format===\"custom\"?props.customFormat===\"\"?\"XXXXXXXXXX\":props.customFormat:props.format;const restoredMaxDigits=countXCharacters(restoredFormat);setPhoneNumber(unformatValue(phonePart).substring(0,restoredMaxDigits));}else{setCountryCode(dialCode);// Mark as manually set since we're restoring a persisted value\ndialCodeManuallySet.current=true;setPhoneNumber(unformatValue(phonePart).substring(0,maxDigits));}}}else{setPhoneNumber(unformatValue(valueStr).substring(0,maxDigits));}// Re-enable auto-sync after restoration is complete\n// Use a delay to ensure all form fields have been restored\nsetTimeout(()=>{isRestoringFromPersistence.current=false;},200);}return /*#__PURE__*/_jsxs(\"div\",{\"data-framerforms\":true,id:id,style:{display:\"flex\",flexDirection:\"row\",gap:countryCodeOptions?.style===\"split\"?countryCodeOptions.gap:0,...props.style},children:[/*#__PURE__*/_jsx(HiddenInput,{name:props.name,required:props.required,value:props.required&&!isComplete?\"\":hasCC?phoneNumber.length>0?`+${countryCode} ${phoneNumber}`:`+${countryCode}`:phoneNumber,setInvalid:setInvalid,onSetValueEvent:onSetValueEvent}),hasCC&&/*#__PURE__*/_jsx(CountryCodeSelector,{isCanvas:isCanvas,showDropdown:props.showDropdown,countryCodeRef:countryCodeRef,selectedCountryEmoji:selectedCountryEmoji,countryCode:countryCode,countryCodeFocused:countryCodeFocused,countryDropdownOpen:countryDropdownOpen,onCountryCodeClick:onCountryCodeClick,onCountryCodeFocus:onCountryCodeFocus,onCountryCodeBlur:onCountryCodeBlur,countryCodeOptions:countryCodeOptions,ccConnected:ccConnected,padding:props.padding,color:props.color,font:props.font,transition:props.transition,border:border,invalid:invalid,phoneNumberFocused:phoneNumberFocused,radius:props.radius,dropdownRef:dropdownRef,searchInputRef:searchInputRef,searchQuery:searchQuery,onSearchChange:setSearchQuery,filteredCountries:filteredCountries,selectedCountry:selectedCountry,onCountrySelect:onCountrySelect,containerId:id,fill:props.fill,shadows:shadows,bgBlur:props.bgBlur,placeholderColor:props.placeholderColor,dropdownStyle:props.dropdown}),/*#__PURE__*/_jsx(PhoneNumberInputField,{phoneNumberInputRef:phoneNumberInputRef,autoFocus:props.autoFocus,formattedValue:formattedValue,onPhoneNumberChange:onPhoneNumberChange,onPhoneNumberFocus:onPhoneNumberFocus,onPhoneNumberBlur:onPhoneNumberBlur,onPhoneNumberKeyDown:onPhoneNumberKeyDown,placeholder:props.placeholder||replaceXWithNumbers(phoneFormat),padding:props.padding,color:props.color,font:props.font,ccConnected:ccConnected,phoneNumberFocused:phoneNumberFocused,invalid:invalid,border:border,transition:props.transition,fill:props.fill,shadows:shadows,bgBlur:props.bgBlur,radius:props.radius}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n                    #${id} input::placeholder {\n                        color: ${props.placeholderColor};\n                    }\n                    #${id} input:focus {\n                        outline: none;\n                    }`}})]});}PhoneNumberInput.displayName=\"Phone Number Input\";// ============================================================================\n// PROPERTY CONTROLS\n// ============================================================================\naddPropertyControls(PhoneNumberInput,{name:{type:ControlType.String,defaultValue:\"Phone Number\"},showDropdown:{type:ControlType.Boolean,defaultValue:false,title:\"Dropdown\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},dropdown:dropdownProp(),required:{type:ControlType.Boolean,defaultValue:false},autoFocus:{type:ControlType.Boolean,defaultValue:false,title:\"Auto-Focus\"},countryCodeOptions:{type:ControlType.Object,optional:true,defaultValue:{defaultCountry:\"United States\",width:120},title:\"Country Code\",controls:{defaultCountry:{title:\"Default Country\",type:ControlType.Enum,defaultValue:\"United States\",options:countries,optionTitles:countries},width:{type:ControlType.Number,defaultValue:120,min:80,step:1,title:\"Width\"},style:{type:ControlType.Enum,defaultValue:\"divider\",options:[\"connected\",\"divider\",\"split\"],optionTitles:[\"Connected\",\"Divider\",\"Split\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},divider:{type:ControlType.Object,hidden:props=>props.style!==\"divider\",controls:{color:{type:ControlType.Color,defaultValue:\"rgba(136, 136, 136, 0.15)\"},width:{type:ControlType.Number,defaultValue:1,min:1,step:1,displayStepper:true},inset:{type:ControlType.Number,defaultValue:8,min:0,step:1,displayStepper:true}}},gap:{type:ControlType.Number,defaultValue:8,min:0,step:1,hidden:props=>props.style!==\"split\"},icon:iconProp({buttonTitle:\"Caret Icon\",size:16})}},formatting:{type:ControlType.Enum,defaultValue:\"auto\",options:[\"auto\",\"manual\"],optionTitles:[\"Auto (by Country)\",\"Manual\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\",title:\"Formatting\"},format:{type:ControlType.Enum,defaultValue:\"(XXX) XXX - XXXX\",options:[\"(XXX) XXX - XXXX\",\"(XXX) XXX-XXXX\",\"XXX-XXX-XXXX\",\"XXX.XXX.XXXX\",\"XXX XXX XXXX\",\"XXXXXXXXXXX\",\"XX XXXX XXXX\",\"custom\"],optionTitles:[\"(123) 456 - 7890\",\"(123) 456-7890\",\"123-456-7890\",\"123.456.7890\",\"123 456 7890\",\"1234567890\",\"12 3456 7890\",\"Custom Format\"],hidden:props=>props.formatting===\"auto\"},customFormat:{title:\"Custom ->\",type:ControlType.String,defaultValue:\"(XXX) XXX - XXXX\",description:\"*X* -> phone number\",hidden:props=>props.formatting===\"auto\"||props.format!==\"custom\"},placeholder:{type:ControlType.String,defaultValue:\"\",placeholder:\"Auto\"},// Shared style controls - includes placeholderColor with default from SHARED_DEFAULTS\n// Component-specific controls (like placeholder text above) are defined separately\n// To override a default value, pass it as an option:\n// Example: color: \"#999999\" to override the default color\n// Example: placeholderColor: \"#666\" to override the default placeholder color\n// See Dropdown.tsx SHARED_DEFAULTS for all available defaults\n...getSharedStyleControls({placeholderColorTitle:\"Placeholder\",placeholderColorOptional:false,invalid:true})});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PhoneNumberInput\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState}from\"react\";import{motion}from\"framer\";import{createBackground,Border,parsePadding,fillProp,borderProp,shadowsProp,useInstanceId}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";import{buildQuizInputDataAttributes,createQuizNestedControls}from\"https://framerusercontent.com/modules/itVumdSpaLTGejsnG4cS/6LKYMWPrWe4DJ5B7wYmL/QuizScoringShared.js\";function isQuizCaseSensitive(value){return value===true||value===\"caseSensitive\";}function isQuizIgnoreSpaces(value){return value===true||value===\"ignoreThem\";}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 400\n * @framerDisableUnlink\n */export default function TextInput(props){const{type,textAreaHeight,shadows,border,quiz}=props;const id=useInstanceId();const Element=type==\"textArea\"?\"textarea\":\"input\";const[focused,setFocused]=useState(false);const[invalid,setInvalid]=useState(false);let attributes={};let styles={};if(type==\"textArea\"){const[pt,pr,pb,pl]=parsePadding(props.padding);const heightMode=textAreaHeight.mode;const autoHeightSupported=typeof CSS!==\"undefined\"?CSS.supports(\"field-sizing\",\"content\"):true;attributes.rows=heightMode==\"fixed\"?textAreaHeight.lines:1;styles={display:\"block\",minHeight:heightMode==\"auto\"&&!autoHeightSupported?`calc(${textAreaHeight.fallbackLines}lh + ${pt+pb}px)`:heightMode!==\"fixed\"?`calc(${textAreaHeight.minLines}lh + ${pt+pb}px)`:undefined,maxHeight:heightMode!==\"fixed\"?`calc(${textAreaHeight.maxLines}lh + ${pt+pb}px)`:undefined,fieldSizing:heightMode==\"auto\"&&autoHeightSupported?\"content\":undefined,resize:heightMode==\"resizable\"?\"vertical\":\"none\"};}const onFocus=()=>{setFocused(true);props.focusEvent?.();if(invalid){setInvalid(false);}};const onBlur=()=>{setFocused(false);props.blurEvent?.();};const onInvalid=event=>{event.preventDefault();setInvalid(true);props.invalidEvent?.();};const ca=quiz?.isQuizInput&&quiz.scoringMethod!==\"weighted\"?quiz.correctAnswer!=null?String(quiz.correctAnswer).trim():\"\":\"\";const quizDataset=buildQuizInputDataAttributes(quiz,{correctAnswer:ca||null,quizOptionsJson:{caseSensitive:isQuizCaseSensitive(quiz?.caseSensitive),ignoreSpaces:isQuizIgnoreSpaces(quiz?.ignoreSpaces),useRegex:!!quiz?.useRegex}});return /*#__PURE__*/_jsxs(motion.div,{\"data-framerforms\":true,id:id,onFocus:onFocus,onBlur:onBlur,animate:{...createBackground(props.fill,null,focused,invalid),boxShadow:invalid&&shadows?.invalid||focused&&shadows?.focus||shadows?.default,borderColor:invalid&&border?.colorInvalid||focused&&border?.colorFocus||border?.color},style:{borderRadius:props.radius,overflow:type==\"textArea\"&&props.textAreaScrollbar==\"auto\"?\"hidden\":\"visible\",backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined,...props.style},initial:false,transition:props.transition,children:[/*#__PURE__*/_jsx(Element,{name:props.name,required:props.required,autoFocus:props.autoFocus,placeholder:props.placeholder,minLength:props.minLengthEnabled?props.minLength:undefined,maxLength:props.maxLengthEnabled?props.maxLength:undefined,defaultValue:props.value,onInvalid:onInvalid,style:{display:\"block\",padding:props.padding,color:props.color,background:\"none\",border:\"none\",textOverflow:\"ellipsis\",...styles,...props.font,...props.style},...attributes,...quizDataset}),/*#__PURE__*/_jsx(Border,{...props.border,transition:props.transition}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n                    #${id} ${Element}::placeholder {\n                        color: ${props.placeholderColor};\n                    }\n                    #${id} ${Element}:focus {\n                        appearance: none;\n                        outline: none;\n                        border: none;\n                        display: none;\n                    }`}}),type==\"textArea\"&&props.textAreaScrollbar==\"hidden\"&&/*#__PURE__*/_jsx(\"style\",{children:`#${id} textarea::-webkit-scrollbar {\n                        display: none; /* WebKit browsers (Chrome, Safari) */\n                    }\n                    #${id} textarea {\n                        -ms-overflow-style: none; /* IE and Edge */\n                        scrollbar-width: none; /* Firefox */\n                    }`})]});}TextInput.displayName=\"Text Input\";addPropertyControls(TextInput,{name:{type:ControlType.String,defaultValue:\"Text\",preventLocalization:true},required:{type:ControlType.Boolean,defaultValue:false},autoFocus:{type:ControlType.Boolean,defaultValue:false,title:\"Auto-Focus\"},minLengthEnabled:{type:ControlType.Boolean,defaultValue:false,title:\"Min Length\"},minLength:{type:ControlType.Number,defaultValue:100,min:0,step:1,displayStepper:true,title:\" \",hidden:props=>!props.minLengthEnabled},maxLengthEnabled:{type:ControlType.Boolean,defaultValue:false,title:\"Max Length\"},maxLength:{type:ControlType.Number,defaultValue:100,min:0,step:1,displayStepper:true,title:\" \",hidden:props=>!props.maxLengthEnabled},value:{type:ControlType.String,placeholder:\"Default Value\"},type:{type:ControlType.Enum,defaultValue:\"input\",options:[\"textArea\",\"input\"],optionTitles:[\"Yes\",\"No\"],displaySegmentedControl:true,title:\"Text Area\"},textAreaHeight:{type:ControlType.Object,title:\"Height\",controls:{mode:{type:ControlType.Enum,defaultValue:\"auto\",options:[\"auto\",\"resizable\",\"fixed\"],optionTitles:[\"Auto\",\"Resizable\",\"Fixed\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},minLines:{type:ControlType.Number,defaultValue:3,min:1,step:1,displayStepper:true,hidden:props=>props.mode===\"fixed\"},maxLines:{type:ControlType.Number,defaultValue:8,min:1,step:1,displayStepper:true,hidden:props=>props.mode===\"fixed\"},lines:{type:ControlType.Number,defaultValue:5,min:1,step:1,displayStepper:true,hidden:props=>props.mode!==\"fixed\"},fallbackLines:{type:ControlType.Number,defaultValue:5,min:1,step:1,title:\"Fallback\",description:\"Auto height is [not supported on all browsers](https://caniuse.com/mdn-css_properties_field-sizing_content). Fallback is used when auto height is not supported.\",hidden:props=>props.mode!==\"auto\"}},hidden:props=>props.type!=\"textArea\"},textAreaScrollbar:{type:ControlType.Enum,defaultValue:\"hidden\",options:[\"auto\",\"hidden\"],optionTitles:[\"Auto\",\"Hidden\"],displaySegmentedControl:true,title:\"Scrollbar\",hidden:props=>props.type!=\"textArea\"},placeholder:{type:ControlType.String,defaultValue:\"Write here...\"},font:{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.2}},color:{type:ControlType.Color,defaultValue:\"#999999\"},placeholderColor:{type:ControlType.Color,defaultValue:\"#999999\",title:\"Placeholder\"},fill:fillProp(),radius:{type:ControlType.BorderRadius,defaultValue:\"10px\"},padding:{type:ControlType.Padding,defaultValue:\"12px\"},border:borderProp(),shadows:shadowsProp(),bgBlur:{type:ControlType.Number,min:0,max:100,step:1,displayStepper:true,title:\"BG Blur\"},transition:{type:ControlType.Transition,defaultValue:{type:false}},quiz:{type:ControlType.Object,title:\"Quiz\",optional:true,controls:createQuizNestedControls({correctAnswer:{type:ControlType.String,title:\"Correct\",defaultValue:\"\",displayTextArea:true,placeholder:\"Correct answer\"},caseSensitive:{type:ControlType.Enum,title:\"Case\",defaultValue:\"notCaseSensitive\",options:[\"caseSensitive\",\"notCaseSensitive\"],optionTitles:[\"Case sensitive\",\"Non case sensitive\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},ignoreSpaces:{type:ControlType.Enum,title:\"Spaces\",defaultValue:\"theyMatter\",options:[\"theyMatter\",\"ignoreThem\"],optionTitles:[\"They matter\",\"They Don't matter\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},useRegex:{type:ControlType.Boolean,title:\"Regex\",defaultValue:false,description:\"Wether to use regular expressions\"}})},focusEvent:{type:ControlType.EventHandler,title:\"Focus\"},blurEvent:{type:ControlType.EventHandler,title:\"Blur\"},invalidEvent:{type:ControlType.EventHandler,title:\"Invalid\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextInput\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}