← back to Wallpaperdistributors
_legacy-directory/views/index.ejs
129 lines
<%- include('partials/head', { title: site.name + ' — ' + site.tagline, description: site.description }) %>
<main class="wrap main">
<section class="hero">
<h1>
<span class="hero-line-1">Every wallcovering line.</span>
<span class="hero-line-2">Mapped to who actually stocks it.</span>
</h1>
<p class="lead">A trade index of B2B wallcovering distributors across the U.S. and Canada — searchable by vendor line, region, and project segment. <strong><%= total %></strong> distributors indexed, <strong><%= facets.lines.length %></strong> lines mapped, <strong><%= facets.regions.length %></strong> regions covered.</p>
</section>
<form class="filter-bar" method="get" action="/">
<input type="search" name="q" value="<%= filters.q %>" placeholder="Search distributor, city, line, segment…" aria-label="Search">
<select name="region" aria-label="Region">
<option value="">All regions</option>
<% facets.regions.forEach(function(r){ %>
<option value="<%= r %>" <%= filters.region === r ? 'selected' : '' %>><%= r %></option>
<% }) %>
</select>
<select name="segment" aria-label="Project segment">
<option value="">All segments</option>
<% facets.segments.forEach(function(s){ %>
<option value="<%= s %>" <%= filters.segment === s ? 'selected' : '' %>><%= s %></option>
<% }) %>
</select>
<select name="line" aria-label="Line carried">
<option value="">All lines</option>
<% facets.lines.forEach(function(l){ %>
<option value="<%= l %>" <%= filters.line === l ? 'selected' : '' %>><%= l %></option>
<% }) %>
</select>
<label class="check">
<input type="checkbox" name="trade" value="1" <%= filters.trade === '1' ? 'checked' : '' %>>
<span>Trade-only</span>
</label>
<button type="submit" class="btn-primary">Filter</button>
<% if (filters.q || filters.region || filters.segment || filters.line || filters.trade) { %>
<a class="btn-ghost" href="/">Reset</a>
<% } %>
</form>
<div class="result-bar">
<div class="muted"><%= matched %> of <%= total %> matching</div>
<div class="controls">
<label class="control">
<span>Sort</span>
<select id="sort-select" name="sort">
<option value="newest" <%= filters.sort === 'newest' ? 'selected' : '' %>>Newest</option>
<option value="company" <%= filters.sort === 'company' ? 'selected' : '' %>>Company A→Z</option>
<option value="city" <%= filters.sort === 'city' ? 'selected' : '' %>>City A→Z</option>
<option value="lines" <%= filters.sort === 'lines' ? 'selected' : '' %>>Most lines ↓</option>
<option value="years" <%= filters.sort === 'years' ? 'selected' : '' %>>Oldest first</option>
</select>
</label>
<label class="control">
<span>Density</span>
<input id="density-slider" type="range" min="240" max="440" step="20" value="320">
</label>
</div>
</div>
<% if (!matched) { %>
<div class="empty">No distributors match those filters. <a href="/">Reset</a>.</div>
<% } else { %>
<ul class="card-grid" id="rep-grid">
<% distributors.forEach(function(d){ %>
<li class="rep-card">
<a class="rep-link" href="/distributor/<%= d.id %>">
<div class="rep-card-head">
<div class="rep-avatar"><%= d.company.split(' ').map(s => s[0]).join('').replace(/[^A-Z]/g,'').slice(0,3).toUpperCase() %></div>
<div>
<div class="rep-name"><%= d.company %></div>
<div class="rep-agency"><%= d.city %></div>
</div>
</div>
<div class="rep-meta">
<% if (d.trade_only) { %><span class="chip ok" title="To-the-trade only">Trade-only</span><% } else { %><span class="chip retail">Trade + Retail</span><% } %>
<% if (d.showroom && d.showroom.toLowerCase() !== 'none') { %><span class="chip">Showroom</span><% } %>
<% if (d.memo_program && /yes/i.test(d.memo_program)) { %><span class="chip">Memos</span><% } %>
<span class="chip"><%= d.lines_carried.length %> lines</span>
<% if (d.founded) { %><span class="chip muted-chip">Since <%= d.founded %></span><% } %>
</div>
<div class="rep-lines muted">
<%= d.lines_carried.slice(0,4).join(' · ') %><% if (d.lines_carried.length > 4) { %> · +<%= d.lines_carried.length - 4 %><% } %>
</div>
<div class="rep-vertical">
<% d.segments.slice(0,4).forEach(function(s){ %>
<span class="tag"><%= s %></span>
<% }) %>
</div>
</a>
</li>
<% }) %>
</ul>
<% } %>
<section class="how-it-works">
<div class="hiw-head">
<span class="hiw-eyebrow">How matches work</span>
<h2>Three filters. One distributor that actually stocks the line.</h2>
</div>
<ol class="hiw-steps">
<li>
<span class="hiw-num">01</span>
<h3>Filter by line carried</h3>
<p>Pick a specific vendor line — Schumacher, Thibaut, Phillip Jeffries, Cole & Son, Maya Romanoff — and see every distributor authorized to carry it.</p>
</li>
<li>
<span class="hiw-num">02</span>
<h3>Narrow by region</h3>
<p>Each listing maps the metros and states the distributor actively services. Filter by region to find the closest in-region inventory and memo turnaround.</p>
</li>
<li>
<span class="hiw-num">03</span>
<h3>Match the project segment</h3>
<p>Hospitality FF&E, healthcare, multifamily, residential trade, government — narrow to distributors who've shipped to your project type.</p>
</li>
</ol>
<p class="hiw-note">Listings reflect distributor-supplied information — not pay-to-play. To list your company, update an entry, or correct a line authorization, email <a href="mailto:<%= site.email %>"><%= site.email %></a>. Operated by <a href="https://designerwallcoverings.com">Designer Wallcoverings</a> as a free industry resource.</p>
</section>
</main>
<%- include('partials/foot') %>