@burdenoff/fe-libs 2026.930.2 → 2026.930.3
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/shared/assistant/preview/AssistantPreviewOverlay.d.ts.map +1 -1
- package/dist/shared/assistant/preview/AssistantPreviewOverlay.js +26 -25
- package/dist/shared/assistant/preview/types.d.ts +34 -4
- package/dist/shared/assistant/preview/types.d.ts.map +1 -1
- package/dist/shared/assistant/preview/types.js +6 -0
- package/dist/shared/assistant/ui/AIAssistantPanel.d.ts +5 -0
- package/dist/shared/assistant/ui/AIAssistantPanel.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AIAssistantPanel.js +67 -66
- package/dist/shared/assistant/ui/AssistantEmptyState.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantEmptyState.js +24 -18
- package/dist/shared/assistant/ui/AssistantHeader.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantHeader.js +45 -44
- package/dist/shared/assistant/ui/AssistantOverlay.d.ts +14 -1
- package/dist/shared/assistant/ui/AssistantOverlay.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantOverlay.js +105 -90
- package/dist/shared/assistant/ui/assistantOverlayState.d.ts +38 -0
- package/dist/shared/assistant/ui/assistantOverlayState.d.ts.map +1 -1
- package/dist/shared/assistant/ui/assistantOverlayState.js +14 -10
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts +9 -0
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.js +37 -33
- package/dist/shared/assistant/ui/composer/AssistantComposer.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantComposer.js +2 -1
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts +16 -0
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +27 -24
- package/dist/shared-assistant.js +73 -72
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantOverlay.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,
|
|
1
|
+
{"version":3,"file":"AssistantOverlay.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,174 +2,189 @@ import { useAssistantTr as e } from "../i18n.js";
|
|
|
2
2
|
import { quotaExhaustedEventName as t } from "../quota.js";
|
|
3
3
|
import { assistantPanelOwnsEscape as n } from "./panelOverlays.js";
|
|
4
4
|
import { AssistantPreviewBridgeHost as r } from "../preview/bridgeHost.js";
|
|
5
|
-
import { ASSISTANT_DOCK_WIDTH_VAR as i, ASSISTANT_OVERLAY_DESKTOP_QUERY as a, ASSISTANT_OVERLAY_TOP_VAR as o,
|
|
6
|
-
import { useAssistantServerHistory as
|
|
7
|
-
import { AIAssistantPanel as
|
|
8
|
-
import { createContext as
|
|
9
|
-
import { Sparkles as
|
|
10
|
-
import { jsx as
|
|
5
|
+
import { ASSISTANT_DOCK_WIDTH_VAR as i, ASSISTANT_OVERLAY_DESKTOP_QUERY as a, ASSISTANT_OVERLAY_TOP_VAR as o, ASSISTANT_PANEL_INSET_VAR as s, aboveAssistantBottomChrome as c, assistantOverlayClassName as l, assistantOverlayEscapeAction as u, assistantOverlayKeys as d, assistantQuotaKindOf as f, closestAround as p, createAssistantNavigate as m, isAssistantToggleShortcut as h, nextAssistantOpenState as g, publishedAssistantDockWidth as _, publishedAssistantPanelInset as v, readAssistantOverlayFlag as y, requestedAssistantOpenState as b, writeAssistantOverlayFlag as x } from "./assistantOverlayState.js";
|
|
6
|
+
import { useAssistantServerHistory as S } from "../history/useAssistantServerHistory.js";
|
|
7
|
+
import { AIAssistantPanel as C } from "./AIAssistantPanel.js";
|
|
8
|
+
import { createContext as w, useCallback as T, useContext as E, useEffect as D, useMemo as O, useRef as k, useState as A, useSyncExternalStore as j } from "react";
|
|
9
|
+
import { Sparkles as M } from "lucide-react";
|
|
10
|
+
import { jsx as N, jsxs as P } from "react/jsx-runtime";
|
|
11
11
|
//#region src/shared/assistant/ui/AssistantOverlay.tsx
|
|
12
|
-
var
|
|
13
|
-
function
|
|
14
|
-
return
|
|
12
|
+
var F = w(null);
|
|
13
|
+
function I() {
|
|
14
|
+
return E(F);
|
|
15
15
|
}
|
|
16
|
-
function
|
|
17
|
-
return
|
|
16
|
+
function L() {
|
|
17
|
+
return E(F)?.dockWidthPx ?? 0;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
function R() {
|
|
20
|
+
return E(F)?.panelInsetPx ?? 0;
|
|
21
|
+
}
|
|
22
|
+
var z = () => typeof window > "u" ? void 0 : window.sessionStorage, B = () => typeof window > "u" ? void 0 : window.localStorage;
|
|
23
|
+
function V(e) {
|
|
21
24
|
if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
|
|
22
25
|
let t = window.matchMedia(a);
|
|
23
26
|
return t.addEventListener("change", e), () => t.removeEventListener("change", e);
|
|
24
27
|
}
|
|
25
|
-
function
|
|
28
|
+
function H() {
|
|
26
29
|
return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(min-width: 640px)").matches;
|
|
27
30
|
}
|
|
28
|
-
function
|
|
29
|
-
return
|
|
31
|
+
function U() {
|
|
32
|
+
return j(V, H, () => !1);
|
|
30
33
|
}
|
|
31
|
-
function
|
|
32
|
-
let r =
|
|
33
|
-
|
|
34
|
+
function W(e, n) {
|
|
35
|
+
let r = k(n);
|
|
36
|
+
D(() => {
|
|
34
37
|
r.current = n;
|
|
35
|
-
}, [n]),
|
|
38
|
+
}, [n]), D(() => {
|
|
36
39
|
if (!e || typeof window > "u") return;
|
|
37
|
-
let n = t(e), i = (e) => r.current(
|
|
40
|
+
let n = t(e), i = (e) => r.current(f(e), e);
|
|
38
41
|
return window.addEventListener(n, i), () => window.removeEventListener(n, i);
|
|
39
42
|
}, [e]);
|
|
40
43
|
}
|
|
41
|
-
var
|
|
42
|
-
function
|
|
43
|
-
let r =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}, [r.openStorageKey, a]),
|
|
47
|
-
|
|
48
|
-
}, [r.dockStorageKey,
|
|
44
|
+
var G = () => {};
|
|
45
|
+
function K({ keyPrefix: e, quota: t, children: n }) {
|
|
46
|
+
let r = O(() => d(e), [e]), [a, o] = A(() => y(z, r.openStorageKey)), [c, l] = A(() => y(B, r.dockStorageKey)), u = T(() => o(!0), []), f = T(() => o(!1), []), p = T(() => o((e) => !e), []), m = T(() => l((e) => !e), []);
|
|
47
|
+
D(() => {
|
|
48
|
+
x(z, r.openStorageKey, a);
|
|
49
|
+
}, [r.openStorageKey, a]), D(() => {
|
|
50
|
+
x(B, r.dockStorageKey, c);
|
|
51
|
+
}, [r.dockStorageKey, c]), D(() => {
|
|
49
52
|
if (typeof window > "u") return;
|
|
50
53
|
let e = (e) => {
|
|
51
|
-
let t =
|
|
52
|
-
o((e) =>
|
|
54
|
+
let t = b(e);
|
|
55
|
+
o((e) => g(e, t));
|
|
53
56
|
};
|
|
54
57
|
return window.addEventListener(r.toggleEvent, e), () => window.removeEventListener(r.toggleEvent, e);
|
|
55
|
-
}, [r.toggleEvent]),
|
|
58
|
+
}, [r.toggleEvent]), D(() => {
|
|
56
59
|
if (typeof document > "u") return;
|
|
57
60
|
let e = (e) => {
|
|
58
|
-
|
|
61
|
+
h(e) && (e.preventDefault(), o((e) => !e));
|
|
59
62
|
};
|
|
60
63
|
return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
|
|
61
|
-
}, []),
|
|
62
|
-
let
|
|
64
|
+
}, []), W(t?.product ?? null, t?.onExhausted ?? G);
|
|
65
|
+
let S = U(), C = _({
|
|
66
|
+
isOpen: a,
|
|
67
|
+
docked: c,
|
|
68
|
+
isDesktop: S
|
|
69
|
+
}), w = v({
|
|
63
70
|
isOpen: a,
|
|
64
|
-
docked:
|
|
65
|
-
isDesktop:
|
|
71
|
+
docked: c,
|
|
72
|
+
isDesktop: S
|
|
66
73
|
});
|
|
67
|
-
|
|
74
|
+
D(() => {
|
|
68
75
|
if (typeof document > "u") return;
|
|
69
76
|
let e = document.documentElement.style;
|
|
70
|
-
return e.setProperty(i, `${
|
|
77
|
+
return e.setProperty(i, `${C}px`), () => {
|
|
71
78
|
e.removeProperty(i);
|
|
72
79
|
};
|
|
73
|
-
}, [
|
|
74
|
-
|
|
80
|
+
}, [C]), D(() => {
|
|
81
|
+
if (typeof document > "u") return;
|
|
82
|
+
let e = document.documentElement.style;
|
|
83
|
+
return e.setProperty(s, `${w}px`), () => {
|
|
84
|
+
e.removeProperty(s);
|
|
85
|
+
};
|
|
86
|
+
}, [w]);
|
|
87
|
+
let E = O(() => ({
|
|
75
88
|
isOpen: a,
|
|
76
|
-
open:
|
|
77
|
-
close:
|
|
78
|
-
toggle:
|
|
79
|
-
docked:
|
|
80
|
-
toggleDock:
|
|
81
|
-
dockWidthPx:
|
|
89
|
+
open: u,
|
|
90
|
+
close: f,
|
|
91
|
+
toggle: p,
|
|
92
|
+
docked: c,
|
|
93
|
+
toggleDock: m,
|
|
94
|
+
dockWidthPx: C,
|
|
95
|
+
panelInsetPx: w,
|
|
82
96
|
keys: r
|
|
83
97
|
}), [
|
|
84
98
|
a,
|
|
85
|
-
|
|
86
|
-
d,
|
|
99
|
+
u,
|
|
87
100
|
f,
|
|
88
|
-
s,
|
|
89
101
|
p,
|
|
90
|
-
|
|
102
|
+
c,
|
|
103
|
+
m,
|
|
104
|
+
C,
|
|
105
|
+
w,
|
|
91
106
|
r
|
|
92
107
|
]);
|
|
93
|
-
return /* @__PURE__ */
|
|
94
|
-
value:
|
|
108
|
+
return /* @__PURE__ */ N(F.Provider, {
|
|
109
|
+
value: E,
|
|
95
110
|
children: n
|
|
96
111
|
});
|
|
97
112
|
}
|
|
98
|
-
var
|
|
113
|
+
var q = (e, t) => /* @__PURE__ */ N(C, {
|
|
99
114
|
...e,
|
|
100
115
|
...t
|
|
101
116
|
});
|
|
102
|
-
function
|
|
103
|
-
let t =
|
|
104
|
-
return t ? /* @__PURE__ */
|
|
117
|
+
function J(e) {
|
|
118
|
+
let t = I();
|
|
119
|
+
return t ? /* @__PURE__ */ N(Y, {
|
|
105
120
|
state: t,
|
|
106
121
|
...e
|
|
107
122
|
}) : null;
|
|
108
123
|
}
|
|
109
|
-
function
|
|
110
|
-
let { isOpen: y, close:
|
|
111
|
-
|
|
112
|
-
let [
|
|
124
|
+
function Y({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel: s, navigate: d, isShellLessTarget: f, topOffsetPx: h = 56, launcherIcon: g, launcherBottomInset: _ = "1.5rem", showLauncher: v = !0 }) {
|
|
125
|
+
let { isOpen: y, close: b, toggle: x, docked: C, toggleDock: w } = t, T = e();
|
|
126
|
+
S(a?.serverHistory === !0);
|
|
127
|
+
let [E, k] = A(!1), j = O(() => d ? m({
|
|
113
128
|
navigate: d,
|
|
114
|
-
isShellLessTarget:
|
|
115
|
-
isDesktop:
|
|
116
|
-
collapseSheet: () =>
|
|
129
|
+
isShellLessTarget: f,
|
|
130
|
+
isDesktop: H,
|
|
131
|
+
collapseSheet: () => k(!1),
|
|
117
132
|
openInNewTab: (e) => window.open(e, "_blank", "noopener,noreferrer")
|
|
118
|
-
}) : void 0, [d,
|
|
119
|
-
|
|
133
|
+
}) : void 0, [d, f]);
|
|
134
|
+
D(() => {
|
|
120
135
|
if (!y) return;
|
|
121
136
|
let e = (e) => {
|
|
122
|
-
|
|
137
|
+
u({
|
|
123
138
|
key: e.key,
|
|
124
139
|
isOpen: y,
|
|
125
140
|
alreadyHandled: e.defaultPrevented,
|
|
126
141
|
dialogOpen: document.querySelector("[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
|
|
127
|
-
pressedInsideDialog:
|
|
142
|
+
pressedInsideDialog: p(e.target, "[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
|
|
128
143
|
panelOwnsEscape: n()
|
|
129
|
-
}) === "close" && (e.preventDefault(),
|
|
144
|
+
}) === "close" && (e.preventDefault(), b());
|
|
130
145
|
};
|
|
131
146
|
return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
|
|
132
|
-
}, [y,
|
|
147
|
+
}, [y, b]);
|
|
133
148
|
let F = {
|
|
134
149
|
panelId: i,
|
|
135
150
|
visible: !0,
|
|
136
|
-
onClose:
|
|
151
|
+
onClose: b,
|
|
137
152
|
docked: C,
|
|
138
153
|
onToggleDock: w,
|
|
139
|
-
onNavigate:
|
|
140
|
-
}, I =
|
|
141
|
-
return /* @__PURE__ */
|
|
154
|
+
onNavigate: j
|
|
155
|
+
}, I = T("overlay.launcher", "AI Assistant"), L = { [o]: `${h}px` };
|
|
156
|
+
return /* @__PURE__ */ P(r, {
|
|
142
157
|
preview: a?.preview,
|
|
143
|
-
children: [y && /* @__PURE__ */
|
|
144
|
-
className:
|
|
145
|
-
expanded:
|
|
158
|
+
children: [y && /* @__PURE__ */ P("div", {
|
|
159
|
+
className: l({
|
|
160
|
+
expanded: E,
|
|
146
161
|
docked: C
|
|
147
162
|
}),
|
|
148
163
|
style: L,
|
|
149
164
|
"data-testid": "assistant-overlay",
|
|
150
|
-
children: [/* @__PURE__ */
|
|
165
|
+
children: [/* @__PURE__ */ N("button", {
|
|
151
166
|
type: "button",
|
|
152
|
-
onClick: () =>
|
|
167
|
+
onClick: () => k((e) => !e),
|
|
153
168
|
className: "flex w-full shrink-0 justify-center pt-2 pb-1 sm:hidden",
|
|
154
|
-
"aria-label":
|
|
155
|
-
"aria-expanded":
|
|
169
|
+
"aria-label": E ? T("sheet.collapse", "Shrink the assistant") : T("sheet.expand", "Expand the assistant"),
|
|
170
|
+
"aria-expanded": E,
|
|
156
171
|
"data-testid": "assistant-sheet-handle",
|
|
157
|
-
children: /* @__PURE__ */
|
|
158
|
-
}), /* @__PURE__ */
|
|
172
|
+
children: /* @__PURE__ */ N("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
|
|
173
|
+
}), /* @__PURE__ */ N("div", {
|
|
159
174
|
className: "flex min-h-0 flex-1 flex-col",
|
|
160
|
-
children:
|
|
175
|
+
children: s ? s(F) : q(a, F)
|
|
161
176
|
})]
|
|
162
|
-
}), v && /* @__PURE__ */
|
|
177
|
+
}), v && /* @__PURE__ */ N("button", {
|
|
163
178
|
type: "button",
|
|
164
|
-
onClick:
|
|
165
|
-
title:
|
|
179
|
+
onClick: x,
|
|
180
|
+
title: T("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
|
|
166
181
|
"aria-label": I,
|
|
167
182
|
"aria-haspopup": "dialog",
|
|
168
183
|
"aria-expanded": y,
|
|
169
184
|
"data-testid": "assistant-fab",
|
|
170
|
-
style: { bottom:
|
|
185
|
+
style: { bottom: c(_) },
|
|
171
186
|
className: "fixed right-6 z-30 size-14 items-center justify-center rounded-full border border-border-strong bg-[var(--color-accent-soft)] text-action-primary-bg shadow-float transition-colors duration-200 hover:border-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] cursor-pointer " + (y ? "hidden sm:inline-flex" : "inline-flex"),
|
|
172
|
-
children: g ?? /* @__PURE__ */
|
|
187
|
+
children: g ?? /* @__PURE__ */ N(M, {
|
|
173
188
|
className: "size-6",
|
|
174
189
|
"aria-hidden": "true"
|
|
175
190
|
})
|
|
@@ -177,4 +192,4 @@ function K({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel:
|
|
|
177
192
|
});
|
|
178
193
|
}
|
|
179
194
|
//#endregion
|
|
180
|
-
export {
|
|
195
|
+
export { J as AssistantOverlay, K as AssistantOverlayProvider, L as useAssistantDockWidth, I as useAssistantOverlayOrNull, R as useAssistantPanelInset, W as useAssistantQuotaExhausted };
|
|
@@ -136,6 +136,44 @@ export declare function publishedAssistantDockWidth(input: {
|
|
|
136
136
|
docked: boolean;
|
|
137
137
|
isDesktop: boolean;
|
|
138
138
|
}): number;
|
|
139
|
+
/** Width of the floating desktop window. Must match `sm:w-[520px]` below. */
|
|
140
|
+
export declare const ASSISTANT_FLOATING_WIDTH_PX = 520;
|
|
141
|
+
/**
|
|
142
|
+
* Gap between the floating window and the right edge of the viewport. Must
|
|
143
|
+
* match `sm:right-6` below: Tailwind's spacing unit is 0.25rem, so 6 is 1.5rem,
|
|
144
|
+
* which is 24px at the 16px root size every product ships with.
|
|
145
|
+
*/
|
|
146
|
+
export declare const ASSISTANT_FLOATING_RIGHT_PX = 24;
|
|
147
|
+
/**
|
|
148
|
+
* CSS custom property on `<html>` carrying how much of the page's RIGHT edge
|
|
149
|
+
* the open assistant covers: the docked width while docked, the floating
|
|
150
|
+
* window's width plus its right gap while floating, and `0px` while it is
|
|
151
|
+
* closed or on a phone (where it is a bottom sheet).
|
|
152
|
+
*
|
|
153
|
+
* ★★ WHY A SECOND VARIABLE (BOFF-7799). `--assistant-dock-width` is `0px`
|
|
154
|
+
* while the panel FLOATS, which is the default, because a floating window does
|
|
155
|
+
* not take width from the layout. But it still sits OVER the page: a product
|
|
156
|
+
* surface padded by the dock width kept its right 45 % (its close button,
|
|
157
|
+
* its status, its tab actions) under the open chat. A surface that must stay
|
|
158
|
+
* usable beside the chat pads by this instead, with the dock width as the
|
|
159
|
+
* fallback for an fe-libs that does not publish it:
|
|
160
|
+
* `var(--assistant-panel-inset, var(--assistant-dock-width, 0px))`.
|
|
161
|
+
*
|
|
162
|
+
* `--assistant-dock-width` is unchanged, so nothing that reads it moves.
|
|
163
|
+
*/
|
|
164
|
+
export declare const ASSISTANT_PANEL_INSET_VAR = "--assistant-panel-inset";
|
|
165
|
+
/**
|
|
166
|
+
* How far the open assistant reaches in from the right edge of the page, in px.
|
|
167
|
+
*
|
|
168
|
+
* ★ 544 while floating is exact at every desktop width. The window's
|
|
169
|
+
* `sm:max-w-[calc(100vw-2rem)]` clamp only bites below 552px, and the desktop
|
|
170
|
+
* layout starts at 640px.
|
|
171
|
+
*/
|
|
172
|
+
export declare function publishedAssistantPanelInset(input: {
|
|
173
|
+
isOpen: boolean;
|
|
174
|
+
docked: boolean;
|
|
175
|
+
isDesktop: boolean;
|
|
176
|
+
}): number;
|
|
139
177
|
/**
|
|
140
178
|
* Shared by every layout. On a phone: a full-width bottom sheet with a rounded
|
|
141
179
|
* top edge. ★ No height here — see the two below.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistantOverlayState.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/assistantOverlayState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"assistantOverlayState.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/assistantOverlayState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAMzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CASxE;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAE3F;AAED,uDAAuD;AACvD,eAAO,MAAM,+BAA+B,iBAAiB,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC,GACrE,OAAO,CAOT;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,0DAAsD,CAAC;AAE7F,MAAM,MAAM,4BAA4B,GAAG,OAAO,GAAG,QAAQ,CAAC;AAO9D;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAEhF;AAWD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;CAC1B,GAAG,4BAA4B,CAM/B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iCAAiC,qGACsD,CAAC;AAErG;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAEjE,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAEnE,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AAEpE,oEAAoE;AACpE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAET;AAED,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAEnE;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAGmB,CAAC;AAE3D,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE,4CAA4C;AAC5C,eAAO,MAAM,8BAA8B,0BAA0B,CAAC;AAEtE,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,QAEwC,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,QAEyB,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAM/F;AAED,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,qCAAqC;IACrC,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,sDAAsD;IACtD,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,gCAAgC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CASjG;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAS5D;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,SAAS,EACnD,GAAG,EAAE,MAAM,GACV,OAAO,CAMT;AAED,mFAAmF;AACnF,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,SAAS,EACnD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,IAAI,CAMN"}
|
|
@@ -36,15 +36,19 @@ var d = 440, f = "--assistant-dock-width", p = "--assistant-overlay-top", m = 56
|
|
|
36
36
|
function g(e) {
|
|
37
37
|
return e.isOpen && e.docked && e.isDesktop ? 440 : 0;
|
|
38
38
|
}
|
|
39
|
-
var _ =
|
|
40
|
-
function
|
|
39
|
+
var _ = 520, v = 24, y = "--assistant-panel-inset";
|
|
40
|
+
function b(e) {
|
|
41
|
+
return !e.isOpen || !e.isDesktop ? 0 : e.docked ? 440 : 544;
|
|
42
|
+
}
|
|
43
|
+
var x = "fixed z-50 flex flex-col overflow-hidden border border-border-default bg-bg-surface shadow-2xl inset-x-0 bottom-0 top-auto rounded-t-2xl animate-in slide-in-from-bottom-4 fade-in duration-200", S = "h-[60vh] max-h-[60vh]", C = "h-[88vh] max-h-[88vh]", w = "sm:inset-auto sm:top-auto sm:bottom-24 sm:right-6 sm:rounded-2xl sm:h-[680px] sm:max-h-[calc(100vh-8rem)] sm:w-[520px] sm:max-w-[calc(100vw-2rem)]", T = "sm:left-auto sm:right-0 sm:top-[var(--assistant-overlay-top)] sm:bottom-0 sm:rounded-none sm:h-auto sm:max-h-none sm:w-[440px] sm:max-w-[calc(100vw-2rem)]";
|
|
44
|
+
function E(e) {
|
|
41
45
|
return [
|
|
42
|
-
|
|
43
|
-
e.expanded ?
|
|
44
|
-
e.docked ?
|
|
46
|
+
x,
|
|
47
|
+
e.expanded ? C : S,
|
|
48
|
+
e.docked ? T : w
|
|
45
49
|
].join(" ");
|
|
46
50
|
}
|
|
47
|
-
function
|
|
51
|
+
function D(e) {
|
|
48
52
|
return (t) => {
|
|
49
53
|
if (e.isShellLessTarget?.(t)) {
|
|
50
54
|
e.openInNewTab(t);
|
|
@@ -53,22 +57,22 @@ function C(e) {
|
|
|
53
57
|
e.navigate(t), e.isDesktop() || e.collapseSheet();
|
|
54
58
|
};
|
|
55
59
|
}
|
|
56
|
-
function
|
|
60
|
+
function O(e) {
|
|
57
61
|
if (typeof CustomEvent > "u" || !(e instanceof CustomEvent)) return "generic";
|
|
58
62
|
let t = e.detail;
|
|
59
63
|
return typeof t != "object" || !t || !("kind" in t) ? "generic" : t.kind === "sandbox" || t.kind === "ai-credits" ? t.kind : "generic";
|
|
60
64
|
}
|
|
61
|
-
function
|
|
65
|
+
function k(e, t) {
|
|
62
66
|
try {
|
|
63
67
|
return e()?.getItem(t) === "1";
|
|
64
68
|
} catch {
|
|
65
69
|
return !1;
|
|
66
70
|
}
|
|
67
71
|
}
|
|
68
|
-
function
|
|
72
|
+
function A(e, t, n) {
|
|
69
73
|
try {
|
|
70
74
|
e()?.setItem(t, n ? "1" : "0");
|
|
71
75
|
} catch {}
|
|
72
76
|
}
|
|
73
77
|
//#endregion
|
|
74
|
-
export { l as ASSISTANT_BOTTOM_CHROME_CLEARANCE, a as ASSISTANT_DIALOG_SELECTOR,
|
|
78
|
+
export { l as ASSISTANT_BOTTOM_CHROME_CLEARANCE, a as ASSISTANT_DIALOG_SELECTOR, T as ASSISTANT_DOCKED_DESKTOP_CLASS, d as ASSISTANT_DOCK_WIDTH_PX, f as ASSISTANT_DOCK_WIDTH_VAR, w as ASSISTANT_FLOATING_DESKTOP_CLASS, v as ASSISTANT_FLOATING_RIGHT_PX, _ as ASSISTANT_FLOATING_WIDTH_PX, m as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, h as ASSISTANT_OVERLAY_DESKTOP_QUERY, p as ASSISTANT_OVERLAY_TOP_VAR, y as ASSISTANT_PANEL_INSET_VAR, x as ASSISTANT_SHEET_BASE_CLASS, S as ASSISTANT_SHEET_COMPACT_CLASS, C as ASSISTANT_SHEET_EXPANDED_CLASS, r as ASSISTANT_TOGGLE_SHORTCUT_LABEL, u as aboveAssistantBottomChrome, E as assistantOverlayClassName, c as assistantOverlayEscapeAction, e as assistantOverlayKeys, O as assistantQuotaKindOf, o as closestAround, D as createAssistantNavigate, i as isAssistantToggleShortcut, n as nextAssistantOpenState, g as publishedAssistantDockWidth, b as publishedAssistantPanelInset, k as readAssistantOverlayFlag, t as requestedAssistantOpenState, A as writeAssistantOverlayFlag };
|
|
@@ -23,6 +23,15 @@ interface Props {
|
|
|
23
23
|
/** False once MAX_ATTACHMENTS is reached — the control explains why. */
|
|
24
24
|
canAddMore: boolean;
|
|
25
25
|
disabled?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Show "Connect a source" as visible text beside the "+" from `sm` up, when
|
|
28
|
+
* the menu holds that item (BOFF-8158).
|
|
29
|
+
*
|
|
30
|
+
* ★ Opt-in, and only the COMPOSER opts in. The voice session's copy sits in
|
|
31
|
+
* a corner between other absolutely placed controls, where text would run
|
|
32
|
+
* into them; and a product composing its own chrome keeps the icon it has.
|
|
33
|
+
*/
|
|
34
|
+
showLabel?: boolean;
|
|
26
35
|
}
|
|
27
36
|
/**
|
|
28
37
|
* Leading circular "+" attach control in the composer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantAttachmentButton.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantAttachmentButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAiBf,UAAU,KAAK;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AssistantAttachmentButton.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantAttachmentButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAiBf,UAAU,KAAK;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAoBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,KAAK,CAuN/C,CAAC"}
|
|
@@ -8,81 +8,85 @@ import { useCallback as s, useEffect as c, useMemo as l, useRef as u, useState a
|
|
|
8
8
|
import { Camera as f, FileText as p, FolderOpen as m, ImageIcon as h, Plus as g } from "lucide-react";
|
|
9
9
|
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
10
10
|
//#region src/shared/assistant/ui/composer/AssistantAttachmentButton.tsx
|
|
11
|
-
var y = {
|
|
11
|
+
var y = "flex size-9 items-center justify-center rounded-full border border-border-subtle bg-bg-elevated 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 disabled:cursor-not-allowed disabled:text-text-muted disabled:hover:bg-bg-elevated", b = `${y} sm:w-auto sm:gap-1.5 sm:px-3`, x = {
|
|
12
12
|
camera: f,
|
|
13
13
|
gallery: h,
|
|
14
14
|
documents: p,
|
|
15
15
|
files: m
|
|
16
|
-
},
|
|
17
|
-
let
|
|
18
|
-
|
|
19
|
-
let
|
|
20
|
-
o(
|
|
21
|
-
if (!
|
|
16
|
+
}, S = ({ onFiles: f, onPickerOpen: p, direction: m = "up", canAddMore: h, disabled: S = !1, showLabel: C = !1 }) => {
|
|
17
|
+
let w = e(), T = u(null), E = u(null), D = u(null), [O, k] = d(!1), A = u(p);
|
|
18
|
+
A.current = p;
|
|
19
|
+
let j = l(() => t(n()), []), M = r(i()), N = h || M, P = h ? M ? `${w("composer.attach", "Attach files or photos")} · ${w("composer.connectSource", "Connect a source")}` : w("composer.attach", "Attach files or photos") : w("composer.attachFull", "Attachment limit reached ({{max}})", { max: 5 }), F = C && h && M ? w("composer.connectSource", "Connect a source") : null;
|
|
20
|
+
o(O, E, D, () => k(!1)), c(() => {
|
|
21
|
+
if (!O) return;
|
|
22
22
|
let e = (e) => {
|
|
23
23
|
let t = e.target;
|
|
24
|
-
|
|
24
|
+
E.current?.contains(t) || D.current?.contains(t) || k(!1);
|
|
25
25
|
};
|
|
26
26
|
return window.addEventListener("mousedown", e), () => {
|
|
27
27
|
window.removeEventListener("mousedown", e);
|
|
28
28
|
};
|
|
29
|
-
}, [
|
|
30
|
-
let
|
|
29
|
+
}, [O]);
|
|
30
|
+
let I = s((e) => {
|
|
31
31
|
f(e.target.files), e.target.value = "";
|
|
32
|
-
}, [f]),
|
|
33
|
-
let t =
|
|
34
|
-
t && (t.accept = e.accept, t.multiple = e.multiple, e.capture ? t.setAttribute("capture", e.capture) : t.removeAttribute("capture"),
|
|
32
|
+
}, [f]), L = s((e) => {
|
|
33
|
+
let t = T.current;
|
|
34
|
+
t && (t.accept = e.accept, t.multiple = e.multiple, e.capture ? t.setAttribute("capture", e.capture) : t.removeAttribute("capture"), k(!1), A.current?.(), t.click());
|
|
35
35
|
}, []);
|
|
36
36
|
return /* @__PURE__ */ v("div", {
|
|
37
37
|
className: "relative flex-shrink-0",
|
|
38
38
|
children: [
|
|
39
39
|
/* @__PURE__ */ _("input", {
|
|
40
|
-
ref:
|
|
40
|
+
ref: T,
|
|
41
41
|
type: "file",
|
|
42
42
|
multiple: !0,
|
|
43
43
|
className: "hidden",
|
|
44
|
-
onChange:
|
|
44
|
+
onChange: I,
|
|
45
45
|
tabIndex: -1,
|
|
46
46
|
"aria-hidden": "true",
|
|
47
47
|
"data-testid": "assistant-attach-input"
|
|
48
48
|
}),
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
-
ref:
|
|
49
|
+
/* @__PURE__ */ v("button", {
|
|
50
|
+
ref: D,
|
|
51
51
|
type: "button",
|
|
52
|
-
onClick: () =>
|
|
53
|
-
disabled:
|
|
54
|
-
title:
|
|
55
|
-
"aria-label":
|
|
52
|
+
onClick: () => k((e) => !e),
|
|
53
|
+
disabled: S || !N,
|
|
54
|
+
title: P,
|
|
55
|
+
"aria-label": P,
|
|
56
56
|
"aria-haspopup": "menu",
|
|
57
|
-
"aria-expanded":
|
|
58
|
-
className:
|
|
57
|
+
"aria-expanded": O,
|
|
58
|
+
className: F ? b : y,
|
|
59
59
|
"data-testid": "assistant-attach",
|
|
60
|
-
children: /* @__PURE__ */ _(g, { className: "size-4" })
|
|
60
|
+
children: [/* @__PURE__ */ _(g, { className: "size-4" }), F ? /* @__PURE__ */ _("span", {
|
|
61
|
+
className: "hidden max-w-[10rem] truncate text-[13px] font-medium leading-tight sm:block",
|
|
62
|
+
"data-testid": "assistant-attach-label",
|
|
63
|
+
children: F
|
|
64
|
+
}) : null]
|
|
61
65
|
}),
|
|
62
|
-
|
|
63
|
-
ref:
|
|
66
|
+
O ? /* @__PURE__ */ v("div", {
|
|
67
|
+
ref: E,
|
|
64
68
|
role: "menu",
|
|
65
|
-
"aria-label":
|
|
69
|
+
"aria-label": w("composer.attachSource", "Attach from"),
|
|
66
70
|
className: `absolute ${m === "up" ? "bottom-full mb-2" : "top-full mt-2"} left-0 z-30 min-w-44 overflow-hidden rounded-xl border border-border-default bg-bg-elevated py-1 shadow-lg`,
|
|
67
71
|
"data-testid": "assistant-attach-menu",
|
|
68
|
-
children: [
|
|
69
|
-
let t =
|
|
72
|
+
children: [j.map((e) => {
|
|
73
|
+
let t = x[e.id];
|
|
70
74
|
return /* @__PURE__ */ v("button", {
|
|
71
75
|
type: "button",
|
|
72
76
|
role: "menuitem",
|
|
73
77
|
disabled: !h,
|
|
74
|
-
onClick: () =>
|
|
78
|
+
onClick: () => L(e),
|
|
75
79
|
className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-sm text-text-primary transition-colors hover:bg-bg-sunken focus:outline-none focus-visible:bg-bg-sunken disabled:cursor-not-allowed disabled:text-text-muted disabled:hover:bg-transparent",
|
|
76
80
|
"data-testid": `assistant-attach-source-${e.id}`,
|
|
77
81
|
children: [/* @__PURE__ */ _(t, {
|
|
78
82
|
className: "size-4 flex-shrink-0 text-text-secondary",
|
|
79
83
|
"aria-hidden": "true"
|
|
80
|
-
}),
|
|
84
|
+
}), w(e.labelKey, e.labelFallback)]
|
|
81
85
|
}, e.id);
|
|
82
|
-
}), /* @__PURE__ */ _(a, { onActivate: () =>
|
|
86
|
+
}), /* @__PURE__ */ _(a, { onActivate: () => k(!1) })]
|
|
83
87
|
}) : null
|
|
84
88
|
]
|
|
85
89
|
});
|
|
86
90
|
};
|
|
87
91
|
//#endregion
|
|
88
|
-
export {
|
|
92
|
+
export { S as AssistantAttachmentButton };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantComposer.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,UAAU,KAAK;IACb;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACtE,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,qDAAqD;IACrD,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,qFAAqF;IACrF,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"AssistantComposer.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,UAAU,KAAK;IACb;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACtE,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,qDAAqD;IACrD,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,qFAAqF;IACrF,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAgbvC,CAAC"}
|
|
@@ -15,9 +15,25 @@ import { FC } from 'react';
|
|
|
15
15
|
* back off the dialog the user just asked for.
|
|
16
16
|
*/
|
|
17
17
|
export declare function connectSourceActivation(open: () => void, onActivate?: () => void): () => void;
|
|
18
|
+
/**
|
|
19
|
+
* Where the entry point is drawn.
|
|
20
|
+
*
|
|
21
|
+
* - `menuitem`: the attach menu's last item, as it always was.
|
|
22
|
+
* - `action`: a standalone, visibly labelled button, for the empty
|
|
23
|
+
* conversation (BOFF-8158). Not a `menuitem`, because there is no menu
|
|
24
|
+
* around it, and a role that promises one misleads a screen reader.
|
|
25
|
+
*
|
|
26
|
+
* ★★ ONE COMPONENT FOR BOTH, not a second copy. Everything that decides
|
|
27
|
+
* whether the entry exists and what a click does (the shared availability
|
|
28
|
+
* predicate, a product's own `open` winning over its href, the router getting
|
|
29
|
+
* the resolved path, the browser winning a modified click) lives here once.
|
|
30
|
+
*/
|
|
31
|
+
export type AssistantConnectSourcePresentation = "menuitem" | "action";
|
|
18
32
|
export interface AssistantConnectSourceItemProps {
|
|
19
33
|
/** Close the surrounding menu. Fired only when this item actually acts. */
|
|
20
34
|
onActivate?: () => void;
|
|
35
|
+
/** Where it is drawn. Defaults to the attach menu's item. */
|
|
36
|
+
presentation?: AssistantConnectSourcePresentation;
|
|
21
37
|
}
|
|
22
38
|
export declare const AssistantConnectSourceItem: FC<AssistantConnectSourceItemProps>;
|
|
23
39
|
//# sourceMappingURL=AssistantConnectSourceItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantConnectSourceItem.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantConnectSourceItem.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AssistantConnectSourceItem.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantConnectSourceItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAe,KAAK,EAAE,EAAmB,MAAM,OAAO,CAAC;AAc9D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,IAAI,EAChB,UAAU,CAAC,EAAE,MAAM,IAAI,GACtB,MAAM,IAAI,CAKZ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kCAAkC,GAAG,UAAU,GAAG,QAAQ,CAAC;AAoBvE,MAAM,WAAW,+BAA+B;IAC9C,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,kCAAkC,CAAC;CACnD;AAED,eAAO,MAAM,0BAA0B,EAAE,EAAE,CAAC,+BAA+B,CA6F1E,CAAC"}
|