@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.
- package/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +3 -3
- package/dist/{chunk-VO5WYA44.js → chunk-AA47DJ43.js} +1 -1
- package/dist/{chunk-EKGR533N.js → chunk-GGRXP5WM.js} +1 -1
- package/dist/{chunk-E5Q7TZYT.js → chunk-L3QRQT7U.js} +1 -1
- package/dist/{chunk-BYP43AAT.js → chunk-RWYEP5SD.js} +1 -1
- package/dist/{chunk-KF5PARQK.js → chunk-VPQCMMRM.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +1 -1
- package/dist/eventcatalog.config.d.cts +7 -0
- package/dist/eventcatalog.config.d.ts +7 -0
- package/dist/eventcatalog.js +5 -5
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/src/components/ChatPanel/ChatPanel.tsx +520 -247
- package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +3 -3
- package/eventcatalog/src/components/Checkbox.astro +7 -4
- package/eventcatalog/src/components/CopyAsMarkdown.tsx +15 -15
- package/eventcatalog/src/components/EnvironmentDropdown.tsx +15 -7
- package/eventcatalog/src/components/FavoriteButton.tsx +1 -1
- package/eventcatalog/src/components/Grids/DomainGrid.tsx +72 -60
- package/eventcatalog/src/components/Grids/MessageGrid.tsx +68 -48
- package/eventcatalog/src/components/Header.astro +15 -10
- package/eventcatalog/src/components/Lists/OwnersList.tsx +17 -10
- package/eventcatalog/src/components/Lists/PillListFlat.styles.css +12 -0
- package/eventcatalog/src/components/Lists/PillListFlat.tsx +15 -15
- package/eventcatalog/src/components/Lists/VersionList.astro +15 -5
- package/eventcatalog/src/components/MDX/Accordion/Accordion.tsx +3 -3
- package/eventcatalog/src/components/MDX/Admonition.tsx +49 -9
- package/eventcatalog/src/components/MDX/Attachments.astro +15 -11
- package/eventcatalog/src/components/MDX/ChannelInformation/ChannelInformation.tsx +29 -15
- package/eventcatalog/src/components/MDX/EntityPropertiesTable/EntityPropertiesTable.astro +20 -13
- package/eventcatalog/src/components/MDX/Link/Link.astro +1 -1
- package/eventcatalog/src/components/MDX/MessageTable/MessageTable.client.tsx +50 -29
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.tsx +14 -12
- package/eventcatalog/src/components/MDX/NodeGraph/StepWalkthrough.tsx +4 -4
- package/eventcatalog/src/components/MDX/NodeGraph/StudioModal.tsx +4 -4
- package/eventcatalog/src/components/MDX/NodeGraph/VisualiserSearch.tsx +2 -2
- package/eventcatalog/src/components/MDX/ResourceGroupTable/ResourceGroupTable.client.tsx +54 -33
- package/eventcatalog/src/components/MDX/ResourceLink/ResourceLink.astro +1 -1
- package/eventcatalog/src/components/MDX/Steps/Step.astro +2 -2
- package/eventcatalog/src/components/MDX/Steps/Steps.astro +3 -3
- package/eventcatalog/src/components/MDX/Tabs/Tabs.astro +13 -9
- package/eventcatalog/src/components/MDX/Tiles/Tile.astro +25 -13
- package/eventcatalog/src/components/MDX/Tiles/Tiles.astro +1 -1
- package/eventcatalog/src/components/SchemaExplorer/ApiAccessSection.tsx +3 -3
- package/eventcatalog/src/components/SchemaExplorer/ApiContentViewer.tsx +3 -3
- package/eventcatalog/src/components/SchemaExplorer/AvroSchemaViewer.tsx +29 -25
- package/eventcatalog/src/components/SchemaExplorer/DiffViewer.tsx +3 -3
- package/eventcatalog/src/components/SchemaExplorer/JSONSchemaViewer.tsx +61 -42
- package/eventcatalog/src/components/SchemaExplorer/OwnersSection.tsx +13 -9
- package/eventcatalog/src/components/SchemaExplorer/Pagination.tsx +6 -4
- package/eventcatalog/src/components/SchemaExplorer/ProducersConsumersSection.tsx +17 -13
- package/eventcatalog/src/components/SchemaExplorer/SchemaContentViewer.tsx +35 -8
- package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsHeader.tsx +33 -21
- package/eventcatalog/src/components/SchemaExplorer/SchemaDetailsPanel.tsx +1 -1
- package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +41 -33
- package/eventcatalog/src/components/SchemaExplorer/SchemaListItem.tsx +19 -7
- package/eventcatalog/src/components/SchemaExplorer/SchemaViewerModal.tsx +8 -8
- package/eventcatalog/src/components/Search/Search.astro +3 -3
- package/eventcatalog/src/components/Search/SearchModal.tsx +65 -36
- package/eventcatalog/src/components/SideNav/NestedSideBar/SearchBar.tsx +31 -21
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +92 -59
- package/eventcatalog/src/components/Tables/Table.tsx +25 -24
- package/eventcatalog/src/components/Tables/columns/ContainersTableColumns.tsx +22 -16
- package/eventcatalog/src/components/Tables/columns/DomainTableColumns.tsx +14 -11
- package/eventcatalog/src/components/Tables/columns/FlowTableColumns.tsx +6 -6
- package/eventcatalog/src/components/Tables/columns/MessageTableColumns.tsx +22 -16
- package/eventcatalog/src/components/Tables/columns/ServiceTableColumns.tsx +22 -16
- package/eventcatalog/src/components/Tables/columns/SharedColumns.tsx +4 -4
- package/eventcatalog/src/components/Tables/columns/TeamsTableColumns.tsx +21 -13
- package/eventcatalog/src/components/Tables/columns/UserTableColumns.tsx +30 -19
- package/eventcatalog/src/components/ThemeToggle.tsx +18 -0
- package/eventcatalog/src/enterprise/ai/chat-api.ts +24 -3
- package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/components/NestedItem.tsx +15 -7
- package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/components/NoResultsFound.tsx +2 -2
- package/eventcatalog/src/enterprise/custom-documentation/components/CustomDocsNav/index.tsx +19 -15
- package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +50 -17
- package/eventcatalog/src/layouts/DirectoryLayout.astro +11 -6
- package/eventcatalog/src/layouts/DiscoverLayout.astro +13 -8
- package/eventcatalog/src/layouts/Footer.astro +6 -6
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +62 -14
- package/eventcatalog/src/pages/_index.astro +135 -179
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +2 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/graphql/[filename].astro +4 -4
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +77 -63
- package/eventcatalog/src/pages/docs/[type]/[id]/language/[dictionaryId]/index.astro +23 -24
- package/eventcatalog/src/pages/docs/[type]/[id]/language/index.astro +66 -50
- package/eventcatalog/src/pages/docs/custom/index.astro +2 -2
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +25 -21
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +25 -21
- package/eventcatalog/src/pages/schemas/explorer/index.astro +1 -1
- package/eventcatalog/src/pages/studio.astro +59 -31
- package/eventcatalog/src/remark-plugins/directives.ts +6 -6
- package/eventcatalog/src/remark-plugins/mermaid.ts +2 -2
- package/eventcatalog/src/stores/theme-store.ts +93 -0
- package/eventcatalog/src/styles/theme.css +255 -0
- package/eventcatalog/src/styles/themes/forest.css +230 -0
- package/eventcatalog/src/styles/themes/ocean.css +235 -0
- package/eventcatalog/src/styles/themes/sapphire.css +230 -0
- package/eventcatalog/src/styles/themes/sunset.css +230 -0
- package/eventcatalog/src/utils/feature.ts +4 -0
- package/eventcatalog/tailwind.config.mjs +6 -3
- package/package.json +7 -6
|
@@ -224,7 +224,7 @@ export default function StepWalkthrough({
|
|
|
224
224
|
<select
|
|
225
225
|
value={selectedPathIndex}
|
|
226
226
|
onChange={(e: React.ChangeEvent<HTMLSelectElement>) => handlePathSelection(parseInt(e.target.value))}
|
|
227
|
-
className="w-full px-3 py-2 text-xs border border-gray-300 rounded-md bg-white focus:outline-none focus:ring-2 focus:ring-
|
|
227
|
+
className="w-full px-3 py-2 text-xs border border-gray-300 rounded-md bg-white focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:border-[rgb(var(--ec-accent))]"
|
|
228
228
|
>
|
|
229
229
|
{availablePaths.map((path, index) => {
|
|
230
230
|
// @ts-ignore
|
|
@@ -256,7 +256,7 @@ export default function StepWalkthrough({
|
|
|
256
256
|
<div className="flex-1"></div>
|
|
257
257
|
<button
|
|
258
258
|
onClick={handleNextStep}
|
|
259
|
-
className="flex items-center justify-center px-6 py-2 text-xs font-medium bg-
|
|
259
|
+
className="flex items-center justify-center px-6 py-2 text-xs font-medium bg-[rgb(var(--ec-accent))] text-white rounded-md hover:bg-[rgb(var(--ec-accent-hover))] focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:ring-offset-2 transition-colors"
|
|
260
260
|
>
|
|
261
261
|
Start
|
|
262
262
|
</button>
|
|
@@ -266,7 +266,7 @@ export default function StepWalkthrough({
|
|
|
266
266
|
<>
|
|
267
267
|
<button
|
|
268
268
|
onClick={handlePreviousStep}
|
|
269
|
-
className="flex items-center justify-center px-4 py-2 text-xs font-medium bg-
|
|
269
|
+
className="flex items-center justify-center px-4 py-2 text-xs font-medium bg-[rgb(var(--ec-accent))] text-white rounded-md hover:bg-[rgb(var(--ec-accent-hover))] focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:ring-offset-2 transition-colors"
|
|
270
270
|
>
|
|
271
271
|
<ChevronLeftIcon className="w-4 h-4 mr-1" />
|
|
272
272
|
Previous
|
|
@@ -275,7 +275,7 @@ export default function StepWalkthrough({
|
|
|
275
275
|
{availablePaths.length > 0 ? (
|
|
276
276
|
<button
|
|
277
277
|
onClick={handleNextStep}
|
|
278
|
-
className="flex items-center justify-center px-4 py-2 text-xs font-medium bg-
|
|
278
|
+
className="flex items-center justify-center px-4 py-2 text-xs font-medium bg-[rgb(var(--ec-accent))] text-white rounded-md hover:bg-[rgb(var(--ec-accent-hover))] focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:ring-offset-2 transition-colors"
|
|
279
279
|
>
|
|
280
280
|
Next
|
|
281
281
|
<ChevronRightIcon className="w-4 h-4 ml-1" />
|
|
@@ -55,7 +55,7 @@ const StudioModal: React.FC<StudioModalProps> = ({ isOpen, onClose }) => {
|
|
|
55
55
|
Import your diagram into{' '}
|
|
56
56
|
<a
|
|
57
57
|
href="https://eventcatalog.studio"
|
|
58
|
-
className="text-
|
|
58
|
+
className="text-[rgb(var(--ec-accent))] hover:text-[rgb(var(--ec-accent-hover))] underline"
|
|
59
59
|
target="_blank"
|
|
60
60
|
rel="noopener noreferrer"
|
|
61
61
|
>
|
|
@@ -90,7 +90,7 @@ const StudioModal: React.FC<StudioModalProps> = ({ isOpen, onClose }) => {
|
|
|
90
90
|
</button>
|
|
91
91
|
</div>
|
|
92
92
|
|
|
93
|
-
<div className="bg-
|
|
93
|
+
<div className="bg-[rgb(var(--ec-accent-subtle))] rounded-lg p-4 border border-[rgb(var(--ec-accent)/0.3)]">
|
|
94
94
|
<h4 className="text-sm font-bold text-gray-900 mb-2">Step 2: Open EventCatalog Studio</h4>
|
|
95
95
|
<p className="text-xs text-gray-600 mb-3">
|
|
96
96
|
Go to EventCatalog Studio and import your design using the "Import from EventCatalog" button.
|
|
@@ -98,7 +98,7 @@ const StudioModal: React.FC<StudioModalProps> = ({ isOpen, onClose }) => {
|
|
|
98
98
|
|
|
99
99
|
<button
|
|
100
100
|
onClick={handleOpenStudio}
|
|
101
|
-
className="w-full flex items-center justify-center space-x-2 px-4 py-2 bg-
|
|
101
|
+
className="w-full flex items-center justify-center space-x-2 px-4 py-2 bg-[rgb(var(--ec-accent))] text-white text-sm font-medium rounded-md hover:bg-[rgb(var(--ec-accent-hover))] transition-colors"
|
|
102
102
|
>
|
|
103
103
|
<ExternalLinkIcon className="w-4 h-4" />
|
|
104
104
|
<span>Open EventCatalog Studio</span>
|
|
@@ -113,7 +113,7 @@ const StudioModal: React.FC<StudioModalProps> = ({ isOpen, onClose }) => {
|
|
|
113
113
|
<Dialog.Close asChild>
|
|
114
114
|
<button
|
|
115
115
|
type="button"
|
|
116
|
-
className="px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-
|
|
116
|
+
className="px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:ring-offset-2 transition-colors"
|
|
117
117
|
onClick={onClose}
|
|
118
118
|
>
|
|
119
119
|
Close
|
|
@@ -214,7 +214,7 @@ const VisualiserSearch = forwardRef<VisualiserSearchRef, VisualiserSearchProps>(
|
|
|
214
214
|
onChange={handleSearchChange}
|
|
215
215
|
onKeyDown={handleSearchKeyDown}
|
|
216
216
|
onFocus={handleSearchFocus}
|
|
217
|
-
className="w-full px-4 py-2 pr-10 bg-white border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-
|
|
217
|
+
className="w-full px-4 py-2 pr-10 bg-white border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:border-transparent"
|
|
218
218
|
/>
|
|
219
219
|
{searchQuery && (
|
|
220
220
|
<button
|
|
@@ -238,7 +238,7 @@ const VisualiserSearch = forwardRef<VisualiserSearchRef, VisualiserSearchProps>(
|
|
|
238
238
|
key={node.id}
|
|
239
239
|
onClick={() => handleSuggestionClick(node)}
|
|
240
240
|
className={`px-4 py-2 cursor-pointer flex items-center justify-between hover:bg-gray-100 ${
|
|
241
|
-
index === selectedSuggestionIndex ? 'bg-
|
|
241
|
+
index === selectedSuggestionIndex ? 'bg-[rgb(var(--ec-accent-subtle))]' : ''
|
|
242
242
|
}`}
|
|
243
243
|
>
|
|
244
244
|
<span className="text-sm font-medium text-gray-900">{nodeName}</span>
|
|
@@ -37,35 +37,35 @@ const ResourceRow = memo(
|
|
|
37
37
|
const owners = resource.owners || [];
|
|
38
38
|
|
|
39
39
|
return (
|
|
40
|
-
<tr className="group hover:bg-
|
|
41
|
-
<td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-
|
|
40
|
+
<tr className="group hover:bg-[rgb(var(--ec-content-hover))]">
|
|
41
|
+
<td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-[rgb(var(--ec-page-text))] sm:pl-6 relative">
|
|
42
42
|
<a href={url} className="absolute inset-0 z-10" aria-label={`View details for ${resource.name}`} />
|
|
43
43
|
<div className="flex items-center gap-2 relative">
|
|
44
44
|
<Icon className={`h-5 w-5 text-${color}-500`} />
|
|
45
|
-
<span className="group-hover:text-
|
|
45
|
+
<span className="group-hover:text-[rgb(var(--ec-accent))] break-all">{resource.name}</span>
|
|
46
46
|
</div>
|
|
47
47
|
</td>
|
|
48
|
-
<td className="whitespace-nowrap px-3 py-4 text-sm text-
|
|
48
|
+
<td className="whitespace-nowrap px-3 py-4 text-sm text-[rgb(var(--ec-page-text-muted))] relative">
|
|
49
49
|
<a href={url} className="absolute inset-0 z-10" aria-hidden="true" />
|
|
50
50
|
<span>v{resource.version}</span>
|
|
51
51
|
</td>
|
|
52
|
-
<td className="whitespace-nowrap px-3 py-4 text-sm text-
|
|
52
|
+
<td className="whitespace-nowrap px-3 py-4 text-sm text-[rgb(var(--ec-page-text-muted))] relative">
|
|
53
53
|
<a href={url} className="absolute inset-0 z-10" aria-hidden="true" />
|
|
54
54
|
<span>{type}</span>
|
|
55
55
|
</td>
|
|
56
|
-
<td className="px-3 py-4 text-sm text-
|
|
56
|
+
<td className="px-3 py-4 text-sm text-[rgb(var(--ec-page-text-muted))] relative">
|
|
57
57
|
<a href={url} className="absolute inset-0 z-10" aria-hidden="true" />
|
|
58
58
|
<span className="line-clamp-2 break-words">{resource.summary || resource.description || '-'}</span>
|
|
59
59
|
</td>
|
|
60
60
|
{showTags && (
|
|
61
|
-
<td className="px-3 py-4 text-sm text-
|
|
61
|
+
<td className="px-3 py-4 text-sm text-[rgb(var(--ec-page-text-muted))] relative">
|
|
62
62
|
<a href={url} className="absolute inset-0 z-10" aria-hidden="true" />
|
|
63
63
|
<div className="flex flex-wrap gap-1">
|
|
64
64
|
{tags.length > 0
|
|
65
65
|
? tags.map((tag, index) => (
|
|
66
66
|
<span
|
|
67
67
|
key={`${tag}-${index}`}
|
|
68
|
-
className="inline-flex items-center rounded-md bg-
|
|
68
|
+
className="inline-flex items-center rounded-md bg-[rgb(var(--ec-content-hover))] px-2 py-1 text-xs font-medium text-[rgb(var(--ec-page-text-muted))] ring-1 ring-inset ring-[rgb(var(--ec-page-border))]"
|
|
69
69
|
>
|
|
70
70
|
{tag}
|
|
71
71
|
</span>
|
|
@@ -75,14 +75,14 @@ const ResourceRow = memo(
|
|
|
75
75
|
</td>
|
|
76
76
|
)}
|
|
77
77
|
{showOwners && (
|
|
78
|
-
<td className="px-3 py-4 text-sm text-
|
|
78
|
+
<td className="px-3 py-4 text-sm text-[rgb(var(--ec-page-text-muted))] relative">
|
|
79
79
|
<a href={url} className="absolute inset-0 z-10" aria-hidden="true" />
|
|
80
80
|
<div className="flex flex-wrap gap-1">
|
|
81
81
|
{owners.length > 0
|
|
82
82
|
? owners.map((owner, index) => (
|
|
83
83
|
<span
|
|
84
84
|
key={`${owner.id || owner.name}-${index}`}
|
|
85
|
-
className="inline-flex items-center rounded-md bg-
|
|
85
|
+
className="inline-flex items-center rounded-md bg-[rgb(var(--ec-content-hover))] px-2 py-1 text-xs font-medium text-[rgb(var(--ec-page-text-muted))] ring-1 ring-inset ring-[rgb(var(--ec-page-border))]"
|
|
86
86
|
>
|
|
87
87
|
{owner.name || owner.id}
|
|
88
88
|
</span>
|
|
@@ -119,8 +119,8 @@ const FilterButton = memo(
|
|
|
119
119
|
}}
|
|
120
120
|
className={`px-3 py-1 rounded-md text-sm font-medium ${
|
|
121
121
|
typeFilter === type
|
|
122
|
-
? 'bg-
|
|
123
|
-
: 'bg-
|
|
122
|
+
? 'bg-[rgb(var(--ec-button-bg))] text-[rgb(var(--ec-button-text))] border border-[rgb(var(--ec-page-border))] hover:bg-[rgb(var(--ec-button-bg-hover))]'
|
|
123
|
+
: 'bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] text-[rgb(var(--ec-page-text))] border border-[rgb(var(--ec-page-border))] hover:bg-[rgb(var(--ec-content-hover))]'
|
|
124
124
|
}`}
|
|
125
125
|
>
|
|
126
126
|
{label} ({count})
|
|
@@ -217,13 +217,13 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
217
217
|
|
|
218
218
|
return (
|
|
219
219
|
<div className="mx-auto not-prose py-4 space-y-4 my-4">
|
|
220
|
-
{title && <h2 className="text-2xl font-semibold">{title}</h2>}
|
|
221
|
-
<div className="flow-root bg-
|
|
220
|
+
{title && <h2 className="text-2xl font-semibold text-[rgb(var(--ec-page-text))]">{title}</h2>}
|
|
221
|
+
<div className="flow-root bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border-[rgb(var(--ec-page-border))] border p-4 pb-2 rounded-lg text-[rgb(var(--ec-page-text))]">
|
|
222
222
|
<div className="space-y-4">
|
|
223
223
|
<h2 className="text-xl font-semibold">
|
|
224
224
|
{subtitle} ({searchTerm || typeFilter ? `${filteredResources.length}/${resources.length}` : resources.length})
|
|
225
225
|
</h2>
|
|
226
|
-
<span className="text-sm text-
|
|
226
|
+
<span className="text-sm text-[rgb(var(--ec-page-text-muted))]">{description}</span>
|
|
227
227
|
|
|
228
228
|
{/* Type filter buttons - only shown if there are filter options */}
|
|
229
229
|
{filterButtons.length > 0 && (
|
|
@@ -244,7 +244,12 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
244
244
|
|
|
245
245
|
<div className="relative">
|
|
246
246
|
<div className="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3">
|
|
247
|
-
<svg
|
|
247
|
+
<svg
|
|
248
|
+
className="h-5 w-5 text-[rgb(var(--ec-icon-color))]"
|
|
249
|
+
viewBox="0 0 20 20"
|
|
250
|
+
fill="currentColor"
|
|
251
|
+
aria-hidden="true"
|
|
252
|
+
>
|
|
248
253
|
<path
|
|
249
254
|
fillRule="evenodd"
|
|
250
255
|
d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z"
|
|
@@ -260,7 +265,7 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
260
265
|
setCurrentPage(1); // Reset to first page when searching
|
|
261
266
|
}}
|
|
262
267
|
placeholder="Search by name, type, description, or tags..."
|
|
263
|
-
className="block w-full rounded-md border-0 py-1.5 pl-10 pr-10 text-
|
|
268
|
+
className="block w-full rounded-md border-0 py-1.5 pl-10 pr-10 bg-[rgb(var(--ec-input-bg))] text-[rgb(var(--ec-input-text))] ring-1 ring-inset ring-[rgb(var(--ec-input-border))] placeholder:text-[rgb(var(--ec-input-placeholder))] focus:ring-2 focus:ring-inset focus:ring-[rgb(var(--ec-accent))] sm:text-sm sm:leading-6"
|
|
264
269
|
/>
|
|
265
270
|
{searchTerm && (
|
|
266
271
|
<button
|
|
@@ -271,7 +276,11 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
271
276
|
className="absolute inset-y-0 right-0 flex items-center pr-3"
|
|
272
277
|
aria-label="Clear search"
|
|
273
278
|
>
|
|
274
|
-
<svg
|
|
279
|
+
<svg
|
|
280
|
+
className="h-5 w-5 text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-icon-hover))]"
|
|
281
|
+
viewBox="0 0 20 20"
|
|
282
|
+
fill="currentColor"
|
|
283
|
+
>
|
|
275
284
|
<path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z" />
|
|
276
285
|
</svg>
|
|
277
286
|
</button>
|
|
@@ -281,40 +290,52 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
281
290
|
<div className="overflow-x-auto">
|
|
282
291
|
<div className="inline-block min-w-full py-2 align-middle">
|
|
283
292
|
<div className="max-w-full overflow-hidden">
|
|
284
|
-
<table className="min-w-full table-fixed divide-y divide-
|
|
293
|
+
<table className="min-w-full table-fixed divide-y divide-[rgb(var(--ec-page-border))] rounded-sm bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))]">
|
|
285
294
|
<thead>
|
|
286
295
|
<tr>
|
|
287
296
|
<th
|
|
288
297
|
scope="col"
|
|
289
|
-
className={`${showTags || showOwners ? 'w-1/5' : 'w-1/4'} py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-
|
|
298
|
+
className={`${showTags || showOwners ? 'w-1/5' : 'w-1/4'} py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-[rgb(var(--ec-page-text))] sm:pl-6`}
|
|
290
299
|
>
|
|
291
300
|
Name
|
|
292
301
|
</th>
|
|
293
|
-
<th
|
|
302
|
+
<th
|
|
303
|
+
scope="col"
|
|
304
|
+
className="w-[100px] px-3 py-3.5 text-left text-sm font-semibold text-[rgb(var(--ec-page-text))]"
|
|
305
|
+
>
|
|
294
306
|
Version
|
|
295
307
|
</th>
|
|
296
|
-
<th
|
|
308
|
+
<th
|
|
309
|
+
scope="col"
|
|
310
|
+
className="w-[100px] py-3.5 pl-3.5 pr-3 text-left text-sm font-semibold text-[rgb(var(--ec-page-text))]"
|
|
311
|
+
>
|
|
297
312
|
Type
|
|
298
313
|
</th>
|
|
299
314
|
<th
|
|
300
315
|
scope="col"
|
|
301
|
-
className={`${showTags && showOwners ? 'w-1/4' : showTags || showOwners ? 'w-1/3' : 'w-1/2'} px-3 py-3.5 text-left text-sm font-semibold text-
|
|
316
|
+
className={`${showTags && showOwners ? 'w-1/4' : showTags || showOwners ? 'w-1/3' : 'w-1/2'} px-3 py-3.5 text-left text-sm font-semibold text-[rgb(var(--ec-page-text))]`}
|
|
302
317
|
>
|
|
303
318
|
Description
|
|
304
319
|
</th>
|
|
305
320
|
{showTags && (
|
|
306
|
-
<th
|
|
321
|
+
<th
|
|
322
|
+
scope="col"
|
|
323
|
+
className="w-1/6 px-3 py-3.5 text-left text-sm font-semibold text-[rgb(var(--ec-page-text))]"
|
|
324
|
+
>
|
|
307
325
|
Tags
|
|
308
326
|
</th>
|
|
309
327
|
)}
|
|
310
328
|
{showOwners && (
|
|
311
|
-
<th
|
|
329
|
+
<th
|
|
330
|
+
scope="col"
|
|
331
|
+
className="w-1/6 px-3 py-3.5 text-left text-sm font-semibold text-[rgb(var(--ec-page-text))]"
|
|
332
|
+
>
|
|
312
333
|
Owners
|
|
313
334
|
</th>
|
|
314
335
|
)}
|
|
315
336
|
</tr>
|
|
316
337
|
</thead>
|
|
317
|
-
<tbody className="divide-y divide-
|
|
338
|
+
<tbody className="divide-y divide-[rgb(var(--ec-page-border))]">
|
|
318
339
|
{paginatedResources.length > 0 ? (
|
|
319
340
|
paginatedResources.map((resource) => (
|
|
320
341
|
<ResourceRow
|
|
@@ -328,7 +349,7 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
328
349
|
<tr>
|
|
329
350
|
<td
|
|
330
351
|
colSpan={showTags && showOwners ? 6 : showTags || showOwners ? 5 : 4}
|
|
331
|
-
className="text-center py-4 text-sm text-
|
|
352
|
+
className="text-center py-4 text-sm text-[rgb(var(--ec-page-text-muted))]"
|
|
332
353
|
>
|
|
333
354
|
No resources found
|
|
334
355
|
</td>
|
|
@@ -340,26 +361,26 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
340
361
|
</div>
|
|
341
362
|
</div>
|
|
342
363
|
{totalPages > 1 && (
|
|
343
|
-
<div className="flex items-center justify-between border-t border-
|
|
364
|
+
<div className="flex items-center justify-between border-t border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] px-4 py-3 sm:px-6 -mt-2">
|
|
344
365
|
<div className="flex flex-1 justify-between sm:hidden">
|
|
345
366
|
<button
|
|
346
367
|
onClick={() => setCurrentPage(currentPage - 1)}
|
|
347
368
|
disabled={currentPage === 1}
|
|
348
|
-
className={`relative inline-flex items-center rounded-md border border-
|
|
369
|
+
className={`relative inline-flex items-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] px-4 py-2 text-sm font-medium ${currentPage === 1 ? 'text-[rgb(var(--ec-icon-color))]' : 'text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-content-hover))]'}`}
|
|
349
370
|
>
|
|
350
371
|
Previous
|
|
351
372
|
</button>
|
|
352
373
|
<button
|
|
353
374
|
onClick={() => setCurrentPage(currentPage + 1)}
|
|
354
375
|
disabled={currentPage === totalPages}
|
|
355
|
-
className={`relative ml-3 inline-flex items-center rounded-md border border-
|
|
376
|
+
className={`relative ml-3 inline-flex items-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] px-4 py-2 text-sm font-medium ${currentPage === totalPages ? 'text-[rgb(var(--ec-icon-color))]' : 'text-[rgb(var(--ec-page-text))] hover:bg-[rgb(var(--ec-content-hover))]'}`}
|
|
356
377
|
>
|
|
357
378
|
Next
|
|
358
379
|
</button>
|
|
359
380
|
</div>
|
|
360
381
|
<div className="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between">
|
|
361
382
|
<div>
|
|
362
|
-
<p className="text-sm text-
|
|
383
|
+
<p className="text-sm text-[rgb(var(--ec-page-text-muted))]">
|
|
363
384
|
Showing <span className="font-medium">{startIndex + 1}</span> to{' '}
|
|
364
385
|
<span className="font-medium">{Math.min(startIndex + itemsPerPage, filteredResources.length)}</span> of{' '}
|
|
365
386
|
<span className="font-medium">{filteredResources.length}</span> results
|
|
@@ -370,7 +391,7 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
370
391
|
<button
|
|
371
392
|
onClick={() => setCurrentPage(currentPage - 1)}
|
|
372
393
|
disabled={currentPage === 1}
|
|
373
|
-
className={`relative inline-flex items-center rounded-l-md px-2 py-2 ${currentPage === 1 ? 'text-
|
|
394
|
+
className={`relative inline-flex items-center rounded-l-md px-2 py-2 ${currentPage === 1 ? 'text-[rgb(var(--ec-icon-color))]' : 'text-[rgb(var(--ec-page-text-muted))] hover:bg-[rgb(var(--ec-content-hover))]'} ring-1 ring-inset ring-[rgb(var(--ec-page-border))]`}
|
|
374
395
|
>
|
|
375
396
|
<span className="sr-only">Previous</span>
|
|
376
397
|
<svg className="h-5 w-5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
@@ -384,7 +405,7 @@ const ResourceGroupTable = (props: ResourceGroupTableProps) => {
|
|
|
384
405
|
<button
|
|
385
406
|
onClick={() => setCurrentPage(currentPage + 1)}
|
|
386
407
|
disabled={currentPage === totalPages}
|
|
387
|
-
className={`relative inline-flex items-center rounded-r-md px-2 py-2 ${currentPage === totalPages ? 'text-
|
|
408
|
+
className={`relative inline-flex items-center rounded-r-md px-2 py-2 ${currentPage === totalPages ? 'text-[rgb(var(--ec-icon-color))]' : 'text-[rgb(var(--ec-page-text-muted))] hover:bg-[rgb(var(--ec-content-hover))]'} ring-1 ring-inset ring-[rgb(var(--ec-page-border))]`}
|
|
388
409
|
>
|
|
389
410
|
<span className="sr-only">Next</span>
|
|
390
411
|
<svg className="h-5 w-5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
@@ -9,7 +9,7 @@ const { title } = Astro.props;
|
|
|
9
9
|
</span>
|
|
10
10
|
<h3 class="font-semibold text-lg ml-0">{title}</h3>
|
|
11
11
|
</div>
|
|
12
|
-
<p class="text-
|
|
12
|
+
<p class="text-[rgb(var(--ec-page-text-muted))] text-sm ml-4"><slot /></p>
|
|
13
13
|
</li>
|
|
14
14
|
|
|
15
15
|
<script>
|
|
@@ -26,7 +26,7 @@ const { title } = Astro.props;
|
|
|
26
26
|
|
|
27
27
|
<style is:global>
|
|
28
28
|
.step a {
|
|
29
|
-
color:
|
|
29
|
+
color: rgb(var(--ec-page-text-muted));
|
|
30
30
|
text-decoration: underline;
|
|
31
31
|
&:hover {
|
|
32
32
|
color: #b977f9;
|
|
@@ -19,9 +19,9 @@ function splitByLi(html: string) {
|
|
|
19
19
|
const data = splitByLi(html);
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
<div class="bg-
|
|
23
|
-
{title && <h2 class="text-2xl font-bold text-
|
|
24
|
-
<ol class="relative border-l border-
|
|
22
|
+
<div class="bg-[rgb(var(--ec-page-bg))] text-[rgb(var(--ec-page-text))] py-10 pb-0 font-sans not-prose">
|
|
23
|
+
{title && <h2 class="text-2xl font-bold text-[rgb(var(--ec-page-text))] mb-6">{title}</h2>}
|
|
24
|
+
<ol class="relative border-l border-[rgb(var(--ec-page-border))] ml-3">
|
|
25
25
|
{data.map((item: any) => <Fragment set:html={item} />)}
|
|
26
26
|
</ol>
|
|
27
27
|
</div>
|
|
@@ -32,8 +32,8 @@ const tabItems: TabItem[] = await Promise.all(
|
|
|
32
32
|
const tabsId = Math.random().toString(36).substring(2, 9);
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
<div class="bg-
|
|
36
|
-
{title && <h2 class="text-2xl font-bold text-
|
|
35
|
+
<div class="bg-[rgb(var(--ec-page-bg))] text-[rgb(var(--ec-page-text))] pb-10 not-prose" data-tabs-container={tabsId}>
|
|
36
|
+
{title && <h2 class="text-2xl font-bold text-[rgb(var(--ec-page-text))] mb-6">{title}</h2>}
|
|
37
37
|
|
|
38
38
|
{/* Tab List */}
|
|
39
39
|
<div class="">
|
|
@@ -41,7 +41,7 @@ const tabsId = Math.random().toString(36).substring(2, 9);
|
|
|
41
41
|
{
|
|
42
42
|
tabItems.map((item) => (
|
|
43
43
|
<button
|
|
44
|
-
class="whitespace-nowrap py-4 px-1 border-b-2 px-6 font-bold text-sm border-transparent text-
|
|
44
|
+
class="whitespace-nowrap py-4 px-1 border-b-2 px-6 font-bold text-sm border-transparent text-[rgb(var(--ec-page-text-muted))] hover:text-[rgb(var(--ec-page-text))] hover:border-[rgb(var(--ec-page-border))] hover:bg-[rgb(var(--ec-content-hover))] focus:outline-none tab-button"
|
|
45
45
|
data-tab={item.id}
|
|
46
46
|
aria-selected="false"
|
|
47
47
|
>
|
|
@@ -70,22 +70,19 @@ const tabsId = Math.random().toString(36).substring(2, 9);
|
|
|
70
70
|
const panels: NodeListOf<HTMLElement> = container.querySelectorAll('[data-tab-content]');
|
|
71
71
|
|
|
72
72
|
// Show first tab by default
|
|
73
|
-
tabs[0]?.classList.add('
|
|
74
|
-
tabs[0]?.classList.remove('text-gray-500', 'border-transparent');
|
|
73
|
+
tabs[0]?.classList.add('tab-active');
|
|
75
74
|
panels[0]?.classList.remove('hidden');
|
|
76
75
|
|
|
77
76
|
tabs.forEach((tab: HTMLButtonElement) => {
|
|
78
77
|
tab.addEventListener('click', () => {
|
|
79
78
|
// Remove active states
|
|
80
79
|
tabs.forEach((t: HTMLButtonElement) => {
|
|
81
|
-
t.classList.remove('
|
|
82
|
-
t.classList.add('text-gray-500', 'border-transparent');
|
|
80
|
+
t.classList.remove('tab-active');
|
|
83
81
|
});
|
|
84
82
|
panels.forEach((p: HTMLElement) => p.classList.add('hidden'));
|
|
85
83
|
|
|
86
84
|
// Set active states
|
|
87
|
-
tab.classList.
|
|
88
|
-
tab.classList.add('text-purple-600', 'border-purple-600');
|
|
85
|
+
tab.classList.add('tab-active');
|
|
89
86
|
|
|
90
87
|
// Show corresponding panel
|
|
91
88
|
const tabId = tab.getAttribute('data-tab');
|
|
@@ -103,3 +100,10 @@ const tabsId = Math.random().toString(36).substring(2, 9);
|
|
|
103
100
|
});
|
|
104
101
|
});
|
|
105
102
|
</script>
|
|
103
|
+
|
|
104
|
+
<style is:global>
|
|
105
|
+
.tab-button.tab-active {
|
|
106
|
+
color: rgb(var(--ec-accent));
|
|
107
|
+
border-color: rgb(var(--ec-accent));
|
|
108
|
+
}
|
|
109
|
+
</style>
|
|
@@ -28,31 +28,43 @@ function startsWithProtocol(str: string) {
|
|
|
28
28
|
<a
|
|
29
29
|
href={startsWithProtocol(href) ? href : buildUrl(href)}
|
|
30
30
|
target={openWindow ? '_blank' : '_self'}
|
|
31
|
-
class="block relative bg-
|
|
31
|
+
class="tile-card block relative bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] border border-[rgb(var(--ec-page-border))] rounded-xl p-8 h-48 transition-all duration-300 ease-out hover:border-[rgb(var(--ec-accent)/0.5)] focus:outline-none focus:ring-2 focus:ring-[rgb(var(--ec-accent))] focus:ring-offset-2 overflow-hidden"
|
|
32
32
|
>
|
|
33
33
|
<!-- Icon centered in card with grid background -->
|
|
34
34
|
<div class="relative h-full flex items-center justify-center">
|
|
35
35
|
<!-- Squared paper grid behind icon -->
|
|
36
|
-
<div
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
linear-gradient(rgba(147, 51, 234, 0.2) 1px, transparent 1px),
|
|
40
|
-
linear-gradient(90deg, rgba(147, 51, 234, 0.2) 1px, transparent 1px);
|
|
41
|
-
background-size: 16px 16px;"
|
|
42
|
-
>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
{IconComponent && <IconComponent className="relative w-16 h-16 text-purple-600 stroke-1" />}
|
|
36
|
+
<div class="tile-grid absolute inset-0 opacity-15"></div>
|
|
37
|
+
|
|
38
|
+
{IconComponent && <IconComponent className="tile-icon relative w-16 h-16 stroke-1" />}
|
|
46
39
|
</div>
|
|
47
40
|
</a>
|
|
48
41
|
|
|
49
42
|
<!-- Title and description outside card -->
|
|
50
43
|
<div class="mt-4 space-y-0">
|
|
51
|
-
<h2 class="text-
|
|
44
|
+
<h2 class="text-[rgb(var(--ec-page-text))] text-lg font-semibold">
|
|
52
45
|
{title}
|
|
53
46
|
</h2>
|
|
54
|
-
<p class="text-
|
|
47
|
+
<p class="text-[rgb(var(--ec-page-text-muted))] text-sm leading-relaxed">
|
|
55
48
|
{description}
|
|
56
49
|
</p>
|
|
57
50
|
</div>
|
|
58
51
|
</div>
|
|
52
|
+
|
|
53
|
+
<style>
|
|
54
|
+
.tile-card:hover {
|
|
55
|
+
box-shadow:
|
|
56
|
+
0 10px 15px -3px rgb(var(--ec-accent) / 0.1),
|
|
57
|
+
0 4px 6px -4px rgb(var(--ec-accent) / 0.1);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.tile-grid {
|
|
61
|
+
background-image:
|
|
62
|
+
linear-gradient(rgb(var(--ec-accent) / 0.2) 1px, transparent 1px),
|
|
63
|
+
linear-gradient(90deg, rgb(var(--ec-accent) / 0.2) 1px, transparent 1px);
|
|
64
|
+
background-size: 16px 16px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.tile-icon {
|
|
68
|
+
color: rgb(var(--ec-accent));
|
|
69
|
+
}
|
|
70
|
+
</style>
|
|
@@ -3,7 +3,7 @@ const { title, columns = 2 } = Astro.props;
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
<section class="not-prose my-8">
|
|
6
|
-
{title && <h2 class="text-2xl font-bold text-
|
|
6
|
+
{title && <h2 class="text-2xl font-bold text-[rgb(var(--ec-page-text))] mb-6">{title}</h2>}
|
|
7
7
|
<div class={`grid grid-cols-1 md:grid-cols-${columns} gap-6 w-full not-prose`}>
|
|
8
8
|
<slot />
|
|
9
9
|
</div>
|
|
@@ -42,7 +42,7 @@ export default function ApiAccessSection({
|
|
|
42
42
|
<CommandLineIcon className="h-3.5 w-3.5 text-gray-700" />
|
|
43
43
|
<span className="text-xs font-medium text-gray-700">API</span>
|
|
44
44
|
{!apiAccessEnabled && (
|
|
45
|
-
<span className="inline-flex items-center gap-1 rounded bg-
|
|
45
|
+
<span className="inline-flex items-center gap-1 rounded bg-[rgb(var(--ec-accent-subtle))] px-1.5 py-0.5 text-[10px] font-medium text-[rgb(var(--ec-accent-text))] border border-[rgb(var(--ec-accent)/0.2)]">
|
|
46
46
|
<LockClosedIcon className="h-2.5 w-2.5" />
|
|
47
47
|
Scale
|
|
48
48
|
</span>
|
|
@@ -119,7 +119,7 @@ export default function ApiAccessSection({
|
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
121
121
|
) : (
|
|
122
|
-
<div className="flex items-center justify-between gap-3 bg-
|
|
122
|
+
<div className="flex items-center justify-between gap-3 bg-[rgb(var(--ec-accent-subtle))] border border-[rgb(var(--ec-accent)/0.2)] rounded-md px-3 py-2.5">
|
|
123
123
|
<div className="flex-1 min-w-0">
|
|
124
124
|
<p className="text-xs font-medium text-gray-700">Access schemas via API</p>
|
|
125
125
|
<p className="text-[10px] text-gray-500 mt-0.5">CI/CD, automation & integrations</p>
|
|
@@ -128,7 +128,7 @@ export default function ApiAccessSection({
|
|
|
128
128
|
href="https://eventcatalog.cloud"
|
|
129
129
|
target="_blank"
|
|
130
130
|
rel="noopener noreferrer"
|
|
131
|
-
className="flex-shrink-0 inline-flex items-center gap-1 px-2.5 py-1.5 text-[11px] font-medium text-white bg-
|
|
131
|
+
className="flex-shrink-0 inline-flex items-center gap-1 px-2.5 py-1.5 text-[11px] font-medium text-white bg-[rgb(var(--ec-accent))] rounded-md hover:bg-[rgb(var(--ec-accent-hover))] transition-colors"
|
|
132
132
|
>
|
|
133
133
|
Try Scale
|
|
134
134
|
<svg xmlns="http://www.w3.org/2000/svg" className="h-3 w-3" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
@@ -26,8 +26,8 @@ export default function ApiContentViewer({ message, onCopy, copiedId, apiAccessE
|
|
|
26
26
|
return (
|
|
27
27
|
<div className="h-full flex items-center justify-center p-8">
|
|
28
28
|
<div className="max-w-md text-center">
|
|
29
|
-
<div className="flex items-center justify-center w-16 h-16 mx-auto mb-4 rounded-2xl bg-
|
|
30
|
-
<LockClosedIcon className="h-8 w-8 text-
|
|
29
|
+
<div className="flex items-center justify-center w-16 h-16 mx-auto mb-4 rounded-2xl bg-[rgb(var(--ec-accent-subtle))] border border-[rgb(var(--ec-accent)/0.3)]">
|
|
30
|
+
<LockClosedIcon className="h-8 w-8 text-[rgb(var(--ec-accent))]" />
|
|
31
31
|
</div>
|
|
32
32
|
<h3 className="text-lg font-semibold text-gray-900 mb-2">API Access</h3>
|
|
33
33
|
<p className="text-sm text-gray-600 mb-6">
|
|
@@ -38,7 +38,7 @@ export default function ApiContentViewer({ message, onCopy, copiedId, apiAccessE
|
|
|
38
38
|
href="https://eventcatalog.cloud"
|
|
39
39
|
target="_blank"
|
|
40
40
|
rel="noopener noreferrer"
|
|
41
|
-
className="inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-
|
|
41
|
+
className="inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-[rgb(var(--ec-accent))] rounded-lg hover:bg-[rgb(var(--ec-accent-hover))] transition-colors"
|
|
42
42
|
>
|
|
43
43
|
Upgrade to Scale
|
|
44
44
|
<svg xmlns="http://www.w3.org/2000/svg" className="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|