Skip to content

feat(web,ui,desktop): add /design component showcase and standardize tooltip style - #5952

Merged
AviPeltz merged 17 commits into
mainfrom
component-showcase
Jul 25, 2026
Merged

AviPeltz merged 17 commits into
mainfrom
component-showcase

Conversation

@AviPeltz

@AviPeltz AviPeltz commented Jul 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • New /design page in apps/web — a living reference of every @superset/ui component (56 shadcn primitives, ai-elements, atoms, Superset originals) with live demos, variant enumerations, and click-to-copy import paths. Includes a registry of shared desktop-app components (with import-site counts) and in-product button patterns (OpenInButton split button, PickerTrigger). Auth-gated and restricted to @superset.sh accounts via a new internalRoutes list in the web proxy (same gate apps/admin uses).
  • Chip tooltip is now the TooltipContent default — the bordered bg-background style previously copy-pasted at 7 sites (presets bars, HotkeyTooltip, pane headers) plus showArrow={false} at ~55 sites is baked into @superset/ui/tooltip; all redundant overrides removed (net −90 lines). Arrow stays available via showArrow, now with a matching border.
  • Kbd visible in tooltips — dropped Kbd's tooltip-context override (text-background) that became invisible on the new tooltip surface.
  • Shortcut-first tooltips on chrome buttons — back/forward and the three sidebar toggles show keys only; the open-in buttons (v1/v2 top bar + standalone) show "Open in " + keycaps without the worktree path. All use the standard 1s delay.

Test plan

  • bun run lint exits 0
  • tsc clean for packages/ui, packages/panes, apps/web, apps/desktop (full desktop typecheck)
  • proxy-routes unit tests pass (34/34, including new isInternalRoute cases)
  • /design visually verified in headless Chrome (full-page screenshots; forced-open tooltips confirm chip style, Kbd visibility, and arrow border)
  • Hover-check nav/sidebar/open-in tooltips in the desktop app

https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV


Open in Stage

Summary by cubic

Adds gated component showcases at /design and /design/superset with live demos and click‑to‑copy imports. Standardizes chip tooltips across the app, refines hotkey/Kbd behavior, and mounts a settings gear in the v1 sidebar footer; fixes a layout issue so the gear doesn’t clip.

  • New Features

    • Two pages: /design (shadcn primitives) and /design/superset (originals, AI elements, shared desktop/pane component registry, in‑product button patterns) with header tabs and scrollspy nav.
    • Access control: both routes are restricted to company emails via an internalRoutes gate in the web proxy (COMPANY.EMAIL_DOMAIN), with tests for isInternalRoute.
    • Desktop: settings gear added to the v1 sidebar footer; uses a 1s delay and a keys‑only tooltip.
  • Refactors

    • @superset/ui/tooltip: default is now a bordered bg-background chip (sideOffset=4, no arrow by default; arrow is opt‑in and matches the border). Removed redundant showArrow={false}/classes across the app.
    • Hotkey UX: HotkeyLabel adds fallbackLabel for unassigned keys; back/forward and sidebar toggles show shortcut‑only chips with a 1s delay. Open‑in buttons show “Open in ” with keycaps (no worktree path, 1s delay). Kbd stays readable on the new tooltip surface.
    • Design polish: active design tab sets aria-current; SharedComponentList extracted; non‑copyable registry cards use copyable={false}; v1 sidebar footer’s add‑repository button now shrinks so the settings gear never clips.

Written for commit 512a22f. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features
    • Added a design-system showcase with section navigation and multiple interactive component galleries.
    • Added a Superset components showcase, including AI demo sections and a shared component listing.
    • Added internal route access protection with redirect for unauthorized sessions.
  • Improvements
    • Standardized tooltip behavior across the desktop app (arrow visibility, offsets, and simplified tooltip content).
    • Increased tooltip delays for key actions (generally to 1s).
    • Enhanced hotkey tooltips with optional fallback labels.
    • Updated the UI tooltip defaults/styling in the shared toolkit.

AviPeltz added 11 commits July 24, 2026 08:23
Living reference of every packages/ui export — shadcn primitives,
ai-elements, atoms, and Superset originals — with copyable import
paths, grouped into ten sections with scrollspy navigation.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
… and button demos

Adds a Shared app components registry (desktop renderer + pane system,
with import-site counts), a dedicated Tooltip card including the
HotkeyTooltip shortcut-chip style, and in-product button patterns
mirroring OpenInButton and PickerTrigger.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
The preset-bar / HotkeyTooltip chip (bg-background, border, rounded-sm,
muted text, no arrow, sideOffset 4) was copy-pasted at 7 sites and
showArrow={false} at ~55 — it is the de-facto product tooltip. Bake it
into @superset/ui/tooltip as the default and strip the now-redundant
showArrow/sideOffset/className overrides across desktop, panes, and the
/design showcase. Arrow remains available via showArrow; apps/mobile has
its own tooltip and is untouched.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
…e tooltips

Kbd had a tooltip-context override (text-background) built for the old
inverted tooltip; on the new bg-background chip it rendered invisible.
Drop the override so Kbd keeps its default muted styling in tooltips.
Make HotkeyLabel's label optional and show only the shortcut keys on
the back/forward buttons and the three sidebar toggles. The /design
hotkey-chip demo now renders real Kbd keys inside a tooltip.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
… delay

Matches the delayDuration={1000} convention used by HotkeyTooltip, the
presets bars, and pane-header tooltips.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
Renders HotkeyLabel keycaps when shortcuts are enabled; falls back to
the "Open in <app>" text only when showShortcuts is off or the hotkey
is unassigned.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
The arrow was a plain bg-background diamond that looked detached from
the bordered tooltip; border-r/border-b on the rotated square lands on
the outward edges for every side.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
Adds an internalRoutes list to the web proxy: signed-in users whose
email doesn't end in COMPANY.EMAIL_DOMAIN are redirected home, matching
the gate apps/admin already uses. Covered by proxy-routes tests.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
… v2)

Shows just the OPEN_IN_APP shortcut keycaps (e.g. ⌘O for Open in
Finder) instead of the label and worktree path; keeps the
select-an-editor hint when no app is chosen.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
…o worktree path

Restores the "Open in <app>" text next to the keycaps on all three
open-in buttons, keeps the v2 tooltip's worktree-path line removed, and
applies the standard delayDuration={1000}.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
@coderabbitai

coderabbitai Bot commented Jul 25, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Tooltip defaults and usages were standardized across desktop and pane interfaces. The web app gained component showcase pages, reusable navigation and showcase primitives, AI/Superset examples, and email-domain access control for internal design routes.

Changes

Tooltip standardization

Layer / File(s) Summary
Tooltip and keyboard primitives
packages/ui/src/components/ui/tooltip.tsx, packages/ui/src/components/ui/kbd.tsx, apps/desktop/src/renderer/hotkeys/components/*
Tooltip defaults, styling, arrow behavior, and optional hotkey labels were updated.
Hotkey tooltip integration
apps/desktop/src/renderer/components/*, apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/*, apps/desktop/src/renderer/screens/main/components/SidebarControl/*
Tooltip delays and hotkey-driven labels were updated for navigation, sidebar, and open-in-app controls.
Desktop and pane tooltip rollout
apps/desktop/src/renderer/**/*, packages/panes/src/react/components/*
Existing tooltip usages were simplified to rely on shared defaults for arrows, offsets, styling, and content rendering.

Design showcase and route access

Layer / File(s) Summary
Showcase primitives and cards
apps/web/src/app/design/components/ComponentCard/*, ShowcaseNav/*, ShowcaseSection/*, DesignPageHeader/*
Reusable showcase cards, section layouts, sticky navigation, and design-page headers were added with barrel exports.
Design showcase sections
apps/web/src/app/design/components/*, apps/web/src/app/design/superset/components/*
Static and interactive sections were added to demonstrate actions, inputs, overlays, menus, feedback, navigation, data, layout, AI elements, Superset components, and shared components.
Design pages and route access
apps/web/src/app/design/page.tsx, apps/web/src/app/design/superset/page.tsx, apps/web/src/proxy*.ts
Design pages were composed with metadata and navigation, while /design route detection and company-domain authorization redirects were added and tested.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested reviewers: saddlepaddle

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 7.41% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title is concise, conventional, and matches the main changes: new /design showcases plus tooltip standardization.
Description check ✅ Passed It covers the required what/why and testing details, and includes a mostly complete checklist, though the headings differ from the template.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch component-showcase

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ghost

ghost commented Jul 25, 2026 •

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Jul 25, 2026 •

Copy link
Copy Markdown
Contributor

🧹 Preview Cleanup Complete

The following preview resources have been cleaned up:

  • ✅ Neon database branch

Thank you for your contribution! 🎉

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/desktop/src/renderer/hotkeys/components/HotkeyLabel/HotkeyLabel.tsx`:
- Around line 5-9: Ensure unassigned shortcuts always provide non-empty tooltip
text. Update HotkeyLabel to preserve or expose a fallback label, and retain
explicit fallback labels at NavigationControls lines 47-49 and 63, SidebarToggle
line 40, RightSidebarToggle line 46, and SidebarControl lines 32-33 in the
specified files so each unconditional TooltipContent receives usable text.

In
`@apps/web/src/app/design/components/SharedComponentsSection/SharedComponentsSection.tsx`:
- Around line 98-122: Move SharedComponentList into a colocated
SharedComponentList/SharedComponentList.tsx module with an index.ts re-export,
preserving its current rendering and props. Remove the local definition from
SharedComponentsSection.tsx and import SharedComponentList from the new
component module.
- Around line 132-136: Update the “Desktop renderer” ComponentCard importPath
value to a valid package or alias-based import path that users can paste into
imports; do not pass the filesystem glob apps/desktop/src/renderer/components/*.
Preserve ComponentCard’s existing import-path copy behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d9093bbd-8e52-4b2d-8d40-99136169398c

📥 Commits

Reviewing files that changed from the base of the PR and between 5f7b79f and 1b6270e.

📒 Files selected for processing (82)
  • apps/desktop/src/renderer/components/Chat/ChatInterface/components/ModelPicker/components/ModelProviderGroup/components/AnthropicProviderHeading/AnthropicProviderHeading.tsx
  • apps/desktop/src/renderer/components/Chat/ChatInterface/components/ModelPicker/components/ModelProviderGroup/components/OpenAIProviderHeading/OpenAIProviderHeading.tsx
  • apps/desktop/src/renderer/components/OpenInButton/OpenInButton.tsx
  • apps/desktop/src/renderer/components/UpdatesPill/UpdatesPill.tsx
  • apps/desktop/src/renderer/hotkeys/components/HotkeyLabel/HotkeyLabel.tsx
  • apps/desktop/src/renderer/hotkeys/components/HotkeyTooltip/HotkeyTooltip.tsx
  • apps/desktop/src/renderer/lib/clickPolicy/components/ClickHint/ClickHint.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/DashboardSidebar/components/DashboardSidebarPortsList/DashboardSidebarPortsList.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/DashboardSidebar/components/DashboardSidebarPortsList/components/DashboardSidebarPortBadge/DashboardSidebarPortBadge.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/DashboardSidebar/components/DashboardSidebarPortsList/components/DashboardSidebarPortGroup/DashboardSidebarPortGroup.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/DashboardSidebar/components/DashboardSidebarProjectSection/components/DashboardSidebarProjectRow/DashboardSidebarProjectRow.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/DashboardSidebar/components/DashboardSidebarWorkspaceItem/components/DashboardSidebarExpandedWorkspaceRow/DashboardSidebarExpandedWorkspaceRow.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/NavigationControls/NavigationControls.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/SidebarToggle/SidebarToggle.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/OpenInMenuButton/OpenInMenuButton.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/ResourceConsumption/ResourceConsumption.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/ResourceConsumption/components/MetricBadge/MetricBadge.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/RightSidebarToggle/RightSidebarToggle.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/components/TopBar/components/V2OpenInMenuButton/V2OpenInMenuButton.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/components/V2PresetsBar/V2PresetsBar.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/components/WorkspaceSidebar/components/SidebarHeader/SidebarHeader.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/BrowserPane/BrowserPane.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/ChatPane/components/WorkspaceChatInterface/components/ModelPicker/components/ModelProviderGroup/components/AnthropicProviderHeading/AnthropicProviderHeading.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/ChatPane/components/WorkspaceChatInterface/components/ModelPicker/components/ModelProviderGroup/components/OpenAIProviderHeading/OpenAIProviderHeading.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/CommentPane/components/CommentPaneHeaderExtras/CommentPaneHeaderExtras.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/DiffPane/components/DiffHeaderMetadata/DiffHeaderMetadata.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/DiffPane/components/DiffPaneHeaderExtras/DiffPaneHeaderExtras.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/FilePane/components/FilePaneHeaderExtras/FilePaneHeaderExtras.tsx
  • apps/desktop/src/renderer/routes/_authenticated/_dashboard/v2-workspace/$workspaceId/hooks/usePaneRegistry/components/TerminalPane/components/TerminalPaneHeaderExtras/TerminalPaneHeaderExtras.tsx
  • apps/desktop/src/renderer/screens/main/components/SidebarControl/SidebarControl.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/PortsList/PortsList.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/PortsList/components/MergedPortBadge/MergedPortBadge.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/PortsList/components/WorkspacePortGroup/WorkspacePortGroup.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/ProjectSection/ProjectHeader.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceListItem/WorkspaceListItem.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ChangesContent/components/FileDiffSection/components/FileDiffHeader/FileDiffHeader.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ChangesContent/components/InfiniteScrollView/components/DiffToolbar/DiffToolbar.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/GroupStrip/GroupItem.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/TabView/BrowserPane/BrowserPane.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/TabView/FileViewerPane/components/FileViewerToolbar/FileViewerToolbar.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/TabView/components/PaneToolbarActions/PaneToolbarActions.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/components/PresetsBar/PresetsBar.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ChangesHeader/ChangesHeader.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ViewModeToggle/ViewModeToggle.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/index.tsx
  • apps/desktop/src/renderer/screens/main/components/WorkspacesListView/WorkspaceRow/WorkspaceRow.tsx
  • apps/web/src/app/design/components/ActionsSection/ActionsSection.tsx
  • apps/web/src/app/design/components/ActionsSection/index.ts
  • apps/web/src/app/design/components/AiElementsSection/AiElementsSection.tsx
  • apps/web/src/app/design/components/AiElementsSection/index.ts
  • apps/web/src/app/design/components/ComponentCard/ComponentCard.tsx
  • apps/web/src/app/design/components/ComponentCard/index.ts
  • apps/web/src/app/design/components/DataSection/DataSection.tsx
  • apps/web/src/app/design/components/DataSection/index.ts
  • apps/web/src/app/design/components/FeedbackSection/FeedbackSection.tsx
  • apps/web/src/app/design/components/FeedbackSection/index.ts
  • apps/web/src/app/design/components/InputsSection/InputsSection.tsx
  • apps/web/src/app/design/components/InputsSection/index.ts
  • apps/web/src/app/design/components/LayoutSection/LayoutSection.tsx
  • apps/web/src/app/design/components/LayoutSection/index.ts
  • apps/web/src/app/design/components/MenusSection/MenusSection.tsx
  • apps/web/src/app/design/components/MenusSection/index.ts
  • apps/web/src/app/design/components/NavigationSection/NavigationSection.tsx
  • apps/web/src/app/design/components/NavigationSection/index.ts
  • apps/web/src/app/design/components/OverlaysSection/OverlaysSection.tsx
  • apps/web/src/app/design/components/OverlaysSection/index.ts
  • apps/web/src/app/design/components/SharedComponentsSection/SharedComponentsSection.tsx
  • apps/web/src/app/design/components/SharedComponentsSection/index.ts
  • apps/web/src/app/design/components/ShowcaseNav/ShowcaseNav.tsx
  • apps/web/src/app/design/components/ShowcaseNav/index.ts
  • apps/web/src/app/design/components/ShowcaseSection/ShowcaseSection.tsx
  • apps/web/src/app/design/components/ShowcaseSection/index.ts
  • apps/web/src/app/design/components/SupersetSection/SupersetSection.tsx
  • apps/web/src/app/design/components/SupersetSection/index.ts
  • apps/web/src/app/design/page.tsx
  • apps/web/src/proxy-routes.test.ts
  • apps/web/src/proxy-routes.ts
  • apps/web/src/proxy.ts
  • packages/panes/src/react/components/PaneHeaderActions/PaneHeaderActions.tsx
  • packages/panes/src/react/components/Workspace/components/TabBar/components/TabItem/TabItem.tsx
  • packages/ui/src/components/ui/kbd.tsx
  • packages/ui/src/components/ui/tooltip.tsx
💤 Files with no reviewable changes (1)
  • packages/ui/src/components/ui/kbd.tsx

/design keeps the stock shadcn primitives; new /design/superset page
hosts everything custom — Superset originals, expanded live ai-elements
demos (conversation/messages, reasoning, suggestions, chain of thought,
task, plan, code block, sources, inline citation, context, checkpoint,
artifact), and the shared app-component registry. Shared header with
page tabs; the superset page inherits the /design internal-route gate.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/web/src/app/design/components/DesignPageHeader/DesignPageHeader.tsx`:
- Around line 32-45: Add aria-current="page" to the selected Link rendered by
the PAGES map in DesignPageHeader, while leaving it unset for inactive links.
Use the existing active === page.key condition so the current design page is
exposed to assistive technology.

In
`@apps/web/src/app/design/superset/components/AiContentSection/AiContentSection.tsx`:
- Around line 201-204: The ComponentCard entry for “Not demoed here” uses an
invalid wildcard importPath that users cannot paste into a static import. Update
this entry to list valid module paths individually, or replace importPath with a
non-copyable source-path label while preserving the existing description.
- Around line 110-112: Make the showcase interactions functional in
AiContentSection: update the three Source entries at
apps/web/src/app/design/superset/components/AiContentSection/AiContentSection.tsx
lines 110-112 with real destinations, or explicitly mark them as noninteractive
mock sources; at lines 188-190, add a Download button handler that performs the
advertised download, or render it as a disabled/noninteractive example.

In
`@apps/web/src/app/design/superset/components/AiStatusSection/AiStatusSection.tsx`:
- Around line 19-41: Split the Loader/BrailleSpinner and Shimmer/ShimmerLabel
examples into separate ComponentCard instances, giving each card exactly one
importPath for its showcased component. Preserve the existing examples and
descriptions while ensuring BrailleSpinner and ShimmerLabel each have their own
copyable import path.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c8c88151-b211-412f-9648-e4278e03801e

📥 Commits

Reviewing files that changed from the base of the PR and between 1b6270e and 90fc192.

📒 Files selected for processing (16)
  • apps/web/src/app/design/components/DesignPageHeader/DesignPageHeader.tsx
  • apps/web/src/app/design/components/DesignPageHeader/index.ts
  • apps/web/src/app/design/page.tsx
  • apps/web/src/app/design/superset/components/AiAgentSection/AiAgentSection.tsx
  • apps/web/src/app/design/superset/components/AiAgentSection/index.ts
  • apps/web/src/app/design/superset/components/AiChatSection/AiChatSection.tsx
  • apps/web/src/app/design/superset/components/AiChatSection/index.ts
  • apps/web/src/app/design/superset/components/AiContentSection/AiContentSection.tsx
  • apps/web/src/app/design/superset/components/AiContentSection/index.ts
  • apps/web/src/app/design/superset/components/AiStatusSection/AiStatusSection.tsx
  • apps/web/src/app/design/superset/components/AiStatusSection/index.ts
  • apps/web/src/app/design/superset/components/SharedComponentsSection/SharedComponentsSection.tsx
  • apps/web/src/app/design/superset/components/SharedComponentsSection/index.ts
  • apps/web/src/app/design/superset/components/SupersetSection/SupersetSection.tsx
  • apps/web/src/app/design/superset/components/SupersetSection/index.ts
  • apps/web/src/app/design/superset/page.tsx

- HotkeyLabel gains fallbackLabel so keys-only tooltips fall back to
  text instead of an empty chip when a hotkey is unbound
- aria-current="page" on the active design tab
- SharedComponentList extracted to its own component folder
- ComponentCard copyable={false} for glob/source-path registry cards

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
@AviPeltz

Copy link
Copy Markdown
Collaborator Author

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

Five independent review passes (guideline compliance, shallow bug scan, git-history context, prior-PR feedback, in-file comment contracts) plus confidence-scoring of every flagged candidate. All candidates scored below threshold: the v2 open-in tooltip's worktree-path removal is an intentional product decision (and matches v1), and the NavigationControls unconditional-hotkey gap predates this PR on unmodified lines.

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

Matches the v2 TOGGLE_SIDEBAR toggles switched to fallbackLabel earlier
in this branch.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
Wires the previously-orphaned SettingsButton next to the add-repository
button in WorkspaceSidebarFooter (both collapsed and expanded states),
updated to footer icon conventions and the keys-only tooltip pattern.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV
… gear isn't clipped

Button's base shrink-0 + w-full made the trigger consume the full
footer row and push the gear past the sidebar's overflow-hidden edge.
min-w-0 flex-1 shrink lets it flex; label truncates when narrow.
Verified via CDP in the running dev app.

Claude-Session: https://claude.ai/code/session_01VedKcjooUzNUGeDPTmdanV

This branch was previously deployed

1 inactive deployment
preview — 512a22f3 Deployed Jul 25, 2026 by AviPeltz via Deploy API #6873
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant