@parallelworks/api-docs 0.1.4
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/components/ApiOperation.d.ts +9 -0
- package/dist/components/ApiOperation.d.ts.map +1 -0
- package/dist/components/ApiOperation.js +12 -0
- package/dist/components/ApiOperation.js.map +1 -0
- package/dist/components/ApiOperationCard.d.ts +9 -0
- package/dist/components/ApiOperationCard.d.ts.map +1 -0
- package/dist/components/ApiOperationCard.js +14 -0
- package/dist/components/ApiOperationCard.js.map +1 -0
- package/dist/components/ApiParameters.d.ts +8 -0
- package/dist/components/ApiParameters.d.ts.map +1 -0
- package/dist/components/ApiParameters.js +39 -0
- package/dist/components/ApiParameters.js.map +1 -0
- package/dist/components/ApiRequestBody.d.ts +10 -0
- package/dist/components/ApiRequestBody.d.ts.map +1 -0
- package/dist/components/ApiRequestBody.js +17 -0
- package/dist/components/ApiRequestBody.js.map +1 -0
- package/dist/components/ApiResponse.d.ts +11 -0
- package/dist/components/ApiResponse.d.ts.map +1 -0
- package/dist/components/ApiResponse.js +64 -0
- package/dist/components/ApiResponse.js.map +1 -0
- package/dist/components/ApiSidebar.d.ts +13 -0
- package/dist/components/ApiSidebar.d.ts.map +1 -0
- package/dist/components/ApiSidebar.js +34 -0
- package/dist/components/ApiSidebar.js.map +1 -0
- package/dist/components/Badge.d.ts +9 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +12 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/ChevronIcon.d.ts +6 -0
- package/dist/components/ChevronIcon.d.ts.map +1 -0
- package/dist/components/ChevronIcon.js +6 -0
- package/dist/components/ChevronIcon.js.map +1 -0
- package/dist/components/MethodBadge.d.ts +7 -0
- package/dist/components/MethodBadge.d.ts.map +1 -0
- package/dist/components/MethodBadge.js +8 -0
- package/dist/components/MethodBadge.js.map +1 -0
- package/dist/components/SchemaViewer.d.ts +18 -0
- package/dist/components/SchemaViewer.d.ts.map +1 -0
- package/dist/components/SchemaViewer.js +148 -0
- package/dist/components/SchemaViewer.js.map +1 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -0
- package/dist/cx.d.ts +3 -0
- package/dist/cx.d.ts.map +1 -0
- package/dist/cx.js +3 -0
- package/dist/cx.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown.d.ts +2 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +100 -0
- package/dist/markdown.js.map +1 -0
- package/dist/openapi.d.ts +15 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +259 -0
- package/dist/openapi.js.map +1 -0
- package/dist/types.d.ts +150 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { APIEndpoint } from '../types';
|
|
2
|
+
interface ApiOperationProps {
|
|
3
|
+
endpoint: APIEndpoint;
|
|
4
|
+
showDescription?: boolean;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function ApiOperation({ endpoint, showDescription, className, }: ApiOperationProps): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ApiOperation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiOperation.d.ts","sourceRoot":"","sources":["../../src/components/ApiOperation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAM3C,UAAU,iBAAiB;IACzB,QAAQ,EAAE,WAAW,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,eAAsB,EACtB,SAAS,GACV,EAAE,iBAAiB,+BAkCnB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
import { markdownToHtml } from '../markdown';
|
|
4
|
+
import { Badge } from './Badge';
|
|
5
|
+
import { MethodBadge } from './MethodBadge';
|
|
6
|
+
export function ApiOperation({ endpoint, showDescription = true, className, }) {
|
|
7
|
+
const { method, path, operation } = endpoint;
|
|
8
|
+
return (_jsxs("div", { className: cx('space-y-4', className), children: [_jsxs("div", { className: 'flex items-center gap-3', children: [_jsx(MethodBadge, { method: method }), _jsx("code", { className: 'font-mono text-sm text-foreground break-all', children: path }), operation.deprecated && (_jsx(Badge, { variant: 'warning', className: 'text-xs', children: "Deprecated" }))] }), operation.summary && (_jsx("h2", { className: 'text-xl font-semibold text-foreground', children: operation.summary })), showDescription && operation.description && (_jsx("div", { className: 'text-sm prose prose-sm dark:prose-invert max-w-none prose-p:text-muted-foreground prose-strong:text-foreground prose-a:text-primary prose-li:text-muted-foreground prose-h3:text-foreground prose-h4:text-foreground', dangerouslySetInnerHTML: {
|
|
9
|
+
__html: markdownToHtml(operation.description),
|
|
10
|
+
} }))] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ApiOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiOperation.js","sourceRoot":"","sources":["../../src/components/ApiOperation.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAQ3C,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,eAAe,GAAG,IAAI,EACtB,SAAS,GACS;IAClB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAA;IAE5C,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,aAExC,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,EAC/B,eAAM,SAAS,EAAC,6CAA6C,YAC1D,IAAI,GACA,EACN,SAAS,CAAC,UAAU,IAAI,CACvB,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,2BAEpC,CACT,IACG,EAEL,SAAS,CAAC,OAAO,IAAI,CACpB,aAAI,SAAS,EAAC,uCAAuC,YAClD,SAAS,CAAC,OAAO,GACf,CACN,EAEA,eAAe,IAAI,SAAS,CAAC,WAAW,IAAI,CAC3C,cACE,SAAS,EAAC,sNAAsN,EAChO,uBAAuB,EAAE;oBACvB,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC;iBAC9C,GACD,CACH,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { APIEndpoint } from '../types';
|
|
2
|
+
interface ApiOperationCardProps {
|
|
3
|
+
endpoint: APIEndpoint;
|
|
4
|
+
onClick?: () => void;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function ApiOperationCard({ endpoint, onClick, className, }: ApiOperationCardProps): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ApiOperationCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiOperationCard.d.ts","sourceRoot":"","sources":["../../src/components/ApiOperationCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAK3C,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE,qBAAqB,+BA2CvB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
import { Badge } from './Badge';
|
|
4
|
+
import { MethodBadge } from './MethodBadge';
|
|
5
|
+
export function ApiOperationCard({ endpoint, onClick, className, }) {
|
|
6
|
+
const { method, path, operation } = endpoint;
|
|
7
|
+
const content = (_jsxs("div", { className: 'flex items-start gap-3', children: [_jsx(MethodBadge, { method: method, className: 'mt-0.5 shrink-0' }), _jsxs("div", { className: 'min-w-0 flex-1', children: [_jsx("code", { className: 'font-mono text-sm text-foreground break-all', children: path }), operation.summary && (_jsx("p", { className: 'mt-1 text-sm text-muted-foreground line-clamp-2', children: operation.summary }))] }), operation.deprecated && (_jsx(Badge, { variant: 'warning', className: 'text-xs shrink-0', children: "Deprecated" }))] }));
|
|
8
|
+
const baseClasses = cx('block w-full rounded-lg border border-border bg-card p-4 transition-all', 'hover:border-primary/50 hover:shadow-md', className);
|
|
9
|
+
if (onClick) {
|
|
10
|
+
return (_jsx("button", { type: 'button', onClick: onClick, className: cx(baseClasses, 'text-left cursor-pointer'), children: content }));
|
|
11
|
+
}
|
|
12
|
+
return _jsx("div", { className: baseClasses, children: content });
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ApiOperationCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiOperationCard.js","sourceRoot":"","sources":["../../src/components/ApiOperationCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAQ3C,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,SAAS,GACa;IACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAA;IAE5C,MAAM,OAAO,GAAG,CACd,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,iBAAiB,GAAG,EAC3D,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAM,SAAS,EAAC,6CAA6C,YAC1D,IAAI,GACA,EACN,SAAS,CAAC,OAAO,IAAI,CACpB,YAAG,SAAS,EAAC,iDAAiD,YAC3D,SAAS,CAAC,OAAO,GAChB,CACL,IACG,EACL,SAAS,CAAC,UAAU,IAAI,CACvB,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,kBAAkB,2BAE7C,CACT,IACG,CACP,CAAA;IAED,MAAM,WAAW,GAAG,EAAE,CACpB,yEAAyE,EACzE,yCAAyC,EACzC,SAAS,CACV,CAAA;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,0BAA0B,CAAC,YAErD,OAAO,GACD,CACV,CAAA;IACH,CAAC;IAED,OAAO,cAAK,SAAS,EAAE,WAAW,YAAG,OAAO,GAAO,CAAA;AACrD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OpenAPIParameter } from '../types';
|
|
2
|
+
interface ApiParametersProps {
|
|
3
|
+
parameters: OpenAPIParameter[];
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function ApiParameters({ parameters, className }: ApiParametersProps): import("react").JSX.Element | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ApiParameters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiParameters.d.ts","sourceRoot":"","sources":["../../src/components/ApiParameters.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAIhD,UAAU,kBAAkB;IAC1B,UAAU,EAAE,gBAAgB,EAAE,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,kBAAkB,sCA0B1E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
import { Badge } from './Badge';
|
|
4
|
+
export function ApiParameters({ parameters, className }) {
|
|
5
|
+
if (!parameters || parameters.length === 0) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const pathParams = parameters.filter(p => p.in === 'path');
|
|
9
|
+
const queryParams = parameters.filter(p => p.in === 'query');
|
|
10
|
+
const headerParams = parameters.filter(p => p.in === 'header');
|
|
11
|
+
const cookieParams = parameters.filter(p => p.in === 'cookie');
|
|
12
|
+
return (_jsxs("div", { className: cx('space-y-6', className), children: [pathParams.length > 0 && (_jsx(ParameterGroup, { title: 'Path Parameters', parameters: pathParams })), queryParams.length > 0 && (_jsx(ParameterGroup, { title: 'Query Parameters', parameters: queryParams })), headerParams.length > 0 && (_jsx(ParameterGroup, { title: 'Header Parameters', parameters: headerParams })), cookieParams.length > 0 && (_jsx(ParameterGroup, { title: 'Cookie Parameters', parameters: cookieParams }))] }));
|
|
13
|
+
}
|
|
14
|
+
function ParameterGroup({ title, parameters, }) {
|
|
15
|
+
return (_jsxs("div", { children: [_jsx("h4", { className: 'text-sm font-semibold text-foreground mb-3', children: title }), _jsx("div", { className: 'rounded-lg border border-border overflow-hidden divide-y divide-border', children: parameters.map(param => (_jsx(ParameterRow, { parameter: param }, `${param.in}-${param.name}`))) })] }));
|
|
16
|
+
}
|
|
17
|
+
function ParameterRow({ parameter }) {
|
|
18
|
+
const { name, description, required, deprecated, schema } = parameter;
|
|
19
|
+
const type = getParameterType(schema);
|
|
20
|
+
const format = schema?.format;
|
|
21
|
+
const enumValues = schema?.enum;
|
|
22
|
+
const defaultValue = schema?.default;
|
|
23
|
+
const example = parameter.example ?? schema?.example;
|
|
24
|
+
return (_jsxs("div", { className: 'bg-card/50 px-4 py-3', children: [_jsxs("div", { className: 'flex flex-wrap items-center gap-2 mb-1', children: [_jsx("code", { className: 'font-mono text-sm font-semibold text-foreground', children: name }), required && (_jsx(Badge, { variant: 'destructive', className: 'text-[10px] px-1.5 py-0', children: "required" })), deprecated && (_jsx(Badge, { variant: 'warning', className: 'text-[10px] px-1.5 py-0', children: "deprecated" })), _jsxs("span", { className: 'text-xs', children: [_jsx("span", { className: 'font-mono text-primary font-medium', children: type }), format && (_jsxs("span", { className: 'text-muted-foreground ml-1', children: ["(", format, ")"] }))] })] }), description && (_jsx("p", { className: 'text-sm text-muted-foreground leading-relaxed', children: description })), (enumValues || defaultValue !== undefined || example !== undefined) && (_jsxs("div", { className: 'flex flex-wrap gap-4 mt-2 text-xs', children: [enumValues && enumValues.length > 0 && (_jsxs("div", { children: [_jsx("span", { className: 'text-muted-foreground', children: "Enum: " }), _jsx("code", { className: 'font-mono text-foreground bg-muted px-1 py-0.5 rounded', children: enumValues.map(String).join(' | ') })] })), defaultValue !== undefined && (_jsxs("div", { children: [_jsx("span", { className: 'text-muted-foreground', children: "Default: " }), _jsx("code", { className: 'font-mono text-foreground bg-muted px-1 py-0.5 rounded', children: JSON.stringify(defaultValue) })] })), example !== undefined && (_jsxs("div", { children: [_jsx("span", { className: 'text-muted-foreground', children: "Example: " }), _jsx("code", { className: 'font-mono text-foreground bg-muted px-1 py-0.5 rounded', children: JSON.stringify(example) })] }))] }))] }));
|
|
25
|
+
}
|
|
26
|
+
function getParameterType(schema) {
|
|
27
|
+
if (!schema) {
|
|
28
|
+
return 'any';
|
|
29
|
+
}
|
|
30
|
+
if (Array.isArray(schema.type)) {
|
|
31
|
+
return schema.type.join(' | ');
|
|
32
|
+
}
|
|
33
|
+
if (schema.type === 'array' && schema.items) {
|
|
34
|
+
const itemType = getParameterType(schema.items);
|
|
35
|
+
return `${itemType}[]`;
|
|
36
|
+
}
|
|
37
|
+
return schema.type || 'any';
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ApiParameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiParameters.js","sourceRoot":"","sources":["../../src/components/ApiParameters.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OpenAPIRequestBody, OpenAPISpec } from '../types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
interface ApiRequestBodyProps {
|
|
4
|
+
requestBody: OpenAPIRequestBody;
|
|
5
|
+
spec?: OpenAPISpec | undefined;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function ApiRequestBody({ requestBody, spec, className, }: ApiRequestBodyProps): React.JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=ApiRequestBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiRequestBody.d.ts","sourceRoot":"","sources":["../../src/components/ApiRequestBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,UAAU,mBAAmB;IAC3B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,IAAI,EACJ,SAAS,GACV,EAAE,mBAAmB,qBA6DrB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
import { Badge } from './Badge';
|
|
4
|
+
import { SchemaViewer, SchemaViewerProvider } from './SchemaViewer';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
export function ApiRequestBody({ requestBody, spec, className, }) {
|
|
7
|
+
const { description, required, content } = requestBody;
|
|
8
|
+
const contentTypes = Object.keys(content);
|
|
9
|
+
const [activeContentType, setActiveContentType] = React.useState(contentTypes[0]);
|
|
10
|
+
const mediaType = content[activeContentType];
|
|
11
|
+
const schema = mediaType?.schema;
|
|
12
|
+
const schemaContent = schema && (_jsxs("div", { className: 'rounded-lg border border-border overflow-hidden shadow-sm', children: [_jsxs("div", { className: 'px-4 py-2.5 border-b border-border bg-muted/50 flex items-center justify-between', children: [_jsx("code", { className: 'text-xs font-medium text-muted-foreground', children: activeContentType }), required && (_jsx(Badge, { variant: 'destructive', className: 'text-[10px] px-1.5 py-0', children: "required" }))] }), _jsx("div", { className: 'p-4 bg-card/30', children: _jsx(SchemaViewer, { schema: schema, spec: spec }) })] }));
|
|
13
|
+
return (_jsxs("div", { className: cx('space-y-4', className), children: [contentTypes.length > 1 && (_jsx("div", { className: 'flex gap-1', children: contentTypes.map(ct => (_jsx("button", { type: 'button', onClick: () => setActiveContentType(ct), className: cx('px-3 py-1.5 text-xs font-medium rounded-md transition-colors border', activeContentType === ct
|
|
14
|
+
? 'bg-primary text-primary-foreground border-primary'
|
|
15
|
+
: 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'), children: ct }, ct))) })), description && (_jsx("p", { className: 'text-sm text-muted-foreground', children: description })), spec ? (_jsx(SchemaViewerProvider, { spec: spec, children: schemaContent })) : (schemaContent)] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ApiRequestBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiRequestBody.js","sourceRoot":"","sources":["../../src/components/ApiRequestBody.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,UAAU,cAAc,CAAC,EAC7B,WAAW,EACX,IAAI,EACJ,SAAS,GACW;IACpB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,CAAA;IAEtD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC9D,YAAY,CAAC,CAAC,CAAC,CAChB,CAAA;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAkB,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,CAAA;IAEhC,MAAM,aAAa,GAAG,MAAM,IAAI,CAC9B,eAAK,SAAS,EAAC,2DAA2D,aACxE,eAAK,SAAS,EAAC,kFAAkF,aAC/F,eAAM,SAAS,EAAC,2CAA2C,YACxD,iBAAiB,GACb,EACN,QAAQ,IAAI,CACX,KAAC,KAAK,IAAC,OAAO,EAAC,aAAa,EAAC,SAAS,EAAC,yBAAyB,yBAExD,CACT,IACG,EACN,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAI,GACxC,IACF,CACP,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,aACvC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,cAAK,SAAS,EAAC,YAAY,YACxB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CACtB,iBACE,IAAI,EAAC,QAAQ,EAEb,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,EACvC,SAAS,EAAE,EAAE,CACX,qEAAqE,EACrE,iBAAiB,KAAK,EAAE;wBACtB,CAAC,CAAC,mDAAmD;wBACrD,CAAC,CAAC,gEAAgE,CACrE,YAEA,EAAE,IATE,EAAE,CAUA,CACV,CAAC,GACE,CACP,EAEA,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,+BAA+B,YAAE,WAAW,GAAK,CAC/D,EAEA,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,YAAG,aAAa,GAAwB,CACzE,CAAC,CAAC,CAAC,CACF,aAAa,CACd,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OpenAPIResponse, OpenAPISpec } from '../types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
interface ApiResponseProps {
|
|
4
|
+
responses: Record<string, OpenAPIResponse>;
|
|
5
|
+
spec?: OpenAPISpec | undefined;
|
|
6
|
+
renderCode?: (code: string, language: string) => React.ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function ApiResponse({ responses, spec, renderCode, className, }: ApiResponseProps): React.JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ApiResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiResponse.d.ts","sourceRoot":"","sources":["../../src/components/ApiResponse.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI9E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC1C,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,IAAI,EACJ,UAAU,EACV,SAAS,GACV,EAAE,gBAAgB,qBAsFlB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { generateExampleFromSchema } from '../openapi';
|
|
3
|
+
import { cx } from '../cx';
|
|
4
|
+
import { SchemaViewer, SchemaViewerProvider } from './SchemaViewer';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
export function ApiResponse({ responses, spec, renderCode, className, }) {
|
|
7
|
+
const statusCodes = Object.keys(responses).sort((a, b) => {
|
|
8
|
+
const aNum = Number.parseInt(a, 10) || 999;
|
|
9
|
+
const bNum = Number.parseInt(b, 10) || 999;
|
|
10
|
+
return aNum - bNum;
|
|
11
|
+
});
|
|
12
|
+
const [selectedStatus, setSelectedStatus] = React.useState(statusCodes[0]);
|
|
13
|
+
const activeStatus = selectedStatus && responses[selectedStatus]
|
|
14
|
+
? selectedStatus
|
|
15
|
+
: statusCodes[0];
|
|
16
|
+
const response = responses[activeStatus];
|
|
17
|
+
return (_jsxs("div", { className: cx('space-y-4', className), children: [_jsx("div", { className: 'flex flex-wrap gap-2', children: statusCodes.map(code => {
|
|
18
|
+
const isSuccess = code.startsWith('2');
|
|
19
|
+
const isError = code.startsWith('4') || code.startsWith('5');
|
|
20
|
+
return (_jsx("button", { type: 'button', onClick: () => setSelectedStatus(code), className: cx('px-3.5 py-1.5 text-sm font-semibold rounded-lg transition-colors border', activeStatus === code
|
|
21
|
+
? isSuccess
|
|
22
|
+
? 'bg-emerald-100 text-emerald-800 border-emerald-300 dark:bg-emerald-900/40 dark:text-emerald-300 dark:border-emerald-700'
|
|
23
|
+
: isError
|
|
24
|
+
? 'bg-red-100 text-red-800 border-red-300 dark:bg-red-900/40 dark:text-red-300 dark:border-red-700'
|
|
25
|
+
: 'bg-primary text-primary-foreground border-primary'
|
|
26
|
+
: 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'), children: code }, code));
|
|
27
|
+
}) }), response && (_jsxs("div", { className: 'rounded-lg border border-border overflow-hidden shadow-sm', children: [_jsx("div", { className: 'px-4 py-2.5 border-b border-border bg-muted/50', children: _jsx("p", { className: 'text-sm font-medium text-foreground', children: response.description }) }), response.content && Object.keys(response.content).length > 0 && (_jsx(ResponseContent, { content: response.content, spec: spec, renderCode: renderCode })), response.headers && Object.keys(response.headers).length > 0 && (_jsxs("div", { className: 'p-4 border-t border-border', children: [_jsx("h5", { className: 'text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2', children: "Headers" }), _jsx("div", { className: 'space-y-2', children: Object.entries(response.headers).map(([name, header]) => (_jsxs("div", { className: 'flex items-start gap-2', children: [_jsx("code", { className: 'font-mono text-sm font-semibold text-foreground', children: name }), header.description && (_jsx("span", { className: 'text-sm text-muted-foreground', children: header.description }))] }, name))) })] }))] }))] }));
|
|
28
|
+
}
|
|
29
|
+
function ResponseContent({ content, spec, renderCode, }) {
|
|
30
|
+
const contentTypes = Object.keys(content);
|
|
31
|
+
const [activeContentType, setActiveContentType] = React.useState(contentTypes[0]);
|
|
32
|
+
const mediaType = content[activeContentType];
|
|
33
|
+
const schema = mediaType?.schema;
|
|
34
|
+
const explicitExample = mediaType?.example ?? schema?.example;
|
|
35
|
+
const examples = mediaType?.examples;
|
|
36
|
+
const generatedExample = React.useMemo(() => {
|
|
37
|
+
if (explicitExample !== undefined || examples) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
if (!schema) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return generateExampleFromSchema(schema, spec);
|
|
44
|
+
}, [explicitExample, examples, schema, spec]);
|
|
45
|
+
const example = explicitExample ?? generatedExample;
|
|
46
|
+
const schemaContent = schema && _jsx(SchemaViewer, { schema: schema, spec: spec });
|
|
47
|
+
return (_jsxs("div", { className: 'p-4 bg-card/30', children: [contentTypes.length > 1 && (_jsx("div", { className: 'flex gap-1 mb-4', children: contentTypes.map(ct => (_jsx("button", { type: 'button', onClick: () => setActiveContentType(ct), className: cx('px-3 py-1.5 text-xs font-medium rounded-md transition-colors border', activeContentType === ct
|
|
48
|
+
? 'bg-primary text-primary-foreground border-primary'
|
|
49
|
+
: 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'), children: ct }, ct))) })), spec ? (_jsx(SchemaViewerProvider, { spec: spec, children: schemaContent })) : (schemaContent), (example || examples) && (_jsx(ExampleDisplay, { example: example, examples: examples, renderCode: renderCode }))] }));
|
|
50
|
+
}
|
|
51
|
+
function ExampleDisplay({ example, examples, renderCode, }) {
|
|
52
|
+
const [activeExample, setActiveExample] = React.useState(examples ? (Object.keys(examples)[0] ?? null) : null);
|
|
53
|
+
const displayValue = examples && activeExample ? examples[activeExample]?.value : example;
|
|
54
|
+
if (displayValue === undefined) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const jsonString = typeof displayValue === 'string'
|
|
58
|
+
? displayValue
|
|
59
|
+
: JSON.stringify(displayValue, null, 2);
|
|
60
|
+
return (_jsxs("div", { className: 'mt-4 pt-4 border-t border-border', children: [_jsxs("div", { className: 'flex items-center justify-between mb-2', children: [_jsx("h5", { className: 'text-xs font-semibold text-muted-foreground uppercase tracking-wide', children: "Example Response" }), examples && Object.keys(examples).length > 1 && (_jsx("div", { className: 'flex gap-1', children: Object.entries(examples).map(([name, ex]) => (_jsx("button", { type: 'button', onClick: () => setActiveExample(name), className: cx('px-2 py-1 text-xs rounded-md transition-colors', activeExample === name
|
|
61
|
+
? 'bg-primary text-primary-foreground'
|
|
62
|
+
: 'bg-muted text-muted-foreground hover:bg-muted/80'), title: ex.summary || ex.description, children: name }, name))) }))] }), examples && activeExample && examples[activeExample]?.summary && (_jsx("p", { className: 'text-xs text-muted-foreground mb-2', children: examples[activeExample].summary })), _jsx("pre", { className: 'rounded-lg border border-border bg-muted/40 p-4 overflow-x-auto text-sm shadow-inner', children: renderCode ? (renderCode(jsonString, 'json')) : (_jsx("code", { className: 'font-mono text-foreground text-[13px]', children: jsonString })) })] }));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=ApiResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiResponse.js","sourceRoot":"","sources":["../../src/components/ApiResponse.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { APITag } from '../types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
interface ApiSidebarProps {
|
|
4
|
+
tags: APITag[];
|
|
5
|
+
/** Current active path for highlighting (e.g. "clusters" or "clusters/get-clusters") */
|
|
6
|
+
activePath?: string;
|
|
7
|
+
/** Called when the user clicks a navigation item. Receives the path slug. */
|
|
8
|
+
onNavigate: (path: string) => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function ApiSidebar({ tags, activePath, onNavigate, className, }: ApiSidebarProps): React.JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ApiSidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiSidebar.d.ts","sourceRoot":"","sources":["../../src/components/ApiSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,UAAU,CAAA;AAInD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6EAA6E;IAC7E,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,UAAe,EACf,UAAU,EACV,SAAS,GACV,EAAE,eAAe,qBA8BjB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
import { ChevronIcon } from './ChevronIcon';
|
|
4
|
+
import { MethodBadge } from './MethodBadge';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
export function ApiSidebar({ tags, activePath = '', onNavigate, className, }) {
|
|
7
|
+
return (_jsx("aside", { className: cx('w-72 shrink-0 overflow-y-auto', className), children: _jsxs("nav", { className: 'space-y-3 pb-8', children: [_jsx("div", { children: _jsx("button", { type: 'button', onClick: () => onNavigate(''), className: cx('block w-full text-left px-3 py-1.5 rounded-lg text-sm font-medium transition-colors', activePath === ''
|
|
8
|
+
? 'bg-primary/10 text-primary'
|
|
9
|
+
: 'text-muted-foreground hover:text-foreground hover:bg-muted'), children: "Overview" }) }), tags.map(tag => (_jsx(TagSection, { tag: tag, activePath: activePath, onNavigate: onNavigate }, tag.slug)))] }) }));
|
|
10
|
+
}
|
|
11
|
+
function TagSection({ tag, activePath, onNavigate, }) {
|
|
12
|
+
const isOnTag = activePath === tag.slug;
|
|
13
|
+
const isActive = isOnTag || activePath.startsWith(`${tag.slug}/`);
|
|
14
|
+
const [expanded, setExpanded] = React.useState(isActive);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (isActive) {
|
|
17
|
+
setExpanded(true);
|
|
18
|
+
}
|
|
19
|
+
}, [isActive]);
|
|
20
|
+
return (_jsxs("div", { children: [_jsxs("div", { className: cx('flex w-full items-center justify-between px-3 py-1.5 rounded-lg text-sm font-medium transition-colors', isActive
|
|
21
|
+
? 'bg-primary/10 text-primary'
|
|
22
|
+
: 'text-foreground hover:bg-muted'), children: [_jsx("button", { type: 'button', onClick: () => {
|
|
23
|
+
setExpanded(true);
|
|
24
|
+
onNavigate(tag.slug);
|
|
25
|
+
}, className: 'flex-1 text-left', children: tag.name }), _jsx("button", { type: 'button', onClick: () => setExpanded(!expanded), className: 'p-1 -mr-1 rounded hover:bg-muted/50', "aria-label": expanded ? 'Collapse section' : 'Expand section', children: _jsx(ChevronIcon, { className: cx('h-4 w-4 text-muted-foreground transition-transform', expanded && 'rotate-90') }) })] }), expanded && (_jsx("div", { className: 'ml-3 mt-1 border-l border-border pl-3 space-y-0.5', children: tag.endpoints.map(endpoint => (_jsx(EndpointLink, { endpoint: endpoint, tagSlug: tag.slug, activePath: activePath, onNavigate: onNavigate }, endpoint.slug))) }))] }));
|
|
26
|
+
}
|
|
27
|
+
function EndpointLink({ endpoint, tagSlug, activePath, onNavigate, }) {
|
|
28
|
+
const path = `${tagSlug}/${endpoint.slug}`;
|
|
29
|
+
const isActive = activePath === path;
|
|
30
|
+
return (_jsxs("button", { type: 'button', onClick: () => onNavigate(path), className: cx('flex items-center gap-2 w-full text-left px-2 py-1 rounded-md text-xs transition-colors', isActive
|
|
31
|
+
? 'bg-muted text-foreground'
|
|
32
|
+
: 'text-muted-foreground hover:text-foreground hover:bg-muted/50'), children: [_jsx(MethodBadge, { method: endpoint.method, className: 'text-[10px] px-1.5 py-0' }), _jsx("span", { className: 'truncate font-mono', children: endpoint.operation.summary || endpoint.path.replace(/^\/api\//, '/') })] }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ApiSidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiSidebar.js","sourceRoot":"","sources":["../../src/components/ApiSidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
interface BadgeProps {
|
|
3
|
+
variant?: 'default' | 'secondary' | 'destructive' | 'warning';
|
|
4
|
+
className?: string;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function Badge({ variant, className, children, }: BadgeProps): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=Badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAA;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAWD,wBAAgB,KAAK,CAAC,EACpB,OAAmB,EACnB,SAAS,EACT,QAAQ,GACT,EAAE,UAAU,+BAYZ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
const variantClasses = {
|
|
4
|
+
default: 'border-transparent bg-primary text-primary-foreground',
|
|
5
|
+
secondary: 'border-transparent bg-muted text-muted-foreground',
|
|
6
|
+
destructive: 'border-transparent bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-100',
|
|
7
|
+
warning: 'border-transparent bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100',
|
|
8
|
+
};
|
|
9
|
+
export function Badge({ variant = 'default', className, children, }) {
|
|
10
|
+
return (_jsx("span", { className: cx('inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold', variantClasses[variant], className), children: children }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAS1B,MAAM,cAAc,GAA2B;IAC7C,OAAO,EAAE,uDAAuD;IAChE,SAAS,EAAE,mDAAmD;IAC9D,WAAW,EACT,8EAA8E;IAChF,OAAO,EACL,0FAA0F;CAC7F,CAAA;AAED,MAAM,UAAU,KAAK,CAAC,EACpB,OAAO,GAAG,SAAS,EACnB,SAAS,EACT,QAAQ,GACG;IACX,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,kFAAkF,EAClF,cAAc,CAAC,OAAO,CAAC,EACvB,SAAS,CACV,YAEA,QAAQ,GACJ,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChevronIcon.d.ts","sourceRoot":"","sources":["../../src/components/ChevronIcon.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,+BAkB1D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
export function ChevronIcon({ className }) {
|
|
4
|
+
return (_jsx("svg", { "aria-hidden": 'true', xmlns: 'http://www.w3.org/2000/svg', width: '24', height: '24', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '2', strokeLinecap: 'round', strokeLinejoin: 'round', className: cx('h-3 w-3', className), children: _jsx("path", { d: 'm9 18 6-6-6-6' }) }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=ChevronIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChevronIcon.js","sourceRoot":"","sources":["../../src/components/ChevronIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAM1B,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAoB;IACzD,OAAO,CACL,6BACc,MAAM,EAClB,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,YAEnC,eAAM,CAAC,EAAC,eAAe,GAAG,GACtB,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodBadge.d.ts","sourceRoot":"","sources":["../../src/components/MethodBadge.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,gBAAgB,+BAiBlE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from '../cx';
|
|
3
|
+
import { HTTP_METHOD_COLORS } from '../openapi';
|
|
4
|
+
export function MethodBadge({ method, className }) {
|
|
5
|
+
const colors = HTTP_METHOD_COLORS[method.toLowerCase()] || HTTP_METHOD_COLORS['get'];
|
|
6
|
+
return (_jsx("span", { className: cx('inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-bold uppercase tracking-wide', colors.bg, colors.text, colors.border, className), children: method }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=MethodBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodBadge.js","sourceRoot":"","sources":["../../src/components/MethodBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAO/C,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAoB;IACjE,MAAM,MAAM,GACV,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAEvE,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,MAAO,CAAC,EAAE,EACV,MAAO,CAAC,IAAI,EACZ,MAAO,CAAC,MAAM,EACd,SAAS,CACV,YAEA,MAAM,GACF,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { OpenAPISchema, OpenAPISpec } from '../types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
interface SchemaViewerProps {
|
|
4
|
+
schema: OpenAPISchema;
|
|
5
|
+
spec?: OpenAPISpec | undefined;
|
|
6
|
+
name?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
depth?: number;
|
|
9
|
+
className?: string;
|
|
10
|
+
visitedRefs?: Set<string>;
|
|
11
|
+
}
|
|
12
|
+
export declare function SchemaViewer({ schema, spec, name, required, depth, className, visitedRefs, }: SchemaViewerProps): React.JSX.Element;
|
|
13
|
+
export declare function SchemaViewerProvider({ spec, children, }: {
|
|
14
|
+
spec: OpenAPISpec;
|
|
15
|
+
children: React.ReactNode;
|
|
16
|
+
}): React.JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=SchemaViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaViewer.d.ts","sourceRoot":"","sources":["../../src/components/SchemaViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAKhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,UAAU,iBAAiB;IACzB,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,KAAS,EACT,SAAS,EACT,WAAuB,GACxB,EAAE,iBAAiB,qBAmXnB;AAoGD,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,qBAMA"}
|