From f8c11e600fbed85a7137b152ce6c38beccf1adea Mon Sep 17 00:00:00 2001 From: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Date: Tue, 22 Sep 2026 20:45:55 -0700 Subject: [PATCH] refactor(web): app code stops restyling sidebar, popover, table and misc ui exports Clears the 152 no-restyle findings in the "other" scope. Per the maintainer's rule, components/ui holds generic primitives only, so no feature look moved into ui/*. Decisions per cluster: - SidebarTrigger over the stage artwork (AppSidebarLayout, SidebarChrome): renders Button's existing media-navigation variant (control on imagery) instead of white stroke/hover overrides. No new variant. - SidebarHeader in SidebarChrome: the titlebar row is not a padded sidebar header, so it is a plain div with its own classes. - Sidebar border-r: dropped; the primitive already draws the side border. - SidebarMenuSub/MenuButton/MenuItem/Group/Menu (LegacySidebar, Sidebar, SettingsSidebarNav, SidebarThreadHeader): drift, moved onto the stock look. The project row reserves room for its overlaid actions with a spacer child instead of pr-8/pr-14; SettingsSidebarNav's gap moves to a wrapper. - PullRequestActorLabel: stops forwarding className into its avatar and label. It takes variant ("label" | "avatar" | "stacked-avatar") and size ("sm" | "md") for the three looks its six call sites use; className is placement only. The profile link renders through InlineButton. - MiddleTruncate: typography and motion move to a plain wrapper span. - PopoverPopup/TooltipPopup: color pickers use padding="none"; the thread hover card drops the [&_viewport]:p-0 reach-in and insets its own content; glass/shadow/text-balance overrides dropped (stock popup look). - PopoverTrigger: the pooled usage legend row renders Button ghost/compact; the auto-balance banner title truncates an inner span. - Toggle: search option toggles use the segmented size/variant; the other overrides were dropped. ui/toggle gains aria-disabled:opacity-64, the generic ARIA-disabled state matching native disabled. - Table*, Separator, Label, RadioGroup, AlertAction, DialogTitle, DialogPanel: overrides dropped onto stock spacing/colors; content-level color and padding move to inner elements. - DialogFooter dark transparent overrides: variant="bare". - ScrollArea borders/rings: moved to a wrapper div; ComposerBanner.Scroll pads its own content based on the viewport's overflow state. - PreviewCardPopup p-3 and CollapsiblePanel pt-3: moved to inner content. - Badge opacity: moved to a wrapper span. Co-Authored-By: Claude Opus 5.5 (1M context) --- apps/web/src/components/AppSidebarLayout.tsx | 8 +- .../BranchToolbarBranchSelector.tsx | 7 +- .../web/src/components/CustomSnoozeDialog.tsx | 12 +- apps/web/src/components/GitActionsControl.tsx | 112 +++--- apps/web/src/components/LegacySidebar.tsx | 18 +- .../components/PullRequestThreadDialog.tsx | 4 +- apps/web/src/components/Sidebar.tsx | 25 +- .../src/components/chat/ChangedFilesTree.tsx | 7 +- .../src/components/chat/ComposerBanner.tsx | 12 +- .../components/chat/ComposerBannerStack.tsx | 2 +- .../src/components/chat/MessagesTimeline.tsx | 8 +- .../chat/useAutoBalanceUpdateBanner.tsx | 4 +- .../components/onboarding/WelcomeWizard.tsx | 4 +- .../src/components/projectScriptEditor.tsx | 2 +- .../pullRequest/PullRequestDetailPanel.tsx | 10 +- .../pullRequest/PullRequestGhosts.tsx | 6 +- .../pullRequest/PullRequestLinkPreview.tsx | 62 +-- .../PullRequestReviewAnnotation.tsx | 2 +- .../pullRequest/PullRequestReviewerPicker.tsx | 2 +- .../pullRequest/PullRequestSummaryTab.tsx | 49 +-- .../pullRequest/pullRequestPresentation.tsx | 48 ++- .../search/ProjectContentSearchDialog.tsx | 7 +- .../settings/AddProviderInstanceDialog.tsx | 2 +- .../settings/DiagnosticsSettings.tsx | 312 +++++++-------- .../settings/IntegrationsSettings.tsx | 11 +- .../settings/ProviderAccentColorPicker.tsx | 7 +- .../settings/ProviderSettingsPanel.tsx | 2 +- .../settings/ResourceTelemetryDiagnostics.tsx | 364 +++++++++--------- .../settings/SettingsScopeNotice.tsx | 2 +- .../settings/SettingsSidebarNav.tsx | 206 +++++----- .../components/settings/ThemeColorPicker.tsx | 4 +- .../components/settings/ThemeEditorPanel.tsx | 6 +- .../src/components/sidebar/SidebarChrome.tsx | 14 +- .../sidebar/SidebarThreadHeader.tsx | 5 +- .../components/sidebar/SidebarUpdatePill.tsx | 1 - .../sidebar/SidebarUpdateReleaseNotes.tsx | 4 +- apps/web/src/components/ui/toggle.tsx | 2 +- .../components/usage/UsageLimitsPooled.tsx | 3 +- .../components/usage/UsagePriceOverrides.tsx | 39 +- apps/web/src/routes/_chat.pull-requests.tsx | 2 +- scripts/lint-restyle-ceiling.ts | 2 +- 41 files changed, 686 insertions(+), 713 deletions(-) diff --git a/apps/web/src/components/AppSidebarLayout.tsx b/apps/web/src/components/AppSidebarLayout.tsx index 14d871c41804..1b67af90ef3c 100644 --- a/apps/web/src/components/AppSidebarLayout.tsx +++ b/apps/web/src/components/AppSidebarLayout.tsx @@ -125,11 +125,12 @@ function SidebarControl() { - + > + + diff --git a/apps/web/src/components/CustomSnoozeDialog.tsx b/apps/web/src/components/CustomSnoozeDialog.tsx index 4cd3be8a096e..ca7ff81c80ab 100644 --- a/apps/web/src/components/CustomSnoozeDialog.tsx +++ b/apps/web/src/components/CustomSnoozeDialog.tsx @@ -93,7 +93,7 @@ function CustomSnoozeDialog() { Custom snooze Choose when snoozed threads return to your inbox. - +
-