@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
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Forest Theme for EventCatalog
3
+ *
4
+ * A natural, grounded theme inspired by deep forest greens.
5
+ * Dark, rich greens with an earthy, calming presence.
6
+ */
7
+
8
+ /* Forest Light Mode */
9
+ :root[data-catalog-theme="forest"],
10
+ :root[data-catalog-theme="forest"][data-theme="light"] {
11
+ /* Header - clean white */
12
+ --ec-header-bg: 255 255 255; /* #ffffff */
13
+ --ec-header-text: 20 20 20; /* #141414 */
14
+ --ec-header-border: 229 231 235; /* #e5e7eb gray-200 */
15
+
16
+ /* Primary brand color - deep forest green */
17
+ --ec-primary: 22 101 52; /* #166534 green-800 */
18
+ --ec-primary-hover: 20 83 45; /* #14532d green-900 */
19
+
20
+ /* Accent colors - deep forest green */
21
+ --ec-accent: 22 101 52; /* #166534 (green-800) */
22
+ --ec-accent-hover: 20 83 45; /* #14532d (green-900) */
23
+ --ec-accent-subtle: 220 252 231; /* #dcfce7 (green-100) */
24
+ --ec-accent-text: 20 83 45; /* #14532d (green-900) */
25
+ --ec-accent-gradient-from: 22 101 52; /* #166534 (green-800) */
26
+ --ec-accent-gradient-to: 20 83 45; /* #14532d (green-900) */
27
+
28
+ /* Buttons */
29
+ --ec-button-bg: 22 101 52; /* #166534 green-800 */
30
+ --ec-button-bg-hover: 20 83 45; /* #14532d green-900 */
31
+ --ec-button-text: 255 255 255; /* #ffffff */
32
+
33
+ /* Dropdowns & menus */
34
+ --ec-dropdown-bg: 255 255 255; /* #ffffff */
35
+ --ec-dropdown-text: 55 65 81; /* #374151 gray-700 */
36
+ --ec-dropdown-hover: 240 253 244; /* #f0fdf4 green-50 */
37
+ --ec-dropdown-border: 229 231 235; /* #e5e7eb gray-200 */
38
+
39
+ /* Icons */
40
+ --ec-icon-color: 75 85 99; /* #4b5563 gray-600 */
41
+ --ec-icon-hover: 22 101 52; /* #166534 green-800 */
42
+
43
+ /* Sidebar / Vertical Nav */
44
+ --ec-sidebar-bg: 255 255 255; /* #ffffff */
45
+ --ec-sidebar-bg-gradient: 240 253 244; /* #f0fdf4 green-50 */
46
+ --ec-sidebar-border: 229 231 235; /* #e5e7eb gray-200 */
47
+ --ec-sidebar-text: 75 85 99; /* #4b5563 gray-600 */
48
+ --ec-sidebar-active-bg: 22 101 52; /* #166534 green-800 */
49
+ --ec-sidebar-active-text: 255 255 255; /* #ffffff */
50
+ --ec-sidebar-hover-bg: 22 101 52; /* #166534 green-800 */
51
+
52
+ /* Nested sidebar content */
53
+ --ec-content-bg: 255 255 255; /* #ffffff */
54
+ --ec-content-text: 17 24 39; /* #111827 gray-900 */
55
+ --ec-content-text-muted: 75 85 99; /* #4b5563 gray-600 */
56
+ --ec-content-text-secondary: 107 114 128; /* #6b7280 gray-500 */
57
+ --ec-content-border: 229 231 235; /* #e5e7eb gray-200 */
58
+ --ec-content-hover: 249 250 251; /* #f9fafb gray-50 */
59
+ --ec-content-active: 220 252 231; /* #dcfce7 green-100 */
60
+
61
+ /* Input fields */
62
+ --ec-input-bg: 255 255 255; /* #ffffff */
63
+ --ec-input-border: 209 213 219; /* #d1d5db gray-300 */
64
+ --ec-input-text: 17 24 39; /* #111827 gray-900 */
65
+ --ec-input-placeholder: 156 163 175; /* #9ca3af gray-400 */
66
+
67
+ /* Group headers */
68
+ --ec-group-icon-bg: 220 252 231; /* #dcfce7 green-100 */
69
+ --ec-group-icon-text: 20 83 45; /* #14532d green-900 */
70
+
71
+ /* Main content/docs area */
72
+ --ec-page-bg: 255 255 255; /* #ffffff */
73
+ --ec-page-text: 17 24 39; /* #111827 gray-900 */
74
+ --ec-page-text-muted: 75 85 99; /* #4b5563 gray-600 */
75
+ --ec-page-border: 229 231 235; /* #e5e7eb gray-200 */
76
+
77
+ /* Card/elevated surfaces */
78
+ --ec-card-bg: 255 255 255; /* #ffffff */
79
+
80
+ /* Code blocks */
81
+ --ec-code-bg: 250 250 250; /* #fafafa */
82
+
83
+ /* Badge colors - forest theme */
84
+ --ec-badge-domain-bg: 254 249 195; /* yellow-100 */
85
+ --ec-badge-domain-text: 161 98 7; /* yellow-700 */
86
+ --ec-badge-service-bg: 252 231 243; /* pink-100 */
87
+ --ec-badge-service-text: 190 24 93; /* pink-700 */
88
+ --ec-badge-event-bg: 254 243 199; /* amber-100 */
89
+ --ec-badge-event-text: 180 83 9; /* amber-700 */
90
+ --ec-badge-command-bg: 220 252 231; /* green-100 */
91
+ --ec-badge-command-text: 20 83 45; /* green-900 */
92
+ --ec-badge-query-bg: 207 250 254; /* cyan-100 */
93
+ --ec-badge-query-text: 21 94 117; /* cyan-800 */
94
+ --ec-badge-message-bg: 224 231 255; /* indigo-100 */
95
+ --ec-badge-message-text: 67 56 202; /* indigo-700 */
96
+ --ec-badge-design-bg: 220 252 231; /* green-100 */
97
+ --ec-badge-design-text: 22 101 52; /* green-800 */
98
+ --ec-badge-channel-bg: 224 231 255; /* indigo-100 */
99
+ --ec-badge-channel-text: 67 56 202; /* indigo-700 */
100
+ --ec-badge-default-bg: 240 253 244; /* green-50 */
101
+ --ec-badge-default-text: 75 85 99; /* gray-600 */
102
+ }
103
+
104
+ /* Forest Dark Mode */
105
+ :root[data-catalog-theme="forest"][data-theme="dark"] {
106
+ /* Header - deep forest dark */
107
+ --ec-header-bg: 17 24 39; /* #111827 gray-900 */
108
+ --ec-header-text: 243 244 246; /* #f3f4f6 gray-100 */
109
+ --ec-header-border: 31 41 55; /* #1f2937 gray-800 */
110
+
111
+ /* Accent colors - muted forest green for dark */
112
+ --ec-accent: 74 222 128; /* #4ade80 (green-400) */
113
+ --ec-accent-hover: 34 197 94; /* #22c55e (green-500) */
114
+ --ec-accent-subtle: 20 83 45 / 0.3; /* green-900/30 */
115
+ --ec-accent-text: 134 239 172; /* #86efac (green-300) */
116
+ --ec-accent-gradient-from: 74 222 128; /* #4ade80 (green-400) */
117
+ --ec-accent-gradient-to: 34 197 94; /* #22c55e (green-500) */
118
+
119
+ /* Buttons */
120
+ --ec-button-bg: 22 101 52; /* #166534 green-800 */
121
+ --ec-button-bg-hover: 34 197 94; /* #22c55e green-500 */
122
+ --ec-button-text: 255 255 255; /* #ffffff */
123
+
124
+ /* Dropdowns & menus */
125
+ --ec-dropdown-bg: 17 24 39; /* #111827 */
126
+ --ec-dropdown-text: 209 213 219; /* #d1d5db */
127
+ --ec-dropdown-hover: 31 41 55; /* #1f2937 */
128
+ --ec-dropdown-border: 55 65 81; /* #374151 */
129
+
130
+ /* Icons */
131
+ --ec-icon-color: 156 163 175; /* #9ca3af */
132
+ --ec-icon-hover: 134 239 172; /* #86efac green-300 */
133
+
134
+ /* Sidebar / Vertical Nav */
135
+ --ec-sidebar-bg: 3 7 18; /* #030712 gray-950 */
136
+ --ec-sidebar-bg-gradient: 3 7 18; /* #030712 */
137
+ --ec-sidebar-border: 31 41 55; /* #1f2937 */
138
+ --ec-sidebar-text: 156 163 175; /* #9ca3af */
139
+ --ec-sidebar-active-bg: 22 101 52; /* #166534 green-800 */
140
+ --ec-sidebar-active-text: 255 255 255; /* #ffffff */
141
+ --ec-sidebar-hover-bg: 31 41 55; /* #1f2937 */
142
+
143
+ /* Nested sidebar content */
144
+ --ec-content-bg: 3 7 18; /* #030712 */
145
+ --ec-content-text: 243 244 246; /* #f3f4f6 */
146
+ --ec-content-text-muted: 156 163 175; /* #9ca3af */
147
+ --ec-content-text-secondary: 156 163 175; /* #9ca3af */
148
+ --ec-content-border: 31 41 55; /* #1f2937 */
149
+ --ec-content-hover: 17 24 39; /* #111827 */
150
+ --ec-content-active: 31 41 55; /* #1f2937 */
151
+
152
+ /* Input fields */
153
+ --ec-input-bg: 17 24 39; /* #111827 */
154
+ --ec-input-border: 55 65 81; /* #374151 */
155
+ --ec-input-text: 243 244 246; /* #f3f4f6 */
156
+ --ec-input-placeholder: 107 114 128; /* #6b7280 */
157
+
158
+ /* Group headers */
159
+ --ec-group-icon-bg: 31 41 55; /* #1f2937 */
160
+ --ec-group-icon-text: 134 239 172; /* #86efac green-300 */
161
+
162
+ /* Main content/docs area */
163
+ --ec-page-bg: 3 7 18; /* #030712 */
164
+ --ec-page-text: 243 244 246; /* #f3f4f6 */
165
+ --ec-page-text-muted: 156 163 175; /* #9ca3af */
166
+ --ec-page-border: 31 41 55; /* #1f2937 */
167
+
168
+ /* Card/elevated surfaces */
169
+ --ec-card-bg: 3 7 18; /* #030712 */
170
+
171
+ /* Code blocks */
172
+ --ec-code-bg: 17 24 39; /* #111827 */
173
+
174
+ /* Badge colors - forest dark */
175
+ --ec-badge-domain-bg: 113 63 18 / 0.3; /* yellow-900/30 */
176
+ --ec-badge-domain-text: 253 224 71; /* yellow-300 */
177
+ --ec-badge-service-bg: 131 24 67 / 0.3; /* pink-900/30 */
178
+ --ec-badge-service-text: 249 168 212; /* pink-300 */
179
+ --ec-badge-event-bg: 120 53 15 / 0.3; /* amber-900/30 */
180
+ --ec-badge-event-text: 252 211 77; /* amber-300 */
181
+ --ec-badge-command-bg: 20 83 45 / 0.3; /* green-900/30 */
182
+ --ec-badge-command-text: 134 239 172; /* green-300 */
183
+ --ec-badge-query-bg: 21 94 117 / 0.3; /* cyan-800/30 */
184
+ --ec-badge-query-text: 103 232 249; /* cyan-300 */
185
+ --ec-badge-message-bg: 49 46 129 / 0.3; /* indigo-900/30 */
186
+ --ec-badge-message-text: 165 180 252; /* indigo-300 */
187
+ --ec-badge-design-bg: 20 83 45 / 0.3; /* green-900/30 */
188
+ --ec-badge-design-text: 134 239 172; /* green-300 */
189
+ --ec-badge-channel-bg: 49 46 129 / 0.3; /* indigo-900/30 */
190
+ --ec-badge-channel-text: 165 180 252; /* indigo-300 */
191
+ --ec-badge-default-bg: 55 65 81 / 0.3; /* gray-700/30 */
192
+ --ec-badge-default-text: 209 213 219; /* gray-300 */
193
+ }
194
+
195
+ /* Forest theme prose overrides */
196
+ :root[data-catalog-theme="forest"][data-theme="dark"] .prose {
197
+ --tw-prose-body: rgb(156 163 175); /* gray-400 */
198
+ --tw-prose-headings: rgb(243 244 246); /* gray-100 */
199
+ --tw-prose-lead: rgb(107 114 128); /* gray-500 */
200
+ --tw-prose-links: rgb(74 222 128); /* green-400 */
201
+ --tw-prose-bold: rgb(243 244 246); /* gray-100 */
202
+ --tw-prose-counters: rgb(107 114 128); /* gray-500 */
203
+ --tw-prose-bullets: rgb(75 85 99); /* gray-600 */
204
+ --tw-prose-hr: rgb(31 41 55); /* gray-800 */
205
+ --tw-prose-quotes: rgb(243 244 246); /* gray-100 */
206
+ --tw-prose-quote-borders: rgb(55 65 81); /* gray-700 */
207
+ --tw-prose-captions: rgb(107 114 128); /* gray-500 */
208
+ --tw-prose-code: rgb(243 244 246); /* gray-100 */
209
+ --tw-prose-pre-code: rgb(156 163 175); /* gray-400 */
210
+ --tw-prose-pre-bg: rgb(17 24 39); /* gray-900 */
211
+ --tw-prose-th-borders: rgb(55 65 81); /* gray-700 */
212
+ --tw-prose-td-borders: rgb(31 41 55); /* gray-800 */
213
+ }
214
+
215
+ :root[data-catalog-theme="forest"][data-theme="dark"] .prose code {
216
+ background-color: rgb(31 41 55); /* gray-800 */
217
+ }
218
+
219
+ :root[data-catalog-theme="forest"][data-theme="dark"] .prose pre {
220
+ background-color: rgb(17 24 39); /* gray-900 */
221
+ border: 1px solid rgb(31 41 55); /* gray-800 */
222
+ }
223
+
224
+ :root[data-catalog-theme="forest"][data-theme="dark"] .prose a {
225
+ color: rgb(74 222 128); /* green-400 */
226
+ }
227
+
228
+ :root[data-catalog-theme="forest"][data-theme="dark"] .prose a:hover {
229
+ color: rgb(134 239 172); /* green-300 */
230
+ }
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Ocean Theme for EventCatalog
3
+ *
4
+ * A calm, professional theme inspired by ocean colors.
5
+ * Deep blues and teals with soft aqua accents.
6
+ */
7
+
8
+ /* Ocean Light Mode */
9
+ :root[data-catalog-theme="ocean"],
10
+ :root[data-catalog-theme="ocean"][data-theme="light"] {
11
+ /* Header - light with subtle teal tint */
12
+ --ec-header-bg: 255 255 255; /* #ffffff */
13
+ --ec-header-text: 15 23 42; /* #0f172a */
14
+ --ec-header-border: 226 232 240; /* #e2e8f0 slate-200 - visible border */
15
+
16
+ /* Primary brand color - ocean teal */
17
+ --ec-primary: 20 184 166; /* #14b8a6 teal-500 */
18
+ --ec-primary-hover: 13 148 136; /* #0d9488 teal-600 */
19
+
20
+ /* Accent colors - teal for ocean theme */
21
+ --ec-accent: 20 184 166; /* #14b8a6 (teal-500) */
22
+ --ec-accent-hover: 13 148 136; /* #0d9488 (teal-600) */
23
+ --ec-accent-subtle: 204 251 241; /* #ccfbf1 (teal-100) */
24
+ --ec-accent-text: 17 94 89; /* #115e59 (teal-800) */
25
+ --ec-accent-gradient-from: 20 184 166; /* #14b8a6 (teal-500) */
26
+ --ec-accent-gradient-to: 15 118 110; /* #0f766e (teal-700) */
27
+
28
+ /* Buttons */
29
+ --ec-button-bg: 15 118 110; /* #0f766e teal-700 */
30
+ --ec-button-bg-hover: 17 94 89; /* #115e59 teal-800 */
31
+ --ec-button-text: 255 255 255; /* #ffffff */
32
+
33
+ /* Dropdowns & menus */
34
+ --ec-dropdown-bg: 255 255 255; /* #ffffff */
35
+ --ec-dropdown-text: 51 65 85; /* #334155 */
36
+ --ec-dropdown-hover: 240 253 250; /* #f0fdfa teal-50 */
37
+ --ec-dropdown-border: 226 232 240; /* #e2e8f0 slate-200 */
38
+
39
+ /* Icons */
40
+ --ec-icon-color: 71 85 105; /* #475569 slate-600 */
41
+ --ec-icon-hover: 15 118 110; /* #0f766e teal-700 */
42
+
43
+ /* Sidebar / Vertical Nav - light with teal accent */
44
+ --ec-sidebar-bg: 255 255 255; /* #ffffff */
45
+ --ec-sidebar-bg-gradient: 240 253 250; /* #f0fdfa teal-50 */
46
+ --ec-sidebar-border: 226 232 240; /* #e2e8f0 slate-200 */
47
+ --ec-sidebar-text: 71 85 105; /* #475569 slate-600 */
48
+ --ec-sidebar-active-bg: 13 148 136; /* #0d9488 teal-600 */
49
+ --ec-sidebar-active-text: 255 255 255; /* #ffffff */
50
+ --ec-sidebar-hover-bg: 13 148 136; /* #0d9488 teal-600 - same as active for consistency */
51
+
52
+ /* Nested sidebar content */
53
+ --ec-content-bg: 255 255 255; /* #ffffff */
54
+ --ec-content-text: 15 23 42; /* #0f172a */
55
+ --ec-content-text-muted: 71 85 105; /* #475569 slate-600 */
56
+ --ec-content-text-secondary: 100 116 139; /* #64748b slate-500 */
57
+ --ec-content-border: 226 232 240; /* #e2e8f0 slate-200 */
58
+ --ec-content-hover: 248 250 252; /* #f8fafc slate-50 - neutral gray for table headers */
59
+ --ec-content-active: 204 251 241; /* #ccfbf1 teal-100 */
60
+
61
+ /* Input fields */
62
+ --ec-input-bg: 255 255 255; /* #ffffff */
63
+ --ec-input-border: 203 213 225; /* #cbd5e1 slate-300 */
64
+ --ec-input-text: 15 23 42; /* #0f172a */
65
+ --ec-input-placeholder: 148 163 184; /* #94a3b8 */
66
+
67
+ /* Group headers */
68
+ --ec-group-icon-bg: 204 251 241; /* #ccfbf1 teal-100 */
69
+ --ec-group-icon-text: 17 94 89; /* #115e59 teal-800 */
70
+
71
+ /* Main content/docs area */
72
+ --ec-page-bg: 255 255 255; /* #ffffff */
73
+ --ec-page-text: 15 23 42; /* #0f172a */
74
+ --ec-page-text-muted: 71 85 105; /* #475569 slate-600 */
75
+ --ec-page-border: 226 232 240; /* #e2e8f0 slate-200 */
76
+
77
+ /* Card/elevated surfaces */
78
+ --ec-card-bg: 255 255 255; /* #ffffff */
79
+
80
+ /* Code blocks */
81
+ --ec-code-bg: 250 250 250; /* #fafafa - same as default light */
82
+
83
+ /* Badge colors - ocean theme */
84
+ --ec-badge-domain-bg: 254 249 195; /* yellow-100 */
85
+ --ec-badge-domain-text: 161 98 7; /* yellow-700 */
86
+ --ec-badge-service-bg: 252 231 243; /* pink-100 */
87
+ --ec-badge-service-text: 190 24 93; /* pink-700 */
88
+ --ec-badge-event-bg: 254 243 199; /* amber-100 */
89
+ --ec-badge-event-text: 180 83 9; /* amber-700 */
90
+ --ec-badge-command-bg: 204 251 241; /* teal-100 */
91
+ --ec-badge-command-text: 17 94 89; /* teal-800 */
92
+ --ec-badge-query-bg: 207 250 254; /* cyan-100 */
93
+ --ec-badge-query-text: 21 94 117; /* cyan-800 */
94
+ --ec-badge-message-bg: 224 231 255; /* indigo-100 */
95
+ --ec-badge-message-text: 67 56 202; /* indigo-700 */
96
+ --ec-badge-design-bg: 204 251 241; /* teal-100 */
97
+ --ec-badge-design-text: 15 118 110; /* teal-700 */
98
+ --ec-badge-channel-bg: 224 231 255; /* indigo-100 */
99
+ --ec-badge-channel-text: 67 56 202; /* indigo-700 */
100
+ --ec-badge-default-bg: 240 253 250; /* teal-50 */
101
+ --ec-badge-default-text: 71 85 105; /* slate-600 */
102
+ }
103
+
104
+ /* Ocean Dark Mode */
105
+ :root[data-catalog-theme="ocean"][data-theme="dark"] {
106
+ /*
107
+ * Unified dark background - all major surfaces share the same deep ocean color
108
+ * Creates a seamless, immersive dark experience
109
+ */
110
+
111
+ /* Header - slightly elevated from page for visual hierarchy */
112
+ --ec-header-bg: 15 23 42; /* #0f172a slate-900 - subtle lift */
113
+ --ec-header-text: 226 232 240; /* #e2e8f0 */
114
+ --ec-header-border: 30 41 59; /* #1e293b */
115
+
116
+ /* Accent colors - teal for ocean dark theme */
117
+ --ec-accent: 45 212 191; /* #2dd4bf (teal-400) */
118
+ --ec-accent-hover: 20 184 166; /* #14b8a6 (teal-500) */
119
+ --ec-accent-subtle: 17 94 89 / 0.3; /* teal-800/30 */
120
+ --ec-accent-text: 94 234 212; /* #5eead4 (teal-300) */
121
+ --ec-accent-gradient-from: 45 212 191; /* #2dd4bf (teal-400) */
122
+ --ec-accent-gradient-to: 20 184 166; /* #14b8a6 (teal-500) */
123
+
124
+ /* Buttons */
125
+ --ec-button-bg: 20 184 166; /* #14b8a6 teal-500 */
126
+ --ec-button-bg-hover: 45 212 191; /* #2dd4bf teal-400 */
127
+ --ec-button-text: 2 6 23; /* #020617 */
128
+
129
+ /* Dropdowns & menus - slightly elevated */
130
+ --ec-dropdown-bg: 15 23 42; /* #0f172a */
131
+ --ec-dropdown-text: 203 213 225; /* #cbd5e1 */
132
+ --ec-dropdown-hover: 30 41 59; /* #1e293b */
133
+ --ec-dropdown-border: 51 65 85; /* #334155 */
134
+
135
+ /* Icons */
136
+ --ec-icon-color: 148 163 184; /* #94a3b8 */
137
+ --ec-icon-hover: 94 234 212; /* #5eead4 teal-300 */
138
+
139
+ /* Sidebar / Vertical Nav - same as page bg for unified look */
140
+ --ec-sidebar-bg: 2 6 23; /* #020617 slate-950 */
141
+ --ec-sidebar-bg-gradient: 2 6 23; /* #020617 - same as bg for unified look */
142
+ --ec-sidebar-border: 30 41 59; /* #1e293b */
143
+ --ec-sidebar-text: 148 163 184; /* #94a3b8 */
144
+ --ec-sidebar-active-bg: 20 184 166; /* #14b8a6 teal-500 */
145
+ --ec-sidebar-active-text: 2 6 23; /* #020617 */
146
+ --ec-sidebar-hover-bg: 30 41 59; /* #1e293b */
147
+
148
+ /* Nested sidebar content - same as page bg */
149
+ --ec-content-bg: 2 6 23; /* #020617 */
150
+ --ec-content-text: 226 232 240; /* #e2e8f0 */
151
+ --ec-content-text-muted: 148 163 184; /* #94a3b8 */
152
+ --ec-content-text-secondary: 148 163 184; /* #94a3b8 */
153
+ --ec-content-border: 30 41 59; /* #1e293b */
154
+ --ec-content-hover: 15 23 42; /* #0f172a */
155
+ --ec-content-active: 30 41 59; /* #1e293b */
156
+
157
+ /* Input fields */
158
+ --ec-input-bg: 15 23 42; /* #0f172a */
159
+ --ec-input-border: 51 65 85; /* #334155 */
160
+ --ec-input-text: 226 232 240; /* #e2e8f0 */
161
+ --ec-input-placeholder: 100 116 139; /* #64748b */
162
+
163
+ /* Group headers */
164
+ --ec-group-icon-bg: 30 41 59; /* #1e293b */
165
+ --ec-group-icon-text: 94 234 212; /* #5eead4 teal-300 */
166
+
167
+ /* Main content/docs area - base unified color */
168
+ --ec-page-bg: 2 6 23; /* #020617 */
169
+ --ec-page-text: 226 232 240; /* #e2e8f0 */
170
+ --ec-page-text-muted: 148 163 184; /* #94a3b8 */
171
+ --ec-page-border: 30 41 59; /* #1e293b */
172
+
173
+ /* Card/elevated surfaces - same as page for unified look */
174
+ --ec-card-bg: 2 6 23; /* #020617 */
175
+
176
+ /* Code blocks - slightly elevated for contrast */
177
+ --ec-code-bg: 15 23 42; /* #0f172a */
178
+
179
+ /* Badge colors - ocean dark */
180
+ --ec-badge-domain-bg: 113 63 18 / 0.3; /* yellow-900/30 */
181
+ --ec-badge-domain-text: 253 224 71; /* yellow-300 */
182
+ --ec-badge-service-bg: 131 24 67 / 0.3; /* pink-900/30 */
183
+ --ec-badge-service-text: 249 168 212; /* pink-300 */
184
+ --ec-badge-event-bg: 120 53 15 / 0.3; /* amber-900/30 */
185
+ --ec-badge-event-text: 252 211 77; /* amber-300 */
186
+ --ec-badge-command-bg: 17 94 89 / 0.3; /* teal-800/30 */
187
+ --ec-badge-command-text: 94 234 212; /* teal-300 */
188
+ --ec-badge-query-bg: 21 94 117 / 0.3; /* cyan-800/30 */
189
+ --ec-badge-query-text: 103 232 249; /* cyan-300 */
190
+ --ec-badge-message-bg: 49 46 129 / 0.3; /* indigo-900/30 */
191
+ --ec-badge-message-text: 165 180 252; /* indigo-300 */
192
+ --ec-badge-design-bg: 17 94 89 / 0.3; /* teal-800/30 */
193
+ --ec-badge-design-text: 94 234 212; /* teal-300 */
194
+ --ec-badge-channel-bg: 49 46 129 / 0.3; /* indigo-900/30 */
195
+ --ec-badge-channel-text: 165 180 252; /* indigo-300 */
196
+ --ec-badge-default-bg: 51 65 85 / 0.3; /* slate-700/30 */
197
+ --ec-badge-default-text: 203 213 225; /* slate-300 */
198
+ }
199
+
200
+ /* Ocean theme prose overrides */
201
+ :root[data-catalog-theme="ocean"][data-theme="dark"] .prose {
202
+ --tw-prose-body: rgb(148 163 184); /* slate-400 */
203
+ --tw-prose-headings: rgb(226 232 240); /* slate-200 */
204
+ --tw-prose-lead: rgb(100 116 139); /* slate-500 */
205
+ --tw-prose-links: rgb(45 212 191); /* teal-400 */
206
+ --tw-prose-bold: rgb(226 232 240); /* slate-200 */
207
+ --tw-prose-counters: rgb(100 116 139); /* slate-500 */
208
+ --tw-prose-bullets: rgb(71 85 105); /* slate-600 */
209
+ --tw-prose-hr: rgb(30 41 59); /* slate-800 */
210
+ --tw-prose-quotes: rgb(226 232 240); /* slate-200 */
211
+ --tw-prose-quote-borders: rgb(51 65 85); /* slate-700 */
212
+ --tw-prose-captions: rgb(100 116 139); /* slate-500 */
213
+ --tw-prose-code: rgb(226 232 240); /* slate-200 */
214
+ --tw-prose-pre-code: rgb(148 163 184); /* slate-400 */
215
+ --tw-prose-pre-bg: rgb(15 23 42); /* slate-900 */
216
+ --tw-prose-th-borders: rgb(51 65 85); /* slate-700 */
217
+ --tw-prose-td-borders: rgb(30 41 59); /* slate-800 */
218
+ }
219
+
220
+ :root[data-catalog-theme="ocean"][data-theme="dark"] .prose code {
221
+ background-color: rgb(30 41 59); /* slate-800 */
222
+ }
223
+
224
+ :root[data-catalog-theme="ocean"][data-theme="dark"] .prose pre {
225
+ background-color: rgb(15 23 42); /* slate-900 */
226
+ border: 1px solid rgb(30 41 59); /* slate-800 */
227
+ }
228
+
229
+ :root[data-catalog-theme="ocean"][data-theme="dark"] .prose a {
230
+ color: rgb(45 212 191); /* teal-400 */
231
+ }
232
+
233
+ :root[data-catalog-theme="ocean"][data-theme="dark"] .prose a:hover {
234
+ color: rgb(94 234 212); /* teal-300 */
235
+ }