PageSourceSearch

https://cdn2.prose.com/build/client/assets/hooks-Dng6ADL0.js

js prose.com collected 2026-10-02 02:41:36 UTC 31,241 bytes, 5 lines download raw bytes

1
2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8ddc5864-1ab7-5f1d-8d24-310efe0364d8")}catch(e){}}();
3import{j as s}from"./jsx-runtime-Bd7SJnjc.js";import{L as U,b as _,e as te,x as _e}from"./chunk-KS7C4IRE-CAm7c3ci.js";import{c as g,T as P}from"./text-bS-fhLah.js";import"./index-DskVeTVC.js";import{a as L,b as r,s as B,h as k,g as b,p as O}from"./products-DbOTs43K.js";import{c as Ae}from"./BasicModal-DWsr_-TQ.js";import{F as Ee,a as Se}from"./consultation-urls-C-d1F0vA.js";import{B as Ie}from"./button-B-gSxbz1.js";import{f as Pe}from"./getEnv-DW8_anR-.js";import{t as Te,c as ae,A as se,N as we,a9 as Re,n as Me,q as De,U as re,l as oe,ap as Le}from"./react-redux-Ci9Owx2v.js";import{u as M,a as Ne}from"./hooks-CLWqEvEe.js";import{r as je,b as $}from"./Footer-CONZ5c8S.js";import{t as W}from"./index-D5w148lj.js";import{a as Ve,t as He}from"./sumBy-BzIIz4qN.js";import{a as Oe,e as Be,b as Ue,c as Fe,d as ze,f as Q,t as Ge}from"./prose-eye-patches-D3R1zEwg.js";import{e as K}from"./initialState-CenHDvkC.js";import{d as X}from"./dayjs.min-BDxaoNrJ.js";import{a as G}from"./header-shell-ije764D0.js";import{X as Ye,i as qe,au as Z,av as $e}from"./apiSlice-DFnYpZjO.js";import{h as We,d as Qe,b as Ke,m as Xe,a as Ze,c as Je,e as et}from"./prose-metal-tipped-brush-AYGL3SxZ.js";import{a as ne}from"./hooks-Qks92fDN.js";import{u as tt}from"./apiSlice-DpAqzdoI.js";import{b as at,j as st}from"./selectors-DumH_hek.js";import{a as S,s as d,b as w,c as rt,n as y,u as Y,q as ie,o as ot}from"./AuthClient-CDCjWXKF.js";import{u as nt,g as it}from"./apiSlice-KSKA7L53.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"[email protected]"}}catch{}})();function ct(...e){return Oe(lt,e)}function lt(e,a){if(!Ve(e,2))return e[0];let[t]=e,[,...n]=e;for(let c of n)a(c,t)<0&&(t=c);return t}function J(...e){return Te(Object.values,e)}const dt="data:image/svg+xml,%3csvg%20width='20'%20height='18'%20viewBox='0%200%2020%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cline%20y1='1'%20x2='20'%20y2='1'%20stroke='%23323429'%20stroke-width='2'/%3e%3cline%20y1='9'%20x2='20'%20y2='9'%20stroke='%23323429'%20stroke-width='2'/%3e%3cline%20y1='17'%20x2='20'%20y2='17'%20stroke='%23323429'%20stroke-width='2'/%3e%3c/svg%3e",ut="https://cdn2.prose.com/build/client/assets/accessories-category-CVYAV3Ep.jpg",pt="https://cdn2.prose.com/build/client/assets/haircare-category-DqfRMx1n.jpg",mt="https://cdn2.prose.com/build/client/assets/skincare-category-DaVDLoTJ.jpg",ht="data:image/svg+xml,%3csvg%20fill='none'%20height='22'%20viewBox='0%200%2062%2022'%20width='62'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cclipPath%20id='a'%3e%3cpath%20d='m0%200h62v22h-62z'%20/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23a)'%20fill='%23283333'%3e%3cpath%20d='m57.1826%209.81135-.0029-.00581h.0029c-.0203-3.77319-1.9774-6.18065-5.3719-6.18065s-5.589%202.52805-5.589%206.2315c0%203.70341%202.18%206.23151%205.589%206.23151%202.5665%200%204.3658
3-1.2175%205.1504-3.4666l-2.1381-.5492c-.3879%202.3566-1.4605%203.3998-3.0123%203.3998-1.973%200-3.1745-1.668-3.1745-5.61406%200-.01453%200-.02906%200-.04504h8.5449zm-5.3719-5.57043c1.8456%200%202.8111%201.37735%202.9284%204.86577h-6.087c.1462-3.40851%201.3144-4.86577%203.1586-4.86577zm-10.9782%204.63621-1.2377-.3516c-1.5879-.44604-2.3508-1.2277-2.3508-2.21132%200-1.14198%201.0393-2.07183%202.1583-2.07183%201.4722%200%202.4145.89498%202.6953%203.00605l1.9571-.5027c-.4038-2.02535-2.3407-3.12084-4.6538-3.12084-1.8573%200-3.7854%201.31197-3.7854%203.38526%200%201.63306%201.1045%202.8782%203.2295%203.48695l1.2376.3516c1.5185.4214%202.6853%201.0359%202.6853%202.2854s-1.119%202.3363-2.6042%202.3363-2.6881-1.0301-3.0123-3.3998l-2.0411.5245c.4372%202.2535%202.4869%203.4913%205.0534%203.4913s4.3513-1.6839%204.3513-3.7223-1.4649-2.85496-3.684-3.48842zm-35.40129-5.25369c-1.39544%200-2.47966.68722-3.20922%201.32505v-1.06934h-2.22199v17.62075h2.22199v-6.7371c.72956.6379%201.81233%201.3251%203.20922%201.3251%203.36989%200%205.44419-2.5281%205.44419-6.23151%200-3.70345-2.0743-6.23295-5.44419-6.23295zm-.08686%2011.73656c-1.17251%200-2.49992-.7192-3.12236-1.6505v-7.70766c.62244-.93131%201.95853-1.65195%203.12236-1.65195%201.87603%200%203.1021%201.55896%203.1021%205.50505%200%203.94606-1.22463%205.50506-3.1021%205.50506zm16.02875-9.66908c-.2374%200-.4734-.12931-.7788-.41408l-.8077-.7526c-.8078-.7526-1.1624-.91242-1.6676-.91242s-1.0119.32981-1.6068.94148c-.4618.4751-.8063.87174-1.1812%201.40641v-2.08056h-2.222v11.95305h2.222v-8.87871c.6847-.93422%201.3549-1.63887%202.0714-1.63887.4169%200%20.6297.17289%201.1349.64218l.8078.7526c.4733.44168.7035.65962%201.1812.65962.6253%200%201.4157-1.23642%201.6762-1.77399l-.2736-.20922c-.191.21503-.385.30656-.5558.30656zm6.6167-2.06748c-3.409%200-5.589%202.52805-5.589%206.2315%200%203.70346%202.18%206.23146%205.589%206.23146s5.589-2.528%205.589-6.23146c0-3.70345-2.18-6.2315-5.589-6.2315zm0%2011.84546c-1.9802%200-3.2005-1.6534-3.2005-5.61396%200-3.96061%201.2203-5.61402%203.2005-5.61402%201.9803%200%203.1861%201.65341%203.1861%205.61402%200%203.96056-1.2058%205.61396-3.1861%205.61396z'%20/%3e%3cpath%20d='m60.3702%203.5c.9003%200%201.6299.73081%201.6299%201.63597s-.7281%201.63596-1.6299%201.63596c-.9019%200-1.63-.7308-1.63-1.63596s.7281-1.63597%201.63-1.63597zm0%202.9799c.7426%200%201.3361-.60005%201.3361-1.34539%200-.74533-.5935-1.34538-1.3361-1.34538s-1.3361.60005-1.3361%201.34538c0%20.74534.5935%201.34539%201.3361%201.34539zm.4429-.39519-.4704-.80491h-.2939v.80491h-.3083v-1.89894h.7701c.3662%200%20.5891.20486.5891.5492%200%20.29058-.1534.47655-.4212.53176l.4791.81798zm-.7657-1.1042h.4617c.1636%200%20.2722-.08137.2722-.24118%200-.15982-.1086-.24555-.2722-.24555h-.4617z'%20/%3e%3c/g%3e%3c/svg%3e",gt="data:image/svg+xml,%3csvg%20width='21'%20height='22'%20viewBox='0%200%2021%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20id='Vector'%20d='M10.5%2011.2063C13.3322%2011.2063%2015.8882%2012.3063%2017.8224%2014.1625C19.6875%2016.0188%2020.9309%2018.4937%2021%2021.3125V22H20.3092H0.690789H0V21.3125C0.0690789%2018.4937%201.3125%2015.95%203.17763%2014.1625C5.04276%2012.3063%207.66776%2011.2063%2010.5%2011.2063ZM10.5%200C13.3322%200%2015.6809%202.26875%2015.6809%205.15625C15.6809%207.975%2013.3322%2010.3125%2010.5%2010.3125C7.66776%2010.3125%205.31908%208.04375%205.31908%205.15625C5.31908%202.3375%207.59868%200%2010.5%200Z'%20fill='%23323429'/%3e%3c/svg%3e",T={haircare:"/products/haircare",skincare:"/pages/skincare",accessories:"/products/accessories"},ee=e=>`${L[r.BRUSH]}?${new URLSearchParams({variant:e})}`,ce={haircare:{eyebrow:"Custom haircare",title:"Find exactly what your hair needs",consultationCta:{text:"Get your formula",to:Se,dataClick:"consultation",dataTestId:"navbar-mega-menu-haircare-cta"},shopAll:{text:"Shop all Haircare",to:T.haircare,dataClick:"haircare",dataTestId:"navbar-mega-menu-haircare-shop-all"},groups:[{label:"Cleanse + Condition",links:[{text:"Shampoo",to:k[r.SHAMPOO],dataClick:"shampoo"},{text:"Conditioner",to:k[r.CONDITIONER],dataClick:"conditioner"},{text:"Leave-in Conditioner",to:k[r.LEAVEIN_CONDITIONER],dataClick:"leave-in-conditioner"}]},{label:"Treat",links:[{text:"Hair Mask",to:k[r.HAIR_MASK],dataClick:"hair-mask"},{text:"Scalp Mask",to:k[r.SCALP_MASK],dataClick:"scalp-mask"},{text:"Hair Supplements",to:k[r.SUPPLEMENT_CORE],dataClick:"hair-supplements"},{text:"Scalp Serum",to:k[r.SCALP_SERUM],dataClick:"scalp-serum"}]}
3,{label:"Style",links:[{text:"Curl Cream",to:k[r.CURL_CREAM],dataClick:"curl-cream"},{text:"Hair Oil",to:k[r.OIL],dataClick:"hair-oil"},{text:"Styling Gel",to:k[r.STYLING_GEL],dataClick:"styling-gel"},{text:"Dry Shampoo",to:k[r.DRY_SHAMPOO],dataClick:"dry-shampoo"}]}]},skincare:{eyebrow:"Custom skincare",title:"Find exactly what your skin needs",consultationCta:{text:"Get your formula",to:Ee,dataClick:"consultation",dataTestId:"navbar-mega-menu-skincare-cta"},shopAll:{text:"Shop all Skincare",to:T.skincare,dataClick:"skincare",dataTestId:"navbar-mega-menu-skincare-shop-all"},groups:[{label:"Cleanse",links:[{text:"Cleanser",to:B[r.CLEANSER],dataClick:"cleanser"}]},{label:"Treat",links:[{text:"Serum",to:B[r.SERUM],dataClick:"serum"}]},{label:"Eye care",links:[{text:"Eye Cream",to:B[r.EYE_CREAM],dataClick:"eye-cream",slug:r.EYE_CREAM,tag:"New"},{text:"Eye Patches",to:L[r.EYE_PATCHES],dataClick:"eye-patches-skincare",slug:r.EYE_PATCHES,tag:"New"}]},{label:"Moisturize",links:[{text:"Moisturizer",to:B[r.MOISTURIZER],dataClick:"moisturizer"}]}]},accessories:{title:"Accessories",shopAll:{text:"Shop all Accessories",to:T.accessories,dataClick:"accessories",dataTestId:"navbar-mega-menu-accessories-shop-all"},groups:[{label:"Tools",links:[{text:"Hair Towel Wrap",to:L[r.HAIR_TOWEL_WRAP],dataClick:"hair-towel-wrap"},{text:"Boar Bristle Brush",to:L[r.BRUSH],dataClick:"brush-boar"},{text:"Boar + Nylon Brush",to:ee(r.BRUSH_MIXED),dataClick:"brush-mixed"},{text:"Metal-tipped Brush",to:ee(r.BRUSH_DETANGLING),dataClick:"brush-detangling"},{text:"Eye Patches",to:L[r.EYE_PATCHES],dataClick:"eye-patches",slug:r.EYE_PATCHES,tag:"New"}]},{label:"Ritual Essentials",links:[{text:"Candle",to:L[r.CANDLE],dataClick:"candle"}]},{label:"Gifting",links:[{text:"Digital Gift Cards",to:"/gift",dataClick:"gift"}]}]},about:{title:"About us",groups:[{links:[{text:"Our story",to:"/about",dataClick:"about",dataTestId:"navbar-about-tab"},{text:"Sustainability & social impact",to:"/sustainability-and-social-impact",dataClick:"sustainability-and-social-impact",dataTestId:"navbar-sustainability-and-social-impact-tab"}]}]}},bt=[{text:"Haircare",to:T.haircare,dataClick:"haircare",dataTestId:"navbar-haircare-tab",megaMenu:"haircare"},{text:"Skincare",to:T.skincare,dataClick:"skincare",dataTestId:"navbar-skincare-tab",megaMenu:"skincare"},{text:"Accessories",to:T.accessories,dataClick:"accessories",dataTestId:"navbar-accessories-tab",megaMenu:"accessories"},{text:"Our ingredients",to:"/ingredients",dataClick:"ingredients",dataTestId:"navbar-ingredients-tab"},{text:"About us",dataTestId:"navbar-about-us-tab",megaMenu:"about",subMenu:ce.about.groups.flatMap(e=>e.links)},{text:"Reviews",to:"/reviews",dataClick:"reviews",dataTestId:"navbar-reviews-tab"},{text:"Gift Prose",to:"/gift",dataClick:"gift",dataTestId:"navbar-gift-tab"}],F={signinLink:"Sign in",logo:{image:ht,alt:"Prose black logo"},menuIcon:{closed:{image:dt,alt:"Closed menu icon"},opened:{image:Ae,alt:"Opened menu icon"}},userIcon:{image:gt,alt:"User icon"},productCategories:[{text:"Haircare",to:T.haircare,dataClick:"haircare",dataFrom:"header-nav",dataTestId:"navbar-haircare-tab",description:"Truly custom haircare, personalized to your hair goals, lifestyle, and environment.",image:pt},{text:"Skincare",to:T.skincare,dataClick:"skincare",dataFrom:"header-nav",dataTestId:"navbar-skincare-tab",description:"Clinically backed formulas, personalized to your unique skin goals and concerns.",image:mt},{text:"Accessories",to:T.accessories,dataClick:"accessories",dataFrom:"header-nav",dataTestId:"navbar-accessories-tab",description:"Luxurious, sustainably crafted accessories that elevate your daily beauty rituals.",image:ut}],menuOptions:bt,megaMenus:ce,secondaryNavLinks:[{text:"Our ingredients",to:"/ingredients",dataClick:"ingredients",dataFrom:"header-nav",dataTestId:"navbar-ingredients-tab"},{text:"Our story",to:"/about",dataClick:"about",dataFrom:"header-nav",dataTestId:"navbar-about-tab"},{text:"Reviews",to:"/reviews",dataClick:"reviews",dataFrom:"header-nav",dataTestId:"navbar-reviews-tab"},{text:"Subscribe & Save",to:"/the-salon",dataClick:"membership-lp-prospects",dataFrom:"header-nav",dataTestId:"navbar-membership-link"},{text:"Contact us",to:"/contact",dataClick:"contact-us",dataFrom:"header-nav",dataTestId:"navbar-contact-tab"},{text:"FAQs",to:"/faq",dataClick:"faq",dataFrom:"header-nav",dataTestId:"navbar-faq-tab"},{text:"Sustainability & social impact",to:"/sustainability-and-social-impact",dataClick:"sustainability-and-social-impact",dataFrom:"header-nav",dataTestId:"navbar-sustainability-and-social-impact-tab"},{text:"Gift Prose",to:"/gift",dataClick:"gift",dataFrom:"header-nav",dataTestId:"navbar-gift-tab"}]},Ct=[r.EYE_CREAM,r.EYE_PATCHES],ft=(e,a)=>a?e:e.filter(({slug:t})=>t===void 0||!Ct.includes(t)),Va=(e,a)=>a?e.map(t=>t.launchBgPicture?{...t,bgPicture:t.launchBgPicture,bgLabelledPicture:t.launchBgLabelledPicture??t.launchBgPicture,bgPictureAlt:t.launchBgPictureAlt??t.bgPictureAlt,launchBgPicture:void 0,launchBgLabelledPicture:void 0,launchBgPictureAlt:void 0}:t):e.map(t=>t.cardTag||t.keyFeatureCaption||t.launchBgPicture?{...t,cardTag:void 0,keyFeatureCaption:void 0,launchBgPicture:void 0,launchBgLabelledPicture:void 0,launchBgPictureAlt:void 0}:t),vt="/pages/skincare",yt="/products/skincare",z=(e,a)=>a?e.map(t=>t.to===vt?{...t,to:yt}:t):e,xt=(e,a)=>a?{...e,shopAll:e.shopAll&&z([e.shopAll],!0)[0],groups:e.groups.map(t=>({...t,links:z(t.links,!0)}))}:{...e,groups:e.groups.map(t=>({...t,links:ft(t.links,!1)})).filter(t=>t.links.length>0)},kt=200,_t=g("pointer-events-none absolute top-full left-0 w-full bg-neutral-100/75 backdrop-blur-[50px]","shadow-[0_10px_50px_0_--alpha(var(--color-primary-400)/10%)]","transition-opacity duration-200 motion-reduce:transition-none","data-[state=closed]:opacity-0"),At=g("absolute top-full left-0 w-full px-32 py-64","transition-opacity duration-200 motion-reduce:transition-none starting:opacity-0","data-[state=open]:delay-200","data-[state=closing]:pointer-events-none data-[state=closing]:opacity-0"),Et=({height:e,isOpen:a})=>
3s.jsx("div",{"aria-hidden":!0,className:_t,"data-state":a?"open":"closed","data-testid":"navbar-menu-band",style:{height:e}}),St=g("flex flex-col gap-24 border-r border-neutral-800/50 pr-[17%]"),It=g("grid grid-cols-[repeat(auto-fit,minmax(20%,1fr))] gap-16"),le=g("no-underline-reset any-hover:underline"),Pt=g("rounded-20 bg-highlight-200/75 inline-flex px-12 py-4 backdrop-blur-[2px]"),Tt=()=>s.jsx("svg",{"aria-hidden":!0,className:"size-12 shrink-0",fill:"none",viewBox:"0 0 12 12",children:s.jsx("path",{d:"M3.94975 1.10055L8.8995 6.05029L3.94975 11",stroke:"currentColor",strokeLinecap:"round"})}),wt=({link:e,onNavigate:a})=>s.jsxs("span",{className:"flex items-center gap-8",children:[s.jsx(P,{asChild:!0,color:"primary.400",variant:"body3regular",children:s.jsx(U,{className:le,"data-click":e.dataClick,"data-from":"header-nav-menu","data-testid":e.dataTestId,onClick:a,to:e.to,children:e.text})}),e.tag&&s.jsx("span",{className:Pt,"data-testid":`${e.dataClick}-tag`,children:s.jsx(P,{as:"span",color:"primary.300",variant:"body4regular",children:e.tag})})]}),Rt=({id:e,menu:a,menuContent:t=F.megaMenus[a],onNavigate:n,ref:c,state:h})=>{const{consultationCta:u,eyebrow:f,groups:o,shopAll:p,title:m}=t;return s.jsx("div",{ref:c,className:At,"data-state":h,"data-testid":`navbar-mega-menu-${a}`,id:e,inert:h==="closing",children:s.jsxs("div",{className:"grid min-h-[8.5rem] grid-cols-[27%_52%] gap-64 px-24",children:[s.jsxs("div",{className:St,children:[s.jsxs("div",{className:"flex flex-col gap-12",children:[f&&s.jsx(P,{as:"p",color:"neutral.800",variant:"label2regular",children:f}),s.jsx(P,{as:"p",color:"primary.300",variant:"h3",children:m})]}),u&&s.jsx(Ie,{appearance:"primaryLight",asChild:!0,"data-click":u.dataClick,"data-from":"header-nav-menu","data-testid":u.dataTestId,onClick:n,size:"fill-parent-full",children:s.jsx(U,{to:u.to,children:u.text})}),p&&s.jsx(P,{asChild:!0,color:"primary.400",variant:"body3regular",children:s.jsxs(U,{className:g(le,"flex items-center gap-12"),"data-click":p.dataClick,"data-from":"header-nav-menu","data-testid":p.dataTestId,onClick:n,to:p.to,children:[p.text,s.jsx(Tt,{})]})})]}),s.jsx("div",{className:It,children:o.map((x,R)=>{const I=x.label?`${e}-group-${R}`:void 0;return s.jsxs("div",{className:"flex flex-col gap-12",children:[x.label&&s.jsx(P,{as:"p",color:"neutral.800",id:I,variant:"label2regular",children:x.label}),s.jsx("ul",{"aria-labelledby":I,className:"m-0 flex list-none flex-col gap-16 p-0",children:x.links.map(A=>s.jsx("li",{children:s.jsx(wt,{link:A,onNavigate:n})},A.text))})]},x.label??x.links[0]?.text)})})]})})},N=({children:e,...a})=>s.jsx(P,{asChild:!0,color:"primary.400",variant:"body4regular",children:s.jsx(U,{...a,className:"no-underline-reset",children:e})}),Mt=300,Dt=g("border-primary-400 inline-block size-8 border-t-[1.5px] border-r-[1.5px]","transition-transform duration-300 motion-reduce:transition-none"),Lt=g("[transform:translateY(-25%)_rotate(135deg)]"),Nt=g("[transform:translateY(25%)_rotate(-45deg)]"),de=g("h-(--env-navbar-height) cursor-pointer border-none bg-transparent p-0","flex items-center"),jt=g(de,"relative ml-4 justify-center px-12","after:absolute after:-inset-x-8 after:inset-y-0 after:content-['']"),Vt=({isClosing:e,isOpen:a,menu:t,option:n,panelId:c,panelRef:h,onHover:u,onNavigate:f,onToggle:o,panelContent:p})=>{const m=g(Dt,a?Nt:Lt);return s.jsxs("div",{className:"flex shrink-0 items-center",onMouseEnter:()=>u(t),children:[n.to?s.jsxs(s.Fragment,{children:[s.jsx(N,{"data-click":n.dataClick,"data-from":"header-nav","data-testid":n.dataTestId,onClick:f,to:n.to,children:n.text}),s.jsx("button",{"aria-controls":a?c:void 0,"aria-expanded":a,"aria-label":`${n.text} menu`,className:jt,"data-testid":`${n.dataTestId}-toggle`,onClick:()=>o(t),type:"button",children:s.jsx("span",{"aria-hidden":!0,className:m})})]}):s.jsx(P,{asChild:!0,color:"primary.400",variant:"body4regular",children:s.jsxs("button",{"aria-controls":a?c:void 0,"aria-expanded":a,className:g(de,"gap-16"),"data-testid":n.dataTestId,onClick:()=>o(t),type:"button",children:[n.text,s.jsx("span",{"aria-hidden":!0,
3className:m})]})}),(a||e)&&s.jsx(Rt,{ref:h,id:c,menu:t,menuContent:p,onNavigate:f,state:a?"open":"closing"})]})},Ht=({className:e,hasSubscription:a,isEyeCreamLaunched:t})=>{const n=z(F.menuOptions,t),[c,h]=_.useState(null),[u,f]=_.useState(null),o=_.useRef(!1),p=_.useRef(null),m=_.useRef(null),x=_.useId(),{pathname:R}=te(),I=()=>{p.current&&(clearTimeout(p.current),p.current=null)},A=()=>{m.current&&(clearTimeout(m.current),m.current=null)},E=()=>{I(),c&&(A(),f(c),h(null),m.current=setTimeout(()=>f(null),kt))},D=(l,{byHover:v})=>{I(),A(),o.current=v,f(null),h(l)},j=l=>D(l,{byHover:!0}),i=l=>{c===l&&!o.current?E():D(l,{byHover:!1})},C=()=>{I(),p.current=setTimeout(E,Mt)};_.useEffect(()=>()=>{I(),A()},[]);const[V,H]=_.useState(),fe=_.useCallback(l=>{if(!l)return;const v=()=>H(l.offsetHeight);if(v(),typeof ResizeObserver>"u")return;const q=new ResizeObserver(v);return q.observe(l),()=>q.disconnect()},[]),[ve,ye]=_.useState(R);ve!==R&&(ye(R),c&&h(null),u&&f(null));const xe=l=>{if(l.key!=="Escape"||!c)return;const v=l.currentTarget.querySelector('[aria-expanded="true"]');E(),v?.focus()},ke=l=>{l.relatedTarget&&!l.currentTarget.contains(l.relatedTarget)&&E()};return s.jsxs("div",{className:g("flex min-w-0 flex-1 items-center gap-32",e),"data-testid":"navbar-desktop-links",onBlur:ke,onKeyDown:xe,onMouseEnter:I,onMouseLeave:C,children:[s.jsx(Et,{height:V,isOpen:c!==null}),n.map(l=>{if(l.megaMenu){const{megaMenu:v}=l;return s.jsx(Vt,{isClosing:u===v,isOpen:c===v,menu:v,onHover:j,onNavigate:E,onToggle:i,option:{...l,megaMenu:v},panelContent:xt(F.megaMenus[v],t),panelId:x,panelRef:fe},l.text)}return s.jsx(N,{"data-click":l.dataClick,"data-from":"header-nav","data-testid":l.dataTestId,onMouseEnter:E,to:l.to,children:l.text},l.text)}),s.jsx(N,{"data-click":a?"membership-lp-subscribers":"membership-lp-prospects","data-from":"header-nav","data-testid":"membership-nav-link",onMouseEnter:E,to:"/the-salon",children:a?"My Subscription":"Subscribe & Save"})]})},Ot=g("border-primary-400 mt-4 ml-16 inline-block size-8 border-t-[1.5px] border-r-[1.5px]","[transform:translate3d(-112%,-75%,0)_rotate(135deg)] transition-transform duration-300","group-focus-within:[transform:translate3d(-112%,-25%,0)_rotate(-45deg)]","any-hover:group-hover:[transform:translate3d(-112%,-25%,0)_rotate(-45deg)]"),Bt=g("absolute top-full left-0 z-(--z-index-app-bar) hidden w-[240px] flex-col gap-16 bg-neutral-100 px-24 py-20","any-hover:group-hover:flex group-focus-within:flex"),Ut=({dataTestId:e,subMenu:a,text:t})=>s.jsxs("div",{className:"group relative shrink-0",children:[s.jsx(P,{asChild:!0,color:"primary.400",variant:"body4regular",children:s.jsxs("button",{"aria-haspopup":"true",className:"flex cursor-pointer items-center border-none bg-transparent p-0","data-testid":e,type:"button",children:[t,s.jsx("span",{"aria-hidden":!0,className:Ot})]})}),s.jsx("div",{className:Bt,children:a.map(({dataClick:n="",dataTestId:c="",text:h,to:u})=>s.jsx(N,{"data-click":n,"data-from":"header-nav","data-testid":c,to:u,children:h},h))})]}),Ft=({className:e,hasSubscription:a,isEyeCreamLaunched:t})=>s.jsxs("div",{className:g("flex min-w-0 flex-1 items-center gap-32",e),children:[z(F.menuOptions,t).map(n=>n.subMenu?s.jsx(Ut,{dataTestId:n.dataTestId,subMenu:n.subMenu,text:n.text},n.text):s.jsx(N,{"data-click":n.dataClick,"data-from":"header-nav","data-testid":n.dataTestId,to:n.to,children:n.text},n.text)),s.jsx(N,{"data-click":a?"membership-lp-subscribers":"membership-lp-prospects","data-from":"header-nav","data-testid":"membership-nav-link",to:"/the-salon",children:a?"My Subscription":"Subscribe & Save"})]}),Ha=({className:e,hasSubscription:a,isEyeCreamLaunched:t=!1,showAcadiaWinners:n=!1})=>n?s.jsx(Ht,{className:e,hasSubscription:a,isEyeCreamLaunched:t}):s.jsx(Ft,{className:e,hasSubscription:a,isEyeCreamLaunched:t}),ue=Pe("guestAuth"),Oa=ae([ue],e=>e===se.AUTHENTICATED),Ba=ae([ue],e=>e===se.LOADING);function Ua(){const e=M(we),a=M(Re),t=M(Me),n=M(De);return e||a?{to:"/account/reorder",label:je,dataClick:"order-prose"}:t&&!n?{to:"/checkout/haircare",label:$,dataClick:"order-prose"}:n&&!t?{to:"/checkout/skincare",label:$,dataClick:"order-prose"}:{to:"/checkout/accessories",dataClick:"order-prose"}}const Fa=e=>s.jsxs("svg",{fill:"none",height:"22",viewBox:"0 0 22 22",width:"22",xmlns:"http://www.w3.org/2000/svg",...e,children:[s.jsx("path",{d:"M15.0778 21.9999H1.11111L0 6.2666H16.1889L15.0778 21.9999Z",fill:W.colors.primary[400]}),s.jsx("path",{d:"M8.10018 0C5.43351 0 3.26685 2.16667 3.26685 4.82222V5.26667H5.3224V4.82222C5.3224 3.28889 6.56685 2.05556 8.08907 2.05556C9.61129 2.05556 10.8557 3.3 10.8557 4.82222V5.26667H12.9113V4.82222C12.9224 2.16667 10.7557 0 8.10018 0Z",fill:W.colors.primary[400]})]}),za="cta_click.upsell_in_account.add_to_cart.button_clicked.redirected",Ga="cta_click.upsell_in_account.add_to_subscription.button_clicked.modal_opened",Ya="pageview.upsell_in_account",qa="universal_cart.visited",zt="universal_cart.product_added_page",Gt="universal_cart.product_added_re
3commender",Yt="universal_cart.product_removed",qt="https://cdn2.prose.com/build/client/assets/accessories-collection-eye_patches-uloqCyY6.jpg",$t="https://cdn2.prose.com/build/client/assets/accessories-collection-hair_towel-CuGdJVUb.jpg",Wt="https://cdn2.prose.com/build/client/assets/upsell-boar-brush-CunYQgSe.jpg",Qt="https://cdn2.prose.com/build/client/assets/upsell-detangling-brush-C5myQgH7.jpg",Kt="https://cdn2.prose.com/build/client/assets/upsell-mixed-brush-C-XnYWaX.jpg",pe={[r.CANDLE_ARCADIA]:{label:b[r.CANDLE_ARCADIA],description:"8.6 fl oz",picture:et,upsale:{label:b[r.CANDLE_ARCADIA],underLabel:"8.6 fl oz",description:"Up to 50 hours burn time",picture:ze,altPicture:"Arcadia candle with number 3 on it."},hasMonogram:!1},[r.CANDLE_PRELUDE]:{label:b[r.CANDLE_PRELUDE],description:"8.6 fl oz",picture:Je,upsale:{label:b[r.CANDLE_PRELUDE],underLabel:"8.6 fl oz",description:"Up to 50 hours burn time",picture:Fe,altPicture:"Prelude candle with number 2 on it."},hasMonogram:!1},[r.CANDLE_CORSICA]:{label:b[r.CANDLE_CORSICA],description:"8.6 fl oz",picture:Ze,upsale:{label:b[r.CANDLE_CORSICA],underLabel:"8.6 fl oz",description:"Up to 50 hours burn time",picture:Ue,altPicture:"Corsica candle with number 1 on it."},hasMonogram:!1},[r.BRUSH_MIXED]:{label:b[r.BRUSH_MIXED],description:"medium to thick hair",picture:Xe,upsale:{label:b[r.BRUSH_MIXED],underLabel:"Monogram available",description:"medium to thick hair",picture:Kt,altPicture:"A wooden hair brush with metal pins and boar hair."},hasMonogram:!0},[r.BRUSH_BOAR]:{label:b[r.BRUSH_BOAR],description:"fine to medium hair",picture:Ke,upsale:{label:b[r.BRUSH_BOAR],underLabel:"Monogram available",description:"fine to medium hair",picture:Wt,altPicture:"A wooden hair brush with metal pins."},hasMonogram:!0},[r.BRUSH_DETANGLING]:{label:b[r.BRUSH_DETANGLING],description:"thick or curly hair",picture:Qe,upsale:{label:b[r.BRUSH_DETANGLING],underLabel:"Monogram available",description:"thick or curly hair",picture:Qt,altPicture:"A wooden hair brush with boar hair."},hasMonogram:!0},[r.HAIR_TOWEL_WRAP]:{label:b[r.HAIR_TOWEL_WRAP],description:"23” x 37” in",picture:We,upsale:{label:b[r.HAIR_TOWEL_WRAP],underLabel:"23” x 37” in",description:"For all textures & lengths",picture:$t,altPicture:"Green hair towel wrap on a table."},hasMonogram:!1},[r.EYE_PATCHES]:{label:b[r.EYE_PATCHES],description:"1 pair, 1.2 oz",picture:Be,upsale:{label:b[r.EYE_PATCHES],underLabel:"1 pair, 1.2 oz",description:"A set of reusable under-eye patches that help seal in your eye cream, lock in moisture, and refresh the delicate eye area for a well-rested look.",picture:qt,altPicture:"Prose reusable eye patches tin."},hasMonogram:!1}},Xt=S({copy:d().optional(),smells_like:d().optional()}),Zt=S({title:d().nullable(),description:d()}),Jt=S({details:w(Zt),sub_title:d()}),ea=S({name:d(),picture_name:d(),slug:d(),usage:d()}),ta=S({recommended_frequency:y(),frequency_options:w(y()),subscribable:rt()}),me=S({rank:y(),type:d(),category:ie("formula"),quantity:y(),min_quantity:y(),max_quantity:y(),routine:d().nullable(),capacity:Y([d(),y()]).nullable(),label:d().nullable(),fragrance:d().nullable(),fragrance_description:Xt.nullable(),description:w(d()).nullable(),subscription:ta.nullable(),ingredients:w(ea)}),he=S({rank:y(),type:d(),category:ie("product"),quantity:y(),min_quantity:y(),max_quantity:y(),routine:d().nullable(),label:d().nullable(),description:d().nullable(),description_details:Jt.nullable()}),aa=S({product_slug:d().nullable().optional(),slug:d().nullable().optional(),rank:y().nullable().optional()});Y([me,he]);const sa=Y([me,he,aa]),ra=S({name:d(),items:w(sa),tags:w(d()).nullable().optional(),version:d().nullable().optional()}),oa=S({sections:w(ra),transaction_id:d().optional(),tags:w(d()).nullable().optional(),version:d().nullable().optional()}),na=e=>"slug"in e,ia=at.injectEndpoints({endpoints:e=>({getRecommendation:e.query({query:()=>({url:"v1/recommendation/",method:"GET"}),responseSchema:ot("getRecommendation",oa),providesTags:["recommendation"]})})}),{useGetRecommendationQuery:ca}=ia,[ge,$a,Wa]=st(re("checkout.addresses")),la=oe(Ye,ge,(e,a)=>a.find(t=>t.pubkey===e?.shipping_address)||a.find(t=>t.primary)||a[0]),Qa=oe(la,re("pubkey")),be=e=>{if(!e)return[];const a=J(e);if(a.length===0)return[];const t=ct(a,[u=>X(new Date(u.max)).format("YYYYMMDD"),"desc"]);if(!t)return[];const n=J(t),c=Q(n,u=>X(new Date(u))),h=Ge(c,u=>u.format("YYYYMMDD"));return Q(h,u=>u.format("M/D"))},da=e=>{const a=be(e);return!a||a.length===0?"":a.length===1?`Arrives by ${a[0]}`:`Arrives between ${a[0]} and ${a[a.length-1]}`},Ce=()=>{const e=G(),[a]=_e(),{shouldShow:t}=ne("universal-cart"),n=a.get("origin");return n==="gift"?{category:void 0,flow:"gift"}:n?.startsWith("upsell_account_")?{category:e,flow:"upsell_in_account"}:t&&(e===O.HAIRCARE||e===O.SKINCARE||e===O.ACCESSORIES)?{category:e,flow:"standard"}:{category:e}},Ka=()=>{const{shouldShow:e}=ne("universal-cart");return _.useMemo(()=>e?{category:O.ACCESSORIES,flow:"standard"}:{category:O.ACCESSORIES},[e])},Xa=({expressCheckout:e=!1,skip:a=!1}={})=>{const t=G(),n=Ce(),c=M(ge),h=M(Le),u=M(qe);return nt(n,{selectFromResult:({data:o,isLoading:p})=>{const m=o?.cartitems.reduce((i,C)=>i+(C?.total_discount||0),0),x=o?.cartitems.reduce((i,C)=>i+(C?.total_price||0),0),R=m&&x?Math.round(m/x*100):0,A=o?.coupons.map(i=>({...i,value:i.total_price}))?.map(({origin:i,label:C,property:V,total_price:H})=>({property:V,label:K(C)?Z(i??""):C,value:H})),E=o?.payment_from_customer===0,D=o?.cartitems?.some(i=>i.subscription),j=E&&!D;return{cartV2:o,isLoading:p,cartItemsV2:o?.cartitems,cartProductsV2:o?.cartitems.map(i=>{const C=i.variant_slug||i.product_type;return{...pe[C],...i,slug:C,type:C,subscription:i.subscription?{...i.subscription,frequency:i.subscription.frequency_in_weeks}:i.subscription}}),currencyV2:o?.currency,countryCartV2:o?.country,isFreeOrderV2:E,isFreeOrderWithoutSubscriptionV2:j,creditCouponsV2:A?.filter(i=>i.property==="credit"),offerCouponsV2:A?.filter(i=>i.property==="offer"),subscriptionCouponsV2:A?.filter(i=>i.property==="subscription"),cartProductsQuantityV2:He(o?.cartitems??[],i=>i.quantity),giftCardsV2:o?.gift_cards?.map(({origin:i,label:C,property:V,total_price:H})=>({property:V,label:K(C)?Z(i??""):C,value:H})),canSubscribe:o?.can_subscribe,cartHasSubscriptionV2:D,paymentFromCustomerV2:o?.payment_from_customer,totalPriceV2:o?.total_price,totalShippingV2:o?.total_shipping,shippingAddressV2:o?.shipping_address,totalOrderAmountV2:Math.round(100*(o?.payment_from_customer??0)),deliveryByV2:da(o?.shipping_estimate),defaultAddressPubkeyV2:(c?.find(i=>i.pubkey===o?.shipping_address)||c?.find(i=>i.primary)||c?.[0])?.pubkey,savedSelectedAddressV2:c?.find(i=>i.pubkey===o?.shipping_address),isPayableV2:!j&&(e||o?.shipping_address),hasCompletedShippingAddressSectionV2:!!o?.shipping_address,hasCompletedPaymentSectionV2:!!u||j,shouldProposePumpsV2:o?.need_pumps&&(D||h?.includes(t)),giftWithPurchaseListV2:o?.promotionalgifts,subscribedItemsV2:o?.cartitems.filter(i=>i.subscription),subscriptionDiscountV2:R,sortedDeliveryDatesV2:be(o?.shipping_estimate)}},skip:a})},ua=({skipRecommendationFetch:e=!1}={})=>{const a=G(),{data:t}=ca({category:a},{skip:e}),h=(t?.sections?.map(o=>({...o,items:o.items.filter(na)}))??[]).find(o=>o.name==="accessories_upsell")?.items?.slice(0,3),{data:u}=tt(void 0);return{upsellSectionProducts:h?.map(o=>{const p=u?.find(m=>o.slug===m.type)?.price;return{...o,...pe?.[o.product_slug]?.upsale,price:p}}),transactionId:t?.transaction_id}},Za=({skipRecommendationFetch:e=!1}={})=>{const a=Ne(),{pathname:t}=te(),n=Ce(),{data:c}=it.useQueryState(n),{upsellSectionProducts:h,transactionId:u}=ua({skipRecommendationFetch:e});return{trackPubsubProduct:(o,p)=>{c&&a($e({eventName:o,data:{added_products:(o===Gt||o===zt)&&p?[p]:void 0,url:t,transaction_id:u,cart_products:c.cartitems.map(m=>m.variant_slug||m.product_type),upsell_products:h?.map(m=>m.product_slug||m.slug),removed_products:o===Yt&&p?[p]:void 0}}))}}};export{Fa as B,Ha as D,yt as S,qa as U,Ua as a,Wa as b,ge as c,ft as d,Ce as e,Xa as f,Oa as g,ca as h,Qa as i,ua as j,pe as k,Za as l,Yt as m,F as n,Gt as o,Ba as p,Ga as q,za as r,Ya as s,J as t,Ka as u,Va as v,z as w,zt as x};
4
5//# debugId=8ddc5864-1ab7-5f1d-8d24-310efe0364d8

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.