Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions frontend/src/v2/__tests__/v2Primitives.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,13 @@ describe('D223 primitives', () => {
render(<V2PrimitivesPage />);
expect(screen.getByLabelText('Primitives')).toHaveClass('v2p-pane--scroll');
});

test('the disclosure row has its summary grid, chevron turn and 390 rule', () => {
expect(css).toContain('details.v2p-disc > summary {');
expect(css).toContain('details.v2p-disc[open] > summary .chev { transform: rotate(180deg); }');
expect(css).toMatch(/@media \(max-width: 480px\)[\s\S]*details\.v2p-disc > summary \{ grid-template-columns: minmax\(0, 1fr\) auto auto;/);
const { container } = render(<V2PrimitivesPage />);
expect(container.querySelector('details.v2p-disc')).not.toBeNull();
expect(container.querySelector('details.v2p-disc svg.chev path')?.getAttribute('d')).toBe('m6 9 6 6 6-6');
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
});
});
12 changes: 12 additions & 0 deletions frontend/src/v2/primitives/V2PrimitivesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,18 @@ const V2PrimitivesPage: React.FC = () => (
</div>
</div>

<div className="v2p-gtitle">disclosure row</div>
<div className="v2p-list">
<details className="v2p-disc">
<summary>
<span className="lb">How it runs</span>
<span className="vl">CLI · webhook</span>
<svg className="chev" viewBox="0 0 24 24" aria-hidden="true"><path d="m6 9 6 6 6-6" /></svg>
</summary>
<div className="v2p-body">Detail sits behind the row and is closed by default.</div>
</details>
</div>

<div className="v2p-gtitle">chips, badges, dots</div>
<div className="v2p-list">
<div className="v2p-lrow">
Expand Down
9 changes: 9 additions & 0 deletions frontend/src/v2/primitives/primitives.css
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,14 @@
border-top: 1px solid var(--v2-border-soft);
}
.v2p-lrow:first-child { border-top: 0; }
/* Disclosure row, lifted from d215 (details.disc, lines 322-326 and the 390 rule at 504). */
details.v2p-disc { border-top: 1px solid var(--v2-border-soft); }
details.v2p-disc > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 52px; padding: 8px 14px 8px 16px; }
details.v2p-disc > summary::-webkit-details-marker { display: none; }
details.v2p-disc > summary .chev { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; color: var(--v2-text-placeholder); transition: transform 160ms; }
details.v2p-disc[open] > summary .chev { transform: rotate(180deg); }
details.v2p-disc > summary .lb { font-size: 13px; font-weight: 600; color: var(--v2-text-primary); display: flex; align-items: center; gap: 8px; }
details.v2p-disc > summary .vl { font-size: 13.5px; color: var(--v2-ink-2); min-width: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.v2p-lrow .lb { font-size: 13px; font-weight: 600; color: var(--v2-text-primary); display: flex; align-items: center; gap: 8px; }
.v2p-lrow .vl { font-size: 13.5px; color: var(--v2-ink-2); min-width: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.v2p-lrow .vl .mo { font-size: 12px; color: var(--v2-text-muted); }
Expand Down Expand Up @@ -340,6 +348,7 @@
.v2p-ph h1 { font-size: 20px; white-space: normal; }
.v2p-body { padding: 16px 14px; }
.v2p-lrow { grid-template-columns: minmax(0, 1fr); min-height: 48px; padding: 8px 12px; }
details.v2p-disc > summary { grid-template-columns: minmax(0, 1fr) auto auto; min-height: 48px; padding: 8px 12px; }
.v2p-drawer:not(.v2p-drawer--inline) { width: 100%; border-radius: 0; }
.v2p-cols { grid-template-columns: minmax(0, 1fr); }
.v2p-tile { height: 104px; }
Expand Down
Loading