@eventcatalog/core 3.0.0 → 3.2.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.
Files changed (109) hide show
  1. package/dist/analytics/analytics.cjs +1 -1
  2. package/dist/analytics/analytics.js +2 -2
  3. package/dist/analytics/log-build.cjs +1 -1
  4. package/dist/analytics/log-build.js +3 -3
  5. package/dist/{chunk-VO5WYA44.js → chunk-AA47DJ43.js} +1 -1
  6. package/dist/{chunk-EKGR533N.js → chunk-GGRXP5WM.js} +1 -1
  7. package/dist/{chunk-E5Q7TZYT.js → chunk-L3QRQT7U.js} +1 -1
  8. package/dist/{chunk-BYP43AAT.js → chunk-RWYEP5SD.js} +1 -1
  9. package/dist/{chunk-KF5PARQK.js → chunk-VPQCMMRM.js} +1 -1
  10. package/dist/constants.cjs +1 -1
  11. package/dist/constants.js +1 -1
  12. package/dist/eventcatalog.cjs +1 -1
  13. package/dist/eventcatalog.config.d.cts +7 -0
  14. package/dist/eventcatalog.config.d.ts +7 -0
  15. package/dist/eventcatalog.js +5 -5
  16. package/dist/generate.cjs +1 -1
  17. package/dist/generate.js +3 -3
  18. package/dist/utils/cli-logger.cjs +1 -1
  19. package/dist/utils/cli-logger.js +2 -2
  20. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +520 -247
  21. package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +3 -3
  22. package/eventcatalog/src/components/Checkbox.astro +7 -4
  23. package/eventcatalog/src/components/CopyAsMarkdown.tsx +15 -15
  24. package/eventcatalog/src/components/EnvironmentDropdown.tsx +15 -7
  25. package/eventcatalog/src/components/FavoriteButton.tsx +1 -1
  26. package/eventcatalog/src/components/Grids/DomainGrid.tsx +72 -60
  27. package/eventcatalog/src/components/Grids/MessageGrid.tsx +68 -48
  28. package/eventcatalog/src/components/Header.astro +15 -10
  29. package/eventcatalog/src/components/Lists/OwnersList.tsx +17 -10
  30. package/eventcatalog/src/components/Lists/PillListFlat.styles.css +12 -0
  31. package/eventcatalog/src/components/Lists/PillListFlat.tsx +15 -15
  32. package/eventcatalog/src/components/Lists/VersionList.astro +15 -5
  33. package/eventcatalog/src/components/MDX/Accordion/Accordion.tsx +3 -3
  34. package/eventcatalog/src/components/MDX/Admonition.tsx +49 -9
  35. package/eventcatalog/src/components/MDX/Attachments.astro +15 -11
  36. package/eventcatalog/src/components/MDX/ChannelInformation/ChannelInformation.tsx +29 -15
  37. package/eventcatalog/src/components/MDX/EntityPropertiesTable/EntityPropertiesTable.astro +20 -13
  38. package/eventcatalog/src/components/MDX/Link/Link.astro +1 -1
  39. package/eventcatalog/src/components/MDX/MessageTable/MessageTable.client.tsx +50 -29
  40. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.tsx +14 -12
  41. package/eventcatalog/src/components/MDX/NodeGraph/StepWalkthrough.tsx +4 -4
  42. package/eventcatalog/src/components/MDX/NodeGraph/StudioModal.tsx +4 -4
  43. package/eventcatalog/src/components/MDX/NodeGraph/VisualiserSearch.tsx +2 -2
  44. package/eventcatalog/src/components/MDX/ResourceGroupTable/ResourceGroupTable.client.tsx +54 -33
  45. package/eventcatalog/src/components/MDX/ResourceLink/ResourceLink.astro +1 -1
  46. package/eventcatalog/src/components/MDX/Steps/Step.astro +2 -2
  47. package/eventcatalog/src/components/MDX/Steps/Steps.astro +3 -3
  48. package/eventcatalog/src/components/MDX/Tabs/Tabs.astro +13 -9
  49. package/eventcatalog/src/components/MDX/Tiles/Tile.astro +25 -13
  50. package/eventcatalog/src/components/MDX/Tiles/Tiles.astro +1 -1
  51. package/eventcatalog/src/components/SchemaExplorer/ApiAccessSection.tsx +3 -3
  52. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +3 -3
  53. package/eventcatalog/src/components/SchemaExplorer/AvroSchemaViewer.tsx +29 -25
  54. package/eventcatalog/src/components/SchemaExplorer/DiffViewer.tsx +3 -3
  55. package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.tsx +61 -42
  56. package/eventcatalog/src/components/SchemaExplorer/OwnersSection.tsx +13 -9
  57. package/eventcatalog/src/components/SchemaExplorer/Pagination.tsx +6 -4
  58. package/eventcatalog/src/components/SchemaExplorer/ProducersConsumersSection.tsx +17 -13
  59. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +35 -8
  60. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsHeader.tsx +33 -21
  61. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +1 -1
  62. package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +41 -33
  63. package/eventcatalog/src/components/SchemaExplorer/SchemaListItem.tsx +19 -7
  64. package/eventcatalog/src/components/SchemaExplorer/SchemaViewerModal.tsx +8 -8
  65. package/eventcatalog/src/components/Search/Search.astro +3 -3
  66. package/eventcatalog/src/components/Search/SearchModal.tsx +65 -36
  67. package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +31 -21
  68. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +92 -59
  69. package/eventcatalog/src/components/Tables/Table.tsx +25 -24
  70. package/eventcatalog/src/components/Tables/columns/ContainersTableColumns.tsx +22 -16
  71. package/eventcatalog/src/components/Tables/columns/DomainTableColumns.tsx +14 -11
  72. package/eventcatalog/src/components/Tables/columns/FlowTableColumns.tsx +6 -6
  73. package/eventcatalog/src/components/Tables/columns/MessageTableColumns.tsx +22 -16
  74. package/eventcatalog/src/components/Tables/columns/ServiceTableColumns.tsx +22 -16
  75. package/eventcatalog/src/components/Tables/columns/SharedColumns.tsx +4 -4
  76. package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +21 -13
  77. package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +30 -19
  78. package/eventcatalog/src/components/ThemeToggle.tsx +18 -0
  79. package/eventcatalog/src/enterprise/ai/chat-api.ts +24 -3
  80. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/components/NestedItem.tsx +15 -7
  81. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/components/NoResultsFound.tsx +2 -2
  82. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/index.tsx +19 -15
  83. package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +50 -17
  84. package/eventcatalog/src/layouts/DirectoryLayout.astro +11 -6
  85. package/eventcatalog/src/layouts/DiscoverLayout.astro +13 -8
  86. package/eventcatalog/src/layouts/Footer.astro +6 -6
  87. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +62 -14
  88. package/eventcatalog/src/pages/_index.astro +135 -179
  89. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +2 -2
  90. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +4 -4
  91. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +77 -63
  92. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +23 -24
  93. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +66 -50
  94. package/eventcatalog/src/pages/docs/custom/index.astro +2 -2
  95. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +25 -21
  96. package/eventcatalog/src/pages/docs/users/[id]/index.astro +25 -21
  97. package/eventcatalog/src/pages/schemas/explorer/index.astro +1 -1
  98. package/eventcatalog/src/pages/studio.astro +59 -31
  99. package/eventcatalog/src/remark-plugins/directives.ts +6 -6
  100. package/eventcatalog/src/remark-plugins/mermaid.ts +2 -2
  101. package/eventcatalog/src/stores/theme-store.ts +93 -0
  102. package/eventcatalog/src/styles/theme.css +255 -0
  103. package/eventcatalog/src/styles/themes/forest.css +230 -0
  104. package/eventcatalog/src/styles/themes/ocean.css +235 -0
  105. package/eventcatalog/src/styles/themes/sapphire.css +230 -0
  106. package/eventcatalog/src/styles/themes/sunset.css +230 -0
  107. package/eventcatalog/src/utils/feature.ts +4 -0
  108. package/eventcatalog/tailwind.config.mjs +6 -3
  109. package/package.json +7 -6
@@ -77,9 +77,9 @@ const topTiles = [
77
77
  description: 'Business flows',
78
78
  href: buildUrl('/discover/flows'),
79
79
  icon: Workflow,
80
- bgColor: 'bg-purple-500',
81
- borderColor: 'border-purple-200',
82
- textColor: 'text-purple-600',
80
+ bgColor: 'bg-[rgb(var(--ec-accent))]',
81
+ borderColor: 'border-[rgb(var(--ec-accent)/0.3)]',
82
+ textColor: 'text-[rgb(var(--ec-accent))]',
83
83
  emptyText: 'No flows yet',
84
84
  addHref: 'https://www.eventcatalog.dev/docs/flows',
85
85
  },
@@ -91,71 +91,63 @@ const quickActions = [
91
91
  description: 'Browse all documented resources',
92
92
  icon: BookOpenText,
93
93
  href: getDefaultUrl('docs', 'domains'),
94
- iconBg: 'bg-blue-50',
95
- iconColor: 'text-blue-600',
96
- hoverBorder: 'hover:border-blue-300',
94
+ iconBg: 'bg-blue-50 dark:bg-blue-500/10',
95
+ iconColor: 'text-blue-600 dark:text-blue-400',
97
96
  },
98
97
  {
99
98
  title: 'Visualizer',
100
99
  description: 'Interactive architecture diagrams',
101
100
  icon: Workflow,
102
101
  href: getDefaultUrl('visualiser', 'domains'),
103
- iconBg: 'bg-purple-50',
104
- iconColor: 'text-purple-600',
105
- hoverBorder: 'hover:border-purple-300',
102
+ iconBg: 'bg-[rgb(var(--ec-accent-subtle))]',
103
+ iconColor: 'text-[rgb(var(--ec-accent))]',
106
104
  },
107
105
  {
108
106
  title: 'Discover',
109
107
  description: 'Search and filter all resources',
110
108
  icon: TableProperties,
111
109
  href: buildUrl('/discover/events'),
112
- iconBg: 'bg-teal-50',
113
- iconColor: 'text-teal-600',
114
- hoverBorder: 'hover:border-teal-300',
110
+ iconBg: 'bg-teal-50 dark:bg-teal-500/10',
111
+ iconColor: 'text-teal-600 dark:text-teal-400',
115
112
  },
116
113
  {
117
114
  title: 'Schema Explorer',
118
115
  description: 'Browse and compare schemas',
119
116
  icon: FileJson,
120
117
  href: buildUrl('/schemas/explorer'),
121
- iconBg: 'bg-amber-50',
122
- iconColor: 'text-amber-600',
123
- hoverBorder: 'hover:border-amber-300',
124
- },
125
- ];
126
-
127
- const learnLinks = [
128
- {
129
- title: 'Getting Started',
130
- description: 'Set up your first catalog',
131
- href: 'https://www.eventcatalog.dev/docs/development/getting-started/introduction',
132
- icon: BookOpenText,
118
+ iconBg: 'bg-amber-50 dark:bg-amber-500/10',
119
+ iconColor: 'text-amber-600 dark:text-amber-400',
133
120
  },
134
121
  {
135
- title: 'Generators & Plugins',
136
- description: 'AsyncAPI, OpenAPI integrations',
137
- href: 'https://www.eventcatalog.dev/integrations',
138
- icon: Zap,
122
+ title: 'Team Directory',
123
+ description: 'Ownership & contacts',
124
+ icon: BookUser,
125
+ href: buildUrl('/directory/users'),
126
+ iconBg: 'bg-orange-50 dark:bg-orange-500/10',
127
+ iconColor: 'text-orange-600 dark:text-orange-400',
139
128
  },
140
129
  {
141
- title: 'SDK & CLI',
142
- description: 'Programmatic catalog access',
130
+ title: 'API & SDK',
131
+ description: 'Programmatic access',
132
+ icon: Code2,
143
133
  href: 'https://www.eventcatalog.dev/docs/sdk',
144
- icon: Terminal,
134
+ iconBg: 'bg-indigo-50 dark:bg-indigo-500/10',
135
+ iconColor: 'text-indigo-600 dark:text-indigo-400',
136
+ external: true,
145
137
  },
146
138
  ];
147
139
  ---
148
140
 
149
141
  <VerticalSideBarLayout title="EventCatalog">
150
- <body class="min-h-screen bg-gray-50/50 font-inter">
142
+ <div class="min-h-screen font-inter">
151
143
  <!-- Hero Section -->
152
- <div class="relative bg-white border-b border-gray-200">
144
+ <div class="relative bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border-b border-[rgb(var(--ec-page-border))]">
153
145
  <main class="container px-6 lg:px-8 mx-auto py-10 max-w-[85em]">
154
146
  <div class="max-w-3xl">
155
- <h1 class="text-3xl md:text-4xl font-bold mb-3 text-gray-900 tracking-tight">
147
+ <h1 class="text-3xl md:text-4xl font-bold mb-3 text-[rgb(var(--ec-page-text))] tracking-tight">
156
148
  {config?.organizationName || 'EventCatalog'}
157
149
  </h1>
158
- <p class="text-base text-gray-600 leading-relaxed mb-6">
150
+ <p class="text-base text-[rgb(var(--ec-page-text-muted))] leading-relaxed mb-6">
159
151
  {
160
152
  config.tagline ||
161
153
  'Explore and understand your event-driven architecture. Browse documentation, visualize dependencies, and discover how your systems communicate.'
@@ -166,14 +158,14 @@ const learnLinks = [
166
158
  <div class="flex flex-wrap items-center gap-3">
167
159
  <a
168
160
  href={getDefaultUrl('docs', 'domains')}
169
- 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 transition-colors"
161
+ class="inline-flex items-center gap-2 px-5 py-2.5 bg-[rgb(var(--ec-button-bg))] text-[rgb(var(--ec-button-text))] rounded-lg font-medium hover:bg-[rgb(var(--ec-button-bg-hover))] transition-colors"
170
162
  >
171
163
  <BookOpenText className="w-4 h-4" />
172
164
  Explore Docs
173
165
  </a>
174
166
  <a
175
167
  href={getDefaultUrl('visualiser', 'domains')}
176
- class="inline-flex items-center gap-2 px-5 py-2.5 bg-white text-gray-700 border border-gray-300 rounded-lg font-medium hover:bg-gray-50 hover:border-gray-400 transition-colors"
168
+ class="inline-flex items-center gap-2 px-5 py-2.5 bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] text-[rgb(var(--ec-page-text))] border border-[rgb(var(--ec-page-border))] rounded-lg font-medium hover:bg-[rgb(var(--ec-content-hover))] hover:border-[rgb(var(--ec-accent))] transition-colors"
177
169
  >
178
170
  <Workflow className="w-4 h-4" />
179
171
  View Architecture
@@ -188,10 +180,13 @@ const learnLinks = [
188
180
  <!-- Architecture Stats -->
189
181
  <section class="mb-10">
190
182
  <div class="flex items-center justify-between mb-4">
191
- <h2 class="text-sm font-semibold uppercase tracking-wider text-gray-500">Your Catalog</h2>
183
+ <h2 class="text-sm font-semibold uppercase tracking-wider text-[rgb(var(--ec-page-text-muted))]">Your Catalog</h2>
192
184
  {
193
185
  hasContent && (
194
- <a href={buildUrl('/discover/events')} class="text-sm text-gray-500 hover:text-gray-700 flex items-center gap-1">
186
+ <a
187
+ href={buildUrl('/discover/events')}
188
+ class="text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] flex items-center gap-1"
189
+ >
195
190
  View all
196
191
  <ArrowRightIcon className="w-3 h-3" />
197
192
  </a>
@@ -204,31 +199,31 @@ const learnLinks = [
204
199
  tile.count > 0 ? (
205
200
  <a
206
201
  href={tile.href}
207
- class={`group relative bg-white p-5 rounded-xl border border-gray-200 hover:border-gray-300 hover:shadow-sm transition-all`}
202
+ class={`group relative bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] p-5 rounded-xl border border-[rgb(var(--ec-page-border))] hover:border-t-[rgb(var(--ec-accent))] hover:border-r-[rgb(var(--ec-accent))] hover:border-b-[rgb(var(--ec-accent))] hover:shadow-sm transition-all`}
208
203
  >
209
204
  <div class={`absolute left-0 top-0 bottom-0 w-1 ${tile.bgColor} rounded-l-xl`} />
210
205
  <div class="flex items-start justify-between mb-3">
211
- <div class={`p-2 rounded-lg ${tile.iconBg || 'bg-gray-100'}`}>
206
+ <div class={`p-2 rounded-lg ${tile.iconBg || 'bg-[rgb(var(--ec-content-hover))]'}`}>
212
207
  <tile.icon className={`w-4 h-4 ${tile.textColor}`} />
213
208
  </div>
214
- <ArrowRightIcon className="w-4 h-4 text-gray-300 group-hover:text-gray-500 transition-colors" />
209
+ <ArrowRightIcon className="w-4 h-4 text-[rgb(var(--ec-icon-color))] group-hover:text-[rgb(var(--ec-page-text-muted))] transition-colors" />
215
210
  </div>
216
- <div class="text-2xl font-bold text-gray-900 mb-0.5">{tile.count}</div>
217
- <div class="text-sm text-gray-500">{tile.description}</div>
211
+ <div class="text-2xl font-bold text-[rgb(var(--ec-page-text))] mb-0.5">{tile.count}</div>
212
+ <div class="text-sm text-[rgb(var(--ec-page-text-muted))]">{tile.description}</div>
218
213
  </a>
219
214
  ) : (
220
- <div class="relative bg-gray-50 p-5 rounded-xl border border-dashed border-gray-300">
221
- <div class={`absolute left-0 top-0 bottom-0 w-1 bg-gray-300 rounded-l-xl`} />
215
+ <div class="relative bg-[rgb(var(--ec-content-hover))] p-5 rounded-xl border border-dashed border-[rgb(var(--ec-page-border))]">
216
+ <div class={`absolute left-0 top-0 bottom-0 w-1 bg-[rgb(var(--ec-icon-color))] rounded-l-xl`} />
222
217
  <div class="flex items-start justify-between mb-3">
223
- <div class="p-2 rounded-lg bg-gray-100">
224
- <tile.icon className="w-4 h-4 text-gray-400" />
218
+ <div class="p-2 rounded-lg bg-[rgb(var(--ec-content-hover))]">
219
+ <tile.icon className="w-4 h-4 text-[rgb(var(--ec-icon-color))]" />
225
220
  </div>
226
221
  </div>
227
- <div class="text-sm font-medium text-gray-500 mb-2">{tile.emptyText}</div>
222
+ <div class="text-sm font-medium text-[rgb(var(--ec-page-text-muted))] mb-2">{tile.emptyText}</div>
228
223
  <a
229
224
  href={tile.addHref}
230
225
  target="_blank"
231
- class="inline-flex items-center gap-1 text-xs font-medium text-gray-600 hover:text-gray-900"
226
+ class="inline-flex items-center gap-1 text-xs font-medium text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))]"
232
227
  >
233
228
  <PlusIcon className="w-3 h-3" />
234
229
  Add {tile.title.toLowerCase()}
@@ -240,143 +235,104 @@ const learnLinks = [
240
235
  </div>
241
236
  </section>
242
237
 
243
- <!-- Two Column Layout -->
244
- <div class="grid grid-cols-1 lg:grid-cols-3 gap-8 mb-10">
245
- <!-- Main Column -->
246
- <div class="lg:col-span-2 space-y-8">
247
- <!-- Quick Actions -->
248
- <section>
249
- <h2 class="text-lg font-semibold text-gray-900 mb-4">Explore</h2>
250
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
251
- {
252
- quickActions.map((action) => (
253
- <a
254
- href={action.href}
255
- class={`group flex items-start gap-4 bg-white p-5 rounded-xl border border-gray-200 ${action.hoverBorder} hover:shadow-sm transition-all`}
256
- >
257
- <div class={`${action.iconBg} p-3 rounded-xl`}>
258
- <action.icon className={`w-6 h-6 ${action.iconColor}`} />
259
- </div>
260
- <div class="flex-1 min-w-0 pt-0.5">
261
- <div class="font-semibold text-gray-900 group-hover:text-gray-700 mb-1">{action.title}</div>
262
- <div class="text-sm text-gray-500 leading-relaxed">{action.description}</div>
263
- </div>
264
- </a>
265
- ))
266
- }
267
- </div>
268
- </section>
238
+ <!-- Explore Section - Full Width -->
239
+ <section class="mb-10">
240
+ <h2 class="text-lg font-semibold text-[rgb(var(--ec-page-text))] mb-4">Explore</h2>
241
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
242
+ {
243
+ quickActions.map((action: any) => (
244
+ <a
245
+ href={action.href}
246
+ target={action.external ? '_blank' : undefined}
247
+ class="group flex items-start gap-4 bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] p-5 rounded-xl border border-[rgb(var(--ec-page-border))] hover:border-[rgb(var(--ec-accent))] hover:shadow-sm transition-all"
248
+ >
249
+ <div class={`${action.iconBg} p-3 rounded-xl flex-shrink-0`}>
250
+ <action.icon className={`w-5 h-5 ${action.iconColor}`} />
251
+ </div>
252
+ <div class="flex-1 min-w-0 pt-0.5">
253
+ <div class="font-semibold text-[rgb(var(--ec-page-text))] mb-1 flex items-center gap-1.5">
254
+ {action.title}
255
+ {action.external && (
256
+ <svg
257
+ class="w-3.5 h-3.5 text-[rgb(var(--ec-icon-color))]"
258
+ fill="none"
259
+ stroke="currentColor"
260
+ viewBox="0 0 24 24"
261
+ >
262
+ <path
263
+ stroke-linecap="round"
264
+ stroke-linejoin="round"
265
+ stroke-width="2"
266
+ d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
267
+ />
268
+ </svg>
269
+ )}
270
+ </div>
271
+ <div class="text-sm text-[rgb(var(--ec-page-text-muted))] leading-relaxed">{action.description}</div>
272
+ </div>
273
+ </a>
274
+ ))
275
+ }
276
+ </div>
277
+ </section>
269
278
 
270
- <!-- Additional Links -->
271
- <section class="grid grid-cols-1 sm:grid-cols-2 gap-3">
279
+ <!-- Resources & Community - Compact Footer Style -->
280
+ <section class="border-t border-[rgb(var(--ec-page-border))] pt-8 pb-4">
281
+ <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-6">
282
+ <div class="flex flex-wrap items-center gap-x-6 gap-y-3">
272
283
  <a
273
- href={buildUrl('/directory/users')}
274
- class="group flex items-center gap-4 bg-white p-4 rounded-xl border border-gray-200 hover:border-orange-200 hover:shadow-sm transition-all"
284
+ href="https://www.eventcatalog.dev/docs/development/getting-started/introduction"
285
+ target="_blank"
286
+ class="text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
275
287
  >
276
- <div class="bg-orange-50 p-2.5 rounded-lg">
277
- <BookUser className="w-5 h-5 text-orange-600" />
278
- </div>
279
- <div class="flex-1 min-w-0">
280
- <div class="font-medium text-gray-900 group-hover:text-orange-600 transition-colors">Team Directory</div>
281
- <div class="text-sm text-gray-500 truncate">Ownership & contacts</div>
282
- </div>
288
+ Getting Started
283
289
  </a>
284
290
  <a
285
- href="https://www.eventcatalog.dev/docs/sdk"
291
+ href="https://www.eventcatalog.dev/integrations"
286
292
  target="_blank"
287
- class="group flex items-center gap-4 bg-white p-4 rounded-xl border border-gray-200 hover:border-indigo-200 hover:shadow-sm transition-all"
293
+ class="text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
288
294
  >
289
- <div class="bg-indigo-50 p-2.5 rounded-lg">
290
- <Code2 className="w-5 h-5 text-indigo-600" />
291
- </div>
292
- <div class="flex-1 min-w-0">
293
- <div class="font-medium text-gray-900 group-hover:text-indigo-600 transition-colors">API & SDK</div>
294
- <div class="text-sm text-gray-500 truncate">Programmatic access</div>
295
- </div>
295
+ Integrations
296
296
  </a>
297
- </section>
298
- </div>
299
-
300
- <!-- Sidebar -->
301
- <div class="space-y-6">
302
- <!-- Learn More -->
303
- <section class="bg-white rounded-xl border border-gray-200 p-5">
304
- <h3 class="font-semibold text-gray-900 mb-4">Learn More</h3>
305
- <div class="space-y-3">
306
- {
307
- learnLinks.map((link) => (
308
- <a
309
- href={link.href}
310
- target="_blank"
311
- class="group flex items-start gap-3 text-sm hover:bg-gray-50 -mx-2 px-2 py-2 rounded-lg transition-colors"
312
- >
313
- <link.icon className="w-4 h-4 text-gray-400 mt-0.5 flex-shrink-0" />
314
- <div>
315
- <div class="font-medium text-gray-700 group-hover:text-gray-900">{link.title}</div>
316
- <div class="text-gray-500">{link.description}</div>
317
- </div>
318
- </a>
319
- ))
320
- }
321
- </div>
322
- </section>
323
-
324
- <!-- Community -->
325
- <section class="bg-white rounded-xl border border-gray-200 p-5">
326
- <h3 class="font-semibold text-gray-900 mb-4">Community</h3>
327
- <div class="space-y-3">
328
- <a
329
- href="https://discord.gg/3rjaZMmrAm"
330
- target="_blank"
331
- class="group flex items-center gap-3 p-3 -mx-1 rounded-lg hover:bg-gray-50 transition-colors"
332
- >
333
- <div class="bg-indigo-100 p-2 rounded-lg">
334
- <svg class="w-4 h-4 text-indigo-600" fill="currentColor" viewBox="0 0 24 24">
335
- <path
336
- 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"
337
- ></path>
338
- </svg>
339
- </div>
340
- <div>
341
- <div class="text-sm font-medium text-gray-900 group-hover:text-indigo-600">Join Discord</div>
342
- <div class="text-xs text-gray-500">Chat with the community</div>
343
- </div>
344
- </a>
345
- <a
346
- href="https://github.com/event-catalog/eventcatalog"
347
- target="_blank"
348
- class="group flex items-center gap-3 p-3 -mx-1 rounded-lg hover:bg-gray-50 transition-colors"
349
- >
350
- <div class="bg-gray-100 p-2 rounded-lg">
351
- <svg class="w-4 h-4 text-gray-700" fill="currentColor" viewBox="0 0 24 24">
352
- <path
353
- fill-rule="evenodd"
354
- 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"
355
- clip-rule="evenodd"></path>
356
- </svg>
357
- </div>
358
- <div>
359
- <div class="text-sm font-medium text-gray-900 group-hover:text-gray-700">GitHub</div>
360
- <div class="text-xs text-gray-500">Star & contribute</div>
361
- </div>
362
- </a>
363
- <a
364
- href="https://www.eventcatalog.dev/docs"
365
- target="_blank"
366
- class="group flex items-center gap-3 p-3 -mx-1 rounded-lg hover:bg-gray-50 transition-colors"
367
- >
368
- <div class="bg-blue-100 p-2 rounded-lg">
369
- <DocumentTextIcon className="w-4 h-4 text-blue-600" />
370
- </div>
371
- <div>
372
- <div class="text-sm font-medium text-gray-900 group-hover:text-blue-600">Documentation</div>
373
- <div class="text-xs text-gray-500">Guides & references</div>
374
- </div>
375
- </a>
376
- </div>
377
- </section>
297
+ <a
298
+ href="https://www.eventcatalog.dev/docs"
299
+ target="_blank"
300
+ class="text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
301
+ >
302
+ Documentation
303
+ </a>
304
+ </div>
305
+ <div class="flex items-center gap-4">
306
+ <a
307
+ href="https://discord.gg/3rjaZMmrAm"
308
+ target="_blank"
309
+ class="flex items-center gap-2 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
310
+ title="Join Discord"
311
+ >
312
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
313
+ <path
314
+ 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"
315
+ ></path>
316
+ </svg>
317
+ <span class="hidden sm:inline">Discord</span>
318
+ </a>
319
+ <a
320
+ href="https://github.com/event-catalog/eventcatalog"
321
+ target="_blank"
322
+ class="flex items-center gap-2 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
323
+ title="GitHub"
324
+ >
325
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
326
+ <path
327
+ fill-rule="evenodd"
328
+ 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"
329
+ clip-rule="evenodd"></path>
330
+ </svg>
331
+ <span class="hidden sm:inline">GitHub</span>
332
+ </a>
333
+ </div>
378
334
  </div>
379
- </div>
335
+ </section>
380
336
  </main>
381
- </body>
337
+ </div>
382
338
  </VerticalSideBarLayout>
@@ -22,9 +22,9 @@ const specifications = type === 'services' ? getSpecificationsForService(props)
22
22
  ---
23
23
 
24
24
  <VerticalSideBarLayout title={pageTitle}>
25
- <main class="flex docs-layout h-full">
25
+ <main class="flex docs-layout h-full bg-[rgb(var(--ec-page-bg))]">
26
26
  <div class="flex docs-layout w-full pl-16">
27
- <div class="w-full lg:mr-2 pr-8 overflow-y-auto py-8">
27
+ <div class="w-full lg:mr-2 pr-8 overflow-y-auto py-8 bg-[rgb(var(--ec-page-bg))]">
28
28
  {type === 'domains' && <DomainGrid domain={domain} client:load />}
29
29
  {type === 'services' && <MessageGrid service={props} specifications={specifications} client:load />}
30
30
  </div>
@@ -108,10 +108,10 @@ const pagefindAttributes =
108
108
  <div data-pagefind-ignore>
109
109
  {
110
110
  data.version !== data.latestVersion && (
111
- <div class="rounded-md bg-gradient-to-r from-purple-50 to-purple-100 p-4 not-prose my-4">
111
+ <div class="rounded-md bg-[rgb(var(--ec-accent-subtle))] p-4 not-prose my-4">
112
112
  <div class="flex">
113
113
  <div class="flex-shrink-0">
114
- <svg class="h-5 w-5 text-purple-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
114
+ <svg class="h-5 w-5 text-[rgb(var(--ec-accent))]" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
115
115
  <path
116
116
  fill-rule="evenodd"
117
117
  d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z"
@@ -120,8 +120,8 @@ const pagefindAttributes =
120
120
  </svg>
121
121
  </div>
122
122
  <div class="ml-3">
123
- <h3 class="text-sm font-medium text-purple-800">New version found</h3>
124
- <div class="mt-2 text-sm text-purple-700">
123
+ <h3 class="text-sm font-medium text-[rgb(var(--ec-accent-text))]">New version found</h3>
124
+ <div class="mt-2 text-sm text-[rgb(var(--ec-accent-text))]">
125
125
  <p>
126
126
  You are looking at a previous version of the service <strong>{data.name}</strong>.{' '}
127
127
  <a