@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
@@ -47,24 +47,28 @@ const MessageCard = memo(({ message, compact = false }: { message: any; compact?
47
47
  return (
48
48
  <a
49
49
  href={buildUrl(`/docs/${message.collection}/${message.data.id}/${message.data.version}`)}
50
- className={`group block bg-white border border-${color}-200 rounded-lg shadow-sm hover:shadow-md hover:border-${color}-300 transition-all`}
50
+ className={`group block bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-${color}-200 dark:border-${color}-500/30 rounded-lg shadow-sm hover:shadow-md hover:border-${color}-300 dark:hover:border-${color}-500/50 transition-all`}
51
51
  >
52
52
  <div className={compact ? 'p-3' : 'p-4'}>
53
53
  <div className="flex items-center gap-2 mb-1">
54
- <div className={`flex items-center justify-center w-7 h-7 bg-${color}-100 rounded-md`}>
55
- <Icon className={`h-4 w-4 text-${color}-600`} />
54
+ <div className={`flex items-center justify-center w-7 h-7 bg-${color}-100 dark:bg-${color}-500/20 rounded-md`}>
55
+ <Icon className={`h-4 w-4 text-${color}-600 dark:text-${color}-400`} />
56
56
  </div>
57
57
  <h3
58
- className={`font-semibold text-gray-900 group-hover:text-${color}-600 transition-colors truncate ${compact ? 'text-sm' : 'text-base'}`}
58
+ className={`font-semibold text-[rgb(var(--ec-page-text))] group-hover:text-${color}-600 dark:group-hover:text-${color}-400 transition-colors truncate ${compact ? 'text-sm' : 'text-base'}`}
59
59
  >
60
60
  {message.data.name}
61
61
  </h3>
62
- <span className={`text-[10px] text-${color}-600 font-medium bg-${color}-50 px-1.5 py-0.5 rounded flex-shrink-0`}>
62
+ <span
63
+ className={`text-[10px] text-${color}-600 dark:text-${color}-400 font-medium bg-${color}-50 dark:bg-${color}-500/20 px-1.5 py-0.5 rounded flex-shrink-0`}
64
+ >
63
65
  v{message.data.version}
64
66
  </span>
65
67
  </div>
66
68
  {message.data.summary && (
67
- <p className={`text-gray-600 line-clamp-2 ${compact ? 'text-xs mt-1' : 'text-sm mt-2'}`}>{message.data.summary}</p>
69
+ <p className={`text-[rgb(var(--ec-page-text-muted))] line-clamp-2 ${compact ? 'text-xs mt-1' : 'text-sm mt-2'}`}>
70
+ {message.data.summary}
71
+ </p>
68
72
  )}
69
73
  </div>
70
74
  </a>
@@ -78,20 +82,28 @@ const ContainerCard = memo(({ container, type }: { container: any; type: 'reads'
78
82
  return (
79
83
  <a
80
84
  href={buildUrl(`/docs/containers/${container.data.id}/${container.data.version}`)}
81
- className={`group block bg-white border rounded-lg shadow-sm hover:shadow-md transition-all ${
82
- type === 'reads' ? 'border-amber-200 hover:border-amber-300' : 'border-violet-200 hover:border-violet-300'
85
+ className={`group block bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border rounded-lg shadow-sm hover:shadow-md transition-all ${
86
+ type === 'reads'
87
+ ? 'border-amber-200 dark:border-amber-500/30 hover:border-amber-300 dark:hover:border-amber-500/50'
88
+ : 'border-violet-200 dark:border-violet-500/30 hover:border-violet-300 dark:hover:border-violet-500/50'
83
89
  }`}
84
90
  >
85
91
  <div className="p-3">
86
92
  <div className="flex items-center gap-2">
87
- <div className={`flex items-center justify-center w-7 h-7 bg-${colorClass}-100 rounded-md`}>
88
- <CircleStackIcon className={`h-4 w-4 text-${colorClass}-600`} />
93
+ <div
94
+ className={`flex items-center justify-center w-7 h-7 bg-${colorClass}-100 dark:bg-${colorClass}-500/20 rounded-md`}
95
+ >
96
+ <CircleStackIcon className={`h-4 w-4 text-${colorClass}-600 dark:text-${colorClass}-400`} />
89
97
  </div>
90
- <h3 className={`font-semibold text-gray-900 text-sm group-hover:text-${colorClass}-600 transition-colors truncate`}>
98
+ <h3
99
+ className={`font-semibold text-[rgb(var(--ec-page-text))] text-sm group-hover:text-${colorClass}-600 dark:group-hover:text-${colorClass}-400 transition-colors truncate`}
100
+ >
91
101
  {container.data.name}
92
102
  </h3>
93
103
  </div>
94
- {container.data.summary && <p className="text-xs text-gray-600 mt-1.5 line-clamp-2">{container.data.summary}</p>}
104
+ {container.data.summary && (
105
+ <p className="text-xs text-[rgb(var(--ec-page-text-muted))] mt-1.5 line-clamp-2">{container.data.summary}</p>
106
+ )}
95
107
  </div>
96
108
  </a>
97
109
  );
@@ -105,14 +117,16 @@ const SpecificationCard = memo(
105
117
  return (
106
118
  <a
107
119
  href={getSpecUrl(spec, serviceId, serviceVersion)}
108
- className={`group flex items-center gap-3 p-3 bg-white border border-${color}-200 rounded-lg shadow-sm hover:shadow-md hover:border-${color}-300 transition-all`}
120
+ className={`group flex items-center gap-3 p-3 bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-${color}-200 dark:border-${color}-500/30 rounded-lg shadow-sm hover:shadow-md hover:border-${color}-300 dark:hover:border-${color}-500/50 transition-all`}
109
121
  >
110
122
  <img src={buildUrl(`/icons/${getSpecIcon(spec.type)}.svg`, true)} alt={`${spec.type} icon`} className="h-6 w-6" />
111
123
  <div className="flex-1 min-w-0">
112
- <h3 className={`font-semibold text-gray-900 text-sm group-hover:text-${color}-600 transition-colors truncate`}>
124
+ <h3
125
+ className={`font-semibold text-[rgb(var(--ec-page-text))] text-sm group-hover:text-${color}-600 dark:group-hover:text-${color}-400 transition-colors truncate`}
126
+ >
113
127
  {spec.name || spec.filename}
114
128
  </h3>
115
- <p className="text-xs text-gray-500">{getSpecLabel(spec.type)}</p>
129
+ <p className="text-xs text-[rgb(var(--ec-page-text-muted))]">{getSpecLabel(spec.type)}</p>
116
130
  </div>
117
131
  </a>
118
132
  );
@@ -140,19 +154,21 @@ const CollapsibleMessageSection = memo(
140
154
  const hasContent = messages.length > 0;
141
155
 
142
156
  return (
143
- <div className="bg-white border border-gray-200 rounded-xl shadow-sm overflow-hidden">
157
+ <div className="bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] rounded-xl shadow-sm overflow-hidden">
144
158
  <div
145
159
  onClick={() => setIsCollapsed(!isCollapsed)}
146
- className={`flex items-center justify-between px-5 py-4 cursor-pointer hover:bg-gray-50 transition-colors ${!isCollapsed && hasContent ? 'border-b border-gray-200' : ''}`}
160
+ className={`flex items-center justify-between px-5 py-4 cursor-pointer hover:bg-[rgb(var(--ec-content-hover))] transition-colors ${!isCollapsed && hasContent ? 'border-b border-[rgb(var(--ec-page-border))]' : ''}`}
147
161
  >
148
162
  <div className="flex items-center gap-3">
149
- <div className={`flex items-center justify-center w-8 h-8 bg-${color}-100 rounded-lg`}>
150
- <Icon className={`h-4 w-4 text-${color}-600`} />
163
+ <div className={`flex items-center justify-center w-8 h-8 bg-${color}-100 dark:bg-${color}-500/20 rounded-lg`}>
164
+ <Icon className={`h-4 w-4 text-${color}-600 dark:text-${color}-400`} />
151
165
  </div>
152
- <h2 className="text-base font-bold text-gray-900">{title}</h2>
153
- <span className="text-sm text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full font-medium">{messages.length}</span>
166
+ <h2 className="text-base font-bold text-[rgb(var(--ec-page-text))]">{title}</h2>
167
+ <span className="text-sm text-[rgb(var(--ec-page-text-muted))] bg-[rgb(var(--ec-content-hover))] px-2 py-0.5 rounded-full font-medium">
168
+ {messages.length}
169
+ </span>
154
170
  </div>
155
- <div className="text-gray-400">
171
+ <div className="text-[rgb(var(--ec-icon-color))]">
156
172
  {isCollapsed ? <ChevronDownIcon className="h-5 w-5" /> : <ChevronUpIcon className="h-5 w-5" />}
157
173
  </div>
158
174
  </div>
@@ -166,7 +182,7 @@ const CollapsibleMessageSection = memo(
166
182
  </div>
167
183
  ) : (
168
184
  <div className="text-center py-4">
169
- <p className="text-sm text-gray-400">{emptyText}</p>
185
+ <p className="text-sm text-[rgb(var(--ec-icon-color))]">{emptyText}</p>
170
186
  </div>
171
187
  )}
172
188
  </div>
@@ -182,19 +198,21 @@ const CollapsibleContainerSection = memo(
182
198
  const [isCollapsed, setIsCollapsed] = useState(false);
183
199
 
184
200
  return (
185
- <div className="bg-white border border-gray-200 rounded-xl shadow-sm overflow-hidden">
201
+ <div className="bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] rounded-xl shadow-sm overflow-hidden">
186
202
  <div
187
203
  onClick={() => setIsCollapsed(!isCollapsed)}
188
- className={`flex items-center justify-between px-5 py-4 cursor-pointer hover:bg-gray-50 transition-colors ${!isCollapsed ? 'border-b border-gray-200' : ''}`}
204
+ className={`flex items-center justify-between px-5 py-4 cursor-pointer hover:bg-[rgb(var(--ec-content-hover))] transition-colors ${!isCollapsed ? 'border-b border-[rgb(var(--ec-page-border))]' : ''}`}
189
205
  >
190
206
  <div className="flex items-center gap-3">
191
- <div className={`flex items-center justify-center w-8 h-8 bg-${color}-100 rounded-lg`}>
192
- <CircleStackIcon className={`h-4 w-4 text-${color}-600`} />
207
+ <div className={`flex items-center justify-center w-8 h-8 bg-${color}-100 dark:bg-${color}-500/20 rounded-lg`}>
208
+ <CircleStackIcon className={`h-4 w-4 text-${color}-600 dark:text-${color}-400`} />
193
209
  </div>
194
- <h2 className="text-base font-bold text-gray-900">{title}</h2>
195
- <span className="text-sm text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full font-medium">{containers.length}</span>
210
+ <h2 className="text-base font-bold text-[rgb(var(--ec-page-text))]">{title}</h2>
211
+ <span className="text-sm text-[rgb(var(--ec-page-text-muted))] bg-[rgb(var(--ec-content-hover))] px-2 py-0.5 rounded-full font-medium">
212
+ {containers.length}
213
+ </span>
196
214
  </div>
197
- <div className="text-gray-400">
215
+ <div className="text-[rgb(var(--ec-icon-color))]">
198
216
  {isCollapsed ? <ChevronDownIcon className="h-5 w-5" /> : <ChevronUpIcon className="h-5 w-5" />}
199
217
  </div>
200
218
  </div>
@@ -221,26 +239,28 @@ export default function MessageGridV2({ service, embeded = false, specifications
221
239
  return (
222
240
  <div className="w-full">
223
241
  {/* Service Header - Doc style */}
224
- <div className="border-b border-gray-200 md:pb-4">
242
+ <div className="border-b border-[rgb(var(--ec-page-border))] md:pb-4">
225
243
  <div className="flex items-start justify-between">
226
244
  <div>
227
- <h2 className="text-2xl md:text-4xl font-bold text-black">{service.data.name}</h2>
228
- {service.data.summary && <p className="text-lg pt-2 text-gray-500 font-light">{service.data.summary}</p>}
245
+ <h2 className="text-2xl md:text-4xl font-bold text-[rgb(var(--ec-page-text))]">{service.data.name}</h2>
246
+ {service.data.summary && (
247
+ <p className="text-lg pt-2 text-[rgb(var(--ec-page-text-muted))] font-light">{service.data.summary}</p>
248
+ )}
229
249
  </div>
230
250
  <div className="flex items-center gap-2 flex-shrink-0">
231
251
  <a
232
252
  href={buildUrl(`/docs/services/${service.data.id}/${service.data.version}`)}
233
- className="inline-flex items-center gap-1.5 px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-200 rounded-lg hover:bg-gray-50 hover:border-gray-300 transition-all"
253
+ className="inline-flex items-center gap-1.5 px-3 py-2 text-sm font-medium text-[rgb(var(--ec-page-text))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] rounded-lg hover:bg-[rgb(var(--ec-content-hover))] hover:border-[rgb(var(--ec-page-text-muted))] transition-all"
234
254
  >
235
255
  View docs
236
- <ArrowTopRightOnSquareIcon className="h-4 w-4 text-gray-400" />
256
+ <ArrowTopRightOnSquareIcon className="h-4 w-4 text-[rgb(var(--ec-icon-color))]" />
237
257
  </a>
238
258
  <a
239
259
  href={buildUrl(`/visualiser/services/${service.data.id}/${service.data.version}`)}
240
- className="inline-flex items-center gap-1.5 px-3 py-2 text-sm font-medium text-white bg-gray-800 rounded-lg hover:bg-gray-900 transition-all"
260
+ className="inline-flex items-center gap-1.5 px-3 py-2 text-sm font-medium text-white bg-zinc-800 dark:bg-zinc-700 rounded-lg hover:bg-zinc-900 dark:hover:bg-zinc-600 transition-all"
241
261
  >
242
262
  Visualizer
243
- <ArrowTopRightOnSquareIcon className="h-4 w-4 text-gray-400" />
263
+ <ArrowTopRightOnSquareIcon className="h-4 w-4 text-zinc-400" />
244
264
  </a>
245
265
  </div>
246
266
  </div>
@@ -252,8 +272,8 @@ export default function MessageGridV2({ service, embeded = false, specifications
252
272
  {hasSpecs && (
253
273
  <div>
254
274
  <div className="flex items-center gap-2 mb-4">
255
- <h3 className="text-lg font-semibold text-gray-900">Specifications</h3>
256
- <span className="text-sm text-gray-500 bg-gray-100 px-2.5 py-0.5 rounded-full font-medium">
275
+ <h3 className="text-lg font-semibold text-[rgb(var(--ec-page-text))]">Specifications</h3>
276
+ <span className="text-sm text-[rgb(var(--ec-page-text-muted))] bg-[rgb(var(--ec-content-hover))] px-2.5 py-0.5 rounded-full font-medium">
257
277
  {specifications.length}
258
278
  </span>
259
279
  </div>
@@ -274,9 +294,9 @@ export default function MessageGridV2({ service, embeded = false, specifications
274
294
  {hasMessages && (
275
295
  <div>
276
296
  <div className="flex items-center gap-2 mb-4">
277
- <BoltIcon className="h-5 w-5 text-orange-500" />
278
- <h3 className="text-lg font-semibold text-gray-900">Messages</h3>
279
- <span className="text-sm text-gray-500 bg-gray-100 px-2.5 py-0.5 rounded-full font-medium">
297
+ <BoltIcon className="h-5 w-5 text-orange-500 dark:text-orange-400" />
298
+ <h3 className="text-lg font-semibold text-[rgb(var(--ec-page-text))]">Messages</h3>
299
+ <span className="text-sm text-[rgb(var(--ec-page-text-muted))] bg-[rgb(var(--ec-content-hover))] px-2.5 py-0.5 rounded-full font-medium">
280
300
  {receives.length + sends.length}
281
301
  </span>
282
302
  </div>
@@ -305,9 +325,9 @@ export default function MessageGridV2({ service, embeded = false, specifications
305
325
  {hasContainers && (
306
326
  <div>
307
327
  <div className="flex items-center gap-2 mb-4">
308
- <CircleStackIcon className="h-5 w-5 text-amber-500" />
309
- <h3 className="text-lg font-semibold text-gray-900">Data Sources</h3>
310
- <span className="text-sm text-gray-500 bg-gray-100 px-2.5 py-0.5 rounded-full font-medium">
328
+ <CircleStackIcon className="h-5 w-5 text-amber-500 dark:text-amber-400" />
329
+ <h3 className="text-lg font-semibold text-[rgb(var(--ec-page-text))]">Data Sources</h3>
330
+ <span className="text-sm text-[rgb(var(--ec-page-text-muted))] bg-[rgb(var(--ec-content-hover))] px-2.5 py-0.5 rounded-full font-medium">
311
331
  {readsFrom.length + writesTo.length}
312
332
  </span>
313
333
  </div>
@@ -325,10 +345,10 @@ export default function MessageGridV2({ service, embeded = false, specifications
325
345
  {/* Empty State */}
326
346
  {!hasMessages && !hasContainers && !hasSpecs && (
327
347
  <div className="text-center py-12">
328
- <div className="flex items-center justify-center w-16 h-16 mx-auto mb-4 bg-gray-100 rounded-2xl">
329
- <ServerIcon className="h-8 w-8 text-gray-400" />
348
+ <div className="flex items-center justify-center w-16 h-16 mx-auto mb-4 bg-[rgb(var(--ec-content-hover))] rounded-2xl">
349
+ <ServerIcon className="h-8 w-8 text-[rgb(var(--ec-icon-color))]" />
330
350
  </div>
331
- <p className="text-gray-500">
351
+ <p className="text-[rgb(var(--ec-page-text-muted))]">
332
352
  This service has no message flows, container relationships, or specifications defined.
333
353
  </p>
334
354
  </div>
@@ -7,6 +7,7 @@ import { getSession } from 'auth-astro/server';
7
7
  import { isAuthEnabled, isSSR } from '@utils/feature';
8
8
  import { EnvironmentDropdown } from './EnvironmentDropdown';
9
9
  import ChatPanelButton from './ChatPanel/ChatPanelButton';
10
+ import ThemeToggle from './ThemeToggle';
10
11
 
11
12
  let session = null;
12
13
  if (isAuthEnabled()) {
@@ -24,7 +25,7 @@ const repositoryUrl = catalog?.repositoryUrl || 'https://github.com/event-catalo
24
25
 
25
26
  <nav
26
27
  id="eventcatalog-header"
27
- class="fixed top-0 left-0 right-0 h-header bg-white/95 border-b border-gray-200 py-3 font-bold text-xl backdrop-blur-md z-10"
28
+ class="fixed top-0 left-0 right-0 h-header bg-[rgb(var(--ec-header-bg))] border-b border-[rgb(var(--ec-header-border))] py-3 font-bold text-xl z-10 text-[rgb(var(--ec-header-text))]"
28
29
  >
29
30
  <div class="px-4 sm:px-4 lg:px-4">
30
31
  <div class="flex justify-between items-center">
@@ -57,6 +58,7 @@ const repositoryUrl = catalog?.repositoryUrl || 'https://github.com/event-catalo
57
58
  {catalog.environments && catalog.environments.length > 0 && (
58
59
  <EnvironmentDropdown environments={catalog.environments} client:load />
59
60
  )}
61
+ <ThemeToggle client:load />
60
62
  <div class="relative">
61
63
  <button
62
64
  id="profile-menu-button"
@@ -87,15 +89,17 @@ const repositoryUrl = catalog?.repositoryUrl || 'https://github.com/event-catalo
87
89
  </button>
88
90
  <div
89
91
  id="profile-dropdown"
90
- class="hidden absolute right-0 mt-2 w-48 bg-white rounded-lg shadow-md py-1 z-50 border-2 border-gray-200 overflow-hidden"
92
+ class="hidden absolute right-0 mt-2 w-48 bg-[rgb(var(--ec-dropdown-bg))] rounded-lg shadow-md py-1 z-50 border-2 border-[rgb(var(--ec-dropdown-border))] overflow-hidden"
91
93
  >
92
- <div class="px-4 py-2 text-sm text-gray-700 border-b border-gray-200">
94
+ <div class="px-4 py-2 text-sm text-[rgb(var(--ec-dropdown-text))] border-b border-[rgb(var(--ec-dropdown-border))]">
93
95
  <div class="font-semibold">{session.user?.name || 'User'}</div>
94
- {session.user?.email && <div class="text-gray-500 text-xs mt-0.5">{session.user.email}</div>}
96
+ {session.user?.email && (
97
+ <div class="text-[rgb(var(--ec-icon-color))] text-xs mt-0.5">{session.user.email}</div>
98
+ )}
95
99
  </div>
96
100
  <button
97
101
  id="signout-btn"
98
- class="block w-full text-left px-4 py-2 text-sm text-gray-700 hover:bg-gray-50 transition-colors font-medium"
102
+ class="block w-full text-left px-4 py-2 text-sm text-[rgb(var(--ec-dropdown-text))] hover:bg-[rgb(var(--ec-dropdown-hover))] transition-colors font-medium"
99
103
  >
100
104
  Sign out
101
105
  </button>
@@ -111,17 +115,18 @@ const repositoryUrl = catalog?.repositoryUrl || 'https://github.com/event-catalo
111
115
  {isAuthEnabled() && (
112
116
  <button
113
117
  id="okta-signin-btn"
114
- class="bg-gray-900 hover:bg-gray-800 text-white text-sm font-medium px-4 py-2 rounded-lg transition-all shadow-sm hover:shadow focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500"
118
+ class="bg-[rgb(var(--ec-button-bg))] hover:bg-[rgb(var(--ec-button-bg-hover))] text-[rgb(var(--ec-button-text))] text-sm font-medium px-4 py-2 rounded-lg transition-all shadow-sm hover:shadow focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500"
115
119
  >
116
120
  Sign In
117
121
  </button>
118
122
  )}
123
+ <ThemeToggle client:load />
119
124
  {showEventCatalogBranding() && (
120
125
  <ul class="flex space-x-4">
121
126
  <li>
122
127
  <a
123
128
  href="https://discord.com/invite/3rjaZMmrAm"
124
- class="block p-1.5 rounded-lg hover:bg-gray-100 transition-colors"
129
+ class="block p-1.5 rounded-lg hover:bg-[rgb(var(--ec-dropdown-hover))] transition-colors"
125
130
  aria-label="Join our Discord community"
126
131
  >
127
132
  <img
@@ -135,7 +140,7 @@ const repositoryUrl = catalog?.repositoryUrl || 'https://github.com/event-catalo
135
140
  <li>
136
141
  <a
137
142
  href="https://github.com/event-catalog/eventcatalog"
138
- class="block p-1.5 rounded-lg hover:bg-gray-100 transition-colors"
143
+ class="block p-1.5 rounded-lg hover:bg-[rgb(var(--ec-dropdown-hover))] transition-colors"
139
144
  aria-label="View EventCatalog on GitHub"
140
145
  >
141
146
  <img
@@ -153,7 +158,7 @@ const repositoryUrl = catalog?.repositoryUrl || 'https://github.com/event-catalo
153
158
  <li>
154
159
  <a
155
160
  href={repositoryUrl}
156
- class="block p-1.5 rounded-lg hover:bg-gray-100 transition-colors focus:outline-none"
161
+ class="block p-1.5 rounded-lg hover:bg-[rgb(var(--ec-dropdown-hover))] transition-colors focus:outline-none"
157
162
  aria-label="View repository on GitHub"
158
163
  >
159
164
  <img
@@ -176,7 +181,7 @@ const repositoryUrl = catalog?.repositoryUrl || 'https://github.com/event-catalo
176
181
  <button
177
182
  id="menu-toggle"
178
183
  type="button"
179
- class="text-gray-500 hover:text-gray-600 focus:outline-none focus:text-gray-600"
184
+ class="text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-icon-hover))] focus:outline-none focus:text-[rgb(var(--ec-icon-hover))]"
180
185
  aria-label="Toggle menu"
181
186
  >
182
187
  <svg viewBox="0 0 24 24" class="h-6 w-6 fill-current">
@@ -1,6 +1,7 @@
1
1
  import { Disclosure, DisclosureButton, DisclosurePanel } from '@headlessui/react';
2
2
  import { ChevronDownIcon } from '@heroicons/react/20/solid';
3
3
  import { UserGroupIcon, UserIcon } from '@heroicons/react/24/outline';
4
+ import './PillListFlat.styles.css';
4
5
 
5
6
  interface Props {
6
7
  title: string;
@@ -17,30 +18,36 @@ interface Props {
17
18
  const OwnersList = ({ title, owners, emptyMessage }: Props) => {
18
19
  return (
19
20
  <div>
20
- <div className="mx-auto w-full max-w-lg divide-y divide-white/5 rounded-xl bg-white/5">
21
+ <div className="mx-auto w-full max-w-lg divide-y divide-[rgb(var(--ec-page-border))] rounded-xl">
21
22
  <Disclosure as="div" className="" defaultOpen={owners.length <= 5}>
22
23
  <DisclosureButton className="group flex w-full items-center justify-start space-x-4">
23
- <span className="text-sm text-black font-semibold group-data-[hover]:text-black/80 capitalize"> {title} </span>
24
- <ChevronDownIcon className="size-5 fill-black/60 group-data-[hover]:fill-black/50 group-data-[open]:rotate-180" />
24
+ <span className="text-sm text-[rgb(var(--ec-page-text))] font-semibold group-data-[hover]:opacity-80 capitalize">
25
+ {' '}
26
+ {title}{' '}
27
+ </span>
28
+ <ChevronDownIcon className="size-5 fill-[rgb(var(--ec-icon-color))] group-data-[hover]:opacity-80 group-data-[open]:rotate-180" />
25
29
  </DisclosureButton>
26
- <DisclosurePanel className="mt-2 text-sm/5 text-black/50">
30
+ <DisclosurePanel className="mt-2 text-sm/5 text-[rgb(var(--ec-page-text-muted))]">
27
31
  <ul role="list" className="space-y-2">
28
32
  {owners.map((item) => {
29
33
  return (
30
34
  <li
31
- className="has-tooltip rounded-md text-gray-600 group px-1 w-full hover:bg-gradient-to-l hover:from-purple-500 hover:to-purple-700 hover:text-white hover:font-normal "
35
+ className="owner-item has-tooltip rounded-md text-[rgb(var(--ec-page-text-muted))] group px-1 w-full hover:text-white hover:font-normal"
32
36
  key={item.href}
33
37
  >
34
38
  <a className={`flex items-center space-x-2`} href={item.href}>
35
39
  {item.type === 'users' && (
36
- <UserIcon className="h-4 w-4 text-gray-800 group-hover:text-white" strokeWidth={1} />
40
+ <UserIcon className="h-4 w-4 text-[rgb(var(--ec-page-text))] group-hover:text-white" strokeWidth={1} />
37
41
  )}
38
42
  {item.type === 'teams' && (
39
- <UserGroupIcon className="h-4 w-4 text-gray-800 group-hover:text-white" strokeWidth={1} />
43
+ <UserGroupIcon
44
+ className="h-4 w-4 text-[rgb(var(--ec-page-text))] group-hover:text-white"
45
+ strokeWidth={1}
46
+ />
40
47
  )}
41
48
  <span className="font-light text-sm truncate">{item.label}</span>
42
49
  {item.label.length > 24 && (
43
- <span className="tooltip rounded relative shadow-lg p-1 font-normal text-xs bg-white text-black ml-[30px] mt-12">
50
+ <span className="tooltip rounded relative shadow-lg p-1 font-normal text-xs bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] text-[rgb(var(--ec-page-text))] border border-[rgb(var(--ec-page-border))] ml-[30px] mt-12">
44
51
  {item.label}
45
52
  </span>
46
53
  )}
@@ -50,14 +57,14 @@ const OwnersList = ({ title, owners, emptyMessage }: Props) => {
50
57
  })}
51
58
  {owners.length === 0 && (
52
59
  <li className="inline mr-2 leading-6 text-sm">
53
- <span className="text-gray-500">{emptyMessage}</span>
60
+ <span className="text-[rgb(var(--ec-page-text-muted))]">{emptyMessage}</span>
54
61
  </li>
55
62
  )}
56
63
  </ul>
57
64
  </DisclosurePanel>
58
65
  </Disclosure>
59
66
  </div>
60
- <div className="border-b border-gray-100 my-4"></div>
67
+ <div className="border-b border-[rgb(var(--ec-page-border))] my-4"></div>
61
68
  </div>
62
69
  );
63
70
  };
@@ -5,4 +5,16 @@
5
5
  .has-tooltip:hover .tooltip {
6
6
  visibility: visible;
7
7
  z-index: 100;
8
+ }
9
+
10
+ .pill-item:hover {
11
+ background: linear-gradient(to left, rgb(var(--ec-accent-gradient-from)), rgb(var(--ec-accent-gradient-to)));
12
+ color: white;
13
+ font-weight: normal;
14
+ }
15
+
16
+ .owner-item:hover {
17
+ background: linear-gradient(to left, rgb(var(--ec-accent-gradient-from)), rgb(var(--ec-accent-gradient-to)));
18
+ color: white;
19
+ font-weight: normal;
8
20
  }
@@ -66,10 +66,7 @@ const PillList = ({ title, pills, emptyMessage, color = 'gray', limit = 10, ...p
66
66
  const PillIcon = item.icon ? (icons as any)[item.icon] : null;
67
67
 
68
68
  return (
69
- <li
70
- className=" has-tooltip rounded-md text-gray-600 group px-1 w-full hover:bg-gradient-to-l hover:from-purple-500 hover:to-purple-700 hover:text-white hover:font-normal "
71
- key={item.href}
72
- >
69
+ <li className="pill-item has-tooltip rounded-md text-[rgb(var(--ec-page-text-muted))] group px-1 w-full" key={item.href}>
73
70
  <a className={`leading-3`} href={href} target={item.target ?? '_self'}>
74
71
  <span className="space-x-2 flex items-center">
75
72
  {Icon && !PillIcon && <Icon className="h-4 w-4 shrink-0" />}
@@ -78,7 +75,7 @@ const PillList = ({ title, pills, emptyMessage, color = 'gray', limit = 10, ...p
78
75
  {item.label} {item.tag && <>({item.tag})</>}
79
76
  </span>
80
77
  {item.label.length > 24 && (
81
- <span className="tooltip rounded relative shadow-lg p-1 font-normal text-xs bg-white text-black ml-[30px] mt-12">
78
+ <span className="tooltip rounded relative shadow-lg p-1 font-normal text-xs bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] text-[rgb(var(--ec-page-text))] border border-[rgb(var(--ec-page-border))] ml-[30px] mt-12">
82
79
  {item.label} {item.tag && <>({item.tag})</>}
83
80
  </span>
84
81
  )}
@@ -91,13 +88,16 @@ const PillList = ({ title, pills, emptyMessage, color = 'gray', limit = 10, ...p
91
88
 
92
89
  return (
93
90
  <div className="">
94
- <div className="mx-auto w-full max-w-lg divide-y divide-white/5 rounded-xl bg-white/5">
91
+ <div className="mx-auto w-full max-w-lg divide-y divide-[rgb(var(--ec-page-border))] rounded-xl">
95
92
  <Disclosure as="div" className="" defaultOpen={pills.length <= limit}>
96
93
  <DisclosureButton className="group flex w-full items-center justify-start space-x-4">
97
- <span className="text-sm text-black font-semibold group-data-[hover]:text-black/80 capitalize"> {title} </span>
98
- <ChevronDownIcon className="size-5 ml-2 fill-black/60 group-data-[hover]:fill-black/50 group-data-[open]:rotate-180" />
94
+ <span className="text-sm text-[rgb(var(--ec-page-text))] font-semibold group-data-[hover]:opacity-80 capitalize">
95
+ {' '}
96
+ {title}{' '}
97
+ </span>
98
+ <ChevronDownIcon className="size-5 ml-2 fill-[rgb(var(--ec-icon-color))] group-data-[hover]:opacity-80 group-data-[open]:rotate-180" />
99
99
  </DisclosureButton>
100
- <DisclosurePanel className="mt-2 text-sm/5 text-black/50">
100
+ <DisclosurePanel className="mt-2 text-sm/5 text-[rgb(var(--ec-page-text-muted))]">
101
101
  <div className="space-y-2">
102
102
  {groupedPills.ungrouped.length > 0 && (
103
103
  <ul role="list" className="space-y-2">
@@ -115,10 +115,10 @@ const PillList = ({ title, pills, emptyMessage, color = 'gray', limit = 10, ...p
115
115
  e.stopPropagation();
116
116
  toggleSubgroup(subgroupName);
117
117
  }}
118
- className="p-1 hover:bg-gray-100 rounded-md"
118
+ className="p-1 hover:bg-[rgb(var(--ec-content-hover))] rounded-md"
119
119
  >
120
120
  <div className={`transition-transform duration-150 ${isCollapsed ? '' : 'rotate-180'}`}>
121
- <ChevronDownIcon className="h-3 w-3 text-gray-500" />
121
+ <ChevronDownIcon className="h-3 w-3 text-[rgb(var(--ec-icon-color))]" />
122
122
  </div>
123
123
  </button>
124
124
  <button
@@ -126,7 +126,7 @@ const PillList = ({ title, pills, emptyMessage, color = 'gray', limit = 10, ...p
126
126
  e.stopPropagation();
127
127
  toggleSubgroup(subgroupName);
128
128
  }}
129
- className="flex-grow flex items-center justify-between px-2 py-0.5 text-xs font-bold rounded-md text-gray-900 uppercase"
129
+ className="flex-grow flex items-center justify-between px-2 py-0.5 text-xs font-bold rounded-md text-[rgb(var(--ec-page-text))] uppercase"
130
130
  >
131
131
  {subgroupName} ({subgroupPills.length})
132
132
  </button>
@@ -134,7 +134,7 @@ const PillList = ({ title, pills, emptyMessage, color = 'gray', limit = 10, ...p
134
134
  <div
135
135
  className={`overflow-hidden transition-[height] duration-150 ease-out ${isCollapsed ? 'h-0' : 'h-auto'}`}
136
136
  >
137
- <ul role="list" className="space-y-2 border-l border-gray-200/80 ml-[9px] pl-4 pt-2">
137
+ <ul role="list" className="space-y-2 border-l border-[rgb(var(--ec-page-border))] ml-[9px] pl-4 pt-2">
138
138
  {subgroupPills.map(renderPillItem)}
139
139
  </ul>
140
140
  </div>
@@ -144,14 +144,14 @@ const PillList = ({ title, pills, emptyMessage, color = 'gray', limit = 10, ...p
144
144
 
145
145
  {pills.length === 0 && emptyMessage && (
146
146
  <div className="inline mr-2 leading-tight text-xs">
147
- <span className="text-gray-400">{emptyMessage}</span>
147
+ <span className="text-[rgb(var(--ec-icon-color))]">{emptyMessage}</span>
148
148
  </div>
149
149
  )}
150
150
  </div>
151
151
  </DisclosurePanel>
152
152
  </Disclosure>
153
153
  </div>
154
- <div className="border-b border-gray-100 my-4"></div>
154
+ <div className="border-b border-[rgb(var(--ec-page-border))] my-4"></div>
155
155
  </div>
156
156
  );
157
157
  };
@@ -15,7 +15,9 @@ const currentPath = Astro.url.pathname;
15
15
  ---
16
16
 
17
17
  <div class="space-y-2 pb-4">
18
- <span class="text-xs text-black font-semibold group-data-[hover]:text-black/80 capitalize">
18
+ <span
19
+ class="text-xs text-[rgb(var(--ec-page-text))] font-semibold group-data-[hover]:text-[rgb(var(--ec-page-text))]/80 capitalize"
20
+ >
19
21
  {title || `Versions (${collectionItem.data.versions?.length})`}
20
22
  </span>
21
23
  <ul role="list" class="space-y-2">
@@ -23,14 +25,16 @@ const currentPath = Astro.url.pathname;
23
25
  versions.map((version) => {
24
26
  const isCurrent = currentPath.includes(version);
25
27
  return (
26
- <li class="rounded-md px-1 group w-full hover:bg-gradient-to-l hover:from-purple-500 hover:to-purple-700 hover:text-white hover:font-normal ">
28
+ <li class="version-item rounded-md px-1 group w-full hover:text-white hover:font-normal">
27
29
  <a
28
30
  class={`flex items-center space-x-2 cursor-pointer`}
29
31
  href={buildUrl(`/docs/${collectionItem.collection}/${collectionItem.data.id}/${version}`)}
30
32
  >
31
33
  {/* {Icon && <Icon class={`h-4 w-4`} />} */}
32
- <HistoryIcon className="h-4 w-4 text-gray-800 group-hover:text-white" strokeWidth={1} />
33
- <span class={`font-light text-xs ${isCurrent ? 'underline ' : ''}`}>
34
+ <HistoryIcon className="h-4 w-4 text-[rgb(var(--ec-page-text-muted))] group-hover:text-white" strokeWidth={1} />
35
+ <span
36
+ class={`font-light text-xs text-[rgb(var(--ec-page-text))] group-hover:text-white ${isCurrent ? 'underline ' : ''}`}
37
+ >
34
38
  {version === collectionItem.data.latestVersion ? `v${version} (latest)` : `v${version}`}
35
39
  </span>
36
40
  </a>
@@ -39,9 +43,15 @@ const currentPath = Astro.url.pathname;
39
43
  })
40
44
  }
41
45
  </ul>
42
- <div class="border-b border-gray-100 pt-2"></div>
46
+ <div class="border-b border-[rgb(var(--ec-page-border))] pt-2"></div>
43
47
  </div>
44
48
 
49
+ <style>
50
+ .version-item:hover {
51
+ background: linear-gradient(to left, rgb(var(--ec-accent-gradient-from)), rgb(var(--ec-accent-gradient-to)));
52
+ }
53
+ </style>
54
+
45
55
  <script>
46
56
  document.getElementById('version')?.addEventListener('change', (e: any) => {
47
57
  if (!e.target) return;
@@ -12,7 +12,7 @@ declare global {
12
12
 
13
13
  export default function Example({ title, children }: any) {
14
14
  return (
15
- <div className="border border-gray-200 rounded-md px-4 shadow-sm py-2 accordion">
15
+ <div className="border border-[rgb(var(--ec-page-border))] rounded-md px-4 shadow-sm py-2 accordion bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))]">
16
16
  <Disclosure as="div" key={title} className="">
17
17
  {({ open }) => {
18
18
  useEffect(() => {
@@ -30,7 +30,7 @@ export default function Example({ title, children }: any) {
30
30
 
31
31
  return (
32
32
  <div>
33
- <DisclosureButton className="flex w-full items-start justify-between text-left text-gray-900">
33
+ <DisclosureButton className="flex w-full items-start justify-between text-left text-[rgb(var(--ec-page-text))]">
34
34
  <span className="text-base font-semibold leading-7">{title}</span>
35
35
  <span className="ml-6 flex h-7 items-center">
36
36
  {open ? (
@@ -41,7 +41,7 @@ export default function Example({ title, children }: any) {
41
41
  </span>
42
42
  </DisclosureButton>
43
43
  <DisclosurePanel as="dd" className="pr-12 py-4 prose prose-sm max-w-none">
44
- <div className="text-base leading-7 text-gray-600">{children}</div>
44
+ <div className="text-base leading-7 text-[rgb(var(--ec-page-text-muted))]">{children}</div>
45
45
  </DisclosurePanel>
46
46
  </div>
47
47
  );