@floegence/floe-webapp-core 0.86.60 → 0.86.63

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.
Files changed (122) hide show
  1. package/dist/app/FloeRegistryContributions.js +0 -3
  2. package/dist/components/chat/blocks/BlockRenderer.js +1 -1
  3. package/dist/components/chat/blocks/CodeDiffBlock.js +56 -56
  4. package/dist/components/chat/blocks/ImageBlock.js +1 -1
  5. package/dist/components/chat/blocks/ToolCallBlock.js +57 -57
  6. package/dist/components/chat/status/ConnectionStatus.js +10 -10
  7. package/dist/components/deck/DeckCell.js +25 -25
  8. package/dist/components/deck/DeckContextMenu.js +20 -20
  9. package/dist/components/deck/DeckGrid.js +1 -1
  10. package/dist/components/deck/DeckTopBar.js +42 -42
  11. package/dist/components/deck/DropZonePreview.js +6 -6
  12. package/dist/components/deck/LayoutSelector.js +53 -53
  13. package/dist/components/deck/WidgetFrame.js +28 -28
  14. package/dist/components/deck/WidgetPalette.js +31 -31
  15. package/dist/components/deck/WidgetTypeSwitcher.js +31 -31
  16. package/dist/components/file-browser/Breadcrumb.js +27 -27
  17. package/dist/components/file-browser/DirectoryTree.js +15 -15
  18. package/dist/components/file-browser/DragPreview.js +58 -58
  19. package/dist/components/file-browser/FileBrowser.js +17 -17
  20. package/dist/components/file-browser/FileBrowserStatusBar.js +18 -18
  21. package/dist/components/file-browser/FileBrowserToolbar.js +27 -27
  22. package/dist/components/file-browser/FileContextMenu.js +47 -47
  23. package/dist/components/file-browser/FileGridView.js +53 -51
  24. package/dist/components/file-browser/FileItemDecorations.js +30 -27
  25. package/dist/components/file-browser/FileListView.js +114 -114
  26. package/dist/components/icons/ActivityRailIcons.d.ts +30 -0
  27. package/dist/components/icons/ActivityRailIcons.js +68 -0
  28. package/dist/components/icons/index.d.ts +1 -0
  29. package/dist/components/icons/index.js +1357 -1357
  30. package/dist/components/launchpad/Launchpad.js +14 -14
  31. package/dist/components/launchpad/LaunchpadGrid.js +7 -7
  32. package/dist/components/launchpad/LaunchpadItem.js +11 -11
  33. package/dist/components/launchpad/LaunchpadPagination.js +16 -16
  34. package/dist/components/launchpad/LaunchpadSearch.js +9 -9
  35. package/dist/components/layout/ActivityBar.js +61 -63
  36. package/dist/components/layout/DisplayModeSwitcher.d.ts +10 -0
  37. package/dist/components/layout/DisplayModeSwitcher.js +102 -33
  38. package/dist/components/layout/MobileNavigationPanel.js +36 -36
  39. package/dist/components/layout/MobileTabBar.js +39 -39
  40. package/dist/components/layout/Panel.js +16 -16
  41. package/dist/components/layout/ResizeHandle.js +19 -19
  42. package/dist/components/layout/Shell.d.ts +0 -6
  43. package/dist/components/layout/Shell.js +208 -254
  44. package/dist/components/layout/Sidebar.js +37 -36
  45. package/dist/components/layout/SidebarPane.js +19 -19
  46. package/dist/components/layout/ThemeToggle.d.ts +19 -0
  47. package/dist/components/layout/ThemeToggle.js +39 -0
  48. package/dist/components/layout/TopBar.js +16 -16
  49. package/dist/components/layout/TopBarIconButton.js +15 -15
  50. package/dist/components/layout/index.d.ts +1 -1
  51. package/dist/components/loading/LoadingOverlay.js +9 -9
  52. package/dist/components/loading/Skeleton.js +11 -11
  53. package/dist/components/ui/Button.js +44 -36
  54. package/dist/components/ui/Card.d.ts +11 -62
  55. package/dist/components/ui/Card.js +64 -237
  56. package/dist/components/ui/Checkbox.js +79 -79
  57. package/dist/components/ui/CommandPalette.js +56 -55
  58. package/dist/components/ui/Dialog.js +91 -93
  59. package/dist/components/ui/DirectoryInput.js +22 -22
  60. package/dist/components/ui/DirectoryPicker.js +8 -8
  61. package/dist/components/ui/Dropdown.js +89 -87
  62. package/dist/components/ui/FeedbackIndicator.js +57 -57
  63. package/dist/components/ui/FileOpenPicker.js +37 -37
  64. package/dist/components/ui/FileSavePicker.js +41 -41
  65. package/dist/components/ui/FloatingWindow.js +213 -205
  66. package/dist/components/ui/Form.js +76 -76
  67. package/dist/components/ui/HighlightBlock.js +14 -14
  68. package/dist/components/ui/Input.js +106 -109
  69. package/dist/components/ui/Pagination.js +86 -86
  70. package/dist/components/ui/Popover.d.ts +33 -0
  71. package/dist/components/ui/Popover.js +133 -0
  72. package/dist/components/ui/ProcessingIndicator.js +344 -345
  73. package/dist/components/ui/Progress.js +94 -97
  74. package/dist/components/ui/QuoteBlock.js +25 -25
  75. package/dist/components/ui/Radio.js +91 -91
  76. package/dist/components/ui/SegmentedControl.js +24 -24
  77. package/dist/components/ui/Stepper.js +68 -60
  78. package/dist/components/ui/Switch.js +25 -25
  79. package/dist/components/ui/Tabs.js +188 -163
  80. package/dist/components/ui/Tag.js +12 -9
  81. package/dist/components/ui/Tooltip.js +30 -30
  82. package/dist/components/ui/floatingPresence.d.ts +7 -0
  83. package/dist/components/ui/floatingPresence.js +80 -39
  84. package/dist/components/ui/index.d.ts +2 -1
  85. package/dist/components/ui/picker/DirectoryFavorites.js +27 -27
  86. package/dist/components/ui/picker/PickerBase.js +107 -107
  87. package/dist/context/ComponentRegistry.d.ts +0 -8
  88. package/dist/context/ComponentRegistry.js +61 -67
  89. package/dist/context/FloeConfigContext.d.ts +0 -6
  90. package/dist/context/FloeConfigContext.js +9 -15
  91. package/dist/context/NotificationContext.js +4 -4
  92. package/dist/context/ThemeContext.js +71 -70
  93. package/dist/context/index.d.ts +1 -1
  94. package/dist/display-mode.css +2 -45
  95. package/dist/floe.css +205 -43
  96. package/dist/full.js +701 -695
  97. package/dist/icons.js +112 -102
  98. package/dist/language.css +320 -0
  99. package/dist/layout.js +33 -35
  100. package/dist/primitives.css +23 -17
  101. package/dist/standalone.css +1 -0
  102. package/dist/styles/themes/classicSemanticTokens.d.ts +122 -122
  103. package/dist/styles/themes/classicSemanticTokens.js +140 -138
  104. package/dist/styles/themes/index.d.ts +3 -1
  105. package/dist/styles/themes/index.js +10 -10
  106. package/dist/styles/themes/presets.d.ts +2 -2
  107. package/dist/styles/themes/presets.js +34 -34
  108. package/dist/styles/tokens.d.ts +152 -68
  109. package/dist/styles/tokens.js +87 -49
  110. package/dist/styles.css +1 -1
  111. package/dist/surface.css +214 -117
  112. package/dist/themes/dark.css +64 -64
  113. package/dist/themes/light.css +64 -64
  114. package/dist/ui.css +171 -255
  115. package/dist/ui.js +176 -178
  116. package/dist/utils/hotInteraction.d.ts +7 -0
  117. package/dist/utils/hotInteraction.js +12 -12
  118. package/dist/widgets/TerminalWidget.js +28 -28
  119. package/dist/workbench-composition.css +15 -15
  120. package/package.json +1 -1
  121. package/dist/components/layout/BottomBar.d.ts +0 -29
  122. package/dist/components/layout/BottomBar.js +0 -70
@@ -24,9 +24,6 @@ function h(r) {
24
24
  get commands() {
25
25
  return t.current.commands;
26
26
  },
27
- get statusBar() {
28
- return t.current.statusBar;
29
- },
30
27
  async onMount(o) {
31
28
  const e = t.current;
32
29
  t.mountedDefinition = e, await e.onMount?.(o);
@@ -273,7 +273,7 @@ const x = u(() => import("./CodeBlock.js").then((e) => ({
273
273
  })(), M = () => (() => {
274
274
  var e = v(), l = e.firstChild;
275
275
  return r(l, t(c, {
276
- class: "h-4 w-4 rounded"
276
+ class: "h-4 w-4 rounded-xs"
277
277
  }), null), r(l, t(c, {
278
278
  class: "h-4 w-32"
279
279
  }), null), e;
@@ -1,12 +1,12 @@
1
- import { insert as d, createComponent as o, effect as y, className as w, setAttribute as U, template as h, addEventListener as A, use as H, setStyleProperty as L, delegateEvents as z } from "solid-js/web";
1
+ import { insert as s, createComponent as o, effect as y, className as w, setAttribute as U, template as h, addEventListener as A, use as H, setStyleProperty as L, delegateEvents as z } from "solid-js/web";
2
2
  import { createSignal as I, onCleanup as G, createEffect as O, createMemo as E, Show as m, For as B } from "solid-js";
3
3
  import { cn as x } from "../../../utils/cn.js";
4
4
  import { deferAfterPaint as X } from "../../../utils/defer.js";
5
5
  import { useVirtualWindow as N } from "../../../hooks/useVirtualWindow.js";
6
6
  import { hasDiffWorker as V, computeCodeDiff as j, computeCodeDiffSync as q } from "../hooks/useCodeDiff.js";
7
- var J = /* @__PURE__ */ h("<span class=chat-code-diff-filename>"), K = /* @__PURE__ */ h("<span class=chat-code-diff-stats><span class=text-success>+</span><span class=text-error style=margin-left:0.5rem>-"), Q = /* @__PURE__ */ h("<div><div class=chat-code-diff-header><div class=chat-code-diff-info></div><div class=chat-code-diff-actions><div class=chat-code-diff-view-toggle><button type=button>Unified</button><button type=button>Split</button></div><button type=button class=chat-code-copy-btn>"), Y = /* @__PURE__ */ h('<span class="chat-code-diff-stats text-muted-foreground">...'), Z = /* @__PURE__ */ h('<div class="p-3 text-xs text-muted-foreground">Computing diff...'), ee = /* @__PURE__ */ h('<div class="p-3 text-xs text-muted-foreground">Diff is too large to render without a worker. Configure `configureDiffWorker(createDiffWorker())`.'), te = /* @__PURE__ */ h("<div class=chat-code-diff-content>"), ne = /* @__PURE__ */ h("<div class=chat-code-diff-content><div><div class=chat-diff-unified>"), ie = /* @__PURE__ */ h("<div style=height:18px><span class=chat-diff-line-number></span><span class=chat-diff-line-sign></span><span class=chat-diff-line-content>"), re = /* @__PURE__ */ h("<div class=chat-code-diff-content><div><div class=chat-diff-split><div class=chat-diff-split-side></div><div class=chat-diff-split-side>"), le = /* @__PURE__ */ h("<div style=height:18px><span class=chat-diff-line-number></span><span class=chat-diff-line-content>"), oe = /* @__PURE__ */ h('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><rect x=9 y=9 width=13 height=13 rx=2 ry=2></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">'), de = /* @__PURE__ */ h('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="20 6 9 17 4 12">');
8
- const se = 8e4, P = 18, Ce = (c) => {
9
- const [t, r] = I("unified"), [s, l] = I(!1), [i, f] = I(null), [n, u] = I(!0);
7
+ var J = /* @__PURE__ */ h("<span class=chat-code-diff-filename>"), K = /* @__PURE__ */ h("<span class=chat-code-diff-stats><span class=text-success>+</span><span class=text-error style=margin-left:0.5rem>-"), Q = /* @__PURE__ */ h("<div><div class=chat-code-diff-header><div class=chat-code-diff-info></div><div class=chat-code-diff-actions><div class=chat-code-diff-view-toggle><button type=button>Unified</button><button type=button>Split</button></div><button type=button class=chat-code-copy-btn>"), Y = /* @__PURE__ */ h('<span class="chat-code-diff-stats text-[var(--floe-ink-soft)]">...'), Z = /* @__PURE__ */ h('<div class="p-3 text-xs text-[var(--floe-ink-soft)]">Computing diff...'), ee = /* @__PURE__ */ h('<div class="p-3 text-xs text-[var(--floe-ink-soft)]">Diff is too large to render without a worker. Configure `configureDiffWorker(createDiffWorker())`.'), te = /* @__PURE__ */ h("<div class=chat-code-diff-content>"), ie = /* @__PURE__ */ h("<div class=chat-code-diff-content><div><div class=chat-diff-unified>"), ne = /* @__PURE__ */ h("<div style=height:18px><span class=chat-diff-line-number></span><span class=chat-diff-line-sign></span><span class=chat-diff-line-content>"), le = /* @__PURE__ */ h("<div class=chat-code-diff-content><div><div class=chat-diff-split><div class=chat-diff-split-side></div><div class=chat-diff-split-side>"), re = /* @__PURE__ */ h("<div style=height:18px><span class=chat-diff-line-number></span><span class=chat-diff-line-content>"), oe = /* @__PURE__ */ h('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><rect x=9 y=9 width=13 height=13 rx=2 ry=2></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">'), se = /* @__PURE__ */ h('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="20 6 9 17 4 12">');
8
+ const de = 8e4, P = 18, Ce = (c) => {
9
+ const [t, l] = I("unified"), [d, r] = I(!1), [n, f] = I(null), [i, u] = I(!0);
10
10
  let v = 0;
11
11
  G(() => {
12
12
  v += 1;
@@ -16,7 +16,7 @@ const se = 8e4, P = 18, Ce = (c) => {
16
16
  const C = g, $ = R;
17
17
  X(() => {
18
18
  if (p !== v) return;
19
- if (C.length + $.length > se && !V()) {
19
+ if (C.length + $.length > de && !V()) {
20
20
  u(!1);
21
21
  return;
22
22
  }
@@ -29,24 +29,24 @@ const se = 8e4, P = 18, Ce = (c) => {
29
29
  });
30
30
  });
31
31
  });
32
- const a = E(() => i()?.stats), k = async () => {
32
+ const a = E(() => n()?.stats), k = async () => {
33
33
  try {
34
- await navigator.clipboard.writeText(c.newCode), l(!0), setTimeout(() => l(!1), 2e3);
34
+ await navigator.clipboard.writeText(c.newCode), r(!0), setTimeout(() => r(!1), 2e3);
35
35
  } catch (g) {
36
36
  console.error("Failed to copy:", g);
37
37
  }
38
38
  };
39
39
  return (() => {
40
40
  var g = Q(), R = g.firstChild, p = R.firstChild, C = p.nextSibling, $ = C.firstChild, S = $.firstChild, F = S.nextSibling, D = $.nextSibling;
41
- return d(p, o(m, {
41
+ return s(p, o(m, {
42
42
  get when() {
43
43
  return c.filename;
44
44
  },
45
45
  get children() {
46
46
  var e = J();
47
- return d(e, () => c.filename), e;
47
+ return s(e, () => c.filename), e;
48
48
  }
49
- }), null), d(p, o(m, {
49
+ }), null), s(p, o(m, {
50
50
  get when() {
51
51
  return a();
52
52
  },
@@ -57,11 +57,11 @@ const se = 8e4, P = 18, Ce = (c) => {
57
57
  var e = K(), _ = e.firstChild;
58
58
  _.firstChild;
59
59
  var b = _.nextSibling;
60
- return b.firstChild, d(_, () => a().added, null), d(b, () => a().removed, null), e;
60
+ return b.firstChild, s(_, () => a().added, null), s(b, () => a().removed, null), e;
61
61
  }
62
- }), null), S.$$click = () => r("unified"), F.$$click = () => r("split"), D.$$click = k, d(D, o(m, {
62
+ }), null), S.$$click = () => l("unified"), F.$$click = () => l("split"), D.$$click = k, s(D, o(m, {
63
63
  get when() {
64
- return s();
64
+ return d();
65
65
  },
66
66
  get fallback() {
67
67
  return o(ue, {});
@@ -69,23 +69,23 @@ const se = 8e4, P = 18, Ce = (c) => {
69
69
  get children() {
70
70
  return o(he, {});
71
71
  }
72
- })), d(g, o(m, {
72
+ })), s(g, o(m, {
73
73
  get when() {
74
- return i();
74
+ return n();
75
75
  },
76
76
  get fallback() {
77
77
  return (() => {
78
78
  var e = te();
79
- return d(e, o(m, {
79
+ return s(e, o(m, {
80
80
  get when() {
81
- return n();
81
+ return i();
82
82
  },
83
83
  get children() {
84
84
  return Z();
85
85
  }
86
- }), null), d(e, o(m, {
86
+ }), null), s(e, o(m, {
87
87
  get when() {
88
- return !n();
88
+ return !i();
89
89
  },
90
90
  get children() {
91
91
  return ee();
@@ -101,21 +101,21 @@ const se = 8e4, P = 18, Ce = (c) => {
101
101
  get fallback() {
102
102
  return o(fe, {
103
103
  get model() {
104
- return i();
104
+ return n();
105
105
  }
106
106
  });
107
107
  },
108
108
  get children() {
109
109
  return o(ce, {
110
110
  get model() {
111
- return i();
111
+ return n();
112
112
  }
113
113
  });
114
114
  }
115
115
  });
116
116
  }
117
117
  }), null), y((e) => {
118
- var _ = x("chat-code-diff-block", c.class), b = x("chat-code-diff-view-btn", t() === "unified" && "active"), M = x("chat-code-diff-view-btn", t() === "split" && "active"), T = s() ? "Copied!" : "Copy new code";
118
+ var _ = x("chat-code-diff-block", c.class), b = x("chat-code-diff-view-btn", t() === "unified" && "active"), M = x("chat-code-diff-view-btn", t() === "split" && "active"), T = d() ? "Copied!" : "Copy new code";
119
119
  return _ !== e.e && w(g, e.e = _), b !== e.t && w(S, e.t = b), M !== e.a && w(F, e.a = M), T !== e.o && U(D, "title", e.o = T), e;
120
120
  }, {
121
121
  e: void 0,
@@ -126,95 +126,95 @@ const se = 8e4, P = 18, Ce = (c) => {
126
126
  })();
127
127
  };
128
128
  function ce(c) {
129
- const t = () => c.model.unifiedLines, r = N({
129
+ const t = () => c.model.unifiedLines, l = N({
130
130
  count: () => t().length,
131
131
  itemSize: () => P,
132
132
  overscan: 12
133
- }), s = E(() => {
133
+ }), d = E(() => {
134
134
  const {
135
- start: l,
136
- end: i
137
- } = r.range(), f = [];
138
- for (let n = l; n < i; n += 1) f.push(n);
135
+ start: r,
136
+ end: n
137
+ } = l.range(), f = [];
138
+ for (let i = r; i < n; i += 1) f.push(i);
139
139
  return f;
140
140
  });
141
141
  return (() => {
142
- var l = ne(), i = l.firstChild, f = i.firstChild;
143
- return A(l, "scroll", r.onScroll), H((n) => r.scrollRef(n), l), d(f, o(B, {
142
+ var r = ie(), n = r.firstChild, f = n.firstChild;
143
+ return A(r, "scroll", l.onScroll), H((i) => l.scrollRef(i), r), s(f, o(B, {
144
144
  get each() {
145
- return s();
145
+ return d();
146
146
  },
147
- children: (n) => o(ae, {
147
+ children: (i) => o(ae, {
148
148
  get line() {
149
- return t()[n];
149
+ return t()[i];
150
150
  }
151
151
  })
152
- })), y((n) => {
153
- var u = `${r.paddingTop()}px`, v = `${r.paddingBottom()}px`;
154
- return u !== n.e && L(i, "padding-top", n.e = u), v !== n.t && L(i, "padding-bottom", n.t = v), n;
152
+ })), y((i) => {
153
+ var u = `${l.paddingTop()}px`, v = `${l.paddingBottom()}px`;
154
+ return u !== i.e && L(n, "padding-top", i.e = u), v !== i.t && L(n, "padding-bottom", i.t = v), i;
155
155
  }, {
156
156
  e: void 0,
157
157
  t: void 0
158
- }), l;
158
+ }), r;
159
159
  })();
160
160
  }
161
161
  function ae(c) {
162
162
  const t = () => c.line;
163
163
  return (() => {
164
- var r = ie(), s = r.firstChild, l = s.nextSibling, i = l.nextSibling;
165
- return d(s, () => t()?.lineNumber ?? ""), d(l, () => t()?.sign ?? " "), d(i, () => t()?.content ?? " "), y(() => w(r, x("chat-diff-line", t()?.type === "added" && "chat-diff-line-added", t()?.type === "removed" && "chat-diff-line-removed"))), r;
164
+ var l = ne(), d = l.firstChild, r = d.nextSibling, n = r.nextSibling;
165
+ return s(d, () => t()?.lineNumber ?? ""), s(r, () => t()?.sign ?? " "), s(n, () => t()?.content ?? " "), y(() => w(l, x("chat-diff-line", t()?.type === "added" && "chat-diff-line-added", t()?.type === "removed" && "chat-diff-line-removed"))), l;
166
166
  })();
167
167
  }
168
168
  function fe(c) {
169
- const t = () => c.model.split.left, r = () => c.model.split.right, s = N({
169
+ const t = () => c.model.split.left, l = () => c.model.split.right, d = N({
170
170
  count: () => t().length,
171
171
  itemSize: () => P,
172
172
  overscan: 12
173
- }), l = E(() => {
173
+ }), r = E(() => {
174
174
  const {
175
- start: i,
175
+ start: n,
176
176
  end: f
177
- } = s.range(), n = [];
178
- for (let u = i; u < f; u += 1) n.push(u);
179
- return n;
177
+ } = d.range(), i = [];
178
+ for (let u = n; u < f; u += 1) i.push(u);
179
+ return i;
180
180
  });
181
181
  return (() => {
182
- var i = re(), f = i.firstChild, n = f.firstChild, u = n.firstChild, v = u.nextSibling;
183
- return A(i, "scroll", s.onScroll), H((a) => s.scrollRef(a), i), d(u, o(B, {
182
+ var n = le(), f = n.firstChild, i = f.firstChild, u = i.firstChild, v = u.nextSibling;
183
+ return A(n, "scroll", d.onScroll), H((a) => d.scrollRef(a), n), s(u, o(B, {
184
184
  get each() {
185
- return l();
185
+ return r();
186
186
  },
187
187
  children: (a) => o(W, {
188
188
  get line() {
189
189
  return t()[a];
190
190
  }
191
191
  })
192
- })), d(v, o(B, {
192
+ })), s(v, o(B, {
193
193
  get each() {
194
- return l();
194
+ return r();
195
195
  },
196
196
  children: (a) => o(W, {
197
197
  get line() {
198
- return r()[a];
198
+ return l()[a];
199
199
  }
200
200
  })
201
201
  })), y((a) => {
202
- var k = `${s.paddingTop()}px`, g = `${s.paddingBottom()}px`;
202
+ var k = `${d.paddingTop()}px`, g = `${d.paddingBottom()}px`;
203
203
  return k !== a.e && L(f, "padding-top", a.e = k), g !== a.t && L(f, "padding-bottom", a.t = g), a;
204
204
  }, {
205
205
  e: void 0,
206
206
  t: void 0
207
- }), i;
207
+ }), n;
208
208
  })();
209
209
  }
210
210
  function W(c) {
211
211
  const t = () => c.line;
212
212
  return (() => {
213
- var r = le(), s = r.firstChild, l = s.nextSibling;
214
- return d(s, () => t()?.lineNumber ?? ""), d(l, () => t()?.content ?? " "), y(() => w(r, x("chat-diff-line", t()?.type === "added" && "chat-diff-line-added", t()?.type === "removed" && "chat-diff-line-removed", t()?.type === "empty" && "chat-diff-line-empty"))), r;
213
+ var l = re(), d = l.firstChild, r = d.nextSibling;
214
+ return s(d, () => t()?.lineNumber ?? ""), s(r, () => t()?.content ?? " "), y(() => w(l, x("chat-diff-line", t()?.type === "added" && "chat-diff-line-added", t()?.type === "removed" && "chat-diff-line-removed", t()?.type === "empty" && "chat-diff-line-empty"))), l;
215
215
  })();
216
216
  }
217
- const ue = () => oe(), he = () => de();
217
+ const ue = () => oe(), he = () => se();
218
218
  z(["click"]);
219
219
  export {
220
220
  Ce as CodeDiffBlock
@@ -2,7 +2,7 @@ import { insert as c, createComponent as a, effect as D, setAttribute as k, clas
2
2
  import { createSignal as v, onCleanup as B, createEffect as j, Show as C } from "solid-js";
3
3
  import { cn as G } from "../../../utils/cn.js";
4
4
  import { lockBodyStyle as ge } from "../../../utils/bodyStyleLock.js";
5
- var he = /* @__PURE__ */ r("<div class=chat-image-loading>"), me = /* @__PURE__ */ r("<div class=chat-image-error><span>Failed to load image"), ye = /* @__PURE__ */ r("<img loading=lazy>", !0, !1, !1), fe = /* @__PURE__ */ r("<div>"), ve = /* @__PURE__ */ r("<div class=chat-image-dialog-backdrop>"), pe = /* @__PURE__ */ r('<div class=chat-image-dialog><div class=chat-image-dialog-toolbar><button type=button class=chat-image-dialog-btn title="Zoom out (-)"></button><span class=chat-image-dialog-scale>%</span><button type=button class=chat-image-dialog-btn title="Zoom in (+)"></button><button type=button class=chat-image-dialog-btn title="Reset (0)"></button><div class=chat-image-dialog-separator></div><button type=button class=chat-image-dialog-btn title="Close (Esc)"></button></div><div class=chat-image-dialog-content style=touch-action:none><img class=chat-image-dialog-img></div><div class=chat-image-dialog-hint>Scroll/pinch to zoom · Drag to pan · Press Esc to close'), xe = /* @__PURE__ */ r('<svg class="animate-spin h-6 w-6 text-muted-foreground"xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 24 24"><circle class=opacity-25 cx=12 cy=12 r=10 stroke=currentColor stroke-width=4></circle><path class=opacity-75 fill=currentColor d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z">'), $e = /* @__PURE__ */ r('<svg width=24 height=24 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><rect x=3 y=3 width=18 height=18 rx=2 ry=2></rect><circle cx=8.5 cy=8.5 r=1.5></circle><polyline points="21 15 16 10 5 21"></polyline><line x1=2 y1=2 x2=22 y2=22>'), we = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><line x1=18 y1=6 x2=6 y2=18></line><line x1=6 y1=6 x2=18 y2=18>'), be = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=11 cy=11 r=8></circle><line x1=21 y1=21 x2=16.65 y2=16.65></line><line x1=11 y1=8 x2=11 y2=14></line><line x1=8 y1=11 x2=14 y2=11>'), ke = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=11 cy=11 r=8></circle><line x1=21 y1=21 x2=16.65 y2=16.65></line><line x1=8 y1=11 x2=14 y2=11>'), _e = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5">');
5
+ var he = /* @__PURE__ */ r("<div class=chat-image-loading>"), me = /* @__PURE__ */ r("<div class=chat-image-error><span>Failed to load image"), ye = /* @__PURE__ */ r("<img loading=lazy>", !0, !1, !1), fe = /* @__PURE__ */ r("<div>"), ve = /* @__PURE__ */ r("<div class=chat-image-dialog-backdrop>"), pe = /* @__PURE__ */ r('<div class=chat-image-dialog><div class=chat-image-dialog-toolbar><button type=button class=chat-image-dialog-btn title="Zoom out (-)"></button><span class=chat-image-dialog-scale>%</span><button type=button class=chat-image-dialog-btn title="Zoom in (+)"></button><button type=button class=chat-image-dialog-btn title="Reset (0)"></button><div class=chat-image-dialog-separator></div><button type=button class=chat-image-dialog-btn title="Close (Esc)"></button></div><div class=chat-image-dialog-content style=touch-action:none><img class=chat-image-dialog-img></div><div class=chat-image-dialog-hint>Scroll/pinch to zoom · Drag to pan · Press Esc to close'), xe = /* @__PURE__ */ r('<svg class="animate-spin h-6 w-6 text-[var(--floe-ink-soft)]"xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 24 24"><circle class=opacity-25 cx=12 cy=12 r=10 stroke=currentColor stroke-width=4></circle><path class=opacity-75 fill=currentColor d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z">'), $e = /* @__PURE__ */ r('<svg width=24 height=24 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><rect x=3 y=3 width=18 height=18 rx=2 ry=2></rect><circle cx=8.5 cy=8.5 r=1.5></circle><polyline points="21 15 16 10 5 21"></polyline><line x1=2 y1=2 x2=22 y2=22>'), we = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><line x1=18 y1=6 x2=6 y2=18></line><line x1=6 y1=6 x2=18 y2=18>'), be = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=11 cy=11 r=8></circle><line x1=21 y1=21 x2=16.65 y2=16.65></line><line x1=11 y1=8 x2=11 y2=14></line><line x1=8 y1=11 x2=14 y2=11>'), ke = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=11 cy=11 r=8></circle><line x1=21 y1=21 x2=16.65 y2=16.65></line><line x1=8 y1=11 x2=14 y2=11>'), _e = /* @__PURE__ */ r('<svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5">');
6
6
  const Be = (p) => {
7
7
  const [O, X] = v(!0), [Y, J] = v(!1), [S, F] = v(!1), [i, I] = v(1), [x, $] = v({
8
8
  x: 0,
@@ -1,21 +1,21 @@
1
1
  import { setAttribute as O, insert as c, createComponent as i, memo as I, effect as B, className as T, template as a, delegateEvents as L } from "solid-js/web";
2
- import { createSignal as v, createUniqueId as q, createEffect as F, Show as b, For as D, onCleanup as V, createMemo as N } from "solid-js";
2
+ import { createSignal as p, createUniqueId as q, createEffect as F, Show as b, For as D, onCleanup as V, createMemo as N } from "solid-js";
3
3
  import { cn as P } from "../../../utils/cn.js";
4
4
  import { deferAfterPaint as U } from "../../../utils/defer.js";
5
5
  import { useChatContext as H } from "../ChatProvider.js";
6
6
  import { BlockRenderer as W } from "./BlockRenderer.js";
7
- var z = /* @__PURE__ */ a("<span class=chat-tool-summary>"), G = /* @__PURE__ */ a('<div class=chat-tool-approval-actions><button type=button class="chat-tool-approval-btn chat-tool-approval-btn-approve">Approve</button><button type=button class="chat-tool-approval-btn chat-tool-approval-btn-reject">Reject'), K = /* @__PURE__ */ a("<div class=chat-tool-section>"), Q = /* @__PURE__ */ a('<div class="chat-tool-section chat-tool-error-section"><div class=chat-tool-section-label>Error</div><div class=chat-tool-error>'), X = /* @__PURE__ */ a("<div class=chat-tool-children>"), Y = /* @__PURE__ */ a("<div class=chat-tool-call-body><div class=chat-tool-section>"), Z = /* @__PURE__ */ a("<div><div class=chat-tool-call-header><button type=button class=chat-tool-call-header-button><span class=chat-tool-collapse-btn></span><span></span><span class=chat-tool-name>"), tt = /* @__PURE__ */ a("<button type=button class=chat-tool-json-action-btn>Render full"), et = /* @__PURE__ */ a("<button type=button class=chat-tool-json-action-btn>Preview"), nt = /* @__PURE__ */ a("<button type=button class=chat-tool-json-action-btn>Show more"), rt = /* @__PURE__ */ a("<div class=chat-tool-section-header><div class=chat-tool-section-label></div><div class=chat-tool-json-actions>"), ot = /* @__PURE__ */ a("<pre>"), lt = /* @__PURE__ */ a("<div class=chat-tool-json-hint>Showing first <!> characters."), it = /* @__PURE__ */ a('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="9 18 15 12 9 6">'), ct = /* @__PURE__ */ a('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="6 9 12 15 18 9">'), st = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=12 cy=12 r=10></circle><polyline points="12 6 12 12 16 14">'), at = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 class=animate-spin><path d="M21 12a9 9 0 1 1-6.219-8.56">'), ut = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01">'), ft = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=12 cy=12 r=10></circle><line x1=15 y1=9 x2=9 y2=15></line><line x1=9 y1=9 x2=15 y2=15>');
7
+ var z = /* @__PURE__ */ a("<span class=chat-tool-summary>"), G = /* @__PURE__ */ a('<div class=chat-tool-approval-actions><button type=button class="chat-tool-approval-btn chat-tool-approval-btn-approve">Approve</button><button type=button class="chat-tool-approval-btn chat-tool-approval-btn-reject">Reject'), K = /* @__PURE__ */ a("<div class=chat-tool-section>"), Q = /* @__PURE__ */ a('<div class="chat-tool-section chat-tool-error-section"><div class=chat-tool-section-label>Error</div><div class=chat-tool-error>'), X = /* @__PURE__ */ a("<div class=chat-tool-children>"), Y = /* @__PURE__ */ a("<div class=chat-tool-call-body><div class=chat-tool-section>"), Z = /* @__PURE__ */ a("<div><div class=chat-tool-call-header><button type=button class=chat-tool-call-header-button><span class=chat-tool-collapse-btn></span><span></span><span class=chat-tool-name>"), tt = /* @__PURE__ */ a("<button type=button class=chat-tool-json-action-btn>Render full"), et = /* @__PURE__ */ a("<button type=button class=chat-tool-json-action-btn>Preview"), nt = /* @__PURE__ */ a("<button type=button class=chat-tool-json-action-btn>Show more"), rt = /* @__PURE__ */ a("<div class=chat-tool-section-header><div class=chat-tool-section-label></div><div class=chat-tool-json-actions>"), lt = /* @__PURE__ */ a("<pre>"), ot = /* @__PURE__ */ a("<div class=chat-tool-json-hint>Showing first <!> characters."), it = /* @__PURE__ */ a('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="9 18 15 12 9 6">'), ct = /* @__PURE__ */ a('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="6 9 12 15 18 9">'), st = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=12 cy=12 r=10></circle><polyline points="12 6 12 12 16 14">'), at = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 class=animate-spin><path d="M21 12a9 9 0 1 1-6.219-8.56">'), ut = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01">'), ft = /* @__PURE__ */ a('<svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><circle cx=12 cy=12 r=10></circle><line x1=15 y1=9 x2=9 y2=15></line><line x1=9 y1=9 x2=15 y2=15>');
8
8
  const jt = (t) => {
9
- const r = H(), [s, $] = v(!0), e = `chat-tool-call-body-${q()}`;
9
+ const r = H(), [s, $] = p(!0), e = `chat-tool-call-body-${q()}`;
10
10
  F(() => {
11
11
  $(t.block.collapsed ?? !0);
12
12
  });
13
13
  const f = () => s(), y = () => {
14
- $((o) => !o), r.toggleToolCollapse(t.messageId, t.block.toolId);
14
+ $((l) => !l), r.toggleToolCollapse(t.messageId, t.block.toolId);
15
15
  }, k = () => {
16
16
  switch (t.block.status) {
17
17
  case "pending":
18
- return "text-muted-foreground";
18
+ return "text-[var(--floe-ink-soft)]";
19
19
  case "running":
20
20
  return "text-info";
21
21
  case "success":
@@ -23,7 +23,7 @@ const jt = (t) => {
23
23
  case "error":
24
24
  return "text-error";
25
25
  default:
26
- return "text-muted-foreground";
26
+ return "text-[var(--floe-ink-soft)]";
27
27
  }
28
28
  }, _ = () => {
29
29
  switch (t.block.status) {
@@ -34,20 +34,20 @@ const jt = (t) => {
34
34
  case "success":
35
35
  return i(_t, {});
36
36
  case "error":
37
- return i(xt, {});
37
+ return i(vt, {});
38
38
  default:
39
39
  return null;
40
40
  }
41
- }, x = () => {
41
+ }, v = () => {
42
42
  if (t.block.status === "running") return "Running...";
43
43
  if (t.block.status === "error") {
44
- const o = t.block.error || "Unknown error";
45
- return `Error: ${o.slice(0, 50)}${o.length > 50 ? "..." : ""}`;
44
+ const l = t.block.error || "Unknown error";
45
+ return `Error: ${l.slice(0, 50)}${l.length > 50 ? "..." : ""}`;
46
46
  }
47
47
  return t.block.status === "success" ? typeof t.block.result == "string" ? t.block.result.slice(0, 60) + (t.block.result.length > 60 ? "..." : "") : "Completed" : "Pending";
48
48
  };
49
49
  return (() => {
50
- var o = Z(), g = o.firstChild, h = g.firstChild, E = h.firstChild, C = E.nextSibling, j = C.nextSibling;
50
+ var l = Z(), g = l.firstChild, h = g.firstChild, E = h.firstChild, C = E.nextSibling, j = C.nextSibling;
51
51
  return h.$$click = y, O(h, "aria-controls", e), c(E, i(b, {
52
52
  get when() {
53
53
  return f();
@@ -63,32 +63,32 @@ const jt = (t) => {
63
63
  return I(() => !!f())() && !(t.block.requiresApproval === !0 && t.block.approvalState === "required");
64
64
  },
65
65
  get children() {
66
- var l = z();
67
- return c(l, x), l;
66
+ var o = z();
67
+ return c(o, v), o;
68
68
  }
69
69
  }), null), c(g, i(b, {
70
70
  get when() {
71
71
  return I(() => t.block.requiresApproval === !0)() && t.block.approvalState === "required";
72
72
  },
73
73
  get children() {
74
- var l = G(), w = l.firstChild, u = w.nextSibling;
74
+ var o = G(), w = o.firstChild, u = w.nextSibling;
75
75
  return w.$$click = () => {
76
76
  r.approveToolCall(t.messageId, t.block.toolId, !0);
77
77
  }, u.$$click = () => {
78
78
  r.approveToolCall(t.messageId, t.block.toolId, !1);
79
- }, l;
79
+ }, o;
80
80
  }
81
- }), null), c(o, i(b, {
81
+ }), null), c(l, i(b, {
82
82
  get when() {
83
83
  return !f();
84
84
  },
85
85
  get children() {
86
- var l = Y(), w = l.firstChild;
87
- return O(l, "id", e), c(w, i(R, {
86
+ var o = Y(), w = o.firstChild;
87
+ return O(o, "id", e), c(w, i(R, {
88
88
  label: "Arguments",
89
89
  class: "chat-tool-args",
90
90
  value: () => t.block.args
91
- })), c(l, i(b, {
91
+ })), c(o, i(b, {
92
92
  get when() {
93
93
  return t.block.result !== void 0;
94
94
  },
@@ -100,7 +100,7 @@ const jt = (t) => {
100
100
  value: () => t.block.result
101
101
  })), u;
102
102
  }
103
- }), null), c(l, i(b, {
103
+ }), null), c(o, i(b, {
104
104
  get when() {
105
105
  return t.block.error;
106
106
  },
@@ -108,7 +108,7 @@ const jt = (t) => {
108
108
  var u = Q(), n = u.firstChild, d = n.nextSibling;
109
109
  return c(d, () => t.block.error), u;
110
110
  }
111
- }), null), c(l, i(b, {
111
+ }), null), c(o, i(b, {
112
112
  get when() {
113
113
  return I(() => !!t.block.children)() && t.block.children.length > 0;
114
114
  },
@@ -132,20 +132,20 @@ const jt = (t) => {
132
132
  })
133
133
  })), u;
134
134
  }
135
- }), null), l;
135
+ }), null), o;
136
136
  }
137
- }), null), B((l) => {
137
+ }), null), B((o) => {
138
138
  var w = P("chat-tool-call-block", t.class), u = !f(), n = P("chat-tool-status-icon", k());
139
- return w !== l.e && T(o, l.e = w), u !== l.t && O(h, "aria-expanded", l.t = u), n !== l.a && T(C, l.a = n), l;
139
+ return w !== o.e && T(l, o.e = w), u !== o.t && O(h, "aria-expanded", o.t = u), n !== o.a && T(C, o.a = n), o;
140
140
  }, {
141
141
  e: void 0,
142
142
  t: void 0,
143
143
  a: void 0
144
- }), o;
144
+ }), l;
145
145
  })();
146
146
  }, A = 2e4, ht = 2e4;
147
147
  function R(t) {
148
- const [r, s] = v("full"), [$, e] = v(!1), [f, y] = v(null), [k, _] = v(null), [x, o] = v(A);
148
+ const [r, s] = p("full"), [$, e] = p(!1), [f, y] = p(null), [k, _] = p(null), [v, l] = p(A);
149
149
  let g = 0, h = !1;
150
150
  V(() => {
151
151
  h = !0, g++;
@@ -153,27 +153,27 @@ function R(t) {
153
153
  const E = N(() => dt(t.value())), C = N(() => {
154
154
  const n = k();
155
155
  if (!n) return "";
156
- const d = x();
156
+ const d = v();
157
157
  return n.length > d ? n.slice(0, d) : n;
158
158
  }), j = () => {
159
159
  const n = k();
160
- return !!n && n.length > x();
161
- }, l = () => s("full"), w = () => {
162
- g++, s("preview"), e(!1), y(null), _(null), o(A);
160
+ return !!n && n.length > v();
161
+ }, o = () => s("full"), w = () => {
162
+ g++, s("preview"), e(!1), y(null), _(null), l(A);
163
163
  };
164
164
  F(() => {
165
165
  if (r() !== "full") return;
166
166
  const n = t.value(), d = ++g;
167
- e(!0), y(null), _(null), o(A);
168
- const S = n;
167
+ e(!0), y(null), _(null), l(A);
168
+ const x = n;
169
169
  U(() => {
170
170
  const m = () => !h && d === g;
171
171
  if (m())
172
172
  try {
173
- const p = gt(S);
174
- m() && _(p);
175
- } catch (p) {
176
- m() && y(p instanceof Error ? p.message : "Failed to render payload");
173
+ const S = gt(x);
174
+ m() && _(S);
175
+ } catch (S) {
176
+ m() && y(S instanceof Error ? S.message : "Failed to render payload");
177
177
  } finally {
178
178
  m() && e(!1);
179
179
  }
@@ -181,16 +181,16 @@ function R(t) {
181
181
  });
182
182
  const u = () => r() === "preview" ? E() : $() ? "Preparing..." : f() ? `Error: ${f()}` : C();
183
183
  return [(() => {
184
- var n = rt(), d = n.firstChild, S = d.nextSibling;
185
- return c(d, () => t.label), c(S, i(b, {
184
+ var n = rt(), d = n.firstChild, x = d.nextSibling;
185
+ return c(d, () => t.label), c(x, i(b, {
186
186
  get when() {
187
187
  return r() === "preview";
188
188
  },
189
189
  get children() {
190
190
  var m = tt();
191
- return m.$$click = l, m;
191
+ return m.$$click = o, m;
192
192
  }
193
- }), null), c(S, i(b, {
193
+ }), null), c(x, i(b, {
194
194
  get when() {
195
195
  return r() === "full";
196
196
  },
@@ -198,25 +198,25 @@ function R(t) {
198
198
  var m = et();
199
199
  return m.$$click = w, m;
200
200
  }
201
- }), null), c(S, i(b, {
201
+ }), null), c(x, i(b, {
202
202
  get when() {
203
203
  return I(() => r() === "full")() && j();
204
204
  },
205
205
  get children() {
206
206
  var m = nt();
207
- return m.$$click = () => o((p) => p + ht), m;
207
+ return m.$$click = () => l((S) => S + ht), m;
208
208
  }
209
209
  }), null), n;
210
210
  })(), (() => {
211
- var n = ot();
211
+ var n = lt();
212
212
  return c(n, u), B(() => T(n, t.class)), n;
213
213
  })(), i(b, {
214
214
  get when() {
215
215
  return I(() => r() === "full")() && j();
216
216
  },
217
217
  get children() {
218
- var n = lt(), d = n.firstChild, S = d.nextSibling;
219
- return S.nextSibling, c(n, () => x().toLocaleString(), S), n;
218
+ var n = ot(), d = n.firstChild, x = d.nextSibling;
219
+ return x.nextSibling, c(n, () => v().toLocaleString(), x), n;
220
220
  }
221
221
  })];
222
222
  }
@@ -259,7 +259,7 @@ function bt(t, r) {
259
259
  return J(t, r, 0, /* @__PURE__ */ new WeakSet());
260
260
  }
261
261
  function J(t, r, s, $) {
262
- const e = (o) => " ".repeat(o);
262
+ const e = (l) => " ".repeat(l);
263
263
  if (t === null) return "null";
264
264
  if (t === void 0) return "undefined";
265
265
  if (typeof t == "string") return JSON.stringify(M(t, r.maxStringLen));
@@ -278,28 +278,28 @@ function J(t, r, s, $) {
278
278
  if ($.has(f)) return JSON.stringify("[Circular]");
279
279
  if ($.add(f), Array.isArray(t)) {
280
280
  if (s >= r.maxDepth) return JSON.stringify(`[Array(${t.length})]`);
281
- const o = ["["], g = Math.min(t.length, r.maxArrayEntries);
281
+ const l = ["["], g = Math.min(t.length, r.maxArrayEntries);
282
282
  for (let h = 0; h < g; h++)
283
- o.push(`${e(s + 1)}${J(t[h], r, s + 1, $)}`);
284
- return t.length > g && o.push(`${e(s + 1)}"... (${t.length - g} more)"`), o.push(`${e(s)}]`), o.join(`
283
+ l.push(`${e(s + 1)}${J(t[h], r, s + 1, $)}`);
284
+ return t.length > g && l.push(`${e(s + 1)}"... (${t.length - g} more)"`), l.push(`${e(s)}]`), l.join(`
285
285
  `);
286
286
  }
287
287
  if (s >= r.maxDepth) return JSON.stringify("[Object]");
288
288
  const y = t, k = ["{"];
289
- let _ = 0, x = !1;
290
- for (const o in y) {
291
- if (!Object.prototype.hasOwnProperty.call(y, o)) continue;
289
+ let _ = 0, v = !1;
290
+ for (const l in y) {
291
+ if (!Object.prototype.hasOwnProperty.call(y, l)) continue;
292
292
  if (_ >= r.maxObjectEntries) {
293
- x = !0;
293
+ v = !0;
294
294
  break;
295
295
  }
296
- const g = y[o], h = J(g, r, s + 1, $);
297
- k.push(`${e(s + 1)}${JSON.stringify(o)}: ${h}`), _++;
296
+ const g = y[l], h = J(g, r, s + 1, $);
297
+ k.push(`${e(s + 1)}${JSON.stringify(l)}: ${h}`), _++;
298
298
  }
299
- return x && k.push(`${e(s + 1)}"...": "... (truncated)"`), k.push(`${e(s)}}`), k.join(`
299
+ return v && k.push(`${e(s + 1)}"...": "... (truncated)"`), k.push(`${e(s)}}`), k.join(`
300
300
  `);
301
301
  }
302
- const $t = () => it(), yt = () => ct(), kt = () => st(), wt = () => at(), _t = () => ut(), xt = () => ft();
302
+ const $t = () => it(), yt = () => ct(), kt = () => st(), wt = () => at(), _t = () => ut(), vt = () => ft();
303
303
  L(["click"]);
304
304
  export {
305
305
  jt as ToolCallBlock
@@ -1,10 +1,10 @@
1
- import { insert as d, effect as m, className as l, template as f } from "solid-js/web";
1
+ import { insert as f, effect as d, className as l, template as v } from "solid-js/web";
2
2
  import "solid-js";
3
3
  import { cn as s } from "../../../utils/cn.js";
4
- var b = /* @__PURE__ */ f("<div><span></span><span class=chat-connection-label>");
5
- const h = (t) => {
4
+ var m = /* @__PURE__ */ v("<div><span></span><span class=chat-connection-label>");
5
+ const h = (e) => {
6
6
  const i = () => {
7
- switch (t.state) {
7
+ switch (e.state) {
8
8
  case "connecting":
9
9
  return {
10
10
  label: "Connecting...",
@@ -18,7 +18,7 @@ const h = (t) => {
18
18
  case "disconnected":
19
19
  return {
20
20
  label: "Disconnected",
21
- color: "text-muted-foreground"
21
+ color: "text-[var(--floe-ink-soft)]"
22
22
  };
23
23
  case "error":
24
24
  return {
@@ -28,15 +28,15 @@ const h = (t) => {
28
28
  default:
29
29
  return {
30
30
  label: "Unknown",
31
- color: "text-muted-foreground"
31
+ color: "text-[var(--floe-ink-soft)]"
32
32
  };
33
33
  }
34
34
  }, o = () => i();
35
35
  return (() => {
36
- var n = b(), r = n.firstChild, u = r.nextSibling;
37
- return d(u, () => o().label), m((e) => {
38
- var c = s("chat-connection-status", o().color, t.class), a = s("chat-connection-dot", t.state === "connecting" && "animate-pulse");
39
- return c !== e.e && l(n, e.e = c), a !== e.t && l(r, e.t = a), e;
36
+ var n = m(), c = n.firstChild, u = c.nextSibling;
37
+ return f(u, () => o().label), d((t) => {
38
+ var r = s("chat-connection-status", o().color, e.class), a = s("chat-connection-dot", e.state === "connecting" && "animate-pulse");
39
+ return r !== t.e && l(n, t.e = r), a !== t.t && l(c, t.t = a), t;
40
40
  }, {
41
41
  e: void 0,
42
42
  t: void 0