[object Object]

← back to Nationalrealestate

USRE grid: mobile filter access — rail opens as off-canvas drawer via a Filters button <820px (was display:none); reuses existing facets (v0.6.0)

d9054bf15e9383e646440ca255d9dc0a24f5fd83 · 2026-07-26 16:46:25 -0700 · Steve

Files touched

Diff

commit d9054bf15e9383e646440ca255d9dc0a24f5fd83
Author: Steve <steve@designerwallcoverings.com>
Date:   Sun Jul 26 16:46:25 2026 -0700

    USRE grid: mobile filter access — rail opens as off-canvas drawer via a Filters button <820px (was display:none); reuses existing facets (v0.6.0)
---
 package-lock.json   |  4 ++--
 package.json        |  2 +-
 public/crcp-grid.js | 11 +++++++++++
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 510d8c6..7aefdd2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "nationalrealestate",
-  "version": "0.5.1",
+  "version": "0.6.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "nationalrealestate",
-      "version": "0.5.1",
+      "version": "0.6.0",
       "dependencies": {
         "better-sqlite3": "^13.0.1",
         "dotenv": "^16.4.5",
diff --git a/package.json b/package.json
index d0a35a9..fb69a74 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "nationalrealestate",
-  "version": "0.5.1",
+  "version": "0.6.0",
   "private": true,
   "type": "module",
   "description": "USRealEstate — national U.S. residential market explorer. Free-data v1 (Redfin Data Center, Zillow Research, Census ACS, FHFA). Internal analyst tool behind basic auth.",
diff --git a/public/crcp-grid.js b/public/crcp-grid.js
index c14686f..d68eff5 100644
--- a/public/crcp-grid.js
+++ b/public/crcp-grid.js
@@ -269,6 +269,17 @@
       cols.addEventListener('input', e => setCols(e.target.value));
       const sc = localStorage.getItem(KEY + 'Cols'); if (sc) { cols.value = sc; }
       setCols(cols.value);
+      // mobile: "Filters" button opens the existing rail as an off-canvas drawer
+      const filtBtn = m.querySelector('.cg-filt-btn');
+      const railEl = $(O.rail);
+      if (filtBtn && railEl) {
+        const bd = document.createElement('div'); bd.className = 'cg-rail-backdrop'; document.body.appendChild(bd);
+        const openRail = () => { railEl.classList.add('open'); bd.classList.add('open'); };
+        const closeRail = () => { railEl.classList.remove('open'); bd.classList.remove('open'); };
+        filtBtn.addEventListener('click', () => railEl.classList.contains('open') ? closeRail() : openRail());
+        bd.addEventListener('click', closeRail);
+        document.addEventListener('keydown', e => { if (e.key === 'Escape') closeRail(); });
+      }
       // th-click sorting + whole-row click (delegated; grid re-renders under us)
       m.addEventListener('click', e => {
         const af = e.target.closest('.cg-af, .cg-af-clear');

← 02bd28c auto-save: 2026-07-26T16:44:36 (2 files) — public/crcp-grid.  ·  back to Nationalrealestate  ·  auto-save: 2026-07-26T17:14:46 (2 files) — src/ingest/parcel 6e08a2b →