1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var l={default:function(){return d},getImageProps:function(){return c}};for(var a in l)Object.defineProperty(r,a,{enumerable:!0,get:l[a]});let s=e.r(55682),i=e.r(8927),o=e.r(5500),n=s._(e.r(1948));function c(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:n.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=o.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},18566,(e,t,r)=>{t.exports=e.r(91796)},70119,e=>{"use strict";var t=e.i(43476),r=e.i(71645),l=e.i(57688),a=e.i(22016),s=e.i(35025),i=e.i(80265),o=e.i(18566);function n({variant:e="compact"}){let[l,a]=(0,r.useState)("expanded"===e),[s,i]=(0,r.useState)(""),c=(0,r.useRef)(null),d=(0,o.useRouter)();function u(t){t.preventDefault(),s.trim()&&(d.push(`/search?q=${encodeURIComponent(s.trim())}`),"expanded"!==e&&a(!1),i(""))}return((0,r.useEffect)(()=>{l&&c.current?.focus()},[l]),"expanded"===e)?(0,t.jsxs)("form",{onSubmit:u,className:"flex items-center",children:[(0,t.jsx)("input",{type:"text",value:s,onChange:e=>i(e.target.value),placeholder:"Search products...",className:"flex-1 rounded-l border border-white/10 bg-zinc-950 px-3 py-2 text-sm text-white focus:border-lime-500 focus:outline-none"}),(0,t.jsx)("button",{type:"submit","aria-label":"Search",className:"rounded-r border border-l-0 border-white/10 bg-zinc-950 px-4 py-2 hover:text-lime-500",children:"ð"})]}):(0,t.jsx)("div",{className:"relative flex items-center",children:l?(0,t.jsxs)("form",{onSubmit:u,className:"flex items-center",children:[(0,t.jsx)("input",{ref:c,type:"text",value:s,onChange:e=>i(e.target.value),onBlur:()=>{s||a(!1)},placeholder:"Search products...",className:"w-40 rounded-l border border-white/10 bg-zinc-950 px-3 py-1.5 text-xs text-white focus:border-lime-500 focus:outline-none sm:w-56"}),(0,t.jsx)("button",{type:"submit","aria-label":"Search",className:"rounded-r border border-l-0 border-white/10 bg-zinc-950 px-3 py-1.5 hover:text-lime-500",children:"ð"})]}):(0,t.jsx)("button",{onClick:()=>a(!0),"aria-label":"Open search",className:"text-lg hover:text-lime-500",children:"ð"})})}let c=[{label:"Home",href:"/"},{label:"Big Puff Vapes",href:"/big-puff-vapes",children:[{label:"All Big Puff Vapes",href:"/big-puff-vapes",group:"Shop big puff vapes"},{label:"Prefilled Vape Kits",href:"/big-puff-vapes/prefilled-vape-kits",group:"Shop big puff vapes"},{label:"Prefilled Pod Kits",href:"/big-puff-vapes/prefilled-vape-kits",group:"Shop big puff vapes"},{label:"Prefilled Pods",href:"/big-puff-vapes/prefilled-pods",group:"Shop big puff vapes"},{label:"Rechargeable Big Puffs",href:"/big-puff-vapes",group:"Shop big puff vapes"},{label:"6000 Puff Vapes",href:"/big-puff-vapes/6000-puffs",group:"Shop big puff vapes"},{label:"10,000+ Puff Vapes",href:"/big-puff-vapes/10000-plus-puffs",group:"Shop big puff vapes"},{label:"Hayati",href:"/big-puff-vapes/hayati",group:"By brand"},{label:"Lost Mary",href:"/big-puff-vapes/lost-mary",group:"By brand"},{label:"ELFBAR",href:"/big-puff-vapes/elf-bar",group:"By brand"},{label:"IVG",href:"/big-puff-vapes/ivg",group:"By brand"},{label:"SKE",href:"/big-puff-vapes/ske",group:"By brand"},{label:"Bloody Bar",href:"/big-puff-vapes/bloody-bar",group:"By brand"},{label:"Crystal Pro",href:"/big-puff-vapes/crystal-pro",group:"By brand"},{label:"Hyola",href:"/big-puff-vapes/hyola",group:"By brand"},{label:"Hayati Pro Ultra+ 25K",href:"/products/hayati-pro-ultra-25k",group:"Popular devices"},{label:"Hayati Pro Max Plus 6000",href:"/products/hayati-pro-max-plus-6000",group:"Popular devices"},{label:"Lost Mary Nera30K Fullview",href:"/products/lost-mary-nera-30k-fullview",group:"Popular devices"},{label:"Elf Bar Dual 10K",href:"/products/elf-bar-dual-10k",group:"Popular devices"},{label:"Crystal Pro CP10K",href:"/products/crystal-pro-cp10k",group:"Popular devices"},{label:"Bloody Bar Crystal 10K",href:"/products/bloody-bar-crystal-10k",group:"Popular devices"},{label:"Best Sellers",href:"/big-puff-vapes?sort=popular",group:"Quick links"},{label:"New Arrivals",href:"/big-puff-vapes?sort=newest",group:"Quick links"},{label:"Multi-Buy Deals",href:"/deals",group:"Quick links"},{label:"All Big Puff Vapes â",href:"/big-puff-vapes",group:"Quick links"}]},{label:"Pod Kits",href:"/pod-kits",children:[{label:"All Pod Kits",href:"/pod-kits",group:"Pod kit type"},{label:"Refillable Pod Kits",href:"/pod-kits/refillable",group:"Pod kit type"},{label:"Starter Pod Kits",href:"/pod-kits/starter",group:"Pod kit type"},{label:"MTL Pod Kits",href:"/pod-kits/mtl",group:"Pod kit type"}
1,{label:"Nic Salt Pod Kits",href:"/pod-kits/nic-salts",group:"Pod kit type"},{label:"Advanced Pod Kits",href:"/pod-kits/advanced",group:"Pod kit type"},{label:"Vaporesso XROS",href:"/pod-kits/vaporesso-xros",group:"Popular series"},{label:"OXVA XLIM",href:"/pod-kits/oxva-xlim",group:"Popular series"},{label:"Uwell Caliburn",href:"/pod-kits/uwell-caliburn",group:"Popular series"},{label:"VooPoo Argus",href:"/pod-kits/voopoo-argus",group:"Popular series"},{label:"SMOK Novo",href:"/pod-kits/smok-novo",group:"Popular series"},{label:"Geekvape Wenax",href:"/pod-kits/geekvape-wenax",group:"Popular series"},{label:"Vaporesso",href:"/brands/vaporesso",group:"Popular brands"},{label:"OXVA",href:"/brands/oxva",group:"Popular brands"},{label:"Uwell",href:"/brands/uwell",group:"Popular brands"},{label:"VooPoo",href:"/brands/voopoo",group:"Popular brands"},{label:"Geekvape",href:"/brands/geekvape",group:"Popular brands"},{label:"SMOK",href:"/brands/smok",group:"Popular brands"},{label:"Innokin",href:"/brands/innokin",group:"Popular brands"},{label:"Aspire",href:"/brands/aspire",group:"Popular brands"},{label:"Best Selling",href:"/pod-kits/best-sellers",group:"Shop by need"},{label:"For Beginners",href:"/pod-kits/beginners",group:"Shop by need"},{label:"Free Nic Salt",href:"/pod-kits/free-nic-salt",group:"Shop by need"},{label:"Under £10",href:"/pod-kits/under-10",group:"Shop by need"},{label:"Under £20",href:"/pod-kits/under-20",group:"Shop by need"},{label:"New Pod Kits",href:"/pod-kits/new",group:"Shop by need"},{label:"Pod Kit Deals",href:"/deals",group:"Shop by need"},{label:"Replacement Pods",href:"/accessories/replacement-pods",group:"Essentials"},{label:"Replacement Coils",href:"/accessories/vape-coils",group:"Essentials"},{label:"Nic Salts",href:"/nic-salts",group:"Essentials"},{label:"50/50 E-Liquid",href:"/e-liquid/50-50",group:"Essentials"}]},{label:"E-Liquids",href:"/e-liquids",children:[{label:"All E-Liquids",href:"/e-liquids",group:"Shop by type"},{label:"50/50 E-Liquid",href:"/e-liquid/50-50",group:"Shop by type"},{label:"70/30 E-Liquid",href:"/e-liquid/70-30",group:"Shop by type"},{label:"Nic Salts",href:"/nic-salts",group:"Shop by type"},{label:"Clearance",href:"/graveyard",group:"Shop by type"},{label:"Fruit",href:"/e-liquid/fruit",group:"Shop by flavour"},{label:"Sweets",href:"/e-liquid/sweets",group:"Shop by flavour"},{label:"Menthol & Ice",href:"/e-liquid/menthol-ice",group:"Shop by flavour"},{label:"Dessert",href:"/e-liquid/dessert",group:"Shop by flavour"},{label:"Coffee",href:"/e-liquid/coffee",group:"Shop by flavour"},{label:"Tobacco",href:"/e-liquid/tobacco",group:"Shop by flavour"},{label:"Best Sellers",href:"/e-liquid/best-sellers",group:"Popular"},{label:"New E-Liquids",href:"/e-liquids?sort=newest",group:"Popular"},{label:"Multi-Buy Deals",href:"/deals",group:"Popular"},{label:"Nic Salts vs Freebase",href:"/blog/nic-salts-vs-freebase",group:"Guides"},{label:"Nic Shot Calculator",href:"/nic-shot-calculator",group:"Guides"}]},{label:"Brands",href:"/brands",children:[{label:"All Brands AâZ",href:"/brands",group:"Browse"},{label:"Vaporesso",href:"/brands/vaporesso",group:"Popular brands"},{label:"OXVA",href:"/brands/oxva",group:"Popular brands"},{label:"VooPoo",href:"/brands/voopoo",group:"Popular brands"},{label:"SMOK",href:"/brands/smok",group:"Popular brands"},{label:"Uwell",href:"/brands/uwell",group:"Popular brands"},{label:"Geekvape",href:"/brands/geekvape",group:"Popular brands"},{label:"Innokin",href:"/brands/innokin",group:"Popular brands"},{label:"Aspire",href:"/brands/aspire",group:"Popular brands"}]},{label:"DIY",href:"/diy"},{label:"CBD",href:"/cbd"},{label:"Accessories",href:"/accessories",children:[{label:"All Accessories",href:"/accessories",group:"Shop accessories"},{label:"Replacement Pods",href:"/accessories/replacement-pods",group:"Shop accessories"},{label:"Vape Coils",href:"/accessories/vape-coils",group:"Shop accessories"},{label:"Batteries",href:"/accessories/batteries",group:"Shop accessories"},{label:"Battery Chargers",href:"/accessories/battery-chargers",group:"Shop accessories"},{label:"Empty Bottles",href:"/accessories/bottles",group:"Shop accessories"},{label:"Aspire Pods",href:"/accessories/replacement-pods/aspire",group:"Replacement pods"},{label:"OXVA Pods",href:"/accessories/replacement-pods/oxva",group:"Replacement pods"},{label:"Vaporesso Pods",href:"/accessories/replacement-pods/vaporesso",group:"Replacement pods"},{label:"VooPoo Pods",href:"/accessories/replacement-pods/voopoo",group:"Replacement pods"},{label:"Geekvape Pods",href:"/accessories/replacement-pods/geekvape",group:"Replacement pods"},{label:"SMOK Pods",href:"/accessories/replacement-pods/smok",group:"Replacement pods"},{label:"Uwell Pods",href:"/accessories/replacement-pods/uwell",group:"Replacement pods"},{label:"Innokin Pods",href:"/accessories/replacement-pods/innokin",group:"Replacement pods"},{label:"ELFBAR Pods",href:"/accessories/replacement-pods/elfbar",group:"Replacement pods"},{label:"Aspire Coils",href:"/accessories/vape-coils/aspire",group:"Vape coils"},{label:"SMOK Coils",href:"/accessories/vape-coils/smok",group:"Vape coils"},{label:"Innokin Coils",href:"/accessories/vape-coils/innokin",group:"Vape coils"},{label:"Geekvape Coils",href:"/accessories/vape-coils/geekvape",group:"Vape coils"},{label:"HorizonTech Coils",href:"/accessories/vape-coils/horizontech",group:"Vape coils"},{label:"Batteries",href:"/accessories/batteries",group:"More accessories"},{label:"Battery Chargers",href:"/accessories/battery-chargers",group:"More accessories"},{label:"Empty Bottles",href:"/accessories/bottles",group:"More accessories"},{label:"Best Sellers",href:"/accessories/best-sellers",group:"More accessories"},{label:"New Accessories",href:"/accessories/new",group:"More accessories"},{label:"All Accessories â",href:"/accessories",group:"More accessories"}]},{label:"Deals",href:"/deals"}];e.s(["default",0,function({active:e}){let{totalItems:o}=(0,s.useCart)(),{user:d,loading:u}=(0,i.useAuth)(),[p,b]=(0,r.useState)(!1),[h,f]=(0,r.useState)(null),m=(0,r.useRef)(0);return(0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&f(null)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]),(0,r.useEffect)(()=>
1{if(!p)return;let e=document.body;m.current=window.scrollY;let t={position:e.style.position,top:e.style.top,left:e.style.left,right:e.style.right,width:e.style.width,overflow:e.style.overflow};return e.style.position="fixed",e.style.top=`-${m.current}px`,e.style.left="0",e.style.right="0",e.style.width="100%",e.style.overflow="hidden",()=>{e.style.position=t.position,e.style.top=t.top,e.style.left=t.left,e.style.right=t.right,e.style.width=t.width,e.style.overflow=t.overflow,window.scrollTo(0,m.current)}},[p]),(0,t.jsxs)("header",{className:"fixed top-0 z-50 w-full border-b border-lime-500/20 bg-black/85 backdrop-blur-xl",children:[(0,t.jsxs)("div",{className:"relative mx-auto flex h-16 max-w-7xl items-center justify-between px-6",children:[(0,t.jsx)(a.default,{href:"/",className:"shrink-0 leading-none",children:(0,t.jsx)(l.default,{src:"/logo.png",alt:"Zombie Vapes",width:816,height:302,priority:!0,className:"h-12 w-auto sm:h-14 lg:h-16"})}),(0,t.jsx)("nav",{className:"hidden items-center gap-5 text-xs font-black uppercase lg:flex",children:c.map(r=>{let l=r.children,s=r.label===e||l?.some(t=>t.label===e);if(!l)return(0,t.jsx)(a.default,{href:r.href,className:`whitespace-nowrap ${s?"text-lime-500":"hover:text-lime-500"}`,children:r.label},r.label);let i=[...new Set(l.map(e=>e.group))];return(0,t.jsxs)("div",{className:"group relative",onMouseEnter:()=>f(r.label),onMouseLeave:()=>f(null),onFocus:()=>f(r.label),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||f(null)},children:[(0,t.jsxs)(a.default,{href:r.href,"aria-haspopup":"true","aria-expanded":h===r.label,className:`flex items-center gap-1 whitespace-nowrap ${s?"text-lime-500":"hover:text-lime-500"}`,children:[r.label,(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[10px] transition group-hover:rotate-180 group-focus-within:rotate-180",children:"â¾"})]}),(0,t.jsx)("div",{className:`${h===r.label?"visible opacity-100":"invisible opacity-0"} absolute left-1/2 top-full z-50 ${i.length>=4?"w-[min(980px,calc(100vw-2rem))]":"w-[min(720px,calc(100vw-2rem))]"} -translate-x-1/2 pt-3 transition`,children:(0,t.jsx)("div",{className:"grid gap-3 rounded-xl border border-lime-500/20 bg-zinc-950 p-5 shadow-2xl",style:{gridTemplateColumns:`repeat(${i.length}, minmax(0, 1fr))`},children:i.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 px-3 text-[10px] font-black uppercase tracking-[.18em] text-lime-500",children:e}),l.filter(t=>t.group===e).map(r=>(0,t.jsx)(a.default,{href:r.href,className:"block rounded-lg px-3 py-2.5 text-[11px] text-white hover:bg-lime-500/10 hover:text-lime-500 focus:bg-lime-500/10 focus:text-lime-500 focus:outline-none",children:r.label},`${e}-${r.label}`))]},e))})})]},r.label)})}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2 whitespace-nowrap text-sm font-black sm:gap-4",children:[(0,t.jsx)("div",{className:"hidden lg:block",children:(0,t.jsx)(n,{})}),(0,t.jsx)("span",{className:"rounded-full border border-pink-500 px-2 py-1 text-xs sm:px-3 sm:text-sm",children:"18+"}),!u&&d?.user_metadata?.role==="admin"&&(0,t.jsx)(a.default,{href:"/admin/orders",className:"hidden hover:text-lime-500 sm:inline",children:"Admin"}),!u&&(0,t.jsx)(a.default,{href:d?"/account":"/login",className:"hidden hover:text-lime-500 sm:inline",children:d?"My Account":"Sign In"}),(0,t.jsxs)(a.default,{href:"/checkout",className:"text-lime-500",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Basket "}),"ð",o>0?` (${o})`:""]}),(0,t.jsxs)("button",{onClick:()=>b(e=>!e),"aria-label":p?"Close menu":"Open menu","aria-expanded":p,"aria-controls":"mobile-navigation-drawer",className:"flex h-8 w-8 flex-col items-center justify-center gap-1.5 lg:hidden",children:[(0,t.jsx)("span",{className:`block h-0.5 w-6 bg-white transition-transform ${p?"translate-y-2 rotate-45":""}`}),(0,t.jsx)("span",{className:`block h-0.5 w-6 bg-white transition-opacity ${p?"opacity-0":""}`}),(0,t.jsx)("span",{className:`block h-0.5 w-6 bg-white transition-transform ${p?"-translate-y-2 -rotate-45":""}`})]})]})]}),p&&(0,t.jsx)("div",{id:"mobile-navigation-drawer",className:"fixed inset-x-0 bottom-0 top-16 h-[calc(100dvh-4rem)] overflow-hidden border-t border-white/10 bg-black lg:hidden",children:(0,t.jsxs)("nav",{"aria-label":"Mobile navigation",className:"h-full touch-p
1an-y overflow-x-hidden overflow-y-auto overscroll-contain px-6 pt-6 [-webkit-overflow-scrolling:touch] [padding-bottom:max(1.5rem,env(safe-area-inset-bottom))]",children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(n,{variant:"expanded"})}),(0,t.jsxs)("div",{className:"flex flex-col gap-1 text-sm font-black uppercase",children:[c.map(r=>{let l=r.children,s=r.label===e||l?.some(t=>t.label===e);return(0,t.jsx)("div",{children:l&&("Big Puff Vapes"===r.label||"Accessories"===r.label)?(0,t.jsxs)("details",{className:"rounded-lg border-b border-white/5",children:[(0,t.jsxs)("summary",{className:`flex cursor-pointer list-none items-center justify-between rounded-lg px-3 py-3 ${s?"bg-lime-500/10 text-lime-500":"hover:bg-white/5 hover:text-lime-500"}`,children:[(0,t.jsx)("span",{children:r.label}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-lime-500",children:"ï¼"})]}),(0,t.jsx)("div",{className:"ml-4 border-l border-white/10 pl-3",children:[...new Set(l.map(e=>e.group))].map(e=>(0,t.jsxs)("details",{className:"border-b border-white/5 py-1",children:[(0,t.jsx)("summary",{className:"cursor-pointer px-3 py-3 text-[10px] tracking-[.18em] text-lime-500",children:e}),l.filter(t=>t.group===e).map(r=>(0,t.jsx)(a.default,{href:r.href,onClick:()=>b(!1),className:"block rounded-lg px-3 py-3 text-xs text-zinc-400 hover:bg-white/5 hover:text-lime-500",children:r.label},`${e}-${r.label}`))]},e))})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.default,{href:r.href,onClick:()=>b(!1),className:`block rounded-lg px-3 py-3 ${s?"bg-lime-500/10 text-lime-500":"hover:bg-white/5 hover:text-lime-500"}`,children:r.label}),l&&(0,t.jsx)("div",{className:"ml-4 border-l border-white/10 pl-3",children:[...new Set(l.map(e=>e.group))].map(e=>(0,t.jsxs)("details",{className:"border-b border-white/5 py-1",children:[(0,t.jsx)("summary",{className:"cursor-pointer px-3 py-3 text-[10px] tracking-[.18em] text-lime-500",children:e}),l.filter(t=>t.group===e).map(e=>(0,t.jsx)(a.default,{href:e.href,onClick:()=>b(!1),className:"block rounded-lg px-3 py-3 text-xs text-zinc-400 hover:bg-white/5 hover:text-lime-500",children:e.label},e.label))]},e))})]})},r.label)}),(0,t.jsx)("div",{className:"my-2 border-t border-white/10"}),!u&&d?.user_metadata?.role==="admin"&&(0,t.jsx)(a.default,{href:"/admin/orders",onClick:()=>b(!1),className:"rounded-lg px-3 py-3 hover:bg-white/5 hover:text-lime-500",children:"Admin"}),!u&&(0,t.jsx)(a.default,{href:d?"/account":"/login",onClick:()=>b(!1),className:"rounded-lg px-3 py-3 hover:bg-white/5 hover:text-lime-500",children:d?"My Account":"Sign In"})]})]})})]})}],70119)},91997,e=>{"use strict";var t=e.i(71645),r=e.i(64292);e.s(["useCustomerPrice",0,function(e,l,a){let[s,i]=(0,t.useState)(null);return(0,t.useEffect)(()=>{let t=!1;return(async()=>{let{data:s}=await r.supabasePublic.auth.getSession(),o=s.session?.access_token;if(!o)return i(null);let n=await fetch("/api/customer-pricing/quote",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o}`},body:JSON.stringify({lines:[{key:"line",productId:e,flavour:l,strength:a}]})}),c=await n.json();t||i(c.prices?.line??null)})(),()=>{t=!0}},[e,l,a]),s}])},33677,e=>{"use strict";var t=e.i(43476),r=e.i(91997);let l=e=>`\xa3${(e/100).toFixed(2)}`;e.s(["default",0,function({productId:e,pricePence:a,normalClassName:s="text-xl font-black text-lime-500"}){let i=(0,r.useCustomerPrice)(e);return i?.isVipPrice?(0,t.jsxs)("span",{className:"flex flex-wrap items-baseline gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-black text-zinc-500 line-through",children:l(i.originalPricePence)}),(0,t.jsxs)("span",{className:"text-xl font-black text-lime-500",children:["VIP Price ",l(i.effectivePricePence)]})]}):(0,t.jsx)("span",{className:s,children:l(a)})}])},599,95322,e=>{"use strict";function t(e,t){if(e<=0||0===t.length)return{payableQuantity:e,freeQuantity:0};let r=[...t].sort((e,t)=>e.buy_quantity/(e.buy_quantity+e.free_quantity)-t.buy_quantity/(t.buy_quantity+t.free_quantity)),l=e,a=0;for(let e of r){let t=e.buy_quantity+e.free_quantity,r=Math.floor(l/t);a+=r*e.buy_quantity,l-=r*t}return{payableQuantity:a+=l,freeQuantity:e-a}}async function r(e){let t=await fetch("/api/cart/validate-shared-stock",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:e})}),r=await t.json().catch(()=>({}));return{ok:t.ok&&!1!==r.ok,error:r.error||"Unable to verify shared flavour stock"}}e.s(["bestTier",0,function(e){return 0===e.length?null:[...e].sort((e,t)=>
1e.buy_quantity/(e.buy_quantity+e.free_quantity)-t.buy_quantity/(t.buy_quantity+t.free_quantity))[0]},"computeAllGroupDiscounts",0,function(e,r){let l=0,a=new Map;for(let s of r){let r=function(e,r){let l=new Set(r.productIds),a=e.filter(e=>l.has(e.productId)),{freeQuantity:s}=t(a.reduce((e,t)=>e+t.quantity,0),r.tiers?.length?r.tiers:[{buy_quantity:r.buyQuantity,free_quantity:r.freeQuantity}]),i=new Map;if(0===s)return{discountPence:0,freeQuantityByLineKey:i};let o=[];for(let e of a)for(let t=0;t<e.quantity;t++)o.push({key:e.key,pricePence:e.unitPricePence});o.sort((e,t)=>e.pricePence-t.pricePence);let n=0;for(let e=0;e<s&&e<o.length;e++){let t=o[e];n+=t.pricePence,i.set(t.key,(i.get(t.key)??0)+1)}return{discountPence:n,freeQuantityByLineKey:i}}(e,s);for(let[e,t]of(l+=r.discountPence,r.freeQuantityByLineKey))a.set(e,(a.get(e)??0)+t)}return{totalDiscountPence:l,freeQuantityByLineKey:a}},"computeBulkDiscount",0,t,"tierLabel",0,function(e){return`Buy ${e.buy_quantity} Get ${e.free_quantity} Free`}],599),e.s(["validateSharedCartStock",0,r],95322)},93635,e=>{"use strict";var t=e.i(43476),r=e.i(71645),l=e.i(57688),a=e.i(22016);let s="zombie-vapes-recently-viewed";e.s(["default",0,function({current:e}){let[i,o]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let t=[];try{let e=localStorage.getItem(s);e&&(t=JSON.parse(e))}catch{t=[]}if(o(e?t.filter(t=>t.slug!==e.slug):t),e){let r=[e,...t.filter(t=>t.slug!==e.slug)].slice(0,8);localStorage.setItem(s,JSON.stringify(r))}},[e?.slug]),0===i.length)?null:(0,t.jsxs)("section",{className:"mx-auto max-w-7xl px-6 py-12",children:[(0,t.jsxs)("h2",{className:"mb-6 text-2xl font-black uppercase",children:["ð Recently ",(0,t.jsx)("span",{className:"text-lime-500",children:"Viewed"})]}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-6 sm:grid-cols-4 lg:grid-cols-6",children:i.map(e=>{var r;return(0,t.jsxs)(a.default,{href:`/products/${e.slug}`,className:"group flex flex-col rounded-xl border border-white/10 bg-zinc-950 p-3 transition hover:-translate-y-1 hover:border-lime-500",children:[(0,t.jsx)("div",{className:"relative mb-3 flex h-24 items-center justify-center rounded-lg bg-black/40",children:(0,t.jsx)(l.default,{src:e.image_path,alt:e.name,width:100,height:200,className:"h-full w-full object-contain p-2 transition duration-500 group-hover:-translate-y-1"})}),(0,t.jsx)("p",{className:"text-xs font-black uppercase leading-tight",children:e.name}),(0,t.jsx)("p",{className:"mt-1 text-xs font-black text-lime-500",children:(r=e.price_pence,`\xa3${(r/100).toFixed(2)}`)})]},e.slug)})})]})}])},44284,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let l=(0,r.createContext)(null);e.s(["ProductVariantProvider",0,function({flavours:e,defaultImage:a,defaultImageAlt:s,initialFlavourId:i=null,children:o}){let[n,c]=(0,r.useState)(i??(1===e.length?e[0].id:null)),d=e.find(e=>e.id===n)??null,u=d?.image_path||a,p=d?`${s} â ${d.name}`:s;return(0,t.jsx)(l.Provider,{value:{flavours:e,selectedFlavourId:n,setSelectedFlavourId:c,currentImage:u,currentImageAlt:p},children:o})},"useProductVariant",0,function(){let e=(0,r.useContext)(l);if(!e)throw Error("useProductVariant must be used within a ProductVariantProvider");return e}])},98906,e=>{"use strict";var t=e.i(43476),r=e.i(71645),l=e.i(35025),a=e.i(44284),s=e.i(599),i=e.i(22016),o=e.i(80265),n=e.i(94698);function c({productId:e,slug:l,name:a,pricePence:s,image:d,flavour:u,strength:p}){let{user:b}=(0,o.useAuth)(),{addItem:h,totalItems:f}=(0,n.useSubscriptionCart)(),[m,x]=(0,r.useState)(!1);return b?(0,t.jsxs)("div",{className:"rounded-xl border border-lime-500/20 bg-zinc-950 p-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-black uppercase text-lime-500",children:"Subscribe & Save 10%"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:"Add this to your subscription â combine with other products, choose how often."})]}),(0,t.jsx)("button",{onClick:function(){h({productId:e,slug:l,name:a,pricePence:s,image:d,flavour:u,strength:p}),x(!0),setTimeout(()=>x(!1),2e3)},className:"shrink-0 rounded border border-lime-500 bg-lime-500 px-4 py-2 text-xs font-black uppercase text-black transition hover:bg-lime-400",children:m?"Added â":"Add to Subscription"})]}),f>0&&(0,t.jsxs)(i.default,{href:"/subscribe",className:"mt-3 inline-block text-xs font-black uppercase text-lime-500 hover:underline",children:["View Subscription (",f," ",1===f?"item":"items",") â"]})]}):(0,t.jsxs)("div",{className:"rounded-xl border border-lime-500/20 bg-zinc-950 p-4",children:[(0,t.jsx)("p",{className:"text-xs font-black uppercase text-lime-500",children:"Subscribe & Save 10%"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-zinc-500",children:[(0,t.jsx)(i.default,{href:"/login",className:"text-lime-500 hover:underline",children:"Log in"})," ","to set up automatic delivery of this product."]})]})}let d={"abyssal blue":"#0000ab","aqua blue":"#67dbf5","aurora blue":"#7affe9",black:"#00000b",brown:"#735f37","carbon fiber gray":"#9c9c9c","cosmic black":"#000000","dreamy pink":"#f7ccff","forest green":"#165e0e","jelly blue":"#afe0fa","jelly green":"#daf5bf","jelly orange":"#ffbe4f","jelly pink":"#ffd9ff","pearl white":"#ffffff","plume blue":"#88aab5","plume pink":"#cfce9b","plume white":"#dbdbdb","polar silver":"#cfcdcf",rainbow:"linear-gradient(135deg, #fc0069, #ffb000, #67dbf5, #6d28d9)","scorching cloud":"linear-gradient(135deg, #d4d4d4, #ffffff, #888888)","silk brown":"#635b24","silk gray":"#a1a1a1","silk green":"#226935","slate black":"#000000","sunset rose":"#ffade6","titanium black":"#000000","titanium silver":"#bfbfbf"};var u=e.i(95322),p=e.i(91997);function b(e){return`\xa3${(e/100).toFixed(2)}`}function h({productId:e,flavourName:l,strengthName:a}){let[s,i]=(0,r.useState)(""),[o,n]=(0,r.useState)(!1),[c,d]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null);async function b(t){if(t.preventDefault(),!s.includes("@"))return void p("Enter a valid email address.");n(!0),p(null);let r=await fetch("/api/notify-me",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s,productId:e,flavourName:l??null,strengthName:a??null})});(n(!1),r.ok)?d(!0):p((await r.json()).error??"Something went wrong")}return c?(0,t.jsx)("p",{className:"rounded border border-lime-500/30 bg-black px-4 py-3 text-sm font-black uppercase text-lime-500",children:"â We'll email you when it's back"}):(0,t.jsxs)("form",{onSubmit:b,className:"flex flex-wrap gap-2",children:[(0,t.jsx)("input",{type:"email",placeholder:"Your email",value:s,onChange:e=>i(e.target.value),className:"min-w-0 flex-1 rounded border border-white/10 bg-black px-4 py-3 text-sm focus:border-lime-500 focus:outline-none"}),(0,t.jsx)("button",{type:"submit",disabled:o,className:"rounded bg-lime-500 px-6 py-3 text-xs font-black uppercase text-black hover:bg-lime-400 disabled:opacity-40",children:o?"â¦":"Notify Me"}),u&&(0,t.jsx)("p",{className:"w-full text-xs font-black text-pink-500",children:u})]})}e.s(["default",0,function({productId:e,slug:i,name:o,pricePence:n,salePricePence:f,image:m,flavours:x,variantLabel:g="Flavour",bulkTiers:v=[],multibuyTiers:y=[],stock:k}){let{addItem:w,items:j}=(0,l.useCart)(),{selectedFlavourId:N,setSelectedFlavourId:P}=(0,a.useProductVariant)(),S=x.filter(e=>e.stock>0),C=x.find(e=>e.id===N)??null,[_,z]=(0,r.useState)(C?.available_strengths?.[0]??null),[q,B]=(0,r.useState)(1),[V,A]=(0,r.useState)([""]),[M,$]=(0,r.useState)(""),[O,E]=(0,r.useState)(!1),[I,L]=(0,r.useState)(0),[R,T]=(0,r.useState)(null),[K,D]=(0,r.useState)(!1),F=x.length>0,Q=1===x.length,G="colour"===g.trim().toLowerCase(),U=!!C?.available_strengths?.length,H=/\bbottles?\b/i.test(o)?"Pack Size":"Nicotine Strength",J=y.length>0&&F?S.reduce((e,t)=>
1e+t.stock,0):F?C?.stock??0:k??99,X=y.length>0&&F?S.length>0:F?!!C&&C.stock>0:(k??1)>0,Y=0===y.length||!F||V.length===q&&V.every(e=>{let t=x.find(t=>t.id===e),r=V.filter(t=>t===e).length;return!!t&&t.stock>0&&r<=t.stock}),W=F?C?.stock:k,Z=x.filter(e=>e.name.toLowerCase().includes(M.trim().toLowerCase())),ee=null!=f&&f<n,et=ee?f:n;function er(e,t){return e?t&&e.strength_prices?.[t]!=null?e.strength_prices[t]:null!=e.price_pence?e.price_pence:et:et}let el=F?er(C,_):et,ea=(0,p.useCustomerPrice)(e,C?.name,_??void 0),es=ea?.isVipPrice?ea.effectivePricePence:el,ei=ea?.isVipPrice?[]:y,eo=!!ea?.isVipPrice||Y,en=ei.find(e=>e.quantity===q),ec=en?.totalPricePence??es*q,ed=(0,s.computeBulkDiscount)(q,v),eu=(0,s.bestTier)(v),ep=0;if(eu){let e=eu.buy_quantity+eu.free_quantity,t=q%e;0!==t&&(ep=e-t)}function eb(e){P(e.id),z(e.available_strengths?.[0]??null),B(1),window.matchMedia("(max-width: 767px)").matches&&document.getElementById("product-image")?.scrollIntoView({behavior:"smooth",block:"center"})}async function eh(){if(!X||!eo)return;D(!0),T(null);let t=[...j];if(ei.length>0&&F){for(let r of V){let l=x.find(e=>e.id===r);l&&t.push({productId:e,slug:i,name:o,flavour:l.name,strength:l.available_strengths?.[0]??_??void 0,pricePence:er(l,l.available_strengths?.[0]??_),image:l.image_path??m,quantity:1})}let r=await (0,u.validateSharedCartStock)(t);if(!r.ok){T(r.error),D(!1);return}for(let t of V){let r=x.find(e=>e.id===t);r&&w({productId:e,slug:i,name:o,flavour:r.name,strength:r.available_strengths?.[0]??_??void 0,pricePence:er(r,r.available_strengths?.[0]??_),image:r.image_path??m},1)}L(0),D(!1),E(!0),setTimeout(()=>E(!1),2500);return}let{freeQuantity:r}=(0,s.computeBulkDiscount)(q,v);t.push({productId:e,slug:i,name:o,flavour:C?.name,strength:_??void 0,pricePence:es,image:m,quantity:q});let l=await (0,u.validateSharedCartStock)(t);if(!l.ok){T(l.error),D(!1);return}w({productId:e,slug:i,name:o,flavour:C?.name,strength:_??void 0,pricePence:es,image:m},q),L(r),D(!1),E(!0),setTimeout(()=>E(!1),2500)}return F&&0===S.length?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("span",{className:"inline-block w-full rounded bg-zinc-800 py-4 text-center text-sm font-black uppercase text-zinc-500",children:"Sold out"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-black uppercase tracking-wide text-zinc-400",children:"Notify me when this is back"}),(0,t.jsx)(h,{productId:e})]})]}):(0,t.jsxs)("div",{className:"space-y-5",children:[ei.length>0&&F&&(0,t.jsxs)("div",{className:"rounded-xl border border-lime-500/30 bg-lime-500/5 p-4",children:[(0,t.jsxs)("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-black uppercase text-lime-500",children:"Build Your Mix & Match"}),(0,t.jsx)("p",{className:"text-xs text-zinc-400",children:"Choose an offer, then select a flavour for every device."})]}),(0,t.jsx)("span",{className:"rounded-full bg-pink-500 px-3 py-1 text-xs font-black uppercase text-white",children:"20mg only"})]}),(0,t.jsx)("label",{htmlFor:"multibuy-quantity",className:"mb-1 block text-xs font-black uppercase text-zinc-400",children:"Choose offer"}),(0,t.jsxs)("select",{id:"multibuy-quantity",value:q,onChange:e=>{let t;B(t=Math.max(1,Math.min(J,Number(e.target.value)))),A(e=>Array.from({length:t},(t,r)=>e[r]||""))},className:"w-full rounded border border-lime-500/40 bg-black px-4 py-3 text-sm font-black uppercase text-white focus:border-lime-500 focus:outline-none",children:[(0,t.jsxs)("option",{value:1,children:["1 for ",b(es)]}),ei.map(e=>(0,t.jsxs)("option",{value:e.quantity,disabled:e.quantity>J,children:[e.quantity," for ",b(e.totalPricePence)," â save ",b(es*e.quantity-e.totalPricePence)]},e.quantity))]}),(0,t.jsxs)("div",{className:"mt-4 overflow-hidden rounded-lg border border-white/10",children:[(0,t.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-3 bg-zinc-900 px-3 py-2 text-[10px] font-black uppercase text-zinc-500",children:[(0,t.jsx)("span",{children:"Item"}),(0,t.jsx)("span",{children:"Flavour"})]}),V.map((e,r)=>(0,t.jsxs)("div",{className:"grid grid-cols-[auto_1fr] items-center gap-3 border-t border-white/10 bg-black/40 px-3 py-3",children:[(0,t.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-lime-500 text-xs font-black text-black",children:r+1}),(0,t.jsxs)("label",{className:"sr-only",htmlFor:`offer-flavour-${r}`,children:["Choose flavour for item ",r+1]}),(0,t.jsxs)("select",{id:`offer-flavour-${r}
1`,value:e,onChange:e=>{var t;return t=e.target.value,void A(e=>e.map((e,l)=>l===r?t:e))},className:"min-w-0 rounded border border-white/10 bg-zinc-950 px-3 py-2 text-sm font-bold text-white focus:border-lime-500 focus:outline-none",children:[(0,t.jsx)("option",{value:"",disabled:!0,children:"Choose flavourâ¦"}),x.map(e=>(0,t.jsxs)("option",{value:e.id,disabled:e.stock<=0,children:[e.name,e.stock<=0?" â Sold out":""]},e.id))]})]},r))]}),(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"font-bold text-zinc-400",children:"Offer total"}),(0,t.jsx)("span",{className:"text-xl font-black text-lime-500",children:b(ec)})]})]}),F&&!Q&&0===ei.length&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"mb-3 text-xs font-black uppercase tracking-wide text-zinc-400",children:[G?"Manufacturerâs Colour":g,C&&(0,t.jsx)("span",{className:"ml-2 text-white",children:C.name})]}),!G&&x.length>16&&(0,t.jsxs)("div",{className:"mb-3 grid gap-2 sm:grid-cols-[1fr_auto]",children:[(0,t.jsx)("label",{className:"sr-only",htmlFor:"flavour-search",children:"Search flavours"}),(0,t.jsx)("input",{id:"flavour-search",type:"search",value:M,onChange:e=>$(e.target.value),placeholder:"Search flavoursâ¦",className:"w-full rounded border border-white/10 bg-black px-4 py-3 text-sm text-white placeholder:text-zinc-600 focus:border-lime-500 focus:outline-none"}),(0,t.jsxs)("span",{className:"self-center text-xs font-bold text-zinc-500",children:[Z.length," matches"]})]}),!G&&x.length>16&&(0,t.jsxs)("select",{"aria-label":"Choose flavour",value:C?.id??"",onChange:e=>{let t=x.find(t=>t.id===e.target.value);t&&eb(t)},className:"mb-3 w-full rounded border border-white/10 bg-black px-4 py-3 text-sm font-black uppercase text-white focus:border-lime-500 focus:outline-none sm:hidden",children:[(0,t.jsx)("option",{value:"",disabled:!0,children:"Choose flavourâ¦"}),Z.map(e=>(0,t.jsxs)("option",{value:e.id,disabled:e.stock<=0,children:[e.name,e.stock<=0?" â Sold out":""]},e.id))]}),(0,t.jsx)("div",{className:`${x.length>16&&!G?"hidden sm:flex":"flex"} flex-wrap ${G?"gap-3":"max-h-80 gap-2 overflow-y-auto pr-1"}`,children:Z.map(e=>{let r=C?.id===e.id,l=e.stock<=0;return(0,t.jsx)("button",{onClick:()=>eb(e),"aria-label":`${e.name}${l?" â sold out":""}`,title:e.name,className:`${G?"h-10 w-10 rounded-full p-1":"rounded px-4 py-2"} border text-xs font-black uppercase transition ${l?r?"border-pink-500 bg-pink-500/10 text-pink-500 line-through":"border-white/5 text-zinc-600 line-through hover:border-white/20":r?"border-lime-500 bg-lime-500 text-black":"border-white/10 text-white hover:border-lime-500"}`,children:G?(0,t.jsx)("span",{className:"block h-full w-full rounded-full border border-black/30 shadow-inner",style:{background:d[e.name.trim().toLowerCase()]??"#71717a"}}):e.name},e.id)})}),0===Z.length&&(0,t.jsx)("p",{className:"rounded border border-white/10 bg-black px-4 py-3 text-sm text-zinc-400",children:"No flavours match that search."}),!C&&Z.length>0&&(0,t.jsxs)("p",{className:"mt-3 rounded border border-amber-400/40 bg-amber-400/10 px-4 py-3 text-sm font-black uppercase text-amber-300",children:["Please choose a ",g.toLowerCase()," before adding to basket."]}),C&&C.stock<=10&&C.stock>0&&(0,t.jsxs)("p",{className:"mt-2 text-xs font-black uppercase text-pink-500",children:["Only ",C.stock," left in ",C.name]})]}),void 0!==W&&(0,t.jsx)("p",{className:"text-xs font-black uppercase",children:W<=0?(0,t.jsx)("span",{className:"text-pink-500",children:"â Out of Stock"}):W<=10?(0,t.jsxs)("span",{className:"text-amber-400",children:["â Only ",W," left"]}):(0,t.jsx)("span",{className:"text-lime-500",children:"â In Stock"})}),F&&C&&C.stock<=0&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"mb-2 text-xs font-black uppercase tracking-wide text-zinc-400",children:["Notify me when ",C.name," is back"]}),(0,t.jsx)(h,{productId:e,flavourName:C.name})]}),U&&0===ei.length&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-black uppercase tracking-wide text-zinc-400",children:H}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:C.available_strengths.map(e=>{let r=_===e,l=er(C,e),a=l!==es;return(0,t.jsxs)("button",{onClick:()=>z(e),className:`rounded border px-4 py-2 text-xs font-black uppercase transition ${r?"border-lime-500 bg-lime-500 text-black":"border-white/10 text-white hover:border-lime-500"}`,children:[e,!r&&a&&(0,t.jsx)("span",{className:"ml-2 text-zinc-500",children:b(l)})]},e)})})]}),ee&&es===f&&(0,t.jsxs)("p",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-black text-zinc-500 line-through",children:b(n)}),(0,t.jsx)("span",{className:"text-2xl font-black text-pink-500",children:b(es)}),(0,t.jsx)("span",{className:"rounded-full bg-pink-500 px-2 py-0.5 text-[10px] font-black uppercase text-black",children:"Sale"})]}),F&&!ee&&es!==n&&(0,t.jsx)("p",{className:"text-2xl font-black text-lime-500",children:b(es)}),ea?.isVipPrice&&(0,t.jsxs)("p",{className:"flex items-baseline gap-2","aria-label":"VIP customer price",children:[(0,t.jsx)("span",{className:"text-sm font-black text-zinc-500 line-through",children:b(ea.originalPricePence)}),(0,t.jsxs)("span",{className:"text-2xl font-black text-lime-500",children:["VIP Price ",b(ea.effectivePricePence)]})]}),v.length>0&&ed.freeQuantity>0&&(0,t.jsxs)("p",{className:"mb-1 text-sm font-black uppercase text-pink-500",children:["ð ",ed.freeQuantity," of these ",q," are free!"]}),eu&&ep>0&&(0,t.jsxs)("p",{className:"mb-3 text-xs font-black uppercase text-lime-500",children:["Add ",ep," more to unlock ",(0,s.tierLabel)(eu),"!"]}),R&&(0,t.jsx)("p",{className:"rounded border border-pink-500/40 bg-pink-950/20 p-3 text-sm font-bold text-pink-400",children:R}),(0,t.jsxs)("div",{className:"sticky bottom-3 z-30 flex flex-wrap items-center gap-4 roun
1ded-xl border border-white/10 bg-zinc-950/95 p-3 shadow-2xl backdrop-blur md:static md:border-0 md:bg-transparent md:p-0 md:shadow-none",children:[0===ei.length&&(0,t.jsxs)("div",{className:"flex items-center rounded border border-white/10 bg-black",children:[(0,t.jsx)("button",{onClick:()=>B(e=>Math.max(1,e-1)),className:"px-4 py-3 text-lg font-black hover:text-lime-500","aria-label":"Decrease quantity",children:"â"}),(0,t.jsx)("span",{className:"w-10 text-center font-black",children:q}),(0,t.jsx)("button",{onClick:()=>B(e=>Math.min(J,e+1)),className:"px-4 py-3 text-lg font-black hover:text-lime-500","aria-label":"Increase quantity",children:"+"})]}),(0,t.jsx)("button",{onClick:eh,disabled:!X||!eo||K,className:"flex-1 rounded bg-lime-500 py-4 text-sm font-black uppercase text-black transition hover:bg-lime-400 disabled:cursor-not-allowed disabled:opacity-40 md:flex-none md:px-10",children:K?"Checking stockâ¦":O?I>0?`Added â (+${I} free!)`:"Added to basket â":`Add to Basket â ${b(ec)}`})]}),X&&0===ei.length&&(0,t.jsx)(c,{productId:e,slug:i,name:o,pricePence:es,image:m,flavour:C?.name,strength:_??void 0})]})}],98906)},2531,e=>{"use strict";var t=e.i(43476),r=e.i(71645);function l(){let e=new Date(new Date().toLocaleString("en-US",{timeZone:"Europe/London"})),t=new Date(e);if(t.setHours(15,0,0,0),e>=t)return{pastCutoff:!0,hours:0,minutes:0};let r=t.getTime()-e.getTime();return{pastCutoff:!1,hours:Math.floor(r/36e5),minutes:Math.floor(r%36e5/6e4)}}e.s(["default",0,function(){let[e,a]=(0,r.useState)(null);return((0,r.useEffect)(()=>{a(l());let e=setInterval(()=>a(l()),3e4);return()=>clearInterval(e)},[]),e)?e.pastCutoff?(0,t.jsxs)("p",{className:"mt-3 flex items-center gap-2 text-sm font-black uppercase text-zinc-400",children:[(0,t.jsx)("span",{className:"text-lime-500",children:"â"}),"Order now for dispatch tomorrow"]}):(0,t.jsxs)("p",{className:"mt-3 flex items-center gap-2 text-sm font-black uppercase text-lime-500",children:[(0,t.jsx)("span",{className:"animate-pulse",children:"â"}),"Order within ",e.hours,"h ",e.minutes,"m for dispatch today"]}):null}])},55450,e=>{"use strict";var t=e.i(43476),r=e.i(71645),l=e.i(64292),a=e.i(80265);function s({rating:e,size:r="text-base"}){return(0,t.jsxs)("span",{className:`text-lime-500 ${r}`,children:["â
".repeat(e),"â".repeat(5-e)]})}e.s(["default",0,function({productId:e}){let{user:i}=(0,a.useAuth)(),[o,n]=(0,r.useState)([]),[c,d]=(0,r.useState)(!0),[u,p]=(0,r.useState)(!1),[b,h]=(0,r.useState)(!1),[f,m]=(0,r.useState)(!1),[x,g]=(0,r.useState)(null),[v,y]=(0,r.useState)(""),[k,w]=(0,r.useState)(""),[j,N]=(0,r.useState)(5),[P,S]=(0,r.useState)(""),[C,_]=(0,r.useState)("");async function z(t){if(t.preventDefault(),!v.trim()||!k.trim()||!C.trim())return void g("Please fill in your name, email, and a review.");h(!0),g(null);let r=await fetch("/api/reviews",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({product_id:e,user_id:i?.id??null,reviewer_name:v,reviewer_email:k,rating:j,title:P,body:C})});(h(!1),r.ok)?(m(!0),p(!1),S(""),_("")):g((await r.json()).error??"Something went wrong submitting your review.")}return(0,r.useEffect)(()=>{l.supabasePublic.from("product_reviews").select("id, reviewer_name, rating, title, body, verified_purchase, created_at").eq("product_id",e).eq("status","approved").order("created_at",{ascending:!1}).then(({data:e})=>{n(e??[]),d(!1)})},[e]),(0,r.useEffect)(()=>{i?.email&&w(i.email),i?.user_metadata?.full_name&&y(i.user_metadata.full_name)},[i]),(0,t.jsxs)("section",{id:"reviews",className:"mx-auto max-w-5xl px-6 py-16",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("h2",{className:"text-2xl font-black uppercase",children:["Customer ",(0,t.jsx)("span",{className:"text-lime-500",children:"Reviews"})]}),!u&&!f&&(0,t.jsx)("button",{onClick:()=>p(!0),className:"rounded bg-lime-500 px-5 py-2 text-xs font-black uppercase text-black hover:bg-lime-400",children:"Write a Review"})]}),f&&(0,t.jsx)("div",{className:"mt-6 rounded-xl border border-lime-500/30 bg-lime-500/5 p-6 text-sm text-lime-500",children:"Thanks â your review has been submitted and will appear once it's been checked by our team."}),u&&(0,t.jsxs)("form",{onSubmit:z,className:"mt-6 space-y-4 rounded-xl border border-white/10 bg-zinc-950 p-6",children:[(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)("input",{type:"text",placeholder:"Your name",value:v,onCh
1ange:e=>y(e.target.value),className:"rounded border border-white/10 bg-black px-3 py-2 text-sm focus:border-lime-500 focus:outline-none"}),(0,t.jsx)("input",{type:"email",placeholder:"Your email (not shown publicly)",value:k,onChange:e=>w(e.target.value),className:"rounded border border-white/10 bg-black px-3 py-2 text-sm focus:border-lime-500 focus:outline-none"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-black uppercase text-zinc-400",children:"Rating"}),(0,t.jsx)("div",{className:"flex gap-1 text-2xl",children:[1,2,3,4,5].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>N(e),className:e<=j?"text-lime-500":"text-zinc-700",children:"â
"},e))})]}),(0,t.jsx)("input",{type:"text",placeholder:"Review title (optional)",value:P,onChange:e=>S(e.target.value),className:"w-full rounded border border-white/10 bg-black px-3 py-2 text-sm focus:border-lime-500 focus:outline-none"}),(0,t.jsx)("textarea",{placeholder:"What did you think?",value:C,onChange:e=>_(e.target.value),rows:4,className:"w-full rounded border border-white/10 bg-black px-3 py-2 text-sm focus:border-lime-500 focus:outline-none"}),x&&(0,t.jsx)("p",{className:"text-sm text-pink-500",children:x}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{type:"submit",disabled:b,className:"rounded bg-lime-500 px-6 py-2 text-xs font-black uppercase text-black hover:bg-lime-400 disabled:opacity-40",children:b?"Submittingâ¦":"Submit Review"}),(0,t.jsx)("button",{type:"button",onClick:()=>p(!1),className:"rounded border border-white/10 px-6 py-2 text-xs font-black uppercase text-zinc-400 hover:border-pink-500 hover:text-pink-500",children:"Cancel"})]})]}),(0,t.jsx)("div",{className:"mt-8 space-y-6",children:c?(0,t.jsx)("p",{className:"text-zinc-500",children:"Loading reviews..."}):0===o.length?(0,t.jsx)("p",{className:"text-zinc-500",children:"No reviews yet â be the first to leave one."}):o.map(e=>(0,t.jsxs)("div",{className:"border-b border-white/10 pb-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(s,{rating:e.rating}),e.verified_purchase&&(0,t.jsx)("span",{className:"rounded bg-lime-500/10 px-2 py-0.5 text-[10px] font-black uppercase text-lime-500",children:"Verified Purchase"})]}),e.title&&(0,t.jsx)("h3",{className:"mt-2 font-black",children:e.title}),(0,t.jsx)("p",{className:"mt-1 text-sm text-zinc-300",children:e.body}),(0,t.jsxs)("p",{className:"mt-2 text-xs text-zinc-500",children:[e.reviewer_name," â ",new Date(e.created_at).toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"})]})]},e.id))})]})}])},31783,e=>{"use strict";var t=e.i(43476),r=e.i(71645),l=e.i(57688),a=e.i(44284);e.s(["default",0,function(){let{currentImage:e,currentImageAlt:s}=(0,a.useProductVariant)(),[i,o]=(0,r.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:()=>o(!0),"aria-label":"Zoom image",className:"group relative z-10 flex h-full w-full cursor-zoom-in items-center justify-center",children:[(0,t.jsx)(l.default,{src:e,alt:s,width:400,height:800,priority:!0,className:"h-full w-full object-contain p-10 drop-shadow-[0_0_60px_rgba(132,204,22,0.4)] transition-opacity duration-300"}),(0,t.jsx)("span",{className:"absolute bottom-3 right-3 rounded-full bg-black/70 p-2 text-xs text-white opacity-0 backdrop-blur transition group-hover:opacity-100",children:"ð Click to zoom"})]}),i&&(0,t.jsxs)("div",{onClick:()=>o(!1),className:"fixed inset-0 z-[100] flex cursor-zoom-out items-center justify-center bg-black/90 p-6 backdrop-blur-sm",children:[(0,t.jsx)("button",{onClick:()=>o(!1),"aria-label":"Close zoom",className:"absolute right-6 top-6 text-3xl text-white hover:text-lime-500",children:"â"}),(0,t.jsx)(l.default,{src:e,alt:s,width:1e3,height:2e3,className:"max-h-[90vh] w-auto object-contain"})]})]})}])},42159,e=>{"use strict";var t=e.i(43476),r=e.i(22016),l=e.i(44284);e.s(["default",0,function({byFlavour:e}){let{selectedFlavourId:a}=(0,l.useProductVariant)(),s=a?e[a]??[]:[...new Map(Object.values(e).flat().map(e=>[e.id,e])).values()];if(!s.length)return null;let i=[...s].sort((e,t)=>
1("primary"!==e.role)-("primary"!==t.role)||e.display_name.localeCompare(t.display_name));return(0,t.jsxs)("div",{className:"mt-5 border-t border-white/10 pt-4",children:[(0,t.jsx)("p",{className:"text-[10px] font-black uppercase tracking-[.18em] text-zinc-500",children:a?"Flavour profile":"Explore flavour tags"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:i.map(e=>(0,t.jsx)(r.default,{href:`/e-liquids/${e.slug}`,className:`rounded-full border px-3 py-1.5 text-xs font-black transition ${"primary"===e.role?"border-lime-500/50 bg-lime-500/10 text-lime-400":"border-white/10 text-zinc-300 hover:border-lime-500 hover:text-lime-500"}`,children:e.display_name},e.id))})]})}])}]);
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.