fix: replace grid action column with link-column on primary data cell

Remove the dedicated "Edit"/"Open" action button column from all list
pages. Instead, wrap the primary data column (name, description, subject,
etc.) in a clickable <a> link via the new rowInteraction.linkColumn option.

Double-click, Enter-key, and click-to-focus row navigation preserved.
Pages with explicit actions config are unaffected. Address-book opts out
of auto-wrapping (linkColumn: false) and renders the link in its own
formatter to avoid nested <a> with avatar lightbox.

Also fixes pre-existing XSS in insertActionColumn (unescaped href/label)
and updates typography test for --text-page-title token change.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 19:43:03 +01:00
parent af36583862
commit 1c5648c727
16 changed files with 87 additions and 85 deletions

View File

@@ -233,16 +233,20 @@
gap: 0.35rem;
}
.gridjs-container .grid-actions-row-open {
justify-content: flex-end;
width: 100%;
.app-grid-link-cell {
color: inherit;
text-decoration: none;
}
.gridjs-container .grid-actions .app-grid-row-open {
padding: 4px 10px;
font-size: 12px;
line-height: 1.2;
white-space: nowrap;
.app-grid-link-cell:hover {
text-decoration: underline;
color: var(--app-primary);
}
.app-grid-link-cell:focus-visible {
outline: 2px solid var(--app-primary-focus);
outline-offset: 2px;
border-radius: 2px;
}
tr.gridjs-tr[data-row-open-url] {
@@ -276,10 +280,6 @@
outline: none;
}
.gridjs-container table td .grid-actions .app-grid-row-open:focus-visible {
box-shadow: 0 0 0 var(--app-outline-width) var(--app-primary-focus);
}
html[data-theme="dark"] button.gridjs-sort,
html[data-theme="dark"] button.gridjs-sort-neutral {
filter: invert(1);