@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
@@ -22,15 +22,21 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
22
22
  ---
23
23
 
24
24
  <VerticalSideBarLayout title={pageTitle} description={props.data.summary}>
25
- <main class="flex sm:px-6 docs-layout h-full" data-pagefind-body data-pagefind-meta={`title:${pageTitle}`}>
25
+ <main
26
+ class="flex sm:px-6 docs-layout h-full bg-[rgb(var(--ec-page-bg))]"
27
+ data-pagefind-body
28
+ data-pagefind-meta={`title:${pageTitle}`}
29
+ >
26
30
  <div class="flex docs-layout w-full">
27
31
  <div class="w-full lg:mr-2 pr-8 overflow-y-auto pt-6 pb-8 min-h-[50em]">
28
32
  {/* Title Section */}
29
- <div class="relative border-b border-gray-200 mb-6 pb-6">
33
+ <div class="relative border-b border-[rgb(var(--ec-page-border))] mb-6 pb-6">
30
34
  <div class="xl:flex xl:items-start xl:justify-between">
31
35
  <div class="min-w-0 flex-1">
32
- <h1 class="text-xl font-bold leading-7 text-gray-900 sm:text-2xl xl:text-3xl">Ubiquitous Language</h1>
33
- <p class="mt-2 text-sm text-gray-500">
36
+ <h1 class="text-xl font-bold leading-7 text-[rgb(var(--ec-page-text))] sm:text-2xl xl:text-3xl">
37
+ Ubiquitous Language
38
+ </h1>
39
+ <p class="mt-2 text-sm text-[rgb(var(--ec-page-text-muted))]">
34
40
  Browse and discover ubiquitous language terms in the {props.data.name} domain{
35
41
  subdomains.length > 0 ? ' and its subdomains' : ''
36
42
  }
@@ -43,10 +49,10 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
43
49
  type="text"
44
50
  id="searchInput"
45
51
  placeholder="Search terms..."
46
- class="w-full px-4 py-2.5 pl-10 border border-gray-200 rounded-lg focus:ring-2 focus:ring-gray-900 focus:border-gray-900 text-sm bg-gray-50 focus:bg-white transition-colors"
52
+ class="w-full px-4 py-2.5 pl-10 border border-[rgb(var(--ec-input-border))] rounded-lg focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:border-[rgb(var(--ec-accent))] text-sm bg-[rgb(var(--ec-input-bg))] text-[rgb(var(--ec-input-text))] placeholder:text-[rgb(var(--ec-input-placeholder))] transition-colors"
47
53
  />
48
54
  <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
49
- <svg class="h-4 w-4 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
55
+ <svg class="h-4 w-4 text-[rgb(var(--ec-icon-color))]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
50
56
  <path
51
57
  stroke-linecap="round"
52
58
  stroke-linejoin="round"
@@ -57,7 +63,7 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
57
63
  </div>
58
64
  <div class="mt-2 text-right">
59
65
  <span
60
- class="inline-flex items-center px-2 py-1 text-xs font-medium text-gray-500 bg-gray-100 rounded-md"
66
+ class="inline-flex items-center px-2 py-1 text-xs font-medium text-[rgb(var(--ec-page-text-muted))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] rounded-md"
61
67
  id="resultsCount"
62
68
  >
63
69
  {/* This will be updated by JavaScript */}
@@ -70,15 +76,15 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
70
76
  {
71
77
  !ubiquitousLanguage && subdomains.length === 0 && (
72
78
  <div class="flex flex-col items-center justify-center py-16 px-4">
73
- <div class="flex items-center justify-center w-16 h-16 rounded-full bg-gray-100 mb-4">
79
+ <div class="flex items-center justify-center w-16 h-16 rounded-full bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] mb-4">
74
80
  {(() => {
75
81
  const BookOpen = LucideIcons.BookOpen;
76
82
  //@ts-ignore
77
- return <BookOpen className="w-8 h-8 text-gray-400" />;
83
+ return <BookOpen className="w-8 h-8 text-[rgb(var(--ec-icon-color))]" />;
78
84
  })()}
79
85
  </div>
80
- <h3 class="text-lg font-medium text-gray-900 mb-2">No ubiquitous language defined</h3>
81
- <p class="text-sm text-gray-500 text-center max-w-md">
86
+ <h3 class="text-lg font-medium text-[rgb(var(--ec-page-text))] mb-2">No ubiquitous language defined</h3>
87
+ <p class="text-sm text-[rgb(var(--ec-page-text-muted))] text-center max-w-md">
82
88
  This domain does not have any defined ubiquitous language terms yet. Consider adding some terms to help establish
83
89
  a common vocabulary for your domain.
84
90
  </p>
@@ -98,9 +104,9 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
98
104
  {/* <div class="flex items-center justify-center w-8 h-8 rounded-lg bg-gray-900">
99
105
  <RectangleGroupIcon className="w-4 h-4 text-white" />
100
106
  </div> */}
101
- <h3 class="text-xl font-semibold text-gray-900">
107
+ <h3 class="text-xl font-semibold text-[rgb(var(--ec-page-text))]">
102
108
  {props.data.name} Domain Language
103
- <span class="ml-1 text-sm font-normal text-gray-500">
109
+ <span class="ml-1 text-sm font-normal text-[rgb(var(--ec-page-text-muted))]">
104
110
  ({ubiquitousLanguage?.data?.dictionary?.length || 0} terms)
105
111
  </span>
106
112
  </h3>
@@ -110,48 +116,46 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
110
116
  {ubiquitousLanguage?.data?.dictionary?.map((term) => (
111
117
  <a
112
118
  href={buildUrl(`/docs/${props.collection}/${props.data.id}/language/${term.id}`)}
113
- class={`term-card group block bg-white border rounded-lg p-5 transition-all duration-200 hover:shadow-md hover:border-gray-400 hover:-translate-y-0.5 ${duplicateTerms.has(term.name.toLowerCase()) ? 'border-orange-300 bg-orange-50/50' : 'border-gray-200'}`}
119
+ class={`term-card group block bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border rounded-lg p-5 transition-all duration-200 hover:shadow-md hover:border-[rgb(var(--ec-accent)/0.5)] hover:-translate-y-0.5 ${duplicateTerms.has(term.name.toLowerCase()) ? 'border-orange-500/50 dark:border-orange-500/30' : 'border-[rgb(var(--ec-page-border))]'}`}
114
120
  data-domain="main"
115
121
  >
116
122
  <div class="flex flex-col h-full">
117
123
  <div class="flex items-start justify-between gap-3 mb-3">
118
124
  <div class="flex items-center gap-2.5">
119
125
  {term.icon ? (
120
- <div class="flex items-center justify-center w-8 h-8 rounded-md bg-gray-100 group-hover:bg-gray-200 transition-colors">
126
+ <div class="flex items-center justify-center w-8 h-8 rounded-md bg-[rgb(var(--ec-accent-subtle))] transition-colors">
121
127
  {(() => {
122
128
  const Icon = LucideIcons[term.icon as keyof typeof LucideIcons];
123
129
  //@ts-ignore
124
- return Icon ? <Icon className="w-4 h-4 text-gray-700" /> : null;
130
+ return Icon ? <Icon className="w-4 h-4 text-[rgb(var(--ec-accent))]" /> : null;
125
131
  })()}
126
132
  </div>
127
133
  ) : (
128
- <div class="flex items-center justify-center w-8 h-8 rounded-md bg-gray-100 group-hover:bg-gray-200 transition-colors">
134
+ <div class="flex items-center justify-center w-8 h-8 rounded-md bg-[rgb(var(--ec-accent-subtle))] transition-colors">
129
135
  {(() => {
130
136
  const BookText = LucideIcons.BookText;
131
137
  //@ts-ignore
132
- return (
133
- <BookText className="w-4 h-4 text-gray-500 group-hover:text-gray-700 transition-colors" />
134
- );
138
+ return <BookText className="w-4 h-4 text-[rgb(var(--ec-accent))]" />;
135
139
  })()}
136
140
  </div>
137
141
  )}
138
142
  <h4
139
- class={`text-base font-semibold group-hover:text-black transition-colors ${duplicateTerms.has(term.name.toLowerCase()) ? 'text-orange-800' : 'text-gray-900'}`}
143
+ class={`text-base font-semibold group-hover:text-[rgb(var(--ec-icon-hover))] transition-colors ${duplicateTerms.has(term.name.toLowerCase()) ? 'text-orange-500 dark:text-orange-400' : 'text-[rgb(var(--ec-page-text))]'}`}
140
144
  >
141
145
  {term.name}
142
146
  </h4>
143
147
  </div>
144
148
  {duplicateTerms.has(term.name.toLowerCase()) && (
145
- <span class="flex-shrink-0 inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-orange-100 text-orange-700 border border-orange-200">
149
+ <span class="flex-shrink-0 inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-orange-500/10 text-orange-500 dark:text-orange-400 border border-orange-500/20">
146
150
  Duplicate
147
151
  </span>
148
152
  )}
149
153
  </div>
150
- <p class="summary-text text-gray-600 text-sm leading-relaxed line-clamp-3 flex-grow mb-3">
154
+ <p class="summary-text text-[rgb(var(--ec-page-text-muted))] text-sm leading-relaxed line-clamp-3 flex-grow mb-3">
151
155
  {term.summary}
152
156
  </p>
153
- <div class="pt-3 border-t border-gray-100">
154
- <span class="inline-flex items-center text-sm text-gray-600 font-medium group-hover:text-gray-900">
157
+ <div class="pt-3 border-t border-[rgb(var(--ec-page-border))]">
158
+ <span class="inline-flex items-center text-sm text-[rgb(var(--ec-page-text-muted))] font-medium group-hover:text-[rgb(var(--ec-page-text))]">
155
159
  View details
156
160
  <svg
157
161
  class="ml-1 w-4 h-4 transition-transform group-hover:translate-x-0.5"
@@ -168,11 +172,16 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
168
172
  ))}
169
173
  </div>
170
174
  <div
171
- class="hidden domain-no-results text-center py-12 bg-gray-50 rounded-lg border border-gray-200 border-dashed"
175
+ class="hidden domain-no-results text-center py-12 bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] rounded-lg border border-[rgb(var(--ec-page-border))] border-dashed"
172
176
  data-domain-no-results="main"
173
177
  >
174
- <div class="flex items-center justify-center w-12 h-12 mx-auto mb-4 rounded-full bg-gray-100">
175
- <svg class="w-6 h-6 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
178
+ <div class="flex items-center justify-center w-12 h-12 mx-auto mb-4 rounded-full bg-[rgb(var(--ec-content-hover))]">
179
+ <svg
180
+ class="w-6 h-6 text-[rgb(var(--ec-icon-color))]"
181
+ fill="none"
182
+ stroke="currentColor"
183
+ viewBox="0 0 24 24"
184
+ >
176
185
  <path
177
186
  stroke-linecap="round"
178
187
  stroke-linejoin="round"
@@ -181,8 +190,10 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
181
190
  />
182
191
  </svg>
183
192
  </div>
184
- <h4 class="text-base font-medium text-gray-900">No matching terms in {props.data.name}</h4>
185
- <p class="mt-1 text-sm text-gray-500">Try adjusting your search terms.</p>
193
+ <h4 class="text-base font-medium text-[rgb(var(--ec-page-text))]">
194
+ No matching terms in {props.data.name}
195
+ </h4>
196
+ <p class="mt-1 text-sm text-[rgb(var(--ec-page-text-muted))]">Try adjusting your search terms.</p>
186
197
  </div>
187
198
  </div>
188
199
  )}
@@ -197,16 +208,16 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
197
208
  {/* <div class="flex items-center justify-center w-8 h-8 rounded-lg bg-gray-200">
198
209
  <RectangleGroupIcon className="w-4 h-4 text-gray-700" />
199
210
  </div> */}
200
- <h3 class="text-xl font-semibold text-gray-900">
211
+ <h3 class="text-xl font-semibold text-[rgb(var(--ec-page-text))]">
201
212
  {subdomain.data.name} Domain Language
202
- <span class="ml-1 text-sm font-normal text-gray-500">
213
+ <span class="ml-1 text-sm font-normal text-[rgb(var(--ec-page-text-muted))]">
203
214
  ({subdomainUL?.data?.dictionary?.length || 0} terms)
204
215
  </span>
205
216
  </h3>
206
217
  </div>
207
218
  <a
208
219
  href={buildUrl(`/docs/domains/${subdomain.data.id}/${subdomain.data.version}`)}
209
- class="inline-flex items-center text-sm text-gray-600 hover:text-gray-900 font-medium transition-colors"
220
+ class="inline-flex items-center text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] font-medium transition-colors"
210
221
  >
211
222
  View Domain
212
223
  <svg class="ml-1 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@@ -218,48 +229,46 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
218
229
  {subdomainUL?.data?.dictionary?.map((term) => (
219
230
  <a
220
231
  href={buildUrl(`/docs/${props.collection}/${subdomain.data.id}/language/${term.id}`)}
221
- class={`term-card group block bg-white border rounded-lg p-5 transition-all duration-200 hover:shadow-md hover:border-gray-400 hover:-translate-y-0.5 ${duplicateTerms.has(term.name.toLowerCase()) ? 'border-orange-300 bg-orange-50/50' : 'border-gray-200'}`}
232
+ class={`term-card group block bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border rounded-lg p-5 transition-all duration-200 hover:shadow-md hover:border-[rgb(var(--ec-accent)/0.5)] hover:-translate-y-0.5 ${duplicateTerms.has(term.name.toLowerCase()) ? 'border-orange-500/50 dark:border-orange-500/30' : 'border-[rgb(var(--ec-page-border))]'}`}
222
233
  data-domain={subdomain.data.id}
223
234
  >
224
235
  <div class="flex flex-col h-full">
225
236
  <div class="flex items-start justify-between gap-3 mb-3">
226
237
  <div class="flex items-center gap-2.5">
227
238
  {term.icon ? (
228
- <div class="flex items-center justify-center w-8 h-8 rounded-md bg-gray-100 group-hover:bg-gray-200 transition-colors">
239
+ <div class="flex items-center justify-center w-8 h-8 rounded-md bg-[rgb(var(--ec-accent-subtle))] transition-colors">
229
240
  {(() => {
230
241
  const Icon = LucideIcons[term.icon as keyof typeof LucideIcons];
231
242
  //@ts-ignore
232
- return Icon ? <Icon className="w-4 h-4 text-gray-700" /> : null;
243
+ return Icon ? <Icon className="w-4 h-4 text-[rgb(var(--ec-accent))]" /> : null;
233
244
  })()}
234
245
  </div>
235
246
  ) : (
236
- <div class="flex items-center justify-center w-8 h-8 rounded-md bg-gray-100 group-hover:bg-gray-200 transition-colors">
247
+ <div class="flex items-center justify-center w-8 h-8 rounded-md bg-[rgb(var(--ec-accent-subtle))] transition-colors">
237
248
  {(() => {
238
249
  const BookText = LucideIcons.BookText;
239
250
  //@ts-ignore
240
- return (
241
- <BookText className="w-4 h-4 text-gray-500 group-hover:text-gray-700 transition-colors" />
242
- );
251
+ return <BookText className="w-4 h-4 text-[rgb(var(--ec-accent))]" />;
243
252
  })()}
244
253
  </div>
245
254
  )}
246
255
  <h4
247
- class={`text-base font-semibold group-hover:text-black transition-colors ${duplicateTerms.has(term.name.toLowerCase()) ? 'text-orange-800' : 'text-gray-900'}`}
256
+ class={`text-base font-semibold group-hover:text-[rgb(var(--ec-icon-hover))] transition-colors ${duplicateTerms.has(term.name.toLowerCase()) ? 'text-orange-500 dark:text-orange-400' : 'text-[rgb(var(--ec-page-text))]'}`}
248
257
  >
249
258
  {term.name}
250
259
  </h4>
251
260
  </div>
252
261
  {duplicateTerms.has(term.name.toLowerCase()) && (
253
- <span class="flex-shrink-0 inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-orange-100 text-orange-700 border border-orange-200">
262
+ <span class="flex-shrink-0 inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-orange-500/10 text-orange-500 dark:text-orange-400 border border-orange-500/20">
254
263
  Duplicate
255
264
  </span>
256
265
  )}
257
266
  </div>
258
- <p class="summary-text text-gray-600 text-sm leading-relaxed line-clamp-3 flex-grow mb-3">
267
+ <p class="summary-text text-[rgb(var(--ec-page-text-muted))] text-sm leading-relaxed line-clamp-3 flex-grow mb-3">
259
268
  {term.summary}
260
269
  </p>
261
- <div class="pt-3 border-t border-gray-100">
262
- <span class="inline-flex items-center text-sm text-gray-600 font-medium group-hover:text-gray-900">
270
+ <div class="pt-3 border-t border-[rgb(var(--ec-page-border))]">
271
+ <span class="inline-flex items-center text-sm text-[rgb(var(--ec-page-text-muted))] font-medium group-hover:text-[rgb(var(--ec-page-text))]">
263
272
  View details
264
273
  <svg
265
274
  class="ml-1 w-4 h-4 transition-transform group-hover:translate-x-0.5"
@@ -276,11 +285,16 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
276
285
  ))}
277
286
  </div>
278
287
  <div
279
- class="hidden domain-no-results text-center py-12 bg-gray-50 rounded-lg border border-gray-200 border-dashed"
288
+ class="hidden domain-no-results text-center py-12 bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] rounded-lg border border-[rgb(var(--ec-page-border))] border-dashed"
280
289
  data-domain-no-results={subdomain.data.id}
281
290
  >
282
- <div class="flex items-center justify-center w-12 h-12 mx-auto mb-4 rounded-full bg-gray-100">
283
- <svg class="w-6 h-6 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
291
+ <div class="flex items-center justify-center w-12 h-12 mx-auto mb-4 rounded-full bg-[rgb(var(--ec-content-hover))]">
292
+ <svg
293
+ class="w-6 h-6 text-[rgb(var(--ec-icon-color))]"
294
+ fill="none"
295
+ stroke="currentColor"
296
+ viewBox="0 0 24 24"
297
+ >
284
298
  <path
285
299
  stroke-linecap="round"
286
300
  stroke-linejoin="round"
@@ -289,8 +303,10 @@ const { subdomains, duplicateTerms } = ubiquitousLanguageData;
289
303
  />
290
304
  </svg>
291
305
  </div>
292
- <h4 class="text-base font-medium text-gray-900">No matching terms in {subdomain.data.name}</h4>
293
- <p class="mt-1 text-sm text-gray-500">Try adjusting your search terms.</p>
306
+ <h4 class="text-base font-medium text-[rgb(var(--ec-page-text))]">
307
+ No matching terms in {subdomain.data.name}
308
+ </h4>
309
+ <p class="mt-1 text-sm text-[rgb(var(--ec-page-text-muted))]">Try adjusting your search terms.</p>
294
310
  </div>
295
311
  </div>
296
312
  ))}
@@ -107,7 +107,7 @@ if (!isCustomDocsEnabled()) {
107
107
  <div class="flex flex-wrap items-center gap-3 mb-3">
108
108
  <h1 class="text-4xl font-semibold text-gray-900 font-inter">Custom Documentation</h1>
109
109
  <div
110
- class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium bg-purple-100 text-purple-800 border border-purple-200 shadow-sm"
110
+ class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium bg-[rgb(var(--ec-accent-subtle))] text-[rgb(var(--ec-accent-text))] border border-[rgb(var(--ec-accent)/0.3)] shadow-sm"
111
111
  >
112
112
  Pro feature
113
113
  </div>
@@ -128,7 +128,7 @@ if (!isCustomDocsEnabled()) {
128
128
  !isCustomDocsEnabled() && (
129
129
  <a
130
130
  href="https://www.eventcatalog.dev/pro/trial"
131
- class="inline-flex items-center justify-center px-5 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-gradient-to-r from-purple-500 to-purple-700 hover:from-purple-600 hover:to-purple-800 shadow-sm"
131
+ class="inline-flex items-center justify-center px-5 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-gradient-to-r from-[rgb(var(--ec-accent-gradient-from))] to-[rgb(var(--ec-accent-gradient-to))] hover:opacity-90 shadow-sm"
132
132
  >
133
133
  Start 14-day trial
134
134
  </a>
@@ -66,26 +66,30 @@ const pageTitle = `Team | ${props.data.name}`;
66
66
  <main class="flex sm:px-8 docs-layout h-full" data-pagefind-body data-pagefind-meta={`title:${pageTitle}`}>
67
67
  <div class="flex docs-layout w-full">
68
68
  <div class="w-full lg:mr-2 pr-8 overflow-y-auto py-8">
69
- <div class="border-b border-gray-200 pb-6">
69
+ <div class="border-b border-[rgb(var(--ec-page-border))] pb-6">
70
70
  <div class="flex justify-start">
71
71
  <div class="flex flex-col justify-between space-y-3">
72
72
  <div>
73
73
  <span
74
- class="inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-gray-100 text-gray-700 mb-2"
74
+ class="inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-[rgb(var(--ec-content-hover))] text-[rgb(var(--ec-page-text-muted))] mb-2"
75
75
  >
76
76
  Team
77
77
  </span>
78
- <h2 class="text-3xl font-bold text-gray-900">{props.data.name}</h2>
78
+ <h2 class="text-3xl font-bold text-[rgb(var(--ec-page-text))]">{props.data.name}</h2>
79
79
  </div>
80
- {props.data.summary && <p class="text-base text-gray-600 max-w-2xl">{props.data.summary}</p>}
80
+ {
81
+ props.data.summary && (
82
+ <p class="text-base text-[rgb(var(--ec-page-text-muted))] max-w-2xl">{props.data.summary}</p>
83
+ )
84
+ }
81
85
  <div class="flex flex-wrap gap-3 pt-1">
82
86
  {
83
87
  props.data.email && (
84
88
  <a
85
89
  href={`mailto:${props.data.email}`}
86
- class="inline-flex items-center gap-1.5 text-sm text-gray-600 hover:text-gray-900 transition-colors"
90
+ class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
87
91
  >
88
- <EnvelopeIcon className="w-4 h-4 text-gray-400" />
92
+ <EnvelopeIcon className="w-4 h-4 text-[rgb(var(--ec-icon-color))]" />
89
93
  <span>Email</span>
90
94
  </a>
91
95
  )
@@ -94,7 +98,7 @@ const pageTitle = `Team | ${props.data.name}`;
94
98
  props.data.slackDirectMessageUrl && (
95
99
  <a
96
100
  href={props.data.slackDirectMessageUrl}
97
- class="inline-flex items-center gap-1.5 text-sm text-gray-600 hover:text-gray-900 transition-colors"
101
+ class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
98
102
  >
99
103
  <img src={buildUrl('/slack-icon.svg', true)} class="w-4 h-4" alt="Slack" />
100
104
  <span>Slack</span>
@@ -107,7 +111,7 @@ const pageTitle = `Team | ${props.data.name}`;
107
111
  href={props.data.msTeamsDirectMessageUrl}
108
112
  target="_blank"
109
113
  rel="noopener noreferrer"
110
- class="inline-flex items-center gap-1.5 text-sm text-gray-600 hover:text-gray-900 transition-colors"
114
+ class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
111
115
  >
112
116
  <img src={buildUrl('/icons/ms-teams.svg', true)} class="w-4 h-4" alt="Teams" />
113
117
  <span>Teams</span>
@@ -118,23 +122,23 @@ const pageTitle = `Team | ${props.data.name}`;
118
122
  </div>
119
123
  </div>
120
124
  </div>
121
- <div class="border-b border-gray-200 py-4" data-pagefind-ignore>
125
+ <div class="border-b border-[rgb(var(--ec-page-border))] py-4" data-pagefind-ignore>
122
126
  <dl class="grid grid-cols-2 gap-3 sm:grid-cols-4">
123
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
124
- <dt class="text-xs font-medium text-gray-500">Domains</dt>
125
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{ownedDomainsList.length}</dd>
127
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
128
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Domains</dt>
129
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{ownedDomainsList.length}</dd>
126
130
  </div>
127
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
128
- <dt class="text-xs font-medium text-gray-500">Services</dt>
129
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{ownedServicesList.length}</dd>
131
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
132
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Services</dt>
133
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{ownedServicesList.length}</dd>
130
134
  </div>
131
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
132
- <dt class="text-xs font-medium text-gray-500">Messages</dt>
133
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{ownedMessagesList.length}</dd>
135
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
136
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Messages</dt>
137
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{ownedMessagesList.length}</dd>
134
138
  </div>
135
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
136
- <dt class="text-xs font-medium text-gray-500">Members</dt>
137
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{membersList.length}</dd>
139
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
140
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Members</dt>
141
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{membersList.length}</dd>
138
142
  </div>
139
143
  </dl>
140
144
  </div>
@@ -63,30 +63,34 @@ const pageTitle = `User | ${props.data.name}`;
63
63
  <main class="flex sm:px-8 docs-layout h-full" data-pagefind-body data-pagefind-meta={`title:${pageTitle}`}>
64
64
  <div class="flex docs-layout w-full">
65
65
  <div class="w-full lg:mr-2 pr-8 overflow-y-auto py-8">
66
- <div class="border-b border-gray-200 pb-6">
66
+ <div class="border-b border-[rgb(var(--ec-page-border))] pb-6">
67
67
  <div class="flex justify-start gap-6">
68
68
  {
69
69
  props.data.avatarUrl && (
70
70
  <img
71
71
  src={props.data.avatarUrl}
72
72
  alt={`${props.data.name}'s profile picture`}
73
- class="w-20 h-20 rounded-full object-cover border-2 border-gray-100"
73
+ class="w-20 h-20 rounded-full object-cover border-2 border-[rgb(var(--ec-page-border))]"
74
74
  />
75
75
  )
76
76
  }
77
77
  <div class="flex flex-col justify-center space-y-2">
78
78
  <div>
79
- <h2 class="text-3xl font-bold text-gray-900">{props.data.name}</h2>
80
- {props.data.role && <span class="text-base font-medium text-gray-500">{props.data.role}</span>}
79
+ <h2 class="text-3xl font-bold text-[rgb(var(--ec-page-text))]">{props.data.name}</h2>
80
+ {
81
+ props.data.role && (
82
+ <span class="text-base font-medium text-[rgb(var(--ec-page-text-muted))]">{props.data.role}</span>
83
+ )
84
+ }
81
85
  </div>
82
86
  <div class="flex flex-wrap gap-3">
83
87
  {
84
88
  props.data.email && (
85
89
  <a
86
90
  href={`mailto:${props.data.email}`}
87
- class="inline-flex items-center gap-1.5 text-sm text-gray-600 hover:text-gray-900 transition-colors"
91
+ class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
88
92
  >
89
- <EnvelopeIcon className="w-4 h-4 text-gray-400" />
93
+ <EnvelopeIcon className="w-4 h-4 text-[rgb(var(--ec-icon-color))]" />
90
94
  <span>Email</span>
91
95
  </a>
92
96
  )
@@ -95,7 +99,7 @@ const pageTitle = `User | ${props.data.name}`;
95
99
  props.data.slackDirectMessageUrl && (
96
100
  <a
97
101
  href={props.data.slackDirectMessageUrl}
98
- class="inline-flex items-center gap-1.5 text-sm text-gray-600 hover:text-gray-900 transition-colors"
102
+ class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
99
103
  >
100
104
  <img src={buildUrl('/slack-icon.svg', true)} class="w-4 h-4" alt="Slack" />
101
105
  <span>Slack</span>
@@ -108,7 +112,7 @@ const pageTitle = `User | ${props.data.name}`;
108
112
  href={props.data.msTeamsDirectMessageUrl}
109
113
  target="_blank"
110
114
  rel="noopener noreferrer"
111
- class="inline-flex items-center gap-1.5 text-sm text-gray-600 hover:text-gray-900 transition-colors"
115
+ class="inline-flex items-center gap-1.5 text-sm text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] transition-colors"
112
116
  >
113
117
  <img src={buildUrl('/icons/ms-teams.svg', true)} class="w-4 h-4" alt="Teams" />
114
118
  <span>Teams</span>
@@ -119,23 +123,23 @@ const pageTitle = `User | ${props.data.name}`;
119
123
  </div>
120
124
  </div>
121
125
  </div>
122
- <div class="border-b border-gray-200 py-4" data-pagefind-ignore>
126
+ <div class="border-b border-[rgb(var(--ec-page-border))] py-4" data-pagefind-ignore>
123
127
  <dl class="grid grid-cols-2 gap-3 sm:grid-cols-4">
124
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
125
- <dt class="text-xs font-medium text-gray-500">Domains</dt>
126
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{ownedDomainsList.length}</dd>
128
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
129
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Domains</dt>
130
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{ownedDomainsList.length}</dd>
127
131
  </div>
128
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
129
- <dt class="text-xs font-medium text-gray-500">Services</dt>
130
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{ownedServicesList.length}</dd>
132
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
133
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Services</dt>
134
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{ownedServicesList.length}</dd>
131
135
  </div>
132
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
133
- <dt class="text-xs font-medium text-gray-500">Messages</dt>
134
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{ownedMessageList.length}</dd>
136
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
137
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Messages</dt>
138
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{ownedMessageList.length}</dd>
135
139
  </div>
136
- <div class="flex flex-col p-4 bg-gray-50 rounded-lg">
137
- <dt class="text-xs font-medium text-gray-500">Teams</dt>
138
- <dd class="text-2xl font-semibold text-gray-900 mt-1">{associatedTeams.length}</dd>
140
+ <div class="flex flex-col p-4 bg-[rgb(var(--ec-content-hover))] rounded-lg">
141
+ <dt class="text-xs font-medium text-[rgb(var(--ec-page-text-muted))]">Teams</dt>
142
+ <dd class="text-2xl font-semibold text-[rgb(var(--ec-page-text))] mt-1">{associatedTeams.length}</dd>
139
143
  </div>
140
144
  </dl>
141
145
  </div>
@@ -13,7 +13,7 @@ const apiAccessEnabled = isEventCatalogScaleEnabled();
13
13
  ---
14
14
 
15
15
  <VerticalSideBarLayout title="Schema Explorer - EventCatalog" showNestedSideBar={false}>
16
- <main class="flex sm:pl-8 pr-4 docs-layout h-[calc(100vh-var(--header-height,0px)-64px)]">
16
+ <main class="flex sm:pl-8 pr-4 docs-layout h-[calc(100vh-var(--header-height,0px)-64px)] bg-[rgb(var(--ec-page-bg))]">
17
17
  <div class="flex docs-layout w-full h-full">
18
18
  <div class="w-full lg:mr-2 py-6 flex flex-col h-full">
19
19
  <div class="w-full !max-w-none h-full flex flex-col overflow-hidden">