{"version":3,"file":"FormProgressBar.DfWsPyxB.mjs","names":["attrs","p","useState","CANVAS_HIDDEN_CLASS_NAME","useId","HiddenInput","useRef","useCallback","HiddenComponentLabel","useRef","useState","useState","useRef","formInfo","state","pageElement","pageHistory","useRef","useState","useState","useRef","_Fragment","useState","useRef","useRef","useState","p"],"sources":["https:/framerusercontent.com/modules/itVumdSpaLTGejsnG4cS/6LKYMWPrWe4DJ5B7wYmL/QuizScoringShared.js","https:/framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js","https:/framerusercontent.com/modules/CAiPOh5jW8sjhKQGY1KE/atfw6ZmnnYkZXAIpQGCD/FormPageLabel.js","https:/framerusercontent.com/modules/wV9SghwspjN8vk1MgoSi/5hwqI63C3dZ8dPHZQwJ0/MultiStepForm.js","https:/framerusercontent.com/modules/diUNHvGsYpvjISOio7fx/3LTuyW7qA4xjZ2h5KhgV/FormDots.js","https:/framerusercontent.com/modules/fPSKMdnAZGIeyDfLV8KP/k4rjB4zRG0DK3vktcBkT/MultiStepFormButton.js","https:/framerusercontent.com/modules/PwJ4k4IqmEWPlM2ZI4Eu/Wof3uC3VdIgYyyDoK0vM/DropdownUtilities.js","https:/framerusercontent.com/modules/g69gGfMpspYpelpQnFKR/v3DfM2nbDQ5y2FO5o5H8/Dropdown.js","https:/framerusercontent.com/modules/v1b335RPU7KtR6IJZaOk/Q5uMfiqlEU4PHmsvRYxm/FormProgressBar.js"],"sourcesContent":["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","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef,useState}from\"react\";import{useMultiStepFormStore,useCanvasState,getFormInfo}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export default function FormPageLabel(props){const Tag=props.htmlTag||\"p\";const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ref=useRef(null);const[multiStepFormState,setMultiStepFormState]=useMultiStepFormStore();const canvasState=useCanvasState(ref);const[formId,setFormId]=useState(null);const state=isCanvas?canvasState:multiStepFormState[formId];useEffect(()=>{const newFormId=getFormInfo(ref.current).formId;setFormId(newFormId);if(!multiStepFormState[newFormId]){setMultiStepFormState({});}},[]);return /*#__PURE__*/_jsx(Tag,{\"data-framerforms\":true,ref:ref,style:{color:props.color,userSelect:props.textSelect?\"auto\":\"none\",whiteSpace:props.style?.width?\"pre\":\"nowrap\",margin:0,...props.font,...props.style},children:props.text.replace(/\\[page\\]/g,// pageHistory stores visited *page indices* (0-based).\n// Current page is the last visited index (+1 for human-readable page number).\nstate?.pageHistory?(state.pageHistory[state.pageHistory.length-1]??0)+1:1).replace(/\\[totalPages\\]/g,state?.totalPages??1)});}FormPageLabel.displayName=\"Form Page Label\";addPropertyControls(FormPageLabel,{text:{type:ControlType.String,defaultValue:\"Page [page] / [totalPages]\",description:\"*[page]*: current page\\n*[totalPages]*: total number of pages\"},font:{// @ts-ignore - Framer supports \"font\" control type (not in our TS typings)\ntype:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.4}},color:{type:ControlType.Color,defaultValue:\"#888\"},textSelect:{type:ControlType.Boolean,defaultValue:true},htmlTag:{type:ControlType.Enum,options:[\"p\",\"span\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],title:\"HTML Tag\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FormPageLabel\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,withCSS}from\"framer\";import{useState,useEffect,useRef}from\"react\";import{useInstanceId,HiddenComponentLabel,useMultiStepFormStore,getFormInfo,isAncestor}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";const OPTIMIZATION_CLASS_NAME=\"framerforms-multi-step-form\";const SUBMIT_BUTTON_HIDDEN_ATTRIBUTE=\"framerforms-submit-button-hidden\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n * @framerDisableUnlink\n */function MultiStepFormComponent(props){const{scrollToTop}=props;const id=useInstanceId();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[multiStepFormState,setMultiStepFormState]=useMultiStepFormStore();const[formInfo,setFormInfo]=useState(null);const stateRef=useRef(multiStepFormState[formInfo?.formId]);const ref=useRef(null);const pageVideosRef=useRef({});const isFirstRenderRef=useRef(true);const[initialized,setInitialized]=useState(false);const state=multiStepFormState[formInfo?.formId];const pageHistory=state?.pageHistory;useEffect(()=>{const formInfo=getFormInfo(ref.current);setFormInfo(formInfo);const{formId,form,pages}=formInfo;function previousPage(){const pageHistory=stateRef.current?.pageHistory;if(pageHistory?.length>1){setMultiStepFormState(prev=>({[formId]:{...prev[formId],pageHistory:prev[formId].pageHistory.slice(0,-1),isEndPage:false}}));}}function nextPage(){const state=stateRef.current;if(state){const page=state.pageHistory[state.pageHistory.length-1];const{logicConfigs}=state;let newPage=null;if(logicConfigs.length&&pages){const pageElement=pages.children?.[page];for(const logic of logicConfigs){if(isAncestor(pageElement,logic.ref.current)){const nextPageName=logic.getNextPage();if(nextPageName){const nextPageIndex=getChildIndexByDataFramerName(pages,nextPageName);if(nextPageIndex!==-1){newPage=nextPageIndex;}break;}}}}if(newPage===null&&page<state.totalPages-1){newPage=page+1;}const pageElement=pages.children[page];if(pageElement&&!isFormValid(pageElement)){newPage=null;}if(newPage){setMultiStepFormState(prev=>{const prevState=prev[formId];return{[formId]:{...prevState,pageHistory:[...prevState.pageHistory,newPage],isEndPage:isPageAnEndPage({pageIndex:newPage,state:prevState,pages,endPageMode:props.endPage,customEndPages:props.endPageCustom})}};});}}}function setPageHistoryLength(newLength){setMultiStepFormState(prev=>{const pageHistory=prev[formId]?.pageHistory??[];return{[formId]:{...prev[formId],pageHistory:newLength>=pageHistory.length?pageHistory:pageHistory.slice(0,newLength),isEndPage:isPageAnEndPage({pageIndex:pageHistory[newLength-1],state:prev[formId],pages,endPageMode:props.endPage,customEndPages:props.endPageCustom})}};});}if(formId&&pages){setMultiStepFormState({[formId]:{totalPages:pages.children.length,pageHistory:[0],logicConfigs:[],isEndPage:pages.children.length==1,previousPage,nextPage,setPageHistoryLength}});}if(pages){const pageElements=pages.children;for(let i=0;i<pageElements.length;i++){const videos=pageElements[i].querySelectorAll(\"video\");if(!pageVideosRef.current[i]){pageVideosRef.current[i]=[];}for(const video of videos){pageVideosRef.current[i].push(video);if(video.hasAttribute(\"autoplay\")&&i!==0){const pauseVideo=()=>{if(!video.paused){setTimeout(()=>{if(!video.paused){video.pause();}},100)// 100 milliseconds = 0.1 seconds\n;}};if(!video.paused){// Video is already playing, pause it immediately\npauseVideo();}else{// Wait for the video to start playing, then pause it\nvideo.addEventListener(\"play\",pauseVideo,{once:true});}}}}}let unmountFunction=null;if(form){function onEnterPress(event){if(event.key!==\"Enter\"||event.target.tagName===\"TEXTAREA\"){return;}const currentInput=event.target;let previousElement=currentInput;let foundPage=false;while(previousElement&&!foundPage){const newElement=previousElement.parentElement;if(newElement==pages){foundPage=true;break;}previousElement=newElement;}const currentPage=previousElement;let stopEvent=true;if(currentPage){const inputs=getInputsOnPage(currentPage);const currentIndex=inputs.indexOf(currentInput);if(currentIndex<inputs.length-1){// Focus the next input on the current page\ninputs[currentIndex+1].focus();}else{const pageElements=Array.from(pages.children);const pageIndex=pageElements.indexOf(currentPage);if(pageIndex<pageElements.length-1){nextPage();}else{// Let the form submit if it's the last page\nstopEvent=false;}}}if(stopEvent){event.preventDefault();event.stopPropagation();}}// Override Enter key press event\nform.addEventListener(\"keydown\",onEnterPress,true);unmountFunction=()=>{form.removeEventListener(\"keydown\",onEnterPress,true);};}if(unmountFunction){return unmountFunction;}},[]);useEffect(()=>{stateRef.current=state;},[state]);useEffect(()=>{if(state&&(!isCanvas||ref.current?.closest('[data-framer-component-container=\"true\"]'))){const submitButton=formInfo.form?.querySelector('button[type=\"submit\"]')?.parentElement;if(submitButton){submitButton.setAttribute(SUBMIT_BUTTON_HIDDEN_ATTRIBUTE,state.isEndPage?\"false\":\"true\");}}},[state?.isEndPage]);useEffect(()=>{const pages=formInfo?.pages;if(pages&&pageHistory){// Enable/disable form inputs on pages that have not been visited for submit validation\nif(state?.logicConfigs?.length||props.endPage==\"customPages\"){for(let i=0;i<pages.children.length;i++){if(pageHistory.includes(i)){const inputs=pages.children[i]?.querySelectorAll(`input[name][disabled=\"FramerForms\"], select[name][disabled=\"FramerForms\"], textarea[name][disabled=\"FramerForms\"]`);for(const input of inputs){input.removeAttribute(\"disabled\");}}else{const inputs=pages.children[i]?.querySelectorAll(\"input[name]:not([disabled]), select[name]:not([disabled]), textarea[name]:not([disabled])\");for(const input of inputs){input.setAttribute(\"disabled\",\"FramerForms\");}}}}// Play/pause videos on form pages\nconst currentPage=pageHistory[pageHistory.length-1];if(pageVideosRef.current){for(const pageIndex of Object.keys(pageVideosRef.current)){const pageVideos=pageVideosRef.current[pageIndex];for(const video of pageVideos){if(pageIndex==currentPage){if(video.hasAttribute(\"autoplay\")){video.play();}}else if(!video.paused){video.pause();}}}}// Scroll to top of form\nif(scrollToTop&&formInfo.form&&!isFirstRenderRef.current){const rect=formInfo.form.getBoundingClientRect();const top=rect.top-scrollToTop.offset;const topIsInView=top>=0&&top<=window.innerHeight;if(!topIsInView){const windowScrollTop=window.pageYOffset||document.documentElement.scrollTop;window.scrollTo({top:windowScrollTop+top,behavior:scrollToTop.scrollStyle});}}if(!isFirstRenderRef.current){autoFocusInputOnPage(pages.children[currentPage]);}isFirstRenderRef.current=false;}fireAnalyticsEvent(props.analytics,pageHistory,formInfo?.pages);},[pageHistory]);useEffect(()=>{setInitialized(true);},[]);return /*#__PURE__*/_jsxs(HiddenComponentLabel,{text:\"Multi-Step Form\",children:[/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 452 60\",width:\"121\",height:\"16\",style:{marginBottom:5},children:[/*#__PURE__*/_jsx(\"path\",{d:\"M 58.178 27.448 L 58.178 0.912 L 33.172 0.912 C 14.852 0.912 0 15.76 0 34.08 L 0 59.086 L 58.178 59.086 L 58.178 27.46 C 58.172 44.93 44.008 59.09 26.538 59.09 L 26.538 27.45 L 58.178 27.45 Z\",fill:\"#473DFE\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M 452.004 36.088 C 452.004 43.208 446.328 47.872 437.336 47.872 C 428.342 47.872 422.57 43.112 421.946 35.464 L 431.132 35.464 C 431.228 38.734 433.392 40.802 437.142 40.802 C 440.268 40.802 442.336 39.6 442.336 37.436 C 442.336 35.944 440.846 34.838 438.826 34.454 L 432.526 33.252 C 426.996 32.192 423.34 28.972 423.34 23.392 C 423.34 16.948 429.016 12.426 436.758 12.426 C 444.982 12.426 450.898 17.14 451.426 24.594 L 442.24 24.594 C 442 21.468 439.884 19.448 436.854 19.448 C 434.162 19.448 432.526 20.892 432.526 22.768 C 432.526 24.306 434.064 25.22 435.892 25.556 L 442.578 26.856 C 448.734 28.056 452.004 31.086 452.004 36.088 Z M 395.384 47.39 L 387.978 27.48 L 387.978 47.39 L 379.754 47.39 L 379.754 12.86 L 390.478 12.86 L 399.184 36.28 L 407.84 12.86 L 418.566 12.86 L 418.566 47.39 L 410.342 47.39 L 410.342 27.24 L 402.886 47.39 Z M 355.758 47.39 L 346.668 47.39 L 346.668 12.86 L 360.808 12.86 C 370.138 12.86 375.476 17.044 375.476 24.402 C 375.476 28.826 372.83 32.482 368.166 34.454 L 376.63 47.39 L 365.81 47.39 L 358.74 35.896 L 355.758 35.896 Z M 355.758 20.362 L 355.758 28.394 L 360.422 28.394 C 364.462 28.394 366.338 27.144 366.338 24.402 C 366.338 21.662 364.462 20.362 360.422 20.362 Z M 325.08 48.112 C 315.124 48.112 307.286 40.562 307.286 30.076 C 307.286 19.592 315.124 12.138 325.08 12.138 C 335.084 12.138 342.922 19.592 342.922 30.078 C 342.922 40.562 335.084 48.112 325.08 48.112 Z M 325.08 39.984 C 330.514 39.984 333.544 35.512 333.544 30.076 C 333.544 24.642 330.514 20.266 325.08 20.266 C 319.646 20.266 316.616 24.642 316.616 30.078 C 316.616 35.512 319.646 39.984 325.08 39.984 Z M 291.034 47.39 L 281.946 47.39 L 281.946 12.86 L 305.462 12.86 L 305.462 20.748 L 291.034 20.748 L 291.034 27.144 L 303.106 27.144 L 303.106 35.032 L 291.034 35.032 L 291.034 47.392 Z M 257.946 47.39 L 248.856 47.39 L 248.856 12.86 L 262.994 12.86 C 272.326 12.86 277.664 17.044 277.664 24.402 C 277.664 28.826 275.018 32.482 270.354 34.454 L 278.818 47.39 L 267.996 47.39 L 260.926 35.896 L 257.946 35.896 Z M 257.946 20.362 L 257.946 28.394 L 262.61 28.394 C 266.65 28.394 268.526 27.144 268.526 24.402 C 268.526 21.662 266.65 20.362 262.61 20.362 Z M 244.616 39.504 L 244.616 47.392 L 220.184 47.392 L 220.184 12.86 L 244.278 12.86 L 244.278 20.748 L 229.274 20.748 L 229.274 25.7 L 242.884 25.7 L 242.884 33.588 L 229.274 33.588 L 229.274 39.504 Z M 191.216 47.39 L 183.81 27.48 L 183.81 47.39 L 175.586 47.39 L 175.586 12.86 L 186.31 12.86 L 195.016 36.28 L 203.672 12.86 L 214.398 12.86 L 214.398 47.39 L 206.174 47.39 L 206.174 27.24 L 198.718 47.39 L 191.218 47.39 Z M 163.08 47.39 L 160.966 40.994 L 148.846 40.994 L 146.682 47.39 L 137.496 47.39 L 150.288 12.86 L 160.244 12.86 L 172.892 47.39 L 163.082 47.39 Z M 155.002 22.864 L 151.298 33.828 L 158.61 33.828 L 155 22.864 Z M 116.574 47.39 L 107.484 47.39 L 107.484 12.86 L 121.624 12.86 C 130.954 12.86 136.292 17.044 136.292 24.402 C 136.292 28.826 133.648 32.482 128.982 34.454 L 137.446 47.39 L 126.626 47.39 L 119.556 35.896 L 116.574 35.896 Z M 116.574 20.362 L 116.574 28.394 L 121.24 28.394 C 125.28 28.394 127.154 27.144 127.154 24.402 C 127.154 21.662 125.278 20.362 121.24 20.362 Z M 89.214 47.39 L 80.126 47.39 L 80.126 12.86 L 103.64 12.86 L 103.64 20.748 L 89.212 20.748 L 89.212 27.144 L 101.284 27.144 L 101.284 35.032 L 89.212 35.032 L 89.212 47.392 Z\",fill:\"#999\"})]}),/*#__PURE__*/_jsxs(\"div\",{ref:ref,id:id,\"data-framerforms-multi-step-form\":true,className:!initialized&&!isCanvas?OPTIMIZATION_CLASS_NAME:\"\",style:{display:\"none\"},children:[initialized&&!isCanvas&&/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`form[framerforms-id=\"${formInfo?.formId}\"] > [data-framer-name=\"Pages\" i] > *:not(:nth-child(${pageHistory?pageHistory[pageHistory.length-1]+1:1})) { display: none; }`}}),isCanvas&&/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`[data-framer-component-container=\"true\"] form[framerforms-id=\"${formInfo?.formId}\"] > [data-framer-name=\"Pages\" i] > *:not(:first-child) { display: none; }`}})]})]});}/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n * @framerDisableUnlink\n */const MultiStepForm=withCSS(MultiStepFormComponent,[`form:has(.${OPTIMIZATION_CLASS_NAME}) > [data-framer-name=\"Pages\" i] > *:not(:first-child) { display: none; }`,`form:has(.${OPTIMIZATION_CLASS_NAME}) div:has(> button[type=\"submit\"]) { display: none; }`,`[${SUBMIT_BUTTON_HIDDEN_ATTRIBUTE}=\"true\"] { display: none; }`],OPTIMIZATION_CLASS_NAME);export default MultiStepForm;MultiStepForm.displayName=\"Multi-Step Form Staging\";addPropertyControls(MultiStepForm,{endPage:{type:ControlType.Enum,defaultValue:\"lastPage\",options:[\"lastPage\",\"customPages\"],optionTitles:[\"Last Page\",\"Custom Pages\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},endPageCustom:{type:ControlType.Array,control:{type:ControlType.String,defaultValue:\"\",placeholder:\"Page Layer Name\",preventLocalization:true},title:\"Pages\",description:\"List of page names where the submit button is shown\",hidden:props=>props.endPage!==\"customPages\"},analytics:{type:ControlType.Object,optional:true,icon:\"interaction\",controls:{platform:{type:ControlType.Enum,options:[\"googleAnalytics\"],optionTitles:[\"Google Analytics 4\"]},googleAnalyticsEventName:{type:ControlType.String,placeholder:\"Event Name\",title:\"Event Name\",preventLocalization:true,hidden:props=>props.platform!==\"googleAnalytics\"},googleAnalyticsEventCategory:{type:ControlType.String,placeholder:\"Optional\",title:\"Category\",description:\"Make sure the Google Analytics 4 script is installed\",preventLocalization:true,hidden:props=>props.platform!==\"googleAnalytics\"}}},scrollToTop:{type:ControlType.Object,optional:true,title:\"Scroll to Top\",controls:{scrollStyle:{type:ControlType.Enum,defaultValue:\"smooth\",options:[\"smooth\",\"instant\"],optionTitles:[\"Smooth\",\"Instant\"],displaySegmentedControl:true,title:\"Scroll\"},offset:{type:ControlType.Number,defaultValue:32,step:1,description:\"When previous or next button is pressed, scroll to the top of the form with an offset\"}}}});//////////////////////////////////////////////////////////////\n/**\n * Validates all inputs within an element. Uses reportValidity() which shows validation UI.\n * Only validates visible inputs (inputs on hidden pages are skipped).\n *\n * @param element The element whose inputs we have to validate\n * @returns `true` if all visible inputs are valid, `false` otherwise\n */export function isFormValid(element){const inputs=element.querySelectorAll(\"input, select, textarea\");let invalidInputs=[];for(const input of inputs){if(isVisible(input)&&!input.reportValidity()){invalidInputs.push(input);}}return invalidInputs.length===0;}/**\n * Checks if all required fields on a page have values.\n * Works on hidden pages (doesn't rely on visibility).\n * Does NOT trigger validation UI - use this for pre-checking pages before navigation.\n *\n * @param element The page element to check\n * @returns `true` if all required fields have values, `false` if any required field is empty\n */export function hasRequiredFieldsFilled(element){const inputs=element.querySelectorAll(\"input[required], select[required], textarea[required]\");for(const input of inputs){// Skip disabled inputs\nif(input.disabled)continue;// Skip hidden proxy inputs (tabindex=-1 with opacity 0)\n// BUT: Don't skip if it has data-framerforms-set-value-event (Dropdown's HiddenInput)\nconst isHiddenProxy=input.tabIndex===-1&&input.style.opacity===\"0\";const isDropdownHiddenInput=input.hasAttribute(\"data-framerforms-set-value-event\");if(isHiddenProxy&&!isDropdownHiddenInput)continue;// Check if input has a value\nconst value=input.value?.trim()??\"\";if(value===\"\"){return false;}}return true;}/**\n * Checks if the element is visible in the DOM.\n *\n * @param element The element we are checking the visibility of\n * @returns `true` if the element is visible, `false` otherwise\n */function isVisible(element){return element.offsetParent!==null||element instanceof HTMLInputElement&&element.type===\"hidden\";}/**\n *\n * @param parentElement The parent element to search for the child\n * @param name The name of the child to search for\n * @returns The index of the child if found, -1 otherwise\n */function getChildIndexByDataFramerName(parentElement,name){const children=Array.from(parentElement.children);for(let i=0;i<children.length;i++){if(children[i].getAttribute(\"data-framer-name\")===name){return i;}}return-1// Return -1 if no child with the specified attribute value is found\n;}/**\n * Determines if a given page index is an end page based on the form configuration.\n *\n * @param {IsPageAnEndPageParams} params - Configuration object\n * @param {number} params.pageIndex - Zero-based index of the page to check\n * @param {MultiStepFormState} params.state - Multi-step form state containing total page count\n * @param {HTMLElement | null} params.pages - Container element with all page elements, or null\n * @param {\"customPages\" | \"lastPage\"} params.endPageMode - Mode for identifying end pages\n * @param {string[]} params.customEndPages - Page names (data-framer-name) that are end pages (used when endPageMode is \"customPages\")\n * @returns {boolean} `true` if the page is an end page, `false` otherwise\n */function isPageAnEndPage({pageIndex,state,pages,endPageMode,customEndPages}){let isEndPage=false;if(endPageMode===\"customPages\"&&pages){const step=pages.children[pageIndex];if(customEndPages.includes(step.getAttribute(\"data-framer-name\"))){isEndPage=true;}}else{isEndPage=pageIndex==state.totalPages-1;}return isEndPage;}/**\n * Fires analytics events when the user navigates to a new page.\n *\n * @param analytics - Analytics configuration object, or null/undefined to skip\n * @param pageHistory - Array of visited page indices. Current page is the last element.\n * @param pages - Container element holding all page elements as children\n *\n * @example\n * // pageHistory = [0, 1, 2] means user is on page index 2 (third page)\n * fireAnalyticsEvent(analyticsConfig, [0, 1, 2], pagesElement)\n */function fireAnalyticsEvent(analytics,pageHistory,pages){if(!analytics||!pageHistory||!pages){return;}switch(analytics.platform){case\"googleAnalytics\":if(typeof window!==\"undefined\"){if(typeof window.gtag!==\"undefined\"){const pageIndex=pageHistory[pageHistory.length-1];const page=pages?.children[pageIndex];const params={page_name:page?.getAttribute(\"data-framer-name\")||page?.getAttribute(\"name\")||`Page ${pageIndex+1}`};if(analytics.googleAnalyticsEventCategory){params.event_category=analytics.googleAnalyticsEventCategory;}window.gtag(\"event\",analytics.googleAnalyticsEventName,params);}else{console.error(\"Google Analytics gtag.js script is not installed.\");}}break;}}function getInputsOnPage(page){return Array.from(page.querySelectorAll('input:not([type=\"hidden\"]):not([disabled]):not([name=\"\"]):not([tabindex=\"-1\"]):not([data-framerforms-set-value-event]), textarea:not([disabled]):not([name=\"\"]):not([tabindex=\"-1\"]), select:not([disabled]):not([name=\"\"]):not([tabindex=\"-1\"]), button:not([disabled]):not([tabindex=\"-1\"])')).filter(el=>window.getComputedStyle(el).display!==\"none\");}function autoFocusInputOnPage(pageElement){if(!pageElement){return;}// Get all potential autofocus elements\nconst autofocusElements=pageElement.querySelectorAll(\"input[autofocus], select[autofocus], textarea[autofocus]\");// Convert NodeList to Array for easier manipulation\nconst elements=Array.from(autofocusElements);// Filter out hidden elements\nconst visibleElements=elements.filter(el=>{const style=window.getComputedStyle(el);return style.display!==\"none\"&&style.visibility!==\"hidden\"&&!el.hidden&&!el.disabled&&el.offsetParent!==null// Check if the element is rendered\n;});// If there are visible autofocus elements, focus the first one\nif(visibleElements.length>0){visibleElements[0].focus();}}\nexport const __FramerMetadata__ = {\"exports\":{\"isFormValid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasRequiredFieldsFilled\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"MultiStepForm\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useState,useRef}from\"react\";import{motion}from\"framer-motion\";import{fillProp,createBackground,useMultiStepFormStore,useCanvasState,getFormInfo}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";import{hasRequiredFieldsFilled,isFormValid}from\"https://framerusercontent.com/modules/wV9SghwspjN8vk1MgoSi/5hwqI63C3dZ8dPHZQwJ0/MultiStepForm.js\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n * @framerDisableUnlink\n */export default function FormDots(props){const{fill,gap,clickable,padding}=props;const isVertical=props.direction===\"vertical\";const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ref=useRef(null);const[multiStepFormState,setMultiStepFormState]=useMultiStepFormStore();const canvasState=useCanvasState(ref);const[formId,setFormId]=useState(null);const state=isCanvas?canvasState:multiStepFormState[formId];const pageHistory=state?.pageHistory;const page=pageHistory?pageHistory[pageHistory.length-1]:0;useEffect(()=>{const newFormId=getFormInfo(ref.current).formId;setFormId(newFormId);if(!multiStepFormState[newFormId]){setMultiStepFormState({});}},[]);function onDotClick(index){if(clickable&&state&&formId&&index>=0&&index<state.totalPages){const currentHistory=pageHistory||[0];const currentPage=currentHistory[currentHistory.length-1];if(index<currentHistory.length){// Navigating to a previously visited page - truncate history\nstate.setPageHistoryLength(index+1);}else if(index>currentPage){// Navigating forward - validate each page before allowing navigation\nconst{pages}=getFormInfo(ref.current);if(!pages)return;const newHistory=[...currentHistory];let blockedAtPage=null;// Loop through each page from current to target\n// Validate the page we're LEAVING before moving to the next\nfor(let i=currentPage;i<index;i++){const pageElement=pages.children[i];// If current page has unfilled required fields, stop here\nif(pageElement&&!hasRequiredFieldsFilled(pageElement)){blockedAtPage=i;break;}// Page is valid, we can move to the next one\nif(i+1<=index){newHistory.push(i+1);}}// Only update state if we actually moved forward\nif(newHistory.length>currentHistory.length){const finalPage=newHistory[newHistory.length-1];const wasBlockedByValidation=finalPage<index;setMultiStepFormState(prev=>({[formId]:{...prev[formId],pageHistory:newHistory,isEndPage:finalPage===prev[formId].totalPages-1}}));// If user was blocked by validation, trigger error UI on the landing page\nif(wasBlockedByValidation){// Wait for the page to become visible, then trigger validation UI\nrequestAnimationFrame(()=>{const landingPage=pages.children[finalPage];if(landingPage){isFormValid(landingPage);}});}}else{// If blocked at current page, trigger error UI on current page\nif(blockedAtPage!==null){const currentPageElement=pages.children[blockedAtPage];if(currentPageElement){requestAnimationFrame(()=>{isFormValid(currentPageElement);});}}}}}}let dots=[];for(let i=0;i<state?.totalPages;i++){const selected=i==page;dots.push(/*#__PURE__*/_jsx(\"div\",{onClick:()=>onDotClick(i),style:{padding:isVertical?`${i==0?padding:gap/2}px ${padding}px ${i==state?.totalPages-1?padding:gap/2}px ${padding}px`:`${padding}px ${i==state?.totalPages-1?padding:gap/2}px ${padding}px ${i==0?padding:gap/2}px`,cursor:clickable&&!selected&&\"pointer\"},children:/*#__PURE__*/_jsx(motion.div,{animate:{...createBackground(props.fill,selected),boxShadow:selected&&props.shadows?.on?props.shadows?.on:props.shadows?.off,width:!isVertical&&selected?props.currentWidth:props.size,height:isVertical&&selected?props.currentWidth:props.size},style:{borderRadius:props.radius},initial:false,transition:props.transition})}));}return /*#__PURE__*/_jsx(\"div\",{\"data-framerforms\":true,ref:ref,style:{display:\"flex\",flexDirection:props.direction==\"horizontal\"?\"row\":\"column\",...props.style},children:dots});}FormDots.displayName=\"Form Navigation Dots\";addPropertyControls(FormDots,{clickable:{type:ControlType.Boolean,defaultValue:true},fill:fillProp({onOff:true,focus:false,invalid:false,optional:false,colorOn:\"#0099FF\",colorAOn:\"#91C5FF\",colorBOn:\"#0099FF\",colorOff:\"rgba(187, 187, 187, 0.5)\"}),direction:{type:ControlType.Enum,defaultValue:\"horizontal\",options:[\"horizontal\",\"vertical\"],displaySegmentedControl:true},size:{type:ControlType.Number,defaultValue:10,min:0,step:1,displayStepper:true},currentWidth:{type:ControlType.Number,defaultValue:20,min:0,step:1,displayStepper:true,title:\"Current\"},gap:{type:ControlType.Number,defaultValue:6,min:0,step:1,displayStepper:true},padding:{type:ControlType.Number,defaultValue:5,min:0,step:1,displayStepper:true},radius:{type:ControlType.Number,defaultValue:5,step:1,min:0,displayStepper:true},shadows:{type:ControlType.Object,optional:true,buttonTitle:\"Shadows\",controls:{off:{type:ControlType.BoxShadow},on:{type:ControlType.BoxShadow}}},transition:{type:ControlType.Transition,defaultValue:{type:\"spring\",damping:60,delay:0,duration:.3,mass:1,stiffness:800}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FormDots\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useState,useRef,cloneElement}from\"react\";import{motion}from\"framer-motion\";import{borderProp,fillProp,createBackground,Border,HideElement,useMultiStepFormStore,getFormInfo}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";const CANVAS_HIDDEN_CLASS_NAME=\"framerforms-canvas-hidden\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export default function MultiStepFormButton(props){const prev=props.page==\"previous\";const isCanvas=RenderTarget.current()===RenderTarget.canvas;const isOptimizing=typeof window===\"undefined\";const[multiStepFormState,setMultiStepFormState]=useMultiStepFormStore();const[formId,setFormId]=useState(null);const ref=useRef(null);const state=multiStepFormState[formId];useEffect(()=>{const newFormId=getFormInfo(ref.current).formId;if(!multiStepFormState[newFormId]){setMultiStepFormState({});}setFormId(newFormId);},[]);let hidden=false;if(isOptimizing||!state){hidden=prev;}else if(state?.pageHistory){const page=state.pageHistory[state.pageHistory.length-1];if(prev){hidden=page===0;}else{hidden=state.isEndPage;}}if(hidden&&!isCanvas){return /*#__PURE__*/_jsx(HideElement,{ref:ref});}function onClick(){if(state){if(prev){state.previousPage();}else{state.nextPage();}}props.click?.();}if(props.appearance==\"custom\"){let layer=props.customLayer?.[0];const width=props.style?.width;const height=props.style?.height;if(layer&&props.style&&(width||height)){layer=/*#__PURE__*/cloneElement(layer,{style:{...layer.props.style,...width&&{width:width},...height&&{height:height}}});}return /*#__PURE__*/_jsx(\"button\",{ref:ref,type:\"button\",style:{display:\"contents\"},onClick:onClick,onMouseEnter:props.hover,children:layer});}return /*#__PURE__*/_jsxs(motion.button,{\"data-framerforms\":true,ref:ref,type:\"button\",onClick:onClick,onMouseEnter:props.hover,className:hidden&&isCanvas?CANVAS_HIDDEN_CLASS_NAME:\"\",whileFocus:{...createBackground(props.fill,null,true),borderColor:props.border?.colorFocus??props.border?.color},style:{position:\"relative\",display:\"flex\",justifyContent:props.font?.textAlign||\"center\",alignItems:\"center\",...createBackground(props.fill),border:\"none\",color:props.color,padding:props.padding,borderRadius:props.radius,userSelect:\"none\",cursor:\"pointer\",textWrap:props.style?.width==\"100%\"?undefined:\"nowrap\",boxShadow:props.shadows,borderColor:props.border?.color,backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined,...props.font,...props.style},transition:props.transition,children:[props.text,/*#__PURE__*/_jsx(Border,{...props.border}),hidden&&isCanvas&&/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n                        [data-framer-component-container=\"true\"] div:has(> .${CANVAS_HIDDEN_CLASS_NAME}) {\n                            display: none !important;\n                        }`}})]});}MultiStepFormButton.displayName=\"Multi-Step Form Button\";addPropertyControls(MultiStepFormButton,{page:{type:ControlType.Enum,defaultValue:\"next\",options:[\"previous\",\"next\"],optionTitles:[\"Previous\",\"Next\"],displaySegmentedControl:true},autoHide:{type:ControlType.Boolean,defaultValue:true,title:\"Auto-Hide\",description:\"Hide on first/last page\"},appearance:{type:ControlType.Enum,defaultValue:\"default\",options:[\"default\",\"custom\"],optionTitles:[\"Default\",\"Custom\"],displaySegmentedControl:true},customLayer:{type:ControlType.ComponentInstance,title:\"Layer\",description:\"Connect a custom layer outside the breakpoint\",hidden:props=>props.appearance!==\"custom\"},text:{type:ControlType.String,defaultValue:\"Next\",hidden:props=>props.appearance!==\"default\"},fill:fillProp({focus:true,invalid:false,color:\"#333\",colorA:\"#8C8C8C\",colorB:\"#000\",hidden:props=>props.appearance!==\"default\"}),color:{type:ControlType.Color,defaultValue:\"#FFF\",hidden:props=>props.appearance!==\"default\"},font:{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.2},hidden:props=>props.appearance!==\"default\"},padding:{type:ControlType.Padding,defaultValue:\"10px 16px 10px 16px\",hidden:props=>props.appearance!==\"default\"},radius:{type:ControlType.BorderRadius,defaultValue:\"10px\",hidden:props=>props.appearance!==\"default\"},border:borderProp({focus:true,color:\"#0099FF00\",hidden:props=>props.appearance!==\"default\"}),shadows:{type:ControlType.BoxShadow,hidden:props=>props.appearance!==\"default\"},bgBlur:{type:ControlType.Number,min:0,max:100,step:1,displayStepper:true,title:\"BG Blur\",hidden:props=>props.appearance!==\"default\"},transition:{type:ControlType.Transition,defaultValue:{type:false},hidden:props=>props.appearance!==\"default\"},click:{type:ControlType.EventHandler},hover:{type:ControlType.EventHandler}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MultiStepFormButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","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}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{createBackground,Border,parsePadding,useInstanceId,Icon,HiddenInput}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";import{GenericDropdown,dropdownProp,getSharedStyleControls,getOptionItemControls,SHARED_DEFAULTS}from\"https://framerusercontent.com/modules/PwJ4k4IqmEWPlM2ZI4Eu/Wof3uC3VdIgYyyDoK0vM/DropdownUtilities.js\";import{buildQuizInputDataAttributes,createQuizNestedControls}from\"https://framerusercontent.com/modules/itVumdSpaLTGejsnG4cS/6LKYMWPrWe4DJ5B7wYmL/QuizScoringShared.js\";// ============================================================================\n// MAIN DROPDOWN COMPONENT\n// ============================================================================\n/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 400\n * @framerDisableUnlink\n */export default function Dropdown(props){const{shadows,border,icon,options=[],quiz}=props;const id=useInstanceId();const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[focused,setFocused]=useState(false);const[invalid,setInvalid]=useState(false);const[dropdownOpen,setDropdownOpen]=useState(false);const[searchQuery,setSearchQuery]=useState(\"\");// Find the default option or use empty string\nconst getDefaultValue=()=>{const defaultOpt=options.find(opt=>opt.default&&opt.type!==\"line\");return defaultOpt?.value||\"\";};const[selectedValue,setSelectedValue]=useState(getDefaultValue);// Update selected value when options change (e.g., default option changes)\nuseEffect(()=>{const defaultValue=getDefaultValue();if(defaultValue&&!selectedValue){setSelectedValue(defaultValue);}},[options]);const dropdownRef=useRef(null);const searchInputRef=useRef(null);const inputRef=useRef(null);const[pt,pr,pb,pl]=parsePadding(props.padding);// Get enabled options only\nconst enabledOptions=options.filter(opt=>opt.type===\"line\"||opt.enabled!==false);// Close dropdown when clicking outside\nuseEffect(()=>{const handleClickOutside=event=>{const target=event.target;const isOutsideDropdown=dropdownRef.current&&!dropdownRef.current.contains(target);const isOutsideInput=inputRef.current&&!inputRef.current.contains(target);if(isOutsideDropdown&&isOutsideInput){setDropdownOpen(false);setSearchQuery(\"\");setFocused(false);}};if(dropdownOpen||focused){document.addEventListener(\"mousedown\",handleClickOutside);return()=>{document.removeEventListener(\"mousedown\",handleClickOutside);};}},[dropdownOpen,focused]);// Focus search input when dropdown opens\nuseEffect(()=>{if(dropdownOpen&&searchInputRef.current){setTimeout(()=>{searchInputRef.current?.focus();},100);}},[dropdownOpen]);function onFocus(){setFocused(true);setDropdownOpen(true);props.focusEvent?.();if(invalid){setInvalid(false);}}function onBlur(event){const relatedTarget=event.relatedTarget;if(dropdownRef.current?.contains(relatedTarget)||searchInputRef.current===relatedTarget){return;}if(!dropdownOpen){setFocused(false);setSearchQuery(\"\");props.blurEvent?.();}}function onInputClick(){setDropdownOpen(true);setFocused(true);props.focusEvent?.();if(invalid){setInvalid(false);}}function onOptionSelect(value){setSelectedValue(value);setDropdownOpen(false);setSearchQuery(\"\");setFocused(false);inputRef.current?.blur();}const onInvalid=event=>{event.preventDefault();setInvalid(true);props.invalidEvent?.();};// Handle value restoration from FormPersistence\nfunction onSetValueEvent(event){const value=event.detail;if(!value){setSelectedValue(\"\");return;}// Find matching option\nconst matchingOption=options.find(opt=>opt.value===value);if(matchingOption){setSelectedValue(value);}}// Get display text for selected value\nconst getDisplayText=()=>{if(!selectedValue){return props.placeholder||\"Select...\";}const selectedOption=options.find(opt=>opt.value===selectedValue);return selectedOption?.title||selectedOption?.value||selectedValue;};const correctVals=quiz?.isQuizInput&&quiz.scoringMethod!==\"weighted\"?(quiz.correctOptionValues??[]).map(v=>String(v).trim()).filter(Boolean):[];const quizInputProps=buildQuizInputDataAttributes(quiz,{correctAnswer:correctVals.length>0?correctVals[0]:null,quizOptionsJson:{matchMode:\"exact\"}});return /*#__PURE__*/_jsxs(motion.div,{\"data-framerforms\":true,id:id,style:{position:\"relative\",borderRadius:props.radius},initial:false,transition:props.transition,children:[/*#__PURE__*/_jsx(HiddenInput,{name:props.name,required:props.required&&!selectedValue,value:selectedValue,setInvalid:setInvalid,onSetValueEvent:onSetValueEvent,...quizInputProps}),/*#__PURE__*/_jsx(GenericDropdown,{isOpen:dropdownOpen,dropdownRef:dropdownRef,searchInputRef:searchInputRef,searchQuery:searchQuery,onSearchChange:setSearchQuery,options:enabledOptions,selectedValue:selectedValue,onOptionSelect:onOptionSelect,containerId:id,fill:props.fill,color:props.color,font:props.font,isCanvas:isCanvas,showDropdown:props.showDropdown,showSearch:props.showSearch,searchPlaceholder:props.searchPlaceholder,dropdownStyle:props.dropdown,borderRadius:props.radius,padding:props.padding,placeholderColor:props.placeholderColor,bgBlur:props.bgBlur}),/*#__PURE__*/_jsxs(motion.div,{ref:inputRef,onClick:onInputClick,onFocus:onFocus,onBlur:onBlur,tabIndex:0,animate:{...createBackground(props.fill,null,focused,invalid),boxShadow:invalid&&shadows?.invalid||focused&&shadows?.focus||shadows?.default},style:{position:\"relative\",borderRadius:props.radius,cursor:\"pointer\",backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined,...props.style},initial:false,transition:props.transition,children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",padding:icon?`${pt}px ${pr+icon.size+8}px ${pb}px ${pl}px`:props.padding,color:selectedValue?props.color:props.placeholderColor||props.color+\"80\",textOverflow:\"ellipsis\",overflow:\"hidden\",whiteSpace:\"nowrap\",...props.font},children:getDisplayText()}),icon&&/*#__PURE__*/_jsx(Icon,{...icon,style:{position:\"absolute\",right:pr,top:\"50%\",transform:\"translateY(-50%)\",pointerEvents:\"none\"},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>')`}),/*#__PURE__*/_jsx(Border,{...props.border,borderColor:invalid&&border?.colorInvalid||focused&&border?.colorFocus||border?.color,transition:props.transition})]}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`#${id} [tabindex]:focus { outline: none; }`}})]});}Dropdown.displayName=\"Dropdown\";// ============================================================================\n// PROPERTY CONTROLS\n// ============================================================================\naddPropertyControls(Dropdown,{name:{type:ControlType.String,defaultValue:\"Location\"},showDropdown:{type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",title:\"Dropdown\"},dropdown:dropdownProp(),required:{type:ControlType.Boolean,defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},options:{type:ControlType.Array,defaultValue:[{type:\"text\",value:\"option_a\",title:\"Option A\",enabled:true},{type:\"text\",value:\"option_b\",title:\"Option B\",enabled:true},{type:\"text\",value:\"option_c\",title:\"Option C\",enabled:true}],control:{type:ControlType.Object,controls:getOptionItemControls()},title:\"Options\"},showSearch:{type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",title:\"Search\"},searchPlaceholder:{type:ControlType.String,defaultValue:\"Search...\",title:\"Search Placeholder\",hidden:props=>!props.showSearch},placeholder:{title:\"Placeholder\",type:ControlType.String,defaultValue:\"Select...\"},// Shared style controls - includes placeholderColor with default from SHARED_DEFAULTS\n// Component-specific controls (like placeholder text above) are defined separately\n...getSharedStyleControls({color:SHARED_DEFAULTS.color,fillColor:SHARED_DEFAULTS.fillColor,invalid:true}),quiz:{type:ControlType.Object,title:\"Quiz\",optional:true,controls:createQuizNestedControls({correctOptionValues:{type:ControlType.Array,title:\"Correct\",defaultValue:[],control:{type:ControlType.String,defaultValue:\"\",placeholder:\"Correct answer\"}}})}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Dropdown\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useState,useRef}from\"react\";import{motion}from\"framer-motion\";import{useMultiStepFormStore,useCanvasState,getFormInfo}from\"https://framerusercontent.com/modules/DwWOdDzQZGCuvkNlbUjZ/Rj7Kdx4qq62ukVsnw7Hz/FramerFormsShared.js\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 10\n * @framerDisableUnlink\n */export default function FormProgressBar(props){const{fill,align}=props;const isVertical=props.direction==\"vertical\";const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ref=useRef(null);const[multiStepFormState,setMultiStepFormState]=useMultiStepFormStore();const canvasState=useCanvasState(ref);const[formId,setFormId]=useState(null);const state=isCanvas?canvasState:multiStepFormState[formId];const[percent,setPercent]=useState(0);const prevPercentRef=useRef(0);useEffect(()=>{const newFormId=getFormInfo(ref.current).formId;setFormId(newFormId);if(!multiStepFormState[newFormId]){setMultiStepFormState({});}},[]);useEffect(()=>{if(state){const currentIndex=state.pageHistory?.[state.pageHistory.length-1]??0;const currentPageNumber=currentIndex+1;const totalPages=state.totalPages||1;setPercent(currentPageNumber/totalPages);}},[state]);useEffect(()=>{prevPercentRef.current=percent;},[percent]);const p=isCanvas?props.previewPercent/100:percent;return /*#__PURE__*/_jsx(\"div\",{\"data-framerforms\":true,ref:ref,style:{display:\"flex\",flexDirection:props.direction==\"horizontal\"?\"row\":\"column\",justifyContent:align,borderRadius:props.radius,backgroundColor:props.background,boxShadow:props.shadows,backdropFilter:props.bgBlur?`blur(${props.bgBlur}px)`:undefined,overflow:\"hidden\",...props.style},children:/*#__PURE__*/_jsx(motion.div,{initial:false,transition:prevPercentRef.current===0?{type:false,duration:0}:props.transition,animate:{width:isVertical?\"100%\":`${p*100}%`,height:isVertical?`${p*100}%`:\"100%\",background:fill.type==\"color\"?fill.color:`linear-gradient(to ${isVertical?\"bottom\":\"right\"}, ${fill.colorA} ${props.fill.gradientScaled?0:align==\"center\"?50+-50/p:align==\"flex-end\"?-100/p+100:0}%, ${fill.colorB} ${props.fill.gradientScaled?100:align==\"center\"?50+50/p:align==\"flex-start\"?100/p:100}%)`},style:{borderRadius:props.innerRadius?props.radius:0}})});}FormProgressBar.displayName=\"Form Progress Bar\";addPropertyControls(FormProgressBar,{fill:{type:ControlType.Object,// @ts-ignore - Framer \"icon\" typing differs from our TS definitions\nicon:\"color\",defaultValue:{type:\"color\",color:\"#0099FF\",colorA:\"#91C5FF\",colorB:\"#0099FF\"},controls:{type:{type:ControlType.Enum,options:[\"color\",\"linearGradient\"],optionTitles:[\"Color\",\"Gradient\"],displaySegmentedControl:true},color:{type:ControlType.Color,defaultValue:\"#0099FF\",hidden:props=>props.type!==\"color\"},colorA:{type:ControlType.Color,defaultValue:\"#91C5FF\",title:\"Colors\",hidden:props=>props.type!==\"linearGradient\"},colorB:{type:ControlType.Color,defaultValue:\"#0099FF\",title:\" \",hidden:props=>props.type!==\"linearGradient\"},gradientScaled:{type:ControlType.Boolean,defaultValue:false,title:\"Scaled\",hidden:props=>props.type!==\"linearGradient\"}}},background:{type:ControlType.Color,defaultValue:\"rgba(187, 187, 187, 0.15)\",optional:true},previewPercent:{type:ControlType.Number,defaultValue:75,min:0,max:100,step:1,unit:\"%\",title:\"Preview\"},direction:{type:ControlType.Enum,defaultValue:\"horizontal\",options:[\"horizontal\",\"vertical\"],displaySegmentedControl:true},align:{type:ControlType.Enum,defaultValue:\"flex-start\",options:[\"flex-start\",\"center\",\"flex-end\"],// @ts-ignore\noptionIcons:{direction:{horizontal:[\"align-left\",\"align-center\",\"align-right\"],vertical:[\"align-top\",\"align-middle\",\"align-bottom\"]}},displaySegmentedControl:true},radius:{// @ts-ignore - Framer supports BorderRadius control type (not in our TS typings)\ntype:ControlType.BorderRadius,defaultValue:\"5px\"},innerRadius:{type:ControlType.Boolean,defaultValue:true},shadows:{// @ts-ignore - Framer supports BoxShadow control type (not in our TS typings)\ntype:ControlType.BoxShadow},bgBlur:{type:ControlType.Number,min:0,max:100,step:1,displayStepper:true,title:\"BG Blur\"},transition:{type:ControlType.Transition,defaultValue:{type:\"spring\",damping:60,delay:0,duration:.3,mass:1,stiffness:800}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FormProgressBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"10\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}