@workos-inc/widgets 1.18.0-next.1788904392369 → 1.18.0
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/CHANGELOG.md +3 -1
- package/dist/cjs/lib/pipes-admin.cjs +589 -23
- package/dist/cjs/lib/pipes-admin.cjs.map +1 -1
- package/dist/cjs/lib/pipes-admin.d.cts +39 -3
- package/dist/cjs/lib/pipes.cjs +76 -32
- package/dist/cjs/lib/pipes.cjs.map +1 -1
- package/dist/cjs/lib/pipes.d.cts +79 -3
- package/dist/cjs/pipes-admin.client.cjs +45 -3
- package/dist/cjs/pipes-admin.client.cjs.map +1 -1
- package/dist/cjs/pipes-admin.client.d.cts +13 -0
- package/dist/esm/lib/pipes-admin.d.ts +39 -3
- package/dist/esm/lib/pipes-admin.js +608 -25
- package/dist/esm/lib/pipes-admin.js.map +1 -1
- package/dist/esm/lib/pipes.d.ts +79 -3
- package/dist/esm/lib/pipes.js +74 -32
- package/dist/esm/lib/pipes.js.map +1 -1
- package/dist/esm/pipes-admin.client.d.ts +13 -0
- package/dist/esm/pipes-admin.client.js +48 -4
- package/dist/esm/pipes-admin.client.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/lib/pipes.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import { DataIntegration, SharedDataConnection, DataInstallation, DataIntegrationConfigField } from '../api/endpoint.cjs';
|
|
2
3
|
import { WidgetRootDomProps } from './utils.cjs';
|
|
3
4
|
import '@tanstack/react-query';
|
|
4
5
|
import '../api/widgets-api-client.cjs';
|
|
5
6
|
import './elements.cjs';
|
|
6
|
-
import 'react';
|
|
7
7
|
import '@radix-ui/themes';
|
|
8
8
|
import '@radix-ui/themes/props';
|
|
9
9
|
import '../dialog-CGXwsXVe.cjs';
|
|
@@ -43,11 +43,87 @@ interface PipesSectionsProps extends PipesProps {
|
|
|
43
43
|
/** Names the owning organization in the shared section's description. */
|
|
44
44
|
organizationName?: string;
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Who will own the resulting installation. Members connect their own account
|
|
48
|
+
* through the personal authorize endpoint; administrators connect an account
|
|
49
|
+
* on the organization's behalf through the organization one.
|
|
50
|
+
*/
|
|
51
|
+
type ConnectionOwner = "user" | "organization";
|
|
52
|
+
declare const useOpenDataIntegrationAuthorizeUrl: (integration: DataIntegration, owner?: ConnectionOwner) => (config?: Record<string, string>) => Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Returns the provider-declared `installation`-scope config fields that the
|
|
55
|
+
* integration has not pinned a value for, sorted by descriptor `order`. These
|
|
56
|
+
* are the fields the connect flow must prompt for (pin / prompt-if-unset).
|
|
57
|
+
*/
|
|
58
|
+
declare function getUnpinnedInstallationFields(integration: DataIntegration): DataIntegrationConfigField[];
|
|
59
|
+
/**
|
|
60
|
+
* The single connect dialog for all non-API (OAuth) providers. When the
|
|
61
|
+
* provider declares unpinned `installation`-scope config fields (e.g. a Zendesk
|
|
62
|
+
* subdomain), it opens on a field-collection step (values validated against the
|
|
63
|
+
* descriptor `required` / `pattern`) before the redirect explainer; otherwise
|
|
64
|
+
* it opens directly on the explainer. Collected values are submitted as
|
|
65
|
+
* `config` on the POST authorize call. Controlled so it backs the initial
|
|
66
|
+
* connect flow, the dual-method OAuth option, and reauthorization.
|
|
67
|
+
*/
|
|
68
|
+
declare function ConnectDialog({ integration, fields, open, onOpenChange, owner, }: {
|
|
69
|
+
integration: DataIntegration;
|
|
70
|
+
fields: DataIntegrationConfigField[];
|
|
71
|
+
open: boolean;
|
|
72
|
+
onOpenChange: (open: boolean) => void;
|
|
73
|
+
owner?: ConnectionOwner;
|
|
74
|
+
}): React$1.JSX.Element;
|
|
75
|
+
/**
|
|
76
|
+
* Stores an API key for the integration: the member's own installation, or,
|
|
77
|
+
* with `owner="organization"`, the one the organization shares with everyone
|
|
78
|
+
* (`installation` then names that shared account).
|
|
79
|
+
*/
|
|
80
|
+
declare function ApiKeyDialog({ integration, installation, owner, open, onOpenChange, }: {
|
|
81
|
+
integration: DataIntegration;
|
|
82
|
+
installation?: DataInstallation | null;
|
|
83
|
+
owner?: ConnectionOwner;
|
|
84
|
+
open: boolean;
|
|
85
|
+
onOpenChange: (open: boolean) => void;
|
|
86
|
+
}): React$1.JSX.Element;
|
|
87
|
+
/**
|
|
88
|
+
* Connect form for the `client_credentials` auth method: the provider's client
|
|
89
|
+
* id and secret plus any unpinned `installation`-scope config fields, rendered
|
|
90
|
+
* generically from the descriptors via {@link ConfigFieldInputs}. Submits to
|
|
91
|
+
* PUT `/DataIntegrations/:slug/client-credentials`, which also handles
|
|
92
|
+
* replacing the credentials of an existing client-credentials installation.
|
|
93
|
+
*
|
|
94
|
+
* For an existing installation the form is prefilled from it: the client id as
|
|
95
|
+
* received, the stored secret as a redacted mask that clears on focus (the
|
|
96
|
+
* real value is never sent to the widget, so a new secret must be re-entered
|
|
97
|
+
* to save), and the config fields from `installation.config`. `config` is only
|
|
98
|
+
* included in the payload when the user edits a config field, since the API
|
|
99
|
+
* keeps the stored config when the key is absent; when it is included it is
|
|
100
|
+
* the full round-tripped object, because the write replaces config wholesale.
|
|
101
|
+
*/
|
|
102
|
+
declare function ClientCredentialsDialog({ integration, installation, owner, fields, open, onOpenChange, }: {
|
|
103
|
+
integration: DataIntegration;
|
|
104
|
+
installation?: DataInstallation | null;
|
|
105
|
+
owner?: ConnectionOwner;
|
|
106
|
+
fields: DataIntegrationConfigField[];
|
|
107
|
+
open: boolean;
|
|
108
|
+
onOpenChange: (open: boolean) => void;
|
|
109
|
+
}): React$1.JSX.Element;
|
|
46
110
|
interface PipesLoadingProps extends WidgetRootDomProps {
|
|
47
111
|
count: number;
|
|
48
112
|
}
|
|
49
113
|
declare const PipesLoading: React.FC<PipesLoadingProps>;
|
|
114
|
+
/**
|
|
115
|
+
* Stands in for the rows a list has none of. Filtering is client-side, so an
|
|
116
|
+
* empty list can say whether nothing is enabled yet or a `filter` emptied it.
|
|
117
|
+
*/
|
|
118
|
+
declare function PipesEmptyItem({ isFiltered }: {
|
|
119
|
+
isFiltered: boolean;
|
|
120
|
+
}): React$1.JSX.Element;
|
|
50
121
|
declare const Pipes: React.FC<PipesProps>;
|
|
122
|
+
declare function PipesSection({ title, description, children, }: {
|
|
123
|
+
title: React.ReactNode;
|
|
124
|
+
description: React.ReactNode;
|
|
125
|
+
children: React.ReactNode;
|
|
126
|
+
}): React$1.JSX.Element;
|
|
51
127
|
/**
|
|
52
128
|
* The sectioned member experience: the connections the organization shares,
|
|
53
129
|
* then the member's own. The two lanes come from different endpoints and are
|
|
@@ -63,4 +139,4 @@ interface PipesErrorProps extends WidgetRootDomProps {
|
|
|
63
139
|
}
|
|
64
140
|
declare const PipesError: React.FC<PipesErrorProps>;
|
|
65
141
|
|
|
66
|
-
export { Pipes, PipesError, type PipesErrorProps, PipesLoading, type PipesLoadingProps, type PipesProps, PipesSections, type PipesSectionsProps };
|
|
142
|
+
export { ApiKeyDialog, ClientCredentialsDialog, ConnectDialog, type ConnectionOwner, Pipes, PipesEmptyItem, PipesError, type PipesErrorProps, PipesLoading, type PipesLoadingProps, type PipesProps, PipesSection, PipesSections, type PipesSectionsProps, getUnpinnedInstallationFields, useOpenDataIntegrationAuthorizeUrl };
|
|
@@ -28,9 +28,14 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
28
28
|
var import_api_provider = require("./api/api-provider.js");
|
|
29
29
|
var import_widgets_context = require("./lib/widgets-context.js");
|
|
30
30
|
var import_pipes_admin = require("./lib/pipes-admin.js");
|
|
31
|
+
var import_endpoint = require("./api/endpoint.js");
|
|
31
32
|
var import_use_is_hydrated = require("./lib/use-is-hydrated.js");
|
|
32
33
|
var import_error_boundary = require("./lib/error-boundary.js");
|
|
33
|
-
const PipesAdmin = ({
|
|
34
|
+
const PipesAdmin = ({
|
|
35
|
+
authToken,
|
|
36
|
+
enableSharedConnections,
|
|
37
|
+
...domProps
|
|
38
|
+
}) => {
|
|
34
39
|
const baseUrl = (0, import_widgets_context.useWorkOsApiUrl)();
|
|
35
40
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
36
41
|
import_error_boundary.ErrorBoundary,
|
|
@@ -42,13 +47,25 @@ const PipesAdmin = ({ authToken, ...domProps }) => {
|
|
|
42
47
|
widgetType: "pipes-admin",
|
|
43
48
|
authToken,
|
|
44
49
|
baseUrl,
|
|
45
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
50
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
51
|
+
PipesAdminImpl,
|
|
52
|
+
{
|
|
53
|
+
enableSharedConnections,
|
|
54
|
+
...domProps
|
|
55
|
+
}
|
|
56
|
+
)
|
|
46
57
|
}
|
|
47
58
|
)
|
|
48
59
|
}
|
|
49
60
|
);
|
|
50
61
|
};
|
|
51
|
-
const PipesAdminImpl = (
|
|
62
|
+
const PipesAdminImpl = ({
|
|
63
|
+
enableSharedConnections,
|
|
64
|
+
...props
|
|
65
|
+
}) => {
|
|
66
|
+
return enableSharedConnections ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PipesAdminSectionsImpl, { ...props }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PipesAdminProviderSettingsImpl, { ...props });
|
|
67
|
+
};
|
|
68
|
+
const PipesAdminProviderSettingsImpl = (props) => {
|
|
52
69
|
const isHydrated = (0, import_use_is_hydrated.useIsHydrated)();
|
|
53
70
|
const integrations = (0, import_pipes_admin.useManageableIntegrations)();
|
|
54
71
|
if (!isHydrated || integrations.isLoading) {
|
|
@@ -59,6 +76,31 @@ const PipesAdminImpl = (props) => {
|
|
|
59
76
|
}
|
|
60
77
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_pipes_admin.PipesAdmin, { integrations: integrations.data, ...props });
|
|
61
78
|
};
|
|
79
|
+
const PipesAdminSectionsImpl = (props) => {
|
|
80
|
+
const isHydrated = (0, import_use_is_hydrated.useIsHydrated)();
|
|
81
|
+
const integrations = (0, import_pipes_admin.useManageableIntegrations)();
|
|
82
|
+
const shared = (0, import_pipes_admin.useOrganizationOwnedIntegrations)();
|
|
83
|
+
const organizations = (0, import_endpoint.useOrganizations)();
|
|
84
|
+
const organizationName = organizations.data?.data.find(
|
|
85
|
+
(organization) => organization.current
|
|
86
|
+
)?.name;
|
|
87
|
+
if (!isHydrated || integrations.isLoading) {
|
|
88
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_pipes_admin.PipesAdminLoading, { count: 6, ...props });
|
|
89
|
+
}
|
|
90
|
+
if (integrations.isError) {
|
|
91
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_pipes_admin.PipesAdminError, { error: integrations.error, ...props });
|
|
92
|
+
}
|
|
93
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
94
|
+
import_pipes_admin.PipesAdminSections,
|
|
95
|
+
{
|
|
96
|
+
integrations: integrations.data,
|
|
97
|
+
sharedIntegrations: shared.data,
|
|
98
|
+
isSharedLoading: shared.isLoading,
|
|
99
|
+
organizationName,
|
|
100
|
+
...props
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
};
|
|
62
104
|
// Annotate the CommonJS export names for ESM import in node:
|
|
63
105
|
0 && (module.exports = {
|
|
64
106
|
PipesAdmin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pipes-admin.client.tsx"],"sourcesContent":["\"use client\";\nimport { ApiProvider, AuthToken } from \"./api/api-provider.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport {\n PipesAdmin as PipesAdminPresentational,\n PipesAdminError,\n PipesAdminLoading,\n useManageableIntegrations,\n} from \"./lib/pipes-admin.js\";\nimport type {\n PipesAdminErrorProps,\n PipesAdminLoadingProps,\n} from \"./lib/pipes-admin.js\";\nimport { useIsHydrated } from \"./lib/use-is-hydrated.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { WidgetRootDomProps } from \"./lib/utils.js\";\n\ninterface PipesAdminProps extends WidgetRootDomProps {\n authToken: AuthToken;\n}\n\nconst PipesAdmin: React.FC<PipesAdminProps> = ({
|
|
1
|
+
{"version":3,"sources":["../../src/pipes-admin.client.tsx"],"sourcesContent":["\"use client\";\nimport { ApiProvider, AuthToken } from \"./api/api-provider.js\";\nimport { useWorkOsApiUrl } from \"./lib/widgets-context.js\";\nimport {\n PipesAdmin as PipesAdminPresentational,\n PipesAdminSections as PipesAdminSectionsPresentational,\n PipesAdminError,\n PipesAdminLoading,\n useManageableIntegrations,\n useOrganizationOwnedIntegrations,\n} from \"./lib/pipes-admin.js\";\nimport type {\n PipesAdminErrorProps,\n PipesAdminLoadingProps,\n} from \"./lib/pipes-admin.js\";\nimport { useOrganizations } from \"./api/endpoint.js\";\nimport { useIsHydrated } from \"./lib/use-is-hydrated.js\";\nimport { ErrorBoundary } from \"./lib/error-boundary.js\";\nimport { WidgetRootDomProps } from \"./lib/utils.js\";\n\ninterface PipesAdminProps extends WidgetRootDomProps {\n authToken: AuthToken;\n /**\n * Opt in to the sectioned administrator experience: the connections the\n * organization owns and shares with everyone (which the administrator can\n * configure, connect, reauthorize and disconnect), followed by the provider\n * settings that govern what members may connect to on their own.\n *\n * The two sections are fetched separately, so provider settings render as\n * soon as they resolve regardless of the shared section.\n *\n * Defaults to `false`, which renders the single unsectioned provider\n * settings list and never requests organization-owned connections.\n */\n enableSharedConnections?: boolean;\n}\n\nconst PipesAdmin: React.FC<PipesAdminProps> = ({\n authToken,\n enableSharedConnections,\n ...domProps\n}) => {\n const baseUrl = useWorkOsApiUrl();\n\n return (\n <ErrorBoundary\n fallbackRender={({ error }) => (\n <PipesAdminError {...domProps} error={error} />\n )}\n >\n <ApiProvider\n widgetType=\"pipes-admin\"\n authToken={authToken}\n baseUrl={baseUrl}\n >\n <PipesAdminImpl\n enableSharedConnections={enableSharedConnections}\n {...domProps}\n />\n </ApiProvider>\n </ErrorBoundary>\n );\n};\n\n// The two experiences are separate components so the opt-out path mounts no\n// organization-owned hook at all, and therefore issues exactly the requests it\n// always has.\nconst PipesAdminImpl = ({\n enableSharedConnections,\n ...props\n}: Omit<PipesAdminProps, \"authToken\">) => {\n return enableSharedConnections ? (\n <PipesAdminSectionsImpl {...props} />\n ) : (\n <PipesAdminProviderSettingsImpl {...props} />\n );\n};\n\ntype PipesAdminImplProps = Omit<\n PipesAdminProps,\n \"authToken\" | \"enableSharedConnections\"\n>;\n\nconst PipesAdminProviderSettingsImpl = (props: PipesAdminImplProps) => {\n const isHydrated = useIsHydrated();\n const integrations = useManageableIntegrations();\n\n if (!isHydrated || integrations.isLoading) {\n return <PipesAdminLoading count={6} {...props} />;\n }\n\n if (integrations.isError) {\n return <PipesAdminError error={integrations.error} {...props} />;\n }\n\n return (\n <PipesAdminPresentational integrations={integrations.data} {...props} />\n );\n};\n\nconst PipesAdminSectionsImpl = (props: PipesAdminImplProps) => {\n const isHydrated = useIsHydrated();\n const integrations = useManageableIntegrations();\n // Both sections have their own cache entry and resolve independently:\n // provider settings render as soon as they arrive, and a slow or failing\n // organization request only affects the shared section.\n const shared = useOrganizationOwnedIntegrations();\n const organizations = useOrganizations();\n const organizationName = organizations.data?.data.find(\n (organization) => organization.current,\n )?.name;\n\n if (!isHydrated || integrations.isLoading) {\n return <PipesAdminLoading count={6} {...props} />;\n }\n\n if (integrations.isError) {\n return <PipesAdminError error={integrations.error} {...props} />;\n }\n\n return (\n <PipesAdminSectionsPresentational\n integrations={integrations.data}\n sharedIntegrations={shared.data}\n isSharedLoading={shared.isLoading}\n organizationName={organizationName}\n {...props}\n />\n );\n};\n\nexport type { PipesAdminProps, PipesAdminLoadingProps, PipesAdminErrorProps };\nexport { PipesAdmin, PipesAdminLoading, PipesAdminError };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+CQ;AA9CR,0BAAuC;AACvC,6BAAgC;AAChC,yBAOO;AAKP,sBAAiC;AACjC,6BAA8B;AAC9B,4BAA8B;AAoB9B,MAAM,aAAwC,CAAC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAU,wCAAgB;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAgB,CAAC,EAAE,MAAM,MACvB,4CAAC,sCAAiB,GAAG,UAAU,OAAc;AAAA,MAG/C;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX;AAAA,UACA;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACC,GAAG;AAAA;AAAA,UACN;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAKA,MAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA,GAAG;AACL,MAA0C;AACxC,SAAO,0BACL,4CAAC,0BAAwB,GAAG,OAAO,IAEnC,4CAAC,kCAAgC,GAAG,OAAO;AAE/C;AAOA,MAAM,iCAAiC,CAAC,UAA+B;AACrE,QAAM,iBAAa,sCAAc;AACjC,QAAM,mBAAe,8CAA0B;AAE/C,MAAI,CAAC,cAAc,aAAa,WAAW;AACzC,WAAO,4CAAC,wCAAkB,OAAO,GAAI,GAAG,OAAO;AAAA,EACjD;AAEA,MAAI,aAAa,SAAS;AACxB,WAAO,4CAAC,sCAAgB,OAAO,aAAa,OAAQ,GAAG,OAAO;AAAA,EAChE;AAEA,SACE,4CAAC,mBAAAA,YAAA,EAAyB,cAAc,aAAa,MAAO,GAAG,OAAO;AAE1E;AAEA,MAAM,yBAAyB,CAAC,UAA+B;AAC7D,QAAM,iBAAa,sCAAc;AACjC,QAAM,mBAAe,8CAA0B;AAI/C,QAAM,aAAS,qDAAiC;AAChD,QAAM,oBAAgB,kCAAiB;AACvC,QAAM,mBAAmB,cAAc,MAAM,KAAK;AAAA,IAChD,CAAC,iBAAiB,aAAa;AAAA,EACjC,GAAG;AAEH,MAAI,CAAC,cAAc,aAAa,WAAW;AACzC,WAAO,4CAAC,wCAAkB,OAAO,GAAI,GAAG,OAAO;AAAA,EACjD;AAEA,MAAI,aAAa,SAAS;AACxB,WAAO,4CAAC,sCAAgB,OAAO,aAAa,OAAQ,GAAG,OAAO;AAAA,EAChE;AAEA,SACE;AAAA,IAAC,mBAAAC;AAAA,IAAA;AAAA,MACC,cAAc,aAAa;AAAA,MAC3B,oBAAoB,OAAO;AAAA,MAC3B,iBAAiB,OAAO;AAAA,MACxB;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":["PipesAdminPresentational","PipesAdminSectionsPresentational"]}
|
|
@@ -19,6 +19,19 @@ import '@radix-ui/themes/components/select';
|
|
|
19
19
|
|
|
20
20
|
interface PipesAdminProps extends WidgetRootDomProps {
|
|
21
21
|
authToken: AuthToken;
|
|
22
|
+
/**
|
|
23
|
+
* Opt in to the sectioned administrator experience: the connections the
|
|
24
|
+
* organization owns and shares with everyone (which the administrator can
|
|
25
|
+
* configure, connect, reauthorize and disconnect), followed by the provider
|
|
26
|
+
* settings that govern what members may connect to on their own.
|
|
27
|
+
*
|
|
28
|
+
* The two sections are fetched separately, so provider settings render as
|
|
29
|
+
* soon as they resolve regardless of the shared section.
|
|
30
|
+
*
|
|
31
|
+
* Defaults to `false`, which renders the single unsectioned provider
|
|
32
|
+
* settings list and never requests organization-owned connections.
|
|
33
|
+
*/
|
|
34
|
+
enableSharedConnections?: boolean;
|
|
22
35
|
}
|
|
23
36
|
declare const PipesAdmin: React.FC<PipesAdminProps>;
|
|
24
37
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { DataIntegrationConfiguration, OrganizationDataIntegration } from '../api/endpoint.js';
|
|
2
3
|
import { WidgetRootDomProps } from './utils.js';
|
|
3
4
|
import '@tanstack/react-query';
|
|
4
5
|
import '../api/widgets-api-client.js';
|
|
5
6
|
import './elements.js';
|
|
6
|
-
import 'react';
|
|
7
7
|
import '@radix-ui/themes';
|
|
8
8
|
import '@radix-ui/themes/props';
|
|
9
9
|
import '../dialog-CGXwsXVe.js';
|
|
@@ -29,6 +29,18 @@ declare function useManageableIntegrations(): {
|
|
|
29
29
|
isError: boolean;
|
|
30
30
|
error: unknown;
|
|
31
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Integrations the organization owns and shares with everyone, with the
|
|
34
|
+
* organization's configuration and the actions the server allows on them.
|
|
35
|
+
* Gated on the same manage permission as provider settings, but cached
|
|
36
|
+
* separately so the two sections resolve independently. Like the member
|
|
37
|
+
* widget, a failed attempt drops the section rather than leaving skeletons up
|
|
38
|
+
* for the whole retry sequence.
|
|
39
|
+
*/
|
|
40
|
+
declare function useOrganizationOwnedIntegrations(): {
|
|
41
|
+
data: OrganizationDataIntegration[];
|
|
42
|
+
isLoading: boolean;
|
|
43
|
+
};
|
|
32
44
|
interface PipesAdminProps extends WidgetRootDomProps {
|
|
33
45
|
integrations: DataIntegrationConfiguration[];
|
|
34
46
|
}
|
|
@@ -38,6 +50,30 @@ interface PipesAdminProps extends WidgetRootDomProps {
|
|
|
38
50
|
* Presentational — the client wrapper fetches via `useManageableIntegrations`.
|
|
39
51
|
*/
|
|
40
52
|
declare const PipesAdmin: React.FC<PipesAdminProps>;
|
|
53
|
+
interface PipesAdminSectionsProps extends PipesAdminProps {
|
|
54
|
+
/**
|
|
55
|
+
* Organization-owned integrations, as returned by the organization
|
|
56
|
+
* endpoint. Empty while loading, when the organization owns nothing, and
|
|
57
|
+
* when the request failed.
|
|
58
|
+
*/
|
|
59
|
+
sharedIntegrations: OrganizationDataIntegration[];
|
|
60
|
+
/** Renders the shared section as skeleton rows while it resolves. */
|
|
61
|
+
isSharedLoading?: boolean;
|
|
62
|
+
/** Names the owning organization in the shared section's description. */
|
|
63
|
+
organizationName?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The sectioned administrator experience: the connections the organization
|
|
67
|
+
* owns and shares with everyone, then the provider settings governing what
|
|
68
|
+
* members may connect on their own. The two lanes come from different
|
|
69
|
+
* endpoints and are never merged — the same provider can legitimately appear
|
|
70
|
+
* in both, once as the organization's own account and once as the policy for
|
|
71
|
+
* members' personal accounts.
|
|
72
|
+
*
|
|
73
|
+
* The shared section is omitted when the organization owns nothing or the
|
|
74
|
+
* request failed, leaving provider settings on their own.
|
|
75
|
+
*/
|
|
76
|
+
declare const PipesAdminSections: React.FC<PipesAdminSectionsProps>;
|
|
41
77
|
interface PipesAdminLoadingProps extends WidgetRootDomProps {
|
|
42
78
|
count: number;
|
|
43
79
|
}
|
|
@@ -47,4 +83,4 @@ interface PipesAdminErrorProps extends WidgetRootDomProps {
|
|
|
47
83
|
}
|
|
48
84
|
declare const PipesAdminError: React.FC<PipesAdminErrorProps>;
|
|
49
85
|
|
|
50
|
-
export { PipesAdmin, PipesAdminError, type PipesAdminErrorProps, PipesAdminLoading, type PipesAdminLoadingProps, type PipesAdminProps, useManageableIntegrations };
|
|
86
|
+
export { PipesAdmin, PipesAdminError, type PipesAdminErrorProps, PipesAdminLoading, type PipesAdminLoadingProps, type PipesAdminProps, PipesAdminSections, type PipesAdminSectionsProps, useManageableIntegrations, useOrganizationOwnedIntegrations };
|