@eventcatalog/core 2.10.1 → 2.11.1

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 (41) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +10 -2
  3. package/images/sponsors/gravitee-logo-black.svg +54 -0
  4. package/package.json +4 -1
  5. package/public/icons/discord.svg +1 -0
  6. package/public/icons/github-purple.svg +1 -0
  7. package/src/components/DocsNavigation.astro +12 -12
  8. package/src/components/Header.astro +16 -33
  9. package/src/components/Lists/OwnersList.tsx +21 -58
  10. package/src/components/Lists/PillList.tsx +20 -16
  11. package/src/components/Lists/PillListFlat.styles.css +8 -0
  12. package/src/components/Lists/PillListFlat.tsx +69 -0
  13. package/src/components/Lists/SpecificationsList.astro +4 -4
  14. package/src/components/Lists/VersionList.astro +33 -13
  15. package/src/components/Search.astro +5 -2
  16. package/src/components/SideBars/CatalogResourcesSideBar/index.tsx +120 -0
  17. package/src/components/SideBars/CatalogResourcesSideBar/styles.css +8 -0
  18. package/src/components/SideBars/DomainSideBar.astro +15 -8
  19. package/src/components/SideBars/MessageSideBar.astro +51 -43
  20. package/src/components/SideBars/ServiceSideBar.astro +23 -31
  21. package/src/components/Tables/Table.tsx +2 -2
  22. package/src/components/Tables/columns/MessageTableColumns.tsx +4 -4
  23. package/src/components/Tables/columns/ServiceTableColumns.tsx +4 -4
  24. package/src/layouts/DiscoverLayout.astro +7 -7
  25. package/src/layouts/Footer.astro +1 -1
  26. package/src/layouts/VerticalSideBarLayout.astro +312 -0
  27. package/src/layouts/VisualiserLayout.astro +6 -10
  28. package/src/pages/docs/[type]/[id]/[version]/asyncapi/index.astro +3 -2
  29. package/src/pages/docs/[type]/[id]/[version]/changelog/index.astro +40 -5
  30. package/src/pages/docs/[type]/[id]/[version]/index.astro +149 -144
  31. package/src/pages/docs/[type]/[id]/[version]/spec/index.astro +13 -3
  32. package/src/pages/docs/[type]/[id]/[version]/spec/styles.css +3 -0
  33. package/src/pages/docs/index.astro +4 -4
  34. package/src/pages/docs/teams/[id]/index.astro +13 -10
  35. package/src/pages/docs/users/[id]/index.astro +115 -91
  36. package/src/pages/index.astro +83 -63
  37. package/src/pages/visualiser/[type]/[id]/[version]/index.astro +3 -1
  38. package/src/utils/collections/icons.ts +33 -0
  39. package/tailwind.config.mjs +2 -1
  40. package/src/components/Lists/BasicList.tsx +0 -59
  41. package/src/layouts/DocsLayout.astro +0 -62
@@ -1,5 +1,5 @@
1
1
  ---
2
- import DocsLayout from '@layouts/DocsLayout.astro';
2
+ import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
3
3
  import Footer from '@layouts/Footer.astro';
4
4
 
5
5
  import components from '@components/MDX/components';
@@ -17,6 +17,7 @@ import type { PageTypes } from '@types';
17
17
  import { buildUrl } from '@utils/url-builder';
18
18
  import { getFlows } from '@utils/flows/flows';
19
19
  import { pageDataLoader } from '@utils/pages/pages';
20
+ import { ViewTransitions } from 'astro:transitions';
20
21
 
21
22
  type PageTypesWithFlows = PageTypes | 'flows';
22
23
 
@@ -114,164 +115,168 @@ const getSpecificationBadges = () => {
114
115
  const badges = [getBadge(), ...contentBadges, ...getSpecificationBadges()];
115
116
  ---
116
117
 
117
- <DocsLayout title={pageTitle} description={props.data.summary}>
118
- <!-- <main class="flex py-8 sm:px-8 docs-layout"> -->
119
- <div class="flex min-h-screen docs-layout">
120
- <main class="flex-1 w-full lg:pr-10 md:pt-4">
121
- <div class="border-b border-gray-200 flex justify-between items-start py-4 md:pb-2">
118
+ <VerticalSideBarLayout title={pageTitle} description={props.data.summary}>
119
+ <main class="flex sm:px-8 docs-layout h-full">
120
+ <div class="flex docs-layout w-full">
121
+ <div class="w-full lg:mr-2 pr-8 overflow-y-auto py-8">
122
+ <div class="border-b border-gray-200 flex justify-between items-start md:pb-2">
123
+ <div>
124
+ <h2 class="text-2xl md:text-4xl font-bold text-black">
125
+ {props.data.name}
126
+ <span class="">(v{props.data.version})</span>
127
+ </h2>
128
+ <h2 class="text-lg pt-2 text-gray-500 font-light">{props.data.summary}</h2>
129
+ {
130
+ badges && (
131
+ <div class="flex flex-wrap py-2 pt-4">
132
+ {badges.map((badge: any) => {
133
+ return (
134
+ <a href={badge.url || '#'} class="pb-2">
135
+ <span
136
+ id={badge.id || ''}
137
+ class={`text-sm font-light text-gray-500 px-2 py-1 rounded-md mr-2 bg-gradient-to-b from-${badge.backgroundColor}-100 to-${badge.backgroundColor}-200 space-x-1 border border-${badge.backgroundColor}-200 text-${badge.textColor}-800 flex items-center ${badge.class ? badge.class : ''} `}
138
+ >
139
+ {badge.icon && <badge.icon className="w-4 h-4 inline-block mr-1 " />}
140
+ {badge.iconURL && <img src={badge.iconURL} class="w-5 h-5 inline-block " />}
141
+ <span>{badge.content}</span>
142
+ </span>
143
+ </a>
144
+ );
145
+ })}
146
+ </div>
147
+ )
148
+ }
149
+ </div>
150
+ </div>
151
+
122
152
  <div>
123
- <h2 class="text-2xl md:text-4xl font-bold">
124
- {props.data.name}
125
- <span class="text-gray-300">(v{props.data.version})</span>
126
- </h2>
127
- <h2 class="text-lg pt-2 text-gray-500 font-light">{props.data.summary}</h2>
128
153
  {
129
- badges && (
130
- <div class="flex flex-wrap py-2 pt-4">
131
- {badges.map((badge: any) => {
132
- return (
133
- <a href={badge.url || '#'} class="pb-2">
134
- <span
135
- id={badge.id || ''}
136
- class={`text-sm font-light text-gray-500 px-2 py-1 rounded-md mr-2 bg-${badge.backgroundColor}-100 space-x-1 border border-${badge.backgroundColor}-200 text-${badge.textColor}-800 flex items-center ${badge.class ? badge.class : ''} `}
137
- >
138
- {badge.icon && <badge.icon className="w-4 h-4 inline-block mr-1 " />}
139
- {badge.iconURL && <img src={badge.iconURL} class="w-5 h-5 inline-block " />}
140
- <span>{badge.content}</span>
141
- </span>
142
- </a>
143
- );
144
- })}
154
+ props.data.version !== props.data.latestVersion && (
155
+ <div class="rounded-md bg-gradient-to-r from-purple-50 to-purple-100 p-4 not-prose my-4">
156
+ <div class="flex">
157
+ <div class="flex-shrink-0">
158
+ <svg class="h-5 w-5 text-purple-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
159
+ <path
160
+ fill-rule="evenodd"
161
+ d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z"
162
+ clip-rule="evenodd"
163
+ />
164
+ </svg>
165
+ </div>
166
+ <div class="ml-3">
167
+ <h3 class="text-sm font-medium text-purple-800">New version found</h3>
168
+ <div class="mt-2 text-sm text-purple-700">
169
+ <p>
170
+ You are looking at a previous version of the {props.collection.slice(0, props.collection.length - 1)}{' '}
171
+ <strong>{props.data.name}</strong>.{' '}
172
+ <a
173
+ class="underline hover:text-primary block pt-2"
174
+ href={buildUrl(`/docs/${props.collection}/${props.data.id}/${props.data.latestVersion}`)}
175
+ >
176
+ The latest version of this {props.collection.slice(0, props.collection.length - 1)} is v
177
+ {props.data.latestVersion} &rarr;
178
+ </a>
179
+ </p>
180
+ </div>
181
+ </div>
182
+ </div>
145
183
  </div>
146
184
  )
147
185
  }
148
186
  </div>
149
- </div>
150
187
 
151
- <div>
188
+ <div class="prose prose-md py-4 w-full">
189
+ <Content components={components(props)} />
190
+ </div>
191
+ <div>
192
+ <!-- @ts-ignore -->
193
+ <SchemaViewer id={props.data.id} catalog={props.catalog} />
194
+ <NodeGraph
195
+ id={props.data.id}
196
+ collection={props.collection}
197
+ version={props.data.version}
198
+ mode="simple"
199
+ linksToVisualiser={true}
200
+ href={{
201
+ label: 'Open in Visualiser',
202
+ url: buildUrl(`/visualiser/${props.collection}/${props.data.id}/${props.data.version}`),
203
+ }}
204
+ />
205
+ </div>
206
+ <Footer />
207
+ </div>
208
+ <aside class="hidden lg:block sticky top-0 pb-10 w-96 overflow-y-auto py-2">
209
+ <!-- @ts-ignore -->
152
210
  {
153
- props.data.version !== props.data.latestVersion && (
154
- <div class="rounded-md bg-yellow-50 p-4 not-prose my-4">
155
- <div class="flex">
156
- <div class="flex-shrink-0">
157
- <svg class="h-5 w-5 text-yellow-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
158
- <path
159
- fill-rule="evenodd"
160
- d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z"
161
- clip-rule="evenodd"
162
- />
163
- </svg>
164
- </div>
165
- <div class="ml-3">
166
- <h3 class="text-sm font-medium text-yellow-800">New version found</h3>
167
- <div class="mt-2 text-sm text-yellow-700">
168
- <p>
169
- You are looking at a previous version of the {props.collection.slice(0, props.collection.length - 1)}{' '}
170
- <strong>{props.data.name}</strong>.{' '}
171
- <a
172
- class="underline hover:text-primary block pt-2"
173
- href={buildUrl(`/docs/${props.collection}/${props.data.id}/${props.data.latestVersion}`)}
174
- >
175
- The latest version of this {props.collection.slice(0, props.collection.length - 1)} is v
176
- {props.data.latestVersion} &rarr;
177
- </a>
178
- </p>
179
- </div>
180
- </div>
181
- </div>
182
- </div>
211
+ (props?.collection === 'events' || props.collection === 'commands' || props.collection === 'queries') && (
212
+ <MessageSideBar message={props} />
183
213
  )
184
214
  }
185
- </div>
215
+ {props?.collection === 'services' && <ServiceSideBar service={props} />}
216
+ {props?.collection === 'domains' && <DomainSideBar domain={props} />}
217
+ </aside>
218
+ </div>
219
+ <ViewTransitions />
220
+ </main>
186
221
 
187
- <div class="prose prose-md py-4 w-full">
188
- <Content components={components(props)} />
189
- </div>
190
- <div>
191
- <!-- @ts-ignore -->
192
- <SchemaViewer id={props.data.id} catalog={props.catalog} />
193
- <NodeGraph
194
- id={props.data.id}
195
- collection={props.collection}
196
- version={props.data.version}
197
- mode="simple"
198
- linksToVisualiser={true}
199
- href={{
200
- label: 'Open in Visualiser',
201
- url: buildUrl(`/visualiser/${props.collection}/${props.data.id}/${props.data.version}`),
202
- }}
203
- />
204
- </div>
205
- <Footer />
206
- </main>
207
- <aside class="hidden lg:block sticky top-20 h-[calc(100vh-theme(spacing.16))] w-56 overflow-y-auto">
208
- <!-- @ts-ignore -->
209
- {
210
- (props?.collection === 'events' || props.collection === 'commands' || props.collection === 'queries') && (
211
- <MessageSideBar message={props} />
212
- )
213
- }
214
- {props?.collection === 'services' && <ServiceSideBar service={props} />}
215
- {props?.collection === 'domains' && <DomainSideBar domain={props} />}
216
- </aside>
217
- </div>
218
- </DocsLayout>
219
-
220
- <style is:global>
221
- .docs-layout .prose {
222
- max-width: none;
223
- }
224
-
225
- .mermaid svg {
226
- margin: 1em auto 2em;
227
- }
222
+ <style is:global>
223
+ .docs-layout .prose {
224
+ max-width: none;
225
+ /* max-height: 80vh; */
226
+ overflow: auto;
227
+ }
228
228
 
229
- .mermaid tspan {
230
- font-size: 8em;
231
- }
232
- </style>
229
+ .mermaid svg {
230
+ margin: 1em auto 2em;
231
+ }
233
232
 
234
- <script define:vars={{ props }}>
235
- // Fix to pass information to componets that are client side only
236
- // and require catalog information
237
- window.eventcatalog = {};
238
- // @ts-ignore
239
- window.eventcatalog[`${props.collection}-${props.data.id}`] = props.catalog;
240
- </script>
233
+ .mermaid tspan {
234
+ font-size: 8em;
235
+ }
236
+ </style>
241
237
 
242
- <script>
243
- /**
244
- * @params {HTMLCollectionOf<HTMLElement>} graphs
245
- */
246
- async function renderDiagrams(graphs: any) {
247
- const { default: mermaid } = await import('mermaid');
248
- mermaid.initialize({
249
- fontSize: 2,
250
- flowchart: {
251
- curve: 'linear',
252
- rankSpacing: 0,
253
- nodeSpacing: 0,
254
- },
255
- startOnLoad: false,
256
- fontFamily: 'var(--sans-font)',
257
- // @ts-ignore This works, but TS expects a enum for some reason
258
- theme: window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default',
259
- });
238
+ <script define:vars={{ props }}>
239
+ // Fix to pass information to componets that are client side only
240
+ // and require catalog information
241
+ window.eventcatalog = {};
242
+ // @ts-ignore
243
+ window.eventcatalog[`${props.collection}-${props.data.id}`] = props.catalog;
244
+ </script>
260
245
 
261
- for (const graph of graphs) {
262
- const content = graph.getAttribute('data-content');
263
- if (!content) continue;
264
- let svg = document.createElement('svg');
265
- const id = (svg.id = 'mermaid-' + Math.round(Math.random() * 100000));
266
- graph.appendChild(svg);
267
- mermaid.render(id, content).then((result) => {
268
- graph.innerHTML = result.svg;
246
+ <script>
247
+ /**
248
+ * @params {HTMLCollectionOf<HTMLElement>} graphs
249
+ */
250
+ async function renderDiagrams(graphs: any) {
251
+ const { default: mermaid } = await import('mermaid');
252
+ mermaid.initialize({
253
+ fontSize: 2,
254
+ flowchart: {
255
+ curve: 'linear',
256
+ rankSpacing: 0,
257
+ nodeSpacing: 0,
258
+ },
259
+ startOnLoad: false,
260
+ fontFamily: 'var(--sans-font)',
261
+ // @ts-ignore This works, but TS expects a enum for some reason
262
+ theme: window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default',
269
263
  });
264
+
265
+ for (const graph of graphs) {
266
+ const content = graph.getAttribute('data-content');
267
+ if (!content) continue;
268
+ let svg = document.createElement('svg');
269
+ const id = (svg.id = 'mermaid-' + Math.round(Math.random() * 100000));
270
+ graph.appendChild(svg);
271
+ mermaid.render(id, content).then((result) => {
272
+ graph.innerHTML = result.svg;
273
+ });
274
+ }
270
275
  }
271
- }
272
276
 
273
- const graphs = document.getElementsByClassName('mermaid');
274
- if (document.getElementsByClassName('mermaid').length > 0) {
275
- renderDiagrams(graphs);
276
- }
277
- </script>
277
+ const graphs = document.getElementsByClassName('mermaid');
278
+ if (document.getElementsByClassName('mermaid').length > 0) {
279
+ renderDiagrams(graphs);
280
+ }
281
+ </script>
282
+ </VerticalSideBarLayout>
@@ -8,6 +8,8 @@ import PlainPage from '@layouts/PlainPage.astro';
8
8
  import { DocumentMinusIcon } from '@heroicons/react/24/outline';
9
9
  import { buildUrl } from '@utils/url-builder';
10
10
  import { pageDataLoader } from '@utils/pages/pages';
11
+ import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
12
+ import './styles.css';
11
13
 
12
14
  export async function getStaticPaths() {
13
15
  const itemTypes: PageTypes[] = ['events', 'commands', 'queries', 'services', 'domains'];
@@ -40,7 +42,7 @@ const pathOnDisk = path.join(process.cwd(), 'public', pathToSpec);
40
42
  const fileExists = fs.existsSync(pathOnDisk);
41
43
  ---
42
44
 
43
- <PlainPage title="OpenAPI Spec">
45
+ <VerticalSideBarLayout title="OpenAPI Spec" }>
44
46
  {
45
47
  !fileExists ? (
46
48
  <div class="text-center h-screen flex flex-col justify-center ">
@@ -75,7 +77,7 @@ const fileExists = fs.existsSync(pathOnDisk);
75
77
  />
76
78
  )
77
79
  }
78
- </PlainPage>
80
+ </VerticalSideBarLayout>
79
81
 
80
82
  <script>
81
83
  // @ts-ignore
@@ -97,10 +99,18 @@ const fileExists = fs.existsSync(pathOnDisk);
97
99
  }
98
100
 
99
101
  rapi-doc::part(section-navbar-search) {
100
- margin: 0;
102
+ margin: 0 10px;
101
103
  padding: 0;
102
104
  margin-bottom: 1em;
103
105
  }
106
+ rapi-doc::part(section-navbar) {
107
+ margin: 0;
108
+ padding: 10px important;
109
+ margin-bottom: 1em;
110
+ background-image: linear-gradient(to bottom, rgb(255, 255, 255), rgb(243, 244, 246));
111
+ border-right-width: 1px;
112
+ border-right-color: rgb(229, 231, 235);
113
+ }
104
114
  rapi-doc::part(section-overview) {
105
115
  margin: 0 2em 0 2em;
106
116
  padding: 1em 0 1em;
@@ -0,0 +1,3 @@
1
+ #nav-bar-search{
2
+ margin: 0 10px;
3
+ }
@@ -1,9 +1,9 @@
1
1
  ---
2
- import Layout from '@layouts/DocsLayout.astro';
3
2
  import Footer from '@layouts/Footer.astro';
4
3
  import DefaultDocsLandingPage from '@layouts/CustomDocsPageLayout.astro';
5
4
  import components from '@components/MDX/page-components';
6
5
  import { getIndexPage } from '@utils/pages';
6
+ import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
7
7
 
8
8
  const page = await getIndexPage();
9
9
  let CustomContent = null;
@@ -16,14 +16,14 @@ if (page) {
16
16
 
17
17
  {
18
18
  CustomContent && (
19
- <Layout title="EventCatalog">
20
- <main class="py-8">
19
+ <VerticalSideBarLayout title="EventCatalog">
20
+ <main class="py-8 px-8">
21
21
  <div class="prose prose-md w-full !max-w-none">
22
22
  <CustomContent components={components} />
23
23
  </div>
24
24
  <Footer />
25
25
  </main>
26
- </Layout>
26
+ </VerticalSideBarLayout>
27
27
  )
28
28
  }
29
29
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- import DocsLayout from '@layouts/DocsLayout.astro';
3
-
4
2
  import components from '@components/MDX/components';
5
3
 
6
4
  // SideBars
@@ -8,9 +6,10 @@ import { getTeams } from '@utils/teams';
8
6
  import { getEntry } from 'astro:content';
9
7
  import type { CollectionEntry } from 'astro:content';
10
8
  import OwnersList from '@components/Lists/OwnersList';
11
- import PillList from '@components/Lists/PillList';
9
+ import PillListFlat from '@components/Lists/PillListFlat';
12
10
  import EnvelopeIcon from '@heroicons/react/16/solid/EnvelopeIcon';
13
11
  import { buildUrl } from '@utils/url-builder';
12
+ import VerticalSideBarLayout from '@layouts/VerticalSideBarLayout.astro';
14
13
 
15
14
  export async function getStaticPaths() {
16
15
  const teams = await getTeams();
@@ -43,12 +42,14 @@ const membersList = members.map((o) => ({
43
42
  label: o.data.name,
44
43
  type: o.collection,
45
44
  badge: o.collection === 'users' ? o.data.role : 'Team',
45
+ collection: o.collection,
46
46
  avatarUrl: o.collection === 'users' ? o.data.avatarUrl : '',
47
47
  href: buildUrl(`/docs/${o.collection}/${o.data.id}`),
48
48
  }));
49
49
 
50
50
  const ownedDomainsList = domains.map((p) => ({
51
51
  label: `${p.data.name}`,
52
+ collection: p.collection,
52
53
  href: buildUrl(`/docs/${p.collection}/${p.data.id}/${p.data.version}`),
53
54
  tag: `v${p.data.version}`,
54
55
  }));
@@ -56,6 +57,7 @@ const ownedDomainsList = domains.map((p) => ({
56
57
  const ownedServicesList = services.map((p) => ({
57
58
  label: `${p.data.name} (service)`,
58
59
  href: buildUrl(`/docs/${p.collection}/${p.data.id}/${p.data.version}`),
60
+ collection: p.collection,
59
61
  tag: `v${p.data.version}`,
60
62
  }));
61
63
 
@@ -63,12 +65,13 @@ const ownedEventsList = [...events, ...commands].map((p) => ({
63
65
  label: `${p.data.name} (${p.collection.slice(0, -1)})`,
64
66
  href: buildUrl(`/docs/${p.collection}/${p.data.id}/${p.data.version}`),
65
67
  color: p.collection === 'events' ? 'orange' : 'blue',
68
+ collection: p.collection,
66
69
  tag: `v${p.data.version}`,
67
70
  }));
68
71
  ---
69
72
 
70
- <DocsLayout title={`Team | ${props.data.name}`} description={props.data.summary}>
71
- <div class="flex min-h-screen docs-layout">
73
+ <VerticalSideBarLayout title={`Team | ${props.data.name}`} description={props.data.summary}>
74
+ <div class="flex min-h-screen docs-layout sm:px-8">
72
75
  <main class="flex-1 w-full pr-10 pt-4">
73
76
  <!-- <span class="text-purple-500 bg-purple-100 px-2 py-1 rounded-md">v{props.data.version}</span> -->
74
77
 
@@ -117,23 +120,23 @@ const ownedEventsList = [...events, ...commands].map((p) => ({
117
120
  <NodeGraph id={props.data.id} type={props?.catalog?.type} nodes={props.nodes} masterNode={{ name: props.data.name, id: props.data.id }} client:load />
118
121
  </div> -->
119
122
  </main>
120
- <aside class="sticky top-20 h-[calc(100vh-theme(spacing.16))] w-56 overflow-y-auto">
123
+ <aside class="sticky top-20 h-[calc(100vh-theme(spacing.16))] w-72 overflow-y-auto">
121
124
  <div class="divide-y-2 divide-gray-100">
122
- <PillList
125
+ <PillListFlat
123
126
  color="pink"
124
127
  title={`Owned domains (${ownedDomainsList.length})`}
125
128
  pills={ownedDomainsList}
126
129
  emptyMessage={`${props.data.name} does not own any domains.`}
127
130
  client:load
128
131
  />
129
- <PillList
132
+ <PillListFlat
130
133
  color="blue"
131
134
  title={`Owned services (${ownedServicesList.length})`}
132
135
  pills={ownedServicesList}
133
136
  emptyMessage={`This team does not own any services .`}
134
137
  client:load
135
138
  />
136
- <PillList
139
+ <PillListFlat
137
140
  color="red"
138
141
  title={`Owned messages (${ownedEventsList.length})`}
139
142
  pills={ownedEventsList}
@@ -150,7 +153,7 @@ const ownedEventsList = [...events, ...commands].map((p) => ({
150
153
  <!-- {props?.collection === 'events' && <MessageSideBar message={props} />} -->
151
154
  </aside>
152
155
  </div>
153
- </DocsLayout>
156
+ </VerticalSideBarLayout>
154
157
 
155
158
  <style>
156
159
  .docs-layout .prose {