@oxide/design-system 1.7.7--canary.c74e439.0 → 1.7.7--canary.5c25e1b.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/dist/index.d.ts +0 -3
- package/components/dist/index.js +145 -1804
- package/components/dist/index.js.map +1 -1
- package/package.json +1 -2
- package/components/dist/architecture-I3QFYML2-YZWO3N3B.js +0 -14
- package/components/dist/architecture-I3QFYML2-YZWO3N3B.js.map +0 -1
- package/components/dist/architectureDiagram-UYN6MBPD-HXPGIDN7.js +0 -8846
- package/components/dist/architectureDiagram-UYN6MBPD-HXPGIDN7.js.map +0 -1
- package/components/dist/blockDiagram-ZHA2E4KO-OAYYKCLF.js +0 -3721
- package/components/dist/blockDiagram-ZHA2E4KO-OAYYKCLF.js.map +0 -1
- package/components/dist/c4Diagram-6F5ED5ID-TBHFK2XY.js +0 -2599
- package/components/dist/c4Diagram-6F5ED5ID-TBHFK2XY.js.map +0 -1
- package/components/dist/chunk-2DDKDUUO.js +0 -439
- package/components/dist/chunk-2DDKDUUO.js.map +0 -1
- package/components/dist/chunk-2NHDMTP7.js +0 -26905
- package/components/dist/chunk-2NHDMTP7.js.map +0 -1
- package/components/dist/chunk-4IJS44L3.js +0 -22
- package/components/dist/chunk-4IJS44L3.js.map +0 -1
- package/components/dist/chunk-562WOS3Z.js +0 -1109
- package/components/dist/chunk-562WOS3Z.js.map +0 -1
- package/components/dist/chunk-6UD2HOKB.js +0 -17082
- package/components/dist/chunk-6UD2HOKB.js.map +0 -1
- package/components/dist/chunk-76BOQ7BT.js +0 -63
- package/components/dist/chunk-76BOQ7BT.js.map +0 -1
- package/components/dist/chunk-7I5DT373.js +0 -97
- package/components/dist/chunk-7I5DT373.js.map +0 -1
- package/components/dist/chunk-BPREMNVP.js +0 -1875
- package/components/dist/chunk-BPREMNVP.js.map +0 -1
- package/components/dist/chunk-BVYAEHG3.js +0 -122
- package/components/dist/chunk-BVYAEHG3.js.map +0 -1
- package/components/dist/chunk-BW7DFBOS.js +0 -152
- package/components/dist/chunk-BW7DFBOS.js.map +0 -1
- package/components/dist/chunk-EZG2MNHW.js +0 -59
- package/components/dist/chunk-EZG2MNHW.js.map +0 -1
- package/components/dist/chunk-G6QWNAHJ.js +0 -43
- package/components/dist/chunk-G6QWNAHJ.js.map +0 -1
- package/components/dist/chunk-H72D3HRR.js +0 -1244
- package/components/dist/chunk-H72D3HRR.js.map +0 -1
- package/components/dist/chunk-K532NZMW.js +0 -46
- package/components/dist/chunk-K532NZMW.js.map +0 -1
- package/components/dist/chunk-LC3BX2KL.js +0 -25
- package/components/dist/chunk-LC3BX2KL.js.map +0 -1
- package/components/dist/chunk-LQ2ABR7F.js +0 -5665
- package/components/dist/chunk-LQ2ABR7F.js.map +0 -1
- package/components/dist/chunk-M6L3MM6K.js +0 -22
- package/components/dist/chunk-M6L3MM6K.js.map +0 -1
- package/components/dist/chunk-MWA4PRRW.js +0 -122
- package/components/dist/chunk-MWA4PRRW.js.map +0 -1
- package/components/dist/chunk-ND3FLKHU.js +0 -570
- package/components/dist/chunk-ND3FLKHU.js.map +0 -1
- package/components/dist/chunk-NIVHLOPB.js +0 -2621
- package/components/dist/chunk-NIVHLOPB.js.map +0 -1
- package/components/dist/chunk-R6F6FFK7.js +0 -65
- package/components/dist/chunk-R6F6FFK7.js.map +0 -1
- package/components/dist/chunk-RN5R3L7O.js +0 -2041
- package/components/dist/chunk-RN5R3L7O.js.map +0 -1
- package/components/dist/chunk-RWDBBMDN.js +0 -10910
- package/components/dist/chunk-RWDBBMDN.js.map +0 -1
- package/components/dist/chunk-T7HPDS4Z.js +0 -573
- package/components/dist/chunk-T7HPDS4Z.js.map +0 -1
- package/components/dist/chunk-TG4YEU4Q.js +0 -23
- package/components/dist/chunk-TG4YEU4Q.js.map +0 -1
- package/components/dist/chunk-U5WCXBW2.js +0 -48
- package/components/dist/chunk-U5WCXBW2.js.map +0 -1
- package/components/dist/chunk-V6PWN6OH.js +0 -1875
- package/components/dist/chunk-V6PWN6OH.js.map +0 -1
- package/components/dist/chunk-VLTHNCSD.js +0 -48
- package/components/dist/chunk-VLTHNCSD.js.map +0 -1
- package/components/dist/chunk-WDK4G4UR.js +0 -2791
- package/components/dist/chunk-WDK4G4UR.js.map +0 -1
- package/components/dist/chunk-WLVQWTC6.js +0 -77
- package/components/dist/chunk-WLVQWTC6.js.map +0 -1
- package/components/dist/chunk-YDLS5R4M.js +0 -48
- package/components/dist/chunk-YDLS5R4M.js.map +0 -1
- package/components/dist/chunk-YGFBWU2Q.js +0 -7
- package/components/dist/chunk-YGFBWU2Q.js.map +0 -1
- package/components/dist/chunk-ZBL4CWCH.js +0 -2120
- package/components/dist/chunk-ZBL4CWCH.js.map +0 -1
- package/components/dist/classDiagram-LNE6IOMH-VRQHEQWM.js +0 -40
- package/components/dist/classDiagram-LNE6IOMH-VRQHEQWM.js.map +0 -1
- package/components/dist/classDiagram-v2-MQ7JQ4JX-5GB4NXXM.js +0 -40
- package/components/dist/classDiagram-v2-MQ7JQ4JX-5GB4NXXM.js.map +0 -1
- package/components/dist/dagre-4EVJKHTY-XW45LMKR.js +0 -734
- package/components/dist/dagre-4EVJKHTY-XW45LMKR.js.map +0 -1
- package/components/dist/diagram-QW4FP2JN-J2YMUPB5.js +0 -226
- package/components/dist/diagram-QW4FP2JN-J2YMUPB5.js.map +0 -1
- package/components/dist/erDiagram-6RL3IURR-HQULDVJI.js +0 -1381
- package/components/dist/erDiagram-6RL3IURR-HQULDVJI.js.map +0 -1
- package/components/dist/flowDiagram-7ASYPVHJ-2542732I.js +0 -2349
- package/components/dist/flowDiagram-7ASYPVHJ-2542732I.js.map +0 -1
- package/components/dist/ganttDiagram-NTVNEXSI-V66YQQB3.js +0 -2413
- package/components/dist/ganttDiagram-NTVNEXSI-V66YQQB3.js.map +0 -1
- package/components/dist/gitGraph-YCYPL57B-AAXPWQN7.js +0 -14
- package/components/dist/gitGraph-YCYPL57B-AAXPWQN7.js.map +0 -1
- package/components/dist/gitGraphDiagram-NRZ2UAAF-5DU6QMYZ.js +0 -1763
- package/components/dist/gitGraphDiagram-NRZ2UAAF-5DU6QMYZ.js.map +0 -1
- package/components/dist/info-46DW6VJ7-43TTIEYF.js +0 -14
- package/components/dist/info-46DW6VJ7-43TTIEYF.js.map +0 -1
- package/components/dist/infoDiagram-A4XQUW5V-UZERSQDI.js +0 -54
- package/components/dist/infoDiagram-A4XQUW5V-UZERSQDI.js.map +0 -1
- package/components/dist/journeyDiagram-G5WM74LC-RVKMRGRW.js +0 -1244
- package/components/dist/journeyDiagram-G5WM74LC-RVKMRGRW.js.map +0 -1
- package/components/dist/kanban-definition-QRCXZQQD-NWU5I3TK.js +0 -1119
- package/components/dist/kanban-definition-QRCXZQQD-NWU5I3TK.js.map +0 -1
- package/components/dist/katex-WNZY3CE5.js +0 -14484
- package/components/dist/katex-WNZY3CE5.js.map +0 -1
- package/components/dist/mindmap-definition-GWI6TPTV-MISEH6LG.js +0 -6013
- package/components/dist/mindmap-definition-GWI6TPTV-MISEH6LG.js.map +0 -1
- package/components/dist/packet-W2GHVCYJ-FBZCFIPR.js +0 -14
- package/components/dist/packet-W2GHVCYJ-FBZCFIPR.js.map +0 -1
- package/components/dist/pie-BEWT4RHE-UFFBBCXM.js +0 -14
- package/components/dist/pie-BEWT4RHE-UFFBBCXM.js.map +0 -1
- package/components/dist/pieDiagram-YF2LJOPJ-IXEVHPCM.js +0 -223
- package/components/dist/pieDiagram-YF2LJOPJ-IXEVHPCM.js.map +0 -1
- package/components/dist/quadrantDiagram-OS5C2QUG-MW26UCZV.js +0 -1408
- package/components/dist/quadrantDiagram-OS5C2QUG-MW26UCZV.js.map +0 -1
- package/components/dist/requirementDiagram-MIRIMTAZ-BX24AAHL.js +0 -1175
- package/components/dist/requirementDiagram-MIRIMTAZ-BX24AAHL.js.map +0 -1
- package/components/dist/sankeyDiagram-Y46BX6SQ-5RKUGG63.js +0 -1278
- package/components/dist/sankeyDiagram-Y46BX6SQ-5RKUGG63.js.map +0 -1
- package/components/dist/sequenceDiagram-G6AWOVSC-2T3JBUZ2.js +0 -3529
- package/components/dist/sequenceDiagram-G6AWOVSC-2T3JBUZ2.js.map +0 -1
- package/components/dist/stateDiagram-MAYHULR4-HZ5EGLPA.js +0 -505
- package/components/dist/stateDiagram-MAYHULR4-HZ5EGLPA.js.map +0 -1
- package/components/dist/stateDiagram-v2-4JROLMXI-DN2FEZV3.js +0 -40
- package/components/dist/stateDiagram-v2-4JROLMXI-DN2FEZV3.js.map +0 -1
- package/components/dist/timeline-definition-U7ZMHBDA-GB6AKKW4.js +0 -1260
- package/components/dist/timeline-definition-U7ZMHBDA-GB6AKKW4.js.map +0 -1
- package/components/dist/xychartDiagram-6QU3TZC5-BFFLEHUP.js +0 -1877
- package/components/dist/xychartDiagram-6QU3TZC5-BFFLEHUP.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/asciidoc/index.tsx","../src/asciidoc/Admonition.tsx","../src/utils.ts","../src/asciidoc/Listing.tsx","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Parser.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/mermaid/dist/mermaid.core.mjs","../src/asciidoc/Mermaid.tsx","../../icons/react/Link16Icon.tsx","../../icons/react/Checkmark12Icon.tsx","../../icons/react/DirectionRightIcon.tsx","../../icons/react/SelectArrows6Icon.tsx","../src/asciidoc/Section.tsx","../src/asciidoc/Table.tsx","../src/asciidoc/TableOfContents.tsx","../src/asciidoc/util.ts","../src/asciidoc/langs/oxql.tmLanguage.json","../src/asciidoc/oxide-dark.json","../src/ui/badge/Badge.tsx","../src/ui/button/Button.tsx","../src/ui/spinner/Spinner.tsx","../src/ui/tabs/Tabs.tsx","../src/ui/checkbox/Checkbox.tsx","../src/ui/listbox/Listbox.tsx"],"sourcesContent":["/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport asciidoctor, { Block, Html5Converter, Inline } from '@asciidoctor/core'\nimport { Content, type DocumentBlock } from '@oxide/react-asciidoc'\n\nimport Admonition from './Admonition'\nimport Listing from './Listing'\nimport Section from './Section'\nimport Table from './Table'\nimport {\n DesktopOutline,\n SmallScreenOutline,\n useActiveSectionTracking,\n useIntersectionObserver,\n} from './TableOfContents'\nimport { attrs, handleDocument, highlight, loadAsciidoctor } from './util'\n\nconst MinimalDocument = ({ document }: { document: DocumentBlock }) => (\n <div id=\"content\" className=\"asciidoc-body w-full\">\n <Content blocks={document.blocks} />\n </div>\n)\n\nconst AsciiDocBlocks = {\n Admonition,\n Table,\n Section,\n Listing,\n MinimalDocument,\n}\n\n/**\n * Adds word break opportunities (<wbr/>) after slashes in text, except within HTML tags.\n * This function is used to improve line breaks for long paths or URLs in rendered content.\n * *\n * renderWithBreaks('/path/to/long/file.txt')\n * '/<wbr/>path/<wbr/>to/<wbr/>long/<wbr/>file.txt'\n */\nexport const renderWithBreaks = (text: string): string => {\n return text\n .split(/(<[^>]*>)/g)\n .map((segment) => {\n // if the segment is an HTML tag, leave it unchanged\n if (segment.startsWith('<') && segment.endsWith('>')) {\n return segment\n }\n // replace slashes that are not surrounded by spaces\n return segment.replace(/(?:^|(?<=\\S))\\/(?=\\S)/g, '/<wbr/>')\n })\n .join('')\n}\n\n// prettier-ignore\nconst QUOTE_TAGS: {[key: string]: [string, string, boolean?]} = {\n \"monospaced\": ['<code>', '</code>', true],\n \"emphasis\": ['<em>', '</em>', true],\n \"strong\": ['<strong>', '</strong>', true],\n \"double\": ['“', '”'],\n \"single\": ['‘', '’'],\n \"mark\": ['<mark>', '</mark>', true],\n \"superscript\": ['<sup>', '</sup>', true],\n \"subscript\": ['<sub>', '</sub>', true],\n \"unquoted\": ['<span>', '</span>', true],\n \"asciimath\": ['\\\\$', '\\\\$'],\n \"latexmath\": ['\\\\(', '\\\\)'],\n}\n\nconst chop = (str: string) => str.substring(0, str.length - 1)\n\nconst convertInlineQuoted = (node: Inline) => {\n const type = node.getType()\n const quoteTag = QUOTE_TAGS[type]\n const [open, close, tag] = quoteTag || ['', '']\n\n let text = node.getText()\n\n // Add <wbr> for line breaks with long paths\n // Ignores a / if there's a space before it\n if (type === 'monospaced') {\n text = renderWithBreaks(text)\n }\n\n const id = node.getId()\n const role = node.getRole()\n\n const idAttr = id ? `id=\"${id}\"` : ''\n const classAttr = role ? `class=\"${role}\"` : ''\n const attrs = `${idAttr} ${classAttr}`\n\n if (id || role) {\n if (tag) {\n return `${chop(open)} ${attrs}>${text}${close}`\n } else {\n return `<span ${attrs}>${open}${text}${close}</span>`\n }\n } else {\n return `${open}${text}${close}`\n }\n}\n\nfunction convertInlineCallout(node: Inline): string {\n return `<i class=\"conum\" data-value=\"${node.getText()}\"></i>`\n}\n\nconst ad = asciidoctor()\n\nclass InlineConverter {\n baseConverter: Html5Converter\n\n constructor() {\n this.baseConverter = new ad.Html5Converter()\n }\n\n convert(node: Block, transform: string) {\n switch (node.getNodeName()) {\n case 'inline_quoted':\n return convertInlineQuoted(node as unknown as Inline) // We know this is always inline\n case 'inline_callout':\n return convertInlineCallout(node as unknown as Inline) // We know this is always inline\n default:\n break\n }\n\n return this.baseConverter.convert(node, transform)\n }\n}\n\nexport {\n AsciiDocBlocks,\n handleDocument,\n highlight,\n loadAsciidoctor,\n attrs,\n DesktopOutline,\n SmallScreenOutline,\n useActiveSectionTracking,\n useIntersectionObserver,\n InlineConverter,\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { type AdmonitionBlock, Content, Title, parse } from '@oxide/react-asciidoc'\n\nimport { titleCase } from '../utils'\n\nconst Admonition = ({ node }: { node: AdmonitionBlock }) => {\n const attrs = node.attributes\n\n let icon\n if (attrs.name === 'caution') {\n icon = <Error12 />\n } else if (attrs.name === 'warning') {\n icon = <Warning12 />\n } else {\n icon = <Error12 className=\"rotate-180\" />\n }\n\n return (\n <div className={`admonitionblock ${attrs.name}`}>\n <div className=\"admonition-icon\">{icon}</div>\n <div className=\"admonition-content content\">\n <Title text={node.title} />\n <div>{titleCase(attrs.name.toString())}</div>\n <div>\n <Title text={node.title} />\n {node.content && parse(node.content)}\n <Content blocks={node.blocks} />\n </div>\n </div>\n </div>\n )\n}\n\nconst Error12 = ({ className }: { className?: string }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm.083-9c.368 0 .667.299.667.667v2.666A.667.667 0 0 1 6.083 7h-.166a.667.667 0 0 1-.667-.667V3.667c0-.368.299-.667.667-.667h.166Zm0 5c.368 0 .667.299.667.667v.166a.667.667 0 0 1-.667.667h-.166a.667.667 0 0 1-.667-.667v-.166c0-.368.299-.667.667-.667h.166Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst Warning12 = ({ className }: { className?: string }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm.083-9c.368 0 .667.299.667.667v2.666A.667.667 0 0 1 6.083 7h-.166a.667.667 0 0 1-.667-.667V3.667c0-.368.299-.667.667-.667h.166Zm0 5c.368 0 .667.299.667.667v.166a.667.667 0 0 1-.667.667h-.166a.667.667 0 0 1-.667-.667v-.166c0-.368.299-.667.667-.667h.166Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nexport default Admonition\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\nimport { createElement } from 'react'\n\nconst titleCase = (text: string): string => {\n return text.replace(\n /\\w\\S*/g,\n (text) => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase(),\n )\n}\n\n// all the cuteness of tw.span`text-secondary uppercase` with zero magic\n\nconst make =\n <T extends keyof JSX.IntrinsicElements>(tag: T) =>\n // only one argument here means string interpolations are not allowed\n (strings: TemplateStringsArray) => {\n const Comp = ({ className, children, ...rest }: JSX.IntrinsicElements[T]) =>\n createElement(tag, { className: cn(strings[0], className), ...rest }, children)\n Comp.displayName = `classed.${tag}`\n return Comp\n }\n\n// JSX.IntrinsicElements[T] ensures same props as the real DOM element. For example,\n// classed.span doesn't allow a type attr but classed.input does.\n\nconst classed = {\n button: make('button'),\n div: make('div'),\n h1: make('h1'),\n h2: make('h2'),\n h3: make('h3'),\n h4: make('h4'),\n hr: make('hr'),\n header: make('header'),\n input: make('input'),\n label: make('label'),\n li: make('li'),\n main: make('main'),\n ol: make('ol'),\n p: make('p'),\n span: make('span'),\n table: make('table'),\n tbody: make('tbody'),\n td: make('td'),\n th: make('th'),\n tr: make('tr'),\n} as const\n\n// result: classed.button`text-secondary uppercase` returns a component with those classes\n\nexport { titleCase, classed }\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { LiteralBlock, Title, useConverterContext } from '@oxide/react-asciidoc'\nimport cn from 'classnames'\n\nimport Mermaid from './Mermaid'\n\nconst Listing = ({ node }: { node: LiteralBlock }) => {\n const { document } = useConverterContext()\n\n const docAttrs = document.attributes || {}\n const nowrap = node.attributes.nowrap || docAttrs['prewrap'] === undefined\n\n if (node.style === 'source') {\n const lang = node.language\n\n return (\n <div\n className=\"listingblock\"\n {...(node.lineNumber ? { 'data-lineno': node.lineNumber } : {})}\n >\n <Title text={node.title} />\n <div className=\"content\">\n <pre className={cn('highlight', nowrap ? ' nowrap' : '')}>\n {lang && lang === 'mermaid' ? (\n <Mermaid content={node.content || ''} />\n ) : (\n <code\n className={lang && `language-${lang}`}\n data-lang={lang || undefined}\n dangerouslySetInnerHTML={{\n __html: node.content || '',\n }}\n />\n )}\n </pre>\n </div>\n </div>\n )\n } else {\n // Regular listing blocks are wrapped only in a `pre` tag\n return (\n <div\n className=\"listingblock\"\n {...(node.lineNumber ? { 'data-lineno': node.lineNumber } : {})}\n >\n <Title text={node.title} />\n <div className=\"content\">\n <pre\n className={cn('highlight !block', nowrap ? 'nowrap' : '')}\n dangerouslySetInnerHTML={{\n __html: node.content || '',\n }}\n />\n </div>\n </div>\n )\n }\n}\n\nexport default Listing\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {\n JSON_SCHEMA,\n load\n} from \"./chunks/mermaid.core/chunk-S3SWNSAA.mjs\";\nimport {\n registerLayoutLoaders\n} from \"./chunks/mermaid.core/chunk-BO7VGL7K.mjs\";\nimport \"./chunks/mermaid.core/chunk-66SQ7PYY.mjs\";\nimport \"./chunks/mermaid.core/chunk-7NZE2EM7.mjs\";\nimport {\n registerIconPacks\n} from \"./chunks/mermaid.core/chunk-OPO4IU42.mjs\";\nimport \"./chunks/mermaid.core/chunk-3JNJP5BE.mjs\";\nimport \"./chunks/mermaid.core/chunk-3X56UNUX.mjs\";\nimport \"./chunks/mermaid.core/chunk-6JOS74DS.mjs\";\nimport {\n cleanAndMerge,\n decodeEntities,\n encodeEntities,\n isDetailedError,\n removeDirectives,\n utils_default\n} from \"./chunks/mermaid.core/chunk-7DKRZKHE.mjs\";\nimport {\n version\n} from \"./chunks/mermaid.core/chunk-K6PMAZHR.mjs\";\nimport {\n selectSvgElement\n} from \"./chunks/mermaid.core/chunk-EJ4ZWXGL.mjs\";\nimport {\n UnknownDiagramError,\n __name,\n addDirective,\n assignWithDepth_default,\n configureSvgSize,\n defaultConfig,\n detectType,\n detectors,\n evaluate,\n frontMatterRegex,\n getConfig,\n getDiagram,\n getDiagramLoader,\n getSiteConfig,\n log,\n registerDiagram,\n registerLazyLoadedDiagrams,\n reset,\n saveConfigFromInitialize,\n setConfig,\n setLogLevel,\n setSiteConfig,\n styles_default,\n themes_default,\n updateSiteConfig\n} from \"./chunks/mermaid.core/chunk-6DBFFHIP.mjs\";\n\n// src/mermaid.ts\nimport { dedent } from \"ts-dedent\";\n\n// src/diagrams/c4/c4Detector.ts\nvar id = \"c4\";\nvar detector = /* @__PURE__ */ __name((txt) => {\n return /^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);\n}, \"detector\");\nvar loader = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/c4Diagram-6F5ED5ID.mjs\");\n return { id, diagram: diagram2 };\n}, \"loader\");\nvar plugin = {\n id,\n detector,\n loader\n};\nvar c4Detector_default = plugin;\n\n// src/diagrams/flowchart/flowDetector.ts\nvar id2 = \"flowchart\";\nvar detector2 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-wrapper\" || config?.flowchart?.defaultRenderer === \"elk\") {\n return false;\n }\n return /^\\s*graph/.test(txt);\n}, \"detector\");\nvar loader2 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-7ASYPVHJ.mjs\");\n return { id: id2, diagram: diagram2 };\n}, \"loader\");\nvar plugin2 = {\n id: id2,\n detector: detector2,\n loader: loader2\n};\nvar flowDetector_default = plugin2;\n\n// src/diagrams/flowchart/flowDetector-v2.ts\nvar id3 = \"flowchart-v2\";\nvar detector3 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-d3\") {\n return false;\n }\n if (config?.flowchart?.defaultRenderer === \"elk\") {\n config.layout = \"elk\";\n }\n if (/^\\s*graph/.test(txt) && config?.flowchart?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*flowchart/.test(txt);\n}, \"detector\");\nvar loader3 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-7ASYPVHJ.mjs\");\n return { id: id3, diagram: diagram2 };\n}, \"loader\");\nvar plugin3 = {\n id: id3,\n detector: detector3,\n loader: loader3\n};\nvar flowDetector_v2_default = plugin3;\n\n// src/diagrams/er/erDetector.ts\nvar id4 = \"er\";\nvar detector4 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*erDiagram/.test(txt);\n}, \"detector\");\nvar loader4 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/erDiagram-6RL3IURR.mjs\");\n return { id: id4, diagram: diagram2 };\n}, \"loader\");\nvar plugin4 = {\n id: id4,\n detector: detector4,\n loader: loader4\n};\nvar erDetector_default = plugin4;\n\n// src/diagrams/git/gitGraphDetector.ts\nvar id5 = \"gitGraph\";\nvar detector5 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gitGraph/.test(txt);\n}, \"detector\");\nvar loader5 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/gitGraphDiagram-NRZ2UAAF.mjs\");\n return { id: id5, diagram: diagram2 };\n}, \"loader\");\nvar plugin5 = {\n id: id5,\n detector: detector5,\n loader: loader5\n};\nvar gitGraphDetector_default = plugin5;\n\n// src/diagrams/gantt/ganttDetector.ts\nvar id6 = \"gantt\";\nvar detector6 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gantt/.test(txt);\n}, \"detector\");\nvar loader6 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/ganttDiagram-NTVNEXSI.mjs\");\n return { id: id6, diagram: diagram2 };\n}, \"loader\");\nvar plugin6 = {\n id: id6,\n detector: detector6,\n loader: loader6\n};\nvar ganttDetector_default = plugin6;\n\n// src/diagrams/info/infoDetector.ts\nvar id7 = \"info\";\nvar detector7 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*info/.test(txt);\n}, \"detector\");\nvar loader7 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/infoDiagram-A4XQUW5V.mjs\");\n return { id: id7, diagram: diagram2 };\n}, \"loader\");\nvar info = {\n id: id7,\n detector: detector7,\n loader: loader7\n};\n\n// src/diagrams/pie/pieDetector.ts\nvar id8 = \"pie\";\nvar detector8 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*pie/.test(txt);\n}, \"detector\");\nvar loader8 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/pieDiagram-YF2LJOPJ.mjs\");\n return { id: id8, diagram: diagram2 };\n}, \"loader\");\nvar pie = {\n id: id8,\n detector: detector8,\n loader: loader8\n};\n\n// src/diagrams/quadrant-chart/quadrantDetector.ts\nvar id9 = \"quadrantChart\";\nvar detector9 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*quadrantChart/.test(txt);\n}, \"detector\");\nvar loader9 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/quadrantDiagram-OS5C2QUG.mjs\");\n return { id: id9, diagram: diagram2 };\n}, \"loader\");\nvar plugin7 = {\n id: id9,\n detector: detector9,\n loader: loader9\n};\nvar quadrantDetector_default = plugin7;\n\n// src/diagrams/xychart/xychartDetector.ts\nvar id10 = \"xychart\";\nvar detector10 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*xychart-beta/.test(txt);\n}, \"detector\");\nvar loader10 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/xychartDiagram-6QU3TZC5.mjs\");\n return { id: id10, diagram: diagram2 };\n}, \"loader\");\nvar plugin8 = {\n id: id10,\n detector: detector10,\n loader: loader10\n};\nvar xychartDetector_default = plugin8;\n\n// src/diagrams/requirement/requirementDetector.ts\nvar id11 = \"requirement\";\nvar detector11 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*requirement(Diagram)?/.test(txt);\n}, \"detector\");\nvar loader11 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/requirementDiagram-MIRIMTAZ.mjs\");\n return { id: id11, diagram: diagram2 };\n}, \"loader\");\nvar plugin9 = {\n id: id11,\n detector: detector11,\n loader: loader11\n};\nvar requirementDetector_default = plugin9;\n\n// src/diagrams/sequence/sequenceDetector.ts\nvar id12 = \"sequence\";\nvar detector12 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sequenceDiagram/.test(txt);\n}, \"detector\");\nvar loader12 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sequenceDiagram-G6AWOVSC.mjs\");\n return { id: id12, diagram: diagram2 };\n}, \"loader\");\nvar plugin10 = {\n id: id12,\n detector: detector12,\n loader: loader12\n};\nvar sequenceDetector_default = plugin10;\n\n// src/diagrams/class/classDetector.ts\nvar id13 = \"class\";\nvar detector13 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*classDiagram/.test(txt);\n}, \"detector\");\nvar loader13 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-LNE6IOMH.mjs\");\n return { id: id13, diagram: diagram2 };\n}, \"loader\");\nvar plugin11 = {\n id: id13,\n detector: detector13,\n loader: loader13\n};\nvar classDetector_default = plugin11;\n\n// src/diagrams/class/classDetector-V2.ts\nvar id14 = \"classDiagram\";\nvar detector14 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*classDiagram/.test(txt) && config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*classDiagram-v2/.test(txt);\n}, \"detector\");\nvar loader14 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-v2-MQ7JQ4JX.mjs\");\n return { id: id14, diagram: diagram2 };\n}, \"loader\");\nvar plugin12 = {\n id: id14,\n detector: detector14,\n loader: loader14\n};\nvar classDetector_V2_default = plugin12;\n\n// src/diagrams/state/stateDetector.ts\nvar id15 = \"state\";\nvar detector15 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*stateDiagram/.test(txt);\n}, \"detector\");\nvar loader15 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-MAYHULR4.mjs\");\n return { id: id15, diagram: diagram2 };\n}, \"loader\");\nvar plugin13 = {\n id: id15,\n detector: detector15,\n loader: loader15\n};\nvar stateDetector_default = plugin13;\n\n// src/diagrams/state/stateDetector-V2.ts\nvar id16 = \"stateDiagram\";\nvar detector16 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*stateDiagram-v2/.test(txt)) {\n return true;\n }\n if (/^\\s*stateDiagram/.test(txt) && config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return false;\n}, \"detector\");\nvar loader16 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-v2-4JROLMXI.mjs\");\n return { id: id16, diagram: diagram2 };\n}, \"loader\");\nvar plugin14 = {\n id: id16,\n detector: detector16,\n loader: loader16\n};\nvar stateDetector_V2_default = plugin14;\n\n// src/diagrams/user-journey/journeyDetector.ts\nvar id17 = \"journey\";\nvar detector17 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*journey/.test(txt);\n}, \"detector\");\nvar loader17 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/journeyDiagram-G5WM74LC.mjs\");\n return { id: id17, diagram: diagram2 };\n}, \"loader\");\nvar plugin15 = {\n id: id17,\n detector: detector17,\n loader: loader17\n};\nvar journeyDetector_default = plugin15;\n\n// src/diagrams/error/errorRenderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id26, version2) => {\n log.debug(\"rendering svg for syntax error\\n\");\n const svg = selectSvgElement(id26);\n const g = svg.append(\"g\");\n svg.attr(\"viewBox\", \"0 0 2412 512\");\n configureSvgSize(svg, 100, 512, true);\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z\"\n );\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1440).attr(\"y\", 250).attr(\"font-size\", \"150px\").style(\"text-anchor\", \"middle\").text(\"Syntax error in text\");\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1250).attr(\"y\", 400).attr(\"font-size\", \"100px\").style(\"text-anchor\", \"middle\").text(`mermaid version ${version2}`);\n}, \"draw\");\nvar renderer = { draw };\nvar errorRenderer_default = renderer;\n\n// src/diagrams/error/errorDiagram.ts\nvar diagram = {\n db: {},\n renderer,\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n return;\n }, \"parse\")\n }\n};\nvar errorDiagram_default = diagram;\n\n// src/diagrams/flowchart/elk/detector.ts\nvar id18 = \"flowchart-elk\";\nvar detector18 = /* @__PURE__ */ __name((txt, config = {}) => {\n if (\n // If diagram explicitly states flowchart-elk\n /^\\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk\n /^\\s*flowchart|graph/.test(txt) && config?.flowchart?.defaultRenderer === \"elk\"\n ) {\n config.layout = \"elk\";\n return true;\n }\n return false;\n}, \"detector\");\nvar loader18 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-7ASYPVHJ.mjs\");\n return { id: id18, diagram: diagram2 };\n}, \"loader\");\nvar plugin16 = {\n id: id18,\n detector: detector18,\n loader: loader18\n};\nvar detector_default = plugin16;\n\n// src/diagrams/timeline/detector.ts\nvar id19 = \"timeline\";\nvar detector19 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*timeline/.test(txt);\n}, \"detector\");\nvar loader19 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/timeline-definition-U7ZMHBDA.mjs\");\n return { id: id19, diagram: diagram2 };\n}, \"loader\");\nvar plugin17 = {\n id: id19,\n detector: detector19,\n loader: loader19\n};\nvar detector_default2 = plugin17;\n\n// src/diagrams/mindmap/detector.ts\nvar id20 = \"mindmap\";\nvar detector20 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*mindmap/.test(txt);\n}, \"detector\");\nvar loader20 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/mindmap-definition-GWI6TPTV.mjs\");\n return { id: id20, diagram: diagram2 };\n}, \"loader\");\nvar plugin18 = {\n id: id20,\n detector: detector20,\n loader: loader20\n};\nvar detector_default3 = plugin18;\n\n// src/diagrams/kanban/detector.ts\nvar id21 = \"kanban\";\nvar detector21 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*kanban/.test(txt);\n}, \"detector\");\nvar loader21 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/kanban-definition-QRCXZQQD.mjs\");\n return { id: id21, diagram: diagram2 };\n}, \"loader\");\nvar plugin19 = {\n id: id21,\n detector: detector21,\n loader: loader21\n};\nvar detector_default4 = plugin19;\n\n// src/diagrams/sankey/sankeyDetector.ts\nvar id22 = \"sankey\";\nvar detector22 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sankey-beta/.test(txt);\n}, \"detector\");\nvar loader22 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sankeyDiagram-Y46BX6SQ.mjs\");\n return { id: id22, diagram: diagram2 };\n}, \"loader\");\nvar plugin20 = {\n id: id22,\n detector: detector22,\n loader: loader22\n};\nvar sankeyDetector_default = plugin20;\n\n// src/diagrams/packet/detector.ts\nvar id23 = \"packet\";\nvar detector23 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*packet-beta/.test(txt);\n}, \"detector\");\nvar loader23 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-QW4FP2JN.mjs\");\n return { id: id23, diagram: diagram2 };\n}, \"loader\");\nvar packet = {\n id: id23,\n detector: detector23,\n loader: loader23\n};\n\n// src/diagrams/block/blockDetector.ts\nvar id24 = \"block\";\nvar detector24 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*block-beta/.test(txt);\n}, \"detector\");\nvar loader24 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/blockDiagram-ZHA2E4KO.mjs\");\n return { id: id24, diagram: diagram2 };\n}, \"loader\");\nvar plugin21 = {\n id: id24,\n detector: detector24,\n loader: loader24\n};\nvar blockDetector_default = plugin21;\n\n// src/diagrams/architecture/architectureDetector.ts\nvar id25 = \"architecture\";\nvar detector25 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*architecture/.test(txt);\n}, \"detector\");\nvar loader25 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/architectureDiagram-UYN6MBPD.mjs\");\n return { id: id25, diagram: diagram2 };\n}, \"loader\");\nvar architecture = {\n id: id25,\n detector: detector25,\n loader: loader25\n};\nvar architectureDetector_default = architecture;\n\n// src/diagram-api/diagram-orchestration.ts\nvar hasLoadedDiagrams = false;\nvar addDiagrams = /* @__PURE__ */ __name(() => {\n if (hasLoadedDiagrams) {\n return;\n }\n hasLoadedDiagrams = true;\n registerDiagram(\"error\", errorDiagram_default, (text) => {\n return text.toLowerCase().trim() === \"error\";\n });\n registerDiagram(\n \"---\",\n // --- diagram type may appear if YAML front-matter is not parsed correctly\n {\n db: {\n clear: /* @__PURE__ */ __name(() => {\n }, \"clear\")\n },\n styles: {},\n // should never be used\n renderer: {\n draw: /* @__PURE__ */ __name(() => {\n }, \"draw\")\n },\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n throw new Error(\n \"Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks\"\n );\n }, \"parse\")\n },\n init: /* @__PURE__ */ __name(() => null, \"init\")\n // no op\n },\n (text) => {\n return text.toLowerCase().trimStart().startsWith(\"---\");\n }\n );\n registerLazyLoadedDiagrams(\n c4Detector_default,\n detector_default4,\n classDetector_V2_default,\n classDetector_default,\n erDetector_default,\n ganttDetector_default,\n info,\n pie,\n requirementDetector_default,\n sequenceDetector_default,\n detector_default,\n flowDetector_v2_default,\n flowDetector_default,\n detector_default3,\n detector_default2,\n gitGraphDetector_default,\n stateDetector_V2_default,\n stateDetector_default,\n journeyDetector_default,\n quadrantDetector_default,\n sankeyDetector_default,\n packet,\n xychartDetector_default,\n blockDetector_default,\n architectureDetector_default\n );\n}, \"addDiagrams\");\n\n// src/diagram-api/loadDiagram.ts\nvar loadRegisteredDiagrams = /* @__PURE__ */ __name(async () => {\n log.debug(`Loading registered diagrams`);\n const results = await Promise.allSettled(\n Object.entries(detectors).map(async ([key, { detector: detector26, loader: loader26 }]) => {\n if (loader26) {\n try {\n getDiagram(key);\n } catch {\n try {\n const { diagram: diagram2, id: id26 } = await loader26();\n registerDiagram(id26, diagram2, detector26);\n } catch (err) {\n log.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);\n delete detectors[key];\n throw err;\n }\n }\n }\n })\n );\n const failed = results.filter((result) => result.status === \"rejected\");\n if (failed.length > 0) {\n log.error(`Failed to load ${failed.length} external diagrams`);\n for (const res of failed) {\n log.error(res);\n }\n throw new Error(`Failed to load ${failed.length} external diagrams`);\n }\n}, \"loadRegisteredDiagrams\");\n\n// src/mermaidAPI.ts\nimport { select } from \"d3\";\nimport { compile, serialize, stringify } from \"stylis\";\nimport DOMPurify from \"dompurify\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\n\n// src/accessibility.ts\nvar SVG_ROLE = \"graphics-document document\";\nfunction setA11yDiagramInfo(svg, diagramType) {\n svg.attr(\"role\", SVG_ROLE);\n if (diagramType !== \"\") {\n svg.attr(\"aria-roledescription\", diagramType);\n }\n}\n__name(setA11yDiagramInfo, \"setA11yDiagramInfo\");\nfunction addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {\n if (svg.insert === void 0) {\n return;\n }\n if (a11yDesc) {\n const descId = `chart-desc-${baseId}`;\n svg.attr(\"aria-describedby\", descId);\n svg.insert(\"desc\", \":first-child\").attr(\"id\", descId).text(a11yDesc);\n }\n if (a11yTitle) {\n const titleId = `chart-title-${baseId}`;\n svg.attr(\"aria-labelledby\", titleId);\n svg.insert(\"title\", \":first-child\").attr(\"id\", titleId).text(a11yTitle);\n }\n}\n__name(addSVGa11yTitleDescription, \"addSVGa11yTitleDescription\");\n\n// src/Diagram.ts\nvar Diagram = class _Diagram {\n constructor(type, text, db, parser, renderer2) {\n this.type = type;\n this.text = text;\n this.db = db;\n this.parser = parser;\n this.renderer = renderer2;\n }\n static {\n __name(this, \"Diagram\");\n }\n static async fromText(text, metadata = {}) {\n const config = getConfig();\n const type = detectType(text, config);\n text = encodeEntities(text) + \"\\n\";\n try {\n getDiagram(type);\n } catch {\n const loader26 = getDiagramLoader(type);\n if (!loader26) {\n throw new UnknownDiagramError(`Diagram ${type} not found.`);\n }\n const { id: id26, diagram: diagram2 } = await loader26();\n registerDiagram(id26, diagram2);\n }\n const { db, parser, renderer: renderer2, init: init2 } = getDiagram(type);\n if (parser.parser) {\n parser.parser.yy = db;\n }\n db.clear?.();\n init2?.(config);\n if (metadata.title) {\n db.setDiagramTitle?.(metadata.title);\n }\n await parser.parse(text);\n return new _Diagram(type, text, db, parser, renderer2);\n }\n async render(id26, version2) {\n await this.renderer.draw(this.text, id26, version2, this);\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n};\n\n// src/interactionDb.ts\nvar interactionFunctions = [];\nvar attachFunctions = /* @__PURE__ */ __name(() => {\n interactionFunctions.forEach((f) => {\n f();\n });\n interactionFunctions = [];\n}, \"attachFunctions\");\n\n// src/diagram-api/comments.ts\nvar cleanupComments = /* @__PURE__ */ __name((text) => {\n return text.replace(/^\\s*%%(?!{)[^\\n]+\\n?/gm, \"\").trimStart();\n}, \"cleanupComments\");\n\n// src/diagram-api/frontmatter.ts\nfunction extractFrontMatter(text) {\n const matches = text.match(frontMatterRegex);\n if (!matches) {\n return {\n text,\n metadata: {}\n };\n }\n let parsed = load(matches[1], {\n // To support config, we need JSON schema.\n // https://www.yaml.org/spec/1.2/spec.html#id2803231\n schema: JSON_SCHEMA\n }) ?? {};\n parsed = typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n const metadata = {};\n if (parsed.displayMode) {\n metadata.displayMode = parsed.displayMode.toString();\n }\n if (parsed.title) {\n metadata.title = parsed.title.toString();\n }\n if (parsed.config) {\n metadata.config = parsed.config;\n }\n return {\n text: text.slice(matches[0].length),\n metadata\n };\n}\n__name(extractFrontMatter, \"extractFrontMatter\");\n\n// src/preprocess.ts\nvar cleanupText = /* @__PURE__ */ __name((code) => {\n return code.replace(/\\r\\n?/g, \"\\n\").replace(\n /<(\\w+)([^>]*)>/g,\n (match, tag, attributes) => \"<\" + tag + attributes.replace(/=\"([^\"]*)\"/g, \"='$1'\") + \">\"\n );\n}, \"cleanupText\");\nvar processFrontmatter = /* @__PURE__ */ __name((code) => {\n const { text, metadata } = extractFrontMatter(code);\n const { displayMode, title, config = {} } = metadata;\n if (displayMode) {\n if (!config.gantt) {\n config.gantt = {};\n }\n config.gantt.displayMode = displayMode;\n }\n return { title, config, text };\n}, \"processFrontmatter\");\nvar processDirectives = /* @__PURE__ */ __name((code) => {\n const initDirective = utils_default.detectInit(code) ?? {};\n const wrapDirectives = utils_default.detectDirective(code, \"wrap\");\n if (Array.isArray(wrapDirectives)) {\n initDirective.wrap = wrapDirectives.some(({ type }) => type === \"wrap\");\n } else if (wrapDirectives?.type === \"wrap\") {\n initDirective.wrap = true;\n }\n return {\n text: removeDirectives(code),\n directive: initDirective\n };\n}, \"processDirectives\");\nfunction preprocessDiagram(code) {\n const cleanedCode = cleanupText(code);\n const frontMatterResult = processFrontmatter(cleanedCode);\n const directiveResult = processDirectives(frontMatterResult.text);\n const config = cleanAndMerge(frontMatterResult.config, directiveResult.directive);\n code = cleanupComments(directiveResult.text);\n return {\n code,\n title: frontMatterResult.title,\n config\n };\n}\n__name(preprocessDiagram, \"preprocessDiagram\");\n\n// src/utils/base64.ts\nfunction toBase64(str) {\n const utf8Bytes = new TextEncoder().encode(str);\n const utf8Str = Array.from(utf8Bytes, (byte) => String.fromCodePoint(byte)).join(\"\");\n return btoa(utf8Str);\n}\n__name(toBase64, \"toBase64\");\n\n// src/mermaidAPI.ts\nvar MAX_TEXTLENGTH = 5e4;\nvar MAX_TEXTLENGTH_EXCEEDED_MSG = \"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\";\nvar SECURITY_LVL_SANDBOX = \"sandbox\";\nvar SECURITY_LVL_LOOSE = \"loose\";\nvar XMLNS_SVG_STD = \"http://www.w3.org/2000/svg\";\nvar XMLNS_XLINK_STD = \"http://www.w3.org/1999/xlink\";\nvar XMLNS_XHTML_STD = \"http://www.w3.org/1999/xhtml\";\nvar IFRAME_WIDTH = \"100%\";\nvar IFRAME_HEIGHT = \"100%\";\nvar IFRAME_STYLES = \"border:0;margin:0;\";\nvar IFRAME_BODY_STYLE = \"margin:0\";\nvar IFRAME_SANDBOX_OPTS = \"allow-top-navigation-by-user-activation allow-popups\";\nvar IFRAME_NOT_SUPPORTED_MSG = 'The \"iframe\" tag is not supported by your browser.';\nvar DOMPURIFY_TAGS = [\"foreignobject\"];\nvar DOMPURIFY_ATTR = [\"dominant-baseline\"];\nfunction processAndSetConfigs(text) {\n const processed = preprocessDiagram(text);\n reset();\n addDirective(processed.config ?? {});\n return processed;\n}\n__name(processAndSetConfigs, \"processAndSetConfigs\");\nasync function parse(text, parseOptions) {\n addDiagrams();\n try {\n const { code, config } = processAndSetConfigs(text);\n const diagram2 = await getDiagramFromText(code);\n return { diagramType: diagram2.type, config };\n } catch (error) {\n if (parseOptions?.suppressErrors) {\n return false;\n }\n throw error;\n }\n}\n__name(parse, \"parse\");\nvar cssImportantStyles = /* @__PURE__ */ __name((cssClass, element, cssClasses = []) => {\n return `\n.${cssClass} ${element} { ${cssClasses.join(\" !important; \")} !important; }`;\n}, \"cssImportantStyles\");\nvar createCssStyles = /* @__PURE__ */ __name((config, classDefs = /* @__PURE__ */ new Map()) => {\n let cssStyles = \"\";\n if (config.themeCSS !== void 0) {\n cssStyles += `\n${config.themeCSS}`;\n }\n if (config.fontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n if (config.altFontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n if (classDefs instanceof Map) {\n const htmlLabels = config.htmlLabels ?? config.flowchart?.htmlLabels;\n const cssHtmlElements = [\"> *\", \"span\"];\n const cssShapeElements = [\"rect\", \"polygon\", \"ellipse\", \"circle\", \"path\"];\n const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;\n classDefs.forEach((styleClassDef) => {\n if (!isEmpty(styleClassDef.styles)) {\n cssElements.forEach((cssElement) => {\n cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);\n });\n }\n if (!isEmpty(styleClassDef.textStyles)) {\n cssStyles += cssImportantStyles(\n styleClassDef.id,\n \"tspan\",\n (styleClassDef?.textStyles || []).map((s) => s.replace(\"color\", \"fill\"))\n );\n }\n });\n }\n return cssStyles;\n}, \"createCssStyles\");\nvar createUserStyles = /* @__PURE__ */ __name((config, graphType, classDefs, svgId) => {\n const userCSSstyles = createCssStyles(config, classDefs);\n const allStyles = styles_default(graphType, userCSSstyles, config.themeVariables);\n return serialize(compile(`${svgId}{${allStyles}}`), stringify);\n}, \"createUserStyles\");\nvar cleanUpSvgCode = /* @__PURE__ */ __name((svgCode = \"\", inSandboxMode, useArrowMarkerUrls) => {\n let cleanedUpSvg = svgCode;\n if (!useArrowMarkerUrls && !inSandboxMode) {\n cleanedUpSvg = cleanedUpSvg.replace(\n /marker-end=\"url\\([\\d+./:=?A-Za-z-]*?#/g,\n 'marker-end=\"url(#'\n );\n }\n cleanedUpSvg = decodeEntities(cleanedUpSvg);\n cleanedUpSvg = cleanedUpSvg.replace(/<br>/g, \"<br/>\");\n return cleanedUpSvg;\n}, \"cleanUpSvgCode\");\nvar putIntoIFrame = /* @__PURE__ */ __name((svgCode = \"\", svgElement) => {\n const height = svgElement?.viewBox?.baseVal?.height ? svgElement.viewBox.baseVal.height + \"px\" : IFRAME_HEIGHT;\n const base64encodedSrc = toBase64(`<body style=\"${IFRAME_BODY_STYLE}\">${svgCode}</body>`);\n return `<iframe style=\"width:${IFRAME_WIDTH};height:${height};${IFRAME_STYLES}\" src=\"data:text/html;charset=UTF-8;base64,${base64encodedSrc}\" sandbox=\"${IFRAME_SANDBOX_OPTS}\">\n ${IFRAME_NOT_SUPPORTED_MSG}\n</iframe>`;\n}, \"putIntoIFrame\");\nvar appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id26, enclosingDivId, divStyle, svgXlink) => {\n const enclosingDiv = parentRoot.append(\"div\");\n enclosingDiv.attr(\"id\", enclosingDivId);\n if (divStyle) {\n enclosingDiv.attr(\"style\", divStyle);\n }\n const svgNode = enclosingDiv.append(\"svg\").attr(\"id\", id26).attr(\"width\", \"100%\").attr(\"xmlns\", XMLNS_SVG_STD);\n if (svgXlink) {\n svgNode.attr(\"xmlns:xlink\", svgXlink);\n }\n svgNode.append(\"g\");\n return parentRoot;\n}, \"appendDivSvgG\");\nfunction sandboxedIframe(parentNode, iFrameId) {\n return parentNode.append(\"iframe\").attr(\"id\", iFrameId).attr(\"style\", \"width: 100%; height: 100%;\").attr(\"sandbox\", \"\");\n}\n__name(sandboxedIframe, \"sandboxedIframe\");\nvar removeExistingElements = /* @__PURE__ */ __name((doc, id26, divId, iFrameId) => {\n doc.getElementById(id26)?.remove();\n doc.getElementById(divId)?.remove();\n doc.getElementById(iFrameId)?.remove();\n}, \"removeExistingElements\");\nvar render = /* @__PURE__ */ __name(async function(id26, text, svgContainingElement) {\n addDiagrams();\n const processed = processAndSetConfigs(text);\n text = processed.code;\n const config = getConfig();\n log.debug(config);\n if (text.length > (config?.maxTextSize ?? MAX_TEXTLENGTH)) {\n text = MAX_TEXTLENGTH_EXCEEDED_MSG;\n }\n const idSelector = \"#\" + id26;\n const iFrameID = \"i\" + id26;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id26;\n const enclosingDivID_selector = \"#\" + enclosingDivID;\n const removeTempElements = /* @__PURE__ */ __name(() => {\n const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;\n const node = select(tmpElementSelector).node();\n if (node && \"remove\" in node) {\n node.remove();\n }\n }, \"removeTempElements\");\n let root = select(\"body\");\n const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;\n const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE;\n const fontFamily = config.fontFamily;\n if (svgContainingElement !== void 0) {\n if (svgContainingElement) {\n svgContainingElement.innerHTML = \"\";\n }\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(svgContainingElement);\n }\n appendDivSvgG(root, id26, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id26, enclosingDivID, iFrameID);\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(\"body\"), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(\"body\");\n }\n appendDivSvgG(root, id26, enclosingDivID);\n }\n let diag;\n let parseEncounteredException;\n try {\n diag = await Diagram.fromText(text, { title: processed.title });\n } catch (error) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n throw error;\n }\n diag = await Diagram.fromText(\"error\");\n parseEncounteredException = error;\n }\n const element = root.select(enclosingDivID_selector).node();\n const diagramType = diag.type;\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n const diagramClassDefs = diag.renderer.getClasses?.(text, diag);\n const rules = createUserStyles(config, diagramType, diagramClassDefs, idSelector);\n const style1 = document.createElement(\"style\");\n style1.innerHTML = rules;\n svg.insertBefore(style1, firstChild);\n try {\n await diag.renderer.draw(text, id26, version, diag);\n } catch (e) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n } else {\n errorRenderer_default.draw(text, id26, version);\n }\n throw e;\n }\n const svgNode = root.select(`${enclosingDivID_selector} svg`);\n const a11yTitle = diag.db.getAccTitle?.();\n const a11yDescr = diag.db.getAccDescription?.();\n addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr);\n root.select(`[id=\"${id26}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\", XMLNS_XHTML_STD);\n let svgCode = root.select(enclosingDivID_selector).node().innerHTML;\n log.debug(\"config.arrowMarkerAbsolute\", config.arrowMarkerAbsolute);\n svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute));\n if (isSandboxed) {\n const svgEl = root.select(enclosingDivID_selector + \" svg\").node();\n svgCode = putIntoIFrame(svgCode, svgEl);\n } else if (!isLooseSecurityLevel) {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: DOMPURIFY_TAGS,\n ADD_ATTR: DOMPURIFY_ATTR,\n HTML_INTEGRATION_POINTS: { foreignobject: true }\n });\n }\n attachFunctions();\n if (parseEncounteredException) {\n throw parseEncounteredException;\n }\n removeTempElements();\n return {\n diagramType,\n svg: svgCode,\n bindFunctions: diag.db.bindFunctions\n };\n}, \"render\");\nfunction initialize(userOptions = {}) {\n const options = assignWithDepth_default({}, userOptions);\n if (options?.fontFamily && !options.themeVariables?.fontFamily) {\n if (!options.themeVariables) {\n options.themeVariables = {};\n }\n options.themeVariables.fontFamily = options.fontFamily;\n }\n saveConfigFromInitialize(options);\n if (options?.theme && options.theme in themes_default) {\n options.themeVariables = themes_default[options.theme].getThemeVariables(\n options.themeVariables\n );\n } else if (options) {\n options.themeVariables = themes_default.default.getThemeVariables(options.themeVariables);\n }\n const config = typeof options === \"object\" ? setSiteConfig(options) : getSiteConfig();\n setLogLevel(config.logLevel);\n addDiagrams();\n}\n__name(initialize, \"initialize\");\nvar getDiagramFromText = /* @__PURE__ */ __name((text, metadata = {}) => {\n const { code } = preprocessDiagram(text);\n return Diagram.fromText(code, metadata);\n}, \"getDiagramFromText\");\nfunction addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) {\n setA11yDiagramInfo(svgNode, diagramType);\n addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr(\"id\"));\n}\n__name(addA11yInfo, \"addA11yInfo\");\nvar mermaidAPI = Object.freeze({\n render,\n parse,\n getDiagramFromText,\n initialize,\n getConfig,\n setConfig,\n getSiteConfig,\n updateSiteConfig,\n reset: /* @__PURE__ */ __name(() => {\n reset();\n }, \"reset\"),\n globalReset: /* @__PURE__ */ __name(() => {\n reset(defaultConfig);\n }, \"globalReset\"),\n defaultConfig\n});\nsetLogLevel(getConfig().logLevel);\nreset(getConfig());\n\n// src/mermaid.ts\nvar handleError = /* @__PURE__ */ __name((error, errors, parseError) => {\n log.warn(error);\n if (isDetailedError(error)) {\n if (parseError) {\n parseError(error.str, error.hash);\n }\n errors.push({ ...error, message: error.str, error });\n } else {\n if (parseError) {\n parseError(error);\n }\n if (error instanceof Error) {\n errors.push({\n str: error.message,\n message: error.message,\n hash: error.name,\n error\n });\n }\n }\n}, \"handleError\");\nvar run = /* @__PURE__ */ __name(async function(options = {\n querySelector: \".mermaid\"\n}) {\n try {\n await runThrowsErrors(options);\n } catch (e) {\n if (isDetailedError(e)) {\n log.error(e.str);\n }\n if (mermaid.parseError) {\n mermaid.parseError(e);\n }\n if (!options.suppressErrors) {\n log.error(\"Use the suppressErrors option to suppress these errors\");\n throw e;\n }\n }\n}, \"run\");\nvar runThrowsErrors = /* @__PURE__ */ __name(async function({ postRenderCallback, querySelector, nodes } = {\n querySelector: \".mermaid\"\n}) {\n const conf = mermaidAPI.getConfig();\n log.debug(`${!postRenderCallback ? \"No \" : \"\"}Callback function found`);\n let nodesToProcess;\n if (nodes) {\n nodesToProcess = nodes;\n } else if (querySelector) {\n nodesToProcess = document.querySelectorAll(querySelector);\n } else {\n throw new Error(\"Nodes and querySelector are both undefined\");\n }\n log.debug(`Found ${nodesToProcess.length} diagrams`);\n if (conf?.startOnLoad !== void 0) {\n log.debug(\"Start On Load: \" + conf?.startOnLoad);\n mermaidAPI.updateSiteConfig({ startOnLoad: conf?.startOnLoad });\n }\n const idGenerator = new utils_default.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed);\n let txt;\n const errors = [];\n for (const element of Array.from(nodesToProcess)) {\n log.info(\"Rendering diagram: \" + element.id);\n if (element.getAttribute(\"data-processed\")) {\n continue;\n }\n element.setAttribute(\"data-processed\", \"true\");\n const id26 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils_default.entityDecode(txt)).trim().replace(/<br\\s*\\/?>/gi, \"<br/>\");\n const init2 = utils_default.detectInit(txt);\n if (init2) {\n log.debug(\"Detected early reinit: \", init2);\n }\n try {\n const { svg, bindFunctions } = await render2(id26, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id26);\n }\n if (bindFunctions) {\n bindFunctions(element);\n }\n } catch (error) {\n handleError(error, errors, mermaid.parseError);\n }\n }\n if (errors.length > 0) {\n throw errors[0];\n }\n}, \"runThrowsErrors\");\nvar initialize2 = /* @__PURE__ */ __name(function(config) {\n mermaidAPI.initialize(config);\n}, \"initialize\");\nvar init = /* @__PURE__ */ __name(async function(config, nodes, callback) {\n log.warn(\"mermaid.init is deprecated. Please use run instead.\");\n if (config) {\n initialize2(config);\n }\n const runOptions = { postRenderCallback: callback, querySelector: \".mermaid\" };\n if (typeof nodes === \"string\") {\n runOptions.querySelector = nodes;\n } else if (nodes) {\n if (nodes instanceof HTMLElement) {\n runOptions.nodes = [nodes];\n } else {\n runOptions.nodes = nodes;\n }\n }\n await run(runOptions);\n}, \"init\");\nvar registerExternalDiagrams = /* @__PURE__ */ __name(async (diagrams, {\n lazyLoad = true\n} = {}) => {\n addDiagrams();\n registerLazyLoadedDiagrams(...diagrams);\n if (lazyLoad === false) {\n await loadRegisteredDiagrams();\n }\n}, \"registerExternalDiagrams\");\nvar contentLoaded = /* @__PURE__ */ __name(function() {\n if (mermaid.startOnLoad) {\n const { startOnLoad } = mermaidAPI.getConfig();\n if (startOnLoad) {\n mermaid.run().catch((err) => log.error(\"Mermaid failed to initialize\", err));\n }\n }\n}, \"contentLoaded\");\nif (typeof document !== \"undefined\") {\n window.addEventListener(\"load\", contentLoaded, false);\n}\nvar setParseErrorHandler = /* @__PURE__ */ __name(function(parseErrorHandler) {\n mermaid.parseError = parseErrorHandler;\n}, \"setParseErrorHandler\");\nvar executionQueue = [];\nvar executionQueueRunning = false;\nvar executeQueue = /* @__PURE__ */ __name(async () => {\n if (executionQueueRunning) {\n return;\n }\n executionQueueRunning = true;\n while (executionQueue.length > 0) {\n const f = executionQueue.shift();\n if (f) {\n try {\n await f();\n } catch (e) {\n log.error(\"Error executing queue\", e);\n }\n }\n }\n executionQueueRunning = false;\n}, \"executeQueue\");\nvar parse2 = /* @__PURE__ */ __name(async (text, parseOptions) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.parse(text, parseOptions).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"parse\");\nvar render2 = /* @__PURE__ */ __name((id26, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.render(id26, text, container).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"render\");\nvar mermaid = {\n startOnLoad: true,\n mermaidAPI,\n parse: parse2,\n render: render2,\n init,\n run,\n registerExternalDiagrams,\n registerLayoutLoaders,\n initialize: initialize2,\n parseError: void 0,\n contentLoaded,\n setParseErrorHandler,\n detectType,\n registerIconPacks\n};\nvar mermaid_default = mermaid;\nexport {\n mermaid_default as default\n};\n/*! Check if previously processed */\n/*!\n * Wait for document loaded before starting the execution\n */\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport mermaid from 'mermaid'\nimport { memo, useId, useState } from 'react'\n\nmermaid.initialize({\n startOnLoad: false,\n theme: 'dark',\n})\n\nconst Mermaid = memo(function Mermaid({ content }: { content: string }) {\n const [showSource, setShowSource] = useState(false)\n const id = `mermaid-diagram-${useId().replace(/:/g, '_')}`\n\n const mermaidRef = async (node: HTMLElement | null) => {\n if (node) {\n const { svg } = await mermaid.render(id, content)\n node.innerHTML = svg\n }\n }\n\n return (\n <>\n <button\n className=\"absolute right-2 top-2 text-mono-xs text-tertiary\"\n onClick={() => setShowSource(!showSource)}\n >\n {showSource ? 'Hide' : 'Show'} Source <span className=\"text-quinary\">|</span>{' '}\n Mermaid\n </button>\n {!showSource ? <code ref={mermaidRef} className=\"w-full\" /> : <code>{content}</code>}\n </>\n )\n})\n\nexport default Mermaid\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst Link16Icon = ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={16}\n height={16}\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <g fill=\"currentColor\">\n <path d=\"m6.586 12.243 1.59-1.591a.75.75 0 0 1 1.061 0l.354.353a.75.75 0 0 1 0 1.06L8 13.658A4 4 0 0 1 2.343 8l1.591-1.591a.75.75 0 0 1 1.06 0l.354.354a.75.75 0 0 1 0 1.06l-1.59 1.591a2 2 0 1 0 2.828 2.829ZM12.066 9.591a.75.75 0 0 1-1.06 0l-.354-.354a.75.75 0 0 1 0-1.06l1.59-1.591a2 2 0 1 0-2.828-2.829l-1.59 1.591a.75.75 0 0 1-1.061 0l-.354-.353a.75.75 0 0 1 0-1.06L8 2.342A4 4 0 0 1 13.657 8l-1.591 1.591Z\" />\n <path d=\"M9.945 5.702a.75.75 0 0 0-1.061 0L5.702 8.884a.75.75 0 0 0 0 1.06l.353.354a.75.75 0 0 0 1.061 0l3.182-3.182a.75.75 0 0 0 0-1.06l-.353-.354Z\" />\n </g>\n </svg>\n)\nexport default Link16Icon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst Checkmark12Icon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.492 2.651c.28.242.31.665.067.944L5.447 9.463a.667.667 0 0 1-.974.035L1.475 6.516a.667.667 0 0 1 0-.946l.237-.235a.667.667 0 0 1 .94 0l2.24 2.226L9.3 2.501a.667.667 0 0 1 .938-.068l.253.218Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\nexport default Checkmark12Icon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst DirectionRightIcon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <path\n d=\"M8.807 6.597a.667.667 0 0 0 0-1.194l-5.842-2.92A.667.667 0 0 0 2 3.079v5.842c0 .496.522.818.965.596l5.842-2.92Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\nexport default DirectionRightIcon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst SelectArrows6Icon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={6}\n height={14}\n viewBox=\"0 0 6 14\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.322.536a.375.375 0 0 0-.644 0L.341 4.432C.19 4.682.37 5 .662 5h4.676a.375.375 0 0 0 .321-.568L3.322.536Zm-.644 12.928a.375.375 0 0 0 .644 0l2.337-3.896A.375.375 0 0 0 5.338 9H.662a.375.375 0 0 0-.321.568l2.337 3.896Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\nexport default SelectArrows6Icon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { Link16Icon } from '@/icons/react'\nimport { Content, type SectionBlock, parse } from '@oxide/react-asciidoc'\nimport cn from 'classnames'\nimport { createElement } from 'react'\n\n// We need to remove anchors from the section title (and table of contents) because having\n// an anchor within an anchor causes a client/server render mismatch\nexport const stripAnchors = (str: string) => str.replace(/<a[^>]*>(.*?)<\\/a>/gi, '$1')\n\nconst Section = ({ node }: { node: SectionBlock }) => {\n const level = node.level\n let title: JSX.Element | string = ''\n\n let sectNum = node.num\n sectNum = sectNum === '.' ? '' : sectNum\n\n title = (\n <>\n <span className=\"anchor\" id={node.id || ''} aria-hidden=\"true\" />\n <a className=\"link group\" href={`#${node.id}`}>\n {parse(stripAnchors(node.title))}\n <Link16Icon className=\"ml-2 hidden text-accent-secondary group-hover:inline-block\" />\n </a>\n </>\n )\n\n if (level === 0) {\n return (\n <>\n <h1 className={cn('sect0', node.role)} data-sectnum={sectNum}>\n {title}\n </h1>\n <Content blocks={node.blocks} />\n </>\n )\n } else {\n return (\n <div className={cn(`sect${level}`, node.role)}>\n {createElement(`h${level + 1}`, { 'data-sectnum': sectNum }, title)}\n <div className=\"sectionbody\">\n <Content blocks={node.blocks} />\n </div>\n </div>\n )\n }\n}\n\nexport default Section\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { Table as InnerTable, type TableBlock } from '@oxide/react-asciidoc'\n\nconst Table = ({ node }: { node: TableBlock }) => (\n <div className=\"table-wrapper\">\n <InnerTable node={node} />\n </div>\n)\n\nexport default Table\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { DirectionRightIcon } from '@/icons/react'\nimport type { DocumentSection } from '@oxide/react-asciidoc'\nimport * as Accordion from '@radix-ui/react-accordion'\nimport { Link } from '@remix-run/react'\nimport cn from 'classnames'\nimport { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nexport function useIntersectionObserver(\n elements: Element[],\n callback: IntersectionObserverCallback,\n options: IntersectionObserverInit,\n) {\n const [observer, setObserver] = useState<IntersectionObserver | null>(null)\n\n // Create the observer in an effect so we can tear it down when this unmounts\n useEffect(() => {\n const observer = new IntersectionObserver(callback, options)\n setObserver(observer)\n\n return () => {\n observer.disconnect()\n }\n }, [callback, options])\n\n // Bind the elements that should be listened for\n useEffect(() => {\n if (observer) {\n for (const element of elements) {\n observer.observe(element)\n }\n }\n\n return () => {\n if (observer) {\n for (const element of elements) {\n observer.unobserve(element)\n }\n }\n }\n }, [elements, observer])\n\n return observer\n}\n\n// Create threshold steps that trigger intersection events every 0.05%. This is needed to provide\n// decent measurements on very tall elements. In the future we could instead compute the needed\n// thresholds on a per element basis so that we are measuring per pixel instead of per percent.\nconst THRESHOLD = [...Array(2000).keys()].map((n) => n / 2000)\n\nfunction isTopLevelSection(element: Element): boolean {\n return element.classList.contains('sect1')\n}\n\n// Uses the asciidoc generated classes to find the closest section wrapping parent element\nfunction findParentSection(element: Element): Element | null {\n const sect2Wrapper = element.closest('.sect2')\n return sect2Wrapper ? sect2Wrapper : element.closest('.sect1')\n}\n\nfunction newSection(\n node: number,\n element: Element,\n wrapper: Element,\n parent: number | null,\n): Section {\n return {\n node,\n element,\n wrapper,\n parent,\n children: [],\n }\n}\n\nfunction buildSectionTree(elements: Element[]): Section[] {\n const sections = []\n let parent = null\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n const parentWrapper = findParentSection(element)\n\n if (parentWrapper) {\n if (parentWrapper && isTopLevelSection(parentWrapper)) {\n const section = newSection(i, element, parentWrapper, null)\n sections.push(section)\n parent = section\n } else {\n if (parent === null) {\n // Fail to construct a tree if the provided elements are invalid\n return []\n } else {\n const section = newSection(i, element, parentWrapper, parent.node)\n parent.children.push(i)\n sections.push(section)\n }\n }\n } else {\n // Fail to construct a tree if the provided elements are invalid\n return []\n }\n }\n\n return sections\n}\n\nfunction maxIndex(nums: number[]): number | undefined {\n return nums.reduce<number | undefined>((maxIndex, current, currentIndex) => {\n const currentMax = maxIndex !== undefined ? nums[maxIndex] : 0\n return current > currentMax ? currentIndex : maxIndex\n }, undefined)\n}\n\ntype Section = {\n node: number\n element: Element\n wrapper: Element\n parent: number | null\n children: number[]\n}\n// This hook will call the provided callback whenever a section that is identified by a heading is\n// determined to be \"active\". A section is considered to be the \"active\" section when covers more\n// space of the specified measuring area than any other section.\nexport function useActiveSectionTracking(\n initialSections: Element[],\n onSectionChange: (element: Element) => void,\n debug = false,\n) {\n // Construct a tree in the form of a basic array that will allow for traversing between parent\n // an child nodes quickly\n const [sectionWrappers, setSectionWrappers] = useState<Section[]>(\n buildSectionTree(initialSections),\n )\n\n // Internally we need to track the coverage percentage for each element without triggering\n // renders\n const sectionMeasurements = useRef<number[]>([])\n\n // The caller only provides the hook with section headers and so we need to map those to their\n // relevant containing sections\n const setSections = useCallback(\n (sections: Element[]) => {\n setSectionWrappers(buildSectionTree(sections))\n\n // When sections change we need to also zero out our section visibility measurements\n sectionMeasurements.current = []\n },\n [setSectionWrappers],\n )\n\n // Create the section tracker\n const wrapperActivator = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n // For each observed element that has interacted with our intersection window we want to\n // compute and record the percentage of space that is covered by the element. This work is all\n // performed off of the main thread\n for (const entry of entries) {\n // Find where in our list of section wrapper elements the entry that changed is\n const index = sectionWrappers.findIndex((node) => node.wrapper === entry.target)\n\n // We are only trying to detect vertical scroll changes and therefore only need to use the\n // heigh to compute the coverage percentage\n const covered = entry.intersectionRect.height / (entry.rootBounds?.height || 1)\n sectionMeasurements.current[index] = covered\n }\n\n // For each section element, compute the amount of space that is \"owned\" by that element. In\n // this check, space is considered \"owned\" by the element furthest down the tree.\n //\n // Example:\n // A parent element covers 70% of the measured space. This element has two child elements,\n // one that covers 30%, and another that covers 25%. In this case both of the child elements\n // own their respective spaces, and the parent owns 15% (70 - (30 + 25)) of the space.\n //\n // Because we are only trying to determine the space owned by a single element, we do not need\n // to traverse further than that elements direct descendants\n const ownedSectionSizes = sectionWrappers.map((section) => {\n const childSizes = section.children\n .map((c) => sectionMeasurements.current[c])\n .reduce((c, a) => c + a, 0)\n return sectionMeasurements.current[section.node] - childSizes\n })\n\n // Now that we have a list of how much of the measured space each element takes up, we simply\n // find the element that is taking up the most space, and assign it to be the current section\n const activeSectionIndex = maxIndex(ownedSectionSizes)\n\n if (activeSectionIndex !== undefined) {\n onSectionChange(sectionWrappers[activeSectionIndex].element)\n }\n },\n [sectionWrappers, onSectionChange],\n )\n\n // Define our measurement area. This space is relative to the root element (i.e. the screen). It\n // is a band that starts at 5% down from the top, and ends at 80% up from the bottom of the\n // screen.\n const wrapperSettings = useMemo(\n () => ({ threshold: THRESHOLD, rootMargin: `-15% 0px -70% 0px` }),\n [],\n )\n\n // We need to ensure that we are only sending valid sections to be observed\n const bindableWrappers = useMemo(\n () => sectionWrappers.map((s) => s.wrapper),\n [sectionWrappers],\n )\n\n // Generate the intersection observer based on the above configuration\n const sectionObserver = useIntersectionObserver(\n bindableWrappers,\n wrapperActivator,\n wrapperSettings,\n )\n\n let debugNode = null\n if (debug && sectionObserver?.root === null) {\n // Parse and invert the margins\n const edges = sectionObserver.rootMargin.split(' ').map((margin) => {\n if (margin.endsWith('%')) {\n return parseInt(margin) * -1 + '%'\n } else if (margin.endsWith('px')) {\n return parseInt(margin) * -1 + 'px'\n } else {\n return '0px'\n }\n })\n\n debugNode = (\n <div\n style={{\n position: 'fixed',\n top: edges[0],\n right: edges[1],\n bottom: edges[2],\n left: edges[3],\n background: 'rgba(255, 92, 170, 0.2)',\n border: '1px solid rgba(255, 92, 170)',\n pointerEvents: 'none',\n zIndex: 500,\n }}\n />\n )\n }\n\n return {\n setSections,\n debugNode,\n }\n}\n\nexport const DesktopOutline = ({\n toc,\n activeItem,\n}: {\n toc: DocumentSection[]\n activeItem: string\n}) => {\n const renderToc = (sections: DocumentSection[]) => {\n return sections.map((item) => (\n <Fragment key={item.id}>\n <li\n data-level={item.level}\n className={cn('mb-0 list-none text-sans-sm', item.level > 2 && 'hidden')}\n >\n <Link\n to={`#${item.id}`}\n className={cn(\n 'block border-l py-[4px] pr-4',\n activeItem === item.id\n ? 'active text-accent-secondary border-accent-secondary hover:text-accent'\n : 'text-tertiary border-secondary hover:text-secondary',\n )}\n style={{\n paddingLeft: `${0.5 + item.level * 0.5}rem`,\n }}\n >\n <span dangerouslySetInnerHTML={{ __html: item.title }} />\n </Link>\n </li>\n {item.sections && renderToc(item.sections)}\n </Fragment>\n ))\n }\n\n if (toc && toc.length > 0) {\n return <ul className=\"toc\">{renderToc(toc)}</ul>\n }\n\n return null\n}\nexport const SmallScreenOutline = ({\n toc,\n activeItem,\n title,\n}: {\n toc: DocumentSection[]\n activeItem: string\n title: string\n}) => {\n const renderToc = (sections: DocumentSection[]) => {\n return sections.map((item) => (\n <Fragment key={item.id}>\n <li\n data-level={item.level}\n className={cn(\n 'AccordionContent hydrated list-none text-sans-sm',\n item.level > 2 && 'hidden',\n )}\n >\n <Link\n to={`#${item.id}`}\n className={cn(\n 'block border-l py-[4px]',\n activeItem === item.id\n ? 'active text-accent-secondary border-accent-secondary hover:text-accent'\n : 'text-tertiary border-secondary hover:text-secondary',\n )}\n style={{\n paddingLeft: `${0.5 + item.level * 0.5}rem`,\n }}\n >\n <span dangerouslySetInnerHTML={{ __html: item.title }} />\n </Link>\n </li>\n {item.sections && renderToc(item.sections)}\n </Fragment>\n ))\n }\n\n if (toc && toc.length > 0) {\n return (\n <Accordion.Root\n type=\"single\"\n className=\"sticky top-[calc(var(--header-height)-1px)] z-10 -mt-px mb-10 block max-h-[calc(100vh-var(--header-height)+1px)] w-full overflow-y-scroll border-b border-t bg-default border-secondary 1200:hidden print:hidden\"\n collapsible\n >\n <Accordion.Item value={`small-toc-${title}`}>\n <Accordion.Header>\n <Accordion.Trigger className=\"flex h-[--toc-header-height] w-full items-center justify-between px-4 text-sans-md text-default hover:bg-hover 400:px-6 600:px-8 [&>svg]:data-[state=open]:rotate-90\">\n Table of Contents{' '}\n <DirectionRightIcon className=\"transition-all text-tertiary\" />\n </Accordion.Trigger>\n </Accordion.Header>\n\n <Accordion.Content className=\"AccordionContent hydrated w-full border-t px-4 border-secondary 400:px-6 600:px-8\">\n <div className=\"py-4\">{renderToc(toc)}</div>\n </Accordion.Content>\n </Accordion.Item>\n </Accordion.Root>\n )\n }\n\n return null\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport asciidoctor, {\n type Block as AdBlock,\n type Document,\n type Html5Converter,\n type Inline,\n type Registry,\n} from '@asciidoctor/core'\nimport {\n Block,\n LiteralBlock,\n prepareDocument,\n processDocument,\n} from '@oxide/react-asciidoc'\nimport {\n type BundledLanguage,\n type BundledTheme,\n type HighlighterGeneric,\n type LanguageInput,\n bundledLanguages,\n getHighlighter,\n} from 'shiki'\n\nimport oxqlLang from './langs/oxql.tmLanguage.json'\nimport theme from './oxide-dark.json'\n\nlet highlighter: HighlighterGeneric<BundledLanguage, BundledTheme> | null = null\nconst customLanguages = ['oxql']\nconst supportedLanguages = [...Object.keys(bundledLanguages), ...customLanguages]\n\nasync function getOrCreateHighlighter() {\n if (!highlighter) {\n const langs: LanguageInput[] = []\n\n langs.push({\n ...oxqlLang,\n })\n\n highlighter = await getHighlighter({\n themes: [theme],\n langs: langs,\n })\n }\n\n return highlighter\n}\n\nconst highlight = async (block: Block): Promise<Block> => {\n if (block.type === 'listing') {\n const literalBlock = block as LiteralBlock\n\n if (!literalBlock.content) {\n return block\n }\n\n // Replace callouts with placeholders before highlighting\n // without this they are decoded and are no displayed as HTML\n const calloutRegex = /<i class=\"conum\" data-value=\"\\d+\"><\\/i>/g\n const callouts: string[] = []\n const placeholderContent = literalBlock.content.replace(calloutRegex, (match) => {\n callouts.push(match)\n return `__CALLOUT_PLACEHOLDER_${callouts.length - 1}__`\n })\n\n // If no language specified, we still want to support callouts\n if (!literalBlock.language) {\n return {\n ...block,\n content: placeholderContent.replace(\n /__CALLOUT_PLACEHOLDER_(\\d+)__/g,\n (_, index) => callouts[parseInt(index)],\n ),\n }\n }\n\n let lang = literalBlock.language\n const h = await getOrCreateHighlighter()\n const loadedLanguages = h.getLoadedLanguages()\n\n if (!supportedLanguages.includes(lang)) {\n lang = 'text'\n }\n\n if (!loadedLanguages.includes(lang)) {\n await h.loadLanguage(lang as BundledLanguage)\n }\n\n const highlightedContent = h.codeToHtml(placeholderContent, {\n lang,\n theme: theme,\n structure: 'inline',\n })\n\n // Restore callouts in the highlighted content\n const restoredContent = highlightedContent.replace(\n /__CALLOUT_PLACEHOLDER_(\\d+)__/g,\n (_, index) => callouts[parseInt(index)],\n )\n\n return {\n ...block,\n content: restoredContent,\n }\n }\n return block\n}\n\nconst attrs = {\n sectlinks: 'true',\n stem: 'latexmath',\n stylesheet: false,\n}\n\nconst loadAsciidoctor = ({\n extensions = [],\n}: {\n extensions?: ((this: Registry) => void)[]\n}) => {\n const ad = asciidoctor()\n\n /*\n For styling inline elements\n we cannot do this through the AsciiDoc tree\n */\n class InlineConverter {\n baseConverter: Html5Converter\n\n constructor() {\n this.baseConverter = new ad.Html5Converter()\n }\n\n convert(node: AdBlock, transform: string) {\n switch (node.getNodeName()) {\n case 'inline_callout':\n return convertInlineCallout(node as unknown as Inline) // We know this is always inline\n default:\n break\n }\n\n return this.baseConverter.convert(node, transform)\n }\n }\n\n extensions.forEach((extension) => ad.Extensions.register(extension))\n ad.ConverterFactory.register(new InlineConverter(), ['html5'])\n\n return ad\n}\n\n// These are a little nicer to style than the default\nfunction convertInlineCallout(node: Inline): string {\n return `<i class=\"conum\" data-value=\"${node.getText()}\"></i>`\n}\n\nconst handleDocument = async (document: Document) => {\n const doc = prepareDocument(document)\n return await processDocument(doc, highlight)\n}\n\nexport { handleDocument, highlight, loadAsciidoctor, attrs }\n","{\n \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n \"name\": \"oxql\",\n \"repository\": {\n \"keywords\": {\n \"patterns\": [\n {\n \"name\": \"keyword.control.oxql\",\n \"match\": \"\\\\b(if|while|for|return)\\\\b\"\n }\n ]\n },\n \"strings\": {\n \"name\": \"string.quoted.double.oxql\",\n \"begin\": \"\\\"\",\n \"end\": \"\\\"\",\n \"patterns\": [\n {\n \"name\": \"constant.character.escape.oxql\",\n \"match\": \"\\\\\\\\.\"\n }\n ]\n }\n },\n \"scopeName\": \"source.oxql\",\n \"patterns\": [\n {\n \"name\": \"keyword.control.oxql\",\n \"match\": \"\\\\b(get|join|align|filter|group_by)\\\\b\"\n },\n {\n \"name\": \"string.quoted.double.oxql\",\n \"begin\": \"\\\"\",\n \"end\": \"\\\"\",\n \"patterns\": [\n {\n \"name\": \"constant.character.escape.oxql\",\n \"match\": \"\\\\\\\\.\"\n }\n ]\n },\n {\n \"name\": \"constant.numeric.oxql\",\n \"match\": \"\\\\b\\\\d+[smhdw]\\\\b\"\n },\n {\n \"name\": \"constant.numeric.datetime.oxql\",\n \"match\": \"@\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\"\n },\n {\n \"name\": \"constant.numeric.function.oxql\",\n \"match\": \"@now\\\\(\\\\)\"\n },\n {\n \"name\": \"constant.numeric.oxql\",\n \"match\": \"\\\\b\\\\d+\\\\b\"\n },\n {\n \"name\": \"comment.block.oxql\",\n \"begin\": \"/\\\\*\",\n \"end\": \"\\\\*/\"\n },\n {\n \"name\": \"comment.line.double-slash.oxql\",\n \"match\": \"//.*$\"\n },\n {\n \"name\": \"keyword.operator.oxql\",\n \"match\": \"\\\\|\"\n }\n ]\n}\n","{\n \"name\": \"Oxide Dark\",\n \"colors\": {\n \"editor.background\": \"#080F11\",\n \"editor.foreground\": \"#E7E7E8\"\n },\n \"tokenColors\": [\n {\n \"scope\": [\n \"text\",\n \"source\",\n \"variable.other.readwrite\",\n \"punctuation.definition.variable\"\n ],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"punctuation\",\n \"settings\": {\n \"foreground\": \"#A1A4A5\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"comment\", \"punctuation.definition.comment\"],\n \"settings\": {\n \"foreground\": \"#A1A4A5\"\n }\n },\n {\n \"scope\": [\"string\", \"punctuation.definition.string\"],\n \"settings\": {\n \"foreground\": \"#68D9A7\"\n }\n },\n {\n \"scope\": \"constant.character.escape\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\n \"constant.numeric\",\n \"variable.other.constant\",\n \"entity.name.constant\",\n \"constant.language.boolean\",\n \"constant.language.false\",\n \"constant.language.true\",\n \"keyword.other.unit.user-defined\",\n \"keyword.other.unit.suffix.floating-point\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"keyword\",\n \"keyword.operator.word\",\n \"keyword.operator.new\",\n \"variable.language.super\",\n \"support.type.primitive\",\n \"storage.type\",\n \"storage.modifier\",\n \"punctuation.definition.keyword\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"entity.name.tag.documentation\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"keyword.operator\",\n \"punctuation.accessor\",\n \"punctuation.definition.generic\",\n \"meta.function.closure punctuation.section.parameters\",\n \"punctuation.definition.tag\",\n \"punctuation.separator.key-value\"\n ],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"entity.name.function\",\n \"meta.function-call.method\",\n \"support.function\",\n \"support.function.misc\",\n \"variable.function\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"entity.name.class\",\n \"entity.other.inherited-class\",\n \"support.class\",\n \"meta.function-call.constructor\",\n \"entity.name.struct\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.enum\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"meta.enum variable.other.readwrite\", \"variable.other.enummember\"],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"meta.property.object\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\"meta.type\", \"meta.type-alias\", \"support.type\", \"entity.name.type\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"meta.annotation variable.function\",\n \"meta.annotation variable.annotation.function\",\n \"meta.annotation punctuation.definition.annotation\",\n \"meta.decorator\",\n \"punctuation.decorator\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"variable.parameter\", \"meta.function.parameters\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": [\"constant.language\", \"support.function.builtin\"],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"entity.other.attribute-name.documentation\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"keyword.control.directive\", \"punctuation.definition.directive\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"punctuation.definition.typeparameters\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"entity.name.namespace\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"support.type.property-name.css\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"variable.language.this\",\n \"variable.language.this punctuation.definition.variable\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"variable.object.property\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"string.template variable\", \"string variable\"],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"keyword.operator.new\",\n \"settings\": {\n \"fontStyle\": \"bold\"\n }\n },\n {\n \"scope\": \"storage.modifier.specifier.extern.cpp\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"entity.name.scope-resolution.template.call.cpp\",\n \"entity.name.scope-resolution.parameter.cpp\",\n \"entity.name.scope-resolution.cpp\",\n \"entity.name.scope-resolution.function.definition.cpp\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"storage.type.class.doxygen\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"storage.modifier.reference.cpp\"],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"meta.interpolation.cs\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"comment.block.documentation.cs\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\n \"source.css entity.other.attribute-name.class.css\",\n \"entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"punctuation.separator.operator.css\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"source.css entity.other.attribute-name.pseudo-class\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"source.css constant.other.unicode-range\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"source.css variable.parameter.url\",\n \"settings\": {\n \"foreground\": \"#88DCB7\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.type.vendored.property-name\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"source.css meta.property-value variable\",\n \"source.css meta.property-value variable.other.less\",\n \"source.css meta.property-value variable.other.less punctuation.definition.variable.less\",\n \"meta.definition.variable.scss\"\n ],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": [\n \"source.css meta.property-list variable\",\n \"meta.property-list variable.other.less\",\n \"meta.property-list variable.other.less punctuation.definition.variable.less\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"keyword.other.unit.percentage.css\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"source.css meta.attribute-selector\",\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": [\n \"keyword.other.definition.ini\",\n \"punctuation.support.type.property-name.json\",\n \"support.type.property-name.json\",\n \"punctuation.support.type.property-name.toml\",\n \"support.type.property-name.toml\",\n \"entity.name.tag.yaml\",\n \"punctuation.support.type.property-name.yaml\",\n \"support.type.property-name.yaml\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"constant.language.json\", \"constant.language.yaml\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"entity.name.type.anchor.yaml\", \"variable.other.alias.yaml\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.type.property-name.table\", \"entity.name.section.group-title.ini\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.time.datetime.offset.toml\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\"punctuation.definition.anchor.yaml\", \"punctuation.definition.alias.yaml\"],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"entity.other.document.begin.yaml\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"markup.changed.diff\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"meta.diff.header.from-file\",\n \"meta.diff.header.to-file\",\n \"punctuation.definition.from-file.diff\",\n \"punctuation.definition.to-file.diff\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"markup.inserted.diff\",\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"markup.deleted.diff\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"variable.other.env\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\"string.quoted variable.other.env\"],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"support.function.builtin.gdscript\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"constant.language.gdscript\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"comment meta.annotation.go\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"comment meta.annotation.parameters.go\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.language.go\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"variable.graphql\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"string.unquoted.alias.graphql\",\n \"settings\": {\n \"foreground\": \"#F2CDCD\"\n }\n },\n {\n \"scope\": \"constant.character.enum.graphql\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql\",\n \"settings\": {\n \"foreground\": \"#F2CDCD\"\n }\n },\n {\n \"scope\": [\n \"keyword.other.doctype\",\n \"meta.tag.sgml.doctype punctuation.definition.tag\",\n \"meta.tag.metadata.doctype entity.name.tag\",\n \"meta.tag.metadata.doctype punctuation.definition.tag\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\"entity.name.tag\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"text.html constant.character.entity\",\n \"text.html constant.character.entity punctuation\",\n \"constant.character.entity.xml\",\n \"constant.character.entity.xml punctuation\",\n \"constant.character.entity.js.jsx\",\n \"constant.charactger.entity.js.jsx punctuation\",\n \"constant.character.entity.tsx\",\n \"constant.character.entity.tsx punctuation\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"entity.other.attribute-name\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"support.class.component\",\n \"support.class.component.jsx\",\n \"support.class.component.tsx\",\n \"support.class.component.vue\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"punctuation.definition.annotation\", \"storage.type.annotation\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.enum.java\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"storage.modifier.import.java\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"comment.block.javadoc.java keyword.other.documentation.javadoc.java\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"meta.export variable.other.readwrite.js\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": [\n \"variable.other.constant.js\",\n \"variable.other.constant.ts\",\n \"variable.other.property.js\",\n \"variable.other.property.ts\"\n ],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"variable.other.jsdoc\", \"comment.block.documentation variable.other\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"storage.type.class.jsdoc\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"support.type.object.console.js\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"support.constant.node\", \"support.type.object.module.js\"],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"storage.modifier.implements\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"constant.language.null.js\",\n \"constant.language.null.ts\",\n \"constant.language.undefined.js\",\n \"constant.language.undefined.ts\",\n \"support.type.builtin.ts\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"variable.parameter.generic\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"keyword.declaration.function.arrow.js\", \"storage.type.function.arrow.ts\"],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"punctuation.decorator.ts\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"keyword.operator.expression.in.js\",\n \"keyword.operator.expression.in.ts\",\n \"keyword.operator.expression.infer.ts\",\n \"keyword.operator.expression.instanceof.js\",\n \"keyword.operator.expression.instanceof.ts\",\n \"keyword.operator.expression.is\",\n \"keyword.operator.expression.keyof.ts\",\n \"keyword.operator.expression.of.js\",\n \"keyword.operator.expression.of.ts\",\n \"keyword.operator.expression.typeof.ts\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"support.function.macro.julia\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"constant.language.julia\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.symbol.julia\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"text.tex keyword.control.preamble\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"text.tex support.function.be\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"constant.other.general.math.tex\",\n \"settings\": {\n \"foreground\": \"#F2CDCD\"\n }\n },\n {\n \"scope\": \"comment.line.double-dash.documentation.lua storage.type.annotation.lua\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"comment.line.double-dash.documentation.lua entity.name.variable.lua\",\n \"comment.line.double-dash.documentation.lua variable.lua\"\n ],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\n \"heading.1.markdown punctuation.definition.heading.markdown\",\n \"heading.1.markdown\",\n \"heading.1.quarto punctuation.definition.heading.quarto\",\n \"heading.1.quarto\",\n \"markup.heading.atx.1.mdx\",\n \"markup.heading.atx.1.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.setext.1.markdown\",\n \"markup.heading.heading-0.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\n \"heading.2.markdown punctuation.definition.heading.markdown\",\n \"heading.2.markdown\",\n \"heading.2.quarto punctuation.definition.heading.quarto\",\n \"heading.2.quarto\",\n \"markup.heading.atx.2.mdx\",\n \"markup.heading.atx.2.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.setext.2.markdown\",\n \"markup.heading.heading-1.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"heading.3.markdown punctuation.definition.heading.markdown\",\n \"heading.3.markdown\",\n \"heading.3.quarto punctuation.definition.heading.quarto\",\n \"heading.3.quarto\",\n \"markup.heading.atx.3.mdx\",\n \"markup.heading.atx.3.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-2.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"heading.4.markdown punctuation.definition.heading.markdown\",\n \"heading.4.markdown\",\n \"heading.4.quarto punctuation.definition.heading.quarto\",\n \"heading.4.quarto\",\n \"markup.heading.atx.4.mdx\",\n \"markup.heading.atx.4.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-3.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": [\n \"heading.5.markdown punctuation.definition.heading.markdown\",\n \"heading.5.markdown\",\n \"heading.5.quarto punctuation.definition.heading.quarto\",\n \"heading.5.quarto\",\n \"markup.heading.atx.5.mdx\",\n \"markup.heading.atx.5.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-4.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"heading.6.markdown punctuation.definition.heading.markdown\",\n \"heading.6.markdown\",\n \"heading.6.quarto punctuation.definition.heading.quarto\",\n \"heading.6.quarto\",\n \"markup.heading.atx.6.mdx\",\n \"markup.heading.atx.6.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-5.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"markup.bold\",\n \"settings\": {\n \"foreground\": \"#F7869B\",\n \"fontStyle\": \"bold\"\n }\n },\n {\n \"scope\": \"markup.italic\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"markup.strikethrough\",\n \"settings\": {\n \"foreground\": \"#A6ADC8\",\n \"fontStyle\": \"strikethrough\"\n }\n },\n {\n \"scope\": [\"punctuation.definition.link\", \"markup.underline.link\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"text.html.markdown punctuation.definition.link.title\",\n \"text.html.quarto punctuation.definition.link.title\",\n \"string.other.link.title.markdown\",\n \"string.other.link.title.quarto\",\n \"markup.link\",\n \"punctuation.definition.constant.markdown\",\n \"punctuation.definition.constant.quarto\",\n \"constant.other.reference.link.markdown\",\n \"constant.other.reference.link.quarto\",\n \"markup.substitution.attribute-reference\"\n ],\n \"settings\": {\n \"foreground\": \"#B4BEFE\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.raw.markdown\",\n \"punctuation.definition.raw.quarto\",\n \"markup.inline.raw.string.markdown\",\n \"markup.inline.raw.string.quarto\",\n \"markup.raw.block.markdown\",\n \"markup.raw.block.quarto\"\n ],\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"fenced_code.block.language\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"markup.fenced_code.block punctuation.definition\",\n \"markup.raw support.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#A1A4A5\"\n }\n },\n {\n \"scope\": [\"markup.quote\", \"punctuation.definition.quote.begin\"],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"meta.separator.markdown\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.list.begin.markdown\",\n \"punctuation.definition.list.begin.quarto\",\n \"markup.list.bullet\"\n ],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"markup.heading.quarto\",\n \"settings\": {\n \"fontStyle\": \"bold\"\n }\n },\n {\n \"scope\": [\n \"entity.other.attribute-name.multipart.nix\",\n \"entity.other.attribute-name.single.nix\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"variable.parameter.name.nix\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"meta.embedded variable.parameter.name.nix\",\n \"settings\": {\n \"foreground\": \"#B4BEFE\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"string.unquoted.path.nix\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.attribute.builtin\", \"meta.attribute.php\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"meta.function.parameters.php punctuation.definition.variable.php\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"constant.language.php\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"text.html.php support.function\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"keyword.other.phpdoc.php\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.variable.magic.python\", \"meta.function-call.arguments.python\"],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"support.function.magic.python\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"variable.parameter.function.language.special.self.python\",\n \"variable.language.special.self.python\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"keyword.control.flow.python\", \"keyword.operator.logical.python\"],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"storage.type.function.python\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"support.token.decorator.python\",\n \"meta.function.decorator.identifier.python\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\"meta.function-call.python\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"entity.name.function.decorator.python\",\n \"punctuation.definition.decorator.python\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.character.format.placeholder.other.python\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\"support.type.exception.python\", \"support.function.builtin.python\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"support.type.python\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.language.python\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\"meta.indexed-name.python\", \"meta.item-access.python\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"storage.type.string.python\",\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"meta.function.parameters.python\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"string.regexp punctuation.definition.string.begin\",\n \"string.regexp punctuation.definition.string.end\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"keyword.control.anchor.regexp\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"string.regexp.ts\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.group.regexp\",\n \"keyword.other.back-reference.regexp\"\n ],\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"punctuation.definition.character-class.regexp\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.character-class.regexp\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"constant.other.character-class.range.regexp\",\n \"settings\": {\n \"foreground\": \"#F5E0DC\"\n }\n },\n {\n \"scope\": \"keyword.operator.quantifier.regexp\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"constant.character.numeric.regexp\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.group.no-capture.regexp\",\n \"meta.assertion.look-ahead.regexp\",\n \"meta.assertion.negative-look-ahead.regexp\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"meta.annotation.rust\",\n \"meta.annotation.rust punctuation\",\n \"meta.attribute.rust\",\n \"punctuation.definition.attribute.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"meta.attribute.rust string.quoted.double.rust\",\n \"meta.attribute.rust string.quoted.single.char.rust\"\n ],\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"entity.name.function.macro.rules.rust\",\n \"storage.type.module.rust\",\n \"storage.modifier.rust\",\n \"storage.type.struct.rust\",\n \"storage.type.enum.rust\",\n \"storage.type.trait.rust\",\n \"storage.type.union.rust\",\n \"storage.type.impl.rust\",\n \"storage.type.rust\",\n \"storage.type.function.rust\",\n \"storage.type.type.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"entity.name.type.numeric.rust\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"meta.generic.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.impl.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.module.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.trait.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"storage.type.source.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.union.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"meta.enum.rust storage.type.source.rust\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"support.macro.rust\",\n \"meta.macro.rust support.function.rust\",\n \"entity.name.function.macro.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\"storage.modifier.lifetime.rust\", \"entity.name.type.lifetime\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"string.quoted.double.rust constant.other.placeholder.rust\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"meta.function.return-type.rust meta.generic.rust storage.type.rust\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"meta.function.call.rust\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"punctuation.brackets.angle.rust\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"constant.other.caps.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"meta.function.definition.rust variable.other.rust\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"meta.function.call.rust variable.other.rust\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"variable.language.self.rust\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\n \"variable.other.metavariable.name.rust\",\n \"meta.macro.metavariable.rust keyword.operator.macro.dollar.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\n \"comment.line.shebang\",\n \"comment.line.shebang punctuation.definition.comment\",\n \"comment.line.shebang\",\n \"punctuation.definition.comment.shebang.shell\",\n \"meta.shebang.shell\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"comment.line.shebang constant.language\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\n \"meta.function-call.arguments.shell punctuation.section.interpolation\",\n \"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\n \"meta.function-call.arguments.shell punctuation.section.interpolation\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"meta.string meta.interpolation.parameter.shell variable.other.readwrite\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"source.shell punctuation.section.interpolation\",\n \"punctuation.definition.evaluation.backticks.shell\"\n ],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"entity.name.tag.heredoc.shell\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"string.quoted.double.shell variable.other.normal.shell\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"token.info-token\",\n \"settings\": {\n \"foreground\": \"#8BA1FF\"\n }\n },\n {\n \"scope\": \"token.warn-token\",\n \"settings\": {\n \"foreground\": \"#F5B944\"\n }\n },\n {\n \"scope\": \"token.error-token\",\n \"settings\": {\n \"foreground\": \"#FB6E88\"\n }\n },\n {\n \"scope\": \"token.debug-token\",\n \"settings\": {\n \"foreground\": \"#BE95EB\"\n }\n }\n ]\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\n\nexport type BadgeColor =\n | 'default'\n | 'destructive'\n | 'notice'\n | 'neutral'\n | 'purple'\n | 'blue'\nexport type BadgeVariant = 'default' | 'solid'\n\nexport interface BadgeProps {\n color?: BadgeColor\n className?: string\n children: React.ReactNode\n variant?: BadgeVariant\n}\n\nexport const badgeColors: Record<BadgeVariant, Record<BadgeColor, string>> = {\n default: {\n default: `ring-1 ring-inset bg-accent-secondary text-accent ring-[rgba(var(--base-green-800-rgb),0.15)]`,\n destructive: `ring-1 ring-inset bg-destructive-secondary text-destructive ring-[rgba(var(--base-red-800-rgb),0.15)]`,\n notice: `ring-1 ring-inset bg-notice-secondary text-notice ring-[rgba(var(--base-yellow-800-rgb),0.15)]`,\n neutral: `ring-1 ring-inset bg-secondary text-secondary ring-[rgba(var(--base-neutral-700-rgb),0.15)]`,\n purple: `ring-1 ring-inset bg-[var(--base-purple-200)] text-[var(--base-purple-700)] ring-[rgba(var(--base-purple-800-rgb),0.15)]`,\n blue: `ring-1 ring-inset bg-info-secondary text-info ring-[rgba(var(--base-blue-800-rgb),0.15)]`,\n },\n solid: {\n default: 'bg-accent text-inverse',\n destructive: 'bg-destructive text-inverse',\n notice: 'bg-notice text-inverse',\n neutral: 'bg-inverse-tertiary text-inverse',\n purple: 'bg-[var(--base-purple-700)] text-inverse',\n blue: 'bg-info text-inverse',\n },\n}\n\nexport const Badge = ({\n className,\n children,\n color = 'default',\n variant = 'default',\n}: BadgeProps) => {\n return (\n <span\n className={cn(\n 'ox-badge',\n `variant-${variant}`,\n 'inline-flex h-4 items-center whitespace-nowrap rounded-sm px-[3px] py-[1px] uppercase text-mono-sm',\n badgeColors[variant][color],\n className,\n )}\n >\n <span>{children}</span>\n </span>\n )\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\nimport type { MouseEventHandler } from 'react'\nimport { forwardRef } from 'react'\n\nimport { Spinner } from '../'\n\nexport const buttonSizes = ['sm', 'icon', 'base'] as const\nexport const variants = ['primary', 'secondary', 'ghost', 'danger'] as const\n\nexport type ButtonSize = typeof buttonSizes[number]\nexport type Variant = typeof variants[number]\n\nconst sizeStyle: Record<ButtonSize, string> = {\n sm: 'h-8 px-3 text-mono-sm svg:w-4',\n // meant for buttons that only contain a single icon\n icon: 'h-8 w-8 text-mono-sm svg:w-4',\n base: 'h-10 px-4 text-mono-sm svg:w-5',\n}\n\ntype ButtonStyleProps = {\n size?: ButtonSize\n variant?: Variant\n}\n\nexport const buttonStyle = ({\n size = 'base',\n variant = 'primary',\n}: ButtonStyleProps = {}) => {\n return cn(\n 'ox-button inline-flex items-center justify-center rounded align-top elevation-1 disabled:cursor-not-allowed',\n `btn-${variant}`,\n sizeStyle[size],\n variant === 'danger'\n ? 'focus:outline-destructive-secondary'\n : 'focus:outline-accent-secondary',\n )\n}\n\n/**\n * When the `disabled` prop is passed to the button we put it in a visually disabled state.\n * In that case we want to override the default mouse down and click behavior to simulate a\n * disabled state.\n */\nconst noop: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.stopPropagation()\n e.preventDefault()\n}\n\nexport interface ButtonProps\n extends React.ComponentPropsWithRef<'button'>,\n ButtonStyleProps {\n innerClassName?: string\n loading?: boolean\n}\n\n// Use `forwardRef` so the ref points to the DOM element (not the React Component)\n// so it can be focused using the DOM API (eg. this.buttonRef.current.focus())\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n type = 'button',\n children,\n size,\n variant,\n className,\n loading,\n innerClassName,\n disabled,\n onClick,\n // needs to be a spread because we sometimes get passed arbitrary <button>\n // props by the parent\n ...rest\n },\n ref,\n ) => {\n const isDisabled = disabled || loading\n return (\n <button\n className={cn(buttonStyle({ size, variant }), className, {\n 'visually-disabled': isDisabled,\n })}\n ref={ref}\n type={type}\n onMouseDown={isDisabled ? noop : undefined}\n onClick={isDisabled ? noop : onClick}\n aria-disabled={isDisabled}\n {...rest}\n >\n {loading && <Spinner className=\"absolute\" variant={variant} />}\n <span className={cn('flex items-center', innerClassName, { invisible: loading })}>\n {children}\n </span>\n </button>\n )\n },\n)\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\nimport type { ReactNode } from 'react'\nimport { useEffect, useRef, useState } from 'react'\n\nexport const spinnerSizes = ['base', 'lg'] as const\nexport const spinnerVariants = ['primary', 'secondary', 'ghost', 'danger'] as const\nexport type SpinnerSize = typeof spinnerSizes[number]\nexport type SpinnerVariant = typeof spinnerVariants[number]\n\ninterface SpinnerProps {\n className?: string\n size?: SpinnerSize\n variant?: SpinnerVariant\n}\n\nexport const Spinner = ({\n className,\n size = 'base',\n variant = 'primary',\n}: SpinnerProps) => {\n const frameSize = size === 'lg' ? 36 : 12\n const center = size === 'lg' ? 18 : 6\n const radius = size === 'lg' ? 16 : 5\n const strokeWidth = size === 'lg' ? 3 : 2\n return (\n <svg\n width={frameSize}\n height={frameSize}\n viewBox={`0 0 ${frameSize + ' ' + frameSize}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-labelledby=\"Spinner\"\n className={cn('spinner', `spinner-${variant}`, `spinner-${size}`, className)}\n >\n <circle\n fill=\"none\"\n className=\"bg\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n cx={center}\n cy={center}\n r={radius}\n strokeOpacity={0.2}\n />\n <circle\n className=\"path\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n cx={center}\n cy={center}\n r={radius}\n />\n </svg>\n )\n}\n\ntype Props = {\n isLoading: boolean\n children?: ReactNode\n minTime?: number\n}\n\n/** Loading spinner that shows for a minimum of `minTime` */\nexport const SpinnerLoader = ({ isLoading, children = null, minTime = 500 }: Props) => {\n const [isVisible, setIsVisible] = useState(isLoading)\n const hideTimeout = useRef<NodeJS.Timeout | null>(null)\n const loadingStartTime = useRef<number>(0)\n\n useEffect(() => {\n if (isLoading) {\n setIsVisible(true)\n loadingStartTime.current = Date.now()\n } else {\n // Clear the hide timer if it's still running.\n if (hideTimeout.current) clearTimeout(hideTimeout.current)\n\n // turn the spinner off, making sure it showed for at least `minTime`\n const elapsedTime = Date.now() - loadingStartTime.current\n const remainingTime = Math.max(0, minTime - elapsedTime)\n if (remainingTime === 0) {\n setIsVisible(false) // might as well not use a timeout\n } else {\n hideTimeout.current = setTimeout(() => setIsVisible(false), remainingTime)\n }\n }\n\n return () => {\n if (hideTimeout.current) clearTimeout(hideTimeout.current)\n }\n }, [isLoading, minTime])\n\n return isVisible ? <Spinner /> : <>{children}</>\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport type {\n TabsContentProps,\n TabsListProps,\n TabsProps,\n TabsTriggerProps,\n} from '@radix-ui/react-tabs'\nimport { Content, List, Root, Trigger } from '@radix-ui/react-tabs'\nimport cn from 'classnames'\nimport type { SetRequired } from 'type-fest'\n\n// They don't require a default value, but without it there is no tab selected\n// by default.\nexport type TabsRootProps = SetRequired<TabsProps, 'defaultValue'>\n\nexport const Tabs = {\n Root: ({ className, ...props }: TabsRootProps) => (\n <Root {...props} className={cn('ox-tabs', className)} />\n ),\n Trigger: ({ children, className, ...props }: TabsTriggerProps) => (\n <Trigger {...props} className={cn('ox-tab', className)}>\n {/* this div needs to be here for the background on `ox-tab:hover > *` */}\n <div>{children}</div>\n </Trigger>\n ),\n List: ({ className, ...props }: TabsListProps) => (\n <List {...props} className={cn('ox-tabs-list', className)} />\n ),\n Content: ({ className, ...props }: TabsContentProps) => (\n <Content {...props} className={cn('ox-tabs-panel', className)} />\n ),\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { Checkmark12Icon } from '@/icons/react'\nimport cn from 'classnames'\n\nimport { classed } from '../../utils'\n\nconst Check = () => (\n <Checkmark12Icon className=\"pointer-events-none absolute left-0.5 top-0.5 h-3 w-3 fill-current text-accent\" />\n)\n\nconst Indeterminate = classed.div`absolute w-2 h-0.5 left-1 top-[7px] bg-accent pointer-events-none`\n\nconst inputStyle = `\n appearance-none border border-default bg-default h-4 w-4 rounded-sm absolute left-0 outline-none\n disabled:cursor-not-allowed\n hover:border-hover hover:cursor-pointer\n checked:bg-accent-secondary checked:border-accent-secondary checked:hover:border-accent\n indeterminate:bg-accent-secondary indeterminate:border-accent hover:indeterminate:bg-accent-secondary-hover\n`\n\nexport type CheckboxProps = {\n indeterminate?: boolean\n children?: React.ReactNode\n className?: string\n} & Omit<React.ComponentProps<'input'>, 'type'>\n\n// ref function is from: https://davidwalsh.name/react-indeterminate. this makes\n// the native input work with indeterminate. you can't pass indeterminate as a\n// prop; it has to be set directly on the element through a ref. more elaborate\n// examples using forwardRef to allow passing ref from outside:\n// https://github.com/tannerlinsley/react-table/discussions/1989\n\n/** Checkbox component that handles label, styling, and indeterminate state */\nexport const Checkbox = ({\n indeterminate,\n children,\n className,\n ...inputProps\n}: CheckboxProps) => (\n <label className=\"inline-flex items-center\">\n <span className=\"relative h-4 w-4\">\n <input\n className={cn(inputStyle, className)}\n type=\"checkbox\"\n ref={(el) => el && (el.indeterminate = !!indeterminate)}\n {...inputProps}\n />\n {inputProps.checked && !indeterminate && <Check />}\n {indeterminate && <Indeterminate />}\n </span>\n\n {children && <span className=\"ml-2.5 text-sans-md text-secondary\">{children}</span>}\n </label>\n)\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SelectArrows6Icon } from '@/icons/react'\nimport { FloatingPortal, flip, offset, size, useFloating } from '@floating-ui/react'\nimport { Listbox as Select } from '@headlessui/react'\nimport cn from 'classnames'\nimport type { ReactNode } from 'react'\n\nimport { SpinnerLoader } from '~/src'\n\nexport type ListboxItem<Value extends string = string> = {\n value: Value\n} & (\n | { label: string; labelString?: never }\n // labelString is required when `label` is a `ReactElement` because we\n // need need a one-line string to display in the button when the item is\n // selected.\n | { label: ReactNode; labelString: string }\n)\n\nexport interface ListboxProps<Value extends string = string> {\n // null is allowed as a default empty value, but onChange will never be called with null\n selected: Value | null\n onChange: (value: Value) => void\n items: ListboxItem<Value>[]\n placeholder?: string\n className?: string\n disabled?: boolean\n hasError?: boolean\n name?: string\n isLoading?: boolean\n}\n\nexport const Listbox = <Value extends string = string>({\n name,\n selected,\n items,\n placeholder = 'Select an option',\n className,\n onChange,\n hasError = false,\n disabled,\n isLoading = false,\n ...props\n}: ListboxProps<Value>) => {\n const { refs, floatingStyles } = useFloating({\n middleware: [\n offset(12),\n flip(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n })\n },\n }),\n ],\n })\n\n const selectedItem = selected && items.find((i) => i.value === selected)\n const noItems = !isLoading && items.length === 0\n const isDisabled = disabled || noItems\n\n return (\n <div className={cn('relative', className)}>\n <Select\n value={selected}\n // you shouldn't ever be able to select null, but we check here anyway\n // to make TS happy so the calling code doesn't have to. note `val !==\n // null` because '' is falsy but potentially a valid value\n onChange={(val) => val !== null && onChange(val)}\n disabled={isDisabled || isLoading}\n >\n {({ open }) => (\n <>\n <Select.Button\n name={name}\n ref={refs.setReference}\n className={cn(\n `flex h-10 w-full items-center justify-between\n rounded border text-sans-md`,\n hasError\n ? 'focus-error border-error-secondary hover:border-error'\n : 'border-default hover:border-hover',\n open && 'ring-2 ring-accent-secondary',\n open && hasError && 'ring-error-secondary',\n isDisabled\n ? 'cursor-not-allowed text-disabled bg-disabled !border-default'\n : 'bg-default',\n isDisabled && hasError && '!border-error-secondary',\n )}\n {...props}\n >\n <div className=\"w-full px-3 text-left\">\n {selectedItem ? (\n // labelString is one line, which is what we need when label is a ReactNode\n selectedItem.labelString || selectedItem.label\n ) : (\n <span className=\"text-quaternary\">\n {noItems ? 'No items' : placeholder}\n </span>\n )}\n </div>\n {!isDisabled && <SpinnerLoader isLoading={isLoading} />}\n <div\n className=\"ml-3 flex h-[calc(100%-12px)] items-center border-l px-3 border-secondary\"\n aria-hidden\n >\n <SelectArrows6Icon className=\"h-[14px] w-2 text-tertiary\" />\n </div>\n </Select.Button>\n <FloatingPortal>\n <Select.Options\n ref={refs.setFloating}\n style={floatingStyles}\n className=\"ox-menu pointer-events-auto z-50 overflow-y-auto !outline-none\"\n >\n {items.map((item) => (\n <Select.Option\n key={item.value}\n value={item.value}\n className=\"relative border-b border-secondary last:border-0\"\n >\n {({ active, selected }) => (\n <div\n className={cn(\n 'ox-menu-item text-secondary',\n selected && 'is-selected',\n active && 'is-highlighted',\n )}\n >\n {item.label}\n </div>\n )}\n </Select.Option>\n ))}\n </Select.Options>\n </FloatingPortal>\n </>\n )}\n </Select>\n </div>\n )\n}\n"],"mappings":"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","names":["asciidoctor","Content","text","node","attrs","Title","cn","position","length","parse","offset","length","character","characters","size","parse","node","parse2","jsx","jsxs","Mermaid","id","node","jsx","jsxs","node","document","Title","cn","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","Content","parse","cn","createElement","Fragment","jsx","jsxs","node","jsx","node","cn","Fragment","useState","jsx","jsxs","observer","node","maxIndex","ad","InlineConverter","node","document","jsx","document","Content","node","id","attrs","convertInlineCallout","asciidoctor","cn","jsx","cn","jsx","jsxs","size","cn","cn","useEffect","useRef","useState","Fragment","jsx","jsxs","size","Content","Root","Trigger","cn","jsx","cn","jsx","jsxs","cn","cn","Fragment","jsx","jsxs","cn","selected"]}
|
|
1
|
+
{"version":3,"sources":["../src/asciidoc/index.tsx","../src/asciidoc/Admonition.tsx","../src/utils.ts","../../icons/react/Link16Icon.tsx","../../icons/react/Checkmark12Icon.tsx","../../icons/react/DirectionRightIcon.tsx","../../icons/react/SelectArrows6Icon.tsx","../src/asciidoc/Section.tsx","../src/asciidoc/Table.tsx","../src/asciidoc/TableOfContents.tsx","../src/asciidoc/util.ts","../src/asciidoc/langs/oxql.tmLanguage.json","../src/asciidoc/oxide-dark.json","../src/ui/badge/Badge.tsx","../src/ui/button/Button.tsx","../src/ui/spinner/Spinner.tsx","../src/ui/tabs/Tabs.tsx","../src/ui/checkbox/Checkbox.tsx","../src/ui/listbox/Listbox.tsx"],"sourcesContent":["/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport asciidoctor, { Block, Html5Converter, Inline } from '@asciidoctor/core'\nimport { Content, type DocumentBlock } from '@oxide/react-asciidoc'\n\nimport Admonition from './Admonition'\nimport Section from './Section'\nimport Table from './Table'\nimport {\n DesktopOutline,\n SmallScreenOutline,\n useActiveSectionTracking,\n useIntersectionObserver,\n} from './TableOfContents'\nimport { attrs, handleDocument, highlight, loadAsciidoctor } from './util'\n\nconst MinimalDocument = ({ document }: { document: DocumentBlock }) => (\n <div id=\"content\" className=\"asciidoc-body w-full\">\n <Content blocks={document.blocks} />\n </div>\n)\n\nconst AsciiDocBlocks = {\n Admonition,\n Table,\n Section,\n MinimalDocument,\n}\n\n/**\n * Adds word break opportunities (<wbr/>) after slashes in text, except within HTML tags.\n * This function is used to improve line breaks for long paths or URLs in rendered content.\n * *\n * renderWithBreaks('/path/to/long/file.txt')\n * '/<wbr/>path/<wbr/>to/<wbr/>long/<wbr/>file.txt'\n */\nexport const renderWithBreaks = (text: string): string => {\n return text\n .split(/(<[^>]*>)/g)\n .map((segment) => {\n // if the segment is an HTML tag, leave it unchanged\n if (segment.startsWith('<') && segment.endsWith('>')) {\n return segment\n }\n // replace slashes that are not surrounded by spaces\n return segment.replace(/(?:^|(?<=\\S))\\/(?=\\S)/g, '/<wbr/>')\n })\n .join('')\n}\n\n// prettier-ignore\nconst QUOTE_TAGS: {[key: string]: [string, string, boolean?]} = {\n \"monospaced\": ['<code>', '</code>', true],\n \"emphasis\": ['<em>', '</em>', true],\n \"strong\": ['<strong>', '</strong>', true],\n \"double\": ['“', '”'],\n \"single\": ['‘', '’'],\n \"mark\": ['<mark>', '</mark>', true],\n \"superscript\": ['<sup>', '</sup>', true],\n \"subscript\": ['<sub>', '</sub>', true],\n \"unquoted\": ['<span>', '</span>', true],\n \"asciimath\": ['\\\\$', '\\\\$'],\n \"latexmath\": ['\\\\(', '\\\\)'],\n}\n\nconst chop = (str: string) => str.substring(0, str.length - 1)\n\nconst convertInlineQuoted = (node: Inline) => {\n const type = node.getType()\n const quoteTag = QUOTE_TAGS[type]\n const [open, close, tag] = quoteTag || ['', '']\n\n let text = node.getText()\n\n // Add <wbr> for line breaks with long paths\n // Ignores a / if there's a space before it\n if (type === 'monospaced') {\n text = renderWithBreaks(text)\n }\n\n const id = node.getId()\n const role = node.getRole()\n\n const idAttr = id ? `id=\"${id}\"` : ''\n const classAttr = role ? `class=\"${role}\"` : ''\n const attrs = `${idAttr} ${classAttr}`\n\n if (id || role) {\n if (tag) {\n return `${chop(open)} ${attrs}>${text}${close}`\n } else {\n return `<span ${attrs}>${open}${text}${close}</span>`\n }\n } else {\n return `${open}${text}${close}`\n }\n}\n\nfunction convertInlineCallout(node: Inline): string {\n return `<i class=\"conum\" data-value=\"${node.getText()}\"></i>`\n}\n\nconst ad = asciidoctor()\n\nclass InlineConverter {\n baseConverter: Html5Converter\n\n constructor() {\n this.baseConverter = new ad.Html5Converter()\n }\n\n convert(node: Block, transform: string) {\n switch (node.getNodeName()) {\n case 'inline_quoted':\n return convertInlineQuoted(node as unknown as Inline) // We know this is always inline\n case 'inline_callout':\n return convertInlineCallout(node as unknown as Inline) // We know this is always inline\n default:\n break\n }\n\n return this.baseConverter.convert(node, transform)\n }\n}\n\nexport {\n AsciiDocBlocks,\n handleDocument,\n highlight,\n loadAsciidoctor,\n attrs,\n DesktopOutline,\n SmallScreenOutline,\n useActiveSectionTracking,\n useIntersectionObserver,\n InlineConverter,\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { type AdmonitionBlock, Content, Title, parse } from '@oxide/react-asciidoc'\n\nimport { titleCase } from '../utils'\n\nconst Admonition = ({ node }: { node: AdmonitionBlock }) => {\n const attrs = node.attributes\n\n let icon\n if (attrs.name === 'caution') {\n icon = <Error12 />\n } else if (attrs.name === 'warning') {\n icon = <Warning12 />\n } else {\n icon = <Error12 className=\"rotate-180\" />\n }\n\n return (\n <div className={`admonitionblock ${attrs.name}`}>\n <div className=\"admonition-icon\">{icon}</div>\n <div className=\"admonition-content content\">\n <Title text={node.title} />\n <div>{titleCase(attrs.name.toString())}</div>\n <div>\n <Title text={node.title} />\n {node.content && parse(node.content)}\n <Content blocks={node.blocks} />\n </div>\n </div>\n </div>\n )\n}\n\nconst Error12 = ({ className }: { className?: string }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm.083-9c.368 0 .667.299.667.667v2.666A.667.667 0 0 1 6.083 7h-.166a.667.667 0 0 1-.667-.667V3.667c0-.368.299-.667.667-.667h.166Zm0 5c.368 0 .667.299.667.667v.166a.667.667 0 0 1-.667.667h-.166a.667.667 0 0 1-.667-.667v-.166c0-.368.299-.667.667-.667h.166Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst Warning12 = ({ className }: { className?: string }) => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm.083-9c.368 0 .667.299.667.667v2.666A.667.667 0 0 1 6.083 7h-.166a.667.667 0 0 1-.667-.667V3.667c0-.368.299-.667.667-.667h.166Zm0 5c.368 0 .667.299.667.667v.166a.667.667 0 0 1-.667.667h-.166a.667.667 0 0 1-.667-.667v-.166c0-.368.299-.667.667-.667h.166Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nexport default Admonition\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\nimport { createElement } from 'react'\n\nconst titleCase = (text: string): string => {\n return text.replace(\n /\\w\\S*/g,\n (text) => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase(),\n )\n}\n\n// all the cuteness of tw.span`text-secondary uppercase` with zero magic\n\nconst make =\n <T extends keyof JSX.IntrinsicElements>(tag: T) =>\n // only one argument here means string interpolations are not allowed\n (strings: TemplateStringsArray) => {\n const Comp = ({ className, children, ...rest }: JSX.IntrinsicElements[T]) =>\n createElement(tag, { className: cn(strings[0], className), ...rest }, children)\n Comp.displayName = `classed.${tag}`\n return Comp\n }\n\n// JSX.IntrinsicElements[T] ensures same props as the real DOM element. For example,\n// classed.span doesn't allow a type attr but classed.input does.\n\nconst classed = {\n button: make('button'),\n div: make('div'),\n h1: make('h1'),\n h2: make('h2'),\n h3: make('h3'),\n h4: make('h4'),\n hr: make('hr'),\n header: make('header'),\n input: make('input'),\n label: make('label'),\n li: make('li'),\n main: make('main'),\n ol: make('ol'),\n p: make('p'),\n span: make('span'),\n table: make('table'),\n tbody: make('tbody'),\n td: make('td'),\n th: make('th'),\n tr: make('tr'),\n} as const\n\n// result: classed.button`text-secondary uppercase` returns a component with those classes\n\nexport { titleCase, classed }\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst Link16Icon = ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={16}\n height={16}\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <g fill=\"currentColor\">\n <path d=\"m6.586 12.243 1.59-1.591a.75.75 0 0 1 1.061 0l.354.353a.75.75 0 0 1 0 1.06L8 13.658A4 4 0 0 1 2.343 8l1.591-1.591a.75.75 0 0 1 1.06 0l.354.354a.75.75 0 0 1 0 1.06l-1.59 1.591a2 2 0 1 0 2.828 2.829ZM12.066 9.591a.75.75 0 0 1-1.06 0l-.354-.354a.75.75 0 0 1 0-1.06l1.59-1.591a2 2 0 1 0-2.828-2.829l-1.59 1.591a.75.75 0 0 1-1.061 0l-.354-.353a.75.75 0 0 1 0-1.06L8 2.342A4 4 0 0 1 13.657 8l-1.591 1.591Z\" />\n <path d=\"M9.945 5.702a.75.75 0 0 0-1.061 0L5.702 8.884a.75.75 0 0 0 0 1.06l.353.354a.75.75 0 0 0 1.061 0l3.182-3.182a.75.75 0 0 0 0-1.06l-.353-.354Z\" />\n </g>\n </svg>\n)\nexport default Link16Icon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst Checkmark12Icon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.492 2.651c.28.242.31.665.067.944L5.447 9.463a.667.667 0 0 1-.974.035L1.475 6.516a.667.667 0 0 1 0-.946l.237-.235a.667.667 0 0 1 .94 0l2.24 2.226L9.3 2.501a.667.667 0 0 1 .938-.068l.253.218Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\nexport default Checkmark12Icon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst DirectionRightIcon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <path\n d=\"M8.807 6.597a.667.667 0 0 0 0-1.194l-5.842-2.92A.667.667 0 0 0 2 3.079v5.842c0 .496.522.818.965.596l5.842-2.92Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\nexport default DirectionRightIcon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SVGProps } from 'react'\n\ninterface SVGRProps {\n title?: string\n titleId?: string\n}\nconst SelectArrows6Icon = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps) => (\n <svg\n width={6}\n height={14}\n viewBox=\"0 0 6 14\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-labelledby={titleId}\n {...props}\n >\n {title ? <title id={titleId}>{title}</title> : null}\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.322.536a.375.375 0 0 0-.644 0L.341 4.432C.19 4.682.37 5 .662 5h4.676a.375.375 0 0 0 .321-.568L3.322.536Zm-.644 12.928a.375.375 0 0 0 .644 0l2.337-3.896A.375.375 0 0 0 5.338 9H.662a.375.375 0 0 0-.321.568l2.337 3.896Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\nexport default SelectArrows6Icon\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { Link16Icon } from '@/icons/react'\nimport { Content, type SectionBlock, parse } from '@oxide/react-asciidoc'\nimport cn from 'classnames'\nimport { createElement } from 'react'\n\n// We need to remove anchors from the section title (and table of contents) because having\n// an anchor within an anchor causes a client/server render mismatch\nexport const stripAnchors = (str: string) => str.replace(/<a[^>]*>(.*?)<\\/a>/gi, '$1')\n\nconst Section = ({ node }: { node: SectionBlock }) => {\n const level = node.level\n let title: JSX.Element | string = ''\n\n let sectNum = node.num\n sectNum = sectNum === '.' ? '' : sectNum\n\n title = (\n <>\n <span className=\"anchor\" id={node.id || ''} aria-hidden=\"true\" />\n <a className=\"link group\" href={`#${node.id}`}>\n {parse(stripAnchors(node.title))}\n <Link16Icon className=\"ml-2 hidden text-accent-secondary group-hover:inline-block\" />\n </a>\n </>\n )\n\n if (level === 0) {\n return (\n <>\n <h1 className={cn('sect0', node.role)} data-sectnum={sectNum}>\n {title}\n </h1>\n <Content blocks={node.blocks} />\n </>\n )\n } else {\n return (\n <div className={cn(`sect${level}`, node.role)}>\n {createElement(`h${level + 1}`, { 'data-sectnum': sectNum }, title)}\n <div className=\"sectionbody\">\n <Content blocks={node.blocks} />\n </div>\n </div>\n )\n }\n}\n\nexport default Section\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { Table as InnerTable, type TableBlock } from '@oxide/react-asciidoc'\n\nconst Table = ({ node }: { node: TableBlock }) => (\n <div className=\"table-wrapper\">\n <InnerTable node={node} />\n </div>\n)\n\nexport default Table\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { DirectionRightIcon } from '@/icons/react'\nimport type { DocumentSection } from '@oxide/react-asciidoc'\nimport * as Accordion from '@radix-ui/react-accordion'\nimport { Link } from '@remix-run/react'\nimport cn from 'classnames'\nimport { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nexport function useIntersectionObserver(\n elements: Element[],\n callback: IntersectionObserverCallback,\n options: IntersectionObserverInit,\n) {\n const [observer, setObserver] = useState<IntersectionObserver | null>(null)\n\n // Create the observer in an effect so we can tear it down when this unmounts\n useEffect(() => {\n const observer = new IntersectionObserver(callback, options)\n setObserver(observer)\n\n return () => {\n observer.disconnect()\n }\n }, [callback, options])\n\n // Bind the elements that should be listened for\n useEffect(() => {\n if (observer) {\n for (const element of elements) {\n observer.observe(element)\n }\n }\n\n return () => {\n if (observer) {\n for (const element of elements) {\n observer.unobserve(element)\n }\n }\n }\n }, [elements, observer])\n\n return observer\n}\n\n// Create threshold steps that trigger intersection events every 0.05%. This is needed to provide\n// decent measurements on very tall elements. In the future we could instead compute the needed\n// thresholds on a per element basis so that we are measuring per pixel instead of per percent.\nconst THRESHOLD = [...Array(2000).keys()].map((n) => n / 2000)\n\nfunction isTopLevelSection(element: Element): boolean {\n return element.classList.contains('sect1')\n}\n\n// Uses the asciidoc generated classes to find the closest section wrapping parent element\nfunction findParentSection(element: Element): Element | null {\n const sect2Wrapper = element.closest('.sect2')\n return sect2Wrapper ? sect2Wrapper : element.closest('.sect1')\n}\n\nfunction newSection(\n node: number,\n element: Element,\n wrapper: Element,\n parent: number | null,\n): Section {\n return {\n node,\n element,\n wrapper,\n parent,\n children: [],\n }\n}\n\nfunction buildSectionTree(elements: Element[]): Section[] {\n const sections = []\n let parent = null\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n const parentWrapper = findParentSection(element)\n\n if (parentWrapper) {\n if (parentWrapper && isTopLevelSection(parentWrapper)) {\n const section = newSection(i, element, parentWrapper, null)\n sections.push(section)\n parent = section\n } else {\n if (parent === null) {\n // Fail to construct a tree if the provided elements are invalid\n return []\n } else {\n const section = newSection(i, element, parentWrapper, parent.node)\n parent.children.push(i)\n sections.push(section)\n }\n }\n } else {\n // Fail to construct a tree if the provided elements are invalid\n return []\n }\n }\n\n return sections\n}\n\nfunction maxIndex(nums: number[]): number | undefined {\n return nums.reduce<number | undefined>((maxIndex, current, currentIndex) => {\n const currentMax = maxIndex !== undefined ? nums[maxIndex] : 0\n return current > currentMax ? currentIndex : maxIndex\n }, undefined)\n}\n\ntype Section = {\n node: number\n element: Element\n wrapper: Element\n parent: number | null\n children: number[]\n}\n// This hook will call the provided callback whenever a section that is identified by a heading is\n// determined to be \"active\". A section is considered to be the \"active\" section when covers more\n// space of the specified measuring area than any other section.\nexport function useActiveSectionTracking(\n initialSections: Element[],\n onSectionChange: (element: Element) => void,\n debug = false,\n) {\n // Construct a tree in the form of a basic array that will allow for traversing between parent\n // an child nodes quickly\n const [sectionWrappers, setSectionWrappers] = useState<Section[]>(\n buildSectionTree(initialSections),\n )\n\n // Internally we need to track the coverage percentage for each element without triggering\n // renders\n const sectionMeasurements = useRef<number[]>([])\n\n // The caller only provides the hook with section headers and so we need to map those to their\n // relevant containing sections\n const setSections = useCallback(\n (sections: Element[]) => {\n setSectionWrappers(buildSectionTree(sections))\n\n // When sections change we need to also zero out our section visibility measurements\n sectionMeasurements.current = []\n },\n [setSectionWrappers],\n )\n\n // Create the section tracker\n const wrapperActivator = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n // For each observed element that has interacted with our intersection window we want to\n // compute and record the percentage of space that is covered by the element. This work is all\n // performed off of the main thread\n for (const entry of entries) {\n // Find where in our list of section wrapper elements the entry that changed is\n const index = sectionWrappers.findIndex((node) => node.wrapper === entry.target)\n\n // We are only trying to detect vertical scroll changes and therefore only need to use the\n // heigh to compute the coverage percentage\n const covered = entry.intersectionRect.height / (entry.rootBounds?.height || 1)\n sectionMeasurements.current[index] = covered\n }\n\n // For each section element, compute the amount of space that is \"owned\" by that element. In\n // this check, space is considered \"owned\" by the element furthest down the tree.\n //\n // Example:\n // A parent element covers 70% of the measured space. This element has two child elements,\n // one that covers 30%, and another that covers 25%. In this case both of the child elements\n // own their respective spaces, and the parent owns 15% (70 - (30 + 25)) of the space.\n //\n // Because we are only trying to determine the space owned by a single element, we do not need\n // to traverse further than that elements direct descendants\n const ownedSectionSizes = sectionWrappers.map((section) => {\n const childSizes = section.children\n .map((c) => sectionMeasurements.current[c])\n .reduce((c, a) => c + a, 0)\n return sectionMeasurements.current[section.node] - childSizes\n })\n\n // Now that we have a list of how much of the measured space each element takes up, we simply\n // find the element that is taking up the most space, and assign it to be the current section\n const activeSectionIndex = maxIndex(ownedSectionSizes)\n\n if (activeSectionIndex !== undefined) {\n onSectionChange(sectionWrappers[activeSectionIndex].element)\n }\n },\n [sectionWrappers, onSectionChange],\n )\n\n // Define our measurement area. This space is relative to the root element (i.e. the screen). It\n // is a band that starts at 5% down from the top, and ends at 80% up from the bottom of the\n // screen.\n const wrapperSettings = useMemo(\n () => ({ threshold: THRESHOLD, rootMargin: `-15% 0px -70% 0px` }),\n [],\n )\n\n // We need to ensure that we are only sending valid sections to be observed\n const bindableWrappers = useMemo(\n () => sectionWrappers.map((s) => s.wrapper),\n [sectionWrappers],\n )\n\n // Generate the intersection observer based on the above configuration\n const sectionObserver = useIntersectionObserver(\n bindableWrappers,\n wrapperActivator,\n wrapperSettings,\n )\n\n let debugNode = null\n if (debug && sectionObserver?.root === null) {\n // Parse and invert the margins\n const edges = sectionObserver.rootMargin.split(' ').map((margin) => {\n if (margin.endsWith('%')) {\n return parseInt(margin) * -1 + '%'\n } else if (margin.endsWith('px')) {\n return parseInt(margin) * -1 + 'px'\n } else {\n return '0px'\n }\n })\n\n debugNode = (\n <div\n style={{\n position: 'fixed',\n top: edges[0],\n right: edges[1],\n bottom: edges[2],\n left: edges[3],\n background: 'rgba(255, 92, 170, 0.2)',\n border: '1px solid rgba(255, 92, 170)',\n pointerEvents: 'none',\n zIndex: 500,\n }}\n />\n )\n }\n\n return {\n setSections,\n debugNode,\n }\n}\n\nexport const DesktopOutline = ({\n toc,\n activeItem,\n}: {\n toc: DocumentSection[]\n activeItem: string\n}) => {\n const renderToc = (sections: DocumentSection[]) => {\n return sections.map((item) => (\n <Fragment key={item.id}>\n <li\n data-level={item.level}\n className={cn('mb-0 list-none text-sans-sm', item.level > 2 && 'hidden')}\n >\n <Link\n to={`#${item.id}`}\n className={cn(\n 'block border-l py-[4px] pr-4',\n activeItem === item.id\n ? 'active text-accent-secondary border-accent-secondary hover:text-accent'\n : 'text-tertiary border-secondary hover:text-secondary',\n )}\n style={{\n paddingLeft: `${0.5 + item.level * 0.5}rem`,\n }}\n >\n <span dangerouslySetInnerHTML={{ __html: item.title }} />\n </Link>\n </li>\n {item.sections && renderToc(item.sections)}\n </Fragment>\n ))\n }\n\n if (toc && toc.length > 0) {\n return <ul className=\"toc\">{renderToc(toc)}</ul>\n }\n\n return null\n}\nexport const SmallScreenOutline = ({\n toc,\n activeItem,\n title,\n}: {\n toc: DocumentSection[]\n activeItem: string\n title: string\n}) => {\n const renderToc = (sections: DocumentSection[]) => {\n return sections.map((item) => (\n <Fragment key={item.id}>\n <li\n data-level={item.level}\n className={cn(\n 'AccordionContent hydrated list-none text-sans-sm',\n item.level > 2 && 'hidden',\n )}\n >\n <Link\n to={`#${item.id}`}\n className={cn(\n 'block border-l py-[4px]',\n activeItem === item.id\n ? 'active text-accent-secondary border-accent-secondary hover:text-accent'\n : 'text-tertiary border-secondary hover:text-secondary',\n )}\n style={{\n paddingLeft: `${0.5 + item.level * 0.5}rem`,\n }}\n >\n <span dangerouslySetInnerHTML={{ __html: item.title }} />\n </Link>\n </li>\n {item.sections && renderToc(item.sections)}\n </Fragment>\n ))\n }\n\n if (toc && toc.length > 0) {\n return (\n <Accordion.Root\n type=\"single\"\n className=\"sticky top-[calc(var(--header-height)-1px)] z-10 -mt-px mb-10 block max-h-[calc(100vh-var(--header-height)+1px)] w-full overflow-y-scroll border-b border-t bg-default border-secondary 1200:hidden print:hidden\"\n collapsible\n >\n <Accordion.Item value={`small-toc-${title}`}>\n <Accordion.Header>\n <Accordion.Trigger className=\"flex h-[--toc-header-height] w-full items-center justify-between px-4 text-sans-md text-default hover:bg-hover 400:px-6 600:px-8 [&>svg]:data-[state=open]:rotate-90\">\n Table of Contents{' '}\n <DirectionRightIcon className=\"transition-all text-tertiary\" />\n </Accordion.Trigger>\n </Accordion.Header>\n\n <Accordion.Content className=\"AccordionContent hydrated w-full border-t px-4 border-secondary 400:px-6 600:px-8\">\n <div className=\"py-4\">{renderToc(toc)}</div>\n </Accordion.Content>\n </Accordion.Item>\n </Accordion.Root>\n )\n }\n\n return null\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport asciidoctor, {\n type Block as AdBlock,\n type Document,\n type Html5Converter,\n type Inline,\n type Registry,\n} from '@asciidoctor/core'\nimport {\n Block,\n LiteralBlock,\n prepareDocument,\n processDocument,\n} from '@oxide/react-asciidoc'\nimport {\n type BundledLanguage,\n type BundledTheme,\n type HighlighterGeneric,\n type LanguageInput,\n bundledLanguages,\n getHighlighter,\n} from 'shiki'\n\nimport oxqlLang from './langs/oxql.tmLanguage.json'\nimport theme from './oxide-dark.json'\n\nlet highlighter: HighlighterGeneric<BundledLanguage, BundledTheme> | null = null\nconst customLanguages = ['oxql']\nconst supportedLanguages = [...Object.keys(bundledLanguages), ...customLanguages]\n\nasync function getOrCreateHighlighter() {\n if (!highlighter) {\n const langs: LanguageInput[] = []\n\n langs.push({\n ...oxqlLang,\n })\n\n highlighter = await getHighlighter({\n themes: [theme],\n langs: langs,\n })\n }\n\n return highlighter\n}\n\nconst highlight = async (block: Block): Promise<Block> => {\n if (block.type === 'listing') {\n const literalBlock = block as LiteralBlock\n\n if (!literalBlock.content) {\n return block\n }\n\n // Replace callouts with placeholders before highlighting\n // without this they are decoded and are no displayed as HTML\n const calloutRegex = /<i class=\"conum\" data-value=\"\\d+\"><\\/i>/g\n const callouts: string[] = []\n const placeholderContent = literalBlock.content.replace(calloutRegex, (match) => {\n callouts.push(match)\n return `__CALLOUT_PLACEHOLDER_${callouts.length - 1}__`\n })\n\n // If no language specified, we still want to support callouts\n if (!literalBlock.language) {\n return {\n ...block,\n content: placeholderContent.replace(\n /__CALLOUT_PLACEHOLDER_(\\d+)__/g,\n (_, index) => callouts[parseInt(index)],\n ),\n }\n }\n\n let lang = literalBlock.language\n const h = await getOrCreateHighlighter()\n const loadedLanguages = h.getLoadedLanguages()\n\n if (!supportedLanguages.includes(lang)) {\n lang = 'text'\n }\n\n if (!loadedLanguages.includes(lang)) {\n await h.loadLanguage(lang as BundledLanguage)\n }\n\n const highlightedContent = h.codeToHtml(placeholderContent, {\n lang,\n theme: theme,\n structure: 'inline',\n })\n\n // Restore callouts in the highlighted content\n const restoredContent = highlightedContent.replace(\n /__CALLOUT_PLACEHOLDER_(\\d+)__/g,\n (_, index) => callouts[parseInt(index)],\n )\n\n return {\n ...block,\n content: restoredContent,\n }\n }\n return block\n}\n\nconst attrs = {\n sectlinks: 'true',\n stem: 'latexmath',\n stylesheet: false,\n}\n\nconst loadAsciidoctor = ({\n extensions = [],\n}: {\n extensions?: ((this: Registry) => void)[]\n}) => {\n const ad = asciidoctor()\n\n /*\n For styling inline elements\n we cannot do this through the AsciiDoc tree\n */\n class InlineConverter {\n baseConverter: Html5Converter\n\n constructor() {\n this.baseConverter = new ad.Html5Converter()\n }\n\n convert(node: AdBlock, transform: string) {\n switch (node.getNodeName()) {\n case 'inline_callout':\n return convertInlineCallout(node as unknown as Inline) // We know this is always inline\n default:\n break\n }\n\n return this.baseConverter.convert(node, transform)\n }\n }\n\n extensions.forEach((extension) => ad.Extensions.register(extension))\n ad.ConverterFactory.register(new InlineConverter(), ['html5'])\n\n return ad\n}\n\n// These are a little nicer to style than the default\nfunction convertInlineCallout(node: Inline): string {\n return `<i class=\"conum\" data-value=\"${node.getText()}\"></i>`\n}\n\nconst handleDocument = async (document: Document) => {\n const doc = prepareDocument(document)\n return await processDocument(doc, highlight)\n}\n\nexport { handleDocument, highlight, loadAsciidoctor, attrs }\n","{\n \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n \"name\": \"oxql\",\n \"repository\": {\n \"keywords\": {\n \"patterns\": [\n {\n \"name\": \"keyword.control.oxql\",\n \"match\": \"\\\\b(if|while|for|return)\\\\b\"\n }\n ]\n },\n \"strings\": {\n \"name\": \"string.quoted.double.oxql\",\n \"begin\": \"\\\"\",\n \"end\": \"\\\"\",\n \"patterns\": [\n {\n \"name\": \"constant.character.escape.oxql\",\n \"match\": \"\\\\\\\\.\"\n }\n ]\n }\n },\n \"scopeName\": \"source.oxql\",\n \"patterns\": [\n {\n \"name\": \"keyword.control.oxql\",\n \"match\": \"\\\\b(get|join|align|filter|group_by)\\\\b\"\n },\n {\n \"name\": \"string.quoted.double.oxql\",\n \"begin\": \"\\\"\",\n \"end\": \"\\\"\",\n \"patterns\": [\n {\n \"name\": \"constant.character.escape.oxql\",\n \"match\": \"\\\\\\\\.\"\n }\n ]\n },\n {\n \"name\": \"constant.numeric.oxql\",\n \"match\": \"\\\\b\\\\d+[smhdw]\\\\b\"\n },\n {\n \"name\": \"constant.numeric.datetime.oxql\",\n \"match\": \"@\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\"\n },\n {\n \"name\": \"constant.numeric.function.oxql\",\n \"match\": \"@now\\\\(\\\\)\"\n },\n {\n \"name\": \"constant.numeric.oxql\",\n \"match\": \"\\\\b\\\\d+\\\\b\"\n },\n {\n \"name\": \"comment.block.oxql\",\n \"begin\": \"/\\\\*\",\n \"end\": \"\\\\*/\"\n },\n {\n \"name\": \"comment.line.double-slash.oxql\",\n \"match\": \"//.*$\"\n },\n {\n \"name\": \"keyword.operator.oxql\",\n \"match\": \"\\\\|\"\n }\n ]\n}\n","{\n \"name\": \"Oxide Dark\",\n \"colors\": {\n \"editor.background\": \"#080F11\",\n \"editor.foreground\": \"#E7E7E8\"\n },\n \"tokenColors\": [\n {\n \"scope\": [\n \"text\",\n \"source\",\n \"variable.other.readwrite\",\n \"punctuation.definition.variable\"\n ],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"punctuation\",\n \"settings\": {\n \"foreground\": \"#A1A4A5\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"comment\", \"punctuation.definition.comment\"],\n \"settings\": {\n \"foreground\": \"#A1A4A5\"\n }\n },\n {\n \"scope\": [\"string\", \"punctuation.definition.string\"],\n \"settings\": {\n \"foreground\": \"#68D9A7\"\n }\n },\n {\n \"scope\": \"constant.character.escape\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\n \"constant.numeric\",\n \"variable.other.constant\",\n \"entity.name.constant\",\n \"constant.language.boolean\",\n \"constant.language.false\",\n \"constant.language.true\",\n \"keyword.other.unit.user-defined\",\n \"keyword.other.unit.suffix.floating-point\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"keyword\",\n \"keyword.operator.word\",\n \"keyword.operator.new\",\n \"variable.language.super\",\n \"support.type.primitive\",\n \"storage.type\",\n \"storage.modifier\",\n \"punctuation.definition.keyword\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"entity.name.tag.documentation\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"keyword.operator\",\n \"punctuation.accessor\",\n \"punctuation.definition.generic\",\n \"meta.function.closure punctuation.section.parameters\",\n \"punctuation.definition.tag\",\n \"punctuation.separator.key-value\"\n ],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"entity.name.function\",\n \"meta.function-call.method\",\n \"support.function\",\n \"support.function.misc\",\n \"variable.function\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"entity.name.class\",\n \"entity.other.inherited-class\",\n \"support.class\",\n \"meta.function-call.constructor\",\n \"entity.name.struct\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.enum\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"meta.enum variable.other.readwrite\", \"variable.other.enummember\"],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"meta.property.object\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\"meta.type\", \"meta.type-alias\", \"support.type\", \"entity.name.type\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"meta.annotation variable.function\",\n \"meta.annotation variable.annotation.function\",\n \"meta.annotation punctuation.definition.annotation\",\n \"meta.decorator\",\n \"punctuation.decorator\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"variable.parameter\", \"meta.function.parameters\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": [\"constant.language\", \"support.function.builtin\"],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"entity.other.attribute-name.documentation\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"keyword.control.directive\", \"punctuation.definition.directive\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"punctuation.definition.typeparameters\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"entity.name.namespace\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"support.type.property-name.css\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"variable.language.this\",\n \"variable.language.this punctuation.definition.variable\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"variable.object.property\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"string.template variable\", \"string variable\"],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"keyword.operator.new\",\n \"settings\": {\n \"fontStyle\": \"bold\"\n }\n },\n {\n \"scope\": \"storage.modifier.specifier.extern.cpp\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"entity.name.scope-resolution.template.call.cpp\",\n \"entity.name.scope-resolution.parameter.cpp\",\n \"entity.name.scope-resolution.cpp\",\n \"entity.name.scope-resolution.function.definition.cpp\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"storage.type.class.doxygen\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"storage.modifier.reference.cpp\"],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"meta.interpolation.cs\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"comment.block.documentation.cs\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\n \"source.css entity.other.attribute-name.class.css\",\n \"entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"punctuation.separator.operator.css\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"source.css entity.other.attribute-name.pseudo-class\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"source.css constant.other.unicode-range\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"source.css variable.parameter.url\",\n \"settings\": {\n \"foreground\": \"#88DCB7\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.type.vendored.property-name\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"source.css meta.property-value variable\",\n \"source.css meta.property-value variable.other.less\",\n \"source.css meta.property-value variable.other.less punctuation.definition.variable.less\",\n \"meta.definition.variable.scss\"\n ],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": [\n \"source.css meta.property-list variable\",\n \"meta.property-list variable.other.less\",\n \"meta.property-list variable.other.less punctuation.definition.variable.less\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"keyword.other.unit.percentage.css\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"source.css meta.attribute-selector\",\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": [\n \"keyword.other.definition.ini\",\n \"punctuation.support.type.property-name.json\",\n \"support.type.property-name.json\",\n \"punctuation.support.type.property-name.toml\",\n \"support.type.property-name.toml\",\n \"entity.name.tag.yaml\",\n \"punctuation.support.type.property-name.yaml\",\n \"support.type.property-name.yaml\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"constant.language.json\", \"constant.language.yaml\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"entity.name.type.anchor.yaml\", \"variable.other.alias.yaml\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.type.property-name.table\", \"entity.name.section.group-title.ini\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.time.datetime.offset.toml\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\"punctuation.definition.anchor.yaml\", \"punctuation.definition.alias.yaml\"],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"entity.other.document.begin.yaml\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"markup.changed.diff\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"meta.diff.header.from-file\",\n \"meta.diff.header.to-file\",\n \"punctuation.definition.from-file.diff\",\n \"punctuation.definition.to-file.diff\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"markup.inserted.diff\",\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"markup.deleted.diff\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"variable.other.env\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\"string.quoted variable.other.env\"],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"support.function.builtin.gdscript\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"constant.language.gdscript\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"comment meta.annotation.go\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"comment meta.annotation.parameters.go\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.language.go\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"variable.graphql\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"string.unquoted.alias.graphql\",\n \"settings\": {\n \"foreground\": \"#F2CDCD\"\n }\n },\n {\n \"scope\": \"constant.character.enum.graphql\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql\",\n \"settings\": {\n \"foreground\": \"#F2CDCD\"\n }\n },\n {\n \"scope\": [\n \"keyword.other.doctype\",\n \"meta.tag.sgml.doctype punctuation.definition.tag\",\n \"meta.tag.metadata.doctype entity.name.tag\",\n \"meta.tag.metadata.doctype punctuation.definition.tag\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\"entity.name.tag\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"text.html constant.character.entity\",\n \"text.html constant.character.entity punctuation\",\n \"constant.character.entity.xml\",\n \"constant.character.entity.xml punctuation\",\n \"constant.character.entity.js.jsx\",\n \"constant.charactger.entity.js.jsx punctuation\",\n \"constant.character.entity.tsx\",\n \"constant.character.entity.tsx punctuation\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"entity.other.attribute-name\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"support.class.component\",\n \"support.class.component.jsx\",\n \"support.class.component.tsx\",\n \"support.class.component.vue\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"punctuation.definition.annotation\", \"storage.type.annotation\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.enum.java\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"storage.modifier.import.java\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"comment.block.javadoc.java keyword.other.documentation.javadoc.java\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"meta.export variable.other.readwrite.js\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": [\n \"variable.other.constant.js\",\n \"variable.other.constant.ts\",\n \"variable.other.property.js\",\n \"variable.other.property.ts\"\n ],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"variable.other.jsdoc\", \"comment.block.documentation variable.other\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"storage.type.class.jsdoc\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"support.type.object.console.js\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"support.constant.node\", \"support.type.object.module.js\"],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"storage.modifier.implements\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"constant.language.null.js\",\n \"constant.language.null.ts\",\n \"constant.language.undefined.js\",\n \"constant.language.undefined.ts\",\n \"support.type.builtin.ts\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"variable.parameter.generic\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"keyword.declaration.function.arrow.js\", \"storage.type.function.arrow.ts\"],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"punctuation.decorator.ts\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"keyword.operator.expression.in.js\",\n \"keyword.operator.expression.in.ts\",\n \"keyword.operator.expression.infer.ts\",\n \"keyword.operator.expression.instanceof.js\",\n \"keyword.operator.expression.instanceof.ts\",\n \"keyword.operator.expression.is\",\n \"keyword.operator.expression.keyof.ts\",\n \"keyword.operator.expression.of.js\",\n \"keyword.operator.expression.of.ts\",\n \"keyword.operator.expression.typeof.ts\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"support.function.macro.julia\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"constant.language.julia\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.symbol.julia\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"text.tex keyword.control.preamble\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"text.tex support.function.be\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"constant.other.general.math.tex\",\n \"settings\": {\n \"foreground\": \"#F2CDCD\"\n }\n },\n {\n \"scope\": \"comment.line.double-dash.documentation.lua storage.type.annotation.lua\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"comment.line.double-dash.documentation.lua entity.name.variable.lua\",\n \"comment.line.double-dash.documentation.lua variable.lua\"\n ],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\n \"heading.1.markdown punctuation.definition.heading.markdown\",\n \"heading.1.markdown\",\n \"heading.1.quarto punctuation.definition.heading.quarto\",\n \"heading.1.quarto\",\n \"markup.heading.atx.1.mdx\",\n \"markup.heading.atx.1.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.setext.1.markdown\",\n \"markup.heading.heading-0.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\n \"heading.2.markdown punctuation.definition.heading.markdown\",\n \"heading.2.markdown\",\n \"heading.2.quarto punctuation.definition.heading.quarto\",\n \"heading.2.quarto\",\n \"markup.heading.atx.2.mdx\",\n \"markup.heading.atx.2.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.setext.2.markdown\",\n \"markup.heading.heading-1.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"heading.3.markdown punctuation.definition.heading.markdown\",\n \"heading.3.markdown\",\n \"heading.3.quarto punctuation.definition.heading.quarto\",\n \"heading.3.quarto\",\n \"markup.heading.atx.3.mdx\",\n \"markup.heading.atx.3.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-2.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"heading.4.markdown punctuation.definition.heading.markdown\",\n \"heading.4.markdown\",\n \"heading.4.quarto punctuation.definition.heading.quarto\",\n \"heading.4.quarto\",\n \"markup.heading.atx.4.mdx\",\n \"markup.heading.atx.4.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-3.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": [\n \"heading.5.markdown punctuation.definition.heading.markdown\",\n \"heading.5.markdown\",\n \"heading.5.quarto punctuation.definition.heading.quarto\",\n \"heading.5.quarto\",\n \"markup.heading.atx.5.mdx\",\n \"markup.heading.atx.5.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-4.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"heading.6.markdown punctuation.definition.heading.markdown\",\n \"heading.6.markdown\",\n \"heading.6.quarto punctuation.definition.heading.quarto\",\n \"heading.6.quarto\",\n \"markup.heading.atx.6.mdx\",\n \"markup.heading.atx.6.mdx punctuation.definition.heading.mdx\",\n \"markup.heading.heading-5.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"markup.bold\",\n \"settings\": {\n \"foreground\": \"#F7869B\",\n \"fontStyle\": \"bold\"\n }\n },\n {\n \"scope\": \"markup.italic\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"markup.strikethrough\",\n \"settings\": {\n \"foreground\": \"#A6ADC8\",\n \"fontStyle\": \"strikethrough\"\n }\n },\n {\n \"scope\": [\"punctuation.definition.link\", \"markup.underline.link\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"text.html.markdown punctuation.definition.link.title\",\n \"text.html.quarto punctuation.definition.link.title\",\n \"string.other.link.title.markdown\",\n \"string.other.link.title.quarto\",\n \"markup.link\",\n \"punctuation.definition.constant.markdown\",\n \"punctuation.definition.constant.quarto\",\n \"constant.other.reference.link.markdown\",\n \"constant.other.reference.link.quarto\",\n \"markup.substitution.attribute-reference\"\n ],\n \"settings\": {\n \"foreground\": \"#B4BEFE\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.raw.markdown\",\n \"punctuation.definition.raw.quarto\",\n \"markup.inline.raw.string.markdown\",\n \"markup.inline.raw.string.quarto\",\n \"markup.raw.block.markdown\",\n \"markup.raw.block.quarto\"\n ],\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"fenced_code.block.language\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"markup.fenced_code.block punctuation.definition\",\n \"markup.raw support.asciidoc\"\n ],\n \"settings\": {\n \"foreground\": \"#A1A4A5\"\n }\n },\n {\n \"scope\": [\"markup.quote\", \"punctuation.definition.quote.begin\"],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"meta.separator.markdown\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.list.begin.markdown\",\n \"punctuation.definition.list.begin.quarto\",\n \"markup.list.bullet\"\n ],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"markup.heading.quarto\",\n \"settings\": {\n \"fontStyle\": \"bold\"\n }\n },\n {\n \"scope\": [\n \"entity.other.attribute-name.multipart.nix\",\n \"entity.other.attribute-name.single.nix\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"variable.parameter.name.nix\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"meta.embedded variable.parameter.name.nix\",\n \"settings\": {\n \"foreground\": \"#B4BEFE\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"string.unquoted.path.nix\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.attribute.builtin\", \"meta.attribute.php\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"meta.function.parameters.php punctuation.definition.variable.php\",\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"constant.language.php\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"text.html.php support.function\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"keyword.other.phpdoc.php\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\"support.variable.magic.python\", \"meta.function-call.arguments.python\"],\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\"support.function.magic.python\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"variable.parameter.function.language.special.self.python\",\n \"variable.language.special.self.python\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\"keyword.control.flow.python\", \"keyword.operator.logical.python\"],\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"storage.type.function.python\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\n \"support.token.decorator.python\",\n \"meta.function.decorator.identifier.python\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\"meta.function-call.python\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"entity.name.function.decorator.python\",\n \"punctuation.definition.decorator.python\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.character.format.placeholder.other.python\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\"support.type.exception.python\", \"support.function.builtin.python\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"support.type.python\"],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.language.python\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": [\"meta.indexed-name.python\", \"meta.item-access.python\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"storage.type.string.python\",\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"meta.function.parameters.python\",\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"string.regexp punctuation.definition.string.begin\",\n \"string.regexp punctuation.definition.string.end\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"keyword.control.anchor.regexp\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"string.regexp.ts\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.group.regexp\",\n \"keyword.other.back-reference.regexp\"\n ],\n \"settings\": {\n \"foreground\": \"#88DCB7\"\n }\n },\n {\n \"scope\": \"punctuation.definition.character-class.regexp\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"constant.other.character-class.regexp\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"constant.other.character-class.range.regexp\",\n \"settings\": {\n \"foreground\": \"#F5E0DC\"\n }\n },\n {\n \"scope\": \"keyword.operator.quantifier.regexp\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"constant.character.numeric.regexp\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"punctuation.definition.group.no-capture.regexp\",\n \"meta.assertion.look-ahead.regexp\",\n \"meta.assertion.negative-look-ahead.regexp\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\n \"meta.annotation.rust\",\n \"meta.annotation.rust punctuation\",\n \"meta.attribute.rust\",\n \"punctuation.definition.attribute.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"meta.attribute.rust string.quoted.double.rust\",\n \"meta.attribute.rust string.quoted.single.char.rust\"\n ],\n \"settings\": {\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": [\n \"entity.name.function.macro.rules.rust\",\n \"storage.type.module.rust\",\n \"storage.modifier.rust\",\n \"storage.type.struct.rust\",\n \"storage.type.enum.rust\",\n \"storage.type.trait.rust\",\n \"storage.type.union.rust\",\n \"storage.type.impl.rust\",\n \"storage.type.rust\",\n \"storage.type.function.rust\",\n \"storage.type.type.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"entity.name.type.numeric.rust\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\",\n \"fontStyle\": \"\"\n }\n },\n {\n \"scope\": \"meta.generic.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.impl.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.module.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.trait.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"storage.type.source.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"entity.name.union.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": \"meta.enum.rust storage.type.source.rust\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"support.macro.rust\",\n \"meta.macro.rust support.function.rust\",\n \"entity.name.function.macro.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": [\"storage.modifier.lifetime.rust\", \"entity.name.type.lifetime\"],\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"string.quoted.double.rust constant.other.placeholder.rust\",\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"meta.function.return-type.rust meta.generic.rust storage.type.rust\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"meta.function.call.rust\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"punctuation.brackets.angle.rust\",\n \"settings\": {\n \"foreground\": \"#9DAFFA\"\n }\n },\n {\n \"scope\": \"constant.other.caps.rust\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\"meta.function.definition.rust variable.other.rust\"],\n \"settings\": {\n \"foreground\": \"#F39EAE\"\n }\n },\n {\n \"scope\": \"meta.function.call.rust variable.other.rust\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"variable.language.self.rust\",\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": [\n \"variable.other.metavariable.name.rust\",\n \"meta.macro.metavariable.rust keyword.operator.macro.dollar.rust\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": [\n \"comment.line.shebang\",\n \"comment.line.shebang punctuation.definition.comment\",\n \"comment.line.shebang\",\n \"punctuation.definition.comment.shebang.shell\",\n \"meta.shebang.shell\"\n ],\n \"settings\": {\n \"foreground\": \"#EFB7C2\"\n }\n },\n {\n \"scope\": \"comment.line.shebang constant.language\",\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": [\n \"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\n \"meta.function-call.arguments.shell punctuation.section.interpolation\",\n \"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\n \"meta.function-call.arguments.shell punctuation.section.interpolation\"\n ],\n \"settings\": {\n \"foreground\": \"#F7869B\"\n }\n },\n {\n \"scope\": \"meta.string meta.interpolation.parameter.shell variable.other.readwrite\",\n \"settings\": {\n \"foreground\": \"#EDD5A6\"\n }\n },\n {\n \"scope\": [\n \"source.shell punctuation.section.interpolation\",\n \"punctuation.definition.evaluation.backticks.shell\"\n ],\n \"settings\": {\n \"foreground\": \"#A7E0C8\"\n }\n },\n {\n \"scope\": \"entity.name.tag.heredoc.shell\",\n \"settings\": {\n \"foreground\": \"#C6A5EA\"\n }\n },\n {\n \"scope\": \"string.quoted.double.shell variable.other.normal.shell\",\n \"settings\": {\n \"foreground\": \"#E7E7E8\"\n }\n },\n {\n \"scope\": \"token.info-token\",\n \"settings\": {\n \"foreground\": \"#8BA1FF\"\n }\n },\n {\n \"scope\": \"token.warn-token\",\n \"settings\": {\n \"foreground\": \"#F5B944\"\n }\n },\n {\n \"scope\": \"token.error-token\",\n \"settings\": {\n \"foreground\": \"#FB6E88\"\n }\n },\n {\n \"scope\": \"token.debug-token\",\n \"settings\": {\n \"foreground\": \"#BE95EB\"\n }\n }\n ]\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\n\nexport type BadgeColor =\n | 'default'\n | 'destructive'\n | 'notice'\n | 'neutral'\n | 'purple'\n | 'blue'\nexport type BadgeVariant = 'default' | 'solid'\n\nexport interface BadgeProps {\n color?: BadgeColor\n className?: string\n children: React.ReactNode\n variant?: BadgeVariant\n}\n\nexport const badgeColors: Record<BadgeVariant, Record<BadgeColor, string>> = {\n default: {\n default: `ring-1 ring-inset bg-accent-secondary text-accent ring-[rgba(var(--base-green-800-rgb),0.15)]`,\n destructive: `ring-1 ring-inset bg-destructive-secondary text-destructive ring-[rgba(var(--base-red-800-rgb),0.15)]`,\n notice: `ring-1 ring-inset bg-notice-secondary text-notice ring-[rgba(var(--base-yellow-800-rgb),0.15)]`,\n neutral: `ring-1 ring-inset bg-secondary text-secondary ring-[rgba(var(--base-neutral-700-rgb),0.15)]`,\n purple: `ring-1 ring-inset bg-[var(--base-purple-200)] text-[var(--base-purple-700)] ring-[rgba(var(--base-purple-800-rgb),0.15)]`,\n blue: `ring-1 ring-inset bg-info-secondary text-info ring-[rgba(var(--base-blue-800-rgb),0.15)]`,\n },\n solid: {\n default: 'bg-accent text-inverse',\n destructive: 'bg-destructive text-inverse',\n notice: 'bg-notice text-inverse',\n neutral: 'bg-inverse-tertiary text-inverse',\n purple: 'bg-[var(--base-purple-700)] text-inverse',\n blue: 'bg-info text-inverse',\n },\n}\n\nexport const Badge = ({\n className,\n children,\n color = 'default',\n variant = 'default',\n}: BadgeProps) => {\n return (\n <span\n className={cn(\n 'ox-badge',\n `variant-${variant}`,\n 'inline-flex h-4 items-center whitespace-nowrap rounded-sm px-[3px] py-[1px] uppercase text-mono-sm',\n badgeColors[variant][color],\n className,\n )}\n >\n <span>{children}</span>\n </span>\n )\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\nimport type { MouseEventHandler } from 'react'\nimport { forwardRef } from 'react'\n\nimport { Spinner } from '../'\n\nexport const buttonSizes = ['sm', 'icon', 'base'] as const\nexport const variants = ['primary', 'secondary', 'ghost', 'danger'] as const\n\nexport type ButtonSize = typeof buttonSizes[number]\nexport type Variant = typeof variants[number]\n\nconst sizeStyle: Record<ButtonSize, string> = {\n sm: 'h-8 px-3 text-mono-sm svg:w-4',\n // meant for buttons that only contain a single icon\n icon: 'h-8 w-8 text-mono-sm svg:w-4',\n base: 'h-10 px-4 text-mono-sm svg:w-5',\n}\n\ntype ButtonStyleProps = {\n size?: ButtonSize\n variant?: Variant\n}\n\nexport const buttonStyle = ({\n size = 'base',\n variant = 'primary',\n}: ButtonStyleProps = {}) => {\n return cn(\n 'ox-button inline-flex items-center justify-center rounded align-top elevation-1 disabled:cursor-not-allowed',\n `btn-${variant}`,\n sizeStyle[size],\n variant === 'danger'\n ? 'focus:outline-destructive-secondary'\n : 'focus:outline-accent-secondary',\n )\n}\n\n/**\n * When the `disabled` prop is passed to the button we put it in a visually disabled state.\n * In that case we want to override the default mouse down and click behavior to simulate a\n * disabled state.\n */\nconst noop: MouseEventHandler<HTMLButtonElement> = (e) => {\n e.stopPropagation()\n e.preventDefault()\n}\n\nexport interface ButtonProps\n extends React.ComponentPropsWithRef<'button'>,\n ButtonStyleProps {\n innerClassName?: string\n loading?: boolean\n}\n\n// Use `forwardRef` so the ref points to the DOM element (not the React Component)\n// so it can be focused using the DOM API (eg. this.buttonRef.current.focus())\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n type = 'button',\n children,\n size,\n variant,\n className,\n loading,\n innerClassName,\n disabled,\n onClick,\n // needs to be a spread because we sometimes get passed arbitrary <button>\n // props by the parent\n ...rest\n },\n ref,\n ) => {\n const isDisabled = disabled || loading\n return (\n <button\n className={cn(buttonStyle({ size, variant }), className, {\n 'visually-disabled': isDisabled,\n })}\n ref={ref}\n type={type}\n onMouseDown={isDisabled ? noop : undefined}\n onClick={isDisabled ? noop : onClick}\n aria-disabled={isDisabled}\n {...rest}\n >\n {loading && <Spinner className=\"absolute\" variant={variant} />}\n <span className={cn('flex items-center', innerClassName, { invisible: loading })}>\n {children}\n </span>\n </button>\n )\n },\n)\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport cn from 'classnames'\nimport type { ReactNode } from 'react'\nimport { useEffect, useRef, useState } from 'react'\n\nexport const spinnerSizes = ['base', 'lg'] as const\nexport const spinnerVariants = ['primary', 'secondary', 'ghost', 'danger'] as const\nexport type SpinnerSize = typeof spinnerSizes[number]\nexport type SpinnerVariant = typeof spinnerVariants[number]\n\ninterface SpinnerProps {\n className?: string\n size?: SpinnerSize\n variant?: SpinnerVariant\n}\n\nexport const Spinner = ({\n className,\n size = 'base',\n variant = 'primary',\n}: SpinnerProps) => {\n const frameSize = size === 'lg' ? 36 : 12\n const center = size === 'lg' ? 18 : 6\n const radius = size === 'lg' ? 16 : 5\n const strokeWidth = size === 'lg' ? 3 : 2\n return (\n <svg\n width={frameSize}\n height={frameSize}\n viewBox={`0 0 ${frameSize + ' ' + frameSize}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-labelledby=\"Spinner\"\n className={cn('spinner', `spinner-${variant}`, `spinner-${size}`, className)}\n >\n <circle\n fill=\"none\"\n className=\"bg\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n cx={center}\n cy={center}\n r={radius}\n strokeOpacity={0.2}\n />\n <circle\n className=\"path\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n cx={center}\n cy={center}\n r={radius}\n />\n </svg>\n )\n}\n\ntype Props = {\n isLoading: boolean\n children?: ReactNode\n minTime?: number\n}\n\n/** Loading spinner that shows for a minimum of `minTime` */\nexport const SpinnerLoader = ({ isLoading, children = null, minTime = 500 }: Props) => {\n const [isVisible, setIsVisible] = useState(isLoading)\n const hideTimeout = useRef<NodeJS.Timeout | null>(null)\n const loadingStartTime = useRef<number>(0)\n\n useEffect(() => {\n if (isLoading) {\n setIsVisible(true)\n loadingStartTime.current = Date.now()\n } else {\n // Clear the hide timer if it's still running.\n if (hideTimeout.current) clearTimeout(hideTimeout.current)\n\n // turn the spinner off, making sure it showed for at least `minTime`\n const elapsedTime = Date.now() - loadingStartTime.current\n const remainingTime = Math.max(0, minTime - elapsedTime)\n if (remainingTime === 0) {\n setIsVisible(false) // might as well not use a timeout\n } else {\n hideTimeout.current = setTimeout(() => setIsVisible(false), remainingTime)\n }\n }\n\n return () => {\n if (hideTimeout.current) clearTimeout(hideTimeout.current)\n }\n }, [isLoading, minTime])\n\n return isVisible ? <Spinner /> : <>{children}</>\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport type {\n TabsContentProps,\n TabsListProps,\n TabsProps,\n TabsTriggerProps,\n} from '@radix-ui/react-tabs'\nimport { Content, List, Root, Trigger } from '@radix-ui/react-tabs'\nimport cn from 'classnames'\nimport type { SetRequired } from 'type-fest'\n\n// They don't require a default value, but without it there is no tab selected\n// by default.\nexport type TabsRootProps = SetRequired<TabsProps, 'defaultValue'>\n\nexport const Tabs = {\n Root: ({ className, ...props }: TabsRootProps) => (\n <Root {...props} className={cn('ox-tabs', className)} />\n ),\n Trigger: ({ children, className, ...props }: TabsTriggerProps) => (\n <Trigger {...props} className={cn('ox-tab', className)}>\n {/* this div needs to be here for the background on `ox-tab:hover > *` */}\n <div>{children}</div>\n </Trigger>\n ),\n List: ({ className, ...props }: TabsListProps) => (\n <List {...props} className={cn('ox-tabs-list', className)} />\n ),\n Content: ({ className, ...props }: TabsContentProps) => (\n <Content {...props} className={cn('ox-tabs-panel', className)} />\n ),\n}\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { Checkmark12Icon } from '@/icons/react'\nimport cn from 'classnames'\n\nimport { classed } from '../../utils'\n\nconst Check = () => (\n <Checkmark12Icon className=\"pointer-events-none absolute left-0.5 top-0.5 h-3 w-3 fill-current text-accent\" />\n)\n\nconst Indeterminate = classed.div`absolute w-2 h-0.5 left-1 top-[7px] bg-accent pointer-events-none`\n\nconst inputStyle = `\n appearance-none border border-default bg-default h-4 w-4 rounded-sm absolute left-0 outline-none\n disabled:cursor-not-allowed\n hover:border-hover hover:cursor-pointer\n checked:bg-accent-secondary checked:border-accent-secondary checked:hover:border-accent\n indeterminate:bg-accent-secondary indeterminate:border-accent hover:indeterminate:bg-accent-secondary-hover\n`\n\nexport type CheckboxProps = {\n indeterminate?: boolean\n children?: React.ReactNode\n className?: string\n} & Omit<React.ComponentProps<'input'>, 'type'>\n\n// ref function is from: https://davidwalsh.name/react-indeterminate. this makes\n// the native input work with indeterminate. you can't pass indeterminate as a\n// prop; it has to be set directly on the element through a ref. more elaborate\n// examples using forwardRef to allow passing ref from outside:\n// https://github.com/tannerlinsley/react-table/discussions/1989\n\n/** Checkbox component that handles label, styling, and indeterminate state */\nexport const Checkbox = ({\n indeterminate,\n children,\n className,\n ...inputProps\n}: CheckboxProps) => (\n <label className=\"inline-flex items-center\">\n <span className=\"relative h-4 w-4\">\n <input\n className={cn(inputStyle, className)}\n type=\"checkbox\"\n ref={(el) => el && (el.indeterminate = !!indeterminate)}\n {...inputProps}\n />\n {inputProps.checked && !indeterminate && <Check />}\n {indeterminate && <Indeterminate />}\n </span>\n\n {children && <span className=\"ml-2.5 text-sans-md text-secondary\">{children}</span>}\n </label>\n)\n","/*\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, you can obtain one at https://mozilla.org/MPL/2.0/.\n *\n * Copyright Oxide Computer Company\n */\nimport { SelectArrows6Icon } from '@/icons/react'\nimport { FloatingPortal, flip, offset, size, useFloating } from '@floating-ui/react'\nimport { Listbox as Select } from '@headlessui/react'\nimport cn from 'classnames'\nimport type { ReactNode } from 'react'\n\nimport { SpinnerLoader } from '~/src'\n\nexport type ListboxItem<Value extends string = string> = {\n value: Value\n} & (\n | { label: string; labelString?: never }\n // labelString is required when `label` is a `ReactElement` because we\n // need need a one-line string to display in the button when the item is\n // selected.\n | { label: ReactNode; labelString: string }\n)\n\nexport interface ListboxProps<Value extends string = string> {\n // null is allowed as a default empty value, but onChange will never be called with null\n selected: Value | null\n onChange: (value: Value) => void\n items: ListboxItem<Value>[]\n placeholder?: string\n className?: string\n disabled?: boolean\n hasError?: boolean\n name?: string\n isLoading?: boolean\n}\n\nexport const Listbox = <Value extends string = string>({\n name,\n selected,\n items,\n placeholder = 'Select an option',\n className,\n onChange,\n hasError = false,\n disabled,\n isLoading = false,\n ...props\n}: ListboxProps<Value>) => {\n const { refs, floatingStyles } = useFloating({\n middleware: [\n offset(12),\n flip(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n })\n },\n }),\n ],\n })\n\n const selectedItem = selected && items.find((i) => i.value === selected)\n const noItems = !isLoading && items.length === 0\n const isDisabled = disabled || noItems\n\n return (\n <div className={cn('relative', className)}>\n <Select\n value={selected}\n // you shouldn't ever be able to select null, but we check here anyway\n // to make TS happy so the calling code doesn't have to. note `val !==\n // null` because '' is falsy but potentially a valid value\n onChange={(val) => val !== null && onChange(val)}\n disabled={isDisabled || isLoading}\n >\n {({ open }) => (\n <>\n <Select.Button\n name={name}\n ref={refs.setReference}\n className={cn(\n `flex h-10 w-full items-center justify-between\n rounded border text-sans-md`,\n hasError\n ? 'focus-error border-error-secondary hover:border-error'\n : 'border-default hover:border-hover',\n open && 'ring-2 ring-accent-secondary',\n open && hasError && 'ring-error-secondary',\n isDisabled\n ? 'cursor-not-allowed text-disabled bg-disabled !border-default'\n : 'bg-default',\n isDisabled && hasError && '!border-error-secondary',\n )}\n {...props}\n >\n <div className=\"w-full px-3 text-left\">\n {selectedItem ? (\n // labelString is one line, which is what we need when label is a ReactNode\n selectedItem.labelString || selectedItem.label\n ) : (\n <span className=\"text-quaternary\">\n {noItems ? 'No items' : placeholder}\n </span>\n )}\n </div>\n {!isDisabled && <SpinnerLoader isLoading={isLoading} />}\n <div\n className=\"ml-3 flex h-[calc(100%-12px)] items-center border-l px-3 border-secondary\"\n aria-hidden\n >\n <SelectArrows6Icon className=\"h-[14px] w-2 text-tertiary\" />\n </div>\n </Select.Button>\n <FloatingPortal>\n <Select.Options\n ref={refs.setFloating}\n style={floatingStyles}\n className=\"ox-menu pointer-events-auto z-50 overflow-y-auto !outline-none\"\n >\n {items.map((item) => (\n <Select.Option\n key={item.value}\n value={item.value}\n className=\"relative border-b border-secondary last:border-0\"\n >\n {({ active, selected }) => (\n <div\n className={cn(\n 'ox-menu-item text-secondary',\n selected && 'is-selected',\n active && 'is-highlighted',\n )}\n >\n {item.label}\n </div>\n )}\n </Select.Option>\n ))}\n </Select.Options>\n </FloatingPortal>\n </>\n )}\n </Select>\n </div>\n )\n}\n"],"mappings":"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","names":["asciidoctor","Content","text","attrs","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsxs","Content","parse","cn","createElement","jsx","jsxs","jsx","cn","Fragment","jsx","jsxs","observer","maxIndex","ad","InlineConverter","jsx","Content","attrs","convertInlineCallout","asciidoctor","cn","jsx","cn","jsx","jsxs","size","cn","cn","useEffect","useRef","useState","Fragment","jsx","jsxs","size","Content","Root","Trigger","cn","jsx","cn","jsx","jsxs","cn","cn","Fragment","jsx","jsxs","cn","selected"]}
|