@saadnvd1/agent-os 0.3.601 → 0.3.603
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -120,7 +120,7 @@ export function DesktopTabBar({
|
|
|
120
120
|
className={cn(
|
|
121
121
|
"group relative flex shrink-0 cursor-pointer items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors",
|
|
122
122
|
tab.id === activeTabId
|
|
123
|
-
? "bg-foreground/[0.07] text-foreground after:bg-primary after:absolute after:inset-x-3 after
|
|
123
|
+
? "bg-foreground/[0.07] text-foreground [[data-split][data-focused]_&]:after:bg-primary [[data-split][data-focused]_&]:after:absolute [[data-split][data-focused]_&]:after:inset-x-3 [[data-split][data-focused]_&]:after:bottom-0 [[data-split][data-focused]_&]:after:h-0.5"
|
|
124
124
|
: "text-muted-foreground hover:text-foreground/80 hover:bg-foreground/[0.04]"
|
|
125
125
|
)}
|
|
126
126
|
>
|
|
@@ -164,6 +164,7 @@ export const Pane = memo(function Pane({
|
|
|
164
164
|
? (terminalRefs.current.get(activeTab.id) ?? null)
|
|
165
165
|
: null;
|
|
166
166
|
const isFocused = focusedPaneId === paneId;
|
|
167
|
+
const isSplit = canClose;
|
|
167
168
|
const session = activeTab
|
|
168
169
|
? sessions.find((s) => s.id === activeTab.sessionId)
|
|
169
170
|
: null;
|
|
@@ -433,9 +434,17 @@ export const Pane = memo(function Pane({
|
|
|
433
434
|
"flex h-full w-full flex-col overflow-hidden",
|
|
434
435
|
!isMobile &&
|
|
435
436
|
"bg-card rounded-xl shadow-(--elevation) ring-1 transition-shadow duration-200",
|
|
436
|
-
!isMobile &&
|
|
437
|
+
!isMobile &&
|
|
438
|
+
(isSplit && isFocused
|
|
439
|
+
? "ring-foreground/[0.16]"
|
|
440
|
+
: "ring-foreground/[0.07]"),
|
|
441
|
+
!isMobile &&
|
|
442
|
+
"[&>*]:transition-opacity [&>*]:duration-150 focus-within:[&>*]:opacity-100 hover:[&>*]:opacity-100",
|
|
443
|
+
!isMobile && isSplit && !isFocused && "[&>*]:opacity-60"
|
|
437
444
|
)}
|
|
438
445
|
data-pane-id={paneId}
|
|
446
|
+
data-split={isSplit || undefined}
|
|
447
|
+
data-focused={isFocused || undefined}
|
|
439
448
|
onClick={handleFocus}
|
|
440
449
|
>
|
|
441
450
|
{/* Tab Bar - Mobile vs Desktop */}
|
|
@@ -14,6 +14,7 @@ import { cn } from "@/lib/utils";
|
|
|
14
14
|
import { orchestratorOpenActions } from "@/stores/orchestratorOpen";
|
|
15
15
|
import { useRowContext } from "./RowContext";
|
|
16
16
|
import { SessionRowMenu } from "./SessionRowMenu";
|
|
17
|
+
import { ActiveTick } from "./RowShell";
|
|
17
18
|
import { RowRename, UnreadDot } from "./RowParts";
|
|
18
19
|
import { QuickChangeRow } from "./QuickChangeRow";
|
|
19
20
|
import { NestRail } from "./RowParts";
|
|
@@ -59,10 +60,11 @@ export const OrchestratorPinRow = memo(function OrchestratorPinRow({
|
|
|
59
60
|
onActivate={() => !renaming && ctx.onSelect(session.id)}
|
|
60
61
|
className={
|
|
61
62
|
active
|
|
62
|
-
? "bg-
|
|
63
|
+
? "bg-foreground/[0.07]"
|
|
63
64
|
: "bg-muted/50 hover:bg-muted has-[[data-chip]:hover]:bg-muted/50"
|
|
64
65
|
}
|
|
65
66
|
>
|
|
67
|
+
{active && <ActiveTick />}
|
|
66
68
|
<Workflow
|
|
67
69
|
aria-hidden
|
|
68
70
|
className={cn(
|
|
@@ -7,6 +7,17 @@ import * as DM from "@/components/ui/dropdown-menu";
|
|
|
7
7
|
import * as CM from "@/components/ui/context-menu";
|
|
8
8
|
import { cn } from "@/lib/utils";
|
|
9
9
|
|
|
10
|
+
// The open row's accent: a thin rounded tick at the left edge, inside the
|
|
11
|
+
// row so the list's overflow can't clip it.
|
|
12
|
+
export function ActiveTick() {
|
|
13
|
+
return (
|
|
14
|
+
<span
|
|
15
|
+
aria-hidden
|
|
16
|
+
className="bg-primary pointer-events-none absolute inset-y-[9px] left-0 w-[3px] rounded-full"
|
|
17
|
+
/>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
10
21
|
export type RowMenuKind = "dropdown" | "context";
|
|
11
22
|
|
|
12
23
|
// Every sidebar row's frame: a leading mark, title over subtitle, what's on
|
|
@@ -66,10 +77,11 @@ export function RowShell({
|
|
|
66
77
|
highlight === "selected"
|
|
67
78
|
? "bg-primary/15"
|
|
68
79
|
: highlight === "active"
|
|
69
|
-
? "bg-
|
|
70
|
-
: "hover:bg-foreground/[0.
|
|
80
|
+
? "bg-foreground/[0.07]"
|
|
81
|
+
: "hover:bg-foreground/[0.025]"
|
|
71
82
|
)}
|
|
72
83
|
>
|
|
84
|
+
{highlight === "active" && <ActiveTick />}
|
|
73
85
|
{leading}
|
|
74
86
|
<span className="@container flex min-w-0 flex-1 flex-col leading-tight">
|
|
75
87
|
{children}
|