@burdenoff/fe-libs 2026.930.4 → 2026.1001.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.
Files changed (126) hide show
  1. package/dist/connections/ConnectionDetailsTab.d.ts +11 -0
  2. package/dist/connections/ConnectionDetailsTab.d.ts.map +1 -0
  3. package/dist/connections/ConnectionDetailsTab.js +71 -0
  4. package/dist/connections/ConnectionDialog.d.ts +57 -0
  5. package/dist/connections/ConnectionDialog.d.ts.map +1 -0
  6. package/dist/connections/ConnectionDialog.js +88 -0
  7. package/dist/connections/ConnectionDialogPanel.d.ts +26 -0
  8. package/dist/connections/ConnectionDialogPanel.d.ts.map +1 -0
  9. package/dist/connections/ConnectionDialogPanel.js +272 -0
  10. package/dist/connections/ConnectionFormTab.d.ts +37 -0
  11. package/dist/connections/ConnectionFormTab.d.ts.map +1 -0
  12. package/dist/connections/ConnectionFormTab.js +185 -0
  13. package/dist/connections/CredentialStorageSelector.d.ts +19 -0
  14. package/dist/connections/CredentialStorageSelector.d.ts.map +1 -0
  15. package/dist/connections/CredentialStorageSelector.js +294 -0
  16. package/dist/connections/DialogHeading.d.ts +7 -0
  17. package/dist/connections/DialogHeading.d.ts.map +1 -0
  18. package/dist/connections/DialogHeading.js +16 -0
  19. package/dist/connections/ProviderIcon.d.ts +10 -0
  20. package/dist/connections/ProviderIcon.d.ts.map +1 -0
  21. package/dist/connections/ProviderIcon.js +57 -0
  22. package/dist/connections/ProviderPickerPanel.d.ts +15 -0
  23. package/dist/connections/ProviderPickerPanel.d.ts.map +1 -0
  24. package/dist/connections/ProviderPickerPanel.js +84 -0
  25. package/dist/connections/ScopePicker.d.ts +15 -0
  26. package/dist/connections/ScopePicker.d.ts.map +1 -0
  27. package/dist/connections/ScopePicker.js +38 -0
  28. package/dist/connections/api.d.ts +60 -0
  29. package/dist/connections/api.d.ts.map +1 -0
  30. package/dist/connections/api.js +259 -0
  31. package/dist/connections/assets/bigconsole.png.js +4 -0
  32. package/dist/connections/assets/burdenoff.png.js +4 -0
  33. package/dist/connections/connectionFlow.d.ts +81 -0
  34. package/dist/connections/connectionFlow.d.ts.map +1 -0
  35. package/dist/connections/connectionFlow.js +101 -0
  36. package/dist/connections/frame.d.ts +32 -0
  37. package/dist/connections/frame.d.ts.map +1 -0
  38. package/dist/connections/frame.js +13 -0
  39. package/dist/connections/index.d.ts +24 -0
  40. package/dist/connections/index.d.ts.map +1 -0
  41. package/dist/connections/labels.d.ts +5 -0
  42. package/dist/connections/labels.d.ts.map +1 -0
  43. package/dist/connections/labels.js +35 -0
  44. package/dist/connections/oauthPopup.d.ts +48 -0
  45. package/dist/connections/oauthPopup.d.ts.map +1 -0
  46. package/dist/connections/oauthPopup.js +70 -0
  47. package/dist/connections/picker.d.ts +7 -0
  48. package/dist/connections/picker.d.ts.map +1 -0
  49. package/dist/connections/picker.js +16 -0
  50. package/dist/connections/providerIdentity.d.ts +23 -0
  51. package/dist/connections/providerIdentity.d.ts.map +1 -0
  52. package/dist/connections/providerIdentity.js +175 -0
  53. package/dist/connections/scopes.d.ts +42 -0
  54. package/dist/connections/scopes.d.ts.map +1 -0
  55. package/dist/connections/scopes.js +30 -0
  56. package/dist/connections/storage.d.ts +8 -0
  57. package/dist/connections/storage.d.ts.map +1 -0
  58. package/dist/connections/storage.js +21 -0
  59. package/dist/connections/types.d.ts +82 -0
  60. package/dist/connections/types.d.ts.map +1 -0
  61. package/dist/connections/useConnectionSubmit.d.ts +22 -0
  62. package/dist/connections/useConnectionSubmit.d.ts.map +1 -0
  63. package/dist/connections/useConnectionSubmit.js +99 -0
  64. package/dist/connections.d.ts +2 -0
  65. package/dist/connections.js +14 -0
  66. package/dist/credentials/AuthMethodSelector.d.ts +4 -0
  67. package/dist/credentials/AuthMethodSelector.d.ts.map +1 -1
  68. package/dist/credentials/AuthMethodSelector.js +42 -33
  69. package/dist/credentials/SchemaForm.d.ts +3 -28
  70. package/dist/credentials/SchemaForm.d.ts.map +1 -1
  71. package/dist/credentials/SchemaForm.js +116 -162
  72. package/dist/credentials/index.d.ts +5 -2
  73. package/dist/credentials/index.d.ts.map +1 -1
  74. package/dist/credentials/methods.d.ts +11 -0
  75. package/dist/credentials/methods.d.ts.map +1 -0
  76. package/dist/credentials/methods.js +6 -0
  77. package/dist/credentials/schema.d.ts +43 -0
  78. package/dist/credentials/schema.d.ts.map +1 -0
  79. package/dist/credentials/schema.js +56 -0
  80. package/dist/credentials/translate.d.ts +18 -0
  81. package/dist/credentials/translate.d.ts.map +1 -0
  82. package/dist/credentials/translate.js +7 -0
  83. package/dist/credentials/types.d.ts +1 -1
  84. package/dist/credentials.js +6 -3
  85. package/dist/shared/assistant/conversation.d.ts +5 -1
  86. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  87. package/dist/shared/assistant/history/historyApi.d.ts +25 -9
  88. package/dist/shared/assistant/history/historyApi.d.ts.map +1 -1
  89. package/dist/shared/assistant/history/historyApi.js +220 -75
  90. package/dist/shared/assistant/history/historyControls.d.ts +86 -0
  91. package/dist/shared/assistant/history/historyControls.d.ts.map +1 -0
  92. package/dist/shared/assistant/history/historyControls.js +80 -0
  93. package/dist/shared/assistant/history/historyEngine.d.ts +23 -3
  94. package/dist/shared/assistant/history/historyEngine.d.ts.map +1 -1
  95. package/dist/shared/assistant/history/historyEngine.js +578 -369
  96. package/dist/shared/assistant/history/historyErrors.d.ts +25 -5
  97. package/dist/shared/assistant/history/historyErrors.d.ts.map +1 -1
  98. package/dist/shared/assistant/history/historyErrors.js +39 -30
  99. package/dist/shared/assistant/history/historyList.d.ts +33 -7
  100. package/dist/shared/assistant/history/historyList.d.ts.map +1 -1
  101. package/dist/shared/assistant/history/historyList.js +72 -51
  102. package/dist/shared/assistant/history/historyOperations.d.ts +36 -7
  103. package/dist/shared/assistant/history/historyOperations.d.ts.map +1 -1
  104. package/dist/shared/assistant/history/historyOperations.js +100 -25
  105. package/dist/shared/assistant/history/historyStatus.d.ts +27 -1
  106. package/dist/shared/assistant/history/historyStatus.d.ts.map +1 -1
  107. package/dist/shared/assistant/history/historyStatus.js +6 -2
  108. package/dist/shared/assistant/history/historyStore.d.ts +29 -7
  109. package/dist/shared/assistant/history/historyStore.d.ts.map +1 -1
  110. package/dist/shared/assistant/history/historyStore.js +172 -103
  111. package/dist/shared/assistant/history/historyTransportErrors.d.ts +28 -0
  112. package/dist/shared/assistant/history/historyTransportErrors.d.ts.map +1 -0
  113. package/dist/shared/assistant/history/historyTransportErrors.js +16 -0
  114. package/dist/shared/assistant/history/historyTypes.d.ts +80 -1
  115. package/dist/shared/assistant/history/historyTypes.d.ts.map +1 -1
  116. package/dist/shared/assistant/history/stampRegistry.d.ts +19 -1
  117. package/dist/shared/assistant/history/stampRegistry.d.ts.map +1 -1
  118. package/dist/shared/assistant/history/stampRegistry.js +13 -1
  119. package/dist/shared/assistant/index.d.ts +2 -0
  120. package/dist/shared/assistant/index.d.ts.map +1 -1
  121. package/dist/shared/assistant/store.d.ts +8 -0
  122. package/dist/shared/assistant/store.d.ts.map +1 -1
  123. package/dist/shared/assistant/store.js +50 -46
  124. package/dist/shared/assistant/writeReplyBinder.d.ts +1 -1
  125. package/dist/shared-assistant.js +164 -162
  126. package/package.json +11 -2
@@ -0,0 +1,22 @@
1
+ import { Translator } from '../credentials/translate';
2
+ import { ConnectionsApi } from './api';
3
+ import { ConnectionDraft } from './connectionFlow';
4
+ import { ConnectionDialogEvent, CreatedConnection } from './types';
5
+ interface UseConnectionSubmitOptions {
6
+ api: ConnectionsApi;
7
+ callbackUrl: string;
8
+ translate: Translator;
9
+ onConnectionCreated?: (connection: CreatedConnection) => void;
10
+ onError?: (error: Error) => void;
11
+ onEvent?: (event: ConnectionDialogEvent) => void;
12
+ }
13
+ export declare function useConnectionSubmit({ api, callbackUrl, translate: tr, onConnectionCreated, onError, onEvent, }: UseConnectionSubmitOptions): {
14
+ submit: (draft: ConnectionDraft, scopes: string[] | undefined) => Promise<void>;
15
+ busy: boolean;
16
+ oauthWaiting: boolean;
17
+ errorMessage: string;
18
+ setErrorMessage: import('react').Dispatch<import('react').SetStateAction<string>>;
19
+ created: CreatedConnection | null;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=useConnectionSubmit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConnectionSubmit.d.ts","sourceRoot":"","sources":["../../src/connections/useConnectionSubmit.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExE,UAAU,0BAA0B;IAClC,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAClD;AAeD,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,WAAW,EACX,SAAS,EAAE,EAAE,EACb,mBAAmB,EACnB,OAAO,EACP,OAAO,GACR,EAAE,0BAA0B;oBAkCX,eAAe,UAAU,MAAM,EAAE,GAAG,SAAS;;;;;;EAiF9D"}
@@ -0,0 +1,99 @@
1
+ import { submitConnection as e, validateDraft as t } from "./connectionFlow.js";
2
+ import { waitForOAuthCompletion as n } from "./oauthPopup.js";
3
+ import { useCallback as r, useEffect as i, useRef as a, useState as o } from "react";
4
+ //#region src/connections/useConnectionSubmit.ts
5
+ var s = 600, c = 700;
6
+ function l(e) {
7
+ let t = window.screenX + (window.innerWidth - s) / 2, n = window.screenY + (window.innerHeight - c) / 2;
8
+ return window.open(e, "oauth_popup", `width=${s},height=${c},left=${t},top=${n},toolbar=no,menubar=no,scrollbars=yes,resizable=yes`);
9
+ }
10
+ function u({ api: s, callbackUrl: c, translate: u, onConnectionCreated: d, onError: f, onEvent: p }) {
11
+ let [m, h] = o(!1), [g, _] = o(!1), [v, y] = o(""), [b, x] = o(null), S = a(null), C = a(null);
12
+ i(() => () => {
13
+ S.current?.(), C.current && !C.current.closed && C.current.close();
14
+ }, []);
15
+ let w = r((e) => {
16
+ x(e), d?.(e);
17
+ }, [d]), T = r((e) => {
18
+ y(e), f?.(Error(e));
19
+ }, [f]);
20
+ return {
21
+ submit: r(async (r, i) => {
22
+ if (m || g) return;
23
+ let a = t(r, u);
24
+ if (a) {
25
+ y(a);
26
+ return;
27
+ }
28
+ let { provider: o } = r;
29
+ y(""), h(!0);
30
+ try {
31
+ let t = await e(s, r, {
32
+ redirectUri: c,
33
+ scopes: i
34
+ });
35
+ if (p?.({
36
+ type: "connection-created",
37
+ connectionId: t.connection.id,
38
+ providerKey: o.key
39
+ }), t.kind === "done") {
40
+ w({
41
+ ...t.connection,
42
+ provider: o
43
+ });
44
+ return;
45
+ }
46
+ let a = l(t.redirectUrl);
47
+ if (!a) {
48
+ T(u("integrations.addConnection.authentication.popupBlocked", "Popup was blocked. Please allow popups for this site and try again."));
49
+ return;
50
+ }
51
+ let d = t.connection.id;
52
+ C.current = a, _(!0), p?.({
53
+ type: "oauth-started",
54
+ connectionId: d,
55
+ providerKey: o.key
56
+ }), S.current?.(), S.current = n({
57
+ connectionId: d,
58
+ popup: a,
59
+ fetchConnection: () => s.getConnection(d),
60
+ onSuccess: (e) => w({
61
+ ...e,
62
+ provider: o
63
+ }),
64
+ onError: (e) => {
65
+ p?.({
66
+ type: "oauth-failed",
67
+ connectionId: d,
68
+ providerKey: o.key,
69
+ error: e
70
+ }), T(e);
71
+ },
72
+ onSettled: () => {
73
+ S.current = null, C.current = null, _(!1);
74
+ }
75
+ });
76
+ } catch (e) {
77
+ T(e instanceof Error ? e.message : u("integrations.addConnection.errors.authFailed", "Authentication failed"));
78
+ } finally {
79
+ h(!1);
80
+ }
81
+ }, [
82
+ m,
83
+ g,
84
+ u,
85
+ s,
86
+ c,
87
+ p,
88
+ w,
89
+ T
90
+ ]),
91
+ busy: m || g,
92
+ oauthWaiting: g,
93
+ errorMessage: v,
94
+ setErrorMessage: y,
95
+ created: b
96
+ };
97
+ }
98
+ //#endregion
99
+ export { u as useConnectionSubmit };
@@ -0,0 +1,2 @@
1
+ export * from './connections/index'
2
+ export {}
@@ -0,0 +1,14 @@
1
+ import { getProviderAccent as e, getProviderIconName as t, getProviderImageSource as n, getProviderTextIcon as r, normalizeProviderCategory as i } from "./connections/providerIdentity.js";
2
+ import { createConnectionsApi as a, mapProvider as o, normalizeAuthType as s } from "./connections/api.js";
3
+ import { buildCreateInput as c, collectsOwnClientId as l, flowForAuthType as u, resolveFlow as d, resolveMethod as f, resolveSchema as p, submitConnection as m, submittedValues as h, validateDraft as g } from "./connections/connectionFlow.js";
4
+ import { authTypeLabel as _, categoryLabel as v } from "./connections/labels.js";
5
+ import { ProviderIcon as y } from "./connections/ProviderIcon.js";
6
+ import { EMPTY_STORAGE as b, compatibleSecrets as x } from "./connections/storage.js";
7
+ import { CredentialStorageSelector as S } from "./connections/CredentialStorageSelector.js";
8
+ import { CONNECTION_DIALOG_FRAME_CLASSES as C } from "./connections/frame.js";
9
+ import { isScopeChecked as w, parseScopeOptions as T, requestedScopes as E, toggleScope as D } from "./connections/scopes.js";
10
+ import { ScopePicker as O } from "./connections/ScopePicker.js";
11
+ import { groupByCategory as k, pickableProviders as A } from "./connections/picker.js";
12
+ import { isOAuthCallbackMessage as j, waitForOAuthCompletion as M } from "./connections/oauthPopup.js";
13
+ import { ConnectionDialog as N } from "./connections/ConnectionDialog.js";
14
+ export { C as CONNECTION_DIALOG_FRAME_CLASSES, N as ConnectionDialog, S as CredentialStorageSelector, b as EMPTY_STORAGE, y as ProviderIcon, O as ScopePicker, _ as authTypeLabel, c as buildCreateInput, v as categoryLabel, l as collectsOwnClientId, x as compatibleSecrets, a as createConnectionsApi, u as flowForAuthType, e as getProviderAccent, t as getProviderIconName, n as getProviderImageSource, r as getProviderTextIcon, k as groupByCategory, j as isOAuthCallbackMessage, w as isScopeChecked, o as mapProvider, s as normalizeAuthType, i as normalizeProviderCategory, T as parseScopeOptions, A as pickableProviders, E as requestedScopes, d as resolveFlow, f as resolveMethod, p as resolveSchema, m as submitConnection, h as submittedValues, D as toggleScope, g as validateDraft, M as waitForOAuthCompletion };
@@ -1,4 +1,5 @@
1
1
  import { FC } from 'react';
2
+ import { Translator } from './translate';
2
3
  import { AuthMethodLike } from './types';
3
4
  interface AuthMethodSelectorProps {
4
5
  methods: AuthMethodLike[];
@@ -15,6 +16,8 @@ interface AuthMethodSelectorProps {
15
16
  * the choice visible while the fields below it scroll.
16
17
  */
17
18
  compact?: boolean;
19
+ /** Host translator; English when omitted. */
20
+ translate?: Translator;
18
21
  }
19
22
  /**
20
23
  * The chosen method's description, and a warning when this environment has no
@@ -25,6 +28,7 @@ interface AuthMethodSelectorProps {
25
28
  */
26
29
  export declare const AuthMethodNotice: FC<{
27
30
  method: AuthMethodLike | null;
31
+ translate?: Translator;
28
32
  }>;
29
33
  export declare const AuthMethodSelector: FC<AuthMethodSelectorProps>;
30
34
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"AuthMethodSelector.d.ts","sourceRoot":"","sources":["../../src/credentials/AuthMethodSelector.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,uBAAuB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC;IAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,CAuBlE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA2E1D,CAAC"}
1
+ {"version":3,"file":"AuthMethodSelector.d.ts","sourceRoot":"","sources":["../../src/credentials/AuthMethodSelector.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,uBAAuB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC;IAChC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB,CAkBA,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA6E1D,CAAC"}
@@ -1,53 +1,62 @@
1
- import { AlertCircle as e } from "lucide-react";
2
- import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
1
+ import { englishTranslator as e } from "./translate.js";
2
+ import { resolveSelectedMethod as t } from "./methods.js";
3
+ import { AlertCircle as n } from "lucide-react";
4
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
3
5
  //#region src/credentials/AuthMethodSelector.tsx
4
- var i = ({ method: i }) => i ? /* @__PURE__ */ r(t, { children: [i.description && /* @__PURE__ */ n("p", {
6
+ var o = ({ method: t, translate: o = e }) => t ? /* @__PURE__ */ a(r, { children: [t.description && /* @__PURE__ */ i("p", {
5
7
  className: "text-xs text-text-secondary",
6
- children: i.description
7
- }), !i.isConfigured && /* @__PURE__ */ r("div", {
8
+ children: t.description
9
+ }), !t.isConfigured && /* @__PURE__ */ a("div", {
8
10
  className: "flex items-start gap-2 px-3 py-2 rounded-md bg-status-warning-bg-subtle border border-border-default",
9
- children: [/* @__PURE__ */ n(e, {
11
+ children: [/* @__PURE__ */ i(n, {
10
12
  size: 14,
11
13
  className: "text-status-warning-text flex-shrink-0 mt-0.5"
12
- }), /* @__PURE__ */ n("span", {
14
+ }), /* @__PURE__ */ i("span", {
13
15
  className: "text-xs text-status-warning-text",
14
- children: "This method has no credentials configured in this environment. Ask an administrator to add them, or pick another method."
16
+ children: o("integrations.addConnection.authentication.methodNotConfigured", "This authentication method is not configured in this environment. Ask an administrator to add its credentials, or pick another method.")
15
17
  })]
16
- })] }) : null, a = ({ methods: e, selectedKey: t, onSelect: a, disabled: o, idPrefix: s = "auth-method", compact: c = !1 }) => {
17
- let l = e.filter((e) => e.isEnabled);
18
- if (l.length <= 1) return null;
19
- let u = l.find((e) => e.key === t) ?? null, d = /* @__PURE__ */ r("select", {
20
- id: s,
21
- "aria-label": "Authentication Method",
22
- value: u ? u.key : "",
23
- onChange: (e) => a(e.target.value),
24
- disabled: o,
25
- className: c ? "max-w-[16rem] truncate rounded-md border border-border-subtle bg-bg-surface px-2.5 py-1.5 text-xs focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary disabled:opacity-50 scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary" : "w-full px-3 py-2 border border-border-subtle rounded-md bg-bg-surface text-sm focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary disabled:opacity-50 scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary",
26
- children: [!u && /* @__PURE__ */ n("option", {
18
+ })] }) : null, s = ({ methods: n, selectedKey: r, onSelect: s, disabled: c, idPrefix: l = "auth-method", compact: u = !1, translate: d = e }) => {
19
+ let f = n.filter((e) => e.isEnabled);
20
+ if (f.length <= 1) return null;
21
+ let p = t(f, r), m = d("integrations.addConnection.fields.authMethod", "Authentication Method"), h = /* @__PURE__ */ a("select", {
22
+ id: l,
23
+ "aria-label": m,
24
+ value: p ? p.key : "",
25
+ onChange: (e) => s(e.target.value),
26
+ disabled: c,
27
+ className: u ? "max-w-[16rem] truncate rounded-md border border-border-subtle bg-bg-surface px-2.5 py-1.5 text-xs focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary disabled:opacity-50 scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary" : "w-full px-3 py-2 border border-border-subtle rounded-md bg-bg-surface text-sm focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary disabled:opacity-50 scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary",
28
+ children: [!p && /* @__PURE__ */ i("option", {
27
29
  value: "",
28
30
  disabled: !0,
29
- children: "Select an authentication method"
30
- }), l.map((e) => /* @__PURE__ */ r("option", {
31
+ children: d("integrations.addConnection.fields.authMethodPlaceholder", "Select an authentication method")
32
+ }), f.map((e) => /* @__PURE__ */ a("option", {
31
33
  value: e.key,
32
34
  disabled: !e.isConfigured,
33
- children: [e.displayName, e.isConfigured ? "" : " — not configured"]
35
+ children: [e.displayName, e.isConfigured ? "" : ` — ${d("integrations.providerEditor.authMethods.notConfigured", "not configured")}`]
34
36
  }, e.key))]
35
37
  });
36
- return c ? d : /* @__PURE__ */ r("div", { children: [
37
- /* @__PURE__ */ r("label", {
38
- htmlFor: s,
38
+ return u ? h : /* @__PURE__ */ a("div", { children: [
39
+ /* @__PURE__ */ a("label", {
40
+ htmlFor: l,
39
41
  className: "block text-sm font-medium text-text-primary mb-1.5",
40
- children: ["Authentication Method ", /* @__PURE__ */ n("span", {
41
- className: "text-status-error-text",
42
- children: "*"
43
- })]
42
+ children: [
43
+ m,
44
+ " ",
45
+ /* @__PURE__ */ i("span", {
46
+ className: "text-status-error-text",
47
+ children: "*"
48
+ })
49
+ ]
44
50
  }),
45
- d,
46
- /* @__PURE__ */ n("div", {
51
+ h,
52
+ /* @__PURE__ */ i("div", {
47
53
  className: "mt-1 space-y-2",
48
- children: /* @__PURE__ */ n(i, { method: u })
54
+ children: /* @__PURE__ */ i(o, {
55
+ method: p,
56
+ translate: d
57
+ })
49
58
  })
50
59
  ] });
51
60
  };
52
61
  //#endregion
53
- export { i as AuthMethodNotice, a as AuthMethodSelector };
62
+ export { o as AuthMethodNotice, s as AuthMethodSelector };
@@ -1,33 +1,6 @@
1
1
  import { FC } from 'react';
2
+ import { Translator } from './translate';
2
3
  import { FormSchema } from './types';
3
- /**
4
- * Narrow an arbitrary JSON value to a renderable schema. Returns null when the
5
- * value isn't a usable object schema, so callers can fall back rather than
6
- * rendering an empty form.
7
- */
8
- export declare function parseFormSchema(raw: unknown): FormSchema | null;
9
- /**
10
- * Required fields that are visible and filled. Hidden fields are excluded on
11
- * purpose — a `showIf` field the user never saw must not block submission.
12
- */
13
- export declare function isSchemaComplete(schema: FormSchema, values: Record<string, unknown>): boolean;
14
- /**
15
- * Seed values for a schema's declared defaults.
16
- *
17
- * A rendered control shows `property.default` as selected, but nothing was
18
- * written to form state — so validation treated the visible default as missing
19
- * and submit dropped it unless the user touched the control. The common
20
- * "accept the default" path silently lost the value.
21
- */
22
- export declare function initialValuesFromSchema(schema: FormSchema | null): Record<string, unknown>;
23
- /**
24
- * Drop values whose field is currently hidden by `showIf`.
25
- *
26
- * Changing a controlling option hides a field but leaves whatever was typed in
27
- * it in state; submitting that would store a credential the user can no longer
28
- * see and did not intend to send.
29
- */
30
- export declare function visibleValues(schema: FormSchema | null, values: Record<string, unknown>): Record<string, unknown>;
31
4
  interface SchemaFormProps {
32
5
  schema: FormSchema;
33
6
  values: Record<string, unknown>;
@@ -35,6 +8,8 @@ interface SchemaFormProps {
35
8
  disabled?: boolean;
36
9
  /** Prefix for generated element ids so several forms can coexist on a page. */
37
10
  idPrefix?: string;
11
+ /** Host translator; English when omitted. */
12
+ translate?: Translator;
38
13
  }
39
14
  export declare const SchemaForm: FC<SchemaFormProps>;
40
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaForm.d.ts","sourceRoot":"","sources":["../../src/credentials/SchemaForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAiB,EAAE,EAAE,MAAM,OAAO,CAAC;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAmB/D;AAoCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAST;AAUD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,GAAG,IAAI,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB;AAgBD,UAAU,eAAe;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA2B1C,CAAC"}
1
+ {"version":3,"file":"SchemaForm.d.ts","sourceRoot":"","sources":["../../src/credentials/SchemaForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAiB,EAAE,EAAE,MAAM,OAAO,CAAC;AAK/C,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AAgB1D,UAAU,eAAe;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA6B1C,CAAC"}