@clarify-labs/renderer 0.4.0 → 0.5.0

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 (97) hide show
  1. package/output/AppShell-D3FsVHQK.js +390 -0
  2. package/output/AppShell-D3FsVHQK.js.map +1 -0
  3. package/output/AppShell-DeaJ-rgo.cjs +409 -0
  4. package/output/AppShell-DeaJ-rgo.cjs.map +1 -0
  5. package/output/OpenApiOperation-DYXG-6Rw.js +1772 -0
  6. package/output/OpenApiOperation-DYXG-6Rw.js.map +1 -0
  7. package/output/OpenApiOperation-mhoi-s4N.cjs +1840 -0
  8. package/output/OpenApiOperation-mhoi-s4N.cjs.map +1 -0
  9. package/output/app/PageNavigation.d.ts +7 -0
  10. package/output/app/PageSkeleton.d.ts +1 -0
  11. package/output/{components → app}/SectionProvider.d.ts +3 -2
  12. package/output/chunk-DakpK96I.cjs +43 -0
  13. package/output/client.cjs +1 -1
  14. package/output/client.js +1 -1
  15. package/output/components/Button.d.ts +18 -0
  16. package/output/components/Code.d.ts +11 -7
  17. package/output/components/Collapse.d.ts +9 -0
  18. package/output/components/Heading.d.ts +10 -0
  19. package/output/components/Logo.d.ts +2 -0
  20. package/output/components/Prose.d.ts +7 -0
  21. package/output/components/Tag.d.ts +34 -0
  22. package/output/components/index.d.ts +9 -80
  23. package/output/components/patterns.d.ts +4 -2
  24. package/output/context.d.ts +1 -8
  25. package/output/core/context.d.ts +8 -0
  26. package/output/core/i18n.d.ts +5 -0
  27. package/output/core/index.d.ts +3 -0
  28. package/output/core/types.d.ts +174 -0
  29. package/output/i18n.d.ts +1 -5
  30. package/output/index.cjs +105 -1741
  31. package/output/index.cjs.map +1 -1
  32. package/output/index.d.ts +15 -4
  33. package/output/index.js +71 -1719
  34. package/output/index.js.map +1 -1
  35. package/output/markdown.cjs +3 -0
  36. package/output/markdown.d.ts +1 -0
  37. package/output/markdown.js +2 -0
  38. package/output/mdx/DocShell.d.ts +7 -0
  39. package/output/mdx/Markdown.d.ts +7 -0
  40. package/output/mdx/components.d.ts +7 -7
  41. package/output/mdx/primitives.d.ts +18 -12
  42. package/output/mdx/remark.d.ts +2 -0
  43. package/output/openapi/{example-panels.d.ts → components/ExamplePanels.d.ts} +14 -9
  44. package/output/openapi/components/OpenApiOperation.d.ts +33 -0
  45. package/output/openapi/components/SchemaProperties.d.ts +20 -0
  46. package/output/openapi/entry.d.ts +13 -0
  47. package/output/openapi/index.d.ts +3 -3
  48. package/output/openapi/{helpers.d.ts → lib/helpers.d.ts} +7 -6
  49. package/output/openapi/{request-code.d.ts → lib/request-code.d.ts} +7 -5
  50. package/output/openapi/types.d.ts +5 -1
  51. package/output/preview/openapi.d.ts +28 -0
  52. package/output/preview.cjs +734 -0
  53. package/output/preview.cjs.map +1 -0
  54. package/output/preview.d.ts +19 -0
  55. package/output/preview.js +731 -0
  56. package/output/preview.js.map +1 -0
  57. package/output/remark-DNOdJz5i.cjs +14 -0
  58. package/output/remark-DNOdJz5i.cjs.map +1 -0
  59. package/output/remark-o5sg9Ilv.js +7 -0
  60. package/output/remark-o5sg9Ilv.js.map +1 -0
  61. package/output/{render-BCiQn6Q1.js → render-BpavVnAe.js} +3 -2
  62. package/output/render-BpavVnAe.js.map +1 -0
  63. package/output/{render-CZsdzmme.cjs → render-CjZt3edL.cjs} +6 -5
  64. package/output/render-CjZt3edL.cjs.map +1 -0
  65. package/output/renderer.css +403 -63
  66. package/output/server.cjs +7 -5
  67. package/output/server.cjs.map +1 -1
  68. package/output/server.js +4 -2
  69. package/output/server.js.map +1 -1
  70. package/output/shell/Navigation.d.ts +3 -2
  71. package/output/shell/Search.d.ts +6 -4
  72. package/output/{components → shell}/SiteLogo.d.ts +1 -1
  73. package/output/shell/icons.d.ts +3 -2
  74. package/output/shell/mobile.d.ts +3 -2
  75. package/output/{AppShell-nQnuKyn2.js → shell-BlMMdTpZ.js} +1118 -1320
  76. package/output/shell-BlMMdTpZ.js.map +1 -0
  77. package/output/{AppShell-CZw1MrPG.cjs → shell-_MyLsMUI.cjs} +1192 -1394
  78. package/output/shell-_MyLsMUI.cjs.map +1 -0
  79. package/output/{components → theme}/ThemeProvider.d.ts +3 -2
  80. package/output/types.d.ts +1 -174
  81. package/output/utils/clipboard.d.ts +1 -0
  82. package/output/utils/hash.d.ts +1 -0
  83. package/output/utils/href.d.ts +5 -0
  84. package/output/utils/lucide.d.ts +17 -0
  85. package/package.json +15 -2
  86. package/output/AppShell-CZw1MrPG.cjs.map +0 -1
  87. package/output/AppShell-nQnuKyn2.js.map +0 -1
  88. package/output/components/PageNavigation.d.ts +0 -5
  89. package/output/openapi/openapi-page.d.ts +0 -19
  90. package/output/openapi/schema-properties.d.ts +0 -15
  91. package/output/render-BCiQn6Q1.js.map +0 -1
  92. package/output/render-CZsdzmme.cjs.map +0 -1
  93. /package/output/{components → app}/BuiltWithClarify.d.ts +0 -0
  94. /package/output/{components → app}/PageFooter.d.ts +0 -0
  95. /package/output/openapi/{spec-path.d.ts → lib/spec-path.d.ts} +0 -0
  96. /package/output/openapi/{utils.d.ts → lib/utils.d.ts} +0 -0
  97. /package/output/{components → theme}/ThemeToggle.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiOperation-DYXG-6Rw.js","names":[],"sources":["../source/mdx/primitives.tsx","../source/mdx/Markdown.tsx","../source/openapi/lib/helpers.ts","../source/openapi/lib/request-code.ts","../source/openapi/components/ExamplePanels.tsx","../source/openapi/components/SchemaProperties.tsx","../source/openapi/components/OpenApiOperation.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { createElement, type ComponentPropsWithoutRef, type ReactNode } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { Button, Callout, Card, CardGroup, Heading, Prose } from '../components'\nimport { Code, CodeGroup, Pre } from '../components/Code'\n\ntype WrapperProps = { children: ReactNode }\n\nexport function wrapper(arg0: WrapperProps) { const { children } = arg0\n\n return (\n <article className=\"clarify-mdx-page flex h-full flex-col pt-16 pb-10\">\n <Prose className=\"flex-auto\">{children}</Prose>\n </article>\n )\n}\n\nexport function a(arg0: ComponentPropsWithoutRef<'a'>) { const { href = '', ...props } = arg0\n\n if (href.startsWith('/') && !href.startsWith('//')) {\n return <Link to={href} {...props} />\n }\n\n return <a href={href} {...props} />\n}\n\nexport const code = Code\nexport const pre = Pre\nexport { Button, Callout, Card, CardGroup, CodeGroup }\n\nexport function h2(props: Omit<ComponentPropsWithoutRef<typeof Heading>, 'level'>) {\n return createElement(Heading, { level: 2, ...props })\n}\n\nexport function h3(props: Omit<ComponentPropsWithoutRef<typeof Heading>, 'level'>) {\n return createElement(Heading, { level: 3, ...props })\n}\n\nfunction InfoIcon(props: ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\" {...props}>\n <circle cx=\"8\" cy=\"8\" r=\"8\" strokeWidth=\"0\" />\n <path fill=\"none\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.5\" d=\"M6.75 7.75h1.5v3.5\" />\n <circle cx=\"8\" cy=\"4\" r=\".5\" fill=\"none\" />\n </svg>\n )\n}\n\ntype NoteProps = { children: ReactNode }\n\nexport function Note(arg0: NoteProps) { const { children } = arg0\n\n return (\n <div className=\"clarify-note my-6 flex gap-2.5 rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-ui-accent-border) bg-(--clarify-ui-accent-background) p-4 text-sm/6 text-(--clarify-theme-tokens-colors-foreground) dark:text-zinc-100 dark:[--tw-prose-links-hover:var(--clarify-ui-accent-text)] dark:[--tw-prose-links:var(--color-white)]\">\n <InfoIcon className=\"mt-1 h-4 w-4 flex-none fill-(--clarify-ui-accent-text) stroke-(--clarify-theme-tokens-colors-surface) dark:fill-(--clarify-ui-accent-background) dark:stroke-(--clarify-ui-accent-text)\" />\n <div className=\"*:first:mt-0 *:last:mb-0\">{children}</div>\n </div>\n )\n}\n\ntype RowProps = { children: ReactNode }\n\nexport function Row(arg0: RowProps) { const { children } = arg0\n\n return <div className=\"clarify-row grid grid-cols-1 items-start gap-x-8 gap-y-10 xl:max-w-none xl:grid-cols-2\">{children}</div>\n}\n\ntype ColProps = { children: ReactNode; sticky?: boolean }\n\nexport function Col(arg0: ColProps) { const { children, sticky = false } = arg0\n\n return <div className={clsx('clarify-col *:first:mt-0 *:last:mb-0', sticky && 'xl:sticky xl:top-24')}>{children}</div>\n}\n\ntype PropertiesProps = { children: ReactNode }\n\nexport function Properties(arg0: PropertiesProps) { const { children } = arg0\n\n return (\n <div className=\"clarify-properties my-6\">\n <ul\n role=\"list\"\n className=\"m-0 list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5\"\n >\n {children}\n </ul>\n </div>\n )\n}\n\ntype PropertyProps = { name: string; children: ReactNode; type?: string }\n\nexport function Property(arg0: PropertyProps) { const { name, children, type } = arg0\n\n return (\n <li className=\"clarify-property m-0 px-0 py-4 first:pt-0 last:pb-0\">\n <dl className=\"m-0 flex flex-wrap items-center gap-x-3 gap-y-2\">\n <dt className=\"sr-only\">Name</dt>\n <dd>\n <span className=\"text-sm/5 font-semibold text-zinc-950 dark:text-white\">{name}</span>\n </dd>\n {type ? (\n <>\n <dt className=\"sr-only\">Type</dt>\n <dd className=\"text-xs text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-500\">{type}</dd>\n </>\n ) : null}\n <dt className=\"sr-only\">Description</dt>\n <dd className=\"w-full flex-none *:first:mt-0 *:last:mb-0\">{children}</dd>\n </dl>\n </li>\n )\n}\n","import { type ReactNode } from 'react'\nimport ReactMarkdown, { type Components } from 'react-markdown'\n\nimport { a as MarkdownLink, code as MarkdownCode, pre as MarkdownPre } from './primitives'\nimport { markdownRemarkPlugins } from './remark'\n\nconst markdownComponents: Components = {\n a(props) {\n return <MarkdownLink {...props} />\n },\n code(props) {\n return <MarkdownCode {...props} />\n },\n pre(arg0) { const { children, ...props } = arg0\n\n return <MarkdownPre {...props}>{children}</MarkdownPre>\n },\n}\n\ntype MarkdownProps = { children?: string; className?: string }\n\nexport function Markdown(arg0: MarkdownProps): ReactNode {\n const { children, className } = arg0\n\n if (!children) return null\n\n return (\n <div className={className}>\n <ReactMarkdown components={markdownComponents} remarkPlugins={markdownRemarkPlugins}>\n {children}\n </ReactMarkdown>\n </div>\n )\n}\n","import type { ExampleEntry, MediaTypeEntry, OpenApiMediaType, OpenApiParameter, OpenApiPathItem, OpenApiRecord, OpenApiResponse } from '../types'\n\nimport type { OpenAPIOperation, OpenAPISpec } from './utils'\n\nexport function isRecord(value: unknown): value is OpenApiRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nexport function isReference(value: unknown): value is { $ref: string } {\n return isRecord(value) && typeof value.$ref === 'string'\n}\n\nexport function resolveReferenceName(ref: string): string {\n return ref.split('/').filter(Boolean).at(-1) ?? ref\n}\n\nexport function resolveOpenApiRef(spec: OpenAPISpec, ref: string): unknown {\n if (!ref.startsWith('#/')) return undefined\n\n return ref\n .slice(2)\n .split('/')\n .map((part) => part.replace(/~1/g, '/').replace(/~0/g, '~'))\n .reduce<unknown>((current, part) => (isRecord(current) ? current[part] : undefined), spec)\n}\n\nexport function resolveSchema(spec: OpenAPISpec, schema: unknown, seen = new Set<string>()): unknown {\n if (!isReference(schema)) return schema\n if (seen.has(schema.$ref)) return schema\n\n seen.add(schema.$ref)\n return resolveSchema(spec, resolveOpenApiRef(spec, schema.$ref), seen) ?? schema\n}\n\nexport function getPathItem(spec: OpenAPISpec, path: string): OpenApiPathItem | undefined {\n return resolveObjectRef<OpenApiPathItem>(spec, spec.paths?.[path])\n}\n\nfunction resolveObjectRef<T extends OpenApiRecord>(spec: OpenAPISpec | undefined, value: unknown): T | undefined {\n const resolved = spec && isReference(value) ? resolveOpenApiRef(spec, value.$ref) : value\n return isRecord(resolved) && !isReference(resolved) ? resolved as T : undefined\n}\n\nexport function schemaHasType(schema: unknown, type: string): boolean {\n if (!isRecord(schema)) return false\n return schema.type === type || (Array.isArray(schema.type) && schema.type.includes(type))\n}\n\nexport function getOperationParameters(spec: OpenAPISpec, path: string, operation: OpenAPIOperation): OpenApiParameter[] {\n const pathParameters = getPathItem(spec, path)?.parameters\n const operationParameters = (operation as OpenApiRecord).parameters\n const parameters = [...(Array.isArray(pathParameters) ? pathParameters : []), ...(Array.isArray(operationParameters) ? operationParameters : [])]\n .map((parameter) => resolveObjectRef<OpenApiParameter>(spec, parameter))\n .filter((parameter): parameter is OpenApiParameter => Boolean(parameter))\n const deduped = new Map<string, OpenApiParameter>()\n\n for (const parameter of parameters) {\n const key = parameter.name && parameter.in ? `${parameter.in}:${parameter.name}` : undefined\n if (key) deduped.set(key, parameter)\n }\n\n return parameters.filter((parameter) => {\n const key = parameter.name && parameter.in ? `${parameter.in}:${parameter.name}` : undefined\n return key ? deduped.get(key) === parameter : true\n })\n}\n\nexport function getRequestBody(spec: OpenAPISpec, operation: OpenAPIOperation): OpenApiRecord | undefined {\n const requestBody = (operation as OpenApiRecord).requestBody\n return resolveObjectRef(spec, requestBody)\n}\n\nexport function getMediaTypeEntries(content: unknown, spec?: OpenAPISpec): MediaTypeEntry[] {\n if (!isRecord(content)) return []\n\n return Object.entries(content)\n .map(([mediaType, value]) => ({ mediaType, value: resolveObjectRef<OpenApiMediaType>(spec, value) }))\n .filter((entry): entry is MediaTypeEntry => Boolean(entry.value))\n .sort((a, z) => {\n const aJson = a.mediaType.includes('json') ? 0 : 1\n const zJson = z.mediaType.includes('json') ? 0 : 1\n return aJson - zJson\n })\n}\n\nexport function getJsonLikeContent(content: unknown, spec?: OpenAPISpec): MediaTypeEntry | undefined {\n return getMediaTypeEntries(content, spec)[0]\n}\n\nfunction getExampleValue(example: unknown): unknown {\n if (isRecord(example) && 'value' in example) return example.value\n if (isRecord(example) && 'externalValue' in example) return undefined\n return example\n}\n\nfunction getExampleTitle(key: string, example: unknown): { title: string; summary?: string } {\n if (isRecord(example)) {\n const summary = typeof example.summary === 'string' ? example.summary : undefined\n return { title: summary ?? key, summary }\n }\n\n return { title: key }\n}\n\nexport function getExampleEntries(mediaType?: OpenApiMediaType): ExampleEntry[] {\n if (!mediaType) return []\n\n if (isRecord(mediaType.examples)) {\n const examples: ExampleEntry[] = []\n\n for (const [key, example] of Object.entries(mediaType.examples)) {\n const value = getExampleValue(example)\n if (typeof value === 'undefined') continue\n\n const { title, summary } = getExampleTitle(key, example)\n examples.push({ key, title, summary, value })\n }\n\n if (examples.length > 0) return examples\n }\n\n if (typeof mediaType.example !== 'undefined') {\n return [{ key: 'default', title: 'Example', value: mediaType.example }]\n }\n\n const generated = schemaToExample(mediaType.schema)\n return typeof generated === 'undefined' ? [] : [{ key: 'schema', title: 'schema', value: generated, generated: true }]\n}\n\nexport function getContentExample(mediaType?: OpenApiMediaType): unknown {\n return getExampleEntries(mediaType)[0]?.value\n}\n\nexport function schemaToType(schema: unknown): string | undefined {\n if (!isRecord(schema)) return undefined\n if (isReference(schema)) return resolveReferenceName(schema.$ref)\n if (typeof schema.const !== 'undefined') return JSON.stringify(schema.const)\n if (Array.isArray(schema.enum)) return schema.enum.map(String).join(' | ')\n\n const oneOf = schema.oneOf ?? schema.anyOf\n if (Array.isArray(oneOf)) {\n return oneOf.map(schemaToType).filter(Boolean).join(' | ')\n }\n\n if (Array.isArray(schema.allOf)) {\n return schema.allOf.map(schemaToType).filter(Boolean).join(' & ')\n }\n\n if (schemaHasType(schema, 'array')) {\n return `${schemaToType(schema.items) ?? 'unknown'}[]`\n }\n\n const type = Array.isArray(schema.type) ? schema.type.map(String).join(' | ') : schema.type\n return typeof type === 'string' ? [type, typeof schema.format === 'string' ? `<${schema.format}>` : undefined].filter(Boolean).join('') : undefined\n}\n\nexport function schemaToExample(schema: unknown, depth = 0): unknown {\n if (!isRecord(schema) || depth > 3) return undefined\n if (typeof schema.example !== 'undefined') return schema.example\n if (typeof schema.default !== 'undefined') return schema.default\n if (Array.isArray(schema.enum)) return schema.enum[0]\n if (isReference(schema)) return { id: resolveReferenceName(schema.$ref) }\n\n if (schemaHasType(schema, 'array')) {\n return [schemaToExample(schema.items, depth + 1) ?? 'string']\n }\n\n if (schemaHasType(schema, 'object') || isRecord(schema.properties)) {\n const properties = isRecord(schema.properties) ? schema.properties : {}\n return Object.fromEntries(\n Object.entries(properties).slice(0, 8).map(([name, propertySchema]) => [\n name,\n schemaToExample(propertySchema, depth + 1) ?? exampleForType(schemaToType(propertySchema)),\n ]),\n )\n }\n\n return exampleForType(schemaToType(schema))\n}\n\nfunction exampleForType(type?: string): unknown {\n if (!type) return 'string'\n if (type.endsWith('[]')) return []\n if (type.includes('integer') || type.includes('number')) return 42\n if (type.includes('boolean')) return true\n if (type.includes('object')) return {}\n return 'string'\n}\n\nexport function stringifyExample(value: unknown): string {\n if (typeof value === 'undefined') return ''\n if (typeof value === 'string') return value\n return JSON.stringify(value, null, 2)\n}\n\nexport function getResponseEntries(operation: OpenAPIOperation, spec?: OpenAPISpec): Array<{ status: string; response: OpenApiResponse }> {\n const responses = (operation as OpenApiRecord).responses\n if (!isRecord(responses)) return []\n\n return Object.entries(responses)\n .map(([status, response]) => ({ status, response: resolveObjectRef<OpenApiResponse>(spec, response) }))\n .filter((entry): entry is { status: string; response: OpenApiResponse } => Boolean(entry.response))\n}\n\nexport function codeLanguageForMediaType(mediaType?: string): string {\n if (!mediaType) return 'json'\n if (mediaType.includes('json')) return 'json'\n if (mediaType.includes('yaml') || mediaType.includes('yml')) return 'yaml'\n if (mediaType.startsWith('text/')) return 'text'\n if (mediaType.includes('xml')) return 'xml'\n return 'text'\n}\n","import { snippetz } from '@scalar/snippetz'\nimport type { ClientId, HarRequest, TargetId } from '@scalar/snippetz'\n\nimport type { OpenApiMediaType, OpenApiParameter, OpenApiServer, RequestAuthInput, RequestCodeExample } from '../types'\n\nimport { getContentExample, isRecord, stringifyExample } from './helpers'\nimport type { OpenAPISpec } from './utils'\n\ntype RequestContent = { mediaType: string; value: OpenApiMediaType }\n\nexport type RequestCodeInput = {\n spec: OpenAPISpec\n path: string\n method: string\n parameters: OpenApiParameter[]\n requestContent?: RequestContent\n server?: OpenApiServer\n serverVariables?: Record<string, string>\n auth?: RequestAuthInput\n}\n\ntype RequestBody = {\n serialized?: string\n params?: NonNullable<HarRequest['postData']>['params']\n}\n\ntype BodySizeParam = { name: string; value?: unknown }\n\ntype SnippetTarget<T extends TargetId = TargetId> = {\n target: T\n client: ClientId<T>\n}\n\nconst snippetGenerator = snippetz()\n\nfunction getDefaultServer(spec: OpenAPISpec): OpenApiServer {\n const servers = (spec as Record<string, unknown>).servers\n if (!Array.isArray(servers)) return { url: 'https://api.example.com' }\n\n const firstServer = servers.find(isRecord)\n return firstServer && typeof firstServer.url === 'string' ? firstServer : { url: 'https://api.example.com' }\n}\n\nfunction expandServerUrl(server: OpenApiServer, serverVariables: Record<string, string> = {}): string {\n return (server.url ?? 'https://api.example.com').replace(/\\{([^}]+)\\}/g, (_, name: string) => {\n const fallback = server.variables?.[name]?.default ?? name\n return serverVariables[name] ?? fallback\n })\n}\n\nfunction buildOperationUrl(input: RequestCodeInput): string {\n const serverUrl = expandServerUrl(input.server ?? getDefaultServer(input.spec), input.serverVariables).replace(/\\/$/, '')\n return `${serverUrl}${input.path}`\n}\n\nfunction getQueryString(parameters: OpenApiParameter[], auth?: RequestAuthInput): HarRequest['queryString'] {\n const queryString = parameters\n .filter((parameter) => parameter.in === 'query' && parameter.name)\n .map((parameter) => ({ name: parameter.name, value: encodeUrlPlaceholders(`{${parameter.name}}`) }))\n\n if (auth?.scheme.type === 'apiKey' && auth.scheme.in === 'query' && auth.scheme.name) {\n queryString.push({ name: auth.scheme.name, value: auth.value })\n }\n\n return queryString\n}\n\nfunction isFormMediaType(mediaType: string): boolean {\n return mediaType.includes('multipart/form-data') || mediaType.includes('application/x-www-form-urlencoded')\n}\n\nfunction isBinarySchema(schema: unknown): boolean {\n return isRecord(schema) && schema.type === 'string' && schema.format === 'binary'\n}\n\nfunction getSchemaProperties(schema: unknown): Record<string, unknown> {\n return isRecord(schema) && isRecord(schema.properties) ? schema.properties : {}\n}\n\nfunction getFieldValue(name: string, value: unknown, schema: unknown): unknown {\n if (isRecord(value) && typeof value[name] !== 'undefined') return value[name]\n if (isBinarySchema(schema)) return `@${name}`\n return undefined\n}\n\nfunction getFormParams(value: unknown, requestContent: RequestContent): RequestBody['params'] {\n const properties = getSchemaProperties(requestContent.value.schema)\n const fieldNames = Array.from(new Set([...Object.keys(properties), ...(isRecord(value) ? Object.keys(value) : [])]))\n\n return fieldNames.flatMap((name) => {\n const fieldValue = getFieldValue(name, value, properties[name])\n if (typeof fieldValue === 'undefined') return []\n\n const contentType = requestContent.value.encoding?.[name]?.contentType\n const serializedValue = typeof fieldValue === 'string' ? fieldValue : stringifyExample(fieldValue)\n\n return [{\n name,\n value: serializedValue,\n ...(contentType ? { contentType } : {}),\n }]\n })\n}\n\nfunction getBodySize(requestBody?: RequestBody): number {\n if (requestBody?.serialized) return requestBody.serialized.length\n return requestBody?.params?.reduce((size: number, param: BodySizeParam) => size + param.name.length + String(param.value ?? '').length, 0) ?? 0\n}\n\nfunction getRequestBody(requestContent?: RequestContent): RequestBody | undefined {\n const value = getContentExample(requestContent?.value)\n if (!requestContent || typeof value === 'undefined') return undefined\n\n if (isFormMediaType(requestContent.mediaType)) {\n const params = getFormParams(value, requestContent)\n return params.length > 0 ? { params } : undefined\n }\n\n return { serialized: stringifyExample(value) }\n}\n\nfunction getAuthorizationValue(auth: RequestAuthInput): string | undefined {\n if (auth.scheme.type === 'http' && auth.scheme.scheme?.toLowerCase() === 'bearer') return `Bearer ${auth.value}`\n if (auth.scheme.type === 'http' && auth.scheme.scheme?.toLowerCase() === 'basic') return `Basic ${auth.value}`\n if (auth.scheme.type === 'oauth2' || auth.scheme.type === 'openIdConnect') return `Bearer ${auth.value}`\n return undefined\n}\n\nfunction getAuthHeaders(auth?: RequestAuthInput): Record<string, string> {\n if (!auth) return {}\n\n if (auth.scheme.type === 'apiKey' && auth.scheme.in === 'header' && auth.scheme.name) {\n return { [auth.scheme.name]: auth.value }\n }\n\n const authorization = getAuthorizationValue(auth)\n return authorization ? { Authorization: authorization } : {}\n}\n\nfunction getRequestHeaders(requestContent?: RequestContent, auth?: RequestAuthInput): Record<string, string> {\n return {\n ...getAuthHeaders(auth),\n Accept: 'application/json',\n ...(requestContent ? { 'Content-Type': requestContent.mediaType } : {}),\n }\n}\n\nfunction encodeUrlPlaceholders(url: string): string {\n return url.replace(/\\{([^}]+)\\}/g, (_, name: string) => `%7B${encodeURIComponent(name)}%7D`)\n}\n\nfunction decodeUrlPlaceholders(code: string): string {\n return code.replace(/%7B([^%]+)%7D/g, (_, name: string) => `{${decodeURIComponent(name)}}`)\n}\n\nfunction buildHarRequest(input: RequestCodeInput): HarRequest {\n const requestBody = getRequestBody(input.requestContent)\n const url = encodeUrlPlaceholders(buildOperationUrl(input))\n\n return {\n method: input.method,\n url,\n httpVersion: 'HTTP/1.1',\n cookies: [],\n headers: Object.entries(getRequestHeaders(input.requestContent, input.auth)).map(([name, value]) => ({ name, value })),\n queryString: getQueryString(input.parameters, input.auth),\n headersSize: -1,\n bodySize: getBodySize(requestBody),\n postData: requestBody\n ? {\n mimeType: input.requestContent?.mediaType ?? '',\n ...(requestBody.serialized ? { text: requestBody.serialized } : {}),\n ...(requestBody.params ? { params: requestBody.params } : {}),\n }\n : undefined,\n }\n}\n\nfunction buildSnippet(input: RequestCodeInput, target: SnippetTarget): string {\n const result = snippetGenerator.print(target.target, target.client, buildHarRequest(input))\n return decodeUrlPlaceholders(result || '')\n}\n\ntype RequestSnippetOption = SnippetTarget & {\n languageKey: string\n title: string\n language: string\n clientTitle: string\n}\n\nconst requestSnippetOptions: RequestSnippetOption[] = [\n { languageKey: 'shell', title: 'Shell', language: 'bash', target: 'shell', client: 'curl', clientTitle: 'cURL' },\n { languageKey: 'shell', title: 'Shell', language: 'bash', target: 'shell', client: 'wget', clientTitle: 'Wget' },\n { languageKey: 'shell', title: 'Shell', language: 'bash', target: 'shell', client: 'httpie', clientTitle: 'HTTPie' },\n { languageKey: 'javascript', title: 'JavaScript', language: 'javascript', target: 'js', client: 'fetch', clientTitle: 'Fetch' },\n { languageKey: 'javascript', title: 'JavaScript', language: 'javascript', target: 'js', client: 'axios', clientTitle: 'Axios' },\n { languageKey: 'javascript', title: 'JavaScript', language: 'javascript', target: 'js', client: 'ofetch', clientTitle: 'ofetch' },\n { languageKey: 'javascript', title: 'JavaScript', language: 'javascript', target: 'js', client: 'xhr', clientTitle: 'XHR' },\n { languageKey: 'typescript', title: 'TypeScript', language: 'typescript', target: 'js', client: 'fetch', clientTitle: 'Fetch' },\n { languageKey: 'typescript', title: 'TypeScript', language: 'typescript', target: 'js', client: 'axios', clientTitle: 'Axios' },\n { languageKey: 'typescript', title: 'TypeScript', language: 'typescript', target: 'js', client: 'ofetch', clientTitle: 'ofetch' },\n { languageKey: 'python', title: 'Python', language: 'python', target: 'python', client: 'requests', clientTitle: 'Requests' },\n { languageKey: 'python', title: 'Python', language: 'python', target: 'python', client: 'python3', clientTitle: 'http.client' },\n { languageKey: 'python', title: 'Python', language: 'python', target: 'python', client: 'httpx_sync', clientTitle: 'HTTPX' },\n { languageKey: 'python', title: 'Python', language: 'python', target: 'python', client: 'aiohttp', clientTitle: 'aiohttp' },\n { languageKey: 'go', title: 'Go', language: 'go', target: 'go', client: 'native', clientTitle: 'NewRequest' },\n { languageKey: 'node', title: 'Node.js', language: 'javascript', target: 'node', client: 'fetch', clientTitle: 'Fetch' },\n { languageKey: 'node', title: 'Node.js', language: 'javascript', target: 'node', client: 'axios', clientTitle: 'Axios' },\n { languageKey: 'node', title: 'Node.js', language: 'javascript', target: 'node', client: 'ofetch', clientTitle: 'ofetch' },\n { languageKey: 'node', title: 'Node.js', language: 'javascript', target: 'node', client: 'undici', clientTitle: 'undici' },\n { languageKey: 'java', title: 'Java', language: 'java', target: 'java', client: 'nethttp', clientTitle: 'java.net.http' },\n { languageKey: 'java', title: 'Java', language: 'java', target: 'java', client: 'okhttp', clientTitle: 'OkHttp' },\n { languageKey: 'java', title: 'Java', language: 'java', target: 'java', client: 'unirest', clientTitle: 'Unirest' },\n { languageKey: 'java', title: 'Java', language: 'java', target: 'java', client: 'asynchttp', clientTitle: 'AsyncHttp' },\n { languageKey: 'csharp', title: 'C#', language: 'csharp', target: 'csharp', client: 'httpclient', clientTitle: 'HttpClient' },\n { languageKey: 'csharp', title: 'C#', language: 'csharp', target: 'csharp', client: 'restsharp', clientTitle: 'RestSharp' },\n { languageKey: 'php', title: 'PHP', language: 'php', target: 'php', client: 'guzzle', clientTitle: 'Guzzle' },\n { languageKey: 'php', title: 'PHP', language: 'php', target: 'php', client: 'curl', clientTitle: 'cURL' },\n { languageKey: 'php', title: 'PHP', language: 'php', target: 'php', client: 'laravel', clientTitle: 'Laravel HTTP Client' },\n { languageKey: 'ruby', title: 'Ruby', language: 'ruby', target: 'ruby', client: 'native', clientTitle: 'net::http' },\n { languageKey: 'rust', title: 'Rust', language: 'rust', target: 'rust', client: 'reqwest', clientTitle: 'reqwest' },\n { languageKey: 'swift', title: 'Swift', language: 'swift', target: 'swift', client: 'nsurlsession', clientTitle: 'NSURLSession' },\n { languageKey: 'kotlin', title: 'Kotlin', language: 'kotlin', target: 'kotlin', client: 'okhttp', clientTitle: 'OkHttp' },\n { languageKey: 'powershell', title: 'PowerShell', language: 'powershell', target: 'powershell', client: 'restmethod', clientTitle: 'Invoke-RestMethod' },\n { languageKey: 'powershell', title: 'PowerShell', language: 'powershell', target: 'powershell', client: 'webrequest', clientTitle: 'Invoke-WebRequest' },\n]\n\nexport function buildRequestCodeExamples(input: RequestCodeInput): RequestCodeExample[] {\n return requestSnippetOptions.map((option) => ({\n key: `${option.languageKey}:${option.client}`,\n title: option.title,\n language: option.language,\n languageKey: option.languageKey,\n clientKey: option.client,\n clientTitle: option.clientTitle,\n code: buildSnippet(input, option),\n }))\n}\n","import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headlessui/react'\nimport { CheckIcon, ChevronsUpDownIcon, ClipboardIcon, CodeIcon, PackageIcon } from 'lucide-react'\nimport { useState, type ReactNode } from 'react'\n\nimport { useBuiltInText } from '../../core/i18n'\nimport { copyTextToClipboard } from '../../utils/clipboard'\nimport { codeLanguageForMediaType, getExampleEntries, getMediaTypeEntries, getPathItem, getResponseEntries, isRecord, stringifyExample } from '../lib/helpers'\nimport { buildRequestCodeExamples } from '../lib/request-code'\nimport type { OpenAPIOperation, OpenAPISpec } from '../lib/utils'\nimport type {\n ExampleEntry,\n MediaTypeEntry,\n OpenApiParameter,\n OpenApiSecurityRequirement,\n OpenApiSecurityScheme,\n OpenApiServer,\n RequestAuthInput,\n RequestCodeExample,\n} from '../types'\n\ntype SelectOption = {\n value: string\n label: string\n}\n\ntype SelectControlProps = {\n label: string\n value: string\n options: Array<string | SelectOption>\n onChange: (value: string) => void\n icon?: ReactNode\n compact?: boolean\n}\n\nfunction SelectControl(arg0: SelectControlProps): ReactNode {\n const {\n label,\n value,\n options,\n onChange,\n icon,\n compact = false,\n } = arg0\n\n const normalizedOptions = options.map((option) => (typeof option === 'string' ? { value: option, label: option } : option))\n const selectedOption = normalizedOptions.find((option) => option.value === value) ?? normalizedOptions[0]\n const wrapperClassName = compact ? 'clarify-api-select relative min-w-0 text-xs' : 'clarify-api-select relative shrink-0 text-xs'\n const buttonSizeClassName = compact ? 'w-full min-w-0 max-w-32' : 'min-w-28 max-w-48'\n\n if (normalizedOptions.length <= 1) return null\n\n return (\n <Listbox value={value} onChange={onChange}>\n <div className={wrapperClassName}>\n <ListboxButton\n aria-label={label}\n className={`clarify-api-select-button flex ${buttonSizeClassName} items-center justify-between gap-2 rounded-lg bg-black/30 px-2 py-1 text-xs font-medium whitespace-nowrap text-zinc-100 outline-hidden transition hover:bg-black/50 focus:ring-2 focus:ring-emerald-400/25 data-open:bg-white/10 data-open:ring-2 data-open:ring-emerald-400/25`}\n >\n <span className=\"flex min-w-0 items-center gap-1.5 overflow-hidden\">\n {icon ? <span className=\"shrink-0 text-zinc-500\">{icon}</span> : null}\n <span className=\"truncate\">{selectedOption?.label ?? value}</span>\n </span>\n <ChevronsUpDownIcon className=\"h-3.5 w-3.5 shrink-0 text-zinc-500\" aria-hidden=\"true\" />\n </ListboxButton>\n <ListboxOptions\n anchor=\"bottom end\"\n className=\"clarify-api-select-options z-30 mt-1 max-h-64 w-max min-w-(--button-width) max-w-[min(32rem,calc(100vw-2rem))] overflow-auto rounded-xl bg-zinc-900 p-1 text-xs shadow-lg shadow-black/20 ring-1 ring-white/10 [--anchor-gap:--spacing(1)] focus:outline-none\"\n >\n {normalizedOptions.map((option) => (\n <ListboxOption\n key={option.value}\n value={option.value}\n className=\"clarify-api-select-option group flex cursor-default items-center justify-between gap-3 rounded-lg px-2.5 py-2 text-xs whitespace-nowrap text-zinc-300 select-none data-focus:bg-white/10 data-focus:text-white data-selected:text-emerald-300\"\n >\n <span>{option.label}</span>\n <CheckIcon className=\"h-3.5 w-3.5 shrink-0 opacity-0 group-data-selected:opacity-100\" aria-hidden=\"true\" />\n </ListboxOption>\n ))}\n </ListboxOptions>\n </div>\n </Listbox>\n )\n}\n\nfunction getExampleLabel(example: ExampleEntry, t: ReturnType<typeof useBuiltInText>): string {\n return example.generated && example.title === 'schema' ? t('openapi.schemaExample') : example.title\n}\n\nfunction getLanguageOptions(codeOptions?: RequestCodeExample[]): SelectOption[] {\n const languages = new Map<string, string>()\n for (const option of codeOptions ?? []) languages.set(option.languageKey, option.title)\n return Array.from(languages, ([value, label]) => ({ value, label }))\n}\n\nfunction getClientOptions(codeOptions: RequestCodeExample[] | undefined, languageKey?: string): SelectOption[] {\n return (codeOptions ?? [])\n .filter((option) => option.languageKey === languageKey)\n .map((option) => ({ value: option.clientKey, label: option.clientTitle }))\n}\n\nexport function getServers(spec: OpenAPISpec, operation: OpenAPIOperation, path?: string): OpenApiServer[] {\n const operationServers = (operation as Record<string, unknown>).servers\n const pathServers = path ? getPathItem(spec, path)?.servers : undefined\n const servers = Array.isArray(operationServers)\n ? operationServers\n : Array.isArray(pathServers)\n ? pathServers\n : (spec as Record<string, unknown>).servers\n if (!Array.isArray(servers)) return [{ url: 'https://api.example.com' }]\n const validServers = servers.filter((server): server is OpenApiServer => isRecord(server) && typeof server.url === 'string')\n return validServers.length > 0 ? validServers : [{ url: 'https://api.example.com' }]\n}\n\nexport function getServerKey(server: OpenApiServer, index: number): string {\n return `${index}:${server.url ?? ''}`\n}\n\nexport function getServerLabel(server: OpenApiServer, index: number): string {\n return server.description ? `${server.description} (${server.url})` : server.url ?? `Server ${index + 1}`\n}\n\nexport function defaultServerVariables(server?: OpenApiServer): Record<string, string> {\n return Object.fromEntries(\n Object.entries(server?.variables ?? {}).map(([name, variable]) => [name, variable.default ?? variable.enum?.[0] ?? '']),\n )\n}\n\nfunction getSecuritySchemes(spec: OpenAPISpec): Record<string, OpenApiSecurityScheme> {\n const schemes = (spec as Record<string, unknown>).components\n if (!isRecord(schemes) || !isRecord(schemes.securitySchemes)) return {}\n\n return Object.fromEntries(\n Object.entries(schemes.securitySchemes).filter((entry): entry is [string, OpenApiSecurityScheme] => isRecord(entry[1])),\n )\n}\n\nfunction getSecurityRequirements(spec: OpenAPISpec, operation: OpenAPIOperation): OpenApiSecurityRequirement[] {\n const operationSecurity = (operation as Record<string, unknown>).security\n if (Array.isArray(operationSecurity)) return operationSecurity.filter(isRecord) as OpenApiSecurityRequirement[]\n\n const specSecurity = (spec as Record<string, unknown>).security\n return Array.isArray(specSecurity) ? specSecurity.filter(isRecord) as OpenApiSecurityRequirement[] : []\n}\n\nexport type AuthOption = { name: string; scheme: OpenApiSecurityScheme }\n\nexport function getAuthOptions(spec: OpenAPISpec, operation: OpenAPIOperation): AuthOption[] {\n const schemes = getSecuritySchemes(spec)\n const requirements = getSecurityRequirements(spec, operation)\n const names = new Set(requirements.flatMap((requirement) => Object.keys(requirement)))\n\n return Array.from(names)\n .map((name) => ({ name, scheme: schemes[name] }))\n .filter((option): option is AuthOption => Boolean(option.scheme))\n}\n\ntype AuthPlaceholderArg = { scheme: OpenApiSecurityScheme }\n\nexport function authPlaceholder(auth?: AuthPlaceholderArg): string {\n if (!auth) return ''\n if (auth.scheme.type === 'apiKey') return '{api_key}'\n if (auth.scheme.type === 'http' && auth.scheme.scheme?.toLowerCase() === 'basic') return '{base64_credentials}'\n return '{token}'\n}\n\nexport function authLabel(name: string, scheme: OpenApiSecurityScheme): string {\n const location = scheme.type === 'apiKey' && scheme.in && scheme.name ? ` · ${scheme.in}: ${scheme.name}` : ''\n return `${name}${location}`\n}\n\ntype CopyCodeButtonProps = { code: string }\n\nfunction CopyCodeButton(arg0: CopyCodeButtonProps): ReactNode {\n const { code } = arg0\n\n const t = useBuiltInText()\n const [copied, setCopied] = useState(false)\n\n return (\n <button\n type=\"button\"\n onClick={() => {\n void copyTextToClipboard(code).then((ok) => {\n if (!ok) return\n setCopied(true)\n window.setTimeout(() => setCopied(false), 1000)\n })\n }}\n className=\"flex items-center gap-1.5 rounded-full bg-black/ px-2.5 py-1.5 text-2xs font-medium text-zinc-400 transition hover:bg-black/50 hover:text-zinc-200 focus:bg-black/50 focus:text-zinc-200\"\n >\n {copied ? (\n <CheckIcon className=\"h-3.5 w-3.5 text-emerald-300\" aria-hidden=\"true\" />\n ) : (\n <ClipboardIcon className=\"h-3.5 w-3.5 text-zinc-500\" aria-hidden=\"true\" />\n )}\n <span>{copied ? t('actions.copied') : t('actions.copy')}</span>\n </button>\n )\n}\n\ntype ExampleMetaValueProps = {\n label: string\n value: string\n options?: string[]\n onChange?: (value: string) => void\n className: string\n}\n\nfunction ExampleMetaValue(arg0: ExampleMetaValueProps): ReactNode {\n const { label, value, options, onChange, className } = arg0\n\n if (options && options.length > 1 && onChange) {\n return <SelectControl label={label} value={value} options={options} onChange={onChange} />\n }\n\n return <span className={className}>{value}</span>\n}\n\ntype CodeToolbarProps = {\n code: string\n languageOptions?: SelectOption[]\n selectedLanguageKey?: string\n onSelectLanguage?: (key: string) => void\n clientOptions?: SelectOption[]\n selectedClientKey?: string\n onSelectClient?: (key: string) => void\n}\n\nfunction CodeToolbar(arg0: CodeToolbarProps): ReactNode {\n const {\n code,\n languageOptions,\n selectedLanguageKey,\n onSelectLanguage,\n clientOptions,\n selectedClientKey,\n onSelectClient,\n } = arg0\n\n const t = useBuiltInText()\n\n return (\n <div className=\"absolute top-3.5 right-4 left-4 z-10 flex items-center justify-between gap-3\">\n <div className=\"flex min-w-0 items-center gap-2\">\n {languageOptions && languageOptions.length > 1 && selectedLanguageKey && onSelectLanguage ? (\n <SelectControl\n label={t('openapi.language')}\n value={selectedLanguageKey}\n options={languageOptions}\n onChange={onSelectLanguage}\n icon={<CodeIcon className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />}\n />\n ) : null}\n {clientOptions && clientOptions.length > 1 && selectedClientKey && onSelectClient ? (\n <SelectControl\n label={t('openapi.client')}\n value={selectedClientKey}\n options={clientOptions}\n onChange={onSelectClient}\n icon={<PackageIcon className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />}\n />\n ) : null}\n </div>\n <CopyCodeButton code={code} />\n </div>\n )\n}\n\ntype ApiExampleCodeGroupProps = {\n title: string\n tag?: string\n tagOptions?: string[]\n onSelectTag?: (key: string) => void\n label?: string\n labelOptions?: string[]\n onSelectLabel?: (key: string) => void\n comfortableMeta?: boolean\n code: string\n language: string\n mediaTypes?: string[]\n selectedMediaType?: string\n onSelectMediaType?: (key: string) => void\n examples?: ExampleEntry[]\n selectedExampleKey?: string\n onSelectExample?: (key: string) => void\n languageOptions?: SelectOption[]\n selectedLanguageKey?: string\n onSelectLanguage?: (key: string) => void\n clientOptions?: SelectOption[]\n selectedClientKey?: string\n onSelectClient?: (key: string) => void\n}\n\nfunction ApiExampleCodeGroup(arg0: ApiExampleCodeGroupProps): ReactNode {\n const {\n title,\n tag,\n tagOptions,\n onSelectTag,\n label,\n labelOptions,\n onSelectLabel,\n comfortableMeta = false,\n code,\n language,\n mediaTypes,\n selectedMediaType,\n onSelectMediaType,\n examples,\n selectedExampleKey,\n onSelectExample,\n languageOptions,\n selectedLanguageKey,\n onSelectLanguage,\n clientOptions,\n selectedClientKey,\n onSelectClient,\n } = arg0\n\n const t = useBuiltInText()\n const metaClassName = comfortableMeta\n ? 'flex min-h-11 min-w-0 items-center gap-2 border-y border-t-transparent border-b-white/7.5 bg-zinc-900 px-4 py-2 dark:border-b-white/5 dark:bg-white/1'\n : 'flex h-9 min-w-0 items-center gap-2 border-y border-t-transparent border-b-white/7.5 bg-zinc-900 px-4 dark:border-b-white/5 dark:bg-white/1'\n\n return (\n <div className=\"clarify-api-example my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10\">\n <div className=\"not-prose\">\n <div className=\"clarify-api-example-header flex min-h-[calc(--spacing(12)+1px)] items-center gap-3 border-b border-zinc-700 bg-zinc-800 px-4 py-2 dark:border-zinc-800 dark:bg-transparent\">\n <h3 className=\"mr-auto min-w-16 truncate py-1 text-xs font-semibold text-white\">{title}</h3>\n <div className=\"ml-auto flex min-w-0 items-center gap-2 whitespace-nowrap\">\n {mediaTypes && mediaTypes.length > 1 && selectedMediaType && onSelectMediaType ? (\n <SelectControl\n label={t('openapi.mediaType')}\n value={selectedMediaType}\n options={mediaTypes}\n onChange={onSelectMediaType}\n compact\n />\n ) : null}\n {examples && examples.length > 1 && selectedExampleKey && onSelectExample ? (\n <SelectControl\n label={t('openapi.example')}\n value={selectedExampleKey}\n options={examples.map((example) => ({ value: example.key, label: getExampleLabel(example, t) }))}\n onChange={onSelectExample}\n compact\n />\n ) : null}\n </div>\n </div>\n {tag || label ? (\n <div className={metaClassName}>\n {tag ? (\n <ExampleMetaValue\n label={t('openapi.status')}\n value={tag}\n options={tagOptions}\n onChange={onSelectTag}\n className=\"clarify-api-example-status font-semibold text-emerald-400\"\n />\n ) : null}\n {tag && label ? <span className=\"h-0.5 w-0.5 shrink-0 rounded-full bg-zinc-500\" /> : null}\n {label ? (\n <ExampleMetaValue\n label={t('openapi.mediaType')}\n value={label}\n options={labelOptions}\n onChange={onSelectLabel}\n className=\"min-w-0 truncate text-xs text-zinc-400\"\n />\n ) : null}\n </div>\n ) : null}\n <div className=\"clarify-api-example-code group relative\">\n <CodeToolbar\n code={code}\n languageOptions={languageOptions}\n selectedLanguageKey={selectedLanguageKey}\n onSelectLanguage={onSelectLanguage}\n clientOptions={clientOptions}\n selectedClientKey={selectedClientKey}\n onSelectClient={onSelectClient}\n />\n <pre className={`overflow-x-auto p-4 text-xs text-white ${languageOptions && languageOptions.length > 1 ? 'pt-14' : ''}`}>\n <code className={`language-${language}`}>{code}</code>\n </pre>\n </div>\n </div>\n </div>\n )\n}\n\ntype RequestExamplesPanelProps = {\n spec: OpenAPISpec\n path: string\n method: string\n parameters: OpenApiParameter[]\n requestContents: MediaTypeEntry[]\n selectedMediaType: string\n onSelectMediaType: (value: string) => void\n selectedServer: OpenApiServer\n serverVariables: Record<string, string>\n auth?: RequestAuthInput\n}\n\nexport function RequestExamplesPanel(arg0: RequestExamplesPanelProps): ReactNode {\n const {\n spec,\n path,\n method,\n parameters,\n requestContents,\n selectedMediaType,\n onSelectMediaType,\n selectedServer,\n serverVariables,\n auth,\n } = arg0\n\n const t = useBuiltInText()\n const selectedContent = requestContents.find((content) => content.mediaType === selectedMediaType) ?? requestContents[0]\n const examples = getExampleEntries(selectedContent?.value)\n const [selectedExampleKey, setSelectedExampleKey] = useState(examples[0]?.key ?? '')\n const [selectedLanguageKey, setSelectedLanguageKey] = useState('shell')\n const [selectedClientKey, setSelectedClientKey] = useState('curl')\n const selectedExample = examples.find((example) => example.key === selectedExampleKey) ?? examples[0]\n const requestContent = selectedContent ? { ...selectedContent, value: { ...selectedContent.value, example: selectedExample?.value, examples: undefined } } : undefined\n const codeOptions = buildRequestCodeExamples({\n spec,\n path,\n method,\n parameters,\n requestContent,\n server: selectedServer,\n serverVariables,\n auth,\n })\n const selectedLanguage = codeOptions.find((option) => option.languageKey === selectedLanguageKey) ?? codeOptions[0]\n const selectedCode =\n codeOptions.find((option) => option.languageKey === selectedLanguage.languageKey && option.clientKey === selectedClientKey) ??\n selectedLanguage\n const languageOptions = getLanguageOptions(codeOptions)\n const clientOptions = getClientOptions(codeOptions, selectedCode.languageKey)\n\n return (\n <ApiExampleCodeGroup\n title={t('openapi.request')}\n tag={method}\n label={path}\n code={selectedCode.code}\n language={selectedCode.language}\n mediaTypes={requestContents.map((content) => content.mediaType)}\n selectedMediaType={selectedContent?.mediaType}\n onSelectMediaType={(value) => {\n onSelectMediaType(value)\n setSelectedExampleKey(getExampleEntries(requestContents.find((content) => content.mediaType === value)?.value)[0]?.key ?? '')\n }}\n examples={examples}\n selectedExampleKey={selectedExample?.key}\n onSelectExample={setSelectedExampleKey}\n languageOptions={languageOptions}\n selectedLanguageKey={selectedCode.languageKey}\n onSelectLanguage={(value) => {\n const nextCode = codeOptions.find((option) => option.languageKey === value)\n setSelectedLanguageKey(nextCode?.languageKey ?? value)\n setSelectedClientKey(nextCode?.clientKey ?? '')\n }}\n clientOptions={clientOptions}\n selectedClientKey={selectedCode.clientKey}\n onSelectClient={setSelectedClientKey}\n />\n )\n}\n\ntype ResponseExamplesPanelProps = { operation: OpenAPIOperation; spec?: OpenAPISpec }\n\nexport function ResponseExamplesPanel(arg0: ResponseExamplesPanelProps): ReactNode {\n const { operation, spec } = arg0\n\n const t = useBuiltInText()\n const responses = getResponseEntries(operation, spec).filter(({ response }) => getMediaTypeEntries(response.content, spec).length > 0)\n const [selectedStatus, setSelectedStatus] = useState(responses.find(({ status }) => status.startsWith('2'))?.status ?? responses[0]?.status ?? '')\n const selectedResponse = responses.find(({ status }) => status === selectedStatus) ?? responses[0]\n const responseContents = getMediaTypeEntries(selectedResponse?.response.content, spec)\n const [selectedMediaType, setSelectedMediaType] = useState(responseContents[0]?.mediaType ?? '')\n const selectedContent = responseContents.find((content) => content.mediaType === selectedMediaType) ?? responseContents[0]\n const examples = getExampleEntries(selectedContent?.value)\n const [selectedExampleKey, setSelectedExampleKey] = useState(examples[0]?.key ?? '')\n const selectedExample = examples.find((example) => example.key === selectedExampleKey) ?? examples[0]\n const responseCode = stringifyExample(selectedExample?.value)\n\n if (!selectedResponse || !selectedContent || !responseCode) return null\n\n return (\n <ApiExampleCodeGroup\n title={t('openapi.response')}\n tag={selectedResponse.status}\n tagOptions={responses.map(({ status }) => status)}\n onSelectTag={(value) => {\n const nextResponse = responses.find(({ status }) => status === value)\n const nextContents = getMediaTypeEntries(nextResponse?.response.content, spec)\n setSelectedStatus(value)\n setSelectedMediaType(nextContents[0]?.mediaType ?? '')\n setSelectedExampleKey(getExampleEntries(nextContents[0]?.value)[0]?.key ?? '')\n }}\n label={selectedContent.mediaType}\n labelOptions={responseContents.map((content) => content.mediaType)}\n onSelectLabel={(value) => {\n setSelectedMediaType(value)\n setSelectedExampleKey(getExampleEntries(responseContents.find((content) => content.mediaType === value)?.value)[0]?.key ?? '')\n }}\n comfortableMeta\n code={responseCode}\n language={codeLanguageForMediaType(selectedContent.mediaType)}\n examples={examples}\n selectedExampleKey={selectedExample?.key}\n onSelectExample={setSelectedExampleKey}\n />\n )\n}\n","import clsx from 'clsx'\nimport { ChevronDown, ChevronRight } from 'lucide-react'\nimport { useState, type ReactNode } from 'react'\n\nimport { useBuiltInText } from '../../core/i18n'\nimport { Markdown } from '../../mdx/Markdown'\nimport { Properties, Property } from '../../mdx/primitives'\nimport { getJsonLikeContent, getResponseEntries, isRecord, isReference, resolveReferenceName, resolveSchema, schemaHasType, schemaToType } from '../lib/helpers'\nimport type { OpenAPIOperation, OpenAPISpec } from '../lib/utils'\nimport type { OpenApiParameter } from '../types'\n\ntype SchemaTreeNode = {\n key: string\n name: string\n type?: string\n description?: string\n details?: string\n required: boolean\n children: SchemaTreeNode[]\n}\n\ntype SchemaTreeBranch = {\n label: string\n schema: unknown\n}\n\nfunction getSchemaDetails(schema: Record<string, unknown>): string | undefined {\n const details = [\n Array.isArray(schema.enum) ? `enum: ${schema.enum.map(String).join(', ')}` : undefined,\n typeof schema.const !== 'undefined' ? `const: ${String(schema.const)}` : undefined,\n typeof schema.default !== 'undefined' ? `default: ${String(schema.default)}` : undefined,\n typeof schema.pattern === 'string' ? `pattern: ${schema.pattern}` : undefined,\n typeof schema.minimum === 'number' ? `minimum: ${String(schema.minimum)}` : undefined,\n typeof schema.maximum === 'number' ? `maximum: ${String(schema.maximum)}` : undefined,\n typeof schema.additionalProperties === 'boolean' ? `additionalProperties: ${String(schema.additionalProperties)}` : undefined,\n ].filter(Boolean)\n\n return details.length > 0 ? details.join('; ') : undefined\n}\n\nfunction getSchemaDescription(schema: Record<string, unknown>): string | undefined {\n return typeof schema.description === 'string' ? schema.description : undefined\n}\n\nfunction getComposedBranches(schema: Record<string, unknown>): SchemaTreeBranch[] {\n const entries: SchemaTreeBranch[] = []\n\n for (const key of ['allOf', 'oneOf', 'anyOf'] as const) {\n const items = schema[key]\n if (!Array.isArray(items)) continue\n\n for (const [index, item] of items.entries()) {\n entries.push({ label: `${key}[${index}]`, schema: item })\n }\n }\n\n return entries\n}\n\ntype GetSchemaChildrenArgs = {\n spec: OpenAPISpec\n schema: unknown\n path: string\n required?: string[]\n depth?: number\n seen?: Set<string>\n}\n\nfunction getSchemaChildren(arg0: GetSchemaChildrenArgs): SchemaTreeNode[] { const {\n spec,\n schema,\n path,\n required = [],\n depth = 0,\n seen = new Set<string>(),\n} = arg0\n\n if (depth > 12) return []\n\n if (isReference(schema)) {\n if (seen.has(schema.$ref)) return []\n return getSchemaChildren({\n spec,\n schema: resolveSchema(spec, schema),\n path,\n required,\n depth,\n seen: new Set([...seen, schema.$ref]),\n })\n }\n\n if (!isRecord(schema)) return []\n\n const arrayChildren = schemaHasType(schema, 'array')\n ? getSchemaChildren({ spec, schema: schema.items, path: `${path}[]`, depth: depth + 1, seen })\n : []\n\n const objectRequired = Array.isArray(schema.required) ? schema.required.map(String) : required\n const properties = isRecord(schema.properties) ? schema.properties : {}\n const propertyChildren = Object.entries(properties).map(([name, propertySchema]) => {\n const resolvedProperty = resolveSchema(spec, propertySchema)\n const property = isRecord(resolvedProperty) ? resolvedProperty : isRecord(propertySchema) ? propertySchema : {}\n const isArray = schemaHasType(property, 'array')\n const childPath = path ? `${path}.${name}` : name\n const children = getSchemaChildren({\n spec,\n schema: isArray ? property.items : propertySchema,\n path: isArray ? `${childPath}[]` : childPath,\n depth: depth + 1,\n seen,\n })\n\n return {\n key: childPath,\n name,\n type: schemaToType(propertySchema),\n description: getSchemaDescription(property),\n details: getSchemaDetails(property),\n required: objectRequired.includes(name),\n children,\n }\n })\n\n const additionalPropertyChildren = isRecord(schema.additionalProperties)\n ? [{\n key: `${path || 'root'}.*`,\n name: '*',\n type: schemaToType(schema.additionalProperties),\n description: getSchemaDescription(schema.additionalProperties),\n details: getSchemaDetails(schema.additionalProperties),\n required: false,\n children: getSchemaChildren({ spec, schema: schema.additionalProperties, path: `${path || 'root'}.*`, depth: depth + 1, seen }),\n }]\n : []\n\n const composedChildren = getComposedBranches(schema).map(({ label, schema: branchSchema }) => {\n const resolvedBranch = resolveSchema(spec, branchSchema)\n const branch = isRecord(resolvedBranch) ? resolvedBranch : undefined\n\n return {\n key: `${path || 'root'}.${label}`,\n name: label,\n type: schemaToType(branchSchema),\n description: branch ? getSchemaDescription(branch) : undefined,\n details: branch ? getSchemaDetails(branch) : undefined,\n required: false,\n children: getSchemaChildren({ spec, schema: branchSchema, path: `${path || 'root'}.${label}`, required: objectRequired, depth: depth + 1, seen }),\n }\n })\n\n return [...arrayChildren, ...propertyChildren, ...additionalPropertyChildren, ...composedChildren]\n}\n\nfunction getRootSchemaNode(spec: OpenAPISpec, schema: unknown): SchemaTreeNode | undefined {\n if (isReference(schema)) {\n const resolvedSchema = resolveSchema(spec, schema)\n const resolved = isRecord(resolvedSchema) ? resolvedSchema : {}\n\n return {\n key: schema.$ref,\n name: resolveReferenceName(schema.$ref),\n type: schemaToType(schema),\n description: getSchemaDescription(resolved),\n details: getSchemaDetails(resolved),\n required: false,\n children: getSchemaChildren({ spec, schema: resolvedSchema, path: resolveReferenceName(schema.$ref), seen: new Set([schema.$ref]) }),\n }\n }\n\n if (!isRecord(schema)) return undefined\n\n return {\n key: 'root',\n name: 'body',\n type: schemaToType(schema),\n description: getSchemaDescription(schema),\n details: getSchemaDetails(schema),\n required: false,\n children: getSchemaChildren({ spec, schema, path: '' }),\n }\n}\n\ntype SchemaNodeProps = { node: SchemaTreeNode; depth?: number }\n\nfunction SchemaNode(arg0: SchemaNodeProps): ReactNode { const { node, depth = 0 } = arg0\n\n const t = useBuiltInText()\n const [expanded, setExpanded] = useState(depth < 1)\n const hasChildren = node.children.length > 0\n const type = [node.type, node.required ? t('openapi.requiredBadge') : undefined].filter(Boolean).join(', ') || undefined\n const fallbackDescription = node.required ? t('openapi.required') : t('openapi.optional')\n const rowClassName = clsx(\n 'flex min-w-0 items-start rounded py-0.5 text-left',\n depth > 0 ? '-mx-2 w-[calc(100%+1rem)] px-2' : 'w-full px-1',\n )\n\n const content = (\n <>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5\">\n <span className=\"text-sm/5 font-semibold text-zinc-950 dark:text-white\">{node.name}</span>\n {type ? <span className=\"text-xs text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-500\">{type}</span> : null}\n </div>\n <div className=\"mt-0.5 text-sm/5 text-zinc-600 *:first:mt-0 *:last:mb-0 dark:text-zinc-400\">\n {node.description ? <Markdown>{node.description}</Markdown> : fallbackDescription}\n {node.details ? <p className=\"text-xs text-zinc-500 dark:text-zinc-500\">{node.details}</p> : null}\n </div>\n </div>\n {hasChildren ? (\n <span className=\"ml-2 flex h-5 w-5 flex-none items-center justify-center text-zinc-500 dark:text-zinc-400\" aria-hidden=\"true\">\n {expanded ? <ChevronDown className=\"h-4 w-4\" /> : <ChevronRight className=\"h-4 w-4\" />}\n </span>\n ) : null}\n </>\n )\n\n return (\n <li className=\"clarify-schema-node m-0 px-0 py-2 first:pt-0 last:pb-0\">\n {hasChildren ? (\n <button\n type=\"button\"\n aria-label={expanded ? t('openapi.collapse') : t('openapi.expand')}\n aria-expanded={expanded}\n onClick={() => setExpanded((value) => !value)}\n className={clsx(rowClassName, 'cursor-pointer transition')}\n >\n {content}\n </button>\n ) : (\n <div className={rowClassName}>{content}</div>\n )}\n {hasChildren && expanded ? <SchemaTree nodes={node.children} depth={depth + 1} /> : null}\n </li>\n )\n}\n\ntype SchemaTreeProps = { nodes: SchemaTreeNode[]; depth?: number }\n\nfunction SchemaTree(arg0: SchemaTreeProps): ReactNode { const { nodes, depth = 0 } = arg0\n\n if (nodes.length === 0) return null\n\n return (\n <ul\n role=\"list\"\n className={clsx(\n 'm-0 list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5',\n depth > 0 && 'mt-2 rounded-lg bg-zinc-950/2.5 px-2 py-1 dark:bg-white/4',\n )}\n >\n {nodes.map((node) => <SchemaNode key={node.key} node={node} depth={depth} />)}\n </ul>\n )\n}\n\ntype SchemaPropertiesProps = { title: string; schema: unknown; spec: OpenAPISpec }\n\nexport function SchemaProperties(arg0: SchemaPropertiesProps): ReactNode { const { title, schema, spec } = arg0\n\n const root = getRootSchemaNode(spec, schema)\n\n if (!root || root.children.length === 0) return null\n\n return (\n <div>\n <h3>{title}</h3>\n <div className=\"clarify-schema-properties my-6\">\n <SchemaTree nodes={root.children} />\n </div>\n </div>\n )\n}\n\ntype ParameterListProps = { title: string; parameters: OpenApiParameter[] }\n\nexport function ParameterList(arg0: ParameterListProps): ReactNode { const { title, parameters } = arg0\n\n const t = useBuiltInText()\n if (parameters.length === 0) return null\n\n return (\n <div>\n <h3>{title}</h3>\n <Properties>\n {parameters.map((parameter) => (\n <Property\n key={`${parameter.in}-${parameter.name}`}\n name={parameter.name ?? t('openapi.parameter')}\n type={[schemaToType(parameter.schema), parameter.required ? t('openapi.requiredBadge') : undefined].filter(Boolean).join(', ') || undefined}\n >\n {parameter.description ? <Markdown>{parameter.description}</Markdown> : t('openapi.operationParameter')}\n </Property>\n ))}\n </Properties>\n </div>\n )\n}\n\ntype ResponseListProps = { operation: OpenAPIOperation; spec?: OpenAPISpec }\n\nexport function ResponseList(arg0: ResponseListProps): ReactNode { const { operation, spec } = arg0\n\n const t = useBuiltInText()\n const responses = getResponseEntries(operation, spec)\n if (responses.length === 0) return null\n\n return (\n <div>\n <h3>{t('openapi.responses')}</h3>\n <Properties>\n {responses.map(({ status, response }) => {\n const content = getJsonLikeContent(response.content, spec)\n const type = schemaToType(content?.value.schema)\n\n return (\n <Property key={status} name={status} type={type}>\n {response.description ? <Markdown>{response.description}</Markdown> : `${t('openapi.response')}.`}\n </Property>\n )\n })}\n </Properties>\n </div>\n )\n}\n","import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headlessui/react'\nimport clsx from 'clsx'\nimport { slug } from 'github-slugger'\nimport { CheckIcon, ChevronDownIcon, LockKeyholeIcon, ServerIcon, UnlockKeyholeIcon } from 'lucide-react'\nimport { useState, type ReactNode } from 'react'\n\nimport { Heading } from '../../components/Heading'\nimport { useBuiltInText } from '../../core/i18n'\nimport { Markdown } from '../../mdx/Markdown'\nimport { Col, Row } from '../../mdx/primitives'\nimport { getMediaTypeEntries, getOperationParameters, getRequestBody } from '../lib/helpers'\nimport type { OpenAPIOperation, OpenAPISpec } from '../lib/utils'\nimport type { OpenApiParameter, MediaTypeEntry, OpenApiServer, OpenApiServerVariable, RequestAuthInput } from '../types'\n\nimport { authLabel, authPlaceholder, defaultServerVariables, getAuthOptions, getServerKey, getServerLabel, getServers, RequestExamplesPanel, ResponseExamplesPanel } from './ExamplePanels'\nimport type { AuthOption } from './ExamplePanels'\nimport { SchemaProperties, ParameterList, ResponseList } from './SchemaProperties'\n\n\nexport type OpenApiOperationProps = {\n spec: OpenAPISpec\n path: string\n method: string\n operation: OpenAPIOperation\n}\n\ntype EndpointExamplesProps = {\n spec: OpenAPISpec\n path: string\n method: string\n operation: OpenAPIOperation\n parameters: OpenApiParameter[]\n requestContents: MediaTypeEntry[]\n selectedRequestMediaType: string\n onSelectRequestMediaType: (value: string) => void\n selectedServer: OpenApiServer\n serverVariables: Record<string, string>\n auth?: RequestAuthInput\n}\n\nfunction EndpointExamples(arg0: EndpointExamplesProps): ReactNode {\n const {\n spec,\n path,\n method,\n operation,\n parameters,\n requestContents,\n selectedRequestMediaType,\n onSelectRequestMediaType,\n selectedServer,\n serverVariables,\n auth,\n } = arg0\n\n return (\n <div className=\"space-y-6\">\n <RequestExamplesPanel\n spec={spec}\n path={path}\n method={method}\n parameters={parameters}\n requestContents={requestContents}\n selectedMediaType={selectedRequestMediaType}\n onSelectMediaType={onSelectRequestMediaType}\n selectedServer={selectedServer}\n serverVariables={serverVariables}\n auth={auth}\n />\n <ResponseExamplesPanel operation={operation} spec={spec} />\n </div>\n )\n}\n\nconst endpointMethodStyles: Record<string, string> = {\n GET: 'bg-emerald-400/15 text-emerald-600 dark:bg-emerald-400/20 dark:text-emerald-300',\n POST: 'bg-sky-400/15 text-sky-600 dark:bg-sky-400/20 dark:text-sky-300',\n PUT: 'bg-amber-400/15 text-amber-600 dark:bg-amber-400/20 dark:text-amber-300',\n PATCH: 'bg-amber-400/15 text-amber-600 dark:bg-amber-400/20 dark:text-amber-300',\n DELETE: 'bg-rose-400/15 text-rose-600 dark:bg-rose-400/20 dark:text-rose-300',\n}\n\ntype EndpointMethodBadgeProps = { method: string }\n\nfunction EndpointMethodBadge(arg0: EndpointMethodBadgeProps): ReactNode {\n const { method } = arg0\n\n return (\n <span\n className={clsx(\n 'rounded-(--clarify-theme-tokens-radius-md) px-2.5 py-0.5 text-xs/6 font-black tracking-wide',\n endpointMethodStyles[method] ?? 'bg-zinc-400/15 text-zinc-700 dark:bg-zinc-400/20 dark:text-zinc-200',\n )}\n >\n {method}\n </span>\n )\n}\n\ntype UiOption = {\n value: string\n label: string\n description?: string\n}\n\ntype InlineListboxProps = {\n label: string\n value: string\n options: UiOption[]\n onChange: (value: string) => void\n compact?: boolean\n}\n\nfunction InlineListbox(arg0: InlineListboxProps): ReactNode {\n const { label, value, options, onChange, compact = false } = arg0\n\n const selected = options.find((option) => option.value === value) ?? options[0]\n\n return (\n <Listbox value={selected?.value ?? value} onChange={onChange}>\n <div className=\"pointer-events-auto relative inline-flex min-w-0\">\n <ListboxButton\n aria-label={label}\n className={clsx(\n 'inline-flex min-w-0 items-center gap-1 rounded-md border border-zinc-200 bg-white font-semibold text-zinc-900 shadow-xs outline-hidden transition hover:border-zinc-300 hover:bg-zinc-50 data-open:border-zinc-300 data-open:bg-zinc-50 dark:border-white/10 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:border-white/15 dark:hover:bg-zinc-900 dark:data-open:border-white/15 dark:data-open:bg-zinc-900',\n compact ? 'max-w-32 px-1.5 py-0.5 text-xs' : 'w-full px-2.5 py-1.5 text-xs',\n )}\n >\n <span className=\"truncate\">{selected?.label ?? value}</span>\n <ChevronDownIcon className=\"h-3.5 w-3.5 shrink-0 text-zinc-500 dark:text-zinc-400\" aria-hidden=\"true\" />\n </ListboxButton>\n <ListboxOptions anchor=\"bottom start\" className=\"z-30 mt-1 max-h-64 w-max min-w-(--button-width) max-w-[min(32rem,calc(100vw-2rem))] overflow-auto rounded-xl bg-white p-1 text-xs shadow-lg shadow-black/10 ring-1 ring-zinc-950/10 [--anchor-gap:--spacing(1)] focus:outline-none dark:bg-zinc-950 dark:ring-white/10\">\n {options.map((option) => (\n <ListboxOption key={option.value} value={option.value} className=\"group flex cursor-default items-center justify-between gap-3 rounded-lg px-2.5 py-2 text-xs text-zinc-700 select-none data-focus:bg-zinc-100 data-selected:text-emerald-700 dark:text-zinc-200 dark:data-focus:bg-white/10 dark:data-selected:text-emerald-300\">\n <span className=\"min-w-0\">\n <span className=\"block truncate\">{option.label}</span>\n {option.description ? <span className=\"mt-0.5 block truncate text-2xs text-zinc-500 dark:text-zinc-400\">{option.description}</span> : null}\n </span>\n <CheckIcon className=\"h-3.5 w-3.5 shrink-0 opacity-0 group-data-selected:opacity-100\" aria-hidden=\"true\" />\n </ListboxOption>\n ))}\n </ListboxOptions>\n </div>\n </Listbox>\n )\n}\n\nfunction getServerPreviewUrl(server: OpenApiServer, variables: Record<string, string>): string {\n return (server.url ?? '').replace(/\\{([^}]+)\\}/g, (_, name: string) => variables[name] ?? server.variables?.[name]?.default ?? `{${name}}`)\n}\n\ntype ServerUrlValueProps = {\n server: OpenApiServer\n variables: Record<string, string>\n open: boolean\n onToggle: () => void\n}\n\nfunction ServerUrlValue(arg0: ServerUrlValueProps): ReactNode {\n const { server, variables, open, onToggle } = arg0\n\n const url = getServerPreviewUrl(server, variables)\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-label=\"Server\"\n onClick={onToggle}\n className={clsx(\n 'flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-zinc-100/50 text-zinc-600 transition hover:bg-zinc-100 hover:text-zinc-950 dark:bg-white/5 dark:text-zinc-300 dark:hover:bg-white/10 dark:hover:text-white sm:w-auto sm:min-w-16 sm:max-w-[min(36%,16rem)] sm:px-1.5',\n open ? 'bg-zinc-200 text-zinc-950 dark:bg-white/12 dark:text-white' : null,\n )}\n >\n <span className=\"sm:hidden\"><ServerIcon className=\"h-4 w-4\" aria-hidden=\"true\" /></span>\n <span className=\"hidden min-w-0 items-center gap-1 overflow-hidden sm:flex\">\n <span className=\"truncate text-xs\">{url}</span>\n <ChevronDownIcon className=\"h-3.5 w-3.5 shrink-0 text-zinc-400\" aria-hidden=\"true\" />\n </span>\n </button>\n )\n}\n\ntype ServerVariableControlProps = {\n name: string\n variable?: OpenApiServerVariable\n value: string\n onChange: (value: string) => void\n compact?: boolean\n}\n\nfunction ServerVariableControl(arg0: ServerVariableControlProps): ReactNode {\n const { name, variable, value, onChange, compact = false } = arg0\n\n if (variable?.enum?.length) {\n return (\n <InlineListbox\n label={name}\n value={value}\n options={variable.enum.map((option) => ({ value: option, label: option }))}\n onChange={onChange}\n compact={compact}\n />\n )\n }\n\n return (\n <input\n aria-label={name}\n value={value}\n placeholder={variable?.default ?? name}\n onChange={(event) => onChange(event.target.value)}\n className={clsx(\n 'pointer-events-auto rounded-md border border-zinc-200 bg-white text-xs font-semibold text-zinc-900 shadow-xs outline-hidden transition placeholder:text-zinc-500 hover:border-zinc-300 hover:bg-zinc-50 focus:border-zinc-400 focus:bg-white dark:border-white/10 dark:bg-zinc-950 dark:text-zinc-100 dark:placeholder:text-zinc-500 dark:hover:border-white/15 dark:hover:bg-zinc-900 dark:focus:border-white/20 dark:focus:bg-zinc-950',\n compact ? 'mx-0.5 w-24 px-1.5 py-0.5' : 'w-full px-2.5 py-1.5',\n )}\n />\n )\n}\n\ntype ServerPanelProps = {\n servers: OpenApiServer[]\n selectedKey: string\n selectedServer: OpenApiServer\n variables: Record<string, string>\n onSelectServer: (key: string) => void\n onChangeVariable: (name: string, value: string) => void\n}\n\nfunction ServerPanel(arg0: ServerPanelProps): ReactNode {\n const { servers, selectedKey, selectedServer, variables, onSelectServer, onChangeVariable } = arg0\n\n const variableEntries = Object.entries(selectedServer.variables ?? {})\n\n return (\n <div className=\"border-t border-zinc-200 bg-zinc-100/70 p-3 dark:border-white/10 dark:bg-zinc-900/60\">\n <div className=\"grid gap-3 sm:grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)]\">\n {servers.length > 1 ? (\n <label className=\"flex min-w-0 flex-col gap-1.5\">\n <span className=\"text-2xs font-semibold text-zinc-700 dark:text-zinc-300\">Server</span>\n <InlineListbox\n label=\"Server\"\n value={selectedKey}\n options={servers.map((server, index) => ({\n value: getServerKey(server, index),\n label: getServerLabel(server, index),\n description: server.description,\n }))}\n onChange={onSelectServer}\n />\n </label>\n ) : null}\n {variableEntries.map(([name, variable]) => (\n <label key={name} className=\"flex min-w-0 flex-col gap-1.5\">\n <span className=\"text-2xs font-semibold text-zinc-700 dark:text-zinc-300\">{name}</span>\n <ServerVariableControl\n name={name}\n variable={variable}\n value={variables[name] ?? variable.default ?? ''}\n onChange={(value) => onChangeVariable(name, value)}\n />\n </label>\n ))}\n </div>\n </div>\n )\n}\n\ntype AuthPanelProps = {\n authOptions: AuthOption[]\n selectedAuthName: string\n selectedAuth?: AuthOption\n authValues: Record<string, string>\n onSelectAuth: (name: string) => void\n onChangeAuthValue: (name: string, value: string) => void\n}\n\nfunction AuthPanel(arg0: AuthPanelProps): ReactNode {\n const { authOptions, selectedAuthName, selectedAuth, authValues, onSelectAuth, onChangeAuthValue } = arg0\n\n if (authOptions.length === 0) return null\n\n return (\n <div className=\"border-t border-zinc-200 bg-zinc-100/70 p-3 dark:border-white/10 dark:bg-zinc-900/60\">\n <div className=\"grid gap-3 sm:grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)]\">\n <label className=\"flex min-w-0 flex-col gap-1.5\">\n <span className=\"text-2xs font-semibold text-zinc-700 dark:text-zinc-300\">Auth</span>\n <InlineListbox\n label=\"Auth\"\n value={selectedAuthName}\n options={authOptions.map(({ name, scheme }) => ({\n value: name,\n label: name,\n description: authLabel(name, scheme),\n }))}\n onChange={onSelectAuth}\n />\n </label>\n {selectedAuth ? (\n <label className=\"flex min-w-0 flex-col gap-1.5\">\n <span className=\"text-2xs font-semibold text-zinc-700 dark:text-zinc-300\">Credential</span>\n <div className=\"flex min-w-0 items-center rounded-md border border-zinc-200 bg-white px-2.5 py-1.5 shadow-xs dark:border-white/10 dark:bg-zinc-950\">\n <span className=\"mr-2 shrink-0 text-2xs font-semibold text-zinc-600 dark:text-zinc-400\">\n {selectedAuth.scheme.type === 'apiKey' ? selectedAuth.scheme.in ?? 'apiKey' : selectedAuth.scheme.scheme ?? selectedAuth.scheme.type ?? 'token'}\n </span>\n <input\n value={authValues[selectedAuth.name] ?? authPlaceholder(selectedAuth)}\n onChange={(event) => onChangeAuthValue(selectedAuth.name, event.target.value)}\n className=\"min-w-0 flex-1 border-0 bg-transparent px-0 py-0 text-xs font-semibold text-zinc-900 outline-hidden placeholder:text-zinc-500 dark:text-zinc-100 dark:placeholder:text-zinc-500\"\n />\n </div>\n </label>\n ) : null}\n </div>\n </div>\n )\n}\n\ntype EndpointIdentityProps = {\n method: string\n path: string\n servers: OpenApiServer[]\n selectedServerKey: string\n selectedServer: OpenApiServer\n serverVariables: Record<string, string>\n serverOpen: boolean\n authOptions: AuthOption[]\n selectedAuthName: string\n selectedAuth?: AuthOption\n authValues: Record<string, string>\n authOpen: boolean\n onSelectServer: (key: string) => void\n onChangeServerVariable: (name: string, value: string) => void\n onToggleServer: () => void\n onToggleAuth: () => void\n onSelectAuth: (name: string) => void\n onChangeAuthValue: (name: string, value: string) => void\n}\n\nexport function EndpointIdentity(arg0: EndpointIdentityProps): ReactNode {\n const {\n method,\n path,\n servers,\n selectedServerKey,\n selectedServer,\n serverVariables,\n serverOpen,\n authOptions,\n selectedAuthName,\n selectedAuth,\n authValues,\n authOpen,\n onSelectServer,\n onChangeServerVariable,\n onToggleServer,\n onToggleAuth,\n onSelectAuth,\n onChangeAuthValue,\n } = arg0\n\n const segments = path.split('/').filter(Boolean)\n\n return (\n <div className=\"not-prose flex w-full flex-col overflow-hidden rounded-xl border border-zinc-200 bg-white shadow-xs dark:border-white/10 dark:bg-zinc-950\">\n <div className=\"flex min-w-0 items-center gap-1.5 overflow-hidden px-2.5 py-2\">\n <EndpointMethodBadge method={method} />\n <ServerUrlValue\n server={selectedServer}\n variables={serverVariables}\n open={serverOpen}\n onToggle={onToggleServer}\n />\n <div className=\"flex min-w-0 flex-1 items-center overflow-x-auto text-sm font-bold leading-6 whitespace-nowrap\">\n {segments.length > 0 ? (\n <>\n <span className=\"text-zinc-400\">/</span>\n {segments.map((segment, index) => (\n <span key={`${segment}-${index}`} className=\"flex items-center\">\n {index > 0 ? <span className=\"text-zinc-400\">/</span> : null}\n <span className=\"font-bold text-zinc-800 dark:text-white\">{segment}</span>\n </span>\n ))}\n </>\n ) : (\n <span className=\"font-bold text-zinc-800 dark:text-white\">/</span>\n )}\n </div>\n {authOptions.length > 0 ? (\n <button\n type=\"button\"\n aria-expanded={authOpen}\n aria-label=\"Auth\"\n onClick={onToggleAuth}\n className={clsx(\n 'ml-auto flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-zinc-600 transition hover:bg-zinc-100 hover:text-emerald-700 dark:text-zinc-300 dark:hover:bg-white/10 dark:hover:text-emerald-200',\n authOpen ? 'bg-emerald-100 text-emerald-800 dark:bg-emerald-400/15 dark:text-emerald-100' : 'bg-zinc-50 dark:bg-white/5',\n )}\n >\n {authOpen ? <UnlockKeyholeIcon className=\"h-4 w-4\" aria-hidden=\"true\" /> : <LockKeyholeIcon className=\"h-4 w-4\" aria-hidden=\"true\" />}\n </button>\n ) : null}\n </div>\n {serverOpen ? (\n <ServerPanel\n servers={servers}\n selectedKey={selectedServerKey}\n selectedServer={selectedServer}\n variables={serverVariables}\n onSelectServer={onSelectServer}\n onChangeVariable={onChangeServerVariable}\n />\n ) : null}\n {authOpen ? (\n <AuthPanel\n authOptions={authOptions}\n selectedAuthName={selectedAuthName}\n selectedAuth={selectedAuth}\n authValues={authValues}\n onSelectAuth={onSelectAuth}\n onChangeAuthValue={onChangeAuthValue}\n />\n ) : null}\n </div>\n )\n}\n\nexport function OpenApiOperation(arg0: OpenApiOperationProps): ReactNode {\n const { spec, path, method, operation } = arg0\n\n const t = useBuiltInText()\n const id = slug(`${method.toLowerCase()} ${path}`)\n const summary = operation.summary ?? `${method} ${path}`\n const description = operation.description\n const parameters = getOperationParameters(spec, path, operation)\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 const requestSchema = selectedRequestContent?.value.schema\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 const authOptions = getAuthOptions(spec, operation)\n const [selectedAuthName, setSelectedAuthName] = useState(authOptions[0]?.name ?? '')\n const selectedAuth = authOptions.find((option) => option.name === selectedAuthName)\n const [authValues, setAuthValues] = useState<Record<string, string>>({})\n const [authOpen, setAuthOpen] = useState(false)\n const authInput: RequestAuthInput | undefined = selectedAuth\n ? { name: selectedAuth.name, scheme: selectedAuth.scheme, value: authValues[selectedAuth.name] ?? authPlaceholder(selectedAuth) }\n : undefined\n const groupedParameters = {\n path: parameters.filter((parameter) => parameter.in === 'path'),\n query: parameters.filter((parameter) => parameter.in === 'query'),\n header: parameters.filter((parameter) => parameter.in === 'header'),\n }\n\n return (\n <section className=\"clarify-api-endpoint scroll-mt-24 py-16 first:pt-0 last:pb-0\" aria-labelledby={id}>\n <EndpointIdentity\n method={method}\n path={path}\n servers={servers}\n selectedServerKey={selectedServerKey}\n selectedServer={selectedServer}\n serverVariables={serverVariables}\n serverOpen={serverOpen}\n authOptions={authOptions}\n selectedAuthName={selectedAuthName}\n selectedAuth={selectedAuth}\n authValues={authValues}\n authOpen={authOpen}\n onSelectServer={(value) => {\n const nextServer = servers.find((server, index) => getServerKey(server, index) === value) ?? servers[0]\n setSelectedServerKey(value)\n setServerVariables(defaultServerVariables(nextServer))\n }}\n onChangeServerVariable={(name, value) => setServerVariables((current) => ({ ...current, [name]: value }))}\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, value) => setAuthValues((current) => ({ ...current, [name]: value }))}\n />\n <Heading id={id} className=\"mt-6\">\n {summary}\n </Heading>\n <Row>\n <Col>\n {description ? <Markdown className=\"mt-4 *:first:mt-0 *:last:mb-0\">{description}</Markdown> : null}\n <ParameterList title={t('openapi.pathParameters')} parameters={groupedParameters.path} />\n <ParameterList title={t('openapi.queryParameters')} parameters={groupedParameters.query} />\n <ParameterList title={t('openapi.headers')} parameters={groupedParameters.header} />\n {requestBody && requestContents.length > 0 ? (\n <>\n <h3>{t('openapi.requestBody')}</h3>\n {typeof requestBody.description === 'string' ? <Markdown>{requestBody.description}</Markdown> : null}\n <SchemaProperties title={t('openapi.bodyProperties')} schema={requestSchema} spec={spec} />\n </>\n ) : null}\n <ResponseList operation={operation} spec={spec} />\n </Col>\n <Col sticky>\n <EndpointExamples\n spec={spec}\n path={path}\n method={method}\n operation={operation}\n parameters={parameters}\n requestContents={requestContents}\n selectedRequestMediaType={selectedRequestContent?.mediaType ?? ''}\n onSelectRequestMediaType={setSelectedRequestMediaType}\n selectedServer={selectedServer}\n serverVariables={serverVariables}\n auth={authInput}\n />\n </Col>\n </Row>\n </section>\n )\n}\n"],"mappings":"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"}