@unterberg/nivel 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +114 -0
  2. package/dist/{chunk-73NPVCDQ.js → chunk-D7IAGT53.js} +56 -26
  3. package/dist/chunk-D7IAGT53.js.map +1 -0
  4. package/dist/{chunk-3JJ6TYWL.js → chunk-G37565OX.js} +18 -26
  5. package/dist/chunk-G37565OX.js.map +1 -0
  6. package/dist/chunk-G7X2IWYG.js +1596 -0
  7. package/dist/chunk-G7X2IWYG.js.map +1 -0
  8. package/dist/{chunk-PHHK2BAF.js → chunk-HXZEI3YF.js} +38 -29
  9. package/dist/chunk-HXZEI3YF.js.map +1 -0
  10. package/dist/{chunk-4WTEOEV2.js → chunk-L6ZVB6XH.js} +3 -3
  11. package/dist/chunk-L6ZVB6XH.js.map +1 -0
  12. package/dist/{chunk-FLO5CJZH.js → chunk-PYYPYIBD.js} +10 -3
  13. package/dist/chunk-PYYPYIBD.js.map +1 -0
  14. package/dist/{chunk-45CLUNJW.js → chunk-UWP3C7JT.js} +12 -12
  15. package/dist/chunk-UWP3C7JT.js.map +1 -0
  16. package/dist/client.d.ts +4 -8
  17. package/dist/client.js +4 -4
  18. package/dist/index.d.ts +7 -12
  19. package/dist/index.js +4 -8
  20. package/dist/{code-blocks.js → mdx/code-blocks.js} +1 -1
  21. package/dist/mdx.js +4 -4
  22. package/dist/mdx.js.map +1 -1
  23. package/dist/runtime/client.d.ts +1 -1
  24. package/dist/runtime/client.js +4 -4
  25. package/dist/runtime/{index.d.ts → node.d.ts} +4 -2
  26. package/dist/runtime/{index.js → node.js} +4 -4
  27. package/dist/{types-mvLNHHrf.d.ts → types-j0kEkMA4.d.ts} +47 -24
  28. package/dist/{config.js → vike.js} +8 -8
  29. package/dist/vike.js.map +1 -0
  30. package/package.json +15 -14
  31. package/assets/nivel/decorators/pattern-light.png +0 -0
  32. package/assets/nivel/decorators/pattern.png +0 -0
  33. package/dist/chunk-3JJ6TYWL.js.map +0 -1
  34. package/dist/chunk-45CLUNJW.js.map +0 -1
  35. package/dist/chunk-4WTEOEV2.js.map +0 -1
  36. package/dist/chunk-62MBEYU7.js +0 -1091
  37. package/dist/chunk-62MBEYU7.js.map +0 -1
  38. package/dist/chunk-73NPVCDQ.js.map +0 -1
  39. package/dist/chunk-FLO5CJZH.js.map +0 -1
  40. package/dist/chunk-PHHK2BAF.js.map +0 -1
  41. package/dist/config.js.map +0 -1
  42. /package/dist/{code-blocks.d.ts → mdx/code-blocks.d.ts} +0 -0
  43. /package/dist/{code-blocks.js.map → mdx/code-blocks.js.map} +0 -0
  44. /package/dist/runtime/{index.js.map → node.js.map} +0 -0
  45. /package/dist/{config.d.ts → vike.d.ts} +0 -0
@@ -1,13 +1,13 @@
1
- // src/components/code-blocks/index.ts
1
+ // src/mdx/code-blocks/index.ts
2
2
  import { transformerNotationHighlight } from "@brillout/shiki-transformers";
3
3
  import { transformerNotationDiff, transformerNotationWordHighlight } from "@shikijs/transformers";
4
4
  import rehypePrettyCode from "rehype-pretty-code";
5
5
  import remarkDirective from "remark-directive";
6
6
 
7
- // src/components/code-blocks/rehypeMetaToProps.ts
7
+ // src/mdx/code-blocks/rehypeMetaToProps.ts
8
8
  import { visit } from "unist-util-visit";
9
9
 
10
- // src/components/code-blocks/meta.ts
10
+ // src/mdx/code-blocks/meta.ts
11
11
  var kebabCase = (value) => {
12
12
  return value.replace(/([a-z])([A-Z])/g, "$1-$2").replaceAll("_", "-").toLowerCase();
13
13
  };
@@ -63,7 +63,7 @@ var getCodeBlockPropsFromMeta = (meta) => {
63
63
  };
64
64
  };
65
65
 
66
- // src/components/code-blocks/rehypeMetaToProps.ts
66
+ // src/mdx/code-blocks/rehypeMetaToProps.ts
67
67
  var rehypeMetaToProps = () => {
68
68
  return (tree) => {
69
69
  visit(tree, "element", (node, _index, parent) => {
@@ -81,10 +81,10 @@ var rehypeMetaToProps = () => {
81
81
  };
82
82
  };
83
83
 
84
- // src/components/code-blocks/remarkChoiceGroup.ts
84
+ // src/mdx/code-blocks/remarkChoiceGroup.ts
85
85
  import { visit as visit2 } from "unist-util-visit";
86
86
 
87
- // src/components/code-blocks/generateChoiceGroupCode.ts
87
+ // src/mdx/code-blocks/generateChoiceGroupCode.ts
88
88
  import { valueToEstree } from "estree-util-value-to-estree";
89
89
  var BUILT_IN_CHOICE_GROUPS = {
90
90
  codeLang: {
@@ -194,7 +194,7 @@ var increaseLvl = (node) => {
194
194
  }
195
195
  };
196
196
 
197
- // src/components/code-blocks/remarkChoiceGroup.ts
197
+ // src/mdx/code-blocks/remarkChoiceGroup.ts
198
198
  var remarkChoiceGroup = () => {
199
199
  return (tree) => {
200
200
  visit2(tree, (node) => {
@@ -278,7 +278,7 @@ var filterChoices = (nodes) => {
278
278
  return filteredChoices;
279
279
  };
280
280
 
281
- // src/components/code-blocks/remarkDetype.ts
281
+ // src/mdx/code-blocks/remarkDetype.ts
282
282
  import { transform as detype } from "detype";
283
283
  import { visit as visit3 } from "unist-util-visit";
284
284
  var prettierOptions = {
@@ -525,7 +525,7 @@ var stripTypeSyntax = (line) => {
525
525
  return line.replace(/\??:\s*[A-Za-z_$][\w$.<>, |&[\]]*/g, "").replace(/\s+as\s+const\b/g, "").replace(/\s+as\s+[A-Za-z_$][\w$.<>, |&[\]]*/g, "");
526
526
  };
527
527
 
528
- // src/components/code-blocks/remarkPkgManager.ts
528
+ // src/mdx/code-blocks/remarkPkgManager.ts
529
529
  import convert_ from "npm-to-yarn";
530
530
  import { visit as visit4 } from "unist-util-visit";
531
531
  var convert = convert_;
@@ -574,7 +574,7 @@ var remarkPkgManager = () => {
574
574
  };
575
575
  };
576
576
 
577
- // src/components/code-blocks/shikiTransformerAutoLinks.ts
577
+ // src/mdx/code-blocks/shikiTransformerAutoLinks.ts
578
578
  var LINK_RE = /https:\/\/[^\s]*[^.,\s"'`]/g;
579
579
  var shikiTransformerAutoLinks = () => {
580
580
  return {
@@ -618,7 +618,7 @@ var shikiTransformerAutoLinks = () => {
618
618
  };
619
619
  };
620
620
 
621
- // src/components/code-blocks/index.ts
621
+ // src/mdx/code-blocks/index.ts
622
622
  var getCodeBlockMdxPlugins = () => {
623
623
  return {
624
624
  remarkPlugins: [remarkDirective, remarkDetype, remarkPkgManager, remarkChoiceGroup],
@@ -654,4 +654,4 @@ export {
654
654
  shikiTransformerAutoLinks,
655
655
  getCodeBlockMdxPlugins
656
656
  };
657
- //# sourceMappingURL=chunk-45CLUNJW.js.map
657
+ //# sourceMappingURL=chunk-UWP3C7JT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mdx/code-blocks/index.ts","../src/mdx/code-blocks/rehypeMetaToProps.ts","../src/mdx/code-blocks/meta.ts","../src/mdx/code-blocks/remarkChoiceGroup.ts","../src/mdx/code-blocks/generateChoiceGroupCode.ts","../src/mdx/code-blocks/remarkDetype.ts","../src/mdx/code-blocks/remarkPkgManager.ts","../src/mdx/code-blocks/shikiTransformerAutoLinks.ts"],"sourcesContent":["import { transformerNotationHighlight } from '@brillout/shiki-transformers'\nimport { transformerNotationDiff, transformerNotationWordHighlight } from '@shikijs/transformers'\nimport rehypePrettyCode from 'rehype-pretty-code'\nimport remarkDirective from 'remark-directive'\nimport { rehypeMetaToProps } from './rehypeMetaToProps.js'\nimport { remarkChoiceGroup } from './remarkChoiceGroup.js'\nimport { remarkDetype } from './remarkDetype.js'\nimport { remarkPkgManager } from './remarkPkgManager.js'\nimport { shikiTransformerAutoLinks } from './shikiTransformerAutoLinks.js'\n\nexport { getCodeBlockPropsFromMeta, parseMetaString } from './meta.js'\nexport { rehypeMetaToProps } from './rehypeMetaToProps.js'\nexport { remarkChoiceGroup } from './remarkChoiceGroup.js'\nexport { remarkDetype } from './remarkDetype.js'\nexport { remarkPkgManager } from './remarkPkgManager.js'\nexport { shikiTransformerAutoLinks } from './shikiTransformerAutoLinks.js'\n\nexport const getCodeBlockMdxPlugins = (): {\n remarkPlugins: any[]\n rehypePlugins: any[]\n} => {\n return {\n remarkPlugins: [remarkDirective, remarkDetype, remarkPkgManager, remarkChoiceGroup],\n rehypePlugins: [\n [\n rehypePrettyCode,\n {\n keepBackground: false,\n theme: {\n light: 'github-light',\n dark: 'one-dark-pro',\n },\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n shikiTransformerAutoLinks(),\n ],\n },\n ],\n rehypeMetaToProps,\n ],\n }\n}\n","import { visit } from 'unist-util-visit'\nimport { getCodeBlockPropsFromMeta } from './meta.js'\n\nexport const rehypeMetaToProps = () => {\n return (tree: unknown) => {\n visit(tree as any, 'element', (node: any, _index, parent: any) => {\n if (node.tagName !== 'code' || parent?.type !== 'element' || parent.tagName !== 'pre') {\n return\n }\n\n const meta = getCodeBlockPropsFromMeta(node.data?.meta)\n parent.properties ??= {}\n parent.properties = {\n ...parent.properties,\n ...meta.props,\n ...(meta.title ? { 'data-code-title': meta.title } : {}),\n }\n })\n }\n}\n","const kebabCase = (value: string) => {\n return value\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replaceAll('_', '-')\n .toLowerCase()\n}\n\ntype ParsedMeta<Name extends string = string> = {\n props: Partial<Record<Name, string>>\n rest: string\n tokens: ParsedMetaToken[]\n}\n\ntype ParsedMetaToken = {\n hasExplicitValue: boolean\n name: string\n raw: string\n value?: string\n}\n\nconst KEY_VALUE_PAIR_RE = /(?<name>[a-zA-Z_-]+)(?:=([^\"'\\s]+))?/g\nconst RESERVED_CODE_BLOCK_META_NAMES = new Set([\n 'choice',\n 'file-added',\n 'file-removed',\n 'hide-menu',\n 'max-width',\n 'ts-only',\n])\n\nexport const parseMetaString = <Name extends string = string>(meta: unknown, propNames?: Name[]): ParsedMeta<Name> => {\n if (typeof meta !== 'string' || meta.trim() === '') {\n return { props: {}, rest: '', tokens: [] }\n }\n\n const props: ParsedMeta['props'] = {}\n const tokens: ParsedMetaToken[] = []\n const rest = meta.replaceAll(KEY_VALUE_PAIR_RE, (match, name: string, value: string | undefined) => {\n const normalizedName = kebabCase(name)\n tokens.push({\n hasExplicitValue: value !== undefined,\n name: normalizedName,\n raw: match,\n value,\n })\n\n if (propNames && !propNames.includes(normalizedName as Name)) {\n return match\n }\n\n props[normalizedName] = value || 'true'\n return ''\n })\n\n return {\n props,\n rest: rest.trim(),\n tokens,\n }\n}\n\nexport const getCodeBlockPropsFromMeta = (meta: unknown) => {\n const parsed = parseMetaString(meta)\n const props = { ...parsed.props } as Record<string, string>\n const implicitTitleToken = parsed.tokens.find(\n (token) => !token.hasExplicitValue && !RESERVED_CODE_BLOCK_META_NAMES.has(token.name),\n )\n const explicitTitle = typeof props.title === 'string' && props.title.trim() ? props.title.trim() : null\n\n delete props.title\n if (implicitTitleToken) {\n delete props[implicitTitleToken.name]\n }\n\n return {\n props,\n title: explicitTitle ?? implicitTitleToken?.raw.trim() ?? null,\n }\n}\n","import { visit } from 'unist-util-visit'\nimport { generateChoiceGroupCode } from './generateChoiceGroupCode.js'\nimport { parseMetaString } from './meta.js'\n\nexport const remarkChoiceGroup = () => {\n return (tree: unknown) => {\n visit(tree as any, (node: any) => {\n if (node.type === 'code' && node.meta) {\n const meta = parseMetaString(node.meta, ['choice'])\n const choice = meta.props.choice\n node.meta = meta.rest\n\n if (choice) {\n node.data ??= {}\n node.data.customDataChoice = choice\n node.data.customDataFilter = 'explicitChoice'\n }\n }\n\n if (node.type === 'containerDirective' && node.name === 'Choice') {\n const choice = typeof node.attributes?.id === 'string' ? node.attributes.id : null\n if (!choice) {\n return\n }\n\n node.data ??= {}\n node.data.customDataChoice = choice\n node.data.customDataFilter = node.type\n node.attributes = {}\n }\n })\n\n visit(tree as any, (node: any) => {\n if (!Array.isArray(node.children)) {\n return\n }\n\n let start = -1\n let end = 0\n\n const processRange = () => {\n if (start === -1 || start === end) {\n return\n }\n\n const nodes = node.children.slice(start, end)\n const replacements = filterChoices(nodes).map((choiceNodes) => generateChoiceGroupCode(choiceNodes, node))\n node.children.splice(start, end - start, ...replacements)\n end = start + replacements.length\n start = -1\n }\n\n for (; end < node.children.length; end += 1) {\n const child = node.children[end]\n\n if (!['code', 'mdxJsxFlowElement', 'containerDirective'].includes(child?.type)) {\n processRange()\n continue\n }\n\n if (!child.data?.customDataChoice) {\n processRange()\n continue\n }\n\n if (start === -1) {\n start = end\n }\n }\n\n processRange()\n })\n }\n}\n\nconst filterChoices = (nodes: any[]) => {\n const filteredChoices: Array<Array<{ choiceValue: string; children: any[] }>> = []\n const filters = [...new Set(nodes.map((node) => node.data?.customDataFilter).filter(Boolean))]\n\n for (const filter of filters) {\n const nodesByChoice = new Map<string, any[]>()\n\n for (const node of nodes.filter((candidate) => candidate.data?.customDataFilter === filter)) {\n const choice = node.data?.customDataChoice\n if (!choice) {\n continue\n }\n\n node.data.customDataChoice = undefined\n const choiceNodes = nodesByChoice.get(choice) ?? []\n choiceNodes.push(node)\n nodesByChoice.set(choice, choiceNodes)\n }\n\n filteredChoices.push(\n [...nodesByChoice].map(([choiceValue, children]) => ({\n choiceValue,\n children,\n })),\n )\n }\n\n return filteredChoices\n}\n","import { valueToEstree } from 'estree-util-value-to-estree'\nimport type { MdxJsxAttribute, MdxJsxFlowElement } from 'mdast-util-mdx-jsx'\n\ntype ChoiceNode = {\n choiceValue: string\n children: any[]\n}\n\nconst BUILT_IN_CHOICE_GROUPS = {\n codeLang: {\n choices: ['JavaScript', 'TypeScript'],\n default: 'JavaScript',\n },\n pkgManager: {\n choices: ['npm', 'pnpm', 'Bun', 'Yarn'],\n default: 'npm',\n },\n} as const\n\nconst getChoiceGroup = (choicesRaw: string[]) => {\n const choices = [...new Set(choicesRaw.filter(Boolean))]\n\n for (const [name, group] of Object.entries(BUILT_IN_CHOICE_GROUPS)) {\n if (!choices.every((choice) => group.choices.includes(choice as never))) {\n continue\n }\n\n return {\n name,\n choices: group.choices,\n default: group.default,\n disabled: group.choices.filter((choice) => !choices.includes(choice)),\n }\n }\n\n return {\n name: `custom:${choices.join('|')}`,\n choices,\n default: choices[0] ?? '',\n disabled: [] as string[],\n }\n}\n\nexport const generateChoiceGroupCode = (choiceNodes: ChoiceNode[], parent?: any): MdxJsxFlowElement => {\n const choiceGroup = getChoiceGroup(choiceNodes.map((choiceNode) => choiceNode.choiceValue))\n const mergedChoiceNodes = choiceGroup.choices.map((choice) => {\n const choiceNode = choiceNodes.find((node) => node.choiceValue === choice)\n\n return {\n choiceValue: choice,\n children: choiceNode?.children ?? [],\n }\n })\n\n const attributes: MdxJsxAttribute[] = [\n {\n type: 'mdxJsxAttribute',\n name: 'choiceGroup',\n value: {\n type: 'mdxJsxAttributeValueExpression',\n value: '',\n data: {\n estree: {\n type: 'Program',\n sourceType: 'module',\n comments: [],\n body: [\n {\n type: 'ExpressionStatement',\n expression: valueToEstree(choiceGroup) as any,\n } as any,\n ],\n } as any,\n },\n },\n },\n ]\n\n if (choiceNodes.length === 1) {\n attributes.push({ type: 'mdxJsxAttribute', name: 'hide' })\n }\n\n attributes.push({\n type: 'mdxJsxAttribute',\n name: 'lvl',\n value: `${parent?.type === 'mdxJsxFlowElement' ? 1 : 0}`,\n })\n\n const children: MdxJsxFlowElement[] = mergedChoiceNodes.map((choiceNode) => {\n const choiceChildren =\n choiceNode.children.length > 0 && choiceNode.children.every((node) => node.type === 'containerDirective')\n ? choiceNode.children.flatMap((node) => node.children ?? [])\n : choiceNode.children\n\n for (const child of choiceChildren) {\n increaseLvl(child)\n }\n\n return {\n type: 'mdxJsxFlowElement',\n name: 'div',\n attributes: [\n {\n type: 'mdxJsxAttribute',\n name: 'data-choice-value',\n value: choiceNode.choiceValue,\n },\n { type: 'mdxJsxAttribute', name: 'className', value: 'choice' },\n ],\n children: choiceChildren,\n }\n })\n\n return {\n type: 'mdxJsxFlowElement',\n name: 'ChoiceGroup',\n attributes,\n children,\n }\n}\n\nconst increaseLvl = (node: any) => {\n if (node?.type !== 'mdxJsxFlowElement' || node.name !== 'ChoiceGroup') {\n return\n }\n\n const attribute = node.attributes.find(\n (candidate: any) => candidate.type === 'mdxJsxAttribute' && candidate.name === 'lvl',\n )\n\n if (typeof attribute?.value === 'string') {\n attribute.value = `${Number(attribute.value) + 1}`\n }\n}\n","import { transform as detype } from 'detype'\nimport { visit } from 'unist-util-visit'\nimport { generateChoiceGroupCode } from './generateChoiceGroupCode.js'\nimport { parseMetaString } from './meta.js'\n\nconst prettierOptions = {\n semi: false,\n singleQuote: true,\n trailingComma: 'none',\n} as const\n\nexport const remarkDetype = () => {\n return async (tree: unknown, file: any) => {\n const codeNodes: Array<{ codeBlock: any; index: number; parent: any }> = []\n\n visit(tree as any, 'code', (node: any, index: number | undefined, parent: any) => {\n if (!parent || typeof index !== 'number') {\n return\n }\n\n if (!['ts', 'tsx', 'vue', 'yaml'].includes(node.lang ?? '')) {\n return\n }\n\n if (typeof node.meta === 'string' && node.meta.includes('ts-only')) {\n return\n }\n\n codeNodes.push({ codeBlock: node, index, parent })\n })\n\n for (const node of [...codeNodes].reverse()) {\n if (node.codeBlock.lang === 'yaml') {\n transformYaml(node)\n } else {\n await transformTsToJs(node, file)\n }\n }\n }\n}\n\nconst transformYaml = (node: { codeBlock: any; index: number; parent: any }) => {\n const { codeBlock, index, parent } = node\n const codeBlockContentJs = replaceFileNameSuffixes(codeBlock.value)\n\n if (codeBlockContentJs === codeBlock.value) {\n return\n }\n\n const meta = parseMetaString(codeBlock.meta, ['choice'])\n const choice = meta.props.choice\n codeBlock.meta = meta.rest\n\n const yamlJsCode = {\n ...codeBlock,\n value: codeBlockContentJs,\n }\n\n const replacement = generateChoiceGroupCode([\n { choiceValue: 'JavaScript', children: [yamlJsCode] },\n { choiceValue: 'TypeScript', children: [codeBlock] },\n ])\n\n replacement.attributes.push({ type: 'mdxJsxAttribute', name: 'hide' })\n replacement.data ??= {} as any\n ;(replacement.data as any).customDataChoice = choice\n ;(replacement.data as any).customDataFilter = 'codeLang'\n parent.children.splice(index, 1, replacement)\n}\n\nconst transformTsToJs = async (node: { codeBlock: any; index: number; parent: any }, file: any) => {\n const { codeBlock, index, parent } = node\n const meta = parseMetaString(codeBlock.meta, ['max-width', 'choice'])\n const maxWidth = Number(meta.props['max-width'])\n const choice = meta.props.choice\n codeBlock.meta = meta.rest\n\n codeBlock.data ??= {}\n codeBlock.data.customDataChoice = choice\n codeBlock.data.customDataFilter = 'codeLang'\n\n if (choice === 'TypeScript') {\n return\n }\n\n const codeBlockReplacedJs = replaceFileNameSuffixes(codeBlock.value)\n let codeBlockContentJs = ''\n\n try {\n codeBlockContentJs = await detype(codeBlockReplacedJs, `snippet.${codeBlock.lang}`, {\n customizeBabelConfig(config) {\n if (!config.presets || config.presets.length !== 1) {\n return\n }\n\n config.presets = [[config.presets[0], { onlyRemoveTypeImports: true }]]\n },\n removeTsComments: true,\n prettierOptions: {\n ...prettierOptions,\n printWidth: Number.isFinite(maxWidth) && maxWidth > 0 ? maxWidth : 99,\n },\n })\n } catch (error) {\n console.error(\n [\n `Failed to detype code block in ${file?.path ?? 'an MDX file'}.`,\n error instanceof Error ? error.message : String(error),\n ].join('\\n'),\n )\n return\n }\n\n codeBlockContentJs = cleanUpCode(codeBlockContentJs.trimEnd(), true)\n codeBlock.value = cleanUpCode(codeBlock.value)\n codeBlockContentJs = preserveSourceLineBreaks(codeBlock.value, codeBlockContentJs)\n codeBlockContentJs = preserveSourceBlankLines(codeBlock.value, codeBlockContentJs)\n\n if (codeBlockContentJs === codeBlock.value) {\n return\n }\n\n const tsCode = { ...codeBlock, lang: codeBlock.lang }\n const jsCode = {\n ...codeBlock,\n lang: String(codeBlock.lang).replace('t', 'j'),\n value: codeBlockContentJs,\n }\n\n const replacement = generateChoiceGroupCode([\n { choiceValue: 'JavaScript', children: [jsCode] },\n { choiceValue: 'TypeScript', children: [tsCode] },\n ])\n\n if (codeBlockReplacedJs === codeBlockContentJs) {\n replacement.attributes.push({ type: 'mdxJsxAttribute', name: 'hide' })\n }\n\n replacement.data ??= {} as any\n ;(replacement.data as any).customDataChoice = codeBlock.data.customDataChoice\n ;(replacement.data as any).customDataFilter = codeBlock.data.customDataFilter\n parent.children.splice(index, 1, replacement)\n}\n\nconst replaceFileNameSuffixes = (value: string) => value.replaceAll('.ts', '.js')\n\nconst cleanUpCode = (code: string, isJsCode = false) => {\n if (isJsCode) {\n code = correctCodeDiffComments(code)\n }\n\n return processMagicComments(code)\n}\n\nconst processMagicComments = (code: string) => {\n const renameCommentRe = /^\\s*\\/\\/\\s@docpress-replace\\s([^ ]+) ([^ ]+)\\n/gm\n const matches = Array.from(code.matchAll(renameCommentRe))\n\n for (let index = matches.length - 1; index >= 0; index -= 1) {\n const match = matches[index]\n if (!match) {\n continue\n }\n\n const [fullMatch, renameFrom, renameTo] = match\n code = code.split(fullMatch).join('').replaceAll(renameFrom, renameTo)\n }\n\n return code.replaceAll('// @docpress-uncomment ', '')\n}\n\nconst correctCodeDiffComments = (code: string) => {\n return code.replaceAll(/\\n\\s*\\/\\/\\s\\[!code.+\\]/g, (codeDiff) => codeDiff.trimStart())\n}\n\nconst preserveSourceLineBreaks = (sourceCode: string, outputCode: string) => {\n const multilineSegments = collectMultilineSourceSegments(sourceCode)\n\n if (multilineSegments.length === 0) {\n return outputCode\n }\n\n const outputLines = outputCode.split('\\n')\n\n for (const segmentLines of multilineSegments) {\n const segmentNormalized = normalizeCodeSegment(segmentLines.join('\\n'))\n\n if (!segmentNormalized) {\n continue\n }\n\n for (let start = 0; start < outputLines.length; start += 1) {\n let replaced = false\n\n for (let size = 1; size <= segmentLines.length; size += 1) {\n if (start + size > outputLines.length) {\n break\n }\n\n const outputSegment = outputLines.slice(start, start + size)\n\n if (normalizeCodeSegment(outputSegment.join('\\n')) !== segmentNormalized) {\n continue\n }\n\n if (outputSegment.join('\\n') !== segmentLines.join('\\n')) {\n outputLines.splice(start, size, ...segmentLines)\n }\n\n start += segmentLines.length - 1\n replaced = true\n break\n }\n\n if (replaced) {\n break\n }\n }\n }\n\n return outputLines.join('\\n')\n}\n\nconst collectMultilineSourceSegments = (code: string) => {\n const lines = code.split('\\n')\n const segments: string[][] = []\n let paragraphStart = -1\n\n for (let index = 0; index <= lines.length; index += 1) {\n if (index < lines.length && lines[index]?.trim() !== '') {\n if (paragraphStart === -1) {\n paragraphStart = index\n }\n continue\n }\n\n if (paragraphStart !== -1) {\n const paragraphEnd = index - 1\n\n for (let size = paragraphEnd - paragraphStart + 1; size >= 2; size -= 1) {\n for (let start = paragraphStart; start + size - 1 <= paragraphEnd; start += 1) {\n segments.push(lines.slice(start, start + size).map(replaceFileNameSuffixes))\n }\n }\n }\n\n paragraphStart = -1\n }\n\n return segments\n}\n\nconst preserveSourceBlankLines = (sourceCode: string, outputCode: string) => {\n const blankLineAnchors = collectBlankLineAnchors(sourceCode)\n\n if (blankLineAnchors.length === 0) {\n return outputCode\n }\n\n const outputLines = outputCode.split('\\n')\n let searchFrom = 0\n\n for (const anchor of blankLineAnchors) {\n const lineIndex = outputLines.findIndex((line, index) => index >= searchFrom && normalizeCodeLine(line) === anchor)\n\n if (lineIndex <= 0) {\n continue\n }\n\n if (outputLines[lineIndex - 1]?.trim() !== '') {\n outputLines.splice(lineIndex, 0, '')\n searchFrom = lineIndex + 2\n } else {\n searchFrom = lineIndex + 1\n }\n }\n\n return outputLines.join('\\n')\n}\n\nconst collectBlankLineAnchors = (code: string) => {\n const lines = code.split('\\n')\n const anchors: string[] = []\n\n for (let index = 1; index < lines.length; index += 1) {\n if (lines[index]?.trim() !== '' || lines[index - 1]?.trim() === '') {\n continue\n }\n\n let nextLineIndex = index + 1\n\n while (nextLineIndex < lines.length && lines[nextLineIndex]?.trim() === '') {\n nextLineIndex += 1\n }\n\n const anchor = lines[nextLineIndex]\n\n if (anchor) {\n anchors.push(normalizeCodeLine(anchor))\n }\n }\n\n return anchors\n}\n\nconst normalizeCodeLine = (line: string) => {\n return stripTypeSyntax(replaceFileNameSuffixes(line)).trim().replace(/\\s+/g, ' ')\n}\n\nconst normalizeCodeSegment = (code: string) => {\n return replaceFileNameSuffixes(code).replace(/\\s+/g, '')\n}\n\nconst stripTypeSyntax = (line: string) => {\n return line\n .replace(/\\??:\\s*[A-Za-z_$][\\w$.<>, |&[\\]]*/g, '')\n .replace(/\\s+as\\s+const\\b/g, '')\n .replace(/\\s+as\\s+[A-Za-z_$][\\w$.<>, |&[\\]]*/g, '')\n}\n","import convert_ from 'npm-to-yarn'\nimport { visit } from 'unist-util-visit'\nimport { generateChoiceGroupCode } from './generateChoiceGroupCode.js'\nimport { parseMetaString } from './meta.js'\n\nconst convert: (input: string, target: 'npm' | 'pnpm' | 'bun' | 'yarn') => string = convert_\n\nconst PACKAGE_MANAGERS = ['pnpm', 'Bun', 'Yarn'] as const\n\nexport const remarkPkgManager = () => {\n return (tree: unknown) => {\n visit(tree as any, 'code', (node: any, index: number | undefined, parent: any) => {\n if (!parent || typeof index !== 'number') {\n return\n }\n\n if (!['bash', 'sh', 'shell'].includes(node.lang ?? '')) {\n return\n }\n\n if (node.value.includes('pnpm')) {\n return\n }\n\n if (!node.value.includes('npm ') && !node.value.includes('npx ')) {\n return\n }\n\n let choice: string | undefined\n if (node.meta) {\n const meta = parseMetaString(node.meta, ['choice'])\n choice = meta.props.choice\n node.meta = meta.rest\n }\n\n node.value = node.value.replaceAll('npm i ', 'npm install ')\n\n const nodes = new Map<string, any>()\n nodes.set('npm', node)\n\n for (const packageManager of PACKAGE_MANAGERS) {\n nodes.set(packageManager, {\n ...node,\n value: convert(node.value, packageManager.toLowerCase() as 'pnpm' | 'bun' | 'yarn'),\n })\n }\n\n const replacement = generateChoiceGroupCode(\n [...nodes].map(([choiceValue, childNode]) => ({\n choiceValue,\n children: [childNode],\n })),\n )\n\n replacement.data ??= {} as any\n ;(replacement.data as any).customDataChoice = choice\n ;(replacement.data as any).customDataFilter = replacement.type\n parent.children.splice(index, 1, replacement)\n })\n }\n}\n","import type { ShikiTransformer } from 'shiki'\n\nconst LINK_RE = /https:\\/\\/[^\\s]*[^.,\\s\"'`]/g\n\nexport const shikiTransformerAutoLinks = (): ShikiTransformer => {\n return {\n name: 'solid-docpress-shiki-autolinks',\n span(span) {\n if (span.children.length !== 1) {\n return\n }\n\n let child = span.children[0]\n if (child.type !== 'text') {\n return\n }\n\n const matches = Array.from(child.value.matchAll(LINK_RE)).filter(([href]) => !href.includes('${'))\n if (matches.length === 0) {\n return\n }\n\n const links = matches\n .map((match) => ({ href: match[0], index: match.index ?? 0 }))\n .sort((left, right) => right.index - left.index)\n\n const nextChildren: typeof span.children = []\n\n for (const { href, index } of links) {\n const endIndex = index + href.length\n const trailingText = child.value.slice(endIndex)\n\n if (trailingText) {\n nextChildren.unshift({ type: 'text', value: trailingText })\n }\n\n nextChildren.unshift({\n type: 'element',\n tagName: 'a',\n properties: { href },\n children: [{ type: 'text', value: href }],\n })\n\n child = {\n type: 'text',\n value: child.value.slice(0, index),\n }\n }\n\n if (child.value) {\n nextChildren.unshift(child)\n }\n\n span.children = nextChildren\n },\n }\n}\n"],"mappings":";AAAA,SAAS,oCAAoC;AAC7C,SAAS,yBAAyB,wCAAwC;AAC1E,OAAO,sBAAsB;AAC7B,OAAO,qBAAqB;;;ACH5B,SAAS,aAAa;;;ACAtB,IAAM,YAAY,CAAC,UAAkB;AACnC,SAAO,MACJ,QAAQ,mBAAmB,OAAO,EAClC,WAAW,KAAK,GAAG,EACnB,YAAY;AACjB;AAeA,IAAM,oBAAoB;AAC1B,IAAM,iCAAiC,oBAAI,IAAI;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,kBAAkB,CAA+B,MAAe,cAAyC;AACpH,MAAI,OAAO,SAAS,YAAY,KAAK,KAAK,MAAM,IAAI;AAClD,WAAO,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,EAAE;AAAA,EAC3C;AAEA,QAAM,QAA6B,CAAC;AACpC,QAAM,SAA4B,CAAC;AACnC,QAAM,OAAO,KAAK,WAAW,mBAAmB,CAAC,OAAO,MAAc,UAA8B;AAClG,UAAM,iBAAiB,UAAU,IAAI;AACrC,WAAO,KAAK;AAAA,MACV,kBAAkB,UAAU;AAAA,MAC5B,MAAM;AAAA,MACN,KAAK;AAAA,MACL;AAAA,IACF,CAAC;AAED,QAAI,aAAa,CAAC,UAAU,SAAS,cAAsB,GAAG;AAC5D,aAAO;AAAA,IACT;AAEA,UAAM,cAAc,IAAI,SAAS;AACjC,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA,MAAM,KAAK,KAAK;AAAA,IAChB;AAAA,EACF;AACF;AAEO,IAAM,4BAA4B,CAAC,SAAkB;AAC1D,QAAM,SAAS,gBAAgB,IAAI;AACnC,QAAM,QAAQ,EAAE,GAAG,OAAO,MAAM;AAChC,QAAM,qBAAqB,OAAO,OAAO;AAAA,IACvC,CAAC,UAAU,CAAC,MAAM,oBAAoB,CAAC,+BAA+B,IAAI,MAAM,IAAI;AAAA,EACtF;AACA,QAAM,gBAAgB,OAAO,MAAM,UAAU,YAAY,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,KAAK,IAAI;AAEnG,SAAO,MAAM;AACb,MAAI,oBAAoB;AACtB,WAAO,MAAM,mBAAmB,IAAI;AAAA,EACtC;AAEA,SAAO;AAAA,IACL;AAAA,IACA,OAAO,iBAAiB,oBAAoB,IAAI,KAAK,KAAK;AAAA,EAC5D;AACF;;;AD3EO,IAAM,oBAAoB,MAAM;AACrC,SAAO,CAAC,SAAkB;AACxB,UAAM,MAAa,WAAW,CAAC,MAAW,QAAQ,WAAgB;AAChE,UAAI,KAAK,YAAY,UAAU,QAAQ,SAAS,aAAa,OAAO,YAAY,OAAO;AACrF;AAAA,MACF;AAEA,YAAM,OAAO,0BAA0B,KAAK,MAAM,IAAI;AACtD,aAAO,eAAe,CAAC;AACvB,aAAO,aAAa;AAAA,QAClB,GAAG,OAAO;AAAA,QACV,GAAG,KAAK;AAAA,QACR,GAAI,KAAK,QAAQ,EAAE,mBAAmB,KAAK,MAAM,IAAI,CAAC;AAAA,MACxD;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AEnBA,SAAS,SAAAA,cAAa;;;ACAtB,SAAS,qBAAqB;AAQ9B,IAAM,yBAAyB;AAAA,EAC7B,UAAU;AAAA,IACR,SAAS,CAAC,cAAc,YAAY;AAAA,IACpC,SAAS;AAAA,EACX;AAAA,EACA,YAAY;AAAA,IACV,SAAS,CAAC,OAAO,QAAQ,OAAO,MAAM;AAAA,IACtC,SAAS;AAAA,EACX;AACF;AAEA,IAAM,iBAAiB,CAAC,eAAyB;AAC/C,QAAM,UAAU,CAAC,GAAG,IAAI,IAAI,WAAW,OAAO,OAAO,CAAC,CAAC;AAEvD,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,sBAAsB,GAAG;AAClE,QAAI,CAAC,QAAQ,MAAM,CAAC,WAAW,MAAM,QAAQ,SAAS,MAAe,CAAC,GAAG;AACvE;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA,SAAS,MAAM;AAAA,MACf,SAAS,MAAM;AAAA,MACf,UAAU,MAAM,QAAQ,OAAO,CAAC,WAAW,CAAC,QAAQ,SAAS,MAAM,CAAC;AAAA,IACtE;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM,UAAU,QAAQ,KAAK,GAAG,CAAC;AAAA,IACjC;AAAA,IACA,SAAS,QAAQ,CAAC,KAAK;AAAA,IACvB,UAAU,CAAC;AAAA,EACb;AACF;AAEO,IAAM,0BAA0B,CAAC,aAA2B,WAAoC;AACrG,QAAM,cAAc,eAAe,YAAY,IAAI,CAAC,eAAe,WAAW,WAAW,CAAC;AAC1F,QAAM,oBAAoB,YAAY,QAAQ,IAAI,CAAC,WAAW;AAC5D,UAAM,aAAa,YAAY,KAAK,CAAC,SAAS,KAAK,gBAAgB,MAAM;AAEzE,WAAO;AAAA,MACL,aAAa;AAAA,MACb,UAAU,YAAY,YAAY,CAAC;AAAA,IACrC;AAAA,EACF,CAAC;AAED,QAAM,aAAgC;AAAA,IACpC;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,UACJ,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,YACZ,UAAU,CAAC;AAAA,YACX,MAAM;AAAA,cACJ;AAAA,gBACE,MAAM;AAAA,gBACN,YAAY,cAAc,WAAW;AAAA,cACvC;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,YAAY,WAAW,GAAG;AAC5B,eAAW,KAAK,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,EAC3D;AAEA,aAAW,KAAK;AAAA,IACd,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO,GAAG,QAAQ,SAAS,sBAAsB,IAAI,CAAC;AAAA,EACxD,CAAC;AAED,QAAM,WAAgC,kBAAkB,IAAI,CAAC,eAAe;AAC1E,UAAM,iBACJ,WAAW,SAAS,SAAS,KAAK,WAAW,SAAS,MAAM,CAAC,SAAS,KAAK,SAAS,oBAAoB,IACpG,WAAW,SAAS,QAAQ,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,IACzD,WAAW;AAEjB,eAAW,SAAS,gBAAgB;AAClC,kBAAY,KAAK;AAAA,IACnB;AAEA,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,OAAO,WAAW;AAAA,QACpB;AAAA,QACA,EAAE,MAAM,mBAAmB,MAAM,aAAa,OAAO,SAAS;AAAA,MAChE;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAM,cAAc,CAAC,SAAc;AACjC,MAAI,MAAM,SAAS,uBAAuB,KAAK,SAAS,eAAe;AACrE;AAAA,EACF;AAEA,QAAM,YAAY,KAAK,WAAW;AAAA,IAChC,CAAC,cAAmB,UAAU,SAAS,qBAAqB,UAAU,SAAS;AAAA,EACjF;AAEA,MAAI,OAAO,WAAW,UAAU,UAAU;AACxC,cAAU,QAAQ,GAAG,OAAO,UAAU,KAAK,IAAI,CAAC;AAAA,EAClD;AACF;;;ADjIO,IAAM,oBAAoB,MAAM;AACrC,SAAO,CAAC,SAAkB;AACxB,IAAAC,OAAM,MAAa,CAAC,SAAc;AAChC,UAAI,KAAK,SAAS,UAAU,KAAK,MAAM;AACrC,cAAM,OAAO,gBAAgB,KAAK,MAAM,CAAC,QAAQ,CAAC;AAClD,cAAM,SAAS,KAAK,MAAM;AAC1B,aAAK,OAAO,KAAK;AAEjB,YAAI,QAAQ;AACV,eAAK,SAAS,CAAC;AACf,eAAK,KAAK,mBAAmB;AAC7B,eAAK,KAAK,mBAAmB;AAAA,QAC/B;AAAA,MACF;AAEA,UAAI,KAAK,SAAS,wBAAwB,KAAK,SAAS,UAAU;AAChE,cAAM,SAAS,OAAO,KAAK,YAAY,OAAO,WAAW,KAAK,WAAW,KAAK;AAC9E,YAAI,CAAC,QAAQ;AACX;AAAA,QACF;AAEA,aAAK,SAAS,CAAC;AACf,aAAK,KAAK,mBAAmB;AAC7B,aAAK,KAAK,mBAAmB,KAAK;AAClC,aAAK,aAAa,CAAC;AAAA,MACrB;AAAA,IACF,CAAC;AAED,IAAAA,OAAM,MAAa,CAAC,SAAc;AAChC,UAAI,CAAC,MAAM,QAAQ,KAAK,QAAQ,GAAG;AACjC;AAAA,MACF;AAEA,UAAI,QAAQ;AACZ,UAAI,MAAM;AAEV,YAAM,eAAe,MAAM;AACzB,YAAI,UAAU,MAAM,UAAU,KAAK;AACjC;AAAA,QACF;AAEA,cAAM,QAAQ,KAAK,SAAS,MAAM,OAAO,GAAG;AAC5C,cAAM,eAAe,cAAc,KAAK,EAAE,IAAI,CAAC,gBAAgB,wBAAwB,aAAa,IAAI,CAAC;AACzG,aAAK,SAAS,OAAO,OAAO,MAAM,OAAO,GAAG,YAAY;AACxD,cAAM,QAAQ,aAAa;AAC3B,gBAAQ;AAAA,MACV;AAEA,aAAO,MAAM,KAAK,SAAS,QAAQ,OAAO,GAAG;AAC3C,cAAM,QAAQ,KAAK,SAAS,GAAG;AAE/B,YAAI,CAAC,CAAC,QAAQ,qBAAqB,oBAAoB,EAAE,SAAS,OAAO,IAAI,GAAG;AAC9E,uBAAa;AACb;AAAA,QACF;AAEA,YAAI,CAAC,MAAM,MAAM,kBAAkB;AACjC,uBAAa;AACb;AAAA,QACF;AAEA,YAAI,UAAU,IAAI;AAChB,kBAAQ;AAAA,QACV;AAAA,MACF;AAEA,mBAAa;AAAA,IACf,CAAC;AAAA,EACH;AACF;AAEA,IAAM,gBAAgB,CAAC,UAAiB;AACtC,QAAM,kBAA0E,CAAC;AACjF,QAAM,UAAU,CAAC,GAAG,IAAI,IAAI,MAAM,IAAI,CAAC,SAAS,KAAK,MAAM,gBAAgB,EAAE,OAAO,OAAO,CAAC,CAAC;AAE7F,aAAW,UAAU,SAAS;AAC5B,UAAM,gBAAgB,oBAAI,IAAmB;AAE7C,eAAW,QAAQ,MAAM,OAAO,CAAC,cAAc,UAAU,MAAM,qBAAqB,MAAM,GAAG;AAC3F,YAAM,SAAS,KAAK,MAAM;AAC1B,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AAEA,WAAK,KAAK,mBAAmB;AAC7B,YAAM,cAAc,cAAc,IAAI,MAAM,KAAK,CAAC;AAClD,kBAAY,KAAK,IAAI;AACrB,oBAAc,IAAI,QAAQ,WAAW;AAAA,IACvC;AAEA,oBAAgB;AAAA,MACd,CAAC,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC,aAAa,QAAQ,OAAO;AAAA,QACnD;AAAA,QACA;AAAA,MACF,EAAE;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;;;AEvGA,SAAS,aAAa,cAAc;AACpC,SAAS,SAAAC,cAAa;AAItB,IAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,aAAa;AAAA,EACb,eAAe;AACjB;AAEO,IAAM,eAAe,MAAM;AAChC,SAAO,OAAO,MAAe,SAAc;AACzC,UAAM,YAAmE,CAAC;AAE1E,IAAAC,OAAM,MAAa,QAAQ,CAAC,MAAW,OAA2B,WAAgB;AAChF,UAAI,CAAC,UAAU,OAAO,UAAU,UAAU;AACxC;AAAA,MACF;AAEA,UAAI,CAAC,CAAC,MAAM,OAAO,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,EAAE,GAAG;AAC3D;AAAA,MACF;AAEA,UAAI,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,SAAS,GAAG;AAClE;AAAA,MACF;AAEA,gBAAU,KAAK,EAAE,WAAW,MAAM,OAAO,OAAO,CAAC;AAAA,IACnD,CAAC;AAED,eAAW,QAAQ,CAAC,GAAG,SAAS,EAAE,QAAQ,GAAG;AAC3C,UAAI,KAAK,UAAU,SAAS,QAAQ;AAClC,sBAAc,IAAI;AAAA,MACpB,OAAO;AACL,cAAM,gBAAgB,MAAM,IAAI;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,gBAAgB,CAAC,SAAyD;AAC9E,QAAM,EAAE,WAAW,OAAO,OAAO,IAAI;AACrC,QAAM,qBAAqB,wBAAwB,UAAU,KAAK;AAElE,MAAI,uBAAuB,UAAU,OAAO;AAC1C;AAAA,EACF;AAEA,QAAM,OAAO,gBAAgB,UAAU,MAAM,CAAC,QAAQ,CAAC;AACvD,QAAM,SAAS,KAAK,MAAM;AAC1B,YAAU,OAAO,KAAK;AAEtB,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,OAAO;AAAA,EACT;AAEA,QAAM,cAAc,wBAAwB;AAAA,IAC1C,EAAE,aAAa,cAAc,UAAU,CAAC,UAAU,EAAE;AAAA,IACpD,EAAE,aAAa,cAAc,UAAU,CAAC,SAAS,EAAE;AAAA,EACrD,CAAC;AAED,cAAY,WAAW,KAAK,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AACrE,cAAY,SAAS,CAAC;AACrB,EAAC,YAAY,KAAa,mBAAmB;AAC7C,EAAC,YAAY,KAAa,mBAAmB;AAC9C,SAAO,SAAS,OAAO,OAAO,GAAG,WAAW;AAC9C;AAEA,IAAM,kBAAkB,OAAO,MAAsD,SAAc;AACjG,QAAM,EAAE,WAAW,OAAO,OAAO,IAAI;AACrC,QAAM,OAAO,gBAAgB,UAAU,MAAM,CAAC,aAAa,QAAQ,CAAC;AACpE,QAAM,WAAW,OAAO,KAAK,MAAM,WAAW,CAAC;AAC/C,QAAM,SAAS,KAAK,MAAM;AAC1B,YAAU,OAAO,KAAK;AAEtB,YAAU,SAAS,CAAC;AACpB,YAAU,KAAK,mBAAmB;AAClC,YAAU,KAAK,mBAAmB;AAElC,MAAI,WAAW,cAAc;AAC3B;AAAA,EACF;AAEA,QAAM,sBAAsB,wBAAwB,UAAU,KAAK;AACnE,MAAI,qBAAqB;AAEzB,MAAI;AACF,yBAAqB,MAAM,OAAO,qBAAqB,WAAW,UAAU,IAAI,IAAI;AAAA,MAClF,qBAAqB,QAAQ;AAC3B,YAAI,CAAC,OAAO,WAAW,OAAO,QAAQ,WAAW,GAAG;AAClD;AAAA,QACF;AAEA,eAAO,UAAU,CAAC,CAAC,OAAO,QAAQ,CAAC,GAAG,EAAE,uBAAuB,KAAK,CAAC,CAAC;AAAA,MACxE;AAAA,MACA,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,QACf,GAAG;AAAA,QACH,YAAY,OAAO,SAAS,QAAQ,KAAK,WAAW,IAAI,WAAW;AAAA,MACrE;AAAA,IACF,CAAC;AAAA,EACH,SAAS,OAAO;AACd,YAAQ;AAAA,MACN;AAAA,QACE,kCAAkC,MAAM,QAAQ,aAAa;AAAA,QAC7D,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACvD,EAAE,KAAK,IAAI;AAAA,IACb;AACA;AAAA,EACF;AAEA,uBAAqB,YAAY,mBAAmB,QAAQ,GAAG,IAAI;AACnE,YAAU,QAAQ,YAAY,UAAU,KAAK;AAC7C,uBAAqB,yBAAyB,UAAU,OAAO,kBAAkB;AACjF,uBAAqB,yBAAyB,UAAU,OAAO,kBAAkB;AAEjF,MAAI,uBAAuB,UAAU,OAAO;AAC1C;AAAA,EACF;AAEA,QAAM,SAAS,EAAE,GAAG,WAAW,MAAM,UAAU,KAAK;AACpD,QAAM,SAAS;AAAA,IACb,GAAG;AAAA,IACH,MAAM,OAAO,UAAU,IAAI,EAAE,QAAQ,KAAK,GAAG;AAAA,IAC7C,OAAO;AAAA,EACT;AAEA,QAAM,cAAc,wBAAwB;AAAA,IAC1C,EAAE,aAAa,cAAc,UAAU,CAAC,MAAM,EAAE;AAAA,IAChD,EAAE,aAAa,cAAc,UAAU,CAAC,MAAM,EAAE;AAAA,EAClD,CAAC;AAED,MAAI,wBAAwB,oBAAoB;AAC9C,gBAAY,WAAW,KAAK,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,EACvE;AAEA,cAAY,SAAS,CAAC;AACrB,EAAC,YAAY,KAAa,mBAAmB,UAAU,KAAK;AAC5D,EAAC,YAAY,KAAa,mBAAmB,UAAU,KAAK;AAC7D,SAAO,SAAS,OAAO,OAAO,GAAG,WAAW;AAC9C;AAEA,IAAM,0BAA0B,CAAC,UAAkB,MAAM,WAAW,OAAO,KAAK;AAEhF,IAAM,cAAc,CAAC,MAAc,WAAW,UAAU;AACtD,MAAI,UAAU;AACZ,WAAO,wBAAwB,IAAI;AAAA,EACrC;AAEA,SAAO,qBAAqB,IAAI;AAClC;AAEA,IAAM,uBAAuB,CAAC,SAAiB;AAC7C,QAAM,kBAAkB;AACxB,QAAM,UAAU,MAAM,KAAK,KAAK,SAAS,eAAe,CAAC;AAEzD,WAAS,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG;AAC3D,UAAM,QAAQ,QAAQ,KAAK;AAC3B,QAAI,CAAC,OAAO;AACV;AAAA,IACF;AAEA,UAAM,CAAC,WAAW,YAAY,QAAQ,IAAI;AAC1C,WAAO,KAAK,MAAM,SAAS,EAAE,KAAK,EAAE,EAAE,WAAW,YAAY,QAAQ;AAAA,EACvE;AAEA,SAAO,KAAK,WAAW,2BAA2B,EAAE;AACtD;AAEA,IAAM,0BAA0B,CAAC,SAAiB;AAChD,SAAO,KAAK,WAAW,2BAA2B,CAAC,aAAa,SAAS,UAAU,CAAC;AACtF;AAEA,IAAM,2BAA2B,CAAC,YAAoB,eAAuB;AAC3E,QAAM,oBAAoB,+BAA+B,UAAU;AAEnE,MAAI,kBAAkB,WAAW,GAAG;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,WAAW,MAAM,IAAI;AAEzC,aAAW,gBAAgB,mBAAmB;AAC5C,UAAM,oBAAoB,qBAAqB,aAAa,KAAK,IAAI,CAAC;AAEtE,QAAI,CAAC,mBAAmB;AACtB;AAAA,IACF;AAEA,aAAS,QAAQ,GAAG,QAAQ,YAAY,QAAQ,SAAS,GAAG;AAC1D,UAAI,WAAW;AAEf,eAAS,OAAO,GAAG,QAAQ,aAAa,QAAQ,QAAQ,GAAG;AACzD,YAAI,QAAQ,OAAO,YAAY,QAAQ;AACrC;AAAA,QACF;AAEA,cAAM,gBAAgB,YAAY,MAAM,OAAO,QAAQ,IAAI;AAE3D,YAAI,qBAAqB,cAAc,KAAK,IAAI,CAAC,MAAM,mBAAmB;AACxE;AAAA,QACF;AAEA,YAAI,cAAc,KAAK,IAAI,MAAM,aAAa,KAAK,IAAI,GAAG;AACxD,sBAAY,OAAO,OAAO,MAAM,GAAG,YAAY;AAAA,QACjD;AAEA,iBAAS,aAAa,SAAS;AAC/B,mBAAW;AACX;AAAA,MACF;AAEA,UAAI,UAAU;AACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,YAAY,KAAK,IAAI;AAC9B;AAEA,IAAM,iCAAiC,CAAC,SAAiB;AACvD,QAAM,QAAQ,KAAK,MAAM,IAAI;AAC7B,QAAM,WAAuB,CAAC;AAC9B,MAAI,iBAAiB;AAErB,WAAS,QAAQ,GAAG,SAAS,MAAM,QAAQ,SAAS,GAAG;AACrD,QAAI,QAAQ,MAAM,UAAU,MAAM,KAAK,GAAG,KAAK,MAAM,IAAI;AACvD,UAAI,mBAAmB,IAAI;AACzB,yBAAiB;AAAA,MACnB;AACA;AAAA,IACF;AAEA,QAAI,mBAAmB,IAAI;AACzB,YAAM,eAAe,QAAQ;AAE7B,eAAS,OAAO,eAAe,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG;AACvE,iBAAS,QAAQ,gBAAgB,QAAQ,OAAO,KAAK,cAAc,SAAS,GAAG;AAC7E,mBAAS,KAAK,MAAM,MAAM,OAAO,QAAQ,IAAI,EAAE,IAAI,uBAAuB,CAAC;AAAA,QAC7E;AAAA,MACF;AAAA,IACF;AAEA,qBAAiB;AAAA,EACnB;AAEA,SAAO;AACT;AAEA,IAAM,2BAA2B,CAAC,YAAoB,eAAuB;AAC3E,QAAM,mBAAmB,wBAAwB,UAAU;AAE3D,MAAI,iBAAiB,WAAW,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,WAAW,MAAM,IAAI;AACzC,MAAI,aAAa;AAEjB,aAAW,UAAU,kBAAkB;AACrC,UAAM,YAAY,YAAY,UAAU,CAAC,MAAM,UAAU,SAAS,cAAc,kBAAkB,IAAI,MAAM,MAAM;AAElH,QAAI,aAAa,GAAG;AAClB;AAAA,IACF;AAEA,QAAI,YAAY,YAAY,CAAC,GAAG,KAAK,MAAM,IAAI;AAC7C,kBAAY,OAAO,WAAW,GAAG,EAAE;AACnC,mBAAa,YAAY;AAAA,IAC3B,OAAO;AACL,mBAAa,YAAY;AAAA,IAC3B;AAAA,EACF;AAEA,SAAO,YAAY,KAAK,IAAI;AAC9B;AAEA,IAAM,0BAA0B,CAAC,SAAiB;AAChD,QAAM,QAAQ,KAAK,MAAM,IAAI;AAC7B,QAAM,UAAoB,CAAC;AAE3B,WAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,GAAG;AACpD,QAAI,MAAM,KAAK,GAAG,KAAK,MAAM,MAAM,MAAM,QAAQ,CAAC,GAAG,KAAK,MAAM,IAAI;AAClE;AAAA,IACF;AAEA,QAAI,gBAAgB,QAAQ;AAE5B,WAAO,gBAAgB,MAAM,UAAU,MAAM,aAAa,GAAG,KAAK,MAAM,IAAI;AAC1E,uBAAiB;AAAA,IACnB;AAEA,UAAM,SAAS,MAAM,aAAa;AAElC,QAAI,QAAQ;AACV,cAAQ,KAAK,kBAAkB,MAAM,CAAC;AAAA,IACxC;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAM,oBAAoB,CAAC,SAAiB;AAC1C,SAAO,gBAAgB,wBAAwB,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,QAAQ,GAAG;AAClF;AAEA,IAAM,uBAAuB,CAAC,SAAiB;AAC7C,SAAO,wBAAwB,IAAI,EAAE,QAAQ,QAAQ,EAAE;AACzD;AAEA,IAAM,kBAAkB,CAAC,SAAiB;AACxC,SAAO,KACJ,QAAQ,sCAAsC,EAAE,EAChD,QAAQ,oBAAoB,EAAE,EAC9B,QAAQ,uCAAuC,EAAE;AACtD;;;AC9TA,OAAO,cAAc;AACrB,SAAS,SAAAC,cAAa;AAItB,IAAM,UAA8E;AAEpF,IAAM,mBAAmB,CAAC,QAAQ,OAAO,MAAM;AAExC,IAAM,mBAAmB,MAAM;AACpC,SAAO,CAAC,SAAkB;AACxB,IAAAC,OAAM,MAAa,QAAQ,CAAC,MAAW,OAA2B,WAAgB;AAChF,UAAI,CAAC,UAAU,OAAO,UAAU,UAAU;AACxC;AAAA,MACF;AAEA,UAAI,CAAC,CAAC,QAAQ,MAAM,OAAO,EAAE,SAAS,KAAK,QAAQ,EAAE,GAAG;AACtD;AAAA,MACF;AAEA,UAAI,KAAK,MAAM,SAAS,MAAM,GAAG;AAC/B;AAAA,MACF;AAEA,UAAI,CAAC,KAAK,MAAM,SAAS,MAAM,KAAK,CAAC,KAAK,MAAM,SAAS,MAAM,GAAG;AAChE;AAAA,MACF;AAEA,UAAI;AACJ,UAAI,KAAK,MAAM;AACb,cAAM,OAAO,gBAAgB,KAAK,MAAM,CAAC,QAAQ,CAAC;AAClD,iBAAS,KAAK,MAAM;AACpB,aAAK,OAAO,KAAK;AAAA,MACnB;AAEA,WAAK,QAAQ,KAAK,MAAM,WAAW,UAAU,cAAc;AAE3D,YAAM,QAAQ,oBAAI,IAAiB;AACnC,YAAM,IAAI,OAAO,IAAI;AAErB,iBAAW,kBAAkB,kBAAkB;AAC7C,cAAM,IAAI,gBAAgB;AAAA,UACxB,GAAG;AAAA,UACH,OAAO,QAAQ,KAAK,OAAO,eAAe,YAAY,CAA4B;AAAA,QACpF,CAAC;AAAA,MACH;AAEA,YAAM,cAAc;AAAA,QAClB,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,aAAa,SAAS,OAAO;AAAA,UAC5C;AAAA,UACA,UAAU,CAAC,SAAS;AAAA,QACtB,EAAE;AAAA,MACJ;AAEA,kBAAY,SAAS,CAAC;AACrB,MAAC,YAAY,KAAa,mBAAmB;AAC7C,MAAC,YAAY,KAAa,mBAAmB,YAAY;AAC1D,aAAO,SAAS,OAAO,OAAO,GAAG,WAAW;AAAA,IAC9C,CAAC;AAAA,EACH;AACF;;;AC1DA,IAAM,UAAU;AAET,IAAM,4BAA4B,MAAwB;AAC/D,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK,MAAM;AACT,UAAI,KAAK,SAAS,WAAW,GAAG;AAC9B;AAAA,MACF;AAEA,UAAI,QAAQ,KAAK,SAAS,CAAC;AAC3B,UAAI,MAAM,SAAS,QAAQ;AACzB;AAAA,MACF;AAEA,YAAM,UAAU,MAAM,KAAK,MAAM,MAAM,SAAS,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC;AACjG,UAAI,QAAQ,WAAW,GAAG;AACxB;AAAA,MACF;AAEA,YAAM,QAAQ,QACX,IAAI,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,GAAG,OAAO,MAAM,SAAS,EAAE,EAAE,EAC5D,KAAK,CAAC,MAAM,UAAU,MAAM,QAAQ,KAAK,KAAK;AAEjD,YAAM,eAAqC,CAAC;AAE5C,iBAAW,EAAE,MAAM,MAAM,KAAK,OAAO;AACnC,cAAM,WAAW,QAAQ,KAAK;AAC9B,cAAM,eAAe,MAAM,MAAM,MAAM,QAAQ;AAE/C,YAAI,cAAc;AAChB,uBAAa,QAAQ,EAAE,MAAM,QAAQ,OAAO,aAAa,CAAC;AAAA,QAC5D;AAEA,qBAAa,QAAQ;AAAA,UACnB,MAAM;AAAA,UACN,SAAS;AAAA,UACT,YAAY,EAAE,KAAK;AAAA,UACnB,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,QAC1C,CAAC;AAED,gBAAQ;AAAA,UACN,MAAM;AAAA,UACN,OAAO,MAAM,MAAM,MAAM,GAAG,KAAK;AAAA,QACnC;AAAA,MACF;AAEA,UAAI,MAAM,OAAO;AACf,qBAAa,QAAQ,KAAK;AAAA,MAC5B;AAEA,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AACF;;;APvCO,IAAM,yBAAyB,MAGjC;AACH,SAAO;AAAA,IACL,eAAe,CAAC,iBAAiB,cAAc,kBAAkB,iBAAiB;AAAA,IAClF,eAAe;AAAA,MACb;AAAA,QACE;AAAA,QACA;AAAA,UACE,gBAAgB;AAAA,UAChB,OAAO;AAAA,YACL,OAAO;AAAA,YACP,MAAM;AAAA,UACR;AAAA,UACA,cAAc;AAAA,YACZ,wBAAwB;AAAA,YACxB,6BAA6B;AAAA,YAC7B,iCAAiC;AAAA,YACjC,0BAA0B;AAAA,UAC5B;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":["visit","visit","visit","visit","visit","visit"]}
package/dist/client.d.ts CHANGED
@@ -1,16 +1,15 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { ReactNode, ComponentType } from 'react';
4
- import { D as DocsConfig, T as ThemePreference, p as DocsThemeConfig } from './types-mvLNHHrf.js';
5
4
  import * as _classmatejs_react from '@classmatejs/react';
5
+ import { g as DocsConfig, T as ThemePreference, r as DocsThemeConfig } from './types-j0kEkMA4.js';
6
6
  import * as zustand_middleware from 'zustand/middleware';
7
7
  import * as zustand from 'zustand';
8
8
 
9
9
  interface AppLayoutProps {
10
10
  children: ReactNode;
11
- docsConfig: DocsConfig;
12
11
  }
13
- declare const AppLayout: ({ children, docsConfig }: AppLayoutProps) => react_jsx_runtime.JSX.Element;
12
+ declare const AppLayout: ({ children }: AppLayoutProps) => react_jsx_runtime.JSX.Element;
14
13
 
15
14
  declare const LayoutSize: {
16
15
  readonly xxs: "xxs";
@@ -28,9 +27,7 @@ interface LayoutComponentProps {
28
27
  }
29
28
  declare const LayoutComponent: _classmatejs_react.CmBaseComponent<react.ClassAttributes<HTMLDivElement> & react.HTMLAttributes<HTMLDivElement> & LayoutComponentProps & Partial<LayoutComponentProps>>;
30
29
 
31
- declare const MetaHead: ({ docsConfig }: {
32
- docsConfig: DocsConfig;
33
- }) => react_jsx_runtime.JSX.Element;
30
+ declare const MetaHead: () => react_jsx_runtime.JSX.Element;
34
31
 
35
32
  declare const ProseContainer: _classmatejs_react.CmBaseComponent<react.ClassAttributes<HTMLElement> & react.HTMLAttributes<HTMLElement> & object>;
36
33
 
@@ -40,9 +37,8 @@ declare const UserSettingsSync: ({ theme }: {
40
37
 
41
38
  interface DocsPageProps {
42
39
  Content: ComponentType;
43
- docsConfig: DocsConfig;
44
40
  }
45
- declare const DocsPage: ({ Content, docsConfig }: DocsPageProps) => react_jsx_runtime.JSX.Element;
41
+ declare const DocsPage: ({ Content }: DocsPageProps) => react_jsx_runtime.JSX.Element;
46
42
 
47
43
  type DocsUserSettingsState = {
48
44
  codeBlockChoices: Record<string, string>;
package/dist/client.js CHANGED
@@ -8,10 +8,10 @@ import {
8
8
  UserSettingsSync,
9
9
  applyThemePreference,
10
10
  useDocsUserSettingsStore
11
- } from "./chunk-62MBEYU7.js";
12
- import "./chunk-4WTEOEV2.js";
13
- import "./chunk-73NPVCDQ.js";
14
- import "./chunk-FLO5CJZH.js";
11
+ } from "./chunk-G7X2IWYG.js";
12
+ import "./chunk-L6ZVB6XH.js";
13
+ import "./chunk-D7IAGT53.js";
14
+ import "./chunk-PYYPYIBD.js";
15
15
  export {
16
16
  AppLayout,
17
17
  DEFAULT_THEME_PREFERENCE,
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode, ComponentPropsWithoutRef, PropsWithChildren } from 'react';
3
- import { D as DocsConfig, a as DocsGraph } from './types-mvLNHHrf.js';
4
- export { b as DocHeading, c as DocPageData, d as DocPageLinkData, e as DocsBrandConfig, f as DocsCollapsible, g as DocsDividerNode, h as DocsFooterConfig, i as DocsGroupNode, j as DocsHeadConfig, k as DocsPageNode, l as DocsPartnerConfig, m as DocsPartnersConfig, n as DocsSectionNode, o as DocsSidebarNode, p as DocsThemeConfig, R as ResolvedDocsBrandConfig, q as ResolvedDocsConfig, r as ResolvedDocsPartnerConfig, s as ResolvedDocsPartnersConfig, t as ResolvedDocsSection, T as ThemePreference } from './types-mvLNHHrf.js';
3
+ export { D as DocHeading, a as DocPageData, b as DocPageLinkData, c as DocsAlgoliaConfig, d as DocsAlgoliaFieldsConfig, e as DocsBrandConfig, f as DocsCollapsible, g as DocsConfig, h as DocsFooterConfig, i as DocsGlobalContextData, j as DocsGraph, k as DocsGroupNode, l as DocsHeadConfig, m as DocsPageNode, n as DocsPartnerConfig, o as DocsPartnersConfig, p as DocsSectionNode, q as DocsSidebarNode, r as DocsThemeConfig, J as JsonPrimitive, s as JsonValue, R as ResolvedDocsAlgoliaConfig, t as ResolvedDocsAlgoliaFieldsConfig, u as ResolvedDocsBrandConfig, v as ResolvedDocsConfig, w as ResolvedDocsPartnerConfig, x as ResolvedDocsPartnersConfig, y as ResolvedDocsSection, T as ThemePreference } from './types-j0kEkMA4.js';
5
4
 
6
5
  type AlertVariant = 'info' | 'warning' | 'error' | 'success';
7
6
  declare const Alert: ({ type, heading, children, icon, }: {
@@ -77,11 +76,6 @@ declare const RepoLink: ({ repo, timestamp }: {
77
76
  timestamp: TimestampType;
78
77
  }) => react_jsx_runtime.JSX.Element;
79
78
 
80
- type RenderInlineMarkdownOptions = {
81
- codeClassName?: string;
82
- };
83
- declare const renderInlineMarkdown: (value: ReactNode, { codeClassName }?: RenderInlineMarkdownOptions) => ReactNode;
84
-
85
79
  interface TableData {
86
80
  headers: string[];
87
81
  rows: string[][];
@@ -132,12 +126,13 @@ declare const UniversalMdxProvider: ({ children, value }: PropsWithChildren<{
132
126
  }>) => react_jsx_runtime.JSX.Element;
133
127
  declare const useUniversalMdxRuntime: () => UniversalMdxRuntimeValue | null;
134
128
 
135
- declare const defineDocsConfig: (config: DocsConfig) => DocsConfig;
136
-
137
- declare const defineDocsGraph: (graph: DocsGraph) => DocsGraph;
138
-
139
129
  declare const nivelPublicRoute = "/nivel";
140
130
  declare const baseAssets: string;
141
131
  declare const nivelAssetUrl: (assetPath: string) => string;
142
132
 
143
- export { Alert, type AlertVariant, ChoiceGroup, CodeBlockTransformer, DocsConfig, DocsGraph, FileAdded, FileRemoved, type LineBreak, Link, type LinkProps, Overview, type OverviewItem, Pre, RepoLink, Table, type TableData, type TableProps, type UniversalMdxCodeBlockChoiceStore, UniversalMdxProvider, type UniversalMdxRuntimeValue, type UniversalMdxTranslationFn, type UniversalResolveDocLinkArgs, type UniversalResolveDocLinkFn, type UniversalResolveOverviewItemFn, type UniversalResolvedDocLink, type UniversalResolvedOverviewItem, baseAssets, defineDocsConfig, defineDocsGraph, nivelAssetUrl, nivelPublicRoute, renderInlineMarkdown, useUniversalMdxRuntime };
133
+ type RenderInlineMarkdownOptions = {
134
+ codeClassName?: string;
135
+ };
136
+ declare const renderInlineMarkdown: (value: ReactNode, { codeClassName }?: RenderInlineMarkdownOptions) => ReactNode;
137
+
138
+ export { Alert, type AlertVariant, ChoiceGroup, CodeBlockTransformer, FileAdded, FileRemoved, type LineBreak, Link, type LinkProps, Overview, type OverviewItem, Pre, RepoLink, Table, type TableData, type TableProps, type UniversalMdxCodeBlockChoiceStore, UniversalMdxProvider, type UniversalMdxRuntimeValue, type UniversalMdxTranslationFn, type UniversalResolveDocLinkArgs, type UniversalResolveDocLinkFn, type UniversalResolveOverviewItemFn, type UniversalResolvedDocLink, type UniversalResolvedOverviewItem, baseAssets, nivelAssetUrl, nivelPublicRoute, renderInlineMarkdown, useUniversalMdxRuntime };
package/dist/index.js CHANGED
@@ -8,20 +8,18 @@ import {
8
8
  Overview,
9
9
  Pre,
10
10
  RepoLink,
11
- Table,
12
- defineDocsConfig,
13
- defineDocsGraph
14
- } from "./chunk-3JJ6TYWL.js";
11
+ Table
12
+ } from "./chunk-G37565OX.js";
15
13
  import {
16
14
  UniversalMdxProvider,
17
15
  renderInlineMarkdown,
18
16
  useUniversalMdxRuntime
19
- } from "./chunk-4WTEOEV2.js";
17
+ } from "./chunk-L6ZVB6XH.js";
20
18
  import {
21
19
  baseAssets,
22
20
  nivelAssetUrl,
23
21
  nivelPublicRoute
24
- } from "./chunk-FLO5CJZH.js";
22
+ } from "./chunk-PYYPYIBD.js";
25
23
  export {
26
24
  Alert,
27
25
  ChoiceGroup,
@@ -35,8 +33,6 @@ export {
35
33
  Table,
36
34
  UniversalMdxProvider,
37
35
  baseAssets,
38
- defineDocsConfig,
39
- defineDocsGraph,
40
36
  nivelAssetUrl,
41
37
  nivelPublicRoute,
42
38
  renderInlineMarkdown,
@@ -7,7 +7,7 @@ import {
7
7
  remarkDetype,
8
8
  remarkPkgManager,
9
9
  shikiTransformerAutoLinks
10
- } from "./chunk-45CLUNJW.js";
10
+ } from "../chunk-UWP3C7JT.js";
11
11
  export {
12
12
  getCodeBlockMdxPlugins,
13
13
  getCodeBlockPropsFromMeta,
package/dist/mdx.js CHANGED
@@ -9,11 +9,11 @@ import {
9
9
  Pre,
10
10
  RepoLink,
11
11
  Table
12
- } from "./chunk-3JJ6TYWL.js";
13
- import "./chunk-4WTEOEV2.js";
14
- import "./chunk-FLO5CJZH.js";
12
+ } from "./chunk-G37565OX.js";
13
+ import "./chunk-L6ZVB6XH.js";
14
+ import "./chunk-PYYPYIBD.js";
15
15
 
16
- // src/mdx.ts
16
+ // src/mdx/index.ts
17
17
  var useMDXComponents = (components) => {
18
18
  return {
19
19
  Alert,
package/dist/mdx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mdx.ts"],"sourcesContent":["import type { ComponentType } from 'react'\nimport {\n Alert,\n ChoiceGroup,\n CodeBlockTransformer,\n FileAdded,\n FileRemoved,\n Link,\n Overview,\n Pre,\n RepoLink,\n Table,\n} from './index.js'\n\ntype MdxComponents = Record<string, ComponentType<any> | string>\n\nexport const useMDXComponents = (components?: MdxComponents): MdxComponents => {\n return {\n Alert,\n Link,\n RepoLink,\n Table,\n Overview,\n ChoiceGroup,\n CodeBlockTransformer,\n FileAdded,\n FileRemoved,\n pre: Pre,\n ...components,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgBO,IAAM,mBAAmB,CAAC,eAA8C;AAC7E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,GAAG;AAAA,EACL;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/mdx/index.ts"],"sourcesContent":["import type { ComponentType } from 'react'\nimport {\n Alert,\n ChoiceGroup,\n CodeBlockTransformer,\n FileAdded,\n FileRemoved,\n Link,\n Overview,\n Pre,\n RepoLink,\n Table,\n} from '../index.js'\n\ntype MdxComponents = Record<string, ComponentType<any> | string>\n\nexport const useMDXComponents = (components?: MdxComponents): MdxComponents => {\n return {\n Alert,\n Link,\n RepoLink,\n Table,\n Overview,\n ChoiceGroup,\n CodeBlockTransformer,\n FileAdded,\n FileRemoved,\n pre: Pre,\n ...components,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgBO,IAAM,mBAAmB,CAAC,eAA8C;AAC7E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,GAAG;AAAA,EACL;AACF;","names":[]}
@@ -1,7 +1,7 @@
1
1
  export { AppLayout, DEFAULT_THEME_PREFERENCE, DocsPage, LayoutComponent, MetaHead, ProseContainer, UserSettingsSync, applyThemePreference, useDocsUserSettingsStore } from '../client.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
- import '../types-mvLNHHrf.js';
5
4
  import '@classmatejs/react';
5
+ import '../types-j0kEkMA4.js';
6
6
  import 'zustand/middleware';
7
7
  import 'zustand';
@@ -8,10 +8,10 @@ import {
8
8
  UserSettingsSync,
9
9
  applyThemePreference,
10
10
  useDocsUserSettingsStore
11
- } from "../chunk-62MBEYU7.js";
12
- import "../chunk-4WTEOEV2.js";
13
- import "../chunk-73NPVCDQ.js";
14
- import "../chunk-FLO5CJZH.js";
11
+ } from "../chunk-G7X2IWYG.js";
12
+ import "../chunk-L6ZVB6XH.js";
13
+ import "../chunk-D7IAGT53.js";
14
+ import "../chunk-PYYPYIBD.js";
15
15
  export {
16
16
  AppLayout,
17
17
  DEFAULT_THEME_PREFERENCE,
@@ -1,4 +1,4 @@
1
- import { D as DocsConfig, q as ResolvedDocsConfig, u as ResolvedDocsPage } from '../types-mvLNHHrf.js';
1
+ import { g as DocsConfig, z as ResolvedDocsPage, v as ResolvedDocsConfig } from '../types-j0kEkMA4.js';
2
2
  import { Plugin } from 'vite';
3
3
 
4
4
  declare const getGeneratedPagesRoot: (rootDir: string) => string;
@@ -10,6 +10,8 @@ declare const syncGeneratedDocsPages: (options: {
10
10
  declare const nivelPagesPlugin: () => Plugin;
11
11
 
12
12
  declare const resolveDocsConfig: (config: DocsConfig) => ResolvedDocsConfig;
13
- declare const getResolvedPageById: (config: ResolvedDocsConfig, pageId: string) => ResolvedDocsPage;
13
+ declare const getResolvedPageById: (config: {
14
+ pages: ResolvedDocsPage[];
15
+ }, pageId: string) => ResolvedDocsPage;
14
16
 
15
17
  export { getGeneratedPagesRoot, getResolvedPageById, nivelPagesPlugin, resolveDocsConfig, syncGeneratedDocsPages };
@@ -2,12 +2,12 @@ import {
2
2
  getGeneratedPagesRoot,
3
3
  nivelPagesPlugin,
4
4
  syncGeneratedDocsPages
5
- } from "../chunk-PHHK2BAF.js";
5
+ } from "../chunk-HXZEI3YF.js";
6
6
  import {
7
7
  getResolvedPageById,
8
8
  resolveDocsConfig
9
- } from "../chunk-73NPVCDQ.js";
10
- import "../chunk-FLO5CJZH.js";
9
+ } from "../chunk-D7IAGT53.js";
10
+ import "../chunk-PYYPYIBD.js";
11
11
  export {
12
12
  getGeneratedPagesRoot,
13
13
  getResolvedPageById,
@@ -15,4 +15,4 @@ export {
15
15
  resolveDocsConfig,
16
16
  syncGeneratedDocsPages
17
17
  };
18
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=node.js.map
@@ -10,6 +10,10 @@ type DocsThemeConfig = {
10
10
  type DocsFooterConfig = {
11
11
  pagination?: boolean;
12
12
  };
13
+ type JsonPrimitive = string | number | boolean | null;
14
+ type JsonValue = JsonPrimitive | JsonValue[] | {
15
+ [key: string]: JsonValue;
16
+ };
13
17
  type DocsBrandConfig = {
14
18
  text?: string;
15
19
  href?: string;
@@ -28,6 +32,19 @@ type DocsPartnersConfig = {
28
32
  primary?: DocsPartnerConfig[];
29
33
  gold?: DocsPartnerConfig[];
30
34
  };
35
+ type DocsAlgoliaFieldsConfig = {
36
+ href?: string;
37
+ title?: string;
38
+ excerpt?: string;
39
+ sectionTitle?: string;
40
+ };
41
+ type DocsAlgoliaConfig = {
42
+ appId: string;
43
+ apiKey: string;
44
+ indexName: string;
45
+ fields?: DocsAlgoliaFieldsConfig;
46
+ searchParams?: Record<string, JsonValue>;
47
+ };
31
48
  type DocsHeadConfig = {
32
49
  faviconSvg?: string;
33
50
  faviconIco?: string;
@@ -42,6 +59,7 @@ type DocsPageNode = {
42
59
  title: string;
43
60
  slug: string;
44
61
  source: string;
62
+ showInNav?: boolean;
45
63
  aliases?: string[];
46
64
  tableOfContents?: boolean;
47
65
  navTitle?: string;
@@ -50,23 +68,21 @@ type DocsPageNode = {
50
68
  type DocsGroupNode = {
51
69
  kind: 'group';
52
70
  id: string;
53
- title: string;
71
+ title?: string;
72
+ href?: string;
73
+ showInNav?: boolean;
54
74
  items: DocsSidebarNode[];
55
75
  collapsible?: DocsCollapsible;
56
76
  };
57
- type DocsDividerNode = {
58
- kind: 'divider';
59
- id: string;
60
- title: string;
61
- };
62
77
  type DocsSectionNode = {
63
78
  kind: 'section';
64
79
  id: string;
65
80
  title: string;
66
81
  navTitle?: string;
82
+ href?: string;
67
83
  items: DocsSidebarNode[];
68
84
  };
69
- type DocsSidebarNode = DocsGroupNode | DocsDividerNode | DocsPageNode;
85
+ type DocsSidebarNode = DocsGroupNode | DocsPageNode;
70
86
  type DocsGraph = {
71
87
  items: DocsSectionNode[];
72
88
  };
@@ -80,6 +96,7 @@ type DocsConfig = {
80
96
  brand?: DocsBrandConfig;
81
97
  head?: DocsHeadConfig;
82
98
  partners?: DocsPartnersConfig;
99
+ algolia?: DocsAlgoliaConfig;
83
100
  };
84
101
  type ResolvedDocsBrandConfig = {
85
102
  text: string;
@@ -99,6 +116,19 @@ type ResolvedDocsPartnersConfig = {
99
116
  primary: ResolvedDocsPartnerConfig[];
100
117
  gold: ResolvedDocsPartnerConfig[];
101
118
  };
119
+ type ResolvedDocsAlgoliaFieldsConfig = {
120
+ href: string;
121
+ title: string;
122
+ excerpt: string;
123
+ sectionTitle: string;
124
+ };
125
+ type ResolvedDocsAlgoliaConfig = {
126
+ appId: string;
127
+ apiKey: string;
128
+ indexName: string;
129
+ fields: ResolvedDocsAlgoliaFieldsConfig;
130
+ searchParams: Record<string, JsonValue>;
131
+ };
102
132
  type ResolvedDocsHeadConfig = DocsHeadConfig;
103
133
  type DocHeading = {
104
134
  depth: number;
@@ -115,7 +145,9 @@ type ResolvedDocsPage = DocsPageNode & {
115
145
  type ResolvedSidebarGroup = {
116
146
  kind: 'group';
117
147
  id: string;
118
- title: string;
148
+ title?: string;
149
+ href?: string;
150
+ showInNav: boolean;
119
151
  items: ResolvedSidebarNode[];
120
152
  collapsible?: DocsCollapsible;
121
153
  };
@@ -125,13 +157,9 @@ type ResolvedSidebarPage = {
125
157
  title: string;
126
158
  navTitle: string;
127
159
  href: string;
160
+ showInNav: boolean;
128
161
  };
129
- type ResolvedSidebarDivider = {
130
- kind: 'divider';
131
- id: string;
132
- title: string;
133
- };
134
- type ResolvedSidebarNode = ResolvedSidebarGroup | ResolvedSidebarDivider | ResolvedSidebarPage;
162
+ type ResolvedSidebarNode = ResolvedSidebarGroup | ResolvedSidebarPage;
135
163
  type ResolvedDocsSection = {
136
164
  id: string;
137
165
  title: string;
@@ -153,25 +181,20 @@ type ResolvedDocsConfig = {
153
181
  brand: ResolvedDocsBrandConfig;
154
182
  head: ResolvedDocsHeadConfig;
155
183
  partners: ResolvedDocsPartnersConfig;
184
+ algolia: ResolvedDocsAlgoliaConfig | null;
156
185
  pages: ResolvedDocsPage[];
157
186
  sections: ResolvedDocsSection[];
158
187
  navbarItems: ResolvedNavbarItem[];
159
188
  };
160
189
  type DocPageLinkData = Pick<ResolvedDocsPage, 'id' | 'title' | 'href' | 'documentTitle'>;
190
+ type DocsGlobalContextData = Pick<ResolvedDocsConfig, 'siteTitle' | 'basePath' | 'theme' | 'footer' | 'brand' | 'head' | 'partners' | 'algolia' | 'pages' | 'navbarItems'> & {
191
+ sidebarSections: ResolvedDocsConfig['sections'];
192
+ };
161
193
  type DocPageData = {
162
- siteTitle: string;
163
- basePath: '/docs';
164
- theme: Required<DocsThemeConfig>;
165
- footer: Required<DocsFooterConfig>;
166
194
  page: ResolvedDocsPage;
167
- activeSectionId: string;
168
- activeSectionTitle: string;
169
195
  headings: DocHeading[];
170
196
  previousPage: DocPageLinkData | null;
171
197
  nextPage: DocPageLinkData | null;
172
- navbarItems: ResolvedNavbarItem[];
173
- sidebarItems: ResolvedSidebarNode[];
174
- sidebarSections: ResolvedDocsSection[];
175
198
  };
176
199
 
177
- export type { DocsConfig as D, ResolvedDocsBrandConfig as R, ThemePreference as T, DocsGraph as a, DocHeading as b, DocPageData as c, DocPageLinkData as d, DocsBrandConfig as e, DocsCollapsible as f, DocsDividerNode as g, DocsFooterConfig as h, DocsGroupNode as i, DocsHeadConfig as j, DocsPageNode as k, DocsPartnerConfig as l, DocsPartnersConfig as m, DocsSectionNode as n, DocsSidebarNode as o, DocsThemeConfig as p, ResolvedDocsConfig as q, ResolvedDocsPartnerConfig as r, ResolvedDocsPartnersConfig as s, ResolvedDocsSection as t, ResolvedDocsPage as u };
200
+ export type { DocHeading as D, JsonPrimitive as J, ResolvedDocsAlgoliaConfig as R, ThemePreference as T, DocPageData as a, DocPageLinkData as b, DocsAlgoliaConfig as c, DocsAlgoliaFieldsConfig as d, DocsBrandConfig as e, DocsCollapsible as f, DocsConfig as g, DocsFooterConfig as h, DocsGlobalContextData as i, DocsGraph as j, DocsGroupNode as k, DocsHeadConfig as l, DocsPageNode as m, DocsPartnerConfig as n, DocsPartnersConfig as o, DocsSectionNode as p, DocsSidebarNode as q, DocsThemeConfig as r, JsonValue as s, ResolvedDocsAlgoliaFieldsConfig as t, ResolvedDocsBrandConfig as u, ResolvedDocsConfig as v, ResolvedDocsPartnerConfig as w, ResolvedDocsPartnersConfig as x, ResolvedDocsSection as y, ResolvedDocsPage as z };
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  getCodeBlockMdxPlugins
3
- } from "./chunk-45CLUNJW.js";
3
+ } from "./chunk-UWP3C7JT.js";
4
4
  import {
5
5
  nivelPagesPlugin
6
- } from "./chunk-PHHK2BAF.js";
6
+ } from "./chunk-HXZEI3YF.js";
7
7
  import {
8
8
  createHeadingSlugger,
9
9
  normalizeHeadingTitle
10
- } from "./chunk-73NPVCDQ.js";
11
- import "./chunk-FLO5CJZH.js";
10
+ } from "./chunk-D7IAGT53.js";
11
+ import "./chunk-PYYPYIBD.js";
12
12
 
13
- // src/config.ts
13
+ // src/vike/index.ts
14
14
  import mdx from "@mdx-js/rollup";
15
15
  import remarkGfm from "remark-gfm";
16
16
 
17
- // src/runtime/rehypeDocsHeadings.ts
17
+ // src/mdx/plugins/rehypeDocsHeadings.ts
18
18
  import { visit } from "unist-util-visit";
19
19
  var headingTags = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]);
20
20
  var getNodeText = (node) => {
@@ -61,7 +61,7 @@ var rehypeDocsHeadings = () => {
61
61
  };
62
62
  };
63
63
 
64
- // src/config.ts
64
+ // src/vike/index.ts
65
65
  process.env.VIKE_CRAWL ??= JSON.stringify({ git: false });
66
66
  var codeBlockMdxPlugins = getCodeBlockMdxPlugins();
67
67
  var viteConfig = {
@@ -98,4 +98,4 @@ var nivelConfig = {
98
98
  export {
99
99
  nivelConfig as default
100
100
  };
101
- //# sourceMappingURL=config.js.map
101
+ //# sourceMappingURL=vike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vike/index.ts","../src/mdx/plugins/rehypeDocsHeadings.ts"],"sourcesContent":["export { nivelConfig as default }\n\nimport mdx from '@mdx-js/rollup'\nimport remarkGfm from 'remark-gfm'\nimport type { Config } from 'vike/types'\nimport type { PluginOption, UserConfig } from 'vite'\nimport { getCodeBlockMdxPlugins } from '../mdx/code-blocks/index.js'\nimport { rehypeDocsHeadings } from '../mdx/plugins/rehypeDocsHeadings.js'\nimport { nivelPagesPlugin } from '../runtime/node/index.js'\n\nprocess.env.VIKE_CRAWL ??= JSON.stringify({ git: false })\n\nconst codeBlockMdxPlugins = getCodeBlockMdxPlugins()\n\nconst viteConfig: UserConfig = {\n plugins: [\n {\n ...mdx({\n providerImportSource: '@unterberg/nivel/mdx',\n ...codeBlockMdxPlugins,\n rehypePlugins: [...codeBlockMdxPlugins.rehypePlugins, rehypeDocsHeadings],\n remarkPlugins: [remarkGfm, ...codeBlockMdxPlugins.remarkPlugins],\n }),\n enforce: 'pre',\n } as PluginOption,\n nivelPagesPlugin(),\n ],\n ssr: {\n noExternal: ['@unterberg/nivel'],\n },\n}\n\nconst nivelConfig = {\n meta: {\n docs: {\n env: {\n server: true,\n client: true,\n },\n global: true,\n },\n },\n prerender: true,\n trailingSlash: true,\n vite: viteConfig as Record<string, unknown>,\n} satisfies Config\n","import { visit } from 'unist-util-visit'\nimport { createHeadingSlugger, normalizeHeadingTitle } from '../../docs/docHeadings.js'\n\nconst headingTags = new Set(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])\n\nconst getNodeText = (node: any): string => {\n if (!node || typeof node !== 'object') {\n return ''\n }\n\n if (node.type === 'text') {\n return typeof node.value === 'string' ? node.value : ''\n }\n\n if (Array.isArray(node.children)) {\n return node.children.map((child: any) => getNodeText(child)).join('')\n }\n\n return ''\n}\n\nconst getClassNames = (value: unknown): string[] => {\n if (Array.isArray(value)) {\n return value.flatMap((entry) => getClassNames(entry))\n }\n\n if (typeof value === 'string') {\n return value.split(/\\s+/).filter(Boolean)\n }\n\n return []\n}\n\nexport const rehypeDocsHeadings = () => {\n return (tree: any) => {\n const slugify = createHeadingSlugger()\n\n visit(tree as any, 'element', (node: any) => {\n if (!headingTags.has(node?.tagName)) {\n return\n }\n\n const title = normalizeHeadingTitle(getNodeText(node))\n if (!title) {\n return\n }\n\n node.properties ??= {}\n\n if (typeof node.properties.id !== 'string' || node.properties.id === '') {\n node.properties.id = slugify(title)\n }\n\n const classNames = getClassNames(node.properties.className)\n if (!classNames.includes('scroll-mt-24')) {\n node.properties.className = [...classNames, 'scroll-mt-24']\n }\n })\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAEA,OAAO,SAAS;AAChB,OAAO,eAAe;;;ACHtB,SAAS,aAAa;AAGtB,IAAM,cAAc,oBAAI,IAAI,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,CAAC;AAEhE,IAAM,cAAc,CAAC,SAAsB;AACzC,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,KAAK,SAAS,QAAQ;AACxB,WAAO,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ;AAAA,EACvD;AAEA,MAAI,MAAM,QAAQ,KAAK,QAAQ,GAAG;AAChC,WAAO,KAAK,SAAS,IAAI,CAAC,UAAe,YAAY,KAAK,CAAC,EAAE,KAAK,EAAE;AAAA,EACtE;AAEA,SAAO;AACT;AAEA,IAAM,gBAAgB,CAAC,UAA6B;AAClD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,QAAQ,CAAC,UAAU,cAAc,KAAK,CAAC;AAAA,EACtD;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,MAAM,MAAM,KAAK,EAAE,OAAO,OAAO;AAAA,EAC1C;AAEA,SAAO,CAAC;AACV;AAEO,IAAM,qBAAqB,MAAM;AACtC,SAAO,CAAC,SAAc;AACpB,UAAM,UAAU,qBAAqB;AAErC,UAAM,MAAa,WAAW,CAAC,SAAc;AAC3C,UAAI,CAAC,YAAY,IAAI,MAAM,OAAO,GAAG;AACnC;AAAA,MACF;AAEA,YAAM,QAAQ,sBAAsB,YAAY,IAAI,CAAC;AACrD,UAAI,CAAC,OAAO;AACV;AAAA,MACF;AAEA,WAAK,eAAe,CAAC;AAErB,UAAI,OAAO,KAAK,WAAW,OAAO,YAAY,KAAK,WAAW,OAAO,IAAI;AACvE,aAAK,WAAW,KAAK,QAAQ,KAAK;AAAA,MACpC;AAEA,YAAM,aAAa,cAAc,KAAK,WAAW,SAAS;AAC1D,UAAI,CAAC,WAAW,SAAS,cAAc,GAAG;AACxC,aAAK,WAAW,YAAY,CAAC,GAAG,YAAY,cAAc;AAAA,MAC5D;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ADjDA,QAAQ,IAAI,eAAe,KAAK,UAAU,EAAE,KAAK,MAAM,CAAC;AAExD,IAAM,sBAAsB,uBAAuB;AAEnD,IAAM,aAAyB;AAAA,EAC7B,SAAS;AAAA,IACP;AAAA,MACE,GAAG,IAAI;AAAA,QACL,sBAAsB;AAAA,QACtB,GAAG;AAAA,QACH,eAAe,CAAC,GAAG,oBAAoB,eAAe,kBAAkB;AAAA,QACxE,eAAe,CAAC,WAAW,GAAG,oBAAoB,aAAa;AAAA,MACjE,CAAC;AAAA,MACD,SAAS;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,EACnB;AAAA,EACA,KAAK;AAAA,IACH,YAAY,CAAC,kBAAkB;AAAA,EACjC;AACF;AAEA,IAAM,cAAc;AAAA,EAClB,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EACX,eAAe;AAAA,EACf,MAAM;AACR;","names":[]}