PageSourceSearch

https://grainlinemercantile.com/assets/fabric-lace-Kp_Jpz5j.js

js grainlinemercantile.com collected 2026-10-04 12:34:07 UTC 4,423 bytes, 1 lines download raw bytes

1import{b as c,r as n,j as e}from"./main-CqrXbnE3.js";import{L as d}from"./Layout-C3Dy6Jwe.js";import{B as m}from"./button-Bhh3MjV7.js";import{S as u}from"./SquareProductGrid-CkdrLBF7.js";const x="/assets/fabric-lace-hero-BAjl-hAB.jpg",h=[{city:"Florence",country:"Italy",note:"Heritage silks and brocades from Tuscan mills with centuries of tradition."},{city:"Barcelona",country:"Spain",note:"Bold prints and handwoven cottons from Catalan textile artisans."},{city:"Porto",country:"Portugal",note:"Fine linens and cork-blended textiles from traditional Portuguese workshops."},{city:"Lyon",country:"France",note:"Luxury jacquards and lace from the historic silk capital of Europe."},{city:"Tenerife",country:"Canary Islands",note:"Delicate calado embroidery and handcrafted lacework unique to the island."},{city:"San Juan",country:"Puerto Rico",note:"Vibrant hand-dyed cottons and tropical-weight linens from local makers."},{city:"Santa Fe",country:"New Mexico",note:"Hand-loomed textiles and natural-dyed wools from Native and Hispanic weaving traditions."},{city:"Honolulu",country:"Hawai'i",note:"Tropical barkcloth prints and kapa-inspired textiles honoring Polynesian craft heritage."}];function j(){const t=c.useLoaderData(),[s,r]=n.useState(""),[o,i]=n.useState(!1),l=a=>{a.preventDefault(),i(!0)};return e.jsxs(d,{children:[e.jsxs("section",{className:"relative h-[50vh] min-h-[400px] flex items-end overflow-hidden",children:[e.jsxs("div",{className:"absolute inset-0",children:[e.jsx("img",{src:x,alt:"Artisan lace and textiles at a Mediterranean market",className:"w-full h-full object-cover",width:1920,height:900}),e.jsx("div",{className:"absolute inset-0 bg-walnut/50"})]}),e.jsxs("div",{className:"relative z-10 px-6 pb-12 md:pb-16 container-narrow w-full",children:[e.jsx("span",{className:"text-sm tracking-[0.25em] uppercase font-medium mb-4 block font-[var(--font-body)] shimmer",children:"✦ Coming Soon ✦"}),e.jsxs("h1",{className:"text-walnut-foreground",children:["Fabric & Lace",e.jsx("br",{}),"from the Road"]})]})]}),e.jsx("section",{className:"section-padding",children:e.jsx("div",{className:"container-narrow px-6",children:e.jsx("p",{className:"text-muted-foreground max-w-2xl text-lg leading-relaxed",children:"Sourced from exotic de
1stinations across the globe. Small quantities of extraordinary textiles — the kind you can't find in a chain store catalog. Each piece comes with a story and provenance."})})}),e.jsx("div",{className:"container-narrow px-6 ledger-line"}),t.items.length>0&&e.jsx("section",{className:"section-padding pb-0",children:e.jsxs("div",{className:"container-narrow px-6",children:[e.jsx("h2",{className:"mb-12",children:"Available Now"}),e.jsx(u,{items:t.items,error:t.error})]})}),e.jsx("section",{className:"section-padding",children:e.jsxs("div",{className:"container-narrow px-6",children:[e.jsx("h2",{className:"mb-12",children:"Where We Source"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-px bg-border",children:h.map(a=>e.jsxs("div",{className:"bg-background p-8 md:p-12",children:[e.jsx("h3",{className:"text-xl mb-1",children:a.city}),e.jsx("span",{className:"text-xs tracking-[0.15em] uppercase text-muted-foreground mb-4 block font-[var(--font-body)]",children:a.country}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.note})]},a.city))})]})}),e.jsx("section",{className:"section-padding bg-walnut",children:e.jsxs("div",{className:"container-narrow px-6 max-w-xl text-center",children:[e.jsx("h2",{className:"text-walnut-foreground mb-6",children:"Be the First to Know"}
1),e.jsx("p",{className:"text-walnut-foreground/60 mb-10 leading-relaxed",children:"New stock arrives in small quantities and sells quickly. Sign up to be notified when new fabrics and laces are available."}),o?e.jsx("p",{className:"text-gold text-sm tracking-wider",children:"Thank you. We'll be in touch when new stock arrives."}):e.jsxs("form",{onSubmit:l,className:"flex flex-col sm:flex-row gap-3",children:[e.jsx("input",{type:"email",required:!0,value:s,onChange:a=>r(a.target.value),placeholder:"Your email address",className:"flex-1 bg-transparent border border-walnut-foreground/20 px-5 py-3 text-walnut-foreground placeholder:text-walnut-foreground/30 text-sm focus:outline-none focus:border-gold transition-colors"}),e.jsx(m,{variant:"gold",type:"submit",children:"Notify Me"})]})]})})]})}export{j as component};

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.