@burdenoff/fe-libs 2026.719.6 → 2026.720.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantWidget.d.ts","sourceRoot":"","sources":["../../../../src/shared/components/assistantWidget/AssistantWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAML,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAiBf,OAAO,KAAK,EAA2B,kBAAkB,EAA0B,MAAM,SAAS,CAAC;AAEnG;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8EAA8E;AAC9E,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AA6C1E,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwsBpD,CAAC"}
1
+ {"version":3,"file":"AssistantWidget.d.ts","sourceRoot":"","sources":["../../../../src/shared/components/assistantWidget/AssistantWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAML,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAmBf,OAAO,KAAK,EAGV,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8EAA8E;AAC9E,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AA0D1E,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA+xBpD,CAAC"}
@@ -2,170 +2,201 @@ import { cn as e } from "../../utils/cn.js";
2
2
  import { useVoiceInput as t } from "./useVoiceInput.js";
3
3
  import { MessageContent as n } from "./MessageContent.js";
4
4
  import { useCallback as r, useEffect as i, useMemo as ee, useRef as a, useState as o } from "react";
5
- import { History as te, Loader2 as s, MessageCircle as ne, Mic as re, PanelLeftClose as ie, PanelLeftOpen as ae, Plus as oe, Send as se, Sparkles as c, Trash2 as ce, X as l } from "lucide-react";
6
- import { Fragment as le, jsx as u, jsxs as d } from "react/jsx-runtime";
5
+ import { Download as te, FileArchive as ne, History as re, Loader2 as s, MessageCircle as ie, Mic as ae, PanelLeftClose as oe, PanelLeftOpen as se, Plus as ce, Send as le, Sparkles as ue, Trash2 as de, X as fe } from "lucide-react";
6
+ import { Fragment as pe, jsx as c, jsxs as l } from "react/jsx-runtime";
7
7
  //#region src/shared/components/assistantWidget/AssistantWidget.tsx
8
- var f = "bf:toggle-assistant-widget", p = "bf:assistant-widget:isOpen", m = "bf:assistant-widget:railOpen";
9
- function ue() {
8
+ var u = "bf:toggle-assistant-widget", d = "bf:assistant-widget:isOpen", f = "bf:assistant-widget:railOpen";
9
+ function me() {
10
10
  if (typeof window > "u") return !0;
11
11
  try {
12
- return window.sessionStorage.getItem(m) !== "0";
12
+ return window.sessionStorage.getItem(f) !== "0";
13
13
  } catch {
14
14
  return !0;
15
15
  }
16
16
  }
17
- function de(e) {
17
+ function he(e) {
18
18
  if (!(typeof window > "u")) try {
19
- window.sessionStorage.setItem(m, e ? "1" : "0");
19
+ window.sessionStorage.setItem(f, e ? "1" : "0");
20
20
  } catch {}
21
21
  }
22
- function fe() {
22
+ function ge() {
23
23
  if (typeof window > "u") return !1;
24
24
  try {
25
- return window.sessionStorage.getItem(p) === "1";
25
+ return window.sessionStorage.getItem(d) === "1";
26
26
  } catch {
27
27
  return !1;
28
28
  }
29
29
  }
30
- function h(e) {
30
+ function p(e) {
31
31
  if (!(typeof window > "u")) try {
32
- window.sessionStorage.setItem(p, e ? "1" : "0");
32
+ window.sessionStorage.setItem(d, e ? "1" : "0");
33
33
  } catch {}
34
34
  }
35
- function pe() {
35
+ function _e() {
36
36
  return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
37
37
  }
38
- var g = ({ transport: p, modes: m, defaultModeId: g, title: _ = "AI Assistant", subtitle: v = "Ask me to do things on this screen — I can run them for you.", placeholder: y = "Ask anything, or describe what to create…", launcherClassName: b, voiceLang: me = "en-US", layout: x = "floating", showSessionPanel: he = !1, onNavigate: ge, topOffsetPx: S = 0 }) => {
39
- let C = ee(() => m && m.length > 0 ? m : [{
38
+ function ve(e) {
39
+ if (!Number.isFinite(e) || e <= 0) return "";
40
+ let t = [
41
+ "B",
42
+ "KB",
43
+ "MB",
44
+ "GB"
45
+ ], n = e, r = 0;
46
+ for (; n >= 1024 && r < t.length - 1;) n /= 1024, r += 1;
47
+ return `${n >= 10 || r === 0 ? Math.round(n) : n.toFixed(1)} ${t[r]}`;
48
+ }
49
+ var m = ({ transport: d, modes: f, defaultModeId: m, title: h = "AI Assistant", subtitle: g = "Ask me to do things on this screen — I can run them for you.", placeholder: _ = "Ask anything, or describe what to create…", launcherClassName: ye, voiceLang: be = "en-US", layout: v = "floating", showSessionPanel: xe = !1, onNavigate: Se, topOffsetPx: Ce = 0 }) => {
50
+ let y = ee(() => f && f.length > 0 ? f : [{
40
51
  id: "__default__",
41
- label: _,
42
- transport: p,
43
- title: _,
44
- subtitle: v,
45
- placeholder: y
52
+ label: h,
53
+ transport: d,
54
+ title: h,
55
+ subtitle: g,
56
+ placeholder: _
46
57
  }], [
47
- m,
48
- p,
49
- _,
50
- v,
51
- y
52
- ]), [w, _e] = o(() => g ?? C[0]?.id ?? "__default__"), T = C.find((e) => e.id === w) ?? C[0], E = T.transport, ve = T.title ?? _, ye = T.subtitle ?? v, be = T.placeholder ?? y;
58
+ f,
59
+ d,
60
+ h,
61
+ g,
62
+ _
63
+ ]), [b, we] = o(() => m ?? y[0]?.id ?? "__default__"), x = y.find((e) => e.id === b) ?? y[0], S = x.transport, C = x.title ?? h, Te = x.subtitle ?? g, Ee = x.placeholder ?? _;
53
64
  i(() => {
54
- C.some((e) => e.id === w) || _e(C[0]?.id ?? "__default__");
55
- }, [C, w]);
56
- let D = !!E;
65
+ y.some((e) => e.id === b) || we(y[0]?.id ?? "__default__");
66
+ }, [y, b]);
67
+ let w = !!S;
57
68
  i(() => {
58
- D || console.error("[AssistantWidget] No transport available — supply `transport`, or a non-empty `modes` where each entry has a transport.");
59
- }, [D]);
60
- let [O, k] = o(() => fe()), [A, j] = o([]), [M, N] = o(""), [P, F] = o(!1), [xe, I] = o(!1), [L, R] = o([]), [z, B] = o(!1), [Se, V] = o(!1), [H, Ce] = o(() => ue()), U = a(null), W = a(null), G = a(null), K = a(!1), q = x === "sidebar", we = he && !!E?.newSession, Te = r(() => {
61
- Ce((e) => {
69
+ w || console.error("[AssistantWidget] No transport available — supply `transport`, or a non-empty `modes` where each entry has a transport.");
70
+ }, [w]);
71
+ let [T, E] = o(() => ge()), [D, O] = o([]), [k, A] = o(""), [j, M] = o(!1), [De, N] = o(!1), [P, F] = o([]), [I, L] = o(!1), [Oe, ke] = o(!1), [Ae, je] = o(() => me()), [Me, R] = o([]), [z, B] = o(null), V = a(null), H = a(null), U = a(null), W = a(!1), G = v === "sidebar", K = xe && !!S?.newSession, Ne = r(() => {
72
+ je((e) => {
62
73
  let t = !e;
63
- return de(t), t;
74
+ return he(t), t;
64
75
  });
65
- }, []), J = t(me), Ee = r(() => {
66
- h(!0), k(!0), E.prewarm?.("full");
67
- }, [E]), Y = r(() => {
68
- h(!1), k(!1), E.suspend?.();
69
- }, [E]), X = r(() => {
70
- k((e) => {
76
+ }, []), q = t(be), Pe = r(() => {
77
+ p(!0), E(!0), S.prewarm?.("full");
78
+ }, [S]), J = r(() => {
79
+ p(!1), E(!1), S.suspend?.();
80
+ }, [S]), Y = r(() => {
81
+ E((e) => {
71
82
  let t = !e;
72
- return h(t), t ? E.prewarm?.("full") : E.suspend?.(), t;
83
+ return p(t), t ? S.prewarm?.("full") : S.suspend?.(), t;
73
84
  });
74
- }, [E]);
85
+ }, [S]);
75
86
  i(() => {
76
87
  let e = (e) => {
77
88
  let t = e.detail;
78
- t?.open === !0 ? Ee() : t?.open === !1 ? Y() : X();
89
+ t?.open === !0 ? Pe() : t?.open === !1 ? J() : Y();
79
90
  };
80
- return window.addEventListener(f, e), () => window.removeEventListener(f, e);
91
+ return window.addEventListener(u, e), () => window.removeEventListener(u, e);
81
92
  }, [
82
- Ee,
83
- Y,
84
- X
93
+ Pe,
94
+ J,
95
+ Y
85
96
  ]), i(() => {
86
- J.isListening && J.transcript && N(J.transcript);
87
- }, [J.transcript, J.isListening]);
88
- let De = a(w);
97
+ q.isListening && q.transcript && A(q.transcript);
98
+ }, [q.transcript, q.isListening]);
99
+ let X = r(async () => {
100
+ if (S.listArtifacts) try {
101
+ R(await S.listArtifacts());
102
+ } catch {
103
+ R([]);
104
+ }
105
+ }, [S]), Fe = a(b);
89
106
  i(() => {
90
- De.current !== w && (De.current = w, G.current?.abort(), G.current = null, F(!1), j([]), N(""), R([]), B(!1), I(!1), K.current = !1);
91
- }, [w]), i(() => {
92
- if (!O || K.current) return;
93
- let e = E.loadHistory;
107
+ Fe.current !== b && (Fe.current = b, U.current?.abort(), U.current = null, M(!1), O([]), A(""), F([]), L(!1), N(!1), R([]), W.current = !1);
108
+ }, [b]), i(() => {
109
+ if (!T || W.current) return;
110
+ let e = S.loadHistory;
94
111
  if (!e) {
95
- K.current = !0;
112
+ W.current = !0;
96
113
  return;
97
114
  }
98
- K.current = !0;
115
+ W.current = !0;
99
116
  let t = !1;
100
- return I(!0), (async () => {
117
+ return N(!0), (async () => {
101
118
  try {
102
119
  let n = await e();
103
- !t && n.length > 0 && j((e) => e.length === 0 ? n : e);
120
+ !t && n.length > 0 && (O((e) => e.length === 0 ? n : e), X());
104
121
  } catch {} finally {
105
- t || I(!1);
122
+ t || N(!1);
106
123
  }
107
124
  })(), () => {
108
125
  t = !0;
109
126
  };
110
- }, [O, E]), i(() => {
111
- O && W.current && (W.current.scrollTop = W.current.scrollHeight);
112
- }, [A, O]);
127
+ }, [
128
+ T,
129
+ S,
130
+ X
131
+ ]), i(() => {
132
+ T && H.current && (H.current.scrollTop = H.current.scrollHeight);
133
+ }, [D, T]);
113
134
  let Z = r((e, t) => {
114
- j((n) => n.map((n) => n.id === e ? {
135
+ O((n) => n.map((n) => n.id === e ? {
115
136
  ...n,
116
137
  ...t
117
138
  } : n));
118
139
  }, []), Q = r(async () => {
119
- if (E.listSessions) {
120
- V(!0);
140
+ if (S.listSessions) {
141
+ ke(!0);
121
142
  try {
122
- R(await E.listSessions());
143
+ F(await S.listSessions());
123
144
  } catch {
124
- R([]);
145
+ F([]);
125
146
  } finally {
126
- V(!1);
147
+ ke(!1);
148
+ }
149
+ }
150
+ }, [S]), Ie = r(async (e) => {
151
+ if (!(!S.downloadArtifact || z)) {
152
+ B(e.path);
153
+ try {
154
+ await S.downloadArtifact(e);
155
+ } catch {} finally {
156
+ B(null);
127
157
  }
128
158
  }
129
- }, [E]), Oe = r(async () => {
130
- !E.newSession || P || (j([]), N(""), B(!1), await E.newSession());
131
- }, [E, P]), ke = r(async (e, t) => {
132
- if (!(!E.deleteSession || P)) {
133
- R((t) => t.filter((t) => t.id !== e)), t && (j([]), N(""));
159
+ }, [S, z]), Le = r(async () => {
160
+ !S.newSession || j || (O([]), A(""), L(!1), R([]), await S.newSession());
161
+ }, [S, j]), Re = r(async (e, t) => {
162
+ if (!(!S.deleteSession || j)) {
163
+ F((t) => t.filter((t) => t.id !== e)), t && (O([]), A(""));
134
164
  try {
135
- await E.deleteSession(e);
165
+ await S.deleteSession(e);
136
166
  } finally {
137
167
  Q();
138
168
  }
139
169
  }
140
170
  }, [
141
- E,
142
- P,
171
+ S,
172
+ j,
143
173
  Q
144
- ]), Ae = r(() => {
145
- B((e) => (e || Q(), !e));
146
- }, [Q]), je = r(async (e) => {
147
- if (!(!E.selectSession || P)) {
148
- I(!0);
174
+ ]), ze = r(() => {
175
+ L((e) => (e || Q(), !e));
176
+ }, [Q]), Be = r(async (e) => {
177
+ if (!(!S.selectSession || j)) {
178
+ N(!0);
149
179
  try {
150
- j(await E.selectSession(e)), B(!1), Q();
180
+ O(await S.selectSession(e)), L(!1), Q(), X();
151
181
  } catch {} finally {
152
- I(!1);
182
+ N(!1);
153
183
  }
154
184
  }
155
185
  }, [
156
- E,
157
- P,
158
- Q
186
+ S,
187
+ j,
188
+ Q,
189
+ X
159
190
  ]), $ = r(async () => {
160
- let e = M.trim();
161
- if (!e || P) return;
162
- J.isListening && J.stop(), J.reset(), N(""), U.current && (U.current.style.height = "auto");
191
+ let e = k.trim();
192
+ if (!e || j) return;
193
+ q.isListening && q.stop(), q.reset(), A(""), V.current && (V.current.style.height = "auto");
163
194
  let t = {
164
- id: pe(),
195
+ id: _e(),
165
196
  role: "user",
166
197
  content: e
167
- }, n = pe();
168
- j((e) => [
198
+ }, n = _e();
199
+ O((e) => [
169
200
  ...e,
170
201
  t,
171
202
  {
@@ -174,11 +205,11 @@ var g = ({ transport: p, modes: m, defaultModeId: g, title: _ = "AI Assistant",
174
205
  content: "",
175
206
  pending: !0
176
207
  }
177
- ]), F(!0);
208
+ ]), M(!0);
178
209
  let r = new AbortController();
179
- G.current = r;
210
+ U.current = r;
180
211
  try {
181
- let { text: t } = await E.sendPrompt({
212
+ let { text: t } = await S.sendPrompt({
182
213
  prompt: e,
183
214
  signal: r.signal,
184
215
  onProgress: (e) => Z(n, { content: e })
@@ -186,7 +217,7 @@ var g = ({ transport: p, modes: m, defaultModeId: g, title: _ = "AI Assistant",
186
217
  Z(n, {
187
218
  content: t,
188
219
  pending: !1
189
- });
220
+ }), X();
190
221
  } catch (e) {
191
222
  Z(n, {
192
223
  content: `Sorry, I couldn't complete that: ${e instanceof Error ? e.message : "Something went wrong. Please try again."}`,
@@ -194,232 +225,252 @@ var g = ({ transport: p, modes: m, defaultModeId: g, title: _ = "AI Assistant",
194
225
  error: !0
195
226
  });
196
227
  } finally {
197
- F(!1), G.current = null, z && Q();
228
+ M(!1), U.current = null, I && Q();
198
229
  }
199
230
  }, [
200
- M,
201
- P,
231
+ k,
232
+ j,
202
233
  Z,
203
- E,
204
- J,
205
- z,
206
- Q
207
- ]), Me = r((e) => {
234
+ S,
235
+ q,
236
+ I,
237
+ Q,
238
+ X
239
+ ]), Ve = r((e) => {
208
240
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), $());
209
- }, [$]), Ne = r(() => {
210
- let e = U.current;
241
+ }, [$]), He = r(() => {
242
+ let e = V.current;
211
243
  e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 120)}px`);
212
- }, []), Pe = r(() => {
213
- J.isListening ? J.stop() : J.start();
214
- }, [J]), Fe = ee(() => /* @__PURE__ */ u("button", {
244
+ }, []), Ue = r(() => {
245
+ q.isListening ? q.stop() : q.start();
246
+ }, [q]), We = ee(() => /* @__PURE__ */ c("button", {
215
247
  type: "button",
216
- onClick: X,
217
- onMouseEnter: () => !O && E.prewarm?.("probe"),
218
- onFocus: () => !O && E.prewarm?.("probe"),
219
- "aria-label": O ? "Close AI assistant" : "Open AI assistant",
220
- "aria-expanded": O,
248
+ onClick: Y,
249
+ onMouseEnter: () => !T && S.prewarm?.("probe"),
250
+ onFocus: () => !T && S.prewarm?.("probe"),
251
+ "aria-label": T ? "Close AI assistant" : "Open AI assistant",
252
+ "aria-expanded": T,
221
253
  "data-testid": "assistant-widget-launcher",
222
- className: e("fixed bottom-6 right-6 z-[100] inline-flex size-14 items-center justify-center rounded-full", "bg-action-primary-bg text-action-primary-text shadow-xl transition-transform duration-200", "hover:scale-105 hover:bg-action-primary-bg-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong cursor-pointer", b),
223
- children: u(O ? l : c, { className: "size-6" })
254
+ className: e("fixed bottom-6 right-6 z-[100] inline-flex size-14 items-center justify-center rounded-full", "bg-action-primary-bg text-action-primary-text shadow-xl transition-transform duration-200", "hover:scale-105 hover:bg-action-primary-bg-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong cursor-pointer", ye),
255
+ children: c(T ? fe : ue, { className: "size-6" })
224
256
  }), [
225
- O,
226
- X,
227
- b,
228
- E
257
+ T,
258
+ Y,
259
+ ye,
260
+ S
229
261
  ]);
230
- return D ? /* @__PURE__ */ d(le, { children: [Fe, O ? /* @__PURE__ */ d("div", {
262
+ return w ? /* @__PURE__ */ l(pe, { children: [We, T ? /* @__PURE__ */ l("div", {
231
263
  role: "dialog",
232
- "aria-label": ve,
264
+ "aria-label": C,
233
265
  "data-testid": "assistant-widget-window",
234
- "data-layout": x,
235
- style: q ? {
236
- top: S,
237
- height: `calc(100vh - ${String(S)}px)`
266
+ "data-layout": v,
267
+ style: G ? {
268
+ top: Ce,
269
+ height: `calc(100vh - ${String(Ce)}px)`
238
270
  } : void 0,
239
- className: e("fixed z-[100] flex overflow-hidden border-border-default bg-bg-surface shadow-2xl", q ? "bottom-0 right-0 w-full border-l sm:w-[480px] lg:w-[560px] animate-in slide-in-from-right duration-200" : "flex-col rounded-xl border bottom-24 right-6 h-[560px] max-h-[calc(100vh-7rem)] w-[calc(100vw-3rem)] sm:w-[400px] animate-in slide-in-from-bottom-2 fade-in duration-200"),
240
- children: [q && we && H ? /* @__PURE__ */ d("aside", {
271
+ className: e("fixed z-[100] flex overflow-hidden border-border-default bg-bg-surface shadow-2xl", G ? "bottom-0 right-0 w-full border-l sm:w-[480px] lg:w-[560px] animate-in slide-in-from-right duration-200" : "flex-col rounded-xl border bottom-24 right-6 h-[560px] max-h-[calc(100vh-7rem)] w-[calc(100vw-3rem)] sm:w-[400px] animate-in slide-in-from-bottom-2 fade-in duration-200"),
272
+ children: [G && K && Ae ? /* @__PURE__ */ l("aside", {
241
273
  "data-testid": "assistant-session-panel",
242
274
  className: "flex w-[168px] shrink-0 flex-col gap-1 border-r border-border-subtle bg-bg-sunken p-2",
243
275
  children: [
244
- /* @__PURE__ */ d("button", {
276
+ /* @__PURE__ */ l("button", {
245
277
  type: "button",
246
- onClick: Te,
278
+ onClick: Ne,
247
279
  "aria-label": "Hide chats",
248
280
  "aria-expanded": !0,
249
281
  title: "Hide chats",
250
282
  "data-testid": "assistant-rail-toggle",
251
283
  className: "mb-1 flex items-center gap-2 rounded-md px-2 py-2 text-xs font-medium text-text-secondary transition-colors hover:bg-bg-surface hover:text-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong cursor-pointer",
252
- children: [/* @__PURE__ */ u(ie, { className: "size-4 shrink-0" }), "Hide chats"]
284
+ children: [/* @__PURE__ */ c(oe, { className: "size-4 shrink-0" }), "Hide chats"]
253
285
  }),
254
- /* @__PURE__ */ d("button", {
286
+ /* @__PURE__ */ l("button", {
255
287
  type: "button",
256
- onClick: () => void Oe(),
257
- disabled: P,
288
+ onClick: () => void Le(),
289
+ disabled: j,
258
290
  "data-testid": "assistant-new-chat",
259
291
  className: "flex items-center gap-2 rounded-md px-2 py-2 text-xs font-medium text-text-primary transition-colors hover:bg-bg-surface disabled:opacity-50 cursor-pointer",
260
- children: [/* @__PURE__ */ u(oe, { className: "size-4 shrink-0" }), "New chat"]
292
+ children: [/* @__PURE__ */ c(ce, { className: "size-4 shrink-0" }), "New chat"]
261
293
  }),
262
- /* @__PURE__ */ d("button", {
294
+ /* @__PURE__ */ l("button", {
263
295
  type: "button",
264
- onClick: Ae,
265
- "aria-expanded": z,
296
+ onClick: ze,
297
+ "aria-expanded": I,
266
298
  "data-testid": "assistant-history-toggle",
267
299
  className: "flex items-center gap-2 rounded-md px-2 py-2 text-xs font-medium text-text-primary transition-colors hover:bg-bg-surface cursor-pointer",
268
- children: [/* @__PURE__ */ u(te, { className: "size-4 shrink-0" }), "History"]
300
+ children: [/* @__PURE__ */ c(re, { className: "size-4 shrink-0" }), "History"]
269
301
  }),
270
- z ? /* @__PURE__ */ u("div", {
302
+ I ? /* @__PURE__ */ c("div", {
271
303
  "data-testid": "assistant-history-list",
272
304
  className: "mt-1 flex-1 space-y-0.5 overflow-y-auto border-t border-border-subtle pt-2",
273
- children: Se && L.length === 0 ? /* @__PURE__ */ d("p", {
305
+ children: Oe && P.length === 0 ? /* @__PURE__ */ l("p", {
274
306
  className: "flex items-center gap-1.5 px-2 py-1 text-[11px] text-text-muted",
275
- children: [/* @__PURE__ */ u(s, { className: "size-3 animate-spin" }), "Loading…"]
276
- }) : L.length === 0 ? /* @__PURE__ */ u("p", {
307
+ children: [/* @__PURE__ */ c(s, { className: "size-3 animate-spin" }), "Loading…"]
308
+ }) : P.length === 0 ? /* @__PURE__ */ c("p", {
277
309
  className: "px-2 py-1 text-[11px] leading-relaxed text-text-muted",
278
310
  children: "No past chats yet."
279
- }) : L.map((t) => /* @__PURE__ */ d("div", {
311
+ }) : P.map((t) => /* @__PURE__ */ l("div", {
280
312
  "data-testid": "assistant-history-row",
281
313
  className: e("group flex items-center gap-1 rounded pr-1 transition-colors", t.active ? "bg-bg-surface" : "hover:bg-bg-surface"),
282
- children: [/* @__PURE__ */ u("button", {
314
+ children: [/* @__PURE__ */ c("button", {
283
315
  type: "button",
284
- onClick: () => void je(t.id),
316
+ onClick: () => void Be(t.id),
285
317
  title: t.title,
286
318
  "data-testid": "assistant-history-item",
287
319
  className: e("min-w-0 flex-1 truncate rounded px-2 py-1.5 text-left text-[11px] leading-relaxed cursor-pointer", t.active ? "font-medium text-text-primary" : "text-text-secondary group-hover:text-text-primary"),
288
320
  children: t.title
289
- }), E.deleteSession ? /* @__PURE__ */ u("button", {
321
+ }), S.deleteSession ? /* @__PURE__ */ c("button", {
290
322
  type: "button",
291
- onClick: () => void ke(t.id, !!t.active),
292
- disabled: P,
323
+ onClick: () => void Re(t.id, !!t.active),
324
+ disabled: j,
293
325
  "aria-label": `Delete chat: ${t.title}`,
294
326
  title: "Delete this chat",
295
327
  "data-testid": "assistant-delete-chat",
296
328
  className: "inline-flex size-6 shrink-0 items-center justify-center rounded text-text-muted opacity-0 transition-opacity hover:text-status-error-bg focus-visible:opacity-100 group-hover:opacity-100 disabled:opacity-30 cursor-pointer",
297
- children: /* @__PURE__ */ u(ce, { className: "size-3.5" })
329
+ children: /* @__PURE__ */ c(de, { className: "size-3.5" })
298
330
  }) : null]
299
331
  }, t.id))
300
332
  }) : null
301
333
  ]
302
- }) : null, /* @__PURE__ */ d("div", {
334
+ }) : null, /* @__PURE__ */ l("div", {
303
335
  className: "flex min-w-0 flex-1 flex-col",
304
336
  children: [
305
- /* @__PURE__ */ d("div", {
337
+ /* @__PURE__ */ l("div", {
306
338
  className: "flex items-center justify-between gap-2 border-b border-border-subtle bg-bg-surface px-4 py-3",
307
- children: [/* @__PURE__ */ d("div", {
339
+ children: [/* @__PURE__ */ l("div", {
308
340
  className: "flex min-w-0 items-center gap-2",
309
- children: [q && we && !H ? /* @__PURE__ */ d("button", {
341
+ children: [G && K && !Ae ? /* @__PURE__ */ l("button", {
310
342
  type: "button",
311
- onClick: Te,
343
+ onClick: Ne,
312
344
  "aria-label": "Show chats",
313
345
  "aria-expanded": !1,
314
346
  title: "Show chats",
315
347
  "data-testid": "assistant-rail-toggle",
316
348
  className: "inline-flex shrink-0 items-center gap-1.5 rounded-md border border-border-subtle px-2 py-1.5 text-xs font-medium text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong cursor-pointer",
317
- children: [/* @__PURE__ */ u(ae, { className: "size-4" }), "Chats"]
318
- }) : /* @__PURE__ */ u("span", {
349
+ children: [/* @__PURE__ */ c(se, { className: "size-4" }), "Chats"]
350
+ }) : /* @__PURE__ */ c("span", {
319
351
  className: "inline-flex size-7 shrink-0 items-center justify-center rounded-full bg-action-primary-bg/10 text-action-primary-bg",
320
- children: /* @__PURE__ */ u(c, { className: "size-4" })
321
- }), /* @__PURE__ */ u("h2", {
352
+ children: /* @__PURE__ */ c(ue, { className: "size-4" })
353
+ }), /* @__PURE__ */ c("h2", {
322
354
  className: "truncate text-sm font-semibold text-text-primary",
323
- children: ve
355
+ children: C
324
356
  })]
325
- }), /* @__PURE__ */ u("button", {
357
+ }), /* @__PURE__ */ c("button", {
326
358
  type: "button",
327
- onClick: Y,
359
+ onClick: J,
328
360
  "aria-label": "Close AI assistant",
329
361
  "data-testid": "assistant-widget-close",
330
362
  className: "inline-flex size-8 shrink-0 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-bg-sunken hover:text-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong cursor-pointer",
331
- children: /* @__PURE__ */ u(l, { className: "size-4" })
363
+ children: /* @__PURE__ */ c(fe, { className: "size-4" })
332
364
  })]
333
365
  }),
334
- C.length > 1 ? /* @__PURE__ */ u("div", {
366
+ y.length > 1 ? /* @__PURE__ */ c("div", {
335
367
  role: "tablist",
336
368
  "aria-label": "Assistant mode",
337
369
  "data-testid": "assistant-mode-switcher",
338
370
  className: "flex items-center gap-1 border-b border-border-subtle bg-bg-surface px-3 py-2",
339
- children: C.map((t) => {
340
- let n = t.id === w;
341
- return /* @__PURE__ */ u("button", {
371
+ children: y.map((t) => {
372
+ let n = t.id === b;
373
+ return /* @__PURE__ */ c("button", {
342
374
  type: "button",
343
375
  role: "tab",
344
376
  "aria-selected": n,
345
377
  tabIndex: n ? 0 : -1,
346
- onClick: () => _e(t.id),
347
- disabled: P,
348
- title: P ? "Finish the current turn before switching" : t.label,
378
+ onClick: () => we(t.id),
379
+ disabled: j,
380
+ title: j ? "Finish the current turn before switching" : t.label,
349
381
  "data-testid": `assistant-mode-${t.id}`,
350
382
  className: e("rounded-md px-2.5 py-1 text-xs font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer", n ? "bg-action-primary-bg text-action-primary-text" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"),
351
383
  children: t.label
352
384
  }, t.id);
353
385
  })
354
386
  }) : null,
355
- /* @__PURE__ */ u("div", {
356
- ref: W,
357
- className: "flex-1 space-y-3 overflow-y-auto px-4 py-4",
387
+ /* @__PURE__ */ c("div", {
388
+ ref: H,
389
+ className: "min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4",
358
390
  "data-testid": "assistant-widget-messages",
359
- children: A.length === 0 && xe ? /* @__PURE__ */ d("div", {
391
+ children: D.length === 0 && De ? /* @__PURE__ */ l("div", {
360
392
  "data-testid": "assistant-widget-restoring",
361
393
  className: "flex h-full flex-col items-center justify-center gap-3 text-center",
362
- children: [/* @__PURE__ */ u(s, { className: "size-5 animate-spin text-text-secondary" }), /* @__PURE__ */ u("p", {
394
+ children: [/* @__PURE__ */ c(s, { className: "size-5 animate-spin text-text-secondary" }), /* @__PURE__ */ c("p", {
363
395
  className: "text-xs leading-relaxed text-text-secondary",
364
396
  children: "Restoring your conversation…"
365
397
  })]
366
- }) : A.length === 0 ? /* @__PURE__ */ d("div", {
398
+ }) : D.length === 0 ? /* @__PURE__ */ l("div", {
367
399
  className: "flex h-full flex-col items-center justify-center gap-3 text-center",
368
- children: [/* @__PURE__ */ u("span", {
400
+ children: [/* @__PURE__ */ c("span", {
369
401
  className: "inline-flex size-12 items-center justify-center rounded-full bg-bg-sunken text-action-primary-bg",
370
- children: /* @__PURE__ */ u(ne, { className: "size-6" })
371
- }), /* @__PURE__ */ u("p", {
402
+ children: /* @__PURE__ */ c(ie, { className: "size-6" })
403
+ }), /* @__PURE__ */ c("p", {
372
404
  className: "max-w-[16rem] text-xs leading-relaxed text-text-secondary",
373
- children: ye
405
+ children: Te
374
406
  })]
375
- }) : A.map((t) => /* @__PURE__ */ u("div", {
407
+ }) : D.map((t) => /* @__PURE__ */ c("div", {
376
408
  className: e("flex", t.role === "user" ? "justify-end" : "justify-start"),
377
- children: /* @__PURE__ */ d("div", {
409
+ children: /* @__PURE__ */ l("div", {
378
410
  "data-testid": `assistant-widget-message-${t.role}`,
379
- className: e("whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-xs leading-relaxed", q ? "max-w-[92%]" : "max-w-[85%]", t.role === "user" ? "bg-action-primary-bg text-action-primary-text" : t.error ? "bg-status-error-bg/10 text-status-error-bg" : "bg-bg-sunken text-text-primary"),
380
- children: [t.content ? /* @__PURE__ */ u(n, {
411
+ className: e("whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-xs leading-relaxed", G ? "max-w-[92%]" : "max-w-[85%]", t.role === "user" ? "bg-action-primary-bg text-action-primary-text" : t.error ? "bg-status-error-bg/10 text-status-error-bg" : "bg-bg-sunken text-text-primary"),
412
+ children: [t.content ? /* @__PURE__ */ c(n, {
381
413
  content: t.content,
382
- onNavigate: ge
383
- }) : null, t.pending ? /* @__PURE__ */ d("span", {
414
+ onNavigate: Se
415
+ }) : null, t.pending ? /* @__PURE__ */ l("span", {
384
416
  "data-testid": "assistant-widget-working",
385
417
  className: e("inline-flex items-center gap-1 text-text-secondary", t.content ? "mt-1" : ""),
386
- children: [/* @__PURE__ */ u(s, { className: "size-3 animate-spin" }), t.content ? null : /* @__PURE__ */ u("span", { children: "Working on it…" })]
418
+ children: [/* @__PURE__ */ c(s, { className: "size-3 animate-spin" }), t.content ? null : /* @__PURE__ */ c("span", { children: "Working on it…" })]
387
419
  }) : null]
388
420
  })
389
421
  }, t.id))
390
422
  }),
391
- /* @__PURE__ */ d("div", {
423
+ S.downloadArtifact && Me.length > 0 ? /* @__PURE__ */ c("div", {
424
+ "data-testid": "assistant-widget-artifacts",
425
+ className: "flex flex-wrap gap-1.5 border-t border-border-subtle bg-bg-sunken px-3 py-2",
426
+ children: Me.map((e) => {
427
+ let t = z === e.path;
428
+ return /* @__PURE__ */ l("button", {
429
+ type: "button",
430
+ onClick: () => void Ie(e),
431
+ disabled: !!z,
432
+ title: `Download ${e.name}${e.size ? ` (${ve(e.size)})` : ""}`,
433
+ "data-testid": "assistant-widget-artifact",
434
+ className: "inline-flex max-w-full items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-2 py-1 text-[11px] font-medium text-text-primary transition-colors hover:bg-bg-sunken focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong disabled:opacity-50 cursor-pointer",
435
+ children: [t ? /* @__PURE__ */ c(s, { className: "size-3.5 shrink-0 animate-spin" }) : e.type === "directory" ? /* @__PURE__ */ c(ne, { className: "size-3.5 shrink-0 text-action-primary-bg" }) : /* @__PURE__ */ c(te, { className: "size-3.5 shrink-0 text-action-primary-bg" }), /* @__PURE__ */ c("span", {
436
+ className: "truncate",
437
+ children: e.name
438
+ })]
439
+ }, e.path);
440
+ })
441
+ }) : null,
442
+ /* @__PURE__ */ l("div", {
392
443
  className: "flex items-end gap-2 border-t border-border-default bg-bg-surface px-3 py-2.5",
393
444
  children: [
394
- J.isSupported ? /* @__PURE__ */ u("button", {
445
+ q.isSupported ? /* @__PURE__ */ c("button", {
395
446
  type: "button",
396
- onClick: Pe,
397
- "aria-label": J.isListening ? "Stop voice input" : "Start voice input",
398
- "aria-pressed": J.isListening,
447
+ onClick: Ue,
448
+ "aria-label": q.isListening ? "Stop voice input" : "Start voice input",
449
+ "aria-pressed": q.isListening,
399
450
  "data-testid": "assistant-widget-mic",
400
- className: e("flex size-9 shrink-0 items-center justify-center rounded-lg transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong cursor-pointer", J.isListening ? "animate-pulse bg-status-error-bg text-action-primary-text" : "bg-bg-sunken text-text-secondary hover:text-text-primary"),
401
- children: /* @__PURE__ */ u(re, { className: "size-4" })
451
+ className: e("flex size-9 shrink-0 items-center justify-center rounded-lg transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong cursor-pointer", q.isListening ? "animate-pulse bg-status-error-bg text-action-primary-text" : "bg-bg-sunken text-text-secondary hover:text-text-primary"),
452
+ children: /* @__PURE__ */ c(ae, { className: "size-4" })
402
453
  }) : null,
403
- /* @__PURE__ */ u("textarea", {
404
- ref: U,
405
- value: M,
406
- onChange: (e) => N(e.target.value),
407
- onKeyDown: Me,
408
- onInput: Ne,
454
+ /* @__PURE__ */ c("textarea", {
455
+ ref: V,
456
+ value: k,
457
+ onChange: (e) => A(e.target.value),
458
+ onKeyDown: Ve,
459
+ onInput: He,
409
460
  rows: 1,
410
- placeholder: be,
461
+ placeholder: Ee,
411
462
  "aria-label": "Message the assistant",
412
463
  "data-testid": "assistant-widget-input",
413
464
  className: "flex-1 resize-none rounded-lg border border-border-default bg-bg-sunken px-3 py-2 text-xs leading-relaxed text-text-primary placeholder:text-text-muted focus:border-action-primary-bg focus:outline-none"
414
465
  }),
415
- /* @__PURE__ */ u("button", {
466
+ /* @__PURE__ */ c("button", {
416
467
  type: "button",
417
468
  onClick: () => void $(),
418
- disabled: P || M.trim().length === 0,
469
+ disabled: j || k.trim().length === 0,
419
470
  "aria-label": "Send message",
420
471
  "data-testid": "assistant-widget-send",
421
472
  className: "flex size-9 shrink-0 items-center justify-center rounded-lg bg-action-primary-bg text-action-primary-text transition-colors hover:bg-action-primary-bg-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong disabled:opacity-50 cursor-pointer",
422
- children: P ? /* @__PURE__ */ u(s, { className: "size-4 animate-spin" }) : /* @__PURE__ */ u(se, { className: "size-4" })
473
+ children: j ? /* @__PURE__ */ c(s, { className: "size-4 animate-spin" }) : /* @__PURE__ */ c(le, { className: "size-4" })
423
474
  })
424
475
  ]
425
476
  })
@@ -428,4 +479,4 @@ var g = ({ transport: p, modes: m, defaultModeId: g, title: _ = "AI Assistant",
428
479
  }) : null] }) : null;
429
480
  };
430
481
  //#endregion
431
- export { f as ASSISTANT_WIDGET_TOGGLE_EVENT, g as AssistantWidget };
482
+ export { u as ASSISTANT_WIDGET_TOGGLE_EVENT, m as AssistantWidget };
@@ -33,6 +33,22 @@ export interface AssistantSendArgs {
33
33
  * Backend adapter the host product supplies. A single transport instance is
34
34
  * reused across turns so it can keep a warm session/sandbox between sends.
35
35
  */
36
+ /**
37
+ * One downloadable build artifact produced by an artifact-mode turn (e.g. the
38
+ * scaffolded plugin/node and its zip). Only transports whose backend writes to
39
+ * a session output dir surface these; everyone else omits the methods below and
40
+ * no download UI renders.
41
+ */
42
+ export interface AssistantArtifact {
43
+ /** File or directory name, shown to the user. */
44
+ name: string;
45
+ /** Path relative to the session output dir — the download key. */
46
+ path: string;
47
+ /** 'file' or 'directory' (directories download as a .tar.gz). */
48
+ type: string;
49
+ /** Size in bytes, for display. */
50
+ size: number;
51
+ }
36
52
  /** One past conversation, for the history list. */
37
53
  export interface AssistantSessionSummary {
38
54
  id: string;
@@ -77,5 +93,9 @@ export interface AssistantTransport {
77
93
  * stateless simply omit this and keep the previous ephemeral behaviour.
78
94
  */
79
95
  loadHistory?: () => Promise<AssistantWidgetMessage[]>;
96
+ /** Downloadable artifacts for the active conversation, newest build first. */
97
+ listArtifacts?: () => Promise<AssistantArtifact[]>;
98
+ /** Fetch one artifact and trigger a browser save. */
99
+ downloadArtifact?: (artifact: AssistantArtifact) => Promise<void>;
80
100
  }
81
101
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/shared/components/assistantWidget/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,8DAA8D;IAC9D,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;GAGG;AACH,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQnE,qFAAqF;IACrF,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAOrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACxD,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACzE;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;CACvD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/shared/components/assistantWidget/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,8DAA8D;IAC9D,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;GAGG;AACH;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQnE,qFAAqF;IACrF,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAOrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACxD,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACzE;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAOtD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACnD,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.719.6",
3
+ "version": "2026.720.1",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "imports": {