@clarify-labs/renderer 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/output/{ClarifyShell-BPv2bxI4.js → ClarifyShell-C38EkErX.js} +397 -250
- package/output/ClarifyShell-C38EkErX.js.map +1 -0
- package/output/{ClarifyShell-B74Fq4UU.cjs → ClarifyShell-DdYRgrfY.cjs} +396 -249
- package/output/ClarifyShell-DdYRgrfY.cjs.map +1 -0
- package/output/{OpenApiOperation-BMXfV15v.cjs → OpenApiOperation-CP_fxT_F.cjs} +344 -219
- package/output/OpenApiOperation-CP_fxT_F.cjs.map +1 -0
- package/output/{OpenApiOperation-fJ3QQOJX.js → OpenApiOperation-DIFaYAe5.js} +344 -219
- package/output/OpenApiOperation-DIFaYAe5.js.map +1 -0
- package/output/{PageActions-DOKkt2zo.cjs → PageActions-B08cDCzq.cjs} +278 -167
- package/output/PageActions-B08cDCzq.cjs.map +1 -0
- package/output/{PageActions-BwY7ierv.js → PageActions-tmnpzi23.js} +279 -168
- package/output/PageActions-tmnpzi23.js.map +1 -0
- package/output/app/SectionProvider.d.ts +1 -0
- package/output/client.cjs +3 -3
- package/output/client.js +3 -3
- package/output/core/types.d.ts +1 -0
- package/output/index.cjs +4 -4
- package/output/index.js +4 -4
- package/output/openapi/components/CodeDisplay.d.ts +25 -0
- package/output/openapi/components/EndpointSections.d.ts +4 -0
- package/output/openapi/components/ExamplePanels.d.ts +8 -17
- package/output/openapi/components/OpenApiOperation.state.d.ts +43 -0
- package/output/openapi/components/SelectControl.d.ts +15 -0
- package/output/openapi/components/helpers.d.ts +22 -0
- package/output/preview.cjs +114 -67
- package/output/preview.cjs.map +1 -1
- package/output/preview.js +114 -67
- package/output/preview.js.map +1 -1
- package/output/{render-Cghgq1AQ.js → render-6gHfrR9h.js} +2 -2
- package/output/{render-Cghgq1AQ.js.map → render-6gHfrR9h.js.map} +1 -1
- package/output/{render-ZSckbg74.cjs → render-Bvf5ZMZb.cjs} +2 -2
- package/output/{render-ZSckbg74.cjs.map → render-Bvf5ZMZb.cjs.map} +1 -1
- package/output/renderer.css +168 -107
- package/output/server.cjs +2 -2
- package/output/server.js +2 -2
- package/output/shell/Header.d.ts +2 -0
- package/package.json +1 -1
- package/output/ClarifyShell-B74Fq4UU.cjs.map +0 -1
- package/output/ClarifyShell-BPv2bxI4.js.map +0 -1
- package/output/OpenApiOperation-BMXfV15v.cjs.map +0 -1
- package/output/OpenApiOperation-fJ3QQOJX.js.map +0 -1
- package/output/PageActions-BwY7ierv.js.map +0 -1
- package/output/PageActions-DOKkt2zo.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiOperation-DIFaYAe5.js","names":[],"sources":["../source/components/LocalizedLink.tsx","../source/components/Button.tsx","../source/components/Callout.tsx","../source/components/Card.tsx","../source/components/Mermaid.tsx","../source/components/Code.tsx","../source/components/Collapse.tsx","../source/components/Feedback.tsx","../source/components/Tag.tsx","../source/components/Heading.tsx","../source/components/Logo.tsx","../source/components/patterns.tsx","../source/components/Prose.tsx","../source/components/WebFrame.tsx","../source/mdx/primitives.tsx","../source/mdx/Markdown.tsx","../source/openapi/lib/helpers.ts","../source/openapi/lib/request-code.ts","../source/openapi/components/SelectControl.tsx","../source/openapi/components/CodeDisplay.tsx","../source/openapi/components/helpers.ts","../source/openapi/components/ExamplePanels.tsx","../source/openapi/components/SchemaProperties.tsx","../source/openapi/components/EndpointSections.tsx","../source/openapi/components/OpenApiOperation.state.ts","../source/openapi/components/OpenApiOperation.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { useConfig, useLocale } from '../core/context'\nimport { isExternalHref, localizeHref } from '../utils/href'\n\nexport function useLocalizedHref(href: string): string {\n const config = useConfig()\n const locale = useLocale()\n return localizeHref(href, config, locale)\n}\n\nexport type LocalizedLinkProps = ComponentPropsWithoutRef<'a'> & {\n href: string\n}\n\nexport function LocalizedLink(arg0: LocalizedLinkProps) {\n const { href, ...props } = arg0\n const localizedHref = useLocalizedHref(href)\n\n if (!isExternalHref(localizedHref) && !localizedHref.startsWith('#')) {\n return <Link to={localizedHref} {...props} />\n }\n\n return <a href={localizedHref} {...props} />\n}\n","import clsx from 'clsx'\nimport { ArrowRight } from 'lucide-react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nimport { LocalizedLink } from './LocalizedLink'\n\nconst buttonVariantStyles = {\n primary:\n 'rounded-full bg-(--clarify-theme-tokens-colors-foreground) px-3 py-1 text-(--clarify-theme-tokens-colors-background) hover:opacity-80 dark:bg-(--clarify-theme-tokens-colors-primary)/10 dark:text-(--clarify-theme-tokens-colors-primary) dark:ring-1 dark:ring-inset dark:ring-(--clarify-theme-tokens-colors-primary)/20 dark:hover:opacity-80',\n secondary:\n 'rounded-full bg-(--clarify-theme-tokens-colors-code-background) px-3 py-1 text-(--clarify-ui-text-soft) ring-1 ring-inset ring-(--clarify-theme-tokens-colors-border) hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground)',\n filled:\n 'rounded-full bg-(--clarify-theme-tokens-colors-foreground) px-3 py-1 text-(--clarify-theme-tokens-colors-background) hover:opacity-80 dark:bg-(--clarify-theme-tokens-colors-primary) dark:hover:opacity-80',\n outline:\n 'rounded-full px-3 py-1 text-(--clarify-ui-text-soft) ring-1 ring-inset ring-(--clarify-theme-tokens-colors-border) hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground)',\n text: 'text-(--clarify-theme-tokens-colors-primary) hover:opacity-80 dark:text-(--clarify-theme-tokens-colors-primary) dark:hover:opacity-80',\n}\n\nexport type ButtonProps = {\n variant?: keyof typeof buttonVariantStyles\n arrow?: 'left' | 'right'\n} & (\n | (ComponentPropsWithoutRef<'a'> & { href: string })\n | (ComponentPropsWithoutRef<'button'> & { href?: undefined })\n)\n\nexport function Button(arg0: ButtonProps) {\n const { variant = 'primary', className, children, arrow, ...props } = arg0\n\n const classes = clsx(\n 'clarify-button not-prose inline-flex w-fit max-w-full items-center justify-center gap-1 overflow-hidden align-middle text-sm leading-6 font-medium whitespace-nowrap no-underline transition',\n buttonVariantStyles[variant],\n className,\n )\n\n const arrowIcon = (\n <ArrowRight\n aria-hidden=\"true\"\n className={clsx(\n 'h-4 w-4 shrink-0',\n variant === 'text' && 'relative top-px',\n arrow === 'left' && '-ml-0.5 rotate-180',\n arrow === 'right' && '-mr-0.5',\n )}\n />\n )\n\n const inner = (\n <>\n {arrow === 'left' ? arrowIcon : null}\n <span className=\"truncate\">{children}</span>\n {arrow === 'right' ? arrowIcon : null}\n </>\n )\n\n if (typeof props.href === 'undefined') {\n return (\n <button className={classes} {...props}>\n {inner}\n </button>\n )\n }\n\n return (\n <LocalizedLink className={classes} {...props}>\n {inner}\n </LocalizedLink>\n )\n}\n","import clsx from 'clsx'\nimport { AlertTriangle, CheckCircle2, Info, Lightbulb, XCircle } from 'lucide-react'\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport { useBuiltInText } from '../core/i18n'\n\nexport type CalloutType = 'info' | 'note' | 'tip' | 'warning' | 'danger' | 'success'\n\ntype CalloutStyle = {\n container: string\n icon: string\n title: string\n Icon: typeof Info\n}\n\nconst calloutStyles: Record<CalloutType, CalloutStyle> = {\n info: {\n container: 'border-sky-500/20 bg-sky-50/50 text-sky-950 dark:border-sky-400/30 dark:bg-sky-400/5 dark:text-sky-100',\n icon: 'text-sky-600 dark:text-sky-400',\n title: 'text-sky-900 dark:text-sky-100',\n Icon: Info,\n },\n note: {\n container: 'border-zinc-500/20 bg-zinc-50 text-zinc-900 dark:border-white/10 dark:bg-white/5 dark:text-zinc-200',\n icon: 'text-zinc-500 dark:text-zinc-400',\n title: 'text-zinc-900 dark:text-white',\n Icon: Info,\n },\n tip: {\n container: 'border-emerald-500/20 bg-emerald-50/50 text-emerald-950 dark:border-emerald-400/30 dark:bg-emerald-400/5 dark:text-emerald-100',\n icon: 'text-emerald-600 dark:text-emerald-400',\n title: 'text-emerald-900 dark:text-emerald-100',\n Icon: Lightbulb,\n },\n warning: {\n container: 'border-amber-500/20 bg-amber-50/70 text-amber-950 dark:border-amber-400/30 dark:bg-amber-400/5 dark:text-amber-100',\n icon: 'text-amber-600 dark:text-amber-400',\n title: 'text-amber-900 dark:text-amber-100',\n Icon: AlertTriangle,\n },\n danger: {\n container: 'border-rose-500/20 bg-rose-50/70 text-rose-950 dark:border-rose-400/30 dark:bg-rose-400/5 dark:text-rose-100',\n icon: 'text-rose-600 dark:text-rose-400',\n title: 'text-rose-900 dark:text-rose-100',\n Icon: XCircle,\n },\n success: {\n container: 'border-emerald-500/20 bg-emerald-50/50 text-emerald-950 dark:border-emerald-400/30 dark:bg-emerald-400/5 dark:text-emerald-100',\n icon: 'text-emerald-600 dark:text-emerald-400',\n title: 'text-emerald-900 dark:text-emerald-100',\n Icon: CheckCircle2,\n },\n}\n\nconst defaultTitleKeys: Record<CalloutType, Parameters<ReturnType<typeof useBuiltInText>>[0]> = {\n info: 'callout.info',\n note: 'callout.note',\n tip: 'callout.tip',\n warning: 'callout.warning',\n danger: 'callout.danger',\n success: 'callout.success',\n}\n\nexport type CalloutProps = {\n children: ReactNode\n type?: CalloutType\n title?: ReactNode\n icon?: boolean\n className?: string\n} & Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'className' | 'title'>\n\nexport function Callout(arg0: CalloutProps) {\n const {\n children,\n type = 'info',\n title,\n icon = true,\n className,\n ...props\n } = arg0\n\n const t = useBuiltInText()\n const style = calloutStyles[type]\n const Icon = style.Icon\n const resolvedTitle = title === undefined ? t(defaultTitleKeys[type]) : title\n\n return (\n <div\n className={clsx(\n 'clarify-callout my-6 flex gap-3 rounded-(--clarify-theme-tokens-radius-xl) border p-4 text-sm/6',\n style.container,\n className,\n )}\n {...props}\n >\n {icon ? <Icon className={clsx('mt-1 size-4 flex-none', style.icon)} aria-hidden=\"true\" /> : null}\n <div className=\"min-w-0 flex-1 *:first:mt-0 *:last:mb-0\">\n {resolvedTitle ? <p className={clsx('mb-1 font-semibold', style.title)}>{resolvedTitle}</p> : null}\n <div className=\"*:first:mt-0 *:last:mb-0\">{children}</div>\n </div>\n </div>\n )\n}\n","import clsx from 'clsx'\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport { lucideIconRegistry, resolveLucideIconName } from '../utils/lucide'\n\nimport { LocalizedLink } from './LocalizedLink'\n\ntype CardIconProps = { name?: string }\n\nfunction CardIcon(arg0: CardIconProps) {\n const { name } = arg0\n\n if (!name) return null\n\n const iconName = resolveLucideIconName(name)\n if (!iconName) return null\n\n const Icon = lucideIconRegistry[iconName]\n if (!Icon) return null\n\n return (\n <span className=\"flex size-9 flex-none items-center justify-center rounded-(--clarify-theme-tokens-radius-lg) bg-(--clarify-ui-accent-background) text-(--clarify-ui-accent-text) ring-1 ring-(--clarify-ui-accent-border)\">\n <Icon className=\"size-5\" aria-hidden=\"true\" />\n </span>\n )\n}\n\nexport type CardGroupProps = {\n children: ReactNode\n cols?: 1 | 2 | 3 | 4\n className?: string\n}\n\nconst cardGroupColumnStyles: Record<NonNullable<CardGroupProps['cols']>, string> = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-1 sm:grid-cols-2',\n 3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',\n}\n\nexport function CardGroup(arg0: CardGroupProps) {\n const { children, cols = 2, className } = arg0\n\n return (\n <div className={clsx('not-prose my-10 grid gap-4', cardGroupColumnStyles[cols], className)}>\n {children}\n </div>\n )\n}\n\nexport type CardProps = {\n title: string\n icon?: string\n href?: string\n children?: ReactNode\n className?: string\n} & Omit<ComponentPropsWithoutRef<'a'>, 'children' | 'className' | 'href' | 'title'>\n\nexport function Card(arg0: CardProps) {\n const { title, icon, href, children, className, ...props } = arg0\n\n const content = (\n <>\n <div className=\"flex items-start gap-4\">\n <CardIcon name={icon} />\n <div className=\"min-w-0 flex-1\">\n <h3 className=\"m-0 text-base font-semibold text-(--clarify-theme-tokens-colors-foreground)\">{title}</h3>\n {children ? (\n <div className=\"mt-2 text-sm/6 text-(--clarify-ui-text-soft) *:m-0\">\n {children}\n </div>\n ) : null}\n </div>\n </div>\n {href ? <span className=\"absolute inset-0 rounded-(--clarify-theme-tokens-radius-xl)\" aria-hidden=\"true\" /> : null}\n </>\n )\n\n const classes = clsx(\n 'group relative block rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-(--clarify-ui-accent-glow) transition hover:shadow-xs',\n className,\n )\n\n if (!href) {\n return <div className={classes}>{content}</div>\n }\n\n return (\n <LocalizedLink href={href} className={classes} {...props}>\n {content}\n </LocalizedLink>\n )\n}\n","import clsx from 'clsx'\nimport { Maximize2, ZoomIn, ZoomOut } from 'lucide-react'\nimport { useEffect, useId, useRef, useState, type ReactNode } from 'react'\nimport { TransformComponent, TransformWrapper, useControls } from 'react-zoom-pan-pinch'\n\nimport { useBuiltInText } from '../core/i18n'\nimport { useTheme } from '../theme/ThemeProvider'\n\ntype MermaidProps = {\n chart: string\n className?: string\n}\n\n// A single shared promise so the (fairly large) mermaid bundle is only loaded\n// once and only on the client, the first time a diagram becomes visible.\nlet mermaidModulePromise: Promise<typeof import('mermaid').default> | undefined\n\nasync function loadMermaid() {\n mermaidModulePromise = mermaidModulePromise ?? import('mermaid').then((module) => module.default)\n return mermaidModulePromise\n}\n\nfunction ZoomControls(): ReactNode {\n const { zoomIn, zoomOut, resetTransform } = useControls()\n const t = useBuiltInText()\n\n const buttonClassName = 'flex h-7 w-7 items-center justify-center rounded-md bg-(--clarify-theme-tokens-colors-surface) text-(--clarify-ui-text-soft) shadow-xs ring-1 ring-(--clarify-theme-tokens-colors-border) transition hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground)'\n\n return (\n <div className=\"clarify-mermaid-controls absolute top-2 right-2 z-10 flex gap-1 opacity-0 transition group-hover:opacity-100 focus-within:opacity-100\">\n <button type=\"button\" aria-label={t('mermaid.zoomIn')} title={t('mermaid.zoomIn')} onClick={() => zoomIn()} className={buttonClassName}>\n <ZoomIn className=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n <button type=\"button\" aria-label={t('mermaid.zoomOut')} title={t('mermaid.zoomOut')} onClick={() => zoomOut()} className={buttonClassName}>\n <ZoomOut className=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n <button type=\"button\" aria-label={t('mermaid.resetZoom')} title={t('mermaid.resetZoom')} onClick={() => resetTransform()} className={buttonClassName}>\n <Maximize2 className=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </div>\n )\n}\n\nexport function Mermaid(arg0: MermaidProps): ReactNode {\n const { chart, className } = arg0\n\n const t = useBuiltInText()\n const { resolvedTheme } = useTheme()\n const reactId = useId()\n const renderId = `clarify-mermaid-${reactId.replace(/[^a-zA-Z0-9]/g, '')}`\n const containerRef = useRef<HTMLDivElement>(null)\n const [svg, setSvg] = useState('')\n const [error, setError] = useState<string | undefined>(undefined)\n const [focused, setFocused] = useState(false)\n\n useEffect(() => {\n let cancelled = false\n\n async function renderChart() {\n const source = chart.trim()\n if (!source) {\n setSvg('')\n setError(undefined)\n return\n }\n\n try {\n const mermaid = await loadMermaid()\n mermaid.initialize({\n startOnLoad: false,\n securityLevel: 'strict',\n theme: resolvedTheme === 'dark' ? 'dark' : 'default',\n fontFamily: 'inherit',\n })\n const { svg: renderedSvg } = await mermaid.render(renderId, source)\n if (!cancelled) {\n setSvg(renderedSvg)\n setError(undefined)\n }\n } catch (renderError) {\n if (!cancelled) {\n setSvg('')\n setError(renderError instanceof Error ? renderError.message : String(renderError))\n }\n }\n }\n\n void renderChart()\n\n return () => {\n cancelled = true\n }\n }, [chart, renderId, resolvedTheme])\n\n if (error) {\n return (\n <div className={clsx('clarify-mermaid clarify-mermaid-error my-6 overflow-x-auto rounded-2xl border border-(--clarify-ui-accent-border) bg-(--clarify-ui-accent-background) p-4', className)}>\n <p className=\"text-sm font-semibold text-(--clarify-error-accent-text)\">{t('mermaid.renderError')}</p>\n <pre className=\"mt-2 text-xs whitespace-pre-wrap text-(--clarify-ui-text-soft)\">{error}</pre>\n <pre className=\"mt-2 text-xs whitespace-pre-wrap text-(--clarify-ui-text-faint)\">{chart.trim()}</pre>\n </div>\n )\n }\n\n if (!svg) {\n // Before hydration / while loading, keep the raw source visible so the\n // diagram still conveys information and the layout does not jump abruptly.\n return (\n <div className={clsx('clarify-mermaid clarify-mermaid-loading not-prose my-6 overflow-x-auto rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-4', className)}>\n <pre className=\"text-xs text-(--clarify-ui-text-soft)\">{chart.trim()}</pre>\n </div>\n )\n }\n\n return (\n <div\n ref={containerRef}\n tabIndex={0}\n role=\"group\"\n onPointerDown={() => containerRef.current?.focus()}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n className={clsx('clarify-mermaid group not-prose relative my-6 overflow-hidden rounded-2xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) outline-none focus-visible:ring-2 focus-visible:ring-(--clarify-theme-tokens-colors-primary)', className)}\n >\n <TransformWrapper\n minScale={0.5}\n maxScale={8}\n initialScale={1}\n centerOnInit\n smooth\n wheel={{ step: 0.05, wheelDisabled: !focused, touchPadDisabled: !focused }}\n doubleClick={{ mode: 'reset' }}\n >\n <ZoomControls />\n <TransformComponent\n wrapperClass=\"!w-full !cursor-grab active:!cursor-grabbing\"\n contentClass=\"!w-full justify-center [&_svg]:h-auto [&_svg]:max-w-full\"\n wrapperStyle={{ height: 'min(70vh, 32rem)' }}\n >\n <div className=\"flex h-full w-full items-center justify-center p-4\" dangerouslySetInnerHTML={{ __html: svg }} />\n </TransformComponent>\n <p\n className={clsx(\n 'clarify-mermaid-hint pointer-events-none absolute bottom-2 left-1/2 z-10 -translate-x-1/2 rounded-full bg-(--clarify-theme-tokens-colors-surface)/90 px-2.5 py-1 text-2xs text-(--clarify-ui-text-soft) shadow-xs ring-1 ring-(--clarify-theme-tokens-colors-border) backdrop-blur-sm transition',\n focused ? 'opacity-0' : 'opacity-0 group-hover:opacity-100',\n )}\n >\n {t('mermaid.scrollHint')}\n </p>\n </TransformWrapper>\n </div>\n )\n}\n","import { Tab, TabGroup, TabList, TabPanel, TabPanels } from '@headlessui/react'\nimport clsx from 'clsx'\nimport { Check, Clipboard } from 'lucide-react'\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\nimport { create } from 'zustand'\n\nimport { useBuiltInText } from '../core/i18n'\nimport { copyTextToClipboard } from '../utils/clipboard'\n\nimport { Mermaid } from './Mermaid'\n\nconst languageNames: Record<string, string> = {\n js: 'JavaScript',\n ts: 'TypeScript',\n jsx: 'React JSX',\n tsx: 'React TSX',\n javascript: 'JavaScript',\n typescript: 'TypeScript',\n php: 'PHP',\n python: 'Python',\n ruby: 'Ruby',\n go: 'Go',\n bash: 'Shell',\n sh: 'Shell',\n shell: 'Shell',\n json: 'JSON',\n}\n\ntype GetPanelTitleArgs = { title?: string; language?: string; fallbackTitle?: string }\n\nfunction getPanelTitle(arg0: GetPanelTitleArgs) { const { title, language, fallbackTitle = 'Code' } = arg0\n\n if (title) return title\n if (language && language in languageNames) return languageNames[language]\n return fallbackTitle\n}\n\nfunction getNodeText(node: ReactNode): string {\n if (typeof node === 'string' || typeof node === 'number') return String(node)\n if (Array.isArray(node)) return node.map(getNodeText).join('')\n if (isValidElement(node)) return getNodeText((node.props as { children?: ReactNode }).children)\n return ''\n}\n\ntype CopyButtonProps = { code: string }\n\nfunction CopyButton(arg0: CopyButtonProps) { const { code } = arg0\n\n const t = useBuiltInText()\n const [copyCount, setCopyCount] = useState(0)\n const copied = copyCount > 0\n\n useEffect(() => {\n if (copyCount === 0) return undefined\n const timeout = window.setTimeout(() => setCopyCount(0), 1000)\n return () => window.clearTimeout(timeout)\n }, [copyCount])\n\n if (!code) return null\n\n return (\n <button\n type=\"button\"\n className={clsx(\n 'clarify-code-copy group/button absolute top-3.5 right-4 inline-flex items-center gap-1 overflow-hidden rounded-full border border-(--clarify-code-border) py-1 pr-3 pl-2 text-2xs font-medium whitespace-nowrap opacity-100 shadow-sm backdrop-blur-sm transition sm:opacity-0 sm:group-hover:opacity-100 focus:opacity-100',\n copied ? 'clarify-code-copy-copied text-(--clarify-code-text)' : 'bg-(--clarify-code-control-background) text-(--clarify-code-text) hover:bg-(--clarify-code-control-background-hover)',\n )}\n onClick={() => {\n void copyTextToClipboard(code).then((ok) => {\n if (ok) setCopyCount((count) => count + 1)\n })\n }}\n >\n {copied ? (\n <>\n <Check className=\"h-3.5 w-3.5 stroke-(--clarify-theme-tokens-colors-primary)\" />\n {t('actions.copied')}\n </>\n ) : (\n <>\n <Clipboard className=\"h-3.5 w-3.5 stroke-(--clarify-code-muted) transition-colors group-hover/button:stroke-(--clarify-code-text)\" />\n {t('actions.copy')}\n </>\n )}\n </button>\n )\n}\n\ntype CodePanelHeaderProps = { tag?: string; label?: string }\n\nfunction CodePanelHeader(arg0: CodePanelHeaderProps) { const { tag, label } = arg0\n\n if (!tag && !label) return null\n\n return (\n <div className=\"clarify-code-panel-header flex h-9 items-center gap-2 border-y border-(--clarify-code-border) border-t-transparent bg-(--clarify-code-background) px-4\">\n {tag ? <span className=\"clarify-code-panel-tag font-semibold text-(--clarify-theme-tokens-colors-primary)\">{tag}</span> : null}\n {tag && label ? <span className=\"h-0.5 w-0.5 rounded-full bg-(--clarify-code-faint)\" /> : null}\n {label ? <span className=\"truncate text-xs text-(--clarify-code-muted)\">{label}</span> : null}\n </div>\n )\n}\n\ntype CodePanelProps = {\n children: ReactNode\n tag?: string\n label?: string\n code?: string\n}\n\nfunction CodePanel(arg0: CodePanelProps) {\n const { children } = arg0\n let { tag, label, code } = arg0\n\n const child = Children.only(children)\n\n if (isValidElement(child)) {\n const props = child.props as { tag?: string; label?: string; code?: string; children?: ReactNode }\n tag = props.tag ?? tag\n label = props.label ?? label\n code = props.code ?? code ?? getNodeText(props.children)\n }\n\n const copyText = code ?? getNodeText(children)\n\n return (\n <div className=\"clarify-code-panel group bg-(--clarify-code-background)\">\n <CodePanelHeader tag={tag} label={label} />\n <div className=\"relative\">\n <pre className=\"clarify-code-pre overflow-x-auto p-4 text-xs text-(--clarify-code-text)\">{children}</pre>\n <CopyButton code={copyText} />\n </div>\n </div>\n )\n}\n\ntype CodeGroupHeaderProps = { title?: string; children: ReactNode; selectedIndex: number }\n\nfunction CodeGroupHeader(arg0: CodeGroupHeaderProps) { const { title, children, selectedIndex } = arg0\n\n const t = useBuiltInText()\n const hasTabs = Children.count(children) > 1\n\n if (!title && !hasTabs) return null\n\n return (\n <div className=\"clarify-code-group-header flex min-h-(--clarify-code-header-min-height) flex-wrap items-start gap-x-4 border-b border-(--clarify-code-border) bg-(--clarify-code-header-background) px-4\">\n {title ? <h3 className=\"mr-auto pt-3 text-xs font-semibold text-(--clarify-code-text)\">{title}</h3> : null}\n {hasTabs ? (\n <TabList className=\"clarify-code-tabs -mb-px flex gap-4 text-xs font-medium\">\n {Children.map(children, (child, childIndex) => (\n <Tab\n className={clsx(\n 'clarify-code-tab border-b py-3 transition data-selected:not-data-focus:outline-hidden',\n childIndex === selectedIndex\n ? 'border-(--clarify-theme-tokens-colors-primary) text-(--clarify-theme-tokens-colors-primary)'\n : 'border-transparent text-(--clarify-code-muted) hover:text-(--clarify-code-text)',\n )}\n >\n {getPanelTitle({ ...(isValidElement(child) ? (child.props as { title?: string; language?: string }) : {}), fallbackTitle: t('actions.code') })}\n </Tab>\n ))}\n </TabList>\n ) : null}\n </div>\n )\n}\n\ntype CodeGroupPanelsProps = ComponentPropsWithoutRef<typeof CodePanel>\n\nfunction CodeGroupPanels(arg0: CodeGroupPanelsProps) { const { children, ...props } = arg0\n\n const hasTabs = Children.count(children) > 1\n\n if (hasTabs) {\n return (\n <TabPanels>\n {Children.map(children, (child) => (\n <TabPanel>\n <CodePanel {...props}>{child}</CodePanel>\n </TabPanel>\n ))}\n </TabPanels>\n )\n }\n\n return <CodePanel {...props}>{children}</CodePanel>\n}\n\nfunction usePreventLayoutShift() {\n const positionRef = useRef<HTMLElement>(null)\n const rafRef = useRef<number | undefined>(undefined)\n\n useEffect(() => {\n return () => {\n if (typeof rafRef.current !== 'undefined') window.cancelAnimationFrame(rafRef.current)\n }\n }, [])\n\n return {\n positionRef,\n preventLayoutShift(callback: () => void) {\n if (!positionRef.current) return\n\n const initialTop = positionRef.current.getBoundingClientRect().top\n callback()\n\n rafRef.current = window.requestAnimationFrame(() => {\n const newTop = positionRef.current?.getBoundingClientRect().top ?? initialTop\n window.scrollBy(0, newTop - initialTop)\n })\n },\n }\n}\n\nconst usePreferredLanguageStore = create<{\n preferredLanguages: string[]\n addPreferredLanguage: (language: string) => void\n}>()((set) => ({\n preferredLanguages: [],\n addPreferredLanguage: (language) =>\n set((state) => ({\n preferredLanguages: [...state.preferredLanguages.filter((preferredLanguage) => preferredLanguage !== language), language],\n })),\n}))\n\nfunction useTabGroupProps(availableLanguages: string[]) {\n const { preferredLanguages, addPreferredLanguage } = usePreferredLanguageStore()\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n // Only sync the selection from the globally preferred language when the\n // languages are unambiguous (each appears at most once). When languages\n // collide (e.g. two `bash` panels), index resolution by language name would\n // always return the first match and break tab switching, so we rely on the\n // local selection instead.\n const languagesAreUnique = new Set(availableLanguages).size === availableLanguages.length\n if (languagesAreUnique) {\n const activeLanguage = [...availableLanguages].sort(\n (a, z) => preferredLanguages.indexOf(z) - preferredLanguages.indexOf(a),\n )[0]\n const languageIndex = availableLanguages.indexOf(activeLanguage)\n const newSelectedIndex = languageIndex === -1 ? selectedIndex : languageIndex\n\n if (newSelectedIndex !== selectedIndex) setSelectedIndex(newSelectedIndex)\n }\n\n const { positionRef, preventLayoutShift } = usePreventLayoutShift()\n\n return {\n as: 'div' as const,\n ref: positionRef,\n selectedIndex,\n onChange: (nextSelectedIndex: number) => {\n setSelectedIndex(nextSelectedIndex)\n preventLayoutShift(() => addPreferredLanguage(availableLanguages[nextSelectedIndex]))\n },\n }\n}\n\nconst CodeGroupContext = createContext(false)\n\ntype CodeGroupProps = ComponentPropsWithoutRef<typeof CodeGroupPanels> & { title?: string }\n\nexport function CodeGroup(arg0: CodeGroupProps) { const {\n children,\n title,\n ...props\n} = arg0\n\n const t = useBuiltInText()\n const languages =\n Children.map(children, (child) =>\n getPanelTitle({ ...(isValidElement(child) ? (child.props as { title?: string; language?: string }) : {}), fallbackTitle: t('actions.code') }),\n ) ?? []\n const tabGroupProps = useTabGroupProps(languages)\n const hasTabs = Children.count(children) > 1\n const containerClassName = 'clarify-code-group my-6 overflow-hidden rounded-2xl bg-(--clarify-code-background) shadow-md ring-1 ring-(--clarify-code-border)'\n const header = (\n <CodeGroupHeader title={title} selectedIndex={tabGroupProps.selectedIndex}>\n {children}\n </CodeGroupHeader>\n )\n const panels = <CodeGroupPanels {...props}>{children}</CodeGroupPanels>\n\n return (\n <CodeGroupContext.Provider value={true}>\n {hasTabs ? (\n <TabGroup {...tabGroupProps} className={containerClassName}>\n <div className=\"not-prose\">\n {header}\n {panels}\n </div>\n </TabGroup>\n ) : (\n <div className={containerClassName}>\n <div className=\"not-prose\">\n {header}\n {panels}\n </div>\n </div>\n )}\n </CodeGroupContext.Provider>\n )\n}\n\ntype CodeProps = ComponentPropsWithoutRef<'code'> & { code?: string; language?: string; title?: string }\n\nexport function Code(arg0: CodeProps) { const { children, ...props } = arg0\n\n const isGrouped = useContext(CodeGroupContext)\n\n if (isGrouped && typeof children === 'string') {\n return <code {...props} dangerouslySetInnerHTML={{ __html: children }} />\n }\n\n return <code {...props}>{children}</code>\n}\n\ntype PreProps = ComponentPropsWithoutRef<typeof CodeGroup> & { language?: string; code?: string }\n\nexport function Pre(arg0: PreProps) { const { children, language, code, ...props } = arg0\n\n const isGrouped = useContext(CodeGroupContext)\n\n if (language === 'mermaid') {\n return <Mermaid chart={code ?? getNodeText(children)} />\n }\n\n if (isGrouped) return children\n\n return <CodeGroup {...props}>{children}</CodeGroup>\n}\n","import clsx from 'clsx'\nimport { ChevronDown } from 'lucide-react'\nimport { type ComponentPropsWithoutRef, type ReactNode, useId, useLayoutEffect, useRef, useState } from 'react'\n\nexport type CollapseProps = {\n children?: ReactNode\n title?: ReactNode\n summary?: ReactNode\n defaultOpen?: boolean\n className?: string\n} & Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'className'>\n\nexport function Collapse(arg0: CollapseProps) {\n const { children, title, summary, defaultOpen = false, className, ...props } = arg0\n const [open, setOpen] = useState(defaultOpen)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const [maxHeight, setMaxHeight] = useState('0px')\n const summaryLabel = title ?? summary ?? 'Details'\n const contentId = useId()\n\n useLayoutEffect(() => {\n if (!contentRef.current) return\n setMaxHeight(open ? `${contentRef.current.scrollHeight}px` : '0px')\n }, [open, children])\n\n return (\n <div\n className={clsx(\n 'clarify-collapse my-6 overflow-hidden rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface)',\n className,\n )}\n {...props}\n >\n <button\n type=\"button\"\n className=\"flex w-full cursor-pointer items-center justify-between gap-3 px-4 py-3 text-left text-sm font-semibold text-(--clarify-theme-tokens-colors-foreground) transition hover:bg-(--clarify-ui-hover-background) focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--clarify-theme-tokens-colors-primary) focus-visible:ring-offset-2 focus-visible:ring-offset-(--clarify-theme-tokens-colors-background)\"\n aria-expanded={open}\n aria-controls={contentId}\n onClick={() => setOpen((value) => !value)}\n >\n <span>{summaryLabel}</span>\n <ChevronDown\n className={clsx(\n 'h-4 w-4 text-(--clarify-theme-tokens-colors-muted) transition-transform duration-200',\n open && 'rotate-180',\n )}\n aria-hidden=\"true\"\n />\n </button>\n <div\n id={contentId}\n className=\"clarify-collapse-content overflow-hidden border-t border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-background) duration-200 ease-out\"\n style={{ maxHeight, willChange: 'max-height, opacity, transform' }}\n >\n <div\n ref={contentRef}\n className={clsx(\n 'px-4 py-4 text-sm/6 text-(--clarify-theme-tokens-colors-foreground) transition-opacity duration-200 ease-out',\n open ? 'opacity-100 translate-y-0' : 'opacity-0 -translate-y-1',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n","import { Transition } from '@headlessui/react'\nimport clsx from 'clsx'\nimport { CircleCheck } from 'lucide-react'\nimport { forwardRef, useState } from 'react'\nimport type { ComponentPropsWithoutRef, ElementRef, FormEvent } from 'react'\n\nimport { useBuiltInText } from '../core/i18n'\n\nfunction FeedbackButton(props: Omit<ComponentPropsWithoutRef<'button'>, 'type' | 'className'>) {\n return (\n <button\n type=\"submit\"\n className=\"clarify-feedback-button px-3 text-sm font-medium text-(--clarify-ui-text-soft) transition hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground)\"\n {...props}\n />\n )\n}\n\nconst FeedbackForm = forwardRef<ElementRef<'form'>, ComponentPropsWithoutRef<'form'>>(function FeedbackForm(arg0, ref,) { const { onSubmit, className, ...props } = arg0\n const t = useBuiltInText()\n\n return (\n <form\n {...props}\n ref={ref}\n onSubmit={onSubmit}\n className={clsx(className, 'clarify-feedback-form absolute inset-0 flex items-center justify-center gap-6 md:justify-start')}\n >\n <p className=\"text-sm text-(--clarify-ui-text-soft)\">{t('feedback.prompt')}</p>\n <div className=\"clarify-feedback-actions group grid h-8 grid-cols-(--clarify-feedback-actions-grid) overflow-hidden rounded-full border border-(--clarify-theme-tokens-colors-border)\">\n <FeedbackButton data-response=\"yes\">{t('feedback.yes')}</FeedbackButton>\n <div className=\"bg-(--clarify-theme-tokens-colors-border)\" />\n <FeedbackButton data-response=\"no\">{t('feedback.no')}</FeedbackButton>\n </div>\n </form>\n )\n})\n\nconst FeedbackThanks = forwardRef<ElementRef<'div'>, ComponentPropsWithoutRef<'div'>>(function FeedbackThanks(arg0, ref,) { const { className, ...props } = arg0\n const t = useBuiltInText()\n\n return (\n <div {...props} ref={ref} className={clsx(className, 'clarify-feedback-thanks absolute inset-0 flex justify-center md:justify-start')}>\n <div className=\"flex items-center gap-3 rounded-full bg-(--clarify-ui-accent-background) py-1 pr-3 pl-1.5 text-sm text-(--clarify-ui-accent-text) ring-1 ring-(--clarify-ui-accent-border) ring-inset\">\n <CircleCheck className=\"h-5 w-5 flex-none stroke-(--clarify-ui-accent-text)\" />\n {t('feedback.thanks')}\n </div>\n </div>\n )\n})\n\nexport function Feedback() {\n const [submitted, setSubmitted] = useState(false)\n\n function onSubmit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault()\n setSubmitted(true)\n }\n\n return (\n <div className=\"clarify-feedback relative h-8\">\n <Transition show={!submitted}>\n <FeedbackForm className=\"duration-300 data-closed:opacity-0 data-leave:pointer-events-none\" onSubmit={onSubmit} />\n </Transition>\n <Transition show={submitted}>\n <FeedbackThanks className=\"delay-150 duration-300 data-closed:opacity-0\" />\n </Transition>\n </div>\n )\n}\n","import clsx from 'clsx'\nimport type { ReactNode } from 'react'\n\nconst tagVariantStyles = {\n small: '',\n medium: 'rounded-lg px-1.5 ring-1 ring-inset',\n}\n\nconst tagColorStyles = {\n emerald: {\n small: 'text-emerald-500 dark:text-emerald-400',\n medium: 'bg-emerald-400/10 text-emerald-500 ring-emerald-300 dark:text-emerald-400 dark:ring-emerald-400/30',\n },\n sky: {\n small: 'text-sky-500 dark:text-sky-400',\n medium: 'bg-sky-400/10 text-sky-500 ring-sky-300 dark:text-sky-400 dark:ring-sky-400/30',\n },\n amber: {\n small: 'text-amber-500 dark:text-amber-400',\n medium: 'bg-amber-400/10 text-amber-500 ring-amber-300 dark:text-amber-400 dark:ring-amber-400/30',\n },\n rose: {\n small: 'text-red-500 dark:text-rose-500',\n medium: 'bg-rose-50 text-red-500 ring-rose-200 dark:bg-rose-400/10 dark:text-rose-400 dark:ring-rose-500/20',\n },\n zinc: {\n small: 'text-(--clarify-theme-tokens-colors-muted)',\n medium: 'bg-(--clarify-theme-tokens-colors-code-background) text-(--clarify-theme-tokens-colors-muted) ring-(--clarify-theme-tokens-colors-border)',\n },\n}\n\nconst tagValueColorMap: Record<string, keyof typeof tagColorStyles> = {\n GET: 'emerald',\n POST: 'sky',\n PUT: 'amber',\n PATCH: 'amber',\n DELETE: 'rose',\n}\n\nexport type TagProps = {\n children: ReactNode\n variant?: keyof typeof tagVariantStyles\n color?: keyof typeof tagColorStyles\n}\n\nexport function Tag(arg0: TagProps) {\n const { children, variant = 'medium', color } = arg0\n\n const value = typeof children === 'string' ? children.toUpperCase() : ''\n const resolvedColor = color ?? tagValueColorMap[value] ?? 'emerald'\n\n return (\n <span\n className={clsx(\n 'clarify-tag font-bold',\n tagVariantStyles[variant],\n tagColorStyles[resolvedColor][variant],\n )}\n >\n {children}\n </span>\n )\n}\n","import clsx from 'clsx'\nimport { useInView } from 'framer-motion'\nimport { LinkIcon } from 'lucide-react'\nimport { useEffect, useRef } from 'react'\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport { useSectionStore } from '../app/SectionProvider'\nimport { remToPx } from '../utils/remToPx'\n\nimport { Tag } from './Tag'\n\ntype EyebrowProps = { tag?: string; label?: string }\n\nfunction Eyebrow(arg0: EyebrowProps) {\n const { tag, label } = arg0\n\n if (!tag && !label) {\n return null\n }\n\n return (\n <div className=\"flex items-center gap-x-3\">\n {tag ? <Tag>{tag}</Tag> : null}\n {tag && label ? <span className=\"h-0.5 w-0.5 rounded-full bg-zinc-300 dark:bg-zinc-600\" /> : null}\n {label ? <span className=\"text-xs text-zinc-400\">{label}</span> : null}\n </div>\n )\n}\n\ntype AnchorProps = { id: string; inView: boolean; children: ReactNode }\n\nfunction Anchor(arg0: AnchorProps) {\n const { id, inView, children } = arg0\n\n return (\n <a href={`#${id}`} className=\"clarify-anchor group text-inherit no-underline hover:text-inherit\">\n {inView ? (\n <div className=\"absolute mt-1 -ml-(--width) hidden w-(--width) opacity-0 transition [--width:var(--clarify-heading-anchor-width)] group-hover:opacity-100 group-focus:opacity-100 md:block lg:z-50 2xl:[--width:var(--clarify-heading-anchor-width-wide)]\">\n <LinkIcon className=\"h-5 w-5 text-(--clarify-theme-tokens-colors-primary) opacity-80 transition group-hover:opacity-100\" />\n </div>\n ) : null}\n {children}\n </a>\n )\n}\n\ntype HeadingProps<Level extends 2 | 3> = ComponentPropsWithoutRef<`h${Level}`> & {\n id: string\n tag?: string\n label?: string\n level?: Level\n anchor?: boolean\n}\n\nexport function Heading<Level extends 2 | 3>(arg0: HeadingProps<Level>) {\n const { children, className, tag, label, level, anchor = true, ...props } = arg0\n\n const resolvedLevel = level ?? (2 as Level)\n const Component = `h${resolvedLevel}` as 'h2' | 'h3'\n const ref = useRef<HTMLHeadingElement>(null)\n const registerHeading = useSectionStore((state) => state.registerHeading)\n\n const inView = useInView(ref, {\n margin: `${remToPx(-3.5)}px 0px 0px 0px`,\n amount: 'all',\n })\n\n useEffect(() => {\n registerHeading({\n id: props.id,\n ref,\n offsetRem: tag || label ? 8 : 6,\n })\n }, [label, props.id, registerHeading, resolvedLevel, tag])\n\n return (\n <>\n <Eyebrow tag={tag} label={label} />\n <Component ref={ref} className={clsx('clarify-heading', tag || label ? 'mt-2 scroll-mt-32' : 'scroll-mt-24', className)} {...props}>\n {anchor ? (\n <Anchor id={props.id} inView={inView}>\n {children}\n </Anchor>\n ) : (\n children\n )}\n </Component>\n </>\n )\n}\n","import clsx from 'clsx'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport function Logo(props: ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox=\"0 0 99 24\" aria-hidden=\"true\" {...props} className={clsx('clarify-logo', props.className)}>\n <path\n className=\"fill-(--clarify-theme-tokens-colors-primary)\"\n d=\"M16 8a5 5 0 0 0-5-5H5a5 5 0 0 0-5 5v13.927a1 1 0 0 0 1.623.782l3.684-2.93a4 4 0 0 1 2.49-.87H11a5 5 0 0 0 5-5V8Z\"\n />\n <path\n className=\"fill-(--clarify-theme-tokens-colors-foreground) dark:fill-white\"\n d=\"M26.538 18h2.654v-3.999h2.576c2.672 0 4.456-1.723 4.456-4.333V9.65c0-2.61-1.784-4.333-4.456-4.333h-5.23V18Zm4.58-10.582c1.52 0 2.416.8 2.416 2.241v.018c0 1.441-.896 2.25-2.417 2.25h-1.925V7.418h1.925ZM38.051 18h2.566v-5.414c0-1.371.923-2.206 2.382-2.206.396 0 .791.061 1.178.15V8.287a3.843 3.843 0 0 0-.958-.123c-1.257 0-2.136.615-2.443 1.661h-.159V8.323h-2.566V18Zm11.55.202c2.979 0 4.772-1.88 4.772-5.036v-.018c0-3.128-1.82-5.036-4.773-5.036-2.953 0-4.772 1.916-4.772 5.036v.018c0 3.146 1.793 5.036 4.772 5.036Zm0-2.013c-1.372 0-2.145-1.116-2.145-3.023v-.018c0-1.89.782-3.023 2.144-3.023 1.354 0 2.145 1.134 2.145 3.023v.018c0 1.907-.782 3.023-2.145 3.023Zm10.52 1.846c.492 0 .967-.053 1.283-.114v-1.907a6.057 6.057 0 0 1-.755.044c-.87 0-1.24-.387-1.24-1.257v-4.544h1.995V8.323H59.41V6.012h-2.592v2.311h-1.495v1.934h1.495v5.133c0 1.88.949 2.645 3.304 2.645Zm7.287.167c2.98 0 4.772-1.88 4.772-5.036v-.018c0-3.128-1.82-5.036-4.772-5.036-2.954 0-4.773 1.916-4.773 5.036v.018c0 3.146 1.793 5.036 4.773 5.036Zm0-2.013c-1.372 0-2.145-1.116-2.145-3.023v-.018c0-1.89.782-3.023 2.145-3.023 1.353 0 2.144 1.134 2.144 3.023v.018c0 1.907-.782 3.023-2.144 3.023Zm10.767 2.013c2.522 0 4.034-1.353 4.297-3.463l.01-.053h-2.374l-.017.036c-.229.966-.853 1.467-1.908 1.467-1.37 0-2.135-1.08-2.135-3.04v-.018c0-1.934.755-3.006 2.135-3.006 1.099 0 1.74.615 1.908 1.556l.008.017h2.391v-.026c-.228-2.162-1.749-3.56-4.315-3.56-3.033 0-4.738 1.837-4.738 5.019v.017c0 3.217 1.714 5.054 4.738 5.054Zm10.257 0c2.98 0 4.772-1.88 4.772-5.036v-.018c0-3.128-1.82-5.036-4.772-5.036-2.953 0-4.773 1.916-4.773 5.036v.018c0 3.146 1.793 5.036 4.773 5.036Zm0-2.013c-1.371 0-2.145-1.116-2.145-3.023v-.018c0-1.89.782-3.023 2.145-3.023 1.353 0 2.144 1.134 2.144 3.023v.018c0 1.907-.782 3.023-2.144 3.023ZM95.025 18h2.566V4.623h-2.566V18Z\"\n />\n </svg>\n )\n}\n","import { useId } from 'react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\ntype GridPatternProps = ComponentPropsWithoutRef<'svg'> & {\n width: number\n height: number\n x: string | number\n y: string | number\n squares?: Array<[x: number, y: number]>\n}\n\nexport function GridPattern(arg0: GridPatternProps) { const {\n width,\n height,\n x,\n y,\n squares,\n ...props\n} = arg0\n\n const patternId = useId()\n\n return (\n <svg aria-hidden=\"true\" {...props}>\n <defs>\n <pattern id={patternId} width={width} height={height} patternUnits=\"userSpaceOnUse\" x={x} y={y}>\n <path d={`M.5 ${height}V.5H${width}`} fill=\"none\" />\n </pattern>\n </defs>\n <rect width=\"100%\" height=\"100%\" strokeWidth={0} fill={`url(#${patternId})`} />\n {squares ? (\n <svg x={x} y={y} className=\"overflow-visible\">\n {squares.map(([squareX, squareY]) => (\n <rect\n key={`${squareX}-${squareY}`}\n width={width + 1}\n height={height + 1}\n x={squareX * width}\n y={squareY * height}\n strokeWidth=\"0\"\n />\n ))}\n </svg>\n ) : null}\n </svg>\n )\n}\n\nexport function HeroPattern() {\n return (\n <div className=\"absolute inset-0 -z-10 mx-0 max-w-none overflow-hidden\">\n <div className=\"clarify-hero-pattern-mask absolute top-0 left-1/2 -ml-152 h-100 w-325\">\n <div className=\"clarify-hero-pattern-gradient absolute inset-0 opacity-35 dark:opacity-55\">\n <GridPattern\n width={72}\n height={56}\n x={-12}\n y={4}\n squares={[\n [4, 3],\n [2, 1],\n [7, 3],\n [10, 6],\n ]}\n className=\"clarify-hero-pattern-grid absolute inset-x-0 w-full -skew-y-18 fill-black/40 stroke-black/50 mix-blend-overlay dark:fill-white/2.5 dark:stroke-white/5\"\n />\n </div>\n <svg\n viewBox=\"0 0 1113 440\"\n aria-hidden=\"true\"\n className=\"absolute top-0 left-1/2 -ml-76 w-278.25 fill-white blur-xl dark:hidden\"\n >\n <path d=\"M.016 439.5s-9.5-300 434-300S882.516 20 882.516 20V0h230.004v439.5H.016Z\" />\n </svg>\n </div>\n </div>\n )\n}\n","import clsx from 'clsx'\nimport type { ComponentPropsWithoutRef, ElementType } from 'react'\n\ntype ProseProps<T extends ElementType = 'div'> = Omit<ComponentPropsWithoutRef<T>, 'as' | 'className'> & {\n as?: T\n className?: string\n}\n\nexport function Prose<T extends ElementType = 'div'>(arg0: ProseProps<T>) {\n const { as, className, ...props } = arg0\n const Component = as ?? 'div'\n\n return (\n <Component\n className={clsx(\n className,\n 'clarify-prose prose max-w-none min-w-0 dark:prose-invert wrap-break-word',\n '[html_:where(&>*)]:w-full [html_:where(&>*)]:min-w-0 [html_:where(&>*)]:max-w-full',\n )}\n {...props}\n />\n )\n}\n","import clsx from 'clsx'\nimport type { CSSProperties, ComponentPropsWithoutRef, ReactNode } from 'react'\n\nexport type WebFrameProps = {\n src?: string\n title?: string\n children?: ReactNode\n showWindow?: boolean\n className?: string\n iframeClassName?: string\n height?: CSSProperties['height']\n} & Omit<ComponentPropsWithoutRef<'iframe'>, 'children' | 'className' | 'height' | 'src' | 'title'>\n\nexport function WebFrame(arg0: WebFrameProps) {\n const {\n src,\n title = 'Embedded content',\n children,\n showWindow = true,\n className,\n iframeClassName,\n height = 420,\n style,\n ...props\n } = arg0\n\n const frame = src ? (\n <iframe\n src={src}\n title={title}\n loading=\"lazy\"\n className={clsx('block w-full flex-1 border-0 bg-white', iframeClassName)}\n style={{ height, ...style }}\n {...props}\n />\n ) : (\n <div className={clsx('min-h-0 flex-1 overflow-auto bg-white text-zinc-950', iframeClassName)} style={{ height, ...style }}>\n {children}\n </div>\n )\n\n if (!showWindow) {\n return (\n <div\n className={clsx(\n 'clarify-web-frame not-prose my-10 overflow-hidden rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) shadow-(--clarify-ui-accent-glow)',\n className,\n )}\n >\n {frame}\n </div>\n )\n }\n\n return (\n <div\n className={clsx(\n 'clarify-web-frame not-prose my-10 overflow-hidden rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) shadow-(--clarify-ui-accent-glow)',\n className,\n )}\n >\n <div className=\"flex h-10 items-center gap-2 border-b border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-code-background) px-4\">\n <span className=\"size-3 rounded-full bg-red-400\" aria-hidden=\"true\" />\n <span className=\"size-3 rounded-full bg-yellow-400\" aria-hidden=\"true\" />\n <span className=\"size-3 rounded-full bg-green-400\" aria-hidden=\"true\" />\n <span className=\"sr-only\">{title}</span>\n </div>\n {frame}\n </div>\n )\n}\n","import clsx from 'clsx'\nimport { Info } from 'lucide-react'\nimport { createElement, type ComponentPropsWithoutRef, type ReactNode } from 'react'\n\nimport { PageTitleActions } from '../app/PageActions'\nimport { Button, Callout, Card, CardGroup, Heading, LocalizedLink, Prose, WebFrame } from '../components'\nimport { Code, CodeGroup, Pre } from '../components/Code'\n\ntype WrapperProps = { children: ReactNode }\n\nexport function wrapper(arg0: WrapperProps) {\n const { children } = arg0\n\n return (\n <article className=\"clarify-mdx-page flex h-full min-w-0 flex-col pt-14 pb-10\">\n <Prose className=\"flex-auto\">{children}</Prose>\n </article>\n )\n}\n\nexport function table(arg0: ComponentPropsWithoutRef<'table'>) {\n const { className, ...props } = arg0\n return (\n <div className=\"overflow-x-auto\">\n <table className={className} {...props} />\n </div>\n )\n}\n\nexport function a(arg0: ComponentPropsWithoutRef<'a'>) {\n const { href = '', ...props } = arg0\n\n return <LocalizedLink href={href} {...props} />\n}\n\nexport function h1(arg0: ComponentPropsWithoutRef<'h1'>) {\n const { children, className, ...props } = arg0\n\n return (\n <div className=\"clarify-page-title-row flex flex-col gap-4 pb-4 sm:flex-row sm:items-start sm:justify-between\">\n <h1 className={clsx('clarify-page-title min-w-0 flex-1', className)} {...props}>{children}</h1>\n <PageTitleActions />\n </div>\n )\n}\n\nexport const code = Code\nexport const pre = Pre\nexport { Button, Callout, Card, CardGroup, CodeGroup, WebFrame }\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\ntype NoteProps = { children: ReactNode }\n\nexport function Note(arg0: NoteProps) {\n 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) [--tw-prose-links-hover:var(--clarify-ui-accent-text)] [--tw-prose-links:var(--clarify-theme-tokens-colors-foreground)]\">\n <Info className=\"mt-1 h-4 w-4 flex-none 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, className?: string }\n\nexport function Row(arg0: RowProps) {\n const { children, className } = arg0\n\n return <div className={clsx('clarify-row grid grid-cols-1 items-start gap-x-8 gap-y-10 xl:max-w-none xl:grid-cols-2', className)}>{children}</div>\n}\n\ntype ColProps = { children: ReactNode; sticky?: boolean }\n\nexport function Col(arg0: ColProps) {\n const { children, sticky = false } = arg0\n\n return <div className={clsx('clarify-col *:first:mt-0 *:last:mb-0', sticky && 'xl:sticky xl:top-[calc(var(--clarify-header-offset,3.5rem)+1.5rem)] xl:self-start')}>{children}</div>\n}\n\ntype PropertiesProps = { children: ReactNode }\n\nexport function Properties(arg0: PropertiesProps) {\n 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-(--clarify-theme-tokens-colors-border) p-0\"\n >\n {children}\n </ul>\n </div>\n )\n}\n\ntype PropertyProps = { name: string; children: ReactNode; type?: string }\n\nexport function Property(arg0: PropertyProps) {\n 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-(--clarify-theme-tokens-colors-foreground)\">{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)\">{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 { isValidElement, type ComponentPropsWithoutRef, type ReactNode } from 'react'\nimport ReactMarkdown, { type Components } from 'react-markdown'\n\nimport { Mermaid } from '../components/Mermaid'\n\nimport { a as MarkdownLink, code as MarkdownCode, pre as MarkdownPre } from './primitives'\nimport { markdownRemarkPlugins } from './remark'\n\nfunction getMermaidChart(children: ReactNode): string | undefined {\n if (!isValidElement(children)) return undefined\n\n const props = children.props as { className?: string; children?: ReactNode }\n const className = typeof props.className === 'string' ? props.className : ''\n if (!/\\blanguage-mermaid\\b/.test(className)) return undefined\n\n return typeof props.children === 'string' ? props.children : undefined\n}\n\nfunction MarkdownTable(arg0: ComponentPropsWithoutRef<'table'>) {\n const { className, ...props } = arg0\n return (\n <div className=\"overflow-x-auto\">\n <table className={className} {...props} />\n </div>\n )\n}\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 const chart = getMermaidChart(children)\n if (chart !== undefined) return <Mermaid chart={chart} />\n\n return <MarkdownPre {...props}>{children}</MarkdownPre>\n },\n table(props) {\n return <MarkdownTable {...props} />\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 buildSnippetErrorMessage(error: unknown): string {\n const detail = error instanceof Error && error.message ? `\\n\\nDetails: ${error.message}` : ''\n return `Request example unavailable.\\n\\nThe selected OpenAPI example could not be converted into a code snippet. Please check that the example value matches its media type, for example valid JSON for application/json.${detail}`\n}\n\nfunction buildSnippet(input: RequestCodeInput, target: SnippetTarget): string {\n try {\n const result = snippetGenerator.print(target.target, target.client, buildHarRequest(input))\n return decodeUrlPlaceholders(result || '')\n } catch (error) {\n return buildSnippetErrorMessage(error)\n }\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 } from 'lucide-react'\nimport type { ReactNode } from 'react'\n\nexport type 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\nexport function 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-(--clarify-code-control-background) px-2 py-1 text-xs font-medium whitespace-nowrap text-(--clarify-code-text) outline-hidden transition hover:bg-(--clarify-code-control-background-hover) focus:ring-2 focus:ring-(--clarify-ui-accent-border) data-open:bg-(--clarify-code-control-background-hover) data-open:ring-2 data-open:ring-(--clarify-ui-accent-border)`}\n >\n <span className=\"flex min-w-0 items-center gap-1.5 overflow-hidden\">\n {icon ? <span className=\"shrink-0 text-(--clarify-code-faint)\">{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-(--clarify-code-faint)\" 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-(--clarify-popover-max-width) overflow-auto rounded-xl bg-(--clarify-code-surface) p-1 text-xs shadow-lg shadow-black/20 ring-1 ring-(--clarify-code-border) [--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-(--clarify-code-muted) select-none data-focus:bg-(--clarify-code-control-background-hover) data-focus:text-(--clarify-code-text) data-selected:text-(--clarify-theme-tokens-colors-primary)\"\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","import { CheckIcon, ClipboardIcon, CodeIcon, PackageIcon } from 'lucide-react'\nimport { useState, type ReactNode } from 'react'\n\nimport { useBuiltInText } from '../../core/i18n'\nimport { copyTextToClipboard } from '../../utils/clipboard'\n\nimport { SelectControl, type SelectOption } from './SelectControl'\n\ntype CopyCodeButtonProps = { code: string }\n\nexport function 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-(--clarify-code-control-background) px-2.5 py-1.5 text-2xs font-medium text-(--clarify-code-muted) transition hover:bg-(--clarify-code-control-background-hover) hover:text-(--clarify-code-text) focus:bg-(--clarify-code-control-background-hover) focus:text-(--clarify-code-text)\"\n >\n {copied ? (\n <CheckIcon className=\"h-3.5 w-3.5 text-(--clarify-theme-tokens-colors-primary)\" aria-hidden=\"true\" />\n ) : (\n <ClipboardIcon className=\"h-3.5 w-3.5 text-(--clarify-code-faint)\" 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\nexport function 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\nexport function 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","import { useBuiltInText } from '../../core/i18n'\nimport { getPathItem, isRecord } from '../lib/helpers'\nimport type { OpenAPIOperation, OpenAPISpec } from '../lib/utils'\nimport type {\n ExampleEntry,\n OpenApiSecurityRequirement,\n OpenApiSecurityScheme,\n OpenApiServer,\n RequestCodeExample,\n} from '../types'\n\nimport type { SelectOption } from './SelectControl'\n\ntype AuthPlaceholderArg = { scheme: OpenApiSecurityScheme }\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.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\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\nexport function getExampleLabel(example: ExampleEntry, t: ReturnType<typeof useBuiltInText>): string {\n return example.generated && example.title === 'schema' ? t('openapi.schemaExample') : example.title\n}\n\nexport function 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\nexport function 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","import { useState, type ReactNode } from 'react'\n\nimport { useBuiltInText } from '../../core/i18n'\nimport { codeLanguageForMediaType, getExampleEntries, getMediaTypeEntries, getResponseEntries, 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 RequestAuthInput,\n} from '../types'\n\n\nimport { ExampleMetaValue, CodeToolbar } from './CodeDisplay'\nimport {\n getExampleLabel,\n getLanguageOptions,\n getClientOptions,\n} from './helpers'\nimport { SelectControl, type SelectOption } from './SelectControl'\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-(--clarify-code-border) border-t-transparent bg-(--clarify-code-background) px-4 py-2'\n : 'flex h-9 min-w-0 items-center gap-2 border-y border-(--clarify-code-border) border-t-transparent bg-(--clarify-code-background) px-4'\n\n return (\n <div className=\"clarify-api-example my-6 overflow-hidden rounded-2xl bg-(--clarify-code-background) shadow-md ring-1 ring-(--clarify-code-border)\">\n <div className=\"not-prose\">\n <div className=\"clarify-api-example-header flex min-h-(--clarify-code-header-min-height) items-center gap-3 border-b border-(--clarify-code-border) bg-(--clarify-code-header-background) px-4 py-2\">\n <h3 className=\"mr-auto min-w-16 truncate py-1 text-xs font-semibold text-(--clarify-code-text)\">{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-(--clarify-code-faint)\" /> : 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-(--clarify-code-muted)\"\n />\n ) : null}\n </div>\n ) : null}\n <div className=\"clarify-api-example-code group relative bg-(--clarify-code-background)\">\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={`max-h-128 overflow-auto overscroll-contain p-4 text-xs text-(--clarify-code-text) ${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: Parameters<typeof buildRequestCodeExamples>[0]['server']\n serverVariables: Record<string, string>\n auth?: RequestAuthInput\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n}\n\ntype UseRequestExamplesStateArgs = {\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: Parameters<typeof buildRequestCodeExamples>[0]['server']\n serverVariables: Record<string, string>\n auth?: RequestAuthInput\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n}\n\nfunction firstExampleKeyForMediaType(requestContents: MediaTypeEntry[], mediaType: string): string {\n return getExampleEntries(requestContents.find((content) => content.mediaType === mediaType)?.value)[0]?.key ?? ''\n}\n\nfunction useRequestExamplesState(arg0: UseRequestExamplesStateArgs) {\n const {\n spec,\n path,\n method,\n parameters,\n requestContents,\n selectedMediaType,\n onSelectMediaType,\n selectedServer,\n serverVariables,\n auth,\n sharedExampleKey,\n onSelectExampleKey,\n } = arg0\n\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\n const linkedExampleKey = sharedExampleKey && examples.some((example) => example.key === sharedExampleKey) ? sharedExampleKey : undefined\n const currentExampleKey = linkedExampleKey ?? selectedExampleKey\n const selectedExample = examples.find((example) => example.key === currentExampleKey) ?? examples[0]\n const requestContent = selectedContent ? { ...selectedContent, value: { ...selectedContent.value, example: selectedExample?.value, examples: undefined } } : undefined\n\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 selectedContent,\n selectedExample,\n selectedCode,\n languageOptions,\n clientOptions,\n examples,\n onSelectMediaType: (value: string) => {\n onSelectMediaType(value)\n setSelectedExampleKey(firstExampleKeyForMediaType(requestContents, value))\n },\n onSelectExample: (value: string) => {\n setSelectedExampleKey(value)\n onSelectExampleKey?.(value)\n },\n onSelectLanguage: (value: string) => {\n const nextCode = codeOptions.find((option) => option.languageKey === value)\n setSelectedLanguageKey(nextCode?.languageKey ?? value)\n setSelectedClientKey(nextCode?.clientKey ?? '')\n },\n onSelectClient: setSelectedClientKey,\n }\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 sharedExampleKey,\n onSelectExampleKey,\n } = arg0\n\n const t = useBuiltInText()\n const state = useRequestExamplesState({\n spec,\n path,\n method,\n parameters,\n requestContents,\n selectedMediaType,\n onSelectMediaType,\n selectedServer,\n serverVariables,\n auth,\n sharedExampleKey,\n onSelectExampleKey,\n })\n\n return (\n <ApiExampleCodeGroup\n title={t('openapi.request')}\n tag={method}\n label={path}\n code={state.selectedCode.code}\n language={state.selectedCode.language}\n mediaTypes={requestContents.map((content) => content.mediaType)}\n selectedMediaType={state.selectedContent?.mediaType}\n onSelectMediaType={state.onSelectMediaType}\n examples={state.examples}\n selectedExampleKey={state.selectedExample?.key}\n onSelectExample={state.onSelectExample}\n languageOptions={state.languageOptions}\n selectedLanguageKey={state.selectedCode.languageKey}\n onSelectLanguage={state.onSelectLanguage}\n clientOptions={state.clientOptions}\n selectedClientKey={state.selectedCode.clientKey}\n onSelectClient={state.onSelectClient}\n />\n )\n}\n\ntype ResponseExamplesPanelProps = {\n operation: OpenAPIOperation\n spec?: OpenAPISpec\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n}\n\ntype UseResponseExamplesStateArgs = {\n operation: OpenAPIOperation\n spec?: OpenAPISpec\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n}\n\nfunction firstExampleKeyForResponseContent(content?: MediaTypeEntry): string {\n return getExampleEntries(content?.value)[0]?.key ?? ''\n}\n\nfunction useResponseExamplesState(arg0: UseResponseExamplesStateArgs) {\n const { operation, spec, sharedExampleKey, onSelectExampleKey } = arg0\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 linkedExampleKey = sharedExampleKey && examples.some((example) => example.key === sharedExampleKey) ? sharedExampleKey : undefined\n const currentExampleKey = linkedExampleKey ?? selectedExampleKey\n const selectedExample = examples.find((example) => example.key === currentExampleKey) ?? examples[0]\n const responseCode = stringifyExample(selectedExample?.value)\n\n return {\n responses,\n selectedResponse,\n responseContents,\n selectedContent,\n examples,\n selectedExample,\n responseCode,\n onSelectStatus: (value: string) => {\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(firstExampleKeyForResponseContent(nextContents[0]))\n },\n onSelectMediaType: (value: string) => {\n setSelectedMediaType(value)\n setSelectedExampleKey(firstExampleKeyForResponseContent(responseContents.find((content) => content.mediaType === value)))\n },\n onSelectExample: (value: string) => {\n setSelectedExampleKey(value)\n onSelectExampleKey?.(value)\n },\n }\n}\n\nexport function ResponseExamplesPanel(arg0: ResponseExamplesPanelProps): ReactNode {\n const { operation, spec, sharedExampleKey, onSelectExampleKey } = arg0\n\n const t = useBuiltInText()\n const state = useResponseExamplesState({ operation, spec, sharedExampleKey, onSelectExampleKey })\n\n if (!state.selectedResponse || !state.selectedContent || !state.responseCode) return null\n\n return (\n <ApiExampleCodeGroup\n title={t('openapi.response')}\n tag={state.selectedResponse.status}\n tagOptions={state.responses.map(({ status }) => status)}\n onSelectTag={state.onSelectStatus}\n label={state.selectedContent.mediaType}\n labelOptions={state.responseContents.map((content) => content.mediaType)}\n onSelectLabel={state.onSelectMediaType}\n comfortableMeta\n code={state.responseCode}\n language={codeLanguageForMediaType(state.selectedContent.mediaType)}\n examples={state.examples}\n selectedExampleKey={state.selectedExample?.key}\n onSelectExample={state.onSelectExample}\n />\n )\n}\n\n// Re-export helpers for backward compatibility\nexport {\n getServers,\n getServerKey,\n getServerLabel,\n defaultServerVariables,\n authPlaceholder,\n authLabel,\n getAuthOptions,\n type AuthOption,\n} from './helpers'\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-(--clarify-schema-row-nested-width) 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-(--clarify-theme-tokens-colors-foreground)\">{node.name}</span>\n {type ? <span className=\"text-xs text-(--clarify-theme-tokens-colors-muted)\">{type}</span> : null}\n </div>\n <div className=\"mt-0.5 text-sm/5 text-(--clarify-ui-text-soft) *:first:mt-0 *:last:mb-0\">\n {node.description ? <Markdown className=\"*:first:mt-0 *:last:mb-0\">{node.description}</Markdown> : fallbackDescription}\n {node.details ? <p className=\"text-xs text-(--clarify-ui-text-faint)\">{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-(--clarify-ui-text-faint)\" 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-(--clarify-theme-tokens-colors-border) p-0',\n depth > 0 && 'mt-2 rounded-lg bg-(--clarify-ui-subtle-background) px-2 py-1',\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 className=\"*:first:mt-0 *:last:mb-0\">{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 className=\"*:first:mt-0 *:last:mb-0\">{response.description}</Markdown> : `${t('openapi.response')}.`}\n </Property>\n )\n })}\n </Properties>\n </div>\n )\n}\n","import { type ReactNode } from 'react'\n\nimport { useBuiltInText } from '../../core/i18n'\nimport { Markdown } from '../../mdx/Markdown'\nimport { Col, Row } from '../../mdx/primitives'\nimport type { OpenAPIOperation, OpenAPISpec } from '../lib/utils'\nimport type { MediaTypeEntry, OpenApiParameter, OpenApiRecord, OpenApiServer, RequestAuthInput } from '../types'\n\nimport { RequestExamplesPanel, ResponseExamplesPanel } from './ExamplePanels'\nimport { ParameterList, ResponseList, SchemaProperties } from './SchemaProperties'\n\ntype EndpointRequestProps = {\n spec: OpenAPISpec\n path: string\n method: string\n description?: string\n groupedParameters: {\n path: OpenApiParameter[]\n query: OpenApiParameter[]\n header: OpenApiParameter[]\n }\n parameters: OpenApiParameter[]\n requestBody?: OpenApiRecord\n requestContents: MediaTypeEntry[]\n requestSchema: unknown\n selectedRequestMediaType: string\n onSelectRequestMediaType: (value: string) => void\n selectedServer: OpenApiServer\n serverVariables: Record<string, string>\n auth?: RequestAuthInput\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n}\n\nexport function EndpointRequest(arg0: EndpointRequestProps): ReactNode {\n const {\n spec,\n path,\n method,\n description,\n groupedParameters,\n parameters,\n requestBody,\n requestContents,\n requestSchema,\n selectedRequestMediaType,\n onSelectRequestMediaType,\n selectedServer,\n serverVariables,\n auth,\n sharedExampleKey,\n onSelectExampleKey,\n } = arg0\n\n const t = useBuiltInText()\n\n return (\n <Row className=\"relative mt-6\">\n <Col>\n {description ? <Markdown>{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 </Col>\n <Col sticky>\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 sharedExampleKey={sharedExampleKey}\n onSelectExampleKey={onSelectExampleKey}\n />\n </Col>\n </Row>\n )\n}\n\ntype EndpointResponseProps = {\n spec: OpenAPISpec\n operation: OpenAPIOperation\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n}\n\nexport function EndpointResponse(arg0: EndpointResponseProps): ReactNode {\n const { spec, operation, sharedExampleKey, onSelectExampleKey } = arg0\n\n return (\n <Row className=\"relative mt-6\">\n <Col>\n <ResponseList operation={operation} spec={spec} />\n </Col>\n <Col sticky>\n <ResponseExamplesPanel\n operation={operation}\n spec={spec}\n sharedExampleKey={sharedExampleKey}\n onSelectExampleKey={onSelectExampleKey}\n />\n </Col>\n </Row>\n )\n}\n","import { useState } from 'react'\n\nimport { getMediaTypeEntries, getOperationParameters, getRequestBody } from '../lib/helpers'\nimport type { OpenAPIOperation, OpenAPISpec } from '../lib/utils'\nimport type { OpenApiParameter, OpenApiServer, RequestAuthInput } from '../types'\n\nimport { authPlaceholder, defaultServerVariables, getAuthOptions, getServerKey, getServers } from './ExamplePanels'\nimport type { AuthOption } from './ExamplePanels'\n\nexport type OperationRequestState = {\n parameters: OpenApiParameter[]\n requestBody: ReturnType<typeof getRequestBody>\n requestContents: ReturnType<typeof getMediaTypeEntries>\n selectedRequestMediaType: string\n setSelectedRequestMediaType: (value: string) => void\n requestSchema: unknown\n groupedParameters: {\n path: OpenApiParameter[]\n query: OpenApiParameter[]\n header: OpenApiParameter[]\n }\n}\n\nexport function useOperationRequestState(spec: OpenAPISpec, path: string, operation: OpenAPIOperation): OperationRequestState {\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 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 parameters,\n requestBody,\n requestContents,\n selectedRequestMediaType: selectedRequestContent?.mediaType ?? '',\n setSelectedRequestMediaType,\n requestSchema,\n groupedParameters,\n }\n}\n\nexport type OperationServerState = {\n servers: OpenApiServer[]\n selectedServerKey: string\n selectedServer: OpenApiServer\n serverVariables: Record<string, string>\n serverOpen: boolean\n onSelectServer: (key: string) => void\n onChangeServerVariable: (name: string, value: string) => void\n onToggleServer: () => void\n closeServer: () => void\n}\n\nexport function useOperationServerState(spec: OpenAPISpec, operation: OpenAPIOperation, path: string): OperationServerState {\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 return {\n servers,\n selectedServerKey,\n selectedServer,\n serverVariables,\n serverOpen,\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: () => setServerOpen((current) => !current),\n closeServer: () => setServerOpen(false),\n }\n}\n\nexport type OperationAuthState = {\n authOptions: AuthOption[]\n selectedAuthName: string\n selectedAuth?: AuthOption\n authValues: Record<string, string>\n authOpen: boolean\n authInput?: RequestAuthInput\n onSelectAuth: (name: string) => void\n onChangeAuthValue: (name: string, value: string) => void\n onToggleAuth: () => void\n closeAuth: () => void\n}\n\nexport function useOperationAuthState(spec: OpenAPISpec, operation: OpenAPIOperation): OperationAuthState {\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\n return {\n authOptions,\n selectedAuthName,\n selectedAuth,\n authValues,\n authOpen,\n authInput,\n onSelectAuth: setSelectedAuthName,\n onChangeAuthValue: (name, value) => setAuthValues((current) => ({ ...current, [name]: value })),\n onToggleAuth: () => setAuthOpen((current) => !current),\n closeAuth: () => setAuthOpen(false),\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 type { OpenAPIOperation, OpenAPISpec } from '../lib/utils'\nimport type { OpenApiServer, OpenApiServerVariable } from '../types'\n\nimport { EndpointRequest, EndpointResponse } from './EndpointSections'\nimport { authLabel, authPlaceholder, getServerKey, getServerLabel } from './ExamplePanels'\nimport type { AuthOption } from './ExamplePanels'\nimport { useOperationAuthState, useOperationRequestState, useOperationServerState } from './OpenApiOperation.state'\n\n\nexport type OpenApiOperationProps = {\n spec: OpenAPISpec\n path: string\n method: string\n operation: OpenAPIOperation\n}\n\nconst endpointMethodStyleVars: 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\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 endpointMethodStyleVars[method] ?? 'bg-(--clarify-http-method-default-background) text-(--clarify-http-method-default-text)',\n )}\n >\n {method}\n </span>\n )\n}\n\ntype EndpointPathProps = { path: string }\n\nfunction EndpointPath(arg0: EndpointPathProps): ReactNode {\n const { path } = arg0\n\n const segments = path.split('/').filter(Boolean)\n\n return (\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-(--clarify-ui-text-faint)\">/</span>\n {segments.map((segment, index) => (\n <span key={`${segment}-${index}`} className=\"flex items-center\">\n {index > 0 ? <span className=\"text-(--clarify-ui-text-faint)\">/</span> : null}\n <span className=\"font-bold text-(--clarify-theme-tokens-colors-foreground)\">{segment}</span>\n </span>\n ))}\n </>\n ) : (\n <span className=\"font-bold text-(--clarify-theme-tokens-colors-foreground)\">/</span>\n )}\n </div>\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-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) font-semibold text-(--clarify-theme-tokens-colors-foreground) shadow-xs outline-hidden transition hover:border-(--clarify-ui-text-faint) hover:bg-(--clarify-ui-hover-background) data-open:border-(--clarify-ui-text-faint) data-open:bg-(--clarify-ui-hover-background)',\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-(--clarify-ui-text-faint)\" 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-(--clarify-popover-max-width) overflow-auto rounded-xl bg-(--clarify-theme-tokens-colors-surface) p-1 text-xs shadow-lg shadow-black/10 ring-1 ring-(--clarify-theme-tokens-colors-border) [--anchor-gap:--spacing(1)] focus:outline-none\">\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-(--clarify-ui-text) select-none data-focus:bg-(--clarify-ui-hover-background) data-selected:text-(--clarify-theme-tokens-colors-primary)\">\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-(--clarify-ui-text-faint)\">{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 interactive: boolean\n onToggle: () => void\n}\n\nfunction ServerUrlValue(arg0: ServerUrlValueProps): ReactNode {\n const { server, variables, open, interactive, onToggle } = arg0\n\n const url = getServerPreviewUrl(server, variables)\n\n if (!interactive) {\n return (\n <span\n aria-label=\"Server\"\n className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-(--clarify-ui-subtle-background) text-(--clarify-ui-text-foreground) sm:w-auto sm:min-w-16 sm:max-w-(--clarify-server-url-max-width) sm:px-1.5\"\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 overflow-hidden sm:flex\">\n <span className=\"truncate font-semibold text-xs\">{url}</span>\n </span>\n </span>\n )\n }\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-(--clarify-ui-subtle-background) text-(--clarify-ui-text-foreground) transition hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground) sm:w-auto sm:min-w-16 sm:max-w-(--clarify-server-url-max-width) sm:px-1.5',\n open ? 'bg-(--clarify-ui-active-background) text-(--clarify-theme-tokens-colors-foreground)' : 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 font-semibold 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-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) text-xs font-semibold text-(--clarify-theme-tokens-colors-foreground) shadow-xs outline-hidden transition placeholder:text-(--clarify-ui-text-faint) hover:border-(--clarify-ui-text-faint) hover:bg-(--clarify-ui-hover-background) focus:border-(--clarify-theme-tokens-colors-primary) focus:bg-(--clarify-theme-tokens-colors-surface)',\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-(--clarify-theme-tokens-colors-border) bg-(--clarify-ui-subtle-background) p-3\">\n <div className=\"flex flex-col gap-3\">\n {servers.length > 1 ? (\n <label className=\"flex min-w-0 flex-col gap-1.5\">\n <span className=\"text-2xs font-semibold text-(--clarify-ui-text-soft)\">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.length > 0 ? (\n <div className=\"grid gap-3 sm:grid-cols-(--clarify-openapi-variable-grid)\">\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-(--clarify-ui-text-soft)\">{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 ) : null}\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-(--clarify-theme-tokens-colors-border) bg-(--clarify-ui-subtle-background) p-3\">\n <div className=\"grid gap-3 sm:grid-cols-(--clarify-openapi-control-grid)\">\n <label className=\"flex min-w-0 flex-col gap-1.5\">\n <span className=\"text-2xs font-semibold text-(--clarify-ui-text-soft)\">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-(--clarify-ui-text-soft)\">Credential</span>\n <div className=\"flex min-w-0 items-center rounded-md border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) px-2.5 py-1.5 shadow-xs\">\n <span className=\"mr-2 shrink-0 text-2xs font-semibold text-(--clarify-ui-text-soft)\">\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-(--clarify-theme-tokens-colors-foreground) outline-hidden placeholder:text-(--clarify-ui-text-faint)\"\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 serverInteractive = servers.length > 1 || Object.keys(selectedServer.variables ?? {}).length > 0\n\n return (\n <div className=\"not-prose flex w-full flex-col overflow-hidden rounded-xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) shadow-xs\">\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 interactive={serverInteractive}\n onToggle={onToggleServer}\n />\n <EndpointPath path={path} />\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-(--clarify-ui-text-soft) transition hover:bg-(--clarify-ui-hover-background) hover:text-emerald-700 dark:hover:text-emerald-200',\n authOpen ? 'bg-emerald-100 text-emerald-800 dark:bg-emerald-400/15 dark:text-emerald-100' : 'bg-(--clarify-ui-subtle-background)',\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 {serverInteractive && 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 id = slug(`${method.toLowerCase()} ${path}`)\n const summary = operation.summary ?? `${method} ${path}`\n const description = operation.description\n const requestState = useOperationRequestState(spec, path, operation)\n const serverState = useOperationServerState(spec, operation, path)\n const authState = useOperationAuthState(spec, operation)\n const [linkedExampleKey, setLinkedExampleKey] = useState('')\n\n return (\n <section className=\"clarify-api-endpoint scroll-mt-24 pb-16 first:pt-0 last:pb-0\" aria-labelledby={id}>\n <Heading id={id}>\n {summary}\n </Heading>\n <EndpointIdentity\n method={method}\n path={path}\n servers={serverState.servers}\n selectedServerKey={serverState.selectedServerKey}\n selectedServer={serverState.selectedServer}\n serverVariables={serverState.serverVariables}\n serverOpen={serverState.serverOpen}\n authOptions={authState.authOptions}\n selectedAuthName={authState.selectedAuthName}\n selectedAuth={authState.selectedAuth}\n authValues={authState.authValues}\n authOpen={authState.authOpen}\n onSelectServer={serverState.onSelectServer}\n onChangeServerVariable={serverState.onChangeServerVariable}\n onToggleServer={() => {\n serverState.onToggleServer()\n authState.closeAuth()\n }}\n onToggleAuth={() => {\n authState.onToggleAuth()\n serverState.closeServer()\n }}\n onSelectAuth={authState.onSelectAuth}\n onChangeAuthValue={authState.onChangeAuthValue}\n />\n <EndpointRequest\n spec={spec}\n path={path}\n method={method}\n description={description}\n groupedParameters={requestState.groupedParameters}\n parameters={requestState.parameters}\n requestBody={requestState.requestBody}\n requestContents={requestState.requestContents}\n requestSchema={requestState.requestSchema}\n selectedRequestMediaType={requestState.selectedRequestMediaType}\n onSelectRequestMediaType={requestState.setSelectedRequestMediaType}\n selectedServer={serverState.selectedServer}\n serverVariables={serverState.serverVariables}\n auth={authState.authInput}\n sharedExampleKey={linkedExampleKey}\n onSelectExampleKey={setLinkedExampleKey}\n />\n <EndpointResponse\n spec={spec}\n operation={operation}\n sharedExampleKey={linkedExampleKey}\n onSelectExampleKey={setLinkedExampleKey}\n />\n </section>\n )\n}\n"],"mappings":"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"}
|