vocs 2.0.17 → 2.1.2
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/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/globals.d.ts +16 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/config.d.ts +28 -0
- package/dist/internal/config.d.ts.map +1 -1
- package/dist/internal/config.js +10 -2
- package/dist/internal/config.js.map +1 -1
- package/dist/internal/llms.d.ts +21 -2
- package/dist/internal/llms.d.ts.map +1 -1
- package/dist/internal/llms.js +41 -1
- package/dist/internal/llms.js.map +1 -1
- package/dist/internal/markdown-negotiation.d.ts +36 -0
- package/dist/internal/markdown-negotiation.d.ts.map +1 -0
- package/dist/internal/markdown-negotiation.js +81 -0
- package/dist/internal/markdown-negotiation.js.map +1 -0
- package/dist/internal/markdown.d.ts.map +1 -1
- package/dist/internal/markdown.js +5 -0
- package/dist/internal/markdown.js.map +1 -1
- package/dist/internal/openapi/anchors.d.ts +25 -0
- package/dist/internal/openapi/anchors.d.ts.map +1 -0
- package/dist/internal/openapi/anchors.js +37 -0
- package/dist/internal/openapi/anchors.js.map +1 -0
- package/dist/internal/openapi/app.d.ts +89 -0
- package/dist/internal/openapi/app.d.ts.map +1 -0
- package/dist/internal/openapi/app.js +62 -0
- package/dist/internal/openapi/app.js.map +1 -0
- package/dist/internal/openapi/index.d.ts +8 -0
- package/dist/internal/openapi/index.d.ts.map +1 -0
- package/dist/internal/openapi/index.js +5 -0
- package/dist/internal/openapi/index.js.map +1 -0
- package/dist/internal/openapi/markdown.d.ts +42 -0
- package/dist/internal/openapi/markdown.d.ts.map +1 -0
- package/dist/internal/openapi/markdown.js +235 -0
- package/dist/internal/openapi/markdown.js.map +1 -0
- package/dist/internal/openapi/openapi.d.ts +187 -0
- package/dist/internal/openapi/openapi.d.ts.map +1 -0
- package/dist/internal/openapi/openapi.js +44 -0
- package/dist/internal/openapi/openapi.js.map +1 -0
- package/dist/internal/openapi/openrpc.d.ts +90 -0
- package/dist/internal/openapi/openrpc.d.ts.map +1 -0
- package/dist/internal/openapi/openrpc.js +213 -0
- package/dist/internal/openapi/openrpc.js.map +1 -0
- package/dist/internal/openapi/parser.d.ts +181 -0
- package/dist/internal/openapi/parser.d.ts.map +1 -0
- package/dist/internal/openapi/parser.js +329 -0
- package/dist/internal/openapi/parser.js.map +1 -0
- package/dist/internal/openapi/registry.d.ts +36 -0
- package/dist/internal/openapi/registry.d.ts.map +1 -0
- package/dist/internal/openapi/registry.js +79 -0
- package/dist/internal/openapi/registry.js.map +1 -0
- package/dist/internal/openapi/sample.d.ts +115 -0
- package/dist/internal/openapi/sample.d.ts.map +1 -0
- package/dist/internal/openapi/sample.js +434 -0
- package/dist/internal/openapi/sample.js.map +1 -0
- package/dist/internal/openapi/search.d.ts +19 -0
- package/dist/internal/openapi/search.d.ts.map +1 -0
- package/dist/internal/openapi/search.js +98 -0
- package/dist/internal/openapi/search.js.map +1 -0
- package/dist/internal/openapi/sidebar.d.ts +30 -0
- package/dist/internal/openapi/sidebar.d.ts.map +1 -0
- package/dist/internal/openapi/sidebar.js +67 -0
- package/dist/internal/openapi/sidebar.js.map +1 -0
- package/dist/internal/openapi/union.d.ts +36 -0
- package/dist/internal/openapi/union.d.ts.map +1 -0
- package/dist/internal/openapi/union.js +69 -0
- package/dist/internal/openapi/union.js.map +1 -0
- package/dist/internal/search.d.ts.map +1 -1
- package/dist/internal/search.js +20 -0
- package/dist/internal/search.js.map +1 -1
- package/dist/internal/vite-plugins.d.ts +12 -0
- package/dist/internal/vite-plugins.d.ts.map +1 -1
- package/dist/internal/vite-plugins.js +102 -11
- package/dist/internal/vite-plugins.js.map +1 -1
- package/dist/react/Badge.d.ts +2 -3
- package/dist/react/Badge.d.ts.map +1 -1
- package/dist/react/Layout.client.d.ts.map +1 -1
- package/dist/react/Layout.client.js +2 -2
- package/dist/react/Layout.client.js.map +1 -1
- package/dist/react/OpenApi.d.ts +6 -0
- package/dist/react/OpenApi.d.ts.map +1 -0
- package/dist/react/OpenApi.js +6 -0
- package/dist/react/OpenApi.js.map +1 -0
- package/dist/react/internal/CodeToHtml.client.d.ts +53 -2
- package/dist/react/internal/CodeToHtml.client.d.ts.map +1 -1
- package/dist/react/internal/CodeToHtml.client.js +154 -21
- package/dist/react/internal/CodeToHtml.client.js.map +1 -1
- package/dist/react/internal/Sidebar.d.ts.map +1 -1
- package/dist/react/internal/Sidebar.js +99 -2
- package/dist/react/internal/Sidebar.js.map +1 -1
- package/dist/react/internal/openapi/CodeSample.client.d.ts +21 -0
- package/dist/react/internal/openapi/CodeSample.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/CodeSample.client.js +134 -0
- package/dist/react/internal/openapi/CodeSample.client.js.map +1 -0
- package/dist/react/internal/openapi/CollapsibleChildren.client.d.ts +17 -0
- package/dist/react/internal/openapi/CollapsibleChildren.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/CollapsibleChildren.client.js +18 -0
- package/dist/react/internal/openapi/CollapsibleChildren.client.js.map +1 -0
- package/dist/react/internal/openapi/Disclosure.client.d.ts +28 -0
- package/dist/react/internal/openapi/Disclosure.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/Disclosure.client.js +38 -0
- package/dist/react/internal/openapi/Disclosure.client.js.map +1 -0
- package/dist/react/internal/openapi/Endpoints.d.ts +26 -0
- package/dist/react/internal/openapi/Endpoints.d.ts.map +1 -0
- package/dist/react/internal/openapi/Endpoints.js +33 -0
- package/dist/react/internal/openapi/Endpoints.js.map +1 -0
- package/dist/react/internal/openapi/EndpointsView.d.ts +24 -0
- package/dist/react/internal/openapi/EndpointsView.d.ts.map +1 -0
- package/dist/react/internal/openapi/EndpointsView.js +26 -0
- package/dist/react/internal/openapi/EndpointsView.js.map +1 -0
- package/dist/react/internal/openapi/EnumValues.client.d.ts +14 -0
- package/dist/react/internal/openapi/EnumValues.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/EnumValues.client.js +20 -0
- package/dist/react/internal/openapi/EnumValues.client.js.map +1 -0
- package/dist/react/internal/openapi/HeadingAnchor.d.ts +15 -0
- package/dist/react/internal/openapi/HeadingAnchor.d.ts.map +1 -0
- package/dist/react/internal/openapi/HeadingAnchor.js +12 -0
- package/dist/react/internal/openapi/HeadingAnchor.js.map +1 -0
- package/dist/react/internal/openapi/OpenApiPage.d.ts +79 -0
- package/dist/react/internal/openapi/OpenApiPage.d.ts.map +1 -0
- package/dist/react/internal/openapi/OpenApiPage.js +72 -0
- package/dist/react/internal/openapi/OpenApiPage.js.map +1 -0
- package/dist/react/internal/openapi/Operation.d.ts +25 -0
- package/dist/react/internal/openapi/Operation.d.ts.map +1 -0
- package/dist/react/internal/openapi/Operation.js +101 -0
- package/dist/react/internal/openapi/Operation.js.map +1 -0
- package/dist/react/internal/openapi/Playground.client.d.ts +33 -0
- package/dist/react/internal/openapi/Playground.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/Playground.client.js +170 -0
- package/dist/react/internal/openapi/Playground.client.js.map +1 -0
- package/dist/react/internal/openapi/PropertyExample.client.d.ts +17 -0
- package/dist/react/internal/openapi/PropertyExample.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/PropertyExample.client.js +21 -0
- package/dist/react/internal/openapi/PropertyExample.client.js.map +1 -0
- package/dist/react/internal/openapi/Reference.d.ts +55 -0
- package/dist/react/internal/openapi/Reference.d.ts.map +1 -0
- package/dist/react/internal/openapi/Reference.js +42 -0
- package/dist/react/internal/openapi/Reference.js.map +1 -0
- package/dist/react/internal/openapi/Schema.d.ts +110 -0
- package/dist/react/internal/openapi/Schema.d.ts.map +1 -0
- package/dist/react/internal/openapi/Schema.js +239 -0
- package/dist/react/internal/openapi/Schema.js.map +1 -0
- package/dist/react/internal/openapi/SchemaUnion.client.d.ts +25 -0
- package/dist/react/internal/openapi/SchemaUnion.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/SchemaUnion.client.js +48 -0
- package/dist/react/internal/openapi/SchemaUnion.client.js.map +1 -0
- package/dist/react/internal/openapi/anchor-navigation.client.d.ts +47 -0
- package/dist/react/internal/openapi/anchor-navigation.client.d.ts.map +1 -0
- package/dist/react/internal/openapi/anchor-navigation.client.js +120 -0
- package/dist/react/internal/openapi/anchor-navigation.client.js.map +1 -0
- package/dist/react/internal/openapi/auth.d.ts +28 -0
- package/dist/react/internal/openapi/auth.d.ts.map +1 -0
- package/dist/react/internal/openapi/auth.js +75 -0
- package/dist/react/internal/openapi/auth.js.map +1 -0
- package/dist/react/useLayout.d.ts +2 -0
- package/dist/react/useLayout.d.ts.map +1 -1
- package/dist/react/useLayout.js +2 -0
- package/dist/react/useLayout.js.map +1 -1
- package/dist/server/handlers.d.ts +1 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +26 -5
- package/dist/server/handlers.js.map +1 -1
- package/dist/server/og-assets.d.ts +5 -0
- package/dist/server/og-assets.d.ts.map +1 -0
- package/dist/server/og-assets.js +11 -0
- package/dist/server/og-assets.js.map +1 -0
- package/dist/server/openapi/assets.d.ts +33 -0
- package/dist/server/openapi/assets.d.ts.map +1 -0
- package/dist/server/openapi/assets.generated.d.ts +9 -0
- package/dist/server/openapi/assets.generated.d.ts.map +1 -0
- package/dist/server/openapi/assets.generated.js +1091 -0
- package/dist/server/openapi/assets.generated.js.map +1 -0
- package/dist/server/openapi/assets.js +32 -0
- package/dist/server/openapi/assets.js.map +1 -0
- package/dist/server/openapi/handler.d.ts +103 -0
- package/dist/server/openapi/handler.d.ts.map +1 -0
- package/dist/server/openapi/handler.js +198 -0
- package/dist/server/openapi/handler.js.map +1 -0
- package/dist/server/openapi/handler.test.d.ts +2 -0
- package/dist/server/openapi/handler.test.d.ts.map +1 -0
- package/dist/server/openapi/handler.test.js +203 -0
- package/dist/server/openapi/handler.test.js.map +1 -0
- package/dist/server/openapi/html.d.ts +16 -0
- package/dist/server/openapi/html.d.ts.map +1 -0
- package/dist/server/openapi/html.js +75 -0
- package/dist/server/openapi/html.js.map +1 -0
- package/dist/server/openapi/pages.d.ts +33 -0
- package/dist/server/openapi/pages.d.ts.map +1 -0
- package/dist/server/openapi/pages.js +130 -0
- package/dist/server/openapi/pages.js.map +1 -0
- package/dist/server/openapi/pages.test.d.ts +2 -0
- package/dist/server/openapi/pages.test.d.ts.map +1 -0
- package/dist/server/openapi/pages.test.js +94 -0
- package/dist/server/openapi/pages.test.js.map +1 -0
- package/dist/server/openapi/state.d.ts +42 -0
- package/dist/server/openapi/state.d.ts.map +1 -0
- package/dist/server/openapi/state.js +101 -0
- package/dist/server/openapi/state.js.map +1 -0
- package/dist/styles/index.css +16 -0
- package/dist/styles/markdown.css +9 -7
- package/dist/styles/openapi-playground.css +80 -0
- package/dist/styles/openapi.css +660 -0
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +1 -0
- package/dist/vite.js.map +1 -1
- package/dist/waku/internal/middleware/md-router.d.ts +0 -4
- package/dist/waku/internal/middleware/md-router.d.ts.map +1 -1
- package/dist/waku/internal/middleware/md-router.js +3 -48
- package/dist/waku/internal/middleware/md-router.js.map +1 -1
- package/dist/waku/internal/patches/adapters/vercel-build-enhancer.js +1 -1
- package/dist/waku/internal/patches/adapters/vercel-build-enhancer.js.map +1 -1
- package/dist/waku/internal/patches/router.d.ts.map +1 -1
- package/dist/waku/internal/patches/router.js +114 -1
- package/dist/waku/internal/patches/router.js.map +1 -1
- package/package.json +5 -1
- package/src/config.ts +1 -0
- package/src/globals.d.ts +16 -0
- package/src/index.ts +1 -0
- package/src/internal/config.ts +40 -1
- package/src/internal/llms.ts +51 -1
- package/src/internal/markdown-negotiation.test.ts +42 -0
- package/src/internal/markdown-negotiation.ts +95 -0
- package/src/internal/markdown.ts +5 -0
- package/src/internal/openapi/anchors.ts +44 -0
- package/src/internal/openapi/app.ts +127 -0
- package/src/internal/openapi/index.ts +24 -0
- package/src/internal/openapi/markdown.test.ts +115 -0
- package/src/internal/openapi/markdown.ts +275 -0
- package/src/internal/openapi/openapi.ts +212 -0
- package/src/internal/openapi/openrpc.test.ts +239 -0
- package/src/internal/openapi/openrpc.ts +295 -0
- package/src/internal/openapi/parser.test.ts +203 -0
- package/src/internal/openapi/parser.ts +613 -0
- package/src/internal/openapi/registry.test.ts +89 -0
- package/src/internal/openapi/registry.ts +89 -0
- package/src/internal/openapi/sample.test.ts +283 -0
- package/src/internal/openapi/sample.ts +562 -0
- package/src/internal/openapi/search.test.ts +62 -0
- package/src/internal/openapi/search.ts +108 -0
- package/src/internal/openapi/sidebar.test.ts +131 -0
- package/src/internal/openapi/sidebar.ts +94 -0
- package/src/internal/openapi/union.test.ts +51 -0
- package/src/internal/openapi/union.ts +74 -0
- package/src/internal/search.ts +20 -0
- package/src/internal/test/virtual-config.stub.ts +14 -0
- package/src/internal/vite-plugins.ts +106 -11
- package/src/openapi-app/App.tsx +64 -0
- package/src/openapi-app/blocks.tsx +33 -0
- package/src/openapi-app/client.tsx +25 -0
- package/src/openapi-app/links.test.ts +84 -0
- package/src/openapi-app/links.ts +66 -0
- package/src/openapi-app/payload.ts +20 -0
- package/src/openapi-app/virtual/config.ts +7 -0
- package/src/openapi-app/virtual/group-icons.ts +2 -0
- package/src/openapi-app/virtual/langs.ts +6 -0
- package/src/openapi-app/virtual/openapi.ts +10 -0
- package/src/openapi-app/virtual/search-index.ts +21 -0
- package/src/openapi-app/virtual/slots.ts +4 -0
- package/src/openapi-app/virtual/user-styles.ts +2 -0
- package/src/openapi-app/waku.tsx +154 -0
- package/src/react/Badge.tsx +2 -3
- package/src/react/Layout.client.tsx +17 -4
- package/src/react/OpenApi.tsx +5 -0
- package/src/react/internal/CodeToHtml.client.tsx +283 -22
- package/src/react/internal/Sidebar.tsx +126 -22
- package/src/react/internal/openapi/CodeSample.client.tsx +294 -0
- package/src/react/internal/openapi/CollapsibleChildren.client.tsx +41 -0
- package/src/react/internal/openapi/Disclosure.client.tsx +67 -0
- package/src/react/internal/openapi/Endpoints.tsx +58 -0
- package/src/react/internal/openapi/EndpointsView.tsx +76 -0
- package/src/react/internal/openapi/EnumValues.client.tsx +49 -0
- package/src/react/internal/openapi/HeadingAnchor.tsx +28 -0
- package/src/react/internal/openapi/OpenApiPage.tsx +173 -0
- package/src/react/internal/openapi/Operation.test.tsx +101 -0
- package/src/react/internal/openapi/Operation.tsx +335 -0
- package/src/react/internal/openapi/Playground.client.tsx +234 -0
- package/src/react/internal/openapi/PropertyExample.client.tsx +55 -0
- package/src/react/internal/openapi/Reference.tsx +120 -0
- package/src/react/internal/openapi/Schema.tsx +467 -0
- package/src/react/internal/openapi/SchemaUnion.client.tsx +123 -0
- package/src/react/internal/openapi/anchor-navigation.client.ts +154 -0
- package/src/react/internal/openapi/auth.ts +69 -0
- package/src/react/useLayout.ts +4 -0
- package/src/server/handlers.ts +31 -6
- package/src/server/og-assets.ts +14 -0
- package/src/server/openapi/assets.generated.ts +1093 -0
- package/src/server/openapi/assets.ts +57 -0
- package/src/server/openapi/handler.test.ts +244 -0
- package/src/server/openapi/handler.ts +277 -0
- package/src/server/openapi/html.ts +84 -0
- package/src/server/openapi/pages.test.ts +111 -0
- package/src/server/openapi/pages.ts +153 -0
- package/src/server/openapi/state.ts +136 -0
- package/src/styles/index.css +16 -0
- package/src/styles/markdown.css +9 -7
- package/src/styles/openapi-playground.css +80 -0
- package/src/styles/openapi.css +660 -0
- package/src/vite.ts +1 -0
- package/src/waku/internal/middleware/md-router.ts +8 -52
- package/src/waku/internal/patches/adapters/vercel-build-enhancer.ts +1 -1
- package/src/waku/internal/patches/router.ts +131 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A schema/parameter example value. When the sibling code sample renders a line
|
|
3
|
+
* for the same property — a response example line, or a request sample path/
|
|
4
|
+
* query parameter — the value becomes clickable and reveals (switching response
|
|
5
|
+
* tabs / expanding collapsed query params if needed) and flashes that right-hand
|
|
6
|
+
* line: the reverse of clicking a sample line to jump to this row.
|
|
7
|
+
*/
|
|
8
|
+
export declare function PropertyExample(props: PropertyExample.Props): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare namespace PropertyExample {
|
|
10
|
+
type Props = {
|
|
11
|
+
/** The property/parameter row's anchor id, matched against sample lines. */
|
|
12
|
+
id?: string | undefined;
|
|
13
|
+
/** Example value display string. */
|
|
14
|
+
value: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=PropertyExample.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyExample.client.d.ts","sourceRoot":"","sources":["../../../../src/react/internal/openapi/PropertyExample.client.tsx"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,2CA6B3D;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,KAAK,KAAK,GAAG;QACX,4EAA4E;QAC5E,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvB,oCAAoC;QACpC,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useSyncExternalStore } from 'react';
|
|
4
|
+
import { hasSampleLine, revealSampleLine, subscribeSampleAnchors, } from './anchor-navigation.client.js';
|
|
5
|
+
/**
|
|
6
|
+
* A schema/parameter example value. When the sibling code sample renders a line
|
|
7
|
+
* for the same property — a response example line, or a request sample path/
|
|
8
|
+
* query parameter — the value becomes clickable and reveals (switching response
|
|
9
|
+
* tabs / expanding collapsed query params if needed) and flashes that right-hand
|
|
10
|
+
* line: the reverse of clicking a sample line to jump to this row.
|
|
11
|
+
*/
|
|
12
|
+
export function PropertyExample(props) {
|
|
13
|
+
const { id, value } = props;
|
|
14
|
+
// Re-evaluate once the sibling `CodeSample` mounts and registers its anchors,
|
|
15
|
+
// so the affordance appears even though both mount around the same time.
|
|
16
|
+
const clickable = useSyncExternalStore(subscribeSampleAnchors, () => Boolean(id) && hasSampleLine(id), () => false);
|
|
17
|
+
return (_jsxs("div", { "data-v-openapi-property-example": true, "data-clickable": clickable || undefined, children: [_jsx("span", { "data-v-openapi-property-example-label": true, children: "Example" }), clickable ? (_jsx("button", { type: "button", "data-v-openapi-property-example-value": true, onClick: () => {
|
|
18
|
+
void revealSampleLine(id);
|
|
19
|
+
}, children: value })) : (_jsx("span", { "data-v-openapi-property-example-value": true, children: value }))] }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=PropertyExample.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyExample.client.js","sourceRoot":"","sources":["../../../../src/react/internal/openapi/PropertyExample.client.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,+BAA+B,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAA4B;IAC1D,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAE3B,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,SAAS,GAAG,oBAAoB,CACpC,sBAAsB,EACtB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,EAAY,CAAC,EAChD,GAAG,EAAE,CAAC,KAAK,CACZ,CAAA;IAED,OAAO,CACL,0EAAqD,SAAS,IAAI,SAAS,aACzE,oFAA0D,EACzD,SAAS,CAAC,CAAC,CAAC,CACX,iBACE,IAAI,EAAC,QAAQ,iDAEb,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,gBAAgB,CAAC,EAAY,CAAC,CAAA;gBACrC,CAAC,YAEA,KAAK,GACC,CACV,CAAC,CAAC,CAAC,CACF,wEAA6C,KAAK,GAAQ,CAC3D,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { Ir, IrGroup } from '../../../internal/openapi/parser.js';
|
|
3
|
+
/**
|
|
4
|
+
* Prop-driven OpenAPI renderers shared by the Vite/RSC site integration
|
|
5
|
+
* ({@link file://./OpenApiPage.tsx `OpenApiPage`}) and the standalone client
|
|
6
|
+
* app ({@link file://../../../standalone/openapi/App.client.tsx}).
|
|
7
|
+
*
|
|
8
|
+
* These render only the section content (the `data-v-openapi` tree). They have
|
|
9
|
+
* no dependency on the Waku `Layout`, the `virtual:vocs/openapi` module, or any
|
|
10
|
+
* router — the caller supplies the parsed {@link Ir} and wraps the tree in the
|
|
11
|
+
* appropriate layout/playground provider.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Renders trusted markdown from the spec (info/category descriptions) with the
|
|
15
|
+
* same typography as MDX content.
|
|
16
|
+
*/
|
|
17
|
+
export declare function Prose(props: {
|
|
18
|
+
markdown: string;
|
|
19
|
+
attr?: string;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* Overview / landing page body. Renders the consumer override (or the
|
|
23
|
+
* auto-generated spec header). The domain/endpoint list is opt-in via
|
|
24
|
+
* `<OpenApi.Endpoints />`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function ReferenceOverview(props: ReferenceOverview.Props): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare namespace ReferenceOverview {
|
|
28
|
+
type Props = {
|
|
29
|
+
ir: Ir;
|
|
30
|
+
/** Consumer override rendered in place of the auto-generated header. */
|
|
31
|
+
intro?: ReactNode | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Domain/endpoint list rendered below the auto-generated header (ignored
|
|
34
|
+
* when `intro` is set — overrides control their own content). The caller
|
|
35
|
+
* supplies the framework-specific list; the standalone handler passes it so
|
|
36
|
+
* its Introduction lists every endpoint by default.
|
|
37
|
+
*/
|
|
38
|
+
endpoints?: ReactNode | undefined;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Single category page body: category header (or consumer override) followed by
|
|
43
|
+
* its operations. Does not mount the playground provider — the caller wraps this
|
|
44
|
+
* with `PlaygroundProvider` so a single Scalar modal is shared across the page.
|
|
45
|
+
*/
|
|
46
|
+
export declare function ReferenceGroup(props: ReferenceGroup.Props): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare namespace ReferenceGroup {
|
|
48
|
+
type Props = {
|
|
49
|
+
ir: Ir;
|
|
50
|
+
group: IrGroup;
|
|
51
|
+
/** Consumer override rendered in place of the auto-generated category header. */
|
|
52
|
+
intro?: ReactNode | undefined;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=Reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../../../src/react/internal/openapi/Reference.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAItE;;;;;;;;;GASG;AAEH;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAS/D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,2CAqB/D;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,KAAK,KAAK,GAAG;QACX,EAAE,EAAE,EAAE,CAAA;QACN,wEAAwE;QACxE,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;QAC7B;;;;;WAKG;QACH,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;KAClC,CAAA;CACF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,2CA8BzD;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,KAAK,GAAG;QACX,EAAE,EAAE,EAAE,CAAA;QACN,KAAK,EAAE,OAAO,CAAA;QACd,iFAAiF;QACjF,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;KAC9B,CAAA;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import * as Markdown from '../../../internal/markdown.js';
|
|
3
|
+
import { HeadingAnchor } from './HeadingAnchor.js';
|
|
4
|
+
import { Operation } from './Operation.js';
|
|
5
|
+
/**
|
|
6
|
+
* Prop-driven OpenAPI renderers shared by the Vite/RSC site integration
|
|
7
|
+
* ({@link file://./OpenApiPage.tsx `OpenApiPage`}) and the standalone client
|
|
8
|
+
* app ({@link file://../../../standalone/openapi/App.client.tsx}).
|
|
9
|
+
*
|
|
10
|
+
* These render only the section content (the `data-v-openapi` tree). They have
|
|
11
|
+
* no dependency on the Waku `Layout`, the `virtual:vocs/openapi` module, or any
|
|
12
|
+
* router — the caller supplies the parsed {@link Ir} and wraps the tree in the
|
|
13
|
+
* appropriate layout/playground provider.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Renders trusted markdown from the spec (info/category descriptions) with the
|
|
17
|
+
* same typography as MDX content.
|
|
18
|
+
*/
|
|
19
|
+
export function Prose(props) {
|
|
20
|
+
return (_jsx("div", { "data-v-openapi-description": props.attr === 'description' ? '' : undefined, "data-v-content": true,
|
|
21
|
+
// biome-ignore lint/security/noDangerouslySetInnerHtml: server-rendered trusted spec content
|
|
22
|
+
dangerouslySetInnerHTML: { __html: Markdown.toHtml(props.markdown) } }));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Overview / landing page body. Renders the consumer override (or the
|
|
26
|
+
* auto-generated spec header). The domain/endpoint list is opt-in via
|
|
27
|
+
* `<OpenApi.Endpoints />`.
|
|
28
|
+
*/
|
|
29
|
+
export function ReferenceOverview(props) {
|
|
30
|
+
const { ir, intro, endpoints } = props;
|
|
31
|
+
return (_jsx("div", { "data-v-openapi": true, "data-v-openapi-landing": true, children: intro ? (_jsx("div", { "data-v-openapi-intro": true, "data-v-content": true, children: intro })) : (_jsxs(_Fragment, { children: [_jsxs("header", { "data-v-openapi-header": true, children: [_jsx("h1", { "data-v": true, "data-v-openapi-info-title": true, children: ir.info.title }), ir.info.description && _jsx(Prose, { markdown: ir.info.description, attr: "description" })] }), endpoints] })) }));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Single category page body: category header (or consumer override) followed by
|
|
35
|
+
* its operations. Does not mount the playground provider — the caller wraps this
|
|
36
|
+
* with `PlaygroundProvider` so a single Scalar modal is shared across the page.
|
|
37
|
+
*/
|
|
38
|
+
export function ReferenceGroup(props) {
|
|
39
|
+
const { ir, group, intro } = props;
|
|
40
|
+
return (_jsxs("div", { "data-v-openapi": true, children: [intro ? (_jsx("div", { "data-v-openapi-intro": true, "data-v-content": true, id: group.id, children: intro })) : (_jsxs("header", { "data-v-openapi-header": true, children: [_jsxs("h1", { "data-v": true, "data-v-openapi-h1": true, id: group.id, children: [group.name, _jsx(HeadingAnchor, { id: group.id })] }), group.description && _jsx(Prose, { markdown: group.description, attr: "description" })] })), group.operations.map((operation, index) => (_jsx(Operation, { operation: operation, server: ir.servers[0]?.url, headingLevel: 2, separator: index > 0 }, operation.id)))] }));
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=Reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../../../src/react/internal/openapi/Reference.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;;;;;GASG;AAEH;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAA0C;IAC9D,OAAO,CACL,4CAC8B,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAEzE,6FAA6F;QAC7F,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,GACpE,CACH,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA8B;IAC9D,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IACtC,OAAO,CACL,gFACG,KAAK,CAAC,CAAC,CAAC,CACP,8EACG,KAAK,GACF,CACP,CAAC,CAAC,CAAC,CACF,8BACE,4DACE,0EACG,EAAE,CAAC,IAAI,CAAC,KAAK,GACX,EACJ,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,KAAC,KAAK,IAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAC,aAAa,GAAG,IAC5E,EACR,SAAS,IACT,CACJ,GACG,CACP,CAAA;AACH,CAAC;AAiBD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAA2B;IACxD,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAClC,OAAO,CACL,kDACG,KAAK,CAAC,CAAC,CAAC,CAGP,oEAAyC,EAAE,EAAE,KAAK,CAAC,EAAE,YAClD,KAAK,GACF,CACP,CAAC,CAAC,CAAC,CACF,4DACE,yDAA6B,EAAE,EAAE,KAAK,CAAC,EAAE,aACtC,KAAK,CAAC,IAAI,EACX,KAAC,aAAa,IAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAI,IAC5B,EACJ,KAAK,CAAC,WAAW,IAAI,KAAC,KAAK,IAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAC,aAAa,GAAG,IACxE,CACV,EACA,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1C,KAAC,SAAS,IAER,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAC1B,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,KAAK,GAAG,CAAC,IAJf,SAAS,CAAC,EAAE,CAKjB,CACH,CAAC,IACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type SchemaPath } from '../../../internal/openapi/anchors.js';
|
|
2
|
+
type SchemaObject = Record<string, unknown>;
|
|
3
|
+
/**
|
|
4
|
+
* Renders a human-readable type label for a JSON Schema (post-dereference).
|
|
5
|
+
*/
|
|
6
|
+
export declare function typeLabel(schema: SchemaObject | undefined): string;
|
|
7
|
+
/**
|
|
8
|
+
* Detects a `oneOf`/`anyOf` union (unwrapping array item schemas) worth showing
|
|
9
|
+
* as a {@link SchemaUnion} variant picker, returning its variants. Trivial
|
|
10
|
+
* `null` members are dropped, and plain scalar unions with no extra info (e.g.
|
|
11
|
+
* `string | number`) keep their inline type label instead — the picker is only
|
|
12
|
+
* used when at least one variant carries something to show (object properties,
|
|
13
|
+
* an enum, a `const`, a format, or a title).
|
|
14
|
+
*/
|
|
15
|
+
export declare function unionVariants(schema: SchemaObject | undefined): unionVariants.Result | undefined;
|
|
16
|
+
export declare namespace unionVariants {
|
|
17
|
+
type Result = {
|
|
18
|
+
kind: string;
|
|
19
|
+
variants: {
|
|
20
|
+
name: string;
|
|
21
|
+
schema: SchemaObject;
|
|
22
|
+
}[];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Extracts a schema's enum literals as display strings (strings unquoted, other
|
|
27
|
+
* values JSON-stringified), unwrapping array item schemas. These are rendered
|
|
28
|
+
* as a separate "values" list rather than a wrapping inline union, matching the
|
|
29
|
+
* Scalar/Stripe reference UI.
|
|
30
|
+
*/
|
|
31
|
+
export declare function enumValues(schema: SchemaObject | undefined): string[] | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Builds the constraint metadata shown beneath a property/parameter type as
|
|
34
|
+
* `{ label, value }` pairs (e.g. `min 0`, `max 100`, `default 10`), in the
|
|
35
|
+
* style of Scalar/Stripe references. The type itself is rendered separately
|
|
36
|
+
* (see {@link typeLabel}).
|
|
37
|
+
*/
|
|
38
|
+
export declare function schemaMeta(schema: SchemaObject | undefined): schemaMeta.Entry[];
|
|
39
|
+
export declare namespace schemaMeta {
|
|
40
|
+
type Entry = {
|
|
41
|
+
label: string;
|
|
42
|
+
value: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extracts a representative example value from a schema (`example` or the first
|
|
47
|
+
* entry of `examples`), returned as a display string.
|
|
48
|
+
*/
|
|
49
|
+
export declare function schemaExample(schema: SchemaObject | undefined): string | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* A single parameter/property row: name + inline metadata, an optional
|
|
52
|
+
* markdown description, and optional nested content (child schema). Rows are
|
|
53
|
+
* separated by a top border rather than wrapped in individual cards.
|
|
54
|
+
*/
|
|
55
|
+
export declare function PropertyRow(props: PropertyRow.Props): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
export declare namespace PropertyRow {
|
|
57
|
+
type Props = {
|
|
58
|
+
/** Anchor id; when set, renders a copy-link heading anchor beside the name. */
|
|
59
|
+
id?: string | undefined;
|
|
60
|
+
name: string;
|
|
61
|
+
/** Muted ancestor path shown before the name (e.g. `error.details[].`). */
|
|
62
|
+
prefix?: string | undefined;
|
|
63
|
+
/** Human-readable type label rendered as an inline code block. */
|
|
64
|
+
type?: string | undefined;
|
|
65
|
+
/** Enum literals rendered as a vertical "values" list below the type. */
|
|
66
|
+
values?: string[] | undefined;
|
|
67
|
+
/** Constraint metadata (min/max/const/default) rendered below the type. */
|
|
68
|
+
meta: schemaMeta.Entry[];
|
|
69
|
+
/** Example value rendered below the description. */
|
|
70
|
+
example?: string | undefined;
|
|
71
|
+
required?: boolean | undefined;
|
|
72
|
+
deprecated?: boolean | undefined;
|
|
73
|
+
description?: string | undefined;
|
|
74
|
+
children?: React.ReactNode;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Recursively renders a schema's properties as a list of rows. Nested
|
|
79
|
+
* object/array properties are indented beneath their parent.
|
|
80
|
+
*/
|
|
81
|
+
export declare function Schema(props: Schema.Props): import("react/jsx-runtime").JSX.Element | null;
|
|
82
|
+
export declare namespace Schema {
|
|
83
|
+
type Props = {
|
|
84
|
+
schema: Record<string, unknown> | undefined;
|
|
85
|
+
depth?: number | undefined;
|
|
86
|
+
/** Muted ancestor path prepended to each child row's name. */
|
|
87
|
+
prefix?: string | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* When set, each property row gets an element id of
|
|
90
|
+
* `schemaPropertyId(idBase, path)` so response example lines can link to it.
|
|
91
|
+
*/
|
|
92
|
+
idBase?: string | undefined;
|
|
93
|
+
/** Schema path (chain of property names) leading to this schema. */
|
|
94
|
+
path?: SchemaPath | undefined;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Renders a union's variant picker: each panel shows the variant's description
|
|
99
|
+
* followed by its schema. Panels are server-rendered; the client picker mounts
|
|
100
|
+
* only the selected one.
|
|
101
|
+
*/
|
|
102
|
+
export declare function UnionView(props: {
|
|
103
|
+
union: unionVariants.Result;
|
|
104
|
+
depth: number;
|
|
105
|
+
prefix: string;
|
|
106
|
+
idBase?: string | undefined;
|
|
107
|
+
path?: SchemaPath | undefined;
|
|
108
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../src/react/internal/openapi/Schema.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment } from 'react';
|
|
3
|
+
import * as Markdown from '../../../internal/markdown.js';
|
|
4
|
+
import { schemaPropertyId } from '../../../internal/openapi/anchors.js';
|
|
5
|
+
import { unionVariantSchemas, unionVariantSegment, unwrapSingleVariant, } from '../../../internal/openapi/union.js';
|
|
6
|
+
import { Badge } from '../../Badge.js';
|
|
7
|
+
import { CollapsibleChildren } from './CollapsibleChildren.client.js';
|
|
8
|
+
import { EnumValues } from './EnumValues.client.js';
|
|
9
|
+
import { HeadingAnchor } from './HeadingAnchor.js';
|
|
10
|
+
import { PropertyExample } from './PropertyExample.client.js';
|
|
11
|
+
import { SchemaUnion } from './SchemaUnion.client.js';
|
|
12
|
+
const maxDepth = 6;
|
|
13
|
+
/**
|
|
14
|
+
* Renders a human-readable type label for a JSON Schema (post-dereference).
|
|
15
|
+
*/
|
|
16
|
+
export function typeLabel(schema) {
|
|
17
|
+
if (!schema)
|
|
18
|
+
return 'unknown';
|
|
19
|
+
if (Array.isArray(schema['type']))
|
|
20
|
+
return schema['type'].join(' | ');
|
|
21
|
+
const composite = (schema['oneOf'] ?? schema['anyOf']);
|
|
22
|
+
if (composite)
|
|
23
|
+
return composite.map(typeLabel).join(' | ');
|
|
24
|
+
if (Array.isArray(schema['allOf']))
|
|
25
|
+
return schema['allOf'].map(typeLabel).join(' & ');
|
|
26
|
+
if (schema['type'] === 'array')
|
|
27
|
+
return `${typeLabel(schema['items'])}[]`;
|
|
28
|
+
if (typeof schema['type'] === 'string') {
|
|
29
|
+
const format = schema['format'] ? ` <${schema['format']}>` : '';
|
|
30
|
+
return `${schema['type']}${format}`;
|
|
31
|
+
}
|
|
32
|
+
// Enum without an explicit `type`: the literal values are rendered separately
|
|
33
|
+
// as a values list (see {@link enumValues}), so just label it `enum`.
|
|
34
|
+
if (Array.isArray(schema['enum']))
|
|
35
|
+
return 'enum';
|
|
36
|
+
if (schema['properties'])
|
|
37
|
+
return 'object';
|
|
38
|
+
return 'unknown';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Detects a `oneOf`/`anyOf` union (unwrapping array item schemas) worth showing
|
|
42
|
+
* as a {@link SchemaUnion} variant picker, returning its variants. Trivial
|
|
43
|
+
* `null` members are dropped, and plain scalar unions with no extra info (e.g.
|
|
44
|
+
* `string | number`) keep their inline type label instead — the picker is only
|
|
45
|
+
* used when at least one variant carries something to show (object properties,
|
|
46
|
+
* an enum, a `const`, a format, or a title).
|
|
47
|
+
*/
|
|
48
|
+
export function unionVariants(schema) {
|
|
49
|
+
const variants = unionVariantSchemas(schema);
|
|
50
|
+
if (!variants)
|
|
51
|
+
return undefined;
|
|
52
|
+
const target = schema?.['type'] === 'array' && schema['items'] ? schema['items'] : schema;
|
|
53
|
+
const oneOf = target?.['oneOf'];
|
|
54
|
+
return {
|
|
55
|
+
kind: oneOf ? 'One of' : 'Any of',
|
|
56
|
+
variants: variants.map((member, index) => ({
|
|
57
|
+
name: variantName(member, index),
|
|
58
|
+
schema: member,
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** A human-readable label for a single union variant. */
|
|
63
|
+
function variantName(member, index) {
|
|
64
|
+
if (typeof member['title'] === 'string' && member['title'])
|
|
65
|
+
return member['title'];
|
|
66
|
+
if ('const' in member)
|
|
67
|
+
return stringify(member['const']);
|
|
68
|
+
const values = enumValues(member);
|
|
69
|
+
if (values && values.length > 0) {
|
|
70
|
+
const joined = values.join(' | ');
|
|
71
|
+
if (joined.length <= 32)
|
|
72
|
+
return joined;
|
|
73
|
+
return 'enum';
|
|
74
|
+
}
|
|
75
|
+
return typeLabel(member) || `Option ${index + 1}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Extracts a schema's enum literals as display strings (strings unquoted, other
|
|
79
|
+
* values JSON-stringified), unwrapping array item schemas. These are rendered
|
|
80
|
+
* as a separate "values" list rather than a wrapping inline union, matching the
|
|
81
|
+
* Scalar/Stripe reference UI.
|
|
82
|
+
*/
|
|
83
|
+
export function enumValues(schema) {
|
|
84
|
+
if (!schema)
|
|
85
|
+
return undefined;
|
|
86
|
+
const target = schema['type'] === 'array' && schema['items'] ? schema['items'] : schema;
|
|
87
|
+
const values = target['enum'];
|
|
88
|
+
if (!Array.isArray(values) || values.length === 0)
|
|
89
|
+
return undefined;
|
|
90
|
+
return values.map((value) => (typeof value === 'string' ? value : JSON.stringify(value)));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Builds the constraint metadata shown beneath a property/parameter type as
|
|
94
|
+
* `{ label, value }` pairs (e.g. `min 0`, `max 100`, `default 10`), in the
|
|
95
|
+
* style of Scalar/Stripe references. The type itself is rendered separately
|
|
96
|
+
* (see {@link typeLabel}).
|
|
97
|
+
*/
|
|
98
|
+
export function schemaMeta(schema) {
|
|
99
|
+
if (!schema)
|
|
100
|
+
return [];
|
|
101
|
+
const parts = [];
|
|
102
|
+
const num = (key) => typeof schema[key] === 'number' ? schema[key] : undefined;
|
|
103
|
+
const min = num('minimum') ?? num('minLength') ?? num('minItems');
|
|
104
|
+
const max = num('maximum') ?? num('maxLength') ?? num('maxItems');
|
|
105
|
+
if (min !== undefined)
|
|
106
|
+
parts.push({ label: 'min', value: String(min) });
|
|
107
|
+
if (max !== undefined)
|
|
108
|
+
parts.push({ label: 'max', value: String(max) });
|
|
109
|
+
if ('const' in schema)
|
|
110
|
+
parts.push({ label: 'const', value: stringify(schema['const']) });
|
|
111
|
+
if ('default' in schema)
|
|
112
|
+
parts.push({ label: 'default', value: stringify(schema['default']) });
|
|
113
|
+
return parts;
|
|
114
|
+
}
|
|
115
|
+
function stringify(value) {
|
|
116
|
+
if (typeof value === 'string')
|
|
117
|
+
return value;
|
|
118
|
+
return JSON.stringify(value);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Extracts a representative example value from a schema (`example` or the first
|
|
122
|
+
* entry of `examples`), returned as a display string.
|
|
123
|
+
*/
|
|
124
|
+
export function schemaExample(schema) {
|
|
125
|
+
if (!schema)
|
|
126
|
+
return undefined;
|
|
127
|
+
if ('example' in schema)
|
|
128
|
+
return stringify(schema['example']);
|
|
129
|
+
const examples = schema['examples'];
|
|
130
|
+
if (Array.isArray(examples) && examples.length > 0)
|
|
131
|
+
return stringify(examples[0]);
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* A single parameter/property row: name + inline metadata, an optional
|
|
136
|
+
* markdown description, and optional nested content (child schema). Rows are
|
|
137
|
+
* separated by a top border rather than wrapped in individual cards.
|
|
138
|
+
*/
|
|
139
|
+
export function PropertyRow(props) {
|
|
140
|
+
const { id, name, prefix, type, values, meta, example, required, deprecated, description, children, } = props;
|
|
141
|
+
const inline = [
|
|
142
|
+
...(type
|
|
143
|
+
? [
|
|
144
|
+
{
|
|
145
|
+
key: 'type',
|
|
146
|
+
node: (_jsx("code", { "data-v": true, "data-v-openapi-type": true, children: type })),
|
|
147
|
+
},
|
|
148
|
+
]
|
|
149
|
+
: []),
|
|
150
|
+
...meta.map((item) => ({
|
|
151
|
+
key: item.label,
|
|
152
|
+
node: (_jsxs("span", { children: [_jsxs("span", { "data-v-openapi-meta-label": true, children: [item.label, " "] }), _jsx("span", { "data-v-openapi-meta-value": true, children: item.value })] })),
|
|
153
|
+
})),
|
|
154
|
+
];
|
|
155
|
+
return (_jsxs("div", { "data-v-openapi-property": true, id: id, children: [_jsxs("div", { "data-v-openapi-property-head": true, children: [_jsxs("span", { "data-v-openapi-property-name": true, children: [prefix && _jsx("span", { "data-v-openapi-property-prefix": true, children: prefix }), _jsx("span", { "data-v-openapi-property-label": true, children: name })] }), required && (_jsx(Badge, { variant: "warning", "data-v-openapi-property-required": true, children: "Required" })), deprecated && _jsx(Badge, { variant: "note", children: "Deprecated" }), id && _jsx(HeadingAnchor, { id: id })] }), inline.length > 0 && (_jsx("div", { "data-v-openapi-property-meta": true, children: inline.map((item, index) => (_jsxs(Fragment, { children: [index > 0 && _jsx("span", { "data-v-openapi-meta-sep": true, children: "\u00B7" }), item.node] }, item.key))) })), description && (_jsx("div", { "data-v-openapi-property-description": true, "data-v-content": true,
|
|
156
|
+
// biome-ignore lint/security/noDangerouslySetInnerHtml: server-rendered trusted spec content
|
|
157
|
+
dangerouslySetInnerHTML: { __html: Markdown.toHtml(description) } })), values && values.length > 0 && _jsx(EnumValues, { values: values }), example !== undefined && _jsx(PropertyExample, { id: id, value: example }), children] }));
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Recursively renders a schema's properties as a list of rows. Nested
|
|
161
|
+
* object/array properties are indented beneath their parent.
|
|
162
|
+
*/
|
|
163
|
+
export function Schema(props) {
|
|
164
|
+
const { schema: rawSchema, depth = 0, prefix = '', idBase, path = [] } = props;
|
|
165
|
+
if (!rawSchema || depth > maxDepth)
|
|
166
|
+
return null;
|
|
167
|
+
// Unwrap a nullable/optional single-variant union (e.g. `oneOf: [null, X]`) to
|
|
168
|
+
// its sole member so X's type and properties render instead of nothing.
|
|
169
|
+
const schema = unwrapSingleVariant(rawSchema) ?? rawSchema;
|
|
170
|
+
// Render oneOf/anyOf unions as a variant picker rather than a type string.
|
|
171
|
+
const union = unionVariants(schema);
|
|
172
|
+
if (union)
|
|
173
|
+
return _jsx(UnionView, { union: union, depth: depth, prefix: prefix, idBase: idBase, path: path });
|
|
174
|
+
// Unwrap arrays to show the item schema's properties (path is unchanged: array
|
|
175
|
+
// items share the array property's anchor path).
|
|
176
|
+
if (schema['type'] === 'array' && schema['items'])
|
|
177
|
+
return (_jsx(Schema, { schema: schema['items'], depth: depth, prefix: prefix, idBase: idBase, path: path }));
|
|
178
|
+
// Merge allOf members for display.
|
|
179
|
+
const allOf = schema['allOf'];
|
|
180
|
+
const properties = (schema['properties'] ??
|
|
181
|
+
allOf?.reduce((acc, member) => {
|
|
182
|
+
Object.assign(acc, member['properties'] ?? {});
|
|
183
|
+
return acc;
|
|
184
|
+
}, {}));
|
|
185
|
+
if (!properties || Object.keys(properties).length === 0)
|
|
186
|
+
return null;
|
|
187
|
+
const required = new Set(schema['required'] ?? []);
|
|
188
|
+
return (_jsx("div", { "data-v-openapi-schema": true, children: Object.entries(properties).map(([name, rawProperty]) => {
|
|
189
|
+
// Unwrap a nullable single-variant union so the member's type label and
|
|
190
|
+
// nested properties surface (e.g. an optional object's children).
|
|
191
|
+
const property = unwrapSingleVariant(rawProperty) ?? rawProperty;
|
|
192
|
+
const childPrefix = `${prefix}${name}${property['type'] === 'array' ? '[]' : ''}.`;
|
|
193
|
+
const childPath = [...path, name];
|
|
194
|
+
const id = idBase ? schemaPropertyId(idBase, childPath) : undefined;
|
|
195
|
+
const propertyUnion = unionVariants(property);
|
|
196
|
+
return (_jsx(PropertyRow, { id: id, name: name, prefix: prefix || undefined, type: propertyUnion ? undefined : typeLabel(property), values: propertyUnion ? undefined : enumValues(property), meta: propertyUnion ? [] : schemaMeta(property), example: propertyUnion ? undefined : schemaExample(property), required: required.has(name), deprecated: property['deprecated'] === true, description: typeof property['description'] === 'string'
|
|
197
|
+
? property['description']
|
|
198
|
+
: undefined, children: propertyUnion
|
|
199
|
+
? depth < maxDepth && (_jsx(UnionView, { union: propertyUnion, depth: depth + 1, prefix: childPrefix, idBase: idBase, path: childPath }))
|
|
200
|
+
: depth < maxDepth &&
|
|
201
|
+
hasChildren(property) && (_jsx(CollapsibleChildren, { children: _jsx("div", { "data-v-openapi-children": true, children: _jsx(Schema, { schema: property, depth: depth + 1, prefix: childPrefix, idBase: idBase, path: childPath }) }) })) }, name));
|
|
202
|
+
}) }));
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Renders a union's variant picker: each panel shows the variant's description
|
|
206
|
+
* followed by its schema. Panels are server-rendered; the client picker mounts
|
|
207
|
+
* only the selected one.
|
|
208
|
+
*/
|
|
209
|
+
export function UnionView(props) {
|
|
210
|
+
const { union, depth, prefix, idBase, path = [] } = props;
|
|
211
|
+
return (_jsx(SchemaUnion, { kind: union.kind, names: union.variants.map((variant) => variant.name), panels: union.variants.map((variant, index) => (_jsx(VariantPanel, { schema: variant.schema, depth: depth, prefix: prefix, idBase: idBase, path: [...path, unionVariantSegment(index)] }, variant.name))) }));
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Renders the body of a single union variant: its description, plus either the
|
|
215
|
+
* nested object schema (for object-like variants) or an inline type/meta line
|
|
216
|
+
* and enum values (for scalar variants).
|
|
217
|
+
*/
|
|
218
|
+
function VariantPanel(props) {
|
|
219
|
+
const { schema, depth, prefix, idBase, path = [] } = props;
|
|
220
|
+
const description = schema['description'];
|
|
221
|
+
const items = (schema['type'] === 'array' ? schema['items'] : undefined);
|
|
222
|
+
const objectish = Boolean(schema['properties'] || schema['allOf'] || items?.['properties'] || items?.['allOf']);
|
|
223
|
+
const meta = schemaMeta(schema);
|
|
224
|
+
const values = enumValues(schema);
|
|
225
|
+
return (_jsxs("div", { "data-v-openapi-variant": true, children: [!objectish && (_jsxs("div", { "data-v-openapi-property-meta": true, children: [_jsx("code", { "data-v": true, "data-v-openapi-type": true, children: typeLabel(schema) }), meta.map((item) => (_jsxs(Fragment, { children: [_jsx("span", { "data-v-openapi-meta-sep": true, children: "\u00B7" }), _jsxs("span", { children: [_jsxs("span", { "data-v-openapi-meta-label": true, children: [item.label, " "] }), _jsx("span", { "data-v-openapi-meta-value": true, children: item.value })] })] }, item.label)))] })), typeof description === 'string' && (_jsx("div", { "data-v-openapi-property-description": true, "data-v-content": true,
|
|
226
|
+
// biome-ignore lint/security/noDangerouslySetInnerHtml: server-rendered trusted spec content
|
|
227
|
+
dangerouslySetInnerHTML: { __html: Markdown.toHtml(description) } })), !objectish && values && values.length > 0 && _jsx(EnumValues, { values: values }), objectish && (_jsx(Schema, { schema: schema, depth: depth, prefix: prefix, idBase: idBase, path: path }))] }));
|
|
228
|
+
}
|
|
229
|
+
/** Whether a schema exposes nested properties worth rendering as child rows. */
|
|
230
|
+
function hasChildren(schema) {
|
|
231
|
+
if (schema['properties'])
|
|
232
|
+
return true;
|
|
233
|
+
if (schema['allOf'])
|
|
234
|
+
return true;
|
|
235
|
+
if (schema['type'] === 'array' && schema['items'])
|
|
236
|
+
return hasChildren(schema['items']);
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=Schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../src/react/internal/openapi/Schema.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders a `oneOf`/`anyOf` schema union as a variant picker (in the style of
|
|
3
|
+
* Scalar's "Any of …" selector) instead of a long `a | b | c` type string.
|
|
4
|
+
* The dropdown switches which variant's schema is shown below it.
|
|
5
|
+
*
|
|
6
|
+
* All variant panels are kept mounted (only the selected one is visible) so a
|
|
7
|
+
* property inside an unselected variant is still present in the DOM. Each panel
|
|
8
|
+
* registers itself with the navigation registry so {@link revealAnchor} can
|
|
9
|
+
* select the variant containing a target before scrolling to it — letting a
|
|
10
|
+
* response example line expand the union as deep as needed.
|
|
11
|
+
*
|
|
12
|
+
* Styling lives in `openapi.css` keyed on the `data-v-openapi-union*` attributes.
|
|
13
|
+
*/
|
|
14
|
+
export declare function SchemaUnion(props: SchemaUnion.Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare namespace SchemaUnion {
|
|
16
|
+
type Props = {
|
|
17
|
+
/** Leading label, e.g. `Any of` or `One of`. */
|
|
18
|
+
kind: string;
|
|
19
|
+
/** Display name for each variant. */
|
|
20
|
+
names: string[];
|
|
21
|
+
/** Server-rendered schema panel for each variant. */
|
|
22
|
+
panels: React.ReactNode[];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=SchemaUnion.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaUnion.client.d.ts","sourceRoot":"","sources":["../../../../src/react/internal/openapi/SchemaUnion.client.tsx"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,2CAgEnD;AA8BD,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,KAAK,GAAG;QACX,gDAAgD;QAChD,IAAI,EAAE,MAAM,CAAA;QACZ,qCAAqC;QACrC,KAAK,EAAE,MAAM,EAAE,CAAA;QACf,qDAAqD;QACrD,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;KAC1B,CAAA;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import LucideChevronDown from '~icons/lucide/chevron-down';
|
|
5
|
+
import { registerDisclosure } from './anchor-navigation.client.js';
|
|
6
|
+
/**
|
|
7
|
+
* Renders a `oneOf`/`anyOf` schema union as a variant picker (in the style of
|
|
8
|
+
* Scalar's "Any of …" selector) instead of a long `a | b | c` type string.
|
|
9
|
+
* The dropdown switches which variant's schema is shown below it.
|
|
10
|
+
*
|
|
11
|
+
* All variant panels are kept mounted (only the selected one is visible) so a
|
|
12
|
+
* property inside an unselected variant is still present in the DOM. Each panel
|
|
13
|
+
* registers itself with the navigation registry so {@link revealAnchor} can
|
|
14
|
+
* select the variant containing a target before scrolling to it — letting a
|
|
15
|
+
* response example line expand the union as deep as needed.
|
|
16
|
+
*
|
|
17
|
+
* Styling lives in `openapi.css` keyed on the `data-v-openapi-union*` attributes.
|
|
18
|
+
*/
|
|
19
|
+
export function SchemaUnion(props) {
|
|
20
|
+
const { kind, names, panels } = props;
|
|
21
|
+
const [open, setOpen] = useState(false);
|
|
22
|
+
const [selected, setSelected] = useState(null);
|
|
23
|
+
return (_jsxs("div", { "data-v-openapi-union": true, children: [_jsxs("div", { "data-v-openapi-union-head": true, children: [_jsxs("button", { type: "button", onClick: () => setOpen((value) => !value), "data-v-openapi-union-trigger": true, children: [_jsx("span", { "data-v-openapi-union-kind": true, children: kind }), selected === null ? (_jsx("span", { "data-v-openapi-union-value": true, children: "Select a value" })) : (_jsx("span", { "data-v-openapi-union-value": true, children: names[selected] })), _jsx(LucideChevronDown, { "data-v-openapi-union-chevron": true })] }), open && (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "aria-label": "Close", tabIndex: -1, "data-v-openapi-dropdown-backdrop": true, onClick: () => setOpen(false) }), _jsx("ul", { "data-v-openapi-union-menu": true, children: names.map((name, index) => (_jsx("li", { children: _jsxs("button", { type: "button", onClick: () => {
|
|
24
|
+
setSelected(index);
|
|
25
|
+
setOpen(false);
|
|
26
|
+
}, "data-v-openapi-union-option": true, "data-selected": index === selected || undefined, children: [_jsx("span", { "data-v-openapi-union-radio": true, children: index === selected && _jsx("span", { "data-v-openapi-union-radio-dot": true }) }), _jsx("span", { "data-v-openapi-union-option-label": true, children: name })] }) }, name))) })] }))] }), panels.map((panel, index) => (_jsx(VariantPanelSlot
|
|
27
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: panels are static and never reordered
|
|
28
|
+
, { visible: index === selected, onReveal: () => setSelected(index), children: panel }, index)))] }));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Wraps a single variant panel: always mounted (so its contents are navigable)
|
|
32
|
+
* but only laid out when selected. Registers the panel so navigating to an
|
|
33
|
+
* anchor inside it selects this variant.
|
|
34
|
+
*/
|
|
35
|
+
function VariantPanelSlot(props) {
|
|
36
|
+
const { visible, onReveal, children } = props;
|
|
37
|
+
const ref = useRef(null);
|
|
38
|
+
const onRevealRef = useRef(onReveal);
|
|
39
|
+
onRevealRef.current = onReveal;
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const panel = ref.current;
|
|
42
|
+
if (!panel)
|
|
43
|
+
return;
|
|
44
|
+
return registerDisclosure(panel, () => onRevealRef.current());
|
|
45
|
+
}, []);
|
|
46
|
+
return (_jsx("div", { ref: ref, hidden: !visible, "data-v-openapi-union-panel": true, "data-visible": visible || undefined, children: children }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=SchemaUnion.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaUnion.client.js","sourceRoot":"","sources":["../../../../src/react/internal/openapi/SchemaUnion.client.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,KAAwB;IAClD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC7D,OAAO,CACL,wDACE,6DACE,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,mDAGzC,4DAAiC,IAAI,GAAQ,EAC5C,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CACnB,gFAAsD,CACvD,CAAC,CAAC,CAAC,CACF,6DAAkC,KAAK,CAAC,QAAQ,CAAC,GAAQ,CAC1D,EACD,KAAC,iBAAiB,2CAAgC,IAC3C,EACR,IAAI,IAAI,CACP,8BACE,iBACE,IAAI,EAAC,QAAQ,gBACF,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,4CAEZ,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAC7B,EACF,0DACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,uBACE,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;4CACZ,WAAW,CAAC,KAAK,CAAC,CAAA;4CAClB,OAAO,CAAC,KAAK,CAAC,CAAA;wCAChB,CAAC,wDAEc,KAAK,KAAK,QAAQ,IAAI,SAAS,aAE9C,6DACG,KAAK,KAAK,QAAQ,IAAI,wDAAuC,GACzD,EACP,oEAAyC,IAAI,GAAQ,IAC9C,IAdF,IAAI,CAeR,CACN,CAAC,GACC,IACJ,CACJ,IACG,EACL,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,gBAAgB;YACf,sFAAsF;gBAEtF,OAAO,EAAE,KAAK,KAAK,QAAQ,EAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,YAEjC,KAAK,IAJD,KAAK,CAKO,CACpB,CAAC,IACE,CACP,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAIzB;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IACpC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAA;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAA;QACzB,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,OAAO,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,sDAA2C,OAAO,IAAI,SAAS,YAC3F,QAAQ,GACL,CACP,CAAA;AACH,CAAC"}
|