{"version":3,"file":"FormKitText.dYABzPiL.mjs","names":["useState","useState","useRef","useState","__esmMin","init_npm_react_18_3_1","init_ssg_sandbox_shims","_e","de","init_jsx_runtime","c","p","ce","init_framer_D6uXRwWs","addPropertyControls","Data","useObserveData","RenderTarget","ControlType","createStore","dataStore","state1","setDataStore","newState","storeState","storeSetters","setStoreState","setter","useStore","state","setState","init_createStore","init_store_js__1","initializedForms","formStores","getFormStore","getFormStoreKey","clearFormFromLocalStorage","isPreview","init_Store_management","formId","newStore","manualStoreKey","key","error","HIDDEN_FIELD_CSS","cssInjected","injectHiddenFieldCSS","HiddenFieldMarker","init_HiddenFieldMarker","style","getFormKitDirection","explicitDirection","sample","textSamples","text","RTL_TEXT_PATTERN","LTR_TEXT_PATTERN","documentDirection","documentLanguage","RTL_LANG_PATTERN","getTextAlignForDirection","textAlign","direction","init_Direction","validateRequired","validateEmail","validateURL","validateMinLength","validateMaxLength","validatePattern","validateMin","validateMax","validatePhone","validateFileSize","validateFileType","validateField","init_Validation","value","message","fieldName","minLength","maxLength","pattern","min","max","file","maxSize","accept","acceptedTypes","t","fileType","fileExtension","type","category","props","requiredError","arr","minError","maxError","typeError","sizeError","minLengthError","maxLengthError","patternError","useFormField","config","actualFormId","storeKey","localValue","setLocalValue","name","isValidating","setIsValidating","hasValidated","setHasValidated","validationTimeoutRef","isStateReady","storeValue","normalizedStoreValue","currentErrors","prev","_","otherErrors","skipValidation","validation","newErrors","validate","valueToValidate","onChange","validateOnChange","validateOnBlur","init_Hooks","normalizeConditionValue","isFilled","evaluateRule","evaluateFieldState","getConditionalBadge","init_Conditions","trimmed","numeric","rule","field","left","data","right","operator","v","i","l","r","showIf","conditionMet","keys","values","results","match","action","wouldBeHidden","fieldState","wouldBeDisabled","showIfAction","createStylingControl","SHOW_IF_CONTROL","MULTI_STEP_CONDITION_CONTROL","MULTI_STEP_MATCH_CONTROL","MULTI_STEP_NEXT_RULES_CONTROL","SHOW_IF_MATCH_CONTROL","SHOW_IF_ACTION_CONTROL","STORE_CONFIG_CONTROL","VALIDATION_CONTROLS","BASE_INPUT_STYLE_CONTROLS","LABEL_STYLE_CONTROLS","ERROR_STYLE_CONTROLS","SUCCESS_STYLE_CONTROLS","FOCUS_STYLE_CONTROLS","init_Property_controls","IconCheck","IconAlert","renderIcon","init_Icons","iconType","customIcon","processedSvg","svg","attrs","filteredStyle","styleValue","propStyle","restHtmlProps","DefaultIcon","FormKitText","styling","validationConfig","validationType","isCanvas","showIfMatch","isVisible","isDisabled","showBadge","badgeText","badge","isFocused","setIsFocused","componentDirection","label","placeholder","successMessage","resolvedInputTextAlign","inputStyles","resolvedLabelTextAlign","labelStyles","hasTextValue","shouldShowSuccess","required","successDisplayMode","successStyles","showInlineSuccessIcon","showSuccessMessage","inputStyle","focusStyles","isTouched","labelStyle","errorStyle","errorStyles","successStyle","fieldId","handleChange","handleBlur","init_FormKitText"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0","https:/framerusercontent.com/modules/W9pGMfwOEUT2E0G0vdr3/rUH7091b0rLB5Qeyq53j/Store_management.js","https:/framerusercontent.com/modules/zT6ckO4RKI5zB9JzgGVW/5pPr41RBexGJfYLsBNcj/HiddenFieldMarker.js","https:/framerusercontent.com/modules/TnGeMluKUv3ZoPWbVX5z/6AL0m280OlZ8wllCKODq/Direction.js","https:/framerusercontent.com/modules/CkzWOzYsjkSH8b0Md9Dz/jFAHTs0VED1zTLOHkBsH/Validation.js","https:/framerusercontent.com/modules/QcJOsISgPpDHi68MFiJ7/176U4ui7gT7NprXWOLT8/Hooks.js","https:/framerusercontent.com/modules/YQMwVuIkIDYjLHJOwEnu/E43Ih1OWNh9ZYDxH2sAu/Conditions.js","https:/framerusercontent.com/modules/gWXlNkIcFnVLxXMR7ktn/JtLdSfrUYaW9eElJLaFM/Property_controls.js","https:/framerusercontent.com/modules/hSeRQvQLiNwfAzfTZN4C/2faSrR7PxMT7RJTYjc17/Icons.js","https:/framerusercontent.com/modules/LZi5STmjgrgLRHYHNLR6/NxtpXEq2laZFbZL8fu39/FormKitText.js"],"sourcesContent":["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","// Store management for FormKit\n// Based on CMS Filter pattern\nimport{createStore}from\"https://framer.com/m/framer/store.js@^1.0\";import{RenderTarget}from\"framer\";// Track initialized forms (simple Set, no hooks)\nconst initializedForms=new Set;// Helper to check if a form has been initialized\nexport const isFormInitialized=formId=>{return initializedForms.has(formId);};// Global stores per form ID\nconst formStores=new Map;// Helper to get or create store for form\nexport const getFormStore=formId=>{if(!formStores.has(formId)){const newStore=createStore({currentStep:0,totalSteps:1,stepsInitialized:false,data:{},submissionEnabled:{},errors:{},touched:{},visitedSteps:[0],stepHistory:[0],completedSteps:[],isSubmitting:false,isCompleted:false,submitAttempted:false,submitState:\"idle\",nextRules:[],previousRules:[],submitSuccessRules:[]});formStores.set(formId,newStore);// Track initialization without using hooks (hooks cannot be called in regular functions!)\ninitializedForms.add(formId);}return formStores.get(formId);};// Helper to get store key - prioritizes manual storeKey over formId\nexport const getFormStoreKey=(formId,manualStoreKey)=>{// If manual store key is provided and not \"auto\", use it\nif(manualStoreKey&&manualStoreKey.trim()!==\"\"&&manualStoreKey!==\"auto\"){return manualStoreKey.trim();}// Otherwise use formId or default\nreturn formId||\"default\";};// Return only fields that are allowed to leave FormKit during submission.\n// Captcha components use this to keep verification tokens available for\n// validation without exposing them in emails, redirects, or submit payloads.\nexport const getFormSubmissionData=state=>{const submissionEnabled=state.submissionEnabled||{};return Object.fromEntries(Object.entries(state.data||{}).filter(([fieldName])=>submissionEnabled[fieldName]!==false));};// Helper to save form to localStorage\nexport const saveFormToLocalStorage=(formId,state)=>{try{const key=`formkit:${formId}`;const data={currentStep:state.currentStep,data:state.data,visitedSteps:state.visitedSteps,stepHistory:state.stepHistory,completedSteps:state.completedSteps,lastSaved:Date.now()};localStorage.setItem(key,JSON.stringify(data));}catch(error){console.error(\"Failed to save form to localStorage:\",error);}};// Helper to load form from localStorage\nexport const loadFormFromLocalStorage=formId=>{try{const key=`formkit:${formId}`;const saved=localStorage.getItem(key);if(saved){return JSON.parse(saved);}}catch(error){console.error(\"Failed to load form from localStorage:\",error);}return null;};// Helper to clear form from localStorage\nexport const clearFormFromLocalStorage=formId=>{try{const key=`formkit:${formId}`;localStorage.removeItem(key);}catch(error){console.error(\"Failed to clear form from localStorage:\",error);}};// Helper to parse URL parameters for prefill\nexport const parseUrlParams=()=>{const params={};try{const urlParams=new URLSearchParams(window.location.search);urlParams.forEach((value,key)=>{params[key]=value;});}catch(error){console.error(\"Failed to parse URL parameters:\",error);}return params;};// Utility function to generate random strings (for unique IDs)\nexport function generateRandomId(length=8){const chars=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";let result=\"\";for(let i=0;i<length;i++){result+=chars.charAt(Math.floor(Math.random()*chars.length));}return result;}// RenderTarget helpers\nexport const isPreview=RenderTarget.current()===RenderTarget.preview;export const isCanvas=RenderTarget.current()===RenderTarget.canvas;export const isExport=RenderTarget.current()===RenderTarget.export;\nexport const __FramerMetadata__ = {\"exports\":{\"getFormStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseUrlParams\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"saveFormToLocalStorage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFormSubmissionData\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearFormFromLocalStorage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"generateRandomId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFormStoreKey\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"loadFormFromLocalStorage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isExport\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormKitStore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isFormInitialized\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Store_management.map","/**\r\n * HiddenField - Utility component to hide Framer's container wrapper\r\n * \r\n * When a FormKit field is conditionally hidden, this component returns\r\n * a marker element with CSS that hides the parent Framer container.\r\n * This prevents empty gaps in the layout.\r\n */// CSS to hide Framer container wrapper when field is hidden\nimport{jsx as _jsx}from\"react/jsx-runtime\";const HIDDEN_FIELD_CSS=`\r\n[class*=\"-container\"]:has([data-formkit-hidden=\"true\"]) {\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    min-height: 0 !important;\r\n    min-width: 0 !important;\r\n}\r\n\r\n[class*=\"-container\"]:has([data-formkit-hidden=\"true\"]):not(:has([class*=\"-container\"] [data-formkit-hidden=\"true\"])) {\r\n    display: none !important;\r\n}\r\n    \r\n`;// Track if CSS has been injected (singleton pattern)\nlet cssInjected=false;/**\r\n * Injects global CSS once to hide Framer containers with hidden FormKit fields\r\n */export const injectHiddenFieldCSS=()=>{if(cssInjected)return;if(typeof document===\"undefined\")return;const style=document.createElement(\"style\");style.setAttribute(\"data-formkit-hidden-css\",\"true\");style.textContent=HIDDEN_FIELD_CSS;document.head.appendChild(style);cssInjected=true;};/**\r\n * Returns a hidden marker element that triggers CSS to hide parent container.\r\n * Use this instead of `return null` when conditionally hiding a field.\r\n * \r\n * @example\r\n * if (!isVisible) return <HiddenFieldMarker />\r\n */export const HiddenFieldMarker=()=>{// Inject CSS on first render (if not already injected)\ninjectHiddenFieldCSS();return /*#__PURE__*/_jsx(\"div\",{className:\"sithick\",\"data-formkit-hidden\":\"true\",style:{display:\"none\"},\"aria-hidden\":\"true\"});};export default HiddenFieldMarker;\nexport const __FramerMetadata__ = {\"exports\":{\"HiddenFieldMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"injectHiddenFieldCSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HiddenFieldMarker.map","const RTL_LANG_PATTERN=/^(ar|fa|he|ku|ps|sd|ug|ur)\\b/i;const RTL_TEXT_PATTERN=/[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFF]/;const LTR_TEXT_PATTERN=/[A-Za-z\\u00C0-\\u024F]/;export function getFormKitDirection(style,textSamples=[]){const explicitDirection=style?.direction;if(explicitDirection===\"rtl\"||explicitDirection===\"ltr\"){return explicitDirection;}// In Framer Canvas, translated content can change before the page/document\n// direction updates. Prefer the field's own content when we have it.\nfor(const sample of textSamples){if(sample===null||sample===undefined)continue;const text=String(sample).trim();if(!text)continue;if(RTL_TEXT_PATTERN.test(text))return\"rtl\";if(LTR_TEXT_PATTERN.test(text))return\"ltr\";}if(typeof document!==\"undefined\"){const documentDirection=document.documentElement?.dir||document.body?.dir;if(documentDirection===\"rtl\"||documentDirection===\"ltr\"){return documentDirection;}const documentLanguage=document.documentElement?.lang||document.body?.lang||\"\";if(RTL_LANG_PATTERN.test(documentLanguage)){return\"rtl\";}}return\"ltr\";}export function getTextAlignForDirection(textAlign,direction){if(textAlign)return textAlign;return direction===\"rtl\"?\"right\":\"left\";}\nexport const __FramerMetadata__ = {\"exports\":{\"getTextAlignForDirection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormKitDirection\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFormKitDirection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Direction.map","// Validation utilities for FormKit\nexport const validateRequired=(value,fieldName,message)=>{if(value===null||value===undefined||Array.isArray(value)&&value.length===0){return message||`${fieldName} is required`;}if(typeof value===\"string\"&&value.trim()===\"\"){return message||`${fieldName} is required`;}return null;};export const validateEmail=(value,message)=>{if(!value)return null;const emailRegex=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;if(!emailRegex.test(value)){return message||\"Please enter a valid email address\";}return null;};export const validateURL=value=>{if(!value)return null;try{new URL(value);return null;}catch{return\"Please enter a valid URL\";}};export const validateMinLength=(value,minLength,message)=>{if(!value)return null;if(value.length<minLength){// Support {x} template placeholder\nconst finalMessage=message?message.replace(/{x}/g,minLength.toString()):`Minimum ${minLength} characters required`;return finalMessage;}return null;};export const validateMaxLength=(value,maxLength,message)=>{if(!value)return null;if(value.length>maxLength){// Support {x} template placeholder\nconst finalMessage=message?message.replace(/{x}/g,maxLength.toString()):`Maximum ${maxLength} characters allowed`;return finalMessage;}return null;};export const validatePattern=(value,pattern,message)=>{if(!value)return null;const regex=new RegExp(pattern);if(!regex.test(value)){return message||\"Invalid format\";}return null;};export const validateMin=(value,min,message)=>{if(value===null||value===undefined)return null;if(value<min){return message||`Minimum value is ${min}`;}return null;};export const validateMax=(value,max,message)=>{if(value===null||value===undefined)return null;if(value>max){return message||`Maximum value is ${max}`;}return null;};export const validatePhone=value=>{if(!value)return null;// Basic phone validation (adjust regex as needed)\nconst phoneRegex=/^[\\d\\s\\-\\+\\(\\)]+$/;if(!phoneRegex.test(value)){return\"Please enter a valid phone number\";}return null;};export const validateFileSize=(file,maxSize)=>{if(file.size>maxSize){const maxSizeMB=(maxSize/(1024*1024)).toFixed(2);return`File size must be less than ${maxSizeMB}MB`;}return null;};export const validateFileType=(file,accept)=>{if(!accept)return null;const acceptedTypes=accept.split(\",\").map(t=>t.trim());const fileType=file.type;const fileName=file.name;const fileExtension=`.${fileName.split(\".\").pop()?.toLowerCase()}`;const isValid=acceptedTypes.some(type=>{if(type.startsWith(\".\")){return fileExtension===type.toLowerCase();}if(type.endsWith(\"/*\")){const category=type.split(\"/\")[0];return fileType.startsWith(category);}return fileType===type;});if(!isValid){return`File type not accepted. Allowed: ${accept}`;}return null;};// Combined validator for fields\nexport const validateField=(value,props)=>{const fieldName=props.label||props.name;// Required validation - Checkbox vs others\nif(props.required){// Special handling for checkbox: must be strictly true if required\nif(props.type===\"checkbox\"){if(value!==true){return props.requiredMessage||`${fieldName} must be checked`;}}else if(props.type===\"rating\"||props.type===\"scale\"){// Rating/Scale: 0 means no selection, treat as empty\nif(value===null||value===undefined||value===\"\"||value===0){return props.requiredMessage||`${fieldName} is required`;}}else{const requiredError=validateRequired(value,fieldName,props.requiredMessage);if(requiredError)return requiredError;}}// Skip other validations if value is empty and not required (except checkbox and checkboxGroup which handled separately)\nif(!value&&props.type!==\"checkbox\"&&props.type!==\"checkboxGroup\")return null;// CheckboxGroup validation - handle before type switch for empty arrays\nif(props.type===\"checkboxGroup\"){const arr=Array.isArray(value)?value:[];if(props.minSelected!==undefined&&arr.length<props.minSelected){return props.minMessage?props.minMessage.replace(/{min}/g,props.minSelected.toString()):`Select at least ${props.minSelected} options`;}if(props.maxSelected!==undefined&&arr.length>props.maxSelected){return props.maxMessage?props.maxMessage.replace(/{max}/g,props.maxSelected.toString()):`Select at most ${props.maxSelected} options`;}return null;}// Type-specific validation\nswitch(props.type){case\"email\":return validateEmail(value,props.emailMessage);case\"url\":return validateURL(value);case\"phone\":return validatePhone(value);case\"number\":if(props.min!==undefined){const minError=validateMin(value,props.min,props.minMessage);if(minError)return minError;}if(props.max!==undefined){const maxError=validateMax(value,props.max,props.maxMessage);if(maxError)return maxError;}break;case\"file\":if(value instanceof File){if(props.accept){const typeError=validateFileType(value,props.accept);if(typeError)return typeError;}if(props.maxSize){const sizeError=validateFileSize(value,props.maxSize);if(sizeError)return sizeError;}}break;}// String validation\nif(typeof value===\"string\"){if(props.minLength!==undefined){const minLengthError=validateMinLength(value,props.minLength,props.minLengthMessage);if(minLengthError)return minLengthError;}if(props.maxLength!==undefined){const maxLengthError=validateMaxLength(value,props.maxLength,props.maxLengthMessage);if(maxLengthError)return maxLengthError;}if(props.pattern){const patternError=validatePattern(value,props.pattern,props.patternMessage||props.errorMessage);if(patternError)return patternError;}}return null;};\nexport const __FramerMetadata__ = {\"exports\":{\"validateEmail\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateMax\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateRequired\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateMinLength\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validatePhone\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateFileType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateFileSize\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateMin\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateURL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validateMaxLength\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validatePattern\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Validation.map","// Custom hooks for FormKit components\n// This eliminates code duplication across field components\nimport{useState,useEffect,useRef}from\"react\";import{RenderTarget}from\"framer\";import{getFormStore,getFormStoreKey}from\"https://framerusercontent.com/modules/W9pGMfwOEUT2E0G0vdr3/rUH7091b0rLB5Qeyq53j/Store_management.js\";import{validateField}from\"https://framerusercontent.com/modules/CkzWOzYsjkSH8b0Md9Dz/jFAHTs0VED1zTLOHkBsH/Validation.js\";/**\r\n * Custom hook to manage form field state and validation\r\n * Eliminates code duplication across all field components\r\n *\r\n * @example\r\n * ```tsx\r\n * const {\r\n *   value,\r\n *   error,\r\n *   handleChange,\r\n *   handleBlur\r\n * } = useFormField({\r\n *   name: \"email\",\r\n *   formId: \"default\",\r\n *   validation: {\r\n *     required: true,\r\n *     type: \"email\"\r\n *   },\r\n *   validateOnBlur: true,\r\n *   validateOnChange: false\r\n * })\r\n * ```\r\n */export function useFormField(config){// Correct usage\nconst{name,formId=\"default\",storeKey=\"auto\",validation={},validateOnBlur=true,validateOnChange=false,skipValidation=false,label,onChange}=config;// Get store\nconst actualFormId=getFormStoreKey(formId,storeKey);const useStore=getFormStore(actualFormId);const[state,setState]=useStore()// This hook must be stable\n;// Local value for controlled input - check state existence\nconst[localValue,setLocalValue]=useState(()=>{return state?.data?.[name]??\"\";});// Validation state\nconst[isValidating,setIsValidating]=useState(false);const[hasValidated,setHasValidated]=useState(false);// Timeout refs for debouncing\nconst validationTimeoutRef=useRef();// Safety check for state\nconst isStateReady=!!state;// Sync local value from store (for external updates)\nuseEffect(()=>{if(!state?.data)return;const storeValue=state.data[name];const normalizedStoreValue=storeValue===undefined?\"\":storeValue;// Keep local UI in sync for both set and clear mutations\nif(normalizedStoreValue!==localValue){setLocalValue(normalizedStoreValue);}},[state?.data?.[name]])// Only re-run if this specific value changes\n;// Cleanup timeout on unmount\nuseEffect(()=>{return()=>{if(validationTimeoutRef.current){clearTimeout(validationTimeoutRef.current);}};},[]);// Reset errors on load in Preview mode\nuseEffect(()=>{if(RenderTarget.current()===RenderTarget.preview&&isStateReady){setState(prev=>{const currentErrors=prev?.errors||{};if(currentErrors[name]){const{[name]:_,...otherErrors}=currentErrors;return{...prev,errors:otherErrors};}return prev;});}},[isStateReady]);// Clear errors when field becomes hidden/disabled\nuseEffect(()=>{if(skipValidation&&isStateReady){setState(prev=>{const currentErrors=prev?.errors||{};if(currentErrors[name]){const{[name]:_,...otherErrors}=currentErrors;return{...prev,errors:otherErrors};}return prev;});}},[skipValidation]);// Validate when submitAttempted is true or submitState enters validating\nuseEffect(()=>{if(!isStateReady||skipValidation)return;const shouldValidateFromSubmit=state?.submitAttempted||state?.submitState===\"validating\";if(!shouldValidateFromSubmit)return;// Run validation when submit is attempted\nconst error=validateField(localValue,{name,label,...validation});setState(prev=>{const currentErrors=prev?.errors||{};const{[name]:_,...otherErrors}=currentErrors;const newErrors=error?{...otherErrors,[name]:error}:otherErrors;return{...prev,errors:newErrors};});setHasValidated(true);},[state?.submitAttempted,state?.submitState]);/**\r\n     * Validate the current value\r\n     * Returns null (no error) if skipValidation is true\r\n     */const validate=valueToValidate=>{// Skip validation for hidden/disabled fields\nif(skipValidation){return null;}const val=valueToValidate!==undefined?valueToValidate:localValue;const error=validateField(val,{name,label,...validation});return error;};/**\r\n     * Handle value change\r\n     * Updates both local state and store\r\n     * Optionally triggers real-time validation (debounced)\r\n     */const handleChange=value=>{setLocalValue(value);if(!isStateReady)return;setState(prev=>({...prev,data:{...prev?.data||{},[name]:value},touched:{...prev?.touched||{},[name]:true}}));// Call onChange callback if provided\nonChange?.(value);// Real-time validation (debounced) if enabled and field has been touched\n// ALSO validate if submit has been attempted (immediate feedback mode)\nif(validateOnChange||state?.submitAttempted){setIsValidating(true);if(validationTimeoutRef.current){clearTimeout(validationTimeoutRef.current);}validationTimeoutRef.current=setTimeout(()=>{// Determine value to validate - use latest localValue which might be stale in closure?\n// Better pass 'value' directly\nconst error=validate(value);setState(prev=>{const currentErrors=prev?.errors||{};const{[name]:_,...otherErrors}=currentErrors;const newErrors=error?{...otherErrors,[name]:error}:otherErrors;return{...prev,errors:newErrors};});setIsValidating(false);setHasValidated(true);},500)// 500ms debounce\n;}};/**\r\n     * Handle blur event\r\n     * Triggers validation if validateOnBlur is enabled\r\n     * Skips validation and clears errors if skipValidation is true\r\n     */const handleBlur=valueToValidate=>{if(!isStateReady)return;// If field is hidden/disabled, clear any existing errors and skip validation\nif(skipValidation){setState(prev=>{const currentErrors=prev?.errors||{};if(currentErrors[name]){const{[name]:_,...otherErrors}=currentErrors;return{...prev,errors:otherErrors};}return prev;});return;}if(!validateOnBlur)return;const error=validate(valueToValidate);setState(prev=>{const currentErrors=prev?.errors||{};const{[name]:_,...otherErrors}=currentErrors;const newErrors=error?{...otherErrors,[name]:error}:otherErrors;return{...prev,errors:newErrors,touched:{...prev?.touched||{},[name]:true}};});setHasValidated(true);};return{value:localValue,error:state?.errors?.[name]||null,isTouched:state?.touched?.[name]||false,isValidating,hasValidated,setHasValidated,state:state||{},setState,handleChange,handleBlur,validate};}/**\r\n * Hook to access form store directly without field-specific logic\r\n * Useful for components like FormKitProgress, FormKitNext, etc.\r\n */export function useFormStore(formId=\"default\",storeKey=\"auto\"){const actualFormId=getFormStoreKey(formId,storeKey);const useStore=getFormStore(actualFormId);return useStore();}\nexport const __FramerMetadata__ = {\"exports\":{\"UseFormFieldConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"UseFormFieldReturn\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormField\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","export const normalizeConditionValue=value=>{if(typeof value!==\"string\")return value;const trimmed=value.trim();if(trimmed===\"\")return value;if(trimmed.toLowerCase()===\"true\")return true;if(trimmed.toLowerCase()===\"false\")return false;const numeric=Number(trimmed);if(!Number.isNaN(numeric))return numeric;return trimmed;};const isFilled=value=>{if(value===null||value===undefined)return false;if(typeof value===\"string\")return value.trim()!==\"\";if(Array.isArray(value))return value.length>0;return true;};const evaluateRule=(rule,data)=>{const{field,operator=\"equals\",value}=rule;if(!field)return true;const left=data[field];const right=normalizeConditionValue(value);switch(operator){case\"equals\":{if(Array.isArray(left)){if(Array.isArray(right)){return left.length===right.length&&left.every((v,i)=>v===right[i]);}return left.includes(right);}return left===right;}case\"notEquals\":{if(Array.isArray(left)){if(Array.isArray(right)){return!(left.length===right.length&&left.every((v,i)=>v===right[i]));}return!left.includes(right);}return left!==right;}case\"contains\":{if(Array.isArray(left))return left.includes(right);if(typeof left===\"string\"&&typeof right===\"string\"){return left.toLowerCase().includes(right.toLowerCase());}return false;}case\"notContains\":{if(Array.isArray(left))return!left.includes(right);if(typeof left===\"string\"&&typeof right===\"string\"){return!left.toLowerCase().includes(right.toLowerCase());}return true;}case\"greaterThan\":{const l=Number(left);const r=Number(right);if(Number.isNaN(l)||Number.isNaN(r))return false;return l>r;}case\"lessThan\":{const l=Number(left);const r=Number(right);if(Number.isNaN(l)||Number.isNaN(r))return false;return l<r;}case\"greaterThanOrEqual\":{const l=Number(left);const r=Number(right);if(Number.isNaN(l)||Number.isNaN(r))return false;return l>=r;}case\"lessThanOrEqual\":{const l=Number(left);const r=Number(right);if(Number.isNaN(l)||Number.isNaN(r))return false;return l<=r;}case\"isFilled\":return isFilled(left);case\"isEmpty\":return!isFilled(left);default:return true;}};export const evaluateFieldState=(showIf,data,match=\"all\",action=\"show\")=>{// Default state\nif(!showIf||Array.isArray(showIf)&&showIf.length===0||typeof showIf===\"string\"&&showIf.trim()===\"\"){return{isVisible:true,isDisabled:false};}try{let conditionMet;if(typeof showIf===\"string\"){const keys=Object.keys(data);const values=Object.values(data);// Note: new Function is intentional here for user-defined conditions in Framer\nconst fn=new Function(...keys,`return ${showIf}`);conditionMet=Boolean(fn(...values));}else{const results=showIf.map(rule=>evaluateRule(rule,data));conditionMet=match===\"any\"?results.some(Boolean):results.every(Boolean);}switch(action){case\"show\":return{isVisible:conditionMet,isDisabled:false};case\"hide\":return{isVisible:!conditionMet,isDisabled:false};case\"enable\":return{isVisible:true,isDisabled:!conditionMet};case\"disable\":return{isVisible:true,isDisabled:conditionMet};default:return{isVisible:true,isDisabled:false};}}catch(error){console.error(\"Error evaluating conditions:\",error);return{isVisible:true,isDisabled:false};}};/**\r\n * Helper function to determine conditional badge state for canvas mode\r\n * Returns whether to show a badge and what text to display\r\n */export const getConditionalBadge=(showIf,fieldState,showIfAction=\"show\")=>{if(!showIf||showIf.length===0){return{showBadge:false,badgeText:\"\"};}const wouldBeHidden=!fieldState.isVisible;const wouldBeDisabled=fieldState.isDisabled;if(showIfAction===\"show\"&&wouldBeHidden){return{showBadge:true,badgeText:\"Hidden in preview\"};}else if(showIfAction===\"hide\"&&!wouldBeHidden){return{showBadge:true,badgeText:\"Shown in preview\"};}else if(showIfAction===\"enable\"&&wouldBeDisabled){return{showBadge:true,badgeText:\"Disabled in preview\"};}else if(showIfAction===\"disable\"&&!wouldBeDisabled){return{showBadge:true,badgeText:\"Enabled in preview\"};}return{showBadge:false,badgeText:\"\"};};// Backward compatibility wrapper (deprecated but kept for safety if needed)\nexport const evaluateShowIf=(showIf,data,match=\"all\",action=\"show\")=>{const{isVisible}=evaluateFieldState(showIf,data,match,action);return isVisible;};export const evaluateRuleGroup=(rules,data,match=\"all\")=>{if(!rules||rules.length===0)return false;const results=rules.map(rule=>evaluateRule(rule,data));return match===\"any\"?results.some(Boolean):results.every(Boolean);};export const findFirstMatchingMultiStepRule=(rules,data)=>{if(!Array.isArray(rules)||rules.length===0)return null;for(const rule of rules){if(evaluateRuleGroup(rule.conditions,data,rule.match||\"all\")){return rule;}}return null;};export const findMatchingMultiStepRules=(rules,data)=>{if(!Array.isArray(rules)||rules.length===0)return[];return rules.filter(rule=>evaluateRuleGroup(rule.conditions,data,rule.match||\"all\"));};export const normalizeTargetStep=(targetStep,totalSteps)=>{if(!Number.isFinite(targetStep))return null;const requestedStep=Math.max(1,Math.floor(Number(targetStep)));const zeroBasedStep=requestedStep-1;const maxStepIndex=Math.max(0,totalSteps-1);return Math.max(0,Math.min(zeroBasedStep,maxStepIndex));};\nexport const __FramerMetadata__ = {\"exports\":{\"findFirstMatchingMultiStepRule\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"evaluateFieldState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findMatchingMultiStepRules\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"evaluateShowIf\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeConditionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"evaluateRuleGroup\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getConditionalBadge\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShowIfRule\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeTargetStep\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Conditions.map","// Shared Property Control Definitions for FormKit\n// These are reusable control definitions to maintain consistency across components\nimport{ControlType}from\"framer\";/**\r\n * Shared control for conditional visibility using Array/Object format\r\n * NO string expressions - only structured rules\r\n */export const SHOW_IF_CONTROL={type:ControlType.Array,title:\"Conditions\",description:\"Add conditions to control when this field is visible\",control:{type:ControlType.Object,controls:{field:{type:ControlType.String,title:\"Field Name\",description:\"Name of the field to check\",placeholder:\"fieldName\"},operator:{type:ControlType.Enum,title:\"Operator\",options:[\"equals\",\"notEquals\",\"contains\",\"notContains\",\"greaterThan\",\"lessThan\",\"greaterThanOrEqual\",\"lessThanOrEqual\",\"isFilled\",\"isEmpty\"],displaySegmentedControl:false,defaultValue:\"equals\"},value:{type:ControlType.String,title:\"Value\",description:\"Value to compare against\",placeholder:\"compareValue\",hidden:props=>props.operator===\"isFilled\"||props.operator===\"isEmpty\"}}}};export const MULTI_STEP_CONDITION_CONTROL={type:ControlType.Array,title:\"Conditions\",description:\"Add field rules for this branch.\",control:{type:ControlType.Object,controls:{field:{type:ControlType.String,title:\"Field Name\",placeholder:\"fieldName\"},operator:{type:ControlType.Enum,title:\"Operator\",options:[\"equals\",\"notEquals\",\"contains\",\"notContains\",\"greaterThan\",\"lessThan\",\"greaterThanOrEqual\",\"lessThanOrEqual\",\"isFilled\",\"isEmpty\"],optionTitles:[\"Equals\",\"Not Equals\",\"Contains\",\"Not Contains\",\"Greater Than\",\"Less Than\",\"Greater Or Equal\",\"Less Or Equal\",\"Is Filled\",\"Is Empty\"],defaultValue:\"equals\",displaySegmentedControl:false},value:{type:ControlType.String,title:\"Value\",placeholder:\"compareValue\",hidden:props=>props.operator===\"isFilled\"||props.operator===\"isEmpty\"}}}};export const MULTI_STEP_MATCH_CONTROL={type:ControlType.Enum,title:\"Match\",options:[\"all\",\"any\"],optionTitles:[\"All (AND)\",\"Any (OR)\"],defaultValue:\"all\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"};export const MULTI_STEP_NEXT_RULES_CONTROL={type:ControlType.Array,title:\"Next Rules\",description:\"Check rules before the next step action runs.\",control:{type:ControlType.Object,controls:{match:MULTI_STEP_MATCH_CONTROL,conditions:MULTI_STEP_CONDITION_CONTROL,action:{type:ControlType.Enum,title:\"Action\",options:[\"goToStep\",\"setFieldValue\",\"clearFieldValue\"],optionTitles:[\"Go To Step\",\"Set Field Value\",\"Clear Field Value\"],defaultValue:\"goToStep\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},targetStep:{type:ControlType.Number,title:\"Step Number\",description:\"1-based step number to jump to.\",defaultValue:2,min:1,step:1,displayStepper:true,hidden:props=>props.action!==\"goToStep\"},targetField:{type:ControlType.String,title:\"Field Name\",placeholder:\"leadType\",hidden:props=>props.action!==\"setFieldValue\"&&props.action!==\"clearFieldValue\"},targetValue:{type:ControlType.String,title:\"Field Value\",placeholder:\"enterprise\",hidden:props=>props.action!==\"setFieldValue\"}}},defaultValue:[]};export const MULTI_STEP_PREVIOUS_RULES_CONTROL={...MULTI_STEP_NEXT_RULES_CONTROL,title:\"Previous Rules\",description:\"Check rules before the previous step action runs.\",hidden:props=>props.previousBehavior!==\"rules\"};export const MULTI_STEP_SUBMIT_RULES_CONTROL={type:ControlType.Array,title:\"Submit Rules\",description:\"Set or clear fields before submit. Redirect actions run after a successful submission.\",control:{type:ControlType.Object,controls:{match:MULTI_STEP_MATCH_CONTROL,conditions:MULTI_STEP_CONDITION_CONTROL,action:{type:ControlType.Enum,title:\"Action\",options:[\"redirect\"],optionTitles:[\"Redirect\"],defaultValue:\"redirect\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},redirectUrl:{type:ControlType.String,title:\"Redirect URL\",placeholder:\"https://example.com/thank-you\",hidden:props=>props.action!==\"redirect\"}}},defaultValue:[]};/**\r\n * Shared control for showIf match mode (all/any)\r\n */export const SHOW_IF_MATCH_CONTROL={type:ControlType.Enum,title:\"Match Mode\",description:\"How to combine multiple conditions\",options:[\"all\",\"any\"],optionTitles:[\"All (AND)\",\"Any (OR)\"],defaultValue:\"all\"};/**\r\n * Control for conditional visibility action (show/hide when conditions pass)\r\n */export const SHOW_IF_ACTION_CONTROL={type:ControlType.Enum,title:\"When Conditions Pass\",description:\"Control field visibility or enabled state based on conditions\",options:[\"show\",\"hide\",\"enable\",\"disable\"],optionTitles:[\"Show Field\",\"Hide Field\",\"Enable Field\",\"Disable Field\"],defaultValue:\"show\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"};/**\r\n * Shared control for store configuration\r\n * Note: storeKey has been removed - formId handles all use cases\r\n */export const STORE_CONFIG_CONTROL={formId:{type:ControlType.String,title:\"Form ID\",defaultValue:\"default\",description:\"📋 Which form this field belongs to. Use 'default' for single form. For multiple forms on same page, use unique IDs like 'signup', 'contact', or 'newsletter'. Powered by [framerformkit](https://framerformkit.com)\"}};/**\r\n * Validation toggle controls - built-in validation only\r\n */export const VALIDATION_TOGGLE_CONTROLS={validateOnBlur:{type:ControlType.Boolean,title:\"Validate on Blur\",description:\"Validate when user leaves the field\",defaultValue:true},validateOnChange:{type:ControlType.Boolean,title:\"Validate on Change\",description:\"Validate in real-time as user types (debounced)\",defaultValue:true}};/**\r\n * Complete validation controls - grouped for nested object\r\n * Includes type selector, toggles, rules, and messages all in one place\r\n */export const VALIDATION_CONTROLS={// Timing toggles\nvalidateOnBlur:{type:ControlType.Boolean,title:\"On Blur\",description:\"Validate when user leaves field\",defaultValue:true},validateOnChange:{type:ControlType.Boolean,title:\"On Change\",description:\"Real-time validation (debounced)\",defaultValue:true},// Validation type selector\nvalidationType:{type:ControlType.Enum,title:\"Validation Type\",options:[\"built-in\",\"pattern\"],optionTitles:[\"Built-in\",\"Custom Pattern\"],defaultValue:\"built-in\",description:\"Choose validation method\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},// Built-in validation rules\nminLength:{type:ControlType.Number,title:\"Min Length\",min:0,defaultValue:0,step:1,displayStepper:true,description:\"Minimum characters (0 = no minimum)\",hidden:props=>props.validationType===\"pattern\"},maxLength:{type:ControlType.Number,title:\"Max Length\",min:0,defaultValue:0,step:1,displayStepper:true,description:\"Maximum characters (0 = no limit)\",hidden:props=>props.validationType===\"pattern\"},// Custom pattern validation\npattern:{type:ControlType.String,title:\"Pattern (Regex)\",displayTextArea:true,description:\"Example: ^[a-zA-Z0-9]+$ (alphanumeric only)\",hidden:props=>props.validationType===\"built-in\"},// Error messages\nrequiredMessage:{type:ControlType.String,title:\"Required Error\",placeholder:\"This field is required\"},minLengthMessage:{type:ControlType.String,title:\"Min Length Error\",placeholder:\"Please enter at least {x} characters\",description:\"Use {x} for dynamic value\",hidden:props=>props.validationType===\"pattern\"},maxLengthMessage:{type:ControlType.String,title:\"Max Length Error\",placeholder:\"Maximum {x} characters allowed\",description:\"Use {x} for dynamic value\",hidden:props=>props.validationType===\"pattern\"},patternMessage:{type:ControlType.String,title:\"Pattern Error\",placeholder:\"Invalid format\",hidden:props=>props.validationType===\"built-in\"},successMessage:{type:ControlType.String,title:\"Success Message\",placeholder:\"Looks good!\"}};/**\r\n * Base styling controls - can be extended per component\r\n */export const BASE_INPUT_STYLE_CONTROLS={backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(187, 187, 187, 0.15)\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#333333\"},placeholderColor:{type:ControlType.Color,title:\"Placeholder Color\",defaultValue:\"#999999\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:1,borderColor:\"rgba(187, 187, 187, 0.15)\",borderStyle:\"solid\"}},shadows:{type:ControlType.BoxShadow,title:\"Shadows\",optional:true},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:12},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px\"},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],optionIcons:[\"text-align-left\",\"text-align-center\",\"text-align-right\"],defaultValue:\"left\",displaySegmentedControl:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:14,fontWeight:400}},// State styles\nfocusBorderColor:{type:ControlType.Color,title:\"Focus Border\",defaultValue:\"#0099FF\"},errorBorderColor:{type:ControlType.Color,title:\"Error Border\",defaultValue:\"#FF4444\"},disabledOpacity:{type:ControlType.Number,title:\"Disabled Opacity\",min:0,max:1,step:.1,defaultValue:.5,displayStepper:true}};/**\r\n * Label styling controls\r\n */export const LABEL_STYLE_CONTROLS={color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#888888\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:12,fontWeight:500}},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],optionIcons:[\"text-align-left\",\"text-align-center\",\"text-align-right\"],defaultValue:\"left\",displaySegmentedControl:true},textTransform:{type:ControlType.Enum,title:\"Text Transform\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"None\",\"UPPERCASE\",\"lowercase\",\"Capitalize\"],defaultValue:\"none\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},marginBottom:{type:ControlType.Number,title:\"Bottom Spacing\",min:0,max:24,step:1,defaultValue:8,displayStepper:true}};/**\r\n * Checkbox label styling controls (includes checked state)\r\n */export const CHECKBOX_LABEL_STYLE_CONTROLS={...LABEL_STYLE_CONTROLS,marginBottom:{...LABEL_STYLE_CONTROLS.marginBottom,hidden:()=>true},checkedLabelColor:{type:ControlType.Color,title:\"Checked Color\",optional:true}};/**\r\n * Error message styling controls\r\n */export const ERROR_STYLE_CONTROLS={color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FF4444\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:12,fontWeight:400}},marginTop:{type:ControlType.Number,title:\"Top Spacing\",min:0,max:24,step:1,defaultValue:4,displayStepper:true},iconType:{type:ControlType.Enum,title:\"Icon Type\",options:[\"default\",\"custom\"],optionTitles:[\"Default\",\"Icon Svg\"],defaultValue:\"default\",displaySegmentedControl:true},customIcon:{type:ControlType.String,title:\"Custom Icon\",description:\"Paste SVG code here\",displayTextArea:true,hidden:props=>props.iconType!==\"custom\"}};/**\r\n * Success message styling controls\r\n */export const SUCCESS_STYLE_CONTROLS={displayMode:{type:ControlType.Enum,title:\"Display\",options:[\"both\",\"icon\",\"message\"],optionTitles:[\"Both\",\"Icon Only\",\"Message Only\"],defaultValue:\"both\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},// Message text styling\nmessageFont:{type:ControlType.Font,title:\"Message Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:12,fontWeight:400}},messageColor:{type:ControlType.Color,title:\"Message Color\",optional:true},iconColor:{type:ControlType.Color,title:\"Icon Color\",optional:true},marginTop:{type:ControlType.Number,title:\"Message Top Spacing\",min:0,max:24,step:1,defaultValue:4,displayStepper:true},// Input styling on success\ninputBorderColor:{type:ControlType.Color,title:\"Input Border Color\",optional:true},inputTextColor:{type:ControlType.Color,title:\"Input Text Color\",optional:true},inputFont:{type:ControlType.Font,title:\"Input Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:14,fontWeight:400}},// Label styling on success\nlabelColor:{type:ControlType.Color,title:\"Label Color\",optional:true},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:14,fontWeight:600}},iconType:{type:ControlType.Enum,title:\"Icon Type\",options:[\"default\",\"custom\"],optionTitles:[\"Default\",\"Icon Svg\"],defaultValue:\"default\",displaySegmentedControl:true},customIcon:{type:ControlType.String,title:\"Custom Icon\",description:\"Paste SVG code here\",displayTextArea:true,hidden:props=>props.iconType!==\"custom\"}};/**\r\n * Focus state styling controls\r\n */export const FOCUS_STYLE_CONTROLS={backgroundColor:{type:ControlType.Color,title:\"Fill\",optional:true},textColor:{type:ControlType.Color,title:\"Text Color\",optional:true},placeholderColor:{type:ControlType.Color,title:\"Placeholder Color\",optional:true},border:{type:ControlType.Border,title:\"Border\",optional:true},shadows:{type:ControlType.BoxShadow,title:\"Shadows\",optional:true},transition:{type:ControlType.Transition,title:\"Transition\",optional:true}};/**\r\n * Helper to create nested styling control group\r\n * Usage: styling: createStylingControl({ inputStyles, labelStyles, errorStyles })\r\n */export function createStylingControl(controls){return{type:ControlType.Object,buttonTitle:\"Styles\",optional:true,controls};}/**\r\n * Single checkbox style controls\r\n */export const CHECKBOX_STYLE_CONTROLS={// Checkbox box styling\nsize:{type:ControlType.Number,title:\"Size\",min:12,max:40,step:1,defaultValue:20,displayStepper:true},borderRadius:{type:ControlType.BorderRadius,title:\"Border Radius\",defaultValue:4},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:2,borderColor:\"#E8E8E8\",borderStyle:\"solid\"}},checkedColor:{type:ControlType.Color,title:\"Checked Color\",defaultValue:\"#0099FF\"},// Checkbox visibility\nshowCheckbox:{type:ControlType.Boolean,title:\"Show Checkbox\",defaultValue:true,description:\"Hide to show text only\"},// Icon options\niconType:{type:ControlType.Enum,title:\"Icon Type\",options:[\"check\",\"circle\",\"x\",\"hidden\",\"custom\"],optionTitles:[\"Check ✓\",\"Circle ●\",\"X ✗\",\"Hidden\",\"Custom SVG\"],defaultValue:\"check\"},checkmarkColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#FFFFFF\"},customIcon:{type:ControlType.String,title:\"Custom Icon SVG\",description:\"Paste SVG code here\",displayTextArea:true,hidden:props=>props.iconType!==\"custom\"},// Container styling\ncontainerBackground:{type:ControlType.Color,title:\"Container Background\",optional:true},containerBorder:{type:ControlType.Border,title:\"Container Border\",optional:true},containerBorderRadius:{type:ControlType.BorderRadius,title:\"Container Radius\",defaultValue:0},containerPadding:{type:ControlType.Padding,title:\"Container Padding\",defaultValue:\"0px\"},// Checked state container styling\ncheckedContainerBackground:{type:ControlType.Color,title:\"Checked Background\",optional:true},checkedContainerBorder:{type:ControlType.Border,title:\"Checked Border\",optional:true},checkboxLabelGap:{type:ControlType.Number,title:\"Checkbox-Label Gap\",min:0,max:24,step:1,defaultValue:10,displayStepper:true}};/**\r\n * Single checkbox validation controls\r\n */export const CHECKBOX_VALIDATION_CONTROLS={requiredMessage:{type:ControlType.String,title:\"Required Error\",placeholder:\"This field must be checked\"},successMessage:{type:ControlType.String,title:\"Success Message\",placeholder:\"Checked!\"}};/**\r\n * Checkbox group style controls (includes gap)\r\n */export const CHECKBOX_GROUP_STYLE_CONTROLS={selectionBox:{type:ControlType.Object,title:\"Selection Box\",description:\"Style the square checkbox and check icon.\",optional:true,controls:{size:{type:ControlType.Number,title:\"Box Size\",min:12,max:40,step:1,defaultValue:20,displayStepper:true,description:\"Size of the checkbox square.\"},borderRadius:{type:ControlType.BorderRadius,title:\"Corner Roundness\",defaultValue:4,description:\"Roundness of the checkbox corners.\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:2,borderColor:\"#E8E8E8\",borderStyle:\"solid\"}},checkedColor:{type:ControlType.Color,title:\"Checked Color\",defaultValue:\"#0099FF\",description:\"Color when selected.\"},hoverCheckedColor:{type:ControlType.Color,title:\"Checked Hover Color\",optional:true,description:\"Optional color when selected and hovered.\"},showCheckbox:{type:ControlType.Boolean,title:\"Show Checkbox\",defaultValue:true,description:\"Turn off for text-only choices.\"},iconType:{type:ControlType.Enum,title:\"Icon Type\",options:[\"check\",\"circle\",\"x\",\"hidden\",\"custom\"],optionTitles:[\"Check\",\"Circle\",\"X\",\"Hidden\",\"Custom SVG\"],defaultValue:\"check\",description:\"Icon shown inside checked box.\"},checkmarkColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#FFFFFF\"},customIcon:{type:ControlType.String,title:\"Custom Icon SVG\",description:\"Paste SVG code if Icon Type is Custom SVG.\",displayTextArea:true,hidden:props=>props.iconType!==\"custom\"}}},optionCard:{type:ControlType.Object,title:\"Option Card\",description:\"Style the row/card that holds each option.\",optional:true,controls:{background:{type:ControlType.Color,title:\"Background\",optional:true},border:{type:ControlType.Border,title:\"Border\",optional:true},borderRadius:{type:ControlType.BorderRadius,title:\"Corner Roundness\",defaultValue:0},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"0px\"},hoverBackground:{type:ControlType.Color,title:\"Hover Bg\",optional:true},hoverBorder:{type:ControlType.Border,title:\"Hover Border\",optional:true},checkedBackground:{type:ControlType.Color,title:\"Checked Background\",optional:true},checkedBorder:{type:ControlType.Border,title:\"Checked Border\",optional:true},checkedHoverBackground:{type:ControlType.Color,title:\"Checked Hover Bg\",optional:true},checkedHoverBorder:{type:ControlType.Border,title:\"Checked Hover Border\",optional:true}}},optionText:{type:ControlType.Object,title:\"Option Text\",description:\"Typography and colors for option labels.\",optional:true,controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:12,fontWeight:400}},color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#999999\"},checkedColor:{type:ControlType.Color,title:\"Checked Text Color\",optional:true},hoverColor:{type:ControlType.Color,title:\"Hover Color\",optional:true},checkedHoverColor:{type:ControlType.Color,title:\"Checked Hover\",optional:true},prefixColor:{type:ControlType.Color,title:\"Prefix Color\",optional:true},suffixColor:{type:ControlType.Color,title:\"Suffix Color\",optional:true},prefixFont:{type:ControlType.Font,title:\"Prefix Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:12,fontWeight:400}},suffixFont:{type:ControlType.Font,title:\"Suffix Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultValue:{fontSize:12,fontWeight:400}}}},spacing:{type:ControlType.Object,title:\"Spacing\",description:\"Control distances between items and text.\",optional:true,controls:{optionGap:{type:ControlType.Number,title:\"Gap Between Choices\",defaultValue:12,displayStepper:true},checkboxLabelGap:{type:ControlType.Number,title:\"Box to Label Gap\",defaultValue:10,displayStepper:true},prefixSuffixGap:{type:ControlType.Number,title:\"Prefix/Suffix Gap\",defaultValue:4,displayStepper:true}}}};/**\r\n * Checkbox group validation controls (includes min/max selection)\r\n */export const CHECKBOX_GROUP_VALIDATION_CONTROLS={requiredMessage:{type:ControlType.String,title:\"Required Error\",placeholder:\"Please select at least one option\"},minSelected:{type:ControlType.Number,title:\"Min Selections\",min:0,description:\"Minimum number of selections required\"},maxSelected:{type:ControlType.Number,title:\"Max Selections\",min:1,description:\"Maximum number of selections allowed\"},minMessage:{type:ControlType.String,title:\"Min Error\",placeholder:\"Select at least {min} options\"},maxMessage:{type:ControlType.String,title:\"Max Error\",placeholder:\"Select at most {max} options\"},successMessage:{type:ControlType.String,title:\"Success Message\",placeholder:\"Great choice!\"}};\nexport const __FramerMetadata__ = {\"exports\":{\"MULTI_STEP_NEXT_RULES_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BASE_INPUT_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FOCUS_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VALIDATION_TOGGLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CHECKBOX_GROUP_VALIDATION_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CHECKBOX_LABEL_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MULTI_STEP_MATCH_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHOW_IF_MATCH_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ERROR_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MULTI_STEP_CONDITION_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MULTI_STEP_PREVIOUS_RULES_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MULTI_STEP_SUBMIT_RULES_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CHECKBOX_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createStylingControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHOW_IF_ACTION_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LABEL_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CHECKBOX_VALIDATION_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VALIDATION_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SUCCESS_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHOW_IF_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CHECKBOX_GROUP_STYLE_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"STORE_CONFIG_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Property_controls.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";export const IconCheck=props=>/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",...props,children:/*#__PURE__*/_jsx(\"polyline\",{points:\"20 6 9 17 4 12\"})});export const IconAlert=props=>/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",...props,children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"10\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"8\",x2:\"12\",y2:\"12\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"16\",x2:\"12.01\",y2:\"16\"})]});export const ClockIcon=props=>/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",...props,children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"10\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"12 6 12 12 16 14\"})]});export const CalendarIcon=props=>/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",...props,children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"4\",width:\"18\",height:\"18\",rx:\"2\",ry:\"2\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"16\",y1:\"2\",x2:\"16\",y2:\"6\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"8\",y1:\"2\",x2:\"8\",y2:\"6\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"3\",y1:\"10\",x2:\"21\",y2:\"10\"})]});export const ChevronIcon=props=>/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",...props,children:/*#__PURE__*/_jsx(\"path\",{d:\"M2.5 4.5L6 8L9.5 4.5\"})});export const renderIcon=({iconType=\"default\",customIcon,DefaultIcon,props={}})=>{if(iconType===\"custom\"&&customIcon){// If it looks like an SVG tag, render as HTML\nif(customIcon.trim().startsWith(\"<svg\")){const normalizeSvgSize=svg=>svg.replace(/<svg\\b([^>]*)>/i,(_match,attrs)=>{let cleanedAttrs=attrs.replace(/\\s(width|height)=[\"'][^\"']*[\"']/gi,\"\").replace(/\\sstyle=[\"']([^\"']*)[\"']/i,(_styleMatch,styleValue)=>{const filteredStyle=String(styleValue).replace(/(?:^|;)\\s*(width|height)\\s*:\\s*[^;]+;?/gi,\"\").trim();return filteredStyle?` style=\"${filteredStyle}\"`:\"\";});return`<svg${cleanedAttrs} width=\"100%\" height=\"100%\" preserveAspectRatio=\"xMidYMid meet\">`;});// Process SVG to replace hardcoded colors with currentColor\n// This allows the icon to inherit color from the parent element\nconst processedSvg=normalizeSvgSize(customIcon// Replace fill colors (hex, rgb, named colors) with currentColor\n.replace(/fill=[\"']#[0-9a-fA-F]{3,6}[\"']/gi,'fill=\"currentColor\"').replace(/fill=[\"']rgb\\([^)]+\\)[\"']/gi,'fill=\"currentColor\"').replace(/fill=[\"'](black|white|red|blue|green|gray|grey)[\"']/gi,'fill=\"currentColor\"')// Replace stroke colors with currentColor\n.replace(/stroke=[\"']#[0-9a-fA-F]{3,6}[\"']/gi,'stroke=\"currentColor\"').replace(/stroke=[\"']rgb\\([^)]+\\)[\"']/gi,'stroke=\"currentColor\"').replace(/stroke=[\"'](black|white|red|blue|green|gray|grey)[\"']/gi,'stroke=\"currentColor\"'));const htmlProps=props||{};const{style:propStyle,...restHtmlProps}=htmlProps;return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\",height:\"100%\",overflow:\"hidden\",color:\"currentColor\",...propStyle||{}},dangerouslySetInnerHTML:{__html:processedSvg},...restHtmlProps});}// Assume it's an image URL\nreturn /*#__PURE__*/_jsx(\"img\",{src:customIcon,alt:\"Icon\",style:{width:\"100%\",height:\"100%\",objectFit:\"contain\"},...props});}// Default\nreturn /*#__PURE__*/_jsx(DefaultIcon,{...props});};\nexport const __FramerMetadata__ = {\"exports\":{\"CalendarIcon\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ChevronIcon\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconAlert\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ClockIcon\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconCheck\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"renderIcon\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Icons.map","/**\r\n * FormKitText - Text Input Field\r\n *\r\n * A text input field with validation, conditional visibility, and form store integration.\r\n *\r\n * Features:\r\n * - Hybrid prop structure (flat main options, nested styling)\r\n * - Auto-sync with form store via useFormField hook\r\n * - Configurable validation timing (onBlur, onChange)\r\n * - Error display with validation\r\n * - Conditional visibility (Array/Object format only)\r\n * - Min/max length validation\r\n * - Pattern matching\r\n * - Optional success message\r\n *\r\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useState}from\"react\";import{useFormField}from\"https://framerusercontent.com/modules/QcJOsISgPpDHi68MFiJ7/176U4ui7gT7NprXWOLT8/Hooks.js\";import{getFormStore,getFormStoreKey}from\"https://framerusercontent.com/modules/W9pGMfwOEUT2E0G0vdr3/rUH7091b0rLB5Qeyq53j/Store_management.js\";import{evaluateFieldState,getConditionalBadge}from\"https://framerusercontent.com/modules/YQMwVuIkIDYjLHJOwEnu/E43Ih1OWNh9ZYDxH2sAu/Conditions.js\";import{SHOW_IF_CONTROL,SHOW_IF_MATCH_CONTROL,SHOW_IF_ACTION_CONTROL,STORE_CONFIG_CONTROL,VALIDATION_CONTROLS,BASE_INPUT_STYLE_CONTROLS,LABEL_STYLE_CONTROLS,ERROR_STYLE_CONTROLS,SUCCESS_STYLE_CONTROLS,FOCUS_STYLE_CONTROLS,createStylingControl}from\"https://framerusercontent.com/modules/gWXlNkIcFnVLxXMR7ktn/JtLdSfrUYaW9eElJLaFM/Property_controls.js\";import{HiddenFieldMarker}from\"https://framerusercontent.com/modules/zT6ckO4RKI5zB9JzgGVW/5pPr41RBexGJfYLsBNcj/HiddenFieldMarker.js\";import{IconCheck,IconAlert,renderIcon}from\"https://framerusercontent.com/modules/hSeRQvQLiNwfAzfTZN4C/2faSrR7PxMT7RJTYjc17/Icons.js\";import{getFormKitDirection,getTextAlignForDirection}from\"https://framerusercontent.com/modules/TnGeMluKUv3ZoPWbVX5z/6AL0m280OlZ8wllCKODq/Direction.js\";/**\r\n * @framerIntrinsicWidth 300\r\n * @framerSupportedLayoutHeight auto\r\n * @framerSupportedLayoutWidth any-prefer-fixed\r\n * @framerDisableUnlink\r\n */export default function FormKitText(props){const{// Main props\nname,label,placeholder=\"\",required=false,// disabled prop removed\n// Validation (nested)\nvalidation={},// Styling\nstyling={},// Conditional visibility\nshowIf,showIfMatch=\"all\",showIfAction=\"show\",// Store (simplified!)\nformId=\"default\",// storeKey removed\n// Framer\nstyle}=props;// Destructure validation options\nconst{validateOnBlur=true,validateOnChange=false,validationType=\"built-in\",minLength,maxLength,pattern,requiredMessage,minLengthMessage,maxLengthMessage,patternMessage,successMessage}=validation;// Extract nested styling with defaults\nconst{inputStyles={},labelStyles={},errorStyles={},successStyles={},focusStyles={}}=styling;// Warn if name contains spaces\nuseEffect(()=>{if(name.includes(\" \")){console.warn(`FormKit Warning: Field name \"${name}\" contains spaces. `+`This may cause issues. Use camelCase (firstName) or snake_case (first_name) instead.`);}},[name]);// Build validation config based on validationType\nconst validationConfig={required,requiredMessage,type:\"text\",// Only include validations based on validationType\n...validationType===\"built-in\"&&{minLength:minLength||undefined,minLengthMessage,maxLength:maxLength||undefined,maxLengthMessage},...validationType===\"pattern\"&&{pattern:pattern||undefined,patternMessage}};// Get store state first to evaluate conditions before useFormField\n// This allows us to pass skipValidation based on field visibility\nconst actualFormId=formId||\"default\";const useStore=getFormStore(getFormStoreKey(actualFormId,\"auto\"));const[storeState]=useStore();// Detect render mode\nconst isCanvas=RenderTarget.current()===RenderTarget.canvas;// Evaluate field state BEFORE useFormField to determine skipValidation\nconst fieldState=evaluateFieldState(showIf,storeState?.data||{},showIfMatch,showIfAction);// Determine visibility and disabled state\nlet isVisible=true;let isDisabled=false;let showBadge=false;let badgeText=\"\";if(isCanvas){isVisible=true;isDisabled=false;// Use helper function for badge logic\nconst badge=getConditionalBadge(showIf,fieldState,showIfAction);showBadge=badge.showBadge;badgeText=badge.badgeText;}else{isVisible=fieldState.isVisible;isDisabled=fieldState.isDisabled;}// Skip validation if field is hidden or disabled (in preview/live mode)\nconst shouldSkipValidation=!isCanvas&&(!isVisible||isDisabled);// Use custom hook for form field logic\nconst{value,error,isTouched,isValidating,hasValidated,state,handleChange,handleBlur}=useFormField({name,formId,storeKey:\"auto\",validation:validationConfig,validateOnBlur,validateOnChange,skipValidation:shouldSkipValidation,label});// Track focus state for border color\nconst[isFocused,setIsFocused]=useState(false);const componentDirection=getFormKitDirection(style,[label,placeholder,successMessage,value,name]);const resolvedInputTextAlign=getTextAlignForDirection(inputStyles.textAlign,componentDirection);const resolvedLabelTextAlign=getTextAlignForDirection(labelStyles.textAlign,componentDirection);if(!isVisible)return /*#__PURE__*/_jsx(HiddenFieldMarker,{});const hasTextValue=typeof value===\"string\"&&value.trim()!==\"\";const shouldShowSuccess=Boolean(hasValidated&&!isValidating&&!error&&successMessage&&(required?hasTextValue:value));const successDisplayMode=successStyles.displayMode??\"both\";const showInlineSuccessIcon=shouldShowSuccess&&(successDisplayMode===\"both\"||successDisplayMode===\"icon\");const showSuccessMessage=shouldShowSuccess&&(successDisplayMode===\"both\"||successDisplayMode===\"message\");// Build input styles - use success overrides when applicable\nconst inputStyle={width:\"100%\",padding:inputStyles.padding??\"12px\",fontSize:shouldShowSuccess&&successStyles.inputFont?.fontSize?successStyles.inputFont.fontSize:inputStyles.font?.fontSize??14,fontFamily:shouldShowSuccess&&successStyles.inputFont?.fontFamily?successStyles.inputFont.fontFamily:inputStyles.font?.fontFamily??\"inherit\",fontWeight:shouldShowSuccess&&successStyles.inputFont?.fontWeight?successStyles.inputFont.fontWeight:inputStyles.font?.fontWeight??undefined,lineHeight:inputStyles.font?.lineHeight??undefined,letterSpacing:inputStyles.font?.letterSpacing??undefined,textAlign:resolvedInputTextAlign,color:shouldShowSuccess&&successStyles.inputTextColor?successStyles.inputTextColor:isFocused&&focusStyles.textColor?focusStyles.textColor:value?inputStyles.textColor??\"#999999\":inputStyles.placeholderColor??\"#999999\",backgroundColor:isFocused&&focusStyles.backgroundColor?focusStyles.backgroundColor:isDisabled?\"#F5F5F5\":inputStyles.backgroundColor??\"rgba(187, 187, 187, 0.15)\",borderWidth:\"1px\",borderStyle:\"solid\",...isFocused&&focusStyles.border?focusStyles.border:inputStyles.border,borderColor:isCanvas?inputStyles.border?.borderColor??\"rgba(187, 187, 187, 0.15)\":shouldShowSuccess&&successStyles.inputBorderColor?successStyles.inputBorderColor:error&&(isTouched||state?.submitAttempted)?inputStyles.errorBorderColor??\"#FF4444\":isFocused?focusStyles.border?.borderColor??inputStyles.focusBorderColor??\"#0099FF\":inputStyles.border?.borderColor??\"rgba(187, 187, 187, 0.15)\",borderRadius:inputStyles.borderRadius??12,outline:\"none\",transition:focusStyles.transition??\"border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease\",cursor:isDisabled?\"not-allowed\":\"text\",opacity:isDisabled?inputStyles.disabledOpacity??.5:1,boxSizing:\"border-box\",boxShadow:isFocused&&focusStyles.shadows?focusStyles.shadows:inputStyles.shadows};// Build label styles - use success overrides when applicable\nconst labelStyle={display:\"block\",fontSize:shouldShowSuccess&&successStyles.labelFont?.fontSize?successStyles.labelFont.fontSize:labelStyles.font?.fontSize??12,fontWeight:shouldShowSuccess&&successStyles.labelFont?.fontWeight?successStyles.labelFont.fontWeight:labelStyles.font?.fontWeight??\"500\",fontFamily:shouldShowSuccess&&successStyles.labelFont?.fontFamily?successStyles.labelFont.fontFamily:labelStyles.font?.fontFamily??\"Inter\",lineHeight:labelStyles.font?.lineHeight??undefined,letterSpacing:labelStyles.font?.letterSpacing??undefined,textAlign:resolvedLabelTextAlign,textTransform:labelStyles.textTransform??\"none\",color:shouldShowSuccess&&successStyles.labelColor?successStyles.labelColor:labelStyles.color??\"#888888\",marginBottom:labelStyles.marginBottom??8,transition:\"color 0.2s ease\"};// Build error styles\nconst errorStyle={fontSize:errorStyles.font?.fontSize??12,fontWeight:errorStyles.font?.fontWeight??undefined,fontFamily:errorStyles.font?.fontFamily??\"Inter\",lineHeight:errorStyles.font?.lineHeight??undefined,letterSpacing:errorStyles.font?.letterSpacing??undefined,color:errorStyles.color??\"#FF4444\",marginTop:errorStyles.marginTop??4};// Build success message styles\nconst successStyle={fontSize:successStyles.messageFont?.fontSize??12,fontWeight:successStyles.messageFont?.fontWeight??undefined,fontFamily:successStyles.messageFont?.fontFamily??undefined,color:successStyles.messageColor??\"#22C55E\",marginTop:successStyles.marginTop??4};// Generate unique ID for accessibility\nconst fieldId=`${formId}-${name}`;return /*#__PURE__*/_jsxs(\"div\",{...style,style:{...style,display:\"flex\",flexDirection:\"column\",width:\"100%\",position:\"relative\",direction:componentDirection},children:[isCanvas&&showBadge&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:-8,insetInlineEnd:-8,backgroundColor:\"#FF6B00\",color:\"white\",fontSize:10,fontWeight:600,padding:\"2px 6px\",borderRadius:4,zIndex:1e3,pointerEvents:\"none\",boxShadow:\"0 2px 4px rgba(0,0,0,0.2)\"},children:badgeText}),label&&/*#__PURE__*/_jsxs(\"label\",{htmlFor:fieldId,style:labelStyle,children:[label,required&&/*#__PURE__*/_jsx(\"span\",{style:{color:\"#FF4444\",marginInlineStart:4},children:\"*\"})]}),/*#__PURE__*/_jsx(\"style\",{children:`\r\n                #${fieldId} {\r\n                    -webkit-text-fill-color: ${shouldShowSuccess&&successStyles.inputTextColor?successStyles.inputTextColor:isFocused&&focusStyles.textColor?focusStyles.textColor:value?inputStyles.textColor??\"#999999\":inputStyles.placeholderColor??\"#999999\"};\r\n                }\r\n                #${fieldId}::placeholder {\r\n                    color: ${isFocused&&focusStyles.placeholderColor?focusStyles.placeholderColor:inputStyles.placeholderColor??\"#999999\"};\r\n                    -webkit-text-fill-color: ${isFocused&&focusStyles.placeholderColor?focusStyles.placeholderColor:inputStyles.placeholderColor??\"#999999\"};\r\n                    text-align: ${resolvedInputTextAlign};\r\n                    opacity: 1;\r\n                }\r\n                #${fieldId}:-webkit-autofill,\r\n                #${fieldId}:-webkit-autofill:hover,\r\n                #${fieldId}:-webkit-autofill:focus,\r\n                #${fieldId}:-webkit-autofill:active,\r\n                #${fieldId}:autofill,\r\n                #${fieldId}:autofill:hover,\r\n                #${fieldId}:autofill:focus,\r\n                #${fieldId}:autofill:active {\r\n                    -webkit-box-shadow: 0 0 0 1000px ${inputStyles.backgroundColor??\"#F5F5F5\"} inset !important;\r\n                    box-shadow: 0 0 0 1000px ${inputStyles.backgroundColor??\"#F5F5F5\"} inset !important;\r\n                    -webkit-text-fill-color: ${inputStyles.textColor??\"#999999\"} !important;\r\n                    caret-color: ${inputStyles.textColor??\"#999999\"} !important;\r\n                    transition: background-color 5000s ease-in-out 0s !important;\r\n                }\r\n            `}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\"},children:[/*#__PURE__*/_jsx(\"input\",{id:fieldId,type:\"text\",name:name,value:value||\"\",onChange:e=>handleChange(e.target.value),onBlur:()=>{setIsFocused(false);handleBlur();},onFocus:()=>setIsFocused(true),placeholder:placeholder,disabled:isDisabled,required:required,\"data-formkit\":\"true\",minLength:validationType===\"built-in\"&&minLength?minLength:undefined,pattern:validationType===\"pattern\"&&pattern?pattern:undefined,style:inputStyle}),showInlineSuccessIcon&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",insetInlineEnd:12,top:\"50%\",transform:\"translateY(-50%)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:successStyles.iconColor??successStyles.inputTextColor??\"#0099FF\",pointerEvents:\"none\",width:16,height:16},children:renderIcon({iconType:successStyles.iconType,customIcon:successStyles.customIcon,DefaultIcon:IconCheck})})]}),error&&(isTouched||state?.submitAttempted)&&/*#__PURE__*/_jsxs(\"div\",{style:{...errorStyle,display:\"flex\",alignItems:\"center\",textTransform:\"lowercase\",gap:6},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:14,height:14},children:renderIcon({iconType:errorStyles.iconType,customIcon:errorStyles.customIcon,DefaultIcon:IconAlert})}),error]}),showSuccessMessage&&/*#__PURE__*/_jsx(\"div\",{style:{...successStyle},children:successMessage})]});}// Property Controls - Hybrid structure\naddPropertyControls(FormKitText,{// FLAT - Main options (easy to access and update)\nname:{type:ControlType.String,title:\"Name\",defaultValue:\"name\",description:\"Use camelCase or snake_case, NO SPACES. Examples: firstName, user_email, phone_number\",placeholder:\"field-name\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"Name\",description:\"Field label displayed above input\"},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Enter the name\",description:\"Placeholder text shown when empty\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:false},// disabled prop removed\n// NESTED - Validation (organized!)\nvalidation:{type:ControlType.Object,buttonTitle:\"Validation\",optional:true,controls:VALIDATION_CONTROLS},// NESTED - Styling (organized group)\nstyling:createStylingControl({inputStyles:{type:ControlType.Object,buttonTitle:\"Input\",optional:true,controls:{...BASE_INPUT_STYLE_CONTROLS,focusBorderColor:{type:ControlType.Color,hidden:()=>true}}},labelStyles:{type:ControlType.Object,buttonTitle:\"Label\",optional:true,controls:LABEL_STYLE_CONTROLS},errorStyles:{type:ControlType.Object,buttonTitle:\"Error\",optional:true,controls:ERROR_STYLE_CONTROLS},successStyles:{type:ControlType.Object,buttonTitle:\"Success\",optional:true,controls:SUCCESS_STYLE_CONTROLS},focusStyles:{type:ControlType.Object,buttonTitle:\"Focus\",optional:true,controls:FOCUS_STYLE_CONTROLS}}),// Conditional visibility\nshowIf:SHOW_IF_CONTROL,showIfMatch:{...SHOW_IF_MATCH_CONTROL,hidden:props=>!props.showIf||props.showIf.length===0},showIfAction:{...SHOW_IF_ACTION_CONTROL,hidden:props=>!props.showIf||props.showIf.length===0},// Store connection (flat)\n...STORE_CONFIG_CONTROL});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FormKitText\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"300\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"A,6NAA8E,SAAgBmB,EAAY,EAAO,CACjH,IAAMC,EAAUL,EAAK,CAAC,MAAM,OAAO,OAAO,CAAC,GAAGM,CAAM,CAAC,CAAC,CAAC,EACjDC,EAAa,GAAU,CAC1B,OAAOC,GAAW,aAAY,EAASA,EAASH,EAAU,KAAK,GAAG,EAAU,MAAM,OAAO,OAAO,CAAC,GAAGA,EAAU,MAAM,GAAGG,CAAQ,CAAC,CAAE,EACjIC,EAAW,OAAOH,GAAS,SAAS,OAAO,OAAO,CAAC,GAAGA,CAAM,CAAC,EAAEA,EAC7DI,kBAAa,IAAI,IACjBC,EAAc,GAAU,CAC3B,OAAOH,GAAW,aAAY,EAASA,EAASC,CAAU,GAAG,EAAW,OAAOD,GAAW,SAAS,OAAO,OAAO,CAAC,GAAGC,EAAW,GAAGD,CAAQ,CAAC,EAAEA,EACjJE,EAAa,QAAQ,GAAQE,EAAOH,CAAU,CAAC,CAAE,EACjD,SAASI,GAAU,CACnB,GAAK,CAACC,EAAMC,GAAU9B,EAASwB,CAAU,EAKzC,OAHAZ,OACAa,EAAa,IAAIK,CAAQ,MAAYL,EAAa,OAAOK,CAAQ,GAAI,CAAC,CAAC,EACpEd,EAAe,IAAI,IAAMA,EAAe,EAAQ,CAACI,EAAU,MAAME,CAAY,GAC1E,CAACO,EAAMH,CAAa,CAAG,CAAC,OAAOE,CAAS,C,8IEZxC,kBAAiB,IAAI,IAErB,kBAAW,IAAI,IACR,EAAa,GAAQ,CAAC,GAAG,CAACM,EAAW,IAAIM,CAAM,EAAE,CAAC,IAAMC,EAAStB,EAAY,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,GAAM,KAAK,CAAC,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,aAAa,GAAM,YAAY,GAAM,gBAAgB,GAAM,YAAY,OAAO,UAAU,CAAC,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAEe,EAAW,IAAIM,EAAOC,CAAQ,EACpZR,EAAiB,IAAIO,CAAM,CAAE,CAAC,OAAON,EAAW,IAAIM,CAAM,CAAE,EAC/C,GAAiB,EAAO,IAClCE,GAAgBA,EAAe,KAAK,IAAI,IAAIA,IAAiB,OAAeA,EAAe,KAAK,EAC5FF,GAAQ,UAMF,EAA0B,GAAQ,CAAC,GAAG,CAAC,IAAMG,EAAI,WAAWH,IAAS,aAAa,WAAWG,CAAG,CAAE,OAAOC,EAAM,CAAC,QAAQ,MAAM,0CAA0CA,CAAK,CAAE,CAAC,EAGhL,EAAU3B,EAAa,QAAQ,IAAIA,EAAa,QAA8BA,EAAa,QAAQ,EAAIA,EAAa,OAA6BA,EAAa,QAAQ,EAAIA,EAAa,M,sDCZnJ,EAAiB;;;;;;;;;;;;EAa9D,EAAY,GAEA,MAAyB,CAAuB,GAAnB6B,GAAsB,OAAO,SAAW,IAAY,OAAO,IAAMI,EAAM,SAAS,cAAc,OAAO,EAAEA,EAAM,aAAa,0BAA0B,MAAM,EAAE,EAAM,YAAYL,EAAiB,SAAS,KAAK,YAAYK,CAAK,EAAE,EAAY,EAAK,EAM9Q,QAChBH,EAAqB,EAAsB,gBAAK,MAAM,CAAC,UAAU,UAAU,sBAAsB,OAAO,MAAM,CAAC,QAAQ,MAAM,EAAE,cAAc,MAAM,CAAC,E,OC7B4D,SAAgBI,GAAoB,EAAM,EAAY,CAAC,EAAE,CAAC,IAAMC,EAAkBF,GAAO,UAAU,GAAGE,IAAoB,OAAOA,IAAoB,MAAO,OAAOA,EAEnX,IAAI,IAAMC,KAAUC,EAAY,CAAC,GAAGD,GAAS,KAAyB,SAAS,IAAME,EAAK,OAAOF,CAAM,CAAC,CAAC,KAAK,EAAE,GAAIE,EAAc,IAAGC,EAAiB,KAAKD,CAAI,EAAE,MAAM,MAAM,GAAGE,EAAiB,KAAKF,CAAI,EAAE,MAAM,KAA3C,CAAiD,CAAC,GAAG,OAAO,SAAW,IAAY,CAAC,IAAMG,EAAkB,SAAS,iBAAiB,KAAK,SAAS,MAAM,IAAI,GAAGA,IAAoB,OAAOA,IAAoB,MAAO,OAAOA,EAAmB,IAAMC,EAAiB,SAAS,iBAAiB,MAAM,SAAS,MAAM,MAAM,GAAG,GAAGC,EAAiB,KAAKD,CAAgB,EAAG,MAAM,KAAO,CAAC,MAAM,KAAM,CAAC,SAAgBE,GAAyB,EAAU,EAAU,CAA+B,OAA3BC,IAAkCC,IAAY,MAAM,QAAQ,OAAO,C,wCAF5qB,EAAiB,gCAAsC,EAAiB,mFAAyF,EAAiB,uB,mECC3K,GAAkB,EAAM,EAAU,IAAce,GAAQ,MAAyB,MAAM,QAAQA,CAAK,GAAGA,EAAM,SAAS,GAAkD,OAAOA,GAAQ,UAAUA,EAAM,KAAK,IAAI,GAAWC,GAAS,GAAGC,EAAU,cAAsB,KAAoB,GAAe,EAAM,IAAeF,EAAoE,6BAAW,KAAKA,CAAK,EAAgE,KAAtDC,GAAS,qCAA/F,KAAgK,GAAY,GAAO,CAAC,GAAG,CAACD,EAAM,OAAO,KAAK,GAAG,CAAgB,OAAf,IAAI,IAAIA,CAAK,EAAS,IAAK,MAAM,CAAC,MAAM,0BAA2B,CAAC,EAAe,IAAmB,EAAM,EAAU,IAAeA,GAAqBA,EAAM,OAAOG,EAC3rBF,EAAQA,EAAQ,QAAQ,OAAOE,EAAU,SAAS,CAAC,EAAE,WAAWA,EAAU,sBAD4lB,KACthB,GAAmB,EAAM,EAAU,IAAeH,GAAqBA,EAAM,OAAOI,EACpOH,EAAQA,EAAQ,QAAQ,OAAOG,EAAU,SAAS,CAAC,EAAE,WAAWA,EAAU,qBADqI,KAChE,GAAiB,EAAM,EAAQ,IAAeJ,EAAsD,IAApB,OAAOK,CAAiB,CAAC,CAAC,KAAKL,CAAK,EAA4C,KAAlCC,GAAS,iBAA5E,KAAyH,GAAa,EAAM,EAAI,IAAcD,GAAQ,KAA+B,KAAQA,EAAMM,EAAYL,GAAS,oBAAoBK,IAAc,KAAoB,GAAa,EAAM,EAAI,IAAcN,GAAQ,KAA+B,KAAQA,EAAMO,EAAYN,GAAS,oBAAoBM,IAAc,KAAoB,EAAc,GAAYP,EACjpB,oBAAW,KAAKA,CAAK,EAAqD,KAA5C,oCADgoB,KAChkB,GAAkB,EAAK,IAAcQ,EAAK,KAAKC,EAAgE,gCAAtCA,EAAS,QAAA,CAAY,QAAQ,CAAgD,EAAE,IAAY,KAAoB,GAAkB,EAAK,IAAS,CAAC,GAAG,CAACC,EAAO,OAAO,KAAK,IAAMC,EAAcD,EAAO,MAAM,GAAG,CAAC,CAAC,IAAI,GAAGE,EAAE,KAAK,CAAC,EAAQC,EAASL,EAAK,KAAoCM,EAAc,IAA9BN,EAAK,KAAsC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,IAA2S,OAAzRG,EAAc,KAAK,GAAM,CAAC,GAAGI,EAAK,WAAW,GAAG,EAAG,OAAOD,IAAgBC,EAAK,YAAY,EAAG,GAAGA,EAAK,SAAS,IAAI,EAAE,CAAC,IAAMC,EAASD,EAAK,MAAM,GAAG,CAAC,CAAC,GAAG,OAAOF,EAAS,WAAWG,CAAQ,CAAE,CAAC,OAAOH,IAAWE,CAAK,CAAa,EAA8D,KAArD,oCAAoCL,GAAsB,EACz0B,GAAe,EAAM,IAAQ,CAAC,IAAMR,EAAUe,EAAM,OAAOA,EAAM,KAC9E,GAAGA,EAAM,SAAS,CAClB,GAAGA,EAAM,OAAO,WAAe,IAAAjB,IAAQ,GAAM,OAAOiB,EAAM,iBAAiB,GAAGf,EAAU,iBAAA,MAAyB,GAAGe,EAAM,OAAO,UAAUA,EAAM,OAAO,QACrJ,IAAAjB,GAAQ,MAAyBA,IAAQ,IAAIA,IAAQ,EAAG,OAAOiB,EAAM,iBAAiB,GAAGf,EAAU,aAAA,KAAoB,CAAC,IAAMgB,EAAc/B,EAAiBa,EAAME,EAAUe,EAAM,eAAe,EAAE,GAAGC,EAAc,OAAOA,CAAc,CAAC,CAC9O,GAAG,CAAClB,GAAOiB,EAAM,OAAO,YAAYA,EAAM,OAAO,gBAAgB,OAAO,KACxE,GAAGA,EAAM,OAAO,gBAAgB,CAAC,IAAME,EAAI,MAAM,QAAQnB,CAAK,EAAEA,EAAM,CAAC,EAAiZ,OAA5YiB,EAAM,cAAc,IAAA,IAAWE,EAAI,OAAOF,EAAM,YAAoBA,EAAM,WAAWA,EAAM,WAAW,QAAQ,SAASA,EAAM,YAAY,SAAS,CAAC,EAAE,mBAAmBA,EAAM,YAAY,UAAcA,EAAM,cAAc,IAAA,IAAWE,EAAI,OAAOF,EAAM,YAAoBA,EAAM,WAAWA,EAAM,WAAW,QAAQ,SAASA,EAAM,YAAY,SAAS,CAAC,EAAE,kBAAkBA,EAAM,YAAY,UAAkB,IAAK,CACpe,OAAOA,EAAM,KAAb,CAAmB,IAAI,QAAQ,OAAO7B,EAAcY,EAAMiB,EAAM,YAAY,EAAE,IAAI,MAAM,OAAO5B,GAAYW,CAAK,EAAE,IAAI,QAAQ,OAAOL,EAAcK,CAAK,EAAE,IAAI,SAAS,GAAGiB,EAAM,MAAM,IAAA,GAAU,CAAC,IAAMG,EAAS3B,EAAYO,EAAMiB,EAAM,IAAIA,EAAM,UAAU,EAAE,GAAGG,EAAS,OAAOA,CAAS,CAAC,GAAGH,EAAM,MAAM,IAAA,GAAU,CAAC,IAAMI,EAAS3B,EAAYM,EAAMiB,EAAM,IAAIA,EAAM,UAAU,EAAE,GAAGI,EAAS,OAAOA,CAAS,CAAC,MAAM,IAAI,OAAO,GAAGrB,aAAiB,KAAK,CAAC,GAAGiB,EAAM,OAAO,CAAC,IAAMK,EAAUzB,EAAiBG,EAAMiB,EAAM,MAAM,EAAE,GAAGK,EAAU,OAAOA,CAAU,CAAC,GAAGL,EAAM,QAAQ,CAAC,IAAMM,EAAU3B,EAAiBI,EAAMiB,EAAM,OAAO,EAAE,GAAGM,EAAU,OAAOA,CAAU,CAAC,CAAO,CAC7oB,GAAG,OAAOvB,GAAQ,SAAS,CAAC,GAAGiB,EAAM,YAAY,IAAA,GAAU,CAAC,IAAMO,EAAelC,GAAkBU,EAAMiB,EAAM,UAAUA,EAAM,gBAAgB,EAAE,GAAGO,EAAe,OAAOA,CAAe,CAAC,GAAGP,EAAM,YAAY,IAAA,GAAU,CAAC,IAAMQ,EAAelC,EAAkBS,EAAMiB,EAAM,UAAUA,EAAM,gBAAgB,EAAE,GAAGQ,EAAe,OAAOA,CAAe,CAAC,GAAGR,EAAM,QAAQ,CAAC,IAAMS,EAAalC,EAAgBQ,EAAMiB,EAAM,QAAQA,EAAM,gBAAgBA,EAAM,YAAY,EAAE,GAAGS,EAAa,OAAOA,CAAa,CAAC,CAAC,OAAO,IAAK,C,OCY1f,SAAgBC,GAAa,EAAO,CACvC,GAAK,CAAC,OAAK,SAAO,UAAU,WAAS,OAAO,aAAW,CAAC,EAAE,iBAAe,GAAK,mBAAiB,GAAM,iBAAe,GAAM,QAAM,YAAUC,EACpIC,EAAavE,EAAgBI,EAAOoE,CAAQ,EAAiD,CAAC/E,EAAMC,GAAvCK,EAAawE,CAA2C,CAAC,CAAC,EAExH,CAACE,EAAWC,GAAe7G,MAAqB4B,GAAO,OAAOkF,IAAO,EAAI,EACzE,CAACC,EAAaC,GAAiBhH,EAAS,EAAK,EAAO,CAACiH,EAAaC,GAAiBlH,EAAS,EAAK,EAChGmH,EAAqBlH,EAAO,EAC5BmH,EAAa,CAAC,CAACxF,EACrBjB,MAAc,CAAC,GAAG,CAACiB,GAAO,KAAK,OAAO,IAAMyF,EAAWzF,EAAM,KAAKkF,GAAYQ,EAAqBD,IAAa,IAAA,GAAU,GAAGA,EAC1HC,IAAuBV,GAAYC,EAAcS,CAAoB,CAAG,EAAE,CAAC1F,GAAO,OAAOkF,EAAK,CAAC,EAElGnG,UAAyB,CAAIwG,EAAqB,SAAS,aAAaA,EAAqB,OAAO,CAAG,EAAI,CAAC,CAAC,EAC7GxG,MAAc,CAAIK,EAAa,QAAQ,IAAIA,EAAa,SAASoG,GAAcvF,EAAS,GAAM,CAAC,IAAM0F,EAAcC,GAAM,QAAQ,CAAC,EAAE,GAAGD,EAAcT,GAAM,CAAC,GAAK,EAAEA,GAAMW,EAAE,GAAGC,GAAaH,EAAc,MAAM,CAAC,GAAGC,EAAK,OAAOE,CAAW,CAAE,CAAC,OAAOF,CAAK,CAAC,CAAG,EAAE,CAACJ,CAAY,CAAC,EAC7QzG,MAAc,CAAIgH,GAAgBP,GAAcvF,EAAS,GAAM,CAAC,IAAM0F,EAAcC,GAAM,QAAQ,CAAC,EAAE,GAAGD,EAAcT,GAAM,CAAC,GAAK,EAAEA,GAAMW,EAAE,GAAGC,GAAaH,EAAc,MAAM,CAAC,GAAGC,EAAK,OAAOE,CAAW,CAAE,CAAC,OAAOF,CAAK,CAAC,CAAG,EAAE,CAACG,CAAc,CAAC,EAChPhH,MAAc,CAAkI,GAA9H,CAACyG,GAAcO,GAAkH,EAA7D/F,GAAO,iBAAiBA,GAAO,cAAc,cAA0C,OAC7K,IAAMe,EAAMgC,EAAciC,EAAW,CAAC,OAAK,QAAM,GAAGgB,CAAU,CAAC,EAAE/F,EAAS,GAAM,CAAsC,GAAK,EAAEiF,GAAMW,EAAE,GAAGC,GAAnCF,GAAM,QAAQ,CAAC,EAAqDK,EAAUlF,EAAM,CAAC,GAAG+E,GAAaZ,GAAMnE,CAAK,EAAE+E,EAAY,MAAM,CAAC,GAAGF,EAAK,OAAOK,CAAS,CAAE,CAAC,EAAEX,EAAgB,EAAI,CAAE,EAAE,CAACtF,GAAO,gBAAgBA,GAAO,WAAW,CAAC,EAGnU,IAAMkG,EAAS,GACnBH,EAAuB,KAAmFhD,EAAnEoD,IAAkB,IAAA,GAA0BnB,EAAhBmB,EAAyD,CAAC,OAAK,QAAM,GAAGH,CAAU,CAAc,EAe2W,MAAM,CAAC,MAAMhB,EAAW,MAAMhF,GAAO,SAASkF,IAAO,KAAK,UAAUlF,GAAO,UAAUkF,IAAO,GAAM,eAAa,eAAa,kBAAgB,MAAMlF,GAAO,CAAC,EAAE,WAAS,aAX5pB,GAAO,CAACiF,EAAchC,CAAK,EAAMuC,IAAoBvF,EAAS,IAAO,CAAC,GAAG2F,EAAK,KAAK,CAAC,GAAGA,GAAM,MAAM,CAAC,GAAGV,GAAMjC,CAAK,EAAE,QAAQ,CAAC,GAAG2C,GAAM,SAAS,CAAC,GAAGV,GAAM,EAAI,CAAC,EAAE,EAC1LkB,IAAWnD,CAAK,GAEboD,GAAkBrG,GAAO,mBAAiBoF,EAAgB,EAAI,EAAKG,EAAqB,SAAS,aAAaA,EAAqB,OAAO,EAAG,EAAqB,QAAQ,eAAe,CAE5L,IAAMxE,EAAMmF,EAASjD,CAAK,EAAEhD,EAAS,GAAM,CAAsC,GAAK,EAAEiF,GAAMW,EAAE,GAAGC,GAAnCF,GAAM,QAAQ,CAAC,EAAqDK,EAAUlF,EAAM,CAAC,GAAG+E,GAAaZ,GAAMnE,CAAK,EAAE+E,EAAY,MAAM,CAAC,GAAGF,EAAK,OAAOK,CAAS,CAAE,CAAC,EAAEb,EAAgB,EAAK,EAAEE,EAAgB,EAAI,CAAE,EAAE,GAAG,GAClR,EAKisB,WAD3qB,GAAiB,CAAC,GAAG,CAACE,EAAa,OAC3D,GAAGO,EAAe,CAAC9F,EAAS,GAAM,CAAC,IAAM0F,EAAcC,GAAM,QAAQ,CAAC,EAAE,GAAGD,EAAcT,GAAM,CAAC,GAAK,EAAEA,GAAMW,EAAE,GAAGC,GAAaH,EAAc,MAAM,CAAC,GAAGC,EAAK,OAAOE,CAAW,CAAE,CAAC,OAAOF,CAAK,CAAC,EAAE,MAAO,CAAC,GAAG,CAACU,EAAe,OAAO,IAAMvF,EAAMmF,EAASC,CAAe,EAAElG,EAAS,GAAM,CAAsC,GAAK,EAAEiF,GAAMW,EAAE,GAAGC,GAAnCF,GAAM,QAAQ,CAAC,EAAqDK,EAAUlF,EAAM,CAAC,GAAG+E,GAAaZ,GAAMnE,CAAK,EAAE+E,EAAY,MAAM,CAAC,GAAGF,EAAK,OAAOK,EAAU,QAAQ,CAAC,GAAGL,GAAM,SAAS,CAAC,GAAGV,GAAM,EAAI,CAAC,CAAE,CAAC,EAAEI,EAAgB,EAAI,CAAE,EAA+L,UAAQ,CAAE,C,wGC1D3sB,GAAwB,GAAO,CAAC,GAAG,OAAOrC,GAAQ,SAAS,OAAOA,EAAM,IAAM6D,EAAQ7D,EAAM,KAAK,EAAE,GAAG6D,IAAU,GAAG,OAAO7D,EAAM,GAAG6D,EAAQ,YAAY,IAAI,OAAO,MAAO,GAAK,GAAGA,EAAQ,YAAY,IAAI,QAAQ,MAAO,GAAM,IAAMC,EAAQ,OAAOD,CAAO,EAA2C,OAArC,OAAO,MAAMC,CAAO,EAAwBD,EAAfC,CAAuB,EAAQ,EAAS,GAAW9D,GAAQ,KAA+B,GAAS,OAAOA,GAAQ,SAAgBA,EAAM,KAAK,IAAI,GAAG,CAAG,MAAM,QAAQA,CAAK,GAASA,EAAM,OAAO,EAAsB,IAAc,EAAK,IAAO,CAAC,GAAK,CAAC,QAAM,WAAS,SAAS,SAAO+D,EAAK,GAAG,CAACC,EAAM,MAAO,GAAK,IAAMC,EAAKC,EAAKF,GAAaG,EAAMZ,GAAwBvD,CAAK,EAAE,OAAOoE,EAAP,CAAiB,IAAI,SAA4J,OAA/I,MAAM,QAAQH,CAAI,EAAM,MAAM,QAAQE,CAAK,EAAUF,EAAK,SAASE,EAAM,QAAQF,EAAK,OAAO,EAAE,IAAII,IAAIF,EAAMG,EAAE,EAAUL,EAAK,SAASE,CAAK,EAAUF,IAAOE,EAAO,IAAI,YAAiK,OAAjJ,MAAM,QAAQF,CAAI,EAAM,MAAM,QAAQE,CAAK,EAAS,EAAEF,EAAK,SAASE,EAAM,QAAQF,EAAK,OAAO,EAAE,IAAII,IAAIF,EAAMG,EAAE,GAAU,CAACL,EAAK,SAASE,CAAK,EAAUF,IAAOE,EAAO,IAAI,WAA4K,OAA7J,MAAM,QAAQF,CAAI,EAASA,EAAK,SAASE,CAAK,EAAK,OAAOF,GAAO,UAAU,OAAOE,GAAQ,UAAiBF,EAAK,YAAY,CAAC,CAAC,SAASE,EAAM,YAAY,CAAC,EAAiB,IAAI,cAA+K,OAA7J,MAAM,QAAQF,CAAI,EAAQ,CAACA,EAAK,SAASE,CAAK,EAAK,OAAOF,GAAO,UAAU,OAAOE,GAAQ,SAAgB,CAACF,EAAK,YAAY,CAAC,CAAC,SAASE,EAAM,YAAY,CAAC,EAAU,GAAM,IAAI,cAAc,CAAC,IAAMI,EAAE,OAAON,CAAI,EAAQO,EAAE,OAAOL,CAAK,EAAmD,OAA9C,OAAO,MAAMI,CAAC,GAAG,OAAO,MAAMC,CAAC,EAAS,GAAaD,EAAEC,CAAE,CAAC,IAAI,WAAW,CAAC,IAAMD,EAAE,OAAON,CAAI,EAAQO,EAAE,OAAOL,CAAK,EAAmD,OAA9C,OAAO,MAAMI,CAAC,GAAG,OAAO,MAAMC,CAAC,EAAS,GAAaD,EAAEC,CAAE,CAAC,IAAI,qBAAqB,CAAC,IAAMD,EAAE,OAAON,CAAI,EAAQO,EAAE,OAAOL,CAAK,EAAmD,OAA9C,OAAO,MAAMI,CAAC,GAAG,OAAO,MAAMC,CAAC,EAAS,GAAaD,GAAGC,CAAE,CAAC,IAAI,kBAAkB,CAAC,IAAMD,EAAE,OAAON,CAAI,EAAQO,EAAE,OAAOL,CAAK,EAAmD,OAA9C,OAAO,MAAMI,CAAC,GAAG,OAAO,MAAMC,CAAC,EAAS,GAAaD,GAAGC,CAAE,CAAC,IAAI,WAAW,OAAOhB,EAASS,CAAI,EAAE,IAAI,UAAU,MAAM,CAACT,EAASS,CAAI,EAAE,QAAQ,MAAO,EAAK,CAAC,EAAe,IAAoB,EAAO,EAAK,EAAM,MAAM,EAAO,SAAS,CAC1jE,GAAG,CAACQ,GAAQ,MAAM,QAAQA,CAAM,GAAGA,EAAO,SAAS,GAAG,OAAOA,GAAS,UAAUA,EAAO,KAAK,IAAI,GAAI,MAAM,CAAC,UAAU,GAAK,WAAW,EAAK,EAAG,GAAG,CAAC,IAAIC,EAAa,GAAG,OAAOD,GAAS,SAAS,CAAC,IAAME,EAAK,OAAO,KAAKT,CAAI,EAAQU,EAAO,OAAO,OAAOV,CAAI,EACzM,EAAa,EAAlD,SAAS,GAAGS,EAAK,UAAUF,GAA+B,CAAA,CAAG,GAAGG,CAAM,CAAG,KAAK,CAAC,IAAMC,EAAQJ,EAAO,IAAI,GAAMhB,GAAaM,EAAKG,CAAI,CAAC,EAAE,EAAaY,IAAQ,MAAMD,EAAQ,KAAK,OAAO,EAAEA,EAAQ,MAAM,OAAO,CAAE,CAAC,OAAOE,EAAP,CAAe,IAAI,OAAO,MAAM,CAAC,UAAUL,EAAa,WAAW,EAAK,EAAE,IAAI,OAAO,MAAM,CAAC,UAAU,CAACA,EAAa,WAAW,EAAK,EAAE,IAAI,SAAS,MAAM,CAAC,UAAU,GAAK,WAAW,CAACA,CAAY,EAAE,IAAI,UAAU,MAAM,CAAC,UAAU,GAAK,WAAWA,CAAY,EAAE,QAAQ,MAAM,CAAC,UAAU,GAAK,WAAW,EAAK,CAAE,CAAC,OAAO5G,EAAM,CAAqD,OAApD,QAAQ,MAAM,+BAA+BA,CAAK,EAAQ,CAAC,UAAU,GAAK,WAAW,EAAK,CAAE,CAAC,EAGzmB,IAAqB,EAAO,EAAW,EAAa,SAAS,CAAC,GAAG,CAAC2G,GAAQA,EAAO,SAAS,EAAG,MAAM,CAAC,UAAU,GAAM,UAAU,EAAE,EAAG,IAAMO,EAAc,CAACC,EAAW,UAAgBC,EAAgBD,EAAW,WAAma,OAArZE,IAAe,QAAQH,EAAqB,CAAC,UAAU,GAAK,UAAU,mBAAmB,EAAWG,IAAe,QAAQ,CAACH,EAAqB,CAAC,UAAU,GAAK,UAAU,kBAAkB,EAAWG,IAAe,UAAUD,EAAuB,CAAC,UAAU,GAAK,UAAU,qBAAqB,EAAWC,IAAe,WAAW,CAACD,EAAuB,CAAC,UAAU,GAAK,UAAU,oBAAoB,EAAS,CAAC,UAAU,GAAM,UAAU,EAAE,CAAE,C,OCoCnqB,SAAgBE,EAAqB,EAAS,CAAC,MAAM,CAAC,KAAKhJ,EAAY,OAAO,YAAY,SAAS,SAAS,GAAK,UAAQ,CAAE,C,sEApC9G,EAAgB,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,YAAY,uDAAuD,QAAQ,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,YAAY,6BAA6B,YAAY,WAAW,EAAE,SAAS,CAAC,KAAKA,EAAY,KAAK,MAAM,WAAW,QAAQ,CAAC,SAAS,YAAY,WAAW,cAAc,cAAc,WAAW,qBAAqB,kBAAkB,WAAW,SAAS,EAAE,wBAAwB,GAAM,aAAa,QAAQ,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,YAAY,2BAA2B,YAAY,eAAe,OAAO,GAAO6E,EAAM,WAAW,YAAYA,EAAM,WAAW,SAAS,CAAC,CAAC,CAAC,EAAe,EAA6B,CAAC,KAAK7E,EAAY,MAAM,MAAM,aAAa,YAAY,mCAAmC,QAAQ,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,YAAY,WAAW,EAAE,SAAS,CAAC,KAAKA,EAAY,KAAK,MAAM,WAAW,QAAQ,CAAC,SAAS,YAAY,WAAW,cAAc,cAAc,WAAW,qBAAqB,kBAAkB,WAAW,SAAS,EAAE,aAAa,CAAC,SAAS,aAAa,WAAW,eAAe,eAAe,YAAY,mBAAmB,gBAAgB,YAAY,UAAU,EAAE,aAAa,SAAS,wBAAwB,EAAK,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,YAAY,eAAe,OAAO,GAAO6E,EAAM,WAAW,YAAYA,EAAM,WAAW,SAAS,CAAC,CAAC,CAAC,EAAe,EAAyB,CAAC,KAAK7E,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,MAAM,KAAK,EAAE,aAAa,CAAC,YAAY,UAAU,EAAE,aAAa,MAAM,wBAAwB,GAAK,0BAA0B,UAAU,EAAe,GAA8B,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,YAAY,gDAAgD,QAAQ,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,MAAMmJ,EAAyB,WAAWD,EAA6B,OAAO,CAAC,KAAKlJ,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,WAAW,gBAAgB,iBAAiB,EAAE,aAAa,CAAC,aAAa,kBAAkB,mBAAmB,EAAE,aAAa,WAAW,wBAAwB,GAAK,0BAA0B,UAAU,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,YAAY,kCAAkC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,GAAK,OAAO,GAAO6E,EAAM,SAAS,UAAU,EAAE,YAAY,CAAC,KAAK7E,EAAY,OAAO,MAAM,aAAa,YAAY,WAAW,OAAO,GAAO6E,EAAM,SAAS,iBAAiBA,EAAM,SAAS,iBAAiB,EAAE,YAAY,CAAC,KAAK7E,EAAY,OAAO,MAAM,cAAc,YAAY,aAAa,OAAO,GAAO6E,EAAM,SAAS,eAAe,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAmF,CAAjC,GAAGuE,EAAoC,EAAoLpJ,EAAY,MAA8IA,EAAY,OAAqGA,EAAY,KAAgLA,EAAY,OAE74G,GAAsB,CAAC,KAAKA,EAAY,KAAK,MAAM,aAAa,YAAY,qCAAqC,QAAQ,CAAC,MAAM,KAAK,EAAE,aAAa,CAAC,YAAY,UAAU,EAAE,aAAa,KAAK,EAE/L,EAAuB,CAAC,KAAKA,EAAY,KAAK,MAAM,uBAAuB,YAAY,gEAAgE,QAAQ,CAAC,OAAO,OAAO,SAAS,SAAS,EAAE,aAAa,CAAC,aAAa,aAAa,eAAe,eAAe,EAAE,aAAa,OAAO,wBAAwB,GAAK,0BAA0B,UAAU,EAG/V,EAAqB,CAAC,OAAO,CAAC,KAAKA,EAAY,OAAO,MAAM,UAAU,aAAa,UAAU,YAAY,sNAAsN,CAAC,EAE/QA,EAAY,QAA6HA,EAAY,QAGtM,GAAoB,CACpC,eAAe,CAAC,KAAKA,EAAY,QAAQ,MAAM,UAAU,YAAY,kCAAkC,aAAa,EAAI,EAAE,iBAAiB,CAAC,KAAKA,EAAY,QAAQ,MAAM,YAAY,YAAY,mCAAmC,aAAa,EAAI,EACvP,eAAe,CAAC,KAAKA,EAAY,KAAK,MAAM,kBAAkB,QAAQ,CAAC,WAAW,SAAS,EAAE,aAAa,CAAC,WAAW,gBAAgB,EAAE,aAAa,WAAW,YAAY,2BAA2B,wBAAwB,GAAK,0BAA0B,UAAU,EACxQ,UAAU,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAK,YAAY,sCAAsC,OAAO,GAAO6E,EAAM,iBAAiB,SAAS,EAAE,UAAU,CAAC,KAAK7E,EAAY,OAAO,MAAM,aAAa,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAK,YAAY,oCAAoC,OAAO,GAAO6E,EAAM,iBAAiB,SAAS,EAC5Y,QAAQ,CAAC,KAAK7E,EAAY,OAAO,MAAM,kBAAkB,gBAAgB,GAAK,YAAY,8CAA8C,OAAO,GAAO6E,EAAM,iBAAiB,UAAU,EACvL,gBAAgB,CAAC,KAAK7E,EAAY,OAAO,MAAM,iBAAiB,YAAY,wBAAwB,EAAE,iBAAiB,CAAC,KAAKA,EAAY,OAAO,MAAM,mBAAmB,YAAY,uCAAuC,YAAY,4BAA4B,OAAO,GAAO6E,EAAM,iBAAiB,SAAS,EAAE,iBAAiB,CAAC,KAAK7E,EAAY,OAAO,MAAM,mBAAmB,YAAY,iCAAiC,YAAY,4BAA4B,OAAO,GAAO6E,EAAM,iBAAiB,SAAS,EAAE,eAAe,CAAC,KAAK7E,EAAY,OAAO,MAAM,gBAAgB,YAAY,iBAAiB,OAAO,GAAO6E,EAAM,iBAAiB,UAAU,EAAE,eAAe,CAAC,KAAK7E,EAAY,OAAO,MAAM,kBAAkB,YAAY,aAAa,CAAC,EAEltB,GAA0B,CAAC,gBAAgB,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,aAAa,2BAA2B,EAAE,UAAU,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,EAAE,iBAAiB,CAAC,KAAKA,EAAY,MAAM,MAAM,oBAAoB,aAAa,SAAS,EAAE,OAAO,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,aAAa,CAAC,YAAY,EAAE,YAAY,4BAA4B,YAAY,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAKA,EAAY,UAAU,MAAM,UAAU,SAAS,EAAI,EAAE,aAAa,CAAC,KAAKA,EAAY,aAAa,MAAM,gBAAgB,aAAa,EAAE,EAAE,QAAQ,CAAC,KAAKA,EAAY,QAAQ,MAAM,UAAU,aAAa,MAAM,EAAE,UAAU,CAAC,KAAKA,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,OAAO,SAAS,OAAO,EAAE,YAAY,CAAC,kBAAkB,oBAAoB,kBAAkB,EAAE,aAAa,OAAO,wBAAwB,EAAI,EAAE,KAAK,CAAC,KAAKA,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,GAAK,qBAAqB,GAAM,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,EACngC,iBAAiB,CAAC,KAAKA,EAAY,MAAM,MAAM,eAAe,aAAa,SAAS,EAAE,iBAAiB,CAAC,KAAKA,EAAY,MAAM,MAAM,eAAe,aAAa,SAAS,EAAE,gBAAgB,CAAC,KAAKA,EAAY,OAAO,MAAM,mBAAmB,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,aAAa,GAAG,eAAe,EAAI,CAAC,EAEtR,EAAqB,CAAC,MAAM,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,EAAE,KAAK,CAAC,KAAKA,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,GAAK,qBAAqB,GAAM,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,EAAE,UAAU,CAAC,KAAKA,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,OAAO,SAAS,OAAO,EAAE,YAAY,CAAC,kBAAkB,oBAAoB,kBAAkB,EAAE,aAAa,OAAO,wBAAwB,EAAI,EAAE,cAAc,CAAC,KAAKA,EAAY,KAAK,MAAM,iBAAiB,QAAQ,CAAC,OAAO,YAAY,YAAY,YAAY,EAAE,aAAa,CAAC,OAAO,YAAY,YAAY,YAAY,EAAE,aAAa,OAAO,wBAAwB,GAAK,0BAA0B,UAAU,EAAE,aAAa,CAAC,KAAKA,EAAY,OAAO,MAAM,iBAAiB,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,aAAa,EAAE,eAAe,EAAI,CAAC,EAEvwB,CAAxB,GAAG0J,CAAuF,EAAf,CAArC,GAAGA,EAAqB,YAAwB,EAA8B1J,EAAY,MAE/J,GAAqB,CAAC,MAAM,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,EAAE,KAAK,CAAC,KAAKA,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,GAAK,qBAAqB,GAAM,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,aAAa,EAAE,eAAe,EAAI,EAAE,SAAS,CAAC,KAAKA,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,UAAU,QAAQ,EAAE,aAAa,CAAC,UAAU,UAAU,EAAE,aAAa,UAAU,wBAAwB,EAAI,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,YAAY,sBAAsB,gBAAgB,GAAK,OAAO,GAAO6E,EAAM,WAAW,QAAQ,CAAC,EAErqB,GAAuB,CAAC,YAAY,CAAC,KAAK7E,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,OAAO,OAAO,SAAS,EAAE,aAAa,CAAC,OAAO,YAAY,cAAc,EAAE,aAAa,OAAO,wBAAwB,GAAK,0BAA0B,UAAU,EACnQ,YAAY,CAAC,KAAKA,EAAY,KAAK,MAAM,eAAe,SAAS,WAAW,gBAAgB,GAAK,qBAAqB,GAAM,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,EAAE,aAAa,CAAC,KAAKA,EAAY,MAAM,MAAM,gBAAgB,SAAS,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,SAAS,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,MAAM,sBAAsB,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,aAAa,EAAE,eAAe,EAAI,EAC1a,iBAAiB,CAAC,KAAKA,EAAY,MAAM,MAAM,qBAAqB,SAAS,EAAI,EAAE,eAAe,CAAC,KAAKA,EAAY,MAAM,MAAM,mBAAmB,SAAS,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,KAAK,MAAM,aAAa,SAAS,WAAW,gBAAgB,GAAK,qBAAqB,GAAM,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,EACnU,WAAW,CAAC,KAAKA,EAAY,MAAM,MAAM,cAAc,SAAS,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,KAAK,MAAM,aAAa,SAAS,WAAW,gBAAgB,GAAK,qBAAqB,GAAM,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,EAAE,SAAS,CAAC,KAAKA,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,UAAU,QAAQ,EAAE,aAAa,CAAC,UAAU,UAAU,EAAE,aAAa,UAAU,wBAAwB,EAAI,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,YAAY,sBAAsB,gBAAgB,GAAK,OAAO,GAAO6E,EAAM,WAAW,QAAQ,CAAC,EAExhB,EAAqB,CAAC,gBAAgB,CAAC,KAAK7E,EAAY,MAAM,MAAM,OAAO,SAAS,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,SAAS,EAAI,EAAE,iBAAiB,CAAC,KAAKA,EAAY,MAAM,MAAM,oBAAoB,SAAS,EAAI,EAAE,OAAO,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,SAAS,EAAI,EAAE,QAAQ,CAAC,KAAKA,EAAY,UAAU,MAAM,UAAU,SAAS,EAAI,EAAE,WAAW,CAAC,KAAKA,EAAY,WAAW,MAAM,aAAa,SAAS,EAAI,CAAC,EAM/bA,EAAY,OAAiGA,EAAY,aAAgEA,EAAY,OAAiHA,EAAY,MAC1TA,EAAY,QAChBA,EAAY,KAAmLA,EAAY,MAAkEA,EAAY,OAC9QA,EAAY,MAAwEA,EAAY,OAA2EA,EAAY,aAA6EA,EAAY,QACzQA,EAAY,MAA6EA,EAAY,OAAoEA,EAAY,OAElJA,EAAY,OAA6FA,EAAY,OAEvHA,EAAY,OAAwHA,EAAY,OAAgJA,EAAY,aAAoHA,EAAY,OAAiHA,EAAY,MAA+GA,EAAY,MAA4HA,EAAY,QAA8GA,EAAY,KAA0NA,EAAY,MAAkEA,EAAY,OAAyKA,EAAY,OAA6HA,EAAY,MAAqDA,EAAY,OAAwDA,EAAY,aAAoEA,EAAY,QAAkEA,EAAY,MAAwDA,EAAY,OAAmEA,EAAY,MAAoEA,EAAY,OAA0EA,EAAY,MAAuEA,EAAY,OAAsEA,EAAY,OAAqHA,EAAY,KAA6IA,EAAY,MAAoEA,EAAY,MAAiEA,EAAY,MAAiEA,EAAY,MAA6DA,EAAY,MAA4DA,EAAY,MAA2DA,EAAY,KAAyJA,EAAY,KAAwJA,EAAY,OAAuHA,EAAY,OAA+FA,EAAY,OAA2FA,EAAY,OAE3oHA,EAAY,OAAiGA,EAAY,OAA2GA,EAAY,OAAyGA,EAAY,OAAuFA,EAAY,OAA0FA,EAAY,M,wDCtDljB,GAAU,GAAoB,gBAAK,MAAM,CAAC,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,GAAG6E,EAAM,SAAsB,gBAAK,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAe,GAAU,GAAoB,gBAAM,MAAM,CAAC,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,GAAGA,EAAM,SAAS,CAAc,gBAAK,SAAS,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,IAAI,CAAC,EAAe,gBAAK,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,EAAe,gBAAK,OAAO,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAkqC,IAAY,CAAC,WAAS,UAAU,aAAW,cAAY,QAAM,CAAC,KAAK,CAAC,GAAGsF,IAAW,UAAUC,EAAW,CAC1hE,GAAGA,EAAW,KAAK,CAAC,CAAC,WAAW,MAAM,EAAE,CAExC,IAAMC,GAF0D,GAAKC,EAAI,QAAQ,mBAAmB,EAAO,IAAiT,OAAvRC,EAAM,QAAQ,oCAAoC,EAAE,CAAC,CAAC,QAAQ,6BAA6B,EAAY,IAAa,CAAC,IAAMC,EAAc,OAAOC,CAAU,CAAC,CAAC,QAAQ,2CAA2C,EAAE,CAAC,CAAC,KAAK,EAAE,OAAOD,EAAc,WAAWA,EAAc,GAAG,EAAG,CAA2B,EAAE,iEAAmE,EAEhe,CAAiBJ,EACnC,QAAQ,mCAAmC,qBAAqB,CAAC,CAAC,QAAQ,8BAA8B,qBAAqB,CAAC,CAAC,QAAQ,wDAAwD,qBAAqB,CAAC,CACrN,QAAQ,qCAAqC,uBAAuB,CAAC,CAAC,QAAQ,gCAAgC,uBAAuB,CAAC,CAAC,QAAQ,0DAA0D,uBAAuB,CAAC,EAAiC,CAAC,MAAMM,EAAU,GAAGC,GAAnC9F,GAAO,CAAC,EAAoD,MAAoB,gBAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,MAAM,OAAO,OAAO,OAAO,SAAS,SAAS,MAAM,eAAe,GAAG6F,GAAW,CAAC,CAAC,EAAE,wBAAwB,CAAC,OAAOL,CAAY,EAAE,GAAGM,CAAa,CAAC,CAAE,CACviB,MAAoB,gBAAK,MAAM,CAAC,IAAIP,EAAW,IAAI,OAAO,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,UAAU,SAAS,EAAE,GAAGvF,CAAK,CAAC,CAAE,CAC5H,MAAoB,gBAAK+F,EAAY,CAAC,GAAG/F,CAAK,CAAC,CAAE,C,OCa9C,SAAwBgG,GAAY,EAAM,CAAC,GAAK,CACnD,OAAK,QAAM,cAAY,GAAG,WAAS,GAEnC,aAAW,CAAC,EACZ,UAAQ,CAAC,EACT,SAAO,cAAY,MAAM,eAAa,OACtC,SAAO,UAEP,SAAOhG,EACF,CAAC,iBAAe,GAAK,mBAAiB,GAAM,iBAAe,WAAW,YAAU,YAAU,UAAQ,kBAAgB,mBAAiB,mBAAiB,iBAAe,kBAAgB8B,EACnL,CAAC,cAAY,CAAC,EAAE,cAAY,CAAC,EAAE,cAAY,CAAC,EAAE,gBAAc,CAAC,EAAE,cAAY,CAAC,GAAGmE,EACpFpL,MAAc,CAAImG,EAAK,SAAS,GAAG,GAAG,QAAQ,KAAK,gCAAgCA,EAAK,wGAA2G,CAAG,EAAE,CAACA,CAAI,CAAC,EAC9M,IAAMkF,GAAiB,CAAC,WAAS,kBAAgB,KAAK,OACtD,GAAGC,IAAiB,YAAY,CAAC,UAAUjH,GAAW,IAAA,GAAU,mBAAiB,UAAUC,GAAW,IAAA,GAAU,kBAAgB,EAAE,GAAGgH,IAAiB,WAAW,CAAC,QAAQ/G,GAAS,IAAA,GAAU,gBAAc,CAAC,EAEhG,CAAC3D,IAAzDW,EAAaC,EAA9CI,GAAQ,UAAmE,MAAM,CAA4B,CAAC,CAAC,EAC5H2J,EAASlL,EAAa,QAAQ,IAAIA,EAAa,OAC/C8I,EAAWvB,GAAmBe,EAAO/H,IAAY,MAAM,CAAC,EAAE4K,EAAYnC,CAAY,EACpFoC,EAAU,GAASC,EAAW,GAAUC,EAAU,GAAUC,EAAU,GAAG,GAAGL,EAAS,CAAC,EAAU,GAAK,EAAW,GACpH,IAAMM,EAAMhE,GAAoBc,EAAOQ,EAAWE,CAAY,EAAE,EAAUwC,EAAM,UAAU,EAAUA,EAAM,SAAU,KAAM,GAAU1C,EAAW,UAAU,EAAWA,EAAW,WAE/K,GAAK,CAAC,QAAM,QAAM,YAAU,gBAAa,gBAAa,QAAM,gBAAa,eAAYtD,GAAa,CAAC,OAAK,SAAO,SAAS,OAAO,WAAWwF,GAAiB,iBAAe,mBAAiB,eADhK,CAACE,IAAW,CAACE,GAAWC,GAC4K,OAAK,CAAC,EAChO,CAACI,EAAUC,GAAcxM,EAAS,EAAK,EAAQyM,EAAmBzJ,GAAoBD,EAAM,CAAC2J,EAAMC,EAAYC,EAAejI,EAAMiC,CAAI,CAAC,EAAQiG,EAAuBnJ,GAAyBoJ,EAAY,UAAUL,CAAkB,EAAQM,GAAuBrJ,GAAyBsJ,EAAY,UAAUP,CAAkB,EAAE,GAAG,CAACP,EAAU,MAAoB,gBAAKrJ,GAAkB,CAAC,CAAC,EAAE,IAAMoK,GAAa,OAAOtI,GAAQ,UAAUA,EAAM,KAAK,IAAI,GAASuI,EAAkB,GAAQnG,IAAc,CAACF,IAAc,CAACpE,GAAOmK,IAAiBO,EAASF,GAAatI,IAAcyI,EAAmBC,EAAc,aAAa,OAAaC,GAAsBJ,IAAoBE,IAAqB,QAAQA,IAAqB,QAAcG,GAAmBL,IAAoBE,IAAqB,QAAQA,IAAqB,WAC7zBI,EAAW,CAAC,MAAM,OAAO,QAAQV,EAAY,SAAS,OAAO,SAASI,GAAmBG,EAAc,WAAW,SAASA,EAAc,UAAU,SAASP,EAAY,MAAM,UAAU,GAAG,WAAWI,GAAmBG,EAAc,WAAW,WAAWA,EAAc,UAAU,WAAWP,EAAY,MAAM,YAAY,UAAU,WAAWI,GAAmBG,EAAc,WAAW,WAAWA,EAAc,UAAU,WAAWP,EAAY,MAAM,YAAY,IAAA,GAAU,WAAWA,EAAY,MAAM,YAAY,IAAA,GAAU,cAAcA,EAAY,MAAM,eAAe,IAAA,GAAU,UAAUD,EAAuB,MAAMK,GAAmBG,EAAc,eAAeA,EAAc,eAAed,GAAWkB,EAAY,UAAUA,EAAY,UAAU9I,EAAMmI,EAAY,WAAW,UAAUA,EAAY,kBAAkB,UAAU,gBAAgBP,GAAWkB,EAAY,gBAAgBA,EAAY,gBAAgBtB,EAAW,UAAUW,EAAY,iBAAiB,4BAA4B,YAAY,MAAM,YAAY,QAAQ,GAAGP,GAAWkB,EAAY,OAAOA,EAAY,OAAOX,EAAY,OAAO,YAAYd,EAASc,EAAY,QAAQ,aAAa,4BAA4BI,GAAmBG,EAAc,iBAAiBA,EAAc,iBAAiB5K,IAAQiL,GAAWhM,GAAO,iBAAiBoL,EAAY,kBAAkB,UAAUP,EAAUkB,EAAY,QAAQ,aAAaX,EAAY,kBAAkB,UAAUA,EAAY,QAAQ,aAAa,4BAA4B,aAAaA,EAAY,cAAc,GAAG,QAAQ,OAAO,WAAWW,EAAY,YAAY,4FAA4F,OAAOtB,EAAW,cAAc,OAAO,QAAQA,EAAWW,EAAY,iBAAiB,GAAG,EAAE,UAAU,aAAa,UAAUP,GAAWkB,EAAY,QAAQA,EAAY,QAAQX,EAAY,OAAO,EAC10Da,GAAW,CAAC,QAAQ,QAAQ,SAAST,GAAmBG,EAAc,WAAW,SAASA,EAAc,UAAU,SAASL,EAAY,MAAM,UAAU,GAAG,WAAWE,GAAmBG,EAAc,WAAW,WAAWA,EAAc,UAAU,WAAWL,EAAY,MAAM,YAAY,MAAM,WAAWE,GAAmBG,EAAc,WAAW,WAAWA,EAAc,UAAU,WAAWL,EAAY,MAAM,YAAY,QAAQ,WAAWA,EAAY,MAAM,YAAY,IAAA,GAAU,cAAcA,EAAY,MAAM,eAAe,IAAA,GAAU,UAAUD,GAAuB,cAAcC,EAAY,eAAe,OAAO,MAAME,GAAmBG,EAAc,WAAWA,EAAc,WAAWL,EAAY,OAAO,UAAU,aAAaA,EAAY,cAAc,EAAE,WAAW,iBAAiB,EACxxBY,GAAW,CAAC,SAASC,EAAY,MAAM,UAAU,GAAG,WAAWA,EAAY,MAAM,YAAY,IAAA,GAAU,WAAWA,EAAY,MAAM,YAAY,QAAQ,WAAWA,EAAY,MAAM,YAAY,IAAA,GAAU,cAAcA,EAAY,MAAM,eAAe,IAAA,GAAU,MAAMA,EAAY,OAAO,UAAU,UAAUA,EAAY,WAAW,CAAC,EACzUC,EAAa,CAAC,SAAST,EAAc,aAAa,UAAU,GAAG,WAAWA,EAAc,aAAa,YAAY,IAAA,GAAU,WAAWA,EAAc,aAAa,YAAY,IAAA,GAAU,MAAMA,EAAc,cAAc,UAAU,UAAUA,EAAc,WAAW,CAAC,EACvQU,EAAQ,GAAG1L,EAAO,GAAGuE,IAAO,MAAoB,gBAAM,MAAM,CAAC,GAAG7D,EAAM,MAAM,CAAC,GAAGA,EAAM,QAAQ,OAAO,cAAc,SAAS,MAAM,OAAO,SAAS,WAAW,UAAU0J,CAAkB,EAAE,SAAS,CAACT,GAAUI,GAAwB,gBAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,IAAI,GAAG,eAAe,GAAG,gBAAgB,UAAU,MAAM,QAAQ,SAAS,GAAG,WAAW,IAAI,QAAQ,UAAU,aAAa,EAAE,OAAO,IAAI,cAAc,OAAO,UAAU,2BAA2B,EAAE,SAASC,CAAS,CAAC,EAAEK,GAAoB,gBAAM,QAAQ,CAAC,QAAQqB,EAAQ,MAAMJ,GAAW,SAAS,CAACjB,EAAMS,GAAuB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM,UAAU,kBAAkB,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAe,gBAAK,QAAQ,CAAC,SAAS;mBACprBY,EAAQ;+CACoBb,GAAmBG,EAAc,eAAeA,EAAc,eAAed,GAAWkB,EAAY,UAAUA,EAAY,UAAU9I,EAAMmI,EAAY,WAAW,UAAUA,EAAY,kBAAkB,UAAU;;mBAE/OiB,EAAQ;6BACExB,GAAWkB,EAAY,iBAAiBA,EAAY,iBAAiBX,EAAY,kBAAkB,UAAU;+CAC3FP,GAAWkB,EAAY,iBAAiBA,EAAY,iBAAiBX,EAAY,kBAAkB,UAAU;kCAC1HD,EAAuB;;;mBAGtCkB,EAAQ;mBACRA,EAAQ;mBACRA,EAAQ;mBACRA,EAAQ;mBACRA,EAAQ;mBACRA,EAAQ;mBACRA,EAAQ;mBACRA,EAAQ;uDAC4BjB,EAAY,iBAAiB,UAAU;+CAC/CA,EAAY,iBAAiB,UAAU;+CACvCA,EAAY,WAAW,UAAU;mCAC7CA,EAAY,WAAW,UAAU;;;aAGvD,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,MAAM,EAAE,SAAS,CAAc,gBAAK,QAAQ,CAAC,GAAGiB,EAAQ,KAAK,OAAY,OAAK,MAAMpJ,GAAO,GAAG,SAAS,GAAGqJ,GAAa,EAAE,OAAO,KAAK,EAAE,WAAW,CAACxB,EAAa,EAAK,EAAEyB,GAAW,CAAE,EAAE,YAAYzB,EAAa,EAAI,EAAc,cAAY,SAASL,EAAoB,WAAS,eAAe,OAAO,UAAUJ,IAAiB,YAAYjH,EAAUA,EAAU,IAAA,GAAU,QAAQiH,IAAiB,WAAW/G,EAAQA,EAAQ,IAAA,GAAU,MAAMwI,CAAU,CAAC,EAAEF,IAAoC,gBAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,eAAe,GAAG,IAAI,MAAM,UAAU,mBAAmB,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,MAAMD,EAAc,WAAWA,EAAc,gBAAgB,UAAU,cAAc,OAAO,MAAM,GAAG,OAAO,EAAE,EAAE,SAASrC,GAAW,CAAC,SAASqC,EAAc,SAAS,WAAWA,EAAc,WAAW,YAAYvC,EAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAErI,IAAQiL,GAAWhM,GAAO,kBAA+B,gBAAM,MAAM,CAAC,MAAM,CAAC,GAAGkM,GAAW,QAAQ,OAAO,WAAW,SAAS,cAAc,YAAY,IAAI,CAAC,EAAE,SAAS,CAAc,gBAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,MAAM,GAAG,OAAO,EAAE,EAAE,SAAS5C,GAAW,CAAC,SAAS6C,EAAY,SAAS,WAAWA,EAAY,WAAW,YAAY9C,EAAS,CAAC,CAAC,CAAC,EAAEtI,CAAK,CAAC,CAAC,EAAE8K,IAAiC,gBAAK,MAAM,CAAC,MAAM,CAAC,GAAGO,CAAY,EAAE,SAASlB,CAAc,CAAC,CAAC,CAAC,CAAC,CAAE,C,2EACj6CjM,EAAoBiL,GAAY,CAChC,KAAK,CAAC,KAAK7K,EAAY,OAAO,MAAM,OAAO,aAAa,OAAO,YAAY,wFAAwF,YAAY,YAAY,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,aAAa,OAAO,YAAY,mCAAmC,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,aAAa,iBAAiB,YAAY,mCAAmC,EAAE,SAAS,CAAC,KAAKA,EAAY,QAAQ,MAAM,WAAW,aAAa,EAAK,EAE7f,WAAW,CAAC,KAAKA,EAAY,OAAO,YAAY,aAAa,SAAS,GAAK,SAASwJ,EAAmB,EACvG,QAAQR,EAAqB,CAAC,YAAY,CAAC,KAAKhJ,EAAY,OAAO,YAAY,QAAQ,SAAS,GAAK,SAAS,CAAC,GAAGyJ,GAA0B,iBAAiB,CAAC,KAAKzJ,EAAY,MAAM,WAAW,EAAI,CAAC,CAAC,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,YAAY,QAAQ,SAAS,GAAK,SAAS0J,CAAoB,EAAE,YAAY,CAAC,KAAK1J,EAAY,OAAO,YAAY,QAAQ,SAAS,GAAK,SAAS2J,EAAoB,EAAE,cAAc,CAAC,KAAK3J,EAAY,OAAO,YAAY,UAAU,SAAS,GAAK,SAAS4J,EAAsB,EAAE,YAAY,CAAC,KAAK5J,EAAY,OAAO,YAAY,QAAQ,SAAS,GAAK,SAAS6J,CAAoB,CAAC,CAAC,EACtmB,OAAOZ,EAAgB,YAAY,CAAC,GAAGI,GAAsB,OAAO,GAAO,CAACxE,EAAM,QAAQA,EAAM,OAAO,SAAS,CAAC,EAAE,aAAa,CAAC,GAAGyE,EAAuB,OAAO,GAAO,CAACzE,EAAM,QAAQA,EAAM,OAAO,SAAS,CAAC,EAC/M,GAAG0E,CAAoB,CAAC,C"}