@redocly/config 0.8.2 → 0.10.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.
@@ -0,0 +1,553 @@
1
+ import { redocConfigSchema } from './redoc-config-schema';
2
+ import { deprecatedRefDocsSchema } from './reference-docs-config-schema';
3
+ const hideConfigSchema = {
4
+ type: 'object',
5
+ properties: {
6
+ hide: { type: 'boolean' },
7
+ },
8
+ additionalProperties: false,
9
+ };
10
+ const scriptConfigSchema = {
11
+ type: 'object',
12
+ properties: {
13
+ src: { type: 'string' },
14
+ async: { type: 'boolean' },
15
+ crossorigin: { type: 'string' },
16
+ defer: { type: 'boolean' },
17
+ fetchpriority: { type: 'string' },
18
+ integrity: { type: 'string' },
19
+ module: { type: 'boolean' },
20
+ nomodule: { type: 'boolean' },
21
+ nonce: { type: 'string' },
22
+ referrerpolicy: { type: 'string' },
23
+ type: { type: 'string' },
24
+ },
25
+ required: ['src'],
26
+ additionalProperties: true,
27
+ };
28
+ const navItemSchema = {
29
+ type: 'object',
30
+ properties: {
31
+ page: { type: 'string' },
32
+ directory: { type: 'string' },
33
+ disconnect: { type: 'boolean', default: false },
34
+ group: { type: 'string' },
35
+ label: { type: 'string' },
36
+ href: { type: 'string' },
37
+ external: { type: 'boolean' },
38
+ labelTranslationKey: { type: 'string' },
39
+ groupTranslationKey: { type: 'string' },
40
+ icon: {
41
+ oneOf: [
42
+ { type: 'string' },
43
+ { type: 'object', properties: { srcSet: { type: 'string' } }, required: ['srcSet'] },
44
+ ],
45
+ },
46
+ separator: { type: 'string' },
47
+ separatorLine: { type: 'boolean' },
48
+ linePosition: {
49
+ type: 'string',
50
+ enum: ['top', 'bottom'],
51
+ default: 'top',
52
+ },
53
+ version: { type: 'string' },
54
+ menuStyle: { type: 'string', enum: ['drilldown'] },
55
+ expanded: { type: 'string', const: 'always' },
56
+ selectFirstItemOnExpand: { type: 'boolean' },
57
+ flatten: { type: 'boolean' },
58
+ linkedSidebars: {
59
+ type: 'array',
60
+ items: { type: 'string' },
61
+ },
62
+ // Allow users to eject the navbar and implement additional levels of nesting
63
+ items: { type: 'array', items: { type: 'object', additionalProperties: true } },
64
+ },
65
+ };
66
+ export const navItemsSchema = {
67
+ type: 'array',
68
+ items: Object.assign(Object.assign({}, navItemSchema), { properties: Object.assign(Object.assign({}, navItemSchema.properties), { items: { type: 'array', items: navItemSchema } }) }),
69
+ };
70
+ export const productConfigSchema = {
71
+ type: 'object',
72
+ properties: {
73
+ name: { type: 'string' },
74
+ icon: { type: 'string' },
75
+ folder: { type: 'string' },
76
+ },
77
+ additionalProperties: false,
78
+ required: ['name', 'folder'],
79
+ };
80
+ const suggestedPageSchema = {
81
+ type: 'object',
82
+ properties: {
83
+ page: { type: 'string' },
84
+ label: { type: 'string' },
85
+ labelTranslationKey: { type: 'string' },
86
+ },
87
+ required: ['page'],
88
+ };
89
+ export const logoConfigSchema = {
90
+ type: 'object',
91
+ properties: {
92
+ image: { type: 'string' },
93
+ srcSet: { type: 'string' },
94
+ altText: { type: 'string' },
95
+ link: { type: 'string' },
96
+ favicon: { type: 'string' },
97
+ },
98
+ additionalProperties: false,
99
+ };
100
+ export const navbarConfigSchema = {
101
+ type: 'object',
102
+ properties: Object.assign({ items: navItemsSchema }, hideConfigSchema.properties),
103
+ additionalProperties: false,
104
+ };
105
+ export const productsConfigSchema = {
106
+ type: 'object',
107
+ additionalProperties: productConfigSchema,
108
+ };
109
+ export const footerConfigSchema = {
110
+ type: 'object',
111
+ properties: Object.assign({ items: navItemsSchema, copyrightText: { type: 'string' }, logo: hideConfigSchema }, hideConfigSchema.properties),
112
+ additionalProperties: false,
113
+ };
114
+ export const sidebarConfigSchema = {
115
+ type: 'object',
116
+ properties: Object.assign({ separatorLine: { type: 'boolean' }, linePosition: {
117
+ type: 'string',
118
+ enum: ['top', 'bottom'],
119
+ default: 'bottom',
120
+ } }, hideConfigSchema.properties),
121
+ additionalProperties: false,
122
+ };
123
+ export const scriptsConfigSchema = {
124
+ type: 'object',
125
+ properties: {
126
+ head: { type: 'array', items: scriptConfigSchema },
127
+ body: { type: 'array', items: scriptConfigSchema },
128
+ },
129
+ additionalProperties: false,
130
+ };
131
+ export const linksConfigSchema = {
132
+ type: 'array',
133
+ items: {
134
+ type: 'object',
135
+ properties: {
136
+ href: { type: 'string' },
137
+ as: { type: 'string' },
138
+ crossorigin: { type: 'string' },
139
+ fetchpriority: { type: 'string' },
140
+ hreflang: { type: 'string' },
141
+ imagesizes: { type: 'string' },
142
+ imagesrcset: { type: 'string' },
143
+ integrity: { type: 'string' },
144
+ media: { type: 'string' },
145
+ prefetch: { type: 'string' },
146
+ referrerpolicy: { type: 'string' },
147
+ rel: { type: 'string' },
148
+ sizes: { type: 'string' },
149
+ title: { type: 'string' },
150
+ type: { type: 'string' },
151
+ },
152
+ required: ['href'],
153
+ additionalProperties: true,
154
+ },
155
+ };
156
+ export const searchConfigSchema = {
157
+ type: 'object',
158
+ properties: Object.assign({ placement: {
159
+ type: 'string',
160
+ default: 'navbar',
161
+ }, shortcuts: {
162
+ type: 'array',
163
+ items: { type: 'string' },
164
+ default: ['/'],
165
+ }, suggestedPages: {
166
+ type: 'array',
167
+ items: suggestedPageSchema,
168
+ }, fuzzy: {
169
+ type: 'boolean',
170
+ default: false,
171
+ } }, hideConfigSchema.properties),
172
+ additionalProperties: false,
173
+ };
174
+ export const colorModeConfigSchema = {
175
+ type: 'object',
176
+ properties: Object.assign({ ignoreDetection: { type: 'boolean' }, modes: {
177
+ type: 'array',
178
+ items: { type: 'string' },
179
+ default: ['light', 'dark'],
180
+ } }, hideConfigSchema.properties),
181
+ additionalProperties: false,
182
+ };
183
+ export const navigationConfigSchema = {
184
+ type: 'object',
185
+ properties: {
186
+ nextButton: {
187
+ type: 'object',
188
+ properties: Object.assign({ text: { type: 'string', default: 'Next page' } }, hideConfigSchema.properties),
189
+ additionalProperties: false,
190
+ default: {},
191
+ },
192
+ previousButton: {
193
+ type: 'object',
194
+ properties: Object.assign({ text: { type: 'string', default: 'Previous page' } }, hideConfigSchema.properties),
195
+ additionalProperties: false,
196
+ default: {},
197
+ },
198
+ },
199
+ additionalProperties: false,
200
+ };
201
+ export const codeSnippetConfigSchema = {
202
+ type: 'object',
203
+ properties: {
204
+ elementFormat: { type: 'string', default: 'icon' },
205
+ copy: {
206
+ type: 'object',
207
+ properties: Object.assign({}, hideConfigSchema.properties),
208
+ additionalProperties: false,
209
+ default: { hide: false },
210
+ },
211
+ report: {
212
+ type: 'object',
213
+ properties: Object.assign({ tooltipText: { type: 'string' }, buttonText: { type: 'string' }, label: { type: 'string' } }, hideConfigSchema.properties),
214
+ additionalProperties: false,
215
+ default: { hide: false },
216
+ },
217
+ expand: {
218
+ type: 'object',
219
+ properties: Object.assign({}, hideConfigSchema.properties),
220
+ additionalProperties: false,
221
+ default: { hide: false },
222
+ },
223
+ collapse: {
224
+ type: 'object',
225
+ properties: Object.assign({}, hideConfigSchema.properties),
226
+ additionalProperties: false,
227
+ default: { hide: false },
228
+ },
229
+ },
230
+ additionalProperties: false,
231
+ };
232
+ export const markdownConfigSchema = {
233
+ type: 'object',
234
+ properties: {
235
+ frontMatterKeysToResolve: {
236
+ type: 'array',
237
+ items: { type: 'string' },
238
+ default: ['image', 'links'],
239
+ },
240
+ partialsFolders: {
241
+ type: 'array',
242
+ items: { type: 'string' },
243
+ default: ['_partials'],
244
+ },
245
+ lastUpdatedBlock: {
246
+ type: 'object',
247
+ properties: Object.assign({ format: {
248
+ type: 'string',
249
+ enum: ['timeago', 'iso', 'long', 'short'],
250
+ default: 'timeago',
251
+ }, locale: { type: 'string' } }, hideConfigSchema.properties),
252
+ additionalProperties: false,
253
+ default: {},
254
+ },
255
+ toc: {
256
+ type: 'object',
257
+ properties: Object.assign({ header: { type: 'string', default: 'On this page' }, depth: { type: 'integer', default: 3, minimum: 1 } }, hideConfigSchema.properties),
258
+ additionalProperties: false,
259
+ default: {},
260
+ },
261
+ editPage: {
262
+ type: 'object',
263
+ properties: Object.assign({ baseUrl: { type: 'string' } }, hideConfigSchema.properties),
264
+ additionalProperties: false,
265
+ default: {},
266
+ },
267
+ },
268
+ additionalProperties: false,
269
+ default: {},
270
+ };
271
+ export const openapiConfigSchema = Object.assign(Object.assign({}, redocConfigSchema), { properties: Object.assign(Object.assign({}, redocConfigSchema.properties), deprecatedRefDocsSchema.properties) });
272
+ const adobeAnalyticsConfigSchema = {
273
+ type: 'object',
274
+ properties: {
275
+ includeInDevelopment: { type: 'boolean' },
276
+ scriptUrl: { type: 'string' },
277
+ pageViewEventName: { type: 'string' },
278
+ },
279
+ additionalProperties: false,
280
+ required: ['scriptUrl'],
281
+ };
282
+ export const amplitudeAnalyticsConfigSchema = {
283
+ type: 'object',
284
+ properties: {
285
+ includeInDevelopment: { type: 'boolean' },
286
+ apiKey: { type: 'string' },
287
+ head: { type: 'boolean' },
288
+ respectDNT: { type: 'boolean' },
289
+ exclude: { type: 'array', items: { type: 'string' } },
290
+ outboundClickEventName: { type: 'string' },
291
+ pageViewEventName: { type: 'string' },
292
+ amplitudeConfig: { type: 'object', additionalProperties: true },
293
+ },
294
+ additionalProperties: false,
295
+ required: ['apiKey'],
296
+ };
297
+ export const fullstoryAnalyticsConfigSchema = {
298
+ type: 'object',
299
+ properties: {
300
+ includeInDevelopment: { type: 'boolean' },
301
+ orgId: { type: 'string' },
302
+ },
303
+ additionalProperties: false,
304
+ required: ['orgId'],
305
+ };
306
+ export const heapAnalyticsConfigSchema = {
307
+ type: 'object',
308
+ properties: {
309
+ includeInDevelopment: { type: 'boolean' },
310
+ appId: { type: 'string' },
311
+ },
312
+ additionalProperties: false,
313
+ required: ['appId'],
314
+ };
315
+ export const rudderstackAnalyticsConfigSchema = {
316
+ type: 'object',
317
+ properties: {
318
+ includeInDevelopment: { type: 'boolean' },
319
+ writeKey: { type: 'string', minLength: 10 },
320
+ trackPage: { type: 'boolean' },
321
+ dataPlaneUrl: { type: 'string' },
322
+ controlPlaneUrl: { type: 'string' },
323
+ sdkUrl: { type: 'string' },
324
+ loadOptions: { type: 'object', additionalProperties: true },
325
+ },
326
+ additionalProperties: false,
327
+ required: ['writeKey'],
328
+ };
329
+ export const segmentAnalyticsConfigSchema = {
330
+ type: 'object',
331
+ properties: {
332
+ includeInDevelopment: { type: 'boolean' },
333
+ writeKey: { type: 'string', minLength: 10 },
334
+ trackPage: { type: 'boolean' },
335
+ includeTitleInPageCall: { type: 'boolean' },
336
+ host: { type: 'string' },
337
+ },
338
+ additionalProperties: false,
339
+ required: ['writeKey'],
340
+ };
341
+ export const gtmAnalyticsConfigSchema = {
342
+ type: 'object',
343
+ properties: {
344
+ includeInDevelopment: { type: 'boolean' },
345
+ trackingId: { type: 'string' },
346
+ gtmAuth: { type: 'string' },
347
+ gtmPreview: { type: 'string' },
348
+ defaultDataLayer: {},
349
+ dataLayerName: { type: 'string' },
350
+ enableWebVitalsTracking: { type: 'boolean' },
351
+ selfHostedOrigin: { type: 'string' },
352
+ pageViewEventName: { type: 'string' },
353
+ },
354
+ additionalProperties: false,
355
+ required: ['trackingId'],
356
+ };
357
+ export const productGoogleAnalyticsConfigSchema = {
358
+ type: 'object',
359
+ properties: {
360
+ includeInDevelopment: { type: 'boolean' },
361
+ trackingId: { type: 'string' },
362
+ conversionId: { type: 'string' },
363
+ floodlightId: { type: 'string' },
364
+ optimizeId: { type: 'string' },
365
+ exclude: { type: 'array', items: { type: 'string' } },
366
+ },
367
+ additionalProperties: false,
368
+ required: ['trackingId'],
369
+ };
370
+ export const googleAnalyticsConfigSchema = {
371
+ type: 'object',
372
+ properties: {
373
+ includeInDevelopment: { type: 'boolean' },
374
+ trackingId: { type: 'string' },
375
+ conversionId: { type: 'string' },
376
+ floodlightId: { type: 'string' },
377
+ head: { type: 'boolean' },
378
+ respectDNT: { type: 'boolean' },
379
+ exclude: { type: 'array', items: { type: 'string' } },
380
+ optimizeId: { type: 'string' },
381
+ anonymizeIp: { type: 'boolean' },
382
+ cookieExpires: { type: 'number' },
383
+ // All enabled tracking configs
384
+ trackers: {
385
+ type: 'object',
386
+ additionalProperties: productGoogleAnalyticsConfigSchema,
387
+ },
388
+ },
389
+ additionalProperties: false,
390
+ required: ['trackingId'],
391
+ };
392
+ export const analyticsConfigSchema = {
393
+ type: 'object',
394
+ properties: {
395
+ adobe: adobeAnalyticsConfigSchema,
396
+ amplitude: amplitudeAnalyticsConfigSchema,
397
+ fullstory: fullstoryAnalyticsConfigSchema,
398
+ heap: heapAnalyticsConfigSchema,
399
+ rudderstack: rudderstackAnalyticsConfigSchema,
400
+ segment: segmentAnalyticsConfigSchema,
401
+ gtm: gtmAnalyticsConfigSchema,
402
+ ga: googleAnalyticsConfigSchema,
403
+ },
404
+ };
405
+ export const userMenuConfigSchema = {
406
+ type: 'object',
407
+ properties: Object.assign({ items: {
408
+ type: 'array',
409
+ items: {
410
+ type: 'object',
411
+ properties: {
412
+ label: { type: 'string' },
413
+ external: { type: 'boolean' },
414
+ link: { type: 'string' },
415
+ separatorLine: { type: 'boolean' },
416
+ },
417
+ additionalProperties: true,
418
+ },
419
+ default: [],
420
+ }, hideLoginButton: { type: 'boolean' } }, hideConfigSchema.properties),
421
+ additionalProperties: false,
422
+ };
423
+ export const versionPickerConfigSchema = {
424
+ type: 'object',
425
+ properties: {
426
+ hide: { type: 'boolean' },
427
+ showForUnversioned: {
428
+ type: 'boolean',
429
+ },
430
+ },
431
+ };
432
+ export const breadcrumbsConfigSchema = {
433
+ type: 'object',
434
+ properties: {
435
+ hide: { type: 'boolean' },
436
+ prefixItems: {
437
+ type: 'array',
438
+ items: {
439
+ type: 'object',
440
+ properties: {
441
+ label: { type: 'string' },
442
+ labelTranslationKey: { type: 'string' },
443
+ page: { type: 'string' },
444
+ },
445
+ additionalProperties: false,
446
+ default: {},
447
+ },
448
+ },
449
+ },
450
+ additionalProperties: false,
451
+ };
452
+ export const catalogFilterSchema = {
453
+ type: 'object',
454
+ additionalProperties: false,
455
+ required: ['title', 'property'],
456
+ properties: {
457
+ type: {
458
+ type: 'string',
459
+ enum: ['select', 'checkboxes', 'date-range'],
460
+ default: 'checkboxes',
461
+ },
462
+ title: { type: 'string' },
463
+ titleTranslationKey: { type: 'string' },
464
+ property: { type: 'string' },
465
+ parentFilter: { type: 'string' },
466
+ valuesMapping: { type: 'object', additionalProperties: { type: 'string' } },
467
+ missingCategoryName: { type: 'string' },
468
+ missingCategoryNameTranslationKey: { type: 'string' },
469
+ options: { type: 'array', items: { type: 'string' } },
470
+ },
471
+ };
472
+ export const catalogSchema = {
473
+ type: 'object',
474
+ additionalProperties: true,
475
+ required: ['slug', 'items'],
476
+ properties: {
477
+ slug: { type: 'string' },
478
+ filters: { type: 'array', items: catalogFilterSchema },
479
+ groupByFirstFilter: { type: 'boolean' },
480
+ filterValuesCasing: {
481
+ type: 'string',
482
+ enum: ['sentence', 'original', 'lowercase', 'uppercase'],
483
+ },
484
+ items: navItemsSchema,
485
+ requiredPermission: { type: 'string' },
486
+ separateVersions: { type: 'boolean' },
487
+ title: { type: 'string' },
488
+ titleTranslationKey: { type: 'string' },
489
+ description: { type: 'string' },
490
+ descriptionTranslationKey: { type: 'string' },
491
+ },
492
+ };
493
+ export const catalogsConfigSchema = {
494
+ type: 'object',
495
+ patternProperties: {
496
+ '.*': catalogSchema,
497
+ },
498
+ };
499
+ export const scorecardConfigSchema = {
500
+ type: 'object',
501
+ additionalProperties: true,
502
+ required: [],
503
+ properties: {
504
+ ignoreNonCompliant: { type: 'boolean', default: false },
505
+ teamMetadataProperty: {
506
+ type: 'object',
507
+ properties: {
508
+ property: { type: 'string' },
509
+ label: { type: 'string' },
510
+ default: { type: 'string' },
511
+ },
512
+ },
513
+ levels: {
514
+ type: 'array',
515
+ items: {
516
+ type: 'object',
517
+ required: ['name'],
518
+ properties: {
519
+ name: { type: 'string' },
520
+ color: { type: 'string' },
521
+ extends: { type: 'array', items: { type: 'string' } },
522
+ rules: {
523
+ type: 'object',
524
+ additionalProperties: {
525
+ oneOf: [{ type: 'string' }, { type: 'object' }],
526
+ },
527
+ },
528
+ },
529
+ additionalProperties: false,
530
+ },
531
+ },
532
+ targets: {
533
+ type: 'array',
534
+ items: {
535
+ type: 'object',
536
+ required: ['where'],
537
+ properties: {
538
+ minimumLevel: { type: 'string' },
539
+ where: {
540
+ type: 'object',
541
+ required: ['metadata'],
542
+ properties: {
543
+ metadata: { type: 'object', additionalProperties: { type: 'string' } },
544
+ },
545
+ additionalProperties: false,
546
+ },
547
+ },
548
+ additionalProperties: false,
549
+ },
550
+ },
551
+ },
552
+ };
553
+ //# sourceMappingURL=ex-theme-config-schemas.js.map
@@ -97,6 +97,4 @@ export declare const feedbackConfigSchema: {
97
97
  };
98
98
  };
99
99
  readonly additionalProperties: false;
100
- readonly default: null;
101
- readonly nullable: true;
102
100
  };
@@ -62,7 +62,5 @@ export const feedbackConfigSchema = {
62
62
  },
63
63
  },
64
64
  additionalProperties: false,
65
- default: null,
66
- nullable: true,
67
65
  };
68
66
  //# sourceMappingURL=feedback-config-schema.js.map
@@ -280,8 +280,6 @@ export declare const graphqlConfigSchema: {
280
280
  };
281
281
  };
282
282
  readonly additionalProperties: false;
283
- readonly default: null;
284
- readonly nullable: true;
285
283
  };
286
284
  };
287
285
  readonly additionalProperties: false;
@@ -1,7 +1,7 @@
1
1
  import type { Node } from '@markdoc/markdoc/dist/src/types';
2
2
  import type { LayoutVariant, REDOCLY_ROUTE_RBAC, REDOCLY_TEAMS_RBAC } from './constants';
3
- import type { ProductConfig, ProductGoogleAnalyticsConfig, RbacScopeItems, SeoConfig, ThemeConfig } from './types';
4
- export type ThemeUIConfig = ThemeConfig & {
3
+ import type { ProductConfig, ProductGoogleAnalyticsConfig, RbacScopeItems, RedoclyConfig, SeoConfig } from './types';
4
+ export type UiAccessibleConfig = Pick<RedoclyConfig, 'logo' | 'navbar' | 'products' | 'footer' | 'sidebar' | 'scripts' | 'links' | 'feedback' | 'search' | 'colorMode' | 'navigation' | 'codeSnippet' | 'markdown' | 'openapi' | 'graphql' | 'analytics' | 'userMenu' | 'versionPicker' | 'breadcrumbs' | 'catalog' | 'scorecard'> & {
5
5
  auth?: {
6
6
  idpsInfo?: {
7
7
  idpId: string;
@@ -11,10 +11,6 @@ export type ThemeUIConfig = ThemeConfig & {
11
11
  devLogin?: boolean;
12
12
  loginUrls?: Record<string, string>;
13
13
  };
14
- search?: {
15
- shortcuts?: string[];
16
- suggestedPages?: any[];
17
- };
18
14
  breadcrumbs?: {
19
15
  prefixItems?: ResolvedNavLinkItem[];
20
16
  };
@@ -22,6 +18,10 @@ export type ThemeUIConfig = ThemeConfig & {
22
18
  [key: string]: ProductUiConfig;
23
19
  };
24
20
  };
21
+ /**
22
+ * @deprecated left for backwards compatibility. To be removed in Realm 1.0
23
+ */
24
+ export type ThemeUIConfig = UiAccessibleConfig;
25
25
  export type ResolvedNavLinkItem = {
26
26
  type: 'link';
27
27
  fsPath?: string;
@@ -144,13 +144,12 @@ export type ResolvedSidebar = {
144
144
  relatedNavbarItem?: BreadcrumbItem;
145
145
  items: ResolvedNavItem[];
146
146
  };
147
- export interface PageProps {
147
+ export type PageProps = {
148
148
  metadata?: Record<string, unknown>;
149
149
  seo?: SeoConfig;
150
150
  frontmatter?: Omit<PageProps, 'frontmatter'> & {
151
- theme?: any;
152
151
  settings?: any;
153
- };
152
+ } & Partial<UiAccessibleConfig>;
154
153
  disableAutoScroll?: boolean;
155
154
  lastModified?: string | null;
156
155
  [k: string]: unknown;
@@ -164,7 +163,7 @@ export interface PageProps {
164
163
  teams: string[];
165
164
  };
166
165
  };
167
- }
166
+ };
168
167
  export interface MdOptions {
169
168
  partials: Record<string, Node>;
170
169
  variables?: Record<string, any>;
@@ -267,7 +266,7 @@ export type BreadcrumbItem = {
267
266
  label: string;
268
267
  link?: string;
269
268
  };
270
- export type ProductThemeOverrideConfig = Pick<ThemeUIConfig, 'logo' | 'navbar' | 'footer' | 'sidebar' | 'search' | 'codeSnippet' | 'breadcrumbs' | 'feedback'> & {
269
+ export type ProductThemeOverrideConfig = Pick<RedoclyConfig, 'logo' | 'navbar' | 'footer' | 'sidebar' | 'search' | 'codeSnippet' | 'breadcrumbs' | 'feedback'> & {
271
270
  analytics?: {
272
271
  ga?: ProductGoogleAnalyticsConfig;
273
272
  };
@@ -281,5 +280,5 @@ export type ProductUiConfig = ProductConfig & {
281
280
  [REDOCLY_ROUTE_RBAC]?: {
282
281
  [key: string]: string;
283
282
  };
284
- themeOverride?: ProductThemeOverrideConfig;
283
+ configOverride?: ProductThemeOverrideConfig;
285
284
  };
@@ -112,8 +112,6 @@ export declare const redocConfigSchema: {
112
112
  };
113
113
  };
114
114
  readonly additionalProperties: false;
115
- readonly default: null;
116
- readonly nullable: true;
117
115
  };
118
116
  readonly hideReplay: {
119
117
  readonly type: "boolean";