@clarify-labs/renderer 0.10.2 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/output/{ClarifyShell-C6li72Ce.cjs → ClarifyShell-BAjq876Z.cjs} +113 -90
- package/output/ClarifyShell-BAjq876Z.cjs.map +1 -0
- package/output/{ClarifyShell-1LuBliwt.js → ClarifyShell-GoSXvgMg.js} +114 -91
- package/output/ClarifyShell-GoSXvgMg.js.map +1 -0
- package/output/{MermaidViewer-B6-BMCJG.cjs → MermaidViewer-BZ8ghcFP.cjs} +2 -2
- package/output/{MermaidViewer-B6-BMCJG.cjs.map → MermaidViewer-BZ8ghcFP.cjs.map} +1 -1
- package/output/{MermaidViewer-dXsomvM7.js → MermaidViewer-CkIxyqtf.js} +2 -2
- package/output/{MermaidViewer-dXsomvM7.js.map → MermaidViewer-CkIxyqtf.js.map} +1 -1
- package/output/{OpenApiOperation-DgrqzeiS.js → OpenApiOperation-C2vJztWZ.js} +1983 -365
- package/output/OpenApiOperation-C2vJztWZ.js.map +1 -0
- package/output/{OpenApiOperation-B52IWlKb.cjs → OpenApiOperation-D-5uE5v7.cjs} +2009 -361
- package/output/OpenApiOperation-D-5uE5v7.cjs.map +1 -0
- package/output/{PageActions-BjB6PYmL.cjs → PageActions-DJRXlGhz.cjs} +532 -358
- package/output/PageActions-DJRXlGhz.cjs.map +1 -0
- package/output/{PageActions-D7K9LDGf.js → PageActions-bugd7GZh.js} +535 -361
- package/output/PageActions-bugd7GZh.js.map +1 -0
- package/output/{SearchDialog-CIPvXMT3.cjs → SearchDialog-8AdCRp6K.cjs} +3 -3
- package/output/{SearchDialog-CIPvXMT3.cjs.map → SearchDialog-8AdCRp6K.cjs.map} +1 -1
- package/output/{SearchDialog-CxYLjRi5.js → SearchDialog-CBJjDs_9.js} +3 -3
- package/output/{SearchDialog-CxYLjRi5.js.map → SearchDialog-CBJjDs_9.js.map} +1 -1
- package/output/app/ContentDiagnostic.d.ts +2 -1
- package/output/app/PageFooter.d.ts +1 -1
- package/output/client.cjs +3 -3
- package/output/client.js +3 -3
- package/output/components/AccordionGroup.d.ts +7 -0
- package/output/components/Collapse.d.ts +2 -0
- package/output/components/FileTree.d.ts +10 -0
- package/output/components/Image.d.ts +6 -0
- package/output/components/Steps.d.ts +12 -0
- package/output/components/Tabs.d.ts +12 -5
- package/output/components/Tooltip.d.ts +8 -0
- package/output/components/index.d.ts +10 -1
- package/output/core/i18n.d.ts +1 -1
- package/output/core/types.d.ts +37 -19
- package/output/{i18n-DnqZHFT7.js → i18n-BPrC45nD.js} +102 -2
- package/output/i18n-BPrC45nD.js.map +1 -0
- package/output/{i18n-b4iTLeia.cjs → i18n-wXINKKV0.cjs} +102 -2
- package/output/i18n-wXINKKV0.cjs.map +1 -0
- package/output/index.cjs +38 -8
- package/output/index.cjs.map +1 -1
- package/output/index.d.ts +8 -7
- package/output/index.js +34 -9
- package/output/index.js.map +1 -1
- package/output/mdx/components.d.ts +11 -1
- package/output/mdx/primitives.d.ts +4 -2
- package/output/openapi/components/CodeDisplay.d.ts +1 -0
- package/output/openapi/components/EndpointMethodBadge.d.ts +6 -0
- package/output/openapi/components/EndpointSections.d.ts +2 -2
- package/output/openapi/components/ExamplePanels.d.ts +2 -2
- package/output/openapi/components/InlineListbox.d.ts +31 -0
- package/output/openapi/components/OpenApiAuthPanel.d.ts +12 -0
- package/output/openapi/components/OpenApiOperation.d.ts +1 -9
- package/output/openapi/components/OpenApiOperation.state.d.ts +4 -2
- package/output/openapi/components/OpenApiRequest.d.ts +18 -0
- package/output/openapi/components/OpenApiRequestFields.d.ts +25 -0
- package/output/openapi/components/OpenApiResponseViewer.d.ts +8 -0
- package/output/openapi/components/SendRequestButton.d.ts +9 -0
- package/output/openapi/components/helpers.d.ts +6 -1
- package/output/openapi/components/useOpenApiRequestState.d.ts +41 -0
- package/output/openapi/entry.d.ts +2 -0
- package/output/openapi/index.d.ts +2 -2
- package/output/openapi/lib/api-exchange-code.d.ts +8 -0
- package/output/openapi/lib/api-exchange.d.ts +30 -0
- package/output/openapi/lib/api-request.d.ts +24 -0
- package/output/openapi/lib/request-code.d.ts +2 -2
- package/output/openapi/lib/request-parameters.d.ts +5 -0
- package/output/openapi/store.d.ts +10 -0
- package/output/openapi/types.d.ts +4 -0
- package/output/preview.cjs +37 -27
- package/output/preview.cjs.map +1 -1
- package/output/preview.js +37 -27
- package/output/preview.js.map +1 -1
- package/output/{render-Di5B6Zc0.cjs → render-FICIzeXz.cjs} +2 -2
- package/output/{render-Di5B6Zc0.cjs.map → render-FICIzeXz.cjs.map} +1 -1
- package/output/{render-DKj24Jqw.js → render-XQiw_48i.js} +2 -2
- package/output/{render-DKj24Jqw.js.map → render-XQiw_48i.js.map} +1 -1
- package/output/renderer.css +1310 -318
- package/output/server.cjs +2 -2
- package/output/server.js +2 -2
- package/output/theme/ThemeEditor.d.ts +8 -4
- package/output/theme/variables.d.ts +8 -4
- package/package.json +1 -1
- package/output/ClarifyShell-1LuBliwt.js.map +0 -1
- package/output/ClarifyShell-C6li72Ce.cjs.map +0 -1
- package/output/OpenApiOperation-B52IWlKb.cjs.map +0 -1
- package/output/OpenApiOperation-DgrqzeiS.js.map +0 -1
- package/output/PageActions-BjB6PYmL.cjs.map +0 -1
- package/output/PageActions-D7K9LDGf.js.map +0 -1
- package/output/i18n-DnqZHFT7.js.map +0 -1
- package/output/i18n-b4iTLeia.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiOperation-B52IWlKb.cjs","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/Tabs.tsx","../source/components/WebFrame.tsx","../source/mdx/primitives.tsx","../source/mdx/Markdown.tsx","../source/openapi/lib/helpers.ts","../source/openapi/lib/utils.ts","../source/components/HighlightedCode.tsx","../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 { lazy, Suspense, useEffect, useId, useState, type ReactNode } from 'react'\n\nimport { useBuiltInText } from '../core/i18n'\nimport { useTheme } from '../theme/ThemeProvider'\n\nconst MermaidViewer = lazy(() => import('./MermaidViewer'))\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\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 [svg, setSvg] = useState('')\n const [error, setError] = useState<string | undefined>(undefined)\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 <Suspense fallback={<MermaidStaticSvg svg={svg} className={className} />}>\n <MermaidViewer svg={svg} className={className} />\n </Suspense>\n )\n}\n\ntype MermaidStaticSvgProps = { svg: string; className?: string }\n\nfunction MermaidStaticSvg(arg0: MermaidStaticSvgProps): ReactNode {\n const { svg, className } = arg0\n\n return (\n <div className={clsx('clarify-mermaid 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 <div className=\"flex w-full justify-center [&_svg]:h-auto [&_svg]:max-w-full\" dangerouslySetInnerHTML={{ __html: svg }} />\n </div>\n )\n}\n","import { Tab, TabGroup, TabList, TabPanel, TabPanels } from '@headlessui/react'\nimport clsx from 'clsx'\nimport { motion } from 'framer-motion'\nimport { Check, Clipboard } from 'lucide-react'\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useEffect,\n useId,\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\nfunction getCodeLanguage(node: ReactNode): string | undefined {\n if (!isValidElement(node)) return undefined\n\n const { className, language, children } = node.props as { className?: string; language?: string; children?: ReactNode }\n if (language) return language\n\n const languageClass = className?.split(/\\s+/).find(value => value.startsWith('language-'))\n if (languageClass) return languageClass.slice('language-'.length)\n\n return Children.toArray(children).map(getCodeLanguage).find(Boolean)\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 = setTimeout(() => setCopyCount(0), 1000)\n return () => 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 const indicatorLayoutId = useId()\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 -mr-2 -mb-px flex gap-0 text-xs font-medium\">\n {Children.map(children, (child, childIndex) => (\n <Tab\n className={clsx(\n 'clarify-code-tab relative border-b border-transparent px-2 py-3 transition-colors hover:bg-(--clarify-code-control-background-hover) data-selected:not-data-focus:outline-hidden',\n childIndex === selectedIndex\n ? 'text-(--clarify-code-accent-text)'\n : 'text-(--clarify-code-control-text) hover:text-(--clarify-code-text)',\n )}\n >\n {getPanelTitle({ ...(isValidElement(child) ? (child.props as { title?: string; language?: string }) : {}), fallbackTitle: t('actions.code') })}\n {childIndex === selectedIndex ? (\n <motion.span\n layoutId={indicatorLayoutId}\n className=\"absolute inset-x-2 bottom-0 h-0.5 rounded-full bg-(--clarify-code-accent-text)\"\n transition={{ type: 'spring', stiffness: 460, damping: 34, mass: 0.7 }}\n />\n ) : null}\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 const resolvedLanguage = language ?? getCodeLanguage(children)\n const resolvedCode = code ?? getNodeText(children)\n\n if (resolvedLanguage === 'mermaid') {\n return <Mermaid chart={resolvedCode} />\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 { Tab, TabGroup, TabList, TabPanel, TabPanels } from '@headlessui/react'\nimport clsx from 'clsx'\nimport { motion } from 'framer-motion'\nimport { useId, useState, type ReactNode } from 'react'\n\ntype ClarifyTabItem = {\n id: string\n label: ReactNode\n panel: ReactNode\n}\n\ntype ClarifyTabsProps = {\n items: ClarifyTabItem[]\n selectedIndex?: number\n onChange?: (index: number) => void\n className?: string\n listClassName?: string\n panelsClassName?: string\n}\n\ntype TabClassNameProps = {\n selected: boolean\n}\n\nexport function Tabs(arg0: ClarifyTabsProps) {\n const { items, selectedIndex, onChange, className, listClassName, panelsClassName } = arg0\n\n const [internalIndex, setInternalIndex] = useState(0)\n const resolvedIndex = typeof selectedIndex === 'number' ? selectedIndex : internalIndex\n const indicatorLayoutId = useId()\n\n const handleChange = (index: number) => {\n if (typeof selectedIndex !== 'number') setInternalIndex(index)\n onChange?.(index)\n }\n\n return (\n <TabGroup selectedIndex={resolvedIndex} onChange={handleChange} className={className}>\n <TabList className={clsx('-mx-2 flex flex-wrap items-center gap-2 border-b border-(--clarify-theme-tokens-colors-border) px-2 pb-0', listClassName)}>\n {items.map((item) => (\n <Tab\n key={item.id}\n className={({ selected }: TabClassNameProps) => clsx(\n 'clarify-content-tab clarify-ui-tab relative inline-flex h-10 shrink-0 items-center rounded-t-md px-2 py-0 text-sm font-medium transition-colors focus:outline-none',\n selected && 'clarify-ui-tab-active',\n )}\n >\n {({ selected }: TabClassNameProps) => (\n <>\n <span>{item.label}</span>\n {selected ? (\n <motion.span\n layoutId={indicatorLayoutId}\n className=\"absolute inset-x-2 bottom-0 h-0.5 rounded-full bg-(--clarify-ui-tab-indicator) shadow-[0_0_0.5rem_var(--clarify-ui-accent-glow)]\"\n transition={{ type: 'spring', stiffness: 460, damping: 34, mass: 0.7 }}\n />\n ) : null}\n </>\n )}\n </Tab>\n ))}\n </TabList>\n <TabPanels className={clsx('mt-4', panelsClassName)}>\n {items.map((item) => (\n <TabPanel key={item.id} className=\"focus:outline-none\">\n {item.panel}\n </TabPanel>\n ))}\n </TabPanels>\n </TabGroup>\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'\nimport rehypeRaw from 'rehype-raw'\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} rehypePlugins={[rehypeRaw]}>\n {children}\n </ReactMarkdown>\n </div>\n )\n}\n","import type { ExampleEntry, MediaTypeEntry, OpenApiMediaType, OpenApiParameter, OpenApiPathItem, OpenApiRecord, OpenApiResponse } from '../types'\n\nimport type { OpenAPIOperation, OpenAPIOperationSource, 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\nexport function getOperationPathItem(spec: OpenAPISpec, path: string, source: OpenAPIOperationSource = 'path'): OpenApiPathItem | undefined {\n if (source === 'path') return getPathItem(spec, path)\n\n const webhooks = (spec as OpenApiRecord).webhooks\n return resolveObjectRef<OpenApiPathItem>(spec, isRecord(webhooks) ? webhooks[path] : undefined)\n}\n\nexport function joinPath(base: string, path: string): string {\n if (!base) return path || '/'\n if (!path) return base\n\n const normalizedBase = base.endsWith('/') ? base.slice(0, -1) : base\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n return `${normalizedBase}${normalizedPath}`\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, source: OpenAPIOperationSource = 'path'): OpenApiParameter[] {\n const pathParameters = getOperationPathItem(spec, path, source)?.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, spec?: OpenAPISpec): 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(spec ? resolveSchema(spec, mediaType.schema) : 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 'enum'\n\n const oneOf = schema.oneOf ?? schema.anyOf\n if (Array.isArray(oneOf)) {\n return oneOf.map((branch) => schemaToType(branch)).filter(Boolean).join(' | ')\n }\n\n if (Array.isArray(schema.allOf)) {\n return schema.allOf.map((branch) => schemaToType(branch)).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 { slug } from 'github-slugger'\nimport type { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types'\n\nimport type { OpenApiRecord } from '../types'\n\nexport type OpenAPISpec = OpenAPIV3.Document | OpenAPIV3_1.Document\nexport type OpenAPIOperation = OpenAPIV3.OperationObject | OpenAPIV3_1.OperationObject\n\nexport const OPENAPI_HTTP_METHODS = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'] as const\n\nexport type OpenAPIHttpMethod = typeof OPENAPI_HTTP_METHODS[number]\nexport type OpenAPIOperationSource = 'path' | 'webhook'\nexport type OpenAPIOperationEntry = { path: string; method: OpenAPIHttpMethod; operation: OpenAPIOperation; source: OpenAPIOperationSource }\n\nexport const CLARIFY_OPENAPI_SECTION_ID_EXTENSION = 'x-clarify-section-id'\n\nexport function getOpenApiOperationSectionId(operation: OpenAPIOperation): string {\n const sectionId = (operation as OpenApiRecord)[CLARIFY_OPENAPI_SECTION_ID_EXTENSION]\n return typeof sectionId === 'string' ? sectionId : ''\n}\n\nfunction createOpenApiOperationSectionId(operation: OpenApiRecord, method: string, path: string, source: OpenAPIOperationSource): string {\n const operationId = typeof operation.operationId === 'string' ? operation.operationId.trim() : ''\n return operationId || slug(`${source === 'webhook' ? 'webhook ' : ''}${method.toLowerCase()} ${path}`)\n}\n\nfunction normalizeOpenApiOperationSectionId(operation: OpenApiRecord, method: string, path: string, source: OpenAPIOperationSource): OpenAPIOperation {\n const sectionId = operation[CLARIFY_OPENAPI_SECTION_ID_EXTENSION]\n if (typeof sectionId !== 'string' || !sectionId) {\n operation[CLARIFY_OPENAPI_SECTION_ID_EXTENSION] = createOpenApiOperationSectionId(operation, method, path, source)\n }\n return operation as OpenAPIOperation\n}\n\nexport function isOpenAPIHttpMethod(method: string): method is OpenAPIHttpMethod {\n return (OPENAPI_HTTP_METHODS as readonly string[]).includes(method.toLowerCase())\n}\n\nfunction isRecord(value: unknown): value is OpenApiRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction 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\nfunction getPathItem(spec: OpenAPISpec, path: string): OpenApiRecord | undefined {\n const pathItem = spec.paths?.[path]\n const resolved = isRecord(pathItem) && typeof pathItem.$ref === 'string' ? resolveOpenApiRef(spec, pathItem.$ref) : pathItem\n return isRecord(resolved) ? resolved : undefined\n}\n\nfunction getWebhookItem(spec: OpenAPISpec, path: string): OpenApiRecord | undefined {\n const webhooks = (spec as OpenApiRecord).webhooks\n const pathItem = isRecord(webhooks) ? webhooks[path] : undefined\n const resolved = isRecord(pathItem) && typeof pathItem.$ref === 'string' ? resolveOpenApiRef(spec, pathItem.$ref) : pathItem\n return isRecord(resolved) ? resolved : undefined\n}\n\nfunction listOperationsFromPathItems(items: Record<string, unknown>, source: OpenAPIOperationSource, spec: OpenAPISpec): OpenAPIOperationEntry[] {\n const operations: OpenAPIOperationEntry[] = []\n\n for (const path of Object.keys(items)) {\n const pathItem = source === 'webhook' ? getWebhookItem(spec, path) : getPathItem(spec, path)\n if (!pathItem) continue\n for (const method of OPENAPI_HTTP_METHODS) {\n const operation = pathItem[method]\n if (isRecord(operation)) operations.push({ path, method, operation: normalizeOpenApiOperationSectionId(operation, method, path, source), source })\n }\n }\n\n return operations\n}\n\nexport function getOpenApiOperation(spec: OpenAPISpec, path: string, method: string): OpenAPIOperation | undefined {\n return getOpenApiOperationEntry(spec, path, method)?.operation\n}\n\nexport function getOpenApiOperationEntry(spec: OpenAPISpec, path: string, method: string, source?: OpenAPIOperationSource): OpenAPIOperationEntry | undefined {\n if (!isOpenAPIHttpMethod(method)) return undefined\n\n const normalizedMethod = method.toLowerCase() as OpenAPIHttpMethod\n const sources: OpenAPIOperationSource[] = source ? [source] : ['path', 'webhook']\n for (const currentSource of sources) {\n const pathItem = currentSource === 'webhook' ? getWebhookItem(spec, path) : getPathItem(spec, path)\n const operation = pathItem?.[normalizedMethod]\n if (isRecord(operation)) {\n return {\n path,\n method: normalizedMethod,\n operation: normalizeOpenApiOperationSectionId(operation, normalizedMethod, path, currentSource),\n source: currentSource,\n }\n }\n }\n\n return undefined\n}\n\nexport function listOpenApiOperations(spec: OpenAPISpec): OpenAPIOperationEntry[] {\n const paths = spec.paths ?? {}\n const webhooks = (spec as OpenApiRecord).webhooks\n\n return [\n ...listOperationsFromPathItems(paths, 'path', spec),\n ...(isRecord(webhooks) ? listOperationsFromPathItems(webhooks, 'webhook', spec) : []),\n ]\n}\n","import { useEffect, useState, type ReactNode } from 'react'\nimport { codeToTokens, createCssVariablesTheme, type BundledLanguage, type ThemedToken } from 'shiki'\n\nconst cssVariablesTheme = createCssVariablesTheme()\n\ntype HighlightedCodeProps = {\n code: string\n language: string\n}\n\nexport function HighlightedCode(arg0: HighlightedCodeProps): ReactNode {\n const { code, language } = arg0\n const [lines, setLines] = useState<ThemedToken[][]>()\n\n useEffect(() => {\n let active = true\n\n void codeToTokens(code, { lang: language as BundledLanguage, theme: cssVariablesTheme })\n .then((result) => {\n if (active) setLines(result.tokens)\n })\n .catch(() => {\n if (active) setLines(undefined)\n })\n\n return () => {\n active = false\n }\n }, [code, language])\n\n if (!lines) return <code className={`language-${language}`}>{code}</code>\n\n return (\n <code className={`language-${language}`}>\n {lines.map((line, lineIndex) => (\n <span className=\"line\" key={lineIndex}>\n {line.map((token, tokenIndex) => (\n <span key={tokenIndex} style={{ color: token.color, ...token.htmlStyle }}>{token.content}</span>\n ))}\n {lineIndex < lines.length - 1 ? '\\n' : null}\n </span>\n ))}\n </code>\n )\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, joinPath, stringifyExample } from './helpers'\nimport type { OpenAPIOperationSource, 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 operationSource?: OpenAPIOperationSource\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 snippetControlCharacters = [\n { character: '\\n', placeholder: '\\uE000', escape: '\\\\n' },\n { character: '\\r', placeholder: '\\uE001', escape: '\\\\r' },\n { character: '\\t', placeholder: '\\uE002', escape: '\\\\t' },\n] as const\n\nconst snippetGenerator = snippetz()\n\nfunction protectSnippetControlCharacters(value: unknown): unknown {\n if (typeof value === 'string') {\n return snippetControlCharacters.reduce(\n (result, item) => result.replaceAll(item.character, item.placeholder),\n value,\n )\n }\n\n if (Array.isArray(value)) return value.map(protectSnippetControlCharacters)\n if (!isRecord(value)) return value\n\n return Object.fromEntries(\n Object.entries(value).map(([key, item]) => [key, protectSnippetControlCharacters(item)]),\n )\n}\n\nfunction restoreSnippetControlCharacters(code: string): string {\n return snippetControlCharacters.reduce(\n (result, item) => result.replaceAll(item.placeholder, item.escape),\n code,\n )\n}\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 getDefaultWebhookServer(): OpenApiServer {\n return { url: 'https://webhook.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 defaultServer = input.operationSource === 'webhook' ? getDefaultWebhookServer() : getDefaultServer(input.spec)\n const serverUrl = expandServerUrl(input.server ?? defaultServer, input.serverVariables)\n return joinPath(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(protectSnippetControlCharacters(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 restoreSnippetControlCharacters(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 min-h-8 ${buttonSizeClassName} items-center justify-between gap-2 rounded-lg border border-(--clarify-code-border) bg-(--clarify-code-control-background) px-2.5 py-1 text-xs font-medium whitespace-nowrap text-(--clarify-code-text) outline-hidden transition hover:border-white/20 hover:bg-(--clarify-code-control-background-hover) focus:ring-2 focus:ring-(--clarify-ui-accent-border) data-open:border-white/20 data-open:bg-(--clarify-code-control-background-active) 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 min-h-9 cursor-default items-center justify-between gap-3 rounded-lg px-2.5 py-2 text-xs whitespace-nowrap text-(--clarify-code-control-text) select-none data-focus:bg-(--clarify-code-control-background-hover) data-focus:text-(--clarify-code-text) data-selected:bg-(--clarify-code-accent-background) data-selected:text-(--clarify-code-accent-text)\"\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 setTimeout(() => setCopied(false), 1000)\n })\n }}\n className=\"ml-auto flex shrink-0 items-center gap-1.5 rounded-full bg-(--clarify-code-control-background) px-2.5 py-1.5 text-2xs font-medium whitespace-nowrap 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=\"clarify-api-code-toolbar flex items-center gap-2 px-4 pt-3\">\n <div className=\"clarify-api-code-toolbar-controls flex min-w-0 flex-1 flex-wrap 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 { getOperationPathItem, isRecord } from '../lib/helpers'\nimport type { OpenAPIOperation, OpenAPIOperationSource, 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, source: OpenAPIOperationSource = 'path'): OpenApiServer[] {\n const operationServers = (operation as Record<string, unknown>).servers\n const pathServers = path ? getOperationPathItem(spec, path, source)?.servers : undefined\n const servers = Array.isArray(operationServers)\n ? operationServers\n : Array.isArray(pathServers)\n ? pathServers\n : source === 'webhook'\n ? [{ url: 'https://webhook.example.com' }]\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 { HighlightedCode } from '../../components/HighlightedCode'\nimport { useBuiltInText } from '../../core/i18n'\nimport { codeLanguageForMediaType, getExampleEntries, getMediaTypeEntries, getResponseEntries, stringifyExample } from '../lib/helpers'\nimport { buildRequestCodeExamples } from '../lib/request-code'\nimport type { OpenAPIOperation, OpenAPIOperationSource, 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=\"clarify-api-example-header-controls 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 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 px-4 pt-3 pb-4 text-xs text-(--clarify-code-text)\">\n <HighlightedCode code={code} language={language} />\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 operationSource?: OpenAPIOperationSource\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 operationSource?: OpenAPIOperationSource\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n}\n\nfunction firstExampleKeyForMediaType(requestContents: MediaTypeEntry[], mediaType: string, spec?: OpenAPISpec): string {\n return getExampleEntries(requestContents.find((content) => content.mediaType === mediaType)?.value, spec)[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 operationSource,\n sharedExampleKey,\n onSelectExampleKey,\n } = arg0\n\n const selectedContent = requestContents.find((content) => content.mediaType === selectedMediaType) ?? requestContents[0]\n const examples = getExampleEntries(selectedContent?.value, spec)\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 operationSource,\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, spec))\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 operationSource,\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 operationSource,\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 title?: string\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n selectedStatus?: string\n onSelectStatus?: (value: string) => void\n}\n\ntype UseResponseExamplesStateArgs = {\n operation: OpenAPIOperation\n spec?: OpenAPISpec\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n selectedStatus?: string\n onSelectStatus?: (value: string) => void\n}\n\nfunction firstExampleKeyForResponseContent(content?: MediaTypeEntry, spec?: OpenAPISpec): string {\n return getExampleEntries(content?.value, spec)[0]?.key ?? ''\n}\n\nexport function getResponseExampleBody(content: MediaTypeEntry | undefined, example: ExampleEntry | undefined): string {\n return content ? stringifyExample(example?.value) : ''\n}\n\ntype ResponseSelectionState = {\n status: string\n mediaType: string\n exampleKey: string\n}\n\nfunction useResponseExamplesState(arg0: UseResponseExamplesStateArgs) {\n const { operation, spec, sharedExampleKey, onSelectExampleKey, selectedStatus, onSelectStatus } = arg0\n const responses = getResponseEntries(operation, spec)\n const orderedResponses = [...responses].sort((left, right) => {\n if (left.status === 'default') return -1\n if (right.status === 'default') return 1\n\n const leftCode = Number(left.status)\n const rightCode = Number(right.status)\n\n if (!Number.isNaN(leftCode) && !Number.isNaN(rightCode)) return leftCode - rightCode\n return left.status.localeCompare(right.status)\n })\n const defaultStatus = orderedResponses.find(({ status }) => status === 'default')?.status\n ?? orderedResponses.find(({ status }) => status.startsWith('2'))?.status\n ?? orderedResponses[0]?.status\n ?? ''\n const [internalSelectedStatus, setInternalSelectedStatus] = useState(defaultStatus)\n const activeStatus = selectedStatus ?? internalSelectedStatus\n const selectedResponse = orderedResponses.find(({ status }) => status === activeStatus) ?? orderedResponses[0]\n const responseContents = getMediaTypeEntries(selectedResponse?.response.content, spec)\n const [selection, setSelection] = useState<ResponseSelectionState>(() => ({\n status: activeStatus,\n mediaType: responseContents[0]?.mediaType ?? '',\n exampleKey: firstExampleKeyForResponseContent(responseContents[0], spec),\n }))\n const resolvedSelection = selection.status === activeStatus\n ? selection\n : {\n status: activeStatus,\n mediaType: responseContents[0]?.mediaType ?? '',\n exampleKey: firstExampleKeyForResponseContent(responseContents[0], spec),\n }\n const selectedContent = responseContents.find((content) => content.mediaType === resolvedSelection.mediaType) ?? responseContents[0]\n const examples = getExampleEntries(selectedContent?.value, spec)\n const selectedExampleKey = examples.some((example) => example.key === resolvedSelection.exampleKey) ? resolvedSelection.exampleKey : 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 responseBody = getResponseExampleBody(selectedContent, selectedExample)\n\n return {\n responses: orderedResponses,\n selectedResponse,\n responseContents,\n selectedContent,\n examples,\n selectedExample,\n responseBody,\n onSelectStatus: (value: string) => {\n const nextResponse = orderedResponses.find(({ status }) => status === value)\n const nextContents = getMediaTypeEntries(nextResponse?.response.content, spec)\n if (typeof selectedStatus === 'undefined') setInternalSelectedStatus(value)\n onSelectStatus?.(value)\n setSelection({\n status: value,\n mediaType: nextContents[0]?.mediaType ?? '',\n exampleKey: firstExampleKeyForResponseContent(nextContents[0], spec),\n })\n },\n onSelectMediaType: (value: string) => {\n const nextContent = responseContents.find((content) => content.mediaType === value)\n setSelection((current) => ({\n ...current,\n mediaType: value,\n exampleKey: firstExampleKeyForResponseContent(nextContent, spec),\n }))\n },\n onSelectExample: (value: string) => {\n setSelection((current) => ({\n ...current,\n exampleKey: value,\n }))\n onSelectExampleKey?.(value)\n },\n }\n}\n\nexport function ResponseExamplesPanel(arg0: ResponseExamplesPanelProps): ReactNode {\n const { operation, spec, title, sharedExampleKey, onSelectExampleKey, selectedStatus, onSelectStatus } = arg0\n\n const t = useBuiltInText()\n const state = useResponseExamplesState({ operation, spec, sharedExampleKey, onSelectExampleKey, selectedStatus, onSelectStatus })\n\n if (!state.selectedContent || !state.responseBody) return null\n\n return (\n <ApiExampleCodeGroup\n title={title ?? t('openapi.response')}\n label={state.selectedContent?.mediaType}\n labelOptions={state.responseContents.map((content) => content.mediaType)}\n onSelectLabel={state.responseContents.length > 0 ? state.onSelectMediaType : undefined}\n code={state.responseBody}\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 { Tabs } from '../../components'\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, OpenApiResponse } from '../types'\n\ntype SchemaTreeNode = {\n key: string\n name: string\n kind: 'property' | 'enum'\n type?: string\n description?: string\n details?: string\n required: boolean\n defaultExpanded?: boolean\n children: SchemaTreeNode[]\n}\n\nfunction getEnumDescriptions(schema: Record<string, unknown>): Array<string | undefined> {\n const descriptions = schema['x-enumDescriptions']\n\n if (Array.isArray(descriptions)) {\n return descriptions.map((value) => (typeof value === 'string' ? value : undefined))\n }\n\n if (isRecord(descriptions)) {\n return Array.isArray(schema.enum)\n ? schema.enum.map((value) => {\n const description = descriptions[String(value)]\n return typeof description === 'string' ? description : undefined\n })\n : []\n }\n\n return []\n}\n\ntype SchemaTreeBranch = {\n label: string\n schema: unknown\n}\n\nfunction getSchemaDetails(schema: Record<string, unknown>): string | undefined {\n const details = [\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 getSchemaNodeType(schema: unknown): string | undefined {\n return schemaToType(schema)\n}\n\nfunction getEnumChildren(schema: Record<string, unknown>, path: string): SchemaTreeNode[] {\n if (!Array.isArray(schema.enum) || schema.enum.length === 0) return []\n\n const descriptions = getEnumDescriptions(schema)\n\n return schema.enum.map((value, index) => ({\n key: `${path || 'root'}.enum[${index}]`,\n name: String(value),\n kind: 'enum',\n description: descriptions[index],\n required: false,\n children: [],\n }))\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 defaultExpanded?: boolean\n}\n\nfunction getSchemaChildren(arg0: GetSchemaChildrenArgs): SchemaTreeNode[] {\n const {\n spec,\n path,\n schema,\n depth = 0,\n required = [],\n seen = new Set<string>(),\n defaultExpanded,\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 defaultExpanded,\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, defaultExpanded })\n : []\n\n const objectRequired = Array.isArray(schema.required) ? schema.required.map(String) : required\n const enumChildren = getEnumChildren(schema, path)\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 defaultExpanded,\n })\n const hasEnumValues = Array.isArray(property.enum) && property.enum.length > 0\n\n return {\n key: childPath,\n name,\n kind: 'property' as const,\n type: getSchemaNodeType(property),\n description: getSchemaDescription(property),\n details: getSchemaDetails(property),\n required: objectRequired.includes(name),\n defaultExpanded: hasEnumValues ? defaultExpanded === true : (defaultExpanded ?? depth < 1),\n children,\n }\n })\n\n const additionalPropertyChildren = isRecord(schema.additionalProperties)\n ? [{\n key: `${path || 'root'}.*`,\n name: '*',\n kind: 'property' as const,\n type: getSchemaNodeType(schema.additionalProperties),\n description: getSchemaDescription(schema.additionalProperties),\n details: getSchemaDetails(schema.additionalProperties),\n required: false,\n defaultExpanded: defaultExpanded ?? depth < 1,\n children: getSchemaChildren({ spec, schema: schema.additionalProperties, path: `${path || 'root'}.*`, depth: depth + 1, seen, defaultExpanded }),\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 kind: 'property' as const,\n type: getSchemaNodeType(branch),\n description: branch ? getSchemaDescription(branch) : undefined,\n details: branch ? getSchemaDetails(branch) : undefined,\n required: false,\n defaultExpanded: defaultExpanded ?? depth < 1,\n children: getSchemaChildren({ spec, schema: branchSchema, path: `${path || 'root'}.${label}`, required: objectRequired, depth: depth + 1, seen, defaultExpanded }),\n }\n })\n\n return [\n ...arrayChildren,\n ...enumChildren,\n ...propertyChildren,\n ...additionalPropertyChildren,\n ...composedChildren\n ]\n}\n\nfunction getRootSchemaNode(spec: OpenAPISpec, schema: unknown, defaultExpanded?: boolean): 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 kind: 'property',\n type: getSchemaNodeType(resolved),\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]), defaultExpanded }),\n }\n }\n\n if (!isRecord(schema)) return undefined\n\n return {\n key: 'root',\n name: 'body',\n kind: 'property',\n type: getSchemaNodeType(schema),\n description: getSchemaDescription(schema),\n details: getSchemaDetails(schema),\n required: false,\n children: getSchemaChildren({ spec, schema, path: '', defaultExpanded }),\n }\n}\n\ntype SchemaNodeProps = { node: SchemaTreeNode; depth?: number; defaultExpanded?: boolean }\n\nfunction EnumValueNode(arg0: SchemaNodeProps): ReactNode {\n const { node, depth = 0 } = arg0\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 return (\n <li className=\"clarify-schema-node m-0 px-0 py-2 first:pt-0 last:pb-0\">\n <div className={rowClassName}>\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 </div>\n {node.description || node.details ? (\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> : null}\n {node.details ? <p className=\"text-xs text-(--clarify-ui-text-faint)\">{node.details}</p> : null}\n </div>\n ) : null}\n </div>\n </div>\n </li>\n )\n}\n\nfunction SchemaNode(arg0: SchemaNodeProps): ReactNode {\n const { node, depth = 0, defaultExpanded } = arg0\n\n const t = useBuiltInText()\n const [expanded, setExpanded] = useState(defaultExpanded ?? depth < 1)\n const hasChildren = node.children.length > 0\n\n if (node.kind === 'enum') {\n return <EnumValueNode node={node} depth={depth} />\n }\n\n const type = [node.type, node.required ? t('openapi.requiredBadge') : undefined].filter(Boolean).join(', ') || undefined\n const fallbackDescription = hasChildren\n ? undefined\n : node.required\n ? t('openapi.required')\n : 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-soft)\">{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 hover:bg-(--clarify-ui-hover-background) focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--clarify-theme-tokens-colors-primary)')}\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 {\n 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} defaultExpanded={node.defaultExpanded} />)}\n </ul>\n )\n}\n\ntype SchemaPropertiesProps = { title: string; schema: unknown; spec: OpenAPISpec; defaultExpanded?: boolean }\n\nexport function SchemaProperties(arg0: SchemaPropertiesProps): ReactNode {\n const { title, schema, spec, defaultExpanded } = arg0\n\n const root = getRootSchemaNode(spec, schema, defaultExpanded)\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 {\n const t = useBuiltInText()\n const { title, parameters } = arg0\n\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 = { title?: string; operation: OpenAPIOperation; spec?: OpenAPISpec; selectedStatus?: string; onSelectStatus?: (value: string) => void }\n\ntype RenderResponsePanelArgs = {\n status: string\n response: OpenApiResponse\n}\n\nexport function ResponseList(arg0: ResponseListProps): ReactNode {\n const { title, operation, spec, selectedStatus, onSelectStatus } = arg0\n\n const t = useBuiltInText()\n const responses = getResponseEntries(operation, spec)\n const orderedResponses = [...responses].sort((left, right) => {\n if (left.status === 'default') return -1\n if (right.status === 'default') return 1\n\n const leftCode = Number(left.status)\n const rightCode = Number(right.status)\n\n if (!Number.isNaN(leftCode) && !Number.isNaN(rightCode)) return leftCode - rightCode\n return left.status.localeCompare(right.status)\n })\n const activeStatus = selectedStatus ?? orderedResponses.find(({ status }) => status === 'default')?.status ?? orderedResponses.find(({ status }) => status.startsWith('2'))?.status ?? orderedResponses[0]?.status ?? ''\n const selectedIndex = Math.max(0, orderedResponses.findIndex(({ status }) => status === activeStatus))\n\n if (orderedResponses.length === 0) return null\n\n const renderResponsePanel = ({ status, response }: RenderResponsePanelArgs) => {\n const content = getJsonLikeContent(response.content, spec)\n const responseSchema = content?.value.schema\n const type = schemaToType(responseSchema)\n\n return (\n <div className=\"rounded-(--clarify-theme-tokens-radius-xl) p-0\">\n <div className=\"flex flex-wrap items-center gap-2\">\n {orderedResponses.length === 1 ? <span className=\"text-sm/5 font-semibold text-(--clarify-theme-tokens-colors-foreground)\">{status}</span> : null}\n {type ? <span className=\"text-xs text-(--clarify-theme-tokens-colors-muted)\">{type}</span> : null}\n </div>\n <div className=\"mt-3 text-sm/6 text-(--clarify-ui-text-soft) *:first:mt-0 *:last:mb-0\">\n {response.description ? <Markdown className=\"*:first:mt-0 *:last:mb-0\">{response.description}</Markdown> : `${t('openapi.response')}.`}\n </div>\n {responseSchema && spec ? (\n <div className=\"mt-4\">\n <SchemaProperties title={t('openapi.responseBodyProperties')} schema={responseSchema} spec={spec} />\n </div>\n ) : null}\n </div>\n )\n }\n\n if (orderedResponses.length === 1) {\n const [{ status, response }] = orderedResponses\n return (\n <div>\n <h3>{title ?? t('openapi.responses')}</h3>\n {renderResponsePanel({ status, response })}\n </div>\n )\n }\n\n return (\n <div>\n <h3>{title ?? t('openapi.responses')}</h3>\n <Tabs\n selectedIndex={selectedIndex}\n onChange={(index) => {\n onSelectStatus?.(orderedResponses[index]?.status ?? '')\n }}\n items={orderedResponses.map(({ status, response }) => ({\n id: status,\n label: status,\n panel: renderResponsePanel({ status, response }),\n }))}\n panelsClassName=\"mt-4\"\n />\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, OpenAPIOperationSource, 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 operationSource?: OpenAPIOperationSource\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 operationSource = 'path',\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 const hasRequestBody = Boolean(requestBody && requestContents.length > 0)\n\n const renderDescription = () => {\n if (!description) return null\n return <Markdown>{description}</Markdown>\n }\n\n const renderRequestBody = () => {\n if (!hasRequestBody) {\n return <p className=\"text-sm/5 text-(--clarify-ui-text-soft)\">{t('openapi.requestBodyEmpty')}</p>\n }\n\n return (\n <>\n {typeof requestBody?.description === 'string' ? <Markdown>{requestBody.description}</Markdown> : null}\n <SchemaProperties title={t('openapi.bodyProperties')} schema={requestSchema} spec={spec} />\n </>\n )\n }\n\n return (\n <>\n {renderDescription()}\n <Row className=\"relative mt-6\">\n <Col>\n <div className=\"w-full\">\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 <div>\n <h3>{t('openapi.requestBody')}</h3>\n {renderRequestBody()}\n </div>\n </div>\n </Col>\n <Col sticky>\n <div className=\"w-full\">\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 operationSource={operationSource}\n sharedExampleKey={sharedExampleKey}\n onSelectExampleKey={onSelectExampleKey}\n />\n </div>\n </Col>\n </Row>\n </>\n )\n}\n\ntype EndpointResponseProps = {\n spec: OpenAPISpec\n operation: OpenAPIOperation\n operationSource?: OpenAPIOperationSource\n sharedExampleKey?: string\n onSelectExampleKey?: (value: string) => void\n selectedStatus?: string\n onSelectStatus?: (value: string) => void\n}\n\nexport function EndpointResponse(arg0: EndpointResponseProps): ReactNode {\n const { spec, operation, operationSource = 'path', sharedExampleKey, onSelectExampleKey, selectedStatus, onSelectStatus } = arg0\n const t = useBuiltInText()\n const responseTitle = operationSource === 'webhook' ? t('openapi.webhookResponses') : t('openapi.responses')\n const responseExampleTitle = operationSource === 'webhook' ? t('openapi.webhookResponse') : t('openapi.response')\n\n return (\n <div className=\"mt-6\">\n <Row className=\"relative\">\n <Col>\n <div className=\"w-full\">\n <ResponseList title={responseTitle} operation={operation} spec={spec} selectedStatus={selectedStatus} onSelectStatus={onSelectStatus} />\n </div>\n </Col>\n <Col sticky>\n <div className=\"w-full\">\n <ResponseExamplesPanel\n operation={operation}\n spec={spec}\n title={responseExampleTitle}\n sharedExampleKey={sharedExampleKey}\n onSelectExampleKey={onSelectExampleKey}\n selectedStatus={selectedStatus}\n onSelectStatus={onSelectStatus}\n />\n </div>\n </Col>\n </Row>\n </div>\n )\n}\n","import { useState } from 'react'\n\nimport { getMediaTypeEntries, getOperationParameters, getRequestBody } from '../lib/helpers'\nimport type { OpenAPIOperation, OpenAPIOperationSource, 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, source: OpenAPIOperationSource = 'path'): OperationRequestState {\n const parameters = getOperationParameters(spec, path, operation, source)\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, source: OpenAPIOperationSource = 'path'): OperationServerState {\n const servers = getServers(spec, operation, path, source)\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 { CheckIcon, ChevronDownIcon, CopyIcon, LockKeyholeIcon, ServerIcon, UnlockKeyholeIcon } from 'lucide-react'\nimport { useEffect, useState, type ReactNode } from 'react'\n\nimport { Heading } from '../../components/Heading'\nimport { useBuiltInText } from '../../core/i18n'\nimport { copyTextToClipboard } from '../../utils/clipboard'\nimport { getMediaTypeEntries, getResponseEntries, joinPath } from '../lib/helpers'\nimport { getOpenApiOperationSectionId, type OpenAPIOperation, type OpenAPIOperationSource, type 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 operationSource?: OpenAPIOperationSource\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 WEBHOOK: 'bg-(--clarify-http-method-webhook-background) text-(--clarify-http-method-webhook-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; copied?: boolean; onCopy?: () => void }\n\nexport function EndpointPath(arg0: EndpointPathProps): ReactNode {\n const { path, copied = false, onCopy } = arg0\n const t = useBuiltInText()\n\n return (\n <div className=\"flex min-w-0 flex-1 items-center gap-2 overflow-hidden\">\n <div className=\"min-w-0 flex-1 overflow-x-auto text-sm font-bold leading-6 whitespace-nowrap\">\n <span className=\"select-text font-mono text-(--clarify-theme-tokens-colors-foreground)\">{path || '/'}</span>\n </div>\n {onCopy ? (\n <button\n type=\"button\"\n aria-label={copied ? t('actions.copied') : t('actions.copy')}\n title={copied ? t('actions.copied') : t('actions.copy')}\n onClick={onCopy}\n className={clsx(\n 'flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) text-(--clarify-ui-text-soft) transition hover:border-(--clarify-ui-text-faint) hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground) focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--clarify-theme-tokens-colors-primary)',\n copied && 'border-emerald-400/70 bg-emerald-50 text-emerald-700 dark:bg-emerald-400/10 dark:text-emerald-200',\n )}\n >\n {copied ? <CheckIcon className=\"h-3.5 w-3.5\" aria-hidden=\"true\" /> : <CopyIcon className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />}\n </button>\n ) : null}\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-ui-text-strong) shadow-xs outline-hidden transition hover:border-(--clarify-ui-text-faint) hover:bg-(--clarify-ui-hover-background) data-open:border-(--clarify-ui-accent-border) data-open:bg-(--clarify-ui-active-background) data-open:ring-2 data-open:ring-(--clarify-ui-accent-border)',\n compact ? 'min-h-7 max-w-32 px-2 py-0.5 text-xs' : 'min-h-8 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 min-h-9 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-focus:text-(--clarify-ui-text-strong) data-selected:bg-(--clarify-ui-active-background) data-selected:text-(--clarify-ui-accent-text)\">\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\nfunction getFullEndpointUrl(server: OpenApiServer, variables: Record<string, string>, path: string): string {\n const base = getServerPreviewUrl(server, variables)\n return joinPath(base, path)\n}\n\nfunction getServerProtocolLabel(server: OpenApiServer, variables: Record<string, string>): string | undefined {\n const url = getServerPreviewUrl(server, variables)\n const match = /^([a-z][a-z0-9+.-]*):/i.exec(url)\n const protocol = match?.[1]?.toUpperCase()\n return protocol === 'WS' || protocol === 'WSS' ? protocol : undefined\n}\n\nfunction getDefaultResponseStatus(operation: OpenAPIOperation, spec?: OpenAPISpec): string {\n const responses = getResponseEntries(operation, spec).filter(({ response }) => getMediaTypeEntries(response.content, spec).length > 0)\n const orderedResponses = [...responses].sort((left, right) => {\n if (left.status === 'default') return -1\n if (right.status === 'default') return 1\n\n const leftCode = Number(left.status)\n const rightCode = Number(right.status)\n\n if (!Number.isNaN(leftCode) && !Number.isNaN(rightCode)) return leftCode - rightCode\n return left.status.localeCompare(right.status)\n })\n\n return orderedResponses.find(({ status }) => status === 'default')?.status\n ?? orderedResponses.find(({ status }) => status.startsWith('2'))?.status\n ?? orderedResponses[0]?.status\n ?? ''\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 const protocolLabel = getServerProtocolLabel(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) 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 gap-1.5 overflow-hidden sm:flex\">\n {protocolLabel ? <span className=\"shrink-0 rounded bg-sky-100 px-1.5 py-0.5 text-2xs font-black text-sky-700 dark:bg-sky-400/15 dark:text-sky-200\">{protocolLabel}</span> : null}\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) transition hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground) focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--clarify-theme-tokens-colors-primary) 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 {protocolLabel ? <span className=\"shrink-0 rounded bg-sky-100 px-1.5 py-0.5 text-2xs font-black text-sky-700 dark:bg-sky-400/15 dark:text-sky-200\">{protocolLabel}</span> : null}\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] ?? ''}\n placeholder={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 operationSource: OpenAPIOperationSource\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 operationSource,\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 const [copiedUrl, setCopiedUrl] = useState(false)\n const fullUrl = getFullEndpointUrl(selectedServer, serverVariables, path)\n\n useEffect(() => {\n if (!copiedUrl) return undefined\n\n const timeout = setTimeout(() => setCopiedUrl(false), 1200)\n return () => clearTimeout(timeout)\n }, [copiedUrl])\n\n async function handleCopyUrl() {\n if (await copyTextToClipboard(fullUrl)) {\n setCopiedUrl(true)\n }\n }\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 {operationSource === 'webhook' ? <EndpointMethodBadge method=\"WEBHOOK\" /> : null}\n <ServerUrlValue\n server={selectedServer}\n variables={serverVariables}\n open={serverOpen}\n interactive={serverInteractive}\n onToggle={onToggleServer}\n />\n <EndpointPath path={path} copied={copiedUrl} onCopy={handleCopyUrl} />\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 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--clarify-theme-tokens-colors-primary) 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, operationSource = 'path' } = arg0\n\n const id = getOpenApiOperationSectionId(operation)\n const summary = operation.summary ?? `${method} ${path}`\n const description = operation.description\n const requestState = useOperationRequestState(spec, path, operation, operationSource)\n const serverState = useOperationServerState(spec, operation, path, operationSource)\n const authState = useOperationAuthState(spec, operation)\n const [linkedExampleKey, setLinkedExampleKey] = useState('')\n const [selectedResponseStatus, setSelectedResponseStatus] = useState(() => getDefaultResponseStatus(operation, spec))\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 operationSource={operationSource}\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 operationSource={operationSource}\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 operationSource={operationSource}\n sharedExampleKey={linkedExampleKey}\n onSelectExampleKey={setLinkedExampleKey}\n selectedStatus={selectedResponseStatus}\n onSelectStatus={setSelectedResponseStatus}\n />\n </section>\n )\n}\n"],"mappings":"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"}
|