refactor(nexus): collapse rounded-xl/2xl to rounded-lg (phase 4)

This commit is contained in:
Nexus Dev 2026-04-11 16:26:07 +00:00
parent 3e8b204be0
commit 68c87fc8b3
13 changed files with 58 additions and 58 deletions

View file

@ -45,7 +45,7 @@ export function AccountingModelCard() {
return ( return (
<div <div
key={surface.title} key={surface.title}
className={`rounded-2xl border border-border/70 bg-gradient-to-br ${surface.tone} p-4 shadow-sm`} className={`rounded-lg border border-border/70 bg-gradient-to-br ${surface.tone} p-4`}
> >
<div className="mb-3 flex items-center gap-3"> <div className="mb-3 flex items-center gap-3">
<div className="flex h-10 w-10 items-center justify-center rounded-full border border-border/70 bg-background/80"> <div className="flex h-10 w-10 items-center justify-center rounded-full border border-border/70 bg-background/80">

View file

@ -55,7 +55,7 @@ export function ActiveAgentsPanel({ companyId }: ActiveAgentsPanelProps) {
Agents Agents
</h3> </h3>
{runs.length === 0 ? ( {runs.length === 0 ? (
<div className="rounded-xl border border-border p-4"> <div className="rounded-lg border border-border p-4">
<p className="text-sm text-muted-foreground">No recent agent runs.</p> <p className="text-sm text-muted-foreground">No recent agent runs.</p>
</div> </div>
) : ( ) : (
@ -91,7 +91,7 @@ function AgentRunCard({
}) { }) {
return ( return (
<div className={cn( <div className={cn(
"flex h-[320px] flex-col overflow-hidden rounded-xl border shadow-sm", "flex h-[320px] flex-col overflow-hidden rounded-lg border",
isActive isActive
? "border-primary/25 bg-primary/[0.04] shadow-[0_16px_40px_rgba(6,182,212,0.08)]" ? "border-primary/25 bg-primary/[0.04] shadow-[0_16px_40px_rgba(6,182,212,0.08)]"
: "border-border bg-background/70", : "border-border bg-background/70",

View file

@ -51,7 +51,7 @@ export function BudgetIncidentCard({
</div> </div>
</CardHeader> </CardHeader>
<CardContent className="space-y-4 px-5 pb-5 pt-0"> <CardContent className="space-y-4 px-5 pb-5 pt-0">
<div className="flex items-start gap-2 rounded-xl border border-destructive/20 bg-destructive/10 px-3 py-2 text-sm text-destructive"> <div className="flex items-start gap-2 rounded-lg border border-destructive/20 bg-destructive/10 px-3 py-2 text-sm text-destructive">
<PauseCircle className="mt-0.5 h-4 w-4 shrink-0" /> <PauseCircle className="mt-0.5 h-4 w-4 shrink-0" />
<div> <div>
{incident.scopeType === "project" {incident.scopeType === "project"
@ -60,7 +60,7 @@ export function BudgetIncidentCard({
</div> </div>
</div> </div>
<div className="rounded-xl border border-border/60 bg-background/60 p-3"> <div className="rounded-lg border border-border/60 bg-background/60 p-3">
<label className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground"> <label className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground">
New budget (USD) New budget (USD)
</label> </label>

View file

@ -74,14 +74,14 @@ export function BudgetPolicyCard({
</div> </div>
) : ( ) : (
<div className="grid gap-3 sm:grid-cols-2"> <div className="grid gap-3 sm:grid-cols-2">
<div className="rounded-xl border border-border/70 bg-black/[0.18] px-4 py-3"> <div className="rounded-lg border border-border/70 bg-black/[0.18] px-4 py-3">
<div className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground">Observed</div> <div className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground">Observed</div>
<div className="mt-2 text-xl font-semibold tabular-nums">{formatCents(summary.observedAmount)}</div> <div className="mt-2 text-xl font-semibold tabular-nums">{formatCents(summary.observedAmount)}</div>
<div className="mt-1 text-xs text-muted-foreground"> <div className="mt-1 text-xs text-muted-foreground">
{summary.amount > 0 ? `${summary.utilizationPercent}% of limit` : "No cap configured"} {summary.amount > 0 ? `${summary.utilizationPercent}% of limit` : "No cap configured"}
</div> </div>
</div> </div>
<div className="rounded-xl border border-border/70 bg-black/[0.18] px-4 py-3"> <div className="rounded-lg border border-border/70 bg-black/[0.18] px-4 py-3">
<div className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground">Budget</div> <div className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground">Budget</div>
<div className="mt-2 text-xl font-semibold tabular-nums"> <div className="mt-2 text-xl font-semibold tabular-nums">
{summary.amount > 0 ? formatCents(summary.amount) : "Disabled"} {summary.amount > 0 ? formatCents(summary.amount) : "Disabled"}
@ -116,7 +116,7 @@ export function BudgetPolicyCard({
); );
const pausedPane = summary.paused ? ( const pausedPane = summary.paused ? (
<div className="flex items-start gap-2 rounded-xl border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive"> <div className="flex items-start gap-2 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive">
<PauseCircle className="mt-0.5 h-4 w-4 shrink-0" /> <PauseCircle className="mt-0.5 h-4 w-4 shrink-0" />
<div> <div>
{summary.scopeType === "project" {summary.scopeType === "project"
@ -127,7 +127,7 @@ export function BudgetPolicyCard({
) : null; ) : null;
const saveSection = onSave ? ( const saveSection = onSave ? (
<div className={cn("flex flex-col gap-3 sm:flex-row sm:items-end", isPlain ? "" : "rounded-xl border border-border/70 bg-background/50 p-3")}> <div className={cn("flex flex-col gap-3 sm:flex-row sm:items-end", isPlain ? "" : "rounded-lg border border-border/70 bg-background/50 p-3")}>
<div className="min-w-0 flex-1"> <div className="min-w-0 flex-1">
<label className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground"> <label className="text-[11px] uppercase tracking-[0.18em] text-muted-foreground">
Budget (USD) Budget (USD)

View file

@ -98,17 +98,17 @@ export function ExecutionWorkspaceCloseDialog({
</DialogHeader> </DialogHeader>
{readinessQuery.isLoading ? ( {readinessQuery.isLoading ? (
<div className="flex items-center gap-2 rounded-xl border border-border bg-muted/30 px-4 py-3 text-sm text-muted-foreground"> <div className="flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-4 py-3 text-sm text-muted-foreground">
<Loader2 className="h-4 w-4 animate-spin" /> <Loader2 className="h-4 w-4 animate-spin" />
Checking whether this workspace is safe to close... Checking whether this workspace is safe to close...
</div> </div>
) : readinessQuery.error ? ( ) : readinessQuery.error ? (
<div className="rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3 text-sm text-destructive"> <div className="rounded-lg border border-destructive/30 bg-destructive/5 px-4 py-3 text-sm text-destructive">
{readinessQuery.error instanceof Error ? readinessQuery.error.message : "Failed to inspect workspace close readiness."} {readinessQuery.error instanceof Error ? readinessQuery.error.message : "Failed to inspect workspace close readiness."}
</div> </div>
) : readiness ? ( ) : readiness ? (
<div className="space-y-4"> <div className="space-y-4">
<div className={`rounded-xl border px-4 py-3 text-sm ${readinessTone(readiness.state)}`}> <div className={`rounded-lg border px-4 py-3 text-sm ${readinessTone(readiness.state)}`}>
<div className="font-medium"> <div className="font-medium">
{readiness.state === "blocked" {readiness.state === "blocked"
? "Close is blocked" ? "Close is blocked"
@ -132,7 +132,7 @@ export function ExecutionWorkspaceCloseDialog({
<h3 className="text-sm font-medium">Blocking issues</h3> <h3 className="text-sm font-medium">Blocking issues</h3>
<div className="space-y-2"> <div className="space-y-2">
{blockingIssues.map((issue) => ( {blockingIssues.map((issue) => (
<div key={issue.id} className="rounded-xl border border-destructive/20 bg-destructive/5 px-4 py-3 text-sm"> <div key={issue.id} className="rounded-lg border border-destructive/20 bg-destructive/5 px-4 py-3 text-sm">
<div className="flex min-w-0 flex-wrap items-center justify-between gap-2"> <div className="flex min-w-0 flex-wrap items-center justify-between gap-2">
<Link to={issueUrl(issue)} className="min-w-0 break-words font-medium hover:underline"> <Link to={issueUrl(issue)} className="min-w-0 break-words font-medium hover:underline">
{issue.identifier ?? issue.id} · {issue.title} {issue.identifier ?? issue.id} · {issue.title}
@ -174,7 +174,7 @@ export function ExecutionWorkspaceCloseDialog({
{readiness.git ? ( {readiness.git ? (
<section className="space-y-2"> <section className="space-y-2">
<h3 className="text-sm font-medium">Git status</h3> <h3 className="text-sm font-medium">Git status</h3>
<div className="rounded-xl border border-border bg-muted/20 px-4 py-3 text-sm"> <div className="rounded-lg border border-border bg-muted/20 px-4 py-3 text-sm">
<div className="grid gap-2 sm:grid-cols-2"> <div className="grid gap-2 sm:grid-cols-2">
<div> <div>
<div className="text-xs uppercase tracking-[0.16em] text-muted-foreground">Branch</div> <div className="text-xs uppercase tracking-[0.16em] text-muted-foreground">Branch</div>
@ -212,7 +212,7 @@ export function ExecutionWorkspaceCloseDialog({
<h3 className="text-sm font-medium">Other linked issues</h3> <h3 className="text-sm font-medium">Other linked issues</h3>
<div className="space-y-2"> <div className="space-y-2">
{otherLinkedIssues.map((issue) => ( {otherLinkedIssues.map((issue) => (
<div key={issue.id} className="rounded-xl border border-border bg-muted/20 px-4 py-3 text-sm"> <div key={issue.id} className="rounded-lg border border-border bg-muted/20 px-4 py-3 text-sm">
<div className="flex min-w-0 flex-wrap items-center justify-between gap-2"> <div className="flex min-w-0 flex-wrap items-center justify-between gap-2">
<Link to={issueUrl(issue)} className="min-w-0 break-words font-medium hover:underline"> <Link to={issueUrl(issue)} className="min-w-0 break-words font-medium hover:underline">
{issue.identifier ?? issue.id} · {issue.title} {issue.identifier ?? issue.id} · {issue.title}
@ -230,7 +230,7 @@ export function ExecutionWorkspaceCloseDialog({
<h3 className="text-sm font-medium">Attached runtime services</h3> <h3 className="text-sm font-medium">Attached runtime services</h3>
<div className="space-y-2"> <div className="space-y-2">
{readiness.runtimeServices.map((service) => ( {readiness.runtimeServices.map((service) => (
<div key={service.id} className="rounded-xl border border-border bg-muted/20 px-4 py-3 text-sm"> <div key={service.id} className="rounded-lg border border-border bg-muted/20 px-4 py-3 text-sm">
<div className="flex min-w-0 flex-wrap items-center justify-between gap-2"> <div className="flex min-w-0 flex-wrap items-center justify-between gap-2">
<span className="font-medium">{service.serviceName}</span> <span className="font-medium">{service.serviceName}</span>
<span className="text-xs text-muted-foreground">{service.status} · {service.lifecycle}</span> <span className="text-xs text-muted-foreground">{service.status} · {service.lifecycle}</span>
@ -248,7 +248,7 @@ export function ExecutionWorkspaceCloseDialog({
<h3 className="text-sm font-medium">Cleanup actions</h3> <h3 className="text-sm font-medium">Cleanup actions</h3>
<div className="space-y-2"> <div className="space-y-2">
{readiness.plannedActions.map((action, index) => ( {readiness.plannedActions.map((action, index) => (
<div key={`${action.kind}-${index}`} className="rounded-xl border border-border bg-muted/20 px-4 py-3 text-sm"> <div key={`${action.kind}-${index}`} className="rounded-lg border border-border bg-muted/20 px-4 py-3 text-sm">
<div className="font-medium">{action.label}</div> <div className="font-medium">{action.label}</div>
<div className="mt-1 break-words text-muted-foreground">{action.description}</div> <div className="mt-1 break-words text-muted-foreground">{action.description}</div>
{action.command ? ( {action.command ? (
@ -262,14 +262,14 @@ export function ExecutionWorkspaceCloseDialog({
</section> </section>
{currentStatus === "cleanup_failed" ? ( {currentStatus === "cleanup_failed" ? (
<div className="rounded-xl border border-warning/20 bg-warning/5 px-4 py-3 text-sm text-muted-foreground"> <div className="rounded-lg border border-warning/20 bg-warning/5 px-4 py-3 text-sm text-muted-foreground">
Cleanup previously failed on this workspace. Retrying close will rerun the cleanup flow and update the Cleanup previously failed on this workspace. Retrying close will rerun the cleanup flow and update the
workspace status if it succeeds. workspace status if it succeeds.
</div> </div>
) : null} ) : null}
{currentStatus === "archived" ? ( {currentStatus === "archived" ? (
<div className="rounded-xl border border-border bg-muted/20 px-4 py-3 text-sm text-muted-foreground"> <div className="rounded-lg border border-border bg-muted/20 px-4 py-3 text-sm text-muted-foreground">
This workspace is already archived. This workspace is already archived.
</div> </div>
) : null} ) : null}

View file

@ -87,7 +87,7 @@ export function LiveRunWidget({ issueId, companyId }: LiveRunWidgetProps) {
if (runs.length === 0) return null; if (runs.length === 0) return null;
return ( return (
<div className="overflow-hidden rounded-xl border border-primary/25 bg-background/80 shadow-[0_18px_50px_rgba(6,182,212,0.08)]"> <div className="overflow-hidden rounded-lg border border-primary/25 bg-background/80 shadow-[0_18px_50px_rgba(6,182,212,0.08)]">
<div className="border-b border-border/60 bg-primary/[0.04] px-4 py-3"> <div className="border-b border-border/60 bg-primary/[0.04] px-4 py-3">
<div className="text-xs font-semibold uppercase tracking-[0.18em] text-primary"> <div className="text-xs font-semibold uppercase tracking-[0.18em] text-primary">
Live Runs Live Runs

View file

@ -664,7 +664,7 @@ function TranscriptToolCard({
: "text-success"; : "text-success";
const detailsClass = cn( const detailsClass = cn(
"space-y-3", "space-y-3",
block.status === "error" && "rounded-xl border border-destructive/20 bg-destructive/[0.06] p-3", block.status === "error" && "rounded-lg border border-destructive/20 bg-destructive/[0.06] p-3",
); );
const iconClass = cn( const iconClass = cn(
"mt-0.5 h-3.5 w-3.5 shrink-0", "mt-0.5 h-3.5 w-3.5 shrink-0",
@ -681,7 +681,7 @@ function TranscriptToolCard({
: summarizeToolResult(block.result, block.isError, density); : summarizeToolResult(block.result, block.isError, density);
return ( return (
<div className={cn(block.status === "error" && "rounded-xl border border-destructive/20 bg-destructive/[0.04] p-3")}> <div className={cn(block.status === "error" && "rounded-lg border border-destructive/20 bg-destructive/[0.04] p-3")}>
<div className="flex items-start gap-2"> <div className="flex items-start gap-2">
{block.status === "error" ? ( {block.status === "error" ? (
<CircleAlert className={iconClass} /> <CircleAlert className={iconClass} />
@ -775,7 +775,7 @@ function TranscriptCommandGroup({
: "text-foreground/70"; : "text-foreground/70";
return ( return (
<div className={cn(showExpandedErrorState && "rounded-xl border border-destructive/20 bg-destructive/[0.04] p-3")}> <div className={cn(showExpandedErrorState && "rounded-lg border border-destructive/20 bg-destructive/[0.04] p-3")}>
<div <div
role="button" role="button"
tabIndex={0} tabIndex={0}
@ -839,7 +839,7 @@ function TranscriptCommandGroup({
</button> </button>
</div> </div>
{open && ( {open && (
<div className={cn("mt-3 space-y-3", hasError && "rounded-xl border border-destructive/20 bg-destructive/[0.06] p-3")}> <div className={cn("mt-3 space-y-3", hasError && "rounded-lg border border-destructive/20 bg-destructive/[0.06] p-3")}>
{block.items.map((item, index) => ( {block.items.map((item, index) => (
<div key={`${item.ts}-${index}`} className="space-y-2"> <div key={`${item.ts}-${index}`} className="space-y-2">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
@ -903,7 +903,7 @@ function TranscriptToolGroup({
: "text-foreground/70"; : "text-foreground/70";
return ( return (
<div className="rounded-xl border border-border/40 bg-muted/[0.25]"> <div className="rounded-lg border border-border/40 bg-muted/[0.25]">
<div <div
role="button" role="button"
tabIndex={0} tabIndex={0}
@ -1043,7 +1043,7 @@ function TranscriptEventRow({
const compact = density === "compact"; const compact = density === "compact";
const toneClasses = const toneClasses =
block.tone === "error" block.tone === "error"
? "rounded-xl border border-destructive/20 bg-destructive/[0.06] p-3 text-destructive" ? "rounded-lg border border-destructive/20 bg-destructive/[0.06] p-3 text-destructive"
: block.tone === "warn" : block.tone === "warn"
? "text-warning" ? "text-warning"
: block.tone === "info" : block.tone === "info"
@ -1094,7 +1094,7 @@ function TranscriptStderrGroup({
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const compact = density === "compact"; const compact = density === "compact";
return ( return (
<div className="rounded-xl border border-warning/20 bg-warning/[0.06] p-2 text-warning"> <div className="rounded-lg border border-warning/20 bg-warning/[0.06] p-2 text-warning">
<div <div
role="button" role="button"
tabIndex={0} tabIndex={0}
@ -1214,7 +1214,7 @@ export function RunTranscriptView({
if (entries.length === 0) { if (entries.length === 0) {
return ( return (
<div className={cn("rounded-2xl border border-dashed border-border/70 bg-background/40 p-4 text-sm text-muted-foreground", className)}> <div className={cn("rounded-lg border border-dashed border-border/70 bg-background/40 p-4 text-sm text-muted-foreground", className)}>
{emptyMessage} {emptyMessage}
</div> </div>
); );

View file

@ -2592,7 +2592,7 @@ function AgentSkillsTab({
</div> </div>
{skillSnapshot?.warnings.length ? ( {skillSnapshot?.warnings.length ? (
<div className="space-y-1 rounded-xl border border-warning/60 bg-warning/60 px-4 py-3 text-sm text-warning"> <div className="space-y-1 rounded-lg border border-warning/60 bg-warning/60 px-4 py-3 text-sm text-warning">
{skillSnapshot.warnings.map((warning) => ( {skillSnapshot.warnings.map((warning) => (
<div key={warning}>{warning}</div> <div key={warning}>{warning}</div>
))} ))}
@ -2600,7 +2600,7 @@ function AgentSkillsTab({
) : null} ) : null}
{unsupportedSkillMessage ? ( {unsupportedSkillMessage ? (
<div className="rounded-xl border border-border px-4 py-3 text-sm text-muted-foreground"> <div className="rounded-lg border border-border px-4 py-3 text-sm text-muted-foreground">
{unsupportedSkillMessage} {unsupportedSkillMessage}
</div> </div>
) : null} ) : null}
@ -2745,7 +2745,7 @@ function AgentSkillsTab({
})()} })()}
{desiredOnlyMissingSkills.length > 0 && ( {desiredOnlyMissingSkills.length > 0 && (
<div className="rounded-xl border border-warning/60 bg-warning/60 px-4 py-3 text-sm text-warning"> <div className="rounded-lg border border-warning/60 bg-warning/60 px-4 py-3 text-sm text-warning">
<div className="font-medium">Requested skills missing from the workspace library</div> <div className="font-medium">Requested skills missing from the workspace library</div>
<div className="mt-1 text-xs"> <div className="mt-1 text-xs">
{desiredOnlyMissingSkills.join(", ")} {desiredOnlyMissingSkills.join(", ")}
@ -3845,7 +3845,7 @@ function LogViewer({ run, adapterType }: { run: HeartbeatRun; adapterType: strin
)} )}
</div> </div>
</div> </div>
<div className="max-h-[38rem] overflow-y-auto rounded-2xl border border-border/70 bg-background/40 p-3 sm:p-4"> <div className="max-h-[38rem] overflow-y-auto rounded-lg border border-border/70 bg-background/40 p-3 sm:p-4">
<RunTranscriptView <RunTranscriptView
entries={transcript} entries={transcript}
mode={transcriptMode} mode={transcriptMode}
@ -3853,7 +3853,7 @@ function LogViewer({ run, adapterType }: { run: HeartbeatRun; adapterType: strin
emptyMessage={run.logRef ? "Waiting for transcript..." : "No persisted transcript for this run."} emptyMessage={run.logRef ? "Waiting for transcript..." : "No persisted transcript for this run."}
/> />
{logError && ( {logError && (
<div className="mt-3 rounded-xl border border-destructive/20 bg-destructive/[0.06] px-3 py-2 text-xs text-destructive"> <div className="mt-3 rounded-lg border border-destructive/20 bg-destructive/[0.06] px-3 py-2 text-xs text-destructive">
{logError} {logError}
</div> </div>
)} )}

View file

@ -391,7 +391,7 @@ export function ExecutionWorkspaceDetail() {
<div className="grid gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(18rem,0.95fr)]"> <div className="grid gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(18rem,0.95fr)]">
<div className="space-y-6"> <div className="space-y-6">
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-start sm:justify-between"> <div className="flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-start sm:justify-between">
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground"> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">
@ -504,7 +504,7 @@ export function ExecutionWorkspaceDetail() {
/> />
</Field> </Field>
<div className="rounded-xl border border-dashed border-border/70 bg-muted/20 px-3 py-3"> <div className="rounded-lg border border-dashed border-border/70 bg-muted/20 px-3 py-3">
<div className="flex flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-center sm:justify-between"> <div className="flex flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-center sm:justify-between">
<div> <div>
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground"> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">
@ -583,7 +583,7 @@ export function ExecutionWorkspaceDetail() {
</div> </div>
<div className="space-y-6"> <div className="space-y-6">
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Linked objects</div> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Linked objects</div>
<h2 className="text-lg font-semibold">Workspace context</h2> <h2 className="text-lg font-semibold">Workspace context</h2>
@ -628,7 +628,7 @@ export function ExecutionWorkspaceDetail() {
</DetailRow> </DetailRow>
</div> </div>
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Paths and refs</div> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Paths and refs</div>
<h2 className="text-lg font-semibold">Concrete location</h2> <h2 className="text-lg font-semibold">Concrete location</h2>
@ -672,7 +672,7 @@ export function ExecutionWorkspaceDetail() {
</DetailRow> </DetailRow>
</div> </div>
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"> <div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Runtime services</div> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Runtime services</div>
@ -720,7 +720,7 @@ export function ExecutionWorkspaceDetail() {
{workspace.runtimeServices && workspace.runtimeServices.length > 0 ? ( {workspace.runtimeServices && workspace.runtimeServices.length > 0 ? (
<div className="space-y-3"> <div className="space-y-3">
{workspace.runtimeServices.map((service) => ( {workspace.runtimeServices.map((service) => (
<div key={service.id} className="rounded-xl border border-border/80 bg-background px-3 py-2"> <div key={service.id} className="rounded-lg border border-border/80 bg-background px-3 py-2">
<div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"> <div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-sm font-medium">{service.serviceName}</div> <div className="text-sm font-medium">{service.serviceName}</div>
@ -751,7 +751,7 @@ export function ExecutionWorkspaceDetail() {
)} )}
</div> </div>
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Recent operations</div> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Recent operations</div>
<h2 className="text-lg font-semibold">Runtime and cleanup logs</h2> <h2 className="text-lg font-semibold">Runtime and cleanup logs</h2>
@ -768,7 +768,7 @@ export function ExecutionWorkspaceDetail() {
) : workspaceOperationsQuery.data && workspaceOperationsQuery.data.length > 0 ? ( ) : workspaceOperationsQuery.data && workspaceOperationsQuery.data.length > 0 ? (
<div className="space-y-3"> <div className="space-y-3">
{workspaceOperationsQuery.data.slice(0, 6).map((operation) => ( {workspaceOperationsQuery.data.slice(0, 6).map((operation) => (
<div key={operation.id} className="rounded-xl border border-border/80 bg-background px-3 py-2"> <div key={operation.id} className="rounded-lg border border-border/80 bg-background px-3 py-2">
<div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"> <div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-sm font-medium">{operation.command ?? operation.phase}</div> <div className="text-sm font-medium">{operation.command ?? operation.phase}</div>
@ -794,7 +794,7 @@ export function ExecutionWorkspaceDetail() {
</div> </div>
</div> </div>
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between"> <div className="flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Linked issues</div> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Linked issues</div>
@ -820,7 +820,7 @@ export function ExecutionWorkspaceDetail() {
<Link <Link
key={issue.id} key={issue.id}
to={issueUrl(issue)} to={issueUrl(issue)}
className="min-w-72 rounded-xl border border-border/80 bg-background px-4 py-3 transition-colors hover:bg-accent/20" className="min-w-72 rounded-lg border border-border/80 bg-background px-4 py-3 transition-colors hover:bg-accent/20"
> >
<div className="flex items-start justify-between gap-3"> <div className="flex items-start justify-between gap-3">
<div className="min-w-0 space-y-1"> <div className="min-w-0 space-y-1">

View file

@ -409,7 +409,7 @@ function ProjectWorkspacesContent({
return ( return (
<> <>
<div className="space-y-4"> <div className="space-y-4">
<div className="overflow-hidden rounded-xl border border-border bg-card"> <div className="overflow-hidden rounded-lg border border-border bg-card">
{activeSummaries.map(renderSummaryRow)} {activeSummaries.map(renderSummaryRow)}
</div> </div>
{cleanupFailedSummaries.length > 0 ? ( {cleanupFailedSummaries.length > 0 ? (
@ -417,7 +417,7 @@ function ProjectWorkspacesContent({
<div className="text-xs font-medium uppercase tracking-[0.18em] text-muted-foreground"> <div className="text-xs font-medium uppercase tracking-[0.18em] text-muted-foreground">
Cleanup attention needed Cleanup attention needed
</div> </div>
<div className="overflow-hidden rounded-xl border border-warning/20 bg-warning/5"> <div className="overflow-hidden rounded-lg border border-warning/20 bg-warning/5">
{cleanupFailedSummaries.map(renderSummaryRow)} {cleanupFailedSummaries.map(renderSummaryRow)}
</div> </div>
</div> </div>

View file

@ -363,7 +363,7 @@ export function ProjectWorkspaceDetail() {
<div className="grid gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(18rem,0.9fr)]"> <div className="grid gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(18rem,0.9fr)]">
<div className="space-y-6"> <div className="space-y-6">
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-start sm:justify-between"> <div className="flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-start sm:justify-between">
<div className="space-y-2"> <div className="space-y-2">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground"> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">
@ -389,7 +389,7 @@ export function ProjectWorkspaceDetail() {
Make primary Make primary
</Button> </Button>
) : ( ) : (
<div className="inline-flex items-center gap-2 rounded-xl border border-success/25 bg-success/10 px-3 py-2 text-sm text-success sm:max-w-sm"> <div className="inline-flex items-center gap-2 rounded-lg border border-success/25 bg-success/10 px-3 py-2 text-sm text-success sm:max-w-sm">
<Sparkles className="h-4 w-4" /> <Sparkles className="h-4 w-4" />
This is the projects primary codebase workspace. This is the projects primary codebase workspace.
</div> </div>
@ -562,7 +562,7 @@ export function ProjectWorkspaceDetail() {
</div> </div>
<div className="space-y-6"> <div className="space-y-6">
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Workspace facts</div> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Workspace facts</div>
<h2 className="text-lg font-semibold">Current state</h2> <h2 className="text-lg font-semibold">Current state</h2>
@ -591,7 +591,7 @@ export function ProjectWorkspaceDetail() {
<DetailRow label="Updated">{new Date(workspace.updatedAt).toLocaleString()}</DetailRow> <DetailRow label="Updated">{new Date(workspace.updatedAt).toLocaleString()}</DetailRow>
</div> </div>
<div className="rounded-2xl border border-border bg-card p-5"> <div className="rounded-lg border border-border bg-card p-5">
<div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"> <div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Runtime services</div> <div className="text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground">Runtime services</div>
@ -635,7 +635,7 @@ export function ProjectWorkspaceDetail() {
{workspace.runtimeServices && workspace.runtimeServices.length > 0 ? ( {workspace.runtimeServices && workspace.runtimeServices.length > 0 ? (
<div className="space-y-3"> <div className="space-y-3">
{workspace.runtimeServices.map((service) => ( {workspace.runtimeServices.map((service) => (
<div key={service.id} className="rounded-xl border border-border/80 bg-background px-3 py-2"> <div key={service.id} className="rounded-lg border border-border/80 bg-background px-3 py-2">
<div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between"> <div className="flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between">
<div className="space-y-1"> <div className="space-y-1">
<div className="text-sm font-medium">{service.serviceName}</div> <div className="text-sm font-medium">{service.serviceName}</div>

View file

@ -60,7 +60,7 @@ function RunDetailPreview({
density: TranscriptDensity; density: TranscriptDensity;
}) { }) {
return ( return (
<div className="overflow-hidden rounded-xl border border-border/70 bg-background/80 shadow-[0_24px_60px_rgba(15,23,42,0.08)]"> <div className="overflow-hidden rounded-lg border border-border/70 bg-background/80 shadow-[0_24px_60px_rgba(15,23,42,0.08)]">
<div className="border-b border-border/60 bg-background/90 px-5 py-4"> <div className="border-b border-border/60 bg-background/90 px-5 py-4">
<div className="flex flex-wrap items-center gap-2"> <div className="flex flex-wrap items-center gap-2">
<Badge variant="outline" className="uppercase tracking-[0.18em] text-[10px]"> <Badge variant="outline" className="uppercase tracking-[0.18em] text-[10px]">
@ -97,7 +97,7 @@ function LiveWidgetPreview({
density: TranscriptDensity; density: TranscriptDensity;
}) { }) {
return ( return (
<div className="overflow-hidden rounded-xl border border-primary/25 bg-background/85 shadow-[0_20px_50px_rgba(6,182,212,0.10)]"> <div className="overflow-hidden rounded-lg border border-primary/25 bg-background/85 shadow-[0_20px_50px_rgba(6,182,212,0.10)]">
<div className="border-b border-border/60 bg-primary/[0.05] px-5 py-4"> <div className="border-b border-border/60 bg-primary/[0.05] px-5 py-4">
<div className="text-xs font-semibold uppercase tracking-[0.2em] text-primary"> <div className="text-xs font-semibold uppercase tracking-[0.2em] text-primary">
Live Runs Live Runs
@ -149,7 +149,7 @@ function DashboardPreview({
return ( return (
<div className="max-w-md"> <div className="max-w-md">
<div className={cn( <div className={cn(
"flex h-[320px] flex-col overflow-hidden rounded-xl border shadow-[0_20px_40px_rgba(15,23,42,0.10)]", "flex h-[320px] flex-col overflow-hidden rounded-lg border shadow-[0_20px_40px_rgba(15,23,42,0.10)]",
streaming streaming
? "border-primary/25 bg-primary/[0.04]" ? "border-primary/25 bg-primary/[0.04]"
: "border-border bg-background/75", : "border-border bg-background/75",
@ -200,7 +200,7 @@ export function RunTranscriptUxLab() {
return ( return (
<div className="space-y-6"> <div className="space-y-6">
<div className="overflow-hidden rounded-2xl border border-border/70 bg-[linear-gradient(135deg,rgba(8,145,178,0.08),transparent_28%),linear-gradient(180deg,rgba(245,158,11,0.08),transparent_40%),var(--background)] shadow-[0_28px_70px_rgba(15,23,42,0.10)]"> <div className="overflow-hidden rounded-lg border border-border/70 bg-[linear-gradient(135deg,rgba(8,145,178,0.08),transparent_28%),linear-gradient(180deg,rgba(245,158,11,0.08),transparent_40%),var(--background)] shadow-[0_28px_70px_rgba(15,23,42,0.10)]">
<div className="grid gap-6 lg:grid-cols-[260px_minmax(0,1fr)]"> <div className="grid gap-6 lg:grid-cols-[260px_minmax(0,1fr)]">
<aside className="border-b border-border/60 bg-background/75 p-5 lg:border-b-0 lg:border-r"> <aside className="border-b border-border/60 bg-background/75 p-5 lg:border-b-0 lg:border-r">
<div className="mb-5"> <div className="mb-5">
@ -223,7 +223,7 @@ export function RunTranscriptUxLab() {
type="button" type="button"
onClick={() => setSelectedSurface(option.id)} onClick={() => setSelectedSurface(option.id)}
className={cn( className={cn(
"w-full rounded-xl border px-4 py-3 text-left transition-all", "w-full rounded-lg border px-4 py-3 text-left transition-all",
selectedSurface === option.id selectedSurface === option.id
? "border-primary/35 bg-primary/[0.10] shadow-[0_12px_24px_rgba(6,182,212,0.12)]" ? "border-primary/35 bg-primary/[0.10] shadow-[0_12px_24px_rgba(6,182,212,0.12)]"
: "border-border/70 bg-background/70 hover:border-primary/20 hover:bg-primary/[0.04]", : "border-border/70 bg-background/70 hover:border-primary/20 hover:bg-primary/[0.04]",

View file

@ -522,10 +522,10 @@ function LauncherModalShell({
: launcherShellBoundsStyle(instance.bounds); : launcherShellBoundsStyle(instance.bounds);
const panelClassName = shellType === "openDrawer" const panelClassName = shellType === "openDrawer"
? "fixed right-0 top-0 h-full max-w-[min(44rem,100vw)] overflow-hidden border-l border-border bg-background shadow-2xl" ? "fixed right-0 top-0 h-full max-w-[min(44rem,100vw)] overflow-hidden border-l border-border bg-background"
: shellType === "openPopover" : shellType === "openPopover"
? "fixed overflow-hidden rounded-xl border border-border bg-background shadow-2xl" ? "fixed overflow-hidden rounded-lg border border-border bg-background"
: "fixed left-1/2 top-1/2 max-h-[calc(100vh-2rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-2xl border border-border bg-background shadow-2xl"; : "fixed left-1/2 top-1/2 max-h-[calc(100vh-2rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg border border-border bg-background";
return ( return (
<> <>