@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.
Files changed (65) hide show
  1. package/dist/components/ApiOperation.d.ts +9 -0
  2. package/dist/components/ApiOperation.d.ts.map +1 -0
  3. package/dist/components/ApiOperation.js +12 -0
  4. package/dist/components/ApiOperation.js.map +1 -0
  5. package/dist/components/ApiOperationCard.d.ts +9 -0
  6. package/dist/components/ApiOperationCard.d.ts.map +1 -0
  7. package/dist/components/ApiOperationCard.js +14 -0
  8. package/dist/components/ApiOperationCard.js.map +1 -0
  9. package/dist/components/ApiParameters.d.ts +8 -0
  10. package/dist/components/ApiParameters.d.ts.map +1 -0
  11. package/dist/components/ApiParameters.js +39 -0
  12. package/dist/components/ApiParameters.js.map +1 -0
  13. package/dist/components/ApiRequestBody.d.ts +10 -0
  14. package/dist/components/ApiRequestBody.d.ts.map +1 -0
  15. package/dist/components/ApiRequestBody.js +17 -0
  16. package/dist/components/ApiRequestBody.js.map +1 -0
  17. package/dist/components/ApiResponse.d.ts +11 -0
  18. package/dist/components/ApiResponse.d.ts.map +1 -0
  19. package/dist/components/ApiResponse.js +64 -0
  20. package/dist/components/ApiResponse.js.map +1 -0
  21. package/dist/components/ApiSidebar.d.ts +13 -0
  22. package/dist/components/ApiSidebar.d.ts.map +1 -0
  23. package/dist/components/ApiSidebar.js +34 -0
  24. package/dist/components/ApiSidebar.js.map +1 -0
  25. package/dist/components/Badge.d.ts +9 -0
  26. package/dist/components/Badge.d.ts.map +1 -0
  27. package/dist/components/Badge.js +12 -0
  28. package/dist/components/Badge.js.map +1 -0
  29. package/dist/components/ChevronIcon.d.ts +6 -0
  30. package/dist/components/ChevronIcon.d.ts.map +1 -0
  31. package/dist/components/ChevronIcon.js +6 -0
  32. package/dist/components/ChevronIcon.js.map +1 -0
  33. package/dist/components/MethodBadge.d.ts +7 -0
  34. package/dist/components/MethodBadge.d.ts.map +1 -0
  35. package/dist/components/MethodBadge.js +8 -0
  36. package/dist/components/MethodBadge.js.map +1 -0
  37. package/dist/components/SchemaViewer.d.ts +18 -0
  38. package/dist/components/SchemaViewer.d.ts.map +1 -0
  39. package/dist/components/SchemaViewer.js +148 -0
  40. package/dist/components/SchemaViewer.js.map +1 -0
  41. package/dist/components/index.d.ts +10 -0
  42. package/dist/components/index.d.ts.map +1 -0
  43. package/dist/components/index.js +10 -0
  44. package/dist/components/index.js.map +1 -0
  45. package/dist/cx.d.ts +3 -0
  46. package/dist/cx.d.ts.map +1 -0
  47. package/dist/cx.js +3 -0
  48. package/dist/cx.js.map +1 -0
  49. package/dist/index.d.ts +4 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +5 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/markdown.d.ts +2 -0
  54. package/dist/markdown.d.ts.map +1 -0
  55. package/dist/markdown.js +100 -0
  56. package/dist/markdown.js.map +1 -0
  57. package/dist/openapi.d.ts +15 -0
  58. package/dist/openapi.d.ts.map +1 -0
  59. package/dist/openapi.js +259 -0
  60. package/dist/openapi.js.map +1 -0
  61. package/dist/types.d.ts +150 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +1 -0
  64. package/dist/types.js.map +1 -0
  65. 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,6 @@
1
+ interface ChevronIconProps {
2
+ className?: string;
3
+ }
4
+ export declare function ChevronIcon({ className }: ChevronIconProps): import("react").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=ChevronIcon.d.ts.map
@@ -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,7 @@
1
+ interface MethodBadgeProps {
2
+ method: string;
3
+ className?: string;
4
+ }
5
+ export declare function MethodBadge({ method, className }: MethodBadgeProps): import("react").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=MethodBadge.d.ts.map
@@ -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"}