feat(web): dashboard master-detail + command menu, Heroicons & Geist 3 months ago
Authored
V.C. Billingsley 6/10/2026, 5:54:47 PM UI pass across the web app:
- Icons: migrate Tabler -> Heroicons (filled) where an equivalent exists;
keep Tabler for git/diff/brand/formatting/loader icons with no match.
- Font: swap body from Inter to Geist Sans (keep Geist Mono); align
community + playground apps.
- Dashboard: master-detail preview panel (floating stone-800 card),
tab filter bar with sliding indicator replacing the funnel menu,
sticky shrink-proof toolbar, single full-surface card, and subtle
reduced-motion-aware transitions.
- Add app-wide Cmd+K command menu (Base UI Autocomplete).
- Account settings modal: fit-content height + instant loading state.
Note: command menu runs commands on click; Enter-to-run is still being
worked through. Parentba1a600
107 files changed
apps/community/app/layout.tsx +8 −3 apps/playground/app/components/[slug]/page.tsx +5 −3 apps/playground/components/preview-frame.tsx +8 −4 apps/playground/components/theme-toggle.tsx +2 −2 apps/playground/lib/component-examples/alert.tsx +10 −9 apps/playground/lib/component-examples/badge.tsx +9 −5 apps/playground/lib/component-examples/button.tsx +11 −10 apps/playground/lib/component-examples/input-group.tsx
+5
−5
apps/playground/lib/component-examples/menu.tsx +11 −10
apps/playground/lib/component-examples/toolbar.tsx +4 −8
apps/playground/package.json +1 −0
apps/web/app/(home)/@detail/(.)[username]/[repository]/page.tsx +0 −51
apps/web/app/(home)/@detail/default.tsx +0 −3
apps/web/app/(home)/dashboard-detail.tsx +62 −0
apps/web/app/(home)/dashboard-list.tsx +89 −48
apps/web/app/(home)/dashboard-row.tsx +64 −5
apps/web/app/(home)/dashboard-tabs.tsx +103 −0
apps/web/app/(home)/dashboard-toolbar.tsx +36 −64
apps/web/app/(home)/{@detail => }/detail-panel-chrome.tsx +7 −11
apps/web/app/(home)/detail-panel-skeleton.tsx +30 −0
apps/web/app/(home)/detail-panel.tsx +26 −0
apps/web/app/(home)/helpers.ts +50 −10
apps/web/app/(home)/layout.tsx +17 −12
apps/web/app/(home)/load-dashboard-lists.ts +75 −0
apps/web/app/(home)/page.tsx +35 −97
apps/web/app/(home)/section-header.tsx +18 −1
apps/web/app/(home)/warm-preview.ts +38 −0
apps/web/app/[username]/[repository]/blob/[...path]/page.tsx +16 −9
apps/web/app/[username]/[repository]/campfire/campfire-room.tsx +48 −38
apps/web/app/[username]/[repository]/campfire/campfire-thread-ref-card.tsx +30 −16
apps/web/app/[username]/[repository]/campfire/page.tsx +2 −2
apps/web/app/[username]/[repository]/docs/docs-page.tsx +11 −10
apps/web/app/[username]/[repository]/fork/fork-repository-form.tsx +87 −75
apps/web/app/[username]/[repository]/insights/page.tsx +15 −10
apps/web/app/[username]/[repository]/issues/[number]/issue-detail.tsx +234 −0
apps/web/app/[username]/[repository]/issues/[number]/issue-linked-pull-requests.tsx +88 −0
apps/web/app/[username]/[repository]/issues/[number]/page.tsx +6 −215
apps/web/app/[username]/[repository]/issues/page.tsx +3 −4
apps/web/app/[username]/[repository]/pulls/[number]/autopilot/autopilot-run-client.tsx +82 −34
apps/web/app/[username]/[repository]/pulls/[number]/helpers.ts +49 −0
apps/web/app/[username]/[repository]/pulls/[number]/page.tsx +27 −787
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-conversation.tsx +57 −38
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-detail.tsx +633 −0
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-files-chrome.tsx +3 −3
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-files-review.tsx +15 −9
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-forms.tsx +60 −17
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-merge-box.tsx +16 −12
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-sidebar.tsx +191 −0
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-stack-panel.tsx +103 −0
apps/web/app/[username]/[repository]/pulls/page.tsx +4 −3
apps/web/app/[username]/[repository]/repository-home.tsx +54 −18
apps/web/app/[username]/[repository]/repository-tabs.tsx +12 −13
apps/web/app/[username]/[repository]/settings/_components/repository-settings-nav.tsx +10 −10
apps/web/app/[username]/page.tsx +32 −17
apps/web/app/[username]/settings/_components/organization-settings-nav.tsx +8 −8
apps/web/app/ci/runs/[runId]/jobs/[jobId]/page.tsx +44 −38
apps/web/app/home/home-readme.tsx +4 −3
apps/web/app/layout.tsx +10 −3
apps/web/app/onboarding/ensure-onboarded.ts +8 −2
apps/web/app/repositories/new/create-repository-form.tsx +13 −5
apps/web/app/settings/account/account-settings-sections/api-keys.tsx +1 −8
apps/web/app/settings/account/account-settings-sections/display-preferences.tsx +1 −4
apps/web/app/settings/account/account-settings-sections/notifications.tsx +1 −4
apps/web/app/settings/account/account-settings-sections/payments.tsx +1 −4
apps/web/app/settings/account/account-settings-sections/profile.tsx +7 −7
apps/web/app/settings/account/account-settings-sections/sessions.tsx +1 −4
apps/web/app/settings/account/account-settings-sections/settings.tsx +10 −7
apps/web/app/settings/account/account-settings-sections/shared.tsx +20 −26
apps/web/app/settings/account/account-settings-sections/teams.tsx +2 −8
apps/web/app/settings/account/teams/new/create-organization-form.tsx +3 −3
apps/web/components/account-settings/account-settings-modal.tsx +25 −21
apps/web/components/account-settings/git-tokens-section.tsx +21 −20
apps/web/components/appearance-menu-section.tsx +47 −0
apps/web/components/command-menu.tsx +194 −0
apps/web/components/conversation/campfire-mention-timeline-card.tsx +6 −6
apps/web/components/conversation/conversation-chrome.tsx +2 −2
apps/web/components/conversation/conversation-quote-reply.tsx +14 −6
apps/web/components/conversation/pr-autopilot-timeline.tsx +17 −16
apps/web/components/copy-to-clipboard-button.tsx +3 −3
apps/web/components/dev-floating-panel.tsx +15 −10
apps/web/components/layout-preference-preview.tsx +8 −7
apps/web/components/markdown/markdown-editor.tsx +302 −278
apps/web/components/open-git-user-button.tsx +4 −0
apps/web/components/resource-query-filter-bar.tsx +11 −9
apps/web/components/settings-nav.tsx +24 −34
apps/web/components/workbench-tabs/workbench-tab-bar.tsx +21 −26
apps/web/db/ci.ts +64 −0
apps/web/lib/floating-card.ts +18 −0
apps/web/lib/shared/cache.ts +23 −0
apps/web/next-env.d.ts +1 −1
apps/web/scripts/mark-pr-merged.ts +0 −71
packages/ui/src/components/accordion.tsx +15 −15
packages/ui/src/components/autocomplete.tsx +62 −62
packages/ui/src/components/breadcrumb.tsx +21 −18
packages/ui/src/components/calendar.tsx +31 −32
packages/ui/src/components/combobox.tsx +86 −86
packages/ui/src/components/command.tsx +40 −40
packages/ui/src/components/dialog.tsx +49 −49
packages/ui/src/components/drawer.tsx +125 −125
packages/ui/src/components/menu.tsx +57 −57
packages/ui/src/components/number-field.tsx +35 −35
packages/ui/src/components/pagination.tsx +26 −26
packages/ui/src/components/select.tsx +52 −52
packages/ui/src/components/sheet.tsx +49 −49
packages/ui/src/components/toast.tsx +60 −61
packages/ui/src/styles/globals.css +24 −0
pnpm-lock.yaml +3 −0