PageSourceSearch

https://nutrafol.com/_next/static/chunks/5171-7a0507a97893b937.js?dpl=dpl_2D94TiR76qEYkdFgaN4DeqcTczUU

js nutrafol.com collected 2026-09-24 10:02:45 UTC 37,918 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5171],{11958:(n,e,t)=>{"use strict";t.d(e,{C7:()=>a,I9:()=>o,W$:()=>r,nk:()=>i});let i="cart_upsellUndoData",r=(n,e)=>{for(let r of Object.values((()=>{try{let n=sessionStorage.getItem(i);return n?JSON.parse(n):{}}catch(n){return{}}})())){var t;if(r.newSku&&(null==(t=r.newSku.replace("-SP","-S"))?void 0:t.toUpperCase())===n.replace("-SP","-S").toUpperCase()){if(e&&r.level&&r.level!==e)continue;return r}}return null},o=n=>{try{let e=sessionStorage.getItem(i);if(e){let t=JSON.parse(e);delete t[n],sessionStorage.setItem(i,JSON.stringify(t))}}catch(n){console.warn("Failed to clear upsell undo data:",n)}},a=n=>{let e=r(n);(null==e?void 0:e.upsellId)&&o(e.upsellId)}},20556:(n,e,t)=>{"use strict";t.d(e,{Ay:()=>_,vu:()=>d});var i=t(95155),r=t(12115),o=t(20063),a=t(56787),s=t(29059),u=t(6829);let l={isLoggedIn:!1,site:"",setSite:()=>{},customer:null,customerCampaigns:null,fetchCustomerCampaigns:()=>{},skipClientCalls:!1,setSkipClientCalls:()=>{},client:a.A,logUserOut:()=>{},logUserIn:()=>{}},c=r.createContext(l),d=n=>{var e;let{children:t}=n,l=(0,o.usePathname)(),[d,_]=(0,r.useState)(null),[m,p]=(0,r.useState)(!1),[y,g]=(0,r.useState)(!1),[b,f]=(0,r.useState)(""),[v,k]=(0,r.useState)(null),h=null!=(e=null==l?void 0:l.startsWith("/checkout"))&&e;(0,r.useEffect)(()=>{(0,u.v8)("gatsbytoken")&&p(!0)},[]);let S=()=>{a.A.query({query:s.U,fetchPolicy:"network-only"}).then(n=>{var e;k((null==n||null==(e=n.data)?void 0:e.CustomerCampaigns)||[])}).catch(()=>{})};return(0,r.useEffect)(()=>{!m||y||h||S()},[m,h]),(0,i.jsx)(c.Provider,{value:{isLoggedIn:m,site:b,setSite:f,customer:d,customerCampaigns:v,fetchCustomerCampaigns:S,skipClientCalls:y,setSkipClientCalls:g,client:a.A,logUserOut:()=>{p(!1),_(null)},logUserIn:function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;p(!0),n&&_(n)}},children:t})},_=c},29059:(n,e,t)=>{"use strict";t.d(e,{$q:()=>F,Lu:()=>J,U:()=>D,cJ:()=>M,eD:()=>A,rU:()=>K});var i=t(3648),r=t(80207);function o(){let n=(0,i._)(["\n  query GetSubscriptions {\n    appointments(futureOnly: true) {\n      id\n      datetime\n      type\n      confirmationPage\n    }\n    customer {\n      firstname\n      lastname\n      email\n      entity_id\n      gender\n      refill_opt_in\n      addresses {\n        id\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        default_billing\n        default_shipping\n        country_id\n        region {\n          region_id\n          region\n        }\n      }\n      store_credit {\n        current_balance {\n          value\n          currency\n        }\n      }\n    }\n    subscriptions {\n      is_referral_campaign\n      entity_id\n      loyalty_campaigns {\n        segment_name\n        booster_accepted_list\n        run_with_next_rebill\n      }\n      custom_discount\n      cancel_date\n      increment_id\n      name\n      quote_id\n      description\n      customer_id\n      created_at\n      next_run\n      last_run\n      subtotal\n      length\n      status\n      frequency_count\n      frequency_unit\n      product_growth_plan_data\n      journey_start_date\n      compliance_message\n      is_california\n      reactivate_compliance_message\n      quiz_result {\n        token\n        created_at\n      }\n      doctor_details {\n        name\n        image\n        acuity_id\n      }\n      logs {\n        order_increment_id\n      }\n      additional {\n        key\n        value\n      }\n      quote {\n        entity_id\n        customer_email\n        subtotal\n        grand_total\n        items {\n          item_id\n          sku\n          name\n          description\n          product_id\n          qty\n          price\n          row_total\n        }\n        billing_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n        }\n        shipping_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n          subtotal\n          grand_total\n        }\n        payment {\n          tokenbase_id\n          entity_id\n          method\n          cc_type\n          cc_last_4\n          cc_owner\n          cc_exp_month\n          cc_exp_year\n          po_number\n          additional_data {\n            key\n            value\n          }\n          additional_information {\n            key\n            value\n          }\n        }\n      }\n    }\n  }\n"]);return o=function(){return n},n}function a(){let n=(0,i._)(["\n  query GetCustomerOrder($order_id: String!) {\n    customer {\n      orders(filter: { number: { eq: $order_id } }) {\n        items {\n          number\n          order_date\n          shipments {\n            tracking {\n              number\n            }\n          }\n          items {\n            status\n            id\n            image\n            label1\n            product_name\n            product_sku\n            quantity_ordered\n            product_sale_price {\n              value\n              currency\n            }\n          }\n        }\n      }\n    }\n  }\n"]);return a=function(){return n},n}function s(){let n=(0,i._)(['\n  query GetSubscriptions($entity_id: Int) {\n    appointments(futureOnly: true) {\n      id\n      datetime\n      type\n      confirmationPage\n    }\n    customer {\n      firstname\n      lastname\n      email\n      entity_id\n      gender\n      refill_opt_in\n      addresses {\n        id\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        default_billing\n        default_shipping\n        country_id\n        region {\n          region_id\n          region\n        }\n      }
1\n      orders(pageSize: 250) {\n        items {\n          number\n          order_date\n          shipments {\n            tracking {\n              number\n            }\n          }\n          items {\n            status\n            id\n            image\n            label1\n            product_name\n            product_sku\n            quantity_ordered\n            product_sale_price {\n              value\n              currency\n            }\n          }\n        }\n      }\n      store_credit {\n        current_balance {\n          value\n          currency\n        }\n      }\n    }\n    tokenBaseCheckoutConfig(method: "authnetcim") {\n      clientKey\n      apiLoginId\n      sandbox\n    }\n    tokenBaseCards {\n      id\n      label\n      expires\n      hash\n      customer_email\n      customer_id\n      profile_id\n      method\n      active\n      created_at\n      address {\n        region {\n          region\n          region_id\n        }\n        region_id\n        country_id\n        street\n        company\n        telephone\n        postcode\n        city\n        firstname\n        lastname\n      }\n      additional {\n        cc_type\n        cc_last4\n        cc_exp_year\n        cc_exp_month\n      }\n    }\n    subscriptions(entity_id: $entity_id) {\n      entity_id\n      loyalty_campaigns {\n        segment_name\n        booster_accepted_list\n        run_with_next_rebill\n      }\n      custom_discount\n      cancel_date\n      increment_id\n      name\n      quote_id\n      description\n      customer_id\n      created_at\n      next_run\n      last_run\n      subtotal\n      length\n      status\n      frequency_count\n      frequency_unit\n      product_growth_plan_data\n      journey_start_date\n      compliance_message\n      is_california\n      reactivate_compliance_message\n      quiz_result {\n        token\n        created_at\n      }\n      doctor_details {\n        name\n        image\n        acuity_id\n      }\n      logs {\n        order_increment_id\n      }\n      additional {\n        key\n        value\n      }\n      quote {\n        entity_id\n        customer_email\n        subtotal\n        grand_total\n        items {\n          item_id\n          sku\n          name\n          description\n          product_id\n          qty\n          price\n          row_total\n        }\n        billing_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n        }\n        shipping_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n          subtotal\n          grand_total\n        }\n        payment {\n          tokenbase_id\n          entity_id\n          method\n          cc_type\n          cc_last_4\n          cc_owner\n          cc_exp_month\n          cc_exp_year\n          po_number\n          additional_data {\n            key\n            value\n          }\n          additional_information {\n            key\n            value\n          }\n        }\n      }\n    }\n    countries {\n      id\n      full_name_english\n      available_regions {\n        id\n        code\n        name\n      }\n    }\n  }\n']);return s=function(){return n},n}function u(){let n=(0,i._)(["\n  mutation SubscribeForNewsletters($email: String!) {\n    subscribeForNewsletters(email: $email) {\n      result {\n        status\n        message\n      }\n    }\n  }\n"]);return u=function(){return n},n}function l(){let n=(0,i._)(["\n  mutation RemoveCustomerSegmentKeyMutation($segment_key_name: String!) {\n    RemoveCustomerSegmentKey(segment_key_name: $segment_key_name) {\n      id\n      name\n    }\n  }\n"]);return l=function(){return n},n}function c(){let n=(0,i._)(["\n  query {\n    customer {\n      segment_key {\n        id\n        name\n      }\n    }\n  }\n"]);return c=function(){return n},n}function d(){let n=(0,i._)(["\n  query {\n    customer {\n      firstname\n      store_credit {\n        current_balance {\n          value\n          currency\n        }\n      }
1\n      orders(pageSize: 250) {\n        items {\n          id\n          number\n          status\n          order_date\n          items {\n            image\n            label1\n            is_core\n            product_name\n            product_category\n            core_category\n            product_sku\n            product_url_key\n            product_sale_price {\n              value\n              currency\n            }\n            quantity_ordered\n          }\n          shipments {\n            id\n            tracking {\n              number\n              carrier\n            }\n          }\n          total {\n            grand_total {\n              value\n              currency\n            }\n          }\n        }\n      }\n    }\n  }\n"]);return d=function(){return n},n}function _(){let n=(0,i._)(["\n  mutation UpdateJourneyStartDate($input: SubscriptionUpdateInput!) {\n    updateSubscription(input: $input) {\n      created_at\n      customer_id\n      journey_start_date\n    }\n  }\n"]);return _=function(){return n},n}function m(){let n=(0,i._)(["\n  query GetCustomerOrderTracking($order_id: String) {\n    customer {\n      orders(filter: { number: { eq: $order_id } }) {\n        items {\n          id\n          number\n          shipments {\n            id\n            number\n            tracking {\n              carrier\n              number\n              title\n            }\n          }\n        }\n      }\n    }\n  }\n"]);return m=function(){return n},n}function p(){let n=(0,i._)(["\n  query GetProductsBySku($sku1: String!, $sku2: String!, $sku3: String) {\n    products(filter: { sku: { in: [$sku1, $sku2, $sku3] } }, sort: { price: ASC }) {\n      items {\n        id\n        name\n        image {\n          url\n        }\n        label1\n        price_range {\n          minimum_price {\n            regular_price {\n              value\n            }\n          }\n        }\n        subscription_intervals\n      }\n    }\n  }\n"]);return p=function(){return n},n}function y(){let n=(0,i._)(["\n  mutation UpgradeOneMonthToThreeMonthSku($input: SubscriptionUpdateInput!) {\n    updateSubscription(input: $input) {\n      entity_id\n      coupon_code\n      quote {\n        items {\n          item_id\n          product_id\n        }\n      }\n    }\n  }\n"]);return y=function(){return n},n}function g(){let n=(0,i._)(["\n  query GetAllProducts {\n    coreSubscriptionProductList {\n      id\n      sku\n      bundle_keys\n      price\n      bundled_price\n      name\n      image\n      label1\n      subscription_intervals\n    }\n  }\n"]);return g=function(){return n},n}function b(){let n=(0,i._)(["\n  query GetBoostersByBundleKeys($bundle_key_id: Int, $subscription_interval: Int) {\n    boostersCombinationsByBundleKeyId(\n      bundle_key_id: $bundle_key_id\n      subscription_interval: $subscription_interval\n    ) {\n      keys\n    }\n    boostersProductListByCoreBundleKeyId(\n      bundle_key_id: $bundle_key_id\n      subscription_interval: $subscription_interval\n    ) {\n      id\n      sku\n      bundle_keys\n      price\n      bundled_price\n      name\n      image\n      label1\n      subscription_intervals\n    }\n  }\n"]);return b=function(){return n},n}function f(){let n=(0,i._)(["\n  query GetProductByBundleKeys($bundle_keys: [Int], $subscription_interval: Int) {\n    productByBundleKeys(bundle_keys: $bundle_keys, subscription_interval: $subscription_interval) {\n      id\n      sku\n      bundle_keys\n      bundled_price\n      price\n      name\n      image\n      label1\n      subscription_intervals\n    }\n  }\n"]);return f=function(){return n},n}function v(){let n=(0,i._)(["\n  query GetBoostersCombinationsByBundleKeyId($bundle_key_id: Int, $subscription_interval: Int) {\n    boostersCombinationsByBundleKeyId(\n      bundle_key_id: $bundle_key_id\n      subscription_interval: $subscription_interval\n    ) {\n      keys\n    }\n  }\n"]);return v=function(){return n},n}function k(){let n=(0,i._)(["\n  mutation UpdateSubscriptionMutation($input: SubscriptionUpdateInput!) {\n    updateSubscription(input: $input) {\n      entity_id\n      name\n      custom_discount\n      increment_id\n      quote_id\n      description\n      customer_id\n      created_at\n      next_run\n      last_run\n      subtotal\n      length\n      status\n      frequency_count\n      frequency_unit\n      product_growth_plan_data\n      journey_start_date\n      compliance_message\n      is_california\n      reactivate_compliance_message\n      quiz_result {\n        token\n        created_at\n      }\n      logs {\n        order_increment_id\n      }\n      additional {\n        key\n        value\n      }\n      quote {\n        entity_id\n        customer_email\n        subtotal\n        grand_total\n        items {\n          item_id\n          sku\n          name\n          description\n          product_id\n          qty\n          price\n          row_total\n        }\n        billing_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n        }\n        shipping_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n          subtotal\n          grand_total\n        }\n        payment {\n          tokenbase_id\n          entity_id\n          method\n          cc_type\n          cc_last_4\n          cc_owner\n          cc_exp_month\n          cc_exp_year\n          po_number\n          additional_data {\n            key\n            value\n          }\n          additional_information {\n            key\n            value\n          }\n        }\n      }\n    }\n  }\n"]);return k=function(){return n},n}function h(){let n=(0,i._)(["\n  mutation AddCustomerSegmentKey($segment_key_name: String!) {\n    AddCustomerSegmentKey(segment_key_name: $segment_key_name) {\n      id\n      name\n    }\n  }\n"]);return h=function(){return n},n}function S(){let n=(0,i._)(["\n  mutation EstimateSubscriptionQuote(\n    $subscription_entity_id: Int!\n    $subscription_products: [SubscriptionProductsInput]!\n    $coupon_code: String\n  ) {\n    estimateSubscriptionQuote(\n      subscription_entity_id: $subscription_entity_id\n      subscription_products: $subscription_products\n      coupon_code: $coupon_code\n    ) {\n      grand_total\n      subtotal\n      discount_amount\n      frequency_count\n    }\n  }\n"]);return S=function(){return n},n}function C(){let n=(0,i._)(["\n  mutation RefillOptIn($opt_in: Boolean!) {\n    updateCustomerV2(input: { refill_opt_in: $opt_in }) {\n      customer {\n        refill_opt_in\n      }\n    }\n  }\n"]);return C=function(){return n},n}function q(){let n=(0,i._)(["\n  mutation UpdateSubName($input: SubscriptionUpdateInput!) {\n    updateSubscription(input: $input) {\n      entity_id\n      name\n    }\n  }\n"]);return q=function(){return n},n}function w(){let n=(0,i._)(["\n  query GetSubscription($entity_id: Int) {\n    subscriptions(entity_id: $entity_id) {\n      entity_id\n      custom_discount\n      increment_id\n      quote_id\n      description\n      customer_id\n      created_at\n      next_run\n      last_run\n      name\n      subtotal\n      length\n      status\n      frequency_count\n      frequency_unit\n      product_growth_plan_data\n      journey_start_date\n      compliance_message\n      is_california\n      reactivate_compliance_message\n      quiz_result {\n        token\n        created_at\n      }\n      doctor_details {\n        name\n        image\n        acuity_id\n      }\n      logs {\n        order_increment_id\n      }\n      additional {\n        key\n        value\n      }\n      quote {\n        entity_id\n        customer_email\n        subtotal\n        grand_total\n        items {\n          item_id\n          sku\n          name\n          description\n          product_id\n          qty\n          price\n          row_total\n        }\n        billing_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n        }\n        shipping_address {\n          address_id\n          customer_address_id\n          region\n          region_id\n          country_id\n          street\n          company\n          telephone\n          postcode\n          city\n          firstname\n          lastname\n          subtotal\n          grand_total\n        }\n        payment {\n          tokenbase_id\n          entity_id\n          method\n          cc_type\n          cc_last_4\n          cc_owner\n          cc_exp_month\n          cc_exp_year\n          po_number\n          additional_data {\n            key\n            value\n          }\n          additional_information {\n            key\n            value\n          }\n        }\n      }\n    }\n  }\n"]);return w=function(){return n},n}function x(){let n=(0,i._)(["\n  query GetProductBySku($sku: String!) {\n    products(filter: { sku: { eq: $sku } }) {\n      items {\n        id\n        sku\n        name\n        special_price\n        old_price\n        product_gender\n        subscription_intervals\n        label1 {\n          url\n        }\n        price_range {\n          minimum_price {\n            regular_price {\n              value\n            }\n          }\n        }\n      }\n    }\n  }\n"]);return x=function(){return n},n}function P(){let n=(0,i._)(["\n  query GetProductsBySku($skus: [String!]!) {\n    products(filter: { sku: { in: $skus } }, sort: { price: ASC }) {\n      items {\n        id\n        name\n        sku\n        image {\n          url\n        }\n      }\n    }\n  }\n"]);return P=function(){return n},n}function $(){let n=(0,i._)(["\n  query {\n    CustomerCampaigns {\n      segment_name\n      subscription_id\n      is_accepted\n      booster_list\n      remaining_lifetime\n      booster_accepted_list\n      combined_product_id_list\n    }\n  }\n"]);return $=function(){return n},n}function U(){let n=(0,i._)(["\n  mutation AcceptLoyaltyCampaign($segment_name: String!, $subscription_id: Int!, $sku: String!) {\n    AcceptLoyaltyCampaign(\n      segment_name: $segment_name\n      subscription_id: $subscription_id\n      sku: $sku\n    ) {\n      segment_name\n      subscription_id\n      is_accepted\n      booster_list\n      booster_accepted_list\n      run_with_next_rebill\n      remaining_lifetime\n      combined_product_id_list\n    }\n  }\n"]);return U=function(){return n},n}function N(){let n=(0,i._)(["\n  query GetSubscriptions($entity_id: [String!]!) {\n    subscriptions(filter: { entity_id: { in: $entity_id } }) {\n      entity_id\n      name\n      description\n      product_growth_plan_data\n    }\n  }\n"]);return N=function(){return n},n}function I(){let n=(0,i._)(["\n  query GetSubscriptions($entity_id: Int) {\n    subscriptions(entity_id: $entity_id) {\n      product_growth_plan_data\n      description\n    }\n  }\n"]);return I=function(){return n},n}function E(){let n=(0,i._)(["\n  mutation AcceptReferralCampaign($input
1: SubscriptionUpdateInput!) {\n    updateSubscription(input: $input) {\n      entity_id\n      is_referral_campaign\n    }\n  }\n"]);return E=function(){return n},n}function L(){let n=(0,i._)(["\n  query GetCustomerSubscriptions {\n    subscriptions {\n      entity_id\n      name\n      next_run\n      last_run\n      frequency_count\n      frequency_unit\n      status\n      product_growth_plan_data\n      quote {\n        items {\n          name\n          sku\n        }\n      }\n    }\n  }\n"]);return L=function(){return n},n}function j(){let n=(0,i._)(["\n  mutation SwitchOutSub($subscription_entity_id: Int, $cart_id: String!) {\n    switchOutSub(subscription_entity_id: $subscription_entity_id, cart_id: $cart_id)\n  }\n"]);return j=function(){return n},n}(0,r.J1)(o()),(0,r.J1)(a()),(0,r.J1)(s());let A=(0,r.J1)(u());(0,r.J1)(l()),(0,r.J1)(c()),(0,r.J1)(d()),(0,r.J1)(_()),(0,r.J1)(m()),(0,r.J1)(p()),(0,r.J1)(y()),(0,r.J1)(g()),(0,r.J1)(b());let F=(0,r.J1)(f()),K=(0,r.J1)(v());(0,r.J1)(k()),(0,r.J1)(h()),(0,r.J1)(S()),(0,r.J1)(C()),(0,r.J1)(q()),(0,r.J1)(w()),(0,r.J1)(x()),(0,r.J1)(P());let D=(0,r.J1)($());(0,r.J1)(U()),(0,r.J1)(N()),(0,r.J1)(I()),(0,r.J1)(E());let J=(0,r.J1)(L()),M=(0,r.J1)(j())},48860:(n,e,t)=>{"use strict";t.d(e,{e:()=>k});var i=t(95155),r=t(12115),o=t(29342),a=t.n(o),s=t(47650),u=t(69691),l=t(69686),c=t(42270),d=t(55707),_=t.n(d);let m=n=>{let{className:e,fullHeightMobile:t=!1,...r}=n;return(0,i.jsx)("div",{className:"".concat(_().backdrop," ").concat(t?_().backdropFullHeightMobile:""," ").concat(e||""),...r})},p=n=>{let{maxWidth:e,className:t,style:r,...o}=n;return(0,i.jsx)("dialog",{className:"".concat(_().dialog," ").concat(t||""),style:{background:"#fff",maxWidth:e,...r},...o})},y=n=>{let{className:e,...t}=n;return(0,i.jsx)("div",{className:"".concat(_().scrollWrapper," ").concat(e||""),...t})},g=n=>{let{hasTitle:e,className:t,...r}=n;return(0,i.jsx)("div",{className:(0,c.cn)(_().modalHeader,e?"pt-10 pb-8 px-6 md:pt-10 md:pb-10":"pt-10 px-6","bg-nova-base-white",t),...r})},b=n=>{let{className:e,...t}=n;return(0,i.jsx)("button",{className:"".concat(_().closeTrigger," ").concat(e||""),style:{background:"#FFC942"},...t})},f=n=>{let{hasBodyPadding:e,className:t,...r}=n;return(0,i.jsx)("div",{className:"".concat(e?_().modalBody:""," ").concat(t||""),...r})},v={small:"570px",medium:"900px",large:"1096px"},k=n=>{let{className:e="modal-nova",hideModal:t,title:o,children:d,size:k="medium",fullHeightMobile:h=!1,fullWidthMobile:S=!1,fitContentMobile:C=!1,fixedDialog:q=!0,hasBodyPadding:w=!0,hasHeader:x=!0,customZIndex:P}=n,[$,U]=(0,r.useState)(!0);(0,r.useEffect)(()=>{let n=window.scrollY;document.body.classList.add("no-scroll"),document.body.style.overflow="hidden",document.body.style.position="fixed",document.body.style.top="-".concat(n,"px"),document.body.style.width="100%";let e=window.matchMedia("(min-width: 768px)");e.matches&&U(!1);let t=n=>{U(!n.matches)};return e.addEventListener("change",t),()=>{document.body.classList.remove("no-scroll"),document.body.style.removeProperty("overflow"),document.body.style.removeProperty("position"),document.body.style.removeProperty("top"),document.body.style.removeProperty("width"),window.scrollTo(0,n),e.removeEventListener("change",t)}},[]),(0,r.useEffect)(()=>{let n=n=>{"Escape"===n.key&&t()};return document.addEventListener("keydown",n),()=>{document.removeEventListener("keydown",n)}},[t]);let N=n=>{"Enter"===n.key&&t()};(0,r.useEffect)(()=>{let n=document.getElementById("ada-button-frame");n&&(n.style.display=$?"none":"block")},[$]);let I=()=>(0,i.jsx)(b,{className:"close-trigger",tabIndex:0,onClick:()=>{t()},onKeyDown:N,children:(0,i.jsx)(u.U,{className:"mx-auto"})}),E=(0,i.jsx)(a(),{focusTrapOptions:{fallbackFocus:"#Modal"},children:(0,i.jsxs)("div",{children:[(0,i.jsx)(m,{className:"",fullHeightMobile:h,onClick:()=>{t()},style:{zIndex:null!=P?P:1e4}}),(0,i.jsx)(p,{open:!0,className:(0,c.cn)(e,h?_().mobileFullscreen:"",S?_().mobileFullWidth:"",C?_().mobileFitContent:"",q?"fixedDialog":"normalDialog"),id:"Modal",onClick:n=>n.stopPropagation(),maxWidth:v[k]?v[k]:k,style:{zIndex:null!=P?P+1:10001},children:(0,i.jsxs)(y,{className:"",children:[x?(0,i.jsxs)(g,{className:"modal-nova-header",hasTitle:!!o,children:[o?(0,i.jsx)(l.TextElementNova,{text:o,className:"Body-30-Dia-Strong text-nova-base-black flex-1"}):null,(0,i.jsx)(I,{})]}):(0,i.jsx)("div",{className:"pt-6 px-6 md:p-0",children:(0,i.jsx)(I,{})}),(0,i.jsx)(f,{className:"modal-nova-body",hasBodyPadding:w,children:d})]})})]})});return"undefined"==typeof document?E:(0,s.createPortal)(E,document.body)}},55707:n=>{n.exports={backdrop:"ModalNova_backdrop__xM5LN",backdropFullHeightMobile:"ModalNova_backdropFullHeightMobile__pue2h",dialog:"ModalNova_dialog__Wvj7W",mobileFullscreen:"ModalNova_mobileFullscreen__yGHVb",mobileFullWidth:"ModalNova_mobileFullWidth__aZ_A4",mobileFitContent:"ModalNova_mobileFitContent__ePiNh","normal-dialog":"ModalNova_normal-dialog__m3Pnb",scrollWrapper:"ModalNova_scrollWrapper__4YkXG",modalHeader:"ModalNova_modalHeader__5ebZF",closeTrigger:"Mod
1alNova_closeTrigger__nhFzR",modalBody:"ModalNova_modalBody__S6oUP"}},56255:(n,e,t)=>{"use strict";t.d(e,{q:()=>r});var i=t(95155);let r=n=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"19",viewBox:"0 0 16 19",fill:"none",...n,children:(0,i.jsx)("path",{d:"M15 4.07156C15 3.94255 14.9463 3.824 14.8604 3.7411C14.7755 3.65928 14.6677 3.61916 14.5625 3.61916C12.515 3.61916 10.0641 2.46564 8.37109 1.03733C8.26258 0.949739 8.13082 0.90479 8 0.90479C7.86722 0.90479 7.73345 0.950645 7.62402 1.04086C5.94098 2.458 3.48354 3.61916 1.4375 3.61916C1.3323 3.61916 1.22452 3.65928 1.13965 3.7411C1.05373 3.824 1 3.94255 1 4.07156V10.4042C1.00009 12.555 1.77547 14.1413 2.99805 15.3496C4.23221 16.5693 5.94781 17.4284 7.86328 18.0667L7.875 18.0711C7.96362 18.1029 8.05933 18.1037 8.14844 18.0746C10.0581 17.4319 11.7705 16.5715 13.0029 15.3514C14.2247 14.1418 14.9999 12.555 15 10.4042V4.07156ZM16 10.4042C15.9999 12.7762 15.1349 14.5821 13.7412 15.962C12.3589 17.3304 10.4818 18.2557 8.49316 18.9246L8.48828 18.9255C8.17285 19.0286 7.82996 19.0244 7.51758 18.9149C5.52396 18.2506 3.64443 17.3284 2.26074 15.9611C0.86555 14.5822 9.16885e-05 12.7762 0 10.4042V4.07156C0 3.72073 0.144475 3.37898 0.410156 3.12259C0.676889 2.8652 1.04549 2.71437 1.4375 2.71437C3.13952 2.71437 5.36698 1.70663 6.94629 0.375523L6.95117 0.371989C7.23896 0.134764 7.61035 0 8 0C8.38965 0 8.76104 0.134764 9.04883 0.371989L9.05371 0.375523C10.6419 1.71528 12.8601 2.71437 14.5625 2.71437C14.9545 2.71437 15.3231 2.8652 15.5898 3.12259C15.8555 3.37898 16 3.72073 16 4.07156V10.4042Z",fill:"#041C1B"})})},56787:(n,e,t)=>{"use strict";t.d(e,{A:()=>_,n:()=>m});var i=t(10248),r=t(22180),o=t(12707),a=t(34846),s=t(6829),u=t(42270);let l=new i.P({uri:"https://nutrafol.com/graphql"}),c=new i.P({uri:"https://edge-graph.adobe.io/api/042ae528-6640-4610-9808-7b86d65e8e6b/graphql"}),d=new r.C((n,e)=>{var t;let i=(null==(t=n.getContext())?void 0:t.headers)?n.getContext().headers:{},r=""!==(0,u.Vf)("token")?(0,u.Vf)("token"):(0,s.v8)("gatsbytoken");return n.setContext({headers:{authorization:"Bearer ".concat(r),...i}}),e(n)}),_=new o.R({cache:new a.D,link:r.C.split(n=>{var e;return(null==(e=n.getContext())?void 0:e.clientName)==="searchLink"},d.concat(c),d.concat(l))}),m=new o.R({cache:new a.D,link:r.C.split(n=>{var e;return(null==(e=n.getContext())?void 0:e.clientName)==="searchLink"},c,l)})},69691:(n,e,t)=>{"use strict";t.d(e,{U:()=>r});var i=t(95155);let r=n=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",...n,children:(0,i.jsx)("path",{d:"M12.5255 3.47452C12.5255 3.47452 7.45097 8.54903 3.47452 12.5255M12.5255 12.5255C12.5255 12.5255 7.89279 7.8928 3.47452 3.47452",stroke:"currentColor",strokeLinecap:"square",strokeLinejoin:"round"})})},70405:(n,e,t)=>{"use strict";t.d(e,{A:()=>y,e:()=>p});var i=t(95155),r=t(12115),o=t(11958),a=t(85808),s=t(20921),u=t(35181),l=t(6829),c=t(28011),d=t(42270),_=t(32006);let m=(0,r.createContext)({isLoadingAjaxCart:!1,setIsLoadingCartPage:()=>{},setIsCartFetching:()=>{},isCartFetching:!1,cartData:void 0,cartNum:0,cartLength:0,multipleSkusAdded:!1,hasError:!1,activeElement:!1,skusInFlight:[],setMultipleSkusAdded:()=>{},setCartNum:()=>{},setCart:()=>{},siteTheme:null,setSiteTheme:()=>{},clearCart:()=>{},addItems:()=>{},isLoadingCartPage:!1,handleQuantityChange:()=>{},removeItem:()=>{},onCartUpdate:async()=>{},cartPageToastMessage:null,setCartPageToastMessage:()=>{}}),p=n=>{let{children:e}=n,[t,p]=(0,r.useState)(void 0),[y,g]=(0,r.useState)(0),[b,f]=(0,r.useState)(0),[v,k]=(0,r.useState)(!1),[h,S]=(0,r.useState)(!1),[C,q]=(0,r.useState)(!1),[w,x]=(0,r.useState)(!1),[P,$]=(0,r.useState)(!1),[U,N]=(0,r.useState)([]),[I,E]=(0,r.useState)(!1),[L,j]=(0,r.useState)(null),[A,F]=(0,r.useState)(null),K=n=>{var e,t,i,r,o;let a=null==n||null==(e=n.totals)?void 0:e.masked_id;
1a&&(0,l.TV)("masked_id",a,7);let s=null==n||null==(t=n.totals)?void 0:t.cart_id;s&&(0,l.TV)("cart_id",s,7),("object"!=typeof(null==n?void 0:n.items)||Array.isArray(null==n?void 0:n.items)||null==(o=Object.values(null==n?void 0:n.items))||null==(r=o[0])||null==(i=r.quote)?void 0:i.quote_id)&&(0,l.TV)("quote_id",s,7),p(n)},D=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=0;Object.keys(n).forEach(t=>{var i,r;(null==(r=n[t])||null==(i=r.quote)?void 0:i.qty)&&(e+=n[t].quote.qty)}),f(Object.keys(n).length),g(e)};(0,r.useEffect)(()=>{if(t&&t.items)D(t.items);else if(t&&"Quote does not exist."!==t){let n=t[1];n&&D(n)}},[t]);let J=async(n,e)=>{q(document.activeElement),x(!1),k((0,d.Nw)(n.split("?")[1]));let t=(0,d.Pf)(n);if(t.skus&&t.purchase_source){N(n=>[...n,Array.isArray(t.skus)?t.skus:[t.skus]]),x(!0),E(!0),S(!1);let n=(0,_.V)();n&&(t.masked_id=n);try{let n=await fetch("".concat("https://nutrafol.com/","rest/V1/repack/add_to_cart/"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error("Failed to add to cart: ".concat(n.status));let i=await n.json(),r=i;if("string"==typeof i)try{r=JSON.parse(i)}catch(n){r={message:i}}if(null==r?void 0:r.error)throw Error(r.message||"Error: ".concat(n.status));let o=await (0,s.Xd)();G(o),K(o),x(!1),E(!1),N([]),e&&e()}catch(n){throw N([]),x(!1),E(!1),S(!0),j(n instanceof Error?n.message:"Failed to add items to cart. Please try again."),console.error("Error:",n),n}}else console.warn("DPA link is incorrect.")},M=async()=>{try{let n=await (0,s.Xd)();G(n),K(n),window.scrollTo({top:0,left:0,behavior:"smooth"}),E(!1)}catch(n){E(!1),S(!0),j(n instanceof Error?n.message:"Failed to update cart. Please try again."),console.error("Error updating cart:",n)}},B=async n=>{var e,i,r,l,d,_,m,p,y,g,b;let f=null==t||null==(e=t.totals)?void 0:e.cart_id,v=null==(i=n.quote)?void 0:i.quote_item_id;if(!f){console.warn("Cannot remove item: cart ID is missing"),S(!0),j("Unable to remove item. Please try again.");return}if(!v){console.warn("Cannot remove item: item ID is missing"),S(!0),j("Unable to remove item. Please try again.");return}let k=n.quote.qty,h=(null==n||null==(r=n.quote)?void 0:r.purchase_source)||"cart",C=null==n||null==(d=n.quote)||null==(l=d.sku)?void 0:l.replace("-SP01","-S01"),q=null==n||null==(m=n.quote)||null==(_=m.sku)?void 0:_.includes("-SP01"),w=null==C?void 0:C.includes(a.$X),x="string"==typeof(null==t||null==(p=t.totals)?void 0:p.coupon_code)?"code=".concat(null==t||null==(y=t.totals)?void 0:y.coupon_code.toUpperCase(),"&"):"",P="purchase_source=".concat(h,"&"),$="".concat(x).concat(P).concat(q?"promo_product_enabled=true&":"","skus=").concat(C,"|").concat(k);if(E(!0),a.Ry.includes(n.quote.sku)){let e=1===Object.keys(n.child_products).length?"".concat(Object.keys(n.child_products)[0],";").concat(Object.keys(n.child_products)[0]):Object.keys(n.child_products).join(";");$="skus=".concat(n.quote.sku,"-[").concat(e,"]&").concat(P)}(0,u.P4)("/dpa/add/tocart/?"+$);try{let e=await (0,s.SM)(f,v);if(!e.ok)throw Error("Failed to remove item: ".concat(e.status));(0,o.C7)(null==n||null==(b=n.quote)?void 0:b.sku),await M()}catch(n){E(!1),S(!0),(0,u.tA)(),console.warn("Fetch error: ",n)}let U=(0,u.qw)(u.K1.SCALP_LP_UPGRADED_SKUS),N=(0,u.qw)(u.K1.SCALP_ROUTINE_LP_UPGRADED_SKUS),I=(0,u.qw)(u.K1.SCALP_UPGRADED_SKUS),L=(0,u.qw)(u.K1.INFLUENCER_UPSELL_SKUS),A=(0,u.qw)(u.K1.SCALP_ACCOUNT_UPGRADED_SKUS),F=(0,u.TK)(u.K1.PDP_UPGRADED_SKU),K=(null==t||null==(g=t.totals)?void 0:g.coupon_code)||null;if(F===n.sku)(0,s.ty)(n,"modal",!1,K),(0,u.nx)(u.K1.PDP_UPGRADED_SKU);else if(I&&(null==I?void 0:I.includes(n.sku)))(0,s.ty)(n,"influencer_scalp_upsell",!1,K),(0,u.uL)(u.K1.SCALP_UPGRADED_SKUS,I,n.sku);else if(A&&(null==A?void 0:A.includes(n.sku)))(0,s.ty)(n,"account_scalp_upsell",!1,K),(0,u.uL)(u.K1.SCALP_ACCOUNT_UPGRADED_SKUS,A,n.sku);else if(U&&(null==U?void 0:U.includes(n.sku)))(0,s.ty)(n,"scalp_lp_modal_upsell",!0),(0,u.uL)(u.K1.SCALP_LP_UPGRADED_SKUS,U,n.sku);else if(N&&(null==N?void 0:N.includes(n.sku)))(0,s.ty)(n,"scalp_routine_lp_upsell",!0),(0,u.uL)(u.K1.SCALP_ROUTINE_LP_UPGRADED_SKUS,N,n.sku);else if(L&&(null==L?void 0:L.includes(n.sku)))(0,s.ty)(n,"influencer_lp_upsell",!1,K),(0,u.uL)(u.K1.INFLUENCER_UPSELL_SKUS,L,n.sku);else if(w)(0,s.ty)(n,"cart",!1,K);else{let e={...n,old_price:parseFloat(n.old_price),bundled_price:parseFloat(n.price),quiz_reco:(0,s.oT)(n),product_core_category:String(n.core_category)};c.F.onProductRemoved({options:[e],purchase_source:h,cartId:f})}},O=async(n,e,i)=>{var r,o,a;if(e<=0)return void B(n);E(!0);let u=null==t||null==(r=t.totals)?void 0:r.cart_id,l=null==(o=n.quote)?void 0:o.quote_item_id;if(!u){console.warn("Cannot update quantity: cart ID is missing"),E(!1),S(!0),j("Unable to update quantity. Please try again.");return}if(!l){console.warn("Cannot update quantity: item ID is missing"),E(!1),S(!0),j("Unable to update quantity. Please try again.");return}let d=(null==n||null==(a=n.quote)?void 0:a.purchase_source)||"cart";try{let n=await (0,s.AR)(u,l,e);if(!n.ok)throw Error("Failed to update quantity: ".concat(n.status));await M()}catch(n){E(!1),S(!0),j(n instanceof Error?n.message:"Failed to update quantity. Please try again."),console.warn("Fetch error: ",n)}let _=Math.abs(e-i),m={...n,old_price:parseFloat(n.old_price),bundled_price:parseFloat(n.price),quiz_reco:(0,s.oT)(n),quantity:_,product_core_category:String(n.core_category)};i>e?c.F.onProductRemoved({options:[m],purchase_source:d,cartId:u}):c.F.onProductAdded({options:[m],purchase_source:d,cartId:u})},G=n=>{var e,i,r,o,a;if(!(null==n?void 0:n.items))return;let s=t||(0,u.CR)(u.K1.CART,"local"),l=null==n||null==(e=n.totals)?void 0:e.coupon_code,c=null==s||null==(i=s.totals)?void 0:i.coupon_code;if(l||!c)(0,u.ci)();else if(!l&&c){let e=n.items||{},t=(null==s?void 0:s.items)||{},i=null==s||null==(r=s.totals)?void 0:r.cart_id,l=Object.values(e).find(n=>{let e=t[n.quote.sku];return!e||n.quote.qty!==e.quote.qty});if(l){let n=t[l.quote.sku];(0,u.EX)({cartId:i,coupon:c,sku:l.quote.sku,itemId:l.quote.quote_item_id,oldQty:(null==n||null==(o=n.quote)?void 0:o.qty)||0,qty:l.quote.qty})}else{let n=Object.keys(t).find(n=>!e[n]);if(n){let e=t[n],r=(null==e||null==(a=e.name)?void 0:a.includes("Gift"))||(null==e?void 0:e.price)==="0.00";e&&!r&&(0,u.EX)({cartId:i,coupon:c,sku:n,itemId:null,oldQty:e.quote.qty,qty:0})}}}};return(0,i.jsx)(m.Provider,{value:{isLoadingAjaxCart:w,isLoadingCartPage:I,setIsLoadingCartPage:n=>E(n),setIsCartFetching:$,isCartFetching:P,cartData:t,cartNum:y,cartLength:b,multipleSkusAdded:v,hasError:h,activeElement:C,skusInFlight:U,setMultipleSkusAdded:k,setCartNum:n=>{g("number"!=typeof n||isNaN(n)?0:Math.max(0,Math.floor(n)))},clearCart:()=>{p(void 0),g(0),f(0)},setCart:n=>{G(n),K(n)},addItems:J,handleQuantityChange:O,removeItem:B,onCartUpdate:M,cartPageToastMessage:L,setCartPageToastMessage:j,siteTheme:A,setSiteTheme:F},children:e})},y=m}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.