zudoku 0.3.0-dev.11 → 0.3.0-dev.13
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/app/App.js +9 -7
- package/dist/app/App.js.map +1 -1
- package/dist/config/config.d.ts +5 -14
- package/dist/lib/components/DevPortal.d.ts +2 -20
- package/dist/lib/components/DevPortal.js +1 -1
- package/dist/lib/components/DevPortal.js.map +1 -1
- package/dist/lib/components/Header.js +2 -2
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +9 -4
- package/dist/lib/components/Heading.js +17 -2
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/Layout.js +1 -1
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/core/DevPortalContext.d.ts +33 -3
- package/dist/lib/core/DevPortalContext.js +3 -1
- package/dist/lib/core/DevPortalContext.js.map +1 -1
- package/dist/lib/plugins/markdown/MdxPage.d.ts +3 -2
- package/dist/lib/plugins/markdown/MdxPage.js +5 -4
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/generateRoutes.d.ts +2 -2
- package/dist/lib/plugins/markdown/generateRoutes.js +2 -2
- package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
- package/dist/lib/plugins/markdown/index.d.ts +4 -1
- package/dist/lib/plugins/markdown/index.js +2 -2
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +4 -3
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +8 -4
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterList.js +1 -1
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +1 -9
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaListView.js +4 -26
- package/dist/lib/plugins/openapi/SchemaListView.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaListViewItem.d.ts +7 -0
- package/dist/lib/plugins/openapi/SchemaListViewItem.js +16 -0
- package/dist/lib/plugins/openapi/SchemaListViewItem.js.map +1 -0
- package/dist/lib/plugins/openapi/SchemaListViewItemGroup.d.ts +8 -0
- package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js +17 -0
- package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js.map +1 -0
- package/dist/lib/plugins/openapi/util/prose.d.ts +1 -0
- package/dist/lib/plugins/openapi/util/prose.js +4 -0
- package/dist/lib/plugins/openapi/util/prose.js.map +1 -0
- package/dist/lib/ui/button-variants.d.ts +1 -1
- package/dist/lib/util/MdxComponents.js +1 -1
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/objectEntries.d.ts +4 -0
- package/dist/lib/util/objectEntries.js +2 -0
- package/dist/lib/util/objectEntries.js.map +1 -0
- package/dist/lib/util/renderIf.d.ts +1 -0
- package/dist/lib/util/renderIf.js +2 -0
- package/dist/lib/util/renderIf.js.map +1 -0
- package/dist/vite/plugin-docs.js +1 -1
- package/dist/vite/plugin-docs.js.map +1 -1
- package/lib/{Spinner-CzCKCaUK.js → Spinner-CbtkR-Im.js} +3054 -3040
- package/lib/zudoku.components.js +42 -41
- package/lib/zudoku.plugins.js +2982 -2980
- package/package.json +1 -1
- package/src/app/App.tsx +10 -7
- package/src/lib/components/DevPortal.tsx +4 -25
- package/src/lib/components/Header.tsx +4 -4
- package/src/lib/components/Heading.tsx +26 -7
- package/src/lib/components/Layout.tsx +1 -1
- package/src/lib/core/DevPortalContext.ts +37 -9
- package/src/lib/plugins/markdown/MdxPage.tsx +49 -32
- package/src/lib/plugins/markdown/generateRoutes.tsx +12 -2
- package/src/lib/plugins/markdown/index.tsx +8 -1
- package/src/lib/plugins/openapi/OperationList.tsx +9 -3
- package/src/lib/plugins/openapi/OperationListItem.tsx +39 -18
- package/src/lib/plugins/openapi/ParameterList.tsx +1 -1
- package/src/lib/plugins/openapi/ParameterListItem.tsx +3 -4
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +2 -17
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +3 -1
- package/src/lib/plugins/openapi/SchemaListView.tsx +15 -182
- package/src/lib/plugins/openapi/SchemaListViewItem.tsx +110 -0
- package/src/lib/plugins/openapi/SchemaListViewItemGroup.tsx +63 -0
- package/src/lib/plugins/openapi/util/prose.ts +7 -0
- package/src/lib/util/MdxComponents.tsx +1 -1
- package/src/lib/util/objectEntries.ts +5 -0
- package/src/lib/util/renderIf.ts +4 -0
|
@@ -52,7 +52,9 @@ export const ResponsesSidecarBox = ({
|
|
|
52
52
|
</span>
|
|
53
53
|
)}
|
|
54
54
|
<hr className="border-border my-1" />
|
|
55
|
-
<div className="text-xs">
|
|
55
|
+
<div className="text-xs text-muted-foreground">
|
|
56
|
+
{responses[tabIndex].description}
|
|
57
|
+
</div>
|
|
56
58
|
</SidecarBox.Body>
|
|
57
59
|
</SidecarBox.Root>
|
|
58
60
|
);
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import * as Collapsible from "@radix-ui/react-collapsible";
|
|
2
|
-
import { ListPlusIcon } from "lucide-react";
|
|
3
|
-
import { useState } from "react";
|
|
4
1
|
import { Markdown } from "../../components/Markdown.js";
|
|
5
2
|
import { SchemaObject } from "../../oas/parser/index.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { objectEntries } from "../../util/objectEntries.js";
|
|
4
|
+
import { SchemaListViewItemGroup } from "./SchemaListViewItemGroup.js";
|
|
5
|
+
import { SchemaProseClasses } from "./util/prose.js";
|
|
8
6
|
|
|
9
7
|
export const SchemaListView = ({
|
|
10
8
|
name,
|
|
@@ -39,190 +37,25 @@ export const SchemaListView = ({
|
|
|
39
37
|
);
|
|
40
38
|
|
|
41
39
|
return (
|
|
42
|
-
<div
|
|
43
|
-
className={cn(
|
|
44
|
-
"not-prose",
|
|
45
|
-
level > 0 && "border border-border rounded text-sm",
|
|
46
|
-
)}
|
|
47
|
-
>
|
|
40
|
+
<div className="flex flex-col gap-2.5">
|
|
48
41
|
{(schema.title ?? name) && (
|
|
49
42
|
<div className="ml-2 my-1 font-bold">{schema.title ?? name}</div>
|
|
50
43
|
)}
|
|
51
44
|
{level === 0 && schema.description && (
|
|
52
|
-
<
|
|
53
|
-
)}
|
|
54
|
-
<ul>
|
|
55
|
-
{Object.entries(groups).map(([group, properties]) => {
|
|
56
|
-
return (
|
|
57
|
-
<SchemaListViewItemGroup
|
|
58
|
-
key={group}
|
|
59
|
-
defaultOpen={defaultOpen}
|
|
60
|
-
group={group as any}
|
|
61
|
-
nestingLevel={level}
|
|
62
|
-
properties={properties}
|
|
63
|
-
required={schema.required ?? []}
|
|
64
|
-
/>
|
|
65
|
-
);
|
|
66
|
-
})}
|
|
67
|
-
</ul>
|
|
68
|
-
</div>
|
|
69
|
-
);
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
const SchemaListViewItemGroup = ({
|
|
73
|
-
group,
|
|
74
|
-
properties,
|
|
75
|
-
nestingLevel,
|
|
76
|
-
required,
|
|
77
|
-
defaultOpen = false,
|
|
78
|
-
}: {
|
|
79
|
-
group: "optional" | "required" | "deprecated";
|
|
80
|
-
defaultOpen?: boolean;
|
|
81
|
-
properties: [string, SchemaObject][];
|
|
82
|
-
nestingLevel: number;
|
|
83
|
-
required: string[];
|
|
84
|
-
}) => {
|
|
85
|
-
const notCollapsible =
|
|
86
|
-
defaultOpen ||
|
|
87
|
-
group === "required" ||
|
|
88
|
-
properties.length === 1 ||
|
|
89
|
-
nestingLevel === 0;
|
|
90
|
-
const [open, setOpen] = useState(notCollapsible);
|
|
91
|
-
if (properties.length === 0) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return (
|
|
96
|
-
<Collapsible.Root
|
|
97
|
-
className="CollapsibleRoot"
|
|
98
|
-
open={open}
|
|
99
|
-
onOpenChange={setOpen}
|
|
100
|
-
>
|
|
101
|
-
{!open && (
|
|
102
|
-
<Collapsible.Trigger
|
|
103
|
-
className={cn(
|
|
104
|
-
"py-2 hover:bg-muted w-full",
|
|
105
|
-
group === "optional" && "font-semibold",
|
|
106
|
-
group === "deprecated" && "text-muted-foreground",
|
|
107
|
-
)}
|
|
108
|
-
>
|
|
109
|
-
{properties.length} {group} fields
|
|
110
|
-
</Collapsible.Trigger>
|
|
45
|
+
<Markdown className={SchemaProseClasses} content={schema.description} />
|
|
111
46
|
)}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
47
|
+
<ul className="border-border border rounded overflow-hidden">
|
|
48
|
+
{objectEntries(groups).map(([group, properties]) => (
|
|
49
|
+
<SchemaListViewItemGroup
|
|
50
|
+
key={group}
|
|
51
|
+
defaultOpen={defaultOpen}
|
|
52
|
+
group={group}
|
|
53
|
+
nestingLevel={level}
|
|
54
|
+
properties={properties ?? []}
|
|
55
|
+
required={schema.required ?? []}
|
|
121
56
|
/>
|
|
122
57
|
))}
|
|
123
|
-
</
|
|
124
|
-
</Collapsible.Root>
|
|
125
|
-
);
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const SchemaListViewItem = ({
|
|
129
|
-
propertyName,
|
|
130
|
-
property,
|
|
131
|
-
nestingLevel,
|
|
132
|
-
isRequired,
|
|
133
|
-
}: {
|
|
134
|
-
propertyName: string;
|
|
135
|
-
isRequired: boolean;
|
|
136
|
-
property: SchemaObject;
|
|
137
|
-
nestingLevel: number;
|
|
138
|
-
}) => {
|
|
139
|
-
return (
|
|
140
|
-
<div
|
|
141
|
-
key={propertyName}
|
|
142
|
-
className={cn(
|
|
143
|
-
nestingLevel > 0 ? "py-2" : "py-4",
|
|
144
|
-
"px-2 border-t border-border bg-border/20 hover:bg-border/30 flex gap-1 flex-col text-sm",
|
|
145
|
-
property.deprecated && "opacity-50",
|
|
146
|
-
)}
|
|
147
|
-
>
|
|
148
|
-
<div className="flex items-center gap-2 relative">
|
|
149
|
-
<code>
|
|
150
|
-
{propertyName} {property.title}
|
|
151
|
-
</code>
|
|
152
|
-
|
|
153
|
-
{property.type && (
|
|
154
|
-
<span className="text-xs text-muted-foreground">{property.type}</span>
|
|
155
|
-
)}
|
|
156
|
-
{property.deprecated && (
|
|
157
|
-
<span className="text-xs text-muted-foreground">Deprecated</span>
|
|
158
|
-
)}
|
|
159
|
-
{!isRequired && (
|
|
160
|
-
<span className="py-px px-1.5 font-medium text-xs border border-border rounded-lg">
|
|
161
|
-
optional {property.required}
|
|
162
|
-
</span>
|
|
163
|
-
)}
|
|
164
|
-
</div>
|
|
165
|
-
{property.description && (
|
|
166
|
-
<Markdown
|
|
167
|
-
content={property.description}
|
|
168
|
-
className="text-sm leading-normal line-clamp-4 "
|
|
169
|
-
/>
|
|
170
|
-
)}
|
|
171
|
-
|
|
172
|
-
{property.enum && (
|
|
173
|
-
<span className="text-sm text-muted-foreground flex gap-1 flex-wrap items-center">
|
|
174
|
-
<span>Possible values</span>
|
|
175
|
-
{property.enum
|
|
176
|
-
.filter((value) => value)
|
|
177
|
-
.map((value) => (
|
|
178
|
-
<span
|
|
179
|
-
key={value}
|
|
180
|
-
className="font-mono text-xs border-border border bg-muted rounded px-1"
|
|
181
|
-
>
|
|
182
|
-
{value}
|
|
183
|
-
</span>
|
|
184
|
-
))
|
|
185
|
-
.slice(0, 4)}
|
|
186
|
-
{property.enum.length > 4 && (
|
|
187
|
-
<span className="font-mono text-xs border-border border bg-muted rounded px-1">
|
|
188
|
-
...
|
|
189
|
-
</span>
|
|
190
|
-
)}
|
|
191
|
-
</span>
|
|
192
|
-
)}
|
|
193
|
-
|
|
194
|
-
<Collapsible.Root className="CollapsibleRoot" defaultOpen={false}>
|
|
195
|
-
{property.type === "object" ||
|
|
196
|
-
(property.type === "array" && property.items.type === "object") ? (
|
|
197
|
-
<Collapsible.Trigger asChild>
|
|
198
|
-
<Button variant="ghost" size="sm">
|
|
199
|
-
Show nested fields
|
|
200
|
-
<ListPlusIcon size={18} className="ml-1.5" />
|
|
201
|
-
</Button>
|
|
202
|
-
</Collapsible.Trigger>
|
|
203
|
-
) : null}
|
|
204
|
-
|
|
205
|
-
<Collapsible.Content>
|
|
206
|
-
{property.type === "object" && (
|
|
207
|
-
<div className="mt-2.5">
|
|
208
|
-
<SchemaListView
|
|
209
|
-
schema={property}
|
|
210
|
-
level={nestingLevel + 1}
|
|
211
|
-
defaultOpen
|
|
212
|
-
/>
|
|
213
|
-
</div>
|
|
214
|
-
)}
|
|
215
|
-
{property.type === "array" && property.items.type === "object" && (
|
|
216
|
-
<div className="mt-2.5">
|
|
217
|
-
<SchemaListView
|
|
218
|
-
schema={property.items}
|
|
219
|
-
defaultOpen
|
|
220
|
-
level={nestingLevel + 1}
|
|
221
|
-
/>
|
|
222
|
-
</div>
|
|
223
|
-
)}
|
|
224
|
-
</Collapsible.Content>
|
|
225
|
-
</Collapsible.Root>
|
|
58
|
+
</ul>
|
|
226
59
|
</div>
|
|
227
60
|
);
|
|
228
61
|
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import * as Collapsible from "@radix-ui/react-collapsible";
|
|
2
|
+
import { ListPlusIcon } from "lucide-react";
|
|
3
|
+
import { Markdown } from "../../components/Markdown.js";
|
|
4
|
+
import { SchemaObject } from "../../oas/parser/index.js";
|
|
5
|
+
import { Button } from "../../ui/Button.js";
|
|
6
|
+
import { cn } from "../../util/cn.js";
|
|
7
|
+
import { SchemaListView } from "./SchemaListView.js";
|
|
8
|
+
|
|
9
|
+
export const SchemaListViewItem = ({
|
|
10
|
+
propertyName,
|
|
11
|
+
property,
|
|
12
|
+
nestingLevel,
|
|
13
|
+
isRequired,
|
|
14
|
+
}: {
|
|
15
|
+
propertyName: string;
|
|
16
|
+
isRequired: boolean;
|
|
17
|
+
property: SchemaObject;
|
|
18
|
+
nestingLevel: number;
|
|
19
|
+
}) => {
|
|
20
|
+
return (
|
|
21
|
+
<div
|
|
22
|
+
key={propertyName}
|
|
23
|
+
className={cn(
|
|
24
|
+
"p-4 bg-border/20 hover:bg-border/30 flex gap-1 flex-col text-sm",
|
|
25
|
+
property.deprecated && "opacity-50",
|
|
26
|
+
)}
|
|
27
|
+
>
|
|
28
|
+
<div className="flex items-center gap-2 relative">
|
|
29
|
+
<code>
|
|
30
|
+
{propertyName} {property.title}
|
|
31
|
+
</code>
|
|
32
|
+
|
|
33
|
+
{property.type && (
|
|
34
|
+
<span className="text-muted-foreground">{property.type}</span>
|
|
35
|
+
)}
|
|
36
|
+
{property.deprecated && (
|
|
37
|
+
<span className="text-muted-foreground">Deprecated</span>
|
|
38
|
+
)}
|
|
39
|
+
{!isRequired && (
|
|
40
|
+
<span className="py-px px-1.5 font-medium border border-border rounded-lg">
|
|
41
|
+
optional {property.required}
|
|
42
|
+
</span>
|
|
43
|
+
)}
|
|
44
|
+
</div>
|
|
45
|
+
{property.description && (
|
|
46
|
+
<Markdown
|
|
47
|
+
content={property.description}
|
|
48
|
+
className="text-sm leading-normal line-clamp-4 "
|
|
49
|
+
/>
|
|
50
|
+
)}
|
|
51
|
+
|
|
52
|
+
{property.enum && (
|
|
53
|
+
<span className="text-sm text-muted-foreground flex gap-1 flex-wrap items-center">
|
|
54
|
+
<span>Possible values</span>
|
|
55
|
+
{/* Make values unique, some schemas have duplicates */}
|
|
56
|
+
{[...new Set(property.enum.filter((value) => value))]
|
|
57
|
+
.map((value) => (
|
|
58
|
+
<span
|
|
59
|
+
key={value}
|
|
60
|
+
className="font-mono text-xs border-border border bg-muted rounded px-1"
|
|
61
|
+
>
|
|
62
|
+
{value}
|
|
63
|
+
</span>
|
|
64
|
+
))
|
|
65
|
+
.slice(0, 4)}
|
|
66
|
+
{property.enum.length > 4 && (
|
|
67
|
+
<span className="font-mono text-xs border-border border bg-muted rounded px-1">
|
|
68
|
+
...
|
|
69
|
+
</span>
|
|
70
|
+
)}
|
|
71
|
+
</span>
|
|
72
|
+
)}
|
|
73
|
+
|
|
74
|
+
{(property.type === "object" &&
|
|
75
|
+
(property.properties?.length ??
|
|
76
|
+
Object.entries(property.additionalProperties ?? {}).length > 0)) ||
|
|
77
|
+
(property.type === "array" && property.items.type === "object") ? (
|
|
78
|
+
<Collapsible.Root className="CollapsibleRoot" defaultOpen={false}>
|
|
79
|
+
<Collapsible.Trigger asChild>
|
|
80
|
+
<Button variant="ghost" size="sm">
|
|
81
|
+
Show nested fields
|
|
82
|
+
<ListPlusIcon size={18} className="ml-1.5" />
|
|
83
|
+
</Button>
|
|
84
|
+
</Collapsible.Trigger>
|
|
85
|
+
|
|
86
|
+
<Collapsible.Content>
|
|
87
|
+
{property.type === "object" && (
|
|
88
|
+
<div className="mt-2.5">
|
|
89
|
+
<SchemaListView
|
|
90
|
+
schema={property}
|
|
91
|
+
level={nestingLevel + 1}
|
|
92
|
+
defaultOpen
|
|
93
|
+
/>
|
|
94
|
+
</div>
|
|
95
|
+
)}
|
|
96
|
+
{property.type === "array" && property.items.type === "object" && (
|
|
97
|
+
<div className="mt-2.5">
|
|
98
|
+
<SchemaListView
|
|
99
|
+
schema={property.items}
|
|
100
|
+
defaultOpen
|
|
101
|
+
level={nestingLevel + 1}
|
|
102
|
+
/>
|
|
103
|
+
</div>
|
|
104
|
+
)}
|
|
105
|
+
</Collapsible.Content>
|
|
106
|
+
</Collapsible.Root>
|
|
107
|
+
) : null}
|
|
108
|
+
</div>
|
|
109
|
+
);
|
|
110
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as Collapsible from "@radix-ui/react-collapsible";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { SchemaObject } from "../../oas/parser/index.js";
|
|
4
|
+
import { cn } from "../../util/cn.js";
|
|
5
|
+
import { SchemaListViewItem } from "./SchemaListViewItem.js";
|
|
6
|
+
|
|
7
|
+
export const SchemaListViewItemGroup = ({
|
|
8
|
+
group,
|
|
9
|
+
properties,
|
|
10
|
+
nestingLevel,
|
|
11
|
+
required,
|
|
12
|
+
defaultOpen = false,
|
|
13
|
+
}: {
|
|
14
|
+
group: "optional" | "required" | "deprecated";
|
|
15
|
+
defaultOpen?: boolean;
|
|
16
|
+
properties: [string, SchemaObject][];
|
|
17
|
+
nestingLevel: number;
|
|
18
|
+
required: string[];
|
|
19
|
+
}) => {
|
|
20
|
+
const notCollapsible =
|
|
21
|
+
defaultOpen ||
|
|
22
|
+
group === "required" ||
|
|
23
|
+
properties.length === 1 ||
|
|
24
|
+
nestingLevel === 0;
|
|
25
|
+
|
|
26
|
+
const [open, setOpen] = useState(notCollapsible);
|
|
27
|
+
|
|
28
|
+
if (properties.length === 0) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<Collapsible.Root
|
|
34
|
+
className="CollapsibleRoot"
|
|
35
|
+
open={open}
|
|
36
|
+
onOpenChange={setOpen}
|
|
37
|
+
>
|
|
38
|
+
{!open && (
|
|
39
|
+
<Collapsible.Trigger
|
|
40
|
+
className={cn(
|
|
41
|
+
"py-2 hover:bg-muted w-full",
|
|
42
|
+
group === "optional" && "font-semibold",
|
|
43
|
+
group === "deprecated" && "text-muted-foreground",
|
|
44
|
+
)}
|
|
45
|
+
>
|
|
46
|
+
{properties.length} {group} fields
|
|
47
|
+
</Collapsible.Trigger>
|
|
48
|
+
)}
|
|
49
|
+
|
|
50
|
+
<Collapsible.Content className="divide-y divide-border">
|
|
51
|
+
{properties.map(([propertyName, property]) => (
|
|
52
|
+
<SchemaListViewItem
|
|
53
|
+
key={propertyName}
|
|
54
|
+
property={property}
|
|
55
|
+
propertyName={propertyName}
|
|
56
|
+
nestingLevel={nestingLevel}
|
|
57
|
+
isRequired={required.includes(propertyName)}
|
|
58
|
+
/>
|
|
59
|
+
))}
|
|
60
|
+
</Collapsible.Content>
|
|
61
|
+
</Collapsible.Root>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
@@ -74,7 +74,7 @@ export const MdxComponents = {
|
|
|
74
74
|
return (
|
|
75
75
|
<SyntaxHighlight
|
|
76
76
|
language={match?.[1] ?? "markup"}
|
|
77
|
-
className="rounded-xl overflow-x-auto p-4 border border-border dark:!bg-foreground/10 dark:border-transparent"
|
|
77
|
+
className="rounded-xl overflow-x-auto p-4 border border-border dark:!bg-foreground/10 dark:border-transparent whitespace-nowrap"
|
|
78
78
|
showLanguageIndicator
|
|
79
79
|
code={String(children).trim()}
|
|
80
80
|
/>
|