| author | |
| committer | |
| log | c26119ada3565dda55bc3e86fdf47c7f9088e4b5 |
| tree | d9343e445f0df60acaf24ae1e9a4831f0ab812e0 |
| parent | 5a61f50cce12685f70d530aa5fdf83d9c9b065d7 |
| signature | Signed by PGP key B5690EEEBB952194 |
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>19 files changed, 28 insertions(+), 28 deletions(-)
apps/web/src/components/AppSidebarLayout.tsx+1-1| ... | ... | @@ -244,7 +244,7 @@ export function AppSidebarLayout({ children }: { children: ReactNode }) { |
| 244 | 244 | side="left" |
| 245 | 245 | collapsible="offcanvas" |
| 246 | 246 | data-app-sidebar="" |
| 247 | className="border-r border-sidebar-border bg-sidebar text-sidebar-foreground" | |
| 247 | className="border-r border-sidebar-border" | |
| 248 | 248 | resizable={{ |
| 249 | 249 | maxWidth: sidebarMaximumWidth, |
| 250 | 250 | minWidth: THREAD_SIDEBAR_MIN_WIDTH, |
apps/web/src/components/BranchToolbarBranchSelector.tsx+1-1| ... | ... | @@ -861,7 +861,7 @@ export function BranchToolbarBranchSelector({ |
| 861 | 861 | <div className="flex min-h-0 flex-1 flex-col overflow-hidden"> |
| 862 | 862 | <ComboboxEmpty>No refs found.</ComboboxEmpty> |
| 863 | 863 | <div className="relative min-h-0 w-full max-h-56 flex-1 overflow-hidden"> |
| 864 | <ComboboxListVirtualized className="size-full min-w-0 p-0"> | |
| 864 | <ComboboxListVirtualized> | |
| 865 | 865 | <LegendList<string> |
| 866 | 866 | ref={branchListRef} |
| 867 | 867 | data={filteredBranchPickerItems} |
apps/web/src/components/ConfirmDialogHost.tsx+1-1| ... | ... | @@ -75,7 +75,7 @@ export function ConfirmDialogHost() { |
| 75 | 75 | if (!open) completeConfirmDialogClose(); |
| 76 | 76 | }} |
| 77 | 77 | > |
| 78 | <AlertDialogPopup className="max-w-lg"> | |
| 78 | <AlertDialogPopup> | |
| 79 | 79 | <AlertDialogHeader> |
| 80 | 80 | <AlertDialogTitle className="wrap-anywhere">{copy.title}</AlertDialogTitle> |
| 81 | 81 | {copy.description ? ( |
apps/web/src/components/NoActiveThreadState.tsx+3-3| ... | ... | @@ -5,7 +5,7 @@ import { WorkspacePageHeader } from "./WorkspacePageHeader"; |
| 5 | 5 | |
| 6 | 6 | export function NoActiveThreadState() { |
| 7 | 7 | return ( |
| 8 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground"> | |
| 8 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none"> | |
| 9 | 9 | <div className="flex min-h-0 min-w-0 flex-1 flex-col overflow-x-hidden bg-background"> |
| 10 | 10 | <WorkspacePageHeader electron={isElectron} className="border-b border-border"> |
| 11 | 11 | {isElectron ? ( |
| ... | ... | @@ -22,8 +22,8 @@ export function NoActiveThreadState() { |
| 22 | 22 | <Empty className="flex-1"> |
| 23 | 23 | <div className="w-full max-w-lg px-8 py-12"> |
| 24 | 24 | <EmptyHeader className="max-w-none"> |
| 25 | <EmptyTitle className="text-foreground text-xl">Pick a thread to continue</EmptyTitle> | |
| 26 | <EmptyDescription className="mt-2 text-sm text-muted-foreground/78"> | |
| 25 | <EmptyTitle className="text-foreground">Pick a thread to continue</EmptyTitle> | |
| 26 | <EmptyDescription className="mt-2 text-muted-foreground/78"> | |
| 27 | 27 | Select an existing thread or create a new one to get started. |
| 28 | 28 | </EmptyDescription> |
| 29 | 29 | </EmptyHeader> |
apps/web/src/components/NoProjectsHero.tsx+2-2| ... | ... | @@ -10,7 +10,7 @@ export function NoProjectsHero() { |
| 10 | 10 | const openAddProject = useCallback(() => openCommandPalette({ open: "add-project" }), []); |
| 11 | 11 | |
| 12 | 12 | return ( |
| 13 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground"> | |
| 13 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none"> | |
| 14 | 14 | <div className="flex min-h-0 min-w-0 flex-1 flex-col overflow-x-hidden bg-background"> |
| 15 | 15 | <Empty className="flex-1"> |
| 16 | 16 | <div className="w-full max-w-lg px-8 py-12"> |
| ... | ... | @@ -18,7 +18,7 @@ export function NoProjectsHero() { |
| 18 | 18 | <EmptyTitle className="text-foreground text-2xl sm:text-3xl"> |
| 19 | 19 | What should we work on? |
| 20 | 20 | </EmptyTitle> |
| 21 | <EmptyDescription className="mt-2 text-sm text-muted-foreground/78"> | |
| 21 | <EmptyDescription className="mt-2 text-muted-foreground/78"> | |
| 22 | 22 | Add a project to start your first thread. |
| 23 | 23 | </EmptyDescription> |
| 24 | 24 | <div className="mt-6 flex justify-center"> |
apps/web/src/components/ProjectScriptsControl.tsx+1-1| ... | ... | @@ -158,7 +158,7 @@ export default function ProjectScriptsControl({ |
| 158 | 158 | > |
| 159 | 159 | <ScriptIcon icon={fileScript.icon ?? "play"} className="size-4" /> |
| 160 | 160 | <MenuItemLabel className="truncate">{fileScript.name}</MenuItemLabel> |
| 161 | <MenuShortcut className="ms-auto"> | |
| 161 | <MenuShortcut> | |
| 162 | 162 | <DownloadIcon className="size-3.5" aria-label="Import" /> |
| 163 | 163 | </MenuShortcut> |
| 164 | 164 | </MenuItem> |
apps/web/src/components/ThreadRouteView.tsx+1-1| ... | ... | @@ -207,7 +207,7 @@ export function ThreadRouteView({ target }: { target: ThreadRouteTarget }) { |
| 207 | 207 | } |
| 208 | 208 | |
| 209 | 209 | return ( |
| 210 | <SidebarInset className="h-svh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground md:h-dvh"> | |
| 210 | <SidebarInset className="h-svh min-h-0 overflow-hidden overscroll-y-none md:h-dvh"> | |
| 211 | 211 | {view} |
| 212 | 212 | </SidebarInset> |
| 213 | 213 | ); |
apps/web/src/components/chat/ModelPickerContent.tsx+1-1| ... | ... | @@ -956,7 +956,7 @@ export const ModelPickerContent = memo(function ModelPickerContent(props: { |
| 956 | 956 | |
| 957 | 957 | {/* Model list */} |
| 958 | 958 | <div className="relative min-h-0 flex-1 overflow-hidden pr-px"> |
| 959 | <ComboboxListVirtualized className="size-full min-w-0 p-0 not-empty:p-0"> | |
| 959 | <ComboboxListVirtualized className="not-empty:p-0"> | |
| 960 | 960 | <LegendList<string> |
| 961 | 961 | ref={modelListRef} |
| 962 | 962 | data={filteredItemKeys} |
apps/web/src/components/settings/FontFamilyPicker.tsx+1-1| ... | ... | @@ -219,7 +219,7 @@ export function FontFamilyPicker({ |
| 219 | 219 | <div className="flex min-h-0 flex-1 flex-col overflow-hidden"> |
| 220 | 220 | <ComboboxEmpty>No fonts found.</ComboboxEmpty> |
| 221 | 221 | <div className="relative min-h-0 max-h-72 w-full flex-1 overflow-hidden"> |
| 222 | <ComboboxListVirtualized className="size-full min-w-0 p-0"> | |
| 222 | <ComboboxListVirtualized> | |
| 223 | 223 | <LegendList<string> |
| 224 | 224 | ref={listRef} |
| 225 | 225 | data={items} |
apps/web/src/components/settings/SettingsPanels.tsx+1-1| ... | ... | @@ -845,7 +845,7 @@ function TokenStreamingWarningDialog({ |
| 845 | 845 | }) { |
| 846 | 846 | return ( |
| 847 | 847 | <AlertDialog open={open} onOpenChange={onOpenChange}> |
| 848 | <AlertDialogPopup className="max-w-lg"> | |
| 848 | <AlertDialogPopup> | |
| 849 | 849 | <AlertDialogHeader> |
| 850 | 850 | <AlertDialogTitle>Token by token is a worse experience</AlertDialogTitle> |
| 851 | 851 | <AlertDialogDescription> |
apps/web/src/components/settings/SettingsSidebarNav.tsx+1-1| ... | ... | @@ -344,7 +344,7 @@ export function SettingsSidebarNav({ pathname }: { pathname: string }) { |
| 344 | 344 | )} |
| 345 | 345 | </SidebarGroup> |
| 346 | 346 | </SidebarContent> |
| 347 | <SidebarFooter className="px-[var(--sidebar-content-inset)] py-1"> | |
| 347 | <SidebarFooter> | |
| 348 | 348 | <Suspense fallback={null}> |
| 349 | 349 | <T3ConnectSidebarSignIn /> |
| 350 | 350 | </Suspense> |
apps/web/src/components/sidebar/SidebarChrome.tsx+1-1| ... | ... | @@ -221,7 +221,7 @@ export const SidebarUtilityMenu = memo(function SidebarUtilityMenu() { |
| 221 | 221 | |
| 222 | 222 | export const SidebarChromeFooter = memo(function SidebarChromeFooter() { |
| 223 | 223 | return ( |
| 224 | <SidebarFooter className="px-[var(--sidebar-content-inset)] py-1"> | |
| 224 | <SidebarFooter> | |
| 225 | 225 | <SidebarThreadUndoNotice /> |
| 226 | 226 | <SidebarProviderUpdatePill /> |
| 227 | 227 | <SidebarUpdateArchitectureWarning /> |
apps/web/src/components/ui/combobox.tsx+1-1| ... | ... | @@ -247,7 +247,7 @@ function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) { |
| 247 | 247 | function ComboboxListVirtualized({ className, ...props }: ComboboxPrimitive.List.Props) { |
| 248 | 248 | return ( |
| 249 | 249 | <ComboboxPrimitive.List |
| 250 | className={cn("not-empty:px-1 not-empty:py-1", className)} | |
| 250 | className={cn("size-full min-w-0 not-empty:px-1 not-empty:py-1", className)} | |
| 251 | 251 | data-slot="combobox-list" |
| 252 | 252 | {...props} |
| 253 | 253 | /> |
apps/web/src/components/ui/sidebar.tsx+1-1| ... | ... | @@ -558,7 +558,7 @@ function SidebarHeader({ className, ...props }: React.ComponentProps<"div">) { |
| 558 | 558 | function SidebarFooter({ className, ...props }: React.ComponentProps<"div">) { |
| 559 | 559 | return ( |
| 560 | 560 | <div |
| 561 | className={cn("flex flex-col gap-2 p-2", className)} | |
| 561 | className={cn("flex flex-col gap-2 px-[var(--sidebar-content-inset)] py-1", className)} | |
| 562 | 562 | data-sidebar="footer" |
| 563 | 563 | data-slot="sidebar-footer" |
| 564 | 564 | {...props} |
apps/web/src/components/usage/UsagePage.tsx+1-1| ... | ... | @@ -366,7 +366,7 @@ export function UsagePage() { |
| 366 | 366 | ); |
| 367 | 367 | |
| 368 | 368 | return ( |
| 369 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground isolate"> | |
| 369 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none isolate"> | |
| 370 | 370 | <div className="flex min-h-0 min-w-0 flex-1 flex-col bg-background text-foreground"> |
| 371 | 371 | <WorkspacePageHeader electron={isElectron} className="h-auto"> |
| 372 | 372 | {topbarContent} |
apps/web/src/routes/_chat.index.tsx+7-7| ... | ... | @@ -90,11 +90,11 @@ function IndexDraftLanding() { |
| 90 | 90 | |
| 91 | 91 | function DraftStartError({ onRetry }: { readonly onRetry: () => void }) { |
| 92 | 92 | return ( |
| 93 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground"> | |
| 93 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none"> | |
| 94 | 94 | <Empty className="flex-1"> |
| 95 | 95 | <EmptyHeader className="max-w-md"> |
| 96 | <EmptyTitle className="text-foreground text-xl">Couldn’t start a new thread</EmptyTitle> | |
| 97 | <EmptyDescription className="mt-2 text-sm text-muted-foreground/78"> | |
| 96 | <EmptyTitle className="text-foreground">Couldn’t start a new thread</EmptyTitle> | |
| 97 | <EmptyDescription className="mt-2 text-muted-foreground/78"> | |
| 98 | 98 | The project is still available. Try opening the draft again. |
| 99 | 99 | </EmptyDescription> |
| 100 | 100 | <div className="mt-5 flex justify-center"> |
| ... | ... | @@ -123,7 +123,7 @@ function HostedStaticOnboardingState() { |
| 123 | 123 | : "Open Connections and add that machine using its pairing link. This app must be able to reach it."; |
| 124 | 124 | |
| 125 | 125 | return ( |
| 126 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground"> | |
| 126 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none"> | |
| 127 | 127 | <div className="flex min-h-0 min-w-0 flex-1 flex-col overflow-x-hidden bg-background"> |
| 128 | 128 | <WorkspacePageHeader electron={isElectron} className="border-b border-border"> |
| 129 | 129 | <div className="flex items-center gap-2"> |
| ... | ... | @@ -139,14 +139,14 @@ function HostedStaticOnboardingState() { |
| 139 | 139 | <div className="mx-auto mb-5 flex size-11 items-center justify-center rounded-xl border border-border/70 bg-background/70 text-muted-foreground"> |
| 140 | 140 | <LinkIcon className="size-5" /> |
| 141 | 141 | </div> |
| 142 | <EmptyTitle className="text-foreground text-xl"> | |
| 142 | <EmptyTitle className="text-foreground"> | |
| 143 | 143 | Connect to a computer running T3 Code |
| 144 | 144 | </EmptyTitle> |
| 145 | <EmptyDescription className="mt-2 text-sm leading-relaxed text-muted-foreground/78"> | |
| 145 | <EmptyDescription className="mt-2 leading-relaxed text-muted-foreground/78"> | |
| 146 | 146 | This app connects to T3 Code running on your computer or a server. Start the T3 Code |
| 147 | 147 | desktop app or command-line server on that machine and keep it running. |
| 148 | 148 | </EmptyDescription> |
| 149 | <EmptyDescription className="mt-2 text-sm leading-relaxed text-muted-foreground/78"> | |
| 149 | <EmptyDescription className="mt-2 leading-relaxed text-muted-foreground/78"> | |
| 150 | 150 | {description} |
| 151 | 151 | </EmptyDescription> |
| 152 | 152 | <div className="mt-6 flex justify-center"> |
apps/web/src/routes/_chat.pull-requests.tsx+1-1| ... | ... | @@ -2068,7 +2068,7 @@ function PullRequestsRouteView() { |
| 2068 | 2068 | }, [keybindings]); |
| 2069 | 2069 | |
| 2070 | 2070 | return ( |
| 2071 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground"> | |
| 2071 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none"> | |
| 2072 | 2072 | <div className="relative flex min-h-0 flex-1"> |
| 2073 | 2073 | {pullRequestsSupported && rightPanelPresent ? openPanelControls : null} |
| 2074 | 2074 | <PullRequestsColumn {...columnProps} /> |
apps/web/src/routes/settings.tsx+1-1| ... | ... | @@ -153,7 +153,7 @@ function SettingsContentLayout() { |
| 153 | 153 | }, [navigateBackWithinApp]); |
| 154 | 154 | |
| 155 | 155 | return ( |
| 156 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none bg-background text-foreground isolate"> | |
| 156 | <SidebarInset className="h-dvh min-h-0 overflow-hidden overscroll-y-none isolate"> | |
| 157 | 157 | <div className="flex min-h-0 min-w-0 flex-1 flex-col bg-background text-foreground"> |
| 158 | 158 | <WorkspacePageHeader electron={isElectron}> |
| 159 | 159 | <div className="flex w-full items-center gap-3"> |
scripts/lint-restyle-ceiling.ts+1-1| ... | ... | @@ -8,7 +8,7 @@ import * as NodeURL from "node:url"; |
| 8 | 8 | // components/ui exports are migrated to variants (see vite.config.ts). This gate keeps the |
| 9 | 9 | // count from growing: CI fails when findings exceed the ceiling. Lower the ceiling when you |
| 10 | 10 | // migrate a file, and delete this script when the rule becomes an error. |
| 11 | export const RESTYLE_CEILING = 1247; | |
| 11 | export const RESTYLE_CEILING = 1214; | |
| 12 | 12 | |
| 13 | 13 | const RULE = "shadcn(no-restyle)"; |
| 14 | 14 |