@eventcatalog/core 3.0.0 → 3.1.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-E5Q7TZYT.js → chunk-2WGZFERB.js} +1 -1
- package/dist/{chunk-VO5WYA44.js → chunk-ESUL7UE6.js} +1 -1
- package/dist/{chunk-KF5PARQK.js → chunk-I3CW5KQI.js} +1 -1
- package/dist/{chunk-EKGR533N.js → chunk-KBO4IL2D.js} +1 -1
- package/dist/{chunk-BYP43AAT.js → chunk-URR33SNK.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 +85 -69
- package/eventcatalog/src/components/ChatPanel/ChatPanelButton.tsx +1 -1
- 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/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 +1 -1
|
@@ -25,13 +25,13 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
25
25
|
const user = info.row.original;
|
|
26
26
|
return (
|
|
27
27
|
<a href={buildUrl(`/docs/${user.collection}/${user.data.id}`)} className="group inline-flex items-center">
|
|
28
|
-
<span className="inline-flex items-center rounded-md border border-
|
|
29
|
-
<span className="flex items-center justify-center w-6 h-6 bg-
|
|
28
|
+
<span className="inline-flex items-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] hover:border-[rgb(var(--ec-accent))] hover:bg-[rgb(var(--ec-accent-subtle))] transition-colors">
|
|
29
|
+
<span className="flex items-center justify-center w-6 h-6 bg-[rgb(var(--ec-accent))] rounded-l-md">
|
|
30
30
|
<User className="h-3 w-3 text-white" />
|
|
31
31
|
</span>
|
|
32
|
-
<span className="px-2 py-1 text-xs text-
|
|
32
|
+
<span className="px-2 py-1 text-xs text-[rgb(var(--ec-page-text))] group-hover:text-[rgb(var(--ec-page-text))]">
|
|
33
33
|
{user.data.name}
|
|
34
|
-
{user.data.role && <span className="text-
|
|
34
|
+
{user.data.role && <span className="text-[rgb(var(--ec-icon-color))] ml-1">({user.data.role})</span>}
|
|
35
35
|
</span>
|
|
36
36
|
</span>
|
|
37
37
|
</a>
|
|
@@ -65,7 +65,7 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
65
65
|
|
|
66
66
|
if (messages?.length === 0 || !messages)
|
|
67
67
|
return (
|
|
68
|
-
<span className="inline-flex items-center px-2 py-1 text-xs text-
|
|
68
|
+
<span className="inline-flex items-center px-2 py-1 text-xs text-[rgb(var(--ec-icon-color))] bg-[rgb(var(--ec-content-hover))] rounded-md border border-[rgb(var(--ec-page-border))]">
|
|
69
69
|
No messages
|
|
70
70
|
</span>
|
|
71
71
|
);
|
|
@@ -84,21 +84,24 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
84
84
|
className="group inline-flex items-center"
|
|
85
85
|
>
|
|
86
86
|
<span
|
|
87
|
-
className={`inline-flex items-center rounded-md border border-
|
|
87
|
+
className={`inline-flex items-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] hover:border-${color}-400 dark:hover:border-${color}-500 hover:bg-${color}-50 dark:hover:bg-${color}-500/10 transition-colors`}
|
|
88
88
|
>
|
|
89
89
|
<span className={`flex items-center justify-center w-6 h-6 bg-${color}-500 rounded-l-md`}>
|
|
90
90
|
<Icon className="h-3 w-3 text-white" />
|
|
91
91
|
</span>
|
|
92
|
-
<span className="px-2 py-1 text-xs text-
|
|
92
|
+
<span className="px-2 py-1 text-xs text-[rgb(var(--ec-page-text))] group-hover:text-[rgb(var(--ec-page-text))]">
|
|
93
93
|
{message.data.name}
|
|
94
|
-
<span className="text-
|
|
94
|
+
<span className="text-[rgb(var(--ec-icon-color))] ml-1">v{message.data.version}</span>
|
|
95
95
|
</span>
|
|
96
96
|
</span>
|
|
97
97
|
</a>
|
|
98
98
|
);
|
|
99
99
|
})}
|
|
100
100
|
{hiddenCount > 0 && (
|
|
101
|
-
<button
|
|
101
|
+
<button
|
|
102
|
+
onClick={() => setIsExpanded(!isExpanded)}
|
|
103
|
+
className="text-xs text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-page-text))] text-left"
|
|
104
|
+
>
|
|
102
105
|
{isExpanded ? 'Show less' : `+${hiddenCount} more`}
|
|
103
106
|
</button>
|
|
104
107
|
)}
|
|
@@ -121,7 +124,7 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
121
124
|
|
|
122
125
|
if (services?.length === 0 || !services)
|
|
123
126
|
return (
|
|
124
|
-
<span className="inline-flex items-center px-2 py-1 text-xs text-
|
|
127
|
+
<span className="inline-flex items-center px-2 py-1 text-xs text-[rgb(var(--ec-icon-color))] bg-[rgb(var(--ec-content-hover))] rounded-md border border-[rgb(var(--ec-page-border))]">
|
|
125
128
|
No services
|
|
126
129
|
</span>
|
|
127
130
|
);
|
|
@@ -137,19 +140,22 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
137
140
|
href={buildUrl(`/docs/${service.collection}/${service.data.id}/${service.data.version}`)}
|
|
138
141
|
className="group inline-flex items-center"
|
|
139
142
|
>
|
|
140
|
-
<span className="inline-flex items-center rounded-md border border-
|
|
143
|
+
<span className="inline-flex items-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] hover:border-pink-400 dark:hover:border-pink-500 hover:bg-pink-50 dark:hover:bg-pink-500/10 transition-colors">
|
|
141
144
|
<span className="flex items-center justify-center w-6 h-6 bg-pink-500 rounded-l-md">
|
|
142
145
|
<ServerIcon className="h-3 w-3 text-white" />
|
|
143
146
|
</span>
|
|
144
|
-
<span className="px-2 py-1 text-xs text-
|
|
147
|
+
<span className="px-2 py-1 text-xs text-[rgb(var(--ec-page-text))] group-hover:text-[rgb(var(--ec-page-text))]">
|
|
145
148
|
{service.data.name}
|
|
146
|
-
<span className="text-
|
|
149
|
+
<span className="text-[rgb(var(--ec-icon-color))] ml-1">v{service.data.version}</span>
|
|
147
150
|
</span>
|
|
148
151
|
</span>
|
|
149
152
|
</a>
|
|
150
153
|
))}
|
|
151
154
|
{hiddenCount > 0 && (
|
|
152
|
-
<button
|
|
155
|
+
<button
|
|
156
|
+
onClick={() => setIsExpanded(!isExpanded)}
|
|
157
|
+
className="text-xs text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-page-text))] text-left"
|
|
158
|
+
>
|
|
153
159
|
{isExpanded ? 'Show less' : `+${hiddenCount} more`}
|
|
154
160
|
</button>
|
|
155
161
|
)}
|
|
@@ -174,7 +180,7 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
174
180
|
|
|
175
181
|
if (teams?.length === 0 || !teams)
|
|
176
182
|
return (
|
|
177
|
-
<span className="inline-flex items-center px-2 py-1 text-xs text-
|
|
183
|
+
<span className="inline-flex items-center px-2 py-1 text-xs text-[rgb(var(--ec-icon-color))] bg-[rgb(var(--ec-content-hover))] rounded-md border border-[rgb(var(--ec-page-border))]">
|
|
178
184
|
No teams
|
|
179
185
|
</span>
|
|
180
186
|
);
|
|
@@ -190,16 +196,21 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
190
196
|
href={buildUrl(`/docs/teams/${team.data.id}`)}
|
|
191
197
|
className="group inline-flex items-center"
|
|
192
198
|
>
|
|
193
|
-
<span className="inline-flex items-center rounded-md border border-
|
|
199
|
+
<span className="inline-flex items-center rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))] hover:border-pink-400 dark:hover:border-pink-500 hover:bg-pink-50 dark:hover:bg-pink-500/10 transition-colors">
|
|
194
200
|
<span className="flex items-center justify-center w-6 h-6 bg-pink-500 rounded-l-md">
|
|
195
201
|
<Users className="h-3 w-3 text-white" />
|
|
196
202
|
</span>
|
|
197
|
-
<span className="px-2 py-1 text-xs text-
|
|
203
|
+
<span className="px-2 py-1 text-xs text-[rgb(var(--ec-page-text))] group-hover:text-[rgb(var(--ec-page-text))]">
|
|
204
|
+
{team.data.name}
|
|
205
|
+
</span>
|
|
198
206
|
</span>
|
|
199
207
|
</a>
|
|
200
208
|
))}
|
|
201
209
|
{hiddenCount > 0 && (
|
|
202
|
-
<button
|
|
210
|
+
<button
|
|
211
|
+
onClick={() => setIsExpanded(!isExpanded)}
|
|
212
|
+
className="text-xs text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-page-text))] text-left"
|
|
213
|
+
>
|
|
203
214
|
{isExpanded ? 'Show less' : `+${hiddenCount} more`}
|
|
204
215
|
</button>
|
|
205
216
|
)}
|
|
@@ -216,7 +227,7 @@ export const columns = (tableConfiguration: TableConfiguration) => [
|
|
|
216
227
|
const item = info.row.original;
|
|
217
228
|
return (
|
|
218
229
|
<a
|
|
219
|
-
className="inline-flex items-center px-2.5 py-1 text-xs font-medium text-
|
|
230
|
+
className="inline-flex items-center px-2.5 py-1 text-xs font-medium text-[rgb(var(--ec-page-text-muted))] bg-[rgb(var(--ec-content-hover))] border border-[rgb(var(--ec-page-border))] rounded-md hover:bg-[rgb(var(--ec-content-hover))] hover:text-[rgb(var(--ec-page-text))] transition-colors whitespace-nowrap"
|
|
220
231
|
href={buildUrl(`/docs/${item.collection}/${item.data.id}`)}
|
|
221
232
|
>
|
|
222
233
|
View profile
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useStore } from '@nanostores/react';
|
|
2
|
+
import { Moon, Sun } from 'lucide-react';
|
|
3
|
+
import { themeStore, toggleTheme } from '@stores/theme-store';
|
|
4
|
+
|
|
5
|
+
export default function ThemeToggle() {
|
|
6
|
+
const theme = useStore(themeStore);
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<button
|
|
10
|
+
onClick={toggleTheme}
|
|
11
|
+
className="p-2 rounded-md text-[rgb(var(--ec-icon-color))] hover:text-[rgb(var(--ec-icon-hover))] hover:bg-[rgb(var(--ec-dropdown-hover))] transition-colors"
|
|
12
|
+
aria-label={`Switch to ${theme === 'light' ? 'dark' : 'light'} mode`}
|
|
13
|
+
title={`Switch to ${theme === 'light' ? 'dark' : 'light'} mode`}
|
|
14
|
+
>
|
|
15
|
+
{theme === 'light' ? <Moon className="w-5 h-5" /> : <Sun className="w-5 h-5" />}
|
|
16
|
+
</button>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -28,7 +28,7 @@ const NestedItem: React.FC<NestedItemProps> = ({
|
|
|
28
28
|
<div className="py-1">
|
|
29
29
|
<div className="flex items-center">
|
|
30
30
|
<button
|
|
31
|
-
className="p-1 hover:bg-
|
|
31
|
+
className="p-1 hover:bg-[rgb(var(--ec-content-hover))] rounded-md flex-shrink-0"
|
|
32
32
|
onClick={(e) => {
|
|
33
33
|
e.stopPropagation();
|
|
34
34
|
toggleGroupCollapse(`nested-${itemId}`);
|
|
@@ -43,14 +43,14 @@ const NestedItem: React.FC<NestedItemProps> = ({
|
|
|
43
43
|
stroke="currentColor"
|
|
44
44
|
aria-hidden="true"
|
|
45
45
|
data-slot="icon"
|
|
46
|
-
className="h-3 w-3 text-
|
|
46
|
+
className="h-3 w-3 text-[rgb(var(--ec-icon-color))]"
|
|
47
47
|
>
|
|
48
48
|
<path strokeLinecap="round" strokeLinejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5"></path>
|
|
49
49
|
</svg>
|
|
50
50
|
</div>
|
|
51
51
|
</button>
|
|
52
52
|
<button
|
|
53
|
-
className="flex items-center px-2 py-1 text-xs font-medium text-
|
|
53
|
+
className="flex items-center px-2 py-1 text-xs font-medium text-[rgb(var(--ec-page-text-muted))] rounded-md hover:bg-[rgb(var(--ec-content-hover))] min-w-0 flex-1"
|
|
54
54
|
onClick={(e) => {
|
|
55
55
|
e.stopPropagation();
|
|
56
56
|
toggleGroupCollapse(`nested-${itemId}`);
|
|
@@ -59,7 +59,11 @@ const NestedItem: React.FC<NestedItemProps> = ({
|
|
|
59
59
|
<span className="truncate">{item.label}</span>
|
|
60
60
|
{item.badge && item?.badge?.text && (
|
|
61
61
|
<span
|
|
62
|
-
className={
|
|
62
|
+
className={
|
|
63
|
+
item.badge.color
|
|
64
|
+
? `text-${item.badge.color}-600 dark:text-${item.badge.color}-400 ml-2 text-[10px] font-medium bg-${item.badge.color}-50 dark:bg-${item.badge.color}-500/20 px-2 py-0.5 rounded uppercase`
|
|
65
|
+
: `text-[rgb(var(--ec-accent))] ml-2 text-[10px] font-medium bg-[rgb(var(--ec-accent-subtle))] px-2 py-0.5 rounded uppercase`
|
|
66
|
+
}
|
|
63
67
|
>
|
|
64
68
|
{item.badge.text}
|
|
65
69
|
</span>
|
|
@@ -72,7 +76,7 @@ const NestedItem: React.FC<NestedItemProps> = ({
|
|
|
72
76
|
collapsedGroups[`nested-${itemId}`] ? 'h-0' : 'h-auto'
|
|
73
77
|
}`}
|
|
74
78
|
>
|
|
75
|
-
<div className="space-y-0.5 border-
|
|
79
|
+
<div className="space-y-0.5 border-[rgb(var(--ec-page-border))] border-l pl-4 ml-[9px] mt-1">
|
|
76
80
|
{item.items.map((nestedItem: SidebarItem, nestedIndex: number) => (
|
|
77
81
|
<NestedItem
|
|
78
82
|
key={`nested-${itemId}-${nestedIndex}`}
|
|
@@ -121,7 +125,7 @@ const NestedItem: React.FC<NestedItemProps> = ({
|
|
|
121
125
|
<a
|
|
122
126
|
href={itemPath}
|
|
123
127
|
{...(attrs || {})}
|
|
124
|
-
className={`flex items-center px-2 py-1.5 text-xs ${isActive ? 'bg-
|
|
128
|
+
className={`flex items-center px-2 py-1.5 text-xs ${isActive ? 'bg-[rgb(var(--ec-accent-subtle))] text-[rgb(var(--ec-page-text))] font-semibold' : 'text-[rgb(var(--ec-page-text-muted))] hover:bg-[rgb(var(--ec-content-hover))]'} rounded-md`}
|
|
125
129
|
data-active={isActive}
|
|
126
130
|
target={isExternalLink ? '_blank' : undefined}
|
|
127
131
|
>
|
|
@@ -131,7 +135,11 @@ const NestedItem: React.FC<NestedItemProps> = ({
|
|
|
131
135
|
</span>
|
|
132
136
|
{item.badge && item?.badge?.text && (
|
|
133
137
|
<span
|
|
134
|
-
className={
|
|
138
|
+
className={
|
|
139
|
+
item.badge.color
|
|
140
|
+
? `text-${item.badge.color}-600 dark:text-${item.badge.color}-400 ml-2 text-[10px] font-medium bg-${item.badge.color}-50 dark:bg-${item.badge.color}-500/20 px-2 py-0.5 rounded uppercase`
|
|
141
|
+
: `text-[rgb(var(--ec-accent))] ml-2 text-[10px] font-medium bg-[rgb(var(--ec-accent-subtle))] px-2 py-0.5 rounded uppercase`
|
|
142
|
+
}
|
|
135
143
|
>
|
|
136
144
|
{item.badge.text}
|
|
137
145
|
</span>
|
|
@@ -6,8 +6,8 @@ interface NoResultsFoundProps {
|
|
|
6
6
|
|
|
7
7
|
const NoResultsFound: React.FC<NoResultsFoundProps> = ({ searchTerm }) => (
|
|
8
8
|
<div className="px-4 py-6 text-center">
|
|
9
|
-
<div className="text-
|
|
10
|
-
<div className="text-
|
|
9
|
+
<div className="text-[rgb(var(--ec-page-text-muted))] text-sm mb-2">No results found for "{searchTerm}"</div>
|
|
10
|
+
<div className="text-[rgb(var(--ec-page-text-muted))] text-xs">
|
|
11
11
|
Try:
|
|
12
12
|
<ul className="mt-2 space-y-1 text-left list-disc pl-4">
|
|
13
13
|
<li>Checking for typos</li>
|
|
@@ -197,31 +197,31 @@ const CustomDocsNav: React.FC<CustomDocsNavProps> = ({ sidebarItems }) => {
|
|
|
197
197
|
const hasNoResults = debouncedSearchTerm && filteredSidebarItems.length === 0;
|
|
198
198
|
|
|
199
199
|
return (
|
|
200
|
-
<nav ref={navRef} className="h-full text-
|
|
201
|
-
<div className="mb-2 px-3 bg-
|
|
200
|
+
<nav ref={navRef} className="h-full text-[rgb(var(--ec-page-text))] pt-4 overflow-y-auto">
|
|
201
|
+
<div className="mb-2 px-3 bg-[rgb(var(--ec-page-bg))] z-10">
|
|
202
202
|
<div className="flex gap-2">
|
|
203
203
|
<input
|
|
204
204
|
type="text"
|
|
205
205
|
value={searchTerm}
|
|
206
206
|
onChange={handleSearchChange}
|
|
207
207
|
placeholder="Quick search..."
|
|
208
|
-
className="flex-1 p-2 px-2 text-sm rounded-md border border-
|
|
208
|
+
className="flex-1 p-2 px-2 text-sm rounded-md border border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-input-bg))] text-[rgb(var(--ec-input-text))] placeholder:text-[rgb(var(--ec-input-placeholder))] h-[30px]"
|
|
209
209
|
/>
|
|
210
210
|
<button
|
|
211
211
|
onClick={toggleExpandCollapse}
|
|
212
212
|
title={isExpanded ? 'Collapse All' : 'Expand All'}
|
|
213
|
-
className="px-2 py-1 bg-
|
|
213
|
+
className="px-2 py-1 bg-[rgb(var(--ec-content-hover))] hover:bg-[rgb(var(--ec-content-active))] rounded-md border border-[rgb(var(--ec-page-border))] h-[30px] flex items-center justify-center"
|
|
214
214
|
>
|
|
215
215
|
{isExpanded ? (
|
|
216
|
-
<ChevronDoubleUpIcon className="h-4 w-4 text-
|
|
216
|
+
<ChevronDoubleUpIcon className="h-4 w-4 text-[rgb(var(--ec-icon-color))]" />
|
|
217
217
|
) : (
|
|
218
|
-
<ChevronDoubleDownIcon className="h-4 w-4 text-
|
|
218
|
+
<ChevronDoubleDownIcon className="h-4 w-4 text-[rgb(var(--ec-icon-color))]" />
|
|
219
219
|
)}
|
|
220
220
|
</button>
|
|
221
221
|
</div>
|
|
222
222
|
</div>
|
|
223
223
|
|
|
224
|
-
<div className="space-y-2 divide-y divide-
|
|
224
|
+
<div className="space-y-2 divide-y divide-[rgb(var(--ec-page-border))] pb-4">
|
|
225
225
|
{hasNoResults ? (
|
|
226
226
|
<NoResultsFound searchTerm={debouncedSearchTerm} />
|
|
227
227
|
) : (
|
|
@@ -231,7 +231,7 @@ const CustomDocsNav: React.FC<CustomDocsNavProps> = ({ sidebarItems }) => {
|
|
|
231
231
|
{section.items ? (
|
|
232
232
|
<div className="flex items-center">
|
|
233
233
|
<button
|
|
234
|
-
className="p-1 hover:bg-
|
|
234
|
+
className="p-1 hover:bg-[rgb(var(--ec-content-hover))] rounded-md flex-shrink-0"
|
|
235
235
|
onClick={(e) => {
|
|
236
236
|
e.stopPropagation();
|
|
237
237
|
toggleGroupCollapse(`section-${index}`);
|
|
@@ -248,14 +248,14 @@ const CustomDocsNav: React.FC<CustomDocsNavProps> = ({ sidebarItems }) => {
|
|
|
248
248
|
stroke="currentColor"
|
|
249
249
|
aria-hidden="true"
|
|
250
250
|
data-slot="icon"
|
|
251
|
-
className="h-3 w-3 text-
|
|
251
|
+
className="h-3 w-3 text-[rgb(var(--ec-icon-color))]"
|
|
252
252
|
>
|
|
253
253
|
<path strokeLinecap="round" strokeLinejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5"></path>
|
|
254
254
|
</svg>
|
|
255
255
|
</div>
|
|
256
256
|
</button>
|
|
257
257
|
<button
|
|
258
|
-
className="flex items-center justify-between px-2 py-0.5 text-xs font-bold rounded-md hover:bg-
|
|
258
|
+
className="flex items-center justify-between px-2 py-0.5 text-xs font-bold rounded-md hover:bg-[rgb(var(--ec-content-hover))] min-w-0 flex-1"
|
|
259
259
|
onClick={(e) => {
|
|
260
260
|
e.stopPropagation();
|
|
261
261
|
toggleGroupCollapse(`section-${index}`);
|
|
@@ -264,7 +264,11 @@ const CustomDocsNav: React.FC<CustomDocsNavProps> = ({ sidebarItems }) => {
|
|
|
264
264
|
<span className="truncate">{section.label}</span>
|
|
265
265
|
{section.badge && section?.badge?.text && (
|
|
266
266
|
<span
|
|
267
|
-
className={
|
|
267
|
+
className={
|
|
268
|
+
section.badge.color
|
|
269
|
+
? `text-${section.badge.color}-600 dark:text-${section.badge.color}-400 ml-2 text-[10px] font-medium bg-${section.badge.color}-50 dark:bg-${section.badge.color}-500/20 px-2 py-0.5 rounded uppercase`
|
|
270
|
+
: `text-[rgb(var(--ec-accent))] ml-2 text-[10px] font-medium bg-[rgb(var(--ec-accent-subtle))] px-2 py-0.5 rounded uppercase`
|
|
271
|
+
}
|
|
268
272
|
>
|
|
269
273
|
{section.badge.text}
|
|
270
274
|
</span>
|
|
@@ -275,7 +279,7 @@ const CustomDocsNav: React.FC<CustomDocsNavProps> = ({ sidebarItems }) => {
|
|
|
275
279
|
<div className="flex items-center">
|
|
276
280
|
<span className="flex-grow flex items-center justify-between px-2 py-0.5 text-xs font-bold rounded-md">
|
|
277
281
|
<span className="truncate">{section.label}</span>
|
|
278
|
-
<span className="text-
|
|
282
|
+
<span className="text-[rgb(var(--ec-accent))] ml-2 text-[10px] font-medium bg-[rgb(var(--ec-accent-subtle))] px-2 py-0.5 rounded uppercase">
|
|
279
283
|
Section
|
|
280
284
|
</span>
|
|
281
285
|
</span>
|
|
@@ -288,7 +292,7 @@ const CustomDocsNav: React.FC<CustomDocsNavProps> = ({ sidebarItems }) => {
|
|
|
288
292
|
collapsedGroups[`section-${index}`] ? 'h-0' : 'h-auto'
|
|
289
293
|
}`}
|
|
290
294
|
>
|
|
291
|
-
<div className="space-y-0.5 border-
|
|
295
|
+
<div className="space-y-0.5 border-[rgb(var(--ec-page-border))] border-l pl-4 ml-[9px] mt-1">
|
|
292
296
|
{section.items.map((item: SidebarItem, itemIndex: number) => (
|
|
293
297
|
<NestedItem
|
|
294
298
|
key={`item-${index}-${itemIndex}`}
|
|
@@ -309,8 +313,8 @@ const CustomDocsNav: React.FC<CustomDocsNavProps> = ({ sidebarItems }) => {
|
|
|
309
313
|
href={buildUrl(`/docs/custom/${section.slug}`)}
|
|
310
314
|
className={`flex items-center px-2 py-1.5 text-xs ${
|
|
311
315
|
currentPath.endsWith(`/${section.slug}`)
|
|
312
|
-
? 'bg-
|
|
313
|
-
: 'text-
|
|
316
|
+
? 'bg-[rgb(var(--ec-accent-subtle))] text-[rgb(var(--ec-page-text))] font-semibold'
|
|
317
|
+
: 'text-[rgb(var(--ec-page-text-muted))] hover:bg-[rgb(var(--ec-content-hover))]'
|
|
314
318
|
} rounded-md ml-6`}
|
|
315
319
|
data-active={currentPath.endsWith(`/${section.slug}`)}
|
|
316
320
|
>
|
|
@@ -83,7 +83,9 @@ const badges = doc?.badges || [];
|
|
|
83
83
|
<VerticalSideBarLayout title={doc.title || 'Documentation'} showNestedSideBar={false}>
|
|
84
84
|
<div class="flex w-full" data-pagefind-body data-pagefind-meta={`title:${doc.title}`}>
|
|
85
85
|
<!-- Left Sidebar Navigation -->
|
|
86
|
-
<aside
|
|
86
|
+
<aside
|
|
87
|
+
class="sidebar-transition overflow-y-auto bg-[rgb(var(--ec-page-bg))] border-r border-[rgb(var(--ec-page-border))] w-80 fixed top-16 bottom-0 z-10"
|
|
88
|
+
>
|
|
87
89
|
<CustomDocsNav />
|
|
88
90
|
</aside>
|
|
89
91
|
|
|
@@ -92,10 +94,10 @@ const badges = doc?.badges || [];
|
|
|
92
94
|
class="sidebar-transition w-full max-h-content ml-[22em] md:ml-[21em] lg:mr-2 2xl:mr-2 2xl:ml-[22em] pr-2 overflow-y-auto"
|
|
93
95
|
>
|
|
94
96
|
<div class="max-w-none mx-auto px-4 py-10">
|
|
95
|
-
<div class="border-b border-
|
|
97
|
+
<div class="border-b border-[rgb(var(--ec-page-border))] flex justify-between items-start md:pb-6">
|
|
96
98
|
<div>
|
|
97
|
-
<h2 id="doc-page-header" class="text-2xl md:text-4xl font-bold text-
|
|
98
|
-
<p class="text-lg pt-2 text-
|
|
99
|
+
<h2 id="doc-page-header" class="text-2xl md:text-4xl font-bold text-[rgb(var(--ec-page-text))]">{doc.title}</h2>
|
|
100
|
+
<p class="text-lg pt-2 text-[rgb(var(--ec-page-text-muted))] font-light">{doc.summary}</p>
|
|
99
101
|
{
|
|
100
102
|
badges && (
|
|
101
103
|
<div class="flex flex-wrap pt-4">
|
|
@@ -148,16 +150,18 @@ const badges = doc?.badges || [];
|
|
|
148
150
|
}
|
|
149
151
|
|
|
150
152
|
<!-- Previous / Next Navigation -->
|
|
151
|
-
<div class="py-8 border-t border-
|
|
153
|
+
<div class="py-8 border-t border-[rgb(var(--ec-page-border))] mt-8">
|
|
152
154
|
<div class="flex flex-col sm:flex-row justify-between w-full gap-4">
|
|
153
155
|
{
|
|
154
156
|
prev && (
|
|
155
157
|
<a
|
|
156
158
|
href={buildUrl(`/docs/custom/${prev.slug}`)}
|
|
157
|
-
class="group flex flex-col border border-
|
|
159
|
+
class="group flex flex-col border border-[rgb(var(--ec-page-border))] rounded-lg p-4 hover:border-[rgb(var(--ec-content-text-muted))] hover:bg-[rgb(var(--ec-content-hover))] transition-colors w-full sm:w-1/2"
|
|
158
160
|
>
|
|
159
|
-
<span class="text-sm text-
|
|
160
|
-
<span class="font-medium group-hover:text-primary-600 transition-colors">
|
|
161
|
+
<span class="text-sm text-[rgb(var(--ec-page-text-muted))] mb-1">Previous</span>
|
|
162
|
+
<span class="font-medium text-[rgb(var(--ec-page-text))] group-hover:text-primary-600 transition-colors">
|
|
163
|
+
{prev.label}
|
|
164
|
+
</span>
|
|
161
165
|
</a>
|
|
162
166
|
)
|
|
163
167
|
}
|
|
@@ -168,10 +172,12 @@ const badges = doc?.badges || [];
|
|
|
168
172
|
next && (
|
|
169
173
|
<a
|
|
170
174
|
href={buildUrl(`/docs/custom/${next.slug}`)}
|
|
171
|
-
class="group flex flex-col items-end text-right border border-
|
|
175
|
+
class="group flex flex-col items-end text-right border border-[rgb(var(--ec-page-border))] rounded-lg p-4 hover:border-[rgb(var(--ec-content-text-muted))] hover:bg-[rgb(var(--ec-content-hover))] transition-colors w-full sm:w-1/2"
|
|
172
176
|
>
|
|
173
|
-
<span class="text-sm text-
|
|
174
|
-
<span class="font-medium group-hover:text-primary-600 transition-colors">
|
|
177
|
+
<span class="text-sm text-[rgb(var(--ec-page-text-muted))] mb-1">Next</span>
|
|
178
|
+
<span class="font-medium text-[rgb(var(--ec-page-text))] group-hover:text-primary-600 transition-colors">
|
|
179
|
+
{next.label}
|
|
180
|
+
</span>
|
|
175
181
|
</a>
|
|
176
182
|
)
|
|
177
183
|
}
|
|
@@ -182,7 +188,7 @@ const badges = doc?.badges || [];
|
|
|
182
188
|
|
|
183
189
|
<!-- Right Sidebar TOC -->
|
|
184
190
|
<aside
|
|
185
|
-
class="hidden lg:block sticky top-0 pb-10 w-80 overflow-y-auto border-l border-
|
|
191
|
+
class="hidden lg:block sticky top-0 pb-10 w-80 overflow-y-auto border-l border-[rgb(var(--ec-page-border))] bg-[rgb(var(--ec-page-bg))] p-6 flex-shrink-0 py-2"
|
|
186
192
|
>
|
|
187
193
|
<div class="py-4">
|
|
188
194
|
<div>
|
|
@@ -197,7 +203,7 @@ const badges = doc?.badges || [];
|
|
|
197
203
|
)
|
|
198
204
|
}
|
|
199
205
|
</div>
|
|
200
|
-
<h3 class="text-sm text-
|
|
206
|
+
<h3 class="text-sm text-[rgb(var(--ec-page-text))] font-semibold capitalize flex items-center gap-2">
|
|
201
207
|
<AlignLeftIcon className="w-4 h-4" />
|
|
202
208
|
On this page
|
|
203
209
|
</h3>
|
|
@@ -210,7 +216,7 @@ const badges = doc?.badges || [];
|
|
|
210
216
|
return (
|
|
211
217
|
<a
|
|
212
218
|
href={`#${heading.slug}`}
|
|
213
|
-
class={`block text-[12px] py-0.5 ${heading.depth === 1 ? 'font-light' : ''} text-
|
|
219
|
+
class={`block text-[12px] py-0.5 ${heading.depth === 1 ? 'font-light' : ''} text-[rgb(var(--ec-page-text-muted))] hover:text-primary-600`}
|
|
214
220
|
style={`padding-left: ${(heading.depth - 1) * 8}px`}
|
|
215
221
|
>
|
|
216
222
|
{heading.text}
|
|
@@ -235,6 +241,11 @@ const badges = doc?.badges || [];
|
|
|
235
241
|
margin: 0;
|
|
236
242
|
/* width: 100px !important; */
|
|
237
243
|
}
|
|
244
|
+
|
|
245
|
+
/* TOC active state - uses accent CSS variable */
|
|
246
|
+
.toc-active-text {
|
|
247
|
+
color: rgb(var(--ec-accent));
|
|
248
|
+
}
|
|
238
249
|
</style>
|
|
239
250
|
|
|
240
251
|
<script define:vars={{ props, config }}>
|
|
@@ -262,14 +273,14 @@ const badges = doc?.badges || [];
|
|
|
262
273
|
function highlightTocItem(id: string) {
|
|
263
274
|
// Remove active class from all links
|
|
264
275
|
document.querySelectorAll('.active-toc-item').forEach((link) => {
|
|
265
|
-
link.classList.remove('active-toc-item', '
|
|
276
|
+
link.classList.remove('active-toc-item', 'toc-active-text', 'font-light');
|
|
266
277
|
link.classList.add('text-gray-400');
|
|
267
278
|
});
|
|
268
279
|
|
|
269
280
|
// Add active class to current link
|
|
270
281
|
const tocLink = document.querySelector(`nav a[href="#${id}"]`);
|
|
271
282
|
if (tocLink) {
|
|
272
|
-
tocLink.classList.add('active-toc-item', '
|
|
283
|
+
tocLink.classList.add('active-toc-item', 'toc-active-text', 'font-light');
|
|
273
284
|
tocLink.classList.remove('text-gray-400');
|
|
274
285
|
|
|
275
286
|
// Scroll the highlighted item into view with a small delay to ensure DOM updates first
|
|
@@ -389,6 +400,27 @@ const badges = doc?.badges || [];
|
|
|
389
400
|
}
|
|
390
401
|
}
|
|
391
402
|
|
|
403
|
+
// Detect current theme from data-theme attribute
|
|
404
|
+
const isDarkMode = document.documentElement.getAttribute('data-theme') === 'dark';
|
|
405
|
+
const currentTheme = isDarkMode ? 'dark' : 'default';
|
|
406
|
+
|
|
407
|
+
// Custom theme variables for better readability in dark mode
|
|
408
|
+
const darkThemeVariables = {
|
|
409
|
+
// Sequence diagram - improve text contrast
|
|
410
|
+
signalColor: '#f0f6fc',
|
|
411
|
+
signalTextColor: '#f0f6fc',
|
|
412
|
+
actorTextColor: '#0d1117',
|
|
413
|
+
actorBkg: '#f0f6fc',
|
|
414
|
+
actorBorder: '#484f58',
|
|
415
|
+
actorLineColor: '#6b7280',
|
|
416
|
+
// General text colors
|
|
417
|
+
primaryTextColor: '#f0f6fc',
|
|
418
|
+
secondaryTextColor: '#c9d1d9',
|
|
419
|
+
tertiaryTextColor: '#f0f6fc',
|
|
420
|
+
// Line colors
|
|
421
|
+
lineColor: '#6b7280',
|
|
422
|
+
};
|
|
423
|
+
|
|
392
424
|
mermaid.initialize({
|
|
393
425
|
// fontSize: 2,
|
|
394
426
|
flowchart: {
|
|
@@ -399,7 +431,8 @@ const badges = doc?.badges || [];
|
|
|
399
431
|
startOnLoad: false,
|
|
400
432
|
fontFamily: 'var(--sans-font)',
|
|
401
433
|
// @ts-ignore This works, but TS expects a enum for some reason
|
|
402
|
-
theme:
|
|
434
|
+
theme: currentTheme,
|
|
435
|
+
themeVariables: isDarkMode ? darkThemeVariables : undefined,
|
|
403
436
|
architecture: {
|
|
404
437
|
useMaxWidth: true,
|
|
405
438
|
},
|
|
@@ -49,10 +49,10 @@ const tabs = [
|
|
|
49
49
|
---
|
|
50
50
|
|
|
51
51
|
<VerticalSideBarLayout title={`Explore | ${title}`} showNestedSideBar={false}>
|
|
52
|
-
<main class="ml-0">
|
|
52
|
+
<main class="ml-0 bg-[rgb(var(--ec-page-bg))]">
|
|
53
53
|
<div id="discover-collection-tabs">
|
|
54
54
|
<div class="hidden sm:block">
|
|
55
|
-
<div class="border-b border-
|
|
55
|
+
<div class="border-b border-[rgb(var(--ec-page-border))]">
|
|
56
56
|
<nav class="flex space-x-8 -mb-0.5 pl-6" aria-label="Tabs">
|
|
57
57
|
{
|
|
58
58
|
tabs
|
|
@@ -60,11 +60,16 @@ const tabs = [
|
|
|
60
60
|
.map((tab) => (
|
|
61
61
|
<a
|
|
62
62
|
href={tab.href}
|
|
63
|
-
class={
|
|
63
|
+
class:list={[
|
|
64
|
+
'group inline-flex items-center py-4 px-1 text-sm font-light text-[rgb(var(--ec-page-text))]',
|
|
65
|
+
tab.isActive && 'border-b-[2px] border-[rgb(var(--ec-accent))] text-[rgb(var(--ec-accent))]',
|
|
66
|
+
!tab.isActive && 'opacity-70 hover:opacity-100',
|
|
67
|
+
!tab.enabled && 'disabled',
|
|
68
|
+
]}
|
|
64
69
|
aria-current="page"
|
|
65
70
|
>
|
|
66
71
|
<tab.icon
|
|
67
|
-
className={`w-6 h-6 -ml-0.5 mr-2
|
|
72
|
+
className={`w-6 h-6 -ml-0.5 mr-2 ${tab.isActive ? 'text-[rgb(var(--ec-accent))]' : 'text-[rgb(var(--ec-icon-color))]'}`}
|
|
68
73
|
/>
|
|
69
74
|
<span>{tab.label}</span>
|
|
70
75
|
</a>
|
|
@@ -80,8 +85,8 @@ const tabs = [
|
|
|
80
85
|
<div>
|
|
81
86
|
<div class="sm:flex sm:items-end py-4 pb-4" id="discover-title">
|
|
82
87
|
<div class="sm:flex-auto space-y-2">
|
|
83
|
-
<h1 class="text-4xl font-semibold text-
|
|
84
|
-
<p class="text-md text-
|
|
88
|
+
<h1 class="text-4xl font-semibold text-[rgb(var(--ec-page-text))] capitalize">{title}</h1>
|
|
89
|
+
<p class="text-md text-[rgb(var(--ec-page-text-muted))]">{subtitle}</p>
|
|
85
90
|
</div>
|
|
86
91
|
</div>
|
|
87
92
|
<div class="mt-4 flow-root">
|
|
@@ -107,10 +107,10 @@ const tabs = [
|
|
|
107
107
|
---
|
|
108
108
|
|
|
109
109
|
<VerticalSideBarLayout title={`Explore | ${title}`} showNestedSideBar={false}>
|
|
110
|
-
<main class="ml-0">
|
|
110
|
+
<main class="ml-0 bg-[rgb(var(--ec-page-bg))] min-h-content">
|
|
111
111
|
<div id="discover-collection-tabs">
|
|
112
112
|
<div class="hidden sm:block">
|
|
113
|
-
<div class="border-b border-
|
|
113
|
+
<div class="border-b border-[rgb(var(--ec-page-border))]">
|
|
114
114
|
<nav class="flex space-x-8 -mb-0.5 pl-6" aria-label="Tabs">
|
|
115
115
|
{
|
|
116
116
|
tabs
|
|
@@ -118,11 +118,16 @@ const tabs = [
|
|
|
118
118
|
.map((tab) => (
|
|
119
119
|
<a
|
|
120
120
|
href={tab.href}
|
|
121
|
-
class={
|
|
121
|
+
class:list={[
|
|
122
|
+
'group inline-flex items-center py-4 px-1 text-sm font-light text-[rgb(var(--ec-page-text))]',
|
|
123
|
+
tab.isActive && 'border-b-[2px] border-[rgb(var(--ec-accent))] text-[rgb(var(--ec-accent))]',
|
|
124
|
+
!tab.isActive && 'opacity-70 hover:opacity-100',
|
|
125
|
+
!tab.enabled && 'disabled',
|
|
126
|
+
]}
|
|
122
127
|
aria-current="page"
|
|
123
128
|
>
|
|
124
129
|
<tab.icon
|
|
125
|
-
className={`w-6 h-6 -ml-0.5 mr-2
|
|
130
|
+
className={`w-6 h-6 -ml-0.5 mr-2 ${tab.isActive ? 'text-[rgb(var(--ec-accent))]' : 'text-[rgb(var(--ec-icon-color))]'}`}
|
|
126
131
|
/>
|
|
127
132
|
<span>{tab.label}</span>
|
|
128
133
|
</a>
|
|
@@ -138,14 +143,14 @@ const tabs = [
|
|
|
138
143
|
<div>
|
|
139
144
|
<div class="sm:flex sm:items-end py-4 pb-4" id="discover-title">
|
|
140
145
|
<div class="sm:flex-auto space-y-2">
|
|
141
|
-
<h1 class="text-4xl font-semibold text-
|
|
142
|
-
<p class="text-md text-
|
|
146
|
+
<h1 class="text-4xl font-semibold text-[rgb(var(--ec-page-text))] capitalize">{title}</h1>
|
|
147
|
+
<p class="text-md text-[rgb(var(--ec-page-text-muted))]">{subtitle}</p>
|
|
143
148
|
</div>
|
|
144
149
|
<div class="flex gap-4">
|
|
145
|
-
<div class="p-4 border border-
|
|
150
|
+
<div class="p-4 border border-[rgb(var(--ec-page-border))] rounded-md bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))]">
|
|
146
151
|
<Checkbox id={checkboxLatestId} name={checkboxLatestId} label="Show latest version only" checked />
|
|
147
152
|
</div>
|
|
148
|
-
<div class="p-4 border border-
|
|
153
|
+
<div class="p-4 border border-[rgb(var(--ec-page-border))] rounded-md bg-[rgb(var(--ec-card-bg,var(--ec-page-bg)))]">
|
|
149
154
|
<Checkbox id={checkboxDraftsId} name={checkboxDraftsId} label="Show drafts only" />
|
|
150
155
|
</div>
|
|
151
156
|
</div>
|