@clarify-labs/renderer 0.11.4 → 0.11.5

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 (56) hide show
  1. package/output/{ClarifyShell-Cvb7Nk3A.cjs → ClarifyShell-BbD82nrc.cjs} +50 -22
  2. package/output/ClarifyShell-BbD82nrc.cjs.map +1 -0
  3. package/output/{ClarifyShell-gzlibEm8.js → ClarifyShell-BwqLbTI-.js} +50 -22
  4. package/output/ClarifyShell-BwqLbTI-.js.map +1 -0
  5. package/output/{MermaidViewer-CPuTNujY.cjs → MermaidViewer-CO1rhB6A.cjs} +2 -2
  6. package/output/{MermaidViewer-CPuTNujY.cjs.map → MermaidViewer-CO1rhB6A.cjs.map} +1 -1
  7. package/output/{MermaidViewer-EVuBmrzA.js → MermaidViewer-D1wiX_T9.js} +2 -2
  8. package/output/{MermaidViewer-EVuBmrzA.js.map → MermaidViewer-D1wiX_T9.js.map} +1 -1
  9. package/output/{OpenApiOperation-QqYCuqve.cjs → OpenApiOperation-C77uiDjW.cjs} +62 -58
  10. package/output/OpenApiOperation-C77uiDjW.cjs.map +1 -0
  11. package/output/{OpenApiOperation-Ddax6Pen.js → OpenApiOperation-CbdKZMO1.js} +61 -57
  12. package/output/OpenApiOperation-CbdKZMO1.js.map +1 -0
  13. package/output/{PageActions-BBRz0tJ4.js → PageActions-DviEypf6.js} +41 -43
  14. package/output/PageActions-DviEypf6.js.map +1 -0
  15. package/output/{PageActions-ypH6U0Vc.cjs → PageActions-ob2OJusG.cjs} +41 -43
  16. package/output/PageActions-ob2OJusG.cjs.map +1 -0
  17. package/output/{SearchDialog-Df6jknma.js → SearchDialog-89JAjQMh.js} +3 -3
  18. package/output/{SearchDialog-Df6jknma.js.map → SearchDialog-89JAjQMh.js.map} +1 -1
  19. package/output/{SearchDialog-DCGBhNnW.cjs → SearchDialog-CTiUIKeo.cjs} +3 -3
  20. package/output/{SearchDialog-DCGBhNnW.cjs.map → SearchDialog-CTiUIKeo.cjs.map} +1 -1
  21. package/output/app/AppShell.d.ts +1 -0
  22. package/output/app/ContentDiagnostic.d.ts +1 -1
  23. package/output/client.cjs +3 -3
  24. package/output/client.js +3 -3
  25. package/output/{i18n-LXAq0RIC.js → i18n-Cff810G_.js} +3 -3
  26. package/output/i18n-Cff810G_.js.map +1 -0
  27. package/output/{i18n-Ds-f-qlT.cjs → i18n-Cjfk1N7i.cjs} +3 -3
  28. package/output/i18n-Cjfk1N7i.cjs.map +1 -0
  29. package/output/index.cjs +20 -20
  30. package/output/index.cjs.map +1 -1
  31. package/output/index.js +20 -20
  32. package/output/index.js.map +1 -1
  33. package/output/openapi/components/OpenApiRequest.d.ts +1 -0
  34. package/output/openapi/components/useOpenApiRequestState.d.ts +1 -1
  35. package/output/openapi/entry.d.ts +4 -3
  36. package/output/openapi/lib/utils.d.ts +1 -0
  37. package/output/preview.cjs +4 -4
  38. package/output/preview.cjs.map +1 -1
  39. package/output/preview.js +4 -4
  40. package/output/preview.js.map +1 -1
  41. package/output/{render-BQkaRYoY.cjs → render-BhVJVa1q.cjs} +2 -2
  42. package/output/{render-BQkaRYoY.cjs.map → render-BhVJVa1q.cjs.map} +1 -1
  43. package/output/{render-C2rZuVLy.js → render-PDmRKKJm.js} +2 -2
  44. package/output/{render-C2rZuVLy.js.map → render-PDmRKKJm.js.map} +1 -1
  45. package/output/renderer.css +4 -16
  46. package/output/server.cjs +2 -2
  47. package/output/server.js +2 -2
  48. package/package.json +1 -1
  49. package/output/ClarifyShell-Cvb7Nk3A.cjs.map +0 -1
  50. package/output/ClarifyShell-gzlibEm8.js.map +0 -1
  51. package/output/OpenApiOperation-Ddax6Pen.js.map +0 -1
  52. package/output/OpenApiOperation-QqYCuqve.cjs.map +0 -1
  53. package/output/PageActions-BBRz0tJ4.js.map +0 -1
  54. package/output/PageActions-ypH6U0Vc.cjs.map +0 -1
  55. package/output/i18n-Ds-f-qlT.cjs.map +0 -1
  56. package/output/i18n-LXAq0RIC.js.map +0 -1
package/output/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import { A as Code, C as GridPattern, D as Tag, E as Heading, F as CardGroup, I as Callout, L as Button, M as Pre, N as Mermaid, O as Feedback, P as Card, S as Prose, T as Logo, _ as WebFrame, b as Step, d as getOpenApiOperationEntry, f as listOpenApiOperations, g as primitives_exports, h as Markdown, j as CodeGroup, k as Collapse, n as OpenApiOperation$1, r as OpenApiRequestWorkbench, v as TabItem, w as HeroPattern, x as Steps, y as Tabs } from "./OpenApiOperation-Ddax6Pen.js";
2
- import { a as useConfig, c as useOpenApiSpecs, i as OpenApiSpecsContext, s as useLocale, t as useBuiltInText } from "./i18n-LXAq0RIC.js";
3
- import { a as themeBootstrapScript, c as AppShell, d as RenderErrorPanel, f as BuiltWithClarify, g as useSlot, h as SlotProvider, i as themeEditorPresets, l as PageFooter, m as RuntimeSlotsProvider, n as ThemeEditor, o as themePresets, p as RuntimeSlot, r as applyThemeVariables, u as PageBanner } from "./ClarifyShell-gzlibEm8.js";
4
- import { a as SectionProvider, h as useTheme, m as ThemeProvider, o as useSectionStore, p as ThemeToggle, s as remToPx, t as PageActions } from "./PageActions-BBRz0tJ4.js";
1
+ import { A as Code, C as GridPattern, D as Tag, E as Heading, F as CardGroup, I as Callout, L as Button, M as Pre, N as Mermaid, O as Feedback, P as Card, S as Prose, T as Logo, _ as WebFrame, b as Step, d as getOpenApiOperationEntryById, f as listOpenApiOperations, g as primitives_exports, h as Markdown, j as CodeGroup, k as Collapse, n as OpenApiOperation$1, r as OpenApiRequestWorkbench, v as TabItem, w as HeroPattern, x as Steps, y as Tabs } from "./OpenApiOperation-CbdKZMO1.js";
2
+ import { a as useConfig, c as useOpenApiSpecs, i as OpenApiSpecsContext, s as useLocale, t as useBuiltInText } from "./i18n-Cff810G_.js";
3
+ import { a as themeBootstrapScript, c as AppShell, d as RenderErrorPanel, f as BuiltWithClarify, g as useSlot, h as SlotProvider, i as themeEditorPresets, l as PageFooter, m as RuntimeSlotsProvider, n as ThemeEditor, o as themePresets, p as RuntimeSlot, r as applyThemeVariables, u as PageBanner } from "./ClarifyShell-BwqLbTI-.js";
4
+ import { a as SectionProvider, h as useTheme, m as ThemeProvider, o as useSectionStore, p as ThemeToggle, s as remToPx, t as PageActions } from "./PageActions-DviEypf6.js";
5
5
  import { n as parseCodeMeta, t as markdownRemarkPlugins } from "./remark-C9iRQM0R.js";
6
- import { t as render } from "./render-C2rZuVLy.js";
6
+ import { t as render } from "./render-PDmRKKJm.js";
7
7
  import { useEffect, useState } from "react";
8
8
  import { useLocation } from "react-router-dom";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -12,11 +12,11 @@ function ContentDiagnosticPanel(params) {
12
12
  const { data } = params;
13
13
  const typeLabel = {
14
14
  markdown: "Markdown",
15
- mdx: "MDX",
15
+ "markdown+jsx": "MDX",
16
16
  openapi: "OpenAPI",
17
17
  "route-load": "Route"
18
18
  }[data.kind];
19
- const detailsLabel = data.kind === "mdx" || data.kind === "markdown" ? "Why it happened" : "Details";
19
+ const detailsLabel = data.kind === "markdown+jsx" || data.kind === "markdown" ? "Why it happened" : "Details";
20
20
  return /* @__PURE__ */ jsx(RenderErrorPanel, {
21
21
  title: data.title,
22
22
  description: data.message,
@@ -201,51 +201,51 @@ function OpenApiDocument(arg0) {
201
201
  });
202
202
  }
203
203
  function OpenApiOperationWithSpec(arg0) {
204
- const { spec, path, method } = arg0;
204
+ const { spec, operationId } = arg0;
205
205
  const t = useBuiltInText();
206
- const entry = getOpenApiOperationEntry(spec, path, method);
206
+ const entry = getOpenApiOperationEntryById(spec, operationId);
207
207
  if (!entry) return /* @__PURE__ */ jsx(WarningBox, {
208
208
  tone: "red",
209
- children: t("openapi.endpointNotFound", { endpoint: `${method.toUpperCase()} ${path}` })
209
+ children: t("openapi.endpointNotFound", { endpoint: operationId })
210
210
  });
211
211
  const normalizedMethod = entry.method.toUpperCase();
212
212
  return /* @__PURE__ */ jsx(OpenApiOperation$1, {
213
213
  spec,
214
- path,
214
+ path: entry.path,
215
215
  method: normalizedMethod,
216
216
  operation: entry.operation,
217
217
  operationSource: entry.source
218
- }, `${entry.source}-${normalizedMethod}-${path}`);
218
+ }, `${entry.source}-${normalizedMethod}-${entry.path}`);
219
219
  }
220
220
  function OpenApiOperation(arg0) {
221
- const { specPath, path, method } = arg0;
221
+ const { specPath, operationId } = arg0;
222
222
  const t = useBuiltInText();
223
223
  const { spec, loading } = useOpenApiSpec(void 0, specPath);
224
224
  if (loading) return /* @__PURE__ */ jsx(WarningBox, { children: t("openapi.loading") });
225
225
  if (!spec) return /* @__PURE__ */ jsx(WarningBox, { children: t("openapi.specNotFound", { specPath }) });
226
226
  return /* @__PURE__ */ jsx(OpenApiOperationWithSpec, {
227
227
  spec,
228
- path,
229
- method
228
+ operationId
230
229
  });
231
230
  }
232
231
  function OpenApiRequest(arg0) {
233
- const { specPath, path, method } = arg0;
232
+ const { specPath, operationId, requestExample } = arg0;
234
233
  const t = useBuiltInText();
235
234
  const { spec, loading } = useOpenApiSpec(void 0, specPath);
236
235
  if (loading) return /* @__PURE__ */ jsx(WarningBox, { children: t("openapi.loading") });
237
236
  if (!spec) return /* @__PURE__ */ jsx(WarningBox, { children: t("openapi.specNotFound", { specPath }) });
238
- const entry = getOpenApiOperationEntry(spec, path, method);
237
+ const entry = getOpenApiOperationEntryById(spec, operationId);
239
238
  if (!entry) return /* @__PURE__ */ jsx(WarningBox, {
240
239
  tone: "red",
241
- children: t("openapi.endpointNotFound", { endpoint: `${method.toUpperCase()} ${path}` })
240
+ children: t("openapi.endpointNotFound", { endpoint: operationId })
242
241
  });
243
242
  return /* @__PURE__ */ jsx(OpenApiRequestWorkbench, {
244
243
  spec,
245
- path,
244
+ path: entry.path,
246
245
  method: entry.method.toUpperCase(),
247
246
  operation: entry.operation,
248
- operationSource: entry.source
247
+ operationSource: entry.source,
248
+ requestExample
249
249
  });
250
250
  }
251
251
  function createOpenApiRouteComponent(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../source/app/ContentDiagnostic.tsx","../source/openapi/lib/spec-path.ts","../source/openapi/entry.tsx","../source/mdx/components.ts","../source/mdx/DocShell.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\n\nimport { RenderErrorPanel } from './RenderErrorPanel'\n\nexport type ContentDiagnosticKind = 'markdown' | 'mdx' | 'openapi' | 'route-load'\n\nexport type ContentDiagnostic = {\n kind: ContentDiagnosticKind\n title: string\n message: string\n details?: string\n filePath?: string\n}\n\ntype ContentDiagnosticPanelProps = {\n data: ContentDiagnostic\n}\n\nfunction ContentDiagnosticPanel(params: ContentDiagnosticPanelProps) {\n const { data } = params\n const typeLabels: Record<ContentDiagnosticKind, string> = {\n markdown: 'Markdown',\n mdx: 'MDX',\n openapi: 'OpenAPI',\n 'route-load': 'Route',\n }\n const typeLabel = typeLabels[data.kind]\n const detailsLabel = data.kind === 'mdx' || data.kind === 'markdown' ? 'Why it happened' : 'Details'\n const pathLabel = 'File'\n\n return (\n <RenderErrorPanel\n title={data.title}\n description={data.message}\n titleId=\"clarify-content-diagnostic-title\"\n metadata={[\n { label: pathLabel, value: data.filePath ?? 'Unknown' },\n { label: 'Type', value: typeLabel },\n ]}\n detailsLabel={detailsLabel}\n detailsContent={data.details ? (\n <pre className=\"max-h-(--clarify-error-details-max-height) overflow-auto whitespace-pre-wrap wrap-break-word font-mono\">\n {data.details}\n </pre>\n ) : null}\n />\n )\n}\n\nexport function createContentDiagnosticComponent(data: ContentDiagnostic): ComponentType {\n return function ContentDiagnosticComponent() {\n return <ContentDiagnosticPanel data={data} />\n }\n}\n","import { useEffect, useState } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useConfig, useLocale, useOpenApiSpecs } from '../../core/context'\n\nimport type { OpenAPISpec } from './utils'\n\ntype OpenApiSpecResult = {\n spec: OpenAPISpec | null\n loading: boolean\n}\n\ntype OpenApiSpecModule = { default: OpenAPISpec } | OpenAPISpec\n\ntype LoadedSpecState = {\n loader?: () => Promise<OpenApiSpecModule>\n spec: OpenAPISpec | null\n}\n\nfunction isOpenApiSpecLoader(value: unknown): value is () => Promise<OpenApiSpecModule> {\n return typeof value === 'function'\n}\n\nfunction getLoadedSpec(value: OpenApiSpecModule): OpenAPISpec {\n return value && typeof value === 'object' && 'default' in value\n ? value.default\n : value\n}\n\nconst VIRTUAL_PREFIX = 'virtual:clarify-page/'\n\nfunction resolveRelativePath(fromDir: string, to: string): string {\n const parts = (fromDir + '/' + to).split('/').filter(Boolean)\n const stack: string[] = []\n for (const part of parts) {\n if (part === '..') {\n stack.pop()\n } else if (part !== '.') {\n stack.push(part)\n }\n }\n return stack.join('/')\n}\n\nfunction normalizeSpecPath(specPath: string, currentRoutePath?: string, routePrefix = ''): string {\n if (specPath.startsWith(VIRTUAL_PREFIX)) return specPath\n\n const normalizedRoutePrefix = routePrefix.replace(/^\\/+|\\/+$/g, '')\n const normalizedSpecPath = specPath.startsWith('/') && normalizedRoutePrefix && specPath.slice(1).startsWith(`${normalizedRoutePrefix}/`)\n ? '/' + specPath.slice(normalizedRoutePrefix.length + 2)\n : specPath\n\n if (normalizedSpecPath.startsWith('/')) {\n return VIRTUAL_PREFIX + normalizedSpecPath.replace(/^\\//, '')\n }\n const fromDir = currentRoutePath === '/' ? '' : currentRoutePath?.replace(/^\\//, '').replace(/\\/[^/]*$/, '') ?? ''\n const normalizedFromDir = normalizedRoutePrefix && fromDir.startsWith(`${normalizedRoutePrefix}/`)\n ? fromDir.slice(normalizedRoutePrefix.length + 1)\n : fromDir\n return VIRTUAL_PREFIX + resolveRelativePath(normalizedFromDir, normalizedSpecPath)\n}\n\n/**\n * Prefer a locale-qualified registry key for absolute specPath values, then\n * fall back to the normalized key. The CLI registers visible route aliases,\n * while relative paths already resolve through the current localized route.\n */\nfunction specModuleCandidates(moduleId: string, specPath: string, locale: string | undefined): string[] {\n const candidates: string[] = []\n if (locale && specPath.startsWith('/') && !specPath.startsWith(VIRTUAL_PREFIX)) {\n const rest = moduleId.slice(VIRTUAL_PREFIX.length)\n if (!rest.startsWith(`${locale}/`) && rest !== locale) candidates.push(`${VIRTUAL_PREFIX}${locale}/${rest}`)\n }\n candidates.push(moduleId)\n return candidates\n}\n\nexport function useOpenApiSpec(spec?: OpenAPISpec, specPath?: string): OpenApiSpecResult {\n const config = useConfig()\n const locale = useLocale()\n const specs = useOpenApiSpecs()\n const location = useLocation()\n const [loadedSpec, setLoadedSpec] = useState<LoadedSpecState>({ spec: null })\n const normalized = specPath ? normalizeSpecPath(specPath, location.pathname, config.routePrefix) : undefined\n const candidates = specPath && normalized ? specModuleCandidates(normalized, specPath, locale) : []\n const registryValue = candidates.map(candidate => specs[candidate]).find(Boolean)\n\n useEffect(() => {\n let cancelled = false\n\n if (!isOpenApiSpecLoader(registryValue)) return\n\n registryValue().then(module => {\n if (!cancelled) setLoadedSpec({ loader: registryValue, spec: getLoadedSpec(module) })\n }).catch(() => {\n if (!cancelled) setLoadedSpec({ loader: registryValue, spec: null })\n })\n\n return () => {\n cancelled = true\n }\n }, [registryValue])\n\n if (spec) return { spec, loading: false }\n if (!specPath) return { spec: null, loading: false }\n if (isOpenApiSpecLoader(registryValue)) {\n return loadedSpec.loader === registryValue\n ? { spec: loadedSpec.spec, loading: false }\n : { spec: null, loading: true }\n }\n return { spec: registryValue ?? null, loading: false }\n}\n","import type { ReactNode } from 'react'\n\nimport { PageActions } from '../app/PageActions'\nimport { Prose } from '../components/Prose'\nimport { useBuiltInText } from '../core/i18n'\nimport { Markdown } from '../mdx/Markdown'\n\nimport { OpenApiOperation as OpenApiOperationComponent } from './components/OpenApiOperation'\nimport { OpenApiRequestWorkbench } from './components/OpenApiRequest'\nimport { useOpenApiSpec } from './lib/spec-path'\nimport { getOpenApiOperationEntry, listOpenApiOperations } from './lib/utils'\nimport type { OpenAPISpec } from './lib/utils'\n\ntype OpenApiPathsProps = { spec: OpenAPISpec; tagFilter?: string[] }\n\ntype OpenApiHeaderProps = { spec: OpenAPISpec }\n\ntype WarningBoxProps = {\n children: ReactNode\n tone?: 'amber' | 'red'\n}\n\nexport type OpenApiDocumentProps = {\n spec?: OpenAPISpec\n specPath?: string\n tagFilter?: string[]\n}\n\nexport type OpenApiRouteData = {\n spec: OpenAPISpec\n}\n\ntype OpenApiOperationWithSpecProps = {\n spec: OpenAPISpec\n path: string\n method: string\n}\n\nexport type OpenApiOperationProps = {\n specPath: string\n path: string\n method: string\n}\n\nexport type OpenApiRequestProps = OpenApiOperationProps\n\nfunction OpenApiHeader(arg0: OpenApiHeaderProps): ReactNode {\n const { spec } = arg0\n\n const t = useBuiltInText()\n return (\n <header className=\"clarify-openapi-header mb-16 border-b border-(--clarify-theme-tokens-colors-border) pb-8\">\n <p className=\"mb-3 text-xs/6 font-medium tracking-widest text-(--clarify-ui-accent-text) uppercase\">\n {t('openapi.openApiReference')}\n </p>\n <h1 className=\"clarify-page-title\">{spec.info?.title ?? t('openapi.apiDocumentation')}</h1>\n {spec.info?.description ? <Markdown className=\"lead mt-4 *:first:mt-0 *:last:mb-0\">{spec.info.description}</Markdown> : null}\n {spec.info?.version ? <p className=\"mt-4 text-sm text-(--clarify-ui-text-faint)\">{t('openapi.version', { version: spec.info.version })}</p> : null}\n </header>\n )\n}\n\nfunction operationMatchesTags(operationTags: string[] | undefined, filterTags: string[] | undefined): boolean {\n if (!filterTags?.length) return true\n return operationTags?.some(tag => filterTags.includes(tag)) ?? false\n}\n\nfunction OpenApiPaths(arg0: OpenApiPathsProps): ReactNode {\n const { spec, tagFilter } = arg0\n\n const entries = listOpenApiOperations(spec)\n .filter(({ operation }) => operationMatchesTags(operation.tags, tagFilter))\n .map(({ path, method, operation, source }) => ({\n path,\n method: method.toUpperCase(),\n operation,\n source,\n }))\n\n return (\n <div className=\"clarify-openai-endpoints divide-y divide-zinc-200/70 dark:divide-white/10\">\n {entries.map(({ path, method, operation, source }) => (\n <OpenApiOperationComponent key={`${source}-${method}-${path}`} spec={spec} path={path} method={method} operation={operation} operationSource={source} />\n ))}\n </div>\n )\n}\n\nfunction WarningBox(arg0: WarningBoxProps): ReactNode {\n const { children, tone = 'amber' } = arg0\n\n const classes = tone === 'red'\n ? 'rounded-lg border border-red-200 bg-red-50 p-4 text-sm text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-200'\n : 'rounded-lg border border-amber-200 bg-amber-50 p-4 text-sm text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200'\n\n return <div className={`clarify-warning ${classes}`}>{children}</div>\n}\n\nexport function OpenApiDocument(arg0: OpenApiDocumentProps): ReactNode {\n const { spec, specPath, tagFilter } = arg0\n const t = useBuiltInText()\n const { spec: resolved, loading } = useOpenApiSpec(spec, specPath)\n\n if (loading) {\n return <WarningBox>{t('openapi.loading')}</WarningBox>\n }\n if (!resolved) {\n return <WarningBox>{t('openapi.specNotFound', { specPath: specPath ?? t('openapi.specPathMissing') })}</WarningBox>\n }\n\n return (\n <article className=\"clarify-openapi-page relative flex h-full flex-col pt-16 pb-10\">\n <div className=\"clarify-page-actions mb-4 flex justify-end sm:absolute sm:top-16 sm:right-0 sm:mb-0\">\n <PageActions />\n </div>\n <Prose className=\"flex-auto\">\n <OpenApiHeader spec={resolved} />\n <OpenApiPaths spec={resolved} tagFilter={tagFilter} />\n </Prose>\n </article>\n )\n}\n\nfunction OpenApiOperationWithSpec(arg0: OpenApiOperationWithSpecProps): ReactNode {\n const { spec, path, method } = arg0\n const t = useBuiltInText()\n const entry = getOpenApiOperationEntry(spec, path, method)\n\n if (!entry) {\n return <WarningBox tone=\"red\">{t('openapi.endpointNotFound', { endpoint: `${method.toUpperCase()} ${path}` })}</WarningBox>\n }\n\n const normalizedMethod = entry.method.toUpperCase()\n return <OpenApiOperationComponent key={`${entry.source}-${normalizedMethod}-${path}`} spec={spec} path={path} method={normalizedMethod} operation={entry.operation} operationSource={entry.source} />\n}\n\nexport function OpenApiOperation(arg0: OpenApiOperationProps): ReactNode {\n const { specPath, path, method } = arg0\n const t = useBuiltInText()\n const { spec, loading } = useOpenApiSpec(undefined, specPath)\n\n if (loading) {\n return <WarningBox>{t('openapi.loading')}</WarningBox>\n }\n if (!spec) {\n return <WarningBox>{t('openapi.specNotFound', { specPath })}</WarningBox>\n }\n\n return <OpenApiOperationWithSpec spec={spec} path={path} method={method} />\n}\n\nexport function OpenApiRequest(arg0: OpenApiRequestProps): ReactNode {\n const { specPath, path, method } = arg0\n const t = useBuiltInText()\n const { spec, loading } = useOpenApiSpec(undefined, specPath)\n\n if (loading) return <WarningBox>{t('openapi.loading')}</WarningBox>\n if (!spec) return <WarningBox>{t('openapi.specNotFound', { specPath })}</WarningBox>\n\n const entry = getOpenApiOperationEntry(spec, path, method)\n if (!entry) return <WarningBox tone=\"red\">{t('openapi.endpointNotFound', { endpoint: `${method.toUpperCase()} ${path}` })}</WarningBox>\n\n return (\n <OpenApiRequestWorkbench\n spec={spec}\n path={path}\n method={entry.method.toUpperCase()}\n operation={entry.operation}\n operationSource={entry.source}\n />\n )\n}\n\nexport function createOpenApiRouteComponent(data: OpenApiRouteData) {\n return function OpenApiRoutePage() {\n return <OpenApiDocument spec={data.spec} />\n }\n}\n","import { Collapse } from '../components/Collapse'\nimport { Mermaid } from '../components/Mermaid'\nimport { OpenApiRequest, OpenApiDocument, OpenApiOperation } from '../openapi'\n\nimport * as mdxPrimitives from './primitives'\n\nconst builtInMDXComponents = {\n ...mdxPrimitives,\n Collapse,\n Mermaid,\n}\n\nconst builtInOpenAPIComponents = {\n OpenApiRequest,\n OpenApiDocument,\n OpenApiOperation,\n}\n\nexport function useMDXComponents(components: Record<string, unknown> = {}) {\n return {\n ...components,\n ...builtInMDXComponents,\n ...builtInOpenAPIComponents,\n }\n}\n","import type { ReactNode } from 'react'\n\nimport { Prose } from '../components/Prose'\n\nexport type DocShellProps = {\n title: string\n subtitle?: string\n children: ReactNode\n}\n\nexport function DocShell(arg0: DocShellProps) {\n const { title, subtitle, children } = arg0\n\n return (\n <main className=\"clarify-doc-shell min-h-screen bg-(--clarify-theme-tokens-colors-background) px-6 py-10 text-(--clarify-theme-tokens-colors-foreground) md:px-10\">\n <div className=\"mx-auto max-w-6xl\">\n <header className=\"mb-10\">\n <h1 className=\"text-3xl font-bold tracking-tight md:text-5xl\">{title}</h1>\n {subtitle ? <p className=\"mt-3 max-w-2xl text-(--clarify-ui-text-soft)\">{subtitle}</p> : null}\n </header>\n <Prose>{children}</Prose>\n </div>\n </main>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../source/app/ContentDiagnostic.tsx","../source/openapi/lib/spec-path.ts","../source/openapi/entry.tsx","../source/mdx/components.ts","../source/mdx/DocShell.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\n\nimport { RenderErrorPanel } from './RenderErrorPanel'\n\nexport type ContentDiagnosticKind = 'markdown' | 'markdown+jsx' | 'openapi' | 'route-load'\n\nexport type ContentDiagnostic = {\n kind: ContentDiagnosticKind\n title: string\n message: string\n details?: string\n filePath?: string\n}\n\ntype ContentDiagnosticPanelProps = {\n data: ContentDiagnostic\n}\n\nfunction ContentDiagnosticPanel(params: ContentDiagnosticPanelProps) {\n const { data } = params\n const typeLabels: Record<ContentDiagnosticKind, string> = {\n markdown: 'Markdown',\n 'markdown+jsx': 'MDX',\n openapi: 'OpenAPI',\n 'route-load': 'Route',\n }\n const typeLabel = typeLabels[data.kind]\n const detailsLabel = data.kind === 'markdown+jsx' || data.kind === 'markdown' ? 'Why it happened' : 'Details'\n const pathLabel = 'File'\n\n return (\n <RenderErrorPanel\n title={data.title}\n description={data.message}\n titleId=\"clarify-content-diagnostic-title\"\n metadata={[\n { label: pathLabel, value: data.filePath ?? 'Unknown' },\n { label: 'Type', value: typeLabel },\n ]}\n detailsLabel={detailsLabel}\n detailsContent={data.details ? (\n <pre className=\"max-h-(--clarify-error-details-max-height) overflow-auto whitespace-pre-wrap wrap-break-word font-mono\">\n {data.details}\n </pre>\n ) : null}\n />\n )\n}\n\nexport function createContentDiagnosticComponent(data: ContentDiagnostic): ComponentType {\n return function ContentDiagnosticComponent() {\n return <ContentDiagnosticPanel data={data} />\n }\n}\n","import { useEffect, useState } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useConfig, useLocale, useOpenApiSpecs } from '../../core/context'\n\nimport type { OpenAPISpec } from './utils'\n\ntype OpenApiSpecResult = {\n spec: OpenAPISpec | null\n loading: boolean\n}\n\ntype OpenApiSpecModule = { default: OpenAPISpec } | OpenAPISpec\n\ntype LoadedSpecState = {\n loader?: () => Promise<OpenApiSpecModule>\n spec: OpenAPISpec | null\n}\n\nfunction isOpenApiSpecLoader(value: unknown): value is () => Promise<OpenApiSpecModule> {\n return typeof value === 'function'\n}\n\nfunction getLoadedSpec(value: OpenApiSpecModule): OpenAPISpec {\n return value && typeof value === 'object' && 'default' in value\n ? value.default\n : value\n}\n\nconst VIRTUAL_PREFIX = 'virtual:clarify-page/'\n\nfunction resolveRelativePath(fromDir: string, to: string): string {\n const parts = (fromDir + '/' + to).split('/').filter(Boolean)\n const stack: string[] = []\n for (const part of parts) {\n if (part === '..') {\n stack.pop()\n } else if (part !== '.') {\n stack.push(part)\n }\n }\n return stack.join('/')\n}\n\nfunction normalizeSpecPath(specPath: string, currentRoutePath?: string, routePrefix = ''): string {\n if (specPath.startsWith(VIRTUAL_PREFIX)) return specPath\n\n const normalizedRoutePrefix = routePrefix.replace(/^\\/+|\\/+$/g, '')\n const normalizedSpecPath = specPath.startsWith('/') && normalizedRoutePrefix && specPath.slice(1).startsWith(`${normalizedRoutePrefix}/`)\n ? '/' + specPath.slice(normalizedRoutePrefix.length + 2)\n : specPath\n\n if (normalizedSpecPath.startsWith('/')) {\n return VIRTUAL_PREFIX + normalizedSpecPath.replace(/^\\//, '')\n }\n const fromDir = currentRoutePath === '/' ? '' : currentRoutePath?.replace(/^\\//, '').replace(/\\/[^/]*$/, '') ?? ''\n const normalizedFromDir = normalizedRoutePrefix && fromDir.startsWith(`${normalizedRoutePrefix}/`)\n ? fromDir.slice(normalizedRoutePrefix.length + 1)\n : fromDir\n return VIRTUAL_PREFIX + resolveRelativePath(normalizedFromDir, normalizedSpecPath)\n}\n\n/**\n * Prefer a locale-qualified registry key for absolute specPath values, then\n * fall back to the normalized key. The CLI registers visible route aliases,\n * while relative paths already resolve through the current localized route.\n */\nfunction specModuleCandidates(moduleId: string, specPath: string, locale: string | undefined): string[] {\n const candidates: string[] = []\n if (locale && specPath.startsWith('/') && !specPath.startsWith(VIRTUAL_PREFIX)) {\n const rest = moduleId.slice(VIRTUAL_PREFIX.length)\n if (!rest.startsWith(`${locale}/`) && rest !== locale) candidates.push(`${VIRTUAL_PREFIX}${locale}/${rest}`)\n }\n candidates.push(moduleId)\n return candidates\n}\n\nexport function useOpenApiSpec(spec?: OpenAPISpec, specPath?: string): OpenApiSpecResult {\n const config = useConfig()\n const locale = useLocale()\n const specs = useOpenApiSpecs()\n const location = useLocation()\n const [loadedSpec, setLoadedSpec] = useState<LoadedSpecState>({ spec: null })\n const normalized = specPath ? normalizeSpecPath(specPath, location.pathname, config.routePrefix) : undefined\n const candidates = specPath && normalized ? specModuleCandidates(normalized, specPath, locale) : []\n const registryValue = candidates.map(candidate => specs[candidate]).find(Boolean)\n\n useEffect(() => {\n let cancelled = false\n\n if (!isOpenApiSpecLoader(registryValue)) return\n\n registryValue().then(module => {\n if (!cancelled) setLoadedSpec({ loader: registryValue, spec: getLoadedSpec(module) })\n }).catch(() => {\n if (!cancelled) setLoadedSpec({ loader: registryValue, spec: null })\n })\n\n return () => {\n cancelled = true\n }\n }, [registryValue])\n\n if (spec) return { spec, loading: false }\n if (!specPath) return { spec: null, loading: false }\n if (isOpenApiSpecLoader(registryValue)) {\n return loadedSpec.loader === registryValue\n ? { spec: loadedSpec.spec, loading: false }\n : { spec: null, loading: true }\n }\n return { spec: registryValue ?? null, loading: false }\n}\n","import type { ReactNode } from 'react'\n\nimport { PageActions } from '../app/PageActions'\nimport { Prose } from '../components/Prose'\nimport { useBuiltInText } from '../core/i18n'\nimport { Markdown } from '../mdx/Markdown'\n\nimport { OpenApiOperation as OpenApiOperationComponent } from './components/OpenApiOperation'\nimport { OpenApiRequestWorkbench } from './components/OpenApiRequest'\nimport { useOpenApiSpec } from './lib/spec-path'\nimport { getOpenApiOperationEntryById, listOpenApiOperations } from './lib/utils'\nimport type { OpenAPISpec } from './lib/utils'\n\ntype OpenApiPathsProps = { spec: OpenAPISpec; tagFilter?: string[] }\n\ntype OpenApiHeaderProps = { spec: OpenAPISpec }\n\ntype WarningBoxProps = {\n children: ReactNode\n tone?: 'amber' | 'red'\n}\n\nexport type OpenApiDocumentProps = {\n spec?: OpenAPISpec\n specPath?: string\n tagFilter?: string[]\n}\n\nexport type OpenApiRouteData = {\n spec: OpenAPISpec\n}\n\ntype OpenApiOperationWithSpecProps = {\n spec: OpenAPISpec\n operationId: string\n}\n\nexport type OpenApiOperationProps = {\n specPath: string\n operationId: string\n}\n\nexport type OpenApiRequestProps = OpenApiOperationProps & {\n requestExample?: string\n}\n\nfunction OpenApiHeader(arg0: OpenApiHeaderProps): ReactNode {\n const { spec } = arg0\n\n const t = useBuiltInText()\n return (\n <header className=\"clarify-openapi-header mb-16 border-b border-(--clarify-theme-tokens-colors-border) pb-8\">\n <p className=\"mb-3 text-xs/6 font-medium tracking-widest text-(--clarify-ui-accent-text) uppercase\">\n {t('openapi.openApiReference')}\n </p>\n <h1 className=\"clarify-page-title\">{spec.info?.title ?? t('openapi.apiDocumentation')}</h1>\n {spec.info?.description ? <Markdown className=\"lead mt-4 *:first:mt-0 *:last:mb-0\">{spec.info.description}</Markdown> : null}\n {spec.info?.version ? <p className=\"mt-4 text-sm text-(--clarify-ui-text-faint)\">{t('openapi.version', { version: spec.info.version })}</p> : null}\n </header>\n )\n}\n\nfunction operationMatchesTags(operationTags: string[] | undefined, filterTags: string[] | undefined): boolean {\n if (!filterTags?.length) return true\n return operationTags?.some(tag => filterTags.includes(tag)) ?? false\n}\n\nfunction OpenApiPaths(arg0: OpenApiPathsProps): ReactNode {\n const { spec, tagFilter } = arg0\n\n const entries = listOpenApiOperations(spec)\n .filter(({ operation }) => operationMatchesTags(operation.tags, tagFilter))\n .map(({ path, method, operation, source }) => ({\n path,\n method: method.toUpperCase(),\n operation,\n source,\n }))\n\n return (\n <div className=\"clarify-openai-endpoints divide-y divide-zinc-200/70 dark:divide-white/10\">\n {entries.map(({ path, method, operation, source }) => (\n <OpenApiOperationComponent key={`${source}-${method}-${path}`} spec={spec} path={path} method={method} operation={operation} operationSource={source} />\n ))}\n </div>\n )\n}\n\nfunction WarningBox(arg0: WarningBoxProps): ReactNode {\n const { children, tone = 'amber' } = arg0\n\n const classes = tone === 'red'\n ? 'rounded-lg border border-red-200 bg-red-50 p-4 text-sm text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-200'\n : 'rounded-lg border border-amber-200 bg-amber-50 p-4 text-sm text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200'\n\n return <div className={`clarify-warning ${classes}`}>{children}</div>\n}\n\nexport function OpenApiDocument(arg0: OpenApiDocumentProps): ReactNode {\n const { spec, specPath, tagFilter } = arg0\n const t = useBuiltInText()\n const { spec: resolved, loading } = useOpenApiSpec(spec, specPath)\n\n if (loading) {\n return <WarningBox>{t('openapi.loading')}</WarningBox>\n }\n if (!resolved) {\n return <WarningBox>{t('openapi.specNotFound', { specPath: specPath ?? t('openapi.specPathMissing') })}</WarningBox>\n }\n\n return (\n <article className=\"clarify-openapi-page relative flex h-full flex-col pt-16 pb-10\">\n <div className=\"clarify-page-actions mb-4 flex justify-end sm:absolute sm:top-16 sm:right-0 sm:mb-0\">\n <PageActions />\n </div>\n <Prose className=\"flex-auto\">\n <OpenApiHeader spec={resolved} />\n <OpenApiPaths spec={resolved} tagFilter={tagFilter} />\n </Prose>\n </article>\n )\n}\n\nfunction OpenApiOperationWithSpec(arg0: OpenApiOperationWithSpecProps): ReactNode {\n const { spec, operationId } = arg0\n const t = useBuiltInText()\n const entry = getOpenApiOperationEntryById(spec, operationId)\n\n if (!entry) {\n return <WarningBox tone=\"red\">{t('openapi.endpointNotFound', { endpoint: operationId })}</WarningBox>\n }\n\n const normalizedMethod = entry.method.toUpperCase()\n return <OpenApiOperationComponent key={`${entry.source}-${normalizedMethod}-${entry.path}`} spec={spec} path={entry.path} method={normalizedMethod} operation={entry.operation} operationSource={entry.source} />\n}\n\nexport function OpenApiOperation(arg0: OpenApiOperationProps): ReactNode {\n const { specPath, operationId } = arg0\n const t = useBuiltInText()\n const { spec, loading } = useOpenApiSpec(undefined, specPath)\n\n if (loading) {\n return <WarningBox>{t('openapi.loading')}</WarningBox>\n }\n if (!spec) {\n return <WarningBox>{t('openapi.specNotFound', { specPath })}</WarningBox>\n }\n\n return <OpenApiOperationWithSpec spec={spec} operationId={operationId} />\n}\n\nexport function OpenApiRequest(arg0: OpenApiRequestProps): ReactNode {\n const { specPath, operationId, requestExample } = arg0\n const t = useBuiltInText()\n const { spec, loading } = useOpenApiSpec(undefined, specPath)\n\n if (loading) return <WarningBox>{t('openapi.loading')}</WarningBox>\n if (!spec) return <WarningBox>{t('openapi.specNotFound', { specPath })}</WarningBox>\n\n const entry = getOpenApiOperationEntryById(spec, operationId)\n if (!entry) return <WarningBox tone=\"red\">{t('openapi.endpointNotFound', { endpoint: operationId })}</WarningBox>\n\n return (\n <OpenApiRequestWorkbench\n spec={spec}\n path={entry.path}\n method={entry.method.toUpperCase()}\n operation={entry.operation}\n operationSource={entry.source}\n requestExample={requestExample}\n />\n )\n}\n\nexport function createOpenApiRouteComponent(data: OpenApiRouteData) {\n return function OpenApiRoutePage() {\n return <OpenApiDocument spec={data.spec} />\n }\n}\n","import { Collapse } from '../components/Collapse'\nimport { Mermaid } from '../components/Mermaid'\nimport { OpenApiRequest, OpenApiDocument, OpenApiOperation } from '../openapi'\n\nimport * as mdxPrimitives from './primitives'\n\nconst builtInMDXComponents = {\n ...mdxPrimitives,\n Collapse,\n Mermaid,\n}\n\nconst builtInOpenAPIComponents = {\n OpenApiRequest,\n OpenApiDocument,\n OpenApiOperation,\n}\n\nexport function useMDXComponents(components: Record<string, unknown> = {}) {\n return {\n ...components,\n ...builtInMDXComponents,\n ...builtInOpenAPIComponents,\n }\n}\n","import type { ReactNode } from 'react'\n\nimport { Prose } from '../components/Prose'\n\nexport type DocShellProps = {\n title: string\n subtitle?: string\n children: ReactNode\n}\n\nexport function DocShell(arg0: DocShellProps) {\n const { title, subtitle, children } = arg0\n\n return (\n <main className=\"clarify-doc-shell min-h-screen bg-(--clarify-theme-tokens-colors-background) px-6 py-10 text-(--clarify-theme-tokens-colors-foreground) md:px-10\">\n <div className=\"mx-auto max-w-6xl\">\n <header className=\"mb-10\">\n <h1 className=\"text-3xl font-bold tracking-tight md:text-5xl\">{title}</h1>\n {subtitle ? <p className=\"mt-3 max-w-2xl text-(--clarify-ui-text-soft)\">{subtitle}</p> : null}\n </header>\n <Prose>{children}</Prose>\n </div>\n </main>\n )\n}\n"],"mappings":";;;;;;;;;;AAkBA,SAAS,uBAAuB,QAAqC;CACnE,MAAM,EAAE,SAAS;CAOjB,MAAM,YAAY;EALhB,UAAU;EACV,gBAAgB;EAChB,SAAS;EACT,cAAc;CAEE,EAAW,KAAK;CAClC,MAAM,eAAe,KAAK,SAAS,kBAAkB,KAAK,SAAS,aAAa,oBAAoB;CAGpG,OACE,oBAAC,kBAAD;EACE,OAAO,KAAK;EACZ,aAAa,KAAK;EAClB,SAAQ;EACR,UAAU,CACR;GAAE,OAAO;GAAW,OAAO,KAAK,YAAY;EAAU,GACtD;GAAE,OAAO;GAAQ,OAAO;EAAU,CACpC;EACc;EACd,gBAAgB,KAAK,UACnB,oBAAC,OAAD;GAAK,WAAU;aACZ,KAAK;EACH,CAAA,IACH;CACL,CAAA;AAEL;AAEA,SAAgB,iCAAiC,MAAwC;CACvF,OAAO,SAAS,6BAA6B;EAC3C,OAAO,oBAAC,wBAAD,EAA8B,KAAO,CAAA;CAC9C;AACF;;;AClCA,SAAS,oBAAoB,OAA2D;CACtF,OAAO,OAAO,UAAU;AAC1B;AAEA,SAAS,cAAc,OAAuC;CAC5D,OAAO,SAAS,OAAO,UAAU,YAAY,aAAa,QACtD,MAAM,UACN;AACN;AAEA,IAAM,iBAAiB;AAEvB,SAAS,oBAAoB,SAAiB,IAAoB;CAChE,MAAM,SAAS,UAAU,MAAM,GAAA,CAAI,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO;CAC5D,MAAM,QAAkB,CAAC;CACzB,KAAK,MAAM,QAAQ,OACjB,IAAI,SAAS,MACX,MAAM,IAAI;MACL,IAAI,SAAS,KAClB,MAAM,KAAK,IAAI;CAGnB,OAAO,MAAM,KAAK,GAAG;AACvB;AAEA,SAAS,kBAAkB,UAAkB,kBAA2B,cAAc,IAAY;CAChG,IAAI,SAAS,WAAW,cAAc,GAAG,OAAO;CAEhD,MAAM,wBAAwB,YAAY,QAAQ,cAAc,EAAE;CAClE,MAAM,qBAAqB,SAAS,WAAW,GAAG,KAAK,yBAAyB,SAAS,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,sBAAsB,EAAE,IACpI,MAAM,SAAS,MAAM,sBAAsB,SAAS,CAAC,IACrD;CAEJ,IAAI,mBAAmB,WAAW,GAAG,GACnC,OAAO,iBAAiB,mBAAmB,QAAQ,OAAO,EAAE;CAE9D,MAAM,UAAU,qBAAqB,MAAM,KAAK,kBAAkB,QAAQ,OAAO,EAAE,CAAC,CAAC,QAAQ,YAAY,EAAE,KAAK;CAIhH,OAAO,iBAAiB,oBAHE,yBAAyB,QAAQ,WAAW,GAAG,sBAAsB,EAAE,IAC7F,QAAQ,MAAM,sBAAsB,SAAS,CAAC,IAC9C,SAC2D,kBAAkB;AACnF;;;;;;AAOA,SAAS,qBAAqB,UAAkB,UAAkB,QAAsC;CACtG,MAAM,aAAuB,CAAC;CAC9B,IAAI,UAAU,SAAS,WAAW,GAAG,KAAK,CAAC,SAAS,WAAW,cAAc,GAAG;EAC9E,MAAM,OAAO,SAAS,MAAM,EAAqB;EACjD,IAAI,CAAC,KAAK,WAAW,GAAG,OAAO,EAAE,KAAK,SAAS,QAAQ,WAAW,KAAK,GAAG,iBAAiB,OAAO,GAAG,MAAM;CAC7G;CACA,WAAW,KAAK,QAAQ;CACxB,OAAO;AACT;AAEA,SAAgB,eAAe,MAAoB,UAAsC;CACvF,MAAM,SAAS,UAAU;CACzB,MAAM,SAAS,UAAU;CACzB,MAAM,QAAQ,gBAAgB;CAC9B,MAAM,WAAW,YAAY;CAC7B,MAAM,CAAC,YAAY,iBAAiB,SAA0B,EAAE,MAAM,KAAK,CAAC;CAC5E,MAAM,aAAa,WAAW,kBAAkB,UAAU,SAAS,UAAU,OAAO,WAAW,IAAI,KAAA;CAEnG,MAAM,iBADa,YAAY,aAAa,qBAAqB,YAAY,UAAU,MAAM,IAAI,CAAC,EAAA,CACjE,KAAI,cAAa,MAAM,UAAU,CAAC,CAAC,KAAK,OAAO;CAEhF,gBAAgB;EACd,IAAI,YAAY;EAEhB,IAAI,CAAC,oBAAoB,aAAa,GAAG;EAEzC,cAAc,CAAC,CAAC,MAAK,WAAU;GAC7B,IAAI,CAAC,WAAW,cAAc;IAAE,QAAQ;IAAe,MAAM,cAAc,MAAM;GAAE,CAAC;EACtF,CAAC,CAAC,CAAC,YAAY;GACb,IAAI,CAAC,WAAW,cAAc;IAAE,QAAQ;IAAe,MAAM;GAAK,CAAC;EACrE,CAAC;EAED,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,aAAa,CAAC;CAElB,IAAI,MAAM,OAAO;EAAE;EAAM,SAAS;CAAM;CACxC,IAAI,CAAC,UAAU,OAAO;EAAE,MAAM;EAAM,SAAS;CAAM;CACnD,IAAI,oBAAoB,aAAa,GACnC,OAAO,WAAW,WAAW,gBACzB;EAAE,MAAM,WAAW;EAAM,SAAS;CAAM,IACxC;EAAE,MAAM;EAAM,SAAS;CAAK;CAElC,OAAO;EAAE,MAAM,iBAAiB;EAAM,SAAS;CAAM;AACvD;;;ACjEA,SAAS,cAAc,MAAqC;CAC1D,MAAM,EAAE,SAAS;CAEjB,MAAM,IAAI,eAAe;CACzB,OACE,qBAAC,UAAD;EAAQ,WAAU;YAAlB;GACE,oBAAC,KAAD;IAAG,WAAU;cACV,EAAE,0BAA0B;GAC5B,CAAA;GACH,oBAAC,MAAD;IAAI,WAAU;cAAsB,KAAK,MAAM,SAAS,EAAE,0BAA0B;GAAM,CAAA;GACzF,KAAK,MAAM,cAAc,oBAAC,UAAD;IAAU,WAAU;cAAsC,KAAK,KAAK;GAAsB,CAAA,IAAI;GACvH,KAAK,MAAM,UAAU,oBAAC,KAAD;IAAG,WAAU;cAA+C,EAAE,mBAAmB,EAAE,SAAS,KAAK,KAAK,QAAQ,CAAC;GAAK,CAAA,IAAI;EACxI;;AAEZ;AAEA,SAAS,qBAAqB,eAAqC,YAA2C;CAC5G,IAAI,CAAC,YAAY,QAAQ,OAAO;CAChC,OAAO,eAAe,MAAK,QAAO,WAAW,SAAS,GAAG,CAAC,KAAK;AACjE;AAEA,SAAS,aAAa,MAAoC;CACxD,MAAM,EAAE,MAAM,cAAc;CAW5B,OACE,oBAAC,OAAD;EAAK,WAAU;YAVD,sBAAsB,IAAI,CAAC,CACxC,QAAQ,EAAE,gBAAgB,qBAAqB,UAAU,MAAM,SAAS,CAAC,CAAC,CAC1E,KAAK,EAAE,MAAM,QAAQ,WAAW,cAAc;GAC7C;GACA,QAAQ,OAAO,YAAY;GAC3B;GACA;EACF,EAIG,CAAA,CAAQ,KAAK,EAAE,MAAM,QAAQ,WAAW,aACvC,oBAAC,oBAAD;GAAqE;GAAY;GAAc;GAAmB;GAAW,iBAAiB;EAAS,GAAvH,GAAG,OAAO,GAAG,OAAO,GAAG,MAAgG,CACxJ;CACE,CAAA;AAET;AAEA,SAAS,WAAW,MAAkC;CACpD,MAAM,EAAE,UAAU,OAAO,YAAY;CAMrC,OAAO,oBAAC,OAAD;EAAK,WAAW,mBAJP,SAAS,QACrB,oIACA;EAEkD;CAAc,CAAA;AACtE;AAEA,SAAgB,gBAAgB,MAAuC;CACrE,MAAM,EAAE,MAAM,UAAU,cAAc;CACtC,MAAM,IAAI,eAAe;CACzB,MAAM,EAAE,MAAM,UAAU,YAAY,eAAe,MAAM,QAAQ;CAEjE,IAAI,SACF,OAAO,oBAAC,YAAD,EAAA,UAAa,EAAE,iBAAiB,EAAc,CAAA;CAEvD,IAAI,CAAC,UACH,OAAO,oBAAC,YAAD,EAAA,UAAa,EAAE,wBAAwB,EAAE,UAAU,YAAY,EAAE,yBAAyB,EAAE,CAAC,EAAc,CAAA;CAGpH,OACE,qBAAC,WAAD;EAAS,WAAU;YAAnB,CACE,oBAAC,OAAD;GAAK,WAAU;aACb,oBAAC,aAAD,CAAc,CAAA;EACX,CAAA,GACL,qBAAC,OAAD;GAAO,WAAU;aAAjB,CACE,oBAAC,eAAD,EAAe,MAAM,SAAW,CAAA,GAChC,oBAAC,cAAD;IAAc,MAAM;IAAqB;GAAY,CAAA,CAChD;IACA;;AAEb;AAEA,SAAS,yBAAyB,MAAgD;CAChF,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,IAAI,eAAe;CACzB,MAAM,QAAQ,6BAA6B,MAAM,WAAW;CAE5D,IAAI,CAAC,OACH,OAAO,oBAAC,YAAD;EAAY,MAAK;YAAO,EAAE,4BAA4B,EAAE,UAAU,YAAY,CAAC;CAAc,CAAA;CAGtG,MAAM,mBAAmB,MAAM,OAAO,YAAY;CAClD,OAAO,oBAAC,oBAAD;EAA2F;EAAM,MAAM,MAAM;EAAM,QAAQ;EAAkB,WAAW,MAAM;EAAW,iBAAiB,MAAM;CAAS,GAAzK,GAAG,MAAM,OAAO,GAAG,iBAAiB,GAAG,MAAM,MAA4H;AAClN;AAEA,SAAgB,iBAAiB,MAAwC;CACvE,MAAM,EAAE,UAAU,gBAAgB;CAClC,MAAM,IAAI,eAAe;CACzB,MAAM,EAAE,MAAM,YAAY,eAAe,KAAA,GAAW,QAAQ;CAE5D,IAAI,SACF,OAAO,oBAAC,YAAD,EAAA,UAAa,EAAE,iBAAiB,EAAc,CAAA;CAEvD,IAAI,CAAC,MACH,OAAO,oBAAC,YAAD,EAAA,UAAa,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAc,CAAA;CAG1E,OAAO,oBAAC,0BAAD;EAAgC;EAAmB;CAAc,CAAA;AAC1E;AAEA,SAAgB,eAAe,MAAsC;CACnE,MAAM,EAAE,UAAU,aAAa,mBAAmB;CAClD,MAAM,IAAI,eAAe;CACzB,MAAM,EAAE,MAAM,YAAY,eAAe,KAAA,GAAW,QAAQ;CAE5D,IAAI,SAAS,OAAO,oBAAC,YAAD,EAAA,UAAa,EAAE,iBAAiB,EAAc,CAAA;CAClE,IAAI,CAAC,MAAM,OAAO,oBAAC,YAAD,EAAA,UAAa,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAc,CAAA;CAEnF,MAAM,QAAQ,6BAA6B,MAAM,WAAW;CAC5D,IAAI,CAAC,OAAO,OAAO,oBAAC,YAAD;EAAY,MAAK;YAAO,EAAE,4BAA4B,EAAE,UAAU,YAAY,CAAC;CAAc,CAAA;CAEhH,OACE,oBAAC,yBAAD;EACQ;EACN,MAAM,MAAM;EACZ,QAAQ,MAAM,OAAO,YAAY;EACjC,WAAW,MAAM;EACjB,iBAAiB,MAAM;EACP;CACjB,CAAA;AAEL;AAEA,SAAgB,4BAA4B,MAAwB;CAClE,OAAO,SAAS,mBAAmB;EACjC,OAAO,oBAAC,iBAAD,EAAiB,MAAM,KAAK,KAAO,CAAA;CAC5C;AACF;;;AC5KA,IAAM,uBAAuB;CAC3B,GAAG;CACH;CACA;AACF;AAEA,IAAM,2BAA2B;CAC/B;CACA;CACA;AACF;AAEA,SAAgB,iBAAiB,aAAsC,CAAC,GAAG;CACzE,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAG;CACL;AACF;;;ACdA,SAAgB,SAAS,MAAqB;CAC5C,MAAM,EAAE,OAAO,UAAU,aAAa;CAEtC,OACE,oBAAC,QAAD;EAAM,WAAU;YACd,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,qBAAC,UAAD;IAAQ,WAAU;cAAlB,CACE,oBAAC,MAAD;KAAI,WAAU;eAAiD;IAAU,CAAA,GACxE,WAAW,oBAAC,KAAD;KAAG,WAAU;eAAgD;IAAY,CAAA,IAAI,IACnF;OACR,oBAAC,OAAD,EAAQ,SAAgB,CAAA,CACrB;;CACD,CAAA;AAEV"}
@@ -6,6 +6,7 @@ type OpenApiRequestWorkbenchProps = {
6
6
  method: string;
7
7
  operation: OpenAPIOperation;
8
8
  operationSource?: OpenAPIOperationSource;
9
+ requestExample?: string;
9
10
  compact?: boolean;
10
11
  onClose?: () => void;
11
12
  };
@@ -4,7 +4,7 @@ import { OpenAPIOperation, OpenAPIOperationSource, OpenAPISpec } from '../lib/ut
4
4
  import { OpenApiMediaType, OpenApiParameter } from '../types';
5
5
  export declare function initialRequestBody(spec: OpenAPISpec, content?: OpenApiMediaType): string;
6
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): {
7
+ export declare function useOpenApiRequestTarget(spec: OpenAPISpec, path: string, operation: OpenAPIOperation, operationSource: OpenAPIOperationSource, requestExample?: string): {
8
8
  servers: import('../types').OpenApiServer[];
9
9
  selectedServer: import('../types').OpenApiServer;
10
10
  selectedServerKey: string;
@@ -10,10 +10,11 @@ export type OpenApiRouteData = {
10
10
  };
11
11
  export type OpenApiOperationProps = {
12
12
  specPath: string;
13
- path: string;
14
- method: string;
13
+ operationId: string;
14
+ };
15
+ export type OpenApiRequestProps = OpenApiOperationProps & {
16
+ requestExample?: string;
15
17
  };
16
- export type OpenApiRequestProps = OpenApiOperationProps;
17
18
  export declare function OpenApiDocument(arg0: OpenApiDocumentProps): ReactNode;
18
19
  export declare function OpenApiOperation(arg0: OpenApiOperationProps): ReactNode;
19
20
  export declare function OpenApiRequest(arg0: OpenApiRequestProps): ReactNode;
@@ -15,4 +15,5 @@ export declare function getOpenApiOperationSectionId(operation: OpenAPIOperation
15
15
  export declare function isOpenAPIHttpMethod(method: string): method is OpenAPIHttpMethod;
16
16
  export declare function getOpenApiOperation(spec: OpenAPISpec, path: string, method: string): OpenAPIOperation | undefined;
17
17
  export declare function getOpenApiOperationEntry(spec: OpenAPISpec, path: string, method: string, source?: OpenAPIOperationSource): OpenAPIOperationEntry | undefined;
18
+ export declare function getOpenApiOperationEntryById(spec: OpenAPISpec, operationId: string): OpenAPIOperationEntry | undefined;
18
19
  export declare function listOpenApiOperations(spec: OpenAPISpec): OpenAPIOperationEntry[];
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_i18n = require("./i18n-Ds-f-qlT.cjs");
3
- const require_PageActions = require("./PageActions-ypH6U0Vc.cjs");
4
- const require_OpenApiOperation = require("./OpenApiOperation-QqYCuqve.cjs");
2
+ const require_i18n = require("./i18n-Cjfk1N7i.cjs");
3
+ const require_PageActions = require("./PageActions-ob2OJusG.cjs");
4
+ const require_OpenApiOperation = require("./OpenApiOperation-C77uiDjW.cjs");
5
5
  let react = require("react");
6
6
  let lucide_react = require("lucide-react");
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -276,7 +276,7 @@ var embeddedGuide = {
276
276
  label: "source/en-US/openapi/embedding.mdx",
277
277
  title: "Embed OpenAPI in MDX",
278
278
  body: "Use MDX for workflow context, then render the exact operation from the spec.",
279
- embed: "<OpenApiOperation specPath=\"/api\" path=\"/examples/basic-request\" method=\"get\" />",
279
+ embed: "<OpenApiOperation specPath=\"/api\" operationId=\"demoBasicRequest\" />",
280
280
  outputs: [
281
281
  "/openapi/embedding",
282
282
  "/api",
@@ -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]?.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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"}
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\" operationId=\"demoBasicRequest\" />',\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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"}
package/output/preview.js CHANGED
@@ -1,6 +1,6 @@
1
- import { a as ResponseExamplesPanel, c as getAuthOptions, i as RequestExamplesPanel, l as getServerKey, m as getRequestBody, o as authPlaceholder, p as getMediaTypeEntries, s as defaultServerVariables, t as EndpointIdentity, u as getServers } from "./OpenApiOperation-Ddax6Pen.js";
2
- import { i as OpenApiSpecsContext, n as ConfigContext, r as LocaleContext } from "./i18n-LXAq0RIC.js";
3
- import { a as SectionProvider, i as Navigation } from "./PageActions-BBRz0tJ4.js";
1
+ import { a as ResponseExamplesPanel, c as getAuthOptions, i as RequestExamplesPanel, l as getServerKey, m as getRequestBody, o as authPlaceholder, p as getMediaTypeEntries, s as defaultServerVariables, t as EndpointIdentity, u as getServers } from "./OpenApiOperation-CbdKZMO1.js";
2
+ import { i as OpenApiSpecsContext, n as ConfigContext, r as LocaleContext } from "./i18n-Cff810G_.js";
3
+ import { a as SectionProvider, i as Navigation } from "./PageActions-DviEypf6.js";
4
4
  import { useState } from "react";
5
5
  import { Menu, X } from "lucide-react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -275,7 +275,7 @@ var embeddedGuide = {
275
275
  label: "source/en-US/openapi/embedding.mdx",
276
276
  title: "Embed OpenAPI in MDX",
277
277
  body: "Use MDX for workflow context, then render the exact operation from the spec.",
278
- embed: "<OpenApiOperation specPath=\"/api\" path=\"/examples/basic-request\" method=\"get\" />",
278
+ embed: "<OpenApiOperation specPath=\"/api\" operationId=\"demoBasicRequest\" />",
279
279
  outputs: [
280
280
  "/openapi/embedding",
281
281
  "/api",