@multiplatform.one/markdown 6.0.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/LICENSE +201 -0
- package/dist/cjs/Aside/index.cjs +112 -0
- package/dist/cjs/Aside/index.native.js +119 -0
- package/dist/cjs/Aside/index.native.js.map +1 -0
- package/dist/cjs/ExternalIcon/ExternalIcon.spec.cjs +37 -0
- package/dist/cjs/ExternalIcon/ExternalIcon.spec.native.js +40 -0
- package/dist/cjs/ExternalIcon/ExternalIcon.spec.native.js.map +1 -0
- package/dist/cjs/ExternalIcon/index.cjs +46 -0
- package/dist/cjs/ExternalIcon/index.native.js +51 -0
- package/dist/cjs/ExternalIcon/index.native.js.map +1 -0
- package/dist/cjs/Hr/hr.spec.cjs +21 -0
- package/dist/cjs/Hr/hr.spec.native.js +24 -0
- package/dist/cjs/Hr/hr.spec.native.js.map +1 -0
- package/dist/cjs/Hr/index.cjs +41 -0
- package/dist/cjs/Hr/index.native.js +46 -0
- package/dist/cjs/Hr/index.native.js.map +1 -0
- package/dist/cjs/Li/index.cjs +38 -0
- package/dist/cjs/Li/index.native.js +41 -0
- package/dist/cjs/Li/index.native.js.map +1 -0
- package/dist/cjs/Li/li.spec.cjs +45 -0
- package/dist/cjs/Li/li.spec.native.js +50 -0
- package/dist/cjs/Li/li.spec.native.js.map +1 -0
- package/dist/cjs/Markdown.cjs +66 -0
- package/dist/cjs/Markdown.native.js +71 -0
- package/dist/cjs/Markdown.native.js.map +1 -0
- package/dist/cjs/Markdown.stories.cjs +153 -0
- package/dist/cjs/Markdown.stories.native.js +162 -0
- package/dist/cjs/Markdown.stories.native.js.map +1 -0
- package/dist/cjs/Mdx/index.cjs +58 -0
- package/dist/cjs/Mdx/index.native.js +62 -0
- package/dist/cjs/Mdx/index.native.js.map +1 -0
- package/dist/cjs/Mdx/mdx.spec.cjs +139 -0
- package/dist/cjs/Mdx/mdx.spec.native.js +158 -0
- package/dist/cjs/Mdx/mdx.spec.native.js.map +1 -0
- package/dist/cjs/MdxCodeBlock/index.cjs +185 -0
- package/dist/cjs/MdxCodeBlock/index.native.js +205 -0
- package/dist/cjs/MdxCodeBlock/index.native.js.map +1 -0
- package/dist/cjs/MdxCodeBlock/mdxCodeBlock.spec.cjs +90 -0
- package/dist/cjs/MdxCodeBlock/mdxCodeBlock.spec.native.js +122 -0
- package/dist/cjs/MdxCodeBlock/mdxCodeBlock.spec.native.js.map +1 -0
- package/dist/cjs/MdxCodeBlock/mdxCodeBlockContext.cjs +29 -0
- package/dist/cjs/MdxCodeBlock/mdxCodeBlockContext.native.js +32 -0
- package/dist/cjs/MdxCodeBlock/mdxCodeBlockContext.native.js.map +1 -0
- package/dist/cjs/Notice/index.cjs +94 -0
- package/dist/cjs/Notice/index.native.js +98 -0
- package/dist/cjs/Notice/index.native.js.map +1 -0
- package/dist/cjs/SimpleTable/index.cjs +132 -0
- package/dist/cjs/SimpleTable/index.native.js +162 -0
- package/dist/cjs/SimpleTable/index.native.js.map +1 -0
- package/dist/cjs/Table/index.cjs +121 -0
- package/dist/cjs/Table/index.native.js +130 -0
- package/dist/cjs/Table/index.native.js.map +1 -0
- package/dist/cjs/Tabs/index.cjs +93 -0
- package/dist/cjs/Tabs/index.native.js +103 -0
- package/dist/cjs/Tabs/index.native.js.map +1 -0
- package/dist/cjs/Ul/index.cjs +35 -0
- package/dist/cjs/Ul/index.native.js +38 -0
- package/dist/cjs/Ul/index.native.js.map +1 -0
- package/dist/cjs/Ul/ul.spec.cjs +150 -0
- package/dist/cjs/Ul/ul.spec.native.js +153 -0
- package/dist/cjs/Ul/ul.spec.native.js.map +1 -0
- package/dist/cjs/Video/index.cjs +84 -0
- package/dist/cjs/Video/index.native.js +89 -0
- package/dist/cjs/Video/index.native.js.map +1 -0
- package/dist/cjs/components/Blockquote.cjs +47 -0
- package/dist/cjs/components/Blockquote.native.js +51 -0
- package/dist/cjs/components/Blockquote.native.js.map +1 -0
- package/dist/cjs/components/Break.cjs +34 -0
- package/dist/cjs/components/Break.native.js +37 -0
- package/dist/cjs/components/Break.native.js.map +1 -0
- package/dist/cjs/components/CodeBlock.cjs +109 -0
- package/dist/cjs/components/CodeBlock.native.js +119 -0
- package/dist/cjs/components/CodeBlock.native.js.map +1 -0
- package/dist/cjs/components/Heading.cjs +48 -0
- package/dist/cjs/components/Heading.native.js +52 -0
- package/dist/cjs/components/Heading.native.js.map +1 -0
- package/dist/cjs/components/HorizontalRule.cjs +34 -0
- package/dist/cjs/components/HorizontalRule.native.js +37 -0
- package/dist/cjs/components/HorizontalRule.native.js.map +1 -0
- package/dist/cjs/components/Image.cjs +53 -0
- package/dist/cjs/components/Image.native.js +57 -0
- package/dist/cjs/components/Image.native.js.map +1 -0
- package/dist/cjs/components/InlineCode.cjs +48 -0
- package/dist/cjs/components/InlineCode.native.js +52 -0
- package/dist/cjs/components/InlineCode.native.js.map +1 -0
- package/dist/cjs/components/InlineStyles.cjs +55 -0
- package/dist/cjs/components/InlineStyles.native.js +61 -0
- package/dist/cjs/components/InlineStyles.native.js.map +1 -0
- package/dist/cjs/components/Link.cjs +54 -0
- package/dist/cjs/components/Link.native.js +58 -0
- package/dist/cjs/components/Link.native.js.map +1 -0
- package/dist/cjs/components/List.cjs +74 -0
- package/dist/cjs/components/List.native.js +79 -0
- package/dist/cjs/components/List.native.js.map +1 -0
- package/dist/cjs/components/Paragraph.cjs +38 -0
- package/dist/cjs/components/Paragraph.native.js +42 -0
- package/dist/cjs/components/Paragraph.native.js.map +1 -0
- package/dist/cjs/components/Table.cjs +86 -0
- package/dist/cjs/components/Table.native.js +92 -0
- package/dist/cjs/components/Table.native.js.map +1 -0
- package/dist/cjs/components/index.cjs +55 -0
- package/dist/cjs/components/index.native.js +58 -0
- package/dist/cjs/components/index.native.js.map +1 -0
- package/dist/cjs/hooks/index.cjs +22 -0
- package/dist/cjs/hooks/index.native.js +25 -0
- package/dist/cjs/hooks/index.native.js.map +1 -0
- package/dist/cjs/hooks/useCompileAndEvaluateMdx.cjs +42 -0
- package/dist/cjs/hooks/useCompileAndEvaluateMdx.native.js +45 -0
- package/dist/cjs/hooks/useCompileAndEvaluateMdx.native.js.map +1 -0
- package/dist/cjs/hooks/useCompileAndEvaluateMdx.spec.cjs +34 -0
- package/dist/cjs/hooks/useCompileAndEvaluateMdx.spec.native.js +49 -0
- package/dist/cjs/hooks/useCompileAndEvaluateMdx.spec.native.js.map +1 -0
- package/dist/cjs/hooks/useCompileMdx.cjs +80 -0
- package/dist/cjs/hooks/useCompileMdx.native.js +83 -0
- package/dist/cjs/hooks/useCompileMdx.native.js.map +1 -0
- package/dist/cjs/hooks/useEvaluateMdx.cjs +58 -0
- package/dist/cjs/hooks/useEvaluateMdx.native.js +63 -0
- package/dist/cjs/hooks/useEvaluateMdx.native.js.map +1 -0
- package/dist/cjs/icons/index.cjs +205 -0
- package/dist/cjs/icons/index.native.js +226 -0
- package/dist/cjs/icons/index.native.js.map +1 -0
- package/dist/cjs/index.cjs +51 -0
- package/dist/cjs/index.native.js +54 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/mdx.spec.cjs +400 -0
- package/dist/cjs/mdx.spec.native.js +465 -0
- package/dist/cjs/mdx.spec.native.js.map +1 -0
- package/dist/cjs/mdxComponents.cjs +317 -0
- package/dist/cjs/mdxComponents.native.js +376 -0
- package/dist/cjs/mdxComponents.native.js.map +1 -0
- package/dist/cjs/parser.cjs +49 -0
- package/dist/cjs/parser.native.js +52 -0
- package/dist/cjs/parser.native.js.map +1 -0
- package/dist/cjs/parser.spec.cjs +109 -0
- package/dist/cjs/parser.spec.native.js +114 -0
- package/dist/cjs/parser.spec.native.js.map +1 -0
- package/dist/cjs/renderer.cjs +326 -0
- package/dist/cjs/renderer.native.js +348 -0
- package/dist/cjs/renderer.native.js.map +1 -0
- package/dist/cjs/shared/colorRamps.cjs +74 -0
- package/dist/cjs/shared/colorRamps.native.js +77 -0
- package/dist/cjs/shared/colorRamps.native.js.map +1 -0
- package/dist/cjs/shared/index.cjs +20 -0
- package/dist/cjs/shared/index.native.js +23 -0
- package/dist/cjs/shared/index.native.js.map +1 -0
- package/dist/cjs/shiki/highlighter.cjs +89 -0
- package/dist/cjs/shiki/highlighter.native.js +94 -0
- package/dist/cjs/shiki/highlighter.native.js.map +1 -0
- package/dist/cjs/shiki/index.cjs +33 -0
- package/dist/cjs/shiki/index.native.js +36 -0
- package/dist/cjs/shiki/index.native.js.map +1 -0
- package/dist/cjs/types.cjs +18 -0
- package/dist/cjs/types.native.js +21 -0
- package/dist/cjs/types.native.js.map +1 -0
- package/dist/cjs/util/rehypeMetaAttributes.cjs +45 -0
- package/dist/cjs/util/rehypeMetaAttributes.native.js +49 -0
- package/dist/cjs/util/rehypeMetaAttributes.native.js.map +1 -0
- package/dist/cjs/util/util.spec.cjs +81 -0
- package/dist/cjs/util/util.spec.native.js +84 -0
- package/dist/cjs/util/util.spec.native.js.map +1 -0
- package/dist/esm/Aside/index.mjs +86 -0
- package/dist/esm/Aside/index.mjs.map +1 -0
- package/dist/esm/Aside/index.native.js +90 -0
- package/dist/esm/Aside/index.native.js.map +1 -0
- package/dist/esm/ExternalIcon/ExternalIcon.spec.mjs +38 -0
- package/dist/esm/ExternalIcon/ExternalIcon.spec.mjs.map +1 -0
- package/dist/esm/ExternalIcon/ExternalIcon.spec.native.js +38 -0
- package/dist/esm/ExternalIcon/ExternalIcon.spec.native.js.map +1 -0
- package/dist/esm/ExternalIcon/index.mjs +21 -0
- package/dist/esm/ExternalIcon/index.mjs.map +1 -0
- package/dist/esm/ExternalIcon/index.native.js +23 -0
- package/dist/esm/ExternalIcon/index.native.js.map +1 -0
- package/dist/esm/Hr/hr.spec.mjs +22 -0
- package/dist/esm/Hr/hr.spec.mjs.map +1 -0
- package/dist/esm/Hr/hr.spec.native.js +22 -0
- package/dist/esm/Hr/hr.spec.native.js.map +1 -0
- package/dist/esm/Hr/index.mjs +16 -0
- package/dist/esm/Hr/index.mjs.map +1 -0
- package/dist/esm/Hr/index.native.js +18 -0
- package/dist/esm/Hr/index.native.js.map +1 -0
- package/dist/esm/Li/index.mjs +13 -0
- package/dist/esm/Li/index.mjs.map +1 -0
- package/dist/esm/Li/index.native.js +13 -0
- package/dist/esm/Li/index.native.js.map +1 -0
- package/dist/esm/Li/li.spec.mjs +46 -0
- package/dist/esm/Li/li.spec.mjs.map +1 -0
- package/dist/esm/Li/li.spec.native.js +48 -0
- package/dist/esm/Li/li.spec.native.js.map +1 -0
- package/dist/esm/Markdown.mjs +41 -0
- package/dist/esm/Markdown.mjs.map +1 -0
- package/dist/esm/Markdown.native.js +43 -0
- package/dist/esm/Markdown.native.js.map +1 -0
- package/dist/esm/Markdown.stories.mjs +125 -0
- package/dist/esm/Markdown.stories.mjs.map +1 -0
- package/dist/esm/Markdown.stories.native.js +131 -0
- package/dist/esm/Markdown.stories.native.js.map +1 -0
- package/dist/esm/Mdx/index.mjs +33 -0
- package/dist/esm/Mdx/index.mjs.map +1 -0
- package/dist/esm/Mdx/index.native.js +34 -0
- package/dist/esm/Mdx/index.native.js.map +1 -0
- package/dist/esm/Mdx/mdx.spec.mjs +140 -0
- package/dist/esm/Mdx/mdx.spec.mjs.map +1 -0
- package/dist/esm/Mdx/mdx.spec.native.js +156 -0
- package/dist/esm/Mdx/mdx.spec.native.js.map +1 -0
- package/dist/esm/MdxCodeBlock/index.mjs +149 -0
- package/dist/esm/MdxCodeBlock/index.mjs.map +1 -0
- package/dist/esm/MdxCodeBlock/index.native.js +166 -0
- package/dist/esm/MdxCodeBlock/index.native.js.map +1 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlock.spec.mjs +91 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlock.spec.mjs.map +1 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlock.spec.native.js +96 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlock.spec.native.js.map +1 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlockContext.mjs +4 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlockContext.mjs.map +1 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlockContext.native.js +4 -0
- package/dist/esm/MdxCodeBlock/mdxCodeBlockContext.native.js.map +1 -0
- package/dist/esm/Notice/index.mjs +68 -0
- package/dist/esm/Notice/index.mjs.map +1 -0
- package/dist/esm/Notice/index.native.js +69 -0
- package/dist/esm/Notice/index.native.js.map +1 -0
- package/dist/esm/SimpleTable/index.mjs +107 -0
- package/dist/esm/SimpleTable/index.mjs.map +1 -0
- package/dist/esm/SimpleTable/index.native.js +134 -0
- package/dist/esm/SimpleTable/index.native.js.map +1 -0
- package/dist/esm/Table/index.mjs +91 -0
- package/dist/esm/Table/index.mjs.map +1 -0
- package/dist/esm/Table/index.native.js +97 -0
- package/dist/esm/Table/index.native.js.map +1 -0
- package/dist/esm/Tabs/index.mjs +67 -0
- package/dist/esm/Tabs/index.mjs.map +1 -0
- package/dist/esm/Tabs/index.native.js +74 -0
- package/dist/esm/Tabs/index.native.js.map +1 -0
- package/dist/esm/Ul/index.mjs +10 -0
- package/dist/esm/Ul/index.mjs.map +1 -0
- package/dist/esm/Ul/index.native.js +10 -0
- package/dist/esm/Ul/index.native.js.map +1 -0
- package/dist/esm/Ul/ul.spec.mjs +151 -0
- package/dist/esm/Ul/ul.spec.mjs.map +1 -0
- package/dist/esm/Ul/ul.spec.native.js +151 -0
- package/dist/esm/Ul/ul.spec.native.js.map +1 -0
- package/dist/esm/Video/index.mjs +59 -0
- package/dist/esm/Video/index.mjs.map +1 -0
- package/dist/esm/Video/index.native.js +61 -0
- package/dist/esm/Video/index.native.js.map +1 -0
- package/dist/esm/components/Blockquote.mjs +22 -0
- package/dist/esm/components/Blockquote.mjs.map +1 -0
- package/dist/esm/components/Blockquote.native.js +23 -0
- package/dist/esm/components/Blockquote.native.js.map +1 -0
- package/dist/esm/components/Break.mjs +9 -0
- package/dist/esm/components/Break.mjs.map +1 -0
- package/dist/esm/components/Break.native.js +9 -0
- package/dist/esm/components/Break.native.js.map +1 -0
- package/dist/esm/components/CodeBlock.mjs +84 -0
- package/dist/esm/components/CodeBlock.mjs.map +1 -0
- package/dist/esm/components/CodeBlock.native.js +91 -0
- package/dist/esm/components/CodeBlock.native.js.map +1 -0
- package/dist/esm/components/Heading.mjs +23 -0
- package/dist/esm/components/Heading.mjs.map +1 -0
- package/dist/esm/components/Heading.native.js +24 -0
- package/dist/esm/components/Heading.native.js.map +1 -0
- package/dist/esm/components/HorizontalRule.mjs +9 -0
- package/dist/esm/components/HorizontalRule.mjs.map +1 -0
- package/dist/esm/components/HorizontalRule.native.js +9 -0
- package/dist/esm/components/HorizontalRule.native.js.map +1 -0
- package/dist/esm/components/Image.mjs +28 -0
- package/dist/esm/components/Image.mjs.map +1 -0
- package/dist/esm/components/Image.native.js +29 -0
- package/dist/esm/components/Image.native.js.map +1 -0
- package/dist/esm/components/InlineCode.mjs +23 -0
- package/dist/esm/components/InlineCode.mjs.map +1 -0
- package/dist/esm/components/InlineCode.native.js +24 -0
- package/dist/esm/components/InlineCode.native.js.map +1 -0
- package/dist/esm/components/InlineStyles.mjs +28 -0
- package/dist/esm/components/InlineStyles.mjs.map +1 -0
- package/dist/esm/components/InlineStyles.native.js +31 -0
- package/dist/esm/components/InlineStyles.native.js.map +1 -0
- package/dist/esm/components/Link.mjs +29 -0
- package/dist/esm/components/Link.mjs.map +1 -0
- package/dist/esm/components/Link.native.js +30 -0
- package/dist/esm/components/Link.native.js.map +1 -0
- package/dist/esm/components/List.mjs +48 -0
- package/dist/esm/components/List.mjs.map +1 -0
- package/dist/esm/components/List.native.js +50 -0
- package/dist/esm/components/List.native.js.map +1 -0
- package/dist/esm/components/Paragraph.mjs +13 -0
- package/dist/esm/components/Paragraph.mjs.map +1 -0
- package/dist/esm/components/Paragraph.native.js +14 -0
- package/dist/esm/components/Paragraph.native.js.map +1 -0
- package/dist/esm/components/Table.mjs +59 -0
- package/dist/esm/components/Table.mjs.map +1 -0
- package/dist/esm/components/Table.native.js +62 -0
- package/dist/esm/components/Table.native.js.map +1 -0
- package/dist/esm/components/index.mjs +14 -0
- package/dist/esm/components/index.mjs.map +1 -0
- package/dist/esm/components/index.native.js +14 -0
- package/dist/esm/components/index.native.js.map +1 -0
- package/dist/esm/hooks/index.mjs +4 -0
- package/dist/esm/hooks/index.mjs.map +1 -0
- package/dist/esm/hooks/index.native.js +4 -0
- package/dist/esm/hooks/index.native.js.map +1 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.mjs +17 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.mjs.map +1 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.native.js +17 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.native.js.map +1 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.spec.mjs +35 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.spec.mjs.map +1 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.spec.native.js +47 -0
- package/dist/esm/hooks/useCompileAndEvaluateMdx.spec.native.js.map +1 -0
- package/dist/esm/hooks/useCompileMdx.mjs +44 -0
- package/dist/esm/hooks/useCompileMdx.mjs.map +1 -0
- package/dist/esm/hooks/useCompileMdx.native.js +44 -0
- package/dist/esm/hooks/useCompileMdx.native.js.map +1 -0
- package/dist/esm/hooks/useEvaluateMdx.mjs +22 -0
- package/dist/esm/hooks/useEvaluateMdx.mjs.map +1 -0
- package/dist/esm/hooks/useEvaluateMdx.native.js +24 -0
- package/dist/esm/hooks/useEvaluateMdx.native.js.map +1 -0
- package/dist/esm/icons/index.mjs +175 -0
- package/dist/esm/icons/index.mjs.map +1 -0
- package/dist/esm/icons/index.native.js +193 -0
- package/dist/esm/icons/index.native.js.map +1 -0
- package/dist/esm/index.mjs +21 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +21 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/mdx.spec.mjs +377 -0
- package/dist/esm/mdx.spec.mjs.map +1 -0
- package/dist/esm/mdx.spec.native.js +439 -0
- package/dist/esm/mdx.spec.native.js.map +1 -0
- package/dist/esm/mdxComponents.mjs +291 -0
- package/dist/esm/mdxComponents.mjs.map +1 -0
- package/dist/esm/mdxComponents.native.js +347 -0
- package/dist/esm/mdxComponents.native.js.map +1 -0
- package/dist/esm/parser.mjs +12 -0
- package/dist/esm/parser.mjs.map +1 -0
- package/dist/esm/parser.native.js +12 -0
- package/dist/esm/parser.native.js.map +1 -0
- package/dist/esm/parser.spec.mjs +110 -0
- package/dist/esm/parser.spec.mjs.map +1 -0
- package/dist/esm/parser.spec.native.js +112 -0
- package/dist/esm/parser.spec.native.js.map +1 -0
- package/dist/esm/renderer.mjs +300 -0
- package/dist/esm/renderer.mjs.map +1 -0
- package/dist/esm/renderer.native.js +319 -0
- package/dist/esm/renderer.native.js.map +1 -0
- package/dist/esm/shared/colorRamps.mjs +45 -0
- package/dist/esm/shared/colorRamps.mjs.map +1 -0
- package/dist/esm/shared/colorRamps.native.js +45 -0
- package/dist/esm/shared/colorRamps.native.js.map +1 -0
- package/dist/esm/shared/index.mjs +2 -0
- package/dist/esm/shared/index.mjs.map +1 -0
- package/dist/esm/shared/index.native.js +2 -0
- package/dist/esm/shared/index.native.js.map +1 -0
- package/dist/esm/shiki/highlighter.mjs +59 -0
- package/dist/esm/shiki/highlighter.mjs.map +1 -0
- package/dist/esm/shiki/highlighter.native.js +61 -0
- package/dist/esm/shiki/highlighter.native.js.map +1 -0
- package/dist/esm/shiki/index.mjs +3 -0
- package/dist/esm/shiki/index.mjs.map +1 -0
- package/dist/esm/shiki/index.native.js +3 -0
- package/dist/esm/shiki/index.native.js.map +1 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/esm/types.native.js +2 -0
- package/dist/esm/types.native.js.map +1 -0
- package/dist/esm/util/rehypeMetaAttributes.mjs +20 -0
- package/dist/esm/util/rehypeMetaAttributes.mjs.map +1 -0
- package/dist/esm/util/rehypeMetaAttributes.native.js +21 -0
- package/dist/esm/util/rehypeMetaAttributes.native.js.map +1 -0
- package/dist/esm/util/util.spec.mjs +82 -0
- package/dist/esm/util/util.spec.mjs.map +1 -0
- package/dist/esm/util/util.spec.native.js +82 -0
- package/dist/esm/util/util.spec.native.js.map +1 -0
- package/dist/jsx/Aside/index.mjs +86 -0
- package/dist/jsx/Aside/index.mjs.map +1 -0
- package/dist/jsx/Aside/index.native.js +119 -0
- package/dist/jsx/Aside/index.native.js.map +1 -0
- package/dist/jsx/ExternalIcon/ExternalIcon.spec.mjs +38 -0
- package/dist/jsx/ExternalIcon/ExternalIcon.spec.mjs.map +1 -0
- package/dist/jsx/ExternalIcon/ExternalIcon.spec.native.js +40 -0
- package/dist/jsx/ExternalIcon/ExternalIcon.spec.native.js.map +1 -0
- package/dist/jsx/ExternalIcon/index.mjs +21 -0
- package/dist/jsx/ExternalIcon/index.mjs.map +1 -0
- package/dist/jsx/ExternalIcon/index.native.js +51 -0
- package/dist/jsx/ExternalIcon/index.native.js.map +1 -0
- package/dist/jsx/Hr/hr.spec.mjs +22 -0
- package/dist/jsx/Hr/hr.spec.mjs.map +1 -0
- package/dist/jsx/Hr/hr.spec.native.js +24 -0
- package/dist/jsx/Hr/hr.spec.native.js.map +1 -0
- package/dist/jsx/Hr/index.mjs +16 -0
- package/dist/jsx/Hr/index.mjs.map +1 -0
- package/dist/jsx/Hr/index.native.js +46 -0
- package/dist/jsx/Hr/index.native.js.map +1 -0
- package/dist/jsx/Li/index.mjs +13 -0
- package/dist/jsx/Li/index.mjs.map +1 -0
- package/dist/jsx/Li/index.native.js +41 -0
- package/dist/jsx/Li/index.native.js.map +1 -0
- package/dist/jsx/Li/li.spec.mjs +46 -0
- package/dist/jsx/Li/li.spec.mjs.map +1 -0
- package/dist/jsx/Li/li.spec.native.js +50 -0
- package/dist/jsx/Li/li.spec.native.js.map +1 -0
- package/dist/jsx/Markdown.mjs +41 -0
- package/dist/jsx/Markdown.mjs.map +1 -0
- package/dist/jsx/Markdown.native.js +71 -0
- package/dist/jsx/Markdown.native.js.map +1 -0
- package/dist/jsx/Markdown.stories.mjs +125 -0
- package/dist/jsx/Markdown.stories.mjs.map +1 -0
- package/dist/jsx/Markdown.stories.native.js +162 -0
- package/dist/jsx/Markdown.stories.native.js.map +1 -0
- package/dist/jsx/Mdx/index.mjs +33 -0
- package/dist/jsx/Mdx/index.mjs.map +1 -0
- package/dist/jsx/Mdx/index.native.js +62 -0
- package/dist/jsx/Mdx/index.native.js.map +1 -0
- package/dist/jsx/Mdx/mdx.spec.mjs +140 -0
- package/dist/jsx/Mdx/mdx.spec.mjs.map +1 -0
- package/dist/jsx/Mdx/mdx.spec.native.js +158 -0
- package/dist/jsx/Mdx/mdx.spec.native.js.map +1 -0
- package/dist/jsx/MdxCodeBlock/index.mjs +149 -0
- package/dist/jsx/MdxCodeBlock/index.mjs.map +1 -0
- package/dist/jsx/MdxCodeBlock/index.native.js +205 -0
- package/dist/jsx/MdxCodeBlock/index.native.js.map +1 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlock.spec.mjs +91 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlock.spec.mjs.map +1 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlock.spec.native.js +122 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlock.spec.native.js.map +1 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlockContext.mjs +4 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlockContext.mjs.map +1 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlockContext.native.js +32 -0
- package/dist/jsx/MdxCodeBlock/mdxCodeBlockContext.native.js.map +1 -0
- package/dist/jsx/Notice/index.mjs +68 -0
- package/dist/jsx/Notice/index.mjs.map +1 -0
- package/dist/jsx/Notice/index.native.js +98 -0
- package/dist/jsx/Notice/index.native.js.map +1 -0
- package/dist/jsx/SimpleTable/index.mjs +107 -0
- package/dist/jsx/SimpleTable/index.mjs.map +1 -0
- package/dist/jsx/SimpleTable/index.native.js +162 -0
- package/dist/jsx/SimpleTable/index.native.js.map +1 -0
- package/dist/jsx/Table/index.mjs +91 -0
- package/dist/jsx/Table/index.mjs.map +1 -0
- package/dist/jsx/Table/index.native.js +130 -0
- package/dist/jsx/Table/index.native.js.map +1 -0
- package/dist/jsx/Tabs/index.mjs +67 -0
- package/dist/jsx/Tabs/index.mjs.map +1 -0
- package/dist/jsx/Tabs/index.native.js +103 -0
- package/dist/jsx/Tabs/index.native.js.map +1 -0
- package/dist/jsx/Ul/index.mjs +10 -0
- package/dist/jsx/Ul/index.mjs.map +1 -0
- package/dist/jsx/Ul/index.native.js +38 -0
- package/dist/jsx/Ul/index.native.js.map +1 -0
- package/dist/jsx/Ul/ul.spec.mjs +151 -0
- package/dist/jsx/Ul/ul.spec.mjs.map +1 -0
- package/dist/jsx/Ul/ul.spec.native.js +153 -0
- package/dist/jsx/Ul/ul.spec.native.js.map +1 -0
- package/dist/jsx/Video/index.mjs +59 -0
- package/dist/jsx/Video/index.mjs.map +1 -0
- package/dist/jsx/Video/index.native.js +89 -0
- package/dist/jsx/Video/index.native.js.map +1 -0
- package/dist/jsx/components/Blockquote.mjs +22 -0
- package/dist/jsx/components/Blockquote.mjs.map +1 -0
- package/dist/jsx/components/Blockquote.native.js +51 -0
- package/dist/jsx/components/Blockquote.native.js.map +1 -0
- package/dist/jsx/components/Break.mjs +9 -0
- package/dist/jsx/components/Break.mjs.map +1 -0
- package/dist/jsx/components/Break.native.js +37 -0
- package/dist/jsx/components/Break.native.js.map +1 -0
- package/dist/jsx/components/CodeBlock.mjs +84 -0
- package/dist/jsx/components/CodeBlock.mjs.map +1 -0
- package/dist/jsx/components/CodeBlock.native.js +119 -0
- package/dist/jsx/components/CodeBlock.native.js.map +1 -0
- package/dist/jsx/components/Heading.mjs +23 -0
- package/dist/jsx/components/Heading.mjs.map +1 -0
- package/dist/jsx/components/Heading.native.js +52 -0
- package/dist/jsx/components/Heading.native.js.map +1 -0
- package/dist/jsx/components/HorizontalRule.mjs +9 -0
- package/dist/jsx/components/HorizontalRule.mjs.map +1 -0
- package/dist/jsx/components/HorizontalRule.native.js +37 -0
- package/dist/jsx/components/HorizontalRule.native.js.map +1 -0
- package/dist/jsx/components/Image.mjs +28 -0
- package/dist/jsx/components/Image.mjs.map +1 -0
- package/dist/jsx/components/Image.native.js +57 -0
- package/dist/jsx/components/Image.native.js.map +1 -0
- package/dist/jsx/components/InlineCode.mjs +23 -0
- package/dist/jsx/components/InlineCode.mjs.map +1 -0
- package/dist/jsx/components/InlineCode.native.js +52 -0
- package/dist/jsx/components/InlineCode.native.js.map +1 -0
- package/dist/jsx/components/InlineStyles.mjs +28 -0
- package/dist/jsx/components/InlineStyles.mjs.map +1 -0
- package/dist/jsx/components/InlineStyles.native.js +61 -0
- package/dist/jsx/components/InlineStyles.native.js.map +1 -0
- package/dist/jsx/components/Link.mjs +29 -0
- package/dist/jsx/components/Link.mjs.map +1 -0
- package/dist/jsx/components/Link.native.js +58 -0
- package/dist/jsx/components/Link.native.js.map +1 -0
- package/dist/jsx/components/List.mjs +48 -0
- package/dist/jsx/components/List.mjs.map +1 -0
- package/dist/jsx/components/List.native.js +79 -0
- package/dist/jsx/components/List.native.js.map +1 -0
- package/dist/jsx/components/Paragraph.mjs +13 -0
- package/dist/jsx/components/Paragraph.mjs.map +1 -0
- package/dist/jsx/components/Paragraph.native.js +42 -0
- package/dist/jsx/components/Paragraph.native.js.map +1 -0
- package/dist/jsx/components/Table.mjs +59 -0
- package/dist/jsx/components/Table.mjs.map +1 -0
- package/dist/jsx/components/Table.native.js +92 -0
- package/dist/jsx/components/Table.native.js.map +1 -0
- package/dist/jsx/components/index.mjs +14 -0
- package/dist/jsx/components/index.mjs.map +1 -0
- package/dist/jsx/components/index.native.js +58 -0
- package/dist/jsx/components/index.native.js.map +1 -0
- package/dist/jsx/hooks/index.mjs +4 -0
- package/dist/jsx/hooks/index.mjs.map +1 -0
- package/dist/jsx/hooks/index.native.js +25 -0
- package/dist/jsx/hooks/index.native.js.map +1 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.mjs +17 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.mjs.map +1 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.native.js +45 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.native.js.map +1 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.spec.mjs +35 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.spec.mjs.map +1 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.spec.native.js +49 -0
- package/dist/jsx/hooks/useCompileAndEvaluateMdx.spec.native.js.map +1 -0
- package/dist/jsx/hooks/useCompileMdx.mjs +44 -0
- package/dist/jsx/hooks/useCompileMdx.mjs.map +1 -0
- package/dist/jsx/hooks/useCompileMdx.native.js +83 -0
- package/dist/jsx/hooks/useCompileMdx.native.js.map +1 -0
- package/dist/jsx/hooks/useEvaluateMdx.mjs +22 -0
- package/dist/jsx/hooks/useEvaluateMdx.mjs.map +1 -0
- package/dist/jsx/hooks/useEvaluateMdx.native.js +63 -0
- package/dist/jsx/hooks/useEvaluateMdx.native.js.map +1 -0
- package/dist/jsx/icons/index.mjs +175 -0
- package/dist/jsx/icons/index.mjs.map +1 -0
- package/dist/jsx/icons/index.native.js +226 -0
- package/dist/jsx/icons/index.native.js.map +1 -0
- package/dist/jsx/index.js +21 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/index.mjs +21 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +54 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/dist/jsx/mdx.spec.mjs +377 -0
- package/dist/jsx/mdx.spec.mjs.map +1 -0
- package/dist/jsx/mdx.spec.native.js +465 -0
- package/dist/jsx/mdx.spec.native.js.map +1 -0
- package/dist/jsx/mdxComponents.mjs +291 -0
- package/dist/jsx/mdxComponents.mjs.map +1 -0
- package/dist/jsx/mdxComponents.native.js +376 -0
- package/dist/jsx/mdxComponents.native.js.map +1 -0
- package/dist/jsx/parser.mjs +12 -0
- package/dist/jsx/parser.mjs.map +1 -0
- package/dist/jsx/parser.native.js +52 -0
- package/dist/jsx/parser.native.js.map +1 -0
- package/dist/jsx/parser.spec.mjs +110 -0
- package/dist/jsx/parser.spec.mjs.map +1 -0
- package/dist/jsx/parser.spec.native.js +114 -0
- package/dist/jsx/parser.spec.native.js.map +1 -0
- package/dist/jsx/renderer.mjs +300 -0
- package/dist/jsx/renderer.mjs.map +1 -0
- package/dist/jsx/renderer.native.js +348 -0
- package/dist/jsx/renderer.native.js.map +1 -0
- package/dist/jsx/shared/colorRamps.mjs +45 -0
- package/dist/jsx/shared/colorRamps.mjs.map +1 -0
- package/dist/jsx/shared/colorRamps.native.js +77 -0
- package/dist/jsx/shared/colorRamps.native.js.map +1 -0
- package/dist/jsx/shared/index.mjs +2 -0
- package/dist/jsx/shared/index.mjs.map +1 -0
- package/dist/jsx/shared/index.native.js +23 -0
- package/dist/jsx/shared/index.native.js.map +1 -0
- package/dist/jsx/shiki/highlighter.mjs +59 -0
- package/dist/jsx/shiki/highlighter.mjs.map +1 -0
- package/dist/jsx/shiki/highlighter.native.js +94 -0
- package/dist/jsx/shiki/highlighter.native.js.map +1 -0
- package/dist/jsx/shiki/index.mjs +3 -0
- package/dist/jsx/shiki/index.mjs.map +1 -0
- package/dist/jsx/shiki/index.native.js +36 -0
- package/dist/jsx/shiki/index.native.js.map +1 -0
- package/dist/jsx/types.mjs +2 -0
- package/dist/jsx/types.mjs.map +1 -0
- package/dist/jsx/types.native.js +21 -0
- package/dist/jsx/types.native.js.map +1 -0
- package/dist/jsx/util/rehypeMetaAttributes.mjs +20 -0
- package/dist/jsx/util/rehypeMetaAttributes.mjs.map +1 -0
- package/dist/jsx/util/rehypeMetaAttributes.native.js +49 -0
- package/dist/jsx/util/rehypeMetaAttributes.native.js.map +1 -0
- package/dist/jsx/util/util.spec.mjs +82 -0
- package/dist/jsx/util/util.spec.mjs.map +1 -0
- package/dist/jsx/util/util.spec.native.js +84 -0
- package/dist/jsx/util/util.spec.native.js.map +1 -0
- package/package.json +94 -0
- package/src/Aside/index.tsx +89 -0
- package/src/ExternalIcon/ExternalIcon.spec.tsx +33 -0
- package/src/ExternalIcon/index.tsx +15 -0
- package/src/Hr/hr.spec.tsx +18 -0
- package/src/Hr/index.tsx +7 -0
- package/src/Li/index.tsx +14 -0
- package/src/Li/li.spec.tsx +33 -0
- package/src/Markdown.stories.tsx +127 -0
- package/src/Markdown.tsx +62 -0
- package/src/Mdx/index.tsx +32 -0
- package/src/Mdx/mdx.spec.tsx +118 -0
- package/src/MdxCodeBlock/index.tsx +168 -0
- package/src/MdxCodeBlock/mdxCodeBlock.spec.tsx +66 -0
- package/src/MdxCodeBlock/mdxCodeBlockContext.ts +15 -0
- package/src/Notice/index.tsx +76 -0
- package/src/SimpleTable/index.tsx +125 -0
- package/src/Table/index.tsx +80 -0
- package/src/Tabs/index.tsx +76 -0
- package/src/Ul/index.ts +11 -0
- package/src/Ul/ul.spec.tsx +131 -0
- package/src/Video/index.tsx +62 -0
- package/src/components/Blockquote.tsx +20 -0
- package/src/components/Break.tsx +6 -0
- package/src/components/CodeBlock.tsx +94 -0
- package/src/components/Heading.tsx +20 -0
- package/src/components/HorizontalRule.tsx +6 -0
- package/src/components/Image.tsx +20 -0
- package/src/components/InlineCode.tsx +21 -0
- package/src/components/InlineStyles.tsx +14 -0
- package/src/components/Link.tsx +26 -0
- package/src/components/List.tsx +41 -0
- package/src/components/Paragraph.tsx +10 -0
- package/src/components/Table.tsx +56 -0
- package/src/components/index.ts +12 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useCompileAndEvaluateMdx.spec.tsx +31 -0
- package/src/hooks/useCompileAndEvaluateMdx.ts +22 -0
- package/src/hooks/useCompileMdx.ts +55 -0
- package/src/hooks/useEvaluateMdx.ts +27 -0
- package/src/icons/index.tsx +116 -0
- package/src/index.ts +33 -0
- package/src/mdx.spec.tsx +347 -0
- package/src/mdxComponents.tsx +225 -0
- package/src/parser.spec.ts +126 -0
- package/src/parser.ts +27 -0
- package/src/renderer.tsx +391 -0
- package/src/shared/colorRamps.ts +52 -0
- package/src/shared/index.ts +1 -0
- package/src/shiki/highlighter.ts +148 -0
- package/src/shiki/index.ts +11 -0
- package/src/types.ts +225 -0
- package/src/util/rehypeMetaAttributes.ts +21 -0
- package/src/util/util.spec.tsx +90 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { ScrollView, Text, View, XStack } from "tamagui";
|
|
4
|
+
import { markdownCodeColors } from "../shared/colorRamps";
|
|
5
|
+
import { highlightCode, type ThemedToken, type BundledTheme } from "../shiki";
|
|
6
|
+
import type { CodeBlockProps } from "../types";
|
|
7
|
+
|
|
8
|
+
interface CodeBlockInternalProps extends CodeBlockProps {
|
|
9
|
+
theme?: BundledTheme;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function CodeBlock({ children, lang, theme = "github-dark" }: CodeBlockInternalProps) {
|
|
13
|
+
const { knobProps } = useResolvedKnobs();
|
|
14
|
+
const [tokens, setTokens] = useState<ThemedToken[][] | null>(null);
|
|
15
|
+
const [error, setError] = useState<string | null>(null);
|
|
16
|
+
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
let cancelled = false;
|
|
19
|
+
|
|
20
|
+
highlightCode(children, lang || "text", theme)
|
|
21
|
+
.then((result) => {
|
|
22
|
+
if (!cancelled) {
|
|
23
|
+
setTokens(result);
|
|
24
|
+
setError(null);
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
.catch((err) => {
|
|
28
|
+
if (!cancelled) {
|
|
29
|
+
setError(String(err));
|
|
30
|
+
setTokens(null);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
return () => {
|
|
35
|
+
cancelled = true;
|
|
36
|
+
};
|
|
37
|
+
}, [children, lang, theme]);
|
|
38
|
+
|
|
39
|
+
const containerProps = {
|
|
40
|
+
borderRadius: knobProps.borderRadiusOuter?.borderRadius ?? "$4",
|
|
41
|
+
backgroundColor: markdownCodeColors.background.base,
|
|
42
|
+
borderWidth: 1,
|
|
43
|
+
borderColor: markdownCodeColors.border.base,
|
|
44
|
+
padding: knobProps.panelPadding.padding,
|
|
45
|
+
marginVertical: "$2",
|
|
46
|
+
overflow: "hidden" as const,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Loading or error fallback
|
|
50
|
+
if (!tokens || error) {
|
|
51
|
+
return (
|
|
52
|
+
<View {...containerProps}>
|
|
53
|
+
<ScrollView horizontal showsHorizontalScrollIndicator={false}>
|
|
54
|
+
<Text
|
|
55
|
+
fontFamily="$mono"
|
|
56
|
+
fontSize={knobProps.sizeToken}
|
|
57
|
+
color={markdownCodeColors.text.muted}
|
|
58
|
+
>
|
|
59
|
+
{children}
|
|
60
|
+
</Text>
|
|
61
|
+
</ScrollView>
|
|
62
|
+
</View>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<View {...containerProps}>
|
|
68
|
+
<ScrollView horizontal showsHorizontalScrollIndicator={false}>
|
|
69
|
+
<View>
|
|
70
|
+
{tokens.map((line, lineIndex) => (
|
|
71
|
+
<XStack key={lineIndex} minHeight={20}>
|
|
72
|
+
{line.length === 0 ? (
|
|
73
|
+
<Text fontFamily="$mono" fontSize={knobProps.sizeToken}>
|
|
74
|
+
{"\n"}
|
|
75
|
+
</Text>
|
|
76
|
+
) : (
|
|
77
|
+
line.map((token, tokenIndex) => (
|
|
78
|
+
<Text
|
|
79
|
+
key={tokenIndex}
|
|
80
|
+
fontFamily="$mono"
|
|
81
|
+
fontSize={knobProps.sizeToken}
|
|
82
|
+
style={{ color: token.color }}
|
|
83
|
+
>
|
|
84
|
+
{token.content}
|
|
85
|
+
</Text>
|
|
86
|
+
))
|
|
87
|
+
)}
|
|
88
|
+
</XStack>
|
|
89
|
+
))}
|
|
90
|
+
</View>
|
|
91
|
+
</ScrollView>
|
|
92
|
+
</View>
|
|
93
|
+
);
|
|
94
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { H1, H2, H3, H4, H5, H6 } from "tamagui";
|
|
2
|
+
import type { HeadingProps } from "../types";
|
|
3
|
+
|
|
4
|
+
const headingComponents = {
|
|
5
|
+
1: H1,
|
|
6
|
+
2: H2,
|
|
7
|
+
3: H3,
|
|
8
|
+
4: H4,
|
|
9
|
+
5: H5,
|
|
10
|
+
6: H6,
|
|
11
|
+
} as const;
|
|
12
|
+
|
|
13
|
+
export function Heading({ level, children }: HeadingProps) {
|
|
14
|
+
const Component = headingComponents[level];
|
|
15
|
+
return (
|
|
16
|
+
<Component marginTop="$3" marginBottom="$2">
|
|
17
|
+
{children}
|
|
18
|
+
</Component>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Image as TamaguiImage, View } from "tamagui";
|
|
2
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
3
|
+
import type { ImageProps } from "../types";
|
|
4
|
+
|
|
5
|
+
export function MarkdownImage({ src, alt, title }: ImageProps) {
|
|
6
|
+
const { knobProps } = useResolvedKnobs();
|
|
7
|
+
return (
|
|
8
|
+
<View marginVertical="$2">
|
|
9
|
+
<TamaguiImage
|
|
10
|
+
source={{ uri: src }}
|
|
11
|
+
alt={alt || ""}
|
|
12
|
+
accessibilityLabel={alt || title || "Image"}
|
|
13
|
+
width="100%"
|
|
14
|
+
height={200}
|
|
15
|
+
resizeMode="contain"
|
|
16
|
+
borderRadius={knobProps.borderRadius.borderRadius}
|
|
17
|
+
/>
|
|
18
|
+
</View>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Text } from "tamagui";
|
|
2
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
3
|
+
import { markdownCodeColors } from "../shared/colorRamps";
|
|
4
|
+
import type { InlineCodeProps } from "../types";
|
|
5
|
+
|
|
6
|
+
export function InlineCode({ children }: InlineCodeProps) {
|
|
7
|
+
const { knobProps } = useResolvedKnobs();
|
|
8
|
+
return (
|
|
9
|
+
<Text
|
|
10
|
+
fontFamily="$mono"
|
|
11
|
+
fontSize={knobProps.sizeToken}
|
|
12
|
+
backgroundColor={markdownCodeColors.background.base}
|
|
13
|
+
color={markdownCodeColors.text.base}
|
|
14
|
+
paddingHorizontal="$1.5"
|
|
15
|
+
paddingVertical="$0.5"
|
|
16
|
+
borderRadius={knobProps.borderRadius.borderRadius}
|
|
17
|
+
>
|
|
18
|
+
{children}
|
|
19
|
+
</Text>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Text } from "tamagui";
|
|
2
|
+
import type { InlineProps } from "../types";
|
|
3
|
+
|
|
4
|
+
export function Strong({ children }: InlineProps) {
|
|
5
|
+
return <Text fontWeight="bold">{children}</Text>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function Emphasis({ children }: InlineProps) {
|
|
9
|
+
return <Text fontStyle="italic">{children}</Text>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function Strikethrough({ children }: InlineProps) {
|
|
13
|
+
return <Text textDecorationLine="line-through">{children}</Text>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Text } from "tamagui";
|
|
2
|
+
import { openUrl } from "@multiplatform.one/platform";
|
|
3
|
+
import { markdownLinkColors } from "../shared/colorRamps";
|
|
4
|
+
import type { LinkProps } from "../types";
|
|
5
|
+
|
|
6
|
+
export function Link({ href, title, children }: LinkProps) {
|
|
7
|
+
const handlePress = () => {
|
|
8
|
+
if (href) {
|
|
9
|
+
openUrl(href);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<Text
|
|
15
|
+
color={markdownLinkColors.text.base}
|
|
16
|
+
textDecorationLine="underline"
|
|
17
|
+
cursor="pointer"
|
|
18
|
+
onPress={handlePress}
|
|
19
|
+
accessibilityRole="link"
|
|
20
|
+
accessibilityLabel={title || undefined}
|
|
21
|
+
hoverStyle={{ color: markdownLinkColors.text.hover }}
|
|
22
|
+
>
|
|
23
|
+
{children}
|
|
24
|
+
</Text>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { View, XStack, Text } from "tamagui";
|
|
2
|
+
import type { ListProps, ListItemProps } from "../types";
|
|
3
|
+
|
|
4
|
+
export function MarkdownList({ ordered: _ordered, start: _start, children }: ListProps) {
|
|
5
|
+
return <View marginVertical="$2">{children}</View>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
interface ListItemInternalProps extends ListItemProps {
|
|
9
|
+
index?: number;
|
|
10
|
+
ordered?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function MarkdownListItem({
|
|
14
|
+
checked,
|
|
15
|
+
children,
|
|
16
|
+
index = 0,
|
|
17
|
+
ordered = false,
|
|
18
|
+
}: ListItemInternalProps) {
|
|
19
|
+
const bullet = ordered ? `${index + 1}.` : "•";
|
|
20
|
+
|
|
21
|
+
// Task list item
|
|
22
|
+
if (checked !== null && checked !== undefined) {
|
|
23
|
+
return (
|
|
24
|
+
<XStack marginBottom="$1" alignItems="flex-start">
|
|
25
|
+
<Text width={24} color="$color11">
|
|
26
|
+
{checked ? "☑" : "☐"}
|
|
27
|
+
</Text>
|
|
28
|
+
<View flex={1}>{children}</View>
|
|
29
|
+
</XStack>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<XStack marginBottom="$1" alignItems="flex-start">
|
|
35
|
+
<Text width={24} color="$color11">
|
|
36
|
+
{bullet}
|
|
37
|
+
</Text>
|
|
38
|
+
<View flex={1}>{children}</View>
|
|
39
|
+
</XStack>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Paragraph as TamaguiParagraph } from "tamagui";
|
|
2
|
+
import type { ParagraphProps } from "../types";
|
|
3
|
+
|
|
4
|
+
export function Paragraph({ children }: ParagraphProps) {
|
|
5
|
+
return (
|
|
6
|
+
<TamaguiParagraph marginBottom="$2" lineHeight="$6">
|
|
7
|
+
{children}
|
|
8
|
+
</TamaguiParagraph>
|
|
9
|
+
);
|
|
10
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
2
|
+
import { View, Text, XStack, YStack, ScrollView } from "tamagui";
|
|
3
|
+
import { markdownTableColors } from "../shared/colorRamps";
|
|
4
|
+
import type { TableProps, TableRowProps, TableCellProps } from "../types";
|
|
5
|
+
|
|
6
|
+
export function MarkdownTable({ children }: TableProps) {
|
|
7
|
+
const { knobProps } = useResolvedKnobs();
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<ScrollView horizontal marginVertical="$3">
|
|
11
|
+
<YStack
|
|
12
|
+
{...knobProps.borderRadiusOuter}
|
|
13
|
+
borderWidth={1}
|
|
14
|
+
borderColor={markdownTableColors.border.base}
|
|
15
|
+
overflow="hidden"
|
|
16
|
+
minWidth="100%"
|
|
17
|
+
>
|
|
18
|
+
{children}
|
|
19
|
+
</YStack>
|
|
20
|
+
</ScrollView>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function MarkdownTableRow({ children, isHeader }: TableRowProps) {
|
|
25
|
+
return (
|
|
26
|
+
<XStack
|
|
27
|
+
backgroundColor={
|
|
28
|
+
isHeader ? markdownTableColors.background.header : markdownTableColors.background.base
|
|
29
|
+
}
|
|
30
|
+
borderBottomWidth={isHeader ? 1 : 0.5}
|
|
31
|
+
borderBottomColor={markdownTableColors.border.base}
|
|
32
|
+
>
|
|
33
|
+
{children}
|
|
34
|
+
</XStack>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function MarkdownTableCell({ children, isHeader, align }: TableCellProps) {
|
|
39
|
+
const { knobProps } = useResolvedKnobs();
|
|
40
|
+
const textAlign = align || "left";
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<View
|
|
44
|
+
flex={1}
|
|
45
|
+
paddingHorizontal={knobProps.gap.gap}
|
|
46
|
+
paddingVertical="$2"
|
|
47
|
+
borderRightWidth={0.5}
|
|
48
|
+
borderRightColor={markdownTableColors.border.base}
|
|
49
|
+
justifyContent="center"
|
|
50
|
+
>
|
|
51
|
+
<Text fontWeight={isHeader ? "600" : "normal"} textAlign={textAlign}>
|
|
52
|
+
{children}
|
|
53
|
+
</Text>
|
|
54
|
+
</View>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { Heading } from "./Heading";
|
|
2
|
+
export { Paragraph } from "./Paragraph";
|
|
3
|
+
export { Strong, Emphasis, Strikethrough } from "./InlineStyles";
|
|
4
|
+
export { InlineCode } from "./InlineCode";
|
|
5
|
+
export { CodeBlock } from "./CodeBlock";
|
|
6
|
+
export { Link } from "./Link";
|
|
7
|
+
export { MarkdownImage } from "./Image";
|
|
8
|
+
export { MarkdownList, MarkdownListItem } from "./List";
|
|
9
|
+
export { Blockquote } from "./Blockquote";
|
|
10
|
+
export { HorizontalRule } from "./HorizontalRule";
|
|
11
|
+
export { MarkdownTable, MarkdownTableRow, MarkdownTableCell } from "./Table";
|
|
12
|
+
export { Break } from "./Break";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { renderHook, waitFor } from "@testing-library/react";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { useCompileAndEvaluateMdx } from "./useCompileAndEvaluateMdx";
|
|
4
|
+
import { useCompileMdx } from "./useCompileMdx";
|
|
5
|
+
|
|
6
|
+
describe("useCompileMdx Hook", () => {
|
|
7
|
+
it("should handle invalid MDX syntax gracefully", async () => {
|
|
8
|
+
const invalidSource = "# Test\n\nSome broken MDX content";
|
|
9
|
+
const { result } = renderHook(() => useCompileMdx(invalidSource));
|
|
10
|
+
await waitFor(() => expect(result.current.code).toBeUndefined());
|
|
11
|
+
expect(result.current.frontmatter).toBeUndefined();
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
describe("useCompileAndEvaluateMdx Hook", () => {
|
|
16
|
+
it("should handle empty source gracefully", async () => {
|
|
17
|
+
const source = "";
|
|
18
|
+
const { result } = renderHook(() => useCompileAndEvaluateMdx(source));
|
|
19
|
+
await waitFor(() => expect(result.current.code).toBeUndefined());
|
|
20
|
+
expect(result.current.Component).toBeUndefined();
|
|
21
|
+
expect(result.current.frontmatter).toBeUndefined();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("should return empty if MDX compilation or evaluation fails", async () => {
|
|
25
|
+
const source = "# Invalid MDX Content";
|
|
26
|
+
const { result } = renderHook(() => useCompileAndEvaluateMdx(source));
|
|
27
|
+
await waitFor(() => expect(result.current.code).toBeUndefined());
|
|
28
|
+
expect(result.current.Component).toBeUndefined();
|
|
29
|
+
expect(result.current.frontmatter).toBeUndefined();
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ComponentType } from "react";
|
|
2
|
+
import { useCompileMdx } from "./useCompileMdx";
|
|
3
|
+
import { useEvaluateMdx } from "./useEvaluateMdx";
|
|
4
|
+
|
|
5
|
+
export function useCompileAndEvaluateMdx(
|
|
6
|
+
source: string,
|
|
7
|
+
compileOptions?: Record<string, any>,
|
|
8
|
+
evaluateOptions?: Record<string, any>,
|
|
9
|
+
): {
|
|
10
|
+
Component?:
|
|
11
|
+
| ComponentType<{
|
|
12
|
+
components?: Record<string, any> | undefined;
|
|
13
|
+
}>
|
|
14
|
+
| undefined;
|
|
15
|
+
code?: string;
|
|
16
|
+
frontmatter?: Record<string, any>;
|
|
17
|
+
} {
|
|
18
|
+
const { code, frontmatter } = useCompileMdx(source, compileOptions);
|
|
19
|
+
const Component = useEvaluateMdx(code, evaluateOptions);
|
|
20
|
+
if (!code || !frontmatter || !Component) return {};
|
|
21
|
+
return { Component, code, frontmatter };
|
|
22
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
export function useCompileMdx(
|
|
4
|
+
source: string,
|
|
5
|
+
options?: Record<string, any>,
|
|
6
|
+
): {
|
|
7
|
+
code?: string;
|
|
8
|
+
frontmatter?: Record<string, any>;
|
|
9
|
+
} {
|
|
10
|
+
const [code, setCode] = useState<string | undefined>();
|
|
11
|
+
const [frontmatter, setFrontmatter] = useState<Record<string, any> | undefined>();
|
|
12
|
+
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
(async () => {
|
|
15
|
+
const [
|
|
16
|
+
{ compile },
|
|
17
|
+
{ default: grayMatter },
|
|
18
|
+
{ default: rehypeAutolinkHeadings },
|
|
19
|
+
{ default: rehypeSlug },
|
|
20
|
+
{ default: remarkFrontmatter },
|
|
21
|
+
{ default: remarkMdxFrontmatter },
|
|
22
|
+
{ rehypeMetaAttributes },
|
|
23
|
+
] = await Promise.all([
|
|
24
|
+
import("@mdx-js/mdx"),
|
|
25
|
+
import("gray-matter"),
|
|
26
|
+
import("rehype-autolink-headings"),
|
|
27
|
+
import("rehype-slug"),
|
|
28
|
+
import("remark-frontmatter"),
|
|
29
|
+
import("remark-mdx-frontmatter"),
|
|
30
|
+
import("../util/rehypeMetaAttributes"),
|
|
31
|
+
]);
|
|
32
|
+
const { value } = await compile(source, {
|
|
33
|
+
...options,
|
|
34
|
+
development: false,
|
|
35
|
+
outputFormat: "function-body",
|
|
36
|
+
remarkPlugins: [
|
|
37
|
+
...(options?.remarkPlugins || []),
|
|
38
|
+
[remarkMdxFrontmatter, { name: "frontmatter" }],
|
|
39
|
+
remarkFrontmatter,
|
|
40
|
+
],
|
|
41
|
+
rehypePlugins: [
|
|
42
|
+
...(options?.rehypePlugins || []),
|
|
43
|
+
rehypeAutolinkHeadings,
|
|
44
|
+
rehypeMetaAttributes,
|
|
45
|
+
rehypeSlug,
|
|
46
|
+
],
|
|
47
|
+
});
|
|
48
|
+
setCode(value.toString());
|
|
49
|
+
setFrontmatter(grayMatter(source));
|
|
50
|
+
})();
|
|
51
|
+
}, [source, options]);
|
|
52
|
+
|
|
53
|
+
if (!code || !frontmatter) return {};
|
|
54
|
+
return { code, frontmatter };
|
|
55
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MDXComponents } from "mdx/types";
|
|
2
|
+
import type { ComponentType } from "react";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import * as jsxRuntime from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
export function useEvaluateMdx(code?: string, options?: Record<string, any>) {
|
|
7
|
+
const [Component, setComponent] = useState<ComponentType<{ components?: Record<string, any> }>>();
|
|
8
|
+
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (!code) return;
|
|
11
|
+
setComponent(() => evaluateMdx(code, options));
|
|
12
|
+
}, [code, options]);
|
|
13
|
+
|
|
14
|
+
return Component;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function evaluateMdx(code: string, options?: Record<string, any>) {
|
|
18
|
+
return run(code, {
|
|
19
|
+
...jsxRuntime,
|
|
20
|
+
...options,
|
|
21
|
+
}).default as ComponentType<{ components?: MDXComponents }>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const AsyncFunction = Object.getPrototypeOf(run).constructor;
|
|
25
|
+
function run(code: string, options: Record<string, any>) {
|
|
26
|
+
return new AsyncFunction(String(code))(options);
|
|
27
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Circle, Line, Path, Polyline, Rect, Svg } from "@tamagui/react-native-svg";
|
|
2
|
+
import { useTheme } from "tamagui";
|
|
3
|
+
|
|
4
|
+
interface IconProps {
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function ClipboardIcon({ size = 16, color }: IconProps) {
|
|
10
|
+
const theme = useTheme();
|
|
11
|
+
const fill = color ?? theme.color?.val ?? "currentColor";
|
|
12
|
+
return (
|
|
13
|
+
<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
14
|
+
<Rect x="9" y="2" width="6" height="4" rx="1" stroke={fill} strokeWidth={2} />
|
|
15
|
+
<Path
|
|
16
|
+
d="M9 4H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2"
|
|
17
|
+
stroke={fill}
|
|
18
|
+
strokeWidth={2}
|
|
19
|
+
/>
|
|
20
|
+
</Svg>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function CheckCircleIcon({ size = 16, color }: IconProps) {
|
|
25
|
+
const theme = useTheme();
|
|
26
|
+
const fill = color ?? theme.color?.val ?? "currentColor";
|
|
27
|
+
return (
|
|
28
|
+
<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
29
|
+
<Circle cx="12" cy="12" r="10" stroke={fill} strokeWidth={2} />
|
|
30
|
+
<Path
|
|
31
|
+
d="M9 12l2 2 4-4"
|
|
32
|
+
stroke={fill}
|
|
33
|
+
strokeWidth={2}
|
|
34
|
+
strokeLinecap="round"
|
|
35
|
+
strokeLinejoin="round"
|
|
36
|
+
/>
|
|
37
|
+
</Svg>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function LinkIcon({ size = 12, color }: IconProps) {
|
|
42
|
+
const theme = useTheme();
|
|
43
|
+
const fill = color ?? theme.color?.val ?? "currentColor";
|
|
44
|
+
return (
|
|
45
|
+
<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
46
|
+
<Path
|
|
47
|
+
d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"
|
|
48
|
+
stroke={fill}
|
|
49
|
+
strokeWidth={2}
|
|
50
|
+
strokeLinecap="round"
|
|
51
|
+
strokeLinejoin="round"
|
|
52
|
+
/>
|
|
53
|
+
<Path
|
|
54
|
+
d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"
|
|
55
|
+
stroke={fill}
|
|
56
|
+
strokeWidth={2}
|
|
57
|
+
strokeLinecap="round"
|
|
58
|
+
strokeLinejoin="round"
|
|
59
|
+
/>
|
|
60
|
+
</Svg>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function AlertTriangleIcon({ size = 16, color }: IconProps) {
|
|
65
|
+
const theme = useTheme();
|
|
66
|
+
const fill = color ?? theme.color?.val ?? "currentColor";
|
|
67
|
+
return (
|
|
68
|
+
<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
69
|
+
<Path
|
|
70
|
+
d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"
|
|
71
|
+
stroke={fill}
|
|
72
|
+
strokeWidth={2}
|
|
73
|
+
strokeLinecap="round"
|
|
74
|
+
strokeLinejoin="round"
|
|
75
|
+
/>
|
|
76
|
+
<Line x1="12" y1="9" x2="12" y2="13" stroke={fill} strokeWidth={2} strokeLinecap="round" />
|
|
77
|
+
<Line
|
|
78
|
+
x1="12"
|
|
79
|
+
y1="17"
|
|
80
|
+
x2="12.01"
|
|
81
|
+
y2="17"
|
|
82
|
+
stroke={fill}
|
|
83
|
+
strokeWidth={2}
|
|
84
|
+
strokeLinecap="round"
|
|
85
|
+
/>
|
|
86
|
+
</Svg>
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export function InfoIcon({ size = 16, color }: IconProps) {
|
|
91
|
+
const theme = useTheme();
|
|
92
|
+
const fill = color ?? theme.color?.val ?? "currentColor";
|
|
93
|
+
return (
|
|
94
|
+
<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
95
|
+
<Circle cx="12" cy="12" r="10" stroke={fill} strokeWidth={2} />
|
|
96
|
+
<Line x1="12" y1="16" x2="12" y2="12" stroke={fill} strokeWidth={2} strokeLinecap="round" />
|
|
97
|
+
<Line x1="12" y1="8" x2="12.01" y2="8" stroke={fill} strokeWidth={2} strokeLinecap="round" />
|
|
98
|
+
</Svg>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export function ChevronRightIcon({ size = 16, color }: IconProps) {
|
|
103
|
+
const theme = useTheme();
|
|
104
|
+
const fill = color ?? theme.color?.val ?? "currentColor";
|
|
105
|
+
return (
|
|
106
|
+
<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
107
|
+
<Polyline
|
|
108
|
+
points="9,18 15,12 9,6"
|
|
109
|
+
stroke={fill}
|
|
110
|
+
strokeWidth={2}
|
|
111
|
+
strokeLinecap="round"
|
|
112
|
+
strokeLinejoin="round"
|
|
113
|
+
/>
|
|
114
|
+
</Svg>
|
|
115
|
+
);
|
|
116
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @multiplatform.one/markdown
|
|
3
|
+
*
|
|
4
|
+
* Cross-platform markdown rendering with MDX support and syntax highlighting
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Core markdown renderer
|
|
8
|
+
export { Markdown } from "./Markdown";
|
|
9
|
+
export type { MarkdownProps, CodeTheme } from "./types";
|
|
10
|
+
|
|
11
|
+
// Markdown parser and renderer
|
|
12
|
+
export { parseMarkdown } from "./parser";
|
|
13
|
+
export { renderMarkdown } from "./renderer";
|
|
14
|
+
|
|
15
|
+
// Shiki syntax highlighting
|
|
16
|
+
export { highlightCode, getHighlighter, type ThemedToken, type BundledTheme } from "./shiki";
|
|
17
|
+
|
|
18
|
+
// MDX components
|
|
19
|
+
export * from "./Aside";
|
|
20
|
+
export * from "./ExternalIcon";
|
|
21
|
+
export * from "./hooks";
|
|
22
|
+
export * from "./Hr";
|
|
23
|
+
export * from "./icons";
|
|
24
|
+
export * from "./Li";
|
|
25
|
+
export * from "./Mdx";
|
|
26
|
+
export * from "./MdxCodeBlock";
|
|
27
|
+
export * from "./mdxComponents";
|
|
28
|
+
export * from "./Notice";
|
|
29
|
+
export * from "./SimpleTable";
|
|
30
|
+
export * from "./Table";
|
|
31
|
+
export * from "./Tabs";
|
|
32
|
+
export * from "./Ul";
|
|
33
|
+
export * from "./Video";
|