{"version":3,"file":"react.mjs","sources":["../../src/react/app/helpers.ts","../../src/react/components/ColoredCode.tsx","../../src/react/lib/isArray.ts","../../src/react/lib/ui/LevelContext.ts","../../src/react/lib/ui/useLevel.ts","../../src/react/lib/ui/addResponsiveProp.ts","../../src/react/lib/ui/SizeContext.ts","../../src/react/lib/ui/useSize.ts","../../src/react/lib/ui/useHeadingSize.ts","../../src/react/lib/ui/useSpace.ts","../../src/react/lib/ui/H.tsx","../../src/react/lib/ui/Level.tsx","../../src/react/lib/ui/useTextSize.ts","../../src/react/lib/ui/P.tsx","../../src/react/lib/ui/Size.tsx","../../src/react/app/TSDocContext.ts","../../src/react/app/useTSDoc.ts","../../src/react/app/useExports.ts","../../src/react/app/usePackages.ts","../../src/react/app/nav/FlexSticky.ts","../../src/react/app/nav/getGroupedMembers.ts","../../src/react/components/UnformattedCode.tsx","../../src/react/app/TSDocMemberTitle.tsx","../../src/react/app/lib/compilePath.ts","../../src/react/app/useMemberLink.ts","../../src/react/app/nav/SyntaxTreeItem.ts","../../src/react/app/nav/MemberLink.tsx","../../src/react/app/nav/TreeItemFocus.ts","../../src/react/app/nav/GroupedMembersTree.tsx","../../src/react/app/nav/SyntaxMenuItem.tsx","../../src/react/app/nav/PackageMenuButton.tsx","../../src/react/app/nav/PackageTreeItem.tsx","../../src/react/app/nav/ReleaseMenuButton.tsx","../../src/react/app/nav/SearchWrapper.ts","../../src/react/app/nav/TreeNav.ts","../../src/react/app/useSymbolSearch.ts","../../src/react/app/nav/TSDocSearch.tsx","../../src/react/app/nav/TSDocNav.tsx","../../src/react/comment/CommentBox.tsx","../../src/react/comment/PortableText.tsx","../../src/react/comment/CommentDeprecatedCallout.tsx","../../src/react/comment/CommentExampleBlocks.tsx","../../src/react/comment/CommentRemarks.tsx","../../src/react/comment/CommentReturnType.tsx","../../src/react/comment/CommentSummary.tsx","../../src/react/app/lib/_compile.ts","../../src/react/tooltip/content/ClassTooltipContent.tsx","../../src/react/tooltip/content/EnumTooltipContent.tsx","../../src/react/article/members/helpers.ts","../../src/react/tooltip/content/FunctionTooltipContent.tsx","../../src/react/tooltip/content/InterfaceTooltipContent.tsx","../../src/react/tooltip/content/TypeAliasTooltipContent.tsx","../../src/react/tooltip/content/VariableTooltipContent.tsx","../../src/react/tooltip/ReferenceTooltip.tsx","../../src/react/article/ApiToken.tsx","../../src/react/article/CodeSnippet.tsx","../../src/react/article/TSDocCode.tsx","../../src/react/helpers.ts","../../src/react/article/members/MemberInheritedFrom.tsx","../../src/react/components/ReleaseBadgeTextWrapper.tsx","../../src/react/components/ReleaseBadge.tsx","../../src/react/article/members/TSMemberReleaseTag.tsx","../../src/react/article/members/TSCallSignatureMember.tsx","../../src/react/article/members/TSConstructorMember.tsx","../../src/react/article/members/TSConstructSignatureMember.tsx","../../src/react/article/members/TSEnumMember.tsx","../../src/react/article/members/TSIndexSignatureMember.tsx","../../src/react/article/members/TSMethodMember.tsx","../../src/react/article/members/TSMethodSignatureMember.tsx","../../src/react/article/members/TSPropertyMember.tsx","../../src/react/article/members/TSPropertySignatureMember.tsx","../../src/react/article/members/Members.tsx","../../src/react/article/content/ClassContent.tsx","../../src/react/article/content/FunctionContent.tsx","../../src/react/article/content/InterfaceContent.tsx","../../src/react/article/content/NamespaceContent.tsx","../../src/react/article/content/TypeAliasContent.tsx","../../src/react/article/members/TSVariableParamMember.tsx","../../src/react/article/content/VariableContent.tsx","../../src/react/article/content/ReferenceContent.tsx","../../src/react/article/TSDocArticle.tsx","../../src/react/app/useMember.ts","../../src/react/app/usePackage.ts","../../src/react/app/TSDocDetail.tsx","../../node_modules/.pnpm/refractor@4.9.0/node_modules/refractor/lang/bash.js","../../node_modules/.pnpm/refractor@4.9.0/node_modules/refractor/lang/clike.js","../../node_modules/.pnpm/refractor@4.9.0/node_modules/refractor/lang/javascript.js","../../node_modules/.pnpm/refractor@4.9.0/node_modules/refractor/lang/json.js","../../node_modules/.pnpm/refractor@4.9.0/node_modules/refractor/lang/markup.js","../../node_modules/.pnpm/refractor@4.9.0/node_modules/refractor/lang/jsx.js","../../node_modules/.pnpm/refractor@4.9.0/node_modules/refractor/lang/typescript.js","../../src/react/app/TSDocProvider.tsx","../../src/react/app/TSDocApp.tsx","../../src/react/app/useSymbol.ts","../../src/react/app/TSDocSymbol.tsx","../../src/react/app/TSDocSymbolPreview.tsx","../../src/react/mount.tsx"],"sourcesContent":["import {TSDocAppParams} from '@sanity/tsdoc/store'\n\n/** @beta */\nexport function parsePath(\n  path: string,\n  options: {basePath?: string; version?: string} = {},\n): TSDocAppParams {\n  const {basePath = '', version = '0.0.0'} = options\n  const baseSegments = basePath.split('/').filter(Boolean)\n  const segments = path.split('/').filter(Boolean).slice(baseSegments.length)\n\n  let packageScope: string | null = null\n  let packageName: string | null = null\n  let releaseVersion: string | null = null\n  let exportPath: string | null = null\n  let memberSlug: string | null = null\n\n  packageName = segments.shift() || null\n\n  if (packageName?.startsWith('@')) {\n    packageScope = packageName\n    packageName = segments.shift() || null\n  }\n\n  if (packageName) {\n    releaseVersion = version\n  }\n\n  if (releaseVersion) {\n    if (segments.length > 1) {\n      memberSlug = segments.pop() || null\n      exportPath = `./${segments.join('/')}`\n    } else if (segments.length === 1) {\n      // needs to be this since if the last element is popped then the export path needs to be \"empty\"\n      memberSlug = segments.pop() || null\n      exportPath = `.`\n    }\n  }\n\n  const params: TSDocAppParams = {\n    exportPath,\n    packageName,\n    packageScope,\n    releaseVersion,\n    memberSlug,\n  }\n\n  return params\n}\n","import {cyan, green, yellow} from '@sanity/color'\nimport {ThemeColor, ThemeColorSyntax} from '@sanity/ui'\nimport {css, styled} from 'styled-components'\n\nexport const SyntaxText = styled.code<{$deprecated?: boolean; $syntax?: keyof ThemeColorSyntax}>(\n  ({$deprecated, $syntax, theme}) => {\n    const {color} = theme.sanity\n\n    return css`\n      && {\n        background-color: transparent;\n        color: ${$syntax ? overrideSyntaxColors(color, $syntax) : undefined};\n        text-decoration: ${$deprecated ? 'line-through' : undefined};\n      }\n    `\n  },\n)\n\nconst overrideSyntaxColors = (color: ThemeColor, $syntax: keyof ThemeColorSyntax) => {\n  const isDarkMode = color.dark\n\n  // adds support for issues with light theme\n  switch ($syntax) {\n    case 'function':\n      return !isDarkMode ? green[700].hex : color.syntax[$syntax]\n    case 'string':\n      return !isDarkMode ? yellow[700].hex : color.syntax[$syntax]\n    case 'className':\n      return !isDarkMode ? cyan[700].hex : color.syntax[$syntax]\n    default:\n      return color.syntax[$syntax]\n  }\n}\n","export function isArray<T = unknown>(val: unknown): val is Array<T> {\n  return Array.isArray(val)\n}\n","import {createContext} from 'react'\n\nexport const LevelContext = createContext<number | null>(null)\n","import {useContext} from 'react'\n\nimport {LevelContext} from './LevelContext'\n\nexport function useLevel(): number {\n  const levelContext = useContext(LevelContext) || 1\n\n  return levelContext\n}\n","import {isArray} from '../isArray'\n\nexport function addResponsiveProp(a: number | number[], b: number | number[]): number[] {\n  const _a = isArray(a) ? a : [a]\n  const _b = isArray(b) ? b : [b]\n\n  const len = Math.max(_a.length, _b.length)\n  const ret: number[] = []\n\n  for (let i = 0; i < len; i += 1) {\n    const aSize = _a[i] ?? _a[_a.length - 1] ?? 0\n    const bSize = _b[i] ?? _b[_b.length - 1] ?? 0\n\n    ret.push(aSize + bSize)\n  }\n\n  return ret\n}\n","import {createContext} from 'react'\n\nexport const SizeContext = createContext<number>(2)\n","import {useContext, useMemo} from 'react'\n\nimport {addResponsiveProp} from './addResponsiveProp'\nimport {SizeContext} from './SizeContext'\n\nexport function useSize(props?: {size?: number | number[]; min?: number; max?: number}): number[] {\n  const {min = 0, max = Infinity, size = 0} = props || {}\n  const delta = useContext(SizeContext) ?? 0\n\n  const __cache_key__ = JSON.stringify([size, delta])\n\n  return useMemo(\n    () => addResponsiveProp(size, delta).map((s) => Math.min(Math.max(s, min), max)),\n\n    // Improve performance: Keep object identify for a given hash of the value\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [__cache_key__],\n  )\n}\n","import {useTheme} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {isArray} from '../isArray'\nimport {useLevel} from './useLevel'\nimport {useSize} from './useSize'\n\nexport function useHeadingSize(size: number | number[]): number[] {\n  const {fonts} = useTheme().sanity\n  const level = useLevel()\n\n  const levelSize = useMemo(() => {\n    const s = isArray(size) ? size : [size]\n\n    return s.map((v) => v - level + 2)\n  }, [level, size])\n\n  return useSize({size: levelSize, min: 0, max: fonts.heading.sizes.length - 1})\n}\n","import {useTheme} from '@sanity/ui'\n\nimport {useSize} from './useSize'\n\nexport function useSpace(size: number | number[]): number[] {\n  const {space} = useTheme().sanity\n\n  return useSize({size, min: 0, max: space.length - 1})\n}\n","import {Box, Heading, HeadingProps} from '@sanity/ui'\nimport {HTMLProps} from 'react'\n\nimport {useHeadingSize} from './useHeadingSize'\nimport {useLevel} from './useLevel'\nimport {useSpace} from './useSpace'\n\nexport function H(\n  props: Omit<HeadingProps, 'as'> & Omit<HTMLProps<HTMLDivElement>, 'as' | 'ref' | 'size'>,\n): React.ReactNode {\n  const {size: sizeProp = 0, ...restProps} = props\n  const level = useLevel()\n\n  return (\n    <Box\n      marginTop={useSpace(level === 1 ? [1, 1, 2, 3] : [2, 2, 3, 4])}\n      marginBottom={useSpace([2, 2, 2, 3])}\n    >\n      <Heading as={`h${level}` as 'h1'} {...restProps} size={useHeadingSize(sizeProp)} />\n    </Box>\n  )\n}\n","import {LevelContext} from './LevelContext'\nimport {useLevel} from './useLevel'\n\nexport function Level(props: {children?: React.ReactNode}): React.ReactNode {\n  const {children} = props\n  const level = useLevel()\n\n  return <LevelContext.Provider value={level + 1}>{children}</LevelContext.Provider>\n}\n","import {useTheme} from '@sanity/ui'\n\nimport {useSize} from './useSize'\n\nexport function useTextSize(size: number | number[]): number[] {\n  const {fonts} = useTheme().sanity\n\n  return useSize({size, min: 0, max: fonts.text.sizes.length - 1})\n}\n","import {Box, Text, TextProps} from '@sanity/ui'\nimport {HTMLProps} from 'react'\n\nimport {useSpace} from './useSpace'\nimport {useTextSize} from './useTextSize'\n\nexport function P(\n  props: Omit<TextProps, 'as'> & Omit<HTMLProps<HTMLDivElement>, 'as' | 'ref' | 'size'>,\n): React.ReactNode {\n  const {size: sizeProp = 0, ...restProps} = props\n\n  return (\n    <Box data-ui=\"P\" marginTop={useSpace([-1, -1, -1])}>\n      <Text as=\"p\" {...restProps} size={useTextSize(sizeProp)} />\n    </Box>\n  )\n}\n","import {useContext} from 'react'\n\nimport {SizeContext} from './SizeContext'\n\nexport function Size(props: {delta: number; children?: React.ReactNode}): React.ReactNode {\n  const {delta, children} = props\n  const parentSize = useContext(SizeContext)\n  const size = parentSize + delta\n\n  return <SizeContext.Provider value={size}>{children}</SizeContext.Provider>\n}\n","import {TSDocStore} from '@sanity/tsdoc/store'\nimport {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {createContext} from 'react'\n\n/** @beta */\nexport interface TSDocContextValue {\n  basePath: string\n  path: string\n  params: TSDocAppParams\n  updateParams: (fn: (params: TSDocAppParams) => TSDocAppParams) => void\n  onPathChange: (nextPath: string, replace?: boolean) => void\n  store: TSDocStore\n}\n\nexport const TSDocContext = createContext<TSDocContextValue | null>(null)\n","import {useContext} from 'react'\n\nimport {TSDocContext, TSDocContextValue} from './TSDocContext'\n\n/** @beta */\nexport function useTSDoc(): TSDocContextValue {\n  const tsdoc = useContext(TSDocContext)\n\n  if (!tsdoc) throw new Error('TSDoc: missing context value')\n\n  return tsdoc\n}\n","import {TSDocExportData} from '@sanity/tsdoc/store'\nimport {useEffect, useState} from 'react'\n\nimport {useTSDoc} from './useTSDoc'\n\n/** @beta */\nexport function useExports(): {\n  data: TSDocExportData[] | null\n  error: Error | null\n  loading: boolean\n} {\n  const {params, store} = useTSDoc()\n\n  const [data, setData] = useState<TSDocExportData[] | undefined | null>(null)\n  const [error, setError] = useState<Error | null>(null)\n  const [loading, setLoading] = useState(false)\n\n  useEffect(() => {\n    if (!params.packageName || !params.releaseVersion) {\n      setData(null)\n\n      return\n    }\n\n    const queryParams = {\n      packageScope: params.packageScope,\n      packageName: params.packageName,\n      releaseVersion: params.releaseVersion,\n    }\n    let cancelled = false\n\n    async function run() {\n      try {\n        setLoading(true)\n        setData(null)\n        const data = await store.exports.get(queryParams)\n\n        if (!cancelled) {\n          setData(data)\n        }\n      } catch (err) {\n        if (err instanceof Error && !cancelled) {\n          setError(err)\n        }\n      } finally {\n        if (!cancelled) {\n          setLoading(false)\n        }\n      }\n    }\n\n    run()\n\n    return () => {\n      cancelled = true\n    }\n  }, [params.packageScope, params.packageName, params.releaseVersion, store])\n\n  // @ts-expect-error - find a way to fix this\n  return {data, error, loading}\n}\n","import type {APIPackage} from '@sanity/tsdoc'\nimport {useEffect, useState} from 'react'\n\nimport {useTSDoc} from './useTSDoc'\n\n/** @beta */\nexport function usePackages(): {\n  data: APIPackage[] | null\n  error: Error | null\n  loading: boolean\n} {\n  const {store} = useTSDoc()\n  const [data, setData] = useState<APIPackage[] | null>(null)\n  const [error, setError] = useState<Error | null>(null)\n  const [loading, setLoading] = useState(true)\n\n  useEffect(() => {\n    let cancelled = false\n\n    async function run() {\n      try {\n        setData(null)\n        const data = await store.packages.get()\n\n        if (!cancelled) {\n          // @ts-expect-error - find a way to fix this\n          setData(data)\n        }\n      } catch (err) {\n        if (err instanceof Error && !cancelled) {\n          setError(err)\n        }\n      } finally {\n        if (!cancelled) {\n          setLoading(false)\n        }\n      }\n    }\n\n    run()\n\n    return () => {\n      cancelled = true\n    }\n  }, [store])\n\n  return {data, error, loading}\n}\n","import {Box} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nexport const BoxSticky = memo(styled(Box)`\n  position: sticky;\n  top: 0;\n`)\n","import {\n  APIClass,\n  APIEnum,\n  APIFunction,\n  APIInterface,\n  APIMember,\n  APINamespace,\n  APITypeAlias,\n  APIVariable,\n} from '@sanity/tsdoc'\n\nimport {TSDocNavGroupedMembers} from './TSDocNav'\n\nexport function getGroupedMembers(members: APIMember[]): TSDocNavGroupedMembers {\n  const components = members.filter(\n    (mem) =>\n      (mem._type === 'api.class' || mem._type === 'api.function' || mem._type === 'api.variable') &&\n      mem.isReactComponentType,\n  ) as (APIClass | APIFunction | APIVariable)[]\n  const hooks = members.filter(\n    (mem) => mem._type === 'api.function' && mem.isReactHook,\n  ) as APIFunction[]\n  const classes = members.filter(\n    (mem) => !components.includes(mem as any) && mem._type === 'api.class',\n  ) as APIClass[]\n  const enums = members.filter((mem) => mem._type === 'api.enum') as APIEnum[]\n  const functions = members.filter(\n    (mem) =>\n      !components.includes(mem as any) &&\n      !hooks.includes(mem as any) &&\n      mem._type === 'api.function',\n  ) as APIFunction[]\n  const interfaces = members.filter((mem) => mem._type === 'api.interface') as APIInterface[]\n  const namespaces = members.filter((mem) => mem._type === 'api.namespace') as APINamespace[]\n  const typeAliases = members.filter((mem) => mem._type === 'api.typeAlias') as APITypeAlias[]\n  const variables = members.filter(\n    (mem) => !components.includes(mem as any) && mem._type === 'api.variable',\n  ) as APIVariable[]\n\n  return {\n    classes,\n    enums,\n    functions,\n    interfaces,\n    namespaces,\n    reactComponents: components,\n    reactHooks: hooks,\n    typeAliases,\n    variables,\n  }\n}\n","import {css, styled} from 'styled-components'\n\nexport const UnformattedCode = styled.code<{$deprecated?: boolean}>(({$deprecated}) => {\n  return css`\n    && {\n      background-color: transparent;\n      color: inherit;\n      text-decoration: ${$deprecated ? 'line-through' : undefined};\n    }\n  `\n})\n","import {APIMember} from '@sanity/tsdoc'\n\nimport {SyntaxText} from '../components/ColoredCode'\nimport {UnformattedCode} from '../components/UnformattedCode'\n\n/** @beta */\nexport function TSDocMemberTitle(props: {data: APIMember}): React.ReactNode {\n  const {data} = props\n  const isDeprecated = Boolean(data.comment?.deprecated)\n\n  if ('isReactComponentType' in data && data.isReactComponentType) {\n    return (\n      <>\n        <UnformattedCode>{`<`}</UnformattedCode>\n        <SyntaxText $deprecated={isDeprecated} $syntax=\"className\">\n          {data.name}\n        </SyntaxText>\n        <UnformattedCode $deprecated={isDeprecated}>{` />`}</UnformattedCode>\n      </>\n    )\n  }\n\n  if (data._type === 'api.class') {\n    return (\n      <>\n        {/* <SyntaxText $syntax=\"keyword\">class </SyntaxText> */}\n        <SyntaxText $deprecated={isDeprecated} $syntax=\"className\">\n          {data.name}\n        </SyntaxText>\n      </>\n    )\n  }\n\n  if (data._type === 'api.enum') {\n    return (\n      <>\n        {/* <SyntaxText $syntax=\"keyword\">enum </SyntaxText> */}\n        <SyntaxText $deprecated={isDeprecated} $syntax=\"className\">\n          {data.name}\n        </SyntaxText>\n      </>\n    )\n  }\n\n  if (data._type === 'api.function') {\n    return (\n      <>\n        {/* <SyntaxText $syntax=\"keyword\">function </SyntaxText> */}\n        <SyntaxText $deprecated={isDeprecated} $syntax=\"function\">\n          {data.name}\n        </SyntaxText>\n        <UnformattedCode $deprecated={isDeprecated}>()</UnformattedCode>\n      </>\n    )\n  }\n\n  if (data._type === 'api.interface') {\n    return (\n      <>\n        {/* <SyntaxText $syntax=\"keyword\">interface </SyntaxText> */}\n        <SyntaxText $deprecated={isDeprecated} $syntax=\"className\">\n          {data.name}\n        </SyntaxText>\n      </>\n    )\n  }\n\n  if (data._type === 'api.namespace') {\n    return (\n      <>\n        {/* <SyntaxText $syntax=\"keyword\">namespace </SyntaxText> */}\n        <SyntaxText $deprecated={isDeprecated} $syntax=\"className\">\n          {data.name}\n        </SyntaxText>\n      </>\n    )\n  }\n\n  if (data._type === 'api.typeAlias') {\n    return (\n      <>\n        {/* <SyntaxText $syntax=\"keyword\">type </SyntaxText> */}\n        <SyntaxText $deprecated={isDeprecated} $syntax=\"className\">\n          {data.name}\n        </SyntaxText>\n      </>\n    )\n  }\n\n  if (data._type === 'api.variable') {\n    return <UnformattedCode $deprecated={isDeprecated}>{data.name}</UnformattedCode>\n  }\n\n  return <>Uknown</>\n}\n","import {TSDocAppParams} from '@sanity/tsdoc/store'\n\n/** @beta */\nexport function compilePath(params: TSDocAppParams): string {\n  const segments: string[] = []\n\n  if (params.packageName) {\n    if (params.packageScope) {\n      segments.push(params.packageScope)\n    }\n\n    segments.push(params.packageName)\n\n    if (params.releaseVersion) {\n      if (params.exportPath) {\n        if (params.exportPath !== '.') {\n          segments.push(params.exportPath.slice(2))\n        }\n\n        if (params.memberSlug) {\n          segments.push(params.memberSlug)\n        }\n      }\n    }\n  }\n\n  return `/${segments.join('/')}`\n}\n","import {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {MouseEvent, useCallback, useMemo} from 'react'\n\nimport {compilePath} from './lib/compilePath'\nimport {useTSDoc} from './useTSDoc'\n\n/** @beta */\nexport function useMemberLink(props: {params: TSDocAppParams | null}): {\n  href: string\n  onClick: (event: MouseEvent | KeyboardEvent) => void\n} {\n  const {params} = props\n  const {basePath, onPathChange} = useTSDoc()\n  const path = params && compilePath(params)\n  const href = useMemo(() => `${basePath}${path || ''}`, [basePath, path])\n\n  const onClick = useCallback(\n    (event: MouseEvent | KeyboardEvent) => {\n      if (!path) return\n\n      event.preventDefault()\n\n      onPathChange(path)\n    },\n    [onPathChange, path],\n  )\n\n  return {href, onClick}\n}\n","import {blue} from '@sanity/color'\nimport {type Theme, TreeItem} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nexport const SyntaxTreeItem = memo(\n  styled(TreeItem)(({theme}: {theme: Theme}) => {\n    const isThemeDark = theme.sanity.color.dark\n    const activeBackground = blue[50].hex\n    const focusBackground = theme.sanity.color.selectable!.default.enabled.bg2\n    const color = theme.sanity.color.selectable!.default.hovered.fg\n\n    const selectedLight = isThemeDark\n      ? ''\n      : `&[data-selected] > [role='treeitem'] {\n      background-color: ${activeBackground} !important\n    }`\n\n    return `\n      // solely on changing the \"()\" color\n      &:focus code,\n      & > a:focus code {\n        color: ${color} !important;\n      }\n\n      ${selectedLight}\n\n      // change focus for api items trees\n      & > a:focus {\n        background-color: ${focusBackground} !important;\n      }\n    `\n  }),\n)\n","import type {APIMember, APINamespace} from '@sanity/tsdoc'\nimport type {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {Box, type CardTone, Flex} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {SyntaxText} from '../../components/ColoredCode'\nimport {useSize} from '../../lib/ui'\nimport {TSDocMemberTitle} from '../TSDocMemberTitle'\nimport {useMemberLink} from '../useMemberLink'\nimport {useTSDoc} from '../useTSDoc'\nimport {SyntaxTreeItem} from './SyntaxTreeItem'\n\nexport function MemberLink(props: {data: APIMember; namespace?: APINamespace}): React.ReactNode {\n  const {data, namespace} = props\n  const {basePath, path} = useTSDoc()\n  const fontSize = useSize()\n\n  const params: TSDocAppParams = useMemo(\n    () => ({\n      exportPath: data.export?.path || namespace?.export.path || '.',\n      memberName: data.name,\n      packageName: data.package.name,\n      packageScope: data.package.scope || null,\n      releaseVersion: data.release.version,\n      memberSlug: data.slug.current,\n    }),\n    [data, namespace],\n  )\n\n  const linkProps = useMemberLink({params})\n\n  const tone: CardTone | undefined = useMemo(() => {\n    if (data.releaseTag === 'beta') return 'caution'\n    if (data.releaseTag === 'alpha') return 'critical'\n\n    return undefined\n  }, [data.releaseTag])\n\n  const tag = useMemo(() => {\n    if (data.releaseTag === 'beta') {\n      return (\n        <Box>\n          <SyntaxText $syntax=\"string\">@beta</SyntaxText>\n        </Box>\n      )\n    }\n\n    if (data.releaseTag === 'alpha') {\n      return (\n        <Box>\n          <SyntaxText $syntax=\"builtin\">@alpha</SyntaxText>\n        </Box>\n      )\n    }\n\n    return null\n  }, [data.releaseTag])\n\n  const isSelected = `${basePath}${path}` === linkProps.href\n\n  return (\n    <SyntaxTreeItem\n      {...linkProps}\n      fontSize={fontSize}\n      padding={2}\n      selected={isSelected}\n      text={\n        <Flex gap={1}>\n          <Box flex={1}>\n            <TSDocMemberTitle data={data} />\n          </Box>\n          {tag}\n        </Flex>\n      }\n      // @ts-expect-error - fix this\n      tone={tone}\n    />\n  )\n}\n","import {type Theme, TreeItem} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nexport const TreeItemFocus = memo(\n  styled(TreeItem)(({theme}: {theme: Theme}) => {\n    const text = theme.sanity.color.selectable!.default.enabled.fg\n\n    return `\n      &:focus > [data-ui='TreeItem__box'],\n      &:focus > [data-ui=\"TreeItem\"] {\n        background-color: transparent !important;\n\n        & svg, & code, & [data-ui=\"Text\"] {\n          color: ${text} !important;\n        }\n      }\n    `\n  }),\n)\n","import {useSize} from '../../lib/ui'\nimport {useTSDoc} from '../useTSDoc'\nimport {MemberLink} from './MemberLink'\nimport {TreeItemFocus} from './TreeItemFocus'\nimport {TSDocNavExportData} from './TSDocNav'\n\nexport function GroupedMembersTree(props: {\n  exp: TSDocNavExportData\n  expandSubPackages?: boolean\n}): React.ReactNode {\n  const {exp, expandSubPackages} = props\n  const {params} = useTSDoc()\n  const fontSize = useSize()\n\n  return (\n    <>\n      {exp.reactComponents.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.reactComponents.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Components\"\n          weight=\"semibold\"\n        >\n          {exp.reactComponents.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.reactHooks.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.reactHooks.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Hooks\"\n          weight=\"semibold\"\n        >\n          {exp.reactHooks.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.classes.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.classes.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Classes\"\n          weight=\"semibold\"\n        >\n          {exp.classes.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.functions.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.functions.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Functions\"\n          weight=\"semibold\"\n        >\n          {exp.functions.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.variables.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.variables.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Variables\"\n          weight=\"semibold\"\n        >\n          {exp.variables.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.enums.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.enums.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Enumerations\"\n          weight=\"semibold\"\n        >\n          {exp.enums.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.interfaces.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.interfaces.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Interfaces\"\n          weight=\"semibold\"\n        >\n          {exp.interfaces.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.namespaces.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.namespaces.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Namespaces\"\n          weight=\"semibold\"\n        >\n          {exp.namespaces.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n\n      {exp.typeAliases.length > 0 && (\n        <TreeItemFocus\n          expanded={\n            expandSubPackages\n              ? expandSubPackages\n              : exp.typeAliases.some((m) => m.name === params.memberName)\n          }\n          fontSize={fontSize}\n          padding={2}\n          text=\"Type aliases\"\n          weight=\"semibold\"\n        >\n          {exp.typeAliases.map((member) => (\n            <MemberLink data={member} key={member.name} />\n          ))}\n        </TreeItemFocus>\n      )}\n    </>\n  )\n}\n","import {MenuItem} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nexport const SyntaxMenuItem = memo(styled(MenuItem)`\n  &:focus code,\n  & > a:focus code {\n    color: inherit !important;\n  }\n\n  & > a:focus {\n    background: transparent !important;\n  }\n`)\n","import {SelectIcon} from '@sanity/icons'\nimport {APIPackage} from '@sanity/tsdoc'\nimport {Button, Menu, MenuButton} from '@sanity/ui'\n\nimport {SyntaxText} from '../../components/ColoredCode'\nimport {useSize} from '../../lib/ui'\nimport {useTSDoc} from '../useTSDoc'\nimport {SyntaxMenuItem} from './SyntaxMenuItem'\n\nexport function PackageMenuButton(props: {\n  currentPkg: APIPackage\n  packages: APIPackage[]\n}): React.ReactNode {\n  const {currentPkg, packages} = props\n  const {updateParams} = useTSDoc()\n  const fontSize = useSize()\n\n  return (\n    <MenuButton\n      button={\n        <Button\n          fontSize={fontSize}\n          iconRight={SelectIcon}\n          mode=\"bleed\"\n          padding={2}\n          text={\n            <SyntaxText>{[currentPkg.scope, currentPkg.name].filter(Boolean).join('/')}</SyntaxText>\n          }\n        />\n      }\n      id=\"package-menu\"\n      menu={\n        <Menu>\n          {packages.map((p) => (\n            <SyntaxMenuItem\n              fontSize={fontSize}\n              key={p.name}\n              onClick={() => {\n                updateParams((prev) => ({\n                  ...prev,\n                  exportPath: null,\n                  packageScope: p.scope || null,\n                  packageName: p.name,\n                  releaseVersion: p.latestRelease.version,\n                  memberName: null,\n                }))\n              }}\n              padding={2}\n              text={<SyntaxText>{[p.scope, p.name].filter(Boolean).join('/')}</SyntaxText>}\n            />\n          ))}\n        </Menu>\n      }\n      popover={{\n        constrainSize: true,\n        matchReferenceWidth: true,\n        portal: true,\n      }}\n    />\n  )\n}\n","import {APIPackage} from '@sanity/tsdoc'\nimport {TreeItemProps} from '@sanity/ui'\nimport {useCallback} from 'react'\n\nimport {SyntaxText} from '../../components/ColoredCode'\nimport {compilePath} from '../lib/compilePath'\nimport {useTSDoc} from '../useTSDoc'\nimport {SyntaxTreeItem} from './SyntaxTreeItem'\n\nexport function PackageTreeItem(\n  props: {pkg: APIPackage} & Omit<TreeItemProps, 'href' | 'onClick' | 'text'>,\n): React.ReactNode {\n  const {pkg, ...restProps} = props\n  const {params, updateParams} = useTSDoc()\n\n  const href = compilePath({\n    ...params,\n    packageScope: pkg.scope || null,\n    packageName: pkg.name,\n    releaseVersion: pkg.latestRelease.version,\n  })\n\n  const handleClick = useCallback(\n    (event: MouseEvent) => {\n      event.preventDefault()\n\n      updateParams((prev) => ({\n        ...prev,\n        packageScope: pkg.scope || null,\n        packageName: pkg.name,\n        releaseVersion: pkg.latestRelease.version,\n      }))\n    },\n    [pkg, updateParams],\n  )\n\n  return (\n    <SyntaxTreeItem\n      {...restProps}\n      href={href}\n      // @ts-expect-error - fix this\n      onClick={handleClick}\n      text={<SyntaxText>{[pkg.scope, pkg.name].filter(Boolean).join('/')}</SyntaxText>}\n    />\n  )\n}\n","import {SelectIcon} from '@sanity/icons'\nimport {APIPackage, APIRelease} from '@sanity/tsdoc'\nimport {Button, Menu, MenuButton} from '@sanity/ui'\n\nimport {SyntaxText} from '../../components/ColoredCode'\nimport {useSize} from '../../lib/ui'\nimport {useTSDoc} from '../useTSDoc'\nimport {SyntaxMenuItem} from './SyntaxMenuItem'\n\nexport function ReleaseMenuButton(props: {\n  currentPkg: APIPackage\n  currentRelease: APIRelease\n}): React.ReactNode {\n  const {currentPkg, currentRelease} = props\n  const {updateParams} = useTSDoc()\n  const fontSize = useSize()\n\n  return (\n    <MenuButton\n      button={\n        <Button\n          fontSize={fontSize}\n          iconRight={SelectIcon}\n          mode=\"bleed\"\n          padding={2}\n          text={<SyntaxText $syntax=\"className\">{currentRelease.version}</SyntaxText>}\n        />\n      }\n      id=\"version-menu\"\n      menu={\n        <Menu>\n          {currentPkg.releases.map((r) => (\n            <SyntaxMenuItem\n              fontSize={fontSize}\n              key={r.version}\n              onClick={() => updateParams((prev) => ({...prev, releaseVersion: r.version}))}\n              padding={2}\n              selected={currentRelease.version === r.version}\n              text={<SyntaxText $syntax=\"className\">{r.version}</SyntaxText>}\n            />\n          ))}\n        </Menu>\n      }\n      popover={{\n        constrainSize: true,\n        matchReferenceWidth: true,\n        portal: true,\n      }}\n    />\n  )\n}\n","import {Box} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nexport const SearchWrapper = memo(styled(Box)`\n  background-color: var(--card-bg-color);\n`)\n","import {Tree} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nexport const TreeNav = memo(styled(Tree)`\n  overflow: auto;\n  height: 100vh;\n`)\n","import type {APISymbol} from '@sanity/tsdoc'\nimport {useEffect, useRef, useState} from 'react'\n\nimport {useTSDoc} from './useTSDoc'\n\nconst DEBOUNCE_MS = 150\n\n/** @beta */\nexport function useSymbolSearch(props: {query: string | null}): {\n  data: (APISymbol & {_id: string; members: {exportPath: string; releaseVersion: string}[]})[]\n  error: Error | null\n  loading: boolean\n} {\n  const {query} = props\n  const {params, store} = useTSDoc()\n\n  const [data, setData] = useState<\n    (APISymbol & {_id: string; members: {exportPath: string; releaseVersion: string}[]})[]\n  >([])\n  const [error, setError] = useState<Error | null>(null)\n  const [loading, setLoading] = useState(false)\n  const [debouncedQuery, setDebouncedQuery] = useState(query)\n  const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n  useEffect(() => {\n    let cancelled = false\n\n    async function run() {\n      if (!debouncedQuery || !params.packageName) {\n        setData([])\n\n        return\n      }\n\n      try {\n        setLoading(true)\n        const data = await store.symbol.search({\n          query: debouncedQuery,\n          packageName: params.packageName,\n          packageScope: params.packageScope,\n        })\n\n        if (!cancelled) {\n          setLoading(false)\n          // @ts-expect-error - find a way to fix this\n          setData(data)\n        }\n      } catch (err) {\n        if (err instanceof Error && !cancelled) {\n          setError(err)\n        }\n      } finally {\n        if (!cancelled) {\n          setLoading(false)\n        }\n      }\n\n      setLoading(false)\n    }\n\n    run()\n\n    return () => {\n      cancelled = true\n    }\n  }, [debouncedQuery, params.packageName, params.packageScope, store])\n\n  useEffect(() => {\n    if (timeoutRef.current) {\n      clearTimeout(timeoutRef.current)\n    }\n\n    timeoutRef.current = setTimeout(() => {\n      setDebouncedQuery(query)\n      timeoutRef.current = null\n    }, DEBOUNCE_MS)\n  }, [query])\n\n  return {data, error, loading}\n}\n","import {SearchIcon} from '@sanity/icons'\nimport {APISymbol, SanitySlugValue} from '@sanity/tsdoc'\nimport {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {\n  Autocomplete,\n  BaseAutocompleteOption,\n  Box,\n  Card,\n  Flex,\n  Popover,\n  Stack,\n  Text,\n} from '@sanity/ui'\nimport {ForwardedRef, forwardRef, useCallback, useMemo, useRef, useState} from 'react'\n\nimport {UnformattedCode} from '../../components/UnformattedCode'\nimport {useMemberLink} from '../useMemberLink'\nimport {useSymbolSearch} from '../useSymbolSearch'\n\ninterface TSDocSearchOption extends BaseAutocompleteOption {\n  symbol: APISymbol & {_id: string; members: {exportPath: string; releaseVersion: string}[]}\n}\n\n/** @beta */\nexport function TSDocSearch(): React.ReactNode {\n  const [query, setQuery] = useState<string | null>(null)\n  const {data, loading} = useSymbolSearch({query})\n  const [value, setValue] = useState<string | undefined>()\n  const autocompletePopoverReferenceElementRef = useRef<HTMLDivElement | null>(null)\n\n  const options: TSDocSearchOption[] = useMemo(\n    () => data.map((result) => ({value: result._id, symbol: result})),\n    [data],\n  )\n\n  const filterOption = useCallback(() => true, [])\n\n  const handleSelect = useCallback((value: string) => {\n    setValue(value)\n    setTimeout(() => setValue(''), 0)\n  }, [])\n\n  const renderOption = useCallback((option: TSDocSearchOption) => {\n    // @ts-expect-error - find a way to fix this\n    return <SearchOption symbol={option.symbol} />\n  }, [])\n\n  const renderValue = useCallback(() => '', [])\n\n  const renderPopover = useCallback(\n    ({content, hidden}: {content: React.ReactNode | null; hidden: boolean}) => {\n      return query ? (\n        <Popover\n          arrow={false}\n          open={!loading && !hidden}\n          overflow=\"auto\"\n          placement=\"bottom-start\"\n          matchReferenceWidth\n          radius={0}\n          content={\n            content ? (\n              content\n            ) : (\n              <Box padding={4}>\n                <Flex align=\"center\" height=\"fill\" justify=\"center\">\n                  <Text align=\"center\" muted>\n                    No results for <strong>“{query}”</strong>\n                  </Text>\n                </Flex>\n              </Box>\n            )\n          }\n          referenceElement={autocompletePopoverReferenceElementRef.current}\n        />\n      ) : null\n    },\n    [loading, query],\n  )\n\n  return (\n    <div ref={autocompletePopoverReferenceElementRef}>\n      <Autocomplete\n        filterOption={filterOption}\n        icon={SearchIcon}\n        id=\"tsdoc-search\"\n        loading={loading}\n        onQueryChange={setQuery}\n        onSelect={handleSelect}\n        options={options}\n        padding={3}\n        placeholder=\"Search for API members\"\n        radius={2}\n        renderOption={renderOption}\n        renderValue={renderValue}\n        renderPopover={renderPopover}\n        value={value}\n      />\n    </div>\n  )\n}\n\nconst SearchOption = forwardRef(function SearchOption(\n  props: {\n    symbol: APISymbol & {\n      members: {slug: SanitySlugValue; exportPath: string; releaseVersion: string}[]\n    }\n  },\n  ref: ForwardedRef<HTMLDivElement>,\n) {\n  const {symbol, ...restProps} = props\n\n  const latestMember = symbol.members[0]\n\n  const params: TSDocAppParams = useMemo(\n    () => ({\n      exportPath: latestMember ? latestMember.exportPath : '.',\n      packageName: symbol.package.name,\n      packageScope: symbol.package.scope || null,\n      memberName: symbol.name,\n      releaseVersion: latestMember ? latestMember.releaseVersion : '0.0.0',\n      memberSlug: latestMember ? latestMember.slug.current : '',\n    }),\n    [latestMember, symbol],\n  )\n\n  const link = useMemberLink({params})\n\n  return (\n    <Card\n      {...restProps}\n      as=\"a\"\n      href={link.href}\n      onClick={link.onClick}\n      padding={3}\n      radius={2}\n      ref={ref}\n    >\n      <Stack space={3}>\n        <Text size={1} weight=\"medium\">\n          <UnformattedCode>{symbol.name}</UnformattedCode>\n        </Text>\n        <Text muted size={1}>\n          <UnformattedCode>\n            {[\n              [\n                symbol.package.scope,\n                symbol.package.name,\n                latestMember?.exportPath === '.'\n                  ? undefined\n                  : latestMember?.exportPath.replace('./', '/'),\n              ].filter(Boolean),\n            ]}\n          </UnformattedCode>\n        </Text>\n      </Stack>\n    </Card>\n  )\n})\n","import {\n  APIClass,\n  APIEnum,\n  APIFunction,\n  APIInterface,\n  APINamespace,\n  APITypeAlias,\n  APIVariable,\n} from '@sanity/tsdoc'\nimport {TSDocExportData} from '@sanity/tsdoc/store'\nimport {Box, Card, Flex, Layer, Spinner, Stack, Text, Tree} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {SyntaxText} from '../../components/ColoredCode'\nimport {Size, useSize} from '../../lib/ui'\nimport {useExports} from '../useExports'\nimport {usePackages} from '../usePackages'\nimport {useTSDoc} from '../useTSDoc'\nimport {BoxSticky} from './FlexSticky'\nimport {getGroupedMembers} from './getGroupedMembers'\nimport {GroupedMembersTree} from './GroupedMembersTree'\nimport {PackageMenuButton} from './PackageMenuButton'\nimport {PackageTreeItem} from './PackageTreeItem'\nimport {ReleaseMenuButton} from './ReleaseMenuButton'\nimport {SearchWrapper} from './SearchWrapper'\nimport {TreeItemFocus} from './TreeItemFocus'\nimport {TreeNav} from './TreeNav'\nimport {TSDocSearch} from './TSDocSearch'\n\n/** @internal */\nexport interface TSDocNavGroupedMembers {\n  classes: APIClass[]\n  enums: APIEnum[]\n  functions: APIFunction[]\n  interfaces: APIInterface[]\n  namespaces: APINamespace[]\n  reactComponents: (APIClass | APIFunction | APIVariable)[]\n  reactHooks: APIFunction[]\n  typeAliases: APITypeAlias[]\n  variables: APIVariable[]\n}\n\n/** @internal */\nexport interface TSDocNavExportData\n  extends Omit<TSDocExportData, 'members'>,\n    TSDocNavGroupedMembers {\n  // intentionally empty\n}\n\n/** @beta */\nexport function TSDocNav(props: {\n  showVersionMenu?: boolean\n  expandPackages?: boolean\n  expandSubPackages?: boolean\n}): React.ReactNode {\n  return (\n    <Size delta={-1}>\n      <TSDocNavView {...props} />\n    </Size>\n  )\n}\n\ninterface ExportData {\n  packageScope: string | null\n  packageName: string\n  name: string\n  versions: TSDocNavExportData[]\n}\n\nfunction TSDocNavView(props: {\n  showVersionMenu?: boolean\n  expandPackages?: boolean\n  expandSubPackages?: boolean\n}): React.ReactNode {\n  const {params} = useTSDoc()\n  const _exports = useExports()\n  const packages = usePackages()\n  const fontSize = useSize()\n  const {showVersionMenu, expandPackages, expandSubPackages} = props\n\n  const currentPkg = packages.data?.find(\n    (p) => p.scope === params.packageScope && p.name === params.packageName,\n  )\n\n  const currentRelease = currentPkg?.releases.length\n    ? currentPkg?.releases.find((r) =>\n        params.releaseVersion\n          ? r.version === params.releaseVersion\n          : r.version == currentPkg.latestRelease.version,\n      )\n    : currentPkg?.latestRelease\n\n  const currentVersion = currentRelease?.version\n\n  const currentExportName =\n    currentPkg &&\n    params.exportPath &&\n    [currentPkg.scope, currentPkg.name, params.exportPath].filter(Boolean).join('/')\n\n  const exports: ExportData[] = useMemo(() => {\n    if (!_exports.data) return []\n\n    const items: {\n      packageScope: string | null\n      packageName: string\n      name: string\n      versions: TSDocNavExportData[]\n    }[] = []\n\n    for (const exp of _exports.data) {\n      if (exp.members.length === 0) {\n        continue // skip\n      }\n\n      const {members, name, package: pkg, ...restExp} = exp\n\n      const item = items.find(\n        (e) => e.packageScope === pkg.scope && e.packageName === pkg.name && e.name === exp.name,\n      )\n\n      const data: TSDocNavExportData = {\n        name,\n        package: pkg,\n        ...restExp,\n        ...getGroupedMembers(members),\n      }\n\n      if (item) {\n        item.versions.push(data)\n      } else {\n        items.push({\n          packageScope: pkg.scope,\n          packageName: pkg.name,\n          name,\n          versions: [data],\n        })\n      }\n    }\n\n    return items || []\n  }, [_exports.data])\n\n  return (\n    <BoxSticky paddingTop={3}>\n      <Flex direction=\"column\" height=\"fill\" overflow=\"hidden\">\n        {!currentPkg && !packages.loading && (\n          <Card overflow=\"auto\" padding={3}>\n            <Stack space={1}>\n              <Box padding={2}>\n                <Text size={fontSize} weight=\"bold\">\n                  Choose package\n                </Text>\n              </Box>\n\n              <Tree>\n                {packages.data?.map((pkg) => (\n                  <PackageTreeItem key={pkg.name} pkg={pkg} fontSize={fontSize} padding={2} />\n                ))}\n              </Tree>\n            </Stack>\n          </Card>\n        )}\n\n        {currentPkg && (\n          <>\n            {showVersionMenu && (\n              <Layer style={{flex: 'none', position: 'sticky', top: 0}}>\n                <Card padding={[2, 2, 3]} shadow={1}>\n                  <Flex gap={1}>\n                    {packages.data && (\n                      <Stack flex={1}>\n                        <PackageMenuButton currentPkg={currentPkg} packages={packages.data} />\n                      </Stack>\n                    )}\n\n                    {currentRelease && (\n                      <Stack flex=\"none\">\n                        <ReleaseMenuButton\n                          currentPkg={currentPkg}\n                          currentRelease={currentRelease}\n                        />\n                      </Stack>\n                    )}\n                  </Flex>\n                </Card>\n              </Layer>\n            )}\n\n            {_exports.loading && (\n              <Flex align=\"center\" height=\"fill\" justify=\"center\">\n                <Spinner muted />\n              </Flex>\n            )}\n\n            {!_exports.loading && (\n              <Stack flex={1} overflow=\"auto\">\n                {currentPkg && (\n                  <SearchWrapper padding={1}>\n                    <TSDocSearch />\n                  </SearchWrapper>\n                )}\n                {exports.length === 1 ? (\n                  <SingleExportTree currentVersion={currentVersion} exp={exports[0]!} />\n                ) : (\n                  <MultiExportTree\n                    currentExportName={currentExportName}\n                    currentVersion={currentVersion}\n                    exports={exports}\n                    fontSize={fontSize}\n                    expandPackages={expandPackages}\n                    expandSubPackages={expandSubPackages}\n                  />\n                )}\n              </Stack>\n            )}\n          </>\n        )}\n      </Flex>\n    </BoxSticky>\n  )\n}\n\nfunction SingleExportTree(props: {currentVersion?: string; exp: ExportData}) {\n  const {currentVersion, exp} = props\n\n  const versionedExports = useMemo(\n    () => exp.versions.filter((d) => d.release.version === currentVersion),\n    [currentVersion, exp],\n  )\n\n  return (\n    <TreeNav>\n      {versionedExports.map((exp) => (\n        <GroupedMembersTree exp={exp} key={exp.release.version} />\n      ))}\n    </TreeNav>\n  )\n}\n\nfunction MultiExportTree(props: {\n  currentExportName?: string | null\n  currentVersion?: string\n  fontSize?: number[]\n  exports: ExportData[]\n  expandPackages?: boolean\n  expandSubPackages?: boolean\n}) {\n  const {currentExportName, currentVersion, fontSize, exports, expandPackages, expandSubPackages} =\n    props\n\n  const versionedExports = useMemo(\n    () => exports.filter((data) => data.versions.some((v) => v.release.version === currentVersion)),\n    [currentVersion, exports],\n  )\n\n  return (\n    <TreeNav>\n      {versionedExports.map((data) => (\n        <TreeItemFocus\n          expanded={expandPackages ? expandPackages : data.name === currentExportName}\n          tabIndex={0}\n          fontSize={fontSize}\n          key={data.name}\n          padding={2}\n          text={<SyntaxText>{data.name}</SyntaxText>}\n          weight=\"semibold\"\n        >\n          {data.versions\n            .filter((d) => d.release.version === currentVersion)\n            .map((exp) => (\n              <GroupedMembersTree\n                exp={exp}\n                key={exp.release.version}\n                expandSubPackages={expandSubPackages}\n              />\n            ))}\n        </TreeItemFocus>\n      ))}\n    </TreeNav>\n  )\n}\n","import {Box} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nexport const CommentBox = styled(Box)`\n  /* border-top: 1px solid var(--card-border-color); */\n\n  & > *:first-child {\n    margin-top: 0 !important;\n  }\n\n  & > *:last-child {\n    margin-bottom: 0 !important;\n  }\n`\n","import {\n  PortableText as BasePortableText,\n  PortableTextMarkComponentProps,\n  PortableTextProps,\n} from '@portabletext/react'\nimport {PortableTextNode} from '@sanity/tsdoc'\nimport {Box, Card, Code} from '@sanity/ui'\nimport {MouseEvent, useCallback} from 'react'\n\nimport {useTSDoc} from '../app'\nimport {H, Level, P, useSpace, useTextSize} from '../lib/ui'\n\nconst CODE_LANGUAGES: Record<string, string> = {\n  sh: 'bash',\n  tsx: 'typescript',\n  ts: 'typescript',\n}\n\nexport function PortableText(props: {blocks: PortableTextNode[]}): React.ReactNode {\n  const {blocks} = props\n\n  return <BasePortableText components={components} value={blocks} />\n}\n\nconst components: PortableTextProps['components'] = {\n  block: {\n    blockquote: BlockquoteBlock,\n    h1: H1Block,\n    h2: H2Block,\n    h3: H3Block,\n    h4: H4Block,\n    h5: H5Block,\n    h6: H6Block,\n    normal: NormalBlock,\n  },\n  types: {\n    code: CodeBlock,\n  },\n  marks: {\n    link: Link,\n  },\n}\n\nfunction CodeBlock(props: {value: {code?: string; language?: string}}) {\n  const {code, language = 'typescript'} = props.value\n\n  return (\n    <Card\n      border\n      marginY={useSpace([1, 1, 2, 3])}\n      overflow=\"auto\"\n      padding={4}\n      radius={3}\n      tone=\"inherit\"\n    >\n      <Code\n        language={CODE_LANGUAGES[language] || language || 'typescript'}\n        size={useTextSize([-1, -1, 0])}\n      >\n        {code}\n      </Code>\n    </Card>\n  )\n}\n\nfunction H1Block({children}: {children?: React.ReactNode}) {\n  return <H size={[-1, 0, 1, 2]}>{children}</H>\n}\n\nfunction H2Block({children}: {children?: React.ReactNode}) {\n  return (\n    <Level>\n      <H size={[-1, 0, 1, 2]}>{children}</H>\n    </Level>\n  )\n}\n\nfunction H3Block({children}: {children?: React.ReactNode}) {\n  return (\n    <Level>\n      <Level>\n        <H size={[-1, 0, 1, 2]}>{children}</H>\n      </Level>\n    </Level>\n  )\n}\n\nfunction H4Block({children}: {children?: React.ReactNode}) {\n  return (\n    <Level>\n      <Level>\n        <Level>\n          <H size={[-1, 0, 1, 2]}>{children}</H>\n        </Level>\n      </Level>\n    </Level>\n  )\n}\n\nfunction H5Block({children}: {children?: React.ReactNode}) {\n  return (\n    <Level>\n      <Level>\n        <Level>\n          <Level>\n            <H size={[-1, 0, 1, 2]}>{children}</H>\n          </Level>\n        </Level>\n      </Level>\n    </Level>\n  )\n}\n\nfunction H6Block({children}: {children?: React.ReactNode}) {\n  return (\n    <Level>\n      <Level>\n        <Level>\n          <Level>\n            <Level>\n              <H size={[-1, 0, 1, 2]}>{children}</H>\n            </Level>\n          </Level>\n        </Level>\n      </Level>\n    </Level>\n  )\n}\n\nfunction BlockquoteBlock({children}: {children?: React.ReactNode}) {\n  return (\n    <Box as=\"blockquote\">\n      <P muted size={[-1, 0, 1]}>\n        {children}\n      </P>\n    </Box>\n  )\n}\n\nfunction NormalBlock({children}: {children?: React.ReactNode}) {\n  return (\n    <Box marginBottom={4}>\n      <P muted>{children}</P>\n    </Box>\n  )\n}\n\nfunction isValidUrl(url: string) {\n  try {\n    return Boolean(new URL(url))\n  } catch (error) {\n    return false\n  }\n}\n\nfunction getInternalHref({\n  url,\n  packageName,\n  exportPath,\n}: {\n  url: string\n  packageName: string | null\n  exportPath?: string | null\n}) {\n  const urlSegments = url.split('/')\n\n  // URL can be of two types:\n  // if it's referencing the same package then it will just have the name\n  // if it's referencing another package then it will also have the exportPath in the name\n  if (urlSegments.length === 1) {\n    // exportPath is either `.`  or `./router`\n    return `/${packageName}${exportPath?.replace('.', '')}/${url}`\n  }\n\n  return `/${packageName}/${urlSegments.join('/')}`\n}\n\nfunction Link(props: PortableTextMarkComponentProps) {\n  const {basePath, onPathChange, params} = useTSDoc()\n  const {value, text} = props\n  const {packageName, exportPath} = params\n  const url = value?.['href']\n  const isExternalUrl = isValidUrl(url)\n  const path = !isExternalUrl && getInternalHref({url, packageName, exportPath})\n  const href = isExternalUrl ? url : `${basePath}${path}`\n\n  const handleClick = useCallback(\n    (e: MouseEvent) => {\n      // If the url is pointing to external URL don't call onPathChange\n      if (isExternalUrl || !path) return\n      e.preventDefault()\n\n      // When calling onPathChange we need to call it without the basePath\n      onPathChange(path)\n    },\n    [isExternalUrl, onPathChange, path],\n  )\n\n  return (\n    <a href={href} onClick={handleClick}>\n      {text}\n    </a>\n  )\n}\n","import {WarningOutlineIcon} from '@sanity/icons'\nimport {TSDocComment} from '@sanity/tsdoc'\nimport {Box, Card, Flex, Stack, Text} from '@sanity/ui'\n\nimport {Size, useTextSize} from '../lib/ui'\nimport {CommentBox} from './CommentBox'\nimport {PortableText} from './PortableText'\n\nexport function CommentDeprecatedCallout(props: {data: TSDocComment}): React.ReactNode {\n  const {data} = props\n  const {deprecated} = data\n  const textSize = useTextSize([0, 0, 1])\n\n  if (!deprecated?.content) return <></>\n\n  return (\n    <Card padding={4} radius={3} shadow={1} tone=\"critical\">\n      <Flex align=\"flex-start\">\n        <Box flex=\"none\" marginRight={3}>\n          <Text size={textSize}>\n            <WarningOutlineIcon />\n          </Text>\n        </Box>\n        <Stack flex={1} space={2}>\n          <CommentBox>\n            <Text size={textSize} weight=\"semibold\">\n              Deprecated\n            </Text>\n            <Size delta={-1}>\n              <PortableText blocks={deprecated.content} />\n            </Size>\n          </CommentBox>\n        </Stack>\n      </Flex>\n    </Card>\n  )\n}\n","import {TSDocComment, TSDocExampleBlock} from '@sanity/tsdoc'\n\nimport {H, Level} from '../lib/ui'\nimport {PortableText} from './PortableText'\n\nexport function CommentExampleBlocks(props: {data: TSDocComment}): React.ReactNode {\n  const {data} = props\n  const {exampleBlocks} = data\n\n  if (!exampleBlocks || exampleBlocks.length === 0) return <></>\n  const showPerExampleHeader = exampleBlocks.length > 1\n\n  return (\n    <>\n      <H size={[-1, 0, 1, 2]}>Examples</H>\n\n      {exampleBlocks.map((exampleBlock, idx: number) => (\n        <Level key={exampleBlock._key}>\n          <CommentExampleBlock data={exampleBlock} index={idx} showHeader={showPerExampleHeader} />\n        </Level>\n      ))}\n    </>\n  )\n}\n\nexport function CommentExampleBlock(props: {\n  data: TSDocExampleBlock\n  index: number\n  showHeader: boolean\n}): React.ReactNode {\n  const {data, index, showHeader} = props\n\n  if (!data.content) return <></>\n\n  return (\n    <>\n      {showHeader && <H size={[-1, 0, 1, 2]}>Example #{index + 1}</H>}\n\n      <PortableText blocks={data.content} />\n    </>\n  )\n}\n","import {TSDocComment} from '@sanity/tsdoc'\n\nimport {H} from '../lib/ui'\nimport {PortableText} from './PortableText'\n\nexport function CommentRemarks(props: {data: TSDocComment}): React.ReactNode {\n  const {data} = props\n  const {remarks} = data\n\n  if (!remarks?.content) return <></>\n\n  return (\n    <>\n      <H size={[-1, 0, 1, 2]}>Remarks</H>\n      <PortableText blocks={remarks.content} />\n    </>\n  )\n}\n","import {TSDocComment} from '@sanity/tsdoc'\n\nimport {CommentBox} from './CommentBox'\nimport {PortableText} from './PortableText'\n\nexport function CommentReturnType(props: {data: TSDocComment}): React.ReactNode {\n  const {returns} = props.data\n\n  if (!returns?.content) return <></>\n\n  return (\n    <CommentBox>\n      <PortableText blocks={returns.content} />\n    </CommentBox>\n  )\n}\n","import {TSDocComment} from '@sanity/tsdoc'\n\nimport {PortableText} from './PortableText'\n\nexport function CommentSummary(props: {data: TSDocComment}): React.ReactNode {\n  const {summary} = props.data\n\n  if (!summary) return <></>\n\n  return <PortableText blocks={summary} />\n}\n","import {\n  APIClass,\n  APIFunction,\n  APIInterface,\n  APIParameter,\n  APIToken,\n  APITypeAlias,\n  APITypeParameter,\n  APIVariable,\n} from '@sanity/tsdoc'\n\n/** @internal */\nexport function _compileTypeParameters(typeParameters?: APITypeParameter[]): string {\n  if (!typeParameters || typeParameters.length === 0) return ''\n\n  return `<${typeParameters\n    .map((p) => {\n      let code = `${p.name}`\n\n      if (p.constraintType?.length) {\n        code += ` extends ${p.constraintType.map((t) => t.text).join('')}`\n      }\n\n      if (p.defaultType?.length) {\n        code += ` = ${p.defaultType.map((t) => t.text).join('')}`\n      }\n\n      return code\n    })\n    .join(', ')}>`\n}\n\n/** @internal */\nexport function _compileClassDefinition(data: APIClass): string {\n  let code = `class ${data.name}${_compileTypeParameters(data.typeParameters)} `\n\n  code += `{`\n\n  for (const m of data.members) {\n    if (m._type === 'api.constructor') {\n      code += `\\n  constructor()`\n    } else if (m._type === 'api.property') {\n      code += `\\n  ${m.name}${m.isOptional ? '?' : ''}: ${m.type.map((t) => t.text).join('')}`\n    } else if (m._type === 'api.method') {\n      code += `\\n  ${m.name}${m.isOptional ? '?' : ''}(): ${m.returnType\n        .map((t) => t.text)\n        .join('')}`\n    } else {\n      // code += `\\n  // @todo: ${m._type}`\n    }\n  }\n\n  code += `\\n}`\n\n  return code\n}\n\n/** @internal */\nexport function _compileFunctionDefinition(data: APIFunction): string {\n  let code = `function ${data.name}${_compileTypeParameters(data.typeParameters)}`\n\n  const parameters = data.parameters.map((p: APIParameter) => {\n    return `${p.name}: ${p.type.map((t) => t.text).join('')}`\n  })\n\n  if (parameters.length) {\n    code += `(\\n  ${parameters.join(',\\n  ')}\\n): `\n  } else {\n    code += `(): `\n  }\n\n  code += data.returnType.map((t) => t.text).join('')\n\n  return code\n}\n\n/** @internal */\nexport function _compileTokens(tokens: APIToken[]): string {\n  return tokens\n    .map((t) => t.text)\n    .join('')\n    .replace(/History_2/g, 'History')\n    .replace(/React_2/g, 'React')\n}\n\n/** @internal */\nexport function _compileInterfaceDefinition(data: APIInterface): string {\n  let code = `interface ${data.name}${_compileTypeParameters(data.typeParameters)}`\n\n  if (data.extends.length) {\n    if (data.extends.length === 1) {\n      code += ` extends ${data.extends.map((e) => _compileTokens(e.type)).join(', ')}`\n    } else {\n      code += `\\n  extends ${data.extends.map((e) => _compileTokens(e.type)).join(',\\n    ')}`\n    }\n  }\n\n  if (data.members.length) {\n    code += ` {`\n\n    for (const m of data.members) {\n      if (m._type === 'api.propertySignature') {\n        code += `\\n  ${m.name}${m.isOptional ? '?' : ''}: ${_compileTokens(m.type)}`\n      } else if (m._type === 'api.callSignature') {\n        code += `\\n  (${m.parameters\n          .map((p) => `${p.name}: ${_compileTokens(p.type)}`)\n          .join(', ')}) => ${_compileTokens(m.returnType)}`\n      } else if (m._type === 'api.indexSignature') {\n        code += `\\n  [`\n\n        code += m.parameters.map((p) => {\n          return `${p.name}: ${_compileTokens(p.type)}`\n        })\n\n        code += `]: ${_compileTokens(m.returnType)}`\n      } else {\n        code += `\\n  // @todo: _type=${m._type}`\n      }\n    }\n\n    code += `\\n}`\n  } else {\n    code += ` {}`\n  }\n\n  return code\n}\n\n/** @internal */\nexport function _compileTypeAliasDefinition(data: APITypeAlias): string {\n  let code = `type ${data.name}${_compileTypeParameters(data.typeParameters)} = `\n\n  code += data.type?.map((t) => t.text).join('')\n\n  return code\n}\n\n/** @internal */\nexport function _compileVariableDefinition(data: APIVariable): string {\n  let code = `const ${data.name}: `\n\n  code += data.type.map((t) => t.text).join('')\n\n  return code\n}\n","import {APIClass} from '@sanity/tsdoc'\nimport {Box, Card, Code} from '@sanity/ui'\n\nimport {_compileClassDefinition} from '../../app/lib/_compile'\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {useTextSize} from '../../lib/ui'\n\nexport function ClassTooltipContent(props: {data: APIClass}): React.ReactNode {\n  const {data} = props\n\n  return (\n    <>\n      <Box padding={3}>\n        <Code\n          language=\"typescript\"\n          size={useTextSize([-1, 0, 1])}\n        >{`import {${data.name}} from '${data.export.name}'`}</Code>\n      </Box>\n\n      <Card borderTop padding={3} overflow=\"auto\">\n        <Code language=\"typescript\" size={useTextSize([-1, 0, 1])}>\n          {_compileClassDefinition(data)}\n        </Code>\n      </Card>\n\n      {data.comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={data.comment} />\n        </CommentBox>\n      )}\n    </>\n  )\n}\n","import {APIEnum} from '@sanity/tsdoc'\nimport {Box, Code} from '@sanity/ui'\n\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {useTextSize} from '../../lib/ui'\n\nexport function EnumTooltipContent(props: {data: APIEnum}): React.ReactNode {\n  const {data} = props\n\n  return (\n    <>\n      <Box padding={3} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n        <Code\n          language=\"typescript\"\n          size={useTextSize([-1, 0, 1])}\n        >{`import {${data.name}} from '${data.export.name}'`}</Code>\n      </Box>\n\n      <Box padding={3} overflow=\"auto\">\n        <Code language=\"typescript\" size={useTextSize([-1, 0, 1])}>\n          {/* {_compileEnumDefinition(data)} */}\n        </Code>\n      </Box>\n\n      {data.comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={data.comment} />\n        </CommentBox>\n      )}\n    </>\n  )\n}\n","import {\n  APIClass,\n  APIEnum,\n  APIInterface,\n  APIMember,\n  APINamespace,\n  SanityArrayItem,\n} from '@sanity/tsdoc'\n\nimport {APIMemberWithInheritance} from './_types'\n\nexport function _getMembers(data: APIMember): SanityArrayItem<APIMemberWithInheritance>[] {\n  if (!('members' in data)) {\n    return []\n  }\n\n  let mems: SanityArrayItem<\n    | APIClass['members'][0]\n    | APIEnum['members'][0]\n    | APIInterface['members'][0]\n    | APINamespace['members'][0]\n  >[] = data.members\n\n  if ('extends' in data) {\n    for (const ext of data.extends) {\n      for (const tok of ext.type) {\n        const member = tok.member\n\n        if (member && 'members' in member) {\n          mems = mems.concat(\n            member.members.map((mem) => {\n              const m: SanityArrayItem<APIMemberWithInheritance> = {\n                ...mem,\n                inheritedFrom: {name: member.name, slug: member.name},\n              }\n\n              return m\n            }),\n          )\n        }\n      }\n    }\n  }\n\n  mems.sort((a, b) => {\n    const aName = 'name' in a ? a.name : ''\n    const bName = 'name' in b ? b.name : ''\n\n    if (aName < bName) return -1\n    if (aName > bName) return 1\n\n    return 0\n  })\n\n  return mems\n}\n","import {APIFunction} from '@sanity/tsdoc'\nimport {Box, Code} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {useMemberLink} from '../../app'\nimport {_compileFunctionDefinition} from '../../app/lib/_compile'\nimport {Members} from '../../article/members'\nimport {_getMembers} from '../../article/members/helpers'\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {H, P, useTextSize} from '../../lib/ui'\n\nexport function FunctionTooltipContent(props: {data: APIFunction}): React.ReactNode {\n  const {data} = props\n  const {propsType} = data\n\n  const propsTypeMembers = useMemo(() => propsType && _getMembers(propsType), [propsType])\n\n  const propsTypeLinkParams = useMemo(\n    () =>\n      propsType && {\n        exportPath: propsType.export?.path,\n        packageName: propsType.package?.name,\n        packageScope: propsType.package?.scope || null,\n        memberName: propsType.name,\n        releaseVersion: propsType.release?.version,\n        memberSlug: propsType.slug.current,\n      },\n    [propsType],\n  )\n\n  const propsTypeLink = useMemberLink({\n    params: propsTypeLinkParams || null,\n  })\n\n  return (\n    <>\n      <Box overflow=\"auto\" padding={3}>\n        <Code\n          language=\"typescript\"\n          size={useTextSize([-1, 0, 1])}\n        >{`import {${data.name}} from '${data.export.name}'`}</Code>\n      </Box>\n\n      <Box padding={3} overflow=\"auto\" style={{borderTop: '1px solid var(--card-border-color)'}}>\n        <Code language=\"typescript\" size={useTextSize([-1, 0, 1])}>\n          {_compileFunctionDefinition(data)}\n        </Code>\n      </Box>\n\n      {propsType && propsTypeMembers && propsTypeMembers.length > 0 && (\n        <CommentBox padding={3}>\n          <H size={[-1, 0, 1, 2]}>Props</H>\n\n          <P size={[-1, 0, 1]}>\n            Defined by the{' '}\n            <code>\n              <a href={propsTypeLink.href} onClick={propsTypeLink?.onClick}>\n                {propsType.name}\n              </a>\n            </code>{' '}\n            interface.\n          </P>\n\n          {propsTypeMembers.length > 0 && <Members data={propsTypeMembers} member={data} />}\n        </CommentBox>\n      )}\n\n      {data.comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={data.comment} />\n        </CommentBox>\n      )}\n    </>\n  )\n}\n","import {APIInterface} from '@sanity/tsdoc'\nimport {Box, Code} from '@sanity/ui'\n\nimport {_compileInterfaceDefinition} from '../../app/lib/_compile'\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {useTextSize} from '../../lib/ui'\n\nexport function InterfaceTooltipContent(props: {data: APIInterface}): React.ReactNode {\n  const {data} = props\n\n  return (\n    <>\n      <Box padding={3} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n        <Code\n          language=\"typescript\"\n          size={useTextSize([-1, 0, 1])}\n        >{`import {${data.name}} from '${data.export.name}'`}</Code>\n      </Box>\n\n      <Box padding={3} overflow=\"auto\">\n        <Code language=\"typescript\" size={useTextSize([-1, 0, 1])}>\n          {_compileInterfaceDefinition(data)}\n        </Code>\n      </Box>\n\n      {data.comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={data.comment} />\n        </CommentBox>\n      )}\n    </>\n  )\n}\n","import {APITypeAlias} from '@sanity/tsdoc'\nimport {Box, Code} from '@sanity/ui'\n\nimport {_compileTypeAliasDefinition} from '../../app/lib/_compile'\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {useTextSize} from '../../lib/ui'\n\nexport function TypeAliasTooltipContent(props: {data: APITypeAlias}): React.ReactNode {\n  const {data} = props\n\n  return (\n    <>\n      <Box padding={3} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n        <Code\n          language=\"typescript\"\n          size={useTextSize([-1, 0, 1])}\n        >{`import {${data.name}} from '${data.export.name}'`}</Code>\n      </Box>\n\n      <Box padding={3} overflow=\"auto\">\n        <Code language=\"typescript\" size={useTextSize([-1, 0, 1])}>\n          {_compileTypeAliasDefinition(data)}\n        </Code>\n      </Box>\n\n      {data.comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={data.comment} />\n        </CommentBox>\n      )}\n    </>\n  )\n}\n","import {APIVariable} from '@sanity/tsdoc'\nimport {Box, Code} from '@sanity/ui'\n\nimport {_compileVariableDefinition} from '../../app/lib/_compile'\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {useTextSize} from '../../lib/ui'\n\nexport function VariableTooltipContent(props: {data: APIVariable}): React.ReactNode {\n  const {data} = props\n\n  return (\n    <>\n      <Box padding={3} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n        <Code\n          language=\"typescript\"\n          size={useTextSize([-1, 0, 1])}\n        >{`import {${data.name}} from '${data.export.name}'`}</Code>\n      </Box>\n\n      <Box padding={3} overflow=\"auto\">\n        <Code language=\"typescript\" size={useTextSize([-1, 0, 1])}>\n          {_compileVariableDefinition(data)}\n        </Code>\n      </Box>\n\n      {data.comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={data.comment} />\n        </CommentBox>\n      )}\n    </>\n  )\n}\n","import {APIMember} from '@sanity/tsdoc'\nimport {Box, Text, Tooltip} from '@sanity/ui'\n\nimport {Level, Size, useTextSize} from '../lib/ui'\nimport {ClassTooltipContent} from './content/ClassTooltipContent'\nimport {EnumTooltipContent} from './content/EnumTooltipContent'\nimport {FunctionTooltipContent} from './content/FunctionTooltipContent'\nimport {InterfaceTooltipContent} from './content/InterfaceTooltipContent'\nimport {TypeAliasTooltipContent} from './content/TypeAliasTooltipContent'\nimport {VariableTooltipContent} from './content/VariableTooltipContent'\n\n/** @alpha */\nexport function ReferenceTooltip(props: {\n  children: React.ReactElement<any>\n  member: APIMember\n}): React.ReactNode {\n  const {children, member} = props\n\n  return (\n    <Tooltip\n      content={\n        <Size delta={-1}>\n          <Level>\n            <ReferenceTooltipContent data={member} />\n          </Level>\n        </Size>\n      }\n      placement=\"top\"\n      portal\n    >\n      {children}\n    </Tooltip>\n  )\n}\n\n/** @alpha */\nexport function ReferenceTooltipContent(props: {data: APIMember}): React.ReactNode {\n  const {data} = props\n  const textSize = useTextSize([-1, 0, 1])\n\n  if (data._type === 'api.class') {\n    return <ClassTooltipContent data={data} />\n  }\n\n  if (data._type === 'api.enum') {\n    return <EnumTooltipContent data={data} />\n  }\n\n  if (data._type === 'api.function') {\n    return <FunctionTooltipContent data={data} />\n  }\n\n  if (data._type === 'api.interface') {\n    return <InterfaceTooltipContent data={data} />\n  }\n\n  if (data._type === 'api.typeAlias') {\n    return <TypeAliasTooltipContent data={data} />\n  }\n\n  if (data._type === 'api.variable') {\n    return <VariableTooltipContent data={data} />\n  }\n\n  return (\n    <Box padding={3}>\n      <Text size={textSize}>\n        Unknown type: <code>{data._type}</code>\n      </Text>\n    </Box>\n  )\n}\n","import {APIToken} from '@sanity/tsdoc'\nimport {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {useMemo} from 'react'\n\nimport {useMemberLink} from '../app'\nimport {Size} from '../lib/ui'\nimport {ReferenceTooltip} from '../tooltip'\n\nexport function ApiToken(props: {deindent?: boolean; token: APIToken}): React.ReactNode {\n  const {deindent, token} = props\n  const text = token.text.replace(/History_2/g, 'History').replace(/React_2/g, 'React')\n\n  const params: TSDocAppParams | null = useMemo(\n    () =>\n      token.member && token.member.export\n        ? {\n            exportPath: token.member.export.path,\n            memberName: token.member.name,\n            packageScope: token.member.package.scope || null,\n            packageName: token.member.package.name,\n            releaseVersion: token.member.release.version,\n            memberSlug: token.member.slug.current,\n          }\n        : null,\n    [token.member],\n  )\n\n  const linkProps = useMemberLink({params})\n\n  if (!token.member || !params) {\n    return <>{deindent ? text.replace(/\\n\\s\\s/g, '\\n') : text}</>\n  }\n\n  return (\n    <Size delta={-1}>\n      <ReferenceTooltip member={token.member}>\n        <a {...linkProps}>{text}</a>\n      </ReferenceTooltip>\n    </Size>\n  )\n}\n","import {APIToken, SanityArrayItem} from '@sanity/tsdoc'\n\nimport {ApiToken} from './ApiToken'\n\nexport function CodeSnippet(props: {\n  data: SanityArrayItem<APIToken>[]\n  deindent?: boolean\n  prefix?: string\n  suffix?: string\n}): React.ReactNode {\n  const {data, deindent, prefix, suffix} = props\n\n  return (\n    <>\n      {prefix}\n      {data?.map((t) => <ApiToken deindent={deindent} key={t._key} token={t} />)}\n      {suffix}\n    </>\n  )\n}\n","import {APIToken, SanityArrayItem} from '@sanity/tsdoc'\nimport {Box, Code} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nimport {useTextSize} from '../lib/ui'\nimport {CodeSnippet} from './CodeSnippet'\n\nconst Root = styled(Box)`\n  position: relative;\n\n  & > pre:first-child {\n    position: absolute;\n    color: transparent;\n    inset: 0;\n\n    & a {\n      border-radius: 2px;\n      color: inherit;\n\n      &:hover {\n        background: var(--card-code-bg-color);\n      }\n    }\n  }\n\n  & > pre:last-child {\n    pointer-events: none;\n  }\n`\n\nexport function TSDocCode(props: {\n  deindent?: boolean\n  prefix?: string\n  suffix?: string\n  tokens: SanityArrayItem<APIToken>[]\n}): React.ReactNode {\n  const {deindent, prefix = '', suffix = '', tokens} = props\n\n  const code = (prefix + tokens.map((t) => t.text).join('') + suffix)\n    .replace(/History_2/g, 'History')\n    .replace(/React_2/g, 'React')\n    .replace(/Plugin_2/g, 'Plugin2')\n    .replace(/JSX_2/g, 'JSX')\n\n  return (\n    <Root>\n      <Code size={useTextSize([-1, -1, 0])}>\n        <CodeSnippet data={tokens} deindent={deindent} prefix={prefix} suffix={suffix} />\n      </Code>\n      <Code language=\"typescript\" size={useTextSize([-1, -1, 0])}>\n        {deindent ? code.replace(/\\n\\s\\s/g, '\\n') : code}\n      </Code>\n    </Root>\n  )\n}\n","export function _fontSize(fontSize: number, sizes: number[]): number[] {\n  return sizes.map((f) => Math.min(Math.max(f + (fontSize - 2), 0), 4))\n}\n\nexport function _space(fontSize: number, s: number | number[]): number | number[] {\n  if (Array.isArray(s)) return s.flatMap(_space)\n\n  return Math.max(Math.min(fontSize + s, 9), 0)\n}\n","import {Text} from '@sanity/ui'\n\nimport {_fontSize} from '../../helpers'\n\nexport function MemberInheritedFrom(props: {\n  data: {name: string; slug?: string}\n  fontSize?: number\n}): React.ReactNode {\n  const {data, fontSize = 2} = props\n\n  return (\n    <Text as=\"p\" muted size={_fontSize(fontSize, [1, 1, 2])}>\n      Inherited from{' '}\n      {data.slug && (\n        <code>\n          <a>{data.name}</a>\n        </code>\n      )}\n      {!data.slug && <code>{data.name}</code>}.\n    </Text>\n  )\n}\n","import {Text} from '@sanity/ui'\nimport {memo} from 'react'\nimport {styled} from 'styled-components'\n\nexport const ReleaseBadgeTextWrapper = memo(styled(Text)`\n  white-space: pre-line;\n`)\n","import {InfoOutlineIcon} from '@sanity/icons'\nimport {APIReleaseTag} from '@sanity/tsdoc'\nimport {Box, Card, CardTone, Flex, Text, Tooltip} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {useTextSize} from '../lib/ui'\nimport {ReleaseBadgeTextWrapper} from './ReleaseBadgeTextWrapper'\nimport {UnformattedCode} from './UnformattedCode'\n\nexport function ReleaseBadge(props: {\n  padding?: number\n  radius?: number\n  releaseTag?: APIReleaseTag\n}): React.ReactNode {\n  const {padding = 1, radius = 2, releaseTag} = props\n\n  const releaseTone: CardTone = useMemo(() => {\n    if (releaseTag === 'alpha') return 'primary'\n    if (releaseTag === 'beta') return 'caution'\n    if (releaseTag === 'public') return 'positive'\n\n    return 'primary'\n  }, [releaseTag])\n\n  const explanation: string = useMemo(() => {\n    if (releaseTag === 'alpha' || releaseTag === 'experimental')\n      return `The API is in very early stages of development. Breaking changes are not only expected but very likely.\\n We strongly recommend against using it in a production environment.`\n    if (releaseTag === 'beta')\n      return `The API is in a testing phase and is considered immature. Breaking changes are expected.\\n We don't recommend using it in a production environment.`\n    if (releaseTag === 'public') return 'The API is public and stable.'\n\n    return 'primary'\n  }, [releaseTag])\n\n  return (\n    <>\n      <Card padding={padding} radius={radius} tone={releaseTone}>\n        <Text muted size={useTextSize([-1, -1, 0])}>\n          <Flex align={'center'} gap={2}>\n            <UnformattedCode>{`@${releaseTag || 'public'}`}</UnformattedCode>\n\n            <Text muted size={0}>\n              <Tooltip\n                content={\n                  <Box padding={2} sizing=\"content\">\n                    <ReleaseBadgeTextWrapper muted size={1}>\n                      {explanation}\n                    </ReleaseBadgeTextWrapper>\n                  </Box>\n                }\n                fallbackPlacements={['bottom', 'top', 'left']}\n                placement=\"right\"\n                portal\n              >\n                <InfoOutlineIcon />\n              </Tooltip>\n            </Text>\n          </Flex>\n        </Text>\n      </Card>\n    </>\n  )\n}\n","import {Box} from '@sanity/ui'\n\nimport {APIReleaseTag, TSDocComment} from '../../../core'\nimport {ReleaseBadge} from '../../components/ReleaseBadge'\n\nexport function TSMemberReleaseTag(props: {\n  releaseTag?: APIReleaseTag\n  comment?: TSDocComment\n  hidePublicTag?: boolean\n}): React.ReactNode | null {\n  const {releaseTag, comment, hidePublicTag} = props\n  const hasExperimentalTag = comment?.modifierTags?.find((tag) => tag.name === '@experimental')\n\n  if (!hasExperimentalTag && hidePublicTag) {\n    return null\n  }\n\n  return (\n    <Box flex=\"none\">\n      <ReleaseBadge padding={0} releaseTag={hasExperimentalTag ? 'experimental' : releaseTag} />\n    </Box>\n  )\n}\n","import {Box, Card, Code, Flex, Label, Stack} from '@sanity/ui'\n\nimport {APICallSignature} from '../../../core'\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {TSDocCode} from '../TSDocCode'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSCallSignatureMember(props: {\n  data: APIMemberWithInheritance<APICallSignature>\n  // fontSize?: number\n  // level?: number\n}): React.ReactNode {\n  const {\n    data,\n    // fontSize = 2, level = 1\n  } = props\n  const {comment, parameters, releaseTag} = data\n\n  return (\n    <Card border overflow=\"hidden\" tone={comment?.deprecated ? 'critical' : 'inherit'}>\n      <Flex align=\"flex-start\" gap={1} padding={2}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} />\n\n        <Box flex={1}>\n          <Code\n            // as={`h${level}` as any}\n            language=\"ts\"\n            // size={_fontSize(fontSize, [1, 1, 2])}\n          >\n            {data.parameters?.map((p) => p.name).join(', ')}\n          </Code>\n        </Box>\n      </Flex>\n\n      {comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={comment} />\n        </CommentBox>\n      )}\n\n      {data.inheritedFrom && (\n        <Box marginTop={3}>\n          <MemberInheritedFrom data={data.inheritedFrom} />\n        </Box>\n      )}\n\n      {/* Parameters */}\n      {parameters && parameters.length > 0 && (\n        <Card borderTop overflow=\"auto\" padding={4} tone=\"inherit\">\n          <Label\n            muted\n            // size={_fontSize(fontSize, [1, 1, 2])}\n          >\n            Parameters\n          </Label>\n\n          <Stack marginTop={4} space={3}>\n            {data.parameters.map((param) => (\n              <TSDocCode deindent key={param._key} prefix={`${param.name}: `} tokens={param.type} />\n            ))}\n          </Stack>\n        </Card>\n      )}\n\n      {data.returnType && (\n        <Card borderTop overflow=\"auto\" padding={4} tone=\"inherit\">\n          <Label\n            muted\n            // size={_fontSize(fontSize, [1, 1, 2])}\n          >\n            Return type\n          </Label>\n\n          <Box marginTop={4}>\n            <TSDocCode deindent tokens={data.returnType} />\n          </Box>\n        </Card>\n      )}\n    </Card>\n  )\n}\n","import {APIConstructor, APIMember} from '@sanity/tsdoc'\nimport {Box, Card, Code, Flex, Label, Stack} from '@sanity/ui'\n\nimport {CommentBox, CommentSummary} from '../../comment'\n// import {useSize} from '../../lib/ui'\nimport {TSDocCode} from '../TSDocCode'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSContructorMember(props: {\n  data: APIMemberWithInheritance<APIConstructor>\n  member: APIMember\n}): React.ReactNode {\n  const {data, member} = props\n  const {comment, parameters, releaseTag} = data\n  // const fontSize = useSize()\n\n  const title = `new ${member.name}(${parameters.map((p) => p.name).join(', ') || ''})`\n\n  return (\n    <Card\n      border\n      overflow=\"hidden\"\n      padding={4}\n      radius={3}\n      tone={comment?.deprecated ? 'critical' : 'inherit'}\n    >\n      <Flex align=\"flex-start\" gap={1}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} />\n\n        <Box flex={1} paddingBottom={4}>\n          <Code language=\"ts\">{title}</Code>\n        </Box>\n      </Flex>\n\n      {comment?.summary && (\n        <CommentBox>\n          <CommentSummary data={comment} />\n        </CommentBox>\n      )}\n\n      {data.inheritedFrom && (\n        <Box padding={3}>\n          <MemberInheritedFrom data={data.inheritedFrom} />\n        </Box>\n      )}\n\n      {/* Parameters */}\n      {parameters && parameters.length > 0 && (\n        <Card borderTop overflow=\"auto\" padding={4} tone=\"inherit\">\n          <Label muted>Parameters</Label>\n\n          <Stack marginTop={4} space={3}>\n            {data.parameters.map((param) => (\n              <TSDocCode deindent key={param._key} prefix={`${param.name}: `} tokens={param.type} />\n            ))}\n          </Stack>\n        </Card>\n      )}\n    </Card>\n  )\n}\n","import {APIConstructSignature} from '@sanity/tsdoc'\nimport {Box, Card, Code, Flex} from '@sanity/ui'\n\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSConstructSignatureMember(props: {\n  data: APIMemberWithInheritance<APIConstructSignature>\n}): React.ReactNode {\n  const {data} = props\n  const {comment, inheritedFrom, releaseTag} = data\n\n  return (\n    <Card border overflow=\"auto\" radius={3}>\n      <Flex align=\"flex-start\" gap={1} padding={3}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} />\n\n        <Box flex=\"none\">\n          <Code as=\"h3\" language=\"ts\">\n            TODO: TSConstructSignatureMember\n          </Code>\n        </Box>\n      </Flex>\n\n      {comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={comment} />\n        </CommentBox>\n      )}\n\n      {inheritedFrom && (\n        <Box marginTop={3}>\n          <MemberInheritedFrom data={inheritedFrom} />\n        </Box>\n      )}\n    </Card>\n  )\n}\n","import {APIEnumMember} from '@sanity/tsdoc'\nimport {Box, Card, Code, Flex} from '@sanity/ui'\n\nimport {ReleaseBadge} from '../../components/ReleaseBadge'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\n\nexport function TSEnumMember(props: {\n  data: APIMemberWithInheritance<APIEnumMember>\n  level?: number\n}): React.ReactNode {\n  const {data} = props\n\n  return (\n    <Card border overflow=\"auto\" radius={3}>\n      <Flex align=\"flex-start\" gap={1} padding={3}>\n        <Box flex=\"none\">\n          <ReleaseBadge releaseTag={data.releaseTag} />\n        </Box>\n\n        <Box flex=\"none\">\n          <Code as=\"h3\" language=\"ts\">\n            {data.name}\n          </Code>\n        </Box>\n      </Flex>\n\n      {data.inheritedFrom && (\n        <Box marginTop={3}>\n          <MemberInheritedFrom data={data.inheritedFrom} />\n        </Box>\n      )}\n    </Card>\n  )\n}\n","import {APIIndexSignature} from '@sanity/tsdoc'\nimport {Box, Card, Code, Flex} from '@sanity/ui'\n\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSIndexSignatureMember(props: {\n  data: APIMemberWithInheritance<APIIndexSignature>\n  fontSize?: number\n  level?: number\n}): React.ReactNode {\n  const {data} = props\n  const {comment, releaseTag} = data\n\n  return (\n    <Card border overflow=\"auto\" radius={3}>\n      <Flex align=\"flex-start\" gap={1} padding={3}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} />\n\n        <Box flex=\"none\">\n          <Code as=\"h3\" language=\"ts\">\n            TODO\n          </Code>\n        </Box>\n      </Flex>\n\n      {data.inheritedFrom && (\n        <Box marginTop={3}>\n          <MemberInheritedFrom data={data.inheritedFrom} />\n        </Box>\n      )}\n    </Card>\n  )\n}\n","import {APIMember, APIMethod} from '@sanity/tsdoc'\nimport {Box, Card, Code, Flex, Label, Stack} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {CommentBox, CommentReturnType, CommentSummary} from '../../comment'\nimport {PortableText} from '../../comment/PortableText'\nimport {TSDocCode} from '../TSDocCode'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSMethodMember(props: {\n  data: APIMemberWithInheritance<APIMethod>\n  member: APIMember\n}): React.ReactNode {\n  const {data, member} = props\n  const {comment, releaseTag} = data\n\n  const title = useMemo(() => {\n    let t = data.isStatic ? `${member.name}.` : ''\n\n    t += `${data.name}(`\n    t += data.parameters?.map((p) => p.name).join(', ') || ''\n    t += `)`\n\n    return t\n  }, [data, member])\n\n  return (\n    <Card\n      border\n      overflow=\"auto\"\n      radius={3}\n      padding={4}\n      tone={comment?.deprecated ? 'critical' : 'inherit'}\n    >\n      <Flex align=\"flex-start\" gap={1}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} hidePublicTag />\n\n        <Box flex=\"none\" paddingBottom={4}>\n          <Code as=\"h3\" language=\"ts\">\n            {title}\n          </Code>\n        </Box>\n      </Flex>\n\n      {comment?.summary && (\n        <CommentBox>\n          <CommentSummary data={comment} />\n        </CommentBox>\n      )}\n\n      {data.inheritedFrom && (\n        <Card borderTop padding={3} tone=\"inherit\">\n          <MemberInheritedFrom data={data.inheritedFrom} />\n        </Card>\n      )}\n\n      {/* Parameters */}\n      {data.parameters && data.parameters.length > 0 && (\n        <Card borderTop padding={4} marginTop={4} tone=\"inherit\">\n          <Box marginBottom={4}>\n            <Label muted>Parameters</Label>\n          </Box>\n\n          <Stack space={3}>\n            {data.parameters.map((param, idx) => {\n              const paramComment = comment?.parameters?.[idx]?.content\n\n              return (\n                <Card\n                  paddingY={4}\n                  borderBottom={data.parameters.length - 1 !== idx}\n                  key={param._key}\n                >\n                  <Stack space={3}>\n                    <TSDocCode\n                      deindent\n                      prefix={`${param.name}${param.isOptional ? '?' : ''}: `}\n                      tokens={param.type}\n                    />\n                    {paramComment && (\n                      <CommentBox>\n                        <PortableText blocks={paramComment} />\n                      </CommentBox>\n                    )}\n                  </Stack>\n                </Card>\n              )\n            })}\n          </Stack>\n        </Card>\n      )}\n      {/* Return type */}\n      {data.returnType && data.returnType.length > 0 && (\n        <Card borderTop padding={4} tone=\"inherit\">\n          <Box marginBottom={4}>\n            <Label muted>Returns</Label>\n          </Box>\n\n          <Stack space={3}>\n            <TSDocCode deindent tokens={data.returnType} />\n\n            {comment && (\n              <CommentBox>\n                <CommentReturnType data={comment} />\n              </CommentBox>\n            )}\n          </Stack>\n        </Card>\n      )}\n    </Card>\n  )\n}\n","import {APIMember, APIMethodSignature} from '@sanity/tsdoc'\nimport {Box, Card, Code, Flex, Label, Stack} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {TSDocCode} from '../TSDocCode'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSMethodSignatureMember(props: {\n  data: APIMemberWithInheritance<APIMethodSignature>\n  member: APIMember\n}): React.ReactNode {\n  const {data, member} = props\n  const {comment, releaseTag} = data\n\n  const title = useMemo(() => {\n    let t = member.name as string\n\n    t += `${data.name}(`\n    t += data.parameters?.map((p) => p.name).join(', ') || ''\n    t += `)`\n\n    return t\n  }, [data, member])\n\n  return (\n    <Card border overflow=\"hidden\" radius={3} tone={comment?.deprecated ? 'critical' : 'inherit'}>\n      <Flex gap={1} padding={2}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} />\n\n        <Box flex=\"none\">\n          <Code\n            // as={`h${level}` as any}\n            language=\"ts\"\n            style={{fontWeight: 700, whiteSpace: 'nowrap'}}\n          >\n            {title}\n          </Code>\n        </Box>\n      </Flex>\n\n      {comment?.summary && (\n        <CommentBox padding={3}>\n          <CommentSummary data={comment} />\n        </CommentBox>\n      )}\n\n      {data.inheritedFrom && (\n        <Box marginTop={3}>\n          <MemberInheritedFrom data={data.inheritedFrom} />\n        </Box>\n      )}\n\n      {/* Parameters */}\n      {data.parameters && data.parameters.length > 0 && (\n        <Card overflow=\"auto\" padding={4} tone=\"inherit\">\n          <Box marginBottom={4}>\n            <Label>Parameters</Label>\n          </Box>\n\n          <Stack space={3}>\n            {data.parameters.map((param) => (\n              <TSDocCode deindent key={param._key} prefix={`${param.name}: `} tokens={param.type} />\n            ))}\n          </Stack>\n        </Card>\n      )}\n    </Card>\n  )\n}\n","import {APIProperty} from '@sanity/tsdoc'\nimport {Box, Card, Flex} from '@sanity/ui'\n\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {TSDocCode} from '../TSDocCode'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSPropertyMember(props: {\n  data: APIMemberWithInheritance<APIProperty>\n}): React.ReactNode {\n  const {data} = props\n  const {\n    comment,\n    inheritedFrom,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    isEventProperty: _isEventProperty,\n    isOptional,\n    isStatic,\n    name,\n    type,\n    releaseTag,\n  } = data\n\n  return (\n    <Card\n      border\n      overflow=\"hidden\"\n      radius={3}\n      padding={4}\n      tone={comment?.deprecated ? 'critical' : 'inherit'}\n    >\n      <Flex align=\"flex-start\" gap={1}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} hidePublicTag />\n\n        <Box flex={1} paddingBottom={4}>\n          <TSDocCode\n            prefix={`${isStatic ? 'static ' : ''}${name}${isOptional ? '?' : ''}: `}\n            tokens={type}\n          />\n        </Box>\n      </Flex>\n\n      {comment && (\n        <CommentBox>\n          <CommentSummary data={comment} />\n        </CommentBox>\n      )}\n\n      {inheritedFrom && (\n        <Card borderTop padding={3} tone=\"inherit\">\n          <MemberInheritedFrom data={inheritedFrom} />\n        </Card>\n      )}\n    </Card>\n  )\n}\n","import {APIPropertySignature} from '@sanity/tsdoc'\nimport {Box, Card, Flex} from '@sanity/ui'\n\nimport {CommentBox, CommentSummary} from '../../comment'\nimport {Size} from '../../lib/ui'\nimport {TSDocCode} from '../TSDocCode'\nimport {APIMemberWithInheritance} from './_types'\nimport {MemberInheritedFrom} from './MemberInheritedFrom'\nimport {TSMemberReleaseTag} from './TSMemberReleaseTag'\n\nexport function TSPropertySignatureMember(props: {\n  data: APIMemberWithInheritance<APIPropertySignature>\n}): React.ReactNode {\n  const {data} = props\n  const {comment, inheritedFrom, isOptional, name, type, releaseTag} = data\n\n  return (\n    <Card border overflow=\"auto\" padding={4} radius={3} tone=\"inherit\">\n      <Flex align=\"flex-start\" gap={1}>\n        <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} hidePublicTag />\n        <Box flex=\"none\">\n          <TSDocCode deindent prefix={`${name}${isOptional ? '?' : ''}: `} tokens={type} />\n        </Box>\n      </Flex>\n\n      {comment?.summary && (\n        <Size delta={-1}>\n          <CommentBox paddingTop={4}>\n            {/* TODO: CommentDeprecatedCallout */}\n            <CommentSummary data={comment} />\n            {/* TODO: CommentRemarks */}\n            {/* TODO: CommentExampleBlocks */}\n          </CommentBox>\n        </Size>\n      )}\n\n      {inheritedFrom && (\n        <Card borderTop marginTop={3} paddingTop={3} tone=\"inherit\">\n          <MemberInheritedFrom data={inheritedFrom} />\n        </Card>\n      )}\n    </Card>\n  )\n}\n","import {APIMember} from '@sanity/tsdoc'\nimport {Card, Stack, Text} from '@sanity/ui'\n\nimport {useSpace, useTextSize} from '../../lib/ui'\nimport {APIMemberWithInheritance} from './_types'\nimport {TSCallSignatureMember} from './TSCallSignatureMember'\nimport {TSContructorMember} from './TSConstructorMember'\nimport {TSConstructSignatureMember} from './TSConstructSignatureMember'\nimport {TSEnumMember} from './TSEnumMember'\nimport {TSIndexSignatureMember} from './TSIndexSignatureMember'\nimport {TSMethodMember} from './TSMethodMember'\nimport {TSMethodSignatureMember} from './TSMethodSignatureMember'\nimport {TSPropertyMember} from './TSPropertyMember'\nimport {TSPropertySignatureMember} from './TSPropertySignatureMember'\n\nexport function Members(props: {\n  data: APIMemberWithInheritance[]\n  member: APIMember\n}): React.ReactNode {\n  const {data, member} = props\n\n  return (\n    <Stack marginTop={useSpace([1, 1, 3])} space={useSpace([1, 2, 3])}>\n      {data.map((m) => (\n        <Member data={m} key={m._key} member={member} />\n      ))}\n    </Stack>\n  )\n}\n\nfunction Member(props: {data: APIMemberWithInheritance; member: APIMember}) {\n  const {data, member} = props\n  const textSize = useTextSize([-1, 0, 1])\n\n  if (data._type === 'api.callSignature') {\n    return <TSCallSignatureMember data={data} />\n  }\n\n  if (data._type === 'api.constructor') {\n    return <TSContructorMember data={data} member={member} />\n  }\n\n  if (data._type === 'api.method') {\n    return <TSMethodMember data={data} member={member} />\n  }\n\n  if (data._type === 'api.property') {\n    return <TSPropertyMember data={data} />\n  }\n\n  if (data._type === 'api.propertySignature') {\n    return <TSPropertySignatureMember data={data} />\n  }\n\n  if (data._type === 'api.methodSignature') {\n    return <TSMethodSignatureMember data={data} member={member} />\n  }\n\n  if (data._type === 'api.constructSignature') {\n    return <TSConstructSignatureMember data={data} />\n  }\n\n  if (data._type === 'api.indexSignature') {\n    return <TSIndexSignatureMember data={data} />\n  }\n\n  if (data._type === 'api.enumMember') {\n    return <TSEnumMember data={data} />\n  }\n\n  return (\n    <Card padding={4} radius={2} tone=\"critical\">\n      <Text size={textSize}>\n        Unexpected member type: <code>{data._type}</code>\n      </Text>\n    </Card>\n  )\n}\n","import {APIClass, APIConstructor, APIMethod, APIProperty, SanityArrayItem} from '@sanity/tsdoc'\nimport {Box} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {CommentRemarks} from '../../comment'\nimport {H} from '../../lib/ui'\nimport {Members} from '../members'\nimport {_getMembers} from '../members/helpers'\n\nfunction useMembers(data: APIClass) {\n  return useMemo(() => {\n    const members = _getMembers(data) as APIClass['members']\n\n    const ret: {\n      constructors: SanityArrayItem<APIConstructor>[]\n      methods: SanityArrayItem<APIMethod>[]\n      properties: SanityArrayItem<APIProperty>[]\n      staticMethods: SanityArrayItem<APIMethod>[]\n    } = {\n      constructors: [],\n      methods: [],\n      properties: [],\n      staticMethods: [],\n    }\n\n    for (const m of members) {\n      if (m._type === 'api.constructor') {\n        ret.constructors.push(m)\n      } else if (m._type === 'api.method') {\n        if (m.isStatic) {\n          ret.staticMethods.push(m)\n        } else {\n          ret.methods.push(m)\n        }\n      } else if (m._type === 'api.property') {\n        ret.properties.push(m)\n      } else {\n        // eslint-disable-next-line\n        console.log('unknown member type:', (m as any)._type)\n      }\n    }\n\n    return ret\n  }, [data])\n}\n\nexport function ClassContent(props: {data: APIClass}): React.ReactNode {\n  const {data} = props\n  const {comment} = data\n  const {constructors, methods, properties, staticMethods} = useMembers(data)\n\n  return (\n    <>\n      {comment?.remarks?.content && (\n        <Box marginTop={6}>\n          <CommentRemarks data={comment} />\n        </Box>\n      )}\n\n      {/* <Referrers data={referrers} /> */}\n\n      {constructors.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Constructor</H>\n          <Members data={constructors} member={data} />\n        </>\n      )}\n\n      {properties.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Properties</H>\n          <Members data={properties} member={data} />\n        </>\n      )}\n\n      {staticMethods.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Static methods</H>\n          <Members data={staticMethods} member={data} />\n        </>\n      )}\n\n      {methods.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Methods</H>\n          <Members data={methods} member={data} />\n        </>\n      )}\n    </>\n  )\n}\n","import {APIFunction} from '@sanity/tsdoc'\nimport {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {Box, Card, Stack} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {TSDocSymbol, TSDocSymbolPreview} from '../../app'\nimport {CommentExampleBlocks, CommentRemarks, CommentReturnType} from '../../comment'\nimport {H, P} from '../../lib/ui'\nimport {Members} from '../members'\nimport {_getMembers} from '../members/helpers'\nimport {TSDocCode} from '../TSDocCode'\n\nexport function FunctionContent(props: {data: APIFunction}): React.ReactNode {\n  const {data} = props\n\n  const {comment, name, parameters, propsType, returnType, typeParameters} = data\n\n  const propsTypeMembers = useMemo(() => propsType && _getMembers(propsType), [propsType])\n\n  const codePrefix = useMemo(\n    () =>\n      [\n        `function ${name}`,\n        typeParameters.length > 0\n          ? `<${typeParameters\n              .map((p) => {\n                let n = p.name\n\n                if (p.constraintType && p.constraintType.length > 0) {\n                  n = `${n} extends ${p.constraintType.map((t) => t.text).join('')}`\n                }\n\n                if (p.defaultType.length > 0) {\n                  n = `${n} = ${p.defaultType.map((t) => t.text).join('')}`\n                }\n\n                return n\n              })\n              .join(', ')}>`\n          : '',\n        `(${parameters\n          .map((param) => `${param.name}: ${param.type.map((t) => t.text).join('')}`)\n          .join(', ')}): `,\n      ].join(''),\n    [name, parameters, typeParameters],\n  )\n\n  const propsTypeLinkParams: TSDocAppParams | null = useMemo(\n    () =>\n      propsType?.export?.path &&\n      propsType?.package?.name &&\n      propsType?.name &&\n      propsType.release?.version\n        ? {\n            exportPath: propsType.export.path,\n            packageName: propsType.package.name,\n            packageScope: propsType.package.scope || null,\n            memberName: propsType.name,\n            releaseVersion: propsType.release.version,\n          }\n        : null,\n    [propsType],\n  )\n\n  return (\n    <>\n      <H size={[-1, 0, 1, 2]}>Signature</H>\n\n      <Card border padding={4} radius={3} overflow=\"auto\" tone=\"inherit\">\n        <TSDocCode prefix={codePrefix} tokens={returnType} />\n      </Card>\n\n      {propsType && propsTypeLinkParams && propsTypeMembers && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Props</H>\n\n          <P muted size={[-1, 0, 1]}>\n            Defined by the{' '}\n            <span\n              style={{\n                display: 'inline-flex',\n                verticalAlign: 'middle',\n                position: 'relative',\n              }}\n            >\n              <TSDocSymbol border name={propsType.name} padding={2} radius={3} />\n            </span>{' '}\n            interface.\n          </P>\n\n          {propsTypeMembers.length > 0 && <Members data={propsTypeMembers} member={data} />}\n\n          {propsTypeMembers.length === 0 && (\n            <>\n              <TSDocSymbolPreview name={propsType.name} />\n              <P muted size={[-1, 0, 1]}>\n                <em>No members.</em>\n              </P>\n            </>\n          )}\n        </>\n      )}\n\n      {returnType.length > 0 ? (\n        <>\n          <H size={[-1, 0, 1, 2]}>Returns</H>\n          <Card\n            border\n            overflow=\"hidden\"\n            padding={4}\n            radius={3}\n            tone={comment?.deprecated ? 'critical' : 'inherit'}\n          >\n            <Stack space={4}>\n              <Box>\n                <TSDocCode tokens={returnType} />\n              </Box>\n              {comment && <CommentReturnType data={comment} />}\n            </Stack>\n          </Card>\n        </>\n      ) : null}\n\n      {comment && <CommentRemarks data={comment} />}\n      {comment && <CommentExampleBlocks data={comment} />}\n    </>\n  )\n}\n","import {\n  APICallSignature,\n  APIConstructSignature,\n  APIIndexSignature,\n  APIInterface,\n  APIMethodSignature,\n  APIPropertySignature,\n  SanityArrayItem,\n} from '@sanity/tsdoc'\nimport {Card, Code} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {_compileInterfaceDefinition} from '../../app/lib/_compile'\nimport {CommentExampleBlocks, CommentRemarks} from '../../comment'\nimport {H, useTextSize} from '../../lib/ui'\nimport {Members} from '../members'\nimport {_getMembers} from '../members/helpers'\n\nfunction useMembers(data: APIInterface) {\n  return useMemo(() => {\n    const members = _getMembers(data) as APIInterface['members']\n\n    const ret: {\n      callSignatures: SanityArrayItem<APICallSignature>[]\n      constructSignatures: SanityArrayItem<APIConstructSignature>[]\n      indexSignatures: SanityArrayItem<APIIndexSignature>[]\n      methodSignatures: SanityArrayItem<APIMethodSignature>[]\n      propertySignatures: SanityArrayItem<APIPropertySignature>[]\n    } = {\n      callSignatures: [],\n      constructSignatures: [],\n      indexSignatures: [],\n      methodSignatures: [],\n      propertySignatures: [],\n    }\n\n    for (const m of members) {\n      if (m._type === 'api.callSignature') {\n        ret.callSignatures.push(m)\n      } else if (m._type === 'api.constructSignature') {\n        ret.constructSignatures.push(m)\n      } else if (m._type === 'api.indexSignature') {\n        ret.indexSignatures.push(m)\n      } else if (m._type === 'api.methodSignature') {\n        ret.methodSignatures.push(m)\n      } else if (m._type === 'api.propertySignature') {\n        ret.propertySignatures.push(m)\n      } else {\n        // eslint-disable-next-line\n        console.log('WARN: unknown member type:', (m as any)._type)\n      }\n    }\n\n    return ret\n  }, [data])\n}\n\nexport function InterfaceContent(props: {data: APIInterface}): React.ReactNode {\n  const {data} = props\n  const {comment} = data\n\n  const {\n    callSignatures,\n    constructSignatures,\n    indexSignatures,\n    methodSignatures,\n    propertySignatures,\n  } = useMembers(data)\n\n  return (\n    <>\n      <H size={[-1, 0, 1, 2]}>Signature</H>\n      <Card border overflow=\"auto\" padding={4} radius={3}>\n        <Code language=\"typescript\" size={useTextSize([-1, -1, 0])}>\n          {_compileInterfaceDefinition(data)}\n        </Code>\n      </Card>\n\n      {constructSignatures.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Construct signatures</H>\n          <Members data={constructSignatures} member={data} />\n        </>\n      )}\n\n      {callSignatures.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Call signatures</H>\n          <Members data={callSignatures} member={data} />\n        </>\n      )}\n\n      {indexSignatures.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Index signatures</H>\n          <Members data={indexSignatures} member={data} />\n        </>\n      )}\n\n      {methodSignatures.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Call signatures</H>\n          <Members data={methodSignatures} member={data} />\n        </>\n      )}\n\n      {propertySignatures.length > 0 && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Properties</H>\n          <Members data={propertySignatures} member={data} />\n        </>\n      )}\n\n      {comment && <CommentRemarks data={comment} />}\n      {comment && <CommentExampleBlocks data={comment} />}\n    </>\n  )\n}\n","import {APINamespace} from '@sanity/tsdoc'\nimport {Stack} from '@sanity/ui'\n\nimport {CommentExampleBlocks, CommentRemarks} from '../../comment'\nimport {H} from '../../lib/ui'\nimport {Members} from '../members'\n\nexport function NamespaceContent(props: {\n  data: APINamespace\n  fontSize?: number\n  level?: number\n}): React.ReactNode {\n  const {data} = props\n  const {comment, members} = data\n\n  return (\n    <Stack>\n      <Stack marginTop={6} space={4}>\n        <H>Members</H>\n        <Members data={members} member={data} />\n      </Stack>\n\n      {comment && <CommentRemarks data={comment} />}\n      {comment && <CommentExampleBlocks data={comment} />}\n    </Stack>\n  )\n}\n","import {APITypeAlias} from '@sanity/tsdoc'\nimport {Card} from '@sanity/ui'\n\nimport {_compileTypeParameters} from '../../app/lib/_compile'\nimport {CommentExampleBlocks, CommentRemarks} from '../../comment'\nimport {H} from '../../lib/ui'\nimport {TSDocCode} from '../TSDocCode'\n\nexport function TypeAliasContent(props: {data: APITypeAlias}): React.ReactNode {\n  const {data} = props\n  const {comment, name, type, typeParameters = []} = data\n\n  return (\n    <>\n      {type && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Signature</H>\n\n          <Card border overflow=\"auto\" padding={4} radius={3} tone=\"inherit\">\n            <TSDocCode\n              prefix={`type ${name}${_compileTypeParameters(typeParameters)} = `}\n              tokens={type}\n            />\n          </Card>\n        </>\n      )}\n\n      {comment && <CommentRemarks data={comment} />}\n\n      {comment && <CommentExampleBlocks data={comment} />}\n    </>\n  )\n}\n","import {Box, Card, Stack, Text} from '@sanity/ui'\n\nimport type {TSDocParamBlock} from '../../../core'\nimport {CommentBox} from '../../comment'\nimport {PortableText} from '../../comment/PortableText'\nimport {useSpace, useTextSize} from '../../lib/ui'\n\nexport function TSVariableParamMember(props: {data: TSDocParamBlock}): React.ReactNode {\n  const {data} = props\n  const {content, name} = data\n\n  const textSize = useTextSize([-1, -1, 0])\n\n  return (\n    <Stack marginTop={useSpace([1, 1, 3])} space={useSpace([1, 2, 3])}>\n      <Card border overflow=\"hidden\" radius={3} padding={4}>\n        <Box paddingBottom={4}>\n          <Text size={textSize} muted weight=\"semibold\">\n            {name}\n          </Text>\n        </Box>\n\n        {content && (\n          <CommentBox>\n            <PortableText blocks={content} />\n          </CommentBox>\n        )}\n      </Card>\n    </Stack>\n  )\n}\n","import {APIVariable} from '@sanity/tsdoc'\nimport {Box, Card, Label, Text} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {TSDocSymbol} from '../../app'\nimport {CommentDeprecatedCallout, CommentExampleBlocks, CommentRemarks} from '../../comment'\nimport {H, P} from '../../lib/ui'\nimport {CodeSnippet} from '../CodeSnippet'\nimport {Members} from '../members'\nimport {_getMembers} from '../members/helpers'\nimport {TSVariableParamMember} from '../members/TSVariableParamMember'\nimport {TSDocCode} from '../TSDocCode'\n\nexport function VariableContent(props: {data: APIVariable}): React.ReactNode {\n  const {data} = props\n  const {comment, isReactComponentType, propsType, type} = data\n  const {parameters = []} = comment || {}\n\n  const propsTypeMembers = useMemo(\n    () => (isReactComponentType && propsType ? _getMembers(propsType) : undefined),\n    [isReactComponentType, propsType],\n  )\n\n  return (\n    <>\n      {comment && <CommentDeprecatedCallout data={comment} />}\n\n      {isReactComponentType && (\n        <>\n          <H size={[-1, 0, 1, 2]}>Signature</H>\n          <Card border padding={4} radius={3} overflow=\"auto\" tone=\"inherit\">\n            <TSDocCode tokens={type} />\n          </Card>\n        </>\n      )}\n\n      {propsType && (\n        <Box marginTop={5}>\n          <H size={[-1, 0, 1, 2]}>Props</H>\n\n          <P muted size={[-1, 0, 1]}>\n            Defined by the{' '}\n            <span\n              style={{\n                display: 'inline-flex',\n                verticalAlign: 'middle',\n                position: 'relative',\n              }}\n            >\n              <TSDocSymbol border name={propsType.name} padding={2} radius={3} />\n            </span>{' '}\n            interface.\n          </P>\n\n          {propsTypeMembers && (\n            <>\n              {propsTypeMembers.length > 0 && <Members data={propsTypeMembers} member={data} />}\n\n              {propsTypeMembers.length === 0 && (\n                <P muted size={[-1, 0, 1]}>\n                  <em>No members.</em>\n                </P>\n              )}\n            </>\n          )}\n        </Box>\n      )}\n\n      {parameters.length > 0 ? (\n        <>\n          <H size={[-1, 0, 1, 2]}>Parameters</H>\n          {parameters.map((param) => (\n            <TSVariableParamMember data={param} key={param._key} />\n          ))}\n        </>\n      ) : null}\n\n      {!isReactComponentType && type && (\n        <Card border marginTop={5} overflow=\"auto\" padding={4} radius={3} tone=\"inherit\">\n          <Box marginBottom={4}>\n            <Label muted weight=\"semibold\">\n              Type\n            </Label>\n          </Box>\n\n          <Text muted>\n            <CodeSnippet data={type} />\n          </Text>\n        </Card>\n      )}\n\n      {comment && <CommentRemarks data={comment} />}\n      {comment && <CommentExampleBlocks data={comment} />}\n    </>\n  )\n}\n","import {APIMember} from '@sanity/tsdoc'\nimport {Code} from '@sanity/ui'\n\nimport {useTextSize} from '../../lib/ui'\nimport {ClassContent} from './ClassContent'\nimport {FunctionContent} from './FunctionContent'\nimport {InterfaceContent} from './InterfaceContent'\nimport {NamespaceContent} from './NamespaceContent'\nimport {TypeAliasContent} from './TypeAliasContent'\nimport {VariableContent} from './VariableContent'\n\nexport function ReferenceContent(props: {data: APIMember}): React.ReactNode {\n  const {data} = props\n  const textSize = useTextSize([1, 1, 2])\n\n  if (data._type === 'api.class') {\n    return <ClassContent data={data} />\n  }\n\n  if (data._type === 'api.function') {\n    return <FunctionContent data={data} />\n  }\n\n  if (data._type === 'api.interface') {\n    return <InterfaceContent data={data} />\n  }\n\n  if (data._type === 'api.namespace') {\n    return <NamespaceContent data={data} />\n  }\n\n  if (data._type === 'api.typeAlias') {\n    return <TypeAliasContent data={data} />\n  }\n\n  if (data._type === 'api.variable') {\n    return <VariableContent data={data} />\n  }\n\n  return (\n    <Code language=\"json\" size={textSize}>\n      {JSON.stringify(data, null, 2)}\n    </Code>\n  )\n}\n","import {APIMember} from '@sanity/tsdoc'\nimport {Box, Card, Code, Container, Flex, Text, ThemeColorSyntax} from '@sanity/ui'\n\nimport {TSDocMemberTitle} from '../app'\nimport {CommentDeprecatedCallout, CommentSummary} from '../comment'\nimport {SyntaxText} from '../components/ColoredCode'\nimport {H, Level, Size, useSpace, useTextSize} from '../lib/ui'\nimport {ReferenceContent} from './content'\nimport {TSMemberReleaseTag} from './members/TSMemberReleaseTag'\n\nconst TYPE_NAME: Record<APIMember['_type'], string> = {\n  'api.class': 'class',\n  'api.enum': 'enum',\n  'api.function': 'function',\n  'api.interface': 'interface',\n  'api.namespace': 'namespace',\n  'api.typeAlias': 'type',\n  'api.variable': 'variable',\n}\n\nconst TYPE_NAME_SYNTAX: Record<string, keyof ThemeColorSyntax | undefined> = {\n  class: 'keyword',\n  component: 'keyword',\n  enum: 'keyword',\n  function: 'keyword',\n  hook: 'keyword',\n  interface: 'keyword',\n  namespace: 'keyword',\n  type: 'keyword',\n  variable: undefined,\n}\n\nfunction _getTypeName(data: APIMember) {\n  if ('isReactComponentType' in data && data.isReactComponentType) {\n    return 'component'\n  }\n\n  if ('isReactHook' in data && data.isReactHook) {\n    return 'hook'\n  }\n\n  return TYPE_NAME[data._type]\n}\n\n/** @beta */\nexport function TSDocArticle(props: {data: APIMember & {versions: string[]}}): React.ReactNode {\n  const {data} = props\n  const isType = ['api.interface', 'api.namespace', 'api.typeAlias'].includes(data._type)\n  const typeName = _getTypeName(data)\n  const {comment, releaseTag} = data\n\n  return (\n    <Box\n      as=\"article\"\n      data-ui=\"TSDocArticle\"\n      paddingX={useSpace([3, 3, 3, 4])}\n      paddingY={useSpace([3, 3, 3, 4])}\n    >\n      <Container width={2}>\n        <Flex align=\"center\" gap={1}>\n          <TSMemberReleaseTag comment={comment} releaseTag={releaseTag} />\n\n          <Box flex=\"none\" padding={1}>\n            <Text size={useTextSize([-1, -1, 0])}>\n              <SyntaxText $syntax={TYPE_NAME_SYNTAX[typeName]}>{typeName}</SyntaxText>\n            </Text>\n          </Box>\n        </Flex>\n\n        <H size={[-1, 0, 1, 2]}>\n          <TSDocMemberTitle data={data} />\n        </H>\n\n        <Level>\n          {data.comment?.deprecated && <CommentDeprecatedCallout data={data.comment} />}\n\n          <Size delta={1}>{data.comment && <CommentSummary data={data.comment} />}</Size>\n\n          <Box marginTop={useSpace([3, 3, 4])}>\n            <H size={[-1, 0, 1, 2]}>Import</H>\n\n            <Card border overflow=\"auto\" padding={4} radius={3} tone=\"inherit\">\n              <Code language=\"typescript\" size={useTextSize([-1, -1, 0])}>{`import {${\n                isType ? `type ` : ``\n              }${data.name}} from '${data.export?.name}'`}</Code>\n            </Card>\n          </Box>\n\n          <ReferenceContent data={data} />\n        </Level>\n      </Container>\n    </Box>\n  )\n}\n","import {TSDocAPIMember, TSDocAppParams} from '@sanity/tsdoc/store'\nimport {useEffect, useState} from 'react'\n\nimport {useTSDoc} from './useTSDoc'\n\n/** @beta */\nexport function useMember(props: {params: TSDocAppParams | null}): {\n  data?: TSDocAPIMember[] | null\n  error: Error | null\n  loading: boolean\n} {\n  const {params} = props\n  const {store} = useTSDoc()\n\n  const [data, setData] = useState<TSDocAPIMember[] | undefined | null>(null)\n  const [error, setError] = useState<Error | null>(null)\n  const [loading, setLoading] = useState(false)\n\n  useEffect(() => {\n    async function run() {\n      if (!params) return\n\n      setLoading(true)\n      setData(null)\n\n      try {\n        setData(await store.member.get(params))\n      } catch (err) {\n        if (err instanceof Error) {\n          setError(err)\n        }\n      }\n\n      setLoading(false)\n    }\n\n    run()\n  }, [params, store])\n\n  return {data, error, loading}\n}\n","import type {APIPackage} from '@sanity/tsdoc'\nimport type {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {useEffect, useState} from 'react'\n\nimport {useTSDoc} from './useTSDoc'\n\n/** @beta */\nexport function usePackage(props: {params: TSDocAppParams | null}): {\n  data: APIPackage | null | undefined\n  error: Error | null\n  loading: boolean\n} {\n  const {params} = props\n  const {store} = useTSDoc()\n\n  const [data, setData] = useState<APIPackage | null | undefined>(null)\n  const [error, setError] = useState<Error | null>(null)\n  const [loading, setLoading] = useState(true)\n\n  useEffect(() => {\n    let cancelled = false\n\n    async function run() {\n      if (!params) return\n\n      try {\n        setLoading(true)\n        setData(null)\n        const data = await store.package.get(params)\n\n        if (!cancelled) {\n          setData(data)\n        }\n      } catch (err) {\n        if (err instanceof Error && !cancelled) {\n          setError(err)\n        }\n      } finally {\n        if (!cancelled) {\n          setLoading(false)\n        }\n      }\n    }\n\n    run()\n\n    return () => {\n      cancelled = true\n    }\n  }, [params, store])\n\n  return {data, error, loading}\n}\n","import {Box, Flex, Spinner, Text} from '@sanity/ui'\n\nimport {TSDocArticle} from '../article'\nimport {useSpace} from '../lib/ui'\nimport {useMember} from './useMember'\nimport {usePackage} from './usePackage'\nimport {useTSDoc} from './useTSDoc'\n\n/** @beta */\nexport function TSDocDetail(): React.ReactNode {\n  const {params} = useTSDoc()\n  const member = useMember({params})\n  const pkg = usePackage({params})\n  const padding = useSpace([3, 3, 3, 3])\n\n  if (!params.memberSlug) {\n    return (\n      <Box padding={padding}>\n        <Flex align=\"center\" height=\"fill\" justify=\"center\">\n          <Text muted>Select an API member</Text>\n        </Flex>\n      </Box>\n    )\n  }\n\n  if (pkg.loading || member.loading) {\n    return (\n      <Box padding={padding}>\n        <Flex align=\"center\" height=\"fill\" justify=\"center\">\n          <Spinner />\n        </Flex>\n      </Box>\n    )\n  }\n\n  if (!pkg.data) {\n    return (\n      <Box padding={padding}>\n        <Flex align=\"center\" height=\"fill\" justify=\"center\">\n          <Text muted>\n            Package not found: {[params.packageScope, params.packageName].filter(Boolean).join('/')}\n          </Text>\n        </Flex>\n      </Box>\n    )\n  }\n\n  if (!member.data || !member.data.length) {\n    return (\n      <Box padding={padding}>\n        <Flex align=\"center\" height=\"fill\" justify=\"center\">\n          <Text>Member not found: {params.memberSlug}</Text>\n        </Flex>\n      </Box>\n    )\n  }\n\n  return <>{member.data?.map((member) => <TSDocArticle key={member._id} data={member} />)}</>\n}\n","// @ts-nocheck\n/**\n * @import {Syntax} from '../core.js'\n */\nbash.displayName = 'bash'\nbash.aliases = ['sh', 'shell']\n\n/** @type {Syntax} */\nexport default function bash(Prism) {\n  ;(function (Prism) {\n    // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n    // + LC_ALL, RANDOM, REPLY, SECONDS.\n    // + make sure PS1..4 are here as they are not always set,\n    // - some useless things.\n    var envVars =\n      '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n    var commandAfterHeredoc = {\n      pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n      lookbehind: true,\n      alias: 'punctuation',\n      // this looks reasonably well in all themes\n      inside: null // see below\n    }\n    var insideString = {\n      bash: commandAfterHeredoc,\n      environment: {\n        pattern: RegExp('\\\\$' + envVars),\n        alias: 'constant'\n      },\n      variable: [\n        // [0]: Arithmetic Environment\n        {\n          pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n          greedy: true,\n          inside: {\n            // If there is a $ sign at the beginning highlight $(( and )) as variable\n            variable: [\n              {\n                pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n                lookbehind: true\n              },\n              /^\\$\\(\\(/\n            ],\n            number:\n              /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n            // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n            operator:\n              /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n            // If there is no $ sign at the beginning highlight (( and )) as punctuation\n            punctuation: /\\(\\(?|\\)\\)?|,|;/\n          }\n        },\n        // [1]: Command Substitution\n        {\n          pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n          greedy: true,\n          inside: {\n            variable: /^\\$\\(|^`|\\)$|`$/\n          }\n        },\n        // [2]: Brace expansion\n        {\n          pattern: /\\$\\{[^}]+\\}/,\n          greedy: true,\n          inside: {\n            operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n            punctuation: /[\\[\\]]/,\n            environment: {\n              pattern: RegExp('(\\\\{)' + envVars),\n              lookbehind: true,\n              alias: 'constant'\n            }\n          }\n        },\n        /\\$(?:\\w+|[#?*!@$])/\n      ],\n      // Escape sequences from echo and printf's manuals, and escaped quotes.\n      entity:\n        /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n    }\n    Prism.languages.bash = {\n      shebang: {\n        pattern: /^#!\\s*\\/.*/,\n        alias: 'important'\n      },\n      comment: {\n        pattern: /(^|[^\"{\\\\$])#.*/,\n        lookbehind: true\n      },\n      'function-name': [\n        // a) function foo {\n        // b) foo() {\n        // c) function foo() {\n        // but not “foo {”\n        {\n          // a) and c)\n          pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n          lookbehind: true,\n          alias: 'function'\n        },\n        {\n          // b)\n          pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n          alias: 'function'\n        }\n      ],\n      // Highlight variable names as variables in for and select beginnings.\n      'for-or-select': {\n        pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n        alias: 'variable',\n        lookbehind: true\n      },\n      // Highlight variable names as variables in the left-hand part\n      // of assignments (“=” and “+=”).\n      'assign-left': {\n        pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?:\\.\\w+)*(?=\\+?=)/,\n        inside: {\n          environment: {\n            pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n            lookbehind: true,\n            alias: 'constant'\n          }\n        },\n        alias: 'variable',\n        lookbehind: true\n      },\n      // Highlight parameter names as variables\n      parameter: {\n        pattern: /(^|\\s)-{1,2}(?:\\w+:[+-]?)?\\w+(?:\\.\\w+)*(?=[=\\s]|$)/,\n        alias: 'variable',\n        lookbehind: true\n      },\n      string: [\n        // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        },\n        // Here-document with quotes around the tag\n        // → No expansion (so no “inside”).\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n          lookbehind: true,\n          greedy: true,\n          inside: {\n            bash: commandAfterHeredoc\n          }\n        },\n        // “Normal” string\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n          pattern:\n            /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n          pattern: /(^|[^$\\\\])'[^']*'/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n          pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n          greedy: true,\n          inside: {\n            entity: insideString.entity\n          }\n        }\n      ],\n      environment: {\n        pattern: RegExp('\\\\$?' + envVars),\n        alias: 'constant'\n      },\n      variable: insideString.variable,\n      function: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      keyword: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n      builtin: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n        lookbehind: true,\n        // Alias added to make those easier to distinguish from strings.\n        alias: 'class-name'\n      },\n      boolean: {\n        pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      'file-descriptor': {\n        pattern: /\\B&\\d\\b/,\n        alias: 'important'\n      },\n      operator: {\n        // Lots of redirections here, but not just that.\n        pattern:\n          /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n        inside: {\n          'file-descriptor': {\n            pattern: /^\\d/,\n            alias: 'important'\n          }\n        }\n      },\n      punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n      number: {\n        pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n        lookbehind: true\n      }\n    }\n    commandAfterHeredoc.inside = Prism.languages.bash\n\n    /* Patterns in command substitution. */\n    var toBeCopied = [\n      'comment',\n      'function-name',\n      'for-or-select',\n      'assign-left',\n      'parameter',\n      'string',\n      'environment',\n      'function',\n      'keyword',\n      'builtin',\n      'boolean',\n      'file-descriptor',\n      'operator',\n      'punctuation',\n      'number'\n    ]\n    var inside = insideString.variable[1].inside\n    for (var i = 0; i < toBeCopied.length; i++) {\n      inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n    }\n    Prism.languages.sh = Prism.languages.bash\n    Prism.languages.shell = Prism.languages.bash\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Syntax} from '../core.js'\n */\nclike.displayName = 'clike'\nclike.aliases = []\n\n/** @type {Syntax} */\nexport default function clike(Prism) {\n  Prism.languages.clike = {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n      lookbehind: true,\n      inside: {\n        punctuation: /[.\\\\]/\n      }\n    },\n    keyword:\n      /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b\\w+(?=\\()/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Syntax} from '../core.js'\n */\nimport refractorClike from './clike.js'\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\n\n/** @type {Syntax} */\nexport default function javascript(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.javascript = Prism.languages.extend('clike', {\n    'class-name': [\n      Prism.languages.clike['class-name'],\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n        lookbehind: true\n      }\n    ],\n    keyword: [\n      {\n        pattern: /((?:^|\\})\\s*)catch\\b/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n        lookbehind: true\n      }\n    ],\n    // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n    function:\n      /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n    number: {\n      pattern: RegExp(\n        /(^|[^\\w$])/.source +\n          '(?:' +\n          // constant\n          (/NaN|Infinity/.source +\n            '|' +\n            // binary integer\n            /0[bB][01]+(?:_[01]+)*n?/.source +\n            '|' +\n            // octal integer\n            /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n            '|' +\n            // hexadecimal integer\n            /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n            '|' +\n            // decimal bigint\n            /\\d+(?:_\\d+)*n/.source +\n            '|' +\n            // decimal number (integer or float) but no bigint\n            /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n              .source) +\n          ')' +\n          /(?![\\w$])/.source\n      ),\n      lookbehind: true\n    },\n    operator:\n      /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n  })\n  Prism.languages.javascript['class-name'][0].pattern =\n    /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n  Prism.languages.insertBefore('javascript', 'keyword', {\n    regex: {\n      pattern: RegExp(\n        // lookbehind\n        // eslint-disable-next-line regexp/no-dupe-characters-character-class\n        /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n          // Regex pattern:\n          // There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n          // classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n          // with the only syntax, so we have to define 2 different regex patterns.\n          /\\//.source +\n          '(?:' +\n          /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/\n            .source +\n          '|' +\n          // `v` flag syntax. This supports 3 levels of nested character classes.\n          /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/\n            .source +\n          ')' +\n          // lookahead\n          /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/\n            .source\n      ),\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        'regex-source': {\n          pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^\\/|\\/$/,\n        'regex-flags': /^[a-z]+$/\n      }\n    },\n    // This must be declared before keyword because we use \"function\" inside the look-forward\n    'function-variable': {\n      pattern:\n        /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n      alias: 'function'\n    },\n    parameter: [\n      {\n        pattern:\n          /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      }\n    ],\n    constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n  })\n  Prism.languages.insertBefore('javascript', 'string', {\n    hashbang: {\n      pattern: /^#!.*/,\n      greedy: true,\n      alias: 'comment'\n    },\n    'template-string': {\n      pattern:\n        /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n      greedy: true,\n      inside: {\n        'template-punctuation': {\n          pattern: /^`|`$/,\n          alias: 'string'\n        },\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.javascript\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    'string-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    }\n  })\n  Prism.languages.insertBefore('javascript', 'operator', {\n    'literal-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n      lookbehind: true,\n      alias: 'property'\n    }\n  })\n  if (Prism.languages.markup) {\n    Prism.languages.markup.tag.addInlined('script', 'javascript')\n\n    // add attribute support for all DOM events.\n    // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n    Prism.languages.markup.tag.addAttribute(\n      /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n        .source,\n      'javascript'\n    )\n  }\n  Prism.languages.js = Prism.languages.javascript\n}\n","// @ts-nocheck\n/**\n * @import {Syntax} from '../core.js'\n */\njson.displayName = 'json'\njson.aliases = ['webmanifest']\n\n/** @type {Syntax} */\nexport default function json(Prism) {\n  // https://www.json.org/json-en.html\n  Prism.languages.json = {\n    property: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    punctuation: /[{}[\\],]/,\n    operator: /:/,\n    boolean: /\\b(?:false|true)\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    }\n  }\n  Prism.languages.webmanifest = Prism.languages.json\n}\n","// @ts-nocheck\n/**\n * @import {Syntax} from '../core.js'\n */\nmarkup.displayName = 'markup'\nmarkup.aliases = ['atom', 'html', 'mathml', 'rss', 'ssml', 'svg', 'xml']\n\n/** @type {Syntax} */\nexport default function markup(Prism) {\n  Prism.languages.markup = {\n    comment: {\n      pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n      greedy: true\n    },\n    prolog: {\n      pattern: /<\\?[\\s\\S]+?\\?>/,\n      greedy: true\n    },\n    doctype: {\n      // https://www.w3.org/TR/xml/#NT-doctypedecl\n      pattern:\n        /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n      greedy: true,\n      inside: {\n        'internal-subset': {\n          pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: null // see below\n        },\n        string: {\n          pattern: /\"[^\"]*\"|'[^']*'/,\n          greedy: true\n        },\n        punctuation: /^<!|>$|[[\\]]/,\n        'doctype-tag': /^DOCTYPE/i,\n        name: /[^\\s<>'\"]+/\n      }\n    },\n    cdata: {\n      pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n      greedy: true\n    },\n    tag: {\n      pattern:\n        /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n      greedy: true,\n      inside: {\n        tag: {\n          pattern: /^<\\/?[^\\s>\\/]+/,\n          inside: {\n            punctuation: /^<\\/?/,\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        },\n        'special-attr': [],\n        'attr-value': {\n          pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n          inside: {\n            punctuation: [\n              {\n                pattern: /^=/,\n                alias: 'attr-equals'\n              },\n              {\n                pattern: /^(\\s*)[\"']|[\"']$/,\n                lookbehind: true\n              }\n            ]\n          }\n        },\n        punctuation: /\\/?>/,\n        'attr-name': {\n          pattern: /[^\\s>\\/]+/,\n          inside: {\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        }\n      }\n    },\n    entity: [\n      {\n        pattern: /&[\\da-z]{1,8};/i,\n        alias: 'named-entity'\n      },\n      /&#x?[\\da-f]{1,8};/i\n    ]\n  }\n  Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n    Prism.languages.markup['entity']\n  Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n    Prism.languages.markup\n\n  // Plugin to make entity title show the real entity, idea by Roman Komarov\n  Prism.hooks.add('wrap', function (env) {\n    if (env.type === 'entity') {\n      env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n    /**\n     * Adds an inlined language to markup.\n     *\n     * An example of an inlined language is CSS with `<style>` tags.\n     *\n     * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addInlined('style', 'css');\n     */\n    value: function addInlined(tagName, lang) {\n      var includedCdataInside = {}\n      includedCdataInside['language-' + lang] = {\n        pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n        lookbehind: true,\n        inside: Prism.languages[lang]\n      }\n      includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n      var inside = {\n        'included-cdata': {\n          pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n          inside: includedCdataInside\n        }\n      }\n      inside['language-' + lang] = {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages[lang]\n      }\n      var def = {}\n      def[tagName] = {\n        pattern: RegExp(\n          /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n            /__/g,\n            function () {\n              return tagName\n            }\n          ),\n          'i'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: inside\n      }\n      Prism.languages.insertBefore('markup', 'cdata', def)\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n    /**\n     * Adds an pattern to highlight languages embedded in HTML attributes.\n     *\n     * An example of an inlined language is CSS with `style` attributes.\n     *\n     * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addAttribute('style', 'css');\n     */\n    value: function (attrName, lang) {\n      Prism.languages.markup.tag.inside['special-attr'].push({\n        pattern: RegExp(\n          /(^|[\"'\\s])/.source +\n            '(?:' +\n            attrName +\n            ')' +\n            /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n          'i'\n        ),\n        lookbehind: true,\n        inside: {\n          'attr-name': /^[^\\s=]+/,\n          'attr-value': {\n            pattern: /=[\\s\\S]+/,\n            inside: {\n              value: {\n                pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n                lookbehind: true,\n                alias: [lang, 'language-' + lang],\n                inside: Prism.languages[lang]\n              },\n              punctuation: [\n                {\n                  pattern: /^=/,\n                  alias: 'attr-equals'\n                },\n                /\"|'/\n              ]\n            }\n          }\n        }\n      })\n    }\n  })\n  Prism.languages.html = Prism.languages.markup\n  Prism.languages.mathml = Prism.languages.markup\n  Prism.languages.svg = Prism.languages.markup\n  Prism.languages.xml = Prism.languages.extend('markup', {})\n  Prism.languages.ssml = Prism.languages.xml\n  Prism.languages.atom = Prism.languages.xml\n  Prism.languages.rss = Prism.languages.xml\n}\n","// @ts-nocheck\n/**\n * @import {Syntax} from '../core.js'\n */\nimport refractorJavascript from './javascript.js'\nimport refractorMarkup from './markup.js'\njsx.displayName = 'jsx'\njsx.aliases = []\n\n/** @type {Syntax} */\nexport default function jsx(Prism) {\n  Prism.register(refractorJavascript)\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    var javascript = Prism.util.clone(Prism.languages.javascript)\n    var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n    var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n    var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n\n    /**\n     * @param {string} source\n     * @param {string} [flags]\n     */\n    function re(source, flags) {\n      source = source\n        .replace(/<S>/g, function () {\n          return space\n        })\n        .replace(/<BRACES>/g, function () {\n          return braces\n        })\n        .replace(/<SPREAD>/g, function () {\n          return spread\n        })\n      return RegExp(source, flags)\n    }\n    spread = re(spread).source\n    Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n    Prism.languages.jsx.tag.pattern = re(\n      /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n        .source\n    )\n    Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n    Prism.languages.jsx.tag.inside['attr-value'].pattern =\n      /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n    Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n      /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n    Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n    Prism.languages.insertBefore(\n      'inside',\n      'attr-name',\n      {\n        spread: {\n          pattern: re(/<SPREAD>/.source),\n          inside: Prism.languages.jsx\n        }\n      },\n      Prism.languages.jsx.tag\n    )\n    Prism.languages.insertBefore(\n      'inside',\n      'special-attr',\n      {\n        script: {\n          // Allow for two levels of nesting\n          pattern: re(/=<BRACES>/.source),\n          alias: 'language-javascript',\n          inside: {\n            'script-punctuation': {\n              pattern: /^=(?=\\{)/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.jsx\n          }\n        }\n      },\n      Prism.languages.jsx.tag\n    )\n\n    // The following will handle plain text inside tags\n    var stringifyToken = function (token) {\n      if (!token) {\n        return ''\n      }\n      if (typeof token === 'string') {\n        return token\n      }\n      if (typeof token.content === 'string') {\n        return token.content\n      }\n      return token.content.map(stringifyToken).join('')\n    }\n    var walkTokens = function (tokens) {\n      var openedTags = []\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i]\n        var notTagNorBrace = false\n        if (typeof token !== 'string') {\n          if (\n            token.type === 'tag' &&\n            token.content[0] &&\n            token.content[0].type === 'tag'\n          ) {\n            // We found a tag, now find its kind\n\n            if (token.content[0].content[0].content === '</') {\n              // Closing tag\n              if (\n                openedTags.length > 0 &&\n                openedTags[openedTags.length - 1].tagName ===\n                  stringifyToken(token.content[0].content[1])\n              ) {\n                // Pop matching opening tag\n                openedTags.pop()\n              }\n            } else {\n              if (token.content[token.content.length - 1].content === '/>') {\n                // Autoclosed tag, ignore\n              } else {\n                // Opening tag\n                openedTags.push({\n                  tagName: stringifyToken(token.content[0].content[1]),\n                  openedBraces: 0\n                })\n              }\n            }\n          } else if (\n            openedTags.length > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '{'\n          ) {\n            // Here we might have entered a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces++\n          } else if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '}'\n          ) {\n            // Here we might have left a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces--\n          } else {\n            notTagNorBrace = true\n          }\n        }\n        if (notTagNorBrace || typeof token === 'string') {\n          if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces === 0\n          ) {\n            // Here we are inside a tag, and not inside a JSX context.\n            // That's plain text: drop any tokens matched.\n            var plainText = stringifyToken(token)\n\n            // And merge text with adjacent text\n            if (\n              i < tokens.length - 1 &&\n              (typeof tokens[i + 1] === 'string' ||\n                tokens[i + 1].type === 'plain-text')\n            ) {\n              plainText += stringifyToken(tokens[i + 1])\n              tokens.splice(i + 1, 1)\n            }\n            if (\n              i > 0 &&\n              (typeof tokens[i - 1] === 'string' ||\n                tokens[i - 1].type === 'plain-text')\n            ) {\n              plainText = stringifyToken(tokens[i - 1]) + plainText\n              tokens.splice(i - 1, 1)\n              i--\n            }\n            tokens[i] = new Prism.Token(\n              'plain-text',\n              plainText,\n              null,\n              plainText\n            )\n          }\n        }\n        if (token.content && typeof token.content !== 'string') {\n          walkTokens(token.content)\n        }\n      }\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'jsx' && env.language !== 'tsx') {\n        return\n      }\n      walkTokens(env.tokens)\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Syntax} from '../core.js'\n */\nimport refractorJavascript from './javascript.js'\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\n\n/** @type {Syntax} */\nexport default function typescript(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    Prism.languages.typescript = Prism.languages.extend('javascript', {\n      'class-name': {\n        pattern:\n          /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n        lookbehind: true,\n        greedy: true,\n        inside: null // see below\n      },\n      builtin:\n        /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n    })\n\n    // The keywords TypeScript adds to JavaScript\n    Prism.languages.typescript.keyword.push(\n      /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/,\n      // keywords that have to be followed by an identifier\n      /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/,\n      // This is for `import type *, {}`\n      /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n    )\n\n    // doesn't work with TS because TS is too complex\n    delete Prism.languages.typescript['parameter']\n    delete Prism.languages.typescript['literal-property']\n\n    // a version of typescript specifically for highlighting types\n    var typeInside = Prism.languages.extend('typescript', {})\n    delete typeInside['class-name']\n    Prism.languages.typescript['class-name'].inside = typeInside\n    Prism.languages.insertBefore('typescript', 'function', {\n      decorator: {\n        pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n        inside: {\n          at: {\n            pattern: /^@/,\n            alias: 'operator'\n          },\n          function: /^[\\s\\S]+/\n        }\n      },\n      'generic-function': {\n        // e.g. foo<T extends \"bar\" | \"baz\">( ...\n        pattern:\n          /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n        greedy: true,\n        inside: {\n          function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n          generic: {\n            pattern: /<[\\s\\S]+/,\n            // everything after the first <\n            alias: 'class-name',\n            inside: typeInside\n          }\n        }\n      }\n    })\n    Prism.languages.ts = Prism.languages.typescript\n  })(Prism)\n}\n","import {TSDocAppParams, TSDocStore} from '@sanity/tsdoc/store'\nimport {useCallback, useEffect, useMemo, useRef} from 'react'\nimport Refractor from 'react-refractor'\nimport bash from 'refractor/lang/bash'\nimport javascript from 'refractor/lang/javascript'\nimport json from 'refractor/lang/json'\nimport jsx from 'refractor/lang/jsx'\nimport typescript from 'refractor/lang/typescript'\n\nimport {compilePath} from './lib/compilePath'\nimport {TSDocContext, TSDocContextValue} from './TSDocContext'\n\nRefractor.registerLanguage(bash)\nRefractor.registerLanguage(javascript)\nRefractor.registerLanguage(json)\nRefractor.registerLanguage(jsx)\nRefractor.registerLanguage(typescript)\n\nconst EMPTY_PARAMS: TSDocAppParams = {\n  exportPath: null,\n  memberName: null,\n  packageName: null,\n  packageScope: null,\n  releaseVersion: null,\n}\n\n/** @beta */\nexport interface TSDocProviderProps {\n  basePath?: string\n  children: React.ReactNode\n  onPathChange: (nextPath: string, replace?: boolean) => void\n  params?: TSDocAppParams\n  path: string\n  store: TSDocStore\n}\n\n/** @beta */\nexport function TSDocProvider(props: TSDocProviderProps): React.ReactNode {\n  const {\n    basePath = '',\n    children,\n    onPathChange,\n    path: fullPath,\n    params = EMPTY_PARAMS,\n    store,\n  } = props\n\n  const path = _consumeBasePath(basePath, fullPath)\n\n  const paramsRef = useRef(params)\n\n  const updateParams = useCallback(\n    (fn: (params: TSDocAppParams) => TSDocAppParams) => {\n      const nextParams = fn(paramsRef.current || EMPTY_PARAMS)\n\n      paramsRef.current = nextParams\n\n      const nextPath = compilePath(nextParams)\n\n      onPathChange(nextPath)\n    },\n    [onPathChange],\n  )\n\n  const tsdoc: TSDocContextValue = useMemo(\n    () => ({basePath, onPathChange, params, path, store, updateParams}),\n    [basePath, onPathChange, params, path, store, updateParams],\n  )\n\n  useEffect(() => {\n    paramsRef.current = params\n  }, [params])\n\n  return <TSDocContext.Provider value={tsdoc}>{children}</TSDocContext.Provider>\n}\n\nfunction _consumeBasePath(basePath: string, fullPath: string) {\n  if (basePath === fullPath) return '/'\n\n  if (!fullPath.startsWith(basePath)) {\n    return '/'\n  }\n\n  return fullPath.slice(basePath.length)\n}\n","import {TSDocAppParams, TSDocStore} from '@sanity/tsdoc/store'\nimport {Card, Flex} from '@sanity/ui'\nimport {useCallback, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {parsePath} from './helpers'\nimport {TSDocNav} from './nav'\nimport {TSDocDetail} from './TSDocDetail'\nimport {TSDocProvider} from './TSDocProvider'\n\n/** @beta */\nexport interface TSDocAppProps {\n  basePath?: string\n  onPathChange: (value: string, replace?: boolean) => void\n  path: string\n  store: TSDocStore\n  releaseVersion?: string\n}\n\nconst Root = styled(Card)({\n  lineHeight: 0,\n})\n\n/**\n * @example\n * ```tsx\n * import {TSDocApp, createTSDocMemoryStore} from '@sanity/tsdoc/react'\n * import {useState} from 'react'\n *\n * const store = createTSDocMemoryStore({docs: []})\n * const [path, setPath] = useState<string | null>(null)\n *\n * <TSDocApp path={path} onPathChange={setPath} store={store} />\n * ```\n *\n * @beta\n * */\nexport function TSDocApp(props: TSDocAppProps): React.ReactNode {\n  const {basePath = '', onPathChange, path, store, releaseVersion = ''} = props\n\n  const params: TSDocAppParams | undefined = useMemo(\n    () => parsePath(path, {basePath, version: releaseVersion}),\n    [basePath, path, releaseVersion],\n  )\n\n  const handlePathChange = useCallback(\n    (nextPath: string, replace?: boolean) => {\n      onPathChange(`${basePath}${nextPath}`, replace)\n    },\n    [basePath, onPathChange],\n  )\n\n  return (\n    <TSDocProvider\n      basePath={basePath}\n      onPathChange={handlePathChange}\n      params={params}\n      path={path}\n      store={store}\n    >\n      <Root height=\"fill\">\n        <Flex direction=\"column\" height=\"fill\">\n          <Flex flex={1}>\n            <Card borderRight display={['none', 'none', 'block']} style={{width: 400}}>\n              <TSDocNav />\n            </Card>\n\n            {params && (\n              <Card flex={1} overflow=\"auto\">\n                <TSDocDetail />\n              </Card>\n            )}\n          </Flex>\n        </Flex>\n      </Root>\n    </TSDocProvider>\n  )\n}\n","import {APIMember, APISymbol} from '@sanity/tsdoc'\nimport {useEffect, useState} from 'react'\n\nimport {useTSDoc} from './useTSDoc'\n\n/** @beta */\nexport interface UseSymbolData extends APISymbol {\n  members: APIMember[]\n}\n\n/** @beta */\nexport interface UseSymbolProps {\n  member?: APIMember\n  name: string\n  packageScope?: string | null\n  packageName?: string | null\n}\n\n/** @beta */\nexport function useSymbol(props: UseSymbolProps): {\n  data?: UseSymbolData | null\n  error: Error | null\n  loading: boolean\n} {\n  const {member, name, packageName: packageNameProp, packageScope: packageScopeProp} = props\n  const {params, store} = useTSDoc()\n  const packageScope = packageScopeProp ?? params?.packageScope\n  const packageName = packageNameProp ?? params?.packageName\n\n  const [data, setData] = useState<UseSymbolData | null | undefined>(null)\n  const [error, setError] = useState<Error | null>(null)\n  const [loading, setLoading] = useState(false)\n\n  useEffect(() => {\n    if (member) {\n      setData({\n        _type: 'api.symbol',\n        name,\n        package: {\n          _type: 'api.package',\n          scope: packageScope || undefined,\n          name: packageName!,\n        } as any,\n        members: [member],\n      })\n\n      return\n    }\n\n    async function run() {\n      if (!packageName) return\n\n      try {\n        setLoading(true)\n        setData(null)\n        setData(\n          await store.symbol.get({\n            packageName,\n            packageScope,\n            name,\n          }),\n        )\n      } catch (err) {\n        if (err instanceof Error) {\n          setError(err)\n        }\n      }\n\n      setLoading(false)\n    }\n\n    run()\n  }, [member, name, packageName, packageScope, store])\n\n  return {data, error, loading}\n}\n","import {APIMember} from '@sanity/tsdoc'\nimport {TSDocAppParams} from '@sanity/tsdoc/store'\nimport {Card, CardProps, Text, Tooltip, TooltipProps} from '@sanity/ui'\nimport {useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {UnformattedCode} from '../components/UnformattedCode'\nimport {_fontSize} from '../helpers'\nimport {Size} from '../lib/ui'\nimport {ReferenceTooltipContent} from '../tooltip'\nimport {TSDocMemberTitle} from './TSDocMemberTitle'\nimport {useMemberLink} from './useMemberLink'\nimport {useSymbol} from './useSymbol'\n\nconst Root = styled(Card)`\n  &:not([hidden]) {\n    display: inline-block;\n  }\n\n  &:hover {\n    text-decoration: none;\n  }\n`\n\n/** @beta */\nexport function TSDocSymbol(\n  props: Omit<CardProps, 'as'> & {\n    member?: APIMember\n    fontSize?: number\n    name: string\n    packageScope?: string | null\n    packageName?: string | null\n    tooltip?: Omit<TooltipProps, 'content'>\n  },\n): React.ReactNode {\n  const {member, fontSize = 2, name, packageScope, packageName, tooltip, ...restProps} = props\n\n  const {data} = useSymbol({\n    member,\n    name,\n    packageName,\n    packageScope,\n  })\n\n  const symbolMembers = data?.members\n\n  const content = useMemo(() => {\n    if (!symbolMembers || symbolMembers.length === 0) return null\n\n    return (\n      <Size delta={-1}>\n        <ReferenceTooltipContent data={symbolMembers[0]!} />\n      </Size>\n    )\n  }, [symbolMembers])\n\n  const child = useMemo(() => {\n    if (!symbolMembers || symbolMembers.length === 0) return <UnformattedCode>…</UnformattedCode>\n\n    const member = symbolMembers[0]!\n\n    return <TSDocMemberTitle data={member} />\n  }, [symbolMembers])\n\n  const params: TSDocAppParams | null = useMemo(() => {\n    if (!symbolMembers || symbolMembers.length === 0) return null\n\n    const member = symbolMembers[0]!\n\n    return {\n      exportPath: member.export?.path,\n      memberName: member.name,\n      packageName: member.package.name,\n      packageScope: member.package.scope || null,\n      releaseVersion: member.release.version,\n    }\n  }, [symbolMembers])\n\n  const linkProps = useMemberLink({params})\n\n  return (\n    <Tooltip content={content} portal {...tooltip}>\n      <Root as=\"a\" {...restProps} {...linkProps}>\n        <Text size={_fontSize(fontSize, [1, 1, 2])}>{child}</Text>\n      </Root>\n    </Tooltip>\n  )\n}\n","import {APIMember} from '@sanity/tsdoc'\nimport {Box, Card, CardProps, Text} from '@sanity/ui'\nimport {useMemo} from 'react'\n\nimport {TSDocAppParams} from '../../store'\nimport {UnformattedCode} from '../components/UnformattedCode'\nimport {_fontSize} from '../helpers'\nimport {ReferenceTooltipContent} from '../tooltip'\nimport {TSDocMemberTitle} from './TSDocMemberTitle'\nimport {useMemberLink} from './useMemberLink'\nimport {useSymbol} from './useSymbol'\n\n/** @beta */\nexport function TSDocSymbolPreview(\n  props: Omit<CardProps, 'as' | 'padding'> & {\n    fontSize?: number\n    member?: APIMember\n    name: string\n    packageName?: string\n    packageScope?: string | null\n  },\n): React.ReactNode {\n  const {fontSize = 2, member, name, packageName, packageScope, ...restProps} = props\n\n  const {data} = useSymbol({\n    member,\n    name,\n    packageName,\n    packageScope,\n  })\n\n  const symbolMembers = data?.members\n\n  const content = useMemo(() => {\n    if (!symbolMembers || symbolMembers.length === 0) return null\n\n    return <ReferenceTooltipContent data={symbolMembers[0]!} />\n  }, [symbolMembers])\n\n  const params: TSDocAppParams | null = useMemo(() => {\n    if (!symbolMembers || symbolMembers.length === 0) return null\n\n    const member = symbolMembers[0]!\n\n    return {\n      exportPath: member.export.path,\n      memberName: member.name,\n      packageName: member.package.name,\n      packageScope: member.package.scope || null,\n      releaseVersion: member.release.version,\n    }\n  }, [symbolMembers])\n\n  const title = useMemo(() => {\n    if (!symbolMembers || symbolMembers.length === 0) return <UnformattedCode>…</UnformattedCode>\n\n    const member = symbolMembers[0]!\n\n    return <TSDocMemberTitle data={member} />\n  }, [symbolMembers])\n\n  const linkProps = useMemberLink({params})\n\n  return (\n    <Card {...restProps}>\n      <Box padding={3} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n        <Text size={_fontSize(fontSize, [0, 0, 1])} weight=\"bold\">\n          {title}\n        </Text>\n      </Box>\n\n      {content}\n\n      <Box padding={3} style={{borderTop: '1px solid var(--card-border-color)'}}>\n        <Text size={_fontSize(fontSize, [0, 0, 1])}>\n          <a {...linkProps}>View full article &rarr;</a>\n        </Text>\n      </Box>\n    </Card>\n  )\n}\n","import {APIDocument} from '@sanity/tsdoc'\nimport {createTSDocMemoryStore, TSDocAPIMember, TSDocAppParams} from '@sanity/tsdoc/store'\nimport {studioTheme, ThemeColorSchemeKey, ThemeProvider, usePrefersDark} from '@sanity/ui'\nimport {createBrowserHistory} from 'history'\nimport {StrictMode, useEffect, useMemo, useState} from 'react'\nimport {createRoot} from 'react-dom/client'\n\nimport {parsePath, TSDocApp} from './app'\n\nconst EMPTY_ARRAY: never[] = []\n\nfunction Root(props: {docs?: APIDocument[]; releaseVersion?: string}) {\n  const {docs = EMPTY_ARRAY, releaseVersion = '0.0.0'} = props\n  const store = useMemo(() => createTSDocMemoryStore({docs}), [docs])\n  const history = useMemo(() => createBrowserHistory(), [])\n  const scheme: ThemeColorSchemeKey = usePrefersDark() ? 'dark' : 'light'\n  const [path, setPath] = useState<string>(() => history.location.pathname)\n  const basePath = undefined\n  const params: TSDocAppParams | undefined = useMemo(\n    () => parsePath(path, {basePath, version: releaseVersion}),\n    [basePath, path, releaseVersion],\n  )\n\n  const [members, setMembers] = useState<TSDocAPIMember[] | undefined | null>(null)\n\n  // Listen to history changes\n  useEffect(() => history.listen((update) => setPath(update.location.pathname)), [history])\n\n  // Push history state\n  useEffect(() => history.push({pathname: path || ''}), [path, history])\n\n  useEffect(() => {\n    if (params) store.member.get(params).then(setMembers)\n  }, [params, store])\n\n  useEffect(() => {\n    if (members?.length) {\n      document.title = `${members?.[0]?.name} | ${members?.[0]?.export.name}@${members?.[0]?.release.version}`\n    }\n  }, [members])\n\n  return (\n    <ThemeProvider scheme={scheme} theme={studioTheme}>\n      <TSDocApp\n        basePath={basePath}\n        onPathChange={setPath}\n        path={path}\n        store={store}\n        releaseVersion={releaseVersion}\n      />\n    </ThemeProvider>\n  )\n}\n\n/** @beta */\nexport function mount(options: {\n  docs: APIDocument[]\n  releaseVersion?: string\n  element: HTMLElement | null\n}): void {\n  const {docs, releaseVersion, element} = options\n\n  if (!element) throw new Error('missing element')\n\n  const root = createRoot(element)\n\n  root.render(\n    <StrictMode>\n      <Root docs={docs} releaseVersion={releaseVersion} />\n    </StrictMode>,\n  )\n}\n"],"names":["jsx","data","components","value","exp","BasePortableText","Root","useMembers","member","Prism","refractorClike","refractorJavascript","refractorMarkup","javascript"],"mappings":"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","x_google_ignoreList":[84,85,86,87,88,89,90]}