@apiboost/omnispec 1.1.0-next.3 → 1.1.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/asyncapi/index.js +2 -2
- package/dist/cjs/chunks/{AsyncApiSpec-BzgUioEK.js → AsyncApiSpec-B-RGmOUL.js} +345 -122
- package/dist/cjs/chunks/AsyncApiSpec-B-RGmOUL.js.map +1 -0
- package/dist/cjs/chunks/{Collapsible-BTWyDBkX.js → Collapsible-qjYtxwP0.js} +17 -6
- package/dist/cjs/chunks/Collapsible-qjYtxwP0.js.map +1 -0
- package/dist/cjs/chunks/{OmniSpecRenderer-CRipDRtC.js → OmniSpecRenderer-Bh-IQod3.js} +3 -3
- package/dist/cjs/chunks/{OmniSpecRenderer-CRipDRtC.js.map → OmniSpecRenderer-Bh-IQod3.js.map} +1 -1
- package/dist/cjs/chunks/{OpenApiSpec-BOlesoUX.js → OpenApiSpec-5V9E-wQH.js} +3 -3
- package/dist/cjs/chunks/{OpenApiSpec-BOlesoUX.js.map → OpenApiSpec-5V9E-wQH.js.map} +1 -1
- package/dist/cjs/chunks/{OpenIdConnectManual-Bh7tdxoH.js → OpenIdConnectManual-DXDG8bcp.js} +2 -2
- package/dist/cjs/chunks/{OpenIdConnectManual-Bh7tdxoH.js.map → OpenIdConnectManual-DXDG8bcp.js.map} +1 -1
- package/dist/cjs/core/public.js +2 -2
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/openapi/index.js +3 -3
- package/dist/cjs/wc/index.js +1 -1
- package/dist/esm/asyncapi/index.js +2 -2
- package/dist/esm/chunks/{AsyncApiSpec-B757IIHz.js → AsyncApiSpec-C0tdvyEP.js} +345 -122
- package/dist/esm/chunks/AsyncApiSpec-C0tdvyEP.js.map +1 -0
- package/dist/esm/chunks/{Collapsible-MyJB2agz.js → Collapsible-CPxS90KX.js} +17 -6
- package/dist/esm/chunks/Collapsible-CPxS90KX.js.map +1 -0
- package/dist/esm/chunks/{OmniSpecRenderer-5RUZx-C7.js → OmniSpecRenderer-DmXZtPRr.js} +3 -3
- package/dist/esm/chunks/{OmniSpecRenderer-5RUZx-C7.js.map → OmniSpecRenderer-DmXZtPRr.js.map} +1 -1
- package/dist/esm/chunks/{OpenApiSpec-wm3tH2vF.js → OpenApiSpec-CoPhPro1.js} +3 -3
- package/dist/esm/chunks/{OpenApiSpec-wm3tH2vF.js.map → OpenApiSpec-CoPhPro1.js.map} +1 -1
- package/dist/esm/chunks/{OpenIdConnectManual-DPmTIIIy.js → OpenIdConnectManual-DhrAcSCa.js} +2 -2
- package/dist/esm/chunks/{OpenIdConnectManual-DPmTIIIy.js.map → OpenIdConnectManual-DhrAcSCa.js.map} +1 -1
- package/dist/esm/core/public.js +2 -2
- package/dist/esm/index.js +5 -5
- package/dist/esm/openapi/index.js +3 -3
- package/dist/esm/wc/index.js +1 -1
- package/dist/types/asyncapi/AsyncApiSpec.d.ts.map +1 -1
- package/dist/types/asyncapi/components/AsyncOverview.d.ts.map +1 -1
- package/dist/types/asyncapi/components/BindingsSection.d.ts.map +1 -1
- package/dist/types/asyncapi/components/ChannelDetail.d.ts.map +1 -1
- package/dist/types/asyncapi/components/ComponentsSection.d.ts.map +1 -1
- package/dist/types/asyncapi/components/ExternalDocsLink.d.ts.map +1 -1
- package/dist/types/asyncapi/components/ExternalLink.d.ts +31 -0
- package/dist/types/asyncapi/components/ExternalLink.d.ts.map +1 -0
- package/dist/types/asyncapi/components/MessagePayload.d.ts.map +1 -1
- package/dist/types/asyncapi/components/SecurityRequirementBadges.d.ts.map +1 -1
- package/dist/types/asyncapi/components/TagChips.d.ts +27 -0
- package/dist/types/asyncapi/components/TagChips.d.ts.map +1 -0
- package/dist/types/asyncapi/components/field-display.d.ts +11 -3
- package/dist/types/asyncapi/components/field-display.d.ts.map +1 -1
- package/dist/types/asyncapi/parser/asyncapi-parser.d.ts.map +1 -1
- package/dist/types/asyncapi/tag-grouping.d.ts +9 -5
- package/dist/types/asyncapi/tag-grouping.d.ts.map +1 -1
- package/dist/types/asyncapi/types/asyncapi.types.d.ts +25 -12
- package/dist/types/asyncapi/types/asyncapi.types.d.ts.map +1 -1
- package/dist/types/core/components/Navigation/SearchBar.d.ts +7 -1
- package/dist/types/core/components/Navigation/SearchBar.d.ts.map +1 -1
- package/dist/types/core/components/SchemaViewer/schema-utils.d.ts.map +1 -1
- package/dist/wc/standalone.js +1 -1
- package/dist/wc/standalone.js.map +1 -1
- package/package.json +12 -2
- package/dist/cjs/chunks/AsyncApiSpec-BzgUioEK.js.map +0 -1
- package/dist/cjs/chunks/Collapsible-BTWyDBkX.js.map +0 -1
- package/dist/esm/chunks/AsyncApiSpec-B757IIHz.js.map +0 -1
- package/dist/esm/chunks/Collapsible-MyJB2agz.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Collapsible-CPxS90KX.js","sources":["../../../src/core/context/ExpandContext.tsx","../../../src/core/hooks/useScrollSpy.ts","../../../src/core/hooks/useHashScroll.ts","../../../src/core/components/Navigation/SearchBar.tsx","../../../src/core/components/common/SpecToolbar.tsx","../../../src/core/utils/resolve-download-link.ts","../../../node_modules/.pnpm/marked@15.0.12/node_modules/marked/lib/marked.esm.js","../../../src/core/utils/sanitize-html.ts","../../../src/core/components/MarkdownRenderer/MarkdownRenderer.tsx","../../../src/core/components/common/Badge.tsx","../../../src/core/components/SchemaViewer/SchemaPrimitives.tsx","../../../src/core/components/SchemaViewer/SchemaPresentation.tsx","../../../src/core/components/SchemaViewer/SchemaTree.tsx","../../../src/core/components/SchemaViewer/schema-utils.ts","../../../src/core/components/common/ExpandableCard.tsx","../../../src/core/components/common/MethodBar.tsx","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/prism.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-json.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-yaml.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-xml-doc.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-bash.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-graphql.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-javascript.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-python.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-go.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-java.js","../../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-csharp.js","../../../src/core/components/CodeBlock/CodeBlock.tsx","../../../src/core/components/common/Tabs.tsx","../../../src/core/components/common/ExampleSelector.tsx","../../../src/core/components/Reference/ReferenceLayout.tsx","../../../src/core/components/common/Collapsible.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { createContext, useContext, useMemo } from 'react'\nimport type { ReactNode } from 'react'\n\n/**\n * The document-wide \"expand all\" signal.\n *\n * `expandGeneration` is bumped on every Expand/Collapse-All toggle. Collapsibles\n * mirror `expandAll` only when the generation is > 0, so the initial mount\n * (generation 0) leaves each item's `defaultOpen` untouched, and each toggle\n * re-applies even if the user opened/closed an item in between.\n *\n * This lets deeply-nested collapsibles (response cards, request/response\n * sections) respond to Expand All without prop-drilling the signal through\n * every intermediate component.\n */\nexport interface ExpandState {\n expandAll: boolean\n expandGeneration: number\n}\n\nconst ExpandContext = createContext<ExpandState>({ expandAll: false, expandGeneration: 0 })\n\n/** Reads the current document-wide expand-all signal. */\nexport function useExpandAll(): ExpandState {\n return useContext(ExpandContext)\n}\n\n/** Publishes the expand-all signal to every collapsible in the subtree. */\nexport function ExpandProvider({\n expandAll,\n expandGeneration,\n children,\n}: ExpandState & { children: ReactNode }) {\n const value = useMemo(\n () => ({ expandAll, expandGeneration }),\n [expandAll, expandGeneration],\n )\n return <ExpandContext.Provider value={value}>{children}</ExpandContext.Provider>\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useEffect, useState } from 'react'\n\ninterface NavIdItem {\n id: string\n children?: NavIdItem[]\n}\n\n/**\n * Collects the **leaf** ids of a nav tree (items with no children) in document\n * order. Leaves map to the concrete section anchors (operations, types,\n * messages, schemas) — group/parent ids are containers and would over-match, so\n * they're skipped. Structural typing keeps this decoupled from `NavItem`.\n */\nexport function flattenNavItemIds(items: NavIdItem[]): string[] {\n const ids: string[] = []\n const walk = (list: NavIdItem[]) => {\n for (const item of list) {\n if (item.children && item.children.length > 0) walk(item.children)\n else ids.push(item.id)\n }\n }\n walk(items)\n return ids\n}\n\n/**\n * Scroll-spy: returns the id of the section currently near the top of the\n * viewport, for driving a sidebar's active-item highlight as the reader scrolls.\n *\n * Observes the elements whose ids are given (missing ones are ignored) with an\n * `IntersectionObserver` whose root band is a thin strip near the top of the\n * viewport (default `rootMargin` shrinks the bottom 80%, so only the top ~20%\n * counts). The active id is the **topmost** (earliest in `ids`) element in that\n * band; when the scroll position is between sections the last active id is kept.\n */\nexport function useScrollSpy(ids: string[], rootMargin = '0px 0px -80% 0px'): string | undefined {\n const [activeId, setActiveId] = useState<string | undefined>(undefined)\n // Stable dependency: re-observe only when the set of ids actually changes.\n const key = ids.join('|')\n\n useEffect(() => {\n if (typeof IntersectionObserver === 'undefined' || typeof document === 'undefined') return\n\n const visible = new Set<string>()\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) visible.add(entry.target.id)\n else visible.delete(entry.target.id)\n }\n const next = ids.find((id) => visible.has(id))\n if (next) setActiveId(next)\n },\n { rootMargin, threshold: 0 },\n )\n\n for (const id of ids) {\n const el = document.getElementById(id)\n if (el) observer.observe(el)\n }\n\n return () => observer.disconnect()\n // `ids` is captured via `key`; re-running on every array identity change\n // would thrash the observer.\n }, [key, rootMargin])\n\n return activeId\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useCallback, useEffect } from 'react'\n\nconst expandListeners = new Map<string, () => void>()\n\nexport function onExpandRequest(id: string, callback: () => void): () => void {\n expandListeners.set(id, callback)\n return () => {\n expandListeners.delete(id)\n }\n}\n\nexport function requestExpand(id: string) {\n const listener = expandListeners.get(id)\n if (listener) listener()\n}\n\nconst SMOOTH_THRESHOLD = 50\n\nexport function useHashScroll(operationCount = 0) {\n const scrollBehavior: ScrollBehavior = operationCount > SMOOTH_THRESHOLD ? 'instant' : 'smooth'\n\n useEffect(() => {\n const hash = window.location.hash.slice(1)\n if (!hash) return\n\n requestExpand(hash)\n\n const attempt = () => {\n const el = document.getElementById(hash)\n if (el) {\n el.scrollIntoView({ behavior: scrollBehavior, block: 'start' })\n return true\n }\n return false\n }\n\n if (attempt()) return\n\n let tries = 0\n const interval = setInterval(() => {\n if (attempt() || ++tries >= 10) clearInterval(interval)\n }, 200)\n\n return () => clearInterval(interval)\n }, [scrollBehavior])\n\n const navigateTo = useCallback((id: string) => {\n window.history.replaceState(null, '', `#${id}`)\n requestExpand(id)\n\n requestAnimationFrame(() => {\n const el = document.getElementById(id)\n el?.scrollIntoView({ behavior: scrollBehavior, block: 'start' })\n })\n }, [scrollBehavior])\n\n return { navigateTo }\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useCallback, useState } from 'react'\nimport { css } from '../../styles/css'\n\ninterface SearchBarProps {\n placeholder?: string\n onSearch: (query: string) => void\n /**\n * Optional controlled value. When provided, the input reflects it (so an\n * external filter — e.g. a clicked tag — shows in the box and can be cleared\n * from outside). When omitted, the input manages its own state.\n */\n value?: string\n}\n\nexport function SearchBar({ placeholder = 'Search...', onSearch, value }: SearchBarProps) {\n const [internalValue, setInternalValue] = useState('')\n const isControlled = value !== undefined\n const displayValue = isControlled ? value : internalValue\n\n const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const query = e.target.value\n if (!isControlled) setInternalValue(query)\n onSearch(query)\n }, [onSearch, isControlled])\n\n return (\n <div className={`omnispec-search ${containerStyle}`}>\n <input\n type=\"text\"\n value={displayValue}\n onChange={handleChange}\n placeholder={placeholder}\n className={inputStyle}\n aria-label={placeholder}\n />\n </div>\n )\n}\n\nconst containerStyle = css({\n padding: '12px',\n})\n\nconst inputStyle = css({\n width: '100%',\n padding: '10px 12px',\n border: '1px solid var(--omnispec-input-border)',\n borderRadius: 'var(--omnispec-border-radius)',\n backgroundColor: 'var(--omnispec-input-bg)',\n color: 'var(--omnispec-fg-primary)',\n fontSize: 'var(--omnispec-font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n '&:focus': {\n borderColor: 'var(--omnispec-color-primary)',\n boxShadow: '0 0 0 2px var(--omnispec-color-primary)33',\n },\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport type { ReactNode } from 'react'\nimport { css } from '@core/styles/css'\nimport { mq } from '@core/styles/breakpoints'\nimport { Icon } from '@core/components/common/Icon'\nimport { Button } from '@core/components/common/Button'\n\ninterface SpecToolbarProps {\n /** The overview/header content (title, description, metadata) */\n overview: ReactNode\n /** Version badge shown alongside actions on mobile */\n versionBadge?: ReactNode\n /** Label for the expand/collapse toggle (e.g., \"operations\", \"channels\", \"types\") */\n expandLabel: string\n /** Whether all items are currently expanded */\n allExpanded: boolean\n /** Callback to toggle expand/collapse all */\n onToggleExpand: () => void\n /** URL for download button. Omit to hide. */\n downloadLink?: string\n}\n\nexport function SpecToolbar({\n overview,\n versionBadge,\n allExpanded,\n onToggleExpand,\n downloadLink,\n}: SpecToolbarProps) {\n return (\n <div className={containerStyle}>\n <div className={overviewWrapStyle}>{overview}</div>\n <div className={actionsStyle}>\n {versionBadge && <div className={mobileBadgeStyle}>{versionBadge}</div>}\n <Button className={iconBtnStyle} onClick={onToggleExpand}>\n <Icon name={allExpanded ? 'compress' : 'expand'} size=\"0.85em\" />\n <span className={buttonLabelStyle}>{allExpanded ? 'Collapse All' : 'Expand All'}</span>\n </Button>\n {downloadLink && (\n <Button\n className={iconBtnStyle}\n href={downloadLink}\n download\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <Icon name=\"download\" size=\"0.85em\" />\n <span className={buttonLabelStyle}>Download</span>\n </Button>\n )}\n </div>\n </div>\n )\n}\n\nconst containerStyle = css({\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: '1rem',\n maxWidth: '100%',\n overflow: 'hidden',\n marginBottom: '2rem',\n [mq.mobile]: {\n flexDirection: 'column',\n gap: '0.5rem',\n marginBottom: '1.5rem',\n },\n})\n\nconst overviewWrapStyle = css({\n flex: 1,\n minWidth: 0,\n})\n\nconst actionsStyle = css({\n display: 'flex',\n gap: '0.5rem',\n flexShrink: 0,\n alignItems: 'center',\n [mq.mobile]: {\n width: '100%',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n paddingTop: '1rem',\n },\n})\n\nconst mobileBadgeStyle = css({\n display: 'none',\n marginRight: 'auto',\n [mq.mobile]: {\n display: 'block',\n },\n})\n\nconst iconBtnStyle = css({\n [mq.mobile]: {\n padding: '0.25rem',\n /*\n * Icon-only on mobile (labels hidden below): give the buttons a full\n * 2.75rem (44px) touch target and scale the em-sized icon up with the\n * font size so it reads at a glance.\n */\n minWidth: '1.75rem',\n minHeight: '1.75rem',\n fontSize: '1.25rem',\n justifyContent: 'center',\n },\n})\n\nconst buttonLabelStyle = css({\n [mq.mobile]: {\n fontSize: '0.875rem',\n },\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * Resolves the `downloadLink` prop into the concrete URL string the toolbar\n * download button should point at (or `undefined` to hide it).\n *\n * - `true` → the spec URL, when `spec` is a URL string (object specs have no URL)\n * - string → that URL, verbatim\n * - `false` / `undefined` → hidden\n *\n * Every spec renderer must use this so the Download button behaves identically\n * across OpenAPI, AsyncAPI, GraphQL, SOAP, and gRPC. Do not re-implement the\n * branching inline in a renderer.\n */\nexport function resolveDownloadLink(\n downloadLink: string | boolean | undefined,\n spec: string | Record<string, unknown>,\n): string | undefined {\n if (downloadLink === true) {\n return typeof spec === 'string' ? spec : undefined\n }\n return typeof downloadLink === 'string' ? downloadLink : undefined\n}\n","/**\n * marked v15.0.12 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n\n// src/defaults.ts\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nvar _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n// src/rules.ts\nvar noopTest = { exec: () => null };\nfunction edit(regex, opt = \"\") {\n let source = typeof regex === \"string\" ? regex : regex.source;\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === \"string\" ? val : val.source;\n valSource = valSource.replace(other.caret, \"$1\");\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nvar other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceTabs: /^\\t+/,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] /,\n listReplaceTask: /^\\[[ xX]\\] +/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^<a /i,\n endATag: /^<\\/a>/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^</,\n endAngleBracket: />$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, \"i\")\n};\nvar newline = /^(?:[ \\t]*(?:\\n|$))+/;\nvar blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nvar fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nvar hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nvar heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nvar bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nvar lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nvar lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g, \"\").getRegex();\nvar lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex();\nvar _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nvar blockText = /^[^\\n]+/;\nvar _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nvar def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\", _blockLabel).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nvar list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nvar _tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\";\nvar _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nvar html = edit(\n \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\n \"i\"\n).replace(\"comment\", _comment).replace(\"tag\", _tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nvar paragraph = edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", paragraph).getRegex();\nvar blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\nvar gfmTable = edit(\n \"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockGfm = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", gfmTable).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex()\n};\nvar blockPedantic = {\n ...blockNormal,\n html: edit(\n `^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`\n ).replace(\"comment\", _comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", lheading).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n};\nvar escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nvar inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nvar br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nvar inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\nvar _punctuation = /[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpace = /[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpace = /[^\\s\\p{P}\\p{S}]/u;\nvar punctuation = edit(/^((?![*_])punctSpace)/, \"u\").replace(/punctSpace/g, _punctuationOrSpace).getRegex();\nvar _punctuationGfmStrongEm = /(?!~)[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpaceGfmStrongEm = /(?!~)[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpaceGfmStrongEm = /(?:[^\\s\\p{P}\\p{S}]|~)/u;\nvar blockSkip = /\\[[^[\\]]*?\\]\\((?:\\\\.|[^\\\\\\(\\)]|\\((?:\\\\.|[^\\\\\\(\\)])*\\))*\\)|`[^`]*?`|<[^<>]*?>/g;\nvar emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/;\nvar emStrongLDelim = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongLDelimGfm = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimAstCore = \"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\";\nvar emStrongRDelimAst = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimUnd = edit(\n \"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\n \"gu\"\n).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar anyPunctuation = edit(/\\\\(punct)/, \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nvar _inlineComment = edit(_comment).replace(\"(?:-->|$)\", \"-->\").getRegex();\nvar tag = edit(\n \"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\"\n).replace(\"comment\", _inlineComment).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex();\nvar _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nvar link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\", _inlineLabel).replace(\"href\", /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nvar reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", _inlineLabel).replace(\"ref\", _blockLabel).getRegex();\nvar nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", _blockLabel).getRegex();\nvar reflinkSearch = edit(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", reflink).replace(\"nolink\", nolink).getRegex();\nvar inlineNormal = {\n _backpedal: noopTest,\n // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\nvar inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", _inlineLabel).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", _inlineLabel).getRegex()\n};\nvar inlineGfm = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\nvar inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace(\"{2,}\", \"*\").getRegex(),\n text: edit(inlineGfm.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n};\nvar block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nvar inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n// src/helpers.ts\nvar escapeReplacements = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n};\nvar getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape2(html2, encode) {\n if (encode) {\n if (other.escapeTest.test(html2)) {\n return html2.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html2)) {\n return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html2;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(other.percentDecode, \"%\");\n } catch {\n return null;\n }\n return href;\n}\nfunction splitCells(tableRow, count) {\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === \"\\\\\") escaped = !escaped;\n if (escaped) {\n return \"|\";\n } else {\n return \" |\";\n }\n }), cells = row.split(other.splitPipe);\n let i = 0;\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push(\"\");\n }\n }\n for (; i < cells.length; i++) {\n cells[i] = cells[i].trim().replace(other.slashPipe, \"|\");\n }\n return cells;\n}\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return \"\";\n }\n let suffLen = 0;\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n return -1;\n}\n\n// src/Tokenizer.ts\nfunction outputLink(cap, link2, raw, lexer2, rules) {\n const href = link2.href;\n const title = link2.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, \"$1\");\n lexer2.state.inLink = true;\n const token = {\n type: cap[0].charAt(0) === \"!\" ? \"image\" : \"link\",\n raw,\n href,\n title,\n text,\n tokens: lexer2.inlineTokens(text)\n };\n lexer2.state.inLink = false;\n return token;\n}\nfunction indentCodeCompensation(raw, text, rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text.split(\"\\n\").map((node) => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n }).join(\"\\n\");\n}\nvar _Tokenizer = class {\n options;\n rules;\n // set by the lexer\n lexer;\n // set by the lexer\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: \"space\",\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(this.rules.other.codeRemoveIndent, \"\");\n return {\n type: \"code\",\n raw: cap[0],\n codeBlockStyle: \"indented\",\n text: !this.options.pedantic ? rtrim(text, \"\\n\") : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || \"\", this.rules);\n return {\n type: \"code\",\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, \"#\");\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n text = trimmed.trim();\n }\n }\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: \"hr\",\n raw: rtrim(cap[0], \"\\n\")\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], \"\\n\").split(\"\\n\");\n let raw = \"\";\n let text = \"\";\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join(\"\\n\");\n const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, \"\\n $1\").replace(this.rules.other.blockquoteSetextReplace2, \"\");\n raw = raw ? `${raw}\n${currentRaw}` : currentRaw;\n text = text ? `${text}\n${currentText}` : currentText;\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"code\") {\n break;\n } else if (lastToken?.type === \"blockquote\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === \"list\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1).raw.length).split(\"\\n\");\n continue;\n }\n }\n return {\n type: \"blockquote\",\n raw,\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list2 = {\n type: \"list\",\n raw: \"\",\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : \"\",\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : \"[*+-]\";\n }\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n while (src) {\n let endEarly = false;\n let raw = \"\";\n let itemContents = \"\";\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) {\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split(\"\\n\", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => \" \".repeat(3 * t.length));\n let nextLine = src.split(\"\\n\", 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = cap[2].search(this.rules.other.nonSpaceChar);\n indent = indent > 4 ? 1 : indent;\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && this.rules.other.blankLine.test(nextLine)) {\n raw += nextLine + \"\\n\";\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n while (src) {\n const rawLine = src.split(\"\\n\", 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, \" \");\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, \" \");\n }\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n if (hrRegex.test(nextLine)) {\n break;\n }\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {\n itemContents += \"\\n\" + nextLineWithoutTabs.slice(indent);\n } else {\n if (blankLine) {\n break;\n }\n if (line.replace(this.rules.other.tabCharGlobal, \" \").search(this.rules.other.nonSpaceChar) >= 4) {\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += \"\\n\" + nextLine;\n }\n if (!blankLine && !nextLine.trim()) {\n blankLine = true;\n }\n raw += rawLine + \"\\n\";\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n if (!list2.loose) {\n if (endsWithBlankLine) {\n list2.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n if (this.options.gfm) {\n istask = this.rules.other.listIsTask.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== \"[ ] \";\n itemContents = itemContents.replace(this.rules.other.listReplaceTask, \"\");\n }\n }\n list2.items.push({\n type: \"list_item\",\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list2.raw += raw;\n }\n const lastItem = list2.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n return;\n }\n list2.raw = list2.raw.trimEnd();\n for (let i = 0; i < list2.items.length; i++) {\n this.lexer.state.top = false;\n list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []);\n if (!list2.loose) {\n const spacers = list2.items[i].tokens.filter((t) => t.type === \"space\");\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw));\n list2.loose = hasMultipleLineBreaks;\n }\n }\n if (list2.loose) {\n for (let i = 0; i < list2.items.length; i++) {\n list2.items[i].loose = true;\n }\n }\n return list2;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: \"html\",\n block: true,\n raw: cap[0],\n pre: cap[1] === \"pre\" || cap[1] === \"script\" || cap[1] === \"style\",\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, \" \");\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\";\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : cap[3];\n return {\n type: \"def\",\n tag: tag2,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, \"\").split(\"|\");\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, \"\").split(\"\\n\") : [];\n const item = {\n type: \"table\",\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n return;\n }\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push(\"right\");\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push(\"center\");\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push(\"left\");\n } else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i]\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i]\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[2].charAt(0) === \"=\" ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === \"\\n\" ? cap[1].slice(0, -1) : cap[1];\n return {\n type: \"paragraph\",\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: \"escape\",\n raw: cap[0],\n text: cap[1]\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: \"html\",\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n if (!this.rules.other.endAngleBracket.test(trimmedUrl)) {\n return;\n }\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), \"\\\\\");\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n const lastParenIndex = findClosingBracket(cap[2], \"()\");\n if (lastParenIndex === -2) {\n return;\n }\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf(\"!\") === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = \"\";\n }\n }\n let href = cap[2];\n let title = \"\";\n if (this.options.pedantic) {\n const link2 = this.rules.other.pedanticHrefTitle.exec(href);\n if (link2) {\n href = link2[1];\n title = link2[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : \"\";\n }\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) {\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, \"$1\") : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, \"$1\") : title\n }, cap[0], this.lexer, this.rules);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, \" \");\n const link2 = links[linkString.toLowerCase()];\n if (!link2) {\n const text = cap[0].charAt(0);\n return {\n type: \"text\",\n raw: text,\n text\n };\n }\n return outputLink(cap, link2, cap[0], this.lexer, this.rules);\n }\n }\n emStrong(src, maskedSrc, prevChar = \"\") {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n const nextChar = match[1] || match[2] || \"\";\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue;\n rLength = [...rDelim].length;\n if (match[3] || match[4]) {\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue;\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0) continue;\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n if (Math.min(lLength, rLength) % 2) {\n const text2 = raw.slice(1, -1);\n return {\n type: \"em\",\n raw,\n text: text2,\n tokens: this.lexer.inlineTokens(text2)\n };\n }\n const text = raw.slice(2, -2);\n return {\n type: \"strong\",\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, \" \");\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: \"codespan\",\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: \"br\",\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: \"del\",\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[1];\n href = \"mailto:\" + text;\n } else {\n text = cap[1];\n href = text;\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[0];\n href = \"mailto:\" + text;\n } else {\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? \"\";\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === \"www.\") {\n href = \"http://\" + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n escaped\n };\n }\n }\n};\n\n// src/Lexer.ts\nvar _Lexer = class __Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options2) {\n this.tokens = [];\n this.tokens.links = /* @__PURE__ */ Object.create(null);\n this.options = options2 || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src.replace(other.carriageReturn, \"\\n\");\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, \" \").replace(other.spaceLine, \"\");\n }\n while (src) {\n let token;\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== void 0) {\n lastToken.raw += \"\\n\";\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.raw;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === \"paragraph\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let maskedSrc = src;\n let match = null;\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf(\"[\") + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"++\" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n let keepPrevChar = false;\n let prevChar = \"\";\n while (src) {\n if (!keepPrevChar) {\n prevChar = \"\";\n }\n keepPrevChar = false;\n let token;\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === \"text\" && lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== \"_\") {\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n};\n\n// src/Renderer.ts\nvar _Renderer = class {\n options;\n parser;\n // set by the parser\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(token) {\n return \"\";\n }\n code({ text, lang, escaped }) {\n const langString = (lang || \"\").match(other.notSpaceStart)?.[0];\n const code = text.replace(other.endingNewline, \"\") + \"\\n\";\n if (!langString) {\n return \"<pre><code>\" + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n return '<pre><code class=\"language-' + escape2(langString) + '\">' + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `<blockquote>\n${body}</blockquote>\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\n`;\n }\n hr(token) {\n return \"<hr>\\n\";\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = \"\";\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? \"ol\" : \"ul\";\n const startAttr = ordered && start !== 1 ? ' start=\"' + start + '\"' : \"\";\n return \"<\" + type + startAttr + \">\\n\" + body + \"</\" + type + \">\\n\";\n }\n listitem(item) {\n let itemBody = \"\";\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens[0]?.type === \"paragraph\") {\n item.tokens[0].text = checkbox + \" \" + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === \"text\") {\n item.tokens[0].tokens[0].text = checkbox + \" \" + escape2(item.tokens[0].tokens[0].text);\n item.tokens[0].tokens[0].escaped = true;\n }\n } else {\n item.tokens.unshift({\n type: \"text\",\n raw: checkbox + \" \",\n text: checkbox + \" \",\n escaped: true\n });\n }\n } else {\n itemBody += checkbox + \" \";\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `<li>${itemBody}</li>\n`;\n }\n checkbox({ checked }) {\n return \"<input \" + (checked ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph({ tokens }) {\n return `<p>${this.parser.parseInline(tokens)}</p>\n`;\n }\n table(token) {\n let header = \"\";\n let cell = \"\";\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = \"\";\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = \"\";\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body) body = `<tbody>${body}</tbody>`;\n return \"<table>\\n<thead>\\n\" + header + \"</thead>\\n\" + body + \"</table>\\n\";\n }\n tablerow({ text }) {\n return `<tr>\n${text}</tr>\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? \"th\" : \"td\";\n const tag2 = token.align ? `<${type} align=\"${token.align}\">` : `<${type}>`;\n return tag2 + content + `</${type}>\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `<strong>${this.parser.parseInline(tokens)}</strong>`;\n }\n em({ tokens }) {\n return `<em>${this.parser.parseInline(tokens)}</em>`;\n }\n codespan({ text }) {\n return `<code>${escape2(text, true)}</code>`;\n }\n br(token) {\n return \"<br>\";\n }\n del({ tokens }) {\n return `<del>${this.parser.parseInline(tokens)}</del>`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + escape2(title) + '\"';\n }\n out += \">\" + text + \"</a>\";\n return out;\n }\n image({ href, title, text, tokens }) {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer);\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escape2(text);\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${escape2(title)}\"`;\n }\n out += \">\";\n return out;\n }\n text(token) {\n return \"tokens\" in token && token.tokens ? this.parser.parseInline(token.tokens) : \"escaped\" in token && token.escaped ? token.text : escape2(token.text);\n }\n};\n\n// src/TextRenderer.ts\nvar _TextRenderer = class {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return \"\" + text;\n }\n image({ text }) {\n return \"\" + text;\n }\n br() {\n return \"\";\n }\n};\n\n// src/Parser.ts\nvar _Parser = class __Parser {\n options;\n renderer;\n textRenderer;\n constructor(options2) {\n this.options = options2 || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(genericToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"space\": {\n out += this.renderer.space(token);\n continue;\n }\n case \"hr\": {\n out += this.renderer.hr(token);\n continue;\n }\n case \"heading\": {\n out += this.renderer.heading(token);\n continue;\n }\n case \"code\": {\n out += this.renderer.code(token);\n continue;\n }\n case \"table\": {\n out += this.renderer.table(token);\n continue;\n }\n case \"blockquote\": {\n out += this.renderer.blockquote(token);\n continue;\n }\n case \"list\": {\n out += this.renderer.list(token);\n continue;\n }\n case \"html\": {\n out += this.renderer.html(token);\n continue;\n }\n case \"paragraph\": {\n out += this.renderer.paragraph(token);\n continue;\n }\n case \"text\": {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === \"text\") {\n textToken = tokens[++i];\n body += \"\\n\" + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: \"paragraph\",\n raw: body,\n text: body,\n tokens: [{ type: \"text\", raw: body, text: body, escaped: true }]\n });\n } else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer = this.renderer) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(anyToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"escape\": {\n out += renderer.text(token);\n break;\n }\n case \"html\": {\n out += renderer.html(token);\n break;\n }\n case \"link\": {\n out += renderer.link(token);\n break;\n }\n case \"image\": {\n out += renderer.image(token);\n break;\n }\n case \"strong\": {\n out += renderer.strong(token);\n break;\n }\n case \"em\": {\n out += renderer.em(token);\n break;\n }\n case \"codespan\": {\n out += renderer.codespan(token);\n break;\n }\n case \"br\": {\n out += renderer.br(token);\n break;\n }\n case \"del\": {\n out += renderer.del(token);\n break;\n }\n case \"text\": {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n};\n\n// src/Hooks.ts\nvar _Hooks = class {\n options;\n block;\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n static passThroughHooks = /* @__PURE__ */ new Set([\n \"preprocess\",\n \"postprocess\",\n \"processAllTokens\"\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html2) {\n return html2;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n /**\n * Provide function to tokenize markdown\n */\n provideLexer() {\n return this.block ? _Lexer.lex : _Lexer.lexInline;\n }\n /**\n * Provide function to parse tokens\n */\n provideParser() {\n return this.block ? _Parser.parse : _Parser.parseInline;\n }\n};\n\n// src/Instance.ts\nvar Marked = class {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case \"table\": {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case \"list\": {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens2 = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens2, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n const opts = { ...pack };\n opts.async = this.defaults.async || opts.async || false;\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error(\"extension name required\");\n }\n if (\"renderer\" in ext) {\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n extensions.renderers[ext.name] = function(...args2) {\n let ret = ext.renderer.apply(this, args2);\n if (ret === false) {\n ret = prevRenderer.apply(this, args2);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (\"tokenizer\" in ext) {\n if (!ext.level || ext.level !== \"block\" && ext.level !== \"inline\") {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) {\n if (ext.level === \"block\") {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === \"inline\") {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (\"childTokens\" in ext && ext.childTokens) {\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if ([\"options\", \"parser\"].includes(prop)) {\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n renderer[rendererProp] = (...args2) => {\n let ret = rendererFunc.apply(renderer, args2);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args2);\n }\n return ret || \"\";\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if ([\"options\", \"rules\", \"lexer\"].includes(prop)) {\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n tokenizer[tokenizerProp] = (...args2) => {\n let ret = tokenizerFunc.apply(tokenizer, args2);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args2);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if ([\"options\", \"block\"].includes(prop)) {\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => {\n return prevHook.call(hooks, ret2);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[hooksProp] = (...args2) => {\n let ret = hooksFunc.apply(hooks, args2);\n if (ret === false) {\n ret = prevHook.apply(hooks, args2);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n if (pack.walkTokens) {\n const walkTokens2 = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens2) {\n values = values.concat(walkTokens2.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options2) {\n return _Lexer.lex(src, options2 ?? this.defaults);\n }\n parser(tokens, options2) {\n return _Parser.parse(tokens, options2 ?? this.defaults);\n }\n parseMarkdown(blockType) {\n const parse2 = (src, options2) => {\n const origOpt = { ...options2 };\n const opt = { ...this.defaults, ...origOpt };\n const throwError = this.onError(!!opt.silent, !!opt.async);\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n }\n if (typeof src === \"undefined\" || src === null) {\n return throwError(new Error(\"marked(): input parameter is undefined or null\"));\n }\n if (typeof src !== \"string\") {\n return throwError(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(src) + \", string expected\"));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline;\n const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline;\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer2(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html2 = parser2(tokens, opt);\n if (opt.hooks) {\n html2 = opt.hooks.postprocess(html2);\n }\n return html2;\n } catch (e) {\n return throwError(e);\n }\n };\n return parse2;\n }\n onError(silent, async) {\n return (e) => {\n e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\";\n if (silent) {\n const msg = \"<p>An error occurred:</p><pre>\" + escape2(e.message + \"\", true) + \"</pre>\";\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n};\n\n// src/marked.ts\nvar markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\nmarked.options = marked.setOptions = function(options2) {\n markedInstance.setOptions(options2);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\nmarked.use = function(...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.walkTokens = function(tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\nmarked.parseInline = markedInstance.parseInline;\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nvar options = marked.options;\nvar setOptions = marked.setOptions;\nvar use = marked.use;\nvar walkTokens = marked.walkTokens;\nvar parseInline = marked.parseInline;\nvar parse = marked;\nvar parser = _Parser.parse;\nvar lexer = _Lexer.lex;\nexport {\n _Hooks as Hooks,\n _Lexer as Lexer,\n Marked,\n _Parser as Parser,\n _Renderer as Renderer,\n _TextRenderer as TextRenderer,\n _Tokenizer as Tokenizer,\n _defaults as defaults,\n _getDefaults as getDefaults,\n lexer,\n marked,\n options,\n parse,\n parseInline,\n parser,\n setOptions,\n use,\n walkTokens\n};\n//# sourceMappingURL=marked.esm.js.map\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * Allowlist-based HTML sanitizer for markdown-rendered spec content.\n *\n * Specs are third-party input — descriptions can carry HTML through markdown.\n * This strips script-capable elements and attributes while keeping the tags\n * marked produces for normal markdown (including GFM tables).\n */\n\nconst ALLOWED_TAGS = new Set([\n 'a', 'abbr', 'b', 'blockquote', 'br', 'code', 'del', 'details', 'div', 'em',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'ins', 'kbd', 'li',\n 'mark', 'ol', 'p', 'pre', 's', 'small', 'span', 'strong', 'sub', 'summary',\n 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'ul',\n])\n\nconst ALLOWED_ATTRS = new Set(['href', 'src', 'alt', 'title', 'align', 'colspan', 'rowspan', 'lang', 'dir'])\n\nconst SAFE_URL = /^(?:https?:|mailto:|tel:|#|\\/(?!\\/))/i\n\nfunction isSafeUrl(value: string): boolean {\n return SAFE_URL.test(value.trim()) || !/[:]/.test(value.split(/[?#]/)[0])\n}\n\nfunction cleanElement(el: Element): void {\n // Remove disallowed attributes (event handlers, style, unknown attrs).\n for (const attr of Array.from(el.attributes)) {\n const name = attr.name.toLowerCase()\n if (!ALLOWED_ATTRS.has(name)) {\n el.removeAttribute(attr.name)\n continue\n }\n if ((name === 'href' || name === 'src') && !isSafeUrl(attr.value)) {\n el.removeAttribute(attr.name)\n }\n }\n // External links open safely.\n if (el.tagName.toLowerCase() === 'a' && el.getAttribute('href')) {\n el.setAttribute('rel', 'noopener noreferrer')\n }\n}\n\nfunction walk(node: Element | DocumentFragment): void {\n for (const child of Array.from(node.children)) {\n const tag = child.tagName.toLowerCase()\n if (!ALLOWED_TAGS.has(tag)) {\n // Drop the element but keep its (sanitized) children for benign\n // unknown wrappers; script-capable elements are removed entirely.\n const dropEntirely = ['script', 'style', 'iframe', 'object', 'embed', 'form', 'input', 'button', 'textarea', 'select', 'link', 'meta', 'base'].includes(tag)\n if (dropEntirely) {\n child.remove()\n continue\n }\n walk(child)\n child.replaceWith(...Array.from(child.childNodes))\n continue\n }\n cleanElement(child)\n walk(child)\n }\n}\n\n/**\n * Sanitizes an HTML string. In DOM environments uses a detached document via\n * DOMParser; in SSR (no DOMParser) falls back to a conservative regex strip —\n * the client re-sanitizes properly on hydration.\n */\nexport function sanitizeHtml(html: string): string {\n if (!html) return ''\n\n if (typeof DOMParser === 'undefined') {\n return html\n .replace(/<(script|style|iframe|object|embed|form)[\\s\\S]*?<\\/\\1>/gi, '')\n .replace(/<(script|style|iframe|object|embed|form|link|meta|base)[^>]*\\/?>(<\\/\\1>)?/gi, '')\n .replace(/\\son\\w+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s>]+)/gi, '')\n .replace(/(href|src)\\s*=\\s*(?:\"javascript:[^\"]*\"|'javascript:[^']*')/gi, '')\n }\n\n const doc = new DOMParser().parseFromString(`<body>${html}</body>`, 'text/html')\n walk(doc.body)\n return doc.body.innerHTML\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useMemo } from 'react'\nimport { marked } from 'marked'\nimport { css, cx } from '@core/styles/css'\nimport { sanitizeHtml } from '@core/utils/sanitize-html'\n\ninterface MarkdownRendererProps {\n content: string\n className?: string\n}\n\n/*\n * CommonMark line-break semantics: single newlines are soft breaks that flow\n * as spaces. Spec descriptions almost always come from YAML block scalars\n * (`description: |`) whose newlines are just the author's source wrapping —\n * `breaks: true` would turn each one into a <br> and hard-wrap every\n * multi-line description (worst on mobile). Authors who want a real line\n * break use a trailing double space, a backslash, or a blank line.\n */\nmarked.setOptions({\n breaks: false,\n gfm: true,\n})\n\nconst containerStyle = css({\n color: 'var(--omnispec-fg-primary)',\n fontSize: 'var(--omnispec-font-size-base)',\n lineHeight: 1.6,\n})\n\nexport function MarkdownRenderer({ content, className }: MarkdownRendererProps) {\n const html = useMemo(() => {\n if (!content) return ''\n // Spec content is third-party input — always sanitize the rendered HTML.\n return sanitizeHtml(marked.parse(content, { async: false }) as string)\n }, [content])\n\n return (\n <div\n className={cx('omnispec-markdown', containerStyle, className)}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n )\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css } from '../../styles/css'\n\ntype HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head'\n\ninterface BadgeProps {\n label: string\n variant?: 'method' | 'status' | 'protocol' | 'default'\n method?: HttpMethod\n color?: string\n}\n\nconst methodColorVars: Record<HttpMethod, string> = {\n get: 'var(--omnispec-color-get)',\n post: 'var(--omnispec-color-post)',\n put: 'var(--omnispec-color-put)',\n delete: 'var(--omnispec-color-delete)',\n patch: 'var(--omnispec-color-patch)',\n options: 'var(--omnispec-fg-muted)',\n head: 'var(--omnispec-fg-muted)',\n}\n\nconst badgeBaseStyle = css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '5px 8px',\n borderRadius: '4px',\n fontSize: '10px',\n fontWeight: 700,\n textTransform: 'uppercase',\n letterSpacing: '0.04em',\n color: '#ffffff',\n})\n\nexport function Badge({ label, variant = 'default', method, color }: BadgeProps) {\n const bgColor = color\n ?? (variant === 'method' && method ? methodColorVars[method] : undefined)\n ?? 'var(--omnispec-fg-muted)'\n\n const dynamicStyle = css({\n backgroundColor: bgColor,\n minWidth: variant === 'method' ? '52px' : undefined,\n })\n\n return <span className={`omnispec-badge ${badgeBaseStyle} ${dynamicStyle}`}>{label}</span>\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * Schema-family presentational primitives.\n *\n * These are the shared LEAF atoms used by every schema/type renderer in the\n * package — the JSON Schema `SchemaTree` (OpenAPI + AsyncAPI) and the\n * spec-specific trees `TypeDetail` (GraphQL), `MessageDetail` (gRPC), and the\n * SOAP/WSDL type views. Each spec keeps its own STRUCTURE (rows vs. tables,\n * expand/collapse, composition, args, oneof, field numbers) but renders its\n * leaves through these atoms.\n *\n * SINGLE SOURCE OF TRUTH: a stylistic change to a field name, type reference,\n * badge, description, or section heading belongs HERE. Changing it here\n * propagates to every spec renderer at once. Do NOT re-implement these styles\n * locally in a spec renderer — see the \"Schema-family map\" in\n * `src/core/components/SchemaViewer/CLAUDE.md`.\n *\n * These leaves are authored as `@emotion/styled` primitives (via\n * `@core/styles/styled`). The exported component APIs are stable — Pro\n * renderers import them and depend on the prop shapes below.\n */\n\nimport type { ReactNode } from 'react'\nimport { styled } from '@core/styles/styled'\n\n/** The identifier of a property / field / enum value / message field. */\nexport function FieldName({\n name,\n required = false,\n deprecated = false,\n className,\n}: {\n name: ReactNode\n required?: boolean\n deprecated?: boolean\n className?: string\n}) {\n return (\n <FieldNameText deprecated={deprecated} className={className}>\n {name}\n {required && <RequiredMark>*</RequiredMark>}\n </FieldNameText>\n )\n}\n\n/** A clickable cross-reference to another type / message / schema. */\nexport function SchemaRefLink({\n onClick,\n children,\n className,\n}: {\n onClick?: () => void\n children: ReactNode\n className?: string\n}) {\n return (\n <RefLinkButton type=\"button\" onClick={onClick} className={className}>\n {children}\n </RefLinkButton>\n )\n}\n\n/** A description / documentation paragraph for a field or type. */\nexport function FieldDescription({\n children,\n className,\n}: {\n children: ReactNode\n className?: string\n}) {\n return <DescriptionParagraph className={className}>{children}</DescriptionParagraph>\n}\n\n/** A sub-section heading inside a schema/type body (e.g. \"Fields\", \"Values\"). */\nexport function SchemaSectionTitle({\n children,\n className,\n}: {\n children: ReactNode\n className?: string\n}) {\n return <SectionTitleHeading className={className}>{children}</SectionTitleHeading>\n}\n\nexport type SchemaBadgeVariant =\n | 'required'\n | 'deprecated'\n | 'readonly'\n | 'writeonly'\n | 'constraint'\n | 'enum'\n | 'muted'\n | 'default'\n\n/**\n * A subtle inline badge for schema metadata (required, deprecated, read-only,\n * constraints, enum values, etc.). Rendered as colored text rather than a\n * filled pill — the filled/uppercase `common/Badge` is a different family used\n * for HTTP-method and nav badges.\n */\nexport function SchemaBadge({\n variant = 'default',\n children,\n className,\n}: {\n variant?: SchemaBadgeVariant\n children: ReactNode\n className?: string\n}) {\n return (\n <BadgeSpan variant={variant} className={className}>\n {children}\n </BadgeSpan>\n )\n}\n\n// --- Styled primitives (the single source of truth for schema-family leaf styling) ---\n\n/** `variant`/`deprecated` are style-only props; keep them off the DOM. */\nconst forwardExcept = (blocked: string) => (prop: string) => prop !== blocked\n\n/** Variant → color map for `SchemaBadge` (colored text, not a filled pill). */\nconst badgeVariantStyle: Record<SchemaBadgeVariant, Record<string, string>> = {\n required: { color: 'var(--omnispec-color-error)' },\n deprecated: { color: 'var(--omnispec-color-warning)', textDecoration: 'line-through' },\n readonly: { color: 'var(--omnispec-fg-muted)', fontStyle: 'italic' },\n writeonly: { color: 'var(--omnispec-fg-muted)', fontStyle: 'italic' },\n constraint: { color: 'var(--omnispec-fg-muted)' },\n enum: { color: 'var(--omnispec-color-info)' },\n muted: { color: 'var(--omnispec-fg-muted)' },\n default: { color: 'var(--omnispec-fg-muted)' },\n}\n\n// Authored as a `<span>`, NOT `<code>`, on purpose: the renderer embeds inside\n// host layouts (e.g. the portal's DocLayout) whose global prose `code`/`pre`\n// rules would otherwise bleed a dark \"code chip\" background onto field names —\n// an Emotion class reset can't reliably beat a host `!important`/high-specificity\n// rule, but a bare `<span>` is never targeted by prose `code {}` selectors.\nconst FieldNameText = styled('span', {\n shouldForwardProp: forwardExcept('deprecated'),\n})<{ deprecated?: boolean }>(({ deprecated }) => ({\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: 'var(--omnispec-font-size-sm)',\n fontWeight: 600,\n color: 'var(--omnispec-fg-primary)',\n backgroundColor: 'transparent',\n padding: 0,\n ...(deprecated\n ? {\n textDecoration: 'line-through',\n opacity: 0.6,\n }\n : {}),\n}))\n\nconst RequiredMark = styled.span({\n color: 'var(--omnispec-color-error)',\n marginLeft: '1px',\n})\n\nconst RefLinkButton = styled.button({\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n color: 'var(--omnispec-color-primary)',\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: 'inherit',\n padding: 0,\n textDecoration: 'underline',\n textDecorationStyle: 'dotted',\n '&:hover': {\n textDecorationStyle: 'solid',\n opacity: 0.8,\n },\n})\n\nconst DescriptionParagraph = styled.p({\n margin: 0,\n color: 'var(--omnispec-fg-secondary)',\n fontSize: 'var(--omnispec-font-size-xs)',\n fontFamily: 'var(--omnispec-font-sans)',\n lineHeight: 1.4,\n})\n\nconst SectionTitleHeading = styled.h5({\n margin: '0 0 12px',\n fontSize: 'var(--omnispec-font-size-md)',\n fontWeight: 700,\n color: 'var(--omnispec-fg-primary)',\n letterSpacing: '0.02em',\n})\n\nconst BadgeSpan = styled('span', {\n shouldForwardProp: forwardExcept('variant'),\n})<{ variant: SchemaBadgeVariant }>(({ variant }) => ({\n fontSize: 'var(--omnispec-font-size-xs)',\n ...badgeVariantStyle[variant],\n}))\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * Variant-driven presentation kit for the schema/property tree.\n *\n * This is the single source of truth for HOW EACH SCHEMA ITEM RENDERS in each\n * of the four presentations (`lines` / `table` / `card` / `tokens`). Every part\n * of a property row — the row shell, name, type, required marker, description,\n * enum chips, and nested-children wrapper — is its own `@emotion/styled`\n * component that switches appearance on a single `variant: SchemaStyle` prop.\n * Swapping a design is therefore a matter of editing one variant map here, not\n * hunting through the renderer.\n *\n * The CSS is transcribed from the approved design mock (the four `.dir-a/b/c/d`\n * directions), mapping the mock's raw hex palette onto OmniSpec theme tokens\n * (`var(--omnispec-*)`) so it themes and white-labels for free.\n *\n * Layout per direction:\n * - `lines` — inline name/type/required, hairline rows, chips for enums, a thin\n * left-guide for nested children.\n * - `table` — a CSS grid: name (+ required) in column one; type / description /\n * enum / children in column two (children keep to column two, so\n * each nested row indents under the type — like the mock).\n * - `card` — enclosed card with row hover and a soft type badge; nested\n * objects get an accent rail.\n * - `tokens` — dense, syntax-colored type/format, `*` for required, bordered\n * enum chips, dashed nesting guide.\n *\n * NOTE (migration): the OpenAPI/AsyncAPI `SchemaTree` composes this kit. The Pro\n * renderers (GraphQL/gRPC/SOAP) still use the older `PresentationContainer` /\n * `PresentationRow` / `PresentationChildren` shells below and will migrate onto\n * this slot kit in a follow-up.\n */\n\nimport type { ComponentPropsWithoutRef } from 'react'\nimport { styled } from '@core/styles/styled'\nimport type { CSSObject } from '@core/styles/styled'\nimport { mq } from '@core/styles/breakpoints'\nimport type { SchemaStyle } from '@core/components/SchemaViewer/schema-style'\n\n/** `variant` is a style-only prop; keep it off the DOM. */\nconst forwardExceptVariant = (prop: string) => prop !== 'variant'\n\n// Palette bridges (mock var → OmniSpec token).\nconst hairline = '1px solid var(--omnispec-border-color)'\nconst accentRail = '2px solid color-mix(in srgb, var(--omnispec-color-primary) 30%, transparent)'\nconst accentWash = 'color-mix(in srgb, var(--omnispec-color-primary) 4%, transparent)'\n\n// The table grid: name column + fluid content column. Named areas keep the\n// required label under the name and everything else (type/desc/enum/default/\n// children) in the content column, mirroring the mock's dir-b layout.\nconst TABLE_GRID: CSSObject = {\n display: 'grid',\n columnGap: '1.5rem',\n alignItems: 'start',\n gridTemplateColumns: 'minmax(7rem, 13.25rem) 1fr',\n gridTemplateAreas: '\"name type\" \"req desc\" \"req enum\" \"gut dflt\" \"gut kids\"',\n}\n\n// The `chain` grid: a fixed name column (name + required stacked) and a fluid\n// content column (type / description / enum / default). Nested children span\n// both columns. Mirrors the reference layout's two-column connector-line row.\nconst CHAIN_GRID: CSSObject = {\n display: 'grid',\n columnGap: '1rem',\n alignItems: 'start',\n gridTemplateColumns: 'minmax(8rem, 10rem) 1fr',\n gridTemplateAreas: '\"name type\" \"req desc\" \"req enum\" \"req dflt\" \"kids kids\"',\n}\n\n// The chain rail + its horizontal per-row connector, transcribed from the\n// the reference layout's rail + per-row tick. The connector is a `::before`\n// pseudo-element (absolute, so it never takes a grid cell).\nconst CHAIN_RAIL = '2px solid var(--omnispec-border-color)'\n\n// ===========================================================================\n// OUTER CONTAINER — `.schema`\n// ===========================================================================\n\nconst containerVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: {},\n table: {},\n tokens: {},\n // `card` encloses the whole tree in a bordered, rounded, clipped surface.\n card: {\n border: hairline,\n borderRadius: '0.6875rem',\n backgroundColor: 'var(--omnispec-bg-primary)',\n overflow: 'hidden',\n },\n // `chain` draws the depth-0 vertical rail, capped top and bottom so it reads\n // as a bracket enclosing the properties; nested rails come from the children\n // wrapper below.\n chain: {\n position: 'relative',\n borderLeft: CHAIN_RAIL,\n marginLeft: '0.5rem',\n '&::before, &::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n width: '1rem',\n height: 0,\n borderTop: CHAIN_RAIL,\n },\n '&::before': { top: 0 },\n '&::after': { bottom: 0 },\n },\n}\n\nconst PresentationContainerRoot = styled('div', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n ...containerVariantStyle[variant],\n}))\n\n/**\n * The outer wrapper for a schema tree (one per depth-0 render). Emits a stable\n * `data-schema-style` attribute so consumers can hook it in CSS and so the\n * active presentation is observable in tests regardless of style deltas.\n */\nexport function PresentationContainer({\n variant,\n ...rest\n}: { variant: SchemaStyle } & ComponentPropsWithoutRef<'div'>) {\n return <PresentationContainerRoot variant={variant} data-schema-style={variant} {...rest} />\n}\n\n// ===========================================================================\n// SLOT KIT — how each schema item renders, per variant\n// ===========================================================================\n\n// --- Row (`.prop`) ---------------------------------------------------------\n\nconst propRowVariantStyle: Record<SchemaStyle, CSSObject> = {\n // Airy hairline rows.\n lines: {\n padding: '0.72rem 0',\n borderBottom: hairline,\n '&:last-child': { borderBottom: 'none' },\n },\n // Two-column grid on desktop; stacked inline/block flow on mobile.\n table: {\n padding: '0.85rem 0',\n borderBottom: hairline,\n '&:last-child': { borderBottom: 'none' },\n [mq.desktop]: TABLE_GRID,\n },\n // Enclosed rows with inner padding + hover (the container draws the border).\n card: {\n padding: '0.72rem 0.95rem',\n borderBottom: hairline,\n transition: 'background-color 0.12s ease',\n '&:last-child': { borderBottom: 'none' },\n '&:hover': { backgroundColor: 'var(--omnispec-bg-secondary)' },\n },\n // Dense rows for power users.\n tokens: {\n padding: '0.36rem 0',\n },\n // Chain rows: no hairline; spacing via padding, a left inset for the rail,\n // and a `::before` connector reaching from the rail to the name.\n chain: {\n paddingLeft: '1.25rem',\n paddingBottom: '0.75rem',\n '&:last-child': { paddingBottom: 0 },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: '0.5rem',\n width: '1rem',\n height: 0,\n borderTop: CHAIN_RAIL,\n },\n [mq.desktop]: CHAIN_GRID,\n },\n}\n\n/** A single property row shell — composes the slots below. */\nexport const SchemaPropRow = styled('div', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n position: 'relative',\n minWidth: 0,\n ...propRowVariantStyle[variant],\n}))\n\n// --- Name (`.prop-name`) ---------------------------------------------------\n\nconst propNameVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: {},\n table: { [mq.desktop]: { gridArea: 'name' } },\n card: {},\n tokens: { fontSize: '0.84rem' },\n chain: { [mq.desktop]: { gridArea: 'name' } },\n}\n\n/** Property / field identifier — mono, semibold. Holds the chevron + required `*`. */\nexport const PropName = styled('span', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.4rem',\n minWidth: 0,\n // Long identifiers (e.g. WSDL/XSD type names) must break within their column\n // instead of overflowing into the type column — otherwise the two overlap in\n // the `table` grid.\n overflowWrap: 'anywhere',\n fontFamily: 'var(--omnispec-font-mono)',\n fontWeight: 600,\n color: 'var(--omnispec-fg-primary)',\n fontSize: '0.875rem',\n ...propNameVariantStyle[variant],\n}))\n\n/** The `*` required marker used by the `tokens` variant (dir-d). */\nexport const PropRequiredStar = styled.span({\n color: 'var(--omnispec-color-error)',\n fontWeight: 700,\n marginLeft: '1px',\n})\n\n// --- Type (`.prop-type`) ---------------------------------------------------\n\nconst propTypeVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: { marginLeft: '0.5rem' },\n table: { [mq.desktop]: { gridArea: 'type', alignSelf: 'center', marginLeft: 0 } },\n // `card` renders the type as a soft chip badge.\n card: {\n marginLeft: '0.5rem',\n backgroundColor: 'var(--omnispec-bg-code)',\n color: 'var(--omnispec-fg-code)',\n borderRadius: '0.3125rem',\n padding: '0.185rem 0.4rem',\n fontSize: '0.75rem',\n },\n tokens: { marginLeft: '0.5rem', color: 'var(--omnispec-color-primary)' },\n // Chain renders the type in the content column, syntax-colored like the\n // reference layout's type token.\n chain: {\n color: 'var(--omnispec-color-primary)',\n [mq.desktop]: { gridArea: 'type', alignSelf: 'start', marginLeft: 0 },\n },\n}\n\n/** Type signature — mono, muted (syntax-colored in `tokens`). */\nexport const PropType = styled('span', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: '0.4rem',\n minWidth: 0,\n overflowWrap: 'anywhere',\n fontFamily: 'var(--omnispec-font-mono)',\n color: 'var(--omnispec-fg-muted)',\n fontSize: '0.8rem',\n ...propTypeVariantStyle[variant],\n}))\n\n/** The `· format` suffix inside a type — a distinct hue in `tokens` (dir-d .fmt). */\nexport const PropFormat = styled('span', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n color: variant === 'tokens' ? 'var(--omnispec-color-info)' : 'inherit',\n}))\n\n// --- Required label (`.prop-req`) ------------------------------------------\n\nconst propReqVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: { marginLeft: '0.5rem' },\n table: { [mq.desktop]: { gridArea: 'req', marginTop: '0.2rem', marginLeft: 0 } },\n card: { marginLeft: '0.5rem' },\n tokens: {},\n chain: { [mq.desktop]: { gridArea: 'req', marginTop: '0.2rem', marginLeft: 0 } },\n}\n\n/** The \"required\" label (dir-a/b/c). `tokens` uses `PropRequiredStar` instead. */\nexport const PropReq = styled('span', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n color: 'var(--omnispec-color-error)',\n fontSize: '0.7rem',\n fontWeight: 700,\n textTransform: 'uppercase',\n letterSpacing: '0.04em',\n ...propReqVariantStyle[variant],\n}))\n\n// --- Description (`.prop-desc`) --------------------------------------------\n\nconst propDescVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: {},\n table: { [mq.desktop]: { gridArea: 'desc', marginTop: 0 } },\n card: {},\n tokens: { fontSize: '0.82rem', marginTop: '0.12rem' },\n chain: { [mq.desktop]: { gridArea: 'desc', marginTop: 0 } },\n}\n\n/** Description block — sans. Wraps the markdown renderer; resets its `<p>` margins. */\nexport const PropDesc = styled('div', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n margin: '0.28rem 0 0',\n color: 'var(--omnispec-fg-secondary)',\n fontSize: '0.85rem',\n fontFamily: 'var(--omnispec-font-sans)',\n lineHeight: 1.5,\n '& p': { margin: 0 },\n '& p + p': { marginTop: '0.25rem' },\n ...propDescVariantStyle[variant],\n}))\n\n/** A small inline default/example value token. */\nconst propDetailVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: {},\n table: { [mq.desktop]: { gridArea: 'dflt' } },\n card: {},\n tokens: {},\n chain: { [mq.desktop]: { gridArea: 'dflt' } },\n}\n\n/** The \"Default: …\" row. */\nexport const PropDefault = styled('div', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n color: 'var(--omnispec-fg-muted)',\n fontSize: '0.76rem',\n fontFamily: 'var(--omnispec-font-mono)',\n marginTop: '0.28rem',\n ...propDetailVariantStyle[variant],\n}))\n\n// --- Enum (`.prop-enum` + `.lbl` + `li`) -----------------------------------\n\nconst propEnumVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: {},\n table: { [mq.desktop]: { gridArea: 'enum' } },\n card: {},\n tokens: { gap: '0.3rem' },\n chain: { [mq.desktop]: { gridArea: 'enum' } },\n}\n\n/** The enum chip list. */\nexport const EnumList = styled('ul', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n listStyle: 'none',\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '0.35rem',\n margin: '0.45rem 0 0',\n padding: 0,\n ...propEnumVariantStyle[variant],\n}))\n\n/** The muted \"enum\" label before the chips — hidden in `tokens`. */\nexport const EnumLabel = styled('span', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n color: 'var(--omnispec-fg-muted)',\n fontFamily: 'var(--omnispec-font-sans)',\n fontSize: '0.76rem',\n alignSelf: 'center',\n marginRight: '0.1rem',\n ...(variant === 'tokens' || variant === 'chain' ? { display: 'none' } : {}),\n}))\n\nconst enumItemVariantStyle: Record<SchemaStyle, CSSObject> = {\n // Soft filled chip.\n lines: {\n backgroundColor: 'var(--omnispec-bg-tertiary)',\n borderRadius: '0.3125rem',\n padding: '0.08rem 0.42rem',\n },\n // Bordered chip on the surface.\n table: {\n backgroundColor: 'var(--omnispec-bg-primary)',\n border: hairline,\n borderRadius: '0.3125rem',\n padding: '0.08rem 0.42rem',\n },\n card: {\n backgroundColor: 'var(--omnispec-bg-primary)',\n border: hairline,\n borderRadius: '0.3125rem',\n padding: '0.08rem 0.42rem',\n },\n // Bordered, syntax-green.\n tokens: {\n color: 'var(--omnispec-color-success)',\n border: hairline,\n borderRadius: '0.25rem',\n padding: '0.02rem 0.34rem',\n },\n // Chain uses info-colored pills on a faint info wash (the reference-layout look).\n chain: {\n color: 'var(--omnispec-color-info)',\n backgroundColor: 'color-mix(in srgb, var(--omnispec-color-info) 10%, transparent)',\n borderRadius: '0.25rem',\n padding: '0.0625rem 0.375rem',\n },\n}\n\n/** A single enum value chip. */\nexport const EnumItem = styled('li', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: '0.76rem',\n color: 'var(--omnispec-fg-secondary)',\n ...enumItemVariantStyle[variant],\n}))\n\n// --- Children (`.prop-children`) -------------------------------------------\n\nconst propChildrenVariantStyle: Record<SchemaStyle, CSSObject> = {\n // Thin left guide.\n lines: {\n margin: '0.55rem 0 0 0.15rem',\n paddingLeft: '1rem',\n borderLeft: hairline,\n },\n // Nested rows span BOTH grid columns and indent from the left. Keeping them in\n // column 2 (grid-area kids) re-grids each level inside the previous narrow\n // column, so deep recursion collapses the type text to one char per line and\n // overflows the card. Spanning full width gives every level room to re-grid.\n table: {\n marginTop: '0.5rem',\n paddingLeft: '0.75rem',\n [mq.desktop]: { gridColumn: '1 / -1', marginTop: '0.5rem', paddingLeft: '1.25rem' },\n },\n // Soft accent rail + faint wash for nested objects.\n card: {\n borderLeft: accentRail,\n backgroundColor: accentWash,\n borderRadius: '0 0.5rem 0.5rem 0',\n margin: '0.55rem 0 0.1rem',\n paddingLeft: '0.5rem',\n },\n // Dashed, tight guide.\n tokens: {\n borderLeft: '1px dashed var(--omnispec-border-color)',\n margin: '0.28rem 0 0 0.1rem',\n paddingLeft: '0.85rem',\n },\n // Chain: nested children carry their own capped rail; each nested row draws\n // its own `::before` connector into it.\n chain: {\n position: 'relative',\n borderLeft: CHAIN_RAIL,\n marginLeft: '0.5rem',\n marginTop: '0.5rem',\n '&::before, &::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n width: '1rem',\n height: 0,\n borderTop: CHAIN_RAIL,\n },\n '&::before': { top: 0 },\n '&::after': { bottom: 0 },\n },\n}\n\n/** Wrapper for a node's expanded child attributes. */\nexport const SchemaPropChildren = styled('div', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n minWidth: 0,\n ...propChildrenVariantStyle[variant],\n}))\n\n// ===========================================================================\n// LEGACY SHARED SHELLS (Pro GraphQL/gRPC/SOAP — migrating onto the slot kit)\n// ===========================================================================\n\nconst rowVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: {\n padding: '0.25rem 0',\n borderBottom: hairline,\n '&:last-child': { borderBottom: 'none' },\n },\n table: {\n padding: '0.5rem 0',\n borderBottom: hairline,\n '&:last-child': { borderBottom: 'none' },\n [mq.desktop]: {\n display: 'grid',\n columnGap: '1.5rem',\n alignItems: 'start',\n gridTemplateColumns: 'minmax(7.5rem, 11.875rem) 1fr',\n },\n },\n card: {\n padding: '0.25rem 0.75rem',\n borderBottom: hairline,\n transition: 'background-color 0.12s ease',\n '&:last-child': { borderBottom: 'none' },\n '&:hover': { backgroundColor: 'var(--omnispec-bg-secondary)' },\n },\n tokens: {\n padding: '0.125rem 0',\n borderBottom: 'none',\n },\n chain: {\n padding: '0.25rem 0 0.75rem',\n borderBottom: 'none',\n },\n}\n\n/** @deprecated Legacy row shell used by the Pro renderers; use {@link SchemaPropRow}. */\nexport const PresentationRow = styled('div', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n minWidth: 0,\n ...rowVariantStyle[variant],\n}))\n\nconst childrenVariantStyle: Record<SchemaStyle, CSSObject> = {\n lines: {\n borderLeft: hairline,\n paddingLeft: '0.75rem',\n marginLeft: '0.5rem',\n },\n table: {\n marginTop: '0.5rem',\n paddingLeft: '0.75rem',\n [mq.desktop]: { gridColumn: '1 / -1', paddingLeft: '1.25rem' },\n },\n card: {\n borderLeft: accentRail,\n backgroundColor: accentWash,\n borderRadius: '0 var(--omnispec-border-radius) var(--omnispec-border-radius) 0',\n marginTop: '0.25rem',\n paddingLeft: '0.5rem',\n },\n tokens: {\n borderLeft: '1px dashed var(--omnispec-border-color)',\n paddingLeft: '0.75rem',\n marginLeft: '0.25rem',\n },\n chain: {\n borderLeft: CHAIN_RAIL,\n marginLeft: '0.5rem',\n paddingLeft: '0.75rem',\n marginTop: '0.25rem',\n },\n}\n\n/** @deprecated Legacy nesting shell used by the Pro renderers; use {@link SchemaPropChildren}. */\nexport const PresentationChildren = styled('div', {\n shouldForwardProp: forwardExceptVariant,\n})<{ variant: SchemaStyle }>(({ variant }) => ({\n ...childrenVariantStyle[variant],\n}))\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useState } from 'react'\nimport type { ReactNode } from 'react'\nimport { css, cx } from '@core/styles/css'\nimport type { SchemaNode } from './schema-utils'\nimport { Badge } from '@core/components/common/Badge'\nimport { Icon } from '@core/components/common/Icon'\nimport { SchemaBadge, SchemaRefLink } from '@core/components/SchemaViewer/SchemaPrimitives'\nimport {\n PresentationContainer,\n SchemaPropRow,\n SchemaPropChildren,\n PropName,\n PropType,\n PropFormat,\n PropReq,\n PropRequiredStar,\n PropDesc,\n PropDefault,\n EnumList,\n EnumLabel,\n EnumItem,\n} from '@core/components/SchemaViewer/SchemaPresentation'\nimport type { SchemaStyle } from '@core/components/SchemaViewer/schema-style'\nimport { MarkdownRenderer } from '@core/components/MarkdownRenderer/MarkdownRenderer'\nimport { useConfig } from '@core/context/ConfigContext'\n\n/** Rendering context — hides readOnly props in requests, writeOnly in responses. */\nexport type SchemaContext = 'request' | 'response'\n\ninterface SchemaTreeProps {\n nodes: SchemaNode[]\n depth?: number\n /** When set, filters readOnly/writeOnly properties contextually. */\n context?: SchemaContext\n}\n\n/**\n * Deep-filters nodes for a request/response context: request schemas hide\n * readOnly properties, response schemas hide writeOnly properties.\n */\nexport function filterNodesForContext(nodes: SchemaNode[], context?: SchemaContext): SchemaNode[] {\n if (!context) return nodes\n return nodes\n .filter((node) =>\n !(context === 'request' && node.readOnly) &&\n !(context === 'response' && node.writeOnly),\n )\n .map((node) => ({\n ...node,\n children: node.children ? filterNodesForContext(node.children, context) : undefined,\n compositionChildren: node.compositionChildren?.map((branch) => filterNodesForContext(branch, context)),\n }))\n}\n\nexport function SchemaTree({ nodes: rawNodes, depth = 0, context }: SchemaTreeProps) {\n // Gated presentation style resolved once upstream (ConfigContext).\n const { schemaStyle } = useConfig()\n // Contextual filtering happens once at the root; children are pre-filtered.\n const nodes = depth === 0 ? filterNodesForContext(rawNodes, context) : rawNodes\n\n // Bare primitive type (e.g. { type: \"string\" }) — render inline\n if (\n depth === 0 &&\n nodes.length === 1 &&\n !nodes[0].name &&\n !nodes[0].children?.length &&\n !nodes[0].compositionChildren\n ) {\n const node = nodes[0]\n return (\n <PresentationContainer variant={schemaStyle} className={cx('omnispec-schema-tree', bareTypeStyle)}>\n <PropType variant={schemaStyle}>\n {node.type}\n {node.format && <PropFormat variant={schemaStyle}> · {node.format}</PropFormat>}\n </PropType>\n {node.description && <span className={bareTypeDescStyle}>— {node.description}</span>}\n </PresentationContainer>\n )\n }\n\n // Root-level unnamed object/array: skip the wrapper node and render\n // its children directly so users see properties immediately instead\n // of a bare \"object\" row with \"Show child attributes\".\n if (\n depth === 0 &&\n nodes.length === 1 &&\n !nodes[0].name &&\n nodes[0].children?.length\n ) {\n return (\n <PresentationContainer variant={schemaStyle} className={cx('omnispec-schema-tree', rootStyle)}>\n {nodes[0].children.map((child, idx) => (\n <SchemaTreeNode key={`${child.name}-${idx}`} node={child} depth={0} variant={schemaStyle} />\n ))}\n </PresentationContainer>\n )\n }\n\n // Nested renders (depth > 0) don't re-wrap in a container — the parent\n // SchemaPropChildren already provides the nesting shell.\n const Wrapper = depth === 0 ? PresentationContainer : NestedFragment\n\n return (\n <Wrapper variant={schemaStyle} className={cx('omnispec-schema-tree', depth === 0 && rootStyle)}>\n {nodes.map((node, idx) => (\n <SchemaTreeNode key={`${node.name}-${idx}`} node={node} depth={depth} variant={schemaStyle} />\n ))}\n </Wrapper>\n )\n}\n\n/** Depth>0 pass-through so nested trees don't emit a second container. */\nfunction NestedFragment({ children }: { variant: SchemaStyle; className?: string; children: ReactNode }) {\n return <>{children}</>\n}\n\nfunction SchemaTreeNode({ node, depth, variant }: { node: SchemaNode; depth: number; variant: SchemaStyle }) {\n const hasChildren = (node.children && node.children.length > 0) || Boolean(node.compositionChildren)\n const { defaultExpandOperations } = useConfig()\n // Expand top-level children by default when defaultExpandOperations is true\n const [expanded, setExpanded] = useState(depth === 0 && defaultExpandOperations)\n\n return (\n <SchemaPropRow variant={variant}>\n {/* Name (+ chevron, + tokens `*`) */}\n <PropName variant={variant}>\n {hasChildren && (\n <button\n type=\"button\"\n onClick={() => setExpanded((prev) => !prev)}\n className={chevronBtnStyle}\n aria-label=\"Toggle child attributes\"\n aria-expanded={expanded}\n >\n <Icon\n name=\"chevron-right\"\n size=\"1em\"\n className={cx(chevronIconStyle, expanded && chevronIconExpandedStyle)}\n />\n </button>\n )}\n {node.name}\n {node.title && node.title !== node.name && (\n <span className={titleStyle}>{node.title}</span>\n )}\n {node.required && variant === 'tokens' && <PropRequiredStar>*</PropRequiredStar>}\n </PropName>\n\n {/* Type signature + format + nullable + metadata badges */}\n <PropType variant={variant}>\n {node.compositionType ? (\n <Badge label={node.compositionType} variant=\"default\" />\n ) : node.refTarget ? (\n <SchemaRefLink onClick={() => scrollToSchema(node.refTarget!)}>\n {node.type}\n </SchemaRefLink>\n ) : (\n node.type\n )}\n {node.format && <PropFormat variant={variant}> · {node.format}</PropFormat>}\n {node.nullable && <span className={nullableStyle}> | null</span>}\n\n {node.deprecated && <SchemaBadge variant=\"deprecated\">deprecated</SchemaBadge>}\n {node.readOnly && <SchemaBadge variant=\"readonly\">read-only</SchemaBadge>}\n {node.writeOnly && <SchemaBadge variant=\"writeonly\">write-only</SchemaBadge>}\n {node.constraints.length > 0 && (\n <SchemaBadge variant=\"constraint\">{node.constraints.join(', ')}</SchemaBadge>\n )}\n </PropType>\n\n {/* Required label (tokens uses the `*` marker instead) */}\n {node.required && variant !== 'tokens' && <PropReq variant={variant}>required</PropReq>}\n\n {/* Enum — chips + label, or the richer value/description table */}\n {node.enum && !node.enumDescriptions && (\n <EnumList variant={variant}>\n <EnumLabel variant={variant}>enum</EnumLabel>\n {node.enum.map((val) => (\n <EnumItem key={String(val)} variant={variant}>{String(val)}</EnumItem>\n ))}\n </EnumList>\n )}\n {node.enum && node.enumDescriptions && (\n <div className={enumTableStyle}>\n {node.enum.map((val) => (\n <div key={String(val)} className={enumRowStyle}>\n <span className={enumValueStyle}>{String(val)}</span>\n {node.enumDescriptions?.[String(val)] && (\n <span className={enumDescStyle}>{node.enumDescriptions[String(val)]}</span>\n )}\n </div>\n ))}\n </div>\n )}\n\n {/* Description (markdown, sanitized) */}\n {node.description && (\n <PropDesc variant={variant}>\n <MarkdownRenderer content={node.description} />\n </PropDesc>\n )}\n\n {/* Default value */}\n {node.default !== undefined && (\n <PropDefault variant={variant}>Default: {JSON.stringify(node.default)}</PropDefault>\n )}\n\n {/* Child attributes: expanded children render in the nesting shell. */}\n {hasChildren && expanded && (\n <SchemaPropChildren variant={variant}>\n {node.children && (\n <SchemaTree nodes={node.children} depth={depth + 1} />\n )}\n {node.compositionChildren && (\n <div>\n {node.discriminator && (\n <span className={discriminatorStyle}>\n Discriminated by <span className={discriminatorPropStyle}>{node.discriminator.propertyName}</span>\n </span>\n )}\n {node.compositionChildren.map((branch, idx) => (\n <div key={idx} className={compositionBranchStyle}>\n <span className={compositionLabelStyle}>\n {node.compositionBranchLabels?.[idx] ?? `Option ${idx + 1}`}\n </span>\n <SchemaTree nodes={branch} depth={depth + 1} />\n </div>\n ))}\n </div>\n )}\n </SchemaPropChildren>\n )}\n </SchemaPropRow>\n )\n}\n\n/**\n * Navigates to a component schema's anchor (`#schema-{name}`) rendered by\n * ComponentsSection, updating the URL hash so the deep link is shareable.\n */\nfunction scrollToSchema(name: string): void {\n if (typeof document === 'undefined') return\n const el = document.getElementById(`schema-${name}`)\n if (el) {\n el.scrollIntoView({ behavior: 'smooth', block: 'start' })\n if (typeof history !== 'undefined' && typeof history.replaceState === 'function') {\n history.replaceState(null, '', `#schema-${name}`)\n }\n }\n}\n\n// --- Styles (row-local only; per-item styling lives in SchemaPresentation) ---\n\nconst rootStyle = css({\n fontSize: 'var(--omnispec-font-size-sm)',\n fontFamily: 'var(--omnispec-font-mono)',\n})\n\nconst chevronBtnStyle = css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 0,\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n color: 'var(--omnispec-fg-muted)',\n '&:hover': {\n color: 'var(--omnispec-fg-primary)',\n },\n})\n\nconst chevronIconStyle = css({\n transition: 'transform 0.15s ease',\n})\n\nconst chevronIconExpandedStyle = css({\n transform: 'rotate(90deg)',\n})\n\nconst nullableStyle = css({\n opacity: 0.65,\n})\n\nconst titleStyle = css({\n color: 'var(--omnispec-fg-muted)',\n fontSize: 'var(--omnispec-font-size-xs)',\n fontFamily: 'var(--omnispec-font-sans)',\n fontStyle: 'italic',\n})\n\nconst enumTableStyle = css({\n padding: '0.25rem 0',\n display: 'flex',\n flexDirection: 'column',\n gap: '0.125rem',\n})\n\nconst enumRowStyle = css({\n display: 'flex',\n gap: '0.5rem',\n fontSize: 'var(--omnispec-font-size-xs)',\n})\n\nconst enumValueStyle = css({\n color: 'var(--omnispec-color-info)',\n fontFamily: 'var(--omnispec-font-mono)',\n flexShrink: 0,\n})\n\nconst enumDescStyle = css({\n color: 'var(--omnispec-fg-muted)',\n fontFamily: 'var(--omnispec-font-sans)',\n})\n\nconst discriminatorStyle = css({\n display: 'block',\n color: 'var(--omnispec-fg-muted)',\n fontSize: 'var(--omnispec-font-size-xs)',\n fontFamily: 'var(--omnispec-font-sans)',\n padding: '0.25rem 0',\n})\n\nconst discriminatorPropStyle = css({\n color: 'var(--omnispec-fg-primary)',\n fontFamily: 'var(--omnispec-font-mono)',\n})\n\nconst compositionBranchStyle = css({\n borderLeft: '2px solid var(--omnispec-border-color)',\n marginBottom: '0.25rem',\n paddingLeft: '0.5rem',\n})\n\nconst compositionLabelStyle = css({\n color: 'var(--omnispec-fg-muted)',\n fontSize: 'var(--omnispec-font-size-xs)',\n fontStyle: 'italic',\n display: 'block',\n padding: '0.25rem 0',\n})\n\nconst bareTypeStyle = css({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n padding: '0.5rem',\n fontSize: 'var(--omnispec-font-size-sm)',\n fontFamily: 'var(--omnispec-font-mono)',\n})\n\nconst bareTypeDescStyle = css({\n color: 'var(--omnispec-fg-secondary)',\n fontFamily: 'var(--omnispec-font-sans)',\n fontSize: 'var(--omnispec-font-size-xs)',\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nexport interface SchemaDiscriminator {\n propertyName: string\n mapping?: Record<string, string>\n}\n\nexport interface SchemaNode {\n name: string\n type: string\n format?: string\n title?: string\n description?: string\n required: boolean\n deprecated?: boolean\n readOnly?: boolean\n writeOnly?: boolean\n enum?: unknown[]\n enumDescriptions?: Record<string, string>\n default?: unknown\n example?: unknown\n pattern?: string\n nullable?: boolean\n constraints: string[]\n children?: SchemaNode[]\n compositionType?: 'allOf' | 'oneOf' | 'anyOf'\n compositionChildren?: SchemaNode[][]\n /** Human-readable label per composition branch (discriminator/title/schema name). */\n compositionBranchLabels?: string[]\n /** Discriminator metadata for a oneOf/anyOf node. */\n discriminator?: SchemaDiscriminator\n /** Name of the referenced component schema when this node is a bare `$ref`. */\n refTarget?: string\n}\n\ninterface JsonSchema {\n type?: string | string[]\n format?: string\n description?: string\n properties?: Record<string, JsonSchema>\n required?: string[]\n items?: JsonSchema\n allOf?: JsonSchema[]\n oneOf?: JsonSchema[]\n anyOf?: JsonSchema[]\n enum?: unknown[]\n const?: unknown\n default?: unknown\n example?: unknown\n examples?: unknown[]\n pattern?: string\n nullable?: boolean\n deprecated?: boolean\n readOnly?: boolean\n writeOnly?: boolean\n minimum?: number\n maximum?: number\n // OAS 3.1 (JSON Schema 2020-12) uses numbers; OAS 3.0 uses booleans paired\n // with minimum/maximum.\n exclusiveMinimum?: number | boolean\n exclusiveMaximum?: number | boolean\n minLength?: number\n maxLength?: number\n minItems?: number\n maxItems?: number\n uniqueItems?: boolean\n $ref?: string\n additionalProperties?: boolean | JsonSchema\n title?: string\n discriminator?: { propertyName: string; mapping?: Record<string, string> }\n [key: string]: unknown\n}\n\nconst MAX_DEPTH = 10\n\nexport function schemaToNodes(\n schema: JsonSchema,\n name = '',\n requiredFields: string[] = [],\n depth = 0,\n visited = new Set<string>(),\n): SchemaNode[] {\n if (depth > MAX_DEPTH) return []\n\n // Handle $ref (shouldn't appear if spec is resolved, but just in case)\n if (schema.$ref) {\n // A self-referential schema survives $ref resolution as a circular\n // placeholder (`{ $ref, 'x-circular': true }`). The pointer's last segment is\n // the resolver's internal schema id — surfacing it in the type signature\n // (e.g. `array<TreeNode>`) leaks an implementation detail and reads\n // inconsistently with the same shape inlined elsewhere (`array<object>`).\n // Render the structural type instead.\n if ((schema as JsonSchema & { 'x-circular'?: boolean })['x-circular']) {\n return [{\n name,\n type: 'object',\n required: requiredFields.includes(name),\n constraints: [],\n description: 'Circular reference',\n }]\n }\n const refName = schema.$ref.split('/').pop() ?? schema.$ref\n if (visited.has(refName)) {\n return [{\n name: name || refName,\n type: `${refName} (circular)`,\n required: requiredFields.includes(name),\n constraints: [],\n description: 'Circular reference',\n }]\n }\n return [{\n name: name || refName,\n type: refName,\n required: requiredFields.includes(name),\n constraints: [],\n description: `Reference to ${refName}`,\n refTarget: refName,\n }]\n }\n\n // Handle composition (allOf, oneOf, anyOf)\n for (const keyword of ['allOf', 'oneOf', 'anyOf'] as const) {\n if (schema[keyword]) {\n return handleComposition(schema, keyword, name, requiredFields, depth, visited)\n }\n }\n\n const type = resolveType(schema)\n const constraints = buildConstraints(schema)\n const isRequired = requiredFields.includes(name)\n\n const node: SchemaNode = {\n name,\n type,\n format: schema.format,\n title: schema.title,\n description: schema.description,\n required: isRequired,\n deprecated: schema.deprecated,\n readOnly: schema.readOnly,\n writeOnly: schema.writeOnly,\n enum: schema.enum,\n enumDescriptions: (schema['x-enumDescriptions'] ?? schema['x-enum-descriptions']) as Record<string, string> | undefined,\n default: schema.default,\n example: schema.example ?? schema.examples?.[0],\n pattern: schema.pattern,\n nullable: schema.nullable || isTypeArrayNullable(schema),\n constraints,\n }\n\n // Object with properties (also handle 3.1 `[\"object\",\"null\"]` type arrays)\n if ((type === 'object' || (Array.isArray(schema.type) && schema.type.includes('object'))) && schema.properties) {\n const reqFields = schema.required ?? []\n node.children = []\n for (const [propName, propSchema] of Object.entries(schema.properties)) {\n const childNodes = schemaToNodes(\n propSchema as JsonSchema,\n propName,\n reqFields,\n depth + 1,\n new Set(visited),\n )\n node.children.push(...childNodes)\n }\n\n // additionalProperties\n if (schema.additionalProperties && typeof schema.additionalProperties === 'object') {\n const addlNodes = schemaToNodes(\n schema.additionalProperties as JsonSchema,\n '<additional>',\n [],\n depth + 1,\n new Set(visited),\n )\n node.children.push(...addlNodes)\n }\n }\n\n // Array with items (also handle 3.1 `[\"array\",\"null\"]` type arrays).\n //\n // Compose the item type into the array signature inline — `array<string · uri>`,\n // `array<object>` — instead of emitting a separate \"items\" row (matches the\n // reference schema designs). The item's enum/enumDescriptions lift onto the\n // array node so e.g. `scopes: array<string>` shows its allowed values, and an\n // object/array item's own properties nest directly (no intermediate wrapper).\n if ((type === 'array' || (Array.isArray(schema.type) && schema.type.includes('array'))) && schema.items) {\n const [itemNode] = schemaToNodes(\n schema.items as JsonSchema,\n '',\n [],\n depth + 1,\n new Set(visited),\n )\n if (itemNode) {\n const innerFormat = itemNode.format ? ` · ${itemNode.format}` : ''\n node.type = `array<${itemNode.type}${innerFormat}>`\n if (itemNode.enum) node.enum = itemNode.enum\n if (itemNode.enumDescriptions) node.enumDescriptions = itemNode.enumDescriptions\n // A referenced item type makes the whole signature link to that schema.\n if (itemNode.refTarget) node.refTarget = itemNode.refTarget\n // Object/array items: surface their properties directly under the array.\n if (itemNode.children && itemNode.children.length > 0) {\n node.children = itemNode.children\n }\n }\n }\n\n return [node]\n}\n\nfunction handleComposition(\n schema: JsonSchema,\n keyword: 'allOf' | 'oneOf' | 'anyOf',\n name: string,\n requiredFields: string[],\n depth: number,\n visited: Set<string>,\n): SchemaNode[] {\n const schemas = schema[keyword] as JsonSchema[]\n\n if (keyword === 'allOf') {\n // Merge allOf schemas into a single object\n const merged = mergeAllOf(schemas)\n return schemaToNodes(merged, name, requiredFields, depth, visited)\n }\n\n // For oneOf/anyOf, create a node with composition children\n const compositionChildren: SchemaNode[][] = schemas.map((subSchema) =>\n schemaToNodes(subSchema, '', [], depth + 1, new Set(visited)),\n )\n\n const discriminator = schema.discriminator\n const compositionBranchLabels = schemas.map((subSchema, idx) =>\n branchLabel(subSchema, idx, discriminator),\n )\n\n const node: SchemaNode = {\n name,\n type: keyword,\n description: schema.description,\n required: requiredFields.includes(name),\n constraints: [],\n compositionType: keyword,\n compositionChildren,\n compositionBranchLabels,\n discriminator: discriminator\n ? { propertyName: discriminator.propertyName, mapping: discriminator.mapping }\n : undefined,\n }\n\n return [node]\n}\n\n/**\n * Derives a human-readable label for a oneOf/anyOf branch. Prefers a\n * discriminator mapping key that points at the branch's `$ref`, then the\n * subschema's `$ref` name, then its `title`, and finally falls back to\n * \"Option N\".\n */\nfunction branchLabel(\n subSchema: JsonSchema,\n index: number,\n discriminator?: { propertyName: string; mapping?: Record<string, string> },\n): string {\n const refName = subSchema.$ref ? subSchema.$ref.split('/').pop() : undefined\n\n if (discriminator?.mapping) {\n for (const [value, ref] of Object.entries(discriminator.mapping)) {\n const mappedName = ref.split('/').pop()\n // Match by full $ref or by trailing schema name.\n if (subSchema.$ref === ref || (refName && mappedName === refName)) {\n return value\n }\n }\n }\n\n return refName ?? subSchema.title ?? `Option ${index + 1}`\n}\n\nfunction mergeAllOf(schemas: JsonSchema[]): JsonSchema {\n const merged: JsonSchema = { type: 'object', properties: {}, required: [] }\n\n for (const schema of schemas) {\n if (schema.properties) {\n merged.properties = { ...merged.properties, ...schema.properties }\n }\n if (schema.required) {\n (merged.required as string[]).push(...schema.required)\n }\n if (schema.description && !merged.description) {\n merged.description = schema.description\n }\n if (schema.type) {\n merged.type = schema.type\n }\n }\n\n return merged\n}\n\n/**\n * OpenAPI 3.1 / JSON Schema 2020-12 allows `type` to be an array, and models\n * nullability as `[\"string\", \"null\"]`. Returns true when the schema is nullable\n * via a `\"null\"` entry in a `type` array (independent of the 3.0 `nullable`\n * boolean).\n */\nfunction isTypeArrayNullable(schema: JsonSchema): boolean {\n return Array.isArray(schema.type) && schema.type.includes('null')\n}\n\nfunction resolveType(schema: JsonSchema): string {\n if (schema.type) {\n if (Array.isArray(schema.type)) {\n // Drop the JSON Schema 2020-12 \"null\" marker — nullability is surfaced\n // separately via the nullable flag — and join any remaining union members.\n const nonNull = schema.type.filter((t) => t !== 'null')\n if (nonNull.length === 0) return 'null'\n return nonNull.join(' | ')\n }\n return schema.type\n }\n if (schema.properties) return 'object'\n if (schema.items) return 'array'\n if (schema.enum) return 'enum'\n if (schema.const !== undefined) return 'const'\n return 'any'\n}\n\nexport function buildConstraints(schema: JsonSchema): string[] {\n const constraints: string[] = []\n\n // Number constraints. OAS 3.1 expresses exclusive bounds as numbers; OAS 3.0\n // expresses them as booleans paired with minimum/maximum.\n const exclMin = schema.exclusiveMinimum\n const exclMax = schema.exclusiveMaximum\n if (typeof exclMin === 'number') {\n constraints.push(`> ${exclMin}`)\n } else if (schema.minimum !== undefined) {\n constraints.push(exclMin === true ? `> ${schema.minimum}` : `>= ${schema.minimum}`)\n }\n if (typeof exclMax === 'number') {\n constraints.push(`< ${exclMax}`)\n } else if (schema.maximum !== undefined) {\n constraints.push(exclMax === true ? `< ${schema.maximum}` : `<= ${schema.maximum}`)\n }\n\n // String constraints\n if (schema.minLength !== undefined) constraints.push(`minLength: ${schema.minLength}`)\n if (schema.maxLength !== undefined) constraints.push(`maxLength: ${schema.maxLength}`)\n if (schema.pattern) constraints.push(`pattern: ${schema.pattern}`)\n\n // Array constraints\n if (schema.minItems !== undefined) constraints.push(`minItems: ${schema.minItems}`)\n if (schema.maxItems !== undefined) constraints.push(`maxItems: ${schema.maxItems}`)\n if (schema.uniqueItems) constraints.push('uniqueItems')\n\n return constraints\n}\n\nexport function generateExample(schema: JsonSchema, depth = 0): unknown {\n if (depth > MAX_DEPTH) return null\n\n if (schema.example !== undefined) return schema.example\n if (schema.examples?.[0] !== undefined) return schema.examples[0]\n if (schema.default !== undefined) return schema.default\n if (schema.const !== undefined) return schema.const\n if (schema.enum?.[0] !== undefined) return schema.enum[0]\n\n const type = resolveType(schema)\n\n switch (type) {\n case 'string':\n return generateStringExample(schema.format)\n case 'integer':\n return generateIntegerExample(schema.format, schema.minimum)\n case 'number':\n return generateNumberExample(schema.format, schema.minimum)\n case 'boolean':\n return true\n case 'array':\n if (schema.items) {\n const item = generateExample(schema.items as JsonSchema, depth + 1)\n return [item]\n }\n return []\n case 'object': {\n const obj: Record<string, unknown> = {}\n if (schema.properties) {\n for (const [key, prop] of Object.entries(schema.properties)) {\n obj[key] = generateExample(prop as JsonSchema, depth + 1)\n }\n }\n return obj\n }\n default:\n return null\n }\n}\n\n/**\n * Generate example values for string formats per the OpenAPI Format Registry.\n * @see https://spec.openapis.org/registry/format/\n */\nfunction generateStringExample(format?: string): string {\n switch (format) {\n // Date and time\n case 'date': return '2024-01-15'\n case 'date-time': return '2024-01-15T09:30:00Z'\n case 'date-time-local': return '2024-01-15T09:30:00'\n case 'time': return '09:30:00Z'\n case 'time-local': return '09:30:00'\n case 'duration': return 'P3Y6M4DT12H30M5S'\n case 'http-date': return 'Tue, 15 Jan 2024 09:30:00 GMT'\n\n // Identifiers\n case 'uuid': return '550e8400-e29b-41d4-a716-446655440000'\n case 'uri': return 'https://example.com/resource'\n case 'uri-reference': return '/resource/123'\n case 'uri-template': return '/users/{userId}/posts'\n case 'iri': return 'https://example.com/r\\u00E9sum\\u00E9'\n case 'iri-reference': return '/r\\u00E9sum\\u00E9/123'\n\n // Network\n case 'email': return 'user@example.com'\n case 'idn-email': return 'user@example.com'\n case 'hostname': return 'api.example.com'\n case 'idn-hostname': return 'api.example.com'\n case 'ipv4': return '192.168.1.1'\n case 'ipv6': return '2001:0db8:85a3:0000:0000:8a2e:0370:7334'\n\n // Encoding\n case 'byte': return 'U3dhZ2dlciByb2Nrcw=='\n case 'base64url': return 'U3dhZ2dlciByb2Nrcw'\n case 'binary': return '<binary>'\n case 'password': return '********'\n\n // Text\n case 'commonmark': return '**bold** and _italic_'\n case 'html': return '<p>Hello</p>'\n case 'regex': return '^[a-zA-Z0-9]+$'\n case 'char': return 'A'\n case 'media-range': return 'application/json'\n\n // JSON pointers\n case 'json-pointer': return '/foo/bar/0'\n case 'relative-json-pointer': return '1/foo'\n\n // Structured fields (RFC 8941)\n case 'sf-binary': return ':cHJldGVuZCB0aGlzIGlzIGJpbmFyeSBjb250ZW50Lg==:'\n case 'sf-boolean': return '?1'\n case 'sf-string': return '\"example\"'\n case 'sf-token': return 'token'\n\n // Numeric formats that can be strings\n case 'decimal': return '123.45'\n case 'decimal128': return '123456789.0123456789'\n case 'int64': return '9007199254740992'\n case 'uint64': return '18446744073709551615'\n case 'unixtime': return '1705312200'\n\n default: return ''\n }\n}\n\nfunction generateIntegerExample(format?: string, minimum?: number): number {\n if (minimum !== undefined) return minimum\n switch (format) {\n case 'int8': return 127\n case 'uint8': return 255\n case 'int16': return 32767\n case 'uint16': return 65535\n case 'int32': return 2147483647\n case 'uint32': return 4294967295\n case 'int64': return 0\n case 'uint64': return 0\n default: return 0\n }\n}\n\nfunction generateNumberExample(format?: string, minimum?: number): number {\n if (minimum !== undefined) return minimum\n switch (format) {\n case 'float': return 3.14\n case 'double': return 3.141592653589793\n case 'double-int': return 42\n case 'decimal': return 123.45\n case 'decimal128': return 123456789.01\n case 'sf-decimal': return 3.14\n case 'sf-integer': return 42\n case 'unixtime': return 1705312200\n default: return 0.0\n }\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { memo, useCallback, useEffect, useRef, useState } from 'react'\nimport type { ReactNode } from 'react'\nimport { css, cx } from '@core/styles/css'\nimport { mq } from '@core/styles/breakpoints'\nimport { Icon } from './Icon'\nimport { useConfig } from '@core/context/ConfigContext'\nimport { useExpandAll } from '@core/context/ExpandContext'\nimport { onExpandRequest } from '@core/hooks/useHashScroll'\n\nexport interface ExpandableCardBadge {\n name: string\n color?: string\n position?: 'before' | 'after'\n}\n\nexport interface ExpandableCardProps {\n id?: string\n title: string\n rightLabel?: string\n deprecated?: boolean\n badges?: ExpandableCardBadge[]\n expandAll?: boolean\n expandGeneration?: number\n children: ReactNode\n}\n\nexport const ExpandableCard = memo(function ExpandableCard({\n id,\n title,\n rightLabel,\n deprecated,\n badges,\n expandAll,\n expandGeneration,\n children,\n}: ExpandableCardProps) {\n const { defaultExpandOperations } = useConfig()\n const [expanded, setExpanded] = useState(defaultExpandOperations)\n const [nearViewport, setNearViewport] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Explicit props win; otherwise fall back to the document-wide expand context.\n const ctx = useExpandAll()\n const effectiveExpandAll = expandAll ?? ctx.expandAll\n const effectiveGeneration = expandGeneration ?? ctx.expandGeneration\n useEffect(() => {\n if (effectiveGeneration > 0) {\n setExpanded(!!effectiveExpandAll)\n }\n }, [effectiveExpandAll, effectiveGeneration])\n\n useEffect(() => {\n if (!id) return\n return onExpandRequest(id, () => setExpanded(true))\n }, [id])\n\n useEffect(() => {\n const el = containerRef.current\n if (!el) return\n if (nearViewport) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setNearViewport(true)\n observer.disconnect()\n }\n },\n { rootMargin: '1000px' },\n )\n observer.observe(el)\n return () => observer.disconnect()\n }, [nearViewport])\n\n const shouldRender = expanded && nearViewport\n\n const handleClick = useCallback(() => {\n setExpanded((prev) => !prev)\n }, [])\n\n return (\n <div\n ref={containerRef}\n id={id}\n className={cx(\n 'omnispec-expandable-card',\n containerStyle,\n deprecated ? deprecatedStyle : undefined,\n )}\n >\n <button\n type=\"button\"\n onClick={handleClick}\n className={cx(headerStyle, expanded ? headerExpandedStyle : undefined)}\n aria-expanded={expanded}\n >\n <span className={cx(chevronStyle, expanded && chevronExpandedStyle)}>\n <Icon name=\"chevron-right\" size=\"0.75rem\" />\n </span>\n {badges?.filter((b) => b.position === 'before').map((b) => (\n <span key={b.name} className={xBadgeStyle} style={{ backgroundColor: b.color ?? 'var(--omnispec-bg-tertiary)', color: b.color ? '#fff' : 'var(--omnispec-fg-secondary)' }}>{b.name}</span>\n ))}\n <span className={titleStyle}>{title}</span>\n {badges?.filter((b) => b.position !== 'before').map((b) => (\n <span key={b.name} className={xBadgeStyle} style={{ backgroundColor: b.color ?? 'var(--omnispec-bg-tertiary)', color: b.color ? '#fff' : 'var(--omnispec-fg-secondary)' }}>{b.name}</span>\n ))}\n {deprecated && (\n <span className={deprecatedBadgeStyle}>Deprecated</span>\n )}\n {rightLabel && (\n <span className={rightLabelStyle}>{rightLabel}</span>\n )}\n </button>\n\n {shouldRender && (\n <div className={bodyStyle}>\n {children}\n </div>\n )}\n </div>\n )\n})\n\nconst containerStyle = css({\n marginBottom: '0.75rem',\n maxWidth: '100%',\n borderRadius: '0.5rem',\n [mq.desktop]: {\n border: '1px solid var(--omnispec-border-color)',\n borderRadius: '0.5rem',\n },\n})\n\nconst deprecatedStyle = css({\n opacity: 0.6,\n})\n\nconst headerStyle = css({\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n width: '100%',\n padding: '0.75rem 0',\n background: 'var(--omnispec-bg-primary)',\n border: 'none',\n borderBottom: 'none',\n borderRadius: '0.5rem',\n cursor: 'pointer',\n textAlign: 'left',\n [mq.desktop]: {\n padding: '1rem',\n },\n})\n\nconst headerExpandedStyle = css({})\n\nconst chevronStyle = css({\n color: 'var(--omnispec-fg-muted)',\n flexShrink: 0,\n transition: 'transform 0.2s ease',\n})\n\nconst chevronExpandedStyle = css({\n transform: 'rotate(90deg)',\n})\n\nconst titleStyle = css({\n fontWeight: 600,\n flex: 1,\n minWidth: 0,\n color: 'var(--omnispec-fg-primary)',\n fontSize: 'var(--omnispec-font-size-md)',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n})\n\nconst xBadgeStyle = css({\n fontSize: 'var(--omnispec-font-size-xs)',\n fontWeight: 600,\n padding: '0.125rem 0.5rem',\n borderRadius: '1rem',\n whiteSpace: 'nowrap',\n flexShrink: 0,\n})\n\nconst deprecatedBadgeStyle = css({\n fontSize: '10px',\n color: 'var(--omnispec-color-warning)',\n fontWeight: 600,\n textTransform: 'uppercase',\n border: '1px solid var(--omnispec-color-warning)',\n padding: '1px 5px',\n borderRadius: '3px',\n flexShrink: 0,\n})\n\nconst rightLabelStyle = css({\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-muted)',\n flexShrink: 0,\n marginLeft: 'auto',\n})\n\nconst bodyStyle = css({})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css } from '../../styles/css'\nimport { Badge } from './Badge'\n\ninterface MethodBarProps {\n label: string\n path: string\n color?: string\n method?: 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head'\n}\n\nconst barStyle = css({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '12px',\n padding: '12px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.02)',\n borderBottom: '1px solid var(--omnispec-border-color)',\n overflow: 'hidden',\n maxWidth: '100%',\n})\n\nconst pathStyle = css({\n minWidth: 0,\n wordBreak: 'break-all',\n})\n\nexport function MethodBar({ label, path, color, method }: MethodBarProps) {\n return (\n <div className={barStyle}>\n <Badge\n label={label}\n variant={method ? 'method' : 'default'}\n method={method}\n color={color}\n />\n <code className={pathStyle}>{path}</code>\n </div>\n )\n}\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (document.currentScript && document.currentScript.tagName === 'SCRIPT' && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': {\n\t\tpattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n\t\tgreedy: true\n\t},\n\t'prolog': {\n\t\tpattern: /<\\?[\\s\\S]+?\\?>/,\n\t\tgreedy: true\n\t},\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /\"[^\"]*\"|'[^']*'/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t'punctuation': /^<!|>$|[[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /[^\\s<>'\"]+/\n\t\t}\n\t},\n\t'cdata': {\n\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\tgreedy: true\n\t},\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-attr': [],\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': [\n\t\t{\n\t\t\tpattern: /&[\\da-z]{1,8};/i,\n\t\t\talias: 'named-entity'\n\t\t},\n\t\t/&#x?[\\da-f]{1,8};/i\n\t]\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n\t/**\n\t * Adds an pattern to highlight languages embedded in HTML attributes.\n\t *\n\t * An example of an inlined language is CSS with `style` attributes.\n\t *\n\t * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addAttribute('style', 'css');\n\t */\n\tvalue: function (attrName, lang) {\n\t\tPrism.languages.markup.tag.inside['special-attr'].push({\n\t\t\tpattern: RegExp(\n\t\t\t\t/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n\t\t\t\t'i'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attr-name': /^[^\\s=]+/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'value': {\n\t\t\t\t\t\t\tpattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: [lang, 'language-' + lang],\n\t\t\t\t\t\t\tinside: Prism.languages[lang]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t/\"|'/\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\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\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\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\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\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\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/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)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t}\n\n\tvar LOADING_MESSAGE = 'Loading…';\n\tvar FAILURE_MESSAGE = function (status, message) {\n\t\treturn '✖ Error ' + status + ' while fetching file: ' + message;\n\t};\n\tvar FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';\n\n\tvar EXTENSIONS = {\n\t\t'js': 'javascript',\n\t\t'py': 'python',\n\t\t'rb': 'ruby',\n\t\t'ps1': 'powershell',\n\t\t'psm1': 'powershell',\n\t\t'sh': 'bash',\n\t\t'bat': 'batch',\n\t\t'h': 'c',\n\t\t'tex': 'latex'\n\t};\n\n\tvar STATUS_ATTR = 'data-src-status';\n\tvar STATUS_LOADING = 'loading';\n\tvar STATUS_LOADED = 'loaded';\n\tvar STATUS_FAILED = 'failed';\n\n\tvar SELECTOR = 'pre[data-src]:not([' + STATUS_ATTR + '=\"' + STATUS_LOADED + '\"])'\n\t\t+ ':not([' + STATUS_ATTR + '=\"' + STATUS_LOADING + '\"])';\n\n\t/**\n\t * Loads the given file.\n\t *\n\t * @param {string} src The URL or path of the source file to load.\n\t * @param {(result: string) => void} success\n\t * @param {(reason: string) => void} error\n\t */\n\tfunction loadFile(src, success, error) {\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('GET', src, true);\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState == 4) {\n\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\tsuccess(xhr.responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (xhr.status >= 400) {\n\t\t\t\t\t\terror(FAILURE_MESSAGE(xhr.status, xhr.statusText));\n\t\t\t\t\t} else {\n\t\t\t\t\t\terror(FAILURE_EMPTY_MESSAGE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\txhr.send(null);\n\t}\n\n\t/**\n\t * Parses the given range.\n\t *\n\t * This returns a range with inclusive ends.\n\t *\n\t * @param {string | null | undefined} range\n\t * @returns {[number, number | undefined] | undefined}\n\t */\n\tfunction parseRange(range) {\n\t\tvar m = /^\\s*(\\d+)\\s*(?:(,)\\s*(?:(\\d+)\\s*)?)?$/.exec(range || '');\n\t\tif (m) {\n\t\t\tvar start = Number(m[1]);\n\t\t\tvar comma = m[2];\n\t\t\tvar end = m[3];\n\n\t\t\tif (!comma) {\n\t\t\t\treturn [start, start];\n\t\t\t}\n\t\t\tif (!end) {\n\t\t\t\treturn [start, undefined];\n\t\t\t}\n\t\t\treturn [start, Number(end)];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tPrism.hooks.add('before-highlightall', function (env) {\n\t\tenv.selector += ', ' + SELECTOR;\n\t});\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = /** @type {HTMLPreElement} */ (env.element);\n\t\tif (pre.matches(SELECTOR)) {\n\t\t\tenv.code = ''; // fast-path the whole thing and go to complete\n\n\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADING); // mark as loading\n\n\t\t\t// add code element with loading message\n\t\t\tvar code = pre.appendChild(document.createElement('CODE'));\n\t\t\tcode.textContent = LOADING_MESSAGE;\n\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language = env.language;\n\t\t\tif (language === 'none') {\n\t\t\t\t// the language might be 'none' because there is no language set;\n\t\t\t\t// in this case, we want to use the extension as the language\n\t\t\t\tvar extension = (/\\.(\\w+)$/.exec(src) || [, 'none'])[1];\n\t\t\t\tlanguage = EXTENSIONS[extension] || extension;\n\t\t\t}\n\n\t\t\t// set language classes\n\t\t\tPrism.util.setLanguage(code, language);\n\t\t\tPrism.util.setLanguage(pre, language);\n\n\t\t\t// preload the language\n\t\t\tvar autoloader = Prism.plugins.autoloader;\n\t\t\tif (autoloader) {\n\t\t\t\tautoloader.loadLanguages(language);\n\t\t\t}\n\n\t\t\t// load file\n\t\t\tloadFile(\n\t\t\t\tsrc,\n\t\t\t\tfunction (text) {\n\t\t\t\t\t// mark as loaded\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADED);\n\n\t\t\t\t\t// handle data-range\n\t\t\t\t\tvar range = parseRange(pre.getAttribute('data-range'));\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\tvar lines = text.split(/\\r\\n?|\\n/g);\n\n\t\t\t\t\t\t// the range is one-based and inclusive on both ends\n\t\t\t\t\t\tvar start = range[0];\n\t\t\t\t\t\tvar end = range[1] == null ? lines.length : range[1];\n\n\t\t\t\t\t\tif (start < 0) { start += lines.length; }\n\t\t\t\t\t\tstart = Math.max(0, Math.min(start - 1, lines.length));\n\t\t\t\t\t\tif (end < 0) { end += lines.length; }\n\t\t\t\t\t\tend = Math.max(0, Math.min(end, lines.length));\n\n\t\t\t\t\t\ttext = lines.slice(start, end).join('\\n');\n\n\t\t\t\t\t\t// add data-start for line numbers\n\t\t\t\t\t\tif (!pre.hasAttribute('data-start')) {\n\t\t\t\t\t\t\tpre.setAttribute('data-start', String(start + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// highlight code\n\t\t\t\t\tcode.textContent = text;\n\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t},\n\t\t\t\tfunction (error) {\n\t\t\t\t\t// mark as failed\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_FAILED);\n\n\t\t\t\t\tcode.textContent = error;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\n\tPrism.plugins.fileHighlight = {\n\t\t/**\n\t\t * Executes the File Highlight plugin for all matching `pre` elements under the given container.\n\t\t *\n\t\t * Note: Elements which are already loaded or currently loading will not be touched by this method.\n\t\t *\n\t\t * @param {ParentNode} [container=document]\n\t\t */\n\t\thighlight: function highlight(container) {\n\t\t\tvar elements = (container || document).querySelectorAll(SELECTOR);\n\n\t\t\tfor (var i = 0, element; (element = elements[i++]);) {\n\t\t\t\tPrism.highlightElement(element);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar logged = false;\n\t/** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */\n\tPrism.fileHighlight = function () {\n\t\tif (!logged) {\n\t\t\tconsole.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');\n\t\t\tlogged = true;\n\t\t}\n\t\tPrism.plugins.fileHighlight.highlight.apply(this, arguments);\n\t};\n\n}());\n","// https://www.json.org/json-en.html\nPrism.languages.json = {\n\t'property': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'comment': {\n\t\tpattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'number': /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'punctuation': /[{}[\\],]/,\n\t'operator': /:/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'null': {\n\t\tpattern: /\\bnull\\b/,\n\t\talias: 'keyword'\n\t}\n};\n\nPrism.languages.webmanifest = Prism.languages.json;\n","(function (Prism) {\n\n\t// https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n\t// https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n\tvar anchorOrAlias = /[*&][^\\s[\\]{},]+/;\n\t// https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n\tvar tag = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/;\n\t// https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n\tvar properties = '(?:' + tag.source + '(?:[ \\t]+' + anchorOrAlias.source + ')?|'\n\t\t+ anchorOrAlias.source + '(?:[ \\t]+' + tag.source + ')?)';\n\t// https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n\t// This is a simplified version that doesn't support \"#\" and multiline keys\n\t// All these long scarry character classes are simplified versions of YAML's characters\n\tvar plainKey = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source\n\t\t.replace(/<PLAIN>/g, function () { return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source; });\n\tvar string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n\n\t/**\n\t *\n\t * @param {string} value\n\t * @param {string} [flags]\n\t * @returns {RegExp}\n\t */\n\tfunction createValuePattern(value, flags) {\n\t\tflags = (flags || '').replace(/m/g, '') + 'm'; // add m flag\n\t\tvar pattern = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n\t\t\t.replace(/<<prop>>/g, function () { return properties; }).replace(/<<value>>/g, function () { return value; });\n\t\treturn RegExp(pattern, flags);\n\t}\n\n\tPrism.languages.yaml = {\n\t\t'scalar': {\n\t\t\tpattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source\n\t\t\t\t.replace(/<<prop>>/g, function () { return properties; })),\n\t\t\tlookbehind: true,\n\t\t\talias: 'string'\n\t\t},\n\t\t'comment': /#.*/,\n\t\t'key': {\n\t\t\tpattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n\t\t\t\t.replace(/<<prop>>/g, function () { return properties; })\n\t\t\t\t.replace(/<<key>>/g, function () { return '(?:' + plainKey + '|' + string + ')'; })),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\talias: 'atrule'\n\t\t},\n\t\t'directive': {\n\t\t\tpattern: /(^[ \\t]*)%.+/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'important'\n\t\t},\n\t\t'datetime': {\n\t\t\tpattern: createValuePattern(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source),\n\t\t\tlookbehind: true,\n\t\t\talias: 'number'\n\t\t},\n\t\t'boolean': {\n\t\t\tpattern: createValuePattern(/false|true/.source, 'i'),\n\t\t\tlookbehind: true,\n\t\t\talias: 'important'\n\t\t},\n\t\t'null': {\n\t\t\tpattern: createValuePattern(/null|~/.source, 'i'),\n\t\t\tlookbehind: true,\n\t\t\talias: 'important'\n\t\t},\n\t\t'string': {\n\t\t\tpattern: createValuePattern(string),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t'number': {\n\t\t\tpattern: createValuePattern(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, 'i'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'tag': tag,\n\t\t'important': anchorOrAlias,\n\t\t'punctuation': /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n\t};\n\n\tPrism.languages.yml = Prism.languages.yaml;\n\n}(Prism));\n","(function (Prism) {\n\n\t/**\n\t * If the given language is present, it will insert the given doc comment grammar token into it.\n\t *\n\t * @param {string} lang\n\t * @param {any} docComment\n\t */\n\tfunction insertDocComment(lang, docComment) {\n\t\tif (Prism.languages[lang]) {\n\t\t\tPrism.languages.insertBefore(lang, 'comment', {\n\t\t\t\t'doc-comment': docComment\n\t\t\t});\n\t\t}\n\t}\n\n\tvar tag = Prism.languages.markup.tag;\n\n\tvar slashDocComment = {\n\t\tpattern: /\\/\\/\\/.*/,\n\t\tgreedy: true,\n\t\talias: 'comment',\n\t\tinside: {\n\t\t\t'tag': tag\n\t\t}\n\t};\n\tvar tickDocComment = {\n\t\tpattern: /'''.*/,\n\t\tgreedy: true,\n\t\talias: 'comment',\n\t\tinside: {\n\t\t\t'tag': tag\n\t\t}\n\t};\n\n\tinsertDocComment('csharp', slashDocComment);\n\tinsertDocComment('fsharp', slashDocComment);\n\tinsertDocComment('vbnet', tickDocComment);\n\n}(Prism));\n","(function (Prism) {\n\t// $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n\t// + LC_ALL, RANDOM, REPLY, SECONDS.\n\t// + make sure PS1..4 are here as they are not always set,\n\t// - some useless things.\n\tvar envVars = '\\\\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\n\tvar commandAfterHeredoc = {\n\t\tpattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n\t\tlookbehind: true,\n\t\talias: 'punctuation', // this looks reasonably well in all themes\n\t\tinside: null // see below\n\t};\n\n\tvar insideString = {\n\t\t'bash': commandAfterHeredoc,\n\t\t'environment': {\n\t\t\tpattern: RegExp('\\\\$' + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': [\n\t\t\t// [0]: Arithmetic Environment\n\t\t\t{\n\t\t\t\tpattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t// If there is a $ sign at the beginning highlight $(( and )) as variable\n\t\t\t\t\t'variable': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t/^\\$\\(\\(/\n\t\t\t\t\t],\n\t\t\t\t\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t\t\t\t\t// Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n\t\t\t\t\t'operator': /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n\t\t\t\t\t// If there is no $ sign at the beginning highlight (( and )) as punctuation\n\t\t\t\t\t'punctuation': /\\(\\(?|\\)\\)?|,|;/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [1]: Command Substitution\n\t\t\t{\n\t\t\t\tpattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'variable': /^\\$\\(|^`|\\)$|`$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [2]: Brace expansion\n\t\t\t{\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'operator': /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n\t\t\t\t\t'punctuation': /[\\[\\]]/,\n\t\t\t\t\t'environment': {\n\t\t\t\t\t\tpattern: RegExp('(\\\\{)' + envVars),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'constant'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t/\\$(?:\\w+|[#?*!@$])/\n\t\t],\n\t\t// Escape sequences from echo and printf's manuals, and escaped quotes.\n\t\t'entity': /\\\\(?:[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\t};\n\n\tPrism.languages.bash = {\n\t\t'shebang': {\n\t\t\tpattern: /^#!\\s*\\/.*/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'comment': {\n\t\t\tpattern: /(^|[^\"{\\\\$])#.*/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'function-name': [\n\t\t\t// a) function foo {\n\t\t\t// b) foo() {\n\t\t\t// c) function foo() {\n\t\t\t// but not “foo {”\n\t\t\t{\n\t\t\t\t// a) and c)\n\t\t\t\tpattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'function'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// b)\n\t\t\t\tpattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n\t\t\t\talias: 'function'\n\t\t\t}\n\t\t],\n\t\t// Highlight variable names as variables in for and select beginnings.\n\t\t'for-or-select': {\n\t\t\tpattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t// Highlight variable names as variables in the left-hand part\n\t\t// of assignments (“=” and “+=”).\n\t\t'assign-left': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()\\w+(?:\\.\\w+)*(?=\\+?=)/,\n\t\t\tinside: {\n\t\t\t\t'environment': {\n\t\t\t\t\tpattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'constant'\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t// Highlight parameter names as variables\n\t\t'parameter': {\n\t\t\tpattern: /(^|\\s)-{1,2}(?:\\w+:[+-]?)?\\w+(?:\\.\\w+)*(?=[=\\s]|$)/,\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': [\n\t\t\t// Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t},\n\t\t\t// Here-document with quotes around the tag\n\t\t\t// → No expansion (so no “inside”).\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'bash': commandAfterHeredoc\n\t\t\t\t}\n\t\t\t},\n\t\t\t// “Normal” string\n\t\t\t{\n\t\t\t\t// https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n\t\t\t\tpattern: /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t},\n\t\t\t{\n\t\t\t\t// https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n\t\t\t\tpattern: /(^|[^$\\\\])'[^']*'/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n\t\t\t\tpattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'entity': insideString.entity\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'environment': {\n\t\t\tpattern: RegExp('\\\\$?' + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': insideString.variable,\n\t\t'function': {\n\t\t\tpattern: /(^|[\\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\t\t\tlookbehind: true\n\t\t},\n\t\t'keyword': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n\t\t'builtin': {\n\t\t\tpattern: /(^|[\\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\t\t\tlookbehind: true,\n\t\t\t// Alias added to make those easier to distinguish from strings.\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'boolean': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'file-descriptor': {\n\t\t\tpattern: /\\B&\\d\\b/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'operator': {\n\t\t\t// Lots of redirections here, but not just that.\n\t\t\tpattern: /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n\t\t\tinside: {\n\t\t\t\t'file-descriptor': {\n\t\t\t\t\tpattern: /^\\d/,\n\t\t\t\t\talias: 'important'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'punctuation': /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n\t\t'number': {\n\t\t\tpattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n\t\t\tlookbehind: true\n\t\t}\n\t};\n\n\tcommandAfterHeredoc.inside = Prism.languages.bash;\n\n\t/* Patterns in command substitution. */\n\tvar toBeCopied = [\n\t\t'comment',\n\t\t'function-name',\n\t\t'for-or-select',\n\t\t'assign-left',\n\t\t'parameter',\n\t\t'string',\n\t\t'environment',\n\t\t'function',\n\t\t'keyword',\n\t\t'builtin',\n\t\t'boolean',\n\t\t'file-descriptor',\n\t\t'operator',\n\t\t'punctuation',\n\t\t'number'\n\t];\n\tvar inside = insideString.variable[1].inside;\n\tfor (var i = 0; i < toBeCopied.length; i++) {\n\t\tinside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]];\n\t}\n\n\tPrism.languages.sh = Prism.languages.bash;\n\tPrism.languages.shell = Prism.languages.bash;\n}(Prism));\n","Prism.languages.graphql = {\n\t'comment': /#.*/,\n\t'description': {\n\t\tpattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n\t\tgreedy: true,\n\t\talias: 'string',\n\t\tinside: {\n\t\t\t'language-markdown': {\n\t\t\t\tpattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: Prism.languages.markdown\n\t\t\t}\n\t\t}\n\t},\n\t'string': {\n\t\tpattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n\t\tgreedy: true\n\t},\n\t'number': /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'variable': /\\$[a-z_]\\w*/i,\n\t'directive': {\n\t\tpattern: /@[a-z_]\\w*/i,\n\t\talias: 'function'\n\t},\n\t'attr-name': {\n\t\tpattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n\t\tgreedy: true\n\t},\n\t'atom-input': {\n\t\tpattern: /\\b[A-Z]\\w*Input\\b/,\n\t\talias: 'class-name'\n\t},\n\t'scalar': /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n\t'constant': /\\b[A-Z][A-Z_\\d]*\\b/,\n\t'class-name': {\n\t\tpattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n\t\tlookbehind: true\n\t},\n\t'fragment': {\n\t\tpattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'definition-mutation': {\n\t\tpattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'definition-query': {\n\t\tpattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'keyword': /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n\t'operator': /[!=|&]|\\.{3}/,\n\t'property-query': /\\w+(?=\\s*\\()/,\n\t'object': /\\w+(?=\\s*\\{)/,\n\t'punctuation': /[!(){}\\[\\]:=,]/,\n\t'property': /\\w+/\n};\n\nPrism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n\tif (env.language !== 'graphql') {\n\t\treturn;\n\t}\n\n\t/**\n\t * get the graphql token stream that we want to customize\n\t *\n\t * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\t * @type {Token[]}\n\t */\n\tvar validTokens = env.tokens.filter(function (token) {\n\t\treturn typeof token !== 'string' && token.type !== 'comment' && token.type !== 'scalar';\n\t});\n\n\tvar currentIndex = 0;\n\n\t/**\n\t * Returns whether the token relative to the current index has the given type.\n\t *\n\t * @param {number} offset\n\t * @returns {Token | undefined}\n\t */\n\tfunction getToken(offset) {\n\t\treturn validTokens[currentIndex + offset];\n\t}\n\n\t/**\n\t * Returns whether the token relative to the current index has the given type.\n\t *\n\t * @param {readonly string[]} types\n\t * @param {number} [offset=0]\n\t * @returns {boolean}\n\t */\n\tfunction isTokenType(types, offset) {\n\t\toffset = offset || 0;\n\t\tfor (var i = 0; i < types.length; i++) {\n\t\t\tvar token = getToken(i + offset);\n\t\t\tif (!token || token.type !== types[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns the index of the closing bracket to an opening bracket.\n\t *\n\t * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n\t *\n\t * If no closing bracket could be found, `-1` will be returned.\n\t *\n\t * @param {RegExp} open\n\t * @param {RegExp} close\n\t * @returns {number}\n\t */\n\tfunction findClosingBracket(open, close) {\n\t\tvar stackHeight = 1;\n\n\t\tfor (var i = currentIndex; i < validTokens.length; i++) {\n\t\t\tvar token = validTokens[i];\n\t\t\tvar content = token.content;\n\n\t\t\tif (token.type === 'punctuation' && typeof content === 'string') {\n\t\t\t\tif (open.test(content)) {\n\t\t\t\t\tstackHeight++;\n\t\t\t\t} else if (close.test(content)) {\n\t\t\t\t\tstackHeight--;\n\n\t\t\t\t\tif (stackHeight === 0) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Adds an alias to the given token.\n\t *\n\t * @param {Token} token\n\t * @param {string} alias\n\t * @returns {void}\n\t */\n\tfunction addAlias(token, alias) {\n\t\tvar aliases = token.alias;\n\t\tif (!aliases) {\n\t\t\ttoken.alias = aliases = [];\n\t\t} else if (!Array.isArray(aliases)) {\n\t\t\ttoken.alias = aliases = [aliases];\n\t\t}\n\t\taliases.push(alias);\n\t}\n\n\tfor (; currentIndex < validTokens.length;) {\n\t\tvar startToken = validTokens[currentIndex++];\n\n\t\t// add special aliases for mutation tokens\n\t\tif (startToken.type === 'keyword' && startToken.content === 'mutation') {\n\t\t\t// any array of the names of all input variables (if any)\n\t\t\tvar inputVariables = [];\n\n\t\t\tif (isTokenType(['definition-mutation', 'punctuation']) && getToken(1).content === '(') {\n\t\t\t\t// definition\n\n\t\t\t\tcurrentIndex += 2; // skip 'definition-mutation' and 'punctuation'\n\n\t\t\t\tvar definitionEnd = findClosingBracket(/^\\($/, /^\\)$/);\n\t\t\t\tif (definitionEnd === -1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// find all input variables\n\t\t\t\tfor (; currentIndex < definitionEnd; currentIndex++) {\n\t\t\t\t\tvar t = getToken(0);\n\t\t\t\t\tif (t.type === 'variable') {\n\t\t\t\t\t\taddAlias(t, 'variable-input');\n\t\t\t\t\t\tinputVariables.push(t.content);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcurrentIndex = definitionEnd + 1;\n\t\t\t}\n\n\t\t\tif (isTokenType(['punctuation', 'property-query']) && getToken(0).content === '{') {\n\t\t\t\tcurrentIndex++; // skip opening bracket\n\n\t\t\t\taddAlias(getToken(0), 'property-mutation');\n\n\t\t\t\tif (inputVariables.length > 0) {\n\t\t\t\t\tvar mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/);\n\t\t\t\t\tif (mutationEnd === -1) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// give references to input variables a special alias\n\t\t\t\t\tfor (var i = currentIndex; i < mutationEnd; i++) {\n\t\t\t\t\t\tvar varToken = validTokens[i];\n\t\t\t\t\t\tif (varToken.type === 'variable' && inputVariables.indexOf(varToken.content) >= 0) {\n\t\t\t\t\t\t\taddAlias(varToken, 'variable-input');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n","Prism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\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\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\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\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\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\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/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)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n","Prism.languages.python = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string-interpolation': {\n\t\tpattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n\t\t\t\tpattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-spec': {\n\t\t\t\t\t\tpattern: /(:)[^:(){}]+(?=\\}$)/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'conversion-option': {\n\t\t\t\t\t\tpattern: //,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: null\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'decorator': {\n\t\tpattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n\t\tlookbehind: true,\n\t\talias: ['annotation', 'punctuation'],\n\t\tinside: {\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'keyword': /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n\t'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n\t'boolean': /\\b(?:False|None|True)\\b/,\n\t'number': /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n\t'operator': /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\nPrism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\n\nPrism.languages.py = Prism.languages.python;\n","Prism.languages.go = Prism.languages.extend('clike', {\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n\t'boolean': /\\b(?:_|false|iota|nil|true)\\b/,\n\t'number': [\n\t\t// binary and octal integers\n\t\t/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i,\n\t\t// hexadecimal integers and floats\n\t\t/\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n\t\t// decimal integers and floats\n\t\t/(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n\t],\n\t'operator': /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n\t'builtin': /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n});\n\nPrism.languages.insertBefore('go', 'string', {\n\t'char': {\n\t\tpattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n\t\tgreedy: true\n\t}\n});\n\ndelete Prism.languages.go['class-name'];\n","(function (Prism) {\n\n\tvar keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\\s*[(){}[\\]<>=%~.:,;?+\\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/;\n\n\t// full package (optional) + parent classes (optional)\n\tvar classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source;\n\n\t// based on the java naming conventions\n\tvar className = {\n\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'namespace': {\n\t\t\t\tpattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\./\n\t\t}\n\t};\n\n\tPrism.languages.java = Prism.languages.extend('clike', {\n\t\t'string': {\n\t\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t'class-name': [\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t// variables, parameters, and constructor references\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// class names based on keyword\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)/.source + classNamePrefix + /[A-Z]\\w*\\b/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t'function': [\n\t\t\tPrism.languages.clike.function,\n\t\t\t{\n\t\t\t\tpattern: /(::\\s*)[a-z_]\\w*/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'number': /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n\t\t'operator': {\n\t\t\tpattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'constant': /\\b[A-Z][A-Z_\\d]+\\b/\n\t});\n\n\tPrism.languages.insertBefore('java', 'string', {\n\t\t'triple-quoted-string': {\n\t\t\t// http://openjdk.java.net/jeps/355#Description\n\t\t\tpattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string'\n\t\t},\n\t\t'char': {\n\t\t\tpattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('java', 'class-name', {\n\t\t'annotation': {\n\t\t\tpattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'generics': {\n\t\t\tpattern: /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n\t\t\tinside: {\n\t\t\t\t'class-name': className,\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'punctuation': /[<>(),.:]/,\n\t\t\t\t'operator': /[?&|]/\n\t\t\t}\n\t\t},\n\t\t'import': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+)/.source + classNamePrefix + /(?:[A-Z]\\w*|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+static\\s+)/.source + classNamePrefix + /(?:\\w+|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'static',\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'static': /\\b\\w+$/,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'namespace': {\n\t\t\tpattern: RegExp(\n\t\t\t\t/(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/\n\t\t\t\t\t.source.replace(/<keyword>/g, function () { return keywords.source; })),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./,\n\t\t\t}\n\t\t}\n\t});\n}(Prism));\n","(function (Prism) {\n\n\t/**\n\t * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n\t *\n\t * Note: This is a simple text based replacement. Be careful when using backreferences!\n\t *\n\t * @param {string} pattern the given pattern.\n\t * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n\t * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n\t * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n\t */\n\tfunction replace(pattern, replacements) {\n\t\treturn pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n\t\t\treturn '(?:' + replacements[+index] + ')';\n\t\t});\n\t}\n\t/**\n\t * @param {string} pattern\n\t * @param {string[]} replacements\n\t * @param {string} [flags]\n\t * @returns {RegExp}\n\t */\n\tfunction re(pattern, replacements, flags) {\n\t\treturn RegExp(replace(pattern, replacements), flags || '');\n\t}\n\n\t/**\n\t * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n\t *\n\t * @param {string} pattern\n\t * @param {number} depthLog2\n\t * @returns {string}\n\t */\n\tfunction nested(pattern, depthLog2) {\n\t\tfor (var i = 0; i < depthLog2; i++) {\n\t\t\tpattern = pattern.replace(/<<self>>/g, function () { return '(?:' + pattern + ')'; });\n\t\t}\n\t\treturn pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]');\n\t}\n\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n\tvar keywordKinds = {\n\t\t// keywords which represent a return or variable type\n\t\ttype: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n\t\t// keywords which are used to declare a type\n\t\ttypeDeclaration: 'class enum interface record struct',\n\t\t// contextual keywords\n\t\t// (\"var\" and \"dynamic\" are missing because they are used like types)\n\t\tcontextual: 'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n\t\t// all other keywords\n\t\tother: 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n\t};\n\n\t// keywords\n\tfunction keywordsToPattern(words) {\n\t\treturn '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b';\n\t}\n\tvar typeDeclarationKeywords = keywordsToPattern(keywordKinds.typeDeclaration);\n\tvar keywords = RegExp(keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other));\n\tvar nonTypeKeywords = keywordsToPattern(keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other);\n\tvar nonContextualKeywords = keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.other);\n\n\t// types\n\tvar generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2); // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n\tvar nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2);\n\tvar name = /@?\\b[A-Za-z_]\\w*\\b/.source;\n\tvar genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic]);\n\tvar identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [nonTypeKeywords, genericName]);\n\tvar array = /\\[\\s*(?:,\\s*)*\\]/.source;\n\tvar typeExpressionWithoutTuple = replace(/<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source, [identifier, array]);\n\tvar tupleElement = replace(/[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source, [generic, nestedRound, array]);\n\tvar tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement]);\n\tvar typeExpression = replace(/(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source, [tuple, identifier, array]);\n\n\tvar typeInside = {\n\t\t'keyword': keywords,\n\t\t'punctuation': /[<>()?,.:[\\]]/\n\t};\n\n\t// strings & characters\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n\tvar character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source; // simplified pattern\n\tvar regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source;\n\tvar verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source;\n\n\n\tPrism.languages.csharp = Prism.languages.extend('clike', {\n\t\t'string': [\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\t// Using static\n\t\t\t\t// using static System.Math;\n\t\t\t\tpattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [identifier]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Using alias (type)\n\t\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\t\tpattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [name, typeExpression]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Using alias (alias)\n\t\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\t\tpattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Type declarations\n\t\t\t\t// class Foo<A, B>\n\t\t\t\t// interface Foo<out A, B>\n\t\t\t\tpattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [typeDeclarationKeywords, genericName]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Single catch exception declaration\n\t\t\t\t// catch(Foo)\n\t\t\t\t// (things like catch(Foo e) is covered by variable declaration)\n\t\t\t\tpattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Name of the type parameter of generic constraints\n\t\t\t\t// where Foo : class\n\t\t\t\tpattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Casts and checks via as and is.\n\t\t\t\t// as Foo<A>, is Bar<B>\n\t\t\t\t// (things like if(a is Foo b) is covered by variable declaration)\n\t\t\t\tpattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [typeExpressionWithoutTuple]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Variable, field and parameter declaration\n\t\t\t\t// (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n\t\t\t\tpattern: re(/\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/.source, [typeExpression, nonContextualKeywords, name]),\n\t\t\t\tinside: typeInside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n\t\t'number': /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n\t\t'operator': />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n\t\t'punctuation': /\\?\\.?|::|[{}[\\];(),.:]/\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'number', {\n\t\t'range': {\n\t\t\tpattern: /\\.\\./,\n\t\t\talias: 'operator'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'punctuation', {\n\t\t'named-parameter': {\n\t\t\tpattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'class-name', {\n\t\t'namespace': {\n\t\t\t// namespace Foo.Bar {}\n\t\t\t// using Foo.Bar;\n\t\t\tpattern: re(/(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source, [name]),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./\n\t\t\t}\n\t\t},\n\t\t'type-expression': {\n\t\t\t// default(Foo), typeof(Foo<Bar>), sizeof(int)\n\t\t\tpattern: re(/(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/.source, [nestedRound]),\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name',\n\t\t\tinside: typeInside\n\t\t},\n\t\t'return-type': {\n\t\t\t// Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n\t\t\t// int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n\t\t\t// int Foo => 0; int Foo { get; set } = 0;\n\t\t\tpattern: re(/<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source, [typeExpression, identifier]),\n\t\t\tinside: typeInside,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'constructor-invocation': {\n\t\t\t// new List<Foo<Bar[]>> { }\n\t\t\tpattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t/*'explicit-implementation': {\n\t\t\t// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\n\t\t\tpattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\n\t\t\tinside: classNameInside,\n\t\t\talias: 'class-name'\n\t\t},*/\n\t\t'generic-method': {\n\t\t\t// foo<Bar>()\n\t\t\tpattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n\t\t\tinside: {\n\t\t\t\t'function': re(/^<<0>>/.source, [name]),\n\t\t\t\t'generic': {\n\t\t\t\t\tpattern: RegExp(generic),\n\t\t\t\t\talias: 'class-name',\n\t\t\t\t\tinside: typeInside\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'type-list': {\n\t\t\t// The list of types inherited or of generic constraints\n\t\t\t// class Foo<F> : Bar, IList<FooBar>\n\t\t\t// where F : Bar, IList<int>\n\t\t\tpattern: re(\n\t\t\t\t/\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/.source,\n\t\t\t\t[typeDeclarationKeywords, genericName, name, typeExpression, keywords.source, nestedRound, /\\bnew\\s*\\(\\s*\\)/.source]\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'record-arguments': {\n\t\t\t\t\tpattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [genericName, nestedRound]),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t},\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'class-name': {\n\t\t\t\t\tpattern: RegExp(typeExpression),\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\tinside: typeInside\n\t\t\t\t},\n\t\t\t\t'punctuation': /[,()]/\n\t\t\t}\n\t\t},\n\t\t'preprocessor': {\n\t\t\tpattern: /(^[\\t ]*)#.*/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'property',\n\t\t\tinside: {\n\t\t\t\t// highlight preprocessor directives as keywords\n\t\t\t\t'directive': {\n\t\t\t\t\tpattern: /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'keyword'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// attributes\n\tvar regularStringOrCharacter = regularString + '|' + character;\n\tvar regularStringCharacterOrComment = replace(/\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source, [regularStringOrCharacter]);\n\tvar roundExpression = nested(replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [regularStringCharacterOrComment]), 2);\n\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n\tvar attrTarget = /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/.source;\n\tvar attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [identifier, roundExpression]);\n\n\tPrism.languages.insertBefore('csharp', 'class-name', {\n\t\t'attribute': {\n\t\t\t// Attributes\n\t\t\t// [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n\t\t\tpattern: re(/((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/.source, [attrTarget, attr]),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'target': {\n\t\t\t\t\tpattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n\t\t\t\t\talias: 'keyword'\n\t\t\t\t},\n\t\t\t\t'attribute-arguments': {\n\t\t\t\t\tpattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t},\n\t\t\t\t'class-name': {\n\t\t\t\t\tpattern: RegExp(identifier),\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'punctuation': /[:,]/\n\t\t\t}\n\t\t}\n\t});\n\n\n\t// string interpolation\n\tvar formatString = /:[^}\\r\\n]+/.source;\n\t// multi line\n\tvar mInterpolationRound = nested(replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [regularStringCharacterOrComment]), 2);\n\tvar mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [mInterpolationRound, formatString]);\n\t// single line\n\tvar sInterpolationRound = nested(replace(/[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/.source, [regularStringOrCharacter]), 2);\n\tvar sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [sInterpolationRound, formatString]);\n\n\tfunction createInterpolationInside(interpolation, interpolationRound) {\n\t\treturn {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-string': {\n\t\t\t\t\t\tpattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [interpolationRound, formatString]),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'punctuation': /^:/\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /^\\{|\\}$/,\n\t\t\t\t\t'expression': {\n\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\talias: 'language-csharp',\n\t\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t};\n\t}\n\n\tPrism.languages.insertBefore('csharp', 'string', {\n\t\t'interpolation-string': [\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source, [mInterpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: createInterpolationInside(mInterpolation, mInterpolationRound),\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [sInterpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: createInterpolationInside(sInterpolation, sInterpolationRound),\n\t\t\t}\n\t\t],\n\t\t'char': {\n\t\t\tpattern: RegExp(character),\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp;\n\n}(Prism));\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useCallback, useRef, useState } from 'react'\nimport type { ReactNode } from 'react'\nimport Prism from 'prismjs'\nimport 'prismjs/components/prism-json'\nimport 'prismjs/components/prism-yaml'\nimport 'prismjs/components/prism-xml-doc'\nimport 'prismjs/components/prism-bash'\nimport 'prismjs/components/prism-graphql'\nimport 'prismjs/components/prism-javascript'\nimport 'prismjs/components/prism-python'\nimport 'prismjs/components/prism-go'\nimport 'prismjs/components/prism-java'\nimport 'prismjs/components/prism-csharp'\nimport { css, cx } from '@core/styles/css'\nimport { mq } from '@core/styles/breakpoints'\nimport { Icon } from '@core/components/common/Icon'\n\nexport type CodeLanguage = 'json' | 'yaml' | 'xml' | 'bash' | 'graphql' | 'http' | 'text' | 'javascript' | 'python' | 'go' | 'java' | 'csharp'\n\ninterface CodeBlockProps {\n code: string\n language?: CodeLanguage\n title?: string\n showCopy?: boolean\n maxHeight?: string\n headerLeft?: ReactNode\n}\n\nconst languageMap: Record<CodeLanguage, string> = {\n json: 'json',\n yaml: 'yaml',\n xml: 'xml-doc',\n bash: 'bash',\n graphql: 'graphql',\n http: 'http',\n text: 'text',\n javascript: 'javascript',\n python: 'python',\n go: 'go',\n java: 'java',\n csharp: 'csharp',\n}\n\nexport function CodeBlock({\n code,\n language = 'text',\n title,\n showCopy = true,\n maxHeight,\n headerLeft,\n}: CodeBlockProps) {\n const [copied, setCopied] = useState(false)\n const codeRef = useRef<HTMLElement>(null)\n\n const highlighted = highlightCode(code, language)\n\n const handleCopy = useCallback(async () => {\n await navigator.clipboard.writeText(code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }, [code])\n\n const hasHeader = title || showCopy || headerLeft\n\n return (\n <div className={cx('omnispec-code-block', containerStyle)}>\n {hasHeader && (\n <div className={headerStyle}>\n <div className={headerLeftStyle}>\n {title && <span className={titleStyle}>{title}</span>}\n {headerLeft}\n </div>\n {showCopy && (\n <button\n type=\"button\"\n onClick={handleCopy}\n className={copyBtnStyle}\n aria-label={copied ? 'Copied' : 'Copy code'}\n title={copied ? 'Copied!' : 'Copy'}\n >\n <Icon name={copied ? 'check' : 'copy'} size=\"0.875rem\" />\n </button>\n )}\n </div>\n )}\n <pre\n className={cx(preStyle, css({\n maxHeight: maxHeight ?? '25rem',\n }))}\n >\n <code\n ref={codeRef}\n className={`language-${languageMap[language]}`}\n dangerouslySetInnerHTML={{ __html: highlighted }}\n />\n </pre>\n </div>\n )\n}\n\nfunction highlightCode(code: string, language: CodeLanguage): string {\n const prismLang = languageMap[language]\n const grammar = Prism.languages[prismLang]\n if (!grammar) return escapeHtml(code)\n return Prism.highlight(code, grammar, prismLang)\n}\n\nfunction escapeHtml(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n}\n\nconst containerStyle = css({\n overflow: 'hidden',\n fontSize: 'var(--omnispec-font-size-sm)',\n [mq.desktop]: {\n borderRadius: 'var(--omnispec-border-radius)',\n border: '1px solid var(--omnispec-border-color)',\n },\n})\n\nconst headerStyle = css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '0.25rem 0.75rem',\n backgroundColor: 'var(--omnispec-bg-secondary)',\n borderBottom: '1px solid var(--omnispec-border-color)',\n gap: '0.5rem',\n})\n\nconst headerLeftStyle = css({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n})\n\nconst titleStyle = css({\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: 'var(--omnispec-font-size-xs)',\n color: 'var(--omnispec-fg-muted)',\n fontWeight: 500,\n})\n\nconst copyBtnStyle = css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n background: 'none',\n border: 'none',\n borderRadius: 'var(--omnispec-border-radius)',\n padding: '0.25rem',\n color: 'var(--omnispec-fg-muted)',\n cursor: 'pointer',\n '&:hover': {\n color: 'var(--omnispec-fg-primary)',\n backgroundColor: 'var(--omnispec-bg-secondary)',\n },\n})\n\n// Doubling the generated class via emotion's `&&` self-reference\n// (`.css-XXX.css-XXX`) raises specificity from (0,1,0) to (0,2,0), so\n// these top-corner overrides win against the global `.css-XXX pre`\n// rule (0,1,1) applied by surrounding prose styles. No `!important`\n// needed. All other pre styling is intentionally left to the global\n// rule.\nconst preStyle = css({\n '&&': {\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n padding: '0.5rem 1rem',\n margin: 0,\n },\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useState } from 'react'\nimport type { ReactNode } from 'react'\nimport { css, cx } from '@core/styles/css'\nimport { mq } from '@core/styles/breakpoints'\n\nexport interface TabItem {\n id: string\n /** Tab label. Usually a string; accepts a node so callers can add badges/status indicators. */\n label: ReactNode\n content: ReactNode\n}\n\ninterface TabsProps {\n tabs: TabItem[]\n defaultTab?: string\n /**\n * Remove the tab strip's top spacing. The default margins suit tabs that\n * follow content in the doc body; set this when the tabs sit at the top of\n * their container (e.g. the Authorize panel) and the spacing reads as a gap.\n */\n flush?: boolean\n}\n\nconst headerStyle = css({\n display: 'flex',\n gap: '0.125rem',\n marginBottom: '-1px',\n marginTop: '1rem',\n})\n\n// Zeroes both stacked top margins (header + each tab button) for flush tabs.\nconst flushHeaderStyle = css({ marginTop: 0 })\nconst flushTabStyle = css({\n marginTop: 0,\n [mq.desktop]: { marginTop: 0 },\n})\n\nconst tabStyle = css({\n padding: '0.375rem 0.625rem',\n background: 'none',\n border: '1px solid transparent',\n borderBottom: 'none',\n borderRadius: '0.375rem 0.375rem 0 0',\n cursor: 'pointer',\n fontSize: 'var(--omnispec-font-size-xs)',\n color: 'var(--omnispec-fg-secondary)',\n fontWeight: 500,\n marginTop: '0.75rem',\n '&:hover': {\n color: 'var(--omnispec-fg-primary)',\n backgroundColor: 'var(--omnispec-bg-secondary)',\n },\n [mq.desktop]: {\n padding: '0.4375rem 0.875rem',\n marginTop: '1.25rem',\n },\n})\n\nconst activeTabStyle = css({\n color: 'var(--omnispec-fg-primary)',\n fontWeight: 600,\n backgroundColor: 'var(--omnispec-bg-primary)',\n borderColor: 'color-mix(in srgb, var(--omnispec-border-color) 50%, transparent)',\n borderBottom: '1px solid color-mix(in srgb, var(--omnispec-bg-primary) 80%, transparent)',\n '&:hover': {\n backgroundColor: 'var(--omnispec-bg-primary)',\n },\n})\n\nconst inactiveTabStyle = css({\n borderBottom: '1px solid var(--omnispec-border-color)',\n})\n\nconst contentStyle = css({\n padding: '0.5rem 0',\n boxShadow: '0 0 4px 0px var(--omnispec-border-color, #AEDEF9)',\n borderRadius: '0 0 0.375rem 0.375rem',\n marginTop: '-1px',\n [mq.desktop]: {\n padding: '0.75rem',\n boxShadow: 'none',\n border: '1px solid color-mix(in srgb, var(--omnispec-border-color) 50%, transparent)',\n },\n})\n\nexport function Tabs({ tabs, defaultTab, flush = false }: TabsProps) {\n const [activeTab, setActiveTab] = useState(defaultTab ?? tabs[0]?.id ?? '')\n\n const activeContent = tabs.find((t) => t.id === activeTab)?.content\n\n return (\n <div className=\"omnispec-tabs\">\n <div className={cx(headerStyle, flush && flushHeaderStyle)} role=\"tablist\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.id === activeTab}\n onClick={() => setActiveTab(tab.id)}\n className={cx(\n tabStyle,\n tab.id === activeTab ? activeTabStyle : inactiveTabStyle,\n flush && flushTabStyle,\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n <div className={contentStyle} role=\"tabpanel\">\n {activeContent}\n </div>\n </div>\n )\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css } from '../../styles/css'\n\nexport interface NamedExample {\n name: string\n summary?: string\n value: unknown\n}\n\ninterface ExampleSelectorProps {\n examples: NamedExample[]\n selectedName: string\n onSelect: (name: string) => void\n}\n\nexport function ExampleSelector({\n examples,\n selectedName,\n onSelect,\n}: ExampleSelectorProps) {\n // Return null if there are no examples or only one example\n if (examples.length <= 1) {\n return null\n }\n\n return (\n <div className={containerStyle}>\n <label htmlFor=\"example-selector\" className={labelStyle}>\n Example:\n </label>\n <select\n id=\"example-selector\"\n value={selectedName}\n onChange={(e) => onSelect(e.target.value)}\n className={selectStyle}\n >\n {examples.map((example) => (\n <option key={example.name} value={example.name}>\n {example.summary ? `${example.name} - ${example.summary}` : example.name}\n </option>\n ))}\n </select>\n </div>\n )\n}\n\nexport function getNamedExamples(\n media: {\n example?: unknown\n examples?: Record<string, { summary?: string; value: unknown }>\n },\n): NamedExample[] {\n // If singular example exists, return it as the default\n if (media.example !== undefined) {\n return [{ name: 'default', value: media.example }]\n }\n\n // If plural examples map exists, convert to NamedExample array\n if (media.examples && typeof media.examples === 'object') {\n return Object.entries(media.examples).map(([name, example]) => ({\n name,\n summary: (example as { summary?: string }).summary,\n value: (example as { value: unknown }).value,\n }))\n }\n\n // No examples found\n return []\n}\n\nconst containerStyle = css({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n marginBottom: '0.75rem',\n})\n\nconst labelStyle = css({\n fontSize: 'var(--omnispec-font-size-xs)',\n fontWeight: 600,\n color: 'var(--omnispec-fg-muted)',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n whiteSpace: 'nowrap',\n})\n\nconst selectStyle = css({\n padding: '0.375rem 0.625rem',\n border: '1px solid var(--omnispec-input-border)',\n borderRadius: 'var(--omnispec-border-radius)',\n backgroundColor: 'var(--omnispec-input-bg)',\n color: 'var(--omnispec-fg-primary)',\n fontSize: 'var(--omnispec-font-size-sm)',\n fontFamily: 'var(--omnispec-font-mono)',\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useState } from 'react'\nimport type { ReactNode } from 'react'\nimport { css, cx } from '@core/styles/css'\nimport { mq } from '@core/styles/breakpoints'\n\ninterface ReferenceLayoutProps {\n schema: ReactNode\n samples: ReactNode\n tryIt: ReactNode\n operationId: string\n}\n\ntype RightTab = 'samples' | 'try-it'\ntype MobileTab = 'schema' | 'samples' | 'try-it'\n\nconst MOBILE_TABS: { id: MobileTab; label: string }[] = [\n { id: 'schema', label: 'Schema' },\n { id: 'samples', label: 'Samples' },\n { id: 'try-it', label: 'Try It' },\n]\n\nconst RIGHT_TABS: { id: RightTab; label: string }[] = [\n { id: 'samples', label: 'Samples' },\n { id: 'try-it', label: 'Try It' },\n]\n\nexport function ReferenceLayout({ schema, samples, tryIt, operationId }: ReferenceLayoutProps) {\n const [rightTab, setRightTab] = useState<RightTab>('samples')\n const [mobileTab, setMobileTab] = useState<MobileTab>('schema')\n\n return (\n <>\n {/* Mobile layout */}\n <div key={`mobile-${operationId}`} className={mobileWrapperStyle}>\n <div className={mobileTabBarStyle} role=\"tablist\">\n {MOBILE_TABS.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={mobileTab === tab.id}\n aria-controls={`mobile-panel-${operationId}-${tab.id}`}\n onClick={() => setMobileTab(tab.id)}\n className={cx(mobileTabStyle, mobileTab === tab.id ? mobileTabActiveStyle : undefined)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n <div\n id={`mobile-panel-${operationId}-${mobileTab}`}\n className={mobileContentStyle}\n role=\"tabpanel\"\n >\n {mobileTab === 'schema' && schema}\n {mobileTab === 'samples' && samples}\n {mobileTab === 'try-it' && tryIt}\n </div>\n </div>\n\n {/* Desktop layout */}\n <div key={`desktop-${operationId}`} className={desktopWrapperStyle}>\n {/* Left column */}\n <div className={leftColumnStyle}>\n {schema}\n </div>\n\n {/* Right column */}\n <div className={rightColumnStyle}>\n <div className={rightTabBarStyle} role=\"tablist\">\n {RIGHT_TABS.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={rightTab === tab.id}\n aria-controls={`right-panel-${operationId}-${tab.id}`}\n onClick={() => setRightTab(tab.id)}\n className={cx(rightTabStyle, rightTab === tab.id ? rightTabActiveStyle : undefined)}\n >\n {tab.label}\n </button>\n ))}\n </div>\n <div\n id={`right-panel-${operationId}-${rightTab}`}\n className={rightContentStyle}\n role=\"tabpanel\"\n >\n {rightTab === 'samples' && samples}\n {rightTab === 'try-it' && tryIt}\n </div>\n </div>\n </div>\n </>\n )\n}\n\n/* ── Mobile styles (display: block by default, hidden on desktop) ── */\n\nconst mobileWrapperStyle = css({\n display: 'block',\n [mq.desktop]: {\n display: 'none',\n },\n})\n\nconst mobileTabBarStyle = css({\n display: 'flex',\n borderBottom: '1px solid var(--omnispec-border-color)',\n})\n\nconst mobileTabStyle = css({\n flex: 1,\n textAlign: 'center',\n padding: '0.625rem 0.5rem',\n background: 'none',\n border: 'none',\n borderBottom: '0.125rem solid transparent',\n cursor: 'pointer',\n fontSize: 'var(--omnispec-font-size-xs)',\n fontWeight: 600,\n letterSpacing: '0.04em',\n textTransform: 'uppercase',\n color: 'var(--omnispec-fg-secondary)',\n '&:hover': {\n color: 'var(--omnispec-fg-primary)',\n },\n})\n\nconst mobileTabActiveStyle = css({\n borderBottom: '0.125rem solid var(--omnispec-color-primary)',\n color: 'var(--omnispec-color-primary)',\n})\n\nconst mobileContentStyle = css({\n padding: '1rem 0',\n})\n\n/* ── Desktop styles (display: none by default, flex on desktop) ── */\n\nconst desktopWrapperStyle = css({\n display: 'none',\n [mq.desktop]: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n})\n\nconst leftColumnStyle = css({\n flex: 1,\n minWidth: 0,\n padding: '1rem 1.5rem',\n})\n\nconst rightColumnStyle = css({\n width: '26rem',\n flexShrink: 0,\n borderLeft: '1px solid var(--omnispec-border-color)',\n position: 'sticky',\n top: 'calc(var(--omnispec-offset-top, 0px) + 1rem)',\n alignSelf: 'flex-start',\n maxHeight: 'calc(100vh - var(--omnispec-offset-top, 0px) - 2rem)',\n overflowY: 'auto',\n})\n\nconst rightTabBarStyle = css({\n display: 'flex',\n borderBottom: '1px solid var(--omnispec-border-color)',\n})\n\nconst rightTabStyle = css({\n flex: 1,\n textAlign: 'center',\n padding: '0.625rem 0.5rem',\n background: 'none',\n border: 'none',\n borderBottom: '0.125rem solid transparent',\n cursor: 'pointer',\n fontSize: 'var(--omnispec-font-size-xs)',\n fontWeight: 600,\n letterSpacing: '0.04em',\n textTransform: 'uppercase',\n color: 'var(--omnispec-fg-secondary)',\n '&:hover': {\n color: 'var(--omnispec-fg-primary)',\n },\n})\n\nconst rightTabActiveStyle = css({\n borderBottom: '0.125rem solid var(--omnispec-color-primary)',\n color: 'var(--omnispec-color-primary)',\n})\n\nconst rightContentStyle = css({\n padding: '1rem',\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport type { CSSProperties, ReactNode } from 'react'\nimport { css, cx } from '@core/styles/css'\nimport { Icon } from './Icon'\nimport { useExpandAll } from '@core/context/ExpandContext'\n\ninterface CollapsibleProps {\n title: ReactNode\n children: ReactNode\n defaultOpen?: boolean\n headerStyle?: CSSProperties\n /** When set (with expandGeneration), forces open/closed to mirror an \"expand all\" toggle. */\n expandAll?: boolean\n /** Bumped on each expand-all toggle so repeated clicks re-apply even after manual toggling. */\n expandGeneration?: number\n}\n\nconst headerStyle_ = css({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n width: '100%',\n minWidth: 0,\n padding: '0.5rem 0',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n color: 'var(--omnispec-fg-primary)',\n fontSize: 'var(--omnispec-font-size-base)',\n fontWeight: 500,\n textAlign: 'left',\n '&:hover': {\n color: 'var(--omnispec-fg-secondary)',\n },\n})\n\nconst arrowStyle = css({\n display: 'inline-flex',\n marginRight: '.5rem',\n transition: 'transform 0.2s ease',\n})\n\nconst arrowExpandedStyle = css({\n transform: 'rotate(90deg)',\n})\n\nconst contentCollapsedStyle = css({\n display: 'none',\n})\n\nexport function Collapsible({ title, children, defaultOpen = false, headerStyle, expandAll, expandGeneration }: CollapsibleProps) {\n const [isOpen, setIsOpen] = useState(defaultOpen)\n const [nearViewport, setNearViewport] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Mirror the document-wide \"expand all\" toggle. Explicit props win (a few call\n // sites pass them directly); otherwise fall back to the expand context so this\n // item responds even without prop-drilling. Gated on generation so the initial\n // mount (generation 0) leaves defaultOpen untouched, and each subsequent toggle\n // re-applies even if the user opened/closed this item in between.\n const ctx = useExpandAll()\n const effectiveExpandAll = expandAll ?? ctx.expandAll\n const effectiveGeneration = expandGeneration ?? ctx.expandGeneration\n useEffect(() => {\n if (effectiveGeneration > 0) {\n setIsOpen(!!effectiveExpandAll)\n }\n }, [effectiveExpandAll, effectiveGeneration])\n\n useEffect(() => {\n const el = containerRef.current\n if (!el) return\n if (nearViewport) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setNearViewport(true)\n observer.disconnect()\n }\n },\n { rootMargin: '500px' },\n )\n observer.observe(el)\n return () => observer.disconnect()\n }, [nearViewport])\n\n const shouldRender = isOpen && nearViewport\n\n return (\n <div className=\"omnispec-collapsible\" ref={containerRef}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n className={cx(headerStyle_, headerStyle && css(headerStyle as Record<string, string | number | undefined>))}\n aria-expanded={isOpen}\n >\n <span className={cx(arrowStyle, isOpen && arrowExpandedStyle)}>\n <Icon name=\"chevron-right\" size=\".825rem\" />\n </span>\n {title}\n </button>\n {shouldRender && (\n <div className={cx(!isOpen && contentCollapsedStyle)}>\n {children}\n </div>\n )}\n </div>\n )\n}\n"],"names":["containerStyle","titleStyle","ExpandableCard","headerStyle","global","Prism"],"mappings":"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","x_google_ignoreList":[6,16,17,18,19,20,21,22,23,24,25,26]}
|