{"product_id":"fabric-sample","title":"Fabric Sample","description":"\u003cdiv id=\"rb-smp\"\u003e\n\u003cp class=\"rs-intro\"\u003eSee and feel our fabrics before you order. Choose up to \u003cstrong\u003efive fabrics or leathers\u003c\/strong\u003e from our library and we'll post you a free sample of each. Samples are free; postage is just \u003cstrong\u003e£1.50 per order\u003c\/strong\u003e, sent by UK post.\u003c\/p\u003e\n\u003cdiv class=\"rs-tray\" id=\"rs-tray\" aria-live=\"polite\"\u003e\n\u003cdiv class=\"rs-slots\" id=\"rs-slots\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"rs-act\"\u003e\n\u003cp id=\"rs-msg\"\u003eChoose up to 5 fabrics below.\u003c\/p\u003e\n\u003cbutton type=\"button\" id=\"rs-go\" disabled\u003eAdd samples to basket\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rs-tabs\" role=\"tablist\"\u003e\n\u003cbutton type=\"button\" role=\"tab\" data-t=\"\" aria-selected=\"true\"\u003eFabrics\u003c\/button\u003e\u003cbutton type=\"button\" role=\"tab\" data-t=\"l\" aria-selected=\"false\"\u003eLeather\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rs-bar\"\u003e\n\u003cinput type=\"search\" id=\"rs-q\" placeholder=\"Search by name, code, colour or pattern\" aria-label=\"Search fabrics\"\u003e\u003cselect id=\"rs-coll\" aria-label=\"Collection\"\u003e\u003coption value=\"\"\u003eAll collections\u003c\/option\u003e\n\u003coption value=\"c\"\u003eContemporary\u003c\/option\u003e\n\u003coption value=\"h\"\u003eHeritage\u003c\/option\u003e\u003c\/select\u003e\u003cselect id=\"rs-style\" aria-label=\"Style\"\u003e\u003coption value=\"\"\u003eAll styles\u003c\/option\u003e\u003c\/select\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rs-chips\" id=\"rs-col\"\u003e\u003c\/div\u003e\n\u003cp class=\"rs-count\" id=\"rs-count\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"rs-grid\" id=\"rs-grid\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"rs-more\"\u003e\u003cbutton type=\"button\" id=\"rs-more\"\u003eShow more fabrics\u003c\/button\u003e\u003c\/div\u003e\n\u003cp class=\"rs-small\"\u003eEach sample is a cut piece of the fabric so you can check colour and feel at home. Prefer to browse with room pictures? Visit the \u003ca href=\"\/pages\/fabric-library\"\u003eFabric Library\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n#rb-smp .rs-intro{max-width:760px;margin:0 0 18px}\n#rb-smp .rs-tray{position:sticky;top:0;z-index:20;background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:6px;padding:12px;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;box-shadow:0 4px 14px rgba(0,0,0,.06)}\n#rb-smp .rs-slots{display:flex;gap:8px;flex-wrap:wrap}\n#rb-smp .rs-slot{width:64px;height:64px;border:1px dashed rgba(0,0,0,.3);border-radius:4px;position:relative;background:#f6f4f0 center\/cover no-repeat}\n#rb-smp .rs-slot.f{border:1px solid rgba(0,0,0,.2)}\n#rb-smp .rs-slot button{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:0;background:#000;color:#fff;font-size:14px;line-height:22px;cursor:pointer;padding:0}\n#rb-smp .rs-act{display:flex;align-items:center;gap:12px;flex-wrap:wrap}\n#rb-smp .rs-act p{margin:0;font-size:.9em}\n#rb-smp #rs-go,#rb-smp .rs-more button{padding:12px 22px;border:1px solid #000;background:#000;color:#fff;border-radius:4px;cursor:pointer;font:inherit}\n#rb-smp #rs-go[disabled]{opacity:.35;cursor:default}\n#rb-smp .rs-tabs{display:flex;border-bottom:1px solid rgba(0,0,0,.2);margin:0 0 12px}\n#rb-smp .rs-tabs button{font:inherit;font-size:1.1em;padding:10px 18px;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;color:inherit;opacity:.6}\n#rb-smp .rs-tabs button[aria-selected=true]{opacity:1;border-bottom-color:#000;font-weight:600}\n#rb-smp .rs-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}\n#rb-smp .rs-bar input,#rb-smp .rs-bar select{padding:10px 12px;border:1px solid rgba(0,0,0,.25);border-radius:4px;font:inherit;background:#fff;color:inherit}\n#rb-smp .rs-bar input{flex:1 1 260px}\n#rb-smp .rs-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}\n#rb-smp .rs-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid rgba(0,0,0,.2);border-radius:999px;font-size:.85em;cursor:pointer;background:#fff;color:inherit}\n#rb-smp .rs-chip i{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}\n#rb-smp .rs-chip[aria-pressed=true]{border-color:#000;background:#000;color:#fff}\n#rb-smp .rs-count{font-size:.85em;opacity:.7;margin:0 0 10px}\n#rb-smp .rs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}\n#rb-smp .rs-card{position:relative;align-self:start;cursor:pointer;background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit}\n#rb-smp .rs-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#eee;border:3px solid transparent;box-sizing:border-box}\n#rb-smp .rs-card[aria-pressed=true] img{border-color:#000}\n#rb-smp .rs-card .tk{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.9);border:1px solid rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;font-size:15px}\n#rb-smp .rs-card[aria-pressed=true] .tk{background:#000;color:#fff;border-color:#000}\n#rb-smp .rs-card b{display:block;margin-top:6px;font-weight:600}\n#rb-smp .rs-card small{opacity:.65}\n#rb-smp .rs-more{text-align:center;margin:24px 0}\n#rb-smp .rs-small{font-size:.85em;opacity:.75}\n@media(max-width:700px){#rb-smp .rs-grid{grid-template-columns:repeat(2,1fr)}#rb-smp .rs-slot{width:48px;height:48px}#rb-smp .rs-act{width:100%;justify-content:space-between}}\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\nvar CDN='https:\/\/cdn.shopify.com\/s\/files\/1\/1081\/6382\/6001\/files\/',SV=55536183345489,MAX=5,$=function(i){return document.getElementById(i)};\nvar LEA=[['whisky','Highland Whisky'],['cowboy_brown','Cowboy Brown'],['sudan','Sudan'],['weathered_rustic_brown','Weathered Rustic Brown'],['retro_yellow','Retro Yellow'],['rioja','Rioja'],['ranch_green','Ranch Green'],['etna_grey','Etna Grey'],['concrete_black','Concrete Black'],['birch_teal','Birch Teal'],['birch_sunset','Birch Sunset'],['wild_cherry','Birch Wild Cherry']];\nfetch(CDN+'fabric-library-data.json?v=h4').then(function(r){return r.json()}).then(function(D){var F=D.f.slice(),COL=D.c;\nLEA.forEach(function(l){F.push(['Leather',l[1],'','','',[],'','','l',l[0]])});\nfunction key(f){return f[8]=='l'?'Leather '+f[1]:f[0]}function prop(f){return f[8]=='l'?'Leather '+f[1]:f[0]+' '+f[1]}\nvar st={q:'',s:'',c:[],n:60,t:'',k:''},sel=[],inCart=[],cartN=0;\nfunction sw(f){return f[8]=='l'?CDN+'lb-'+f[9]+'.jpg?width=300':CDN+f[0].toLowerCase()+'_swatch.jpg'}\nvar styles=[];F.forEach(function(f){if(f[4]\u0026\u0026styles.indexOf(f[4])\u003c0)styles.push(f[4])});styles.sort();\nstyles.forEach(function(s){var o=document.createElement('option');o.value=s;o.textContent=s;$('rs-style').appendChild(o)});\nObject.keys(COL).forEach(function(c){var b=document.createElement('button');b.type='button';b.className='rs-chip';b.setAttribute('aria-pressed','false');b.innerHTML='\u003ci style=\"background:'+COL[c]+'\"\u003e\u003c\/i\u003e'+c;b.onclick=function(){var i=st.c.indexOf(c);if(i\u003c0)st.c.push(c);else st.c.splice(i,1);b.setAttribute('aria-pressed',i\u003c0);st.n=60;draw()};$('rs-col').appendChild(b)});\nfunction match(f){var y=f[8]||'c';if(st.t=='l'?y!='l':y=='l')return false;if(st.t!='l'\u0026\u0026st.k\u0026\u0026y!=st.k)return false;if(st.t=='l')return !st.q||f[1].toLowerCase().indexOf(st.q.toLowerCase())\u003e=0;if(st.s\u0026\u0026f[4]!=st.s)return false;for(var i=0;i\u003cst.c.length;i++)if(f[5].indexOf(st.c[i])\u003c0)return false;\nif(st.q){var t=f.join(' ').toLowerCase(),w=st.q.toLowerCase().split(\/\\s+\/);for(var j=0;j\u003cw.length;j++)if(w[j]\u0026\u0026t.indexOf(w[j])\u003c0)return false}return true}\nfunction left(){return MAX-cartN-sel.length}\nfunction tray(){var s=$('rs-slots');s.innerHTML='';for(var i=0;i\u003cMAX-cartN;i++){var d=document.createElement('div');d.className='rs-slot';var f=sel[i];if(f){d.className+=' f';d.style.backgroundImage='url('+sw(f)+')';d.title=f[8]=='l'?'Leather: '+f[1]:f[1]+' ('+f[0]+')';var x=document.createElement('button');x.type='button';x.textContent='×';x.setAttribute('aria-label','Remove '+f[1]);(function(f){x.onclick=function(){toggle(f)}})(f);d.appendChild(x)}s.appendChild(d)}\nvar m=cartN?cartN+' sample'+(cartN\u003e1?'s':'')+' already in your basket. ':'';\nif(cartN\u003e=MAX){$('rs-msg').innerHTML='You already have five samples in your basket. \u003ca href=\"\/cart\"\u003eView basket\u003c\/a\u003e';}\nelse $('rs-msg').textContent=m+(sel.length?sel.length+' chosen, '+left()+' more available.':'Choose up to '+(MAX-cartN)+' fabric'+(MAX-cartN\u003e1?'s':'')+' below.');\n$('rs-go').disabled=!sel.length;$('rs-go').textContent=sel.length?'Add '+sel.length+' sample'+(sel.length\u003e1?'s':'')+' to basket':'Add samples to basket'}\nfunction toggle(f){var i=sel.indexOf(f);if(i\u003e=0)sel.splice(i,1);else{if(inCart.indexOf(key(f))\u003e=0){$('rs-msg').innerHTML='That sample is already in your basket. \u003ca href=\"\/cart\"\u003eView basket\u003c\/a\u003e';return}if(left()\u003c=0){$('rs-msg').textContent='You can order up to five free samples. Remove one to choose another.';return}sel.push(f)}draw();tray()}\nfunction mix(r){var c=r.filter(function(f){return (f[8]||'c')=='c'}),h=r.filter(function(f){return f[8]=='h'});if(!c.length||!h.length)return r;var o=[],i=0,j=0;while(i\u003cc.length||j\u003ch.length){if(j\u003e=h.length||(i\u003cc.length\u0026\u0026(i+1)\/c.length\u003c=(j+1)\/h.length))o.push(c[i++]);else o.push(h[j++])}return o}\nfunction draw(){var r=mix(F.filter(match)),g=$('rs-grid');g.innerHTML='';\nr.slice(0,st.n).forEach(function(f){var b=document.createElement('button');b.type='button';b.className='rs-card';var on=sel.indexOf(f)\u003e=0||inCart.indexOf(key(f))\u003e=0;b.setAttribute('aria-pressed',on);\nb.innerHTML='\u003cimg loading=\"lazy\" src=\"'+sw(f)+'\" alt=\"'+f[1]+(f[8]=='l'?' leather':' fabric')+'\"\u003e\u003cspan class=\"tk\"\u003e'+(on?'✓':'+')+'\u003c\/span\u003e\u003cb\u003e'+f[1]+'\u003c\/b\u003e\u003csmall\u003e'+f[0]+(f[2]?' \u0026middot; '+f[2]:'')+'\u003c\/small\u003e';b.onclick=function(){toggle(f)};g.appendChild(b)});\n$('rs-count').textContent=r.length?r.length+(st.t=='l'?(r.length==1?' leather':' leathers'):(r.length==1?' fabric':' fabrics')):'No fabrics match. Try clearing a filter.';$('rs-more').parentNode.style.display=r.length\u003est.n?'':'none'}\nfunction readCart(){return fetch('\/cart.js').then(function(r){return r.json()}).then(function(c){cartN=0;inCart=[];c.items.forEach(function(it){if(it.variant_id==SV){cartN+=it.quantity;var fb=String((it.properties||{}).Fabric||'');inCart.push(fb.indexOf('Leather ')==0?fb:fb.split(' ')[0])}});})}\n$('rs-go').onclick=function(){var b=this;b.disabled=true;$('rs-msg').textContent='Adding…';readCart().then(function(){\nvar add=sel.filter(function(f){return inCart.indexOf(key(f))\u003c0}).slice(0,Math.max(0,MAX-cartN));\nif(!add.length){$('rs-msg').innerHTML='Your basket already has five samples. \u003ca href=\"\/cart\"\u003eView basket\u003c\/a\u003e';return}\nreturn fetch('\/cart\/add.js',{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({items:add.map(function(f){return{id:SV,quantity:1,properties:{Fabric:prop(f)}}})})}).then(function(r){if(!r.ok)throw 0;location.href='\/cart'})}).catch(function(){b.disabled=false;$('rs-msg').textContent='Sorry, something went wrong. Please try again.'})};\n[].forEach.call(document.querySelectorAll('#rb-smp .rs-tabs button'),function(b){b.onclick=function(){st.t=b.getAttribute('data-t');[].forEach.call(document.querySelectorAll('#rb-smp .rs-tabs button'),function(x){x.setAttribute('aria-selected',x==b)});var L=st.t=='l';$('rs-style').style.display=$('rs-coll').style.display=$('rs-col').style.display=L?'none':'';$('rs-q').placeholder=L?'Search leathers':'Search by name, code, colour or pattern';st.n=60;draw()}});\nvar tm;$('rs-q').oninput=function(e){clearTimeout(tm);tm=setTimeout(function(){st.q=e.target.value.trim();st.n=60;draw()},200)};\n$('rs-style').onchange=function(e){st.s=e.target.value;st.n=60;draw()};$('rs-coll').onchange=function(e){st.k=e.target.value;st.n=60;draw()};$('rs-more').onclick=function(){st.n+=60;draw()};\nreadCart().catch(function(){}).then(function(){var p=new URLSearchParams(location.search);if(p.get('leather')){var lf=F.filter(function(x){return x[8]=='l'\u0026\u0026x[1].toLowerCase()==p.get('leather').toLowerCase()})[0];if(lf\u0026\u0026inCart.indexOf(key(lf))\u003c0\u0026\u0026left()\u003e0){sel.push(lf);document.querySelector('#rb-smp [data-t=l]').click()}}\nif(p.get('fabric')){var f=F.filter(function(x){return x[0]==p.get('fabric').toUpperCase()})[0];if(f\u0026\u0026inCart.indexOf(f[0])\u003c0\u0026\u0026left()\u003e0){sel.push(f)}}draw();tray()})\n}).catch(function(){$('rs-count').textContent='Sorry, the fabrics could not be loaded. Please refresh the page.'})})();\n\u003c\/script\u003e\n\u003cscript\u003e\n(function(){function go(){var box=document.getElementById('rb-smp'),f=document.querySelector('form[action*=\"\/cart\/add\"]');if(!box||!f)return;var t=f.closest('buy-buttons-component,.buy-buttons-block,product-form-component')||f;t.parentNode.insertBefore(box,t);t.style.display='none';[].forEach.call(document.querySelectorAll('shopify-payment-button,.shopify-payment-button,shopify-accelerated-checkout'),function(e){var c=e.closest('buy-buttons-component,.buy-buttons-block')||e;c.style.display='none'});\ndocument.addEventListener('submit',function(e){var x=e.target;if(x.matches\u0026\u0026x.matches('form[action*=\"\/cart\/add\"]')\u0026\u0026!x.querySelector('input[name=\"properties[Fabric]\"]')){e.preventDefault();e.stopImmediatePropagation();box.scrollIntoView({block:'start'})}},true)}\nif(document.readyState=='loading')document.addEventListener('DOMContentLoaded',go);else go()})();\n\u003c\/script\u003e\n","brand":"Rare Bird Living","offers":[{"title":"Default Title","offer_id":55536183345489,"sku":"RB-SAMPLE","price":0.0,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1081\/6382\/6001\/files\/fabric-samples.jpg?v=1793696568","url":"https:\/\/rarebirdliving.co.uk\/products\/fabric-sample","provider":"Rare Bird Living","version":"1.0","type":"link"}