@clarify-labs/renderer 0.10.3 → 0.11.1

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 (83) hide show
  1. package/output/{ClarifyShell-UsefuuLS.cjs → ClarifyShell-C2XnkFQ6.cjs} +119 -100
  2. package/output/ClarifyShell-C2XnkFQ6.cjs.map +1 -0
  3. package/output/{ClarifyShell-Cq5Af46F.js → ClarifyShell-CwRtof1h.js} +119 -100
  4. package/output/ClarifyShell-CwRtof1h.js.map +1 -0
  5. package/output/{MermaidViewer-Db7qsyVk.cjs → MermaidViewer-CTvMCE19.cjs} +2 -2
  6. package/output/{MermaidViewer-Db7qsyVk.cjs.map → MermaidViewer-CTvMCE19.cjs.map} +1 -1
  7. package/output/{MermaidViewer-Bc9H25yK.js → MermaidViewer-CwkiQ2gO.js} +2 -2
  8. package/output/{MermaidViewer-Bc9H25yK.js.map → MermaidViewer-CwkiQ2gO.js.map} +1 -1
  9. package/output/{OpenApiOperation-BZWeCbvy.js → OpenApiOperation-CFo6_otd.js} +1964 -292
  10. package/output/OpenApiOperation-CFo6_otd.js.map +1 -0
  11. package/output/{OpenApiOperation-DbZjxIuj.cjs → OpenApiOperation-D1WNrj5X.cjs} +1967 -289
  12. package/output/OpenApiOperation-D1WNrj5X.cjs.map +1 -0
  13. package/output/{PageActions-BQeEmXbT.js → PageActions-3eo05fb_.js} +60 -19
  14. package/output/PageActions-3eo05fb_.js.map +1 -0
  15. package/output/{PageActions-Dg1l9KB1.cjs → PageActions-Lp_NeIKr.cjs} +59 -18
  16. package/output/PageActions-Lp_NeIKr.cjs.map +1 -0
  17. package/output/{SearchDialog-B67VA0Ut.js → SearchDialog-BvCBIFqs.js} +3 -3
  18. package/output/{SearchDialog-B67VA0Ut.js.map → SearchDialog-BvCBIFqs.js.map} +1 -1
  19. package/output/{SearchDialog-DjKvqN7p.cjs → SearchDialog-CM9DrE2Y.cjs} +3 -3
  20. package/output/{SearchDialog-DjKvqN7p.cjs.map → SearchDialog-CM9DrE2Y.cjs.map} +1 -1
  21. package/output/app/PageFooter.d.ts +1 -1
  22. package/output/client.cjs +3 -3
  23. package/output/client.js +3 -3
  24. package/output/components/Tooltip.d.ts +1 -0
  25. package/output/core/i18n.d.ts +1 -1
  26. package/output/core/types.d.ts +37 -19
  27. package/output/{i18n-Bqth9d6Q.js → i18n-BxXpRSFX.js} +106 -2
  28. package/output/i18n-BxXpRSFX.js.map +1 -0
  29. package/output/{i18n-C-fReCj-.cjs → i18n-DsjZ51U1.cjs} +106 -2
  30. package/output/i18n-DsjZ51U1.cjs.map +1 -0
  31. package/output/index.cjs +26 -5
  32. package/output/index.cjs.map +1 -1
  33. package/output/index.d.ts +3 -3
  34. package/output/index.js +26 -6
  35. package/output/index.js.map +1 -1
  36. package/output/mdx/components.d.ts +2 -1
  37. package/output/openapi/components/EndpointMethodBadge.d.ts +6 -0
  38. package/output/openapi/components/EndpointSections.d.ts +2 -2
  39. package/output/openapi/components/ExamplePanels.d.ts +2 -2
  40. package/output/openapi/components/InlineListbox.d.ts +14 -0
  41. package/output/openapi/components/OpenApiAuthPanel.d.ts +12 -0
  42. package/output/openapi/components/OpenApiOperation.d.ts +1 -9
  43. package/output/openapi/components/OpenApiOperation.state.d.ts +4 -2
  44. package/output/openapi/components/OpenApiRequest.d.ts +18 -0
  45. package/output/openapi/components/OpenApiRequestBodyEditor.d.ts +14 -0
  46. package/output/openapi/components/OpenApiRequestFields.d.ts +25 -0
  47. package/output/openapi/components/OpenApiResponseViewer.d.ts +14 -0
  48. package/output/openapi/components/SendRequestButton.d.ts +9 -0
  49. package/output/openapi/components/helpers.d.ts +6 -1
  50. package/output/openapi/components/useOpenApiRequestState.d.ts +48 -0
  51. package/output/openapi/entry.d.ts +2 -0
  52. package/output/openapi/index.d.ts +2 -2
  53. package/output/openapi/lib/api-exchange-code.d.ts +8 -0
  54. package/output/openapi/lib/api-exchange.d.ts +30 -0
  55. package/output/openapi/lib/api-request.d.ts +25 -0
  56. package/output/openapi/lib/helpers.d.ts +8 -0
  57. package/output/openapi/lib/request-code.d.ts +2 -2
  58. package/output/openapi/lib/request-parameters.d.ts +5 -0
  59. package/output/openapi/store.d.ts +10 -0
  60. package/output/openapi/types.d.ts +6 -0
  61. package/output/preview.cjs +46 -40
  62. package/output/preview.cjs.map +1 -1
  63. package/output/preview.js +46 -40
  64. package/output/preview.js.map +1 -1
  65. package/output/{render-Dc9wxg_r.cjs → render-CKG4X-me.cjs} +2 -2
  66. package/output/{render-Dc9wxg_r.cjs.map → render-CKG4X-me.cjs.map} +1 -1
  67. package/output/{render-aS-w4fK4.js → render-vlp3hwW3.js} +2 -2
  68. package/output/{render-aS-w4fK4.js.map → render-vlp3hwW3.js.map} +1 -1
  69. package/output/renderer.css +630 -152
  70. package/output/server.cjs +2 -2
  71. package/output/server.js +2 -2
  72. package/output/theme/ThemeEditor.d.ts +8 -4
  73. package/output/theme/variables.d.ts +8 -4
  74. package/package.json +2 -1
  75. package/output/ClarifyShell-Cq5Af46F.js.map +0 -1
  76. package/output/ClarifyShell-UsefuuLS.cjs.map +0 -1
  77. package/output/OpenApiOperation-BZWeCbvy.js.map +0 -1
  78. package/output/OpenApiOperation-DbZjxIuj.cjs.map +0 -1
  79. package/output/PageActions-BQeEmXbT.js.map +0 -1
  80. package/output/PageActions-Dg1l9KB1.cjs.map +0 -1
  81. package/output/core/index.d.ts +0 -3
  82. package/output/i18n-Bqth9d6Q.js.map +0 -1
  83. package/output/i18n-C-fReCj-.cjs.map +0 -1
@@ -0,0 +1,48 @@
1
+ import { executeApiRequest, ApiResponseExchange } from '../lib/api-exchange';
2
+ import { RequestParameterIssue } from '../lib/request-parameters';
3
+ import { OpenAPIOperation, OpenAPIOperationSource, OpenAPISpec } from '../lib/utils';
4
+ import { OpenApiMediaType, OpenApiParameter } from '../types';
5
+ export declare function initialRequestBody(spec: OpenAPISpec, content?: OpenApiMediaType): string;
6
+ export declare function requestBodyForExample(spec: OpenAPISpec, content: OpenApiMediaType | undefined, exampleKey: string): string;
7
+ export declare function useOpenApiRequestTarget(spec: OpenAPISpec, path: string, operation: OpenAPIOperation, operationSource: OpenAPIOperationSource): {
8
+ servers: import('../types').OpenApiServer[];
9
+ selectedServer: import('../types').OpenApiServer;
10
+ selectedServerKey: string;
11
+ serverVariables: Record<string, string>;
12
+ setServerVariables: import('react').Dispatch<import('react').SetStateAction<Record<string, string>>>;
13
+ serverVariableEntries: [string, import('../types').OpenApiServerVariable][];
14
+ selectServer: (value: string) => void;
15
+ authOptions: import('./helpers').AuthOption[];
16
+ selectedAuthName: string;
17
+ setSelectedAuthName: import('react').Dispatch<import('react').SetStateAction<string>>;
18
+ selectedAuth: import('./helpers').AuthOption | undefined;
19
+ credentialScope: string;
20
+ credentials: Record<string, string>;
21
+ setCredential: (scope: string, name: string, value: string) => void;
22
+ clearCredential: (scope: string, name: string) => void;
23
+ requestContents: import('../types').MediaTypeEntry[];
24
+ mediaType: string;
25
+ selectedContent: import('../types').MediaTypeEntry;
26
+ body: string;
27
+ setBody: import('react').Dispatch<import('react').SetStateAction<string>>;
28
+ bodyFiles: Record<string, File>;
29
+ setBodyFile: (name: string, file?: File) => void;
30
+ applyBodyExample: (exampleKey: string) => void;
31
+ selectMediaType: (value: string) => void;
32
+ };
33
+ export declare function useOpenApiParameterState(spec: OpenAPISpec, parameters: OpenApiParameter[], initialParameterValue: (parameter: OpenApiParameter) => string, initialExampleKey?: string): {
34
+ parameterValues: Record<string, string>;
35
+ parameterEnabled: Record<string, boolean>;
36
+ parameterIssues: Record<string, RequestParameterIssue>;
37
+ setParameterGroupValues: (grouped: OpenApiParameter[], mode: "reset" | "clear") => void;
38
+ setParameterIncluded: (parameter: OpenApiParameter, enabled: boolean) => void;
39
+ updateParameterValue: (parameter: OpenApiParameter, value: string) => void;
40
+ applyParameterExample: (exampleKey: string) => void;
41
+ validate: (parametersToValidate: OpenApiParameter[]) => Record<string, RequestParameterIssue>;
42
+ };
43
+ export declare function useOpenApiRequestExecution(): {
44
+ exchange: ApiResponseExchange | undefined;
45
+ error: string;
46
+ sending: boolean;
47
+ execute: (request: Parameters<typeof executeApiRequest>[0], corsHint: string) => Promise<void>;
48
+ };
@@ -13,6 +13,8 @@ export type OpenApiOperationProps = {
13
13
  path: string;
14
14
  method: string;
15
15
  };
16
+ export type OpenApiRequestProps = OpenApiOperationProps;
16
17
  export declare function OpenApiDocument(arg0: OpenApiDocumentProps): ReactNode;
17
18
  export declare function OpenApiOperation(arg0: OpenApiOperationProps): ReactNode;
19
+ export declare function OpenApiRequest(arg0: OpenApiRequestProps): ReactNode;
18
20
  export declare function createOpenApiRouteComponent(data: OpenApiRouteData): () => import("react").JSX.Element;
@@ -1,3 +1,3 @@
1
- export { OpenApiOperation, OpenApiDocument, createOpenApiRouteComponent } from './entry';
2
- export type { OpenApiOperationProps, OpenApiDocumentProps, OpenApiRouteData } from './entry';
1
+ export { OpenApiRequest, OpenApiOperation, OpenApiDocument, createOpenApiRouteComponent } from './entry';
2
+ export type { OpenApiRequestProps, OpenApiOperationProps, OpenApiDocumentProps, OpenApiRouteData } from './entry';
3
3
  export type { OpenAPIOperation, OpenAPISpec } from './lib/utils';
@@ -0,0 +1,8 @@
1
+ import { ApiRequestSnapshot } from './api-exchange';
2
+ export type ApiExchangeCodeExample = {
3
+ id: 'curl' | 'fetch';
4
+ label: string;
5
+ language: 'bash' | 'javascript';
6
+ code: string;
7
+ };
8
+ export declare function buildApiExchangeCodeExamples(snapshot: ApiRequestSnapshot): ApiExchangeCodeExample[];
@@ -0,0 +1,30 @@
1
+ import { BuiltApiRequest } from './api-request';
2
+ export type ApiRequestSnapshot = {
3
+ url: string;
4
+ method: string;
5
+ headers: Array<[string, string]>;
6
+ body?: string;
7
+ };
8
+ export type ApiResponseExchange = {
9
+ request: ApiRequestSnapshot;
10
+ status: number;
11
+ statusText: string;
12
+ url: string;
13
+ redirected: boolean;
14
+ duration: number;
15
+ size: number;
16
+ headers: Array<[string, string]>;
17
+ contentType: string;
18
+ body: string;
19
+ blob: Blob;
20
+ };
21
+ export type ExecuteApiRequestOptions = {
22
+ signal?: AbortSignal;
23
+ fetch?: typeof fetch;
24
+ now?: () => number;
25
+ };
26
+ export declare class ApiRequestError extends Error {
27
+ readonly category: 'network';
28
+ constructor(message: string, options?: ErrorOptions);
29
+ }
30
+ export declare function executeApiRequest(request: BuiltApiRequest, options?: ExecuteApiRequestOptions): Promise<ApiResponseExchange>;
@@ -0,0 +1,25 @@
1
+ import { OpenApiParameter, OpenApiSecurityScheme, OpenApiServer } from '../types';
2
+ export type ApiRequestAuth = {
3
+ scheme: OpenApiSecurityScheme;
4
+ value: string;
5
+ };
6
+ export type ApiRequestInput = {
7
+ method: string;
8
+ path: string;
9
+ server: OpenApiServer;
10
+ serverVariables?: Record<string, string>;
11
+ parameters: OpenApiParameter[];
12
+ parameterValues: Record<string, string>;
13
+ parameterEnabled?: Record<string, boolean>;
14
+ auth?: ApiRequestAuth[];
15
+ mediaType?: string;
16
+ body?: string;
17
+ bodyFiles?: Record<string, File>;
18
+ baseUrl?: string;
19
+ };
20
+ export type BuiltApiRequest = {
21
+ url: string;
22
+ init: RequestInit;
23
+ };
24
+ export declare function parameterKey(parameter: OpenApiParameter): string;
25
+ export declare function buildApiRequest(input: ApiRequestInput): BuiltApiRequest;
@@ -7,6 +7,12 @@ export declare function isReference(value: unknown): value is {
7
7
  export declare function resolveReferenceName(ref: string): string;
8
8
  export declare function resolveOpenApiRef(spec: OpenAPISpec, ref: string): unknown;
9
9
  export declare function resolveSchema(spec: OpenAPISpec, schema: unknown, seen?: Set<string>): unknown;
10
+ export declare function resolveRequestSchema(spec: OpenAPISpec, schema: unknown): unknown;
11
+ export declare function getRequestSchemaVariants(spec: OpenAPISpec, schema: unknown): Array<{
12
+ key: string;
13
+ title: string;
14
+ schema: unknown;
15
+ }>;
10
16
  export declare function getPathItem(spec: OpenAPISpec, path: string): OpenApiPathItem | undefined;
11
17
  export declare function getOperationPathItem(spec: OpenAPISpec, path: string, source?: OpenAPIOperationSource): OpenApiPathItem | undefined;
12
18
  export declare function joinPath(base: string, path: string): string;
@@ -16,6 +22,8 @@ export declare function getRequestBody(spec: OpenAPISpec, operation: OpenAPIOper
16
22
  export declare function getMediaTypeEntries(content: unknown, spec?: OpenAPISpec): MediaTypeEntry[];
17
23
  export declare function getJsonLikeContent(content: unknown, spec?: OpenAPISpec): MediaTypeEntry | undefined;
18
24
  export declare function getExampleEntries(mediaType?: OpenApiMediaType, spec?: OpenAPISpec): ExampleEntry[];
25
+ export declare function getParameterExampleEntries(parameter: OpenApiParameter): ExampleEntry[];
26
+ export declare function getRequestExampleEntries(parameters: OpenApiParameter[], mediaType?: OpenApiMediaType): ExampleEntry[];
19
27
  export declare function getContentExample(mediaType?: OpenApiMediaType): unknown;
20
28
  export declare function schemaToType(schema: unknown): string | undefined;
21
29
  export declare function schemaToExample(schema: unknown, depth?: number): unknown;
@@ -1,4 +1,4 @@
1
- import { OpenApiMediaType, OpenApiParameter, OpenApiServer, RequestAuthInput, RequestCodeExample } from '../types';
1
+ import { OpenApiMediaType, OpenApiParameter, OpenApiServer, RequestAuthInputs, RequestCodeExample } from '../types';
2
2
  import { OpenAPIOperationSource, OpenAPISpec } from './utils';
3
3
  type RequestContent = {
4
4
  mediaType: string;
@@ -12,7 +12,7 @@ export type RequestCodeInput = {
12
12
  requestContent?: RequestContent;
13
13
  server?: OpenApiServer;
14
14
  serverVariables?: Record<string, string>;
15
- auth?: RequestAuthInput;
15
+ auth?: RequestAuthInputs;
16
16
  operationSource?: OpenAPIOperationSource;
17
17
  };
18
18
  export declare function buildRequestCodeExamples(input: RequestCodeInput): RequestCodeExample[];
@@ -0,0 +1,5 @@
1
+ import { OpenApiParameter } from '../types';
2
+ import { OpenAPISpec } from './utils';
3
+ export type RequestParameterIssue = 'required' | 'invalidArray' | 'invalidObject' | 'invalidNumber' | 'invalidInteger' | 'invalidDate' | 'invalidDateTime' | 'invalidEnum';
4
+ export declare function validateRequestParameter(spec: OpenAPISpec, parameter: OpenApiParameter, value: string): RequestParameterIssue | undefined;
5
+ export declare function validateRequestParameters(spec: OpenAPISpec, parameters: OpenApiParameter[], values: Record<string, string>): Record<string, RequestParameterIssue>;
@@ -0,0 +1,10 @@
1
+ type OpenApiState = {
2
+ credentials: Record<string, Record<string, string>>;
3
+ setCredential: (scope: string, name: string, value: string) => void;
4
+ clearCredential: (scope: string, name: string) => void;
5
+ clearCredentials: (scope: string) => void;
6
+ };
7
+ export declare const emptyOpenApiCredentials: Readonly<Record<string, string>>;
8
+ export declare function getOpenApiCredentialScope(spec: object): string;
9
+ export declare const useOpenApiStore: import('zustand').UseBoundStore<import('zustand').StoreApi<OpenApiState>>;
10
+ export {};
@@ -5,6 +5,11 @@ export type OpenApiParameter = {
5
5
  in?: string;
6
6
  required?: boolean;
7
7
  description?: string;
8
+ example?: unknown;
9
+ examples?: Record<string, unknown>;
10
+ style?: string;
11
+ explode?: boolean;
12
+ allowEmptyValue?: boolean;
8
13
  schema?: unknown;
9
14
  };
10
15
  export type OpenApiMediaType = {
@@ -48,6 +53,7 @@ export type RequestAuthInput = {
48
53
  value: string;
49
54
  scheme: OpenApiSecurityScheme;
50
55
  };
56
+ export type RequestAuthInputs = RequestAuthInput[];
51
57
  export type MediaTypeEntry = {
52
58
  mediaType: string;
53
59
  value: OpenApiMediaType;
@@ -1,9 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_i18n = require("./i18n-C-fReCj-.cjs");
3
- const require_PageActions = require("./PageActions-Dg1l9KB1.cjs");
4
- const require_OpenApiOperation = require("./OpenApiOperation-DbZjxIuj.cjs");
2
+ const require_i18n = require("./i18n-DsjZ51U1.cjs");
3
+ const require_PageActions = require("./PageActions-Lp_NeIKr.cjs");
4
+ const require_OpenApiOperation = require("./OpenApiOperation-D1WNrj5X.cjs");
5
5
  let react = require("react");
6
- let react_router_dom = require("react-router-dom");
7
6
  let lucide_react = require("lucide-react");
8
7
  let react_jsx_runtime = require("react/jsx-runtime");
9
8
  //#region source/preview/openapi.tsx
@@ -25,8 +24,8 @@ function usePreviewIdentityState(arg0) {
25
24
  const [serverVariables, setServerVariables] = (0, react.useState)(require_OpenApiOperation.defaultServerVariables(selectedServer));
26
25
  const [serverOpen, setServerOpen] = (0, react.useState)(false);
27
26
  const authOptions = require_OpenApiOperation.getAuthOptions(spec, operation);
28
- const [selectedAuthName, setSelectedAuthName] = (0, react.useState)(authOptions[0]?.name ?? "");
29
- const selectedAuth = authOptions.find((option) => option.name === selectedAuthName);
27
+ const [selectedAuthName, setSelectedAuthName] = (0, react.useState)(authOptions[0]?.key ?? "");
28
+ const selectedAuth = authOptions.find((option) => option.key === selectedAuthName);
30
29
  const [authValues, setAuthValues] = (0, react.useState)({});
31
30
  const [authOpen, setAuthOpen] = (0, react.useState)(false);
32
31
  return {
@@ -40,11 +39,11 @@ function usePreviewIdentityState(arg0) {
40
39
  selectedAuth,
41
40
  authValues,
42
41
  authOpen,
43
- authInput: selectedAuth ? {
44
- name: selectedAuth.name,
45
- scheme: selectedAuth.scheme,
46
- value: authValues[selectedAuth.name] ?? require_OpenApiOperation.authPlaceholder(selectedAuth)
47
- } : void 0,
42
+ authInput: selectedAuth ? selectedAuth.schemes.map((option) => ({
43
+ name: option.name,
44
+ scheme: option.scheme,
45
+ value: authValues[option.name] ?? require_OpenApiOperation.authPlaceholder(option)
46
+ })) : void 0,
48
47
  onSelectServer: (value) => {
49
48
  const nextServer = servers.find((server, index) => require_OpenApiOperation.getServerKey(server, index) === value) ?? servers[0];
50
49
  setSelectedServerKey(value);
@@ -70,7 +69,15 @@ function usePreviewIdentityState(arg0) {
70
69
  ...current,
71
70
  [name]: value
72
71
  }));
73
- }
72
+ },
73
+ onClearAuthValue: (name) => {
74
+ setAuthValues((current) => {
75
+ const values = { ...current };
76
+ delete values[name];
77
+ return values;
78
+ });
79
+ },
80
+ onClearAuthValues: () => setAuthValues({})
74
81
  };
75
82
  }
76
83
  function schemaFromType(type) {
@@ -191,17 +198,9 @@ function OpenApiExamplesPreview(arg0) {
191
198
  selectedServer: identityState.selectedServer,
192
199
  serverVariables: identityState.serverVariables,
193
200
  serverOpen: identityState.serverOpen,
194
- authOptions: identityState.authOptions,
195
- selectedAuthName: identityState.selectedAuthName,
196
- selectedAuth: identityState.selectedAuth,
197
- authValues: identityState.authValues,
198
- authOpen: identityState.authOpen,
199
201
  onSelectServer: identityState.onSelectServer,
200
202
  onChangeServerVariable: identityState.onChangeServerVariable,
201
- onToggleServer: identityState.onToggleServer,
202
- onToggleAuth: identityState.onToggleAuth,
203
- onSelectAuth: identityState.onSelectAuth,
204
- onChangeAuthValue: identityState.onChangeAuthValue
203
+ onToggleServer: identityState.onToggleServer
205
204
  });
206
205
  }
207
206
  function renderExamples() {
@@ -387,10 +386,8 @@ var staticOutputEndpoint = {
387
386
  var previewConfig = {
388
387
  title: "Clarify preview",
389
388
  description: "Renderer preview environment",
390
- rootDirectory: "source",
391
389
  routePrefix: "/",
392
390
  assetPrefix: "/",
393
- outputDirectory: "output",
394
391
  theme: {
395
392
  preset: "default",
396
393
  tokens: {
@@ -411,16 +408,28 @@ var previewConfig = {
411
408
  xl: "1rem"
412
409
  }
413
410
  },
414
- layout: { maxWidth: "88rem" },
415
- editor: false
411
+ layout: { maxWidth: "88rem" }
416
412
  },
417
- i18n: {
418
- defaultLocale: "en",
413
+ locales: {
414
+ default: "en",
419
415
  missing: "fallback",
420
416
  locales: [{
421
417
  code: "en",
422
418
  label: "English"
423
419
  }]
420
+ },
421
+ variables: {},
422
+ features: {
423
+ search: {
424
+ enabled: true,
425
+ mcp: true
426
+ },
427
+ repository: { enabled: true },
428
+ themeEditor: { enabled: true },
429
+ openapi: {
430
+ enabled: true,
431
+ playground: true
432
+ }
424
433
  }
425
434
  };
426
435
  var methodStyleVars = {
@@ -439,19 +448,16 @@ var mainPreviewSections = [{
439
448
  title: "Request example"
440
449
  }];
441
450
  function PreviewEnvironment(arg0) {
442
- const { children, initialEntry = "/preview", sections = [] } = arg0;
443
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_router_dom.MemoryRouter, {
444
- initialEntries: [initialEntry],
445
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_i18n.ConfigContext.Provider, {
446
- value: previewConfig,
447
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_i18n.LocaleContext.Provider, {
448
- value: previewConfig.i18n.defaultLocale,
449
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_i18n.OpenApiSpecsContext.Provider, {
450
- value: {},
451
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PageActions.SectionProvider, {
452
- sections,
453
- children
454
- })
451
+ const { children, sections = [] } = arg0;
452
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_i18n.ConfigContext.Provider, {
453
+ value: previewConfig,
454
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_i18n.LocaleContext.Provider, {
455
+ value: previewConfig.locales.default,
456
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_i18n.OpenApiSpecsContext.Provider, {
457
+ value: {},
458
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PageActions.SectionProvider, {
459
+ sections,
460
+ children
455
461
  })
456
462
  })
457
463
  })
@@ -1 +1 @@
1
- {"version":3,"file":"preview.cjs","names":[],"sources":["../source/preview/openapi.tsx","../source/preview.tsx"],"sourcesContent":["import { useState } from 'react'\n\nimport { authPlaceholder, defaultServerVariables, getAuthOptions, getServerKey, getServers, RequestExamplesPanel, ResponseExamplesPanel } from '../openapi/components/ExamplePanels'\nimport { EndpointIdentity } from '../openapi/components/OpenApiOperation'\nimport { getMediaTypeEntries, getRequestBody } from '../openapi/lib/helpers'\nimport type { OpenAPIOperation, OpenAPISpec } from '../openapi/lib/utils'\nimport type { OpenApiParameter, RequestAuthInput } from '../openapi/types'\n\nexport type PreviewParameter = {\n name: string\n in: string\n type: string\n required?: boolean\n description?: string\n schema?: unknown\n}\n\nexport type PreviewEndpoint = {\n method: string\n path: string\n summary: string\n description: string\n parameters?: PreviewParameter[]\n requestDescription?: string\n requestSchema?: unknown\n requestExample?: unknown\n response?: string\n responseStatus?: string\n responseDescription?: string\n responseSchema?: unknown\n responseExample?: unknown\n}\n\ntype CreatePreviewOpenApiResult = {\n operation: OpenAPIOperation\n spec: OpenAPISpec\n parameters: OpenApiParameter[]\n}\n\ntype OpenApiExamplesPreviewProps = { endpoint: PreviewEndpoint }\n\ntype UsePreviewRequestStateArgs = {\n spec: OpenAPISpec\n operation: OpenAPIOperation\n}\n\nfunction usePreviewRequestState(arg0: UsePreviewRequestStateArgs) {\n const { spec, operation } = arg0\n const requestBody = getRequestBody(spec, operation)\n const requestContents = getMediaTypeEntries(requestBody?.content, spec)\n const [selectedRequestMediaType, setSelectedRequestMediaType] = useState(requestContents[0]?.mediaType ?? '')\n const selectedRequestContent = requestContents.find((content) => content.mediaType === selectedRequestMediaType) ?? requestContents[0]\n\n return {\n requestContents,\n selectedRequestContent,\n setSelectedRequestMediaType,\n }\n}\n\ntype UsePreviewIdentityStateArgs = {\n spec: OpenAPISpec\n operation: OpenAPIOperation\n path: string\n}\n\nfunction usePreviewIdentityState(arg0: UsePreviewIdentityStateArgs) {\n const { spec, operation, path } = arg0\n const servers = getServers(spec, operation, path)\n const [selectedServerKey, setSelectedServerKey] = useState(getServerKey(servers[0], 0))\n const selectedServer = servers.find((server, index) => getServerKey(server, index) === selectedServerKey) ?? servers[0]\n const [serverVariables, setServerVariables] = useState(defaultServerVariables(selectedServer))\n const [serverOpen, setServerOpen] = useState(false)\n\n const authOptions = getAuthOptions(spec, operation)\n const [selectedAuthName, setSelectedAuthName] = useState(authOptions[0]?.name ?? '')\n const selectedAuth = authOptions.find((option) => option.name === selectedAuthName)\n const [authValues, setAuthValues] = useState<Record<string, string>>({})\n const [authOpen, setAuthOpen] = useState(false)\n\n const authInput: RequestAuthInput | undefined = selectedAuth\n ? { name: selectedAuth.name, scheme: selectedAuth.scheme, value: authValues[selectedAuth.name] ?? authPlaceholder(selectedAuth) }\n : undefined\n\n return {\n servers,\n selectedServerKey,\n selectedServer,\n serverVariables,\n serverOpen,\n authOptions,\n selectedAuthName,\n selectedAuth,\n authValues,\n authOpen,\n authInput,\n onSelectServer: (value: string) => {\n const nextServer = servers.find((server, index) => getServerKey(server, index) === value) ?? servers[0]\n setSelectedServerKey(value)\n setServerVariables(defaultServerVariables(nextServer))\n },\n onChangeServerVariable: (name: string, value: string) => {\n setServerVariables((current) => ({ ...current, [name]: value }))\n },\n onToggleServer: () => {\n setServerOpen((current) => !current)\n setAuthOpen(false)\n },\n onToggleAuth: () => {\n setAuthOpen((current) => !current)\n setServerOpen(false)\n },\n onSelectAuth: setSelectedAuthName,\n onChangeAuthValue: (name: string, value: string) => {\n setAuthValues((current) => ({ ...current, [name]: value }))\n },\n }\n}\n\nfunction schemaFromType(type: string): unknown {\n if (type.endsWith('[]')) return { type: 'array', items: schemaFromType(type.slice(0, -2)) }\n if (type === 'number' || type === 'integer' || type === 'boolean' || type === 'object') return { type }\n return { type: 'string' }\n}\n\nfunction parseResponseExample(endpoint: PreviewEndpoint): unknown {\n if (typeof endpoint.responseExample !== 'undefined') return endpoint.responseExample\n if (!endpoint.response) return undefined\n\n try {\n return JSON.parse(endpoint.response)\n } catch {\n return endpoint.response\n }\n}\n\nfunction inferSchemaFromExample(example: unknown): unknown {\n if (Array.isArray(example)) {\n return { type: 'array', items: inferSchemaFromExample(example[0]) ?? { type: 'object' } }\n }\n\n if (typeof example === 'object' && example !== null) {\n return {\n type: 'object',\n properties: Object.fromEntries(Object.entries(example).map(([key, value]) => [key, inferSchemaFromExample(value)])),\n }\n }\n\n if (typeof example === 'number') return { type: Number.isInteger(example) ? 'integer' : 'number' }\n if (typeof example === 'boolean') return { type: 'boolean' }\n return typeof example === 'undefined' ? undefined : { type: 'string' }\n}\n\nfunction normalizeParameterLocation(location: string): string {\n return location === 'route' ? 'path' : location\n}\n\nfunction toOpenApiParameter(parameter: PreviewParameter): OpenApiParameter {\n return {\n name: parameter.name,\n in: normalizeParameterLocation(parameter.in),\n required: parameter.required,\n description: parameter.description,\n schema: parameter.schema ?? schemaFromType(parameter.type),\n }\n}\n\nfunction createPreviewOpenApi(endpoint: PreviewEndpoint): CreatePreviewOpenApiResult {\n const method = endpoint.method.toLowerCase()\n const parameters = (endpoint.parameters ?? []).map(toOpenApiParameter)\n const responseExample = parseResponseExample(endpoint)\n const responseSchema = endpoint.responseSchema ?? inferSchemaFromExample(responseExample)\n const requestSchema = endpoint.requestSchema ?? inferSchemaFromExample(endpoint.requestExample)\n const operation = {\n summary: endpoint.summary,\n description: endpoint.description,\n parameters,\n requestBody: requestSchema\n ? {\n description: endpoint.requestDescription,\n required: true,\n content: {\n 'application/json': {\n schema: requestSchema,\n example: endpoint.requestExample,\n },\n },\n }\n : undefined,\n responses: {\n [endpoint.responseStatus ?? '200']: {\n description: endpoint.responseDescription ?? 'OK',\n content: {\n 'application/json': {\n schema: responseSchema,\n example: responseExample,\n },\n },\n },\n },\n } as OpenAPIOperation\n const spec = {\n openapi: '3.1.0',\n info: {\n title: 'Clarify Build API',\n version: '2026-06-20',\n description: 'API reference generated from OpenAPI and rendered as static documentation.',\n },\n servers: [\n {\n url: 'https://server',\n description: 'Production',\n },\n {\n url: 'https://test-server',\n description: 'Test',\n },\n ],\n components: {\n securitySchemes: {\n bearerAuth: {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n },\n },\n },\n security: [{ bearerAuth: [] }],\n paths: {\n [endpoint.path]: {\n [method]: operation,\n },\n },\n } as OpenAPISpec\n\n return { operation, spec, parameters }\n}\n\nexport function OpenApiExamplesPreview(arg0: OpenApiExamplesPreviewProps) {\n const { endpoint } = arg0\n const { operation, spec, parameters } = createPreviewOpenApi(endpoint)\n const method = endpoint.method.toUpperCase()\n const { requestContents, selectedRequestContent, setSelectedRequestMediaType } = usePreviewRequestState({ spec, operation })\n const identityState = usePreviewIdentityState({ spec, operation, path: endpoint.path })\n\n function renderIdentity() {\n return (\n <EndpointIdentity\n method={method}\n path={endpoint.path}\n operationSource=\"path\"\n servers={identityState.servers}\n selectedServerKey={identityState.selectedServerKey}\n selectedServer={identityState.selectedServer}\n serverVariables={identityState.serverVariables}\n serverOpen={identityState.serverOpen}\n authOptions={identityState.authOptions}\n selectedAuthName={identityState.selectedAuthName}\n selectedAuth={identityState.selectedAuth}\n authValues={identityState.authValues}\n authOpen={identityState.authOpen}\n onSelectServer={identityState.onSelectServer}\n onChangeServerVariable={identityState.onChangeServerVariable}\n onToggleServer={identityState.onToggleServer}\n onToggleAuth={identityState.onToggleAuth}\n onSelectAuth={identityState.onSelectAuth}\n onChangeAuthValue={identityState.onChangeAuthValue}\n />\n )\n }\n\n function renderExamples() {\n return (\n <div className=\"grid min-w-0 gap-4 lg:grid-cols-2\">\n <RequestExamplesPanel\n spec={spec}\n path={endpoint.path}\n method={method}\n parameters={parameters}\n requestContents={requestContents}\n selectedMediaType={selectedRequestContent?.mediaType ?? ''}\n onSelectMediaType={setSelectedRequestMediaType}\n selectedServer={identityState.selectedServer}\n serverVariables={identityState.serverVariables}\n auth={identityState.authInput}\n />\n <ResponseExamplesPanel operation={operation} spec={spec} />\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n {renderIdentity()}\n {renderExamples()}\n </div>\n )\n}\n","import { Menu, X } from 'lucide-react'\nimport type { ReactNode } from 'react'\nimport { useState } from 'react'\nimport { MemoryRouter } from 'react-router-dom'\n\nimport { SectionProvider } from './app/SectionProvider'\nimport type { Section } from './app/SectionProvider'\nimport { ConfigContext, LocaleContext, OpenApiSpecsContext } from './core/context'\nimport { OpenApiExamplesPreview } from './preview/openapi'\nimport type { PreviewEndpoint } from './preview/openapi'\nimport { Navigation } from './shell'\nimport type { Config, NavigationNode } from './types'\n\nexport type PreviewGuide = {\n label: string\n title: string\n body: string\n embed: string\n outputs?: string[]\n}\n\nexport type PreviewMetric = {\n label: string\n value: string\n hint?: string\n}\n\nexport type PreviewCard = {\n title: string\n description: string\n}\n\nconst embeddedEndpoint = {\n method: 'GET',\n path: '/examples/basic-request',\n summary: 'Basic request',\n description: 'Rendered from api.openapi.json inside the MDX guide.',\n parameters: [\n { name: 'cursor', in: 'query', type: 'string', description: 'Start after this cursor.' },\n { name: 'limit', in: 'query', type: 'integer', description: 'Max items to return.' },\n { name: 'X-Trace-Id', in: 'header', type: 'string', description: 'Optional request trace.' },\n ],\n responseDescription: 'A page of example records.',\n responseSchema: {\n type: 'object',\n required: ['items'],\n properties: {\n items: { type: 'array', items: { type: 'object' } },\n next: { type: 'string' },\n },\n },\n responseExample: {\n items: [],\n next: 'cursor_2',\n },\n} satisfies PreviewEndpoint\n\nconst embeddedGuide = {\n label: 'source/en-US/openapi/embedding.mdx',\n title: 'Embed OpenAPI in MDX',\n body: 'Use MDX for workflow context, then render the exact operation from the spec.',\n embed: '<OpenApiOperation specPath=\"/api\" path=\"/examples/basic-request\" method=\"get\" />',\n outputs: ['/openapi/embedding', '/api', '/api.openapi.json', '/llms.txt'],\n} satisfies PreviewGuide\n\nconst staticOutputEndpoint = {\n method: 'POST',\n path: '/api/{id}/path',\n summary: 'Create static build',\n description: 'Build static docs from MDX and OpenAPI sources.',\n parameters: [\n { name: 'id', in: 'path', type: 'string', required: true, description: 'Project ID.' }\n ],\n responseDescription: 'Build metadata and static outputs.',\n responseSchema: {\n type: 'object',\n required: ['id', 'status', 'outputs'],\n properties: {\n id: { type: 'string', description: 'Build identifier.' },\n status: { type: 'string', enum: ['queued', 'running', 'ready'], description: 'Current build state.' },\n outputs: {\n type: 'array',\n description: 'Generated static artifacts.',\n items: {\n type: 'object',\n required: ['path', 'kind'],\n properties: {\n path: { type: 'string' },\n kind: { type: 'string', enum: ['html', 'asset', 'openapi', 'llms'] },\n },\n },\n },\n },\n },\n requestDescription: 'Static build options.',\n requestSchema: {\n type: 'object',\n required: ['source', 'output'],\n properties: {\n source: { type: 'string', description: 'MDX source root.' },\n output: { type: 'string', description: 'Static output root.' },\n includeSearchIndex: { type: 'boolean', description: 'Generate search data.' },\n },\n },\n requestExample: {\n source: 'source',\n output: 'output',\n includeSearchIndex: true,\n },\n responseExample: {\n id: 'build_01HY',\n status: 'ready',\n outputs: [\n { path: '/openapi/index.html', kind: 'html' },\n { path: '/api.openapi.json', kind: 'openapi' },\n { path: '/llms.txt', kind: 'llms' },\n ],\n },\n} satisfies PreviewEndpoint\n\nconst previewConfig = {\n title: 'Clarify preview',\n description: 'Renderer preview environment',\n rootDirectory: 'source',\n routePrefix: '/',\n assetPrefix: '/',\n outputDirectory: 'output',\n theme: {\n preset: 'default',\n tokens: {\n colors: {\n primary: '#2563eb',\n accent: '#60a5fa',\n background: '#ffffff',\n foreground: '#18181b',\n surface: '#ffffff',\n muted: '#71717a',\n border: 'rgb(24 24 27 / 0.1)',\n codeBackground: '#f4f4f5',\n },\n radius: {\n sm: '0.375rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n },\n },\n layout: {\n maxWidth: '88rem',\n },\n editor: false,\n },\n i18n: {\n defaultLocale: 'en',\n missing: 'fallback',\n locales: [{ code: 'en', label: 'English' }],\n },\n} satisfies Config\n\nconst methodStyleVars: Record<string, string> = {\n GET: 'bg-(--clarify-http-method-get-background) text-(--clarify-http-method-get-text)',\n POST: 'bg-(--clarify-http-method-post-background) text-(--clarify-http-method-post-text)',\n PUT: 'bg-(--clarify-http-method-put-background) text-(--clarify-http-method-put-text)',\n PATCH: 'bg-(--clarify-http-method-patch-background) text-(--clarify-http-method-patch-text)',\n DELETE: 'bg-(--clarify-http-method-delete-background) text-(--clarify-http-method-delete-text)',\n}\n\nconst mainPreviewPath = '/openapi/embedding'\n\nconst mainPreviewSections = [\n { id: 'overview', title: 'Overview' },\n { id: 'request-example', title: 'Request example' }\n] satisfies Section[]\n\ntype PreviewEnvironmentProps = { children: ReactNode; initialEntry?: string; sections?: Section[] }\n\nfunction PreviewEnvironment(arg0: PreviewEnvironmentProps) {\n const { children, initialEntry = '/preview', sections = [] } = arg0\n\n return (\n <MemoryRouter initialEntries={[initialEntry]}>\n <ConfigContext.Provider value={previewConfig}>\n <LocaleContext.Provider value={previewConfig.i18n.defaultLocale}>\n <OpenApiSpecsContext.Provider value={{}}>\n <SectionProvider sections={sections}>\n {children}\n </SectionProvider>\n </OpenApiSpecsContext.Provider>\n </LocaleContext.Provider>\n </ConfigContext.Provider>\n </MemoryRouter>\n )\n}\n\ntype ChromeProps = { title: string; status?: string; headerAction?: ReactNode; children: ReactNode }\n\nfunction Chrome(arg0: ChromeProps) {\n const { title, status, headerAction, children } = arg0\n\n return (\n <div className=\"clarify-app clarify-preview h-full overflow-hidden bg-(--clarify-theme-tokens-colors-background) text-(--clarify-ui-text) shadow-2xl ring-1 ring-(--clarify-theme-tokens-colors-border) dark:bg-zinc-950 dark:text-white dark:ring-white/10\">\n <div className=\"flex items-center gap-3 border-b border-(--clarify-theme-tokens-colors-border) px-4 py-3 text-xs/6 text-(--clarify-ui-text-faint) dark:border-white/10\">\n <span className=\"size-2 rounded-full bg-rose-400\" />\n <span className=\"size-2 rounded-full bg-amber-400\" />\n <span className=\"size-2 rounded-full bg-emerald-400\" />\n <span className=\"ml-2 min-w-0 flex-1 truncate font-medium text-(--clarify-ui-text-soft)\">{title}</span>\n {status ? <span className=\"hidden rounded-full bg-emerald-400/15 px-2 py-0.5 font-medium text-emerald-700 sm:inline dark:text-emerald-300\">{status}</span> : null}\n {headerAction}\n </div>\n {children}\n </div>\n )\n}\n\ntype MethodBadgeProps = { method: string }\n\nfunction MethodBadge(arg0: MethodBadgeProps) {\n const method = arg0.method.toUpperCase()\n\n return (\n <span className={`rounded-md px-2.5 py-0.5 text-xs/6 font-black tracking-wide ${methodStyleVars[method] ?? 'bg-(--clarify-http-method-default-background) text-(--clarify-http-method-default-text)'}`}>\n {method}\n </span>\n )\n}\n\ntype CreatePreviewNavigationProps = { endpoint: PreviewEndpoint; guide?: PreviewGuide; outputs: string[] }\n\nfunction createPreviewNavigation(arg0: CreatePreviewNavigationProps): NavigationNode[] {\n const { endpoint, guide, outputs } = arg0\n\n return [\n {\n title: 'Guides',\n path: '/guides',\n icon: 'BookOpenText',\n children: [\n { title: guide?.title ?? 'MDX guide', path: mainPreviewPath, icon: 'FileText' },\n { title: 'Getting started', path: '/getting-started', icon: 'Rocket' },\n ],\n },\n {\n title: 'API Reference',\n path: '/api',\n icon: 'Braces',\n children: [\n { title: endpoint.summary, path: endpoint.path, icon: 'Cable' },\n { title: 'Generate static output', path: staticOutputEndpoint.path, icon: 'UploadCloud' },\n ],\n },\n {\n title: 'Build Output',\n path: '/output',\n icon: 'PackageCheck',\n children: [\n { title: `Routes (${outputs.length})`, path: '/output/routes', icon: 'ListTree' }\n ],\n },\n ] satisfies NavigationNode[]\n}\n\ntype PreviewNavigationProps = { endpoint: PreviewEndpoint; guide?: PreviewGuide; outputs: string[] }\n\nfunction PreviewNavigation(arg0: PreviewNavigationProps) {\n return <Navigation navigation={createPreviewNavigation(arg0)} className=\"px-2\" />\n}\n\ntype MainPreviewMobileNavigationProps = PreviewNavigationProps & { isOpen: boolean; onClose: () => void }\n\nfunction MainPreviewMobileNavigation(arg0: MainPreviewMobileNavigationProps) {\n const { isOpen, onClose, ...navigationProps } = arg0\n const navigationId = 'clarify-main-preview-mobile-navigation'\n\n return (\n <div className=\"clarify-preview-mobile-navigation pointer-events-none absolute inset-0 z-20\">\n {isOpen ? (\n <button\n type=\"button\"\n className=\"absolute inset-0 bg-zinc-950/20 backdrop-blur-[1px] dark:bg-black/30\"\n aria-label=\"Close documentation menu\"\n onClick={onClose}\n />\n ) : null}\n <aside\n id={navigationId}\n className=\"pointer-events-auto absolute top-0 bottom-0 left-0 w-64 max-w-[82%] overflow-y-auto border-r border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-background) px-1 py-4 text-sm/7 shadow-2xl shadow-zinc-900/20 transition-transform duration-200 ease-out data-closed:-translate-x-full dark:border-white/10 dark:bg-zinc-950 dark:shadow-black/40\"\n data-closed={!isOpen ? 'true' : undefined}\n >\n <PreviewNavigation {...navigationProps} />\n </aside>\n </div>\n )\n}\n\ntype PreviewMetricGridProps = { metrics: PreviewMetric[] }\n\nfunction PreviewMetricGrid(arg0: PreviewMetricGridProps) {\n const { metrics } = arg0\n\n return (\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-3\">\n {metrics.map((metric) => (\n <div key={metric.label} className=\"rounded-xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-2.5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <div className=\"text-xs/5 text-(--clarify-ui-text-faint)\">{metric.label}</div>\n <div className=\"text-base/6 font-semibold text-(--clarify-ui-text-strong)\">{metric.value}</div>\n {metric.hint ? <div className=\"text-xs/5 text-(--clarify-ui-text-faint)\">{metric.hint}</div> : null}\n </div>\n ))}\n </div>\n )\n}\n\ntype PreviewLabelProps = { children: ReactNode }\n\nfunction PreviewLabel(arg0: PreviewLabelProps) {\n return <div className=\"text-xs/5 font-semibold uppercase tracking-wider text-(--clarify-ui-text-faint)\">{arg0.children}</div>\n}\n\ntype GuideSummaryPreviewProps = { guide: PreviewGuide }\n\nfunction GuideSummaryPreview(arg0: GuideSummaryPreviewProps) {\n const { guide } = arg0\n\n return (\n <header className=\"border-b border-(--clarify-theme-tokens-colors-border) pb-4 dark:border-white/10\">\n <PreviewLabel>{guide.label}</PreviewLabel>\n <h2 className=\"mt-1 text-xl/7 font-semibold tracking-tight text-(--clarify-ui-text-strong)\">{guide.title}</h2>\n <p className=\"mt-2 max-w-2xl text-sm/6 text-(--clarify-ui-text-soft)\">{guide.body}</p>\n <pre className=\"mt-3 overflow-hidden rounded-xl bg-zinc-950 px-3 py-2 text-xs/5 whitespace-pre-wrap text-zinc-300\">{guide.embed}</pre>\n </header>\n )\n}\n\ntype EndpointSummaryPreviewProps = { endpoint: PreviewEndpoint }\n\nfunction EndpointSummaryPreview(arg0: EndpointSummaryPreviewProps) {\n const { endpoint } = arg0\n\n return (\n <div className=\"min-w-0\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <MethodBadge method={endpoint.method} />\n <code className=\"text-sm font-medium text-(--clarify-ui-text)\">{endpoint.path}</code>\n </div>\n <h3 className=\"mt-3 text-lg/7 font-semibold tracking-tight text-(--clarify-ui-text-strong)\">{endpoint.summary}</h3>\n <p className=\"mt-1 text-sm/6 text-(--clarify-ui-text-soft)\">{endpoint.description}</p>\n </div>\n )\n}\n\ntype EmbeddedApiPreviewProps = { endpoint: PreviewEndpoint }\n\nfunction EmbeddedApiPreview(arg0: EmbeddedApiPreviewProps) {\n const { endpoint } = arg0\n\n return (\n <div className=\"clarify-preview-api-frame min-w-0 overflow-hidden border-t border-(--clarify-theme-tokens-colors-border) pt-4 dark:border-white/10\">\n <div className=\"clarify-preview-api-content clarify-preview-api-content-embedded\">\n <OpenApiExamplesPreview endpoint={endpoint} />\n </div>\n </div>\n )\n}\n\ntype OutputListPreviewProps = { outputs: string[] }\n\nfunction OutputListPreview(arg0: OutputListPreviewProps) {\n const { outputs } = arg0\n\n return (\n <div className=\"border-t border-(--clarify-theme-tokens-colors-border) pt-4 dark:border-white/10\">\n <PreviewLabel>Static output</PreviewLabel>\n <div className=\"mt-3 grid gap-2 sm:grid-cols-2 xl:grid-cols-4\">\n {outputs.map((output) => (\n <div key={output} className=\"flex items-center gap-2 rounded-lg bg-(--clarify-ui-subtle-background) px-3 py-2 text-xs/5 text-(--clarify-ui-text-soft) dark:bg-white/5\">\n <span className=\"size-1.5 rounded-full bg-emerald-400\" />\n <span className=\"truncate font-mono\">{output}</span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nfunction MainContentPreview() {\n return (\n <section className=\"min-w-0 bg-(--clarify-theme-tokens-colors-background) px-5 py-4 dark:bg-zinc-950\">\n <div className=\"clarify-preview-content-window overflow-hidden\">\n <div className=\"space-y-4\">\n <GuideSummaryPreview guide={embeddedGuide} />\n <PreviewMetricGrid metrics={[\n { label: 'MDX', value: 'Guide', hint: 'context' },\n { label: 'Spec', value: 'OpenAPI', hint: 'source' },\n { label: 'Out', value: 'Static', hint: 'CDN' },\n ]} />\n <div className=\"clarify-preview-endpoint-grid grid gap-4\">\n <EndpointSummaryPreview endpoint={embeddedEndpoint} />\n <EmbeddedApiPreview endpoint={embeddedEndpoint} />\n </div>\n <OutputListPreview outputs={embeddedGuide.outputs ?? []} />\n </div>\n </div>\n </section>\n )\n}\n\nexport function MainPreview() {\n const [isMobileNavigationOpen, setMobileNavigationOpen] = useState(false)\n const navigationProps = { endpoint: embeddedEndpoint, guide: embeddedGuide, outputs: embeddedGuide.outputs ?? [] }\n\n return (\n <PreviewEnvironment initialEntry={mainPreviewPath} sections={mainPreviewSections}>\n <Chrome\n title=\"source/en-US/openapi/embedding.mdx\"\n status=\"Rendered from OpenAPI + MDX\"\n headerAction={\n <button\n type=\"button\"\n className=\"clarify-preview-mobile-menu-button -my-1 flex size-7 items-center justify-center rounded-(--clarify-theme-tokens-radius-md) text-(--clarify-ui-text-strong) transition hover:bg-(--clarify-ui-hover-background)\"\n aria-controls=\"clarify-main-preview-mobile-navigation\"\n aria-expanded={isMobileNavigationOpen}\n aria-label={isMobileNavigationOpen ? 'Close documentation menu' : 'Open documentation menu'}\n onClick={() => setMobileNavigationOpen((value) => !value)}\n >\n {isMobileNavigationOpen ? <X className=\"h-4 w-4 shrink-0\" /> : <Menu className=\"h-4 w-4 shrink-0\" />}\n </button>\n }\n >\n <div className=\"clarify-preview-shell relative grid overflow-hidden\">\n <MainPreviewMobileNavigation {...navigationProps} isOpen={isMobileNavigationOpen} onClose={() => setMobileNavigationOpen(false)} />\n <aside className=\"clarify-preview-sidebar border-r border-(--clarify-theme-tokens-colors-border) px-1 py-4 text-sm/7 dark:border-white/10 dark:bg-white/5\">\n <PreviewNavigation {...navigationProps} />\n </aside>\n <MainContentPreview />\n </div>\n </Chrome>\n </PreviewEnvironment>\n )\n}\n\nexport function MdxPreview() {\n return (\n <PreviewEnvironment>\n <Chrome title=\"source/started/index.mdx\" status=\"Rendered by renderer\">\n <div className=\"clarify-preview-body overflow-x-hidden overflow-y-auto bg-(--clarify-theme-tokens-colors-background) p-4 sm:p-5 dark:bg-zinc-950\">\n <article className=\"max-w-3xl text-sm/7 text-(--clarify-ui-text-soft)\">\n <div className=\"inline-flex rounded-full bg-(--clarify-ui-accent-background) px-3 py-1 text-xs/5 font-semibold text-(--clarify-ui-accent-text)\">MDX page</div>\n <h2 className=\"mt-3 text-xl/7 font-semibold tracking-tight text-(--clarify-ui-text-strong) sm:text-2xl/8\">Get Started</h2>\n <p className=\"mt-3\">Write pages in source/. Clarify turns MDX, config, and OpenAPI files into routes.</p>\n <div className=\"mt-4 rounded-2xl border border-(--clarify-ui-accent-border) bg-(--clarify-ui-accent-background) p-4 text-sm/6 text-(--clarify-ui-text-strong) sm:mt-5\">\n <div className=\"font-semibold text-(--clarify-ui-text-strong)\">Static output ready</div>\n <p className=\"mt-1\">output/ is plain static files.</p>\n </div>\n <div className=\"mt-4 grid gap-3 sm:mt-5 sm:grid-cols-2 sm:gap-4\">\n <div className=\"rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <h3 className=\"text-base/6 font-semibold text-(--clarify-ui-text-strong)\">MDX pages</h3>\n <p className=\"mt-2 text-sm/6\">Guides live beside code.</p>\n </div>\n <div className=\"rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <h3 className=\"text-base/6 font-semibold text-(--clarify-ui-text-strong)\">API embeds</h3>\n <p className=\"mt-2 text-sm/6\">Specs render inline.</p>\n </div>\n </div>\n <div className=\"mt-5 rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <div className=\"flex items-center gap-3\">\n <MethodBadge method={embeddedEndpoint.method} />\n <code className=\"text-sm font-medium text-(--clarify-ui-text)\">{embeddedEndpoint.path}</code>\n </div>\n <p className=\"mt-3 text-sm/6\">{embeddedEndpoint.description}</p>\n </div>\n </article>\n </div>\n </Chrome>\n </PreviewEnvironment>\n )\n}\n\nexport function OpenApiPreview() {\n return (\n <PreviewEnvironment>\n <Chrome title=\"source/api.openapi.json\" status=\"Endpoint + examples\">\n <div className=\"clarify-preview-openapi-window overflow-x-hidden overflow-y-auto bg-(--clarify-theme-tokens-colors-background) px-3 py-3 sm:px-4 sm:py-4 dark:bg-zinc-950\">\n <div className=\"clarify-preview-openapi-mask min-h-full\">\n <div className=\"clarify-preview-api-content clarify-preview-api-content-openapi origin-top pb-6 sm:pb-10\">\n <OpenApiExamplesPreview endpoint={staticOutputEndpoint} />\n </div>\n </div>\n </div>\n </Chrome>\n </PreviewEnvironment>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"preview.cjs","names":[],"sources":["../source/preview/openapi.tsx","../source/preview.tsx"],"sourcesContent":["import { useState } from 'react'\n\nimport { authPlaceholder, defaultServerVariables, getAuthOptions, getServerKey, getServers, RequestExamplesPanel, ResponseExamplesPanel } from '../openapi/components/ExamplePanels'\nimport { EndpointIdentity } from '../openapi/components/OpenApiOperation'\nimport { getMediaTypeEntries, getRequestBody } from '../openapi/lib/helpers'\nimport type { OpenAPIOperation, OpenAPISpec } from '../openapi/lib/utils'\nimport type { OpenApiParameter, RequestAuthInput } from '../openapi/types'\n\nexport type PreviewParameter = {\n name: string\n in: string\n type: string\n required?: boolean\n description?: string\n schema?: unknown\n}\n\nexport type PreviewEndpoint = {\n method: string\n path: string\n summary: string\n description: string\n parameters?: PreviewParameter[]\n requestDescription?: string\n requestSchema?: unknown\n requestExample?: unknown\n response?: string\n responseStatus?: string\n responseDescription?: string\n responseSchema?: unknown\n responseExample?: unknown\n}\n\ntype CreatePreviewOpenApiResult = {\n operation: OpenAPIOperation\n spec: OpenAPISpec\n parameters: OpenApiParameter[]\n}\n\ntype OpenApiExamplesPreviewProps = { endpoint: PreviewEndpoint }\n\ntype UsePreviewRequestStateArgs = {\n spec: OpenAPISpec\n operation: OpenAPIOperation\n}\n\nfunction usePreviewRequestState(arg0: UsePreviewRequestStateArgs) {\n const { spec, operation } = arg0\n const requestBody = getRequestBody(spec, operation)\n const requestContents = getMediaTypeEntries(requestBody?.content, spec)\n const [selectedRequestMediaType, setSelectedRequestMediaType] = useState(requestContents[0]?.mediaType ?? '')\n const selectedRequestContent = requestContents.find((content) => content.mediaType === selectedRequestMediaType) ?? requestContents[0]\n\n return {\n requestContents,\n selectedRequestContent,\n setSelectedRequestMediaType,\n }\n}\n\ntype UsePreviewIdentityStateArgs = {\n spec: OpenAPISpec\n operation: OpenAPIOperation\n path: string\n}\n\nfunction usePreviewIdentityState(arg0: UsePreviewIdentityStateArgs) {\n const { spec, operation, path } = arg0\n const servers = getServers(spec, operation, path)\n const [selectedServerKey, setSelectedServerKey] = useState(getServerKey(servers[0], 0))\n const selectedServer = servers.find((server, index) => getServerKey(server, index) === selectedServerKey) ?? servers[0]\n const [serverVariables, setServerVariables] = useState(defaultServerVariables(selectedServer))\n const [serverOpen, setServerOpen] = useState(false)\n\n const authOptions = getAuthOptions(spec, operation)\n const [selectedAuthName, setSelectedAuthName] = useState(authOptions[0]?.key ?? '')\n const selectedAuth = authOptions.find((option) => option.key === selectedAuthName)\n const [authValues, setAuthValues] = useState<Record<string, string>>({})\n const [authOpen, setAuthOpen] = useState(false)\n\n const authInput: RequestAuthInput[] | undefined = selectedAuth\n ? selectedAuth.schemes.map((option) => ({ name: option.name, scheme: option.scheme, value: authValues[option.name] ?? authPlaceholder(option) }))\n : undefined\n\n return {\n servers,\n selectedServerKey,\n selectedServer,\n serverVariables,\n serverOpen,\n authOptions,\n selectedAuthName,\n selectedAuth,\n authValues,\n authOpen,\n authInput,\n onSelectServer: (value: string) => {\n const nextServer = servers.find((server, index) => getServerKey(server, index) === value) ?? servers[0]\n setSelectedServerKey(value)\n setServerVariables(defaultServerVariables(nextServer))\n },\n onChangeServerVariable: (name: string, value: string) => {\n setServerVariables((current) => ({ ...current, [name]: value }))\n },\n onToggleServer: () => {\n setServerOpen((current) => !current)\n setAuthOpen(false)\n },\n onToggleAuth: () => {\n setAuthOpen((current) => !current)\n setServerOpen(false)\n },\n onSelectAuth: setSelectedAuthName,\n onChangeAuthValue: (name: string, value: string) => {\n setAuthValues((current) => ({ ...current, [name]: value }))\n },\n onClearAuthValue: (name: string) => {\n setAuthValues((current) => {\n const values = { ...current }\n delete values[name]\n return values\n })\n },\n onClearAuthValues: () => setAuthValues({}),\n }\n}\n\nfunction schemaFromType(type: string): unknown {\n if (type.endsWith('[]')) return { type: 'array', items: schemaFromType(type.slice(0, -2)) }\n if (type === 'number' || type === 'integer' || type === 'boolean' || type === 'object') return { type }\n return { type: 'string' }\n}\n\nfunction parseResponseExample(endpoint: PreviewEndpoint): unknown {\n if (typeof endpoint.responseExample !== 'undefined') return endpoint.responseExample\n if (!endpoint.response) return undefined\n\n try {\n return JSON.parse(endpoint.response)\n } catch {\n return endpoint.response\n }\n}\n\nfunction inferSchemaFromExample(example: unknown): unknown {\n if (Array.isArray(example)) {\n return { type: 'array', items: inferSchemaFromExample(example[0]) ?? { type: 'object' } }\n }\n\n if (typeof example === 'object' && example !== null) {\n return {\n type: 'object',\n properties: Object.fromEntries(Object.entries(example).map(([key, value]) => [key, inferSchemaFromExample(value)])),\n }\n }\n\n if (typeof example === 'number') return { type: Number.isInteger(example) ? 'integer' : 'number' }\n if (typeof example === 'boolean') return { type: 'boolean' }\n return typeof example === 'undefined' ? undefined : { type: 'string' }\n}\n\nfunction normalizeParameterLocation(location: string): string {\n return location === 'route' ? 'path' : location\n}\n\nfunction toOpenApiParameter(parameter: PreviewParameter): OpenApiParameter {\n return {\n name: parameter.name,\n in: normalizeParameterLocation(parameter.in),\n required: parameter.required,\n description: parameter.description,\n schema: parameter.schema ?? schemaFromType(parameter.type),\n }\n}\n\nfunction createPreviewOpenApi(endpoint: PreviewEndpoint): CreatePreviewOpenApiResult {\n const method = endpoint.method.toLowerCase()\n const parameters = (endpoint.parameters ?? []).map(toOpenApiParameter)\n const responseExample = parseResponseExample(endpoint)\n const responseSchema = endpoint.responseSchema ?? inferSchemaFromExample(responseExample)\n const requestSchema = endpoint.requestSchema ?? inferSchemaFromExample(endpoint.requestExample)\n const operation = {\n summary: endpoint.summary,\n description: endpoint.description,\n parameters,\n requestBody: requestSchema\n ? {\n description: endpoint.requestDescription,\n required: true,\n content: {\n 'application/json': {\n schema: requestSchema,\n example: endpoint.requestExample,\n },\n },\n }\n : undefined,\n responses: {\n [endpoint.responseStatus ?? '200']: {\n description: endpoint.responseDescription ?? 'OK',\n content: {\n 'application/json': {\n schema: responseSchema,\n example: responseExample,\n },\n },\n },\n },\n } as OpenAPIOperation\n const spec = {\n openapi: '3.1.0',\n info: {\n title: 'Clarify Build API',\n version: '2026-06-20',\n description: 'API reference generated from OpenAPI and rendered as static documentation.',\n },\n servers: [\n {\n url: 'https://server',\n description: 'Production',\n },\n {\n url: 'https://test-server',\n description: 'Test',\n },\n ],\n components: {\n securitySchemes: {\n bearerAuth: {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n },\n },\n },\n security: [{ bearerAuth: [] }],\n paths: {\n [endpoint.path]: {\n [method]: operation,\n },\n },\n } as OpenAPISpec\n\n return { operation, spec, parameters }\n}\n\nexport function OpenApiExamplesPreview(arg0: OpenApiExamplesPreviewProps) {\n const { endpoint } = arg0\n const { operation, spec, parameters } = createPreviewOpenApi(endpoint)\n const method = endpoint.method.toUpperCase()\n const { requestContents, selectedRequestContent, setSelectedRequestMediaType } = usePreviewRequestState({ spec, operation })\n const identityState = usePreviewIdentityState({ spec, operation, path: endpoint.path })\n\n function renderIdentity() {\n return (\n <EndpointIdentity\n method={method}\n path={endpoint.path}\n operationSource=\"path\"\n servers={identityState.servers}\n selectedServerKey={identityState.selectedServerKey}\n selectedServer={identityState.selectedServer}\n serverVariables={identityState.serverVariables}\n serverOpen={identityState.serverOpen}\n onSelectServer={identityState.onSelectServer}\n onChangeServerVariable={identityState.onChangeServerVariable}\n onToggleServer={identityState.onToggleServer}\n />\n )\n }\n\n function renderExamples() {\n return (\n <div className=\"grid min-w-0 gap-4 lg:grid-cols-2\">\n <RequestExamplesPanel\n spec={spec}\n path={endpoint.path}\n method={method}\n parameters={parameters}\n requestContents={requestContents}\n selectedMediaType={selectedRequestContent?.mediaType ?? ''}\n onSelectMediaType={setSelectedRequestMediaType}\n selectedServer={identityState.selectedServer}\n serverVariables={identityState.serverVariables}\n auth={identityState.authInput}\n />\n <ResponseExamplesPanel operation={operation} spec={spec} />\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n {renderIdentity()}\n {renderExamples()}\n </div>\n )\n}\n","import { Menu, X } from 'lucide-react'\nimport type { ReactNode } from 'react'\nimport { useState } from 'react'\n\nimport { SectionProvider } from './app/SectionProvider'\nimport type { Section } from './app/SectionProvider'\nimport { ConfigContext, LocaleContext, OpenApiSpecsContext } from './core/context'\nimport { OpenApiExamplesPreview } from './preview/openapi'\nimport type { PreviewEndpoint } from './preview/openapi'\nimport { Navigation } from './shell'\nimport type { Config, NavigationNode } from './types'\n\nexport type PreviewGuide = {\n label: string\n title: string\n body: string\n embed: string\n outputs?: string[]\n}\n\nexport type PreviewMetric = {\n label: string\n value: string\n hint?: string\n}\n\nexport type PreviewCard = {\n title: string\n description: string\n}\n\nconst embeddedEndpoint = {\n method: 'GET',\n path: '/examples/basic-request',\n summary: 'Basic request',\n description: 'Rendered from api.openapi.json inside the MDX guide.',\n parameters: [\n { name: 'cursor', in: 'query', type: 'string', description: 'Start after this cursor.' },\n { name: 'limit', in: 'query', type: 'integer', description: 'Max items to return.' },\n { name: 'X-Trace-Id', in: 'header', type: 'string', description: 'Optional request trace.' },\n ],\n responseDescription: 'A page of example records.',\n responseSchema: {\n type: 'object',\n required: ['items'],\n properties: {\n items: { type: 'array', items: { type: 'object' } },\n next: { type: 'string' },\n },\n },\n responseExample: {\n items: [],\n next: 'cursor_2',\n },\n} satisfies PreviewEndpoint\n\nconst embeddedGuide = {\n label: 'source/en-US/openapi/embedding.mdx',\n title: 'Embed OpenAPI in MDX',\n body: 'Use MDX for workflow context, then render the exact operation from the spec.',\n embed: '<OpenApiOperation specPath=\"/api\" path=\"/examples/basic-request\" method=\"get\" />',\n outputs: ['/openapi/embedding', '/api', '/api.openapi.json', '/llms.txt'],\n} satisfies PreviewGuide\n\nconst staticOutputEndpoint = {\n method: 'POST',\n path: '/api/{id}/path',\n summary: 'Create static build',\n description: 'Build static docs from MDX and OpenAPI sources.',\n parameters: [\n { name: 'id', in: 'path', type: 'string', required: true, description: 'Project ID.' }\n ],\n responseDescription: 'Build metadata and static outputs.',\n responseSchema: {\n type: 'object',\n required: ['id', 'status', 'outputs'],\n properties: {\n id: { type: 'string', description: 'Build identifier.' },\n status: { type: 'string', enum: ['queued', 'running', 'ready'], description: 'Current build state.' },\n outputs: {\n type: 'array',\n description: 'Generated static artifacts.',\n items: {\n type: 'object',\n required: ['path', 'kind'],\n properties: {\n path: { type: 'string' },\n kind: { type: 'string', enum: ['html', 'asset', 'openapi', 'llms'] },\n },\n },\n },\n },\n },\n requestDescription: 'Static build options.',\n requestSchema: {\n type: 'object',\n required: ['source', 'output'],\n properties: {\n source: { type: 'string', description: 'MDX source root.' },\n output: { type: 'string', description: 'Static output root.' },\n includeSearchIndex: { type: 'boolean', description: 'Generate search data.' },\n },\n },\n requestExample: {\n source: 'source',\n output: 'output',\n includeSearchIndex: true,\n },\n responseExample: {\n id: 'build_01HY',\n status: 'ready',\n outputs: [\n { path: '/openapi/index.html', kind: 'html' },\n { path: '/api.openapi.json', kind: 'openapi' },\n { path: '/llms.txt', kind: 'llms' },\n ],\n },\n} satisfies PreviewEndpoint\n\nconst previewConfig = {\n title: 'Clarify preview',\n description: 'Renderer preview environment',\n routePrefix: '/',\n assetPrefix: '/',\n theme: {\n preset: 'default',\n tokens: {\n colors: {\n primary: '#2563eb',\n accent: '#60a5fa',\n background: '#ffffff',\n foreground: '#18181b',\n surface: '#ffffff',\n muted: '#71717a',\n border: 'rgb(24 24 27 / 0.1)',\n codeBackground: '#f4f4f5',\n },\n radius: {\n sm: '0.375rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n },\n },\n layout: {\n maxWidth: '88rem',\n },\n },\n locales: {\n default: 'en',\n missing: 'fallback',\n locales: [{ code: 'en', label: 'English' }],\n },\n variables: {},\n features: {\n search: { enabled: true, mcp: true },\n repository: { enabled: true },\n themeEditor: { enabled: true },\n openapi: { enabled: true, playground: true },\n },\n} satisfies Config\n\nconst methodStyleVars: Record<string, string> = {\n GET: 'bg-(--clarify-http-method-get-background) text-(--clarify-http-method-get-text)',\n POST: 'bg-(--clarify-http-method-post-background) text-(--clarify-http-method-post-text)',\n PUT: 'bg-(--clarify-http-method-put-background) text-(--clarify-http-method-put-text)',\n PATCH: 'bg-(--clarify-http-method-patch-background) text-(--clarify-http-method-patch-text)',\n DELETE: 'bg-(--clarify-http-method-delete-background) text-(--clarify-http-method-delete-text)',\n}\n\nconst mainPreviewPath = '/openapi/embedding'\n\nconst mainPreviewSections = [\n { id: 'overview', title: 'Overview' },\n { id: 'request-example', title: 'Request example' }\n] satisfies Section[]\n\ntype PreviewEnvironmentProps = { children: ReactNode; initialEntry?: string; sections?: Section[] }\n\nfunction PreviewEnvironment(arg0: PreviewEnvironmentProps) {\n const { children, sections = [] } = arg0\n\n return (\n <ConfigContext.Provider value={previewConfig}>\n <LocaleContext.Provider value={previewConfig.locales.default}>\n <OpenApiSpecsContext.Provider value={{}}>\n <SectionProvider sections={sections}>\n {children}\n </SectionProvider>\n </OpenApiSpecsContext.Provider>\n </LocaleContext.Provider>\n </ConfigContext.Provider>\n )\n}\n\ntype ChromeProps = { title: string; status?: string; headerAction?: ReactNode; children: ReactNode }\n\nfunction Chrome(arg0: ChromeProps) {\n const { title, status, headerAction, children } = arg0\n\n return (\n <div className=\"clarify-app clarify-preview h-full overflow-hidden bg-(--clarify-theme-tokens-colors-background) text-(--clarify-ui-text) shadow-2xl ring-1 ring-(--clarify-theme-tokens-colors-border) dark:bg-zinc-950 dark:text-white dark:ring-white/10\">\n <div className=\"flex items-center gap-3 border-b border-(--clarify-theme-tokens-colors-border) px-4 py-3 text-xs/6 text-(--clarify-ui-text-faint) dark:border-white/10\">\n <span className=\"size-2 rounded-full bg-rose-400\" />\n <span className=\"size-2 rounded-full bg-amber-400\" />\n <span className=\"size-2 rounded-full bg-emerald-400\" />\n <span className=\"ml-2 min-w-0 flex-1 truncate font-medium text-(--clarify-ui-text-soft)\">{title}</span>\n {status ? <span className=\"hidden rounded-full bg-emerald-400/15 px-2 py-0.5 font-medium text-emerald-700 sm:inline dark:text-emerald-300\">{status}</span> : null}\n {headerAction}\n </div>\n {children}\n </div>\n )\n}\n\ntype MethodBadgeProps = { method: string }\n\nfunction MethodBadge(arg0: MethodBadgeProps) {\n const method = arg0.method.toUpperCase()\n\n return (\n <span className={`rounded-md px-2.5 py-0.5 text-xs/6 font-black tracking-wide ${methodStyleVars[method] ?? 'bg-(--clarify-http-method-default-background) text-(--clarify-http-method-default-text)'}`}>\n {method}\n </span>\n )\n}\n\ntype CreatePreviewNavigationProps = { endpoint: PreviewEndpoint; guide?: PreviewGuide; outputs: string[] }\n\nfunction createPreviewNavigation(arg0: CreatePreviewNavigationProps): NavigationNode[] {\n const { endpoint, guide, outputs } = arg0\n\n return [\n {\n title: 'Guides',\n path: '/guides',\n icon: 'BookOpenText',\n children: [\n { title: guide?.title ?? 'MDX guide', path: mainPreviewPath, icon: 'FileText' },\n { title: 'Getting started', path: '/getting-started', icon: 'Rocket' },\n ],\n },\n {\n title: 'API Reference',\n path: '/api',\n icon: 'Braces',\n children: [\n { title: endpoint.summary, path: endpoint.path, icon: 'Cable' },\n { title: 'Generate static output', path: staticOutputEndpoint.path, icon: 'UploadCloud' },\n ],\n },\n {\n title: 'Build Output',\n path: '/output',\n icon: 'PackageCheck',\n children: [\n { title: `Routes (${outputs.length})`, path: '/output/routes', icon: 'ListTree' }\n ],\n },\n ] satisfies NavigationNode[]\n}\n\ntype PreviewNavigationProps = { endpoint: PreviewEndpoint; guide?: PreviewGuide; outputs: string[] }\n\nfunction PreviewNavigation(arg0: PreviewNavigationProps) {\n return <Navigation navigation={createPreviewNavigation(arg0)} className=\"px-2\" />\n}\n\ntype MainPreviewMobileNavigationProps = PreviewNavigationProps & { isOpen: boolean; onClose: () => void }\n\nfunction MainPreviewMobileNavigation(arg0: MainPreviewMobileNavigationProps) {\n const { isOpen, onClose, ...navigationProps } = arg0\n const navigationId = 'clarify-main-preview-mobile-navigation'\n\n return (\n <div className=\"clarify-preview-mobile-navigation pointer-events-none absolute inset-0 z-20\">\n {isOpen ? (\n <button\n type=\"button\"\n className=\"absolute inset-0 bg-zinc-950/20 backdrop-blur-[1px] dark:bg-black/30\"\n aria-label=\"Close documentation menu\"\n onClick={onClose}\n />\n ) : null}\n <aside\n id={navigationId}\n className=\"pointer-events-auto absolute top-0 bottom-0 left-0 w-64 max-w-[82%] overflow-y-auto border-r border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-background) px-1 py-4 text-sm/7 shadow-2xl shadow-zinc-900/20 transition-transform duration-200 ease-out data-closed:-translate-x-full dark:border-white/10 dark:bg-zinc-950 dark:shadow-black/40\"\n data-closed={!isOpen ? 'true' : undefined}\n >\n <PreviewNavigation {...navigationProps} />\n </aside>\n </div>\n )\n}\n\ntype PreviewMetricGridProps = { metrics: PreviewMetric[] }\n\nfunction PreviewMetricGrid(arg0: PreviewMetricGridProps) {\n const { metrics } = arg0\n\n return (\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-3\">\n {metrics.map((metric) => (\n <div key={metric.label} className=\"rounded-xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-2.5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <div className=\"text-xs/5 text-(--clarify-ui-text-faint)\">{metric.label}</div>\n <div className=\"text-base/6 font-semibold text-(--clarify-ui-text-strong)\">{metric.value}</div>\n {metric.hint ? <div className=\"text-xs/5 text-(--clarify-ui-text-faint)\">{metric.hint}</div> : null}\n </div>\n ))}\n </div>\n )\n}\n\ntype PreviewLabelProps = { children: ReactNode }\n\nfunction PreviewLabel(arg0: PreviewLabelProps) {\n return <div className=\"text-xs/5 font-semibold uppercase tracking-wider text-(--clarify-ui-text-faint)\">{arg0.children}</div>\n}\n\ntype GuideSummaryPreviewProps = { guide: PreviewGuide }\n\nfunction GuideSummaryPreview(arg0: GuideSummaryPreviewProps) {\n const { guide } = arg0\n\n return (\n <header className=\"border-b border-(--clarify-theme-tokens-colors-border) pb-4 dark:border-white/10\">\n <PreviewLabel>{guide.label}</PreviewLabel>\n <h2 className=\"mt-1 text-xl/7 font-semibold tracking-tight text-(--clarify-ui-text-strong)\">{guide.title}</h2>\n <p className=\"mt-2 max-w-2xl text-sm/6 text-(--clarify-ui-text-soft)\">{guide.body}</p>\n <pre className=\"mt-3 overflow-hidden rounded-xl bg-zinc-950 px-3 py-2 text-xs/5 whitespace-pre-wrap text-zinc-300\">{guide.embed}</pre>\n </header>\n )\n}\n\ntype EndpointSummaryPreviewProps = { endpoint: PreviewEndpoint }\n\nfunction EndpointSummaryPreview(arg0: EndpointSummaryPreviewProps) {\n const { endpoint } = arg0\n\n return (\n <div className=\"min-w-0\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <MethodBadge method={endpoint.method} />\n <code className=\"text-sm font-medium text-(--clarify-ui-text)\">{endpoint.path}</code>\n </div>\n <h3 className=\"mt-3 text-lg/7 font-semibold tracking-tight text-(--clarify-ui-text-strong)\">{endpoint.summary}</h3>\n <p className=\"mt-1 text-sm/6 text-(--clarify-ui-text-soft)\">{endpoint.description}</p>\n </div>\n )\n}\n\ntype EmbeddedApiPreviewProps = { endpoint: PreviewEndpoint }\n\nfunction EmbeddedApiPreview(arg0: EmbeddedApiPreviewProps) {\n const { endpoint } = arg0\n\n return (\n <div className=\"clarify-preview-api-frame min-w-0 overflow-hidden border-t border-(--clarify-theme-tokens-colors-border) pt-4 dark:border-white/10\">\n <div className=\"clarify-preview-api-content clarify-preview-api-content-embedded\">\n <OpenApiExamplesPreview endpoint={endpoint} />\n </div>\n </div>\n )\n}\n\ntype OutputListPreviewProps = { outputs: string[] }\n\nfunction OutputListPreview(arg0: OutputListPreviewProps) {\n const { outputs } = arg0\n\n return (\n <div className=\"border-t border-(--clarify-theme-tokens-colors-border) pt-4 dark:border-white/10\">\n <PreviewLabel>Static output</PreviewLabel>\n <div className=\"mt-3 grid gap-2 sm:grid-cols-2 xl:grid-cols-4\">\n {outputs.map((output) => (\n <div key={output} className=\"flex items-center gap-2 rounded-lg bg-(--clarify-ui-subtle-background) px-3 py-2 text-xs/5 text-(--clarify-ui-text-soft) dark:bg-white/5\">\n <span className=\"size-1.5 rounded-full bg-emerald-400\" />\n <span className=\"truncate font-mono\">{output}</span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nfunction MainContentPreview() {\n return (\n <section className=\"min-w-0 bg-(--clarify-theme-tokens-colors-background) px-5 py-4 dark:bg-zinc-950\">\n <div className=\"clarify-preview-content-window overflow-hidden\">\n <div className=\"space-y-4\">\n <GuideSummaryPreview guide={embeddedGuide} />\n <PreviewMetricGrid metrics={[\n { label: 'MDX', value: 'Guide', hint: 'context' },\n { label: 'Spec', value: 'OpenAPI', hint: 'source' },\n { label: 'Out', value: 'Static', hint: 'CDN' },\n ]} />\n <div className=\"clarify-preview-endpoint-grid grid gap-4\">\n <EndpointSummaryPreview endpoint={embeddedEndpoint} />\n <EmbeddedApiPreview endpoint={embeddedEndpoint} />\n </div>\n <OutputListPreview outputs={embeddedGuide.outputs ?? []} />\n </div>\n </div>\n </section>\n )\n}\n\nexport function MainPreview() {\n const [isMobileNavigationOpen, setMobileNavigationOpen] = useState(false)\n const navigationProps = { endpoint: embeddedEndpoint, guide: embeddedGuide, outputs: embeddedGuide.outputs ?? [] }\n\n return (\n <PreviewEnvironment initialEntry={mainPreviewPath} sections={mainPreviewSections}>\n <Chrome\n title=\"source/en-US/openapi/embedding.mdx\"\n status=\"Rendered from OpenAPI + MDX\"\n headerAction={\n <button\n type=\"button\"\n className=\"clarify-preview-mobile-menu-button -my-1 flex size-7 items-center justify-center rounded-(--clarify-theme-tokens-radius-md) text-(--clarify-ui-text-strong) transition hover:bg-(--clarify-ui-hover-background)\"\n aria-controls=\"clarify-main-preview-mobile-navigation\"\n aria-expanded={isMobileNavigationOpen}\n aria-label={isMobileNavigationOpen ? 'Close documentation menu' : 'Open documentation menu'}\n onClick={() => setMobileNavigationOpen((value) => !value)}\n >\n {isMobileNavigationOpen ? <X className=\"h-4 w-4 shrink-0\" /> : <Menu className=\"h-4 w-4 shrink-0\" />}\n </button>\n }\n >\n <div className=\"clarify-preview-shell relative grid overflow-hidden\">\n <MainPreviewMobileNavigation {...navigationProps} isOpen={isMobileNavigationOpen} onClose={() => setMobileNavigationOpen(false)} />\n <aside className=\"clarify-preview-sidebar border-r border-(--clarify-theme-tokens-colors-border) px-1 py-4 text-sm/7 dark:border-white/10 dark:bg-white/5\">\n <PreviewNavigation {...navigationProps} />\n </aside>\n <MainContentPreview />\n </div>\n </Chrome>\n </PreviewEnvironment>\n )\n}\n\nexport function MdxPreview() {\n return (\n <PreviewEnvironment>\n <Chrome title=\"source/started/index.mdx\" status=\"Rendered by renderer\">\n <div className=\"clarify-preview-body overflow-x-hidden overflow-y-auto bg-(--clarify-theme-tokens-colors-background) p-4 sm:p-5 dark:bg-zinc-950\">\n <article className=\"max-w-3xl text-sm/7 text-(--clarify-ui-text-soft)\">\n <div className=\"inline-flex rounded-full bg-(--clarify-ui-accent-background) px-3 py-1 text-xs/5 font-semibold text-(--clarify-ui-accent-text)\">MDX page</div>\n <h2 className=\"mt-3 text-xl/7 font-semibold tracking-tight text-(--clarify-ui-text-strong) sm:text-2xl/8\">Get Started</h2>\n <p className=\"mt-3\">Write pages in source/. Clarify turns MDX, config, and OpenAPI files into routes.</p>\n <div className=\"mt-4 rounded-2xl border border-(--clarify-ui-accent-border) bg-(--clarify-ui-accent-background) p-4 text-sm/6 text-(--clarify-ui-text-strong) sm:mt-5\">\n <div className=\"font-semibold text-(--clarify-ui-text-strong)\">Static output ready</div>\n <p className=\"mt-1\">output/ is plain static files.</p>\n </div>\n <div className=\"mt-4 grid gap-3 sm:mt-5 sm:grid-cols-2 sm:gap-4\">\n <div className=\"rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <h3 className=\"text-base/6 font-semibold text-(--clarify-ui-text-strong)\">MDX pages</h3>\n <p className=\"mt-2 text-sm/6\">Guides live beside code.</p>\n </div>\n <div className=\"rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <h3 className=\"text-base/6 font-semibold text-(--clarify-ui-text-strong)\">API embeds</h3>\n <p className=\"mt-2 text-sm/6\">Specs render inline.</p>\n </div>\n </div>\n <div className=\"mt-5 rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-sm dark:border-white/10 dark:bg-zinc-900/50\">\n <div className=\"flex items-center gap-3\">\n <MethodBadge method={embeddedEndpoint.method} />\n <code className=\"text-sm font-medium text-(--clarify-ui-text)\">{embeddedEndpoint.path}</code>\n </div>\n <p className=\"mt-3 text-sm/6\">{embeddedEndpoint.description}</p>\n </div>\n </article>\n </div>\n </Chrome>\n </PreviewEnvironment>\n )\n}\n\nexport function OpenApiPreview() {\n return (\n <PreviewEnvironment>\n <Chrome title=\"source/api.openapi.json\" status=\"Endpoint + examples\">\n <div className=\"clarify-preview-openapi-window overflow-x-hidden overflow-y-auto bg-(--clarify-theme-tokens-colors-background) px-3 py-3 sm:px-4 sm:py-4 dark:bg-zinc-950\">\n <div className=\"clarify-preview-openapi-mask min-h-full\">\n <div className=\"clarify-preview-api-content clarify-preview-api-content-openapi origin-top pb-6 sm:pb-10\">\n <OpenApiExamplesPreview endpoint={staticOutputEndpoint} />\n </div>\n </div>\n </div>\n </Chrome>\n </PreviewEnvironment>\n )\n}\n"],"mappings":"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"}