@eventcatalog/core 5.0.0-beta.27 → 5.0.0-beta.29
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/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +57 -3
- package/dist/analytics/log-build.d.cts +2 -2
- package/dist/analytics/log-build.d.ts +2 -2
- package/dist/analytics/log-build.js +5 -4
- package/dist/analytics/studio-usage.cjs +90 -0
- package/dist/analytics/studio-usage.d.cts +5 -0
- package/dist/analytics/studio-usage.d.ts +5 -0
- package/dist/analytics/studio-usage.js +10 -0
- package/dist/{chunk-ILPH363P.js → chunk-34VU2X7H.js} +1 -1
- package/dist/{chunk-I6CBMGUM.js → chunk-3RDV4HXA.js} +1 -1
- package/dist/{chunk-P5IFIKG6.js → chunk-4IREUUHE.js} +12 -4
- package/dist/{chunk-AWOO63ME.js → chunk-AD7CL772.js} +11 -4
- package/dist/{chunk-EFBDR7JJ.js → chunk-B4OOUG5I.js} +1 -1
- package/dist/chunk-CA6WCQ2T.js +54 -0
- package/dist/{chunk-QJ7KKN2D.js → chunk-OX6TSVHY.js} +1 -1
- package/dist/{chunk-YGUOLT7F.js → chunk-ZK7Q7XDV.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +246 -186
- package/dist/eventcatalog.js +12 -10
- package/dist/federation/federate.js +3 -3
- package/dist/federation/source-provider.js +2 -2
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/dist/utils/license-status.cjs +11 -4
- package/dist/utils/license-status.d.cts +3 -2
- package/dist/utils/license-status.d.ts +3 -2
- package/dist/utils/license-status.js +1 -1
- package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +19 -2
- package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +53 -48
- package/eventcatalog/src/components/Settings/GeneralSettingsForm.tsx +183 -178
- package/eventcatalog/src/components/Settings/LicenseSettings.tsx +140 -31
- package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +40 -35
- package/eventcatalog/src/components/Settings/LogoUpload.tsx +1 -1
- package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +9 -8
- package/eventcatalog/src/components/Settings/Row.tsx +7 -4
- package/eventcatalog/src/components/Settings/SettingsShared.tsx +3 -3
- package/eventcatalog/src/components/TrialBadge.astro +20 -9
- package/eventcatalog/src/layouts/SettingsLayout.astro +2 -2
- package/eventcatalog/src/pages/settings/license.astro +9 -1
- package/eventcatalog/src/utils/license.ts +1 -1
- package/eventcatalog/src/utils/trial.ts +13 -0
- package/package.json +3 -3
- package/dist/{chunk-A2RZR3U4.js → chunk-6K7XZAYI.js} +3 -3
package/dist/eventcatalog.js
CHANGED
|
@@ -7,27 +7,28 @@ import {
|
|
|
7
7
|
} from "./chunk-S5GWAUG5.js";
|
|
8
8
|
import {
|
|
9
9
|
log_build_default
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4IREUUHE.js";
|
|
11
11
|
import {
|
|
12
12
|
getLicenseStatus,
|
|
13
13
|
printLicenseStatus
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-AD7CL772.js";
|
|
15
15
|
import "./chunk-ZAZHAVKB.js";
|
|
16
|
+
import "./chunk-CA6WCQ2T.js";
|
|
16
17
|
import {
|
|
17
18
|
FederationConflictError,
|
|
18
19
|
FederationDiagnosticError,
|
|
19
20
|
federateCatalog
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-OX6TSVHY.js";
|
|
21
22
|
import "./chunk-WRNH5C3U.js";
|
|
22
23
|
import "./chunk-5EPNFDT5.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-6K7XZAYI.js";
|
|
25
|
+
import "./chunk-352FGP6W.js";
|
|
24
26
|
import "./chunk-R7Z5ALYI.js";
|
|
25
27
|
import {
|
|
26
28
|
getFederationDiagnosticCounts,
|
|
27
29
|
getVisibleFederationDiagnostics
|
|
28
30
|
} from "./chunk-JJPB6EOZ.js";
|
|
29
31
|
import "./chunk-SDZQJTJW.js";
|
|
30
|
-
import "./chunk-352FGP6W.js";
|
|
31
32
|
import {
|
|
32
33
|
getProjectOutDir,
|
|
33
34
|
isAuthEnabled,
|
|
@@ -36,10 +37,10 @@ import {
|
|
|
36
37
|
} from "./chunk-NKNOXQ62.js";
|
|
37
38
|
import {
|
|
38
39
|
generate
|
|
39
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-3RDV4HXA.js";
|
|
40
41
|
import {
|
|
41
42
|
logger
|
|
42
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-34VU2X7H.js";
|
|
43
44
|
import {
|
|
44
45
|
resolve_catalog_dependencies_default
|
|
45
46
|
} from "./chunk-PD7KTSYN.js";
|
|
@@ -53,7 +54,7 @@ import {
|
|
|
53
54
|
import {
|
|
54
55
|
watch
|
|
55
56
|
} from "./chunk-U63GDPPY.js";
|
|
56
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-B4OOUG5I.js";
|
|
57
58
|
import "./chunk-CPW6G62V.js";
|
|
58
59
|
import {
|
|
59
60
|
getAstroConfigPath
|
|
@@ -70,7 +71,7 @@ import {
|
|
|
70
71
|
} from "./chunk-LFQJXLHG.js";
|
|
71
72
|
import {
|
|
72
73
|
VERSION
|
|
73
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-ZK7Q7XDV.js";
|
|
74
75
|
import {
|
|
75
76
|
getEventCatalogConfigFile,
|
|
76
77
|
verifyRequiredFieldsAreInCatalogConfigFile
|
|
@@ -1093,7 +1094,8 @@ program.command("start").description("Serves the contents of your eventcatalog b
|
|
|
1093
1094
|
}
|
|
1094
1095
|
const isServerOutput = await isOutputServer();
|
|
1095
1096
|
if (isServerOutput) {
|
|
1096
|
-
await getLicenseStatus(dir);
|
|
1097
|
+
const license = await getLicenseStatus(dir);
|
|
1098
|
+
void log_build_default(dir, { command: "start", license });
|
|
1097
1099
|
await startServerCatalog();
|
|
1098
1100
|
} else {
|
|
1099
1101
|
await previewCatalog({ command });
|
|
@@ -2,14 +2,14 @@ import {
|
|
|
2
2
|
FederationConflictError,
|
|
3
3
|
FederationDiagnosticError,
|
|
4
4
|
federateCatalog
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-OX6TSVHY.js";
|
|
6
6
|
import "../chunk-WRNH5C3U.js";
|
|
7
7
|
import "../chunk-5EPNFDT5.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-6K7XZAYI.js";
|
|
9
|
+
import "../chunk-352FGP6W.js";
|
|
9
10
|
import "../chunk-R7Z5ALYI.js";
|
|
10
11
|
import "../chunk-JJPB6EOZ.js";
|
|
11
12
|
import "../chunk-SDZQJTJW.js";
|
|
12
|
-
import "../chunk-352FGP6W.js";
|
|
13
13
|
import "../chunk-4G7FSRPN.js";
|
|
14
14
|
export {
|
|
15
15
|
FederationConflictError,
|
package/dist/generate.cjs
CHANGED
|
@@ -105,7 +105,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
|
|
|
105
105
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
106
106
|
|
|
107
107
|
// package.json
|
|
108
|
-
var version = "5.0.0-beta.
|
|
108
|
+
var version = "5.0.0-beta.29";
|
|
109
109
|
|
|
110
110
|
// src/constants.ts
|
|
111
111
|
var VERSION = version;
|
package/dist/generate.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generate
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-3RDV4HXA.js";
|
|
4
|
+
import "./chunk-34VU2X7H.js";
|
|
5
|
+
import "./chunk-ZK7Q7XDV.js";
|
|
6
6
|
import "./chunk-4G7FSRPN.js";
|
|
7
7
|
export {
|
|
8
8
|
generate
|
package/dist/utils/cli-logger.js
CHANGED
|
@@ -44,6 +44,9 @@ var import_license2 = require("@eventcatalog/license");
|
|
|
44
44
|
var TRIAL_LENGTH_DAYS = 60;
|
|
45
45
|
var LICENSE_FAQ_URL = "https://www.eventcatalog.dev/license-faq";
|
|
46
46
|
var LICENSE_RENEW_URL = "https://eventcatalog.cloud";
|
|
47
|
+
var BUY_BUSINESS_URL = "https://www.eventcatalog.dev/buy?source=cli";
|
|
48
|
+
var PRICING_URL = "https://www.eventcatalog.dev/pricing";
|
|
49
|
+
var FREE_USE_NOTE = "Under $10M revenue and $10M raised, an individual or an open-source project? You qualify for Free Use; get a free key at eventcatalog.cloud.";
|
|
47
50
|
var DAY_IN_MS = 24 * 60 * 60 * 1e3;
|
|
48
51
|
var getTrialStatus = (tsd, now = Date.now()) => {
|
|
49
52
|
if (typeof tsd !== "number" || !Number.isFinite(tsd) || tsd <= 0) return;
|
|
@@ -162,15 +165,17 @@ var formatDate = (date) => date.toLocaleDateString(void 0, { dateStyle: "medium"
|
|
|
162
165
|
var formatDays = (days) => `${days} ${days === 1 ? "day" : "days"}`;
|
|
163
166
|
var PLAIN = { bold: (text) => text, dim: (text) => text, link: (text) => text };
|
|
164
167
|
var COLOURS = { bold: import_picocolors.default.bold, dim: import_picocolors.default.dim, link: (text) => import_picocolors.default.cyan(text) };
|
|
165
|
-
var render = ({ headline, rows, links }, colours) => {
|
|
168
|
+
var render = ({ headline, rows, links, note }, colours) => {
|
|
166
169
|
const width = Math.max(0, ...[...rows, ...links].map(([label]) => label.length));
|
|
167
170
|
const row = ([label, value]) => `${colours.dim(label.padEnd(width))} ${value}`;
|
|
168
171
|
return [
|
|
169
172
|
colours.bold(headline),
|
|
170
173
|
...rows.length ? ["", ...rows.map(row)] : [],
|
|
171
|
-
...links.length ? ["", ...links.map(([label, url]) => row([label, colours.link(url)]))] : []
|
|
174
|
+
...links.length ? ["", ...links.map(([label, url]) => row([label, colours.link(url)]))] : [],
|
|
175
|
+
...note?.length ? ["", ...note.map(colours.dim)] : []
|
|
172
176
|
].join("\n");
|
|
173
177
|
};
|
|
178
|
+
var FREE_USE_LINES = FREE_USE_NOTE.split(/(?<=\?) /);
|
|
174
179
|
var message = (content) => ({
|
|
175
180
|
...content,
|
|
176
181
|
text: render(content, PLAIN)
|
|
@@ -217,7 +222,8 @@ var getLicenseStatusMessage = (license, tsd, now = Date.now()) => {
|
|
|
217
222
|
color: trial.ended ? "yellow" : "green",
|
|
218
223
|
headline: trial.ended ? "Your EventCatalog trial has ended" : `You're on the ${TRIAL_LENGTH_DAYS}-day EventCatalog trial`,
|
|
219
224
|
rows: trialRows,
|
|
220
|
-
links: trial.ended ? [["Get a license", LICENSE_RENEW_URL], licensing] : [licensing]
|
|
225
|
+
links: trial.ended ? [["Get a license", LICENSE_RENEW_URL], ["Buy Business", BUY_BUSINESS_URL], licensing] : [["Buy a license", PRICING_URL], licensing],
|
|
226
|
+
note: trial.ended ? FREE_USE_LINES : void 0
|
|
221
227
|
});
|
|
222
228
|
}
|
|
223
229
|
if (license.state === "expired") {
|
|
@@ -231,7 +237,8 @@ var getLicenseStatusMessage = (license, tsd, now = Date.now()) => {
|
|
|
231
237
|
title: "EventCatalog license",
|
|
232
238
|
color: "yellow",
|
|
233
239
|
headline: "Your commercial license has expired",
|
|
234
|
-
|
|
240
|
+
// A catalog has a license or is on the trial: an expired license is renewed, not replaced by the trial
|
|
241
|
+
rows: [...licensedTo, ...expiredOn],
|
|
235
242
|
links: [renew, licensing]
|
|
236
243
|
});
|
|
237
244
|
}
|
|
@@ -17,8 +17,8 @@ declare const getLicenseAnalytics: (license?: LicenseStatus, tsd?: unknown) => {
|
|
|
17
17
|
};
|
|
18
18
|
type Row = [label: string, value: string];
|
|
19
19
|
/**
|
|
20
|
-
* What the license box says: a headline, the facts as aligned rows ("Licensed to acme"),
|
|
21
|
-
* rows, so it can be read at a glance. `text` is the box's content without colours.
|
|
20
|
+
* What the license box says: a headline, the facts as aligned rows ("Licensed to acme"), links on their own
|
|
21
|
+
* rows, and an optional note at the end, so it can be read at a glance. `text` is the box's content without colours.
|
|
22
22
|
*/
|
|
23
23
|
type LicenseStatusMessage = {
|
|
24
24
|
title: string;
|
|
@@ -26,6 +26,7 @@ type LicenseStatusMessage = {
|
|
|
26
26
|
headline: string;
|
|
27
27
|
rows: Row[];
|
|
28
28
|
links: Row[];
|
|
29
|
+
note?: string[];
|
|
29
30
|
text: string;
|
|
30
31
|
};
|
|
31
32
|
/**
|
|
@@ -17,8 +17,8 @@ declare const getLicenseAnalytics: (license?: LicenseStatus, tsd?: unknown) => {
|
|
|
17
17
|
};
|
|
18
18
|
type Row = [label: string, value: string];
|
|
19
19
|
/**
|
|
20
|
-
* What the license box says: a headline, the facts as aligned rows ("Licensed to acme"),
|
|
21
|
-
* rows, so it can be read at a glance. `text` is the box's content without colours.
|
|
20
|
+
* What the license box says: a headline, the facts as aligned rows ("Licensed to acme"), links on their own
|
|
21
|
+
* rows, and an optional note at the end, so it can be read at a glance. `text` is the box's content without colours.
|
|
22
22
|
*/
|
|
23
23
|
type LicenseStatusMessage = {
|
|
24
24
|
title: string;
|
|
@@ -26,6 +26,7 @@ type LicenseStatusMessage = {
|
|
|
26
26
|
headline: string;
|
|
27
27
|
rows: Row[];
|
|
28
28
|
links: Row[];
|
|
29
|
+
note?: string[];
|
|
29
30
|
text: string;
|
|
30
31
|
};
|
|
31
32
|
/**
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* CSS ships in the page head and survives ClientRouter navigations (see NodeGraph.astro).
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import { useCallback, useState, lazy, Suspense } from 'react';
|
|
15
|
+
import { useCallback, useEffect, useState, lazy, Suspense } from 'react';
|
|
16
|
+
import { createPortal } from 'react-dom';
|
|
16
17
|
import type { Node, Edge } from '@xyflow/react';
|
|
17
18
|
import type { FlowGroupBy, OpenInStudioRequest } from '@eventcatalog/visualiser';
|
|
18
19
|
import { buildUrl } from '@utils/url-builder';
|
|
@@ -27,6 +28,22 @@ const NodeGraph = lazy(() =>
|
|
|
27
28
|
import('@eventcatalog/visualiser').then((module) => ({ default: module.NodeGraph }))
|
|
28
29
|
) as React.LazyExoticComponent<React.ComponentType<AstroNodeGraphProps & Record<string, unknown>>>;
|
|
29
30
|
|
|
31
|
+
/**
|
|
32
|
+
* "Loading graph..." in the box the graph is drawn into, while the visualiser loads. Not where this island sits: the
|
|
33
|
+
* graph is portalled from there, and on the homepage that's beside the page's content (top right).
|
|
34
|
+
*/
|
|
35
|
+
const LoadingGraph = ({ portalId }: { portalId: string }) => {
|
|
36
|
+
const [container, setContainer] = useState<HTMLElement | null>(null);
|
|
37
|
+
useEffect(() => setContainer(document.getElementById(portalId)), [portalId]);
|
|
38
|
+
if (!container) return null;
|
|
39
|
+
return createPortal(
|
|
40
|
+
<div className="flex h-full min-h-[8rem] items-center justify-center text-sm text-[rgb(var(--ec-page-text-muted))]">
|
|
41
|
+
Loading graph...
|
|
42
|
+
</div>,
|
|
43
|
+
container
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
|
|
30
47
|
interface AstroNodeGraphProps {
|
|
31
48
|
id: string;
|
|
32
49
|
nodes: Node[];
|
|
@@ -141,7 +158,7 @@ const AstroNodeGraph = ({ isDevMode = false, resourceKey, studioApiUrl, ...other
|
|
|
141
158
|
);
|
|
142
159
|
|
|
143
160
|
return (
|
|
144
|
-
<Suspense fallback={<
|
|
161
|
+
<Suspense fallback={<LoadingGraph portalId={otherProps.portalId || `${otherProps.id}-portal`} />}>
|
|
145
162
|
<NodeGraph
|
|
146
163
|
{...otherProps}
|
|
147
164
|
resourceKey={resourceKey}
|
|
@@ -64,53 +64,58 @@ export const AssistantSettingsForm = ({ canEdit, initial, chatAvailable, inSSR,
|
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
return (
|
|
67
|
-
|
|
67
|
+
<>
|
|
68
68
|
<Toaster richColors closeButton position="bottom-right" theme="system" />
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
</div>
|
|
73
|
-
)}
|
|
74
|
-
|
|
75
|
-
<Row
|
|
76
|
-
title="Assistant Agent"
|
|
77
|
-
description="Assistant agent that answers questions about your architecture directly in your catalog."
|
|
78
|
-
canEdit={canEdit}
|
|
79
|
-
dirty={dirty}
|
|
80
|
-
saving={saving}
|
|
81
|
-
onSave={save}
|
|
69
|
+
<form
|
|
70
|
+
onSubmit={(e) => e.preventDefault()}
|
|
71
|
+
className="divide-y divide-[rgb(var(--ec-page-border))] border-t border-[rgb(var(--ec-page-border))]"
|
|
82
72
|
>
|
|
83
|
-
|
|
84
|
-
<
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
73
|
+
{!canEdit && (
|
|
74
|
+
<div className="pb-6">
|
|
75
|
+
<ReadOnlyBanner />
|
|
76
|
+
</div>
|
|
77
|
+
)}
|
|
78
|
+
|
|
79
|
+
<Row
|
|
80
|
+
title="Assistant Agent"
|
|
81
|
+
description="Assistant agent that answers questions about your architecture directly in your catalog."
|
|
82
|
+
canEdit={canEdit}
|
|
83
|
+
dirty={dirty}
|
|
84
|
+
saving={saving}
|
|
85
|
+
onSave={save}
|
|
86
|
+
>
|
|
87
|
+
<div className="space-y-3">
|
|
88
|
+
<ToggleRow
|
|
89
|
+
icon={<MessageSquare className="h-4 w-4" aria-hidden />}
|
|
90
|
+
label={chatEnabled ? 'Enabled' : 'Disabled'}
|
|
91
|
+
hint={
|
|
92
|
+
chatEnabled
|
|
93
|
+
? 'Event Catalog Assistant is visible in this catalog.'
|
|
94
|
+
: 'Event Catalog Assistant is hidden from this catalog.'
|
|
95
|
+
}
|
|
96
|
+
checked={chatEnabled}
|
|
97
|
+
disabled={!canEdit}
|
|
98
|
+
onChange={setChatEnabled}
|
|
99
|
+
/>
|
|
100
|
+
{chatEnabled &&
|
|
101
|
+
(chatAvailable ? (
|
|
102
|
+
<ConfigurationRequired />
|
|
103
|
+
) : !inSSR ? (
|
|
104
|
+
<AssistantNeedsSSR />
|
|
105
|
+
) : !hasChatConfigFile ? (
|
|
106
|
+
<AssistantNeedsConfigFile />
|
|
107
|
+
) : null)}
|
|
108
|
+
</div>
|
|
109
|
+
</Row>
|
|
110
|
+
</form>
|
|
111
|
+
</>
|
|
107
112
|
);
|
|
108
113
|
};
|
|
109
114
|
|
|
110
115
|
const ConfigurationRequired = () => (
|
|
111
|
-
<div className="rounded-lg border border-[rgb(var(--ec-
|
|
116
|
+
<div className="rounded-lg border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-text)/0.03)] px-4 py-3">
|
|
112
117
|
<div className="flex items-start gap-3">
|
|
113
|
-
<span className="flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-md border border-[rgb(var(--ec-
|
|
118
|
+
<span className="flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-text)/0.05)] text-[rgb(var(--ec-page-text))]">
|
|
114
119
|
<Wrench className="h-3.5 w-3.5" aria-hidden />
|
|
115
120
|
</span>
|
|
116
121
|
<div className="flex-1 min-w-0">
|
|
@@ -125,7 +130,7 @@ const ConfigurationRequired = () => (
|
|
|
125
130
|
target="_blank"
|
|
126
131
|
rel="noreferrer"
|
|
127
132
|
className={cn(
|
|
128
|
-
'mt-2 inline-flex items-center gap-1 text-[12px] font-medium text-[rgb(var(--ec-
|
|
133
|
+
'mt-2 inline-flex items-center gap-1 text-[12px] font-medium text-[rgb(var(--ec-page-text))] hover:underline'
|
|
129
134
|
)}
|
|
130
135
|
>
|
|
131
136
|
Configure the Agent
|
|
@@ -137,15 +142,15 @@ const ConfigurationRequired = () => (
|
|
|
137
142
|
);
|
|
138
143
|
|
|
139
144
|
const AssistantNeedsSSR = () => (
|
|
140
|
-
<div className="overflow-hidden rounded-lg border border-[rgb(var(--ec-
|
|
145
|
+
<div className="overflow-hidden rounded-lg border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-text)/0.03)]">
|
|
141
146
|
<div className="flex items-start gap-3 px-4 py-3.5">
|
|
142
|
-
<span className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md border border-[rgb(var(--ec-
|
|
147
|
+
<span className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-text)/0.05)] text-[rgb(var(--ec-page-text))]">
|
|
143
148
|
<ServerCog className="h-4 w-4" aria-hidden />
|
|
144
149
|
</span>
|
|
145
150
|
<div className="flex-1 min-w-0">
|
|
146
151
|
<div className="flex items-center gap-2">
|
|
147
152
|
<p className="text-[13px] font-semibold text-[rgb(var(--ec-page-text))]">Server output mode required</p>
|
|
148
|
-
<span className="inline-flex items-center gap-1 rounded-full border border-[rgb(var(--ec-
|
|
153
|
+
<span className="inline-flex items-center gap-1 rounded-full border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-text)/0.05)] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[rgb(var(--ec-page-text))]">
|
|
149
154
|
SSR
|
|
150
155
|
</span>
|
|
151
156
|
</div>
|
|
@@ -157,7 +162,7 @@ const AssistantNeedsSSR = () => (
|
|
|
157
162
|
href={ASSISTANT_CONFIGURATION_DOCS_URL}
|
|
158
163
|
target="_blank"
|
|
159
164
|
rel="noreferrer"
|
|
160
|
-
className="inline-flex items-center gap-1 rounded-md bg-[rgb(var(--ec-
|
|
165
|
+
className="inline-flex items-center gap-1 rounded-md bg-[rgb(var(--ec-page-text))] px-3 py-1.5 text-[12px] font-semibold text-[rgb(var(--ec-page-bg))] shadow-sm transition-colors hover:opacity-85"
|
|
161
166
|
>
|
|
162
167
|
Configuration guide
|
|
163
168
|
<ExternalLink className="h-3 w-3" aria-hidden />
|
|
@@ -178,9 +183,9 @@ const AssistantNeedsSSR = () => (
|
|
|
178
183
|
);
|
|
179
184
|
|
|
180
185
|
const AssistantNeedsConfigFile = () => (
|
|
181
|
-
<div className="overflow-hidden rounded-lg border border-[rgb(var(--ec-
|
|
186
|
+
<div className="overflow-hidden rounded-lg border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-text)/0.03)]">
|
|
182
187
|
<div className="flex items-start gap-3 px-4 py-3.5">
|
|
183
|
-
<span className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md border border-[rgb(var(--ec-
|
|
188
|
+
<span className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-text)/0.05)] text-[rgb(var(--ec-page-text))]">
|
|
184
189
|
<Wrench className="h-4 w-4" aria-hidden />
|
|
185
190
|
</span>
|
|
186
191
|
<div className="flex-1 min-w-0">
|
|
@@ -195,7 +200,7 @@ const AssistantNeedsConfigFile = () => (
|
|
|
195
200
|
href={ASSISTANT_CONFIGURATION_DOCS_URL}
|
|
196
201
|
target="_blank"
|
|
197
202
|
rel="noreferrer"
|
|
198
|
-
className="inline-flex items-center gap-1 rounded-md bg-[rgb(var(--ec-
|
|
203
|
+
className="inline-flex items-center gap-1 rounded-md bg-[rgb(var(--ec-page-text))] px-3 py-1.5 text-[12px] font-semibold text-[rgb(var(--ec-page-bg))] shadow-sm transition-colors hover:opacity-85"
|
|
199
204
|
>
|
|
200
205
|
Configuration guide
|
|
201
206
|
<ExternalLink className="h-3 w-3" aria-hidden />
|