From 87d2488c78e4caa34da296f7e55ac97d153bd726 Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Sat, 22 Aug 2026 14:23:18 +1000 Subject: [PATCH] feat(desktop): apply left border rail styling to all tool disclosures (#44052) --- .../session-ui/src/components/basic-tool.css | 18 +++++++ .../src/components/basic-tool.stories.tsx | 53 +++++++++++++++++-- .../src/components/message-part.css | 36 +++++-------- .../src/components/tool-error-card.css | 11 ++++ .../session-ui/src/tools/tool-renderer.tsx | 3 -- 5 files changed, 92 insertions(+), 29 deletions(-) diff --git a/packages/session-ui/src/components/basic-tool.css b/packages/session-ui/src/components/basic-tool.css index 410648c5ae..c7956a9c9c 100644 --- a/packages/session-ui/src/components/basic-tool.css +++ b/packages/session-ui/src/components/basic-tool.css @@ -256,6 +256,24 @@ } } +[data-component="collapsible"].tool-collapsible { + > [data-slot="collapsible-content"] { + position: relative; + margin-inline-start: 12px; + padding-inline-start: 16px; + + &::before { + content: ""; + position: absolute; + inset-inline-start: 0; + top: 0; + bottom: 12px; + width: 0.5px; + background-color: var(--v2-border-border-muted, rgba(0, 0, 0, 0.08)); + } + } +} + :root body { [data-component="task-tool-card"] { gap: 8px; diff --git a/packages/session-ui/src/components/basic-tool.stories.tsx b/packages/session-ui/src/components/basic-tool.stories.tsx index 1b799bbe38..9280c308fa 100644 --- a/packages/session-ui/src/components/basic-tool.stories.tsx +++ b/packages/session-ui/src/components/basic-tool.stories.tsx @@ -147,9 +147,6 @@ export const WebSearch = { }} >
-
-
-
{(url, index) => ( @@ -180,3 +177,53 @@ export const WebSearch = { ) }, } + +export const GatheredContext = { + render: () => ( + +
+
+ Shell + opencode2 api get /openapi.json +
+
+ Explore + inspect active v2 beta service +
+
+ Patch + packages/session-ui/src/tools +
+
+
+ ), +} + +export const PatchFileList = { + render: () => ( + +
+
+ + packages/app/src/composer/composer.tsx +
+
+ + packages/session-ui/src/tools/tool-renderer.tsx +
+
+ + packages/session-ui/src/components/basic-tool.css +
+
+ + packages/ui/src/icons/icon/icon.tsx +
+
+
+ ), +} diff --git a/packages/session-ui/src/components/message-part.css b/packages/session-ui/src/components/message-part.css index 972161af8c..38c5a5f7aa 100644 --- a/packages/session-ui/src/components/message-part.css +++ b/packages/session-ui/src/components/message-part.css @@ -326,7 +326,7 @@ [data-component="tool-output"] { white-space: pre; padding: 0; - margin-bottom: 24px; + margin-bottom: 0px; height: fit-content; display: flex; flex-direction: column; @@ -570,30 +570,15 @@ [data-component="exa-tool-output"] { display: flex; - align-items: flex-start; + flex-direction: column; min-width: 0; + width: 100%; font-family: var(--font-family-sans); font-size: 13px; line-height: 16px; color: var(--v2-text-text-muted); } -[data-slot="exa-tool-rail"] { - display: flex; - align-items: center; - align-self: stretch; - flex-shrink: 0; - padding-bottom: 12px; - padding-inline-start: 12px; - padding-inline-end: 16px; -} - -[data-slot="exa-tool-rail-line"] { - width: 0.5px; - height: 100%; - background-color: var(--v2-border-border-muted, rgba(0, 0, 0, 0.08)); -} - [data-slot="basic-tool-tool-subtitle"].exa-tool-query { display: block; max-width: 100%; @@ -624,7 +609,7 @@ font-family: var(--font-family-sans); font-size: 13px; font-weight: var(--font-weight-regular, 440); - line-height: 16px; + line-height: 13px; letter-spacing: -0.04px; color: var(--v2-text-text-faint, #808080); user-select: none; @@ -683,10 +668,7 @@ } [data-component="context-tool-group-list"] { - padding-top: 0; - padding-right: 0; - padding-bottom: 0; - padding-left: 12px; + padding: 0; display: flex; flex-direction: column; gap: 4px; @@ -1244,7 +1226,15 @@ > [data-component="collapsible"] > [data-slot="collapsible-content"] { border: none; + border-inline-start: none; + margin-inline-start: 0; + padding-inline-start: 0; + padding-bottom: 0; background: transparent; + + &::before { + display: none; + } } > [data-component="collapsible"] > [data-slot="collapsible-trigger"][aria-expanded="true"] { diff --git a/packages/session-ui/src/components/tool-error-card.css b/packages/session-ui/src/components/tool-error-card.css index fbc7a7f4ea..cb6f2e91fd 100644 --- a/packages/session-ui/src/components/tool-error-card.css +++ b/packages/session-ui/src/components/tool-error-card.css @@ -17,6 +17,17 @@ > [data-component="collapsible"].tool-collapsible { gap: 0px; + + > [data-slot="collapsible-content"] { + border-inline-start: none; + margin-inline-start: 0; + padding-inline-start: 0; + padding-bottom: 0; + + &::before { + display: none; + } + } } > [data-component="collapsible"].tool-collapsible[data-open="true"] { diff --git a/packages/session-ui/src/tools/tool-renderer.tsx b/packages/session-ui/src/tools/tool-renderer.tsx index 68cef52994..9da862e317 100644 --- a/packages/session-ui/src/tools/tool-renderer.tsx +++ b/packages/session-ui/src/tools/tool-renderer.tsx @@ -434,9 +434,6 @@ function ExaOutput(props: { output?: string }) { return ( 0}>
-
-
-
{(url, index) => (