@tangle-network/sandbox-ui 0.5.2 → 0.6.0

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.
package/dist/chat.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ChatMessage
3
- } from "./chunk-5CEMHKBP.js";
3
+ } from "./chunk-GW4GRAWJ.js";
4
4
  import {
5
5
  AgentTimeline,
6
6
  ChatContainer,
@@ -8,15 +8,15 @@ import {
8
8
  MessageList,
9
9
  ThinkingIndicator,
10
10
  UserMessage
11
- } from "./chunk-R3IU37AW.js";
11
+ } from "./chunk-5F3VOGCT.js";
12
12
  import "./chunk-CNWVHQFY.js";
13
- import "./chunk-WC7QTWPN.js";
13
+ import "./chunk-LY32SP6X.js";
14
14
  import "./chunk-HRMUF35V.js";
15
- import "./chunk-NTSRY4GW.js";
15
+ import "./chunk-MJUDMVRU.js";
16
16
  import "./chunk-BX6AQMUS.js";
17
- import "./chunk-VBWY44UU.js";
17
+ import "./chunk-OVNLOE3Y.js";
18
18
  import "./chunk-JP725R4W.js";
19
- import "./chunk-H5XYSFYE.js";
19
+ import "./chunk-3HW53XTH.js";
20
20
  import "./chunk-TDYQBLL5.js";
21
21
  import "./chunk-TSE423UF.js";
22
22
  import "./chunk-RQHJBTEU.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  ToolCallGroup,
3
3
  ToolCallStep
4
- } from "./chunk-NTSRY4GW.js";
4
+ } from "./chunk-MJUDMVRU.js";
5
5
  import {
6
6
  Markdown
7
- } from "./chunk-H5XYSFYE.js";
7
+ } from "./chunk-3HW53XTH.js";
8
8
  import {
9
9
  cn
10
10
  } from "./chunk-RQHJBTEU.js";
@@ -116,8 +116,8 @@ var CodeBlock = memo(
116
116
  className: cn("group relative overflow-hidden rounded-lg border font-mono", bg, className),
117
117
  ...props,
118
118
  children: [
119
- language && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center justify-between border-b px-4 py-1.5", headerBg), children: [
120
- /* @__PURE__ */ jsx("span", { className: cn("text-[11px] font-mono font-medium uppercase tracking-widest", langColor), children: language }),
119
+ language && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center justify-between border-b px-3 py-1", headerBg), children: [
120
+ /* @__PURE__ */ jsx("span", { className: cn("text-[10px] font-mono font-medium uppercase tracking-widest", langColor), children: language }),
121
121
  children
122
122
  ] }),
123
123
  !language && children && /* @__PURE__ */ jsx("div", { className: "absolute right-2 top-2 z-10 flex items-center gap-2 opacity-0 transition-opacity group-hover:opacity-100", children }),
@@ -134,10 +134,10 @@ var CodeBlock = memo(
134
134
  },
135
135
  customStyle: {
136
136
  margin: 0,
137
- padding: "1rem",
137
+ padding: "var(--code-padding-y, 0.625rem) var(--code-padding-x, 0.75rem)",
138
138
  background: "transparent",
139
- fontSize: "0.8125rem",
140
- lineHeight: "1.65",
139
+ fontSize: "var(--code-font-size, 0.8125rem)",
140
+ lineHeight: "var(--code-line-height, 1.5)",
141
141
  overflowX: "auto"
142
142
  },
143
143
  codeTagProps: { style: { fontFamily: "var(--font-mono, 'JetBrains Mono', ui-monospace, monospace)" } },
@@ -165,7 +165,7 @@ var CopyButton = memo(({ text }) => {
165
165
  "button",
166
166
  {
167
167
  onClick: handleCopy,
168
- className: "flex items-center justify-center w-7 h-7 rounded-md bg-[var(--bg-section)] border border-[var(--border-subtle)] hover:border-[var(--border-default)] transition-colors",
168
+ className: "flex items-center justify-center w-6 h-6 rounded-md bg-[var(--bg-section)] border border-[var(--border-subtle)] hover:border-[var(--border-default)] transition-colors",
169
169
  title: "Copy to clipboard",
170
170
  children: copied ? /* @__PURE__ */ jsx(Check, { className: "w-3.5 h-3.5 text-[var(--brand-emerald)]" }) : /* @__PURE__ */ jsx(Copy, { className: "w-3.5 h-3.5 text-[var(--text-muted)]" })
171
171
  }
@@ -6,20 +6,20 @@ import {
6
6
  import {
7
7
  InlineThinkingItem,
8
8
  RunGroup
9
- } from "./chunk-WC7QTWPN.js";
9
+ } from "./chunk-LY32SP6X.js";
10
10
  import {
11
11
  ToolCallGroup,
12
12
  ToolCallStep
13
- } from "./chunk-NTSRY4GW.js";
13
+ } from "./chunk-MJUDMVRU.js";
14
14
  import {
15
15
  getToolDisplayMetadata
16
16
  } from "./chunk-BX6AQMUS.js";
17
17
  import {
18
18
  OpenUIArtifactRenderer
19
- } from "./chunk-VBWY44UU.js";
19
+ } from "./chunk-OVNLOE3Y.js";
20
20
  import {
21
21
  Markdown
22
- } from "./chunk-H5XYSFYE.js";
22
+ } from "./chunk-3HW53XTH.js";
23
23
  import {
24
24
  cn
25
25
  } from "./chunk-RQHJBTEU.js";
@@ -96,18 +96,15 @@ function ThinkingIndicator({ className }) {
96
96
  const interval = window.setInterval(() => setElapsed((current) => current + 1), 1e3);
97
97
  return () => window.clearInterval(interval);
98
98
  }, []);
99
- return /* @__PURE__ */ jsxs2("div", { className: cn("flex gap-3 px-4 py-3", className), children: [
100
- /* @__PURE__ */ jsx3("div", { className: "mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-lg bg-[var(--brand-glow)]/15 text-[var(--brand-glow)]", children: /* @__PURE__ */ jsxs2("div", { className: "flex gap-0.5", children: [
101
- /* @__PURE__ */ jsx3("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full bg-current", style: { animationDelay: "0ms" } }),
102
- /* @__PURE__ */ jsx3("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full bg-current", style: { animationDelay: "150ms" } }),
103
- /* @__PURE__ */ jsx3("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full bg-current", style: { animationDelay: "300ms" } })
104
- ] }) }),
105
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2", children: [
106
- /* @__PURE__ */ jsx3("span", { className: "text-sm text-[var(--text-muted)]", children: elapsed < 10 ? "Thinking..." : elapsed < 60 ? "Thinking deeply..." : "Still working..." }),
107
- elapsed > 5 && /* @__PURE__ */ jsxs2("span", { className: "text-xs tabular-nums text-[var(--text-muted)]", children: [
108
- elapsed,
109
- "s"
110
- ] })
99
+ return /* @__PURE__ */ jsxs2("div", { className: cn("flex items-center gap-2 px-3 py-1.5", className), children: [
100
+ /* @__PURE__ */ jsxs2("div", { className: "flex gap-[3px]", children: [
101
+ /* @__PURE__ */ jsx3("span", { className: "h-1 w-1 animate-bounce rounded-full bg-[var(--brand-glow)]", style: { animationDelay: "0ms" } }),
102
+ /* @__PURE__ */ jsx3("span", { className: "h-1 w-1 animate-bounce rounded-full bg-[var(--brand-glow)]", style: { animationDelay: "150ms" } }),
103
+ /* @__PURE__ */ jsx3("span", { className: "h-1 w-1 animate-bounce rounded-full bg-[var(--brand-glow)]", style: { animationDelay: "300ms" } })
104
+ ] }),
105
+ elapsed > 3 && /* @__PURE__ */ jsxs2("span", { className: "text-[11px] tabular-nums text-[var(--text-dim)]", children: [
106
+ elapsed,
107
+ "s"
111
108
  ] })
112
109
  ] });
113
110
  }
@@ -227,7 +224,7 @@ function AgentTimeline({
227
224
  className
228
225
  }) {
229
226
  if (items.length === 0 && !isThinking) {
230
- return emptyState ? /* @__PURE__ */ jsx4("div", { className: cn("flex h-full items-center justify-center p-8", className), children: emptyState }) : null;
227
+ return emptyState ? /* @__PURE__ */ jsx4("div", { className: cn("flex h-full items-center justify-center p-4", className), children: emptyState }) : null;
231
228
  }
232
229
  const renderedItems = isThinking ? [...items, { id: "__thinking__", kind: "custom", content: /* @__PURE__ */ jsx4(ThinkingIndicator, {}) }] : items;
233
230
  const timelineItems = renderedItems.filter((item) => !(item.kind === "message" && item.role === "user"));
@@ -467,8 +464,8 @@ function ChatInput({
467
464
  f.id
468
465
  ))
469
466
  ] }),
470
- /* @__PURE__ */ jsx5("div", { className: "rounded-[var(--radius-xl)] border border-[var(--border-default)] bg-[var(--depth-2)] shadow-[var(--shadow-card)]", children: /* @__PURE__ */ jsxs4("div", { className: "rounded-[var(--radius-xl)] px-3 py-3.5 transition-colors focus-within:border-[var(--border-accent)]", children: [
471
- /* @__PURE__ */ jsxs4("div", { className: "mb-2 flex items-center justify-between gap-3 px-1", children: [
467
+ /* @__PURE__ */ jsx5("div", { className: "rounded-[var(--radius-xl)] border border-[var(--border-default)] bg-[var(--depth-2)] shadow-[var(--shadow-card)]", children: /* @__PURE__ */ jsxs4("div", { className: "rounded-[var(--radius-xl)] px-3 py-[var(--chat-input-py)] transition-colors focus-within:border-[var(--border-accent)]", children: [
468
+ /* @__PURE__ */ jsxs4("div", { className: "mb-1.5 flex items-center justify-between gap-3 px-1", children: [
472
469
  /* @__PURE__ */ jsx5("div", { className: "text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--text-muted)]", children: "Agent Command Deck" }),
473
470
  /* @__PURE__ */ jsx5("div", { className: "text-[11px] text-[var(--text-muted)]", children: isStreaming ? "Streaming response" : "Ready for next instruction" })
474
471
  ] }),
@@ -534,7 +531,7 @@ function ChatInput({
534
531
  disabled: isStreaming || disabled,
535
532
  rows: 1,
536
533
  "aria-label": "Message input",
537
- className: "min-h-[36px] max-h-[160px] flex-1 resize-none bg-transparent text-[15px] leading-7 text-[var(--text-primary)] placeholder:text-[var(--text-muted)] disabled:opacity-50 focus-visible:outline-none"
534
+ className: "min-h-[32px] max-h-[120px] flex-1 resize-none bg-transparent text-[14px] leading-6 text-[var(--text-primary)] placeholder:text-[var(--text-muted)] disabled:opacity-50 focus-visible:outline-none"
538
535
  }
539
536
  ),
540
537
  isStreaming ? /* @__PURE__ */ jsx5(
@@ -865,8 +862,8 @@ var ChatContainer = memo3(
865
862
  "div",
866
863
  {
867
864
  ref: scrollRef,
868
- className: "flex-1 overflow-y-auto px-4 py-4 [scrollbar-gutter:stable]",
869
- children: messages.length === 0 ? /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxs5("div", { className: "max-w-md rounded-[var(--radius-xl)] border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.03),transparent)] px-6 py-8 text-center shadow-[var(--shadow-card)]", children: [
865
+ className: "flex-1 overflow-y-auto px-4 py-2 [scrollbar-gutter:stable]",
866
+ children: messages.length === 0 ? /* @__PURE__ */ jsx6("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxs5("div", { className: "max-w-md rounded-[var(--radius-xl)] border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.03),transparent)] px-5 py-5 text-center shadow-[var(--shadow-card)]", children: [
870
867
  /* @__PURE__ */ jsx6("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: "Start the filing workflow" }),
871
868
  /* @__PURE__ */ jsx6("div", { className: "mt-2 text-sm leading-relaxed text-[var(--text-muted)]", children: "Ask the agent to analyze documents, generate forms, explain a calculation, or review the current filing package." })
872
869
  ] }) }) : presentation === "timeline" ? /* @__PURE__ */ jsx6(AgentTimeline, { items: timeline.items, isThinking: timeline.showThinking }) : /* @__PURE__ */ jsx6("div", { className: "mx-auto flex w-full max-w-5xl flex-col gap-3", children: /* @__PURE__ */ jsx6(
@@ -370,16 +370,16 @@ function CreditBalance({
370
370
  className
371
371
  }) {
372
372
  const [topUpValue, setTopUpValue] = React2.useState("50.00");
373
- return /* @__PURE__ */ jsxs3("div", { className: cn("bg-[var(--depth-2)] p-8 rounded-xl flex flex-col justify-between border border-[var(--border-subtle)]", className), children: [
373
+ return /* @__PURE__ */ jsxs3("div", { className: cn("bg-[var(--depth-2)] p-5 rounded-xl flex flex-col justify-between border border-[var(--border-subtle)]", className), children: [
374
374
  /* @__PURE__ */ jsxs3("div", { children: [
375
375
  /* @__PURE__ */ jsx4("h3", { className: "text-sm font-semibold text-[var(--text-muted)] uppercase tracking-widest mb-2", children: "Available Credits" }),
376
- /* @__PURE__ */ jsxs3("div", { className: "text-5xl font-extrabold text-[var(--brand-cool)] tracking-tighter mb-3", children: [
376
+ /* @__PURE__ */ jsxs3("div", { className: "text-4xl font-extrabold text-[var(--brand-cool)] tracking-tighter mb-2", children: [
377
377
  "$",
378
378
  amount.toFixed(2)
379
379
  ] }),
380
380
  /* @__PURE__ */ jsx4("p", { className: "text-sm text-[var(--text-muted)] leading-relaxed", children: description })
381
381
  ] }),
382
- onTopUp && /* @__PURE__ */ jsxs3("div", { className: "space-y-3 mt-8", children: [
382
+ onTopUp && /* @__PURE__ */ jsxs3("div", { className: "space-y-2.5 mt-5", children: [
383
383
  /* @__PURE__ */ jsxs3("div", { className: "bg-[var(--depth-1)] border border-[var(--border-subtle)] p-1 rounded-lg flex items-center", children: [
384
384
  /* @__PURE__ */ jsx4(
385
385
  "input",
@@ -465,17 +465,17 @@ import { Check } from "lucide-react";
465
465
  import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
466
466
  function PlanCards({ plans, className }) {
467
467
  return /* @__PURE__ */ jsxs5("section", { className, children: [
468
- /* @__PURE__ */ jsx6("h2", { className: "text-2xl font-bold text-[var(--text-primary)] tracking-tight mb-8 px-2", children: "Subscription Plans" }),
468
+ /* @__PURE__ */ jsx6("h2", { className: "text-2xl font-bold text-[var(--text-primary)] tracking-tight mb-5 px-2", children: "Subscription Plans" }),
469
469
  /* @__PURE__ */ jsx6("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: plans.map((plan) => /* @__PURE__ */ jsxs5(
470
470
  "div",
471
471
  {
472
472
  className: cn(
473
- "p-8 rounded-xl transition-all relative overflow-hidden border",
473
+ "p-5 rounded-xl transition-all relative overflow-hidden border",
474
474
  plan.popular ? "bg-[var(--depth-3)] border-[var(--border-accent)]" : "bg-[var(--depth-2)] border-[var(--border-subtle)] hover:bg-[var(--depth-3)] hover:border-[var(--border-default)]"
475
475
  ),
476
476
  children: [
477
477
  plan.popular && /* @__PURE__ */ jsx6("div", { className: "absolute top-0 right-0 bg-[var(--accent-surface-soft)] border-l border-b border-[var(--border-accent)] px-4 py-1 text-[10px] font-bold text-[var(--accent-text)] uppercase tracking-widest rounded-bl-lg", children: "Popular" }),
478
- /* @__PURE__ */ jsxs5("div", { className: "mb-6", children: [
478
+ /* @__PURE__ */ jsxs5("div", { className: "mb-4", children: [
479
479
  /* @__PURE__ */ jsx6("div", { className: cn("text-xs font-mono uppercase tracking-widest mb-2", plan.popular ? "text-[var(--brand-cool)]" : "text-[var(--text-muted)]"), children: plan.name }),
480
480
  /* @__PURE__ */ jsxs5("div", { className: "text-3xl font-bold text-[var(--text-primary)]", children: [
481
481
  "$",
@@ -486,7 +486,7 @@ function PlanCards({ plans, className }) {
486
486
  ] })
487
487
  ] })
488
488
  ] }),
489
- /* @__PURE__ */ jsx6("ul", { className: "space-y-3 mb-8 text-sm text-[var(--text-muted)]", children: plan.features.map((f, i) => /* @__PURE__ */ jsxs5("li", { className: "flex items-center gap-2", children: [
489
+ /* @__PURE__ */ jsx6("ul", { className: "space-y-2 mb-5 text-sm text-[var(--text-muted)]", children: plan.features.map((f, i) => /* @__PURE__ */ jsxs5("li", { className: "flex items-center gap-2", children: [
490
490
  /* @__PURE__ */ jsx6(Check, { className: "h-3.5 w-3.5 text-[var(--brand-cool)] shrink-0" }),
491
491
  f.text
492
492
  ] }, i)) }),
@@ -688,8 +688,8 @@ function DashboardLayoutInner({
688
688
  }
689
689
  ),
690
690
  /* @__PURE__ */ jsx7(Sidebar, { className: cn("hidden lg:flex", sidebarClassName), children: sidebarContent }),
691
- /* @__PURE__ */ jsx7(SidebarContent, { className: cn("pt-20 px-8 pb-12 hidden lg:block", contentClassName), children }),
692
- /* @__PURE__ */ jsx7("main", { className: cn("pt-20 px-8 pb-12 min-h-screen lg:hidden", contentClassName), children }),
691
+ /* @__PURE__ */ jsx7(SidebarContent, { className: cn("pt-16 px-6 pb-8 hidden lg:block", contentClassName), children }),
692
+ /* @__PURE__ */ jsx7("main", { className: cn("pt-16 px-6 pb-8 min-h-screen lg:hidden", contentClassName), children }),
693
693
  footer
694
694
  ] });
695
695
  }
@@ -707,21 +707,19 @@ function getBarColor(percent) {
707
707
  function ResourceMeter({ label, value, max = 100, unit, icon, className }) {
708
708
  const percent = max > 0 ? Math.min(value / max * 100, 100) : 0;
709
709
  const barColor = getBarColor(percent);
710
- return /* @__PURE__ */ jsxs7("div", { className: cn("space-y-1.5", className), children: [
711
- /* @__PURE__ */ jsxs7("div", { className: "flex justify-between text-[10px] font-mono text-[var(--text-muted)] uppercase tracking-wide", children: [
712
- /* @__PURE__ */ jsxs7("span", { className: "flex items-center gap-1 text-[var(--text-secondary)]", children: [
713
- icon,
714
- label
715
- ] }),
716
- /* @__PURE__ */ jsx8("span", { className: "tabular-nums", children: unit ? `${value}${unit} / ${max}${unit}` : `${Math.round(percent)}%` })
710
+ return /* @__PURE__ */ jsxs7("div", { className: cn("flex items-center gap-3", className), children: [
711
+ /* @__PURE__ */ jsxs7("span", { className: "flex shrink-0 items-center gap-1 text-[10px] font-mono text-[var(--text-secondary)] uppercase tracking-wide", children: [
712
+ icon,
713
+ label
717
714
  ] }),
718
- /* @__PURE__ */ jsx8("div", { className: "h-1.5 w-full bg-[var(--depth-1)] rounded-full overflow-hidden", children: /* @__PURE__ */ jsx8(
715
+ /* @__PURE__ */ jsx8("div", { className: "h-1.5 min-w-0 flex-1 bg-[var(--depth-1)] rounded-full overflow-hidden", children: /* @__PURE__ */ jsx8(
719
716
  "div",
720
717
  {
721
718
  className: cn("h-full rounded-full transition-all duration-500", barColor),
722
719
  style: { width: `${percent}%` }
723
720
  }
724
- ) })
721
+ ) }),
722
+ /* @__PURE__ */ jsx8("span", { className: "shrink-0 text-[10px] font-mono tabular-nums text-[var(--text-muted)]", children: unit ? `${value}${unit}/${max}${unit}` : `${Math.round(percent)}%` })
725
723
  ] });
726
724
  }
727
725
 
@@ -870,7 +868,7 @@ function NewSandboxCard({ onClick, className }) {
870
868
  type: "button",
871
869
  onClick,
872
870
  className: cn(
873
- "border-2 border-dashed border-[var(--border-subtle)] rounded-xl p-6 flex flex-col items-center justify-center text-center group cursor-pointer hover:border-[var(--border-accent)] hover:bg-[var(--accent-surface-soft)] transition-all duration-300 w-full min-h-[200px]",
871
+ "border-2 border-dashed border-[var(--border-subtle)] rounded-xl p-5 flex flex-col items-center justify-center text-center group cursor-pointer hover:border-[var(--border-accent)] hover:bg-[var(--accent-surface-soft)] transition-all duration-300 w-full min-h-[160px]",
874
872
  className
875
873
  ),
876
874
  children: [
@@ -1278,7 +1276,7 @@ import {
1278
1276
  X,
1279
1277
  XCircle
1280
1278
  } from "lucide-react";
1281
- import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
1279
+ import { Fragment as Fragment6, jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
1282
1280
  var statusConfig2 = {
1283
1281
  pending: {
1284
1282
  icon: Clock,
@@ -1362,40 +1360,38 @@ function VariantList({
1362
1360
  isActioning,
1363
1361
  className
1364
1362
  }) {
1365
- return /* @__PURE__ */ jsx13("div", { className: `space-y-3 ${className || ""}`, children: variants.map((variant) => {
1363
+ return /* @__PURE__ */ jsx13("div", { className: `space-y-2 ${className || ""}`, children: variants.map((variant) => {
1366
1364
  const status = statusConfig2[variant.status];
1367
1365
  const StatusIcon = status.icon;
1368
1366
  const isSelected = variant.id === selectedId;
1369
1367
  return /* @__PURE__ */ jsxs12(
1370
1368
  "div",
1371
1369
  {
1372
- className: `cursor-pointer rounded-lg border p-4 transition-colors ${isSelected ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)]" : "border-[var(--border-subtle)] bg-[var(--depth-2)] hover:border-[var(--border-default)] hover:bg-[var(--depth-3)]"}`,
1370
+ className: `cursor-pointer rounded-lg border px-3 py-2.5 transition-colors ${isSelected ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)]" : "border-[var(--border-subtle)] bg-[var(--depth-2)] hover:border-[var(--border-default)] hover:bg-[var(--depth-3)]"}`,
1373
1371
  onClick: () => onSelect?.(variant.id),
1374
1372
  children: [
1375
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-between", children: [
1376
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
1377
- /* @__PURE__ */ jsxs12(Badge, { className: `${status.bg} ${status.border} ${status.color}`, children: [
1378
- /* @__PURE__ */ jsx13(
1379
- StatusIcon,
1380
- {
1381
- className: `mr-1 h-3 w-3 ${status.animate ? "animate-spin" : ""}`
1382
- }
1383
- ),
1384
- status.label
1385
- ] }),
1386
- /* @__PURE__ */ jsx13("span", { className: "font-medium text-[var(--text-primary)]", children: variant.label }),
1387
- variant.sublabel && /* @__PURE__ */ jsxs12("span", { className: "text-sm text-[var(--text-muted)]", children: [
1388
- "(",
1389
- variant.sublabel,
1390
- ")"
1391
- ] }),
1392
- variant.durationMs && /* @__PURE__ */ jsxs12("span", { className: "flex items-center gap-1 text-sm text-[var(--text-muted)]", children: [
1393
- /* @__PURE__ */ jsx13(Timer, { className: "h-3 w-3" }),
1394
- (variant.durationMs / 1e3).toFixed(2),
1395
- "s"
1396
- ] })
1373
+ /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
1374
+ /* @__PURE__ */ jsxs12(Badge, { className: `shrink-0 ${status.bg} ${status.border} ${status.color}`, children: [
1375
+ /* @__PURE__ */ jsx13(
1376
+ StatusIcon,
1377
+ {
1378
+ className: `mr-1 h-3 w-3 ${status.animate ? "animate-spin" : ""}`
1379
+ }
1380
+ ),
1381
+ status.label
1382
+ ] }),
1383
+ /* @__PURE__ */ jsx13("span", { className: "truncate text-sm font-medium text-[var(--text-primary)]", children: variant.label }),
1384
+ variant.sublabel && /* @__PURE__ */ jsxs12("span", { className: "shrink-0 text-xs text-[var(--text-muted)]", children: [
1385
+ "(",
1386
+ variant.sublabel,
1387
+ ")"
1388
+ ] }),
1389
+ variant.durationMs && /* @__PURE__ */ jsxs12("span", { className: "flex shrink-0 items-center gap-1 text-xs text-[var(--text-muted)]", children: [
1390
+ /* @__PURE__ */ jsx13(Timer, { className: "h-3 w-3" }),
1391
+ (variant.durationMs / 1e3).toFixed(1),
1392
+ "s"
1397
1393
  ] }),
1398
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
1394
+ /* @__PURE__ */ jsxs12("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
1399
1395
  variant.outcome && /* @__PURE__ */ jsx13(
1400
1396
  Badge,
1401
1397
  {
@@ -1403,20 +1399,20 @@ function VariantList({
1403
1399
  children: outcomeConfig[variant.outcome].label
1404
1400
  }
1405
1401
  ),
1406
- variant.status === "completed" && variant.outcome === "pending_review" && onAccept && onReject && /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
1402
+ variant.status === "completed" && variant.outcome === "pending_review" && onAccept && onReject && /* @__PURE__ */ jsxs12(Fragment6, { children: [
1407
1403
  /* @__PURE__ */ jsxs12(
1408
1404
  Button,
1409
1405
  {
1410
1406
  variant: "outline",
1411
1407
  size: "sm",
1412
- className: "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)] hover:bg-[var(--surface-success-border)]",
1408
+ className: "h-7 border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] px-2 text-xs text-[var(--surface-success-text)] hover:bg-[var(--surface-success-border)]",
1413
1409
  onClick: (e) => {
1414
1410
  e.stopPropagation();
1415
1411
  onAccept(variant.id);
1416
1412
  },
1417
1413
  disabled: isActioning === variant.id,
1418
1414
  children: [
1419
- /* @__PURE__ */ jsx13(Check3, { className: "mr-1 h-4 w-4" }),
1415
+ /* @__PURE__ */ jsx13(Check3, { className: "mr-1 h-3 w-3" }),
1420
1416
  "Accept"
1421
1417
  ]
1422
1418
  }
@@ -1426,14 +1422,14 @@ function VariantList({
1426
1422
  {
1427
1423
  variant: "outline",
1428
1424
  size: "sm",
1429
- className: "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)] hover:bg-[var(--surface-danger-border)]",
1425
+ className: "h-7 border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-2 text-xs text-[var(--surface-danger-text)] hover:bg-[var(--surface-danger-border)]",
1430
1426
  onClick: (e) => {
1431
1427
  e.stopPropagation();
1432
1428
  onReject(variant.id);
1433
1429
  },
1434
1430
  disabled: isActioning === variant.id,
1435
1431
  children: [
1436
- /* @__PURE__ */ jsx13(X, { className: "mr-1 h-4 w-4" }),
1432
+ /* @__PURE__ */ jsx13(X, { className: "mr-1 h-3 w-3" }),
1437
1433
  "Reject"
1438
1434
  ]
1439
1435
  }
@@ -1444,18 +1440,18 @@ function VariantList({
1444
1440
  {
1445
1441
  variant: "ghost",
1446
1442
  size: "sm",
1447
- className: "text-[var(--text-muted)] hover:text-[var(--text-primary)]",
1443
+ className: "h-7 w-7 p-0 text-[var(--text-muted)] hover:text-[var(--text-primary)]",
1448
1444
  onClick: (e) => {
1449
1445
  e.stopPropagation();
1450
1446
  window.open(variant.detailsUrl, "_blank");
1451
1447
  },
1452
- children: /* @__PURE__ */ jsx13(ExternalLink2, { className: "h-4 w-4" })
1448
+ children: /* @__PURE__ */ jsx13(ExternalLink2, { className: "h-3.5 w-3.5" })
1453
1449
  }
1454
1450
  )
1455
1451
  ] })
1456
1452
  ] }),
1457
- variant.error && /* @__PURE__ */ jsx13("p", { className: "mt-2 text-sm text-[var(--surface-danger-text)]", children: variant.error }),
1458
- variant.summary && /* @__PURE__ */ jsx13("p", { className: "mt-2 line-clamp-2 text-sm text-[var(--text-muted)]", children: variant.summary })
1453
+ variant.error && /* @__PURE__ */ jsx13("p", { className: "mt-1.5 text-xs text-[var(--surface-danger-text)]", children: variant.error }),
1454
+ variant.summary && /* @__PURE__ */ jsx13("p", { className: "mt-1.5 line-clamp-2 text-xs text-[var(--text-muted)]", children: variant.summary })
1459
1455
  ]
1460
1456
  },
1461
1457
  variant.id
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-W4LM3QYZ.js";
10
10
  import {
11
11
  Markdown
12
- } from "./chunk-H5XYSFYE.js";
12
+ } from "./chunk-3HW53XTH.js";
13
13
  import {
14
14
  cn
15
15
  } from "./chunk-RQHJBTEU.js";
@@ -933,7 +933,7 @@ function MarkdownDocumentEditor({
933
933
  "div",
934
934
  {
935
935
  className: cn(
936
- "flex min-h-[24rem] w-full flex-col overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-input)]",
936
+ "flex min-h-[14rem] w-full flex-col overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-input)]",
937
937
  className
938
938
  ),
939
939
  children: [
@@ -1213,7 +1213,7 @@ function CollaborativeDocumentSurface({
1213
1213
  placeholder,
1214
1214
  autoFocus,
1215
1215
  readOnly,
1216
- className: cn("h-full min-h-[28rem]", className),
1216
+ className: cn("h-full min-h-[16rem]", className),
1217
1217
  onUpdate: (editor) => {
1218
1218
  onChange?.(normalizeMarkdown(htmlToMarkdown(editor.getHTML())));
1219
1219
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Markdown
3
- } from "./chunk-H5XYSFYE.js";
3
+ } from "./chunk-3HW53XTH.js";
4
4
  import {
5
5
  cn
6
6
  } from "./chunk-RQHJBTEU.js";
@@ -40,7 +40,8 @@ function ChatMessage({
40
40
  "div",
41
41
  {
42
42
  className: cn(
43
- "min-w-0 max-w-[85%] space-y-1.5 rounded-[var(--radius-xl)] border px-4 py-3",
43
+ "min-w-0 max-w-[85%] space-y-1 rounded-[var(--radius-lg)] border",
44
+ "px-[var(--chat-message-px)] py-[var(--chat-message-py)]",
44
45
  isUser ? "border-[var(--border-accent)] bg-[var(--depth-3)]" : "border-[var(--border-subtle)] bg-[var(--depth-2)]"
45
46
  ),
46
47
  children: [
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-W4LM3QYZ.js";
4
4
  import {
5
5
  Markdown
6
- } from "./chunk-H5XYSFYE.js";
6
+ } from "./chunk-3HW53XTH.js";
7
7
  import {
8
8
  cn
9
9
  } from "./chunk-RQHJBTEU.js";
@@ -484,7 +484,7 @@ import { lazy, Suspense } from "react";
484
484
  import { Download as Download2, X as X3 } from "lucide-react";
485
485
  import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
486
486
  var LazyDocumentEditorPane = lazy(async () => {
487
- const module = await import("./document-editor-pane-JNXPANWM.js");
487
+ const module = await import("./document-editor-pane-DWWUTTTZ.js");
488
488
  return { default: module.DocumentEditorPane };
489
489
  });
490
490
  function FileArtifactPane({
@@ -556,7 +556,7 @@ function FileArtifactPane({
556
556
  className,
557
557
  tabs: paneTabs,
558
558
  headerActions,
559
- children: /* @__PURE__ */ jsx4("div", { className: "flex min-h-[20rem] items-center justify-center rounded-[var(--radius-lg)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] text-sm text-[var(--text-muted)]", children: "Loading editor\u2026" })
559
+ children: /* @__PURE__ */ jsx4("div", { className: "flex min-h-[12rem] items-center justify-center rounded-[var(--radius-lg)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] text-sm text-[var(--text-muted)]", children: "Loading editor\u2026" })
560
560
  }
561
561
  ),
562
562
  children: /* @__PURE__ */ jsx4(
@@ -11,7 +11,7 @@ import {
11
11
  CodeBlock,
12
12
  CopyButton,
13
13
  Markdown
14
- } from "./chunk-H5XYSFYE.js";
14
+ } from "./chunk-3HW53XTH.js";
15
15
  import {
16
16
  cn
17
17
  } from "./chunk-RQHJBTEU.js";
@@ -43,15 +43,15 @@ function PreviewCard({
43
43
  className
44
44
  ),
45
45
  children: [
46
- /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-4 py-3", children: [
47
- /* @__PURE__ */ jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--radius-md)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: icon }),
48
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
49
- /* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: title }),
50
- description ? /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-[var(--text-muted)]", children: description }) : null
51
- ] }),
46
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-[var(--tool-card-px)] py-[var(--tool-card-py)]", children: [
47
+ /* @__PURE__ */ jsx("div", { className: "flex h-[var(--tool-icon-size)] w-[var(--tool-icon-size)] shrink-0 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: icon }),
48
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
49
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-[var(--text-primary)]", children: title }),
50
+ description ? /* @__PURE__ */ jsx("span", { className: "truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: description }) : null
51
+ ] }) }),
52
52
  meta ? /* @__PURE__ */ jsx("div", { className: "shrink-0 text-xs text-[var(--text-muted)]", children: meta }) : null
53
53
  ] }),
54
- children ? /* @__PURE__ */ jsx("div", { className: "space-y-3 px-4 py-4", children }) : null
54
+ children ? /* @__PURE__ */ jsx("div", { className: "space-y-2 px-[var(--tool-card-px)] py-[var(--tool-card-py)]", children }) : null
55
55
  ]
56
56
  }
57
57
  );
@@ -64,7 +64,7 @@ function PreviewEmpty({
64
64
  "div",
65
65
  {
66
66
  className: cn(
67
- "rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-4 text-sm text-[var(--text-muted)]",
67
+ "rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2.5 text-xs text-[var(--text-muted)]",
68
68
  className
69
69
  ),
70
70
  children: label
@@ -75,7 +75,7 @@ function PreviewError({ error }) {
75
75
  return /* @__PURE__ */ jsx("div", { className: "rounded-[var(--radius-md)] border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-3 py-3 text-sm text-[var(--surface-danger-text)]", children: error });
76
76
  }
77
77
  function PreviewLoading({ label = "Running\u2026" }) {
78
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-3 text-sm text-[var(--text-muted)]", children: [
78
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2 text-xs text-[var(--text-muted)]", children: [
79
79
  /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin text-[var(--brand-cool)]" }),
80
80
  /* @__PURE__ */ jsx("span", { children: label })
81
81
  ] });
@@ -687,14 +687,14 @@ var ExpandedToolDetail = memo8(({ part }) => {
687
687
  }
688
688
  if (meta.displayVariant === "read-file") {
689
689
  return /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] shadow-[var(--shadow-card)]", children: [
690
- /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-4 py-3", children: [
691
- /* @__PURE__ */ jsx9("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--radius-md)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: /* @__PURE__ */ jsx9(FileText2, { className: "h-4 w-4" }) }),
692
- /* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
693
- /* @__PURE__ */ jsx9("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: "Read file" }),
694
- meta.targetPath ? /* @__PURE__ */ jsx9("div", { className: "mt-1 text-xs text-[var(--text-muted)]", children: meta.targetPath }) : null
690
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2.5 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-3 py-2", children: [
691
+ /* @__PURE__ */ jsx9("div", { className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: /* @__PURE__ */ jsx9(FileText2, { className: "h-3.5 w-3.5" }) }),
692
+ /* @__PURE__ */ jsxs9("div", { className: "min-w-0 flex items-center gap-2", children: [
693
+ /* @__PURE__ */ jsx9("span", { className: "text-xs font-semibold text-[var(--text-primary)]", children: "Read file" }),
694
+ meta.targetPath ? /* @__PURE__ */ jsx9("span", { className: "truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: meta.targetPath }) : null
695
695
  ] })
696
696
  ] }),
697
- /* @__PURE__ */ jsxs9("div", { className: "space-y-3 px-4 py-4", children: [
697
+ /* @__PURE__ */ jsxs9("div", { className: "space-y-2 px-3 py-2.5", children: [
698
698
  typeof output === "string" ? /* @__PURE__ */ jsx9(CodeBlock, { code: output, language: langFromPath(meta.targetPath) ?? "text", className: "rounded-[var(--radius-md)]" }) : /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-4 text-sm text-[var(--text-muted)]", children: "No readable file content was returned." }),
699
699
  error ? /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-3 py-3 text-sm text-[var(--surface-danger-text)]", children: error }) : null
700
700
  ] })
@@ -822,7 +822,7 @@ var InlineToolItem = memo9(
822
822
  className
823
823
  ),
824
824
  children: [
825
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2.5 px-3 py-2", children: [
825
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2 px-2.5 py-1.5", children: [
826
826
  /* @__PURE__ */ jsx11("div", { className: cn(
827
827
  "shrink-0",
828
828
  isRunning && "text-[var(--brand-cool)]",
@@ -830,18 +830,14 @@ var InlineToolItem = memo9(
830
830
  isError && "text-[var(--surface-danger-text)]",
831
831
  !isRunning && !isComplete && !isError && "text-[var(--text-muted)]"
832
832
  ), children: isRunning ? /* @__PURE__ */ jsx11(Loader24, { className: "h-3.5 w-3.5 animate-spin" }) : isComplete ? /* @__PURE__ */ jsx11(CheckCircle2, { className: "h-3.5 w-3.5" }) : isError ? /* @__PURE__ */ jsx11(AlertCircle2, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx11(DefaultIcon, { className: "h-3.5 w-3.5" }) }),
833
- /* @__PURE__ */ jsxs10("div", { className: "min-w-0 flex-1", children: [
834
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2", children: [
835
- /* @__PURE__ */ jsx11("span", { className: "truncate text-sm font-medium text-[var(--text-primary)]", children: meta.title }),
836
- isError ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.06em] text-[var(--surface-danger-text)]", children: "Failed" }) : null,
837
- isRunning ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--brand-cool)]/10 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.06em] text-[var(--brand-cool)]", children: "Running" }) : null
838
- ] }),
839
- meta.description ? /* @__PURE__ */ jsx11("div", { className: "mt-1 truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: meta.description }) : null
840
- ] }),
841
- /* @__PURE__ */ jsxs10("div", { className: "flex shrink-0 items-center gap-2", children: [
833
+ /* @__PURE__ */ jsx11("span", { className: "truncate text-xs font-medium text-[var(--text-primary)]", children: meta.title }),
834
+ meta.description ? /* @__PURE__ */ jsx11("span", { className: "hidden truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)] sm:inline", children: meta.description }) : null,
835
+ /* @__PURE__ */ jsxs10("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
842
836
  isRunning && startTime ? /* @__PURE__ */ jsx11(LiveDuration, { startTime }) : null,
843
- !isRunning && durationMs != null ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-subtle)] bg-[var(--bg-section)] px-2 py-0.5 text-[11px] font-[var(--font-mono)] text-[var(--text-muted)]", children: formatDuration(durationMs) }) : null,
844
- open ? /* @__PURE__ */ jsx11(ChevronDown2, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx11(ChevronRight2, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" })
837
+ !isRunning && durationMs != null ? /* @__PURE__ */ jsx11("span", { className: "text-[10px] font-[var(--font-mono)] tabular-nums text-[var(--text-muted)]", children: formatDuration(durationMs) }) : null,
838
+ isError ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-1.5 py-px text-[10px] font-semibold uppercase text-[var(--surface-danger-text)]", children: "Failed" }) : null,
839
+ isRunning ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--brand-cool)]/10 px-1.5 py-px text-[10px] font-semibold uppercase text-[var(--brand-cool)]", children: "Running" }) : null,
840
+ open ? /* @__PURE__ */ jsx11(ChevronDown2, { className: "h-3 w-3 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx11(ChevronRight2, { className: "h-3 w-3 text-[var(--text-muted)]" })
845
841
  ] })
846
842
  ] }),
847
843
  errorText && !open ? /* @__PURE__ */ jsx11("div", { className: "border-t border-[var(--border-subtle)] px-3 py-2 text-xs text-red-200", children: errorText }) : null
@@ -1001,17 +997,14 @@ function CategoryBadges({ categories }) {
1001
997
  [categories]
1002
998
  );
1003
999
  if (sorted.length === 0) return null;
1004
- return /* @__PURE__ */ jsx13("div", { className: "flex items-center gap-1.5", children: sorted.map((cat) => {
1000
+ return /* @__PURE__ */ jsx13("div", { className: "flex items-center gap-1", children: sorted.map((cat) => {
1005
1001
  const Icon = CATEGORY_ICON_MAP[cat] ?? Settings2;
1006
- return /* @__PURE__ */ jsxs12(
1002
+ return /* @__PURE__ */ jsx13(
1007
1003
  "span",
1008
1004
  {
1009
1005
  title: cat,
1010
- className: "flex h-7 items-center gap-1 rounded-full border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.04),transparent)] px-2 text-[11px] uppercase tracking-[0.12em] text-[var(--text-muted)]",
1011
- children: [
1012
- /* @__PURE__ */ jsx13(Icon, { className: "h-3.5 w-3.5" }),
1013
- /* @__PURE__ */ jsx13("span", { children: cat })
1014
- ]
1006
+ className: "flex h-5 w-5 items-center justify-center rounded border border-[var(--border-subtle)] text-[var(--text-muted)]",
1007
+ children: /* @__PURE__ */ jsx13(Icon, { className: "h-3 w-3" })
1015
1008
  },
1016
1009
  cat
1017
1010
  );
@@ -1077,40 +1070,36 @@ var RunGroup = memo11(
1077
1070
  "button",
1078
1071
  {
1079
1072
  className: cn(
1080
- "w-full rounded-[var(--radius-xl)] border px-4 py-3.5 text-left transition-colors",
1073
+ "w-full rounded-[var(--radius-lg)] border px-3 py-2 text-left transition-colors",
1081
1074
  "bg-[var(--depth-2)] hover:bg-[var(--depth-3)]",
1082
1075
  collapsed ? branding.borderClass : "border-[var(--border-subtle)]",
1083
1076
  branding.bgClass
1084
1077
  ),
1085
- children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
1078
+ children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2.5", children: [
1086
1079
  /* @__PURE__ */ jsx13(
1087
1080
  "div",
1088
1081
  {
1089
1082
  className: cn(
1090
- "flex h-11 w-11 shrink-0 items-center justify-center rounded-[calc(var(--radius-lg)+2px)] border bg-[var(--accent-surface-soft)] shadow-[var(--shadow-accent)]",
1083
+ "flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-md)] border bg-[var(--accent-surface-soft)]",
1091
1084
  branding.borderClass
1092
1085
  ),
1093
- children: /* @__PURE__ */ jsx13(Bot2, { className: cn("h-4 w-4", branding.accentClass) })
1086
+ children: /* @__PURE__ */ jsx13(Bot2, { className: cn("h-3.5 w-3.5", branding.accentClass) })
1094
1087
  }
1095
1088
  ),
1096
- /* @__PURE__ */ jsxs12("div", { className: "min-w-0 flex-1", children: [
1097
- /* @__PURE__ */ jsxs12("div", { className: "flex flex-wrap items-center gap-2", children: [
1098
- /* @__PURE__ */ jsx13("span", { className: cn("text-sm font-semibold tracking-[0.01em]", branding.textClass), children: branding.label }),
1099
- isStreaming ? /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--accent-text)]", children: [
1100
- /* @__PURE__ */ jsx13(Loader25, { className: "h-3 w-3 animate-spin" }),
1101
- "Running"
1102
- ] }) : /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.04),transparent)] px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--text-muted)]", children: [
1103
- /* @__PURE__ */ jsx13(Sparkles, { className: "h-3 w-3" }),
1104
- "Complete"
1105
- ] })
1089
+ /* @__PURE__ */ jsx13("span", { className: cn("text-xs font-semibold", branding.textClass), children: branding.label }),
1090
+ renderSummary(run) ? /* @__PURE__ */ jsx13("span", { className: "text-[11px] text-[var(--text-muted)]", children: renderSummary(run) }) : null,
1091
+ collapsed && run.summaryText ? /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate text-[11px] text-[var(--text-secondary)]", children: run.summaryText }) : null,
1092
+ /* @__PURE__ */ jsxs12("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
1093
+ /* @__PURE__ */ jsx13(CategoryBadges, { categories: stats.toolCategories }),
1094
+ isStreaming ? /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-2 py-px text-[10px] font-semibold uppercase text-[var(--accent-text)]", children: [
1095
+ /* @__PURE__ */ jsx13(Loader25, { className: "h-2.5 w-2.5 animate-spin" }),
1096
+ "Running"
1097
+ ] }) : /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-subtle)] px-2 py-px text-[10px] font-semibold uppercase text-[var(--text-muted)]", children: [
1098
+ /* @__PURE__ */ jsx13(Sparkles, { className: "h-2.5 w-2.5" }),
1099
+ "Done"
1106
1100
  ] }),
1107
- /* @__PURE__ */ jsxs12("div", { className: "mt-1 flex flex-wrap items-center gap-2 text-xs text-[var(--text-muted)]", children: [
1108
- renderSummary(run) ? /* @__PURE__ */ jsx13("span", { children: renderSummary(run) }) : null,
1109
- collapsed && run.summaryText ? /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate text-[var(--text-secondary)]", children: run.summaryText }) : null
1110
- ] })
1111
- ] }),
1112
- /* @__PURE__ */ jsx13(CategoryBadges, { categories: stats.toolCategories }),
1113
- !collapsed ? /* @__PURE__ */ jsx13(ChevronDown4, { className: "h-4 w-4 shrink-0 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx13(ChevronRight4, { className: "h-4 w-4 shrink-0 text-[var(--text-muted)]" })
1101
+ !collapsed ? /* @__PURE__ */ jsx13(ChevronDown4, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx13(ChevronRight4, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" })
1102
+ ] })
1114
1103
  ] })
1115
1104
  }
1116
1105
  ) }),
@@ -1121,7 +1110,7 @@ var RunGroup = memo11(
1121
1110
  "div",
1122
1111
  {
1123
1112
  className: cn(
1124
- "mt-2 space-y-3 rounded-[calc(var(--radius-xl)+2px)] border border-[var(--border-subtle)] p-3.5 shadow-[var(--shadow-card)]",
1113
+ "mt-1.5 space-y-1.5 rounded-[var(--radius-lg)] border border-[var(--border-subtle)] p-2 shadow-[var(--shadow-card)]",
1125
1114
  branding.containerBgClass
1126
1115
  ),
1127
1116
  children: allParts.map(({ part, msgId, index }, partIndex) => {
@@ -1156,7 +1145,7 @@ var RunGroup = memo11(
1156
1145
  return /* @__PURE__ */ jsx13(
1157
1146
  "div",
1158
1147
  {
1159
- className: "rounded-[calc(var(--radius-lg)+2px)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-4 py-4",
1148
+ className: "rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-3 py-2.5",
1160
1149
  children: /* @__PURE__ */ jsx13(Markdown, { children: part.text })
1161
1150
  },
1162
1151
  key
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CodeBlock
3
- } from "./chunk-H5XYSFYE.js";
3
+ } from "./chunk-3HW53XTH.js";
4
4
  import {
5
5
  cn
6
6
  } from "./chunk-RQHJBTEU.js";
@@ -116,7 +116,7 @@ function ToolCallStep({
116
116
  onClick: () => hasExpandable && setExpanded(!expanded),
117
117
  disabled: !hasExpandable,
118
118
  className: cn(
119
- "flex w-full items-center gap-3 px-3 py-3 text-left text-sm",
119
+ "flex w-full items-center gap-2.5 px-3 py-2 text-left text-sm",
120
120
  hasExpandable && "cursor-pointer"
121
121
  ),
122
122
  children: [
@@ -124,12 +124,12 @@ function ToolCallStep({
124
124
  "div",
125
125
  {
126
126
  className: cn(
127
- "flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--radius-md)] border",
127
+ "flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--radius-sm)] border",
128
128
  status === "running" && "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-[var(--brand-cool)]",
129
129
  status === "success" && "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]",
130
130
  status === "error" && "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]"
131
131
  ),
132
- children: status === "running" ? /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin shrink-0" }) : /* @__PURE__ */ jsx(Icon, { className: cn("h-4 w-4 shrink-0", STATUS_COLORS[status]) })
132
+ children: status === "running" ? /* @__PURE__ */ jsx(Loader2, { className: "h-3 w-3 animate-spin shrink-0" }) : /* @__PURE__ */ jsx(Icon, { className: cn("h-3 w-3 shrink-0", STATUS_COLORS[status]) })
133
133
  }
134
134
  ),
135
135
  /* @__PURE__ */ jsx("span", { className: "truncate flex-1 font-[var(--font-sans)] text-[var(--text-secondary)]", children: label }),
@@ -158,7 +158,7 @@ function ToolCallStep({
158
158
  ]
159
159
  }
160
160
  ),
161
- expanded && (detail || output) && /* @__PURE__ */ jsxs("div", { className: "space-y-2 border-t border-[var(--border-subtle)] bg-[var(--bg-section)] px-4 py-4", children: [
161
+ expanded && (detail || output) && /* @__PURE__ */ jsxs("div", { className: "space-y-2 border-t border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2.5", children: [
162
162
  detail && (isFilePath(detail) ? /* @__PURE__ */ jsx(FilePathChip, { path: detail }) : /* @__PURE__ */ jsx("div", { className: "text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: detail })),
163
163
  output && /* @__PURE__ */ jsx(
164
164
  CodeBlock,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseToolEvent
3
- } from "./chunk-XBR3IP7B.js";
3
+ } from "./chunk-33W2TLUL.js";
4
4
  import {
5
5
  bumpActiveSessionActivity,
6
6
  registerActiveSession,
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  CodeBlock,
11
11
  Markdown
12
- } from "./chunk-H5XYSFYE.js";
12
+ } from "./chunk-3HW53XTH.js";
13
13
  import {
14
14
  Badge,
15
15
  Card,
@@ -10,21 +10,21 @@ import {
10
10
  } from "./chunk-BRBTD7RH.js";
11
11
  import {
12
12
  ChatContainer
13
- } from "./chunk-R3IU37AW.js";
13
+ } from "./chunk-5F3VOGCT.js";
14
14
  import {
15
15
  OpenUIArtifactRenderer
16
- } from "./chunk-VBWY44UU.js";
16
+ } from "./chunk-OVNLOE3Y.js";
17
17
  import {
18
18
  FileArtifactPane,
19
19
  FileTree,
20
20
  filterFileTree
21
- } from "./chunk-WQH233GF.js";
21
+ } from "./chunk-KH5UDAJ2.js";
22
22
  import {
23
23
  ArtifactPane
24
24
  } from "./chunk-W4LM3QYZ.js";
25
25
  import {
26
26
  Markdown
27
- } from "./chunk-H5XYSFYE.js";
27
+ } from "./chunk-3HW53XTH.js";
28
28
  import {
29
29
  Badge
30
30
  } from "./chunk-TDYQBLL5.js";
@@ -958,7 +958,7 @@ function SessionSidebar({
958
958
  isActive: currentItemId === item.id
959
959
  })).length
960
960
  ])), [currentItemId, filters, orderedItems, sessionsById]);
961
- return /* @__PURE__ */ jsxs7("aside", { className: cn("flex w-64 shrink-0 flex-col border-r border-[var(--border-subtle)] bg-[var(--depth-2)]", className), children: [
961
+ return /* @__PURE__ */ jsxs7("aside", { className: cn("flex w-64 shrink-0 flex-col border-r border-[var(--border-subtle)] bg-[var(--bg-card)]", className), children: [
962
962
  /* @__PURE__ */ jsxs7("div", { className: "border-b border-[var(--border-subtle)] px-3 py-3", children: [
963
963
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-between gap-2", children: [
964
964
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 min-w-0", children: [
@@ -1113,15 +1113,15 @@ import { Activity, AlertCircle as AlertCircle2, LoaderCircle, MessageSquareText
1113
1113
  import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1114
1114
  function SessionStatusDot({ session }) {
1115
1115
  if (session.status === "error") {
1116
- return /* @__PURE__ */ jsx8(AlertCircle2, { className: "h-3.5 w-3.5 text-[var(--status-danger)]" });
1116
+ return /* @__PURE__ */ jsx8(AlertCircle2, { className: "h-3 w-3 text-[var(--surface-danger-text)]" });
1117
1117
  }
1118
1118
  if (session.status === "running") {
1119
- return /* @__PURE__ */ jsx8(LoaderCircle, { className: "h-3.5 w-3.5 animate-spin text-[var(--brand-cool)]" });
1119
+ return /* @__PURE__ */ jsx8(LoaderCircle, { className: "h-3 w-3 animate-spin text-[var(--brand-cool)]" });
1120
1120
  }
1121
1121
  if (session.status === "attention-needed") {
1122
- return /* @__PURE__ */ jsx8(Activity, { className: "h-3.5 w-3.5 text-[var(--status-warning)]" });
1122
+ return /* @__PURE__ */ jsx8(Activity, { className: "h-3 w-3 text-[var(--surface-warning-text)]" });
1123
1123
  }
1124
- return /* @__PURE__ */ jsx8("span", { className: "h-2 w-2 rounded-full bg-[var(--text-dim)]" });
1124
+ return /* @__PURE__ */ jsx8("span", { className: "h-1.5 w-1.5 rounded-full bg-[var(--text-dim)]" });
1125
1125
  }
1126
1126
  function navigateToSession(session) {
1127
1127
  if (!session.href || typeof window === "undefined") return;
@@ -1141,41 +1141,38 @@ function SessionActivityMonitor({
1141
1141
  const sessionLookup = Object.keys(sessionsById).length > 0 ? sessionsById : Object.fromEntries(trackedSessions.map((session) => [session.sessionId, session]));
1142
1142
  if (projectActivity.length === 0) {
1143
1143
  if (compact) return null;
1144
- return /* @__PURE__ */ jsx8("div", { className: cn("rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.04),transparent)] p-3 text-sm text-[var(--text-muted)]", className), children: emptyMessage });
1144
+ return /* @__PURE__ */ jsx8("div", { className: cn("rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--depth-2)] px-3 py-2 text-xs text-[var(--text-muted)]", className), children: emptyMessage });
1145
1145
  }
1146
- return /* @__PURE__ */ jsxs8("div", { className: cn("space-y-3", className), children: [
1147
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between px-1", children: [
1148
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--text-muted)]", children: [
1149
- /* @__PURE__ */ jsx8(Activity, { className: "h-3.5 w-3.5" }),
1150
- "Active Sessions"
1146
+ return /* @__PURE__ */ jsxs8("div", { className: cn("space-y-1.5", className), children: [
1147
+ /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between px-0.5", children: [
1148
+ /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--text-muted)]", children: [
1149
+ /* @__PURE__ */ jsx8(Activity, { className: "h-3 w-3" }),
1150
+ "Active"
1151
1151
  ] }),
1152
- totalRunning > 0 && /* @__PURE__ */ jsxs8("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-2 py-0.5 text-[11px] font-medium text-[var(--accent-text)]", children: [
1153
- totalRunning,
1154
- " running"
1155
- ] })
1152
+ totalRunning > 0 && /* @__PURE__ */ jsx8("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-1.5 py-px text-[10px] font-medium text-[var(--accent-text)]", children: totalRunning })
1156
1153
  ] }),
1157
- /* @__PURE__ */ jsx8("div", { className: "space-y-2", children: projectActivity.map((project) => {
1154
+ /* @__PURE__ */ jsx8("div", { className: "space-y-1", children: projectActivity.map((project) => {
1158
1155
  const label = resolveProjectLabel?.(project.projectId, project.projectLabel) ?? project.projectLabel ?? String(project.projectId);
1159
1156
  return /* @__PURE__ */ jsxs8(
1160
1157
  "div",
1161
1158
  {
1162
- className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] p-3 shadow-[var(--shadow-card)]",
1159
+ className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--depth-2)]",
1163
1160
  children: [
1164
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between gap-3", children: [
1165
- /* @__PURE__ */ jsxs8("div", { children: [
1166
- /* @__PURE__ */ jsx8("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: label }),
1167
- /* @__PURE__ */ jsxs8("div", { className: "text-xs text-[var(--text-muted)]", children: [
1161
+ /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between gap-2 px-2.5 py-1.5", children: [
1162
+ /* @__PURE__ */ jsxs8("div", { className: "min-w-0", children: [
1163
+ /* @__PURE__ */ jsx8("div", { className: "truncate text-xs font-medium text-[var(--text-primary)]", children: label }),
1164
+ /* @__PURE__ */ jsxs8("div", { className: "text-[10px] text-[var(--text-muted)]", children: [
1168
1165
  project.activeSessionCount,
1169
- " tracked session",
1166
+ " session",
1170
1167
  project.activeSessionCount === 1 ? "" : "s"
1171
1168
  ] })
1172
1169
  ] }),
1173
- project.runningSessionIds.length > 0 && /* @__PURE__ */ jsxs8("span", { className: "rounded-full border border-[var(--border-subtle)] bg-[var(--bg-section)] px-2 py-0.5 text-[11px] text-[var(--text-secondary)]", children: [
1170
+ project.runningSessionIds.length > 0 && /* @__PURE__ */ jsxs8("span", { className: "shrink-0 text-[10px] text-[var(--text-muted)]", children: [
1174
1171
  project.runningSessionIds.length,
1175
1172
  " live"
1176
1173
  ] })
1177
1174
  ] }),
1178
- !compact && project.runningSessionIds.length > 0 && /* @__PURE__ */ jsx8("div", { className: "mt-3 space-y-2", children: project.runningSessionIds.map((sessionId) => {
1175
+ !compact && project.runningSessionIds.length > 0 && /* @__PURE__ */ jsx8("div", { className: "border-t border-[var(--border-subtle)] px-1.5 py-1", children: project.runningSessionIds.map((sessionId) => {
1179
1176
  const session = sessionLookup[sessionId];
1180
1177
  if (!session) return null;
1181
1178
  return /* @__PURE__ */ jsxs8(
@@ -1189,16 +1186,11 @@ function SessionActivityMonitor({
1189
1186
  }
1190
1187
  navigateToSession(session);
1191
1188
  },
1192
- className: "flex w-full items-center justify-between rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2 text-left transition-colors hover:border-[var(--border-accent)] hover:bg-[var(--bg-elevated)]",
1189
+ className: "flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1 text-left transition-colors hover:bg-[var(--bg-hover)]",
1193
1190
  children: [
1194
- /* @__PURE__ */ jsxs8("div", { className: "flex min-w-0 items-center gap-2", children: [
1195
- /* @__PURE__ */ jsx8(SessionStatusDot, { session }),
1196
- /* @__PURE__ */ jsxs8("div", { className: "min-w-0", children: [
1197
- /* @__PURE__ */ jsx8("div", { className: "truncate text-sm font-medium text-[var(--text-primary)]", children: session.title ?? "Untitled Session" }),
1198
- /* @__PURE__ */ jsx8("div", { className: "truncate text-xs text-[var(--text-muted)]", children: session.href ?? session.sessionId })
1199
- ] })
1200
- ] }),
1201
- /* @__PURE__ */ jsx8(MessageSquareText2, { className: "h-4 w-4 shrink-0 text-[var(--text-dim)]" })
1191
+ /* @__PURE__ */ jsx8(SessionStatusDot, { session }),
1192
+ /* @__PURE__ */ jsx8("span", { className: "min-w-0 truncate text-xs text-[var(--text-primary)]", children: session.title ?? "Untitled" }),
1193
+ /* @__PURE__ */ jsx8(MessageSquareText2, { className: "ml-auto h-3 w-3 shrink-0 text-[var(--text-dim)]" })
1202
1194
  ]
1203
1195
  },
1204
1196
  sessionId
package/dist/dashboard.js CHANGED
@@ -30,7 +30,7 @@ import {
30
30
  SidebarRailNav,
31
31
  VariantList,
32
32
  useSidebar
33
- } from "./chunk-STHB4N22.js";
33
+ } from "./chunk-6V4XVKFY.js";
34
34
  import {
35
35
  BillingDashboard,
36
36
  PricingPage,
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  DocumentEditorPane
4
- } from "./chunk-FFOXUHOF.js";
4
+ } from "./chunk-FNYJFCGU.js";
5
5
  import "./chunk-Q56BYXQF.js";
6
6
  import "./chunk-W4LM3QYZ.js";
7
- import "./chunk-H5XYSFYE.js";
7
+ import "./chunk-3HW53XTH.js";
8
8
  import "./chunk-RQHJBTEU.js";
9
9
  export {
10
10
  DocumentEditorPane
package/dist/editor.js CHANGED
@@ -11,10 +11,10 @@ import {
11
11
  useEditorConnection,
12
12
  useEditorContext,
13
13
  useYjsState
14
- } from "./chunk-FFOXUHOF.js";
14
+ } from "./chunk-FNYJFCGU.js";
15
15
  import "./chunk-Q56BYXQF.js";
16
16
  import "./chunk-W4LM3QYZ.js";
17
- import "./chunk-H5XYSFYE.js";
17
+ import "./chunk-3HW53XTH.js";
18
18
  import "./chunk-RQHJBTEU.js";
19
19
  export {
20
20
  CollaboratorsList,
package/dist/files.js CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  FileTabs,
5
5
  FileTree,
6
6
  filterFileTree
7
- } from "./chunk-WQH233GF.js";
7
+ } from "./chunk-KH5UDAJ2.js";
8
8
  import "./chunk-W4LM3QYZ.js";
9
- import "./chunk-H5XYSFYE.js";
9
+ import "./chunk-3HW53XTH.js";
10
10
  import "./chunk-RQHJBTEU.js";
11
11
  export {
12
12
  FileArtifactPane,
package/dist/hooks.js CHANGED
@@ -15,17 +15,17 @@ import {
15
15
  useSessionStream,
16
16
  useSidecarAuth,
17
17
  useToolCallStream
18
- } from "./chunk-5F4NX5R2.js";
19
- import "./chunk-XBR3IP7B.js";
18
+ } from "./chunk-MXRQ4MJE.js";
19
+ import "./chunk-33W2TLUL.js";
20
20
  import "./chunk-OEX7NZE3.js";
21
21
  import {
22
22
  useAutoScroll,
23
23
  useRunCollapseState,
24
24
  useRunGroups
25
25
  } from "./chunk-CNWVHQFY.js";
26
- import "./chunk-NTSRY4GW.js";
26
+ import "./chunk-MJUDMVRU.js";
27
27
  import "./chunk-BX6AQMUS.js";
28
- import "./chunk-H5XYSFYE.js";
28
+ import "./chunk-3HW53XTH.js";
29
29
  import "./chunk-RQHJBTEU.js";
30
30
 
31
31
  // src/hooks/use-session-crud.ts
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  useEditorConnection,
16
16
  useEditorContext,
17
17
  useYjsState
18
- } from "./chunk-FFOXUHOF.js";
18
+ } from "./chunk-FNYJFCGU.js";
19
19
  import {
20
20
  AuthHeader,
21
21
  GitHubLoginButton,
@@ -39,7 +39,7 @@ import {
39
39
  useSessionStream,
40
40
  useSidecarAuth,
41
41
  useToolCallStream
42
- } from "./chunk-5F4NX5R2.js";
42
+ } from "./chunk-MXRQ4MJE.js";
43
43
  import {
44
44
  DropZone,
45
45
  Label,
@@ -85,11 +85,11 @@ import {
85
85
  } from "./chunk-Q56BYXQF.js";
86
86
  import {
87
87
  ChatMessage
88
- } from "./chunk-5CEMHKBP.js";
88
+ } from "./chunk-GW4GRAWJ.js";
89
89
  import {
90
90
  ToolCallFeed,
91
91
  parseToolEvent
92
- } from "./chunk-XBR3IP7B.js";
92
+ } from "./chunk-33W2TLUL.js";
93
93
  import {
94
94
  AgentWorkbench,
95
95
  AuditResults,
@@ -102,7 +102,7 @@ import {
102
102
  StatusBar,
103
103
  TerminalPanel,
104
104
  WorkspaceLayout
105
- } from "./chunk-P24K22CV.js";
105
+ } from "./chunk-WSR2NB2H.js";
106
106
  import "./chunk-OEX7NZE3.js";
107
107
  import {
108
108
  EmptyState,
@@ -116,7 +116,7 @@ import {
116
116
  MessageList,
117
117
  ThinkingIndicator,
118
118
  UserMessage
119
- } from "./chunk-R3IU37AW.js";
119
+ } from "./chunk-5F3VOGCT.js";
120
120
  import {
121
121
  useAutoScroll,
122
122
  useRunCollapseState,
@@ -134,7 +134,7 @@ import {
134
134
  RunGroup,
135
135
  WebSearchPreview,
136
136
  WriteFilePreview
137
- } from "./chunk-WC7QTWPN.js";
137
+ } from "./chunk-LY32SP6X.js";
138
138
  import {
139
139
  formatDuration,
140
140
  truncateText
@@ -142,7 +142,7 @@ import {
142
142
  import {
143
143
  ToolCallGroup,
144
144
  ToolCallStep
145
- } from "./chunk-NTSRY4GW.js";
145
+ } from "./chunk-MJUDMVRU.js";
146
146
  import {
147
147
  TOOL_CATEGORY_ICONS,
148
148
  getToolCategory,
@@ -152,7 +152,7 @@ import {
152
152
  import {
153
153
  InlineCode,
154
154
  OpenUIArtifactRenderer
155
- } from "./chunk-VBWY44UU.js";
155
+ } from "./chunk-OVNLOE3Y.js";
156
156
  import {
157
157
  Table,
158
158
  TableBody,
@@ -169,7 +169,7 @@ import {
169
169
  FileTabs,
170
170
  FileTree,
171
171
  filterFileTree
172
- } from "./chunk-WQH233GF.js";
172
+ } from "./chunk-KH5UDAJ2.js";
173
173
  import {
174
174
  ArtifactPane
175
175
  } from "./chunk-W4LM3QYZ.js";
@@ -177,7 +177,7 @@ import {
177
177
  CodeBlock,
178
178
  CopyButton,
179
179
  Markdown
180
- } from "./chunk-H5XYSFYE.js";
180
+ } from "./chunk-3HW53XTH.js";
181
181
  import {
182
182
  BackendSelector,
183
183
  ClusterStatusBar,
@@ -210,7 +210,7 @@ import {
210
210
  SidebarRailNav,
211
211
  VariantList,
212
212
  useSidebar
213
- } from "./chunk-STHB4N22.js";
213
+ } from "./chunk-6V4XVKFY.js";
214
214
  import {
215
215
  BillingDashboard,
216
216
  PricingPage,
package/dist/markdown.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  CodeBlock,
3
3
  CopyButton,
4
4
  Markdown
5
- } from "./chunk-H5XYSFYE.js";
5
+ } from "./chunk-3HW53XTH.js";
6
6
  import "./chunk-RQHJBTEU.js";
7
7
  export {
8
8
  CodeBlock,
package/dist/openui.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  OpenUIArtifactRenderer
3
- } from "./chunk-VBWY44UU.js";
3
+ } from "./chunk-OVNLOE3Y.js";
4
4
  import "./chunk-JP725R4W.js";
5
- import "./chunk-H5XYSFYE.js";
5
+ import "./chunk-3HW53XTH.js";
6
6
  import "./chunk-TDYQBLL5.js";
7
7
  import "./chunk-TSE423UF.js";
8
8
  import "./chunk-RQHJBTEU.js";
package/dist/run.js CHANGED
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  ToolCallFeed,
3
3
  parseToolEvent
4
- } from "./chunk-XBR3IP7B.js";
4
+ } from "./chunk-33W2TLUL.js";
5
5
  import {
6
6
  ExpandedToolDetail,
7
7
  InlineThinkingItem,
8
8
  InlineToolItem,
9
9
  LiveDuration,
10
10
  RunGroup
11
- } from "./chunk-WC7QTWPN.js";
11
+ } from "./chunk-LY32SP6X.js";
12
12
  import "./chunk-HRMUF35V.js";
13
13
  import {
14
14
  ToolCallGroup,
15
15
  ToolCallStep
16
- } from "./chunk-NTSRY4GW.js";
16
+ } from "./chunk-MJUDMVRU.js";
17
17
  import "./chunk-BX6AQMUS.js";
18
- import "./chunk-H5XYSFYE.js";
18
+ import "./chunk-3HW53XTH.js";
19
19
  import "./chunk-RQHJBTEU.js";
20
20
  export {
21
21
  ExpandedToolDetail,
package/dist/sdk-hooks.js CHANGED
@@ -7,17 +7,17 @@ import {
7
7
  useSessionStream,
8
8
  useSidecarAuth,
9
9
  useToolCallStream
10
- } from "./chunk-5F4NX5R2.js";
11
- import "./chunk-XBR3IP7B.js";
10
+ } from "./chunk-MXRQ4MJE.js";
11
+ import "./chunk-33W2TLUL.js";
12
12
  import "./chunk-OEX7NZE3.js";
13
13
  import {
14
14
  useAutoScroll,
15
15
  useRunCollapseState,
16
16
  useRunGroups
17
17
  } from "./chunk-CNWVHQFY.js";
18
- import "./chunk-NTSRY4GW.js";
18
+ import "./chunk-MJUDMVRU.js";
19
19
  import "./chunk-BX6AQMUS.js";
20
- import "./chunk-H5XYSFYE.js";
20
+ import "./chunk-3HW53XTH.js";
21
21
  import "./chunk-RQHJBTEU.js";
22
22
  export {
23
23
  RealtimeSessionRegistry,
package/dist/tokens.css CHANGED
@@ -227,6 +227,19 @@
227
227
  --panel-padding: 1rem;
228
228
  --content-max-width: 80rem;
229
229
 
230
+ /* Component sizing — override per-app for tighter/looser layouts */
231
+ --code-padding-x: 0.75rem;
232
+ --code-padding-y: 0.625rem;
233
+ --code-font-size: 0.8125rem;
234
+ --code-line-height: 1.5;
235
+ --chat-message-px: 0.875rem;
236
+ --chat-message-py: 0.5rem;
237
+ --chat-input-py: 0.625rem;
238
+ --card-padding: 1.25rem;
239
+ --tool-card-px: 0.75rem;
240
+ --tool-card-py: 0.5rem;
241
+ --tool-icon-size: 1.75rem;
242
+
230
243
  /* Transitions */
231
244
  --transition-fast: 0.1s ease;
232
245
  --transition-default: 0.16s ease;
@@ -412,4 +425,16 @@
412
425
  --radius-xl: 12px;
413
426
  --control-height: 2rem;
414
427
  --panel-padding: 0.625rem;
428
+
429
+ --code-padding-x: 0.625rem;
430
+ --code-padding-y: 0.5rem;
431
+ --code-font-size: 0.75rem;
432
+ --code-line-height: 1.4;
433
+ --chat-message-px: 0.75rem;
434
+ --chat-message-py: 0.375rem;
435
+ --chat-input-py: 0.5rem;
436
+ --card-padding: 1rem;
437
+ --tool-card-px: 0.625rem;
438
+ --tool-card-py: 0.375rem;
439
+ --tool-icon-size: 1.5rem;
415
440
  }
package/dist/workspace.js CHANGED
@@ -10,22 +10,22 @@ import {
10
10
  StatusBar,
11
11
  TerminalPanel,
12
12
  WorkspaceLayout
13
- } from "./chunk-P24K22CV.js";
13
+ } from "./chunk-WSR2NB2H.js";
14
14
  import "./chunk-OEX7NZE3.js";
15
15
  import "./chunk-BRBTD7RH.js";
16
- import "./chunk-R3IU37AW.js";
16
+ import "./chunk-5F3VOGCT.js";
17
17
  import "./chunk-CNWVHQFY.js";
18
- import "./chunk-WC7QTWPN.js";
18
+ import "./chunk-LY32SP6X.js";
19
19
  import "./chunk-HRMUF35V.js";
20
- import "./chunk-NTSRY4GW.js";
20
+ import "./chunk-MJUDMVRU.js";
21
21
  import "./chunk-BX6AQMUS.js";
22
- import "./chunk-VBWY44UU.js";
22
+ import "./chunk-OVNLOE3Y.js";
23
23
  import "./chunk-JP725R4W.js";
24
- import "./chunk-WQH233GF.js";
24
+ import "./chunk-KH5UDAJ2.js";
25
25
  import {
26
26
  ArtifactPane
27
27
  } from "./chunk-W4LM3QYZ.js";
28
- import "./chunk-H5XYSFYE.js";
28
+ import "./chunk-3HW53XTH.js";
29
29
  import "./chunk-TDYQBLL5.js";
30
30
  import "./chunk-TSE423UF.js";
31
31
  import "./chunk-RQHJBTEU.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox-ui",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
5
5
  "repository": {
6
6
  "type": "git",