@burdenoff/fe-libs 2026.910.5 → 2026.910.6
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/index.d.ts +2 -0
- package/dist/shared/assistant/index.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AIAssistantPanel.d.ts +11 -0
- package/dist/shared/assistant/ui/AIAssistantPanel.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AIAssistantPanel.js +47 -43
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.js +50 -47
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts +7 -0
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts.map +1 -0
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +52 -0
- package/dist/shared/assistant/ui/composer/connectSource.d.ts +8 -0
- package/dist/shared/assistant/ui/composer/connectSource.d.ts.map +1 -0
- package/dist/shared/assistant/ui/composer/connectSource.js +12 -0
- package/dist/shared-assistant.js +39 -37
- package/package.json +1 -1
|
@@ -89,6 +89,8 @@ export * from './ui/AssistantSpeakButton';
|
|
|
89
89
|
export * from './ui/AssistantSpokenTurnsNotice';
|
|
90
90
|
export * from './ui/composer/AssistantAttachmentButton';
|
|
91
91
|
export * from './ui/composer/AssistantAttachmentChips';
|
|
92
|
+
export * from './ui/composer/AssistantConnectSourceItem';
|
|
93
|
+
export * from './ui/composer/connectSource';
|
|
92
94
|
export * from './ui/composer/AssistantLanguageSelector';
|
|
93
95
|
export * from './ui/composer/AssistantModeSelector';
|
|
94
96
|
export * from './ui/composer/AssistantVoiceButton';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,17 @@ export type AIAssistantPanelProps = PanelProps & {
|
|
|
24
24
|
* stay ordinary same-tab anchors — the assistant never navigates on its own.
|
|
25
25
|
*/
|
|
26
26
|
onNavigate?: AssistantNavigate;
|
|
27
|
+
/**
|
|
28
|
+
* Where this product's "connect a data source" page lives, e.g.
|
|
29
|
+
* `/integrations/connections`. Absence is the off-switch: with no href the
|
|
30
|
+
* attach menu shows no such item.
|
|
31
|
+
*
|
|
32
|
+
* ★ Threaded through rather than assumed, for the same reason as `onNavigate`:
|
|
33
|
+
* only the product knows its own routes. It is classified like any other link
|
|
34
|
+
* before it is used, so a same-origin path routes in-app and anything else
|
|
35
|
+
* opens in a new tab.
|
|
36
|
+
*/
|
|
37
|
+
connectSourceHref?: string;
|
|
27
38
|
};
|
|
28
39
|
/**
|
|
29
40
|
* The panel.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAMrC,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAgHtD,CAAC"}
|
|
@@ -3,52 +3,56 @@ import { useAssistantTr as t } from "../i18n.js";
|
|
|
3
3
|
import { AssistantNavigateProvider as n } from "./AssistantMarkdownRenderer.js";
|
|
4
4
|
import { useAssistantStore as r } from "../store.js";
|
|
5
5
|
import { AssistantSpeechProvider as i } from "./AssistantSpeechProvider.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
6
|
+
import { AssistantConnectSourceProvider as a } from "./composer/connectSource.js";
|
|
7
|
+
import { AssistantHeader as o } from "./AssistantHeader.js";
|
|
8
|
+
import { AssistantConversationList as s } from "./AssistantConversationList.js";
|
|
9
|
+
import { useFilesServiceWarmup as c } from "../../../storage/warmFilesService.js";
|
|
10
|
+
import { useAssistantHeartbeat as l } from "../useAssistantHeartbeat.js";
|
|
11
|
+
import { useAssistantKeyboardShortcuts as u } from "../useAssistantKeyboardShortcuts.js";
|
|
12
|
+
import { AssistantChatArea as d } from "./AssistantChatArea.js";
|
|
13
|
+
import { useRef as f } from "react";
|
|
14
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
14
15
|
//#region src/shared/assistant/ui/AIAssistantPanel.tsx
|
|
15
|
-
var
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
let
|
|
19
|
-
return
|
|
20
|
-
panelRef:
|
|
21
|
-
onClose:
|
|
22
|
-
}), /* @__PURE__ */
|
|
23
|
-
visible:
|
|
24
|
-
children: /* @__PURE__ */
|
|
25
|
-
value:
|
|
26
|
-
children: /* @__PURE__ */ p(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
16
|
+
var h = ({ onClose: h, visible: g, docked: _, onToggleDock: v, writeAccess: y, onNavigate: b, connectSourceHref: x }) => {
|
|
17
|
+
let S = t(), C = f(null), { conversations: w, activeConversationId: T, conversationListOpen: E, toggleConversationList: D, createConversation: O } = r(), k = w.find((e) => e.id === T);
|
|
18
|
+
l(k?.backendSessionId ?? null, k?.mode ?? null, g ?? !0), c(g ?? !0);
|
|
19
|
+
let A = e(g !== !1);
|
|
20
|
+
return u({
|
|
21
|
+
panelRef: C,
|
|
22
|
+
onClose: h
|
|
23
|
+
}), /* @__PURE__ */ p(i, {
|
|
24
|
+
visible: g ?? !0,
|
|
25
|
+
children: /* @__PURE__ */ p(n, {
|
|
26
|
+
value: b,
|
|
27
|
+
children: /* @__PURE__ */ p(a, {
|
|
28
|
+
value: x,
|
|
29
|
+
children: /* @__PURE__ */ m("div", {
|
|
30
|
+
ref: C,
|
|
31
|
+
className: "relative flex h-full w-full flex-col bg-bg-surface",
|
|
32
|
+
role: "complementary",
|
|
33
|
+
"aria-label": S("panel.ariaLabel", "AI Assistant"),
|
|
34
|
+
"data-testid": "ai-assistant-panel",
|
|
35
|
+
tabIndex: -1,
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ p(o, {
|
|
38
|
+
contextLabel: A,
|
|
39
|
+
onNewConversation: () => O(),
|
|
40
|
+
onOpenHistory: D,
|
|
41
|
+
historyOpen: E,
|
|
42
|
+
onClose: h,
|
|
43
|
+
docked: _,
|
|
44
|
+
onToggleDock: v
|
|
45
|
+
}),
|
|
46
|
+
E && /* @__PURE__ */ p(s, {}),
|
|
47
|
+
/* @__PURE__ */ p(d, {
|
|
48
|
+
visible: g ?? !0,
|
|
49
|
+
writeAccess: y
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
})
|
|
49
53
|
})
|
|
50
54
|
})
|
|
51
55
|
});
|
|
52
56
|
};
|
|
53
57
|
//#endregion
|
|
54
|
-
export {
|
|
58
|
+
export { h as AIAssistantPanel };
|
|
@@ -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;
|
|
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;AAaf,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;CACpB;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,KAAK,CA4J/C,CAAC"}
|
|
@@ -1,86 +1,89 @@
|
|
|
1
1
|
import { useAssistantTr as e } from "../../i18n.js";
|
|
2
2
|
import "../../attachments.js";
|
|
3
3
|
import { availableAttachmentSources as t, deviceHasCamera as n } from "../../attachmentSources.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { useAssistantConnectSource as r } from "./connectSource.js";
|
|
5
|
+
import { AssistantConnectSourceItem as i } from "./AssistantConnectSourceItem.js";
|
|
6
|
+
import { useCallback as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
|
|
7
|
+
import { Camera as u, FileText as d, FolderOpen as f, ImageIcon as p, Plus as m } from "lucide-react";
|
|
8
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
7
9
|
//#region src/shared/assistant/ui/composer/AssistantAttachmentButton.tsx
|
|
8
|
-
var
|
|
9
|
-
camera:
|
|
10
|
-
gallery:
|
|
11
|
-
documents:
|
|
12
|
-
files:
|
|
13
|
-
},
|
|
14
|
-
let
|
|
15
|
-
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
if (!
|
|
10
|
+
var _ = {
|
|
11
|
+
camera: u,
|
|
12
|
+
gallery: p,
|
|
13
|
+
documents: d,
|
|
14
|
+
files: f
|
|
15
|
+
}, v = ({ onFiles: u, onPickerOpen: d, direction: f = "up", canAddMore: p, disabled: v = !1 }) => {
|
|
16
|
+
let y = e(), b = c(null), x = c(null), S = c(null), [C, w] = l(!1), T = c(d);
|
|
17
|
+
T.current = d;
|
|
18
|
+
let E = s(() => t(n()), []), D = r(), O = p || !!D, k = p ? y("composer.attach", "Attach files or photos") : y("composer.attachFull", "Attachment limit reached ({{max}})", { max: 5 });
|
|
19
|
+
o(() => {
|
|
20
|
+
if (!C) return;
|
|
19
21
|
let e = (e) => {
|
|
20
|
-
e.key === "Escape" && (
|
|
22
|
+
e.key === "Escape" && (w(!1), S.current?.focus());
|
|
21
23
|
}, t = (e) => {
|
|
22
24
|
let t = e.target;
|
|
23
|
-
|
|
25
|
+
x.current?.contains(t) || S.current?.contains(t) || w(!1);
|
|
24
26
|
};
|
|
25
27
|
return window.addEventListener("keydown", e), window.addEventListener("mousedown", t), () => {
|
|
26
28
|
window.removeEventListener("keydown", e), window.removeEventListener("mousedown", t);
|
|
27
29
|
};
|
|
28
|
-
}, [
|
|
29
|
-
let
|
|
30
|
-
|
|
31
|
-
}, [
|
|
32
|
-
let t =
|
|
33
|
-
t && (t.accept = e.accept, t.multiple = e.multiple, e.capture ? t.setAttribute("capture", e.capture) : t.removeAttribute("capture"),
|
|
30
|
+
}, [C]);
|
|
31
|
+
let A = a((e) => {
|
|
32
|
+
u(e.target.files), e.target.value = "";
|
|
33
|
+
}, [u]), j = a((e) => {
|
|
34
|
+
let t = b.current;
|
|
35
|
+
t && (t.accept = e.accept, t.multiple = e.multiple, e.capture ? t.setAttribute("capture", e.capture) : t.removeAttribute("capture"), w(!1), T.current?.(), t.click());
|
|
34
36
|
}, []);
|
|
35
|
-
return /* @__PURE__ */
|
|
37
|
+
return /* @__PURE__ */ g("div", {
|
|
36
38
|
className: "relative flex-shrink-0",
|
|
37
39
|
children: [
|
|
38
|
-
/* @__PURE__ */
|
|
39
|
-
ref:
|
|
40
|
+
/* @__PURE__ */ h("input", {
|
|
41
|
+
ref: b,
|
|
40
42
|
type: "file",
|
|
41
43
|
multiple: !0,
|
|
42
44
|
className: "hidden",
|
|
43
|
-
onChange:
|
|
45
|
+
onChange: A,
|
|
44
46
|
tabIndex: -1,
|
|
45
47
|
"aria-hidden": "true",
|
|
46
48
|
"data-testid": "assistant-attach-input"
|
|
47
49
|
}),
|
|
48
|
-
/* @__PURE__ */
|
|
49
|
-
ref:
|
|
50
|
+
/* @__PURE__ */ h("button", {
|
|
51
|
+
ref: S,
|
|
50
52
|
type: "button",
|
|
51
|
-
onClick: () =>
|
|
52
|
-
disabled:
|
|
53
|
-
title:
|
|
54
|
-
"aria-label":
|
|
53
|
+
onClick: () => w((e) => !e),
|
|
54
|
+
disabled: v || !O,
|
|
55
|
+
title: k,
|
|
56
|
+
"aria-label": k,
|
|
55
57
|
"aria-haspopup": "menu",
|
|
56
|
-
"aria-expanded":
|
|
58
|
+
"aria-expanded": C,
|
|
57
59
|
className: "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",
|
|
58
60
|
"data-testid": "assistant-attach",
|
|
59
|
-
children: /* @__PURE__ */
|
|
61
|
+
children: /* @__PURE__ */ h(m, { className: "size-4" })
|
|
60
62
|
}),
|
|
61
|
-
|
|
62
|
-
ref:
|
|
63
|
+
C ? /* @__PURE__ */ g("div", {
|
|
64
|
+
ref: x,
|
|
63
65
|
role: "menu",
|
|
64
|
-
"aria-label":
|
|
65
|
-
className: `absolute ${
|
|
66
|
+
"aria-label": y("composer.attachSource", "Attach from"),
|
|
67
|
+
className: `absolute ${f === "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`,
|
|
66
68
|
"data-testid": "assistant-attach-menu",
|
|
67
|
-
children:
|
|
68
|
-
let t =
|
|
69
|
-
return /* @__PURE__ */
|
|
69
|
+
children: [E.map((e) => {
|
|
70
|
+
let t = _[e.id];
|
|
71
|
+
return /* @__PURE__ */ g("button", {
|
|
70
72
|
type: "button",
|
|
71
73
|
role: "menuitem",
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
disabled: !p,
|
|
75
|
+
onClick: () => j(e),
|
|
76
|
+
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",
|
|
74
77
|
"data-testid": `assistant-attach-source-${e.id}`,
|
|
75
|
-
children: [/* @__PURE__ */
|
|
78
|
+
children: [/* @__PURE__ */ h(t, {
|
|
76
79
|
className: "size-4 flex-shrink-0 text-text-secondary",
|
|
77
80
|
"aria-hidden": "true"
|
|
78
|
-
}),
|
|
81
|
+
}), y(e.labelKey, e.labelFallback)]
|
|
79
82
|
}, e.id);
|
|
80
|
-
})
|
|
83
|
+
}), /* @__PURE__ */ h(i, { onActivate: () => w(!1) })]
|
|
81
84
|
}) : null
|
|
82
85
|
]
|
|
83
86
|
});
|
|
84
87
|
};
|
|
85
88
|
//#endregion
|
|
86
|
-
export {
|
|
89
|
+
export { v as AssistantAttachmentButton };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
export interface AssistantConnectSourceItemProps {
|
|
3
|
+
/** Close the surrounding menu. Fired only when this item actually acts. */
|
|
4
|
+
onActivate?: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const AssistantConnectSourceItem: FC<AssistantConnectSourceItemProps>;
|
|
7
|
+
//# sourceMappingURL=AssistantConnectSourceItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssistantConnectSourceItem.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantConnectSourceItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAe,KAAK,EAAE,EAAmB,MAAM,OAAO,CAAC;AAuC9D,MAAM,WAAW,+BAA+B;IAC9C,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,EAAE,EAAE,CAAC,+BAA+B,CAwD1E,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useAssistantTr as e } from "../../i18n.js";
|
|
2
|
+
import { assistantRoutePath as t, classifyAssistantHref as n, useAssistantNavigate as r } from "../AssistantMarkdownRenderer.js";
|
|
3
|
+
import { useAssistantConnectSource as i } from "./connectSource.js";
|
|
4
|
+
import { useCallback as a } from "react";
|
|
5
|
+
import { Link2 as o } from "lucide-react";
|
|
6
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
|
+
//#region src/shared/assistant/ui/composer/AssistantConnectSourceItem.tsx
|
|
8
|
+
function l(e, t) {
|
|
9
|
+
let n = (e ?? "").trim();
|
|
10
|
+
if (!n) return !1;
|
|
11
|
+
let r = t;
|
|
12
|
+
if (!r) try {
|
|
13
|
+
r = typeof window > "u" ? void 0 : window.location.origin;
|
|
14
|
+
} catch {
|
|
15
|
+
r = void 0;
|
|
16
|
+
}
|
|
17
|
+
if (!r) return !1;
|
|
18
|
+
try {
|
|
19
|
+
let { protocol: e } = new URL(n, r);
|
|
20
|
+
return e === "https:" || e === "http:";
|
|
21
|
+
} catch {
|
|
22
|
+
return !1;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var u = ({ onActivate: u }) => {
|
|
26
|
+
let d = e(), f = i(), p = r(), m = n(f), h = m === "internal" ? t(f) : null, g = m === "external" && l(f), _ = a((e) => {
|
|
27
|
+
e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || (u?.(), !(!p || !h) && (e.preventDefault(), p(h)));
|
|
28
|
+
}, [
|
|
29
|
+
p,
|
|
30
|
+
h,
|
|
31
|
+
u
|
|
32
|
+
]);
|
|
33
|
+
if (!f || m === "blocked" || !h && !g) return null;
|
|
34
|
+
let v = d("composer.connectSource", "Connect a source");
|
|
35
|
+
return /* @__PURE__ */ c("a", {
|
|
36
|
+
href: f,
|
|
37
|
+
role: "menuitem",
|
|
38
|
+
onClick: _,
|
|
39
|
+
...g ? {
|
|
40
|
+
target: "_blank",
|
|
41
|
+
rel: "noopener noreferrer"
|
|
42
|
+
} : {},
|
|
43
|
+
className: "flex w-full items-center gap-2.5 border-t border-border-subtle 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",
|
|
44
|
+
"data-testid": "assistant-connect-source",
|
|
45
|
+
children: [/* @__PURE__ */ s(o, {
|
|
46
|
+
className: "size-4 flex-shrink-0 text-text-secondary",
|
|
47
|
+
"aria-hidden": "true"
|
|
48
|
+
}), v]
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
export { u as AssistantConnectSourceItem };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
export declare const AssistantConnectSourceProvider: FC<{
|
|
3
|
+
value?: string;
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
}>;
|
|
6
|
+
/** The product's connections href, or null when the product supplied none. */
|
|
7
|
+
export declare function useAssistantConnectSource(): string | null;
|
|
8
|
+
//# sourceMappingURL=connectSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectSource.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/connectSource.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAA6B,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB,CAIA,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAEzD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createContext as e, useContext as t } from "react";
|
|
2
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
+
//#region src/shared/assistant/ui/composer/connectSource.tsx
|
|
4
|
+
var r = e(null), i = ({ value: e, children: t }) => /* @__PURE__ */ n(r.Provider, {
|
|
5
|
+
value: e ?? null,
|
|
6
|
+
children: t
|
|
7
|
+
});
|
|
8
|
+
function a() {
|
|
9
|
+
return t(r);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { i as AssistantConnectSourceProvider, a as useAssistantConnectSource };
|
package/dist/shared-assistant.js
CHANGED
|
@@ -55,40 +55,42 @@ import { AssistantLanguageMenu as Zr } from "./shared/assistant/ui/AssistantLang
|
|
|
55
55
|
import { AssistantReplyLanguageSelector as Qr } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
|
|
56
56
|
import { AssistantSpeakButton as $r } from "./shared/assistant/ui/AssistantSpeakButton.js";
|
|
57
57
|
import { AssistantSpokenTurnsNotice as ei } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
72
|
-
import {
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
75
|
-
import {
|
|
76
|
-
import {
|
|
77
|
-
import {
|
|
78
|
-
import {
|
|
79
|
-
import {
|
|
80
|
-
import {
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import {
|
|
85
|
-
import {
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
import {
|
|
94
|
-
|
|
58
|
+
import { AssistantConnectSourceProvider as ti, useAssistantConnectSource as ni } from "./shared/assistant/ui/composer/connectSource.js";
|
|
59
|
+
import { AssistantConnectSourceItem as ri } from "./shared/assistant/ui/composer/AssistantConnectSourceItem.js";
|
|
60
|
+
import { AssistantAttachmentButton as ii } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
|
|
61
|
+
import { AssistantAttachmentChips as ai } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
|
|
62
|
+
import { AssistantLanguageSelector as oi, FOLLOW_APP_LOCALE as si } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
|
|
63
|
+
import { ASSISTANT_MODE_META as ci, AssistantModeSelector as li, nextModeIndex as ui } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
|
|
64
|
+
import { AssistantVoiceButton as di } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
|
|
65
|
+
import { AUTO_VOICE as fi, AssistantVoiceSelector as pi } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
|
|
66
|
+
import { AssistantVoiceOrb as mi } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
|
|
67
|
+
import { AssistantVoiceSessionButton as hi } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
|
|
68
|
+
import { CAPTION_SCROLL_ATTR as gi, VoiceCaption as _i } from "./shared/assistant/ui/voice/VoiceCaption.js";
|
|
69
|
+
import { VoiceConversationView as vi } from "./shared/assistant/ui/voice/VoiceConversationView.js";
|
|
70
|
+
import { VoiceWaveform as yi } from "./shared/assistant/ui/voice/VoiceWaveform.js";
|
|
71
|
+
import { VoiceMiniController as bi } from "./shared/assistant/ui/voice/VoiceMiniController.js";
|
|
72
|
+
import { VoiceStage as xi } from "./shared/assistant/ui/voice/VoiceStage.js";
|
|
73
|
+
import { VoiceTranscriptDrawer as Si } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
|
|
74
|
+
import { downloadFile as Ci, exportConversation as wi } from "./shared/assistant/exportConversation.js";
|
|
75
|
+
import { AssistantMoreMenu as Ti } from "./shared/assistant/ui/AssistantMoreMenu.js";
|
|
76
|
+
import { AssistantHeader as Ei } from "./shared/assistant/ui/AssistantHeader.js";
|
|
77
|
+
import { AssistantConversationList as Di } from "./shared/assistant/ui/AssistantConversationList.js";
|
|
78
|
+
import { AssistantEmptyState as Oi } from "./shared/assistant/ui/AssistantEmptyState.js";
|
|
79
|
+
import { AssistantMessageItem as ki } from "./shared/assistant/ui/AssistantMessageItem.js";
|
|
80
|
+
import { AssistantMessageList as Ai } from "./shared/assistant/ui/AssistantMessageList.js";
|
|
81
|
+
import { AssistantVoiceSession as ji } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
|
|
82
|
+
import { useAssistantApiAccess as Mi } from "./shared/assistant/useAssistantApiAccess.js";
|
|
83
|
+
import { useConversationTurns as Ni } from "./shared/assistant/useConversationTurns.js";
|
|
84
|
+
import { isMultimodalBodyRejection as Pi, isRecoverableAssistantError as Fi } from "./shared/assistant/transportErrors.js";
|
|
85
|
+
import { aiCreditsUpdatedEventName as Ii, dispatchAssistantQuotaExhausted as Li, notifyAiCreditsUpdated as Ri } from "./shared/assistant/aiCredits.js";
|
|
86
|
+
import { useWorkspaceWriteAccess as zi } from "./shared/assistant/useWorkspaceWriteAccess.js";
|
|
87
|
+
import { extractDocumentText as Bi } from "./shared/assistant/documentExtract.js";
|
|
88
|
+
import { useAssistantAttachments as Vi } from "./shared/assistant/useAssistantAttachments.js";
|
|
89
|
+
import { AssistantComposer as Hi } from "./shared/assistant/ui/composer/AssistantComposer.js";
|
|
90
|
+
import { isProdRuntime as Ui } from "./shared/assistant/env.js";
|
|
91
|
+
import { useAssistantHeartbeat as Wi } from "./shared/assistant/useAssistantHeartbeat.js";
|
|
92
|
+
import { useAssistantKeyboardShortcuts as Gi } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
|
|
93
|
+
import { AssistantApiCallsConsentDialog as Ki } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
|
|
94
|
+
import { AssistantChatArea as qi } from "./shared/assistant/ui/AssistantChatArea.js";
|
|
95
|
+
import { AIAssistantPanel as Ji } from "./shared/assistant/ui/AIAssistantPanel.js";
|
|
96
|
+
export { Ji as AIAssistantPanel, L as ASSISTANT_API_AUTH_STRATEGY, sn as ASSISTANT_LANGUAGES, ci as ASSISTANT_MODE_META, Kn as ATTACHMENT_ACCEPT, Hr as ATTACHMENT_SOURCES, fi as AUTO_VOICE, Ki as AssistantApiCallsConsentDialog, ii as AssistantAttachmentButton, ai as AssistantAttachmentChips, Jr as AssistantAutoSpeakToggle, qi as AssistantChatArea, Hi as AssistantComposer, ri as AssistantConnectSourceItem, ti as AssistantConnectSourceProvider, Di as AssistantConversationList, Oi as AssistantEmptyState, Ei as AssistantHeader, s as AssistantI18nProvider, Zr as AssistantLanguageMenu, oi as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, Yr as AssistantMessageAttachments, ki as AssistantMessageItem, Ai as AssistantMessageList, li as AssistantModeSelector, Ti as AssistantMoreMenu, g as AssistantNavigateProvider, Xr as AssistantPendingWriteCard, t as AssistantProductProvider, Qr as AssistantReplyLanguageSelector, _e as AssistantRuntimeManager, $r as AssistantSpeakButton, Ir as AssistantSpeechProvider, ei as AssistantSpokenTurnsNotice, Pr as AssistantToolActivity, di as AssistantVoiceButton, mi as AssistantVoiceOrb, pi as AssistantVoiceSelector, ji as AssistantVoiceSession, hi as AssistantVoiceSessionButton, qn as AttachmentRejectedError, En as BOILERPLATE_PAGE_SHARE, gi as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, zt as DEFAULT_SPEAKABLE_LABELS, cn as DEFAULT_SPEECH_RATE, ft as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, si as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, He as HOSTED_TTS_MAX_CHARS, Re as HOSTED_TTS_TIER, ze as HOSTED_VOICES, yn as IDLE_PLAYBACK, pt as INITIAL_SESSION, Jn as INLINE_IMAGE_MAX_DIM, Yn as INLINE_IMAGE_QUALITY, mt as INTERRUPT_MAX_MS, ht as INTERRUPT_MIN_MS, Xn as MAX_ATTACHMENTS, Dn as MAX_BOILERPLATE_LINE_CHARS, On as MAX_EXTRACTED_CHARS, Zn as MAX_FILE_BYTES, Qn as MAX_INLINE_CHARS_PER_FILE, $n as MAX_INLINE_CHARS_TOTAL, wn as MAX_INLINE_IMAGE_BASE64_BYTES, er as MAX_INLINE_IMAGE_BASE64_CHARS, tr as MAX_INLINE_IMAGE_PARTS, nr as MAX_INLINE_TURN_BODY_BYTES, kn as MAX_PDF_PAGES_SCANNED, Tn as MAX_REQUEST_BODY_BYTES, Bt as MAX_SPEAKABLE_CHARS, Vt as MAX_SPOKEN_TABLE_ROWS, rr as MAX_TURN_BODY_BYTES, Zt as MINI_CAPTION_BUDGET, An as MIN_PAGE_TEXT_CHARS, jn as MIN_TEXT_PAGE_SHARE, Dr as PHRASE_ROTATE_MS, $t as POLL_FAST_MS, en as POLL_FAST_UNTIL_MS, tn as POLL_SLOW_MS, nn as POLL_STEADY_MS, rn as POLL_STEADY_UNTIL_MS, Yt as PREVIEW_LANGUAGES, ir as PROMPT_ENVELOPE_RESERVE_BYTES, N as PROXY_SANDBOX_REQUEST, P as REPORT_AI_TOKEN_USAGE, Gr as SANDBOX_READY_TTL_MS, gt as SILENCE_SUBMIT_MS, Ue as SPEAKING_RATE_MAX, We as SPEAKING_RATE_MAX_STREAMING, Ge as SPEAKING_RATE_MAX_SYNC, Ke as SPEAKING_RATE_MIN, Ht as SPEECH_CHUNK_CHARS, Ut as SPEECH_CHUNK_CJK_CHARS, wt as SPEECH_LANG, hn as SPOKEN_LABEL_LANGUAGES, Or as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, kr as THINKING_PHRASES, ar as TURN_BODY_HEADROOM_BYTES, Tt as VOICE_LIST_TIMEOUT_MS, _i as VoiceCaption, vi as VoiceConversationView, bi as VoiceMiniController, xi as VoiceStage, Si as VoiceTranscriptDrawer, yi as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, q as abortAssistantTurn, Ii as aiCreditsUpdatedEventName, J as approvePendingWrite, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, Ur as availableAttachmentSources, qe as base64ToBytes, y as browserShouldHandle, Le as browserSpeechEngine, Y as buildAssistantSandboxEnv, or as buildAttachmentPromptBlock, It as buildContinuedFromVoiceNote, ve as buildProgress, sr as buildPromptParts, X as buildPromptRequestBody, cr as buildPromptWithAttachments, Je as buildRequest, E as buildSandboxContextInput, Lt as buildVoiceTranscriptMarkdown, Ae as chatTurns, Z as checkAssistantAiCredits, Wt as chunkForSpeech, b as classifyAssistantHref, lr as classifyAttachment, Ye as classifyHttpFailure, S as classifyQuotaError, Mn as columnLetterToIndex, tt as configureSpeechEngine, Gt as containsCjk, d as copyToClipboard, ur as countInlineImageCandidates, dr as countInlinedImageParts, Q as createAssistantSandbox, $ as createAssistantSession, $e as createHostedTtsEngine, Kr as createReadinessTracker, et as createRoutingSpeechEngine, Oe as createSandboxAssistantTransport, nt as createSpeechEngines, Xe as decodeAudioResponse, Nn as decodeXmlEntities, C as describeQuotaError, fr as detectDocumentFormat, _n as detectScriptLocale, Wr as deviceHasCamera, Li as dispatchAssistantQuotaExhausted, Pn as docxXmlToText, ee as downloadAssistantArtifact, Ci as downloadFile, pr as estimateTurnBodyBytes, D as executeSandboxGraphQL, wi as exportConversation, te as extendAssistantSandboxTTL, Bi as extractDocumentText, ln as findAssistantLanguage, ne as findExistingSandbox, pn as findPendingWrite, Fn as fitPdfPages, mr as formatBytes, In as formatPageRanges, zr as getActorId, re as getAssistantArtifacts, ye as getAssistantMedia, ie as getAssistantMessages, ae as getAssistantSession, oe as getAssistantStreamAccess, be as getAssistantText, hr as getAttachmentSendBlocker, U as getCapability, gr as getExtension, R as getImageForMode, z as getImageTagForMode, Br as getOrganizationId, xe as getRawMessageCreatedAt, B as getResourcesForMode, V as getSandboxImageRegistry, _r as getSendableAttachments, rt as getSpeechEngine, Se as getToolProgress, Vr as getWorkspaceId, je as groupBySession, Me as groupConsecutiveBySession, vr as hasAttachmentWorkInFlight, Be as hostedLocaleFor, Ve as hostedSupportsLanguage, p as imageHostLabel, _t as isCapturing, vt as isEcho, Ln as isMostlyImagePages, Pi as isMultimodalBodyRejection, Ui as isProdRuntime, w as isQuotaExhaustedError, Ce as isReapedSandboxConnectionError, qr as isRecentlyVerified, we as isRecoverable, Fi as isRecoverableAssistantError, m as isRemoteImageSrc, bn as isSpeakingMessage, Et as isSpeechBlocked, Ar as isStageCopy, yt as isSubmittable, wr as isTurnInFlight, W as isUnknownFieldError, Ne as isVoiceTurn, Rn as joinSheets, Dt as languageDisplayName, Te as mapSessionToHistory, G as markSupported, K as markUnsupported, Ee as mergeMessagesById, ot as micIsInterrupt, se as modeRequiresConfirmWrites, ui as nextModeIndex, Ot as normalizeLangTag, Ri as notifyAiCreditsUpdated, bt as orbMode, zn as pageMarker, mn as parseConfirmationRefusal, yr as parseDataUrl, Bn as parseSharedStrings, Fr as parseToolActivity, Vn as parseWorkbookSheets, Hn as pdfTextItemsToPage, Tr as planAbandonedTurn, xt as planReplyConsumption, Er as planTurnAbort, an as pollDelayMs, kt as primaryLanguageSubtag, xn as publishedChunks, T as quotaExhaustedEventName, it as readSpeechEngineConfig, ce as releaseSupersededAssistantSandboxes, dn as replyFollowsInput, le as reportAssistantAiTokenUsage, Sn as requiresCancel, at as resetSpeechEngine, un as resolveAssistantLanguage, fn as resolveLanguagePair, n as resolveModeConfig, H as resolveSandboxAssistantMode, vn as resolveSpeechLocale, De as sanitize, ue as selectExistingAssistantSandbox, de as selectSupersededAssistantSandboxes, At as selectVoiceForLocale, fe as sendAssistantPromptAsync, pe as sendHeartbeat, Un as sheetXmlToRows, Ze as shouldDisableEngine, Qt as showPreviousChunk, st as showsAssistantCaption, ct as showsUserCaption, Kt as speakableEmail, jt as speechGate, gn as speechLabelsFor, Mt as speechLangForLocale, Cn as speechPlaybackReducer, Qe as splitForVendor, qt as splitTableRow, St as spokenSoFar, jr as stageText, Mr as statusStageCopy, me as stopReapedAssistantSandbox, Wn as summarisePageText, Nr as thinkingPhrase, on as toCaptionText, br as toMessageAttachment, Jt as toSpeakableText, xr as truncateForInline, Gn as truncatePagesForInline, Mi as useAssistantApiAccess, Vi as useAssistantAttachments, ni as useAssistantConnectSource, Wi as useAssistantHeartbeat, l as useAssistantI18nNamespace, Gi as useAssistantKeyboardShortcuts, x as useAssistantNavigate, r as useAssistantPageLabel, i as useAssistantProduct, a as useAssistantProductOrNull, Lr as useAssistantSpeech, o as useAssistantStorageFolders, Cr as useAssistantStore, u as useAssistantTr, Ni as useConversationTurns, ke as useSandboxAssistantTransport, e as useVoiceInput, Rr as useVoiceSession, zi as useWorkspaceWriteAccess, Sr as validateFile, Nt as voiceAvailability, Pe as voiceMarker, Xt as voicePreviewText, Pt as voiceQualityRank, Fe as voiceSessionIdOf, Ct as voiceSessionReducer, lt as voiceStageState, Rt as voiceTranscriptFilename, Ie as voiceTurnsOnly, Ft as voicesForLocale, he as waitForAssistantServiceReady, ge as waitForSandboxRunning, ut as waveformIsActive, dt as waveformIsSettled };
|