@burdenoff/fe-libs 2026.1006.1 → 2026.1007.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chrome/ContextSwitcher.d.ts.map +1 -1
- package/dist/chrome/ContextSwitcher.js +93 -89
- package/dist/chrome/GlobalSearch.d.ts.map +1 -1
- package/dist/chrome/GlobalSearch.js +94 -96
- package/dist/chrome/NotificationCenter.d.ts.map +1 -1
- package/dist/chrome/NotificationCenter.js +62 -62
- package/dist/chrome/ShortcutHelpDialog.d.ts.map +1 -1
- package/dist/chrome/ShortcutHelpDialog.js +103 -97
- package/dist/chrome/notificationCenter/NotificationPanel.d.ts.map +1 -1
- package/dist/chrome/notificationCenter/NotificationPanel.js +28 -17
- package/dist/chrome/notificationCenter/usePanelChrome.d.ts +0 -1
- package/dist/chrome/notificationCenter/usePanelChrome.d.ts.map +1 -1
- package/dist/chrome/notificationCenter/usePanelChrome.js +1 -10
- package/dist/chrome/shellOverlayLayer.d.ts +42 -0
- package/dist/chrome/shellOverlayLayer.d.ts.map +1 -0
- package/dist/chrome/shellOverlayLayer.js +4 -0
- package/dist/connections/ConnectionDialogPanel.d.ts.map +1 -1
- package/dist/connections/ConnectionDialogPanel.js +133 -126
- package/dist/connections/ConnectionFormTab.d.ts +2 -1
- package/dist/connections/ConnectionFormTab.d.ts.map +1 -1
- package/dist/connections/ConnectionFormTab.js +43 -42
- package/dist/connections/CredentialStorageSelector.d.ts +3 -1
- package/dist/connections/CredentialStorageSelector.d.ts.map +1 -1
- package/dist/connections/CredentialStorageSelector.js +73 -64
- package/dist/connections/connectionFlow.d.ts +4 -1
- package/dist/connections/connectionFlow.d.ts.map +1 -1
- package/dist/connections/connectionFlow.js +50 -18
- package/dist/connections/types.d.ts +3 -1
- package/dist/connections/types.d.ts.map +1 -1
- package/dist/shared/assistant/appControls/languageReply.d.ts +28 -0
- package/dist/shared/assistant/appControls/languageReply.d.ts.map +1 -0
- package/dist/shared/assistant/appControls/languageReply.js +17 -0
- package/dist/shared/assistant/appControls/text.d.ts +7 -1
- package/dist/shared/assistant/appControls/text.d.ts.map +1 -1
- package/dist/shared/assistant/appControls/text.js +4 -3
- package/dist/shared/assistant/conversation.d.ts +2 -0
- package/dist/shared/assistant/conversation.d.ts.map +1 -1
- package/dist/shared/assistant/displayContent.d.ts.map +1 -1
- package/dist/shared/assistant/displayContent.js +14 -11
- package/dist/shared/assistant/history/historyMapping.d.ts.map +1 -1
- package/dist/shared/assistant/history/historyMapping.js +10 -5
- package/dist/shared/assistant/index.d.ts +1 -0
- package/dist/shared/assistant/index.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AIAssistantPanel.js +8 -8
- package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantChatArea.js +1012 -939
- package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMessageItem.js +105 -97
- package/dist/shared/assistant/ui/AssistantMoreMenu.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMoreMenu.js +112 -108
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.js +66 -62
- package/dist/shared/assistant/ui/controlConfirmDialog.js +4 -4
- package/dist/shared/assistant/ui/useDropdownEscape.d.ts +8 -30
- package/dist/shared/assistant/ui/useDropdownEscape.d.ts.map +1 -1
- package/dist/shared/assistant/ui/useDropdownEscape.js +6 -20
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +7 -7
- package/dist/shared/assistant/uiActions/recordNames.d.ts +18 -6
- package/dist/shared/assistant/uiActions/recordNames.d.ts.map +1 -1
- package/dist/shared/assistant/uiActions/recordNames.js +42 -37
- package/dist/shared/components/EscapeLayer.d.ts +15 -0
- package/dist/shared/components/EscapeLayer.d.ts.map +1 -0
- package/dist/shared/components/EscapeLayer.js +31 -0
- package/dist/shared-assistant.js +151 -150
- package/package.json +3 -1
|
@@ -1,85 +1,91 @@
|
|
|
1
1
|
import { cn as e } from "../lib/utils.js";
|
|
2
2
|
import { initialValuesFromSchema as t } from "../credentials/schema.js";
|
|
3
|
-
import {
|
|
4
|
-
import { authTypeLabel as
|
|
5
|
-
import { ProviderIcon as
|
|
6
|
-
import { ConnectionDetailsTab as
|
|
7
|
-
import { EMPTY_STORAGE as
|
|
8
|
-
import { TITLE_ID as
|
|
9
|
-
import { parseScopeOptions as
|
|
10
|
-
import { ConnectionFormTab as
|
|
11
|
-
import { DialogHeading as
|
|
12
|
-
import { ProviderPickerPanel as
|
|
13
|
-
import { useConnectionSubmit as
|
|
14
|
-
import { useCallback as
|
|
15
|
-
import { AlertCircle as
|
|
16
|
-
import { Fragment as
|
|
17
|
-
import * as
|
|
3
|
+
import { normalizeStorageMode as n, resolveFlow as r, resolveMethod as i, resolveSchema as a, selectableMethods as ee, supportedStorageModes as o } from "./connectionFlow.js";
|
|
4
|
+
import { authTypeLabel as te } from "./labels.js";
|
|
5
|
+
import { ProviderIcon as ne } from "./ProviderIcon.js";
|
|
6
|
+
import { ConnectionDetailsTab as re, ConnectionSharingTab as ie } from "./ConnectionDetailsTab.js";
|
|
7
|
+
import { EMPTY_STORAGE as s } from "./storage.js";
|
|
8
|
+
import { TITLE_ID as ae } from "./frame.js";
|
|
9
|
+
import { parseScopeOptions as oe, requestedScopes as se } from "./scopes.js";
|
|
10
|
+
import { ConnectionFormTab as ce } from "./ConnectionFormTab.js";
|
|
11
|
+
import { DialogHeading as le } from "./DialogHeading.js";
|
|
12
|
+
import { ProviderPickerPanel as ue } from "./ProviderPickerPanel.js";
|
|
13
|
+
import { useConnectionSubmit as de } from "./useConnectionSubmit.js";
|
|
14
|
+
import { useCallback as c, useEffect as fe, useId as pe, useMemo as l, useState as u } from "react";
|
|
15
|
+
import { AlertCircle as me, Check as he, CheckCircle2 as ge, Info as _e, Link2 as ve, Loader2 as d, Share2 as f, X as ye } from "lucide-react";
|
|
16
|
+
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
17
|
+
import * as g from "@radix-ui/react-dialog";
|
|
18
18
|
//#region src/connections/ConnectionDialogPanel.tsx
|
|
19
|
-
function
|
|
20
|
-
return t(
|
|
19
|
+
function _(e, n) {
|
|
20
|
+
return t(a(e, i(e, n)));
|
|
21
21
|
}
|
|
22
|
-
var
|
|
23
|
-
let
|
|
22
|
+
var v = ({ api: t, onClose: v, callbackUrl: y, translate: b, providerId: x, providerKey: S, providerSource: be, requireVault: C, canCreateVault: xe, defaultName: w, extraConfig: Se, showSharingTab: Ce, pickerTitle: we, searchInputRef: Te, onConnectionCreated: Ee, onError: De, onEvent: Oe, renderSuccessAction: T }) => {
|
|
23
|
+
let E = !!(x || S), [D, ke] = u(null), [O, k] = u(E), [A, j] = u("connection"), [M, N] = u(w ?? ""), [P, Ae] = u(""), [je, F] = u(null), [I, L] = u({}), [R, z] = u(null), [B, V] = u(s), H = pe(), U = c((e) => `${H}-${e}`, [H]), { submit: Me, busy: W, oauthWaiting: Ne, errorMessage: Pe, setErrorMessage: G, created: K } = de({
|
|
24
24
|
api: t,
|
|
25
|
-
callbackUrl:
|
|
26
|
-
translate:
|
|
27
|
-
onConnectionCreated:
|
|
28
|
-
onError:
|
|
29
|
-
onEvent:
|
|
30
|
-
}),
|
|
31
|
-
|
|
32
|
-
}, [
|
|
33
|
-
O && (F(e), L(g(O, e)), z(null), W(""));
|
|
34
|
-
}, [O, W]);
|
|
35
|
-
de(() => {
|
|
25
|
+
callbackUrl: y,
|
|
26
|
+
translate: b,
|
|
27
|
+
onConnectionCreated: Ee,
|
|
28
|
+
onError: De,
|
|
29
|
+
onEvent: Oe
|
|
30
|
+
}), q = c((e) => {
|
|
31
|
+
ke(e), N(w ?? `${e.name} Connection`), F(null), L(_(e, null)), V(n(s, o(e, i(e, null)))), z(null), G("");
|
|
32
|
+
}, [w, G]), Fe = c((e) => {
|
|
36
33
|
if (!D) return;
|
|
34
|
+
F(e), L(_(D, e));
|
|
35
|
+
let t = o(D, i(D, e));
|
|
36
|
+
V((e) => ({
|
|
37
|
+
...n(e, t),
|
|
38
|
+
secretId: ""
|
|
39
|
+
})), z(null), G("");
|
|
40
|
+
}, [D, G]);
|
|
41
|
+
fe(() => {
|
|
42
|
+
if (!E) return;
|
|
37
43
|
let e = !1;
|
|
38
44
|
return t.getProvider({
|
|
39
|
-
id:
|
|
40
|
-
key:
|
|
45
|
+
id: x ?? void 0,
|
|
46
|
+
key: S ?? void 0
|
|
41
47
|
}).then((t) => {
|
|
42
|
-
!e && t &&
|
|
48
|
+
!e && t && q(t);
|
|
43
49
|
}).catch(() => void 0).finally(() => {
|
|
44
|
-
e ||
|
|
50
|
+
e || k(!1);
|
|
45
51
|
}), () => {
|
|
46
52
|
e = !0;
|
|
47
53
|
};
|
|
48
54
|
}, [
|
|
49
|
-
|
|
50
|
-
b,
|
|
55
|
+
E,
|
|
51
56
|
x,
|
|
57
|
+
S,
|
|
52
58
|
t,
|
|
53
|
-
|
|
59
|
+
q
|
|
54
60
|
]);
|
|
55
|
-
let J =
|
|
56
|
-
|
|
57
|
-
provider:
|
|
61
|
+
let J = D ? i(D, je) : null, Ie = D ? r(D, J) : "fields", Le = l(() => D ? a(D, J) : null, [D, J]), Y = l(() => oe(J?.availableScopes ?? D?.availableScopes), [J, D]), Re = J && J.defaultScopes.length > 0 ? J.defaultScopes : D?.defaultScopes ?? [], ze = () => {
|
|
62
|
+
D && Me({
|
|
63
|
+
provider: D,
|
|
58
64
|
method: J,
|
|
59
65
|
name: M,
|
|
60
66
|
description: P,
|
|
61
67
|
values: I,
|
|
62
68
|
storage: B,
|
|
63
|
-
requireVault:
|
|
64
|
-
extraConfig:
|
|
65
|
-
},
|
|
69
|
+
requireVault: C,
|
|
70
|
+
extraConfig: Se
|
|
71
|
+
}, se(R, Y));
|
|
66
72
|
}, X = [
|
|
67
73
|
{
|
|
68
74
|
key: "connection",
|
|
69
|
-
label:
|
|
70
|
-
icon:
|
|
75
|
+
label: b("integrations.addConnection.tabs.connection", "Connection"),
|
|
76
|
+
icon: ve
|
|
71
77
|
},
|
|
72
|
-
...
|
|
78
|
+
...Ce ? [{
|
|
73
79
|
key: "sharing",
|
|
74
|
-
label:
|
|
75
|
-
icon:
|
|
80
|
+
label: b("integrations.addConnection.tabs.sharing", "Sharing"),
|
|
81
|
+
icon: f
|
|
76
82
|
}] : [],
|
|
77
83
|
{
|
|
78
84
|
key: "details",
|
|
79
|
-
label:
|
|
80
|
-
icon:
|
|
85
|
+
label: b("integrations.addConnection.tabs.details", "Details"),
|
|
86
|
+
icon: _e
|
|
81
87
|
}
|
|
82
|
-
], Z = (e) =>
|
|
88
|
+
], Z = (e) => U(`tab-${e}`), Q = U("tabpanel"), Be = (e) => {
|
|
83
89
|
let t = X.map((e) => e.key), n = t.indexOf(A), r = {
|
|
84
90
|
ArrowRight: n + 1,
|
|
85
91
|
ArrowDown: n + 1,
|
|
@@ -91,98 +97,98 @@ var _ = ({ api: t, onClose: _, callbackUrl: v, translate: y, providerId: b, prov
|
|
|
91
97
|
if (r === void 0) return;
|
|
92
98
|
let i = t[(r + t.length) % t.length];
|
|
93
99
|
e.preventDefault(), j(i), document.getElementById(Z(i))?.focus();
|
|
94
|
-
}, $ = !!
|
|
95
|
-
return /* @__PURE__ */
|
|
96
|
-
/* @__PURE__ */
|
|
100
|
+
}, $ = !!D && !K;
|
|
101
|
+
return /* @__PURE__ */ h(p, { children: [
|
|
102
|
+
/* @__PURE__ */ h("div", {
|
|
97
103
|
className: "flex flex-shrink-0 items-center justify-between border-b border-border-subtle px-5 py-4",
|
|
98
|
-
children: [/* @__PURE__ */
|
|
104
|
+
children: [/* @__PURE__ */ h("div", {
|
|
99
105
|
className: "flex min-w-0 items-center gap-3",
|
|
100
|
-
children: [
|
|
101
|
-
provider:
|
|
106
|
+
children: [D && /* @__PURE__ */ m(ne, {
|
|
107
|
+
provider: D,
|
|
102
108
|
size: 32
|
|
103
|
-
}), /* @__PURE__ */
|
|
109
|
+
}), /* @__PURE__ */ h("div", {
|
|
104
110
|
className: "min-w-0",
|
|
105
|
-
children: [/* @__PURE__ */
|
|
106
|
-
id:
|
|
107
|
-
className: e("text-base font-semibold text-text-primary",
|
|
108
|
-
children:
|
|
109
|
-
}), /* @__PURE__ */
|
|
111
|
+
children: [/* @__PURE__ */ m(le, {
|
|
112
|
+
id: ae,
|
|
113
|
+
className: e("text-base font-semibold text-text-primary", D && "truncate"),
|
|
114
|
+
children: D ? b("integrations.addConnection.dialog.accountTitle", "{{provider}} account", { provider: D.name }) : we ?? b("integrations.addConnection.dialog.title", "Add new credential")
|
|
115
|
+
}), /* @__PURE__ */ m(g.Description, {
|
|
110
116
|
className: "text-xs text-text-secondary",
|
|
111
|
-
children:
|
|
117
|
+
children: D ? te(J?.authType ?? D.authType, b) : b("integrations.addConnection.dialog.subtitle", "Select an app or service to connect to")
|
|
112
118
|
})]
|
|
113
119
|
})]
|
|
114
|
-
}), /* @__PURE__ */
|
|
120
|
+
}), /* @__PURE__ */ m(g.Close, {
|
|
115
121
|
asChild: !0,
|
|
116
|
-
children: /* @__PURE__ */
|
|
122
|
+
children: /* @__PURE__ */ m("button", {
|
|
117
123
|
type: "button",
|
|
118
124
|
className: "flex-shrink-0 rounded-md p-1.5 text-text-secondary transition-colors hover:bg-accent hover:text-text-primary",
|
|
119
|
-
"aria-label":
|
|
120
|
-
children: /* @__PURE__ */
|
|
125
|
+
"aria-label": b("integrations.addConnection.actions.close", "Close dialog"),
|
|
126
|
+
children: /* @__PURE__ */ m(ye, { size: 20 })
|
|
121
127
|
})
|
|
122
128
|
})]
|
|
123
129
|
}),
|
|
124
|
-
/* @__PURE__ */
|
|
130
|
+
/* @__PURE__ */ h("div", {
|
|
125
131
|
"data-testid": "add-connection-body",
|
|
126
132
|
className: "flex min-h-0 flex-1 flex-col overflow-hidden sm:flex-row",
|
|
127
133
|
children: [
|
|
128
|
-
!
|
|
134
|
+
!E && !D && /* @__PURE__ */ m(ue, {
|
|
129
135
|
api: t,
|
|
130
|
-
source:
|
|
131
|
-
translate:
|
|
132
|
-
searchInputRef:
|
|
133
|
-
onSelect:
|
|
136
|
+
source: be,
|
|
137
|
+
translate: b,
|
|
138
|
+
searchInputRef: Te,
|
|
139
|
+
onSelect: q
|
|
134
140
|
}),
|
|
135
|
-
|
|
141
|
+
E && !D && O && /* @__PURE__ */ m("div", {
|
|
136
142
|
className: "flex flex-1 items-center justify-center p-8",
|
|
137
|
-
children: /* @__PURE__ */
|
|
143
|
+
children: /* @__PURE__ */ m(d, {
|
|
138
144
|
size: 32,
|
|
139
145
|
className: "animate-spin text-text-secondary"
|
|
140
146
|
})
|
|
141
147
|
}),
|
|
142
|
-
|
|
148
|
+
E && !D && !O && /* @__PURE__ */ h("div", {
|
|
143
149
|
className: "flex flex-1 flex-col items-center justify-center p-8 text-center",
|
|
144
|
-
children: [/* @__PURE__ */
|
|
150
|
+
children: [/* @__PURE__ */ m(me, {
|
|
145
151
|
size: 32,
|
|
146
152
|
className: "mb-3 text-text-secondary"
|
|
147
|
-
}), /* @__PURE__ */
|
|
153
|
+
}), /* @__PURE__ */ m("p", {
|
|
148
154
|
className: "text-sm text-text-secondary",
|
|
149
|
-
children:
|
|
155
|
+
children: b("integrations.addConnection.providerUnavailable", "This provider isn't available.")
|
|
150
156
|
})]
|
|
151
157
|
}),
|
|
152
|
-
|
|
158
|
+
D && K && /* @__PURE__ */ h("div", {
|
|
153
159
|
className: "flex flex-1 flex-col items-center justify-center p-8 text-center",
|
|
154
160
|
children: [
|
|
155
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ m("div", {
|
|
156
162
|
className: "mb-4 rounded-full bg-status-success-bg-subtle p-3",
|
|
157
|
-
children: /* @__PURE__ */
|
|
163
|
+
children: /* @__PURE__ */ m(ge, {
|
|
158
164
|
size: 48,
|
|
159
165
|
className: "text-status-success-text"
|
|
160
166
|
})
|
|
161
167
|
}),
|
|
162
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ m("h3", {
|
|
163
169
|
className: "mb-1 text-lg font-semibold text-text-primary",
|
|
164
|
-
children:
|
|
170
|
+
children: b("integrations.addConnection.success.title", "Connection Created!")
|
|
165
171
|
}),
|
|
166
|
-
/* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ m("p", {
|
|
167
173
|
className: "mb-6 text-sm text-text-secondary",
|
|
168
|
-
children:
|
|
174
|
+
children: b("integrations.addConnection.success.description", "Your {{provider}} connection has been set up successfully.", { provider: D.name })
|
|
169
175
|
}),
|
|
170
|
-
|
|
176
|
+
T ? T(K) : /* @__PURE__ */ m("button", {
|
|
171
177
|
type: "button",
|
|
172
|
-
onClick:
|
|
178
|
+
onClick: v,
|
|
173
179
|
className: "rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-colors hover:bg-action-primary-bg/90",
|
|
174
|
-
children:
|
|
180
|
+
children: b("integrations.addConnection.actions.done", "Done")
|
|
175
181
|
})
|
|
176
182
|
]
|
|
177
183
|
}),
|
|
178
|
-
|
|
184
|
+
D && $ && /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m("div", {
|
|
179
185
|
role: "tablist",
|
|
180
186
|
"aria-labelledby": "add-connection-dialog-title",
|
|
181
187
|
"data-testid": "add-connection-tabs",
|
|
182
188
|
className: "flex flex-shrink-0 overflow-x-auto border-b border-border-subtle sm:block sm:w-40 sm:overflow-x-visible sm:border-b-0 sm:border-r sm:py-3",
|
|
183
189
|
children: X.map((t) => {
|
|
184
190
|
let n = t.icon, r = A === t.key;
|
|
185
|
-
return /* @__PURE__ */
|
|
191
|
+
return /* @__PURE__ */ h("button", {
|
|
186
192
|
id: Z(t.key),
|
|
187
193
|
type: "button",
|
|
188
194
|
role: "tab",
|
|
@@ -190,83 +196,84 @@ var _ = ({ api: t, onClose: _, callbackUrl: v, translate: y, providerId: b, prov
|
|
|
190
196
|
"aria-controls": Q,
|
|
191
197
|
tabIndex: r ? 0 : -1,
|
|
192
198
|
onClick: () => j(t.key),
|
|
193
|
-
onKeyDown:
|
|
199
|
+
onKeyDown: Be,
|
|
194
200
|
className: e("flex min-w-max items-center gap-2 border-b-2 px-4 py-2 text-sm font-medium transition-colors sm:w-full sm:border-b-0 sm:border-l-2", r ? "border-primary bg-accent/50 text-text-primary" : "border-transparent text-text-secondary hover:bg-accent/30 hover:text-text-primary"),
|
|
195
|
-
children: [/* @__PURE__ */
|
|
201
|
+
children: [/* @__PURE__ */ m(n, {
|
|
196
202
|
size: 16,
|
|
197
203
|
"aria-hidden": "true"
|
|
198
204
|
}), t.label]
|
|
199
205
|
}, t.key);
|
|
200
206
|
})
|
|
201
|
-
}), /* @__PURE__ */
|
|
207
|
+
}), /* @__PURE__ */ h("div", {
|
|
202
208
|
id: Q,
|
|
203
209
|
role: "tabpanel",
|
|
204
210
|
"aria-labelledby": Z(A),
|
|
205
211
|
"data-testid": "add-connection-pane",
|
|
206
212
|
className: "min-h-0 min-w-0 flex-1 overflow-y-auto p-5",
|
|
207
213
|
children: [
|
|
208
|
-
A === "connection" && /* @__PURE__ */
|
|
214
|
+
A === "connection" && /* @__PURE__ */ m(ce, {
|
|
209
215
|
api: t,
|
|
210
|
-
provider:
|
|
211
|
-
methods: ee(
|
|
216
|
+
provider: D,
|
|
217
|
+
methods: ee(D),
|
|
212
218
|
method: J,
|
|
213
|
-
flow:
|
|
214
|
-
schema:
|
|
219
|
+
flow: Ie,
|
|
220
|
+
schema: Le,
|
|
215
221
|
name: M,
|
|
216
222
|
onNameChange: N,
|
|
217
223
|
description: P,
|
|
218
|
-
onDescriptionChange:
|
|
224
|
+
onDescriptionChange: Ae,
|
|
219
225
|
values: I,
|
|
220
226
|
setValues: L,
|
|
221
|
-
onMethodChange:
|
|
227
|
+
onMethodChange: Fe,
|
|
222
228
|
storage: B,
|
|
223
|
-
setStorage:
|
|
229
|
+
setStorage: V,
|
|
230
|
+
supportedStorageModes: o(D, J),
|
|
224
231
|
scopeOptions: Y,
|
|
225
|
-
defaultScopes:
|
|
232
|
+
defaultScopes: Re,
|
|
226
233
|
scopeSelection: R,
|
|
227
234
|
setScopeSelection: z,
|
|
228
|
-
callbackUrl:
|
|
229
|
-
requireVault:
|
|
230
|
-
canCreateVault:
|
|
231
|
-
errorMessage:
|
|
232
|
-
busy:
|
|
233
|
-
translate:
|
|
234
|
-
fieldId:
|
|
235
|
+
callbackUrl: y,
|
|
236
|
+
requireVault: C,
|
|
237
|
+
canCreateVault: xe,
|
|
238
|
+
errorMessage: Pe,
|
|
239
|
+
busy: W,
|
|
240
|
+
translate: b,
|
|
241
|
+
fieldId: U
|
|
235
242
|
}),
|
|
236
|
-
A === "sharing" && /* @__PURE__ */
|
|
237
|
-
A === "details" && /* @__PURE__ */
|
|
238
|
-
provider:
|
|
239
|
-
translate:
|
|
243
|
+
A === "sharing" && /* @__PURE__ */ m(ie, { translate: b }),
|
|
244
|
+
A === "details" && /* @__PURE__ */ m(re, {
|
|
245
|
+
provider: D,
|
|
246
|
+
translate: b
|
|
240
247
|
})
|
|
241
248
|
]
|
|
242
249
|
})] })
|
|
243
250
|
]
|
|
244
251
|
}),
|
|
245
|
-
|
|
252
|
+
D && $ && /* @__PURE__ */ h("div", {
|
|
246
253
|
"data-testid": "add-connection-footer",
|
|
247
254
|
className: "flex flex-shrink-0 items-center justify-end gap-2 border-t border-border-subtle px-5 py-3",
|
|
248
|
-
children: [/* @__PURE__ */
|
|
255
|
+
children: [/* @__PURE__ */ m("button", {
|
|
249
256
|
type: "button",
|
|
250
|
-
onClick:
|
|
257
|
+
onClick: v,
|
|
251
258
|
className: "rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary transition-colors hover:bg-accent",
|
|
252
|
-
children:
|
|
253
|
-
}), /* @__PURE__ */
|
|
259
|
+
children: b("integrations.addConnection.actions.cancel", "Cancel")
|
|
260
|
+
}), /* @__PURE__ */ h("button", {
|
|
254
261
|
type: "button",
|
|
255
262
|
"data-testid": "add-connection-submit",
|
|
256
|
-
onClick:
|
|
257
|
-
disabled:
|
|
263
|
+
onClick: ze,
|
|
264
|
+
disabled: W || !M.trim(),
|
|
258
265
|
className: "inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-colors hover:bg-action-primary-bg/90 disabled:opacity-50",
|
|
259
|
-
children: [
|
|
266
|
+
children: [W ? /* @__PURE__ */ m(d, {
|
|
260
267
|
size: 14,
|
|
261
268
|
className: "animate-spin",
|
|
262
269
|
"aria-hidden": "true"
|
|
263
|
-
}) : /* @__PURE__ */
|
|
270
|
+
}) : /* @__PURE__ */ m(he, {
|
|
264
271
|
size: 14,
|
|
265
272
|
"aria-hidden": "true"
|
|
266
|
-
}),
|
|
273
|
+
}), Ne ? b("integrations.addConnection.actions.waiting", "Waiting...") : b("integrations.addConnection.actions.connect", "Connect")]
|
|
267
274
|
})]
|
|
268
275
|
})
|
|
269
276
|
] });
|
|
270
277
|
};
|
|
271
278
|
//#endregion
|
|
272
|
-
export {
|
|
279
|
+
export { v as ConnectionDialogPanel };
|
|
@@ -3,7 +3,7 @@ import { Translator } from '../credentials/translate';
|
|
|
3
3
|
import { AuthMethodFlow, FormSchema } from '../credentials/types';
|
|
4
4
|
import { ConnectionsApi } from './api';
|
|
5
5
|
import { ScopeOption, ScopeSelection } from './scopes';
|
|
6
|
-
import { ConnectionAuthMethod, ConnectionProvider, CredentialStorageState } from './types';
|
|
6
|
+
import { ConnectionAuthMethod, ConnectionProvider, CredentialStorageMode, CredentialStorageState } from './types';
|
|
7
7
|
export interface ConnectionFormTabProps {
|
|
8
8
|
api: ConnectionsApi;
|
|
9
9
|
provider: ConnectionProvider;
|
|
@@ -20,6 +20,7 @@ export interface ConnectionFormTabProps {
|
|
|
20
20
|
onMethodChange: (key: string) => void;
|
|
21
21
|
storage: CredentialStorageState;
|
|
22
22
|
setStorage: (update: (current: CredentialStorageState) => CredentialStorageState) => void;
|
|
23
|
+
supportedStorageModes: readonly CredentialStorageMode[];
|
|
23
24
|
scopeOptions: ScopeOption[];
|
|
24
25
|
defaultScopes: string[];
|
|
25
26
|
scopeSelection: ScopeSelection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionFormTab.d.ts","sourceRoot":"","sources":["../../src/connections/ConnectionFormTab.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAM5C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ConnectionFormTab.d.ts","sourceRoot":"","sources":["../../src/connections/ConnectionFormTab.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAM5C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,sBAAsB,CAAC;IAChC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,sBAAsB,KAAK,IAAI,CAAC;IAC1F,qBAAqB,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACxD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;IACtB,0CAA0C;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAmPxD,CAAC"}
|
|
@@ -9,12 +9,12 @@ import { useState as l } from "react";
|
|
|
9
9
|
import { AlertCircle as u, Copy as d, ExternalLink as f, Shield as p } from "lucide-react";
|
|
10
10
|
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
11
11
|
//#region src/connections/ConnectionFormTab.tsx
|
|
12
|
-
var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name: S, onNameChange: C, description: w, onDescriptionChange: T, values: E, setValues: D, onMethodChange: O, storage: k, setStorage: A,
|
|
13
|
-
let [
|
|
12
|
+
var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name: S, onNameChange: C, description: w, onDescriptionChange: T, values: E, setValues: D, onMethodChange: O, storage: k, setStorage: A, supportedStorageModes: j, scopeOptions: M, defaultScopes: N, scopeSelection: P, setScopeSelection: F, callbackUrl: I, requireVault: L, canCreateVault: R, errorMessage: z, busy: B, translate: V, fieldId: H }) => {
|
|
13
|
+
let [U, W] = l(!1);
|
|
14
14
|
return /* @__PURE__ */ h("div", {
|
|
15
15
|
className: "space-y-5",
|
|
16
16
|
children: [
|
|
17
|
-
|
|
17
|
+
z && /* @__PURE__ */ h("div", {
|
|
18
18
|
role: "alert",
|
|
19
19
|
className: "flex items-start gap-2 rounded-md border border-status-error-border/20 bg-status-error-bg/10 px-3 py-2",
|
|
20
20
|
children: [/* @__PURE__ */ m(u, {
|
|
@@ -22,14 +22,14 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
22
22
|
className: "mt-0.5 flex-shrink-0 text-status-error-text"
|
|
23
23
|
}), /* @__PURE__ */ m("span", {
|
|
24
24
|
className: "text-sm text-status-error-text",
|
|
25
|
-
children:
|
|
25
|
+
children: z
|
|
26
26
|
})]
|
|
27
27
|
}),
|
|
28
28
|
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("label", {
|
|
29
|
-
htmlFor:
|
|
29
|
+
htmlFor: H("name"),
|
|
30
30
|
className: "mb-1.5 block text-sm font-medium text-text-primary",
|
|
31
31
|
children: [
|
|
32
|
-
|
|
32
|
+
V("integrations.addConnection.fields.connectionName", "Connection Name"),
|
|
33
33
|
" ",
|
|
34
34
|
/* @__PURE__ */ m("span", {
|
|
35
35
|
className: "text-status-error-text",
|
|
@@ -37,36 +37,37 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
37
37
|
})
|
|
38
38
|
]
|
|
39
39
|
}), /* @__PURE__ */ m("input", {
|
|
40
|
-
id:
|
|
40
|
+
id: H("name"),
|
|
41
41
|
type: "text",
|
|
42
42
|
value: S,
|
|
43
43
|
onChange: (e) => C(e.target.value),
|
|
44
|
-
placeholder:
|
|
45
|
-
disabled:
|
|
44
|
+
placeholder: V("integrations.addConnection.fields.connectionNamePlaceholder", "e.g., My {{provider}} Connection", { provider: _.name }),
|
|
45
|
+
disabled: B,
|
|
46
46
|
className: s
|
|
47
47
|
})] }),
|
|
48
48
|
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
|
|
49
|
-
htmlFor:
|
|
49
|
+
htmlFor: H("description"),
|
|
50
50
|
className: "mb-1.5 block text-sm font-medium text-text-primary",
|
|
51
|
-
children:
|
|
51
|
+
children: V("integrations.addConnection.fields.description", "Description")
|
|
52
52
|
}), /* @__PURE__ */ m("input", {
|
|
53
|
-
id:
|
|
53
|
+
id: H("description"),
|
|
54
54
|
type: "text",
|
|
55
55
|
value: w,
|
|
56
56
|
onChange: (e) => T(e.target.value),
|
|
57
|
-
placeholder:
|
|
58
|
-
disabled:
|
|
57
|
+
placeholder: V("integrations.addConnection.fields.descriptionPlaceholder", "Optional description..."),
|
|
58
|
+
disabled: B,
|
|
59
59
|
className: s
|
|
60
60
|
})] }),
|
|
61
61
|
i(b, _) && /* @__PURE__ */ m(o, {
|
|
62
62
|
api: g,
|
|
63
63
|
value: k,
|
|
64
64
|
onChange: A,
|
|
65
|
+
supportedStorageModes: j,
|
|
65
66
|
authType: y?.authType ?? _.authType,
|
|
66
|
-
requireVault:
|
|
67
|
-
canCreateVault:
|
|
68
|
-
translate:
|
|
69
|
-
disabled:
|
|
67
|
+
requireVault: L,
|
|
68
|
+
canCreateVault: R,
|
|
69
|
+
translate: V,
|
|
70
|
+
disabled: B
|
|
70
71
|
}),
|
|
71
72
|
/* @__PURE__ */ h("div", {
|
|
72
73
|
className: "space-y-3 rounded-md border border-border-subtle/50 bg-bg-surface p-4",
|
|
@@ -80,19 +81,19 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
80
81
|
size: 16,
|
|
81
82
|
className: "text-primary"
|
|
82
83
|
}),
|
|
83
|
-
|
|
84
|
+
V("integrations.addConnection.authentication.title", "Authentication"),
|
|
84
85
|
v.length <= 1 && /* @__PURE__ */ h("span", {
|
|
85
86
|
className: "font-normal text-text-secondary",
|
|
86
|
-
children: ["· ", y?.displayName ?? a(_.authType,
|
|
87
|
+
children: ["· ", y?.displayName ?? a(_.authType, V)]
|
|
87
88
|
})
|
|
88
89
|
]
|
|
89
90
|
}), /* @__PURE__ */ m(n, {
|
|
90
91
|
methods: v,
|
|
91
92
|
selectedKey: y?.key ?? null,
|
|
92
93
|
onSelect: O,
|
|
93
|
-
disabled:
|
|
94
|
-
idPrefix:
|
|
95
|
-
translate:
|
|
94
|
+
disabled: B,
|
|
95
|
+
idPrefix: H("auth-method"),
|
|
96
|
+
translate: V,
|
|
96
97
|
compact: !0
|
|
97
98
|
})]
|
|
98
99
|
}),
|
|
@@ -100,7 +101,7 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
100
101
|
className: "space-y-2",
|
|
101
102
|
children: /* @__PURE__ */ m(t, {
|
|
102
103
|
method: y,
|
|
103
|
-
translate:
|
|
104
|
+
translate: V
|
|
104
105
|
})
|
|
105
106
|
}),
|
|
106
107
|
b === "fields" && !x && /* @__PURE__ */ h("div", {
|
|
@@ -110,20 +111,20 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
110
111
|
className: "flex-shrink-0 text-status-error-text"
|
|
111
112
|
}), /* @__PURE__ */ m("span", {
|
|
112
113
|
className: "text-sm text-status-error-text",
|
|
113
|
-
children:
|
|
114
|
+
children: V("integrations.addConnection.authentication.noForm", "This authentication method does not declare a configuration form.")
|
|
114
115
|
})]
|
|
115
116
|
}),
|
|
116
117
|
b === "fields" && x && /* @__PURE__ */ m("p", {
|
|
117
118
|
className: "text-xs text-text-secondary",
|
|
118
|
-
children:
|
|
119
|
+
children: V("integrations.addConnection.authentication.secretsEncrypted", "Secret values are stored encrypted and never shown again.")
|
|
119
120
|
}),
|
|
120
121
|
b !== "minted" && x && /* @__PURE__ */ m(e, {
|
|
121
122
|
schema: x,
|
|
122
123
|
values: E,
|
|
123
124
|
onChange: D,
|
|
124
|
-
disabled:
|
|
125
|
-
idPrefix:
|
|
126
|
-
translate:
|
|
125
|
+
disabled: B,
|
|
126
|
+
idPrefix: H("credential"),
|
|
127
|
+
translate: V
|
|
127
128
|
}),
|
|
128
129
|
b === "oauth2" && r(x) && /* @__PURE__ */ h("div", {
|
|
129
130
|
className: "space-y-1.5 rounded-md border border-border-subtle bg-bg-surface px-3 py-2",
|
|
@@ -131,30 +132,30 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
131
132
|
className: "flex items-center justify-between gap-2",
|
|
132
133
|
children: [/* @__PURE__ */ m("span", {
|
|
133
134
|
className: "text-xs font-medium text-text-primary",
|
|
134
|
-
children:
|
|
135
|
+
children: V("integrations.addConnection.authentication.redirectUriLabel", "Redirect URL to register in your app")
|
|
135
136
|
}), /* @__PURE__ */ h("button", {
|
|
136
137
|
type: "button",
|
|
137
138
|
onClick: () => {
|
|
138
|
-
navigator.clipboard?.writeText(
|
|
139
|
-
|
|
139
|
+
navigator.clipboard?.writeText(I).then(() => {
|
|
140
|
+
W(!0), window.setTimeout(() => W(!1), 2e3);
|
|
140
141
|
}).catch(() => void 0);
|
|
141
142
|
},
|
|
142
143
|
className: "inline-flex items-center gap-1 text-xs font-medium text-primary hover:underline",
|
|
143
|
-
children: [/* @__PURE__ */ m(d, { size: 12 }),
|
|
144
|
+
children: [/* @__PURE__ */ m(d, { size: 12 }), U ? V("integrations.addConnection.authentication.copied", "Copied") : V("integrations.addConnection.authentication.copy", "Copy")]
|
|
144
145
|
})]
|
|
145
146
|
}), /* @__PURE__ */ m("code", {
|
|
146
147
|
"data-testid": "oauth-redirect-url",
|
|
147
148
|
className: "block break-all text-xs text-text-secondary",
|
|
148
|
-
children:
|
|
149
|
+
children: I
|
|
149
150
|
})]
|
|
150
151
|
}),
|
|
151
152
|
b !== "fields" && /* @__PURE__ */ m(c, {
|
|
152
|
-
options:
|
|
153
|
-
defaultScopes:
|
|
154
|
-
selection:
|
|
155
|
-
onChange:
|
|
156
|
-
translate:
|
|
157
|
-
disabled:
|
|
153
|
+
options: M,
|
|
154
|
+
defaultScopes: N,
|
|
155
|
+
selection: P,
|
|
156
|
+
onChange: F,
|
|
157
|
+
translate: V,
|
|
158
|
+
disabled: B
|
|
158
159
|
}),
|
|
159
160
|
b === "oauth2" && /* @__PURE__ */ h("div", {
|
|
160
161
|
className: "flex items-center gap-2 rounded-md border border-border-default bg-status-info-bg-subtle px-3 py-2",
|
|
@@ -163,7 +164,7 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
163
164
|
className: "flex-shrink-0 text-status-info-text"
|
|
164
165
|
}), /* @__PURE__ */ m("span", {
|
|
165
166
|
className: "text-xs text-status-info-text",
|
|
166
|
-
children:
|
|
167
|
+
children: V("integrations.addConnection.authentication.oauthPopupInfo", "A popup window will open for {{provider}} sign-in", { provider: _.name })
|
|
167
168
|
})]
|
|
168
169
|
}),
|
|
169
170
|
b === "minted" && /* @__PURE__ */ h("div", {
|
|
@@ -173,7 +174,7 @@ var g = ({ api: g, provider: _, methods: v, method: y, flow: b, schema: x, name:
|
|
|
173
174
|
className: "flex-shrink-0 text-status-info-text"
|
|
174
175
|
}), /* @__PURE__ */ m("span", {
|
|
175
176
|
className: "text-xs text-status-info-text",
|
|
176
|
-
children:
|
|
177
|
+
children: V("integrations.addConnection.authentication.serviceAccount.description", "No credentials to enter — access is granted on your behalf and tokens are issued per use.")
|
|
177
178
|
})]
|
|
178
179
|
})
|
|
179
180
|
]
|