import{B as e,C as t,D as n,G as r,S as i,T as a,b as o,c as s,ft as c,j as l,l as u,m as d,o as f,p,r as m,s as h,u as g,ut as _}from"./runtime-core.esm-bundler-DTXUv7Wx.js";import{a as v,o as y,t as b}from"./vue-router-Cyqru1db.js";import{t as ee}from"./Logo-xADhl1RY.js";import{t as x}from"./Icon-Dcq1PyHo.js";import{t as S}from"./i18n-DhVF3Pwg.js";import{l as C,p as w,s as T,u as E}from"./api-DlB23x7f.js";import{t as D}from"./Button-D1Rp2Xe1.js";import{t as te}from"./ExpressCheckoutMount-DWBEmNpy.js";import{t as O}from"./checkout-stUpOmaV.js";var k=[`aria-label`],A={class:`flex items-center gap-2 sm:gap-3`},j={class:`flex items-center gap-2 sm:gap-3 shrink-0`},M=[`disabled`,`aria-current`,`onClick`],N={key:1},ne={__name:`CheckoutStepper`,props:{steps:{type:Array,required:!0},activeKey:{type:String,required:!0}},setup(e){let n=e,r=y(),i=f(()=>{let e=n.steps.findIndex(e=>e.key===n.activeKey);return n.steps.map((t,n)=>{let r=n(t(),g(`nav`,{"aria-label":n.$attrs[`aria-label`]||`Checkout progress`},[h(`ol`,A,[(t(!0),g(m,null,a(i.value,(n,r)=>(t(),g(m,{key:n.key},[h(`li`,j,[h(`button`,{type:`button`,disabled:!n.navigable&&n.state!==`active`,"aria-current":n.state===`active`?`step`:void 0,class:_([`group inline-flex items-center gap-2 sm:gap-2.5 transition-colors duration-base focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-brand rounded-sm`,n.navigable||n.state===`active`?`cursor-pointer`:`cursor-not-allowed`]),onClick:e=>o(n)},[h(`span`,{class:_([`inline-flex items-center justify-center w-7 h-7 rounded-full text-[12px] font-bold tabular-nums transition-colors duration-base`,n.state===`active`&&`bg-brand text-cream`,n.state===`completed`&&`bg-brand text-cream group-hover:bg-brand-hover`,n.state===`upcoming`&&`bg-transparent text-muted border border-line`,n.state===`upcoming`&&n.navigable&&`group-hover:border-brand group-hover:text-brand`])},[n.state===`completed`?(t(),s(x,{key:0,name:`check`,size:13,"stroke-width":2.6})):(t(),g(`span`,N,c(n.index+1),1))],2),h(`span`,{class:_([`hidden md:inline whitespace-nowrap text-[13px] tracking-label transition-colors duration-base`,n.state===`active`&&`text-brand font-semibold`,n.state===`completed`&&`text-brand font-medium`,n.state===`upcoming`&&`text-muted font-medium`,n.state===`upcoming`&&n.navigable&&`group-hover:text-brand`])},c(n.label),3)],10,M)]),rt.key===e.activeKey)?`bg-brand`:`bg-line`])},null,2)):u(``,!0)],64))),128))])],8,k))}},P={class:`rounded-md border border-line bg-paper text-ink flex flex-col`,"aria-label":`Order summary`},F={key:0,class:`px-6 pt-6 pb-3 border-b border-line`},I={class:`font-display text-xl font-normal text-brand leading-none`},L={key:1,class:`flex flex-col divide-y divide-line`},R={class:`relative shrink-0 w-14 h-14 rounded-sm bg-cream overflow-hidden flex items-center justify-center`},z=[`src`,`alt`],B={key:1,class:`absolute -top-1 -right-1 min-w-[20px] h-[20px] px-1 rounded-full bg-brand text-accent text-[11px] font-bold flex items-center justify-center`,"aria-hidden":`true`},V={class:`flex-1 min-w-0`},H={class:`font-display text-[15px] leading-tight truncate text-ink`},U={key:0,class:`text-[12px] text-muted truncate`},W={class:`shrink-0 text-[14px] font-semibold text-ink tabular-nums`},G={class:`px-6 py-5 flex flex-col gap-2 border-t border-line`},K={class:`flex items-baseline justify-between text-[14px]`},q={class:`text-ink tabular-nums`},J={class:`flex items-baseline justify-between text-[14px]`},Y={class:`text-ink tabular-nums`},X={key:0,class:`flex items-baseline justify-between text-[14px]`},Z={class:`text-ink tabular-nums`},re={class:`mt-2 pt-3 border-t border-line flex items-baseline justify-between`},ie={class:`font-display text-2xl text-brand tabular-nums`},ae={key:2,class:`px-6 pb-6`},oe={__name:`CheckoutSummary`,props:{items:{type:Array,required:!0,validator:e=>e.every(e=>e&&typeof e.productId==`string`&&Number.isInteger(e.quantity))},subtotal:{type:Number,required:!0},shipping:{type:Number,default:0},tax:{type:Number,default:0},total:{type:Number,required:!0},currency:{type:String,default:`€`},ctaLabel:{type:String,default:``},ctaLoading:{type:Boolean,default:!1},ctaDisabled:{type:Boolean,default:!1},heading:{type:String,default:``}},emits:[`submit`],setup(e){function n(e,t){return typeof e!=`number`||!Number.isFinite(e)?``:`${t} ${e.toFixed(2).replace(`.`,`,`)}`}return(r,i)=>(t(),g(`aside`,P,[e.heading?(t(),g(`header`,F,[h(`h2`,I,c(e.heading),1)])):u(``,!0),e.items.length?(t(),g(`ul`,L,[(t(!0),g(m,null,a(e.items,r=>(t(),g(`li`,{key:r.productId,class:`flex items-center gap-4 px-6 py-4`},[h(`div`,R,[r.product?.image?(t(),g(`img`,{key:0,src:r.product.image,alt:r.product?.title||``,loading:`lazy`,decoding:`async`,class:`w-full h-full object-contain p-2`},null,8,z)):u(``,!0),r.quantity>1?(t(),g(`span`,B,c(r.quantity),1)):u(``,!0)]),h(`div`,V,[h(`p`,H,c(r.product?.title),1),r.product?.size?(t(),g(`p`,U,c(r.product.size),1)):u(``,!0)]),h(`span`,W,c(n(r.lineTotal??r.unitPrice*r.quantity,e.currency)),1)]))),128))])):u(``,!0),h(`dl`,G,[h(`div`,K,[i[1]||=h(`dt`,{class:`text-muted`},`Subtotal`,-1),h(`dd`,q,c(n(e.subtotal,e.currency)),1)]),h(`div`,J,[i[2]||=h(`dt`,{class:`text-muted`},`Versand`,-1),h(`dd`,Y,c(n(e.shipping,e.currency)),1)]),e.tax>0?(t(),g(`div`,X,[i[3]||=h(`dt`,{class:`text-muted`},`MwSt. (19 %, inkl.)`,-1),h(`dd`,Z,c(n(e.tax,e.currency)),1)])):u(``,!0),h(`div`,re,[i[4]||=h(`dt`,{class:`eyebrow`},`Gesamt`,-1),h(`dd`,ie,c(n(e.total,e.currency)),1)])]),e.ctaLabel?(t(),g(`div`,ae,[d(D,{variant:`primary`,size:`lg`,block:``,loading:e.ctaLoading,disabled:e.ctaDisabled,onClick:i[0]||=e=>r.$emit(`submit`)},{default:l(()=>[p(c(e.ctaLabel),1)]),_:1},8,[`loading`,`disabled`])])):u(``,!0)]))}},se={class:`min-h-svh flex flex-col bg-cream`},ce={class:`sticky top-0 z-30 bg-cream border-b border-line shrink-0`},le={class:`mx-auto w-full max-w-7xl px-4 sm:px-8 md:px-12 lg:px-16 py-3 grid grid-cols-[1fr_auto_1fr] items-center gap-3 sm:gap-6`},ue={class:`justify-self-center min-w-0`},de={class:`text-ink flex-1 lg:flex lg:flex-col lg:justify-center`},fe={class:`mx-auto w-full max-w-7xl px-6 sm:px-8 md:px-12 lg:px-16 pt-5 pb-28 sm:pt-7 sm:pb-32 md:pt-8 md:pb-32 lg:pt-10 lg:pb-32`},pe={key:0,class:`flex flex-col gap-2 mb-8 md:mb-10`},me={class:`font-display font-normal leading-[1.05] tracking-tight text-ink text-headline-md`},he={class:`italic font-light text-brand`},ge={key:1,class:`flex flex-col gap-2 mb-8 md:mb-10`},_e={class:`font-display text-2xl font-normal text-ink leading-none`},Q={key:0,class:`text-[14px] text-muted max-w-2xl`},ve={key:2,class:`flex justify-center`},ye={class:`w-full max-w-2xl`},be=[`aria-label`],xe={class:`flex flex-col gap-4 rounded-md border border-line bg-paper p-6 md:p-8`},Se={class:`font-display text-xl font-normal text-brand leading-none`},Ce={key:0,class:`text-sm text-danger`,role:`alert`,"aria-live":`polite`},we={class:`min-w-0`},Te=4.9,$=.19,Ee={__name:`CheckoutPage`,setup(a){let{t:m}=S(),x=w(),D=O(),k=v(),A=y(),j=e(null),M=e(!1),N=e(``),P=e(null),F=f(()=>typeof window>`u`?`/checkout/processing`:`${window.location.origin}/checkout/processing?order=${j.value?.orderId||``}`);async function I({wallet:e}){if(!x.items.length){N.value=m(`checkout.error.empty`);return}N.value=``,M.value=!0;try{let t=await T({wallet:e});j.value=t,await o();let n=await P.value?.confirm();if(n?.error){N.value=n.error.message||m(`checkout.error.payment`);return}if(n?.paymentIntent?.status===`succeeded`){let e=t.orderId;await C(),D.reset(),A.push({path:`/checkout/success`,query:{order:e}})}}catch(e){N.value=e?.message||m(`checkout.error.generic`)}finally{M.value=!1}}function L(e){N.value=e?.message||m(`checkout.error.payment`),M.value=!1}let R=f(()=>x.subtotal),z=f(()=>x.items.length?Te:0),B=f(()=>+(R.value+z.value).toFixed(2)),V=f(()=>x.items.length?+((R.value+z.value)*$/(1+$)).toFixed(2):0),H=f(()=>[{key:`cart`,label:m(`checkout.step.cart`),to:`/checkout/cart`,completed:x.items.length>0},{key:`account`,label:m(`checkout.step.account`),to:`/checkout/account`,completed:D.accountComplete},{key:`shipping`,label:m(`checkout.step.shipping`),to:`/checkout/shipping`,completed:D.shippingComplete},{key:`payment`,label:m(`checkout.step.payment`),to:`/checkout/payment`,completed:!1}]),U=f(()=>{let e=k.path.split(`/`)[2]||`cart`;return[`cart`,`account`,`shipping`,`payment`].includes(e)?e:`cart`}),W=f(()=>U.value===`cart`&&!x.isEmpty),G=f(()=>{switch(U.value){case`cart`:return{title:m(`checkout.cart.title`),sub:``};case`account`:return{title:m(`checkout.account.heading`),sub:m(`checkout.account.sub`)};case`shipping`:return{title:m(`checkout.section.shipping`),sub:m(`checkout.shipping.sub`)};case`payment`:return{title:m(`checkout.section.payment`),sub:m(`checkout.payment.sub`)};default:return{title:``,sub:``}}});return i(()=>{E()}),(e,i)=>{let a=n(`router-view`);return t(),g(`div`,se,[h(`header`,ce,[h(`div`,le,[d(r(b),{to:`/`,class:`shrink-0 justify-self-start`,"aria-label":r(m)(`checkout.home`)},{default:l(()=>[d(ee,{class:`w-9 md:w-12 h-auto text-brand`})]),_:1},8,[`aria-label`]),h(`div`,ue,[d(ne,{steps:H.value,"active-key":U.value,"aria-label":r(m)(`checkout.stepper.label`)},null,8,[`steps`,`active-key`,`aria-label`])]),d(r(b),{to:`/shop`,class:`shrink-0 justify-self-end hidden sm:inline-flex items-center text-[13px] font-semibold text-brand hover:underline whitespace-nowrap`},{default:l(()=>[p(c(r(m)(`checkout.backToShopping`)),1)]),_:1})])]),h(`main`,de,[h(`div`,fe,[U.value===`cart`?(t(),g(`header`,pe,[h(`h1`,me,[p(c(r(m)(`checkout.headline`))+` `,1),h(`em`,he,c(r(m)(`checkout.headline.em`)),1)])])):G.value.title?(t(),g(`header`,ge,[h(`h2`,_e,c(G.value.title),1),G.value.sub?(t(),g(`p`,Q,c(G.value.sub),1)):u(``,!0)])):u(``,!0),U.value===`cart`&&r(x).isEmpty?(t(),g(`div`,ve,[h(`div`,ye,[d(a)])])):(t(),g(`div`,{key:3,class:_([`grid gap-8 md:gap-10 lg:gap-12 lg:items-start`,W.value?`lg:grid-cols-[0.9fr_1.1fr]`:`lg:grid-cols-[1.1fr_0.9fr]`])},[W.value?(t(),g(`aside`,{key:0,class:`flex flex-col gap-4 lg:sticky lg:top-[calc(var(--checkout-bar-h,72px)+1rem)]`,"aria-label":r(m)(`checkout.section.express`)},[h(`div`,xe,[h(`h2`,Se,c(r(m)(`checkout.section.express`)),1),d(te,{ref_key:`expressMountRef`,ref:P,intent:j.value,"return-url":F.value,busy:M.value,onPay:I,onError:L},null,8,[`intent`,`return-url`,`busy`])]),N.value?(t(),g(`p`,Ce,c(N.value),1)):u(``,!0)],8,be)):u(``,!0),h(`div`,we,[d(a)]),U.value===`cart`?u(``,!0):(t(),s(oe,{key:1,items:r(x).items,subtotal:R.value,shipping:z.value,tax:V.value,total:B.value,heading:r(m)(`checkout.summary.heading`),class:`lg:sticky lg:top-[calc(var(--checkout-bar-h,72px)+1rem)]`},null,8,[`items`,`subtotal`,`shipping`,`tax`,`total`,`heading`]))],2))])])])}}};export{Ee as default};