@eventcatalog/core 2.65.0 → 3.0.0-beta.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/README.md +1 -26
- 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-NK6OYMRD.js → chunk-JB4YT5JY.js} +1 -1
- package/dist/{chunk-BMDTX5IN.js → chunk-TQ4HZREX.js} +1 -1
- package/dist/{chunk-IJRFYF4B.js → chunk-X4W4YC3U.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +1 -21
- package/dist/eventcatalog.config.d.cts +10 -0
- package/dist/eventcatalog.config.d.ts +10 -0
- package/dist/eventcatalog.js +3 -20
- package/eventcatalog/src/components/CopyAsMarkdown.tsx +19 -1
- package/eventcatalog/src/components/FavoriteButton.tsx +54 -0
- package/eventcatalog/src/components/Grids/DomainGrid.tsx +386 -362
- package/eventcatalog/src/components/Grids/MessageGrid.tsx +166 -518
- package/eventcatalog/src/components/Header.astro +48 -23
- package/eventcatalog/src/components/Lists/VersionList.astro +2 -2
- package/eventcatalog/src/components/MDX/Design/Design.astro +4 -1
- package/eventcatalog/src/components/MDX/Flow/Flow.astro +2 -1
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +3 -3
- package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +8 -2
- package/eventcatalog/src/components/SchemaExplorer/SchemaPageViewer.tsx +37 -0
- package/eventcatalog/src/components/Search/Search.astro +48 -28
- package/eventcatalog/src/components/Search/SearchModal.tsx +393 -702
- package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +298 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/container.ts +66 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/domain.ts +101 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/flow.ts +29 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/message.ts +84 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/service.ts +147 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/builders/shared.ts +146 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +1073 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/sidebar-builder.ts +365 -0
- package/eventcatalog/src/components/SideNav/NestedSideBar/storage.ts +90 -0
- package/eventcatalog/src/components/SideNav/SideNav.astro +18 -28
- package/eventcatalog/src/content.config.ts +2 -0
- package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +10 -4
- package/eventcatalog/src/enterprise/eventcatalog-chat/pages/chat/index.astro +3 -3
- package/eventcatalog/src/layouts/DirectoryLayout.astro +2 -2
- package/eventcatalog/src/layouts/DiscoverLayout.astro +3 -3
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +85 -63
- package/eventcatalog/src/layouts/VisualiserLayout.astro +3 -3
- package/eventcatalog/src/pages/_index.astro +530 -110
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +64 -0
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +29 -0
- package/eventcatalog/src/pages/directory/[type]/_index.data.ts +4 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +1 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +3 -3
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +1 -5
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +362 -190
- package/eventcatalog/src/pages/docs/[type]/[id]/[version].md.ts +1 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/index.astro +4 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/language/_index.data.ts +1 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +3 -27
- package/eventcatalog/src/pages/docs/teams/[id]/_index.data.ts +2 -2
- package/eventcatalog/src/pages/docs/users/[id]/_index.data.ts +2 -2
- package/eventcatalog/src/pages/index.astro +14 -5
- package/eventcatalog/src/pages/nav-index.json.ts +30 -0
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/_index.data.ts +77 -0
- package/eventcatalog/src/pages/schemas/[type]/[id]/[version]/index.astro +90 -0
- package/eventcatalog/src/pages/schemas/{index.astro → explorer/index.astro} +3 -3
- package/eventcatalog/src/pages/studio.astro +3 -3
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +4 -3
- package/eventcatalog/src/pages/visualiser/[type]/[id]/index.astro +2 -2
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/_index.data.ts +4 -3
- package/eventcatalog/src/stores/favorites-store.ts +83 -0
- package/eventcatalog/src/stores/sidebar-store.ts +8 -0
- package/eventcatalog/src/utils/collections/changelogs.ts +7 -4
- package/eventcatalog/src/utils/{channels.ts → collections/channels.ts} +81 -31
- package/eventcatalog/src/utils/collections/commands.ts +134 -0
- package/eventcatalog/src/utils/collections/containers.ts +44 -33
- package/eventcatalog/src/utils/collections/domains.ts +204 -62
- package/eventcatalog/src/utils/{entities.ts → collections/entities.ts} +44 -24
- package/eventcatalog/src/utils/collections/events.ts +136 -0
- package/eventcatalog/src/utils/collections/flows.ts +59 -25
- package/eventcatalog/src/utils/{messages.ts → collections/messages.ts} +13 -4
- package/eventcatalog/src/utils/{queries.ts → collections/queries.ts} +49 -28
- package/eventcatalog/src/utils/collections/services.ts +100 -68
- package/eventcatalog/src/utils/collections/teams.ts +94 -0
- package/eventcatalog/src/utils/collections/users.ts +122 -0
- package/eventcatalog/src/utils/collections/util.ts +57 -1
- package/eventcatalog/src/utils/feature.ts +3 -1
- package/eventcatalog/src/utils/{collections/file-diffs.ts → file-diffs.ts} +1 -1
- package/eventcatalog/src/utils/node-graphs/container-node-graph.ts +2 -0
- package/eventcatalog/src/utils/node-graphs/domain-entity-map.ts +16 -6
- package/eventcatalog/src/utils/node-graphs/domains-canvas.ts +14 -10
- package/eventcatalog/src/utils/node-graphs/domains-node-graph.ts +36 -64
- package/eventcatalog/src/utils/node-graphs/flows-node-graph.ts +23 -19
- package/eventcatalog/src/utils/node-graphs/message-node-graph.ts +36 -49
- package/eventcatalog/src/utils/node-graphs/services-node-graph.ts +22 -18
- package/eventcatalog/src/utils/page-loaders/page-data-loader.ts +4 -4
- package/eventcatalog/tailwind.config.mjs +14 -0
- package/eventcatalog/tsconfig.json +2 -1
- package/package.json +7 -4
- package/eventcatalog/public/logo_old.png +0 -0
- package/eventcatalog/src/components/DiscoverInsight.astro +0 -61
- package/eventcatalog/src/components/Grids/ServiceGrid.tsx +0 -534
- package/eventcatalog/src/components/Lists/CustomSideBarSectionList.astro +0 -55
- package/eventcatalog/src/components/Lists/ProtocolList.tsx +0 -74
- package/eventcatalog/src/components/Lists/RepositoryList.astro +0 -37
- package/eventcatalog/src/components/Lists/SpecificationsList.astro +0 -67
- package/eventcatalog/src/components/SideBars/ChannelSideBar.astro +0 -204
- package/eventcatalog/src/components/SideBars/ContainerSideBar.astro +0 -180
- package/eventcatalog/src/components/SideBars/DomainSideBar.astro +0 -273
- package/eventcatalog/src/components/SideBars/EntitySideBar.astro +0 -139
- package/eventcatalog/src/components/SideBars/FlowSideBar.astro +0 -128
- package/eventcatalog/src/components/SideBars/MessageSideBar.astro +0 -248
- package/eventcatalog/src/components/SideBars/ServiceSideBar.astro +0 -294
- package/eventcatalog/src/components/SideNav/ListViewSideBar/components/CollapsibleGroup.tsx +0 -46
- package/eventcatalog/src/components/SideNav/ListViewSideBar/components/MessageList.tsx +0 -78
- package/eventcatalog/src/components/SideNav/ListViewSideBar/components/SpecificationList.tsx +0 -83
- package/eventcatalog/src/components/SideNav/ListViewSideBar/index.tsx +0 -1250
- package/eventcatalog/src/components/SideNav/ListViewSideBar/types.ts +0 -91
- package/eventcatalog/src/components/SideNav/ListViewSideBar/utils.ts +0 -201
- package/eventcatalog/src/components/SideNav/TreeView/getTreeView.ts +0 -190
- package/eventcatalog/src/components/SideNav/TreeView/index.tsx +0 -94
- package/eventcatalog/src/components/TreeView/index.tsx +0 -328
- package/eventcatalog/src/components/TreeView/styles.module.css +0 -264
- package/eventcatalog/src/components/TreeView/useSlots.ts +0 -95
- package/eventcatalog/src/pages/architecture/[type]/index.astro +0 -14
- package/eventcatalog/src/pages/architecture/architecture.astro +0 -101
- package/eventcatalog/src/pages/architecture/docs/[type]/index.astro +0 -14
- package/eventcatalog/src/utils/commands.ts +0 -112
- package/eventcatalog/src/utils/events.ts +0 -108
- package/eventcatalog/src/utils/generators/index.ts +0 -10
- package/eventcatalog/src/utils/teams.ts +0 -72
- package/eventcatalog/src/utils/users.ts +0 -72
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { buildUrl } from '@utils/url-builder';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
ChatBubbleLeftIcon,
|
|
5
|
+
RectangleGroupIcon,
|
|
6
|
+
ServerIcon,
|
|
7
|
+
CodeBracketIcon,
|
|
8
|
+
CubeTransparentIcon,
|
|
9
|
+
DocumentTextIcon,
|
|
10
|
+
SparklesIcon,
|
|
11
|
+
RocketLaunchIcon,
|
|
12
|
+
} from '@heroicons/react/24/outline';
|
|
4
13
|
import config from '@config';
|
|
5
14
|
|
|
6
|
-
import { getMessages } from '@utils/messages';
|
|
15
|
+
import { getMessages } from '@utils/collections/messages';
|
|
7
16
|
import { getDomains } from '@utils/collections/domains';
|
|
8
17
|
import { getServices } from '@utils/collections/services';
|
|
9
18
|
import { getFlows } from '@utils/collections/flows';
|
|
10
19
|
import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
|
|
11
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
BookOpenText,
|
|
22
|
+
Workflow,
|
|
23
|
+
TableProperties,
|
|
24
|
+
BookUser,
|
|
25
|
+
BotMessageSquare,
|
|
26
|
+
Zap,
|
|
27
|
+
Package,
|
|
28
|
+
GitBranch,
|
|
29
|
+
FileCode,
|
|
30
|
+
Puzzle,
|
|
31
|
+
Terminal,
|
|
32
|
+
BarChart3,
|
|
33
|
+
GitCompare,
|
|
34
|
+
Layers,
|
|
35
|
+
} from 'lucide-react';
|
|
12
36
|
|
|
13
37
|
const { commands = [], events = [], queries = [] } = await getMessages({ getAllVersions: false });
|
|
14
38
|
const messages = [...events, ...queries, ...commands];
|
|
@@ -79,6 +103,63 @@ const gettingStartedItems = [
|
|
|
79
103
|
},
|
|
80
104
|
];
|
|
81
105
|
|
|
106
|
+
const resourceCategories = [
|
|
107
|
+
{
|
|
108
|
+
title: 'Development Tools',
|
|
109
|
+
description: 'Powerful tools to enhance your workflow',
|
|
110
|
+
items: [
|
|
111
|
+
{
|
|
112
|
+
title: 'Generators & Plugins',
|
|
113
|
+
icon: Zap,
|
|
114
|
+
description: 'Automate documentation with generators for AsyncAPI, OpenAPI, and more',
|
|
115
|
+
href: 'https://www.eventcatalog.dev/integrations',
|
|
116
|
+
external: true,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: 'CLI Tools',
|
|
120
|
+
icon: Terminal,
|
|
121
|
+
description: 'Command-line tools to build, preview, and manage your catalog',
|
|
122
|
+
href: 'https://www.eventcatalog.dev/docs/development/starting-a-new-project/installation',
|
|
123
|
+
external: true,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
title: 'SDK & API',
|
|
127
|
+
icon: CodeBracketIcon,
|
|
128
|
+
description: 'Programmatic access to read and write catalog data',
|
|
129
|
+
href: 'https://www.eventcatalog.dev/api/sdk',
|
|
130
|
+
external: true,
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
title: 'Architecture Resources',
|
|
136
|
+
description: 'Best practices and patterns',
|
|
137
|
+
items: [
|
|
138
|
+
{
|
|
139
|
+
title: 'Versioning Strategies',
|
|
140
|
+
icon: GitBranch,
|
|
141
|
+
description: 'Learn how to version your messages and services effectively',
|
|
142
|
+
href: 'https://www.eventcatalog.dev/docs/development/guides/messages/events/versioning',
|
|
143
|
+
external: true,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
title: 'Schema Management',
|
|
147
|
+
icon: FileCode,
|
|
148
|
+
description: 'Best practices for managing schemas and specifications',
|
|
149
|
+
href: 'https://www.eventcatalog.dev/docs/development/guides/messages/events/adding-schemas',
|
|
150
|
+
external: true,
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
title: 'Domain Design',
|
|
154
|
+
icon: Layers,
|
|
155
|
+
description: 'Organize your architecture using domain-driven design principles',
|
|
156
|
+
href: 'https://www.eventcatalog.dev/docs/development/guides/domains/adding-services-to-domains',
|
|
157
|
+
external: true,
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
];
|
|
162
|
+
|
|
82
163
|
const getDefaultUrl = (route: string, defaultValue: string) => {
|
|
83
164
|
if (domains.length > 0) return buildUrl(`/${route}/domains/${domains[0].data.id}/${domains[0].data.latestVersion}`);
|
|
84
165
|
if (services.length > 0) return buildUrl(`/${route}/services/${services[0].data.id}/${services[0].data.latestVersion}`);
|
|
@@ -91,7 +172,7 @@ const topTiles = [
|
|
|
91
172
|
title: 'Domains',
|
|
92
173
|
count: domains.length,
|
|
93
174
|
description: 'Business domains defined',
|
|
94
|
-
href: buildUrl('/
|
|
175
|
+
href: buildUrl('/discover/domains'),
|
|
95
176
|
icon: RectangleGroupIcon,
|
|
96
177
|
bgColor: 'bg-yellow-100',
|
|
97
178
|
textColor: 'text-yellow-600',
|
|
@@ -101,7 +182,7 @@ const topTiles = [
|
|
|
101
182
|
title: 'Services',
|
|
102
183
|
count: services.length,
|
|
103
184
|
description: 'Services documented in the catalog',
|
|
104
|
-
href: buildUrl('/
|
|
185
|
+
href: buildUrl('/discover/services'),
|
|
105
186
|
icon: ServerIcon,
|
|
106
187
|
bgColor: 'bg-pink-100',
|
|
107
188
|
textColor: 'text-pink-600',
|
|
@@ -111,160 +192,416 @@ const topTiles = [
|
|
|
111
192
|
title: 'Messages',
|
|
112
193
|
count: messages.length,
|
|
113
194
|
description: 'Messages documented in the catalog',
|
|
114
|
-
href: buildUrl('/
|
|
195
|
+
href: buildUrl('/discover/events'),
|
|
115
196
|
icon: ChatBubbleLeftIcon,
|
|
116
197
|
bgColor: 'bg-blue-100',
|
|
117
198
|
textColor: 'text-blue-600',
|
|
118
199
|
arrowColor: 'text-blue-600',
|
|
119
200
|
},
|
|
201
|
+
{
|
|
202
|
+
title: 'Flows',
|
|
203
|
+
count: flows.length,
|
|
204
|
+
description: 'Business flows documented',
|
|
205
|
+
href: buildUrl('/discover/flows'),
|
|
206
|
+
icon: Workflow,
|
|
207
|
+
bgColor: 'bg-purple-100',
|
|
208
|
+
textColor: 'text-purple-600',
|
|
209
|
+
arrowColor: 'text-purple-600',
|
|
210
|
+
},
|
|
211
|
+
];
|
|
212
|
+
|
|
213
|
+
const quickActions = [
|
|
214
|
+
{
|
|
215
|
+
title: 'Documentation',
|
|
216
|
+
description: 'Read detailed documentation for all your messages, services, and domains',
|
|
217
|
+
icon: BookOpenText,
|
|
218
|
+
href: getDefaultUrl('docs', 'domains'),
|
|
219
|
+
gradient: 'from-blue-500 to-indigo-600',
|
|
220
|
+
iconBg: 'bg-blue-100',
|
|
221
|
+
iconColor: 'text-blue-600',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
title: 'Visualizer',
|
|
225
|
+
description: 'Explore interactive diagrams and visualizations of your architecture',
|
|
226
|
+
icon: Workflow,
|
|
227
|
+
href: getDefaultUrl('visualiser', 'domains'),
|
|
228
|
+
gradient: 'from-purple-500 to-pink-600',
|
|
229
|
+
iconBg: 'bg-purple-100',
|
|
230
|
+
iconColor: 'text-purple-600',
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
title: 'Discover',
|
|
234
|
+
description: 'Search and browse through all your events, commands, and queries',
|
|
235
|
+
icon: TableProperties,
|
|
236
|
+
href: buildUrl('/discover/events'),
|
|
237
|
+
gradient: 'from-teal-500 to-cyan-600',
|
|
238
|
+
iconBg: 'bg-teal-100',
|
|
239
|
+
iconColor: 'text-teal-600',
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
title: 'AI Chat',
|
|
243
|
+
description: 'Ask questions about your architecture and get instant answers',
|
|
244
|
+
icon: BotMessageSquare,
|
|
245
|
+
href: buildUrl('/chat'),
|
|
246
|
+
gradient: 'from-green-500 to-emerald-600',
|
|
247
|
+
iconBg: 'bg-green-100',
|
|
248
|
+
iconColor: 'text-green-600',
|
|
249
|
+
},
|
|
120
250
|
];
|
|
121
251
|
---
|
|
122
252
|
|
|
123
253
|
<VerticalSideBarLayout title="EventCatalog">
|
|
124
|
-
<body class="min-h-screen bg-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
254
|
+
<body class="min-h-screen bg-white font-inter">
|
|
255
|
+
<!-- Hero Section - Clean White Theme -->
|
|
256
|
+
<div class="relative bg-white border-b border-gray-200">
|
|
257
|
+
<main class="container px-8 lg:px-8 mx-auto py-12 max-w-[85em]">
|
|
258
|
+
<div class="flex flex-col lg:flex-row lg:items-start lg:justify-between gap-8 mb-6">
|
|
259
|
+
<div class="flex-1 max-w-2xl">
|
|
260
|
+
<h1 class="text-4xl md:text-5xl font-bold mb-4 text-gray-900 tracking-tight">
|
|
261
|
+
{config?.organizationName || 'EventCatalog'}
|
|
262
|
+
</h1>
|
|
263
|
+
<p class="text-base md:text-lg text-gray-600 leading-relaxed mb-6">
|
|
264
|
+
{
|
|
265
|
+
config.tagline ||
|
|
266
|
+
'Comprehensive event-driven architecture documentation covering events, services, and domains. Explore, visualize, and understand your distributed systems.'
|
|
267
|
+
}
|
|
268
|
+
</p>
|
|
269
|
+
|
|
270
|
+
<!-- Quick Actions Buttons -->
|
|
271
|
+
<div class="flex flex-wrap gap-2.5">
|
|
272
|
+
<a
|
|
273
|
+
href={getDefaultUrl('docs', 'domains')}
|
|
274
|
+
class="inline-flex items-center gap-2 px-5 py-2.5 bg-gray-900 text-white rounded-lg font-medium hover:bg-gray-800 hover:scale-105 transition-all shadow-md shadow-gray-900/20"
|
|
275
|
+
>
|
|
276
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
277
|
+
<path
|
|
278
|
+
stroke-linecap="round"
|
|
279
|
+
stroke-linejoin="round"
|
|
280
|
+
stroke-width="2"
|
|
281
|
+
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
|
282
|
+
</svg>
|
|
283
|
+
Explore Catalog
|
|
284
|
+
</a>
|
|
285
|
+
<a
|
|
286
|
+
href={getDefaultUrl('visualiser', 'domains')}
|
|
287
|
+
class="inline-flex items-center gap-2 px-5 py-2.5 bg-white text-gray-900 border border-gray-300 rounded-lg font-medium hover:border-gray-400 hover:scale-105 transition-all"
|
|
288
|
+
>
|
|
289
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
290
|
+
<path
|
|
291
|
+
stroke-linecap="round"
|
|
292
|
+
stroke-linejoin="round"
|
|
293
|
+
stroke-width="2"
|
|
294
|
+
d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"
|
|
295
|
+
></path>
|
|
296
|
+
</svg>
|
|
297
|
+
View Architecture
|
|
298
|
+
</a>
|
|
299
|
+
</div>
|
|
300
|
+
</div>
|
|
134
301
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
href={tile.href}
|
|
141
|
-
class="bg-white p-5 rounded-lg shadow-sm border border-gray-200 hover:shadow-md transition-all duration-200"
|
|
302
|
+
<!-- Quick Search -->
|
|
303
|
+
<div class="lg:w-96">
|
|
304
|
+
<button
|
|
305
|
+
data-search-trigger
|
|
306
|
+
class="group flex items-center gap-3 w-full px-4 py-3 bg-white border-2 border-gray-200 rounded-lg hover:border-blue-400 hover:shadow-md transition-all cursor-pointer"
|
|
142
307
|
>
|
|
143
|
-
<
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
308
|
+
<svg
|
|
309
|
+
class="w-5 h-5 text-gray-400 group-hover:text-blue-500 transition-colors"
|
|
310
|
+
fill="none"
|
|
311
|
+
stroke="currentColor"
|
|
312
|
+
viewBox="0 0 24 24"
|
|
313
|
+
>
|
|
314
|
+
<path
|
|
315
|
+
stroke-linecap="round"
|
|
316
|
+
stroke-linejoin="round"
|
|
317
|
+
stroke-width="2"
|
|
318
|
+
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
|
319
|
+
</svg>
|
|
320
|
+
<span class="text-sm text-gray-500 group-hover:text-gray-700 transition-colors flex-1 text-left"
|
|
321
|
+
>Search events, services, domains...</span
|
|
322
|
+
>
|
|
323
|
+
<div class="flex items-center gap-1">
|
|
324
|
+
<kbd class="px-2 py-1 text-xs font-semibold text-gray-600 bg-gray-50 border border-gray-300 rounded">⌘</kbd>
|
|
325
|
+
<kbd class="px-2 py-1 text-xs font-semibold text-gray-600 bg-gray-50 border border-gray-300 rounded">K</kbd>
|
|
326
|
+
</div>
|
|
327
|
+
</button>
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
</main>
|
|
331
|
+
</div>
|
|
332
|
+
|
|
333
|
+
<!-- Main Content -->
|
|
334
|
+
<main class="container px-8 lg:px-8 mx-auto py-10 max-w-[85em]">
|
|
335
|
+
<!-- Architecture Stats -->
|
|
336
|
+
<div class="mb-16">
|
|
337
|
+
<h2 class="text-sm font-semibold uppercase tracking-wider text-gray-500 mb-6">Architecture Overview</h2>
|
|
338
|
+
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
|
|
339
|
+
{
|
|
340
|
+
topTiles.map((tile, index) => (
|
|
341
|
+
<a
|
|
342
|
+
href={tile.href}
|
|
343
|
+
class="group relative bg-white p-6 rounded-xl border-2 border-gray-200 hover:border-gray-400 shadow-sm hover:shadow-md transition-all duration-300 overflow-hidden"
|
|
344
|
+
style={`animation-delay: ${index * 50}ms`}
|
|
345
|
+
>
|
|
346
|
+
{/* Subtle gradient on hover */}
|
|
347
|
+
<div class="absolute inset-0 bg-gradient-to-br from-gray-50 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300" />
|
|
348
|
+
|
|
349
|
+
{/* Colored left border accent */}
|
|
350
|
+
<div
|
|
351
|
+
class={`absolute left-0 top-0 bottom-0 w-1 ${tile.bgColor} opacity-0 group-hover:opacity-100 transition-opacity duration-300`}
|
|
352
|
+
/>
|
|
353
|
+
|
|
354
|
+
<div class="relative">
|
|
355
|
+
<div class="flex items-center justify-between mb-4">
|
|
356
|
+
<div class="p-2.5 bg-gray-100 rounded-lg group-hover:bg-gray-200 transition-colors shadow-sm">
|
|
357
|
+
<tile.icon className={`w-5 h-5 text-gray-600 group-hover:${tile.textColor} transition-colors`} />
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
|
|
361
|
+
<div class="mb-1">
|
|
362
|
+
<div class="text-3xl font-bold text-gray-900 mb-1">{tile.count}</div>
|
|
363
|
+
</div>
|
|
364
|
+
|
|
365
|
+
<div class="text-sm font-medium text-gray-600 mb-2">{tile.title}</div>
|
|
366
|
+
|
|
367
|
+
<div class="flex items-center gap-1.5 text-xs font-medium text-gray-500 opacity-0 group-hover:opacity-100 transition-all duration-300">
|
|
368
|
+
<span class="group-hover:translate-x-0.5 transition-transform">View all</span>
|
|
369
|
+
<svg
|
|
370
|
+
class="w-3 h-3 group-hover:translate-x-0.5 transition-transform"
|
|
371
|
+
fill="none"
|
|
372
|
+
stroke="currentColor"
|
|
373
|
+
viewBox="0 0 24 24"
|
|
374
|
+
>
|
|
375
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
|
|
376
|
+
</svg>
|
|
147
377
|
</div>
|
|
148
|
-
<h3 class="text-lg font-semibold text-gray-900">
|
|
149
|
-
{tile.count} {tile.title}
|
|
150
|
-
</h3>
|
|
151
378
|
</div>
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
))
|
|
157
|
-
}
|
|
379
|
+
</a>
|
|
380
|
+
))
|
|
381
|
+
}
|
|
382
|
+
</div>
|
|
158
383
|
</div>
|
|
159
384
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
<div class="
|
|
163
|
-
<
|
|
164
|
-
|
|
165
|
-
class="
|
|
166
|
-
>
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
385
|
+
<!-- Quick Actions -->
|
|
386
|
+
<div class="mb-16">
|
|
387
|
+
<div class="flex items-center justify-between mb-6">
|
|
388
|
+
<div>
|
|
389
|
+
<h2 class="text-2xl font-bold text-gray-900">Quick Actions</h2>
|
|
390
|
+
<p class="text-sm text-gray-500 mt-1">Jump right into exploring your architecture</p>
|
|
391
|
+
</div>
|
|
392
|
+
<RocketLaunchIcon className="w-6 h-6 text-gray-400" />
|
|
393
|
+
</div>
|
|
394
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
|
395
|
+
{
|
|
396
|
+
quickActions.map((action, index) => (
|
|
397
|
+
<a
|
|
398
|
+
href={action.href}
|
|
399
|
+
class="group relative bg-white rounded-2xl shadow-sm border border-gray-200 hover:shadow-2xl hover:scale-105 transition-all duration-300 overflow-hidden"
|
|
400
|
+
style={`animation-delay: ${index * 50}ms`}
|
|
401
|
+
>
|
|
402
|
+
{/* Animated gradient background */}
|
|
403
|
+
<div
|
|
404
|
+
class={`absolute inset-0 bg-gradient-to-br ${action.gradient} opacity-0 group-hover:opacity-5 transition-opacity duration-500`}
|
|
405
|
+
/>
|
|
180
406
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
407
|
+
{/* Shimmer effect on hover */}
|
|
408
|
+
<div class="absolute inset-0 -translate-x-full group-hover:translate-x-full transition-transform duration-1000 bg-gradient-to-r from-transparent via-white/20 to-transparent" />
|
|
409
|
+
|
|
410
|
+
<div class="relative p-6">
|
|
411
|
+
<div
|
|
412
|
+
class={`${action.iconBg} w-12 h-12 rounded-xl flex items-center justify-center mb-4 group-hover:scale-110 group-hover:rotate-3 transition-all duration-300`}
|
|
413
|
+
>
|
|
414
|
+
<action.icon className={`w-6 h-6 ${action.iconColor}`} />
|
|
415
|
+
</div>
|
|
416
|
+
<h3 class="text-lg font-semibold text-gray-900 mb-2 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-blue-600 group-hover:to-purple-600 transition-all">
|
|
417
|
+
{action.title}
|
|
418
|
+
</h3>
|
|
419
|
+
<p class="text-sm text-gray-600 leading-relaxed mb-4">{action.description}</p>
|
|
420
|
+
<div
|
|
421
|
+
class={`text-sm font-medium ${action.iconColor} flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-all`}
|
|
422
|
+
>
|
|
423
|
+
<span class="group-hover:translate-x-1 transition-transform">Open</span>
|
|
424
|
+
<svg
|
|
425
|
+
class="w-4 h-4 group-hover:translate-x-1 transition-transform"
|
|
426
|
+
fill="none"
|
|
427
|
+
stroke="currentColor"
|
|
428
|
+
viewBox="0 0 24 24"
|
|
429
|
+
>
|
|
430
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6" />
|
|
431
|
+
</svg>
|
|
432
|
+
</div>
|
|
190
433
|
</div>
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
434
|
+
</a>
|
|
435
|
+
))
|
|
436
|
+
}
|
|
437
|
+
</div>
|
|
438
|
+
</div>
|
|
196
439
|
|
|
440
|
+
<!-- Additional Features -->
|
|
441
|
+
<div class="mb-16">
|
|
442
|
+
<h2 class="text-2xl font-bold text-gray-900 mb-6">More Features</h2>
|
|
443
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
197
444
|
<a
|
|
198
|
-
href={buildUrl('/
|
|
199
|
-
class="
|
|
445
|
+
href={buildUrl('/directory/users')}
|
|
446
|
+
class="group relative bg-white rounded-2xl shadow-sm border border-gray-200 p-6 hover:shadow-xl hover:border-orange-200 transition-all duration-300 overflow-hidden"
|
|
200
447
|
>
|
|
201
|
-
<div
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
448
|
+
<div
|
|
449
|
+
class="absolute top-0 right-0 w-32 h-32 bg-orange-50 rounded-full -translate-y-16 translate-x-16 group-hover:scale-150 transition-transform duration-500"
|
|
450
|
+
>
|
|
451
|
+
</div>
|
|
452
|
+
<div class="relative flex items-start gap-4">
|
|
453
|
+
<div class="bg-orange-100 p-3 rounded-xl group-hover:scale-110 group-hover:rotate-3 transition-all">
|
|
454
|
+
<BookUser className="w-6 h-6 text-orange-600" />
|
|
455
|
+
</div>
|
|
456
|
+
<div class="flex-1">
|
|
457
|
+
<div class="flex items-center gap-2 mb-2">
|
|
458
|
+
<h3 class="text-lg font-semibold text-gray-900 group-hover:text-orange-600 transition-colors">
|
|
459
|
+
Users & Teams Directory
|
|
460
|
+
</h3>
|
|
461
|
+
<span class="px-2 py-0.5 text-xs font-medium text-orange-600 bg-orange-50 rounded-full">Owners</span>
|
|
206
462
|
</div>
|
|
207
|
-
<
|
|
463
|
+
<p class="text-sm text-gray-600 mb-3">
|
|
464
|
+
Discover who owns what. Find service and message ownership, contact information, and team structures.
|
|
465
|
+
</p>
|
|
466
|
+
<span class="text-sm font-medium text-orange-600 inline-flex items-center gap-1 group-hover:gap-2 transition-all">
|
|
467
|
+
Browse directory
|
|
468
|
+
<svg
|
|
469
|
+
class="w-4 h-4 group-hover:translate-x-1 transition-transform"
|
|
470
|
+
fill="none"
|
|
471
|
+
stroke="currentColor"
|
|
472
|
+
viewBox="0 0 24 24"
|
|
473
|
+
>
|
|
474
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
|
|
475
|
+
</svg>
|
|
476
|
+
</span>
|
|
208
477
|
</div>
|
|
209
|
-
<p class="text-sm text-gray-600">Navigate through your events and services</p>
|
|
210
478
|
</div>
|
|
211
479
|
</a>
|
|
212
480
|
|
|
213
481
|
<a
|
|
214
|
-
href=
|
|
215
|
-
|
|
482
|
+
href="https://www.eventcatalog.dev/docs/sdk"
|
|
483
|
+
target="_blank"
|
|
484
|
+
class="group relative bg-white rounded-2xl shadow-sm border border-gray-200 p-6 hover:shadow-xl hover:border-indigo-200 transition-all duration-300 overflow-hidden"
|
|
216
485
|
>
|
|
217
|
-
<div
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
486
|
+
<div
|
|
487
|
+
class="absolute top-0 right-0 w-32 h-32 bg-indigo-50 rounded-full -translate-y-16 translate-x-16 group-hover:scale-150 transition-transform duration-500"
|
|
488
|
+
>
|
|
489
|
+
</div>
|
|
490
|
+
<div class="relative flex items-start gap-4">
|
|
491
|
+
<div class="bg-indigo-100 p-3 rounded-xl group-hover:scale-110 group-hover:rotate-3 transition-all">
|
|
492
|
+
<CodeBracketIcon className="w-6 h-6 text-indigo-600" />
|
|
493
|
+
</div>
|
|
494
|
+
<div class="flex-1">
|
|
495
|
+
<div class="flex items-center gap-2 mb-2">
|
|
496
|
+
<h3 class="text-lg font-semibold text-gray-900 group-hover:text-indigo-600 transition-colors">API & SDK</h3>
|
|
497
|
+
<span class="px-2 py-0.5 text-xs font-medium text-indigo-600 bg-indigo-50 rounded-full">Developer</span>
|
|
222
498
|
</div>
|
|
223
|
-
<
|
|
499
|
+
<p class="text-sm text-gray-600 mb-3">
|
|
500
|
+
Programmatic access to read and write catalog data. Perfect for automation and integrations.
|
|
501
|
+
</p>
|
|
502
|
+
<span class="text-sm font-medium text-indigo-600 inline-flex items-center gap-1 group-hover:gap-2 transition-all">
|
|
503
|
+
View API docs
|
|
504
|
+
<svg
|
|
505
|
+
class="w-4 h-4 group-hover:translate-x-1 transition-transform"
|
|
506
|
+
fill="none"
|
|
507
|
+
stroke="currentColor"
|
|
508
|
+
viewBox="0 0 24 24"
|
|
509
|
+
>
|
|
510
|
+
<path
|
|
511
|
+
stroke-linecap="round"
|
|
512
|
+
stroke-linejoin="round"
|
|
513
|
+
stroke-width="2"
|
|
514
|
+
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path>
|
|
515
|
+
</svg>
|
|
516
|
+
</span>
|
|
224
517
|
</div>
|
|
225
|
-
<p class="text-sm text-gray-600">Ask questions about your architecture</p>
|
|
226
518
|
</div>
|
|
227
519
|
</a>
|
|
520
|
+
</div>
|
|
521
|
+
</div>
|
|
228
522
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
>
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
523
|
+
<!-- Resources Section -->
|
|
524
|
+
<div class="mb-16">
|
|
525
|
+
<div class="flex items-center gap-3 mb-8">
|
|
526
|
+
<h2 class="text-2xl font-bold text-gray-900">Resources & Tools</h2>
|
|
527
|
+
<div class="flex-1 h-px bg-gradient-to-r from-gray-300 to-transparent"></div>
|
|
528
|
+
</div>
|
|
529
|
+
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
|
|
530
|
+
{
|
|
531
|
+
resourceCategories.map((category) => (
|
|
532
|
+
<div class="bg-white rounded-2xl shadow-sm border border-gray-200 p-8">
|
|
533
|
+
<h3 class="text-xl font-bold text-gray-900 mb-2">{category.title}</h3>
|
|
534
|
+
<p class="text-sm text-gray-600 mb-6">{category.description}</p>
|
|
535
|
+
<div class="space-y-4">
|
|
536
|
+
{category.items.map((item) => (
|
|
537
|
+
<a
|
|
538
|
+
href={item.href}
|
|
539
|
+
target={item.external ? '_blank' : undefined}
|
|
540
|
+
class="group flex items-start gap-4 p-4 rounded-xl hover:bg-gray-50 transition-colors"
|
|
541
|
+
>
|
|
542
|
+
<div class="bg-gray-100 p-2.5 rounded-lg group-hover:bg-blue-100 transition-colors">
|
|
543
|
+
<item.icon className="w-5 h-5 text-gray-600 group-hover:text-blue-600 transition-colors" />
|
|
544
|
+
</div>
|
|
545
|
+
<div class="flex-1">
|
|
546
|
+
<div class="flex items-center gap-2 mb-1">
|
|
547
|
+
<h4 class="font-semibold text-gray-900 group-hover:text-blue-600 transition-colors">{item.title}</h4>
|
|
548
|
+
{item.external && (
|
|
549
|
+
<svg class="w-4 h-4 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
550
|
+
<path
|
|
551
|
+
stroke-linecap="round"
|
|
552
|
+
stroke-linejoin="round"
|
|
553
|
+
stroke-width="2"
|
|
554
|
+
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
|
|
555
|
+
/>
|
|
556
|
+
</svg>
|
|
557
|
+
)}
|
|
558
|
+
</div>
|
|
559
|
+
<p class="text-sm text-gray-600">{item.description}</p>
|
|
560
|
+
</div>
|
|
561
|
+
</a>
|
|
562
|
+
))}
|
|
238
563
|
</div>
|
|
239
|
-
<h3 class="text-base font-semibold text-gray-900 group-hover:text-orange-600">Users & Teams</h3>
|
|
240
564
|
</div>
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
</a>
|
|
565
|
+
))
|
|
566
|
+
}
|
|
244
567
|
</div>
|
|
245
568
|
</div>
|
|
246
569
|
|
|
247
|
-
|
|
248
|
-
|
|
570
|
+
<!-- Getting Started Section -->
|
|
571
|
+
<section class="mb-16">
|
|
572
|
+
<div class="mb-8">
|
|
573
|
+
<h2 class="text-2xl font-bold text-gray-900 mb-2">Getting Started</h2>
|
|
574
|
+
<p class="text-gray-600">
|
|
575
|
+
New to EventCatalog? Follow these guides to start documenting your event-driven architecture.
|
|
576
|
+
</p>
|
|
577
|
+
</div>
|
|
249
578
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
250
579
|
{
|
|
251
580
|
gettingStartedItems.map((item) => (
|
|
252
|
-
<div class="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
|
|
581
|
+
<div class="bg-white rounded-xl shadow-sm border-2 border-gray-200 p-6 hover:border-gray-400 hover:shadow-md transition-all">
|
|
253
582
|
<div class="flex items-center gap-3 mb-4">
|
|
254
|
-
<div class=
|
|
255
|
-
<item.icon className=
|
|
583
|
+
<div class="p-2 bg-gray-100 rounded-lg shadow-sm">
|
|
584
|
+
<item.icon className="w-5 h-5 text-gray-600" />
|
|
256
585
|
</div>
|
|
257
|
-
<h3 class="text-
|
|
586
|
+
<h3 class="text-base font-semibold text-gray-900">{item.title}</h3>
|
|
258
587
|
</div>
|
|
259
|
-
<p class="text-gray-600 text-sm mb-
|
|
588
|
+
<p class="text-gray-600 text-sm mb-5 leading-relaxed">{item.description}</p>
|
|
260
589
|
<div class="space-y-2">
|
|
261
590
|
{item.links.map((link) => (
|
|
262
591
|
<a
|
|
263
592
|
href={link.href}
|
|
264
593
|
target="_blank"
|
|
265
|
-
class=
|
|
594
|
+
class="group flex items-center gap-2 text-sm text-gray-600 hover:text-gray-900 font-medium transition-colors"
|
|
266
595
|
>
|
|
267
|
-
|
|
596
|
+
<svg
|
|
597
|
+
class="w-3.5 h-3.5 group-hover:translate-x-0.5 transition-transform"
|
|
598
|
+
fill="none"
|
|
599
|
+
stroke="currentColor"
|
|
600
|
+
viewBox="0 0 24 24"
|
|
601
|
+
>
|
|
602
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
|
|
603
|
+
</svg>
|
|
604
|
+
{link.text}
|
|
268
605
|
</a>
|
|
269
606
|
))}
|
|
270
607
|
</div>
|
|
@@ -273,6 +610,89 @@ const topTiles = [
|
|
|
273
610
|
}
|
|
274
611
|
</div>
|
|
275
612
|
</section>
|
|
613
|
+
|
|
614
|
+
<!-- Community Section -->
|
|
615
|
+
<section class="mb-8">
|
|
616
|
+
<div class="bg-white rounded-xl border-2 border-gray-200 shadow-sm p-8 md:p-10">
|
|
617
|
+
<div class="max-w-3xl">
|
|
618
|
+
<h2 class="text-2xl font-bold text-gray-900 mb-2">Join the Community</h2>
|
|
619
|
+
<p class="text-gray-600 mb-8">
|
|
620
|
+
Get help, share ideas, and connect with other EventCatalog users. We're here to help you succeed with event-driven
|
|
621
|
+
architecture.
|
|
622
|
+
</p>
|
|
623
|
+
|
|
624
|
+
<div class="flex flex-wrap gap-3">
|
|
625
|
+
<a
|
|
626
|
+
href="https://discord.gg/3rjaZMmrAm"
|
|
627
|
+
target="_blank"
|
|
628
|
+
class="group inline-flex items-center gap-2 px-5 py-2.5 bg-gray-900 text-white rounded-lg font-medium hover:bg-gray-800 transition-all shadow-sm"
|
|
629
|
+
>
|
|
630
|
+
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
|
631
|
+
<path
|
|
632
|
+
d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"
|
|
633
|
+
></path>
|
|
634
|
+
</svg>
|
|
635
|
+
<span>Join Discord</span>
|
|
636
|
+
</a>
|
|
637
|
+
<a
|
|
638
|
+
href="https://github.com/event-catalog/eventcatalog"
|
|
639
|
+
target="_blank"
|
|
640
|
+
class="group inline-flex items-center gap-2 px-5 py-2.5 bg-white text-gray-900 border border-gray-300 rounded-lg font-medium hover:border-gray-400 hover:bg-gray-50 transition-all"
|
|
641
|
+
>
|
|
642
|
+
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
|
|
643
|
+
<path
|
|
644
|
+
fill-rule="evenodd"
|
|
645
|
+
d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"
|
|
646
|
+
clip-rule="evenodd"></path>
|
|
647
|
+
</svg>
|
|
648
|
+
<span>Star on GitHub</span>
|
|
649
|
+
</a>
|
|
650
|
+
<a
|
|
651
|
+
href="https://www.eventcatalog.dev/docs"
|
|
652
|
+
target="_blank"
|
|
653
|
+
class="group inline-flex items-center gap-2 px-5 py-2.5 bg-white text-gray-900 border border-gray-300 rounded-lg font-medium hover:border-gray-400 hover:bg-gray-50 transition-all"
|
|
654
|
+
>
|
|
655
|
+
<DocumentTextIcon className="w-4 h-4" />
|
|
656
|
+
<span>Documentation</span>
|
|
657
|
+
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
658
|
+
<path
|
|
659
|
+
stroke-linecap="round"
|
|
660
|
+
stroke-linejoin="round"
|
|
661
|
+
stroke-width="2"
|
|
662
|
+
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path>
|
|
663
|
+
</svg>
|
|
664
|
+
</a>
|
|
665
|
+
</div>
|
|
666
|
+
</div>
|
|
667
|
+
</div>
|
|
668
|
+
</section>
|
|
276
669
|
</main>
|
|
277
670
|
</body>
|
|
671
|
+
|
|
672
|
+
<script>
|
|
673
|
+
// Trigger header search when clicking the homepage search button
|
|
674
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
675
|
+
const searchTrigger = document.querySelector('[data-search-trigger]');
|
|
676
|
+
if (searchTrigger) {
|
|
677
|
+
searchTrigger.addEventListener('click', () => {
|
|
678
|
+
// Look for the header search button and click it
|
|
679
|
+
const headerSearchButton =
|
|
680
|
+
document.querySelector('[data-search-open]') ||
|
|
681
|
+
document.querySelector('button[aria-label*="search" i]') ||
|
|
682
|
+
document.querySelector('button[title*="search" i]');
|
|
683
|
+
if (headerSearchButton && headerSearchButton instanceof HTMLElement) {
|
|
684
|
+
headerSearchButton.click();
|
|
685
|
+
} else {
|
|
686
|
+
// Fallback: trigger keyboard shortcut
|
|
687
|
+
const event = new KeyboardEvent('keydown', {
|
|
688
|
+
key: 'k',
|
|
689
|
+
metaKey: true,
|
|
690
|
+
bubbles: true,
|
|
691
|
+
});
|
|
692
|
+
document.dispatchEvent(event);
|
|
693
|
+
}
|
|
694
|
+
});
|
|
695
|
+
}
|
|
696
|
+
});
|
|
697
|
+
</script>
|
|
278
698
|
</VerticalSideBarLayout>
|