@eventcatalog/core 3.29.2 → 3.31.1

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 (113) 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-36IA4UE4.js → chunk-7IGMIOQF.js} +1 -1
  6. package/dist/{chunk-EGQGCB2B.js → chunk-HVOLSUC2.js} +1 -1
  7. package/dist/{chunk-DB4IQ3GB.js → chunk-LWVHWR77.js} +1 -1
  8. package/dist/{chunk-VEUNSJ6Z.js → chunk-QIJOBQZ7.js} +1 -1
  9. package/dist/{chunk-MEJOYC5Z.js → chunk-UY5QDWK7.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.js +5 -5
  14. package/dist/generate.cjs +1 -1
  15. package/dist/generate.js +3 -3
  16. package/dist/utils/cli-logger.cjs +1 -1
  17. package/dist/utils/cli-logger.js +2 -2
  18. package/eventcatalog/astro.config.mjs +11 -7
  19. package/eventcatalog/public/logo.png +0 -0
  20. package/eventcatalog/src/components/CopyAsMarkdown.tsx +29 -24
  21. package/eventcatalog/src/components/EnvironmentDropdown.tsx +33 -21
  22. package/eventcatalog/src/components/FieldsExplorer/FieldFilters.tsx +3 -53
  23. package/eventcatalog/src/components/FieldsExplorer/FieldsExplorer.tsx +144 -91
  24. package/eventcatalog/src/components/FieldsExplorer/FieldsTable.tsx +112 -109
  25. package/eventcatalog/src/components/Header.astro +9 -19
  26. package/eventcatalog/src/components/MDX/Accordion/Accordion.tsx +12 -14
  27. package/eventcatalog/src/components/MDX/Accordion/AccordionGroup.astro +11 -3
  28. package/eventcatalog/src/components/MDX/Design/Design.astro +1 -1
  29. package/eventcatalog/src/components/MDX/ResourceRef/ResourceRef.astro +15 -5
  30. package/eventcatalog/src/components/MDX/Tiles/Tile.astro +11 -8
  31. package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +164 -53
  32. package/eventcatalog/src/components/SchemaExplorer/DiffViewer.tsx +1 -1
  33. package/eventcatalog/src/components/SchemaExplorer/ExamplesViewer.tsx +4 -4
  34. package/eventcatalog/src/components/SchemaExplorer/Pagination.tsx +12 -10
  35. package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +48 -77
  36. package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +238 -169
  37. package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +189 -230
  38. package/eventcatalog/src/components/SchemaExplorer/SchemaListItem.tsx +39 -36
  39. package/eventcatalog/src/components/Search/Search.astro +1 -1
  40. package/eventcatalog/src/components/Seo.astro +1 -1
  41. package/eventcatalog/src/components/Settings/AssistantSettingsForm.tsx +218 -0
  42. package/eventcatalog/src/components/Settings/BillingSettingsForm.tsx +265 -0
  43. package/eventcatalog/src/components/Settings/GeneralSettingsForm.tsx +371 -0
  44. package/eventcatalog/src/components/Settings/LlmAccessSettingsForm.tsx +183 -0
  45. package/eventcatalog/src/components/Settings/LogoUpload.tsx +137 -0
  46. package/eventcatalog/src/components/Settings/McpSettingsForm.tsx +91 -0
  47. package/eventcatalog/src/components/Settings/ReadOnlyBanner.tsx +18 -0
  48. package/eventcatalog/src/components/Settings/Row.tsx +59 -0
  49. package/eventcatalog/src/components/Settings/SettingsShared.tsx +176 -0
  50. package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +3 -3
  51. package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +233 -261
  52. package/eventcatalog/src/components/Tables/Discover/DiscoverTable.tsx +116 -68
  53. package/eventcatalog/src/components/Tables/Discover/FilterComponents.tsx +2 -2
  54. package/eventcatalog/src/components/Tables/Discover/columns.tsx +130 -197
  55. package/eventcatalog/src/components/Tables/Table.tsx +21 -18
  56. package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +79 -131
  57. package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +104 -175
  58. package/eventcatalog/src/content.config.ts +1 -1
  59. package/eventcatalog/src/enterprise/auth/error.astro +1 -1
  60. package/eventcatalog/src/enterprise/auth/login.astro +1 -1
  61. package/eventcatalog/src/enterprise/auth/middleware/middleware-auth.ts +11 -7
  62. package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/index.tsx +97 -95
  63. package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +232 -181
  64. package/eventcatalog/src/enterprise/feature.ts +2 -1
  65. package/eventcatalog/src/enterprise/fields/pages/fields.astro +10 -8
  66. package/eventcatalog/src/enterprise/integrations/eventcatalog-features.ts +0 -8
  67. package/eventcatalog/src/layouts/DirectoryLayout.astro +17 -88
  68. package/eventcatalog/src/layouts/SettingsLayout.astro +116 -0
  69. package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +562 -141
  70. package/eventcatalog/src/layouts/VisualiserLayout.astro +7 -2
  71. package/eventcatalog/src/pages/_index.astro +253 -256
  72. package/eventcatalog/src/pages/api/settings/ai.ts +57 -0
  73. package/eventcatalog/src/pages/api/settings/general.ts +71 -0
  74. package/eventcatalog/src/pages/api/settings/logo.ts +113 -0
  75. package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +3 -3
  76. package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +223 -73
  77. package/eventcatalog/src/pages/discover/[type]/index.astro +22 -141
  78. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +130 -30
  79. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +147 -53
  80. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/asyncapi/[filename].astro +6 -2
  81. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/examples/[...filename].astro +2 -2
  82. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +22 -19
  83. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +71 -61
  84. package/eventcatalog/src/pages/docs/[type]/[id]/[version]/spec/[filename].astro +5 -1
  85. package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +3 -3
  86. package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +6 -32
  87. package/eventcatalog/src/pages/docs/llm/llms.txt.ts +5 -1
  88. package/eventcatalog/src/pages/docs/teams/[id]/index.astro +11 -4
  89. package/eventcatalog/src/pages/docs/users/[id]/index.astro +12 -5
  90. package/eventcatalog/src/pages/schemas/explorer/index.astro +10 -8
  91. package/eventcatalog/src/pages/settings/assistant.astro +37 -0
  92. package/eventcatalog/src/pages/settings/billing.astro +17 -0
  93. package/eventcatalog/src/pages/settings/general.astro +32 -0
  94. package/eventcatalog/src/pages/settings/index.astro +21 -0
  95. package/eventcatalog/src/pages/settings/llm-access.astro +34 -0
  96. package/eventcatalog/src/pages/settings/mcp.astro +14 -0
  97. package/eventcatalog/src/pages/studio.astro +1 -1
  98. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/entity-map/index.astro +2 -7
  99. package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +2 -2
  100. package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/entity-map/index.astro +2 -7
  101. package/eventcatalog/src/styles/theme.css +95 -30
  102. package/eventcatalog/src/styles/themes/forest.css +17 -9
  103. package/eventcatalog/src/styles/themes/ocean.css +10 -2
  104. package/eventcatalog/src/styles/themes/sapphire.css +10 -2
  105. package/eventcatalog/src/styles/themes/sunset.css +25 -17
  106. package/eventcatalog/src/types/react-syntax-highlighter.d.ts +13 -0
  107. package/eventcatalog/src/utils/eventcatalog-config/config-schema.ts +49 -0
  108. package/eventcatalog/src/utils/eventcatalog-config/config-writer.ts +149 -0
  109. package/eventcatalog/src/utils/url-builder.ts +4 -2
  110. package/package.json +7 -5
  111. package/eventcatalog/public/logo.svg +0 -14
  112. package/eventcatalog/src/enterprise/plans/index.astro +0 -319
  113. package/eventcatalog/src/pages/docs/llm/llms-services.txt.ts +0 -81
@@ -1,15 +1,8 @@
1
1
  ---
2
2
  import { Table, type TData, type TCollectionTypes } from '@components/Tables/Table';
3
- import { buildUrl } from '@utils/url-builder';
4
3
  import VerticalSideBarLayout from './VerticalSideBarLayout.astro';
5
- import { User, Users } from 'lucide-react';
6
- import { getUsers } from '@utils/collections/users';
7
- import { getTeams } from '@utils/collections/teams';
8
4
  import config from '@config';
9
5
 
10
- const users = await getUsers();
11
- const teams = await getTeams();
12
-
13
6
  export interface Props<T extends TCollectionTypes> {
14
7
  title: string;
15
8
  subtitle: string;
@@ -18,91 +11,33 @@ export interface Props<T extends TCollectionTypes> {
18
11
  }
19
12
 
20
13
  const { title, subtitle, data, type } = Astro.props;
21
- const currentPath = Astro.url.pathname;
22
14
 
23
15
  const checkboxLatestId = 'latest-only';
24
16
  const checkboxDraftsId = 'drafts-only';
25
17
 
26
18
  // @ts-ignore
27
19
  const tableConfiguration = config[type as keyof typeof config]?.tableConfiguration ?? { columns: {} };
28
-
29
- const tabs = [
30
- {
31
- label: `Users (${users.length})`,
32
- href: buildUrl('/directory/users'),
33
- isActive: currentPath === '/directory/users',
34
- icon: User,
35
- activeColor: 'orange',
36
- enabled: users.length > 0,
37
- visible: users.length > 0,
38
- },
39
- {
40
- label: `Teams (${teams.length})`,
41
- href: buildUrl('/directory/teams'),
42
- isActive: currentPath === '/directory/teams',
43
- icon: Users,
44
- activeColor: 'blue',
45
- enabled: teams.length > 0,
46
- visible: teams.length > 0,
47
- },
48
- ];
49
20
  ---
50
21
 
51
22
  <VerticalSideBarLayout title={`Explore | ${title}`} showNestedSideBar={false}>
52
- <main class="ml-0 bg-[rgb(var(--ec-page-bg))]">
53
- <div id="discover-collection-tabs">
54
- <div class="hidden sm:block">
55
- <div class="border-b border-[rgb(var(--ec-page-border))]">
56
- <nav class="flex space-x-8 -mb-0.5 pl-6" aria-label="Tabs">
57
- {
58
- tabs
59
- .filter((tab) => tab.visible)
60
- .map((tab) => (
61
- <a
62
- href={tab.href}
63
- class:list={[
64
- 'group inline-flex items-center py-4 px-1 text-sm font-light text-[rgb(var(--ec-page-text))]',
65
- tab.isActive && 'border-b-[2px] border-[rgb(var(--ec-accent))] text-[rgb(var(--ec-accent))]',
66
- !tab.isActive && 'opacity-70 hover:opacity-100',
67
- !tab.enabled && 'disabled',
68
- ]}
69
- aria-current="page"
70
- >
71
- <tab.icon
72
- className={`w-6 h-6 -ml-0.5 mr-2 ${tab.isActive ? 'text-[rgb(var(--ec-accent))]' : 'text-[rgb(var(--ec-icon-color))]'}`}
73
- />
74
- <span>{tab.label}</span>
75
- </a>
76
- ))
77
- }
78
- </nav>
79
- </div>
23
+ <main
24
+ class="ml-0 bg-[rgb(var(--ec-page-bg))]"
25
+ style="margin-left: calc(var(--ec-app-content-padding-left, 5rem) * -1); margin-right: calc(var(--ec-app-content-padding-right, 5rem) * -1);"
26
+ >
27
+ <div class="p-8 pb-20">
28
+ <div class="min-w-0">
29
+ <h1 class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] capitalize md:text-4xl">{title}</h1>
30
+ <p class="max-w-3xl pt-2 text-base font-light text-[rgb(var(--ec-page-text-muted))]">{subtitle}</p>
80
31
  </div>
81
- </div>
82
-
83
- <!-- Table -->
84
- <div class="pb-20 ml-6 md:pr-10">
85
- <div>
86
- <div class="sm:flex sm:items-end py-4 pb-4" id="discover-title">
87
- <div class="sm:flex-auto space-y-2">
88
- <h1 class="text-4xl font-semibold text-[rgb(var(--ec-page-text))] capitalize">{title}</h1>
89
- <p class="text-md text-[rgb(var(--ec-page-text-muted))]">{subtitle}</p>
90
- </div>
91
- </div>
92
- <div class="mt-4 flow-root">
93
- <div class="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
94
- <div class="inline-block min-w-full align-middle sm:px-6 lg:px-8">
95
- <Table
96
- checkboxLatestId={checkboxLatestId}
97
- checkboxDraftsId={checkboxDraftsId}
98
- data={data}
99
- collection={type}
100
- tableConfiguration={tableConfiguration}
101
- client:load
102
- />
103
- </div>
104
- </div>
105
- </div>
32
+ <div class="mt-2 min-w-0">
33
+ <Table
34
+ checkboxLatestId={checkboxLatestId}
35
+ checkboxDraftsId={checkboxDraftsId}
36
+ data={data}
37
+ collection={type}
38
+ tableConfiguration={tableConfiguration}
39
+ client:load
40
+ />
106
41
  </div>
107
42
  </div>
108
43
  </main>
@@ -112,10 +47,4 @@ const tabs = [
112
47
  .ec-align-top {
113
48
  vertical-align: top !important;
114
49
  }
115
-
116
- a.disabled {
117
- pointer-events: none;
118
- cursor: default;
119
- opacity: 0.25;
120
- }
121
50
  </style>
@@ -0,0 +1,116 @@
1
+ ---
2
+ import VerticalSideBarLayout from './VerticalSideBarLayout.astro';
3
+ import { buildUrl } from '@utils/url-builder';
4
+ import { Settings, Server, Bot, FileText, CreditCard } from 'lucide-react';
5
+
6
+ export type SettingsSection = 'general' | 'mcp' | 'assistant' | 'llm-access' | 'billing';
7
+
8
+ interface Props {
9
+ title: string;
10
+ active: SettingsSection;
11
+ }
12
+
13
+ const { title, active } = Astro.props;
14
+
15
+ interface SectionItem {
16
+ id: SettingsSection;
17
+ label: string;
18
+ href: string;
19
+ icon: any;
20
+ }
21
+
22
+ interface SectionGroup {
23
+ label: string;
24
+ items: SectionItem[];
25
+ }
26
+
27
+ const groups: SectionGroup[] = [
28
+ {
29
+ label: 'Project Settings',
30
+ items: [
31
+ {
32
+ id: 'general',
33
+ label: 'General',
34
+ href: buildUrl('/settings/general'),
35
+ icon: Settings,
36
+ },
37
+ ],
38
+ },
39
+ {
40
+ label: 'AI Settings',
41
+ items: [
42
+ {
43
+ id: 'mcp',
44
+ label: 'MCP',
45
+ href: buildUrl('/settings/mcp'),
46
+ icon: Server,
47
+ },
48
+ {
49
+ id: 'assistant',
50
+ label: 'Agent',
51
+ href: buildUrl('/settings/assistant'),
52
+ icon: Bot,
53
+ },
54
+ {
55
+ id: 'llm-access',
56
+ label: 'LLM Access',
57
+ href: buildUrl('/settings/llm-access'),
58
+ icon: FileText,
59
+ },
60
+ ],
61
+ },
62
+ {
63
+ label: 'Workspace',
64
+ items: [
65
+ {
66
+ id: 'billing',
67
+ label: 'Billing',
68
+ href: buildUrl('/settings/billing'),
69
+ icon: CreditCard,
70
+ },
71
+ ],
72
+ },
73
+ ];
74
+ ---
75
+
76
+ <VerticalSideBarLayout title={`${title} | Settings`} showNestedSideBar={true}>
77
+ <Fragment slot="sidebar-content">
78
+ <div class="settings-rail flex h-full flex-col bg-[rgb(var(--ec-rail-bg))]">
79
+ <nav class="flex flex-1 flex-col gap-4 overflow-y-auto px-3 pt-6 pb-4">
80
+ {
81
+ groups.map((group) => (
82
+ <div class="space-y-1">
83
+ <p class="rail-section-label px-3 pb-1 text-[0.65rem] font-semibold uppercase tracking-[0.18em] text-[rgb(var(--ec-sidebar-text)/0.5)]">
84
+ {group.label}
85
+ </p>
86
+ <div class="flex flex-col gap-1">
87
+ {group.items.map((item) => {
88
+ const isActive = item.id === active;
89
+ return (
90
+ <a
91
+ href={item.href}
92
+ aria-current={isActive ? 'page' : undefined}
93
+ class:list={[
94
+ 'nav-secondary-item flex items-center gap-3 px-3 py-2.5 text-[13px] font-medium transition-colors duration-150',
95
+ isActive
96
+ ? 'font-semibold text-[rgb(var(--ec-page-text))]'
97
+ : 'text-[rgb(var(--ec-sidebar-text))] hover:text-[rgb(var(--ec-page-text))]',
98
+ ]}
99
+ >
100
+ <item.icon className="h-3.5 w-3.5 flex-shrink-0" aria-hidden="true" />
101
+ <span class="nav-item-label">{item.label}</span>
102
+ </a>
103
+ );
104
+ })}
105
+ </div>
106
+ </div>
107
+ ))
108
+ }
109
+ </nav>
110
+ </div>
111
+ </Fragment>
112
+
113
+ <div class="settings-page w-full px-8 py-8">
114
+ <slot />
115
+ </div>
116
+ </VerticalSideBarLayout>