From 26dadb7e197db66e3ea195658f3ad9518e272681 Mon Sep 17 00:00:00 2001 From: Maggie Appleton <5599295+MaggieAppleton@users.noreply.github.com> Date: Thu, 24 Sep 2026 15:23:15 +0100 Subject: [PATCH 1/4] Add shared Select and polish shell controls --- apps/web/src/design-audit/controls.css | 20 +-- apps/web/src/design-audit/controls.tsx | 27 +++- apps/web/src/design-audit/foundations.tsx | 6 +- apps/web/src/design-audit/specimens.test.tsx | 17 +++ apps/web/src/design-audit/surfaces.tsx | 2 +- apps/web/src/theme.css | 33 ++++- apps/web/src/tokens.test.ts | 32 ++++- bun.lock | 1 + packages/visuals/package.json | 1 + packages/visuals/src/index.ts | 1 + packages/visuals/src/styles.css | 1 + packages/visuals/src/ui/public-api.test.ts | 7 + packages/visuals/src/ui/select.css | 142 +++++++++++++++++++ packages/visuals/src/ui/select.test.tsx | 67 +++++++++ packages/visuals/src/ui/select.tsx | 111 +++++++++++++++ packages/visuals/theme.css | 1 + 16 files changed, 441 insertions(+), 28 deletions(-) create mode 100644 packages/visuals/src/ui/select.css create mode 100644 packages/visuals/src/ui/select.test.tsx create mode 100644 packages/visuals/src/ui/select.tsx diff --git a/apps/web/src/design-audit/controls.css b/apps/web/src/design-audit/controls.css index 899246d5..d69d6c88 100644 --- a/apps/web/src/design-audit/controls.css +++ b/apps/web/src/design-audit/controls.css @@ -38,14 +38,6 @@ align-items: center; } -.design-audit-busy-mark { - width: 0.5rem; - height: 0.5rem; - margin-inline-end: 0.375rem; - border-radius: 9999px; - background: currentColor; -} - .design-audit [data-audit-state="hover"].btn-primary { background: var(--color-brand-hover); } @@ -94,6 +86,11 @@ text-underline-offset: 0.18em; } +.design-audit-link:is([data-audit-state="focus"], :focus-visible) { + margin-inline: -0.25rem; + padding-inline: 0.25rem; +} + .design-audit-link[data-audit-state="hover"] { color: var(--color-brand-hover); text-decoration-color: currentColor; @@ -114,7 +111,8 @@ gap: 1rem; } -.design-audit-field-grid label { +.design-audit-field-grid label, +.design-audit-field-control { display: grid; gap: 0.375rem; font-size: var(--text-sm); @@ -122,6 +120,10 @@ color: var(--color-text-secondary); } +.design-audit-field-control .cv-select-trigger { + width: 100%; +} + .design-audit-field-grid :is(input, select, textarea) { width: 100%; min-width: 0; diff --git a/apps/web/src/design-audit/controls.tsx b/apps/web/src/design-audit/controls.tsx index f72a64f3..186a2c45 100644 --- a/apps/web/src/design-audit/controls.tsx +++ b/apps/web/src/design-audit/controls.tsx @@ -1,4 +1,5 @@ import { CheckIcon, ChevronIcon, LoaderIcon, PlusIcon, WarningIcon } from "@chopin/icons"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@chopin/visuals"; import { AuditPlate, StateLabel } from "./frame"; @@ -70,7 +71,7 @@ export function Controls() { @@ -157,12 +158,24 @@ export function Controls() { readOnly /> - +
+ Select + +