@primer/doctocat-nextjs 0.2.0-rc.eeac884 → 0.3.0-rc.0fe5c68

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.
@@ -0,0 +1,54 @@
1
+ 'use client'
2
+ import React from 'react'
3
+
4
+ type PropTableValuesProps = {
5
+ values: (string | number)[]
6
+ addLineBreaks?: boolean
7
+ commaSeparated?: boolean
8
+ removeApostrophes?: boolean
9
+ }
10
+
11
+ export function PropTableValues({values, addLineBreaks, commaSeparated, removeApostrophes}: PropTableValuesProps) {
12
+ const valuesToRender = values.map(value => {
13
+ if (typeof value === 'string' && !removeApostrophes) {
14
+ return (
15
+ <span key={value}>
16
+ <code>&apos;{value}&apos;</code>
17
+ </span>
18
+ )
19
+ }
20
+ return (
21
+ <span key={value}>
22
+ <code> {value}</code>
23
+ </span>
24
+ )
25
+ })
26
+
27
+ if (commaSeparated) {
28
+ return (
29
+ <>
30
+ {valuesToRender.reduce((acc, curr, index) => (
31
+ <React.Fragment key={index}>
32
+ {acc}
33
+ {index > 0 && ', '}
34
+ {curr}
35
+ </React.Fragment>
36
+ ))}
37
+ {addLineBreaks && <br />}
38
+ </>
39
+ )
40
+ }
41
+
42
+ return (
43
+ <>
44
+ {valuesToRender.map(value => {
45
+ return (
46
+ <React.Fragment key={value.key}>
47
+ {value}
48
+ {addLineBreaks && <br />}
49
+ </React.Fragment>
50
+ )
51
+ })}
52
+ </>
53
+ )
54
+ }
@@ -5,7 +5,8 @@ import Head from 'next/head'
5
5
  import type {Folder, MdxFile, PageMapItem} from 'nextra'
6
6
  import {useFSRoute} from 'nextra/hooks'
7
7
  import {BaseStyles, Box as PRCBox, Breadcrumbs, PageLayout, ThemeProvider} from '@primer/react'
8
-
8
+ import '@primer/primitives/dist/css/functional/themes/light.css'
9
+ import '@primer/primitives/dist/css/functional/themes/dark.css'
9
10
  import {
10
11
  Animate,
11
12
  AnimationProvider,
@@ -83,6 +84,7 @@ export function Theme({children, pageMap}: ThemeProps) {
83
84
  const filteredTabData: MdxFile[] = data && hasChildren(data) ? ((data as Folder).children as MdxFile[]) : []
84
85
 
85
86
  const relatedLinks = getRelatedPages(route, activeMetadata, flatDocsDirectories)
87
+ const disablePageAnimation = activeMetadata?.options?.disablePageAnimation || false
86
88
  return (
87
89
  <>
88
90
  <BrandThemeProvider dir="ltr" colorMode={colorMode}>
@@ -104,132 +106,153 @@ export function Theme({children, pageMap}: ThemeProps) {
104
106
  </Head>
105
107
  )}
106
108
 
107
- <AnimationProvider runOnce visibilityOptions={1} autoStaggerChildren={false}>
108
- <Animate animate="fade-in">
109
- <PRCBox
110
- sx={{
111
- position: 'sticky',
112
- top: 0,
113
- zIndex: 99,
114
- }}
115
- >
116
- <SkipToMainContent href="#main">Skip to main content</SkipToMainContent>
117
- <Header pageMap={pageMap} siteTitle={siteTitle} />
118
- </PRCBox>
119
- <PageLayout rowGap="none" columnGap="none" padding="none" containerWidth="full">
120
- <PageLayout.Content padding="normal">
121
- <div id="main">
122
- <PRCBox sx={!isHomePage && {maxWidth: 1200, width: '100%', margin: '0 auto'}}>
123
- <Stack direction="vertical" padding="none" gap="spacious">
124
- {!isHomePage && (
125
- <>
126
- {activePath.length && (
127
- <Breadcrumbs>
128
- {siteTitle && (
109
+ <ContentWrapper disableAnimations={disablePageAnimation}>
110
+ <PRCBox
111
+ sx={{
112
+ position: 'sticky',
113
+ top: 0,
114
+ zIndex: 99,
115
+ }}
116
+ >
117
+ <SkipToMainContent href="#main">Skip to main content</SkipToMainContent>
118
+ <Header pageMap={pageMap} flatDocsDirectories={flatDocsDirectories} siteTitle={siteTitle} />
119
+ </PRCBox>
120
+ <PageLayout rowGap="none" columnGap="none" padding="none" containerWidth="full">
121
+ <PageLayout.Content padding="normal">
122
+ <div id="main">
123
+ <PRCBox sx={!isHomePage && {maxWidth: 1200, width: '100%', margin: '0 auto'}}>
124
+ <Stack direction="vertical" padding="none" gap="spacious">
125
+ {!isHomePage && (
126
+ <>
127
+ {activePath.length && (
128
+ <Breadcrumbs>
129
+ {siteTitle && (
130
+ <Breadcrumbs.Item
131
+ as={NextLink}
132
+ href="/"
133
+ sx={{
134
+ color: 'var(--brand-InlineLink-color-rest)',
135
+ }}
136
+ >
137
+ {siteTitle}
138
+ </Breadcrumbs.Item>
139
+ )}
140
+ {activePath.map((item, index) => {
141
+ return (
129
142
  <Breadcrumbs.Item
130
143
  as={NextLink}
131
- href="/"
144
+ key={item.name}
145
+ href={item.route}
146
+ selected={index === activePath.length - 1}
132
147
  sx={{
148
+ textTransform: 'capitalize',
133
149
  color: 'var(--brand-InlineLink-color-rest)',
134
150
  }}
135
151
  >
136
- {siteTitle}
152
+ {item.title.replace(/-/g, ' ')}
137
153
  </Breadcrumbs.Item>
138
- )}
139
- {activePath.map((item, index) => {
140
- return (
141
- <Breadcrumbs.Item
142
- as={NextLink}
143
- key={item.name}
144
- href={item.route}
145
- selected={index === activePath.length - 1}
146
- sx={{
147
- textTransform: 'capitalize',
148
- color: 'var(--brand-InlineLink-color-rest)',
149
- }}
150
- >
151
- {item.title.replace(/-/g, ' ')}
152
- </Breadcrumbs.Item>
153
- )
154
- })}
155
- </Breadcrumbs>
156
- )}
154
+ )
155
+ })}
156
+ </Breadcrumbs>
157
+ )}
157
158
 
158
- <Box>
159
- <Stack direction="vertical" padding="none" gap={12} alignItems="flex-start">
160
- {activeMetadata?.title && (
161
- <Heading as="h1" size="3">
162
- {activeMetadata.title}
163
- </Heading>
164
- )}
165
- {activeMetadata?.description && (
166
- <Text as="p" variant="muted" size="300">
167
- {activeMetadata.description}
168
- </Text>
169
- )}
170
- {activeMetadata?.image && (
171
- <Box paddingBlockStart={16} style={{width: '100%'}}>
172
- <Hero.Image src={activeMetadata.image} alt={activeMetadata['image-alt']} />
173
- </Box>
174
- )}
175
- {activeMetadata && activeMetadata['action-1-text'] && (
176
- <Box paddingBlockStart={16}>
177
- <ButtonGroup>
178
- <Button as="a" href={activeMetadata['action-1-link']}>
179
- {activeMetadata['action-1-text']}
159
+ <Box>
160
+ <Stack direction="vertical" padding="none" gap={12} alignItems="flex-start">
161
+ {activeMetadata?.title && (
162
+ <Heading as="h1" size="3">
163
+ {activeMetadata.title}
164
+ </Heading>
165
+ )}
166
+ {activeMetadata?.description && (
167
+ <Text as="p" variant="muted" size="300">
168
+ {activeMetadata.description}
169
+ </Text>
170
+ )}
171
+ {activeMetadata?.image && (
172
+ <Box paddingBlockStart={16} style={{width: '100%'}}>
173
+ <Hero.Image src={activeMetadata.image} alt={activeMetadata['image-alt']} />
174
+ </Box>
175
+ )}
176
+ {activeMetadata && activeMetadata['action-1-text'] && (
177
+ <Box paddingBlockStart={16}>
178
+ <ButtonGroup>
179
+ <Button as="a" href={activeMetadata['action-1-link']}>
180
+ {activeMetadata['action-1-text']}
181
+ </Button>
182
+ {activeMetadata['action-2-text'] && (
183
+ <Button as="a" variant="secondary" href={activeMetadata['action-2-link']}>
184
+ {activeMetadata['action-2-text']}
180
185
  </Button>
181
- {activeMetadata['action-2-text'] && (
182
- <Button as="a" variant="secondary" href={activeMetadata['action-2-link']}>
183
- {activeMetadata['action-2-text']}
184
- </Button>
185
- )}
186
- </ButtonGroup>
187
- </Box>
188
- )}
189
- </Stack>
190
- </Box>
191
- {activeMetadata && activeMetadata['show-tabs'] && (
192
- <UnderlineNav tabData={filteredTabData} />
186
+ )}
187
+ </ButtonGroup>
188
+ </Box>
189
+ )}
190
+ </Stack>
191
+ </Box>
192
+ {activeMetadata && activeMetadata['show-tabs'] && (
193
+ <UnderlineNav tabData={filteredTabData} />
194
+ )}
195
+ </>
196
+ )}
197
+ <article>
198
+ {isIndexPage ? (
199
+ <IndexCards folderData={flatDocsDirectories} route={route} />
200
+ ) : (
201
+ <>
202
+ <>{children}</>
203
+
204
+ {relatedLinks.length > 0 && (
205
+ <PRCBox sx={{pt: 5}}>
206
+ <RelatedContentLinks links={relatedLinks} />
207
+ </PRCBox>
193
208
  )}
194
209
  </>
195
210
  )}
196
- <article>
197
- {isIndexPage ? (
198
- <IndexCards folderData={flatDocsDirectories} route={route} />
199
- ) : (
200
- <>
201
- <>{children}</>
202
-
203
- {relatedLinks.length > 0 && (
204
- <PRCBox sx={{pt: 5}}>
205
- <RelatedContentLinks links={relatedLinks} />
206
- </PRCBox>
207
- )}
208
- </>
209
- )}
210
- </article>
211
- <Footer filePath={filePath} repoURL={repoURL} repoSrcPath={repoSrcPath} />
212
- </Stack>
213
- </PRCBox>
214
- </div>
215
- </PageLayout.Content>
216
- <PageLayout.Pane
217
- aria-label="Side navigation"
218
- width="small"
219
- sticky
220
- padding="none"
221
- position="start"
222
- hidden={{narrow: true}}
223
- divider="line"
224
- >
225
- <Sidebar pageMap={pageMap} />
226
- </PageLayout.Pane>
227
- </PageLayout>
228
- </Animate>
229
- </AnimationProvider>
211
+ </article>
212
+ <Footer filePath={filePath} repoURL={repoURL} repoSrcPath={repoSrcPath} />
213
+ </Stack>
214
+ </PRCBox>
215
+ </div>
216
+ </PageLayout.Content>
217
+ <PageLayout.Pane
218
+ aria-label="Side navigation"
219
+ width="small"
220
+ sticky
221
+ padding="none"
222
+ position="start"
223
+ hidden={{narrow: true}}
224
+ divider="line"
225
+ >
226
+ <Sidebar pageMap={pageMap} />
227
+ </PageLayout.Pane>
228
+ </PageLayout>
229
+ </ContentWrapper>
230
230
  </BaseStyles>
231
231
  </ThemeProvider>
232
232
  </BrandThemeProvider>
233
233
  </>
234
234
  )
235
235
  }
236
+
237
+ type ContentWrapperProps = PropsWithChildren<{
238
+ disableAnimations?: boolean
239
+ }>
240
+
241
+ /**
242
+ * The fade in animation masks the layout repainting issues.
243
+ * That animation however, interferes with nested AnimationProviders so we need
244
+ * to disable it for certain pages that use that.
245
+ */
246
+ function ContentWrapper({children, disableAnimations}: ContentWrapperProps) {
247
+ if (disableAnimations) {
248
+ return <>{children}</>
249
+ }
250
+
251
+ return (
252
+ <>
253
+ <AnimationProvider runOnce visibilityOptions={1} autoStaggerChildren={false}>
254
+ <Animate animate="fade-in">{children}</Animate>
255
+ </AnimationProvider>
256
+ </>
257
+ )
258
+ }
@@ -41,7 +41,7 @@ export function UnderlineNav({tabData}: UnderlineNavProps) {
41
41
  href={`${item.route}`}
42
42
  aria-current={currentRoute === item.route ? 'page' : undefined}
43
43
  >
44
- {(item.frontMatter && item.frontMatter.title) || item.name}
44
+ {(item.frontMatter && (item.frontMatter['tab-label'] || item.frontMatter.title)) || item.name}
45
45
  </PrimerUnderlineNav.Item>
46
46
  )
47
47
  })}
@@ -32,25 +32,11 @@
32
32
  /* 2. Element spacing */
33
33
  /* ---------------------------------------------------------- */
34
34
 
35
- /* .Prose * + * {
36
- margin-block-start: var(--spacing, 1em);
37
- } */
38
-
39
- .Prose h1:not(:global(.custom-component) h1),
40
- .Prose h2:not(:global(.custom-component) h2),
41
- .Prose h3:not(:global(.custom-component) h3),
42
- .Prose h4:not(:global(.custom-component) h4),
43
- .Prose h5:not(:global(.custom-component) h5),
44
- .Prose h6:not(:global(.custom-component) h6),
45
- .Prose p:not(:global(.custom-component) p),
46
- .Prose ul:not(:global(.custom-component) ul),
47
- .Prose ol:not(:global(.custom-component) ol),
48
- .Prose blockquote:not(:global(.custom-component) blockquote),
49
- .Prose hr:not(:global(.custom-component) hr),
50
- .Prose table:not(:global(.custom-component) table),
51
- .Prose pre:not(:global(.custom-component) pre),
52
- .Prose dl:not(:global(.custom-component) dl),
53
- .Prose figure:not(:global(.custom-component) figure) {
35
+ .Prose
36
+ :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, figure, hr, table, pre, dl):not(
37
+ :first-child,
38
+ :global(.custom-component) :is(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, figure, hr, table, pre, dl)
39
+ ) {
54
40
  margin-block-start: var(--spacing, 1em);
55
41
  }
56
42
 
@@ -66,7 +52,7 @@
66
52
  /* 4. Headings */
67
53
  /* ---------------------------------------------------------- */
68
54
 
69
- .Prose h1 {
55
+ .Prose h1:not(:global(.custom-component) h1) {
70
56
  font-weight: var(--brand-heading-weight-900);
71
57
  font-size: var(--base-size-32);
72
58
  line-height: 1.5;
@@ -74,11 +60,11 @@
74
60
  letter-spacing: var(--brand-text-letterSpacing-800);
75
61
  }
76
62
 
77
- .Prose--lineLength h1 {
63
+ .Prose--lineLength h1:not(:global(.custom-component) h1) {
78
64
  max-width: 22ch;
79
65
  }
80
66
 
81
- .Prose h2 {
67
+ .Prose h2:not(:global(.custom-component) h2) {
82
68
  font-weight: var(--brand-heading-weight-700);
83
69
  font-size: var(--base-size-24);
84
70
  line-height: var(--base-size-24);
@@ -86,11 +72,11 @@
86
72
  letter-spacing: var(--brand-text-letterSpacing-700);
87
73
  }
88
74
 
89
- .Prose--lineLength h2 {
75
+ .Prose--lineLength h2:not(:global(.custom-component) h2) {
90
76
  max-width: 26ch;
91
77
  }
92
78
 
93
- .Prose h3 {
79
+ .Prose h3:not(:global(.custom-component) h3) {
94
80
  font-weight: var(--brand-heading-weight-600);
95
81
  font-size: var(--base-size-20);
96
82
  line-height: var(--base-size-20);
@@ -98,11 +84,11 @@
98
84
  letter-spacing: var(--brand-heading-letterSpacing-600);
99
85
  }
100
86
 
101
- .Prose--lineLength h1 {
87
+ .Prose--lineLength h3:not(:global(.custom-component) h3) {
102
88
  max-width: 32ch;
103
89
  }
104
90
 
105
- .Prose h4 {
91
+ .Prose h4:not(:global(.custom-component) h4) {
106
92
  --spacing: var(--base-size-40);
107
93
  font-weight: var(--brand-text-weight-500);
108
94
  font-size: var(--base-size-18);
@@ -111,7 +97,7 @@
111
97
  letter-spacing: var(--brand-heading-letterSpacing-500);
112
98
  }
113
99
 
114
- .Prose h5 {
100
+ .Prose h5:not(:global(.custom-component) h5) {
115
101
  --spacing: var(--base-size-40);
116
102
  font-weight: var(--brand-text-weight-400);
117
103
  font-size: var(--base-size-16);
@@ -120,7 +106,7 @@
120
106
  letter-spacing: var(--brand-heading-letterSpacing-400);
121
107
  }
122
108
 
123
- .Prose h6 {
109
+ .Prose h6:not(:global(.custom-component) h6) {
124
110
  --spacing: var(--base-size-48);
125
111
  font-weight: var(--brand-text-subhead-weight-large);
126
112
  font-size: var(--base-size-14);
@@ -129,12 +115,12 @@
129
115
  letter-spacing: var(--brand-heading-letterSpacing-300);
130
116
  }
131
117
 
132
- .Prose :is(h1) {
118
+ .Prose :is(h1):not(:global(.custom-component) h1) {
133
119
  --spacing: var(--base-size-64);
134
120
  margin-block-end: var(--spacing);
135
121
  }
136
122
 
137
- .Prose :is(h2, h3) + * {
123
+ .Prose :is(h2, h3):not(:global(.custom-component) :is(h2, h3)) + * {
138
124
  --spacing: var(--base-size-40);
139
125
  }
140
126
 
@@ -142,7 +128,7 @@
142
128
  /* 5. Paragraphs */
143
129
  /* ---------------------------------------------------------- */
144
130
 
145
- .Prose p {
131
+ .Prose p:not(:global(.custom-component) p) {
146
132
  --spacing: var(--base-size-24);
147
133
  }
148
134
 
@@ -150,8 +136,8 @@
150
136
  /* 6. Lists */
151
137
  /* ---------------------------------------------------------- */
152
138
 
153
- .Prose ul,
154
- .Prose ol {
139
+ .Prose ul:not(:global(.custom-component) ul),
140
+ .Prose ol:not(:global(.custom-component) ol) {
155
141
  --spacing: var(--base-size-16);
156
142
  display: flex;
157
143
  flex-direction: column;
@@ -161,12 +147,12 @@
161
147
  line-height: var(--brand-text-lineHeight-300);
162
148
  }
163
149
 
164
- .Prose ul {
150
+ .Prose ul:not(:global(.custom-component) ul) {
165
151
  list-style-type: image;
166
152
  list-style-image: var(--brand-Prose-unorderedList-imageUrl);
167
153
  }
168
154
 
169
- .Prose li {
155
+ .Prose li:not(:global(.custom-component) li) {
170
156
  --spacing: 0;
171
157
  }
172
158
 
@@ -174,11 +160,11 @@
174
160
  /* 7. Inline elements */
175
161
  /* ---------------------------------------------------------- */
176
162
 
177
- .Prose strong {
163
+ .Prose strong:not(:global(.custom-component) strong) {
178
164
  font-weight: var(--brand-text-weight-800);
179
165
  }
180
166
 
181
- .Prose em {
167
+ .Prose em:not(:global(.custom-component) em) {
182
168
  font-variation-settings: 'ital' 10;
183
169
  font-synthesis: none;
184
170
  }
@@ -215,7 +201,7 @@
215
201
  border-color: var(--brand-InlineLink-color-pressed);
216
202
  }
217
203
 
218
- .Prose code {
204
+ .Prose code:not(:global(.custom-component) code) {
219
205
  font-family: var(--brand-fontStack-monospace);
220
206
  font-size: var(--brand-text-size-100);
221
207
  white-space: break-spaces;
@@ -224,7 +210,7 @@
224
210
  background-color: var(--base-color-scale-indigo-0);
225
211
  }
226
212
 
227
- [data-color-mode='dark'] .Prose code {
213
+ [data-color-mode='dark'] .Prose code:not(:global(.custom-component) code) {
228
214
  background-color: var(--base-color-scale-indigo-9);
229
215
  }
230
216
 
@@ -232,7 +218,7 @@
232
218
  /* 8. Images */
233
219
  /* ---------------------------------------------------------- */
234
220
 
235
- .Prose img {
221
+ .Prose img:not(:global(.custom-component) img) {
236
222
  --spacing: var(--brand-Prose-img-spacing);
237
223
  display: block;
238
224
  max-width: 100%;
@@ -244,7 +230,7 @@
244
230
  overflow: hidden;
245
231
  }
246
232
 
247
- .Prose video {
233
+ .Prose video:not(:global(.custom-component) video) {
248
234
  --spacing: var(--brand-Prose-img-spacing);
249
235
  display: block;
250
236
  max-width: 100%;
@@ -256,7 +242,7 @@
256
242
  /* 9. Block elements */
257
243
  /* ---------------------------------------------------------- */
258
244
 
259
- .Prose blockquote {
245
+ .Prose blockquote:not(:global(.custom-component) blockquote) {
260
246
  font-family: var(--brand-fontStack-sansSerif);
261
247
  --spacing: var(--brand-Prose-blockquote-spacing);
262
248
  position: relative;
@@ -264,11 +250,11 @@
264
250
  line-height: var(--brand-text-lineHeight-400);
265
251
  padding-top: var(--base-size-48);
266
252
  padding-left: var(--base-size-40);
267
- padding-bottom: var(--base-size-8);
253
+ padding-bottom: var (--base-size-8);
268
254
  margin-bottom: var(--spacing);
269
255
  }
270
256
 
271
- .Prose blockquote::before {
257
+ .Prose blockquote:not(:global(.custom-component) blockquote)::before {
272
258
  content: '“';
273
259
  font-size: var(--base-size-48);
274
260
  line-height: var(--base-size-64);
@@ -277,7 +263,7 @@
277
263
  top: 0;
278
264
  }
279
265
 
280
- .Prose blockquote::after {
266
+ .Prose blockquote:not(:global(.custom-component) blockquote)::after {
281
267
  content: '';
282
268
  display: block;
283
269
  position: absolute;
@@ -289,14 +275,14 @@
289
275
  background-image: linear-gradient(180deg, var(--base-color-scale-blue-5), var(--base-color-scale-purple-5));
290
276
  }
291
277
 
292
- .Prose figure figcaption {
278
+ .Prose figure figcaption:not(:global(.custom-component) figure figcaption) {
293
279
  font-family: var(--brand-fontStack-monospace);
294
280
  font-size: var(--brand-text-size-100);
295
281
  line-height: var(--brand-text-lineHeight-100);
296
282
  color: var(--brand-color-text-muted);
297
283
  }
298
284
 
299
- .Prose hr {
285
+ .Prose hr:not(:global(.custom-component) hr) {
300
286
  --spacing: var(--base-size-64);
301
287
  border: 0;
302
288
  height: 1px;
@@ -304,7 +290,61 @@
304
290
  }
305
291
 
306
292
  /**
307
- * 10. Custom stuff - Move out to separate stylesheet
293
+ * 10. Tables
294
+ */
295
+
296
+ .Prose table:not(:global(.custom-component) table) {
297
+ width: 100%;
298
+ overflow: auto;
299
+ border-collapse: separate;
300
+ border-spacing: 0;
301
+ }
302
+
303
+ .Prose th:not(:global(.custom-component) th) {
304
+ font-weight: var(--brand-text-weight-600);
305
+ background-color: var(--brand-color-bg-subtle);
306
+ }
307
+
308
+ .Prose :is(th, td):not(:global(.custom-component) :is(th, td)) {
309
+ padding: var(--base-size-8) var(--base-size-16);
310
+ border-color: var(--brand-color-border-muted);
311
+ border-style: solid;
312
+ border-width: 0;
313
+ border-left-width: var(--brand-borderWidth-thin);
314
+ border-top-width: var(--brand-borderWidth-thin);
315
+ }
316
+
317
+ .Prose tr:last-child td:not(:global(.custom-component) tr:last-child td) {
318
+ border-bottom-width: var(--brand-borderWidth-thin);
319
+ }
320
+
321
+ .Prose tr :is(td, th):last-child:not(:global(.custom-component) tr :is(td, th):last-child) {
322
+ border-right-width: var(--brand-borderWidth-thin);
323
+ }
324
+
325
+ .Prose thead th:first-child:not(:global(.custom-component) thead th:first-child) {
326
+ border-top-left-radius: var(--brand-borderRadius-medium);
327
+ }
328
+
329
+ .Prose thead th:last-child:not(:global(.custom-component) thead th:last-child) {
330
+ border-top-right-radius: var(--brand-borderRadius-medium);
331
+ }
332
+
333
+ .Prose tbody tr:last-child td:last-child:not(:global(.custom-component) tbody tr:last-child td:last-child) {
334
+ border-bottom-right-radius: var(--brand-borderRadius-medium);
335
+ }
336
+
337
+ .Prose tbody tr:last-child td:first-child:not(:global(.custom-component) tbody tr:last-child td:first-child) {
338
+ border-bottom-left-radius: var(--brand-borderRadius-medium);
339
+ }
340
+
341
+ .Prose table img:not(:global(.custom-component) table img) {
342
+ background-color: transparent;
343
+ vertical-align: middle;
344
+ }
345
+
346
+ /**
347
+ * 11. Custom stuff - Move out to separate stylesheet
308
348
  */
309
349
  .customPageHero {
310
350
  padding-top: 0;