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.