@mdwrk/markdown-renderer-react 1.0.1
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/README.md +15 -0
- package/dist/component.d.ts +4 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +69 -0
- package/dist/component.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +11 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +20 -0
- package/dist/server.js.map +1 -0
- package/dist/theme.d.ts +7 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +22 -0
- package/dist/theme.js.map +1 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +82 -0
- package/src/styles/default.css +18 -0
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# mdwrk/markdown-renderer-react
|
|
2
|
+
|
|
3
|
+
React bindings for the Markdown Workspace portable markdown renderer.
|
|
4
|
+
|
|
5
|
+
## Exports
|
|
6
|
+
|
|
7
|
+
- `MarkdownRenderer`
|
|
8
|
+
- `createMarkdownRendererThemeStyle`
|
|
9
|
+
- `createMarkdownRendererThemeVariablesFromThemeTokens`
|
|
10
|
+
- `createMarkdownRendererThemeStyleFromThemeTokens`
|
|
11
|
+
- `renderMarkdownToStaticHtml`
|
|
12
|
+
- `renderMarkdownToStaticHtmlDocument`
|
|
13
|
+
- `./styles/default.css`
|
|
14
|
+
|
|
15
|
+
The package keeps semantic class names stable and lets host applications override theme values without depending on app-local stylesheets.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { MarkdownRendererProps } from "./types.js";
|
|
3
|
+
export declare function MarkdownRenderer({ markdown, className, style, themeStyle, onLinkClick, getLinkAttributes, components, syntaxTheme, }: MarkdownRendererProps): React.JSX.Element;
|
|
4
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAWxD,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,EACT,KAAK,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,WAAW,GACZ,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiH3C"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import ReactMarkdown from "react-markdown";
|
|
3
|
+
import remarkGfm from "remark-gfm";
|
|
4
|
+
import remarkSupersub from "remark-supersub";
|
|
5
|
+
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
|
|
6
|
+
import { DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES } from "@mdwrk/markdown-renderer-core/class-names";
|
|
7
|
+
import { slugifyHeading } from "@mdwrk/markdown-renderer-core/slug";
|
|
8
|
+
import { createMarkdownRendererThemeStyle } from "./theme.js";
|
|
9
|
+
const mergeClassNames = (...values) => values.filter(Boolean).join(" ");
|
|
10
|
+
function getDefaultLinkAttributes(href) {
|
|
11
|
+
if (href && /^(https?:)?\/\//i.test(href)) {
|
|
12
|
+
return { target: "_blank", rel: "noopener noreferrer" };
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
export function MarkdownRenderer({ markdown, className, style, themeStyle, onLinkClick, getLinkAttributes, components, syntaxTheme, }) {
|
|
17
|
+
const rendererStyle = themeStyle ?? createMarkdownRendererThemeStyle();
|
|
18
|
+
return (_jsx("div", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.root, className), style: { ...rendererStyle, ...style }, children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm, remarkSupersub], components: {
|
|
19
|
+
h1: ({ node, children, ...props }) => _jsx("h1", { id: slugifyHeading(String(children)), className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.heading1, ...props, children: children }),
|
|
20
|
+
h2: ({ node, children, ...props }) => _jsx("h2", { id: slugifyHeading(String(children)), className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.heading2, ...props, children: children }),
|
|
21
|
+
h3: ({ node, children, ...props }) => _jsx("h3", { id: slugifyHeading(String(children)), className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.heading3, ...props, children: children }),
|
|
22
|
+
h4: ({ node, children, ...props }) => _jsx("h4", { id: slugifyHeading(String(children)), className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.heading4, ...props, children: children }),
|
|
23
|
+
h5: ({ node, children, ...props }) => _jsx("h5", { id: slugifyHeading(String(children)), className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.heading5, ...props, children: children }),
|
|
24
|
+
h6: ({ node, children, ...props }) => _jsx("h6", { id: slugifyHeading(String(children)), className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.heading6, ...props, children: children }),
|
|
25
|
+
p: ({ node, ...props }) => _jsx("p", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.paragraph, ...props }),
|
|
26
|
+
strong: ({ node, ...props }) => _jsx("strong", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.strong, ...props }),
|
|
27
|
+
em: ({ node, ...props }) => _jsx("em", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.emphasis, ...props }),
|
|
28
|
+
hr: ({ node, ...props }) => _jsx("hr", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.hr, ...props }),
|
|
29
|
+
blockquote: ({ node, ...props }) => _jsx("blockquote", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.blockquote, ...props }),
|
|
30
|
+
ul: ({ node, ...props }) => _jsx("ul", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.listUnordered, ...props }),
|
|
31
|
+
ol: ({ node, ...props }) => _jsx("ol", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.listOrdered, ...props }),
|
|
32
|
+
li: ({ node, ...props }) => {
|
|
33
|
+
const isTask = typeof node?.checked === "boolean";
|
|
34
|
+
return (_jsx("li", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.listItem, isTask ? DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.taskListItem : undefined), "data-checked": isTask ? String(node.checked) : undefined, ...props }));
|
|
35
|
+
},
|
|
36
|
+
table: ({ node, className, ...props }) => (_jsx("table", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.table, className), ...props })),
|
|
37
|
+
thead: ({ node, className, ...props }) => (_jsx("thead", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.tableHead, className), ...props })),
|
|
38
|
+
tbody: ({ node, className, ...props }) => (_jsx("tbody", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.tableBody, className), ...props })),
|
|
39
|
+
tr: ({ node, className, ...props }) => (_jsx("tr", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.tableRow, className), ...props })),
|
|
40
|
+
th: ({ node, className, ...props }) => (_jsx("th", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.tableHeader, className), ...props })),
|
|
41
|
+
td: ({ node, className, ...props }) => (_jsx("td", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.tableCell, className), ...props })),
|
|
42
|
+
caption: ({ node, className, ...props }) => (_jsx("caption", { className: mergeClassNames(DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.tableCaption, className), ...props })),
|
|
43
|
+
input: ({ node, ...props }) => {
|
|
44
|
+
if (props.type === "checkbox") {
|
|
45
|
+
return _jsx("input", { type: "checkbox", className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.checkbox, ...props });
|
|
46
|
+
}
|
|
47
|
+
return _jsx("input", { ...props });
|
|
48
|
+
},
|
|
49
|
+
a: ({ node, href, ...props }) => {
|
|
50
|
+
const attributes = getLinkAttributes?.(href) ?? getDefaultLinkAttributes(href);
|
|
51
|
+
return (_jsx("a", { href: href, onClick: (event) => onLinkClick?.(event, href), target: attributes?.target, rel: attributes?.rel, className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.link, ...props }));
|
|
52
|
+
},
|
|
53
|
+
code: ({ node, inline, className, children, ...props }) => {
|
|
54
|
+
const match = /language-([\w-]+)/.exec(className || "");
|
|
55
|
+
if (!inline && match) {
|
|
56
|
+
return (_jsxs("div", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.codeBlock, children: [_jsx("div", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.codeHeader, children: match[1] }), _jsx("div", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.codeSurface, children: _jsx(SyntaxHighlighter, { style: syntaxTheme ?? {}, language: match[1], PreTag: "div", customStyle: {
|
|
57
|
+
margin: 0,
|
|
58
|
+
borderRadius: 0,
|
|
59
|
+
border: "none",
|
|
60
|
+
background: "transparent",
|
|
61
|
+
padding: 0,
|
|
62
|
+
}, ...props, children: String(children).replace(/\n$/, "") }) })] }));
|
|
63
|
+
}
|
|
64
|
+
return (_jsx("code", { className: DEFAULT_MARKDOWN_RENDERER_CLASS_NAMES.inlineCode, ...props, children: children }));
|
|
65
|
+
},
|
|
66
|
+
...components,
|
|
67
|
+
}, children: markdown }) }));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MarkdownRendererProps } from "./types.js";
|
|
2
|
+
export declare function renderMarkdownToStaticHtml(props: MarkdownRendererProps): string;
|
|
3
|
+
export declare function renderMarkdownToStaticHtmlDocument(props: MarkdownRendererProps & {
|
|
4
|
+
readonly title: string;
|
|
5
|
+
readonly lang?: string;
|
|
6
|
+
readonly dataTheme?: string;
|
|
7
|
+
readonly bodyClassName?: string;
|
|
8
|
+
readonly htmlClassName?: string;
|
|
9
|
+
readonly stylesheets?: readonly string[];
|
|
10
|
+
}): string;
|
|
11
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAE/E;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,qBAAqB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C,GACA,MAAM,CAWR"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { renderToStaticMarkup } from "react-dom/server";
|
|
3
|
+
import { createHtmlDocument } from "@mdwrk/markdown-renderer-core/html";
|
|
4
|
+
import { MarkdownRenderer } from "./component.js";
|
|
5
|
+
export function renderMarkdownToStaticHtml(props) {
|
|
6
|
+
return renderToStaticMarkup(_jsx(MarkdownRenderer, { ...props }));
|
|
7
|
+
}
|
|
8
|
+
export function renderMarkdownToStaticHtmlDocument(props) {
|
|
9
|
+
const { title, lang, dataTheme, bodyClassName, htmlClassName, stylesheets, ...rendererProps } = props;
|
|
10
|
+
return createHtmlDocument({
|
|
11
|
+
title,
|
|
12
|
+
bodyHtml: renderMarkdownToStaticHtml(rendererProps),
|
|
13
|
+
lang,
|
|
14
|
+
dataTheme,
|
|
15
|
+
bodyClassName,
|
|
16
|
+
htmlClassName,
|
|
17
|
+
stylesheets,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,UAAU,0BAA0B,CAAC,KAA4B;IACrE,OAAO,oBAAoB,CAAC,KAAC,gBAAgB,OAAK,KAAK,GAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,KAOC;IAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC;IACtG,OAAO,kBAAkB,CAAC;QACxB,KAAK;QACL,QAAQ,EAAE,0BAA0B,CAAC,aAAa,CAAC;QACnD,IAAI;QACJ,SAAS;QACT,aAAa;QACb,aAAa;QACb,WAAW;KACZ,CAAC,CAAC;AACL,CAAC"}
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import { type ThemeTokenOverrides } from "@mdwrk/ui-tokens/theme-map";
|
|
3
|
+
import type { MarkdownRendererThemeVariables } from "./types.js";
|
|
4
|
+
export declare function createMarkdownRendererThemeStyle(variables?: MarkdownRendererThemeVariables): React.CSSProperties;
|
|
5
|
+
export declare function createMarkdownRendererThemeVariablesFromThemeTokens(overrides?: ThemeTokenOverrides): Readonly<Record<`--${string}`, string>>;
|
|
6
|
+
export declare function createMarkdownRendererThemeStyleFromThemeTokens(overrides?: ThemeTokenOverrides): React.CSSProperties;
|
|
7
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,gCAAgC,CAC9C,SAAS,GAAE,8BAAmC,GAC7C,KAAK,CAAC,aAAa,CAarB;AAED,wBAAgB,mDAAmD,CACjE,SAAS,GAAE,mBAAwB,GAClC,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAEzC;AAED,wBAAgB,+CAA+C,CAC7D,SAAS,GAAE,mBAAwB,GAClC,KAAK,CAAC,aAAa,CAErB"}
|
package/dist/theme.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createRendererThemeBridgeVariableRecord, } from "@mdwrk/ui-tokens/theme-map";
|
|
2
|
+
export function createMarkdownRendererThemeStyle(variables = {}) {
|
|
3
|
+
return {
|
|
4
|
+
["--mw-fg-primary"]: variables.foreground ?? "var(--fg-primary, #e9ecf1)",
|
|
5
|
+
["--mw-fg-secondary"]: variables.foregroundMuted ?? "var(--fg-secondary, #9aa3af)",
|
|
6
|
+
["--mw-bg-surface"]: variables.background ?? "var(--bg-panel, #11151a)",
|
|
7
|
+
["--mw-border-color"]: variables.border ?? "var(--border-color, rgba(255,255,255,0.12))",
|
|
8
|
+
["--mw-accent"]: variables.accent ?? "var(--accent, #7c9cff)",
|
|
9
|
+
["--mw-code-bg"]: variables.codeBackground ?? "var(--bg-inset, rgba(255,255,255,0.04))",
|
|
10
|
+
["--mw-code-fg"]: variables.codeForeground ?? "var(--fg-primary, #e9ecf1)",
|
|
11
|
+
["--mw-code-border"]: variables.codeBorder ?? "var(--border-color, rgba(255,255,255,0.12))",
|
|
12
|
+
["--mw-font-ui"]: variables.fontUi ?? 'var(--font-ui, "Inter", "Segoe UI", system-ui, sans-serif)',
|
|
13
|
+
["--mw-font-mono"]: variables.fontMono ?? 'var(--font-mono, "Fira Code", ui-monospace, monospace)',
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function createMarkdownRendererThemeVariablesFromThemeTokens(overrides = {}) {
|
|
17
|
+
return createRendererThemeBridgeVariableRecord(overrides);
|
|
18
|
+
}
|
|
19
|
+
export function createMarkdownRendererThemeStyleFromThemeTokens(overrides = {}) {
|
|
20
|
+
return createMarkdownRendererThemeVariablesFromThemeTokens(overrides);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uCAAuC,GAExC,MAAM,4BAA4B,CAAC;AAGpC,MAAM,UAAU,gCAAgC,CAC9C,YAA4C,EAAE;IAE9C,OAAO;QACL,CAAC,iBAAwB,CAAC,EAAE,SAAS,CAAC,UAAU,IAAI,4BAA4B;QAChF,CAAC,mBAA0B,CAAC,EAAE,SAAS,CAAC,eAAe,IAAI,8BAA8B;QACzF,CAAC,iBAAwB,CAAC,EAAE,SAAS,CAAC,UAAU,IAAI,0BAA0B;QAC9E,CAAC,mBAA0B,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,6CAA6C;QAC/F,CAAC,aAAoB,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,wBAAwB;QACpE,CAAC,cAAqB,CAAC,EAAE,SAAS,CAAC,cAAc,IAAI,yCAAyC;QAC9F,CAAC,cAAqB,CAAC,EAAE,SAAS,CAAC,cAAc,IAAI,4BAA4B;QACjF,CAAC,kBAAyB,CAAC,EAAE,SAAS,CAAC,UAAU,IAAI,6CAA6C;QAClG,CAAC,cAAqB,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,4DAA4D;QACzG,CAAC,gBAAuB,CAAC,EAAE,SAAS,CAAC,QAAQ,IAAI,wDAAwD;KAC1G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mDAAmD,CACjE,YAAiC,EAAE;IAEnC,OAAO,uCAAuC,CAAC,SAAS,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,+CAA+C,CAC7D,YAAiC,EAAE;IAEnC,OAAO,mDAAmD,CAAC,SAAS,CAAwB,CAAC;AAC/F,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
export interface MarkdownRendererThemeVariables {
|
|
3
|
+
readonly foreground?: string;
|
|
4
|
+
readonly foregroundMuted?: string;
|
|
5
|
+
readonly background?: string;
|
|
6
|
+
readonly border?: string;
|
|
7
|
+
readonly accent?: string;
|
|
8
|
+
readonly codeBackground?: string;
|
|
9
|
+
readonly codeForeground?: string;
|
|
10
|
+
readonly codeBorder?: string;
|
|
11
|
+
readonly fontUi?: string;
|
|
12
|
+
readonly fontMono?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface MarkdownLinkAttributeResult {
|
|
15
|
+
readonly target?: string;
|
|
16
|
+
readonly rel?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface MarkdownRendererProps {
|
|
19
|
+
readonly markdown: string;
|
|
20
|
+
readonly className?: string;
|
|
21
|
+
readonly style?: React.CSSProperties;
|
|
22
|
+
readonly themeStyle?: React.CSSProperties;
|
|
23
|
+
readonly onLinkClick?: (event: React.MouseEvent<HTMLAnchorElement>, href?: string) => void;
|
|
24
|
+
readonly getLinkAttributes?: (href?: string) => MarkdownLinkAttributeResult | undefined;
|
|
25
|
+
readonly components?: Record<string, React.ComponentType<any>>;
|
|
26
|
+
readonly syntaxTheme?: Record<string, React.CSSProperties>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,2BAA2B,GAAG,SAAS,CAAC;IACxF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CAC5D"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,UAAU,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mdwrk/markdown-renderer-react",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=20 <23"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"src/styles",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
17
|
+
"sideEffects": [
|
|
18
|
+
"./src/styles/default.css"
|
|
19
|
+
],
|
|
20
|
+
"keywords": [
|
|
21
|
+
"markdown-workspace",
|
|
22
|
+
"renderer",
|
|
23
|
+
"markdown",
|
|
24
|
+
"react"
|
|
25
|
+
],
|
|
26
|
+
"description": "React renderer bindings and theme bridge for the Markdown Workspace portable markdown renderer.",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@mdwrk/markdown-renderer-core": "^1.0.0",
|
|
29
|
+
"@mdwrk/ui-tokens": "^1.0.1",
|
|
30
|
+
"react-markdown": "^9.0.3",
|
|
31
|
+
"react-syntax-highlighter": "^15.6.1",
|
|
32
|
+
"remark-gfm": "^4.0.1",
|
|
33
|
+
"remark-supersub": "^1.0.0"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"react": "^19.0.0",
|
|
37
|
+
"react-dom": "^19.0.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/react": "^19.0.8",
|
|
41
|
+
"@types/react-dom": "^19.0.3",
|
|
42
|
+
"@types/react-syntax-highlighter": "^15.5.13",
|
|
43
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
44
|
+
"@testing-library/react": "^16.1.0",
|
|
45
|
+
"jsdom": "^25.0.1",
|
|
46
|
+
"vitest": "^2.1.8"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "tsc -p tsconfig.json",
|
|
50
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
51
|
+
"lint": "npm run typecheck",
|
|
52
|
+
"test": "npm run build && node ./tests/run-smoke.mjs",
|
|
53
|
+
"prepack": "npm run build"
|
|
54
|
+
},
|
|
55
|
+
"exports": {
|
|
56
|
+
".": {
|
|
57
|
+
"types": "./dist/index.d.ts",
|
|
58
|
+
"import": "./dist/index.js"
|
|
59
|
+
},
|
|
60
|
+
"./version": {
|
|
61
|
+
"types": "./dist/version.d.ts",
|
|
62
|
+
"import": "./dist/version.js"
|
|
63
|
+
},
|
|
64
|
+
"./types": {
|
|
65
|
+
"types": "./dist/types.d.ts",
|
|
66
|
+
"import": "./dist/types.js"
|
|
67
|
+
},
|
|
68
|
+
"./theme": {
|
|
69
|
+
"types": "./dist/theme.d.ts",
|
|
70
|
+
"import": "./dist/theme.js"
|
|
71
|
+
},
|
|
72
|
+
"./server": {
|
|
73
|
+
"types": "./dist/server.d.ts",
|
|
74
|
+
"import": "./dist/server.js"
|
|
75
|
+
},
|
|
76
|
+
"./styles/default.css": "./src/styles/default.css"
|
|
77
|
+
},
|
|
78
|
+
"main": "./dist/index.js",
|
|
79
|
+
"types": "./dist/index.d.ts",
|
|
80
|
+
"author": "Jacob Stewart <jacob@swarmauri.com>",
|
|
81
|
+
"homepage": "https://mdwrk.com"
|
|
82
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@import url("@mdwrk/ui-tokens/styles/markdown.css");
|
|
2
|
+
|
|
3
|
+
.markdown-body {
|
|
4
|
+
color: var(--mw-fg-primary, var(--fg-primary, inherit));
|
|
5
|
+
font-family: var(--mw-font-ui, var(--font-ui, inherit));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.markdown-body .md-inline-code {
|
|
9
|
+
color: var(--mw-code-fg, var(--fg-primary, inherit));
|
|
10
|
+
background: var(--mw-code-bg, rgba(255, 255, 255, 0.04));
|
|
11
|
+
border-color: var(--mw-code-border, rgba(255, 255, 255, 0.12));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.markdown-body .md-code-block,
|
|
15
|
+
.markdown-body .md-code-surface {
|
|
16
|
+
background: var(--mw-code-bg, rgba(255, 255, 255, 0.04));
|
|
17
|
+
border-color: var(--mw-code-border, rgba(255, 255, 255, 0.12));
|
|
18
|
+
}
|