From 6cd410fbb56c5b344ce527f783d990f9d3fac43b Mon Sep 17 00:00:00 2001 From: maria-rcks Date: Sat, 31 Oct 2026 00:16:57 +0000 Subject: [PATCH 01/59] feat(web): establish redesign primitives and shell --- AGENTS.md | 1 + .../resources/dmg/dmg-background-latest.svg | 31 +- .../resources/dmg/dmg-background-nightly.svg | 41 +- apps/desktop/src/app/DesktopLifecycle.test.ts | 2 + apps/desktop/src/electron/ElectronTheme.ts | 21 + apps/desktop/src/ipc/DesktopIpcHandlers.ts | 4 + apps/desktop/src/ipc/channels.ts | 2 + apps/desktop/src/ipc/methods/window.ts | 26 + apps/desktop/src/preload.ts | 5 +- .../settings/DesktopClientSettings.test.ts | 3 +- apps/desktop/src/window/DesktopWindow.test.ts | 2 + apps/desktop/src/window/DesktopWindow.ts | 43 +- .../android-icon-background-nightly.png | Bin 115380 -> 61157 bytes .../assets/android-splash-icon-nightly.png | Bin 348814 -> 225486 bytes apps/mobile/clerk-theme.json | 8 +- ...rated-uniwind-default-theme-variables.json | 104 +- apps/mobile/generated-uniwind-themes.css | 214 +- .../scripts/generate-uniwind-themes.test.ts | 6 +- apps/mobile/src/components/BrandMark.tsx | 4 +- .../src/components/CompactBrandTitle.tsx | 4 +- apps/mobile/src/components/ui/AppSymbol.tsx | 10 +- .../archive/ArchivedThreadsScreen.tsx | 5 +- .../features/cloud/T3ConnectProfilePage.tsx | 2 +- .../connection/ConnectionEnvironmentRow.tsx | 4 +- .../connection/ConnectionFormField.tsx | 2 +- .../features/projects/AddProjectScreen.tsx | 2 +- .../threads/ComposerCommandPopover.tsx | 4 +- .../features/threads/PendingApprovalCard.tsx | 4 +- .../features/threads/PendingUserInputCard.tsx | 10 +- .../threads/ThreadCreationFailedCard.tsx | 4 +- .../features/threads/ThreadQueueControl.tsx | 4 +- .../features/threads/git/GitBranchesSheet.tsx | 6 +- .../features/threads/git/GitConfirmSheet.tsx | 4 +- .../features/threads/git/GitOverviewSheet.tsx | 4 +- .../features/threads/thread-list-v2-items.tsx | 275 +- apps/server/src/cloud/cliAuthHtml.ts | 4 - apps/server/src/ws.ts | 2 + apps/web/index.html | 92 +- apps/web/package.json | 1 + apps/web/src/appInit.tsx | 27 +- apps/web/src/appearanceFonts.ts | 6 +- .../chrome/art-nightly-sunrise-light.jpg | Bin 0 -> 129174 bytes .../src/assets/chrome/art-nightly-sunrise.jpg | Bin 0 -> 159741 bytes apps/web/src/browser/BrowserDeviceToolbar.tsx | 2 +- apps/web/src/browser/HostedBrowserWebview.tsx | 2 +- apps/web/src/browser/ServerBrowserSurface.tsx | 26 +- apps/web/src/commandPaletteBus.ts | 5 +- .../components/AddProjectToMachineDialog.tsx | 34 +- apps/web/src/components/AppRouteModal.tsx | 58 +- apps/web/src/components/AppSidebarLayout.tsx | 133 +- apps/web/src/components/BranchPicker.tsx | 2 +- apps/web/src/components/BranchToolbar.tsx | 54 +- .../BranchToolbarBranchSelector.tsx | 58 +- .../BranchToolbarEnvModeSelector.tsx | 2 +- .../BranchToolbarEnvironmentSelector.tsx | 2 +- apps/web/src/components/ChatMarkdown.tsx | 32 +- apps/web/src/components/ChatView.tsx | 73 +- apps/web/src/components/CommandBlock.tsx | 4 +- .../CommandPalette.browser.test.tsx | 2 +- ...ommandPalette.composition.browser.test.tsx | 3 +- .../src/components/CommandPalette.logic.ts | 45 +- apps/web/src/components/CommandPalette.tsx | 58 +- .../components/CommandPaletteAddProject.tsx | 10 +- .../src/components/CommandPaletteContent.tsx | 7 +- .../src/components/CommandPaletteResults.tsx | 95 +- .../components/CommandPaletteThemeItems.tsx | 53 +- .../components/CommandPaletteThreadItems.tsx | 68 +- apps/web/src/components/ConfirmDialogHost.tsx | 2 +- .../src/components/ConnectionStatusDot.tsx | 4 +- .../components/ContextChip.browser.test.tsx | 23 +- apps/web/src/components/ContextChip.tsx | 82 +- .../web/src/components/CustomSnoozeDialog.tsx | 4 +- apps/web/src/components/DevReplayHost.tsx | 2 +- .../src/components/DiffFilePathCopyButton.tsx | 2 +- apps/web/src/components/DiffPanel.tsx | 62 +- apps/web/src/components/DiffPanelShell.tsx | 6 +- apps/web/src/components/GitActionsControl.tsx | 334 +- apps/web/src/components/HostedEmptyState.tsx | 22 +- apps/web/src/components/Icons.tsx | 15 +- .../components/KeybindingsConfigWarning.tsx | 2 +- apps/web/src/components/ManagedPolicy.tsx | 12 +- apps/web/src/components/NoProjectsHero.tsx | 68 +- apps/web/src/components/PaneNotch.tsx | 55 + apps/web/src/components/ProjectFavicon.tsx | 5 +- apps/web/src/components/ProjectMonogram.tsx | 2 +- .../src/components/ProjectScriptsControl.tsx | 219 +- .../components/PullRequestThreadDialog.tsx | 16 +- apps/web/src/components/QuitHoldOverlay.tsx | 2 +- .../components/ReopenClosedViewShortcut.tsx | 1 - apps/web/src/components/RightPanelTabs.tsx | 36 +- .../web/src/components/ServerUpdateAction.tsx | 17 +- apps/web/src/components/Sidebar.logic.test.ts | 16 +- apps/web/src/components/Sidebar.logic.ts | 73 +- apps/web/src/components/Sidebar.snooze.ts | 31 +- apps/web/src/components/Sidebar.tsx | 218 +- .../src/components/SidebarStageBackdrop.tsx | 65 +- .../SlowRpcRequestToastCoordinator.tsx | 6 +- .../SourceControlAppAccessNotice.tsx | 2 +- apps/web/src/components/ThreadHoverCard.tsx | 4 +- apps/web/src/components/ThreadSearchMatch.tsx | 6 +- .../src/components/ThreadStatusIndicators.tsx | 98 +- .../src/components/ThreadTerminalDrawer.tsx | 72 +- .../UsageToggleShortcut.browser.test.tsx | 46 +- .../components/WorktreeBaseBranchPicker.tsx | 2 +- .../components/auth/ConnectAgentSurface.tsx | 26 +- .../components/auth/PairingRouteSurface.tsx | 11 +- .../components/chat/AssistantCitationChip.tsx | 6 +- .../chat/AssistantCitationCommentEditor.tsx | 6 +- .../chat/AssistantSelectionToolbar.tsx | 2 +- .../src/components/chat/ChangedFilesTree.tsx | 33 +- apps/web/src/components/chat/ChatComposer.tsx | 16 +- apps/web/src/components/chat/ChatHeader.tsx | 280 +- .../src/components/chat/ChatMarkdownMedia.tsx | 2 +- .../src/components/chat/ChatOverlayHosts.tsx | 8 +- .../src/components/chat/ChatRightPanel.tsx | 10 +- .../chat/ComposerAttachmentStrip.tsx | 3 +- .../src/components/chat/ComposerBanner.tsx | 68 +- .../components/chat/ComposerBannerStack.tsx | 4 +- .../components/chat/ComposerCommandMenu.tsx | 25 +- .../src/components/chat/ComposerControl.tsx | 24 +- .../components/chat/ComposerControlsBar.tsx | 4 +- .../chat/ComposerFooterControls.tsx | 10 +- .../components/chat/ComposerModelEffort.tsx | 168 +- .../chat/ComposerPendingApprovalActions.tsx | 4 +- .../chat/ComposerPendingUserInputPanel.tsx | 19 +- .../chat/ComposerPlanFollowUpBanner.tsx | 6 +- .../chat/ComposerPrimaryActions.tsx | 71 +- .../chat/ComposerServerUpdateStatus.tsx | 2 +- .../src/components/chat/ComposerStashMenu.tsx | 5 +- .../src/components/chat/ComposerSurface.tsx | 33 +- .../components/chat/ContextWindowMeter.tsx | 10 +- .../web/src/components/chat/DiffStatLabel.tsx | 8 +- .../src/components/chat/DraftHeroHeadline.tsx | 401 +- .../chat/DraftHeroProjectHeading.tsx | 61 - apps/web/src/components/chat/EffortGlyph.tsx | 19 - .../components/chat/ExpandedImageDialog.tsx | 4 +- .../chat/GuestMessageAttachments.tsx | 27 +- .../components/chat/GuestShareControls.tsx | 12 +- .../src/components/chat/HtmlRenderDialog.tsx | 2 +- .../src/components/chat/HtmlRenderFrame.tsx | 4 +- .../src/components/chat/LinkRequestCard.tsx | 42 +- .../src/components/chat/MarkdownCodeBlock.tsx | 8 +- .../src/components/chat/MarkdownDetails.tsx | 9 +- .../web/src/components/chat/MarkdownTable.tsx | 8 +- apps/web/src/components/chat/McpAppFrame.tsx | 8 +- .../src/components/chat/MermaidDiagram.tsx | 6 +- .../src/components/chat/MessageCopyButton.tsx | 4 +- .../src/components/chat/MessagesTimeline.tsx | 26 +- apps/web/src/components/chat/ModelListRow.tsx | 101 +- .../components/chat/ModelPickerContent.tsx | 37 +- .../components/chat/ModelPickerSidebar.tsx | 53 +- .../chat/OpenInPicker.browser.test.tsx | 18 +- apps/web/src/components/chat/OpenInPicker.tsx | 128 +- .../components/chat/PanelLayoutControls.tsx | 50 +- .../src/components/chat/ProposedPlanCard.tsx | 10 +- .../components/chat/ProviderInstanceIcon.tsx | 2 +- .../components/chat/ProviderModelPicker.tsx | 19 +- .../components/chat/ProviderStatusBanner.tsx | 2 +- .../components/chat/ProviderSubagentBar.tsx | 2 +- .../src/components/chat/QueuedRunsControl.tsx | 10 +- .../src/components/chat/SecretRequestCard.tsx | 8 +- .../src/components/chat/SkillInlineText.tsx | 6 +- .../chat/SubagentTooltipContent.tsx | 8 +- .../chat/TerminalContextInlineChip.tsx | 4 +- ...omationsPanel.permissions.browser.test.tsx | 31 +- .../chat/ThreadAutomationsPanel.tsx | 204 +- .../chat/ThreadContextDragGhost.tsx | 6 +- .../chat/ThreadDetailsCard.browser.test.tsx | 18 +- .../src/components/chat/ThreadDetailsCard.tsx | 51 +- .../components/chat/ThreadDetailsControl.tsx | 41 +- .../components/chat/ThreadDetailsPanel.tsx | 162 +- .../components/chat/ThreadDetailsPrRow.tsx | 51 +- .../components/chat/ThreadDetailsSection.tsx | 43 +- .../components/chat/ThreadDetailsUsage.tsx | 22 +- .../src/components/chat/ThreadErrorBanner.tsx | 7 +- .../web/src/components/chat/ThreadFindBar.tsx | 2 +- .../chat/ThreadLineageWorkflowRow.tsx | 20 +- apps/web/src/components/chat/ThreadNow.tsx | 2 +- .../chat/ThreadRelationshipIcon.tsx | 2 +- ...hreadRelationshipsControl.browser.test.tsx | 14 +- .../chat/ThreadRelationshipsControl.tsx | 259 +- .../components/chat/ThreadServersPanel.tsx | 6 +- .../src/components/chat/ThreadStatusLine.tsx | 2 +- .../components/chat/TimelineAssistantRows.tsx | 6 +- .../src/components/chat/TimelineMinimap.tsx | 4 +- .../src/components/chat/TimelineOverlays.tsx | 4 +- .../chat/TimelinePendingApprovalRow.tsx | 8 +- .../src/components/chat/TimelineRowParts.tsx | 2 +- .../components/chat/TimelineSystemDivider.tsx | 12 +- .../chat/TimelineToolActivityIcon.tsx | 22 +- .../chat/TimelineUserMessageRow.tsx | 81 +- .../components/chat/TimelineV2EventRow.tsx | 39 +- .../chat/TimelineWorkEntryRow.logic.ts | 6 +- .../components/chat/TimelineWorkEntryRow.tsx | 55 +- .../components/chat/TimelineWorkGroupRows.tsx | 62 +- apps/web/src/components/chat/TraitsPicker.tsx | 72 +- .../src/components/chat/TriageDraftHero.tsx | 18 +- .../chat/UserMessageContextChips.tsx | 26 +- .../src/components/chat/V2ItemInspector.tsx | 12 +- .../src/components/chat/V2LifecycleRow.tsx | 34 +- apps/web/src/components/chat/WorkLog.tsx | 13 +- .../components/chat/WorkflowOpeningBlock.tsx | 37 +- .../src/components/chat/WorktreeSetupCard.tsx | 32 +- .../web/src/components/chat/ZoomableImage.tsx | 2 +- .../components/chat/composerFocusRedirect.ts | 3 +- .../components/chat/composerProviderState.tsx | 2 +- .../src/components/chat/guestMessageStyle.tsx | 2 +- .../src/components/chat/providerIconUtils.ts | 15 + .../restingComposerControlsMeasurement.ts | 50 +- .../chat/threadDetailsCardLayout.ts | 2 +- .../chat/threadDetailsItems.test.ts | 11 +- .../src/components/chat/threadDetailsItems.ts | 17 +- .../chat/threadDetailsPanelStyles.ts | 58 +- .../src/components/chat/timelineViewport.ts | 3 +- .../components/chat/useRightPanelActions.ts | 15 - .../components/clerk/ClerkUserProfilePage.tsx | 6 +- .../clerk/MobileClientsUserProfilePage.tsx | 8 +- .../RemoveT3ConnectEnvironmentDialog.tsx | 2 +- .../clerk/T3ChatUserProfilePage.tsx | 27 +- .../clerk/T3ConnectSidebarSignIn.tsx | 2 +- .../clerk/T3ConnectUserProfilePage.tsx | 30 +- .../src/components/clerk/clerkAppearance.ts | 4 +- .../cloud/CloudEnvironmentConnectList.tsx | 47 +- .../cloud/ConnectOnboardingDialog.tsx | 8 +- .../cloud/RelayClientInstallDialog.tsx | 10 +- apps/web/src/components/cloud/TunnelUsage.tsx | 4 +- .../composerContextPresentation.tsx | 6 +- apps/web/src/components/contextChipParts.tsx | 11 +- .../design-system/DesignSystemPage.tsx | 1659 ++++++++ .../desktop/SshPasswordPromptDialog.tsx | 2 +- .../components/device/DeviceControlsRail.tsx | 4 +- .../components/device/DeviceHostUpdates.tsx | 6 +- .../components/device/DeviceLoadingView.tsx | 4 +- .../web/src/components/device/DevicePanel.tsx | 12 +- .../web/src/components/device/DeviceSetup.tsx | 20 +- .../components/device/DeviceStreamView.tsx | 2 +- .../components/device/DeviceToolVersions.tsx | 12 +- .../components/device/DeviceToolsPanel.tsx | 19 +- .../src/components/device/DeviceWorkspace.tsx | 2 +- .../components/diffs/AnnotatableCodeView.tsx | 4 +- .../diffs/DiffCommentAnnotation.tsx | 10 +- .../diffs/DiffFileLoadingBoundary.tsx | 2 +- .../web/src/components/diffs/DiffFileTree.tsx | 4 +- .../components/diffs/StyledDiffCodeView.tsx | 178 +- .../files/AttachmentFilePreview.tsx | 7 +- .../web/src/components/files/AudioPreview.tsx | 14 +- .../web/src/components/files/BinaryViewer.tsx | 33 +- .../components/files/BrowserDocumentFrame.tsx | 4 +- .../src/components/files/DocumentPages.tsx | 2 +- .../src/components/files/FileBreadcrumbs.tsx | 16 +- .../src/components/files/FileBrowserPanel.tsx | 12 +- .../src/components/files/FileExplorerPane.tsx | 2 +- .../src/components/files/FilePreviewPanel.tsx | 18 +- apps/web/src/components/files/FontViewer.tsx | 4 +- .../src/components/files/LargeTextViewer.tsx | 4 +- .../src/components/files/MermaidViewer.tsx | 2 +- .../src/components/files/NotebookPreview.tsx | 10 +- .../web/src/components/files/OfficeViewer.tsx | 10 +- .../components/files/OpenXmlOfficeViewer.tsx | 6 +- apps/web/src/components/files/PdfViewer.tsx | 2 +- .../components/files/PreviewImageContent.tsx | 2 +- .../components/files/ProjectFilePicker.tsx | 10 +- .../components/files/VirtualTablePreview.tsx | 40 +- .../components/files/fileSurfaceChrome.tsx | 18 +- .../components/files/office/Presentation.tsx | 6 +- .../components/files/office/Spreadsheet.tsx | 10 +- apps/web/src/components/guest/GuestPage.tsx | 42 +- .../components/onboarding/FirstRunGate.tsx | 4 +- .../components/onboarding/WelcomeWizard.tsx | 57 +- .../permissions/PermissionChecklist.tsx | 11 +- .../src/components/preview/BrowserMockup.tsx | 2 +- .../components/preview/PreviewChromeRow.tsx | 4 +- .../components/preview/PreviewMoreMenu.tsx | 4 +- .../preview/PreviewRecentUrlCard.tsx | 6 +- .../components/preview/PreviewUnreachable.tsx | 26 +- .../src/components/preview/PreviewView.tsx | 12 +- .../preview/RightPanelResizeHandle.tsx | 2 +- .../preview/ThreadPreviewMiniPlayer.tsx | 6 +- .../src/components/preview/ZoomIndicator.tsx | 2 +- .../src/components/projectScriptEditor.tsx | 14 +- .../promptLinks/HostedPromptLinkLanding.tsx | 8 +- .../promptLinks/NewThreadLinkView.tsx | 4 +- .../pullRequest/LinkPullRequestDialog.tsx | 2 +- .../pullRequest/PullRequestActionsMenu.tsx | 10 +- .../PullRequestActivityUnavailableState.tsx | 2 +- .../pullRequest/PullRequestBaseBranch.tsx | 2 +- .../PullRequestChangeBreakdownStat.tsx | 6 +- .../pullRequest/PullRequestCodeTab.tsx | 12 +- .../pullRequest/PullRequestCommentForm.tsx | 4 +- .../PullRequestCompactFilterMenu.tsx | 4 +- .../pullRequest/PullRequestComposer.tsx | 4 +- .../pullRequest/PullRequestCopyableCode.tsx | 2 +- .../pullRequest/PullRequestDetailActions.tsx | 6 +- .../pullRequest/PullRequestDetailLayout.tsx | 6 +- .../pullRequest/PullRequestDetailPanel.tsx | 7 +- .../PullRequestDiffUnavailableState.tsx | 12 +- .../pullRequest/PullRequestGhosts.tsx | 2 +- .../pullRequest/PullRequestGuideTab.tsx | 16 +- .../pullRequest/PullRequestListEmptyState.tsx | 8 +- .../pullRequest/PullRequestListFilters.tsx | 15 +- .../pullRequest/PullRequestListGroups.tsx | 6 +- .../pullRequest/PullRequestListRow.tsx | 8 +- .../pullRequest/PullRequestMarkdown.tsx | 2 +- .../pullRequest/PullRequestMarkdownEditor.tsx | 4 +- .../pullRequest/PullRequestMoreReplies.tsx | 14 +- .../pullRequest/PullRequestReactions.tsx | 12 +- .../PullRequestReviewAnnotation.tsx | 3 +- .../components/pullRequest/PullRequestRow.tsx | 6 +- .../pullRequest/PullRequestSpeedActions.tsx | 2 +- .../pullRequest/PullRequestStackMenu.tsx | 4 +- .../pullRequest/PullRequestSummaryTab.tsx | 15 +- .../pullRequest/PullRequestTimelineTab.tsx | 19 +- .../pullRequest/PullRequestTitleEditor.tsx | 4 +- .../pullRequest/PullRequestsColumn.tsx | 8 +- .../pullRequest/PullRequestsPage.tsx | 9 +- .../PullRequestsUnavailableState.tsx | 4 +- .../pullRequest/ThreadPullRequestsPanel.tsx | 14 +- .../pullRequest/guide/GuideExcerpt.tsx | 12 +- .../pullRequest/guide/GuideStop.tsx | 29 +- .../pullRequest/guide/GuideTour.tsx | 4 +- .../pullRequest/pullRequestIcons.tsx | 11 +- .../pullRequest/pullRequestPresentation.tsx | 31 +- .../search/HighlightedSearchLine.tsx | 4 +- .../search/ProjectContentSearchDialog.tsx | 20 +- .../settings/AcpRegistrySearchStep.tsx | 14 +- .../settings/AcpSessionManagementSection.tsx | 18 +- .../settings/AddCodexAccountDialog.tsx | 4 +- .../settings/AddEnvironmentDialog.tsx | 30 +- .../settings/AddProviderInstanceDialog.tsx | 32 +- .../settings/AddUsageLimitSourceDialog.tsx | 2 +- .../components/settings/AdvancedSettings.tsx | 2 +- .../settings/AppearanceSettingsPanel.tsx | 150 +- .../settings/ArchivedThreadsPanel.tsx | 2 +- .../settings/AuthorizedClientsSettings.tsx | 66 +- .../settings/BackgroundActivitySettings.tsx | 18 +- .../settings/BrowserImportWizard.tsx | 29 +- .../settings/CaptureShortcutConfig.tsx | 18 +- .../settings/CliCommandSettingsRow.tsx | 2 +- .../components/settings/CodexSetupSection.tsx | 10 +- .../settings/ConnectionDiagnosisDetails.tsx | 37 +- .../settings/ConnectionsSettings.tsx | 28 +- .../components/settings/CustomModelEditor.tsx | 14 +- .../settings/DatabaseStorageNotice.tsx | 2 +- .../components/settings/DeviceHostEditor.tsx | 10 +- .../settings/DeviceSourcesSettings.tsx | 35 +- .../settings/DiagnosticsSettings.tsx | 46 +- .../settings/EasDeviceHostEditor.tsx | 26 +- .../settings/EnvironmentRoutesList.tsx | 15 +- .../settings/FoldedSettingsSection.tsx | 10 +- .../settings/IntegrationsSettings.tsx | 12 +- .../settings/KeybindingsSettings.tsx | 63 +- .../components/settings/LabsSettingsPanel.tsx | 21 +- .../components/settings/LinkAccessPicker.tsx | 8 +- .../components/settings/LinkMachineSelect.tsx | 2 +- .../settings/LinkedEnvironmentsSettings.tsx | 18 +- .../settings/LoadBalancingSettings.tsx | 5 +- .../settings/LocalEnvironmentSetting.tsx | 2 +- .../settings/MobileAppSettingsRow.tsx | 6 +- .../settings/MultipleAccountsNote.tsx | 10 +- .../settings/OpenSourceLicenses.tsx | 16 +- .../settings/PanelAnimationsPreview.tsx | 6 +- .../settings/ProjectActionsList.tsx | 6 +- .../settings/ProjectActionsSettings.tsx | 4 +- .../settings/ProjectDefaultsSettings.tsx | 5 +- .../settings/ProjectIconPickerDialog.tsx | 22 +- .../settings/ProjectSettingsPanel.tsx | 12 +- .../components/settings/ProjectsSettings.tsx | 4 +- .../settings/ProviderAuthTerminal.tsx | 2 +- .../ProviderAuthenticationSection.tsx | 10 +- .../settings/ProviderInstanceCard.tsx | 38 +- .../settings/ProviderModelsSection.tsx | 22 +- .../settings/ProviderSettingsForm.tsx | 4 +- .../settings/ProviderSettingsPanel.tsx | 22 +- .../settings/ProviderSetupSection.tsx | 8 +- .../ProviderWizardAuthenticationStep.tsx | 6 +- .../settings/PullRequestRoutingSettings.tsx | 5 +- .../settings/RedactedSensitiveText.tsx | 2 +- .../settings/ResourceTelemetryDiagnostics.tsx | 145 +- .../settings/SavedEnvironmentRows.tsx | 34 +- .../settings/ScheduledTasksSettings.tsx | 76 +- .../settings/SecretProviderDialog.tsx | 8 +- .../components/settings/SecretSourceInput.tsx | 2 +- .../components/settings/SecretsSettings.tsx | 10 +- .../settings/SessionPermissions.tsx | 4 +- .../settings/SettingInheritance.tsx | 45 +- .../settings/SettingsFontPreviews.tsx | 7 +- .../src/components/settings/SettingsGroup.tsx | 6 +- .../components/settings/SettingsPanels.tsx | 61 +- .../settings/SettingsScopeNotice.tsx | 81 +- .../settings/SettingsScopeSentence.tsx | 6 +- .../settings/SettingsSidebarNav.tsx | 32 +- .../settings/SimlockDeviceHostEditor.tsx | 24 +- .../components/settings/SnapShotSettings.tsx | 4 +- .../settings/SnapShotSetupDialog.tsx | 6 +- .../settings/SnoozePresetsSettings.tsx | 8 +- .../settings/SourceControlAccountSettings.tsx | 30 +- .../SourceControlAppSignInSettings.tsx | 14 +- .../settings/SourceControlHostSettings.tsx | 2 +- .../settings/SourceControlSettings.tsx | 12 +- .../settings/SourceControlTokenSettings.tsx | 14 +- .../settings/SourceControlWritingSettings.tsx | 10 +- .../components/settings/StorageSettings.tsx | 8 +- .../settings/SurfaceStylePreview.tsx | 72 + .../settings/TelemetryExportSettings.tsx | 14 +- .../components/settings/ThemeColorPicker.tsx | 8 +- .../components/settings/ThemeEditorPanel.tsx | 20 +- .../components/settings/ThemeImportDialog.tsx | 8 +- .../settings/ThemePreviewCircles.tsx | 19 +- .../settings/ThemeSearchSection.tsx | 24 +- .../src/components/settings/ThemeSettings.tsx | 251 +- .../components/settings/ThemeWireframe.tsx | 269 +- .../settings/ThreadDetailsItemsRow.tsx | 8 +- .../settings/UpdateTrackSwitchDialog.tsx | 2 +- .../settings/UsageProviderSettings.tsx | 4 +- .../src/components/settings/providerStatus.ts | 14 +- .../components/settings/settingsLayout.tsx | 45 +- .../settings/settingsSearch.test.ts | 1 - .../src/components/settings/settingsSearch.ts | 32 +- .../settings/useSnapShotShortcutRecorder.tsx | 2 +- .../sidebar/DesktopUpdateStatusIcon.tsx | 41 +- .../src/components/sidebar/SidebarChrome.tsx | 193 +- .../SidebarDraftBlock.browser.test.tsx | 1 + .../components/sidebar/SidebarDraftBlock.tsx | 42 +- .../components/sidebar/SidebarListMarkers.tsx | 15 +- .../sidebar/SidebarProjectFolderHeader.tsx | 17 +- .../sidebar/SidebarProviderUpdatePill.tsx | 16 +- .../sidebar/SidebarThreadHeader.tsx | 70 +- .../components/sidebar/SidebarThreadRow.tsx | 658 ++-- .../sidebar/SidebarThreadUndoNotice.tsx | 2 +- .../sidebar/SidebarUpdateCapsule.tsx | 25 +- .../components/sidebar/SidebarUpdatePill.tsx | 30 +- .../sidebar/SidebarUpdateReleaseNotes.tsx | 27 +- .../sidebar/UpdateEverythingDialog.tsx | 20 +- .../web/src/components/sidebar/routeReveal.ts | 10 +- .../src/components/threadActionMenu.logic.ts | 4 +- apps/web/src/components/threadSidebarWidth.ts | 6 +- apps/web/src/components/ui/alert-dialog.tsx | 9 +- apps/web/src/components/ui/alert.tsx | 36 +- apps/web/src/components/ui/autocomplete.tsx | 22 +- apps/web/src/components/ui/badge.tsx | 42 +- apps/web/src/components/ui/button.tsx | 107 +- apps/web/src/components/ui/calendar.tsx | 17 +- apps/web/src/components/ui/checkbox.tsx | 35 +- .../ui/collapsible-section-header.tsx | 16 +- apps/web/src/components/ui/collapsible.tsx | 13 +- apps/web/src/components/ui/color-picker.tsx | 2 +- apps/web/src/components/ui/combobox.tsx | 39 +- apps/web/src/components/ui/command.tsx | 92 +- apps/web/src/components/ui/dialog-styles.ts | 8 +- apps/web/src/components/ui/dialog.tsx | 44 +- apps/web/src/components/ui/discovery-list.tsx | 8 +- apps/web/src/components/ui/empty.tsx | 35 +- apps/web/src/components/ui/input-group.tsx | 24 +- apps/web/src/components/ui/input.tsx | 16 +- apps/web/src/components/ui/kbd.tsx | 5 +- apps/web/src/components/ui/label.tsx | 5 +- .../web/src/components/ui/labeled-section.tsx | 25 + apps/web/src/components/ui/menu.tsx | 58 +- apps/web/src/components/ui/number-field.tsx | 10 +- .../components/ui/panel-tab-close-button.tsx | 2 +- apps/web/src/components/ui/popover.tsx | 13 +- apps/web/src/components/ui/preview-card.tsx | 2 +- apps/web/src/components/ui/radio-group.tsx | 4 +- apps/web/src/components/ui/refresh-icon.tsx | 4 +- apps/web/src/components/ui/scroll-area.tsx | 2 +- apps/web/src/components/ui/select.tsx | 62 +- apps/web/src/components/ui/separator.tsx | 2 +- apps/web/src/components/ui/sheet.tsx | 17 +- apps/web/src/components/ui/sidebar.tsx | 69 +- apps/web/src/components/ui/skeleton.tsx | 2 +- .../web/src/components/ui/standalone-page.tsx | 8 +- apps/web/src/components/ui/status-dot.tsx | 108 + apps/web/src/components/ui/switch.tsx | 4 +- apps/web/src/components/ui/table.tsx | 6 +- apps/web/src/components/ui/text.tsx | 64 + apps/web/src/components/ui/textarea.tsx | 5 +- apps/web/src/components/ui/toast.tsx | 72 +- apps/web/src/components/ui/toggle-group.tsx | 28 +- apps/web/src/components/ui/toggle.tsx | 22 +- apps/web/src/components/ui/tooltip.tsx | 17 +- apps/web/src/components/ui/wizard.tsx | 20 +- apps/web/src/components/usage/UsageLimits.tsx | 4 +- .../components/usage/UsageLimitsPooled.tsx | 4 +- .../src/components/usage/UsageModelDialog.tsx | 8 +- apps/web/src/components/usage/UsagePage.tsx | 18 +- .../components/usage/UsagePriceOverrides.tsx | 2 +- .../components/usage/UsageProviderChart.tsx | 2 +- .../src/components/usage/UsageShareBar.tsx | 4 +- apps/web/src/contextMenuFallback.ts | 39 +- apps/web/src/devArtworkPreview.ts | 33 + apps/web/src/hooks/useHtmlRenderTheme.ts | 6 +- apps/web/src/hooks/useSettings.ts | 5 + apps/web/src/hooks/useTheme.ts | 123 +- apps/web/src/index.css | 3420 +++++++++++++++-- apps/web/src/lib/diffRendering.ts | 74 +- apps/web/src/lib/openLayers.ts | 16 + apps/web/src/lib/utils.test.ts | 1 + apps/web/src/lib/utils.ts | 19 +- apps/web/src/navigationHistory.ts | 98 +- apps/web/src/pierre-tree-theme.ts | 49 +- apps/web/src/rightPanelStore.test.ts | 4 +- apps/web/src/rightPanelStore.ts | 11 +- apps/web/src/routeTree.gen.ts | 21 + apps/web/src/routes/__root.tsx | 19 +- .../src/routes/_chat.settings.providers.tsx | 2 +- apps/web/src/routes/_chat.settings.tsx | 30 +- apps/web/src/routes/design-system.tsx | 11 + .../src/shortcuts/commandPaletteCommands.ts | 18 +- apps/web/src/state/shell.ts | 17 +- apps/web/src/themeBoot.test.ts | 32 +- apps/web/src/themePalette.test.ts | 4 +- apps/web/src/themePalette.ts | 43 +- .../app-icon.icon/Assets/background.svg | 146 +- .../app-icon.icon/Assets/cloud-lower-left.svg | 21 - .../Assets/cloud-upper-right.svg | 21 - assets/nightly/app-icon.icon/icon.json | 21 +- assets/nightly/nightly-ios-1024.png | Bin 1417068 -> 162841 bytes assets/nightly/nightly-macos-1024.png | Bin 2485580 -> 148247 bytes assets/nightly/nightly-universal-1024.png | Bin 1417068 -> 162841 bytes .../nightly/nightly-web-apple-touch-180.png | Bin 54758 -> 19570 bytes assets/nightly/nightly-web-favicon-16x16.png | Bin 979 -> 798 bytes assets/nightly/nightly-web-favicon-32x32.png | Bin 2590 -> 1819 bytes assets/nightly/nightly-web-favicon.ico | Bin 146750 -> 55250 bytes assets/nightly/nightly-windows.ico | Bin 146750 -> 55250 bytes docs/user/appearance.md | 17 +- docs/user/keybindings.md | 4 +- knip.jsonc | 2 + oxlint-plugin-t3code/index.ts | 6 + .../rules/no-raw-type-classes.test.ts | 67 + .../rules/no-raw-type-classes.ts | 95 + oxlint-plugin-t3code/rules/no-spaced-caps.ts | 68 + .../rules/no-styled-raw-controls.test.ts | 164 + .../rules/no-styled-raw-controls.ts | 207 + packages/client-runtime/src/state/models.ts | 8 - packages/client-runtime/src/state/terminal.ts | 4 + packages/contracts/src/ipc.ts | 11 + packages/contracts/src/server.ts | 5 + packages/contracts/src/settings.test.ts | 26 + packages/contracts/src/settings.ts | 46 +- packages/shared/src/themePalettes.ts | 86 +- packages/shared/src/themePreview.ts | 8 +- pnpm-lock.yaml | 8 + scripts/export-android-icons.ts | 43 +- vite.config.ts | 360 ++ 544 files changed, 13632 insertions(+), 6720 deletions(-) create mode 100644 apps/web/src/assets/chrome/art-nightly-sunrise-light.jpg create mode 100644 apps/web/src/assets/chrome/art-nightly-sunrise.jpg create mode 100644 apps/web/src/components/PaneNotch.tsx delete mode 100644 apps/web/src/components/chat/DraftHeroProjectHeading.tsx create mode 100644 apps/web/src/components/design-system/DesignSystemPage.tsx create mode 100644 apps/web/src/components/settings/SurfaceStylePreview.tsx create mode 100644 apps/web/src/components/ui/labeled-section.tsx create mode 100644 apps/web/src/components/ui/status-dot.tsx create mode 100644 apps/web/src/components/ui/text.tsx create mode 100644 apps/web/src/devArtworkPreview.ts create mode 100644 apps/web/src/lib/openLayers.ts create mode 100644 apps/web/src/routes/design-system.tsx delete mode 100644 assets/nightly/app-icon.icon/Assets/cloud-lower-left.svg delete mode 100644 assets/nightly/app-icon.icon/Assets/cloud-upper-right.svg create mode 100644 oxlint-plugin-t3code/rules/no-raw-type-classes.test.ts create mode 100644 oxlint-plugin-t3code/rules/no-raw-type-classes.ts create mode 100644 oxlint-plugin-t3code/rules/no-spaced-caps.ts create mode 100644 oxlint-plugin-t3code/rules/no-styled-raw-controls.test.ts create mode 100644 oxlint-plugin-t3code/rules/no-styled-raw-controls.ts diff --git a/AGENTS.md b/AGENTS.md index d99f1b5fa96a7..907ab3fb9d213 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -201,6 +201,7 @@ Architecture and its constraints: `docs/internals/overview.md`. Glossary: `docs/ projection, tight loops) or duplicate an existing tracing boundary; explain that choice nearby. Named `Effect.fn` creates a span; the unnamed form does not. Preserve existing span names and options, and pass combinators as additional function-builder arguments. +- Before building UI, open `/design-system` in a dev build: it renders every primitive, variant and type role. Text takes a role (`` or `text-title` … `text-micro`), not `text-sm` or `font-medium`; a clickable thing is a `components/ui` control, not a styled `