@burdenoff/fe-libs 2026.1029.11 → 2026.1030.2
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/connections/ConnectionDetailsTab.d.ts +4 -1
- package/dist/connections/ConnectionDetailsTab.js +18 -15
- package/dist/connections/ConnectionDialog.d.ts +8 -2
- package/dist/connections/ConnectionDialog.js +18 -17
- package/dist/connections/ConnectionDialogPanel.d.ts +3 -1
- package/dist/connections/ConnectionDialogPanel.js +141 -135
- package/dist/connections/ShareConnectionDialog.d.ts +23 -0
- package/dist/connections/ShareConnectionDialog.js +146 -0
- package/dist/connections/SharePanels.d.ts +32 -0
- package/dist/connections/SharePanels.js +158 -0
- package/dist/connections/VisibilityChoice.d.ts +12 -0
- package/dist/connections/VisibilityChoice.js +60 -0
- package/dist/connections/api.d.ts +12 -1
- package/dist/connections/api.js +1 -1
- package/dist/connections/connectionFlow.d.ts +6 -1
- package/dist/connections/connectionFlow.js +1 -1
- package/dist/connections/index.d.ts +4 -1
- package/dist/connections/sharingApi.d.ts +28 -0
- package/dist/connections/sharingApi.js +215 -0
- package/dist/connections/types.d.ts +31 -0
- package/dist/connections/useConnectionSharingDraft.d.ts +40 -0
- package/dist/connections/useConnectionSharingDraft.js +93 -0
- package/dist/connections.js +12 -9
- package/dist/shared/assistant/i18nManifest.d.ts +18 -0
- package/dist/shared/assistant/i18nManifest.js +18 -0
- package/dist/shared/assistant/index.d.ts +4 -0
- package/dist/shared/assistant/ui/AIAssistantPanel.d.ts +9 -1
- package/dist/shared/assistant/ui/AIAssistantPanel.js +194 -174
- package/dist/shared/assistant/ui/AssistantChatArea.d.ts +33 -0
- package/dist/shared/assistant/ui/AssistantChatArea.js +1463 -1397
- package/dist/shared/assistant/ui/AssistantLanguageMenu.d.ts +9 -1
- package/dist/shared/assistant/ui/AssistantLanguageMenu.js +22 -22
- package/dist/shared/assistant/ui/AssistantOverlay.d.ts +16 -2
- package/dist/shared/assistant/ui/AssistantOverlay.js +219 -200
- package/dist/shared/assistant/ui/assistantOverlayState.d.ts +16 -2
- package/dist/shared/assistant/ui/assistantOverlayState.js +57 -40
- package/dist/shared/assistant/ui/compact/AssistantConversationMenu.js +53 -52
- package/dist/shared/assistant/ui/compact/AssistantDiscardDraftDialog.js +3 -4
- package/dist/shared/assistant/ui/compact/AssistantLanguagePill.d.ts +29 -0
- package/dist/shared/assistant/ui/compact/AssistantLanguagePill.js +98 -0
- package/dist/shared/assistant/ui/compact/AssistantVoiceReady.d.ts +31 -0
- package/dist/shared/assistant/ui/compact/AssistantVoiceReady.js +41 -0
- package/dist/shared/assistant/ui/compact/AssistantWaitingChangeRow.d.ts +6 -0
- package/dist/shared/assistant/ui/compact/AssistantWaitingChangeRow.js +5 -5
- package/dist/shared/assistant/ui/compact/AssistantWindowHeader.d.ts +22 -5
- package/dist/shared/assistant/ui/compact/AssistantWindowHeader.js +45 -31
- package/dist/shared/assistant/ui/compact/windowView.d.ts +50 -0
- package/dist/shared/assistant/ui/compact/windowView.js +31 -0
- package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts +6 -0
- package/dist/shared/assistant/ui/composer/AssistantComposer.js +90 -89
- package/dist/shared/assistant/ui/composer/AssistantModeMenu.d.ts +6 -0
- package/dist/shared/assistant/ui/composer/AssistantModeMenu.js +83 -83
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +31 -0
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +270 -166
- package/dist/shared/assistant/ui/voice/VoiceStage.d.ts +8 -0
- package/dist/shared/assistant/ui/voice/VoiceStage.js +10 -10
- package/dist/shared/assistant/voice/voiceStartedCue.d.ts +11 -0
- package/dist/shared/assistant/voice/voiceStartedCue.js +7 -0
- package/dist/shared-assistant.js +266 -262
- package/dist/ui/modal-shell.d.ts +6 -1
- package/dist/ui/modal-shell.js +7 -6
- package/package.json +1 -1
|
@@ -26,12 +26,12 @@ function ve(e) {
|
|
|
26
26
|
let t = e.ownerDocument.activeElement;
|
|
27
27
|
return !t || t === e.ownerDocument.body ? !1 : e.contains(t) ? !0 : e.closest("[data-assistant-panel]")?.contains(t) ?? !1;
|
|
28
28
|
}
|
|
29
|
-
var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be = !1, placeholder: xe, mode: Se, availableModes: g, attachmentCharsPerFile: Ce, onModeChange: we, auto: Te, onStartVoiceSession: _, onDraftStart: Ee, onDraftChange: De, suspendDictation: Oe = !1, onVoiceStateChange: ke, presentation: Ae = "classic", turnInFlight: v = !1, onStop: je, turnId: Me, modeDisabledReason: Ne = null, inputRef: y, aboveCard: Pe }) => {
|
|
30
|
-
let b = r(), { locale: x } = e(), S = h || be, C = Ae === "compact", w = l(null),
|
|
29
|
+
var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be = !1, placeholder: xe, mode: Se, availableModes: g, attachmentCharsPerFile: Ce, onModeChange: we, auto: Te, onStartVoiceSession: _, onDraftStart: Ee, onDraftChange: De, suspendDictation: Oe = !1, onVoiceStateChange: ke, presentation: Ae = "classic", turnInFlight: v = !1, onStop: je, turnId: Me, modeDisabledReason: Ne = null, inputRef: y, aboveCard: Pe, modeReadOnly: Fe = !1 }) => {
|
|
30
|
+
let b = r(), { locale: x } = e(), S = h || be, C = Ae === "compact", w = l(null), Ie = o((e) => {
|
|
31
31
|
w.current = e, typeof y == "function" ? y(e) : y && (y.current = e);
|
|
32
|
-
}, [y]), [T, E] = u(""), [D,
|
|
33
|
-
|
|
34
|
-
let
|
|
32
|
+
}, [y]), [T, E] = u(""), [D, Le] = u(!1), [O, Re] = u(!1), k = l(!1), [ze, A] = u(null), [Be, j] = u(null), [M, N] = u(null), [Ve, He] = u(v);
|
|
33
|
+
Ve === v ? M !== null && v && Me != null && Me !== M && N(null) : (He(v), v ? (j(null), N(null)) : M !== null && (j(M), N(null)));
|
|
34
|
+
let Ue = l(!1), P = l(null), We = l(!1), Ge = l(!1), Ke = l(null), F = l(!1), I = l(0), { attachments: L, isBusy: qe, preparingCount: Je, sendBlocker: Ye, rejection: Xe, addFiles: R, remove: Ze, retry: Qe, clear: z, clearRejection: $e, canAddMore: et, commit: tt, cancelCommit: nt } = pe({ perFileChars: Ce }), B = T.trim() !== "" || L.length > 0, V = l(!1), H = l(!1);
|
|
35
35
|
s(() => {
|
|
36
36
|
B && !V.current ? (V.current = !0, Ee?.()) : B || (V.current = !1);
|
|
37
37
|
}, [B, Ee]), s(() => {
|
|
@@ -48,17 +48,17 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
48
48
|
]);
|
|
49
49
|
let U = o((e) => {
|
|
50
50
|
H.current = !0, E((t) => t ? `${t.replace(/\s+$/, "")} ${e}` : e);
|
|
51
|
-
}, []),
|
|
51
|
+
}, []), rt = ee((e) => e.assistantLanguage), W = n({
|
|
52
52
|
onFinalize: U,
|
|
53
|
-
language: me(() => te(
|
|
54
|
-
}), G = W.isActive, K = W.interim,
|
|
53
|
+
language: me(() => te(rt, x), [rt, x]).tag
|
|
54
|
+
}), G = W.isActive, K = W.interim, it = W.stop;
|
|
55
55
|
s(() => {
|
|
56
|
-
!Oe || !G || (K.trim() !== "" && U(K.trim()),
|
|
56
|
+
!Oe || !G || (K.trim() !== "" && U(K.trim()), it());
|
|
57
57
|
}, [
|
|
58
58
|
Oe,
|
|
59
59
|
G,
|
|
60
60
|
K,
|
|
61
|
-
|
|
61
|
+
it,
|
|
62
62
|
U
|
|
63
63
|
]), s(() => {
|
|
64
64
|
ke?.({
|
|
@@ -70,8 +70,8 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
70
70
|
O,
|
|
71
71
|
G
|
|
72
72
|
]);
|
|
73
|
-
let
|
|
74
|
-
|
|
73
|
+
let at = xe ?? b("composer.placeholder", "Ask me anything…"), q = T.trim(), J = re(L), ot = L.filter((e) => e.status === "error"), Y = (q.length > 0 || J.length > 0) && !S && !O && Ye === null, st = J.some((e) => !(e.fileId && e.downloadUrl) && !e.inlineOnly), ct = l(S);
|
|
74
|
+
ct.current = S;
|
|
75
75
|
let X = l(!0);
|
|
76
76
|
s(() => (X.current = !0, () => {
|
|
77
77
|
X.current = !1;
|
|
@@ -84,15 +84,15 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
84
84
|
W.isActive && W.stop();
|
|
85
85
|
let e = T.trim();
|
|
86
86
|
A(null);
|
|
87
|
-
let t = C && ve(
|
|
88
|
-
if (!
|
|
87
|
+
let t = C && ve(Ke.current);
|
|
88
|
+
if (!st) {
|
|
89
89
|
F.current = t, ye(e, J), E(""), z();
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
let n = ee.getState().activeConversationId;
|
|
93
|
-
k.current = !0,
|
|
93
|
+
k.current = !0, Re(!0);
|
|
94
94
|
try {
|
|
95
|
-
let r = await
|
|
95
|
+
let r = await tt();
|
|
96
96
|
if (!X.current) {
|
|
97
97
|
r.ok && await r.rollback();
|
|
98
98
|
return;
|
|
@@ -104,7 +104,7 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
104
104
|
});
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
107
|
-
if (
|
|
107
|
+
if (ct.current) {
|
|
108
108
|
await r.rollback(), X.current && A({
|
|
109
109
|
kind: "busy",
|
|
110
110
|
failures: []
|
|
@@ -121,42 +121,42 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
121
121
|
}
|
|
122
122
|
F.current = t, ye(e, re(r.attachments)), r.handedOver(), E(""), z();
|
|
123
123
|
} finally {
|
|
124
|
-
k.current = !1, X.current &&
|
|
124
|
+
k.current = !1, X.current && Re(!1);
|
|
125
125
|
}
|
|
126
126
|
}, [
|
|
127
127
|
Y,
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
st,
|
|
129
|
+
tt,
|
|
130
130
|
ye,
|
|
131
131
|
T,
|
|
132
132
|
J,
|
|
133
133
|
z,
|
|
134
134
|
W,
|
|
135
135
|
C
|
|
136
|
-
]),
|
|
137
|
-
|
|
138
|
-
}, [
|
|
139
|
-
|
|
140
|
-
}, []),
|
|
141
|
-
if (
|
|
136
|
+
]), lt = o(() => {
|
|
137
|
+
nt(), w.current?.focus();
|
|
138
|
+
}, [nt]), Q = o(() => {
|
|
139
|
+
ct.current ? Ue.current = !0 : w.current?.focus();
|
|
140
|
+
}, []), ut = o(() => {
|
|
141
|
+
if (Ge.current) return;
|
|
142
142
|
let e = je?.() ?? null;
|
|
143
|
-
e !== null && (
|
|
143
|
+
e !== null && (Ge.current = !0, N(e)), Q();
|
|
144
144
|
}, [je, Q]);
|
|
145
145
|
s(() => {
|
|
146
|
-
S || !
|
|
146
|
+
S || !Ue.current || (Ue.current = !1, w.current?.focus());
|
|
147
147
|
}, [S]);
|
|
148
|
-
let
|
|
148
|
+
let dt = o((e) => {
|
|
149
149
|
if (e !== null) {
|
|
150
150
|
P.current = e;
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
153
153
|
let t = P.current;
|
|
154
|
-
P.current = null, t !== null && t.ownerDocument.activeElement === t && (
|
|
154
|
+
P.current = null, t !== null && t.ownerDocument.activeElement === t && (We.current = !0);
|
|
155
155
|
}, []), $ = C && v && je !== void 0;
|
|
156
156
|
c(() => {
|
|
157
|
-
$ || !
|
|
157
|
+
$ || !We.current || (We.current = !1, Q());
|
|
158
158
|
}, [$, Q]), s(() => {
|
|
159
|
-
M === null && (
|
|
159
|
+
M === null && (Ge.current = !1);
|
|
160
160
|
}, [M]), c(() => {
|
|
161
161
|
if (!$) return;
|
|
162
162
|
let e = F.current;
|
|
@@ -166,13 +166,13 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
166
166
|
let n = t.ownerDocument, r = n.activeElement;
|
|
167
167
|
(r === null || r === n.body || r === w.current) && t.focus({ preventScroll: !0 });
|
|
168
168
|
}, [$]);
|
|
169
|
-
let
|
|
169
|
+
let ft = o((e) => {
|
|
170
170
|
E(e), j(null);
|
|
171
171
|
}, []);
|
|
172
172
|
s(() => {
|
|
173
173
|
A(null);
|
|
174
174
|
}, [L.length]);
|
|
175
|
-
let
|
|
175
|
+
let pt = (e) => {
|
|
176
176
|
if (e.kind === "busy") return b("attachments.saveBusy", "The assistant started another reply, so nothing was sent. Your message and files are still here.");
|
|
177
177
|
if (e.kind === "moved") return b("attachments.saveMoved", "You switched conversations while the files were being saved, so nothing was sent. Your message and files are still here.");
|
|
178
178
|
let { failures: t } = e;
|
|
@@ -180,26 +180,26 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
180
180
|
if (t.some((e) => e.code === a.quotaExceeded || e.code === a.quotaNotProvisioned)) return `${b("attachments.quotaFull", "File storage is full or not set up for this workspace, so the attachments couldn't be saved. Nothing was sent.")} ${b("attachments.retrySend", "Press Send to try again, or remove the file.")}`;
|
|
181
181
|
let n = t[0], r = L.find((e) => e.id === n?.id)?.filename ?? "";
|
|
182
182
|
return `${t.length <= 1 ? b("attachments.saveFailedOne", "{{name}} couldn't be saved, so nothing was sent.", { name: r }) : b("attachments.saveFailedMany", "{{count}} attachments couldn't be saved, so nothing was sent.", { count: t.length })} ${b("attachments.retrySend", "Press Send to try again, or remove the file.")}`;
|
|
183
|
-
},
|
|
183
|
+
}, mt = o((e) => {
|
|
184
184
|
e.key === "Enter" && !e.shiftKey && (e.preventDefault(), Z());
|
|
185
|
-
}, [Z]),
|
|
185
|
+
}, [Z]), ht = o((e) => {
|
|
186
186
|
if (e.key === "Escape") {
|
|
187
187
|
le(e) && e.stopPropagation();
|
|
188
188
|
return;
|
|
189
189
|
}
|
|
190
190
|
ce(e) && (e.preventDefault(), j(null), Z());
|
|
191
|
-
}, [Z]),
|
|
191
|
+
}, [Z]), gt = o((e) => {
|
|
192
192
|
let t = Array.from(e.clipboardData?.files ?? []);
|
|
193
193
|
t.length !== 0 && (e.preventDefault(), R(t));
|
|
194
|
-
}, [R]),
|
|
195
|
-
Array.from(e.dataTransfer?.types ?? []).includes("Files") && (I.current += 1,
|
|
196
|
-
}, []),
|
|
197
|
-
I.current = Math.max(0, I.current - 1), I.current === 0 &&
|
|
198
|
-
}, []), vt = o((e) => {
|
|
199
|
-
Array.from(e.dataTransfer?.types ?? []).includes("Files") && e.preventDefault();
|
|
194
|
+
}, [R]), _t = o((e) => {
|
|
195
|
+
Array.from(e.dataTransfer?.types ?? []).includes("Files") && (I.current += 1, Le(!0));
|
|
196
|
+
}, []), vt = o(() => {
|
|
197
|
+
I.current = Math.max(0, I.current - 1), I.current === 0 && Le(!1);
|
|
200
198
|
}, []), yt = o((e) => {
|
|
201
|
-
|
|
202
|
-
}, [
|
|
199
|
+
Array.from(e.dataTransfer?.types ?? []).includes("Files") && e.preventDefault();
|
|
200
|
+
}, []), bt = o((e) => {
|
|
201
|
+
e.preventDefault(), I.current = 0, Le(!1), R(e.dataTransfer?.files ?? null);
|
|
202
|
+
}, [R]), xt = (e) => {
|
|
203
203
|
switch (e) {
|
|
204
204
|
case "too-many": return b("attachments.tooMany", "You can attach up to {{max}} files per message.", { max: 5 });
|
|
205
205
|
case "too-large": return b("attachments.tooLarge", "That file is larger than 10 MB.");
|
|
@@ -208,7 +208,7 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
208
208
|
case "unsupported-image": return b("attachments.unsupportedImage", "This device can't read that image format, so it can't be resized to send. Save it as JPEG and try again.");
|
|
209
209
|
case "too-large-to-save": return b("attachments.tooLargeToSave", "That file is over 5 MB, so it can't be saved to Files, and no text could be read from it.");
|
|
210
210
|
}
|
|
211
|
-
},
|
|
211
|
+
}, St = (() => {
|
|
212
212
|
switch (W.error) {
|
|
213
213
|
case "not-allowed": return b("voice.denied", "Microphone access is blocked. Allow it in your browser settings to dictate.");
|
|
214
214
|
case "audio-capture": return b("voice.noMic", "No microphone was found.");
|
|
@@ -217,8 +217,8 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
217
217
|
case "unknown": return b("voice.failed", "Dictation stopped unexpectedly.");
|
|
218
218
|
default: return null;
|
|
219
219
|
}
|
|
220
|
-
})(),
|
|
221
|
-
onDismiss:
|
|
220
|
+
})(), Ct = (e, n) => O ? /* @__PURE__ */ f(t, {
|
|
221
|
+
onDismiss: lt,
|
|
222
222
|
children: /* @__PURE__ */ p("p", {
|
|
223
223
|
className: "flex items-center justify-center gap-2 text-text-muted",
|
|
224
224
|
"data-testid": "assistant-commit-status",
|
|
@@ -230,18 +230,18 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
230
230
|
/* @__PURE__ */ f("span", { children: b("attachments.saving", "Saving your attachments…") }),
|
|
231
231
|
/* @__PURE__ */ f("button", {
|
|
232
232
|
type: "button",
|
|
233
|
-
onClick:
|
|
233
|
+
onClick: lt,
|
|
234
234
|
className: "rounded text-text-primary underline underline-offset-2 hover:text-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong",
|
|
235
235
|
"data-testid": "assistant-commit-cancel",
|
|
236
236
|
children: b("attachments.cancelSaving", "Cancel")
|
|
237
237
|
})
|
|
238
238
|
]
|
|
239
239
|
})
|
|
240
|
-
}) :
|
|
240
|
+
}) : ze ? /* @__PURE__ */ f("p", {
|
|
241
241
|
className: "text-status-error-text",
|
|
242
242
|
role: "alert",
|
|
243
243
|
"data-testid": "assistant-commit-failed",
|
|
244
|
-
children:
|
|
244
|
+
children: pt(ze)
|
|
245
245
|
}) : W.isStarting && !W.isListening ? /* @__PURE__ */ f("p", {
|
|
246
246
|
className: "text-text-muted",
|
|
247
247
|
"data-testid": "assistant-voice-starting",
|
|
@@ -250,20 +250,20 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
250
250
|
className: "text-status-error-text",
|
|
251
251
|
"data-testid": "assistant-voice-status",
|
|
252
252
|
children: [/* @__PURE__ */ f(de, {}), W.interim || b("voice.listening", "Listening… speak now, tap the square to stop")]
|
|
253
|
-
}) :
|
|
253
|
+
}) : St ? /* @__PURE__ */ f("p", {
|
|
254
254
|
className: "text-status-error-text",
|
|
255
255
|
"data-testid": "assistant-voice-error",
|
|
256
|
-
children:
|
|
257
|
-
}) :
|
|
256
|
+
children: St
|
|
257
|
+
}) : Xe ? /* @__PURE__ */ f("button", {
|
|
258
258
|
type: "button",
|
|
259
|
-
onClick:
|
|
259
|
+
onClick: $e,
|
|
260
260
|
className: "text-status-error-text underline-offset-2 hover:underline",
|
|
261
261
|
"data-testid": "assistant-attachment-rejection",
|
|
262
|
-
children:
|
|
263
|
-
}) :
|
|
262
|
+
children: xt(Xe)
|
|
263
|
+
}) : Ye === "failed" ? /* @__PURE__ */ f("p", {
|
|
264
264
|
className: "text-status-error-text",
|
|
265
265
|
"data-testid": "assistant-attachment-blocked",
|
|
266
|
-
children:
|
|
266
|
+
children: ot.length === 1 ? b("attachments.blockedOne", "{{name}} didn't upload. Retry or remove it before sending.", { name: ot[0].filename }) : b("attachments.blockedMany", "{{count}} attachments didn't upload. Retry or remove them before sending.", { count: ot.length })
|
|
267
267
|
}) : n ? /* @__PURE__ */ f("p", {
|
|
268
268
|
className: "text-text-muted",
|
|
269
269
|
"data-testid": "assistant-stopping-status",
|
|
@@ -279,15 +279,15 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
279
279
|
if (C) {
|
|
280
280
|
let e = _ !== void 0 && q.length === 0 && L.length === 0 && !W.isActive, t = "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--color-bg-elevated)]";
|
|
281
281
|
return /* @__PURE__ */ p("div", {
|
|
282
|
-
ref:
|
|
282
|
+
ref: Ke,
|
|
283
283
|
className: "flex-shrink-0 px-3 pb-3 pt-1.5",
|
|
284
284
|
children: [
|
|
285
285
|
Pe,
|
|
286
286
|
/* @__PURE__ */ p("div", {
|
|
287
|
-
onDragEnter:
|
|
288
|
-
onDragLeave:
|
|
289
|
-
onDragOver:
|
|
290
|
-
onDrop:
|
|
287
|
+
onDragEnter: _t,
|
|
288
|
+
onDragLeave: vt,
|
|
289
|
+
onDragOver: yt,
|
|
290
|
+
onDrop: bt,
|
|
291
291
|
className: `flex flex-col rounded-3xl border bg-bg-elevated shadow-[var(--shadow-elevation-2)] transition-colors focus-within:border-[var(--color-focus-ring)] focus-within:ring-1 focus-within:ring-[var(--color-focus-ring)] ${D ? "border-dashed border-[var(--color-focus-ring)]" : "border-[var(--color-text-muted)]"}`,
|
|
292
292
|
"data-testid": "assistant-composer",
|
|
293
293
|
"data-presentation": "compact",
|
|
@@ -296,22 +296,22 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
296
296
|
className: "px-3 pt-3 empty:hidden",
|
|
297
297
|
children: /* @__PURE__ */ f(ae, {
|
|
298
298
|
attachments: L,
|
|
299
|
-
onRemove:
|
|
300
|
-
onRetry:
|
|
299
|
+
onRemove: Ze,
|
|
300
|
+
onRetry: Qe,
|
|
301
301
|
disabled: S || O,
|
|
302
|
-
preparingCount:
|
|
302
|
+
preparingCount: Je
|
|
303
303
|
})
|
|
304
304
|
}),
|
|
305
305
|
/* @__PURE__ */ f("textarea", {
|
|
306
|
-
ref:
|
|
306
|
+
ref: Ie,
|
|
307
307
|
value: T,
|
|
308
|
-
onChange: (e) =>
|
|
309
|
-
onKeyDown:
|
|
310
|
-
onPaste:
|
|
308
|
+
onChange: (e) => ft(e.target.value),
|
|
309
|
+
onKeyDown: ht,
|
|
310
|
+
onPaste: gt,
|
|
311
311
|
disabled: S,
|
|
312
312
|
readOnly: O,
|
|
313
313
|
"aria-busy": O || void 0,
|
|
314
|
-
placeholder: D ? b("composer.dropHere", "Drop files to attach") :
|
|
314
|
+
placeholder: D ? b("composer.dropHere", "Drop files to attach") : at,
|
|
315
315
|
rows: 1,
|
|
316
316
|
className: "min-h-14 w-full resize-none bg-transparent px-5 pb-2 pt-4 text-base leading-6 text-text-primary placeholder:text-text-muted focus:outline-none disabled:opacity-50",
|
|
317
317
|
"aria-label": b("chatInput.ariaLabel", "Message input"),
|
|
@@ -322,12 +322,13 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
322
322
|
children: [
|
|
323
323
|
/* @__PURE__ */ f(ie, {
|
|
324
324
|
onFiles: R,
|
|
325
|
-
canAddMore:
|
|
325
|
+
canAddMore: et,
|
|
326
326
|
disabled: S || O,
|
|
327
327
|
showLabel: !0,
|
|
328
328
|
capMenuHeight: !0
|
|
329
329
|
}),
|
|
330
330
|
/* @__PURE__ */ f(se, {
|
|
331
|
+
readOnly: Fe,
|
|
331
332
|
mode: Se,
|
|
332
333
|
availableModes: g,
|
|
333
334
|
onModeChange: we,
|
|
@@ -343,9 +344,9 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
343
344
|
disabled: S || O
|
|
344
345
|
}),
|
|
345
346
|
$ ? /* @__PURE__ */ f("button", {
|
|
346
|
-
ref:
|
|
347
|
+
ref: dt,
|
|
347
348
|
type: "button",
|
|
348
|
-
onClick:
|
|
349
|
+
onClick: ut,
|
|
349
350
|
className: `flex size-10 flex-shrink-0 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text transition-colors hover:bg-action-primary-bg-hover ${t} ${M === null ? "" : "cursor-default opacity-60"}`,
|
|
350
351
|
"aria-label": M === null ? b("composer.stop", "Stop the reply") : b("composer.stopping", "Stopping the reply…"),
|
|
351
352
|
title: M === null ? b("composer.stop", "Stop the reply") : b("composer.stopping", "Stopping the reply…"),
|
|
@@ -371,7 +372,7 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
371
372
|
className: `flex size-10 flex-shrink-0 items-center justify-center rounded-full transition-colors ${t} ${Y ? "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover" : "bg-[var(--color-bg-disabled)] text-[var(--color-text-disabled)]"}`,
|
|
372
373
|
"aria-label": b("chatInput.send", "Send message"),
|
|
373
374
|
"data-testid": "assistant-send",
|
|
374
|
-
children: h ||
|
|
375
|
+
children: h || qe || O ? /* @__PURE__ */ f(d, {
|
|
375
376
|
className: "size-5 motion-safe:animate-spin",
|
|
376
377
|
"aria-hidden": "true"
|
|
377
378
|
}) : /* @__PURE__ */ f(he, {
|
|
@@ -391,7 +392,7 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
391
392
|
/* @__PURE__ */ f("div", {
|
|
392
393
|
className: "mt-1.5 px-1 text-center text-xs",
|
|
393
394
|
"aria-live": "polite",
|
|
394
|
-
children:
|
|
395
|
+
children: Ct(Be !== null, M !== null)
|
|
395
396
|
})
|
|
396
397
|
]
|
|
397
398
|
});
|
|
@@ -400,26 +401,26 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
400
401
|
className: "flex-shrink-0 px-3 pb-3 pt-1.5",
|
|
401
402
|
children: [
|
|
402
403
|
/* @__PURE__ */ p("div", {
|
|
403
|
-
onDragEnter:
|
|
404
|
-
onDragLeave:
|
|
405
|
-
onDragOver:
|
|
406
|
-
onDrop:
|
|
404
|
+
onDragEnter: _t,
|
|
405
|
+
onDragLeave: vt,
|
|
406
|
+
onDragOver: yt,
|
|
407
|
+
onDrop: bt,
|
|
407
408
|
className: `rounded-2xl border p-2 shadow-sm transition-colors focus-within:border-action-primary-bg focus-within:ring-2 focus-within:ring-action-primary-bg/15 ${D ? "border-action-primary-bg border-dashed bg-action-primary-bg/5" : "border-border-default bg-bg-sunken"}`,
|
|
408
409
|
"data-testid": "assistant-composer",
|
|
409
410
|
children: [
|
|
410
411
|
/* @__PURE__ */ f(ae, {
|
|
411
412
|
attachments: L,
|
|
412
|
-
onRemove:
|
|
413
|
-
onRetry:
|
|
413
|
+
onRemove: Ze,
|
|
414
|
+
onRetry: Qe,
|
|
414
415
|
disabled: S || O,
|
|
415
|
-
preparingCount:
|
|
416
|
+
preparingCount: Je
|
|
416
417
|
}),
|
|
417
418
|
/* @__PURE__ */ p("div", {
|
|
418
419
|
className: "flex items-end gap-2",
|
|
419
420
|
children: [
|
|
420
421
|
/* @__PURE__ */ f(ie, {
|
|
421
422
|
onFiles: R,
|
|
422
|
-
canAddMore:
|
|
423
|
+
canAddMore: et,
|
|
423
424
|
disabled: S || O,
|
|
424
425
|
showLabel: !0
|
|
425
426
|
}),
|
|
@@ -427,12 +428,12 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
427
428
|
ref: w,
|
|
428
429
|
value: T,
|
|
429
430
|
onChange: (e) => E(e.target.value),
|
|
430
|
-
onKeyDown:
|
|
431
|
-
onPaste:
|
|
431
|
+
onKeyDown: mt,
|
|
432
|
+
onPaste: gt,
|
|
432
433
|
disabled: S,
|
|
433
434
|
readOnly: O,
|
|
434
435
|
"aria-busy": O || void 0,
|
|
435
|
-
placeholder: D ? b("composer.dropHere", "Drop files to attach") :
|
|
436
|
+
placeholder: D ? b("composer.dropHere", "Drop files to attach") : at,
|
|
436
437
|
rows: 1,
|
|
437
438
|
className: "min-h-[36px] flex-1 resize-none self-center bg-transparent px-1 py-2 text-[15px] leading-relaxed text-text-primary placeholder:text-text-muted focus:outline-none disabled:opacity-50",
|
|
438
439
|
"aria-label": b("chatInput.ariaLabel", "Message input"),
|
|
@@ -454,7 +455,7 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
454
455
|
className: `flex size-9 flex-shrink-0 items-center justify-center rounded-full shadow-sm transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong ${Y ? "bg-action-primary-bg text-action-primary-text hover:scale-105 hover:bg-action-primary-bg-hover" : "bg-bg-elevated text-text-muted"}`,
|
|
455
456
|
"aria-label": b("chatInput.send", "Send message"),
|
|
456
457
|
"data-testid": "assistant-send",
|
|
457
|
-
children: h ||
|
|
458
|
+
children: h || qe || O ? /* @__PURE__ */ f(d, { className: "size-4 motion-safe:animate-spin" }) : /* @__PURE__ */ f(he, { className: "size-4" })
|
|
458
459
|
})
|
|
459
460
|
]
|
|
460
461
|
}),
|
|
@@ -478,7 +479,7 @@ var m = ({ writeAccessDenied: m = !1, onSend: ye, disabled: h = !1, readOnly: be
|
|
|
478
479
|
/* @__PURE__ */ f("div", {
|
|
479
480
|
className: "mt-1.5 px-1 text-center text-[11px]",
|
|
480
481
|
"aria-live": "polite",
|
|
481
|
-
children:
|
|
482
|
+
children: Ct(!1, !1)
|
|
482
483
|
})
|
|
483
484
|
]
|
|
484
485
|
});
|
|
@@ -15,6 +15,12 @@ export interface AssistantModeMenuProps {
|
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
/** Why it is disabled. Ignored while enabled. Absent while disabled: `busy`. */
|
|
17
17
|
disabledReason?: AssistantModeDisabledReason | null;
|
|
18
|
+
/**
|
|
19
|
+
* BOFF-10180: show the mode as the static label, whatever is on offer: nothing
|
|
20
|
+
* to choose here (the Quick assistant window). Absent: the menu, or the static
|
|
21
|
+
* label when there is exactly one mode and no Auto.
|
|
22
|
+
*/
|
|
23
|
+
readOnly?: boolean;
|
|
18
24
|
}
|
|
19
25
|
/** A mode's name, exactly as its classic pill names it: the translated product label. */
|
|
20
26
|
export declare function assistantModeOptionName(tr: AssistantTr, modeConfig: Pick<AssistantModeConfig, 'id'> & Partial<Pick<AssistantModeConfig, 'label' | 'producesArtifacts'>>): string;
|