@eventcatalog/core 3.0.0-beta.8 → 3.0.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 (148) hide show
  1. package/README.md +41 -98
  2. package/dist/__mocks__/astro-content.cjs +32 -0
  3. package/dist/__mocks__/astro-content.d.cts +13 -0
  4. package/dist/__mocks__/astro-content.d.ts +13 -0
  5. package/dist/__mocks__/astro-content.js +7 -0
  6. package/dist/analytics/analytics.cjs +1 -1
  7. package/dist/analytics/analytics.js +2 -2
  8. package/dist/analytics/log-build.cjs +1 -1
  9. package/dist/analytics/log-build.js +3 -3
  10. package/dist/catalog-to-astro-content-directory.cjs +2 -19
  11. package/dist/catalog-to-astro-content-directory.d.cts +1 -2
  12. package/dist/catalog-to-astro-content-directory.d.ts +1 -2
  13. package/dist/catalog-to-astro-content-directory.js +3 -5
  14. package/dist/{chunk-R2BJ7MJG.js → chunk-6Z6ARMQS.js} +1 -17
  15. package/dist/{chunk-LQUXA3NB.js → chunk-BYP43AAT.js} +1 -1
  16. package/dist/{chunk-UTHNQFM7.js → chunk-E5Q7TZYT.js} +1 -1
  17. package/dist/{chunk-KEYJ3FB3.js → chunk-EKGR533N.js} +1 -1
  18. package/dist/{chunk-7MCE4J6I.js → chunk-KF5PARQK.js} +1 -1
  19. package/dist/{chunk-I3QUYHIK.js → chunk-VO5WYA44.js} +1 -1
  20. package/dist/constants.cjs +1 -1
  21. package/dist/constants.js +1 -1
  22. package/dist/eventcatalog.cjs +20 -64
  23. package/dist/eventcatalog.config.d.cts +4 -0
  24. package/dist/eventcatalog.config.d.ts +4 -0
  25. package/dist/eventcatalog.js +26 -52
  26. package/dist/generate.cjs +1 -1
  27. package/dist/generate.js +3 -3
  28. package/dist/utils/cli-logger.cjs +1 -1
  29. package/dist/utils/cli-logger.js +2 -2
  30. package/eventcatalog/astro.config.mjs +4 -1
  31. package/eventcatalog/integrations/eventcatalog-features.ts +69 -0
  32. package/eventcatalog/public/icons/asyncapi-black.svg +2 -0
  33. package/eventcatalog/public/icons/graphql-black.svg +1 -0
  34. package/eventcatalog/public/icons/openapi-black.svg +1 -0
  35. package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +994 -0
  36. package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +24 -0
  37. package/eventcatalog/src/components/Grids/DomainGrid.tsx +310 -173
  38. package/eventcatalog/src/components/Grids/MessageGrid.tsx +299 -180
  39. package/eventcatalog/src/components/Grids/specification-utils.ts +106 -0
  40. package/eventcatalog/src/components/Header.astro +25 -5
  41. package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.tsx +14 -3
  42. package/eventcatalog/src/components/SchemaExplorer/ApiAccessSection.tsx +95 -90
  43. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +144 -0
  44. package/eventcatalog/src/components/SchemaExplorer/Pagination.tsx +34 -8
  45. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +2 -2
  46. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsHeader.tsx +140 -109
  47. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +5 -14
  48. package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +247 -59
  49. package/eventcatalog/src/components/SchemaExplorer/SchemaFilters.tsx +64 -126
  50. package/eventcatalog/src/components/SchemaExplorer/SchemaListItem.tsx +41 -43
  51. package/eventcatalog/src/components/Search/Search.astro +2 -2
  52. package/eventcatalog/src/components/Search/SearchDataLoader.astro +25 -0
  53. package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +6 -3
  54. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +44 -16
  55. package/eventcatalog/src/components/SideNav/SideNav.astro +0 -15
  56. package/eventcatalog/src/components/Tables/Table.tsx +96 -77
  57. package/eventcatalog/src/components/Tables/columns/ContainersTableColumns.tsx +108 -74
  58. package/eventcatalog/src/components/Tables/columns/DomainTableColumns.tsx +74 -55
  59. package/eventcatalog/src/components/Tables/columns/FlowTableColumns.tsx +36 -36
  60. package/eventcatalog/src/components/Tables/columns/MessageTableColumns.tsx +110 -77
  61. package/eventcatalog/src/components/Tables/columns/ServiceTableColumns.tsx +105 -94
  62. package/eventcatalog/src/components/Tables/columns/SharedColumns.tsx +31 -26
  63. package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +115 -215
  64. package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +145 -243
  65. package/eventcatalog/src/content.config.ts +1 -13
  66. package/eventcatalog/src/enterprise/ai/chat-api.ts +360 -0
  67. package/eventcatalog/src/enterprise/auth/[...auth].ts +3 -0
  68. package/eventcatalog/src/enterprise/auth/login.astro +420 -0
  69. package/eventcatalog/src/enterprise/collections/index.ts +0 -1
  70. package/eventcatalog/src/layouts/Footer.astro +8 -5
  71. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +133 -117
  72. package/eventcatalog/src/pages/_index.astro +243 -559
  73. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +8 -2
  74. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +9 -5
  75. package/eventcatalog/src/pages/directory/[type]/index.astro +6 -0
  76. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +19 -3
  77. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +7 -7
  78. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +1 -1
  79. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +10 -7
  80. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +194 -121
  81. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +94 -70
  82. package/eventcatalog/src/pages/docs/teams/[id].mdx.ts +36 -0
  83. package/eventcatalog/src/pages/docs/users/[id]/index.astro +56 -45
  84. package/eventcatalog/src/pages/docs/users/[id].mdx.ts +36 -0
  85. package/eventcatalog/src/pages/schemas/explorer/_index.data.ts +178 -0
  86. package/eventcatalog/src/pages/schemas/explorer/index.astro +7 -157
  87. package/eventcatalog/src/pages/studio.astro +124 -72
  88. package/eventcatalog/src/remark-plugins/directives.ts +30 -9
  89. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/container.ts +10 -1
  90. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/domain.ts +17 -7
  91. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/message.ts +10 -1
  92. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/service.ts +11 -4
  93. package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/shared.ts +14 -0
  94. package/eventcatalog/src/stores/{sidebar-store.ts → sidebar-store/index.ts} +1 -1
  95. package/eventcatalog/src/utils/collections/channels.ts +0 -2
  96. package/eventcatalog/src/utils/collections/commands.ts +0 -2
  97. package/eventcatalog/src/utils/collections/containers.ts +0 -2
  98. package/eventcatalog/src/utils/collections/domains.ts +0 -2
  99. package/eventcatalog/src/utils/collections/entities.ts +0 -2
  100. package/eventcatalog/src/utils/collections/events.ts +0 -2
  101. package/eventcatalog/src/utils/collections/flows.ts +0 -2
  102. package/eventcatalog/src/utils/collections/queries.ts +0 -2
  103. package/eventcatalog/src/utils/collections/schemas.ts +45 -7
  104. package/eventcatalog/src/utils/collections/services.ts +0 -2
  105. package/eventcatalog/src/utils/feature.ts +9 -5
  106. package/eventcatalog/src/utils/node-graphs/services-node-graph.ts +1 -1
  107. package/eventcatalog/src/utils/resource-files.ts +86 -0
  108. package/package.json +12 -15
  109. package/default-files-for-collections/changelogs.md +0 -5
  110. package/default-files-for-collections/channels.md +0 -8
  111. package/default-files-for-collections/commands.md +0 -8
  112. package/default-files-for-collections/domains.md +0 -8
  113. package/default-files-for-collections/events.md +0 -8
  114. package/default-files-for-collections/flows.md +0 -11
  115. package/default-files-for-collections/queries.md +0 -8
  116. package/default-files-for-collections/services.md +0 -8
  117. package/default-files-for-collections/ubiquitousLanguages.md +0 -7
  118. package/eventcatalog/src/enterprise/collections/chat-prompts.ts +0 -32
  119. package/eventcatalog/src/enterprise/eventcatalog-chat/components/Chat.tsx +0 -60
  120. package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatMessage.tsx +0 -414
  121. package/eventcatalog/src/enterprise/eventcatalog-chat/components/ChatSidebar.tsx +0 -169
  122. package/eventcatalog/src/enterprise/eventcatalog-chat/components/InputModal.tsx +0 -244
  123. package/eventcatalog/src/enterprise/eventcatalog-chat/components/MentionInput.tsx +0 -211
  124. package/eventcatalog/src/enterprise/eventcatalog-chat/components/WelcomePromptArea.tsx +0 -176
  125. package/eventcatalog/src/enterprise/eventcatalog-chat/components/default-prompts.ts +0 -93
  126. package/eventcatalog/src/enterprise/eventcatalog-chat/components/hooks/ChatProvider.tsx +0 -143
  127. package/eventcatalog/src/enterprise/eventcatalog-chat/components/windows/ChatWindow.server.tsx +0 -387
  128. package/eventcatalog/src/enterprise/eventcatalog-chat/pages/api/chat.ts +0 -59
  129. package/eventcatalog/src/enterprise/eventcatalog-chat/pages/chat/index.astro +0 -104
  130. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/ai-provider.ts +0 -140
  131. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/anthropic.ts +0 -28
  132. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/google.ts +0 -41
  133. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/index.ts +0 -26
  134. package/eventcatalog/src/enterprise/eventcatalog-chat/providers/openai.ts +0 -61
  135. package/eventcatalog/src/enterprise/eventcatalog-chat/utils/chat-prompts.ts +0 -50
  136. package/eventcatalog/src/pages/auth/login.astro +0 -280
  137. package/eventcatalog/src/pages/chat/feature.astro +0 -179
  138. package/eventcatalog/src/pages/chat/index.astro +0 -10
  139. package/eventcatalog/src/pages/docs/_default-docs.mdx +0 -25
  140. package/eventcatalog/src/pages/docs/index.astro +0 -33
  141. package/eventcatalog/src/pages/nav-index.json.ts +0 -30
  142. /package/eventcatalog/src/{pages → enterprise}/auth/error.astro +0 -0
  143. /package/eventcatalog/src/{middleware-auth.ts → enterprise/auth/middleware/middleware-auth.ts} +0 -0
  144. /package/eventcatalog/src/{middleware.ts → enterprise/auth/middleware/middleware.ts} +0 -0
  145. /package/eventcatalog/src/{pages/unauthorized/index.astro → enterprise/auth/unauthorized.astro} +0 -0
  146. /package/eventcatalog/src/{pages → enterprise}/plans/index.astro +0 -0
  147. /package/eventcatalog/src/{components/SideNav/NestedSideBar → stores/sidebar-store}/builders/flow.ts +0 -0
  148. /package/eventcatalog/src/{components/SideNav/NestedSideBar/sidebar-builder.ts → stores/sidebar-store/state.ts} +0 -0
@@ -15,11 +15,12 @@ import {
15
15
  Rocket,
16
16
  FileText,
17
17
  SquareDashedMousePointerIcon,
18
- MailSearch,
18
+ Braces,
19
19
  } from 'lucide-react';
20
20
  import Header from '../components/Header.astro';
21
21
  import SEO from '../components/Seo.astro';
22
22
  import SideNav from '../components/SideNav/SideNav.astro';
23
+ import SearchDataLoader from '../components/Search/SearchDataLoader.astro';
23
24
  import config from '@config';
24
25
  import { getCollection } from 'astro:content';
25
26
  import '@fontsource/inter';
@@ -122,7 +123,7 @@ const navigationItems = [
122
123
  {
123
124
  id: '/schemas/explorer',
124
125
  label: 'Schema Explorer',
125
- icon: MailSearch,
126
+ icon: Braces,
126
127
  href: buildUrl('/schemas/explorer'),
127
128
  current: currentPath.includes('/schemas/explorer'),
128
129
  },
@@ -160,14 +161,6 @@ const premiumFeatures = [
160
161
  current: currentPath.includes('/docs/custom'),
161
162
  isPremium: true,
162
163
  },
163
- {
164
- id: '/chat',
165
- label: 'EventCatalog Chat',
166
- icon: BotMessageSquare,
167
- href: buildUrl('/chat'),
168
- current: currentPath.includes('/chat'),
169
- isPremium: true,
170
- },
171
164
  ].filter((item) => {
172
165
  const userSideBarOption = userSideBarConfiguration.find((config: { id: string; visible: boolean }) => config.id === item.id);
173
166
  return userSideBarOption ? userSideBarOption.visible : true;
@@ -233,133 +226,156 @@ const canPageBeEmbedded = isEmbedEnabled();
233
226
  </style>
234
227
  </head>
235
228
  <body>
236
- <Header />
237
- <div class="flex">
238
- <aside class="flex" id="eventcatalog-vertical-nav">
239
- <div
240
- class="fixed flex flex-col items-center w-14 h-screen py-3 bg-white bg-gradient-to-b from-white to-gray-100 border-r border-gray-200 z-20 shadow-md justify-between"
241
- >
242
- <nav class="flex flex-col h-[calc(100vh-70px)] justify-between">
243
- <div class="flex flex-col items-center flex-1 space-y-6">
244
- {
245
- navigationItems.map((item) => {
246
- return (
229
+ {/* Load search data even when sidebar is hidden */}
230
+ <SearchDataLoader />
231
+ <main id="eventcatalog-application" class="relative">
232
+ <Header />
233
+ <div class="flex">
234
+ <aside class="flex" id="eventcatalog-vertical-nav">
235
+ <div
236
+ class="fixed flex flex-col items-center w-14 h-screen py-3 bg-white bg-gradient-to-b from-white to-gray-100 border-r border-gray-200 z-20 shadow-md justify-between"
237
+ >
238
+ <nav class="flex flex-col h-[calc(100vh-70px)] justify-between">
239
+ <div class="flex flex-col items-center flex-1 space-y-6">
240
+ {
241
+ navigationItems.map((item) => {
242
+ return (
243
+ <a
244
+ id={item.id}
245
+ data-role="nav-item"
246
+ href={item.href}
247
+ aria-label={item.label}
248
+ class={`p-1.5 inline-block transition-colors duration-200 rounded-lg ${
249
+ item.current ? 'text-white bg-gray-900' : 'hover:bg-gray-800 hover:text-white text-gray-700'
250
+ }`}
251
+ >
252
+ <div class="has-tooltip">
253
+ <span
254
+ class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 whitespace-nowrap"
255
+ aria-hidden="true"
256
+ >
257
+ {item.label}
258
+ </span>
259
+ <item.icon className="h-6 w-6" aria-hidden="true" />
260
+ </div>
261
+ </a>
262
+ );
263
+ })
264
+ }
265
+
266
+ <hr class="w-8 border-t border-gray-200" />
267
+
268
+ {
269
+ studioNavigationItem.length > 0 && (
270
+ <a
271
+ id={studioNavigationItem[0].id}
272
+ data-role="nav-item"
273
+ href={studioNavigationItem[0].href}
274
+ aria-label={studioNavigationItem[0].label}
275
+ class={`p-1.5 inline-block pt-1 pb-1 mt-0 mb-0 transition-colors duration-200 rounded-lg relative ${studioNavigationItem[0].current ? 'text-white bg-gray-900' : 'hover:bg-gray-800 hover:text-white text-gray-700'}`}
276
+ >
277
+ <div class="has-tooltip">
278
+ <span
279
+ class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 whitespace-nowrap"
280
+ aria-hidden="true"
281
+ >
282
+ {studioNavigationItem[0].label}
283
+ </span>
284
+ <SquareDashedMousePointerIcon className="h-6 w-6" aria-hidden="true" />
285
+ </div>
286
+ </a>
287
+ )
288
+ }
289
+
290
+ {studioNavigationItem.length > 0 && <hr class="w-8 border-t border-gray-200" />}
291
+
292
+ {
293
+ premiumFeatures.map((item) => (
247
294
  <a
248
295
  id={item.id}
249
296
  data-role="nav-item"
250
297
  href={item.href}
251
- class={`p-1.5 inline-block transition-colors duration-200 rounded-lg ${
298
+ aria-label={item.label}
299
+ class={`p-1.5 inline-block transition-colors duration-200 rounded-lg mb-8 relative ${
252
300
  item.current ? 'text-white bg-gray-900' : 'hover:bg-gray-800 hover:text-white text-gray-700'
253
301
  }`}
254
302
  >
255
303
  <div class="has-tooltip">
256
- <span class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 whitespace-nowrap">
257
- {item.label}
304
+ <span
305
+ class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 flex items-center gap-1 whitespace-nowrap"
306
+ aria-hidden="true"
307
+ >
308
+ <Sparkles className="h-3 w-3" aria-hidden="true" /> {item.label}
258
309
  </span>
259
- <item.icon className="h-6 w-6" />
310
+ <item.icon className="h-6 w-6" aria-hidden="true" />
311
+ <div
312
+ class="absolute -top-1 -right-1 bg-gradient-to-r from-amber-400 to-amber-500 rounded-full p-0.5 shadow-lg"
313
+ aria-hidden="true"
314
+ >
315
+ <Sparkles className="h-2 w-2 text-white" aria-hidden="true" />
316
+ </div>
260
317
  </div>
261
318
  </a>
262
- );
263
- })
264
- }
265
-
266
- <hr class="w-8 border-t border-gray-200" />
319
+ ))
320
+ }
321
+ </div>
267
322
 
268
323
  {
269
- studioNavigationItem.length > 0 && (
270
- <a
271
- id={studioNavigationItem[0].id}
272
- data-role="nav-item"
273
- href={studioNavigationItem[0].href}
274
- class={`p-1.5 inline-block pt-1 pb-1 mt-0 mb-0 transition-colors duration-200 rounded-lg relative ${studioNavigationItem[0].current ? 'text-white bg-gray-900' : 'hover:bg-gray-800 hover:text-white text-gray-700'}`}
275
- >
276
- <div class="has-tooltip">
277
- <span class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 whitespace-nowrap">
278
- {studioNavigationItem[0].label}
279
- </span>
280
- <SquareDashedMousePointerIcon className="h-6 w-6" />
281
- </div>
282
- </a>
324
+ isEventCatalogUpgradeEnabled() && (
325
+ <div class="mb-4">
326
+ <a
327
+ id="/pro"
328
+ data-role="nav-item"
329
+ href={buildUrl('/plans')}
330
+ aria-label="Upgrade EventCatalog"
331
+ class={`p-1.5 inline-block transition-colors duration-200 rounded-lg ${currentPath.includes('/pro') ? 'text-white bg-gray-900' : 'bg-gray-200 hover:bg-gray-800 hover:text-white text-gray-700'}`}
332
+ >
333
+ <div class="has-tooltip">
334
+ <span
335
+ class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 whitespace-nowrap"
336
+ aria-hidden="true"
337
+ >
338
+ Upgrade EventCatalog
339
+ </span>
340
+ <Rocket className="h-6 w-6" aria-hidden="true" />
341
+ </div>
342
+ </a>
343
+ </div>
283
344
  )
284
345
  }
346
+ </nav>
347
+ </div>
285
348
 
286
- {studioNavigationItem.length > 0 && <hr class="w-8 border-t border-gray-200" />}
287
-
288
- {
289
- premiumFeatures.map((item) => (
290
- <a
291
- id={item.id}
292
- data-role="nav-item"
293
- href={item.href}
294
- class={`p-1.5 inline-block transition-colors duration-200 rounded-lg mb-8 relative ${
295
- item.current ? 'text-white bg-gray-900' : 'hover:bg-gray-800 hover:text-white text-gray-700'
296
- }`}
297
- >
298
- <div class="has-tooltip">
299
- <span class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 flex items-center gap-1 whitespace-nowrap">
300
- <Sparkles className="h-3 w-3" /> {item.label}
301
- </span>
302
- <item.icon className="h-6 w-6" />
303
- <div class="absolute -top-1 -right-1 bg-gradient-to-r from-amber-400 to-amber-500 rounded-full p-0.5 shadow-lg">
304
- <Sparkles className="h-2 w-2 text-white" />
305
- </div>
306
- </div>
307
- </a>
308
- ))
309
- }
349
+ {
350
+ showNestedSideBar && (
351
+ <SideNav id="sidebar" class={`sidebar-transition h-content bg-white border-r border-gray-100 w-[320px] ml-14`} />
352
+ )
353
+ }
354
+ </aside>
355
+ <main
356
+ class={`sidebar-transition w-full max-h-content overflow-y-auto ${showNestedSideBar ? 'ml-0' : 'ml-14'}`}
357
+ id="content"
358
+ >
359
+ <slot />
360
+ </main>
361
+
362
+ <!-- Create a overlay that tells people to purchase backstage plugin if they want to embed the page -->
363
+ <div class="absolute inset-0 bg-black items-center justify-center z-50 hidden" id="embed-overlay">
364
+ <div class="text-white text-center space-y-4">
365
+ <div>
366
+ <h1 class="text-2xl font-bold">EventCatalog Backstage Integration</h1>
367
+ <p class="text-md text-red-500">Missing license key for backstage integration.</p>
368
+ </div>
369
+ <div>
370
+ <p class="text-sm text-gray-500">Please configure the backstage plugin to embed this page into Backstage.</p>
371
+ <a href="https://www.eventcatalog.dev/integrations/backstage" class="text-blue-500 text-xs"
372
+ >Configure backstage plugin &rarr;</a
373
+ >
310
374
  </div>
311
-
312
- {
313
- isEventCatalogUpgradeEnabled() && (
314
- <div class="mb-4">
315
- <a
316
- id="/pro"
317
- data-role="nav-item"
318
- href={buildUrl('/plans')}
319
- class={`p-1.5 inline-block transition-colors duration-200 rounded-lg ${currentPath.includes('/pro') ? 'text-white bg-gray-900' : 'bg-gray-200 hover:bg-gray-800 hover:text-white text-gray-700'}`}
320
- >
321
- <div class="has-tooltip">
322
- <span class="tooltip rounded shadow-lg p-1 text-xs bg-gray-900 text-white ml-10 whitespace-nowrap">
323
- Upgrade EventCatalog
324
- </span>
325
- <Rocket className="h-6 w-6" />
326
- </div>
327
- </a>
328
- </div>
329
- )
330
- }
331
- </nav>
332
- </div>
333
-
334
- {
335
- showNestedSideBar && (
336
- <SideNav id="sidebar" class={`sidebar-transition h-content bg-white border-r border-gray-100 w-[320px] ml-14`} />
337
- )
338
- }
339
- </aside>
340
- <main
341
- class={`sidebar-transition w-full max-h-content overflow-y-auto ${showNestedSideBar ? 'ml-0' : 'ml-14'}`}
342
- id="content"
343
- >
344
- <slot />
345
- </main>
346
-
347
- <!-- Create a overlay that tells people to purchase backstage plugin if they want to embed the page -->
348
- <div class="absolute inset-0 bg-black items-center justify-center z-50 hidden" id="embed-overlay">
349
- <div class="text-white text-center space-y-4">
350
- <div>
351
- <h1 class="text-2xl font-bold">EventCatalog Backstage Integration</h1>
352
- <p class="text-md text-red-500">Missing license key for backstage integration.</p>
353
- </div>
354
- <div>
355
- <p class="text-sm text-gray-500">Please configure the backstage plugin to embed this page into Backstage.</p>
356
- <a href="https://www.eventcatalog.dev/integrations/backstage" class="text-blue-500 text-xs"
357
- >Configure backstage plugin &rarr;</a
358
- >
359
375
  </div>
360
376
  </div>
361
377
  </div>
362
- </div>
378
+ </main>
363
379
  </body>
364
380
  </html>
365
381
  <ClientRouter />