4 Commits
v2.2 ... v2.6

Author SHA1 Message Date
Mikhail Chusavitin
a8116e78f5 fix(viewer): use ghost span in grid stack to enforce column name width
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:51:15 +03:00
Mikhail Chusavitin
fa8789a589 fix(viewer): use size attribute on input to enforce column min-width
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:49:18 +03:00
Mikhail Chusavitin
b38c878724 fix(viewer): set min-width on th cell to prevent column header truncation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:46:30 +03:00
Mikhail Chusavitin
969e246b81 fix(viewer): prevent column header placeholder truncation via min-width
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:45:19 +03:00
2 changed files with 28 additions and 2 deletions

View File

@@ -339,9 +339,24 @@ body {
color: var(--muted); color: var(--muted);
} }
.col-filter-wrap {
display: grid;
}
.col-filter-wrap > * {
grid-area: 1 / 1;
}
.col-filter-ghost {
visibility: hidden;
white-space: nowrap;
font: inherit;
pointer-events: none;
padding: 2px 4px;
}
.col-filter-text { .col-filter-text {
width: 100%; width: 100%;
min-width: 40px;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 3px; border-radius: 3px;
padding: 2px 4px; padding: 2px 4px;

View File

@@ -72,6 +72,14 @@ document.addEventListener("DOMContentLoaded", () => {
th.appendChild(select); th.appendChild(select);
} }
} else if (colName) { } else if (colName) {
const wrap = document.createElement("div");
wrap.className = "col-filter-wrap";
const ghost = document.createElement("span");
ghost.className = "col-filter-ghost";
ghost.setAttribute("aria-hidden", "true");
ghost.textContent = colName;
const input = document.createElement("input"); const input = document.createElement("input");
input.type = "text"; input.type = "text";
input.className = "col-filter col-filter-text"; input.className = "col-filter col-filter-text";
@@ -85,8 +93,11 @@ document.addEventListener("DOMContentLoaded", () => {
applyFilters(); applyFilters();
}, 300); }, 300);
}); });
wrap.appendChild(ghost);
wrap.appendChild(input);
th.textContent = ""; th.textContent = "";
th.appendChild(input); th.appendChild(wrap);
} }
}); });
}); });