1import{_ as z}from"./C_Q5IelE.js";import{_ as H}from"./CxGXphwb.js";import D from"./C_jN3diQ.js";import{d as P,u as S,q as M,c as u,b as o,n as F,l as w,D as E,h as t,i as g,g as R,t as l,e as d,f as T,j as U,_ as L,O,o as i,p as Q,s as G,a4 as J,F as K,m as X,r as B,W as Y}from"./xStzBYfw.js";import{u as Z}from"./CSuiJZda.js";import{u as tt}from"./Dqpo5hw0.js";import{_ as et}from"./DJQ5hgDY.js";import{u as at}from"./DEC5oB84.js";import"./Bt3a6OEW.js";const rt={class:"relative group flex flex-col h-full bg-white dark:bg-gray-800 rounded-lg overflow-hidden border border-gray-200 dark:border-gray-700 hover:shadow-lg transition-shadow"},st=["disabled"],ot={key:0,class:"absolute inset-0 bg-black/50 flex items-center justify-center"},it={class:"text-white font-semibold text-sm"},nt={class:"flex flex-col flex-grow p-3"},lt={key:0,class:"text-sm text-foreground-secondary-light dark:text-foreground-secondary-dark line-clamp-2 mb-2"},ct={class:"mt-auto"},mt={class:"font-bold text-foreground-light dark:text-foreground-dark mb-2"},dt=["disabled"],ut={class:"text-sm"},gt={class:"text-sm"},ht=P({__name:"WishlistCard",props:{item:{},isRemoving:{type:Boolean,default:!1}},emits:["remove","moveToCart"],setup(a,{emit:r}){const e=a,k=r,{t:m,locale:b}=S(),{getImageUrl:C}=Z(),{addItem:I,isInCart:_}=M(),{formatPrice:h}=tt(),f=O(),v=g(()=>{const s=e.item,n=b.value==="ar"?s.variantNameAr||s.variantName:s.variantName||s.variantNameAr;return n||b.value==="ar"&&s.productNameAr||s.productName||""}),N=g(()=>e.item.imageUrl?e.item.imageUrl:e.item.imageFileName?C(e.item.imageFileName):"/placeholder.jpg"),p=g(()=>{const s=e.item.variantId||e.item.productId;return _(s)}),$=g(()=>!!e.item.variantId);function W(){if(!e.item.isAvailable){console.warn("Product is not available");return}if(!e.item.variantId){console.error("Cannot add to cart: variantId is missing"),f.error(m("cart.add_to_cart_error"));return}const s={productId:e.item.productId,productSlug:e.item.productSlug,productName:e.item.productName,variantId:e.item.variantId,productItemId:e.item.variantId,sku:e.item.sku||"",price:e.item.price,currency:e.item.currency,quantity:1,attributes:e.item.attributes||{},imageFileName:e.item.imageFileName,imageUrl:e.item.imageUrl,isAvailable:e.item.isAvailable??!0,stockQuantity:0,categoryCode:e.item.categoryCode,brandName:e.item.brandName};I(s),f.success(m("product.added_to_cart",{quantity:1,name:v.value}))}return(s,n)=>{const c=D,y=L;return i(),u("div",rt,[o("button",{disabled:a.isRemoving,class:F(["absolute top-2 start-2 z-10 w-8 h-8 flex items-center justify-center bg-white/90 dark:bg-gray-800/90 rounded-full shadow-md hover:bg-white dark:hover:bg-gray-800 transition-all duration-200",{"opacity-50 cursor-not-allowed":a.isRemoving,"hover:scale-110 active:scale-95":!a.isRemoving}]),onClick:n[0]||(n[0]=A=>k("remove",a.item.productId))},[a.isRemoving?(i(),w(c,{key:0,name:"tabler-loader-2",class:"w-4 h-4 text-gray-600 dark:text-gray-400 animate-spin"})):(i(),w(c,{key:1,name:"tabler-x",class:"w-4 h-4 text-red-500 hover:text-red-600"}))],10,st),o("div",{class:"relative aspect-square w-full bg-cover bg-center",style:E(`background-image: url('${t(N)}')`)},[a.item.isAvailable?R("",!0):(i(),u("div",ot,[o("span",it,l(t(m)("common.out_of_stock")),1)]))],4),o("div",nt,[d(y,{to:`/product/${a.item.productSlug}`,class:"font-bold text-foreground-light dark:text-foreground-dark hover:text-primary transition-colors truncate mb-1"},{default:T(()=>[U(l(t(v)),1)]),_:1},8,["to"]),a.item.shortDescription?(i(),u("p",lt,l(a.item.shortDescription),1)):R("",!0),o("div",ct,[o("p",mt,l(t(h)(a.item.price,a.item.currency)),1),t($)?(i(),u("button",{key:0,class:F(["w-full py-2 rounded-lg font-medium transition-all flex items-center justify-center gap-2",t(p)?"bg-green-500 text-white hover:bg-green-600":"bg-primary text-white hover:bg-primary/90"]),disabled:!a.item.isAvailable,onClick:W},[d(c,{name:t(p)?"tabler-check":"tabler-shopping-cart-plus",class:"text-lg"},null,8,["name"]),o("span",ut,l(t(p)?t(m)("cart.in_cart"):t(m)("cart.add_to_cart")),1)],10,dt)):(i(),w(y,{key:1,to:`/product/${a.item.productSlug}`,class:"w-full py-2 rounded-lg font-medium transition-all flex items-center justify-center gap-2 bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600"},{default:T(()=>[d(c,{name:"tabler-arrow-right",class:"text-lg"}),o("span",gt,l(t(m)("product.select_variant_first")),1)]),_:1},8,["to"]))])])])}}}),_t=Object.assign(ht,{__name:"WishlistCard"}),ft={class:"min-h-screen"},pt={class:"px-4 sm:px-6 lg:px-8 py-4 md:py-0"},bt={key:0,class:"text-center py-16"},vt={class:"mx-auto w-24 h-24 mb-6 flex items-center justify-center bg-gray-100 dark:bg-gray-800 rounded-full"},yt={class:"text-xl font-semibold text-gray-900 dark:text-white mb-2"},xt={class:"text-gray-600 dark:text-gray-400 mb-8"},wt={key:1,class:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 2xl:grid-cols-8 gap-4 sm:gap-6"},Ft=P({__name:"wishlist",setup(a){const{t:r}=S(),e=Q();G({title:g(()=>`${r("wishlist.title")} - ${r("header.title")}`),meta:[{name:"description",content:g(()=>r("wishlist.your_wishlist"))}]});const{items:k,isEmpty:m,removeItem:b,clearWishlist:C,moveToCart:I}=at(),_=B(null),h=B(!1),f=g(()=>!m.value);async function v(n){_.value=n,await new Promise(c=>setTimeout(c,300)),b(n),_.value=null}function N(){h.value=!0}function p(){C(),h.value=!1}function $(){h.value=!1}async function W(n){I(n)}function s(){Y("/discover")}return(n,c)=>{const y=z,A=H,j=D,q=_t,V=et;return i(),u("div",ft,[d(y,{title:t(r)("wishlist.your_wishlist"),"show-back-button":!0,"back-to":"","hide-wishlist-icon":!0,onBack:c[0]||(c[0]=x=>t(e).back())},null,8,["title"]),d(A,{title:t(r)("wishlist.your_wishlist"),"show-back-button":!1},J({_:2},[t(f)?{name:"actions",fn:T(()=>[o("button",{class:"px-4 py-2 text-sm font-medium text-gray-600 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors",onClick:N},l(t(r)("wishlist.clear_wishlist")),1)]),key:"0"}:void 0]),1032,["title"]),o("div",pt,[t(f)?(i(),u("div",wt,[(i(!0),u(K,null,X(t(k),x=>(i(),w(q,{key:x.productId,item:x,"is-removing":t(_)===x.productId,onRemove:v,onMoveToCart:W},null,8,["item","is-removing"]))),128))])):(i(),u("div",bt,[o("div",vt,[d(j,{name:"tabler-heart",class:"w-12 h-12 text-gray-400 dark:text-gray-500"})]),o("h2",yt,l(t(r)("wishlist.empty_message")),1),o("p",xt,l(t(r)("wishlist.empty_description")),1),o("button",{class:"inline-flex items-center px-6 py-3 text-base font-medium text-white bg-primary hover:bg-primary/90 rounded-lg transition-colors",onClick:s},[d(j,{name:"tabler-search",class:"w-5 h-5 me-2"}),U(" "+l(t(r)("wishlist.browse_products")),1)])]))]),d(V,{show:t(h),title:t(r)("wishlist.clear_wishlist_title"),message:t(r)("wishlist.clear_wishlist_message"),"confirm-text":t(r)("wishlist.clear_wishlist_confirm"),"cancel-text":t(r)("cart.cancel"),"confirm-variant":"danger",icon:"tabler-trash",onConfirm:p,onCancel:$},null,8,["show","title","message","confirm-text","cancel-text"])])}}});
1export{Ft as default};
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.