PageSourceSearch

https://geltoynation.com/assets/ShopifyProductCard-CZFJMr4T.js

js geltoynation.com collected 2026-10-04 02:39:08 UTC 2,434 bytes, 1 lines download raw bytes

1import{e as d,ad as b,ae as g,j as e,L as f,i as c,C as h,b as v}from"./index-BCW6nnV8.js";function w({product:p}){const a=p.node,t=a.variants.edges[0]?.node,s=a.images.edges[0]?.node,x=d(r=>r.addItem),i=d(r=>r.isLoading),n=t?.price??a.priceRange.minVariantPrice,l=t?.compareAtPrice??a.compareAtPriceRange?.minVariantPrice??null,o=b(n,l),u=g(n,l),m=async r=>{r.preventDefault(),r.stopPropagation(),t&&await x({product:{id:a.id,title:a.title,handle:a.handle,images:a.images},variantId:t.id,variantTitle:t.title,price:t.price,quantity:1,selectedOptions:t.selectedOptions??[]})};return e.jsxs(f,{to:"/product/$handle",params:{handle:a.handle},className:"group relative flex flex-col overflow-hidden rounded-2xl border border-border bg-surface transition-all duration-300 hover:border-brand/50 hover:-translate-y-1 hover:shadow-[var(--shadow-glow)]",children:[e.jsxs("div",{className:"relative aspect-square overflow-hidden bg-black",children:[s?e.jsx("img",{src:s.url,alt:s.altText??a.title,loading:"lazy",className:"h-full w-full object-cover transition-transform duration-700 group-hover:scale-110"}):e.jsx("div",{className:"h-full w-full bg-surface-2"}),t&&!t.availableForSale&&e.jsx("span",{className:"absolute left-3 top-3 px-2.5 py-1 text-[10px] font-bold uppercase tracking-wider rounded-md bg-background/80 text-destructive border border-destructive/40",children:"Sold Out"}),o&&e.jsxs("span",{className:"absolute right-3 top-3 px-2.5 py-1 text-[10px] font-bold uppercase tracking-wider rounded-md bg-background/80 backdrop-blur text-brand border border-brand/30",children:["-",u,"%"]})]}),e.jsxs("div",{className:"flex flex-1 flex-col gap-3 p-4",children:[e.jsx("h3",{className:"font-display text-base font-bold leading-tight text-foreground line-clamp-2 group-hover:text-brand transition-colors",children:a.title}),e.jsxs("div",{className:"mt-auto flex flex-wrap items-center justify-between gap-x-2 gap-y-2 pt-2",children:[e.jsxs("span",{className:"flex min-w-0 flex-wrap items-baseline gap-x-2",children:[o&&e.jsx("span",{className:"text-xs text-muted-foreground line-through",children:c(l)}),e.jsx("span",{className:`font-display text-lg sm:text-xl font-bold ${o?"text-brand":"text-foreground"}`,children:c(n)})]}),e.jsx(h,{size:"sm",className:"shrink-0","aria-label":`Add ${a.title} to cart`,onClick:m,disabled:i||!t?.availableForSale,children:i?e.jsx(v,{className:"h-3 w-3 animate-spin"}):"Add"})]})]})]})}export{w as S};

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.