{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/Abn1BxztlEpluryVzvSb/42NLuG4DmlZKDumkdHqB/lUX5EzJM6.js"],
  "sourcesContent": ["// Generated by Framer (5da54f8)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Embed from\"https://framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/Xr8CO3Ul8Gb7lVfgMKTh/Embed.js\";const EmbedFonts=getFonts(Embed);const serializationHash=\"framer-Wi0Gk\";const variantClassNames={q5n1koyjs:\"framer-v-1uzypyn\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"q5n1koyjs\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1uzypyn\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"q5n1koyjs\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1wtn9y-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"r70hAVJJR-container\",nodeId:\"r70hAVJJR\",rendersWithMotion:true,scopeId:\"lUX5EzJM6\",children:/*#__PURE__*/_jsx(Embed,{height:\"100%\",html:\"<link rel=\\\"stylesheet\\\" href=\\\"https://cdn.jsdelivr.net/npm/intl-tel-input@25.3.1/build/css/intlTelInput.css\\\">\\n<link rel=\\\"stylesheet\\\"\\n  href=\\\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,1,0\\\" />\\n\\n<head>\\n  <meta charset=\\\"utf-8\\\">\\n</head>\\n\\n<style>\\n  @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');\\n</style>\\n\\n<style>\\n  /* Begin: Configuration CSS */\\n  h1,\\n  h2,\\n  h3,\\n  h4,\\n  p,\\n  label,\\n  button,\\n  li {\\n    font-family: \\\"DM Sans\\\", sans-serif;\\n  }\\n\\n  p,\\n  label,\\n  button,\\n  li,\\n  input {\\n    font-size: 16px;\\n  }\\n\\n  a {\\n    cursor: pointer;\\n  }\\n\\n  .d-none {\\n    display: none !important;\\n  }\\n\\n  input.invalid {\\n    border: 1px solid #ED5665 !important;\\n  }\\n\\n  .btn {\\n    background-color: transparent;\\n    border: none;\\n    cursor: pointer;\\n  }\\n\\n  [class^=\\\"icon-\\\"],\\n  [class*=\\\" icon-\\\"] {\\n    font-style: normal;\\n    display: inline-block;\\n    font-size: 20px;\\n  }\\n\\n  .icon-times::before {\\n    content: \\\"\\\\2715\\\";\\n  }\\n\\n  div[data-framer-name=\\\"Modal\\\"] {\\n    scrollbar-width: none;\\n    -ms-overflow-style: none;\\n  }\\n\\n  div[data-framer-name=\\\"Modal\\\"]::-webkit-scrollbar {\\n    display: none;\\n  }\\n\\n  @keyframes active-fill {\\n    from {\\n      background-color: #E5E7EB;\\n    }\\n\\n    to {\\n      background-color: #FFB612;\\n    }\\n  }\\n\\n  @keyframes loading-spinner {\\n    from {\\n      transform: rotate(0turn);\\n    }\\n\\n    to {\\n      transform: rotate(1turn);\\n    }\\n  }\\n\\n  /* End: Configuration CSS */\\n\\n\\n  /* Begin: Background modal */\\n  #background-modal {\\n    width: 100%;\\n    height: 100%;\\n    position: fixed;\\n    z-index: 200 !important;\\n    overflow: hidden !important;\\n  }\\n\\n  /* End: Background modal */\\n\\n  /* Begin: Modal */\\n  #modal {\\n    position: relative;\\n    width: 100%;\\n    padding: 32px 24px;\\n    max-width: 472px;\\n    min-height: 330px;\\n    z-index: 20;\\n    overflow: hidden;\\n    background-color: white;\\n    margin: 0 auto;\\n    border-radius: 8px;\\n  }\\n\\n  /* End: Modal */\\n\\n  /* Begin: Modal title */\\n  h2.title {\\n    font-weight: 900;\\n    font-size: 24px;\\n    line-height: 32px;\\n    text-align: center;\\n    vertical-align: middle;\\n  }\\n\\n  /* End: Modal title */\\n\\n  /* Begin: Subtitle section */\\n  div.subtitle-section {\\n    padding: 8px 0;\\n  }\\n\\n  p.subtitle {\\n    font-weight: 400;\\n    font-size: 16px;\\n    line-height: 120%;\\n    text-align: center;\\n    vertical-align: middle;\\n  }\\n\\n  /* End: Subtitle section */\\n\\n  /* Begin: Steps section */\\n  div.steps-section {\\n    margin: 16px 0;\\n  }\\n\\n  div.steps-block {\\n    display: flex;\\n    justify-content: space-between;\\n  }\\n\\n  div.steps {\\n    height: 10px;\\n    background-color: #E5E7EB;\\n    min-width: 20px;\\n    border-radius: 25px;\\n    flex-grow: 1;\\n  }\\n\\n  div.steps+div.steps {\\n    margin-left: 8px;\\n  }\\n\\n  div.steps.active {\\n    background-color: #FFB612;\\n    animation: active-fill 1s ease;\\n  }\\n\\n  p.step-count {\\n    margin: 4px;\\n  }\\n\\n  /* End: Steps section */\\n\\n  /* Begin: Validation section */\\n  div.validations-secion {}\\n\\n  div.dialog {\\n    display: flex;\\n    align-items: center;\\n    justify-content: space-between;\\n    border-radius: 8px;\\n    font-weight: 400;\\n    font-size: 16px;\\n    line-height: 24px;\\n    vertical-align: middle;\\n    padding: 16px;\\n    margin: 4px 0;\\n  }\\n\\n  div.dialog a {\\n    color: #FFB612;\\n    text-decoration: underline;\\n    font-weight: bold;\\n  }\\n\\n  div.dialog p {\\n    margin: 0 16px 0 0;\\n  }\\n\\n  div.alert-dialog {\\n    background-color: #C1414D;\\n    border: 1px solid #ED5665;\\n    color: #FFFFFF;\\n  }\\n\\n  div.alert-dialog button.btn-dismiss {\\n    color: #FFF;\\n  }\\n\\n  div.warning-dialog {\\n    background-color: #FDF5ED;\\n    border: 1px solid #E88D35;\\n    color: #000;\\n  }\\n\\n  div.warning-dialog button.btn-dismiss {\\n    color: #000;\\n  }\\n\\n  /* End: Validation section */\\n\\n  /* Begin: Forms sections */\\n  div.form-group {\\n    margin: 16px 0;\\n  }\\n\\n  div.form-group label {\\n    font-weight: 900;\\n    font-size: 16px;\\n    line-height: 24px;\\n  }\\n\\n  div.form-group input {\\n    width: 100%;\\n    height: 48px;\\n    border: 1px solid #9F9FA7;\\n    border-radius: 4px;\\n    padding-top: 12px;\\n    padding-right: 16px;\\n    padding-bottom: 12px;\\n    padding-left: 16px;\\n  }\\n\\n  div.form-group input::placeholder {\\n    color: #0101147A;\\n  }\\n\\n  div.submit-section {\\n    margin: 16px 0 0 0;\\n  }\\n\\n  button.submit-button {\\n    width: 100%;\\n    height: 40;\\n    color: black;\\n    padding: 8px 0;\\n    border-radius: 200px;\\n    border-color: #FFB612;\\n    border: none;\\n    padding-right: 16px;\\n    padding-left: 16px;\\n    font-weight: 900;\\n    font-size: 16px;\\n    line-height: 24px;\\n    text-align: center;\\n    background-color: #FFB612;\\n    cursor: pointer;\\n  }\\n\\n  /* End: Forms sections */\\n\\n  /* Begin: Loading component */\\n  div.loading::after {\\n    content: '';\\n    width: 100%;\\n    height: 100%;\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    display: block;\\n    z-index: 200;\\n    background-color: rgba(0, 0, 0, 0.5)\\n  }\\n\\n  div.loading::before {\\n    content: \\\"\\\";\\n    position: absolute;\\n    width: 40px;\\n    height: 40px;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n    margin: auto;\\n    border: 4px solid transparent;\\n    border-top-color: #FBB73C;\\n    border-right-color: #FBB73C;\\n    border-radius: 50%;\\n    animation: loading-spinner 1s linear infinite;\\n    z-index: 201;\\n  }\\n\\n  /* End: Loading component */\\n\\n  /* Begin: Product component */\\n  div.product+div.product {\\n    margin-top: 16px;\\n  }\\n\\n  div.product p {\\n    margin: 4px;\\n  }\\n\\n  div.product-info {\\n    display: flex;\\n    justify-content: space-between;\\n  }\\n\\n  div.product-info p {\\n    font-weight: bold;\\n  }\\n\\n  div.product-benefits ul {\\n    padding-left: 24px;\\n    font-size: 16px;\\n  }\\n\\n  div.product-fidelity p {\\n    font-weight: 700;\\n    font-size: 16px;\\n    line-height: 18px;\\n  }\\n\\n  /* End: Product component */\\n\\n  /* Begin: checkout step */\\n  #checkout-step,\\n  #booking-step {\\n    display: flex;\\n    flex-direction: column;\\n    justify-content: center;\\n    align-items: center;\\n    margin-top: 32px;\\n  }\\n\\n  #checkout-step h3,\\n  #booking-step h3 {\\n    font-weight: 900;\\n    font-size: 20px;\\n    line-height: 32px;\\n    text-align: center;\\n    vertical-align: middle;\\n    margin: 16px;\\n  }\\n\\n  #checkout-step i,\\n  #booking-step i {\\n    text-align: center;\\n    font-size: 40px;\\n    color: #1E8654;\\n  }\\n\\n  #checkout-step p,\\n  #booking-step p {\\n    font-weight: 400;\\n    line-height: 24px;\\n    text-align: center;\\n    vertical-align: middle;\\n    margin: 0;\\n  }\\n\\n  /* End: checkout step */\\n\\n  /* Begin: intlTelInput */\\n  .iti {\\n    width: 100%;\\n  }\\n\\n  /* End: intlTelInput */\\n</style>\\n\\n<div id=\\\"background-modal\\\">\\n  <div id=\\\"modal\\\" class=\\\"\\\">\\n    <h2 class=\\\"title\\\">Smart Fit Coach</h2>\\n    <div class=\\\"subtitle-section\\\">\\n      <p id=\\\"first-subtitle-step\\\" class=\\\"subtitle first-step\\\">\\n        \\xa1Ey! Estamos entusiasmados por ayudarte a comenzar tu\\n        viaje de fitness. Primero, cu\\xe9ntanos un poco sobre ti:\\n      </p>\\n      <p id=\\\"second-subtitle-step\\\" class=\\\"subtitle second-step d-none\\\">\\n        \\xa1Genial, <b id=\\\"user-name\\\">nombre de usuario</b>!\\n        Para continuar con tu registro, necesito confirmar:\\n      </p>\\n      <p id=\\\"third-subtitle-step\\\" class=\\\"subtitle third-step d-none\\\">\\n        \\xa1Est\\xe1s a un paso de disfrutar todos los beneficios de Smart Fit Coach!\\n      </p>\\n    </div>\\n    <div class=\\\"steps-section\\\">\\n      <div class=\\\"steps-block\\\">\\n        <div id=\\\"first-step\\\" class=\\\"steps first-step active\\\"></div>\\n        <div id=\\\"second-step\\\" class=\\\"steps second-step\\\"></div>\\n        <div id=\\\"third-step\\\" class=\\\"steps third-step\\\"></div>\\n      </div>\\n      <p class=\\\"step-count\\\">Paso <span id=\\\"step-number\\\">1</span> de 3</p>\\n    </div>\\n\\n    <!-- Begin: Validation messages -->\\n    <div class=\\\"validations-section\\\"></div>\\n    <!-- End: Validation messages -->\\n\\n    <!-- Begin: First form step -->\\n    <div id=\\\"first-form-step\\\" class=\\\"\\\">\\n      <div class=\\\"form-group\\\">\\n        <label>Nombre</label>\\n        <input type=\\\"text\\\" name=\\\"name\\\" placeholder=\\\"Ingresa tu nombre\\\" onchange=\\\"removeInvalidClass(this)\\\" required />\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label>E-mail</label>\\n        <input type=\\\"email\\\" name=\\\"email\\\" placeholder=\\\"Tu mejor e-mail\\\" onchange=\\\"removeInvalidClass(this)\\\"\\n          required />\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label>WhatsApp</label>\\n        <input type=\\\"text\\\" name=\\\"phonenumber\\\" onchange=\\\"removeInvalidClass(this)\\\" required inputmode=\\\"numeric\\\"\\n          pattern=\\\"[0-9]*\\\" />\\n      </div>\\n      <div class=\\\"submit-section\\\">\\n        <button class=\\\"submit-button\\\" onclick=\\\"showSecondStep()\\\">Continuar</button>\\n      </div>\\n    </div>\\n    <!-- End: First form step -->\\n\\n    <!-- Begin: Second form step -->\\n    <div id=\\\"second-form-step\\\" class=\\\"d-none\\\">\\n      <div class=\\\"form-group\\\">\\n        <label>RUT</label>\\n        <input type=\\\"text\\\" name=\\\"document\\\" placeholder=\\\"Ingresa tu RUT\\\" onchange=\\\"removeInvalidClass(this)\\\"\\n          maxlength=\\\"20\\\" />\\n      </div>\\n\\n      <div class=\\\"form-group\\\">\\n        <label>Fecha de nascimiento</label>\\n        <input type=\\\"text\\\" name=\\\"birthday\\\" placeholder=\\\"20/12/1984\\\" onchange=\\\"removeInvalidClass(this)\\\"\\n          inputmode=\\\"numeric\\\" pattern=\\\"[0-9]*\\\" />\\n      </div>\\n\\n      <div class=\\\"submit-section\\\">\\n        <button class=\\\"submit-button\\\" onclick=\\\"handleVerifyUser()\\\">Continuar</button>\\n      </div>\\n    </div>\\n    <!-- End: Second form step -->\\n\\n    <!-- Begin: Third form step -->\\n    <div id=\\\"third-form-step\\\" class=\\\"d-none\\\">\\n    </div>\\n    <!-- End: Third form step -->\\n\\n    <!-- Begin: Checkout step -->\\n    <div id=\\\"checkout-step\\\" class=\\\"d-none\\\">\\n      <h3>\\xa1Notamos que a\\xfan no eres cliente de Smart!</h3>\\n      <p>\\xa1Qu\\xe9 bueno verte por aqu\\xed! \uD83D\uDE4C<br />\\n        \\xa1Vamos a llevarte a nuestro registro general rapidito!\\n      </p>\\n    </div>\\n    <!-- End: Checkout step -->\\n\\n    <!-- Begin: Booking step -->\\n    <div id=\\\"booking-step\\\" class=\\\"d-none\\\">\\n      <i class=\\\"material-symbols-outlined\\\">\\n        check_circle\\n      </i>\\n      <h3>\\xa1Compra finalizada!</h3>\\n      <p>\\xa1Smart Fit Coach ha sido a\\xf1adido a tu plan!<br />\\n        Prep\\xe1rate para comenzar tu jornada fitness.</p>\\n    </div>\\n    <!-- End: Booking step -->\\n  </div>\\n</div>\\n\\n<script src=\\\"https://cdn.jsdelivr.net/npm/intl-tel-input@25.3.1/build/js/intlTelInput.min.js\\\"></script>\\n\\n<script>\\n  // TODO: add GA events\\n  // TODO: add make integration\\n\\n  // Form fields\\n  let userName = '';\\n  let email = '';\\n  let phoneNumber = '';\\n  let userDocument = '';\\n  let birthday = '';\\n\\n  // Config fields\\n  const locale = 'es-CL';\\n  const addons = [{\\n    addonCode: 'coach_online_1consulta_mes',\\n    name: 'Smart Fit Coach',\\n    price: 11900,\\n    benefits: [\\n      'Entrenamiento 100% personalizado dise\\xf1ado por tu profesor online;',\\n      '12 sesiones de seguimiento;',\\n      'Chat ilimitado para resolver todas tus dudas.'\\n    ],\\n    fidelity: '12 meses'\\n  }];\\n  const baseURL = 'https://smartfit-coach.smartfit.com.br';\\n  const makeURL = 'https://hook.us2.make.com/mp6pmb3kdoroeosuyjb3gujyawk52ii6';\\n  const currencyFormatter = new Intl.NumberFormat(\\\"es-CL\\\", { style: \\\"currency\\\", currency: \\\"CLP\\\", maximumFractionDigits: 0 });\\n\\n  // Show second step\\n  let logSent = false;\\n  const showSecondStep = () => {\\n    // Validate first step\\n    if (!validateFirstStep()) return\\n\\n    if (!logSent) {\\n      // Log to Make integration\\n      sendWebhookLog({\\n        action: 'init_lead_coach',\\n        status: 'success',\\n        http_status: null,\\n        api_response: null\\n      });\\n\\n      // GTM Event\\n      tagManager('leadCoachEvent', locale, addons[0].price, addons[0].addonCode, userInfo.ip, userInfo.city, userInfo.region, phoneNumber);\\n\\n      // Set logSent to true to avoid duplicate logs\\n      logSent = true;\\n    }\\n\\n    // Subtitle elements\\n    hideElement('#first-subtitle-step');\\n    showElement('#second-subtitle-step');\\n    hideElement('#third-subtitle-step');\\n    setUserNameElement(userName);\\n\\n    // Steps elements\\n    setStepActive('#first-step');\\n    setStepActive('#second-step');\\n    setStepInactive('#third-step');\\n    setStepNumber(2);\\n\\n    // Form elements\\n    hideElement('#first-form-step');\\n    showElement('#second-form-step');\\n    hideElement('#third-form-step');\\n    hideElement('#checkout-step');\\n    hideElement('#booking-step');\\n  }\\n\\n  // Validate first step\\n  const validateFirstStep = () => {\\n    closeAllDialogs();\\n\\n    const userNameElement = document.querySelector(\\\"input[name='name']\\\");\\n    userName = userNameElement.value;\\n    if (!userName || userName === '') {\\n      userNameElement.classList.add('invalid');\\n      showDialog('Por favor, ingresa tu nombre.', 'warning');\\n\\n      return false;\\n    }\\n\\n    const emailElement = document.querySelector(\\\"input[name='email']\\\");\\n    email = emailElement.value\\n    if (!email || email === '') {\\n      emailElement.classList.add('invalid');\\n      showDialog('Por favor, preencha o seu e-mail.', 'warning');\\n\\n      return false;\\n    }\\n\\n    const phoneNumberElement = document.querySelector(\\\"input[name='phonenumber']\\\");\\n    phoneNumber = window.phoneNumber.getNumber();\\n    if (!phoneNumber || phoneNumber === '') {\\n      phoneNumberElement.classList.add('invalid');\\n      showDialog('Por favor, ingresa tu WhatsApp.', 'warning');\\n\\n      return false;\\n    }\\n\\n    if (!window.phoneNumber.isValidNumber()) {\\n      phoneNumberElement.classList.add('invalid');\\n      showDialog('Por favor, ingresa un WhatsApp v\\xe1lido.', 'warning');\\n\\n      return false;\\n    }\\n\\n    return true;\\n  }\\n\\n  // Handle verify user\\n  const handleVerifyUser = async () => {\\n    // Close all dialogs\\n    closeAllDialogs();\\n\\n    // Show loading element\\n    const modalElement = document.querySelector('#modal');\\n    modalElement.classList.add('loading');\\n\\n    // Validate second step inputs\\n    if (!validateSecondStep()) {\\n      modalElement.classList.remove('loading');\\n\\n      return;\\n    }\\n\\n    const resultValidation = await validateWithBackend();\\n    if (!resultValidation) {\\n      modalElement.classList.remove('loading');\\n\\n      // Log to Make integration\\n      sendWebhookLog({\\n        action: 'verify_coach_lead',\\n        status: 'error',\\n        error_type: 'unexpected_error',\\n        http_status: null,\\n        api_response: null\\n      });\\n\\n      return;\\n    }\\n\\n    // Log to Make integration\\n    sendWebhookLog({\\n      action: 'verify_coach_lead',\\n      status: resultValidation === 'checkout' ? 'error' : 'success',\\n      http_status: null,\\n      api_response: resultValidation\\n    });\\n\\n    if (resultValidation === 'purchase') {\\n      showThirdStep();\\n    } else if (resultValidation === 'booking') {\\n      showBookingStep();\\n    } else if (resultValidation === 'checkout') {\\n      showCheckoutStep();\\n    }\\n\\n    modalElement.classList.remove('loading');\\n  }\\n\\n  // Validate second step\\n  const validateSecondStep = () => {\\n    const userDocumentElement = document.querySelector(\\\"input[name='document']\\\");\\n    userDocument = userDocumentElement.value;\\n    if (!userDocument || userDocument === '') {\\n      userDocumentElement.classList.add('invalid');\\n      showDialog('Por favor, ingresa tu documento.', 'warning');\\n\\n      return false;\\n    }\\n\\n    const birthdayElement = document.querySelector(\\\"input[name='birthday']\\\");\\n    birthday = birthdayElement.value;\\n    if (!birthday || birthday === '') {\\n      birthdayElement.classList.add('invalid');\\n      showDialog('Por favor, ingresa tu fecha de nacimiento.', 'warning');\\n\\n      return false;\\n    }\\n\\n    birthday = castBirthdayValue(birthday);\\n    if (!birthday || !validateBirthday(birthday)) {\\n      birthdayElement.classList.add('invalid');\\n      showDialog('Por favor, ingresa una fecha de nacimiento v\\xe1lida.', 'warning');\\n\\n      return false;\\n    }\\n\\n    return true;\\n  }\\n\\n  // Validate with backend\\n  const validateWithBackend = async () => {\\n    const configs = {\\n      method: \\\"POST\\\",\\n      headers: {\\n        \\\"Content-Type\\\": \\\"application/json\\\",\\n        \\\"Accept-Language\\\": locale\\n      },\\n      body: JSON.stringify({ document: userDocument }),\\n    };\\n\\n    try {\\n      const response = await fetch(\\n        `${baseURL}/api/v1/one_buy_click/verify_user`,\\n        configs\\n      );\\n\\n      const data = await response.json();\\n\\n      if (data.next_hop === 'error') {\\n        showDialog('Ocurri\\xf3 un error, por favor intenta nuevamente m\\xe1s tarde.', 'alert');\\n\\n        return false;\\n      }\\n\\n      return data.next_hop;\\n    } catch (error) {\\n      showDialog('Ha ocurrido un error, por favor intenta nuevamente m\\xe1s tarde.', 'alert');\\n\\n      return false;\\n    }\\n\\n    return true\\n  }\\n\\n  // Show third step\\n  const showThirdStep = () => {\\n    // Subtitle elements\\n    hideElement('#first-subtitle-step');\\n    hideElement('#second-subtitle-step');\\n    showElement('#third-subtitle-step');\\n\\n    // Steps elements\\n    setStepActive('#first-step');\\n    setStepActive('#second-step');\\n    setStepActive('#third-step');\\n    setStepNumber(3);\\n\\n    // Form elements\\n    hideElement('#first-form-step');\\n    hideElement('#second-form-step');\\n    showElement('#third-form-step');\\n    hideElement('#checkout-step');\\n    hideElement('#booking-step');\\n  }\\n\\n  // Handle purchase\\n  const handlePurchase = async (addonCode) => {\\n    // Close all dialogs\\n    closeAllDialogs();\\n\\n    // Show loading element\\n    const modalElement = document.querySelector('#modal');\\n    modalElement.classList.add('loading');\\n\\n    const configs = {\\n      method: \\\"POST\\\",\\n      headers: {\\n        \\\"Content-Type\\\": \\\"application/json\\\",\\n        \\\"Accept-Language\\\": locale\\n      },\\n      body: JSON.stringify({\\n        document: userDocument,\\n        birthday: birthday.toISOString().split('T')[0],\\n        addon_code: addonCode,\\n      }),\\n    };\\n\\n    try {\\n      const response = await fetch(`${baseURL}/api/v1/one_buy_click/purchase`, configs);\\n\\n      if (response.status === 500) {\\n        // Log Make integration\\n        sendWebhookLog({\\n          action: 'purchase',\\n          status: 'error',\\n          error_type: 'user_not_found',\\n          http_status: response.status,\\n          api_response: null\\n        });\\n\\n        showDialog('No se pudo completar la compra. Verifica si ya est\\xe1s inscrito en SmartFit o dir\\xedgete a la recepci\\xf3n de tu unidad.', 'alert');\\n      } else {\\n        const data = await response.json();\\n\\n        // Log Make integration\\n        sendWebhookLog({\\n          action: 'purchase',\\n          status: data.success ? 'success' : 'error',\\n          error_type: data.error || null,\\n          http_status: response.status,\\n          api_response: data\\n        });\\n\\n        if (data.error) {\\n          let errorMessage = \\\"\\\";\\n\\n          if (data.error === 'fail_validate') {\\n            showDialog(\\\"La fecha de nacimiento ingresada es incorrecta. <a onclick='showSecondStep()'>Volver</a>\\\", 'warning');\\n          } else {\\n            showDialog('Vaya... no estamos pudiendo procesar la informaci\\xf3n. Puedes esperar un momento o <a href=\\\"https://api.whatsapp.com/send?phone=5511997451333\\\" target=\\\"_blank\\\">hacer clic aqu\\xed</a> para hablar con nuestro equipo.', 'alert');\\n          }\\n        }\\n\\n        if (data.success) {\\n          // GTM Event\\n          tagManager('purchaseCoach', locale, addons[0].price, addons[0].addonCode, userInfo.ip, userInfo.city, userInfo.region, phoneNumber);\\n\\n          showBookingStep();\\n        }\\n      }\\n    } catch (error) {\\n      // Log Make integration\\n      await sendWebhookLog({\\n        action: 'purchase',\\n        status: 'error',\\n        error_type: 'unexpected_error',\\n        http_status: null,\\n        api_response: null\\n      });\\n\\n      showDialog('Vaya... no podemos procesar la informaci\\xf3n. Puedes esperar un momento o <a href=\\\"https://api.whatsapp.com/send?phone=5511997451333\\\" target=\\\"_blank\\\">hacer clic aqu\\xed</a> para hablar con nuestro equipo.', 'alert');\\n      modalElement.classList.remove('loading');\\n    } finally {\\n      modalElement.classList.remove('loading');\\n    }\\n  }\\n\\n  // Show checkout step\\n  const showCheckoutStep = () => {\\n    // Title elements\\n    hideElement('.title');\\n\\n    // Subtitle elements\\n    hideElement('.subtitle-section');\\n\\n    // Steps elements\\n    hideElement('.steps-section');\\n\\n    // Form elements\\n    hideElement('#first-form-step');\\n    hideElement('#second-form-step');\\n    hideElement('#third-form-step');\\n    showElement('#checkout-step');\\n    hideElement('#booking-step');\\n\\n    // Add delay to open the URL\\n    setTimeout(() => {\\n      window.top.open(`https://www.smartfit.com.br/checkout/digital/${addons[0].addonCode}`, '_parent');\\n    }, 2000);\\n  }\\n\\n  // Show booking step\\n  const showBookingStep = () => {\\n    // Subtitle elements\\n    hideElement('#first-subtitle-step');\\n    hideElement('#second-subtitle-step');\\n    hideElement('#third-subtitle-step');\\n\\n    // Steps elements\\n    hideElement('.steps-section');\\n\\n    // Form elements\\n    hideElement('#first-form-step');\\n    hideElement('#second-form-step');\\n    hideElement('#third-form-step');\\n    hideElement('#checkout-step');\\n    showElement('#booking-step');\\n\\n    // Add delay to open the URL\\n    setTimeout(() => {\\n      window.top.open(\\\"https://coach.smartfit.com/cl/gracias/\\\", '_parent');\\n    }, 2000);\\n  }\\n\\n  // Load addons\\n  const loadAddons = () => {\\n    const addonsContainer = document.querySelector('#third-form-step');\\n\\n    addons.forEach(element => {\\n      const productElement = `\\n        <div class=\\\"product\\\">\\n          <p>Detalles del plan:</p>\\n          <div class=\\\"product-info\\\">\\n            <p>${element.name}</p>\\n            <p>${currencyFormatter.format(element.price)}/mes</p>\\n          </div>\\n          <div class=\\\"product-benefits\\\">\\n            <ul>\\n              ${element.benefits.map(benefit => `<li>${benefit}</li>`).join('')}\\n            </ul>\\n          </div>\\n          <div class=\\\"product-fidelity\\\">\\n            <p>Per\\xedodo de fidelidade: ${element.fidelity}</p>\\n          </div>\\n\\n          <div class=\\\"submit-section\\\">\\n            <button class=\\\"submit-button\\\" onclick=\\\"handlePurchase('${element.addonCode}')\\\">A\\xf1adir al plan</button>\\n          </div>\\n\\n        </div>\\n      `\\n\\n      addonsContainer.innerHTML += productElement;\\n    });\\n  }\\n\\n  /** Helper functions **/\\n\\n  // Hide HTML Elements\\n  const hideElement = (elementId) => {\\n    document.querySelector(elementId).classList.add('d-none');\\n  }\\n\\n  // Show HTML Elements\\n  const showElement = (elementId) => {\\n    document.querySelector(elementId).classList.remove('d-none');\\n  }\\n\\n  // Mark step HTML element as active\\n  const setStepActive = (stepId) => {\\n    document.querySelector(stepId).classList.add('active');\\n  }\\n\\n  // Mark step HTML element as inactive\\n  const setStepInactive = (stepId) => {\\n    document.querySelector(stepId).classList.remove('active');\\n  }\\n\\n  // Set username into HTML text\\n  const setUserNameElement = (userName) => {\\n    document.querySelector('#user-name').innerHTML = userName;\\n  }\\n\\n  // Change step number in HTML text\\n  const setStepNumber = (stepCount) => {\\n    document.querySelector('#step-number').innerHTML = stepCount;\\n  }\\n\\n  // Remove HTML invalid class\\n  const removeInvalidClass = (element) => {\\n    element.classList.remove('invalid');\\n  }\\n\\n  // Show dialog HTML element\\n  const showDialog = (message, dialogType) => {\\n    const containerElement = document.querySelector('.validations-section');\\n\\n    const elementDialog = `\\n      <div class=\\\"dialog ${dialogType}-dialog\\\">\\n        <p>${message}</p>\\n        <button type=\\\"button\\\" class=\\\"btn btn-dismiss\\\" onclick=\\\"closeDialog(this)\\\"><i class=\\\"icon-times\\\"></i></button>\\n      </div>\\n    `\\n\\n    containerElement.innerHTML += elementDialog;\\n  }\\n\\n  // Close dialog HTML element\\n  const closeDialog = (element) => {\\n    element.closest('div.dialog').remove();\\n  }\\n\\n  // Close all dialogs HTML element\\n  const closeAllDialogs = () => {\\n    let dialog = document.querySelector('.dialog');\\n    while (dialog) {\\n      dialog.remove()\\n\\n      dialog = document.querySelector('.dialog');\\n    }\\n  }\\n\\n  // Get birthday value from input field\\n  const castBirthdayValue = (birthdayValue) => {\\n    try {\\n      if (birthdayValue.length !== 10) return null\\n\\n      let birthdaySplit = birthdayValue.split('/');\\n\\n      return new Date(`${birthdaySplit[2]}-${birthdaySplit[1]}-${birthdaySplit[0]}`);\\n    } catch (e) {\\n      return null;\\n    }\\n  }\\n\\n  // Validate birthday value\\n  const validateBirthday = (birthdayValue) => {\\n    if (!birthdayValue) return false;\\n\\n    const today = new Date();\\n    const minDate = new Date('1900-01-01');\\n\\n    if (birthdayValue > today || birthdayValue < minDate) return false;\\n\\n    const age = today.getFullYear() - birthdayValue.getFullYear();\\n    const monthDiff = today.getMonth() - birthdayValue.getMonth();\\n\\n    if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthdayValue.getDate())) {\\n      return age - 1 >= 14;\\n    }\\n\\n    return age >= 14;\\n  };\\n\\n  // Fields masks\\n  const masks = {\\n    userDocument: (value) => {\\n      return value\\n        .replace(/\\\\W/g, '');\\n    },\\n    birthday: (value) => {\\n      value = value.replace(/\\\\D/g, \\\"\\\");\\n\\n      if (value.length >= 2) {\\n        let day = parseInt(value.substring(0, 2), 10);\\n        if (day < 1) day = 1;\\n        if (day > 31) day = 31;\\n        value = day.toString().padStart(2, \\\"0\\\") + value.substring(2);\\n      }\\n\\n      if (value.length >= 4) {\\n        let month = parseInt(value.substring(2, 4), 10);\\n        if (month < 1) month = 1;\\n        if (month > 12) month = 12;\\n        value = value.substring(0, 2) + month.toString().padStart(2, \\\"0\\\") + value.substring(4);\\n      }\\n\\n      return value\\n        .replace(/(\\\\d{2})(\\\\d)/, \\\"$1/$2\\\")\\n        .replace(/(\\\\d{2})(\\\\d)/, \\\"$1/$2\\\")\\n        .replace(/(\\\\/\\\\d{4})\\\\d+?$/, \\\"$1\\\");\\n    }\\n  }\\n\\n  // Add field mask to document input\\n  document.querySelector(\\\"input[name='document']\\\").addEventListener('input', (e) => {\\n    e.target.value = masks.userDocument(e.target.value)\\n  })\\n\\n  // Add field mask to birthday input\\n  document.querySelector(\\\"input[name='birthday']\\\").addEventListener('input', (e) => {\\n    e.target.value = masks.birthday(e.target.value);\\n  });\\n\\n  /* Analytics data */\\n\\n  // Tag manager (GTM)\\n  const tagManager = (event, country, ticket, offerCode, ip, city, state, phoneNumber) => {\\n    const dataObject = {\\n      event: event,\\n      country: country,\\n      ticket: ticket,\\n      offerCode: offerCode,\\n      ip: ip,\\n      city: city,\\n      state: state,\\n      phoneNumber: phoneNumber\\n    }\\n\\n    // console.log('GTM dataLayer:', dataObject);\\n\\n    window.parent.postMessage({\\n      event: 'dataLayer',\\n      dataObject: dataObject\\n    }, '*');\\n  }\\n\\n  let userInfo = {}\\n\\n  fetch('https://ipinfo.io/json')\\n    .then(response => response.json())\\n    .then(data => userInfo = data)\\n    .catch(error => console.error('Error fetching IP:', error));\\n\\n  const getUtmParams = () => {\\n    const urlParams = new URLSearchParams(window.parent.location.search);\\n    return {\\n      utm_source: urlParams.get('utm_source') || '',\\n      utm_medium: urlParams.get('utm_medium') || '',\\n      utm_campaign: urlParams.get('utm_campaign') || ''\\n    };\\n  };\\n\\n  const utmParams = getUtmParams();\\n\\n  const sendWebhookLog = async (logData) => {\\n    const webhookLogObject = {\\n      action: logData.action,\\n      status: logData.status,\\n      http_status: logData.http_status,\\n      error_type: logData.error_type,\\n      api_response: logData.api_response,\\n      operation_data: {\\n        timestamp: new Date().toISOString(),\\n        name: userName,\\n        email: email,\\n        phone_number: phoneNumber,\\n        document: userDocument,\\n        birthday: birthday ? birthday.toISOString().split('T')[0] : '',\\n        ip: userInfo.ip,\\n        city: userInfo.city,\\n        state: userInfo.region,\\n        user_agent: navigator.userAgent,\\n        platform: navigator.platform,\\n        language: navigator.language,\\n        screen_resolution: `${window.screen.width}x${window.screen.height}`,\\n        window_size: `${window.innerWidth}x${window.innerHeight}`,\\n        timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\\n        url: window.parent.location.href,\\n        referrer: document.referrer,\\n        url_params: window.location.search,\\n        utm_source: utmParams.utm_source,\\n        utm_medium: utmParams.utm_medium,\\n        utm_campaign: utmParams.utm_campaign\\n      }\\n    }\\n\\n    // console.log('Webhook log object:', webhookLogObject);\\n\\n    try {\\n      await fetch(makeURL, {\\n        method: 'POST',\\n        headers: {\\n          'Content-Type': 'application/json'\\n        },\\n        body: JSON.stringify(webhookLogObject)\\n      });\\n    } catch (error) {\\n      console.error('Error sending webhook log:', error);\\n    }\\n  };\\n\\n  // Load addons into products section\\n  loadAddons();\\n\\n  // Hide ugly browser's scrollbar\\n  window.parent.document.querySelector(\\\"div[data-framer-name='Modal']\\\").setAttribute('style', 'scrollbar-width: none;-ms-overflow-style: none;');\\n</script>\\n<script type=\\\"module\\\">\\n  // import the translations\\n  import es from \\\"https://cdn.jsdelivr.net/npm/intl-tel-input@25.3.1/build/js/i18n/es/index.js\\\";\\n\\n  const input = document.querySelector(\\\"input[name='phonenumber']\\\");\\n  window.phoneNumber = window.intlTelInput(input, {\\n    loadUtils: () => import(\\\"https://cdn.jsdelivr.net/npm/intl-tel-input@25.3.1/build/js/utils.js\\\"),\\n    initialCountry: locale.split('-')[1],\\n    nationalMode: false,\\n    strictMode: true,\\n    i18n: es\\n  });\\n</script>\\n\",id:\"r70hAVJJR\",layoutId:\"r70hAVJJR\",style:{height:\"100%\",maxWidth:\"100%\",width:\"100%\"},type:\"html\",url:\"\",width:\"100%\"})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Wi0Gk.framer-rm4vw3, .framer-Wi0Gk .framer-rm4vw3 { display: block; }\",\".framer-Wi0Gk.framer-1uzypyn { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 500px; }\",\".framer-Wi0Gk .framer-1wtn9y-container { flex: none; height: 600px; max-width: 100%; min-height: 600px; position: relative; width: 500px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 600\n * @framerIntrinsicWidth 500\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerlUX5EzJM6=withCSS(Component,css,\"framer-Wi0Gk\");export default FramerlUX5EzJM6;FramerlUX5EzJM6.displayName=\"embedded es-CL v2\";FramerlUX5EzJM6.defaultProps={height:600,width:500};addFonts(FramerlUX5EzJM6,[{explicitInter:true,fonts:[]},...EmbedFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerlUX5EzJM6\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"600\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"500\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lUX5EzJM6.map"],
  "mappings": "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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA657B,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,OAAO,OAAO,SAAS,OAAO,MAAM,MAAM,EAAE,KAAK,OAAO,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,EAAQC,EAAI,CAAC,kFAAkF,gFAAgF,iQAAiQ,6IAA6I,EAUt7iCC,EAAgBC,EAAQtC,EAAUoC,EAAI,cAAc,EAASG,GAAQF,EAAgBA,EAAgB,YAAY,oBAAoBA,EAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,GAAG,EAAEG,EAASH,EAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,EAAE,GAAGI,CAAU,EAAE,CAAC,6BAA6B,EAAI,CAAC",
  "names": ["EmbedFonts", "getFonts", "Embed", "serializationHash", "variantClassNames", "transition1", "Transition", "value", "children", "config", "re", "MotionConfigContext", "transition", "contextValue", "se", "p", "Variants", "motion", "x", "getProps", "height", "id", "width", "props", "createLayoutDependency", "variants", "Component", "Y", "ref", "fallbackRef", "pe", "refBinding", "defaultLayoutId", "ae", "activeLocale", "setLocale", "useLocaleInfo", "componentViewport", "useComponentViewport", "style", "className", "layoutId", "variant", "restProps", "baseVariant", "classNames", "clearLoadingGesture", "gestureHandlers", "gestureVariant", "isLoading", "setGestureState", "setVariant", "useVariantState", "variantClassNames", "layoutDependency", "scopingClassNames", "cx", "serializationHash", "LayoutGroup", "ComponentViewportProvider", "SmartComponentScopedContainer", "Embed", "css", "FramerlUX5EzJM6", "withCSS", "lUX5EzJM6_default", "addFonts", "EmbedFonts"]
}
