@redocly/theme 0.9.13 → 0.9.15

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/lib/config.js CHANGED
@@ -1,216 +1,278 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ThemeConfig = void 0;
4
- const zod_1 = require("zod");
5
- const LogoConfig = zod_1.z
6
- .object({
7
- image: zod_1.z.string().optional(),
8
- altText: zod_1.z.string().optional(),
9
- link: zod_1.z.string().optional(),
10
- favicon: zod_1.z.string().optional(),
11
- })
12
- .strict();
13
- const HideConfig = zod_1.z.object({
14
- hide: zod_1.z.boolean().optional(),
15
- });
16
- const ScriptConfig = zod_1.z
17
- .object({
18
- src: zod_1.z.string(),
19
- async: zod_1.z.boolean().optional(),
20
- crossorigin: zod_1.z.string().optional(),
21
- defer: zod_1.z.boolean().optional(),
22
- fetchpriority: zod_1.z.string().optional(),
23
- integrity: zod_1.z.string().optional(),
24
- module: zod_1.z.boolean().optional(),
25
- nomodule: zod_1.z.boolean().optional(),
26
- nonce: zod_1.z.string().optional(),
27
- referrerpolicy: zod_1.z.string().optional(),
28
- type: zod_1.z.string().optional(),
29
- })
30
- .passthrough();
31
- const LinksConfig = zod_1.z
32
- .object({
33
- href: zod_1.z.string(),
34
- as: zod_1.z.string().optional(),
35
- crossorigin: zod_1.z.string().optional(),
36
- fetchpriority: zod_1.z.string().optional(),
37
- hreflang: zod_1.z.string().optional(),
38
- imagesizes: zod_1.z.string().optional(),
39
- imagesrcset: zod_1.z.string().optional(),
40
- integrity: zod_1.z.string().optional(),
41
- media: zod_1.z.string().optional(),
42
- prefetch: zod_1.z.string().optional(),
43
- referrerpolicy: zod_1.z.string().optional(),
44
- rel: zod_1.z.string().optional(),
45
- sizes: zod_1.z.string().optional(),
46
- title: zod_1.z.string().optional(),
47
- type: zod_1.z.string().optional(),
48
- })
49
- .passthrough();
50
- const MarkdownConfig = zod_1.z
51
- .object({
52
- frontMatterKeysToResolve: zod_1.z.array(zod_1.z.string()).default(['image', 'links']).optional(),
53
- lastUpdatedBlock: zod_1.z
54
- .object({
55
- format: zod_1.z.enum(['timeago', 'iso', 'long', 'short']).default('timeago').optional(),
56
- locale: zod_1.z.string().default('en-US').optional(),
57
- })
58
- .extend(HideConfig.shape)
59
- .default({})
60
- .optional(),
61
- toc: zod_1.z
62
- .object({
63
- header: zod_1.z.string().default('On this page').optional(),
64
- depth: zod_1.z.number().default(3).optional(),
65
- })
66
- .extend(HideConfig.shape)
67
- .optional()
68
- .default({}),
69
- editPage: zod_1.z
70
- .object({
71
- baseUrl: zod_1.z.string().optional(),
72
- icon: zod_1.z.string().optional(),
73
- text: zod_1.z.string().optional().default('Edit this page'),
74
- })
75
- .extend(HideConfig.shape)
76
- .default({})
77
- .optional(),
78
- })
79
- .strict()
80
- .default({});
81
- exports.ThemeConfig = zod_1.z
82
- .object({
83
- imports: zod_1.z.array(zod_1.z.string()).default([]).optional(),
84
- logo: LogoConfig.optional(),
85
- navbar: zod_1.z
86
- .object({
87
- items: zod_1.z.array(zod_1.z.any()).optional(), // todo: think about validation here
88
- })
89
- .extend(HideConfig.shape)
90
- .strict()
91
- .optional(),
92
- footer: zod_1.z
93
- .object({
94
- items: zod_1.z.array(zod_1.z.any()).optional(),
95
- copyrightText: zod_1.z.string().optional(),
96
- })
97
- .extend(HideConfig.shape)
98
- .strict()
99
- .optional(),
100
- sidebar: HideConfig.strict().optional(),
101
- scripts: zod_1.z
102
- .object({
103
- head: zod_1.z.array(ScriptConfig).optional(),
104
- body: zod_1.z.array(ScriptConfig).optional(),
105
- })
106
- .optional(),
107
- links: zod_1.z.array(LinksConfig).optional(),
108
- feedback: zod_1.z
109
- .object({
110
- type: zod_1.z.enum(['rating', 'sentiment', 'comment', 'reasons']).default('sentiment'),
111
- settings: zod_1.z
112
- .object({
113
- label: zod_1.z.string().optional(),
114
- submitText: zod_1.z.string().optional(),
115
- max: zod_1.z.number().optional(),
116
- buttonText: zod_1.z.string().optional(),
117
- multi: zod_1.z.boolean().optional(),
118
- items: zod_1.z.array(zod_1.z.string()).min(1).optional(),
119
- reasons: zod_1.z
120
- .object({
121
- enable: zod_1.z.boolean().default(true),
122
- multi: zod_1.z.boolean().optional(),
123
- label: zod_1.z.string().optional(),
124
- items: zod_1.z.array(zod_1.z.string()),
125
- })
126
- .optional(),
127
- comment: zod_1.z
128
- .object({
129
- enable: zod_1.z.boolean().default(true),
130
- label: zod_1.z.string().optional(),
131
- likeLabel: zod_1.z.string().optional(),
132
- dislikeLabel: zod_1.z.string().optional(),
133
- })
134
- .optional(),
135
- })
136
- .optional(),
137
- })
138
- .extend(HideConfig.shape)
139
- .strict()
140
- .default({})
141
- .optional(),
142
- search: zod_1.z
143
- .object({
144
- placement: zod_1.z.string().default('navbar').optional(),
145
- shortcuts: zod_1.z.array(zod_1.z.string()).default(['/']).optional(),
146
- })
147
- .extend(HideConfig.shape)
148
- .strict()
149
- .default({})
150
- .optional(),
151
- colorMode: zod_1.z
152
- .object({
153
- ignoreDetection: zod_1.z.boolean().optional(),
154
- modes: zod_1.z.array(zod_1.z.string()).default(['light', 'dark']).optional(),
155
- })
156
- .extend(HideConfig.shape)
157
- .strict()
158
- .optional()
159
- .default({}),
160
- navigation: zod_1.z
161
- .object({
162
- nextButton: zod_1.z
163
- .object({ text: zod_1.z.string().default('Next to {label}') })
164
- .extend(HideConfig.shape)
165
- .optional()
166
- .default({}),
167
- previousButton: zod_1.z
168
- .object({ text: zod_1.z.string().default('Back to {label}') })
169
- .extend(HideConfig.shape)
170
- .optional()
171
- .default({}),
172
- })
173
- .strict()
174
- .optional()
175
- .default({}),
176
- codeSnippet: zod_1.z
177
- .object({
178
- copy: zod_1.z
179
- .object({
180
- buttonText: zod_1.z.string().default('Copy').optional(),
181
- tooltipText: zod_1.z.string().default('Copy to clipboard').optional(),
182
- toasterText: zod_1.z.string().default('Copied!').optional(),
183
- toasterDuration: zod_1.z.number().default(1500).optional(),
184
- })
185
- .extend(HideConfig.shape)
186
- .optional()
187
- .default({}),
188
- report: zod_1.z
189
- .object({
190
- tooltipText: zod_1.z.string().default('Report a problem').optional(),
191
- label: zod_1.z.string().optional(),
192
- })
193
- .extend(HideConfig.shape)
194
- .optional()
195
- .default({ hide: true }),
196
- })
197
- .strict()
198
- .default({})
199
- .optional(),
200
- markdown: MarkdownConfig.optional(),
201
- openapi: zod_1.z.object({}).passthrough().optional(),
202
- graphql: zod_1.z.object({}).passthrough().optional(),
203
- analytics: zod_1.z.any().optional(),
204
- userProfile: zod_1.z
205
- .object({
206
- loginLabel: zod_1.z.string().default('Login').optional(),
207
- logoutLabel: zod_1.z.string().default('Logout').optional(),
208
- menu: zod_1.z.array(zod_1.z.any()).optional(), // should be same as navbar items type
209
- })
210
- .extend(HideConfig.shape)
211
- .optional()
212
- .default({}),
213
- })
214
- .passthrough()
215
- .default({});
3
+ exports.themeConfigSchema = void 0;
4
+ const logoConfigSchema = {
5
+ type: 'object',
6
+ properties: {
7
+ image: { type: 'string' },
8
+ altText: { type: 'string' },
9
+ link: { type: 'string' },
10
+ favicon: { type: 'string' },
11
+ },
12
+ additionalProperties: false,
13
+ };
14
+ const hideConfigSchema = {
15
+ type: 'object',
16
+ properties: {
17
+ hide: { type: 'boolean' },
18
+ },
19
+ additionalProperties: false,
20
+ };
21
+ const scriptConfigSchema = {
22
+ type: 'object',
23
+ properties: {
24
+ src: { type: 'string' },
25
+ async: { type: 'boolean' },
26
+ crossorigin: { type: 'string' },
27
+ defer: { type: 'boolean' },
28
+ fetchpriority: { type: 'string' },
29
+ integrity: { type: 'string' },
30
+ module: { type: 'boolean' },
31
+ nomodule: { type: 'boolean' },
32
+ nonce: { type: 'string' },
33
+ referrerpolicy: { type: 'string' },
34
+ type: { type: 'string' },
35
+ },
36
+ required: ['src'],
37
+ additionalProperties: true,
38
+ };
39
+ const linksConfigSchema = {
40
+ type: 'object',
41
+ properties: {
42
+ href: { type: 'string' },
43
+ as: { type: 'string' },
44
+ crossorigin: { type: 'string' },
45
+ fetchpriority: { type: 'string' },
46
+ hreflang: { type: 'string' },
47
+ imagesizes: { type: 'string' },
48
+ imagesrcset: { type: 'string' },
49
+ integrity: { type: 'string' },
50
+ media: { type: 'string' },
51
+ prefetch: { type: 'string' },
52
+ referrerpolicy: { type: 'string' },
53
+ rel: { type: 'string' },
54
+ sizes: { type: 'string' },
55
+ title: { type: 'string' },
56
+ type: { type: 'string' },
57
+ },
58
+ required: ['href'],
59
+ additionalProperties: true,
60
+ };
61
+ const markdownConfigSchema = {
62
+ type: 'object',
63
+ properties: {
64
+ frontMatterKeysToResolve: {
65
+ type: 'array',
66
+ items: { type: 'string' },
67
+ default: ['image', 'links'],
68
+ },
69
+ lastUpdatedBlock: {
70
+ type: 'object',
71
+ properties: Object.assign({ format: {
72
+ type: 'string',
73
+ enum: ['timeago', 'iso', 'long', 'short'],
74
+ default: 'timeago',
75
+ }, locale: { type: 'string', default: 'en-US' } }, hideConfigSchema.properties),
76
+ additionalProperties: false,
77
+ default: {},
78
+ },
79
+ toc: {
80
+ type: 'object',
81
+ properties: Object.assign({ header: { type: 'string', default: 'On this page' }, depth: { type: 'number', default: 3 } }, hideConfigSchema.properties),
82
+ additionalProperties: false,
83
+ default: {},
84
+ },
85
+ editPage: {
86
+ type: 'object',
87
+ properties: Object.assign({ baseUrl: { type: 'string' }, icon: { type: 'string' }, text: { type: 'string', default: 'Edit this page' } }, hideConfigSchema.properties),
88
+ additionalProperties: false,
89
+ default: {},
90
+ },
91
+ },
92
+ additionalProperties: false,
93
+ default: {},
94
+ };
95
+ const navItemSchema = {
96
+ type: 'object',
97
+ properties: {
98
+ page: { type: 'string' },
99
+ directory: { type: 'string' },
100
+ group: { type: 'string' },
101
+ label: { type: 'string' },
102
+ separator: { type: 'string' },
103
+ separatorLine: { type: 'boolean' },
104
+ version: { type: 'string' },
105
+ menuStyle: { type: 'string', enum: ['drilldown'] },
106
+ expanded: { type: 'string', const: 'always' },
107
+ selectFirstItemOnExpand: { type: 'boolean' },
108
+ flatten: { type: 'boolean' },
109
+ },
110
+ };
111
+ const navItemsSchema = {
112
+ type: 'array',
113
+ items: Object.assign(Object.assign({}, navItemSchema), { properties: Object.assign(Object.assign({}, navItemSchema.properties), { items: { type: 'array', items: navItemSchema } }) }),
114
+ };
115
+ exports.themeConfigSchema = {
116
+ type: 'object',
117
+ properties: {
118
+ imports: {
119
+ type: 'array',
120
+ items: { type: 'string' },
121
+ default: [],
122
+ },
123
+ logo: logoConfigSchema,
124
+ navbar: {
125
+ type: 'object',
126
+ properties: Object.assign({ items: navItemsSchema }, hideConfigSchema.properties),
127
+ additionalProperties: false,
128
+ },
129
+ footer: {
130
+ type: 'object',
131
+ properties: Object.assign({ items: navItemsSchema, copyrightText: { type: 'string' } }, hideConfigSchema.properties),
132
+ additionalProperties: false,
133
+ },
134
+ sidebar: hideConfigSchema,
135
+ scripts: {
136
+ type: 'object',
137
+ properties: {
138
+ head: { type: 'array', items: scriptConfigSchema },
139
+ body: { type: 'array', items: scriptConfigSchema },
140
+ },
141
+ additionalProperties: false,
142
+ },
143
+ links: { type: 'array', items: linksConfigSchema },
144
+ feedback: {
145
+ type: 'object',
146
+ properties: {
147
+ hide: {
148
+ type: 'boolean',
149
+ default: false,
150
+ },
151
+ type: {
152
+ type: 'string',
153
+ enum: ['rating', 'sentiment', 'comment', 'reasons'],
154
+ default: 'sentiment',
155
+ },
156
+ settings: Object.assign({ type: 'object', properties: {
157
+ label: { type: 'string' },
158
+ submitText: { type: 'string' },
159
+ max: { type: 'number' },
160
+ buttonText: { type: 'string' },
161
+ multi: { type: 'boolean' },
162
+ items: { type: 'array', items: { type: 'string' }, minItems: 1 },
163
+ reasons: {
164
+ type: 'object',
165
+ properties: {
166
+ enable: { type: 'boolean', default: true },
167
+ multi: { type: 'boolean' },
168
+ label: { type: 'string' },
169
+ items: { type: 'array', items: { type: 'string' } },
170
+ },
171
+ additionalProperties: false,
172
+ },
173
+ comment: {
174
+ type: 'object',
175
+ properties: {
176
+ enable: { type: 'boolean', default: true },
177
+ label: { type: 'string' },
178
+ likeLabel: { type: 'string' },
179
+ dislikeLabel: { type: 'string' },
180
+ },
181
+ additionalProperties: false,
182
+ },
183
+ }, additionalProperties: false }, hideConfigSchema.properties),
184
+ },
185
+ additionalProperties: false,
186
+ default: {},
187
+ },
188
+ search: {
189
+ type: 'object',
190
+ properties: Object.assign({ placement: {
191
+ type: 'string',
192
+ default: 'navbar',
193
+ }, shortcuts: {
194
+ type: 'array',
195
+ items: { type: 'string' },
196
+ default: ['/'],
197
+ } }, hideConfigSchema.properties),
198
+ additionalProperties: false,
199
+ default: {},
200
+ },
201
+ colorMode: {
202
+ type: 'object',
203
+ properties: Object.assign({ ignoreDetection: { type: 'boolean' }, modes: {
204
+ type: 'array',
205
+ items: { type: 'string' },
206
+ default: ['light', 'dark'],
207
+ } }, hideConfigSchema.properties),
208
+ additionalProperties: false,
209
+ default: {},
210
+ },
211
+ navigation: {
212
+ type: 'object',
213
+ properties: {
214
+ nextButton: {
215
+ type: 'object',
216
+ properties: Object.assign({ text: { type: 'string', default: 'Next to {label}' } }, hideConfigSchema.properties),
217
+ additionalProperties: false,
218
+ default: {},
219
+ },
220
+ previousButton: {
221
+ type: 'object',
222
+ properties: Object.assign({ text: { type: 'string', default: 'Back to {label}' } }, hideConfigSchema.properties),
223
+ additionalProperties: false,
224
+ default: {},
225
+ },
226
+ },
227
+ additionalProperties: false,
228
+ default: {},
229
+ },
230
+ codeSnippet: {
231
+ type: 'object',
232
+ properties: {
233
+ copy: {
234
+ type: 'object',
235
+ properties: Object.assign({ buttonText: { type: 'string', default: 'Copy' }, tooltipText: { type: 'string', default: 'Copy to clipboard' }, toasterText: { type: 'string', default: 'Copied!' }, toasterDuration: { type: 'number', default: 1500 } }, hideConfigSchema.properties),
236
+ additionalProperties: false,
237
+ default: {},
238
+ },
239
+ report: {
240
+ type: 'object',
241
+ properties: Object.assign({ tooltipText: { type: 'string', default: 'Report a problem' }, label: { type: 'string' } }, hideConfigSchema.properties),
242
+ additionalProperties: false,
243
+ default: { hide: true },
244
+ },
245
+ },
246
+ additionalProperties: false,
247
+ default: {},
248
+ },
249
+ markdown: markdownConfigSchema,
250
+ openapi: { type: 'object', additionalProperties: true },
251
+ graphql: { type: 'object', additionalProperties: true },
252
+ analytics: {
253
+ type: ['array', 'boolean', 'number', 'object', 'string'],
254
+ },
255
+ userProfile: {
256
+ type: 'object',
257
+ properties: Object.assign({ loginLabel: { type: 'string', default: 'Login' }, logoutLabel: { type: 'string', default: 'Logout' }, menu: {
258
+ type: 'array',
259
+ items: {
260
+ type: 'object',
261
+ properties: {
262
+ label: { type: 'string' },
263
+ external: { type: 'boolean' },
264
+ link: { type: 'string' },
265
+ separatorLine: { type: 'boolean' },
266
+ },
267
+ additionalProperties: true,
268
+ },
269
+ default: [],
270
+ } }, hideConfigSchema.properties),
271
+ additionalProperties: false,
272
+ default: {},
273
+ },
274
+ },
275
+ additionalProperties: true,
276
+ default: {},
277
+ };
216
278
  //# sourceMappingURL=config.js.map
@@ -505,6 +505,7 @@ const sidebar = (0, styled_components_1.css) `
505
505
  --sidebar-item-separator-text-color: var(--sidebar-item-text-color);
506
506
  --sidebar-item-separator-background-color: var(--sidebar-background-color);
507
507
  --sidebar-item-separator-line-color: var(--border-color); // but has line color
508
+ --sidebar-item-separator-offset: calc(var(--sidebar-spacing-unit) * 2);
508
509
 
509
510
  /**
510
511
  * @tokens Sidebar back button
@@ -561,7 +562,7 @@ const admonition = (0, styled_components_1.css) `
561
562
  * @tokens Admonition type info
562
563
  */
563
564
 
564
- --admonition-info-background-color: var(--color-emphasis-200); // @presenter Color
565
+ --admonition-info-background-color: var(--color-secondary-200); // @presenter Color
565
566
  --admonition-info-heading-text-color: var(--text-color); // @presenter Color
566
567
  --admonition-info-text-color: var(--text-color); // @presenter Color
567
568
  --admonition-info-icon-color: var(--color-accent-900); // @presenter Color
@@ -1941,7 +1942,7 @@ const pages = (0, styled_components_1.css) `
1941
1942
  const userProfile = (0, styled_components_1.css) `
1942
1943
 
1943
1944
  /**
1944
- * @tokens User Profile
1945
+ * @tokens User Profile
1945
1946
  */
1946
1947
 
1947
1948
  --profile-name-font-family: var(--navbar-item-font-family); // @presenter FontFamily
@@ -1949,12 +1950,12 @@ const userProfile = (0, styled_components_1.css) `
1949
1950
  --profile-name-font-weight: var(--font-weight-regular); // @presenter FontWeight
1950
1951
  --profile-name-line-height: var(--line-height-base); // @presenter LineHeight
1951
1952
  --profile-name-text-color: var(--navbar-text-color); // @presenter Color
1952
-
1953
+
1953
1954
  --profile-name-padding-horizontal: 0; // @presenter Spacing
1954
1955
  --profile-name-padding-vertical: 0; // @presenter Spacing
1955
1956
  --profile-name-margin-horizontal: 0; // @presenter Spacing
1956
1957
 
1957
- --profile-avatar-width: 40px;
1958
+ --profile-avatar-width: 40px;
1958
1959
  --profile-avatar-height: 40px;
1959
1960
  --profile-avatar-border-radius: 50%; // @presenter BorderRadius
1960
1961
 
@@ -1982,7 +1983,7 @@ const userProfile = (0, styled_components_1.css) `
1982
1983
  --profile-menu-item-font-weight: var(--font-weight-regular); // @presenter FontWeight
1983
1984
  --profile-menu-item-line-height: var(--line-height-base); // @presenter LineHeight
1984
1985
  --profile-menu-item-text-align: left;
1985
-
1986
+
1986
1987
  --profile-menu-item-padding-horizontal: 15px; // @presenter Spacing
1987
1988
  --profile-menu-item-padding-vertical: 20px; // @presenter Spacing
1988
1989
 
@@ -1996,7 +1997,7 @@ const userProfile = (0, styled_components_1.css) `
1996
1997
  --profile-menu-item-separator-line-color: var(--border-color); // @presenter Color
1997
1998
 
1998
1999
  // @tokens End
1999
-
2000
+
2000
2001
  `;
2001
2002
  const modal = (0, styled_components_1.css) `
2002
2003
  body:has(.modal) {
@@ -40,10 +40,9 @@ const DropDownHeader = styled_components_1.default.div `
40
40
  display: flex;
41
41
  justify-content: space-between;
42
42
  align-items: center;
43
- background: #fff;
44
43
  padding: 8px 10px;
45
44
  border-radius: 4px;
46
- border: 1px solid #e4e7eb;
45
+ border: 1px solid var(--border-color);
47
46
  font-weight: 600;
48
47
  color: var(--text-color);
49
48
  background: var(--color-secondary-200);
@@ -68,16 +67,16 @@ const IconWrapper = styled_components_1.default.span `
68
67
  }
69
68
  `;
70
69
  const ListItem = styled_components_1.default.div `
71
- background-color: #fff;
70
+ background-color: var(--color-secondary-200);
72
71
  padding: 0.4em 10px;
73
72
  font-size: 1em;
74
73
  color: var(--text-color);
75
74
  cursor: pointer;
76
75
  &:hover {
77
- background-color: rgba(38, 50, 56, 0.12);
76
+ background-color: var(--color-secondary-300);
78
77
  }
79
78
  &.active {
80
- background-color: rgba(0, 0, 0, 0.05);
79
+ background-color: var(--color-secondary-300);
81
80
  }
82
81
  `;
83
82
  const DropDownLink = (0, styled_components_1.default)(Link_1.Link) `
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@redocly/theme",
3
- "version": "0.9.13",
3
+ "version": "0.9.15",
4
4
  "description": "Shared UI components lib",
5
+ "keywords": [],
5
6
  "author": "team@redocly.com",
6
7
  "license": "SEE LICENSE IN LICENSE",
7
8
  "main": "lib/index.js",
@@ -12,7 +13,6 @@
12
13
  "./config": "./lib/config.js",
13
14
  ".": "./lib/index.js",
14
15
  "./Sidebar/*": "./lib/Sidebar/*.js",
15
- "./*": "./lib/index.js",
16
16
  "./src/": "./src/"
17
17
  },
18
18
  "peerDependencies": {
@@ -22,8 +22,7 @@
22
22
  "react-dom": "^17.0.2",
23
23
  "react-router-dom": "^6.4.4",
24
24
  "styled-components": "^5.3.6",
25
- "styled-system": "^5.1.5",
26
- "zod": ">=3.19.1"
25
+ "styled-system": "^5.1.5"
27
26
  },
28
27
  "devDependencies": {
29
28
  "@storybook/addon-actions": "^6.5.9",
@@ -58,11 +57,11 @@
58
57
  "@typescript-eslint/parser": "^5.23.0",
59
58
  "chromatic": "^6.10.2",
60
59
  "concurrently": "^7.4.0",
61
- "esbuild": "^0.15.11",
62
60
  "jest": "^29.2.2",
63
61
  "jest-environment-jsdom": "^29.2.2",
64
62
  "jest-styled-components": "^7.1.1",
65
63
  "jest-when": "^3.5.1",
64
+ "json-schema-to-ts": "^2.7.2",
66
65
  "lodash.throttle": "^4.1.1",
67
66
  "npm-run-all": "^4.1.5",
68
67
  "react-refresh": "^0.14.0",
@@ -77,10 +76,10 @@
77
76
  "tsc-alias": "^1.8.2",
78
77
  "tsconfig-paths-webpack-plugin": "^3.5.2",
79
78
  "typescript": "^4.8.4",
80
- "webpack": "^5.72.0",
81
- "zod": ">=3.19.1"
79
+ "webpack": "^5.72.0"
82
80
  },
83
81
  "dependencies": {
82
+ "@redocly/ajv": "^8.11.0",
84
83
  "copy-to-clipboard": "^3.3.3",
85
84
  "highlight-words-core": "^1.2.2",
86
85
  "hotkeys-js": "^3.10.1",
@@ -2,7 +2,7 @@ import styled, { css } from 'styled-components';
2
2
 
3
3
  import type { FlattenSimpleInterpolation } from 'styled-components';
4
4
 
5
- import { typography } from '@theme/utils';
5
+ import { typography } from '@theme/utils/theme-helpers';
6
6
 
7
7
  export const baseTable = css`
8
8
  table.md {