@eventcatalog/core 3.29.2 → 3.30.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/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +3 -3
- package/dist/{chunk-36IA4UE4.js → chunk-6UG4JMUV.js} +1 -1
- package/dist/{chunk-MEJOYC5Z.js → chunk-ATRBVTJ6.js} +1 -1
- package/dist/{chunk-VEUNSJ6Z.js → chunk-MVZKHUX2.js} +1 -1
- package/dist/{chunk-DB4IQ3GB.js → chunk-RRBDF4MM.js} +1 -1
- package/dist/{chunk-EGQGCB2B.js → chunk-Z26P4PCB.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +1 -1
- package/dist/eventcatalog.js +5 -5
- 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/eventcatalog/astro.config.mjs +1 -1
- package/eventcatalog/public/logo.png +0 -0
- package/eventcatalog/src/components/CopyAsMarkdown.tsx +2 -2
- package/eventcatalog/src/components/EnvironmentDropdown.tsx +33 -21
- package/eventcatalog/src/components/FieldsExplorer/FieldFilters.tsx +3 -53
- package/eventcatalog/src/components/FieldsExplorer/FieldsExplorer.tsx +144 -91
- package/eventcatalog/src/components/FieldsExplorer/FieldsTable.tsx +112 -109
- package/eventcatalog/src/components/Header.astro +9 -19
- package/eventcatalog/src/components/MDX/Accordion/Accordion.tsx +12 -14
- package/eventcatalog/src/components/MDX/Accordion/AccordionGroup.astro +11 -3
- package/eventcatalog/src/components/MDX/ResourceRef/ResourceRef.astro +15 -5
- package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +164 -53
- package/eventcatalog/src/components/SchemaExplorer/DiffViewer.tsx +1 -1
- package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +4 -4
- package/eventcatalog/src/components/SchemaExplorer/Pagination.tsx +12 -10
- package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +48 -77
- package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +238 -169
- package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +189 -230
- package/eventcatalog/src/components/SchemaExplorer/SchemaListItem.tsx +39 -36
- package/eventcatalog/src/components/Search/Search.astro +1 -1
- package/eventcatalog/src/components/Seo.astro +1 -1
- package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +3 -3
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +229 -256
- package/eventcatalog/src/components/Tables/Discover/DiscoverTable.tsx +78 -59
- package/eventcatalog/src/components/Tables/Discover/columns.tsx +130 -197
- package/eventcatalog/src/components/Tables/Table.tsx +21 -18
- package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +79 -131
- package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +104 -175
- package/eventcatalog/src/enterprise/auth/error.astro +1 -1
- package/eventcatalog/src/enterprise/auth/login.astro +1 -1
- package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/index.tsx +95 -93
- package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +174 -136
- package/eventcatalog/src/enterprise/fields/pages/fields.astro +10 -8
- package/eventcatalog/src/enterprise/integrations/eventcatalog-features.ts +0 -8
- package/eventcatalog/src/layouts/DirectoryLayout.astro +17 -88
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +528 -146
- package/eventcatalog/src/layouts/VisualiserLayout.astro +7 -2
- package/eventcatalog/src/pages/_index.astro +5 -3
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -3
- package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +223 -73
- package/eventcatalog/src/pages/discover/[type]/index.astro +22 -141
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +129 -29
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +129 -29
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +6 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +2 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +21 -18
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +33 -32
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +5 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +2 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +4 -6
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +11 -4
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +11 -4
- package/eventcatalog/src/pages/schemas/explorer/index.astro +10 -8
- package/eventcatalog/src/pages/studio.astro +1 -1
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +2 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +2 -2
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +2 -7
- package/eventcatalog/src/styles/theme.css +68 -12
- package/eventcatalog/src/types/react-syntax-highlighter.d.ts +13 -0
- package/package.json +1 -1
- package/eventcatalog/public/logo.svg +0 -14
- package/eventcatalog/src/enterprise/plans/index.astro +0 -319
|
@@ -10,88 +10,91 @@ interface SchemaListItemProps {
|
|
|
10
10
|
itemRef?: React.Ref<HTMLButtonElement>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
// Derive a namespace from available data
|
|
14
13
|
function getNamespace(message: SchemaItem): string | null {
|
|
15
14
|
const producers = message.data.producers || [];
|
|
16
15
|
const firstProducer = producers[0];
|
|
17
16
|
|
|
18
17
|
if (firstProducer) {
|
|
19
18
|
const serviceName = extractServiceName(firstProducer.id);
|
|
20
|
-
return
|
|
19
|
+
return serviceName;
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
// For services, use the service ID + spec type
|
|
24
22
|
if (message.collection === 'services' && message.specType) {
|
|
25
|
-
return `${message.specType}`;
|
|
23
|
+
return `${message.specType} specification`;
|
|
26
24
|
}
|
|
27
25
|
|
|
28
|
-
// For data products
|
|
29
26
|
if (message.collection === 'data-products' && message.dataProductId) {
|
|
30
|
-
return
|
|
27
|
+
return extractServiceName(message.dataProductId);
|
|
31
28
|
}
|
|
32
29
|
|
|
33
30
|
return null;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
33
|
export default function SchemaListItem({ message, isSelected, versions, onClick, itemRef }: SchemaListItemProps) {
|
|
37
|
-
const hasMultipleVersions = versions.length > 1;
|
|
38
34
|
const ext = message.schemaExtension?.toLowerCase() || '';
|
|
39
35
|
const iconSpec = ICON_SPECS[ext];
|
|
40
36
|
const { label: formatLabel, color: formatColor } = getFormatBadge(ext);
|
|
41
37
|
const namespace = getNamespace(message);
|
|
38
|
+
const summary = message.data.summary || `Browse the ${message.data.name} schema.`;
|
|
39
|
+
const versionLabel = `v${message.data.version}`;
|
|
42
40
|
|
|
43
41
|
return (
|
|
44
42
|
<button
|
|
45
43
|
ref={itemRef}
|
|
46
44
|
onClick={onClick}
|
|
47
|
-
className={`w-full
|
|
45
|
+
className={`group w-full rounded-lg border px-2.5 py-2 text-left transition-all duration-150 ${
|
|
48
46
|
isSelected
|
|
49
|
-
? '
|
|
50
|
-
: '
|
|
47
|
+
? 'border-[rgb(var(--ec-accent)/0.55)] bg-[rgb(var(--ec-accent)/0.1)] shadow-[0_0_0_1px_rgb(var(--ec-accent)/0.3),0_18px_40px_rgb(var(--ec-accent)/0.12)]'
|
|
48
|
+
: 'border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-dropdown-bg)/0.66)] hover:border-[rgb(var(--ec-page-text-muted)/0.3)] hover:bg-[rgb(var(--ec-content-hover)/0.5)]'
|
|
51
49
|
}`}
|
|
52
50
|
>
|
|
53
|
-
<div className="flex items-
|
|
54
|
-
|
|
55
|
-
<div className="flex-shrink-0 flex items-center justify-center w-7 h-7 rounded-md bg-[rgb(var(--ec-content-hover))] border border-[rgb(var(--ec-page-border)/0.5)]">
|
|
51
|
+
<div className="flex items-start justify-between gap-2">
|
|
52
|
+
<div className="mt-0.5 flex h-4.5 w-4.5 flex-shrink-0 items-center justify-center rounded-sm border border-[rgb(var(--ec-page-border)/0.55)] bg-[rgb(var(--ec-content-hover))]">
|
|
56
53
|
{iconSpec ? (
|
|
57
|
-
<img src={buildUrl(`/icons/${iconSpec}.svg`, true)} alt={`${ext} icon`} className="h-
|
|
54
|
+
<img src={buildUrl(`/icons/${iconSpec}.svg`, true)} alt={`${ext} icon`} className="schema-icon h-2.5 w-2.5" />
|
|
58
55
|
) : (
|
|
59
|
-
<span className={`text-[
|
|
56
|
+
<span className={`font-mono text-[6px] font-bold uppercase ${formatColor}`}>{formatLabel}</span>
|
|
60
57
|
)}
|
|
61
58
|
</div>
|
|
62
59
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
<span className="text-[13px] font-medium text-[rgb(var(--ec-page-text))] truncate leading-tight">
|
|
60
|
+
<div className="min-w-0 flex-1">
|
|
61
|
+
<div className="flex items-start justify-between gap-2">
|
|
62
|
+
<h3 className="min-w-0 pr-1 text-[11px] font-semibold leading-4 text-[rgb(var(--ec-page-text))] break-words">
|
|
67
63
|
{message.data.name}
|
|
68
|
-
</
|
|
69
|
-
<span
|
|
70
|
-
|
|
64
|
+
</h3>
|
|
65
|
+
<span
|
|
66
|
+
className={`mt-0.5 flex-shrink-0 rounded-sm border px-1.5 py-0.5 font-mono text-[8px] font-semibold tabular-nums ${
|
|
67
|
+
isSelected
|
|
68
|
+
? 'border-[rgb(var(--ec-accent)/0.35)] bg-[rgb(var(--ec-accent)/0.15)] text-[rgb(var(--ec-page-text))]'
|
|
69
|
+
: 'border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-content-hover))] text-[rgb(var(--ec-page-text-muted))]'
|
|
70
|
+
}`}
|
|
71
|
+
>
|
|
72
|
+
{versionLabel}
|
|
71
73
|
</span>
|
|
72
74
|
</div>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<p className="mt-1.5 text-[10px] leading-4 text-[rgb(var(--ec-page-text-muted))] line-clamp-2">{summary}</p>
|
|
79
|
+
|
|
80
|
+
<div className="mt-1.5 flex items-end justify-between gap-2">
|
|
81
|
+
<div className="min-w-0">
|
|
82
|
+
<div className="flex flex-wrap items-center gap-x-1.5 gap-y-0.5 text-[9px] text-[rgb(var(--ec-page-text-muted))]">
|
|
83
|
+
<span className="font-medium text-[rgb(var(--ec-page-text-muted))]">
|
|
75
84
|
{getSchemaTypeLabel(message.schemaExtension)}
|
|
76
85
|
</span>
|
|
77
86
|
{namespace && (
|
|
78
87
|
<>
|
|
79
|
-
<span className="
|
|
80
|
-
<span className="
|
|
81
|
-
{namespace}
|
|
82
|
-
</span>
|
|
83
|
-
</>
|
|
84
|
-
)}
|
|
85
|
-
{hasMultipleVersions && (
|
|
86
|
-
<>
|
|
87
|
-
<span className="text-[rgb(var(--ec-page-text-muted))] opacity-40">·</span>
|
|
88
|
-
<span className="text-[11px] tabular-nums text-[rgb(var(--ec-page-text-muted))] opacity-70">
|
|
89
|
-
{versions.length}v
|
|
90
|
-
</span>
|
|
88
|
+
<span className="opacity-35">›</span>
|
|
89
|
+
<span className="truncate">{namespace}</span>
|
|
91
90
|
</>
|
|
92
91
|
)}
|
|
93
92
|
</div>
|
|
94
93
|
</div>
|
|
94
|
+
|
|
95
|
+
<span className="flex-shrink-0 text-[9px] font-medium tabular-nums text-[rgb(var(--ec-page-text-muted))]">
|
|
96
|
+
{versions.length}
|
|
97
|
+
</span>
|
|
95
98
|
</div>
|
|
96
99
|
</button>
|
|
97
100
|
);
|
|
@@ -11,7 +11,7 @@ import SearchModal from './SearchModal.tsx';
|
|
|
11
11
|
name="search"
|
|
12
12
|
placeholder="Search EventCatalog"
|
|
13
13
|
autocomplete="off"
|
|
14
|
-
class="block w-full rounded-md caret-transparent border-0 py-1.5 pr-14 pl-10! text-[rgb(var(--ec-header-text))] bg-[rgb(var(--ec-
|
|
14
|
+
class="block w-full rounded-md caret-transparent border-0 py-1.5 pr-14 pl-10! text-[rgb(var(--ec-header-text))] bg-[rgb(var(--ec-header-bg))] shadow-xs ring-1 ring-inset ring-[rgb(var(--ec-dropdown-border))] placeholder:text-[rgb(var(--ec-icon-color))] font-light sm:text-sm sm:leading-6"
|
|
15
15
|
/>
|
|
16
16
|
<MagnifyingGlassIcon className="absolute inset-y-0 left-0 h-9 w-8 flex items-center pl-4 text-[rgb(var(--ec-icon-color))]" />
|
|
17
17
|
<div class="absolute inset-y-0 right-0 flex py-1.5 pr-6">
|
|
@@ -25,7 +25,7 @@ if (typeof _image === 'string') {
|
|
|
25
25
|
<meta charset="UTF-8" />
|
|
26
26
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
27
27
|
<meta name="viewport" content="width=device-width" />
|
|
28
|
-
<link rel="icon" type="image/
|
|
28
|
+
<link rel="icon" type="image/png" href={buildUrl('/logo.png', true)} />
|
|
29
29
|
|
|
30
30
|
<SEO
|
|
31
31
|
title={title}
|
|
@@ -181,7 +181,7 @@ export default function SearchBar({ nodes, onSelectResult, onSearchChange }: Pro
|
|
|
181
181
|
return (
|
|
182
182
|
<>
|
|
183
183
|
{/* Search Input */}
|
|
184
|
-
<div className="px-
|
|
184
|
+
<div className="px-4 py-3 bg-[rgb(var(--ec-content-bg))] border-b border-[rgb(var(--ec-content-border))]">
|
|
185
185
|
<div className="flex gap-2">
|
|
186
186
|
<div className="relative flex-1">
|
|
187
187
|
<Search className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[rgb(var(--ec-input-placeholder))]" />
|
|
@@ -190,7 +190,7 @@ export default function SearchBar({ nodes, onSelectResult, onSearchChange }: Pro
|
|
|
190
190
|
placeholder="Search resources..."
|
|
191
191
|
value={searchQuery}
|
|
192
192
|
onChange={(e) => handleSearchChange(e.target.value)}
|
|
193
|
-
className="w-full pl-9! pr-8! py-2! text-sm! bg-[rgb(var(--ec-input-bg))]! border! border-[rgb(var(--ec-input-border))]! rounded-
|
|
193
|
+
className="w-full pl-9! pr-8! py-2.5! text-sm! bg-[rgb(var(--ec-input-bg))]! border! border-[rgb(var(--ec-input-border))]! rounded-xl! focus:outline-hidden! focus:ring-2! focus:ring-[rgb(var(--ec-accent))]! focus:border-transparent! text-[rgb(var(--ec-input-text))]! placeholder:text-[rgb(var(--ec-input-placeholder))]!"
|
|
194
194
|
/>
|
|
195
195
|
{searchQuery && (
|
|
196
196
|
<button
|
|
@@ -207,7 +207,7 @@ export default function SearchBar({ nodes, onSelectResult, onSearchChange }: Pro
|
|
|
207
207
|
<button
|
|
208
208
|
onClick={() => setShowFilterDropdown(!showFilterDropdown)}
|
|
209
209
|
className={cn(
|
|
210
|
-
'flex items-center justify-center w-10 h-10 rounded-
|
|
210
|
+
'flex items-center justify-center w-10 h-10 rounded-xl border transition-colors',
|
|
211
211
|
searchFilters.size > 0
|
|
212
212
|
? 'bg-[rgb(var(--ec-accent)/0.1)] border-[rgb(var(--ec-accent)/0.3)] text-[rgb(var(--ec-accent))]'
|
|
213
213
|
: 'bg-[rgb(var(--ec-input-bg))] border-[rgb(var(--ec-input-border))] text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-icon-hover))] hover:bg-[rgb(var(--ec-content-hover))]'
|