@hyperbook/markdown 0.1.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.
Files changed (77) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +17 -0
  3. package/dist/Code.d.ts +2 -0
  4. package/dist/Headings.d.ts +3 -0
  5. package/dist/Image.d.ts +2 -0
  6. package/dist/Link.d.ts +2 -0
  7. package/dist/Markdown.d.ts +5 -0
  8. package/dist/Table.d.ts +5 -0
  9. package/dist/assets/fonts/KaTeX_AMS-Regular.ttf +0 -0
  10. package/dist/assets/fonts/KaTeX_AMS-Regular.woff +0 -0
  11. package/dist/assets/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  12. package/dist/assets/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  13. package/dist/assets/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  14. package/dist/assets/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  15. package/dist/assets/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  16. package/dist/assets/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  17. package/dist/assets/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  18. package/dist/assets/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  19. package/dist/assets/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  20. package/dist/assets/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  21. package/dist/assets/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  22. package/dist/assets/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  23. package/dist/assets/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  24. package/dist/assets/fonts/KaTeX_Main-Bold.ttf +0 -0
  25. package/dist/assets/fonts/KaTeX_Main-Bold.woff +0 -0
  26. package/dist/assets/fonts/KaTeX_Main-Bold.woff2 +0 -0
  27. package/dist/assets/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  28. package/dist/assets/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  29. package/dist/assets/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  30. package/dist/assets/fonts/KaTeX_Main-Italic.ttf +0 -0
  31. package/dist/assets/fonts/KaTeX_Main-Italic.woff +0 -0
  32. package/dist/assets/fonts/KaTeX_Main-Italic.woff2 +0 -0
  33. package/dist/assets/fonts/KaTeX_Main-Regular.ttf +0 -0
  34. package/dist/assets/fonts/KaTeX_Main-Regular.woff +0 -0
  35. package/dist/assets/fonts/KaTeX_Main-Regular.woff2 +0 -0
  36. package/dist/assets/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  37. package/dist/assets/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  38. package/dist/assets/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  39. package/dist/assets/fonts/KaTeX_Math-Italic.ttf +0 -0
  40. package/dist/assets/fonts/KaTeX_Math-Italic.woff +0 -0
  41. package/dist/assets/fonts/KaTeX_Math-Italic.woff2 +0 -0
  42. package/dist/assets/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  43. package/dist/assets/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  44. package/dist/assets/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  45. package/dist/assets/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  46. package/dist/assets/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  47. package/dist/assets/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  48. package/dist/assets/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  49. package/dist/assets/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  50. package/dist/assets/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  51. package/dist/assets/fonts/KaTeX_Script-Regular.ttf +0 -0
  52. package/dist/assets/fonts/KaTeX_Script-Regular.woff +0 -0
  53. package/dist/assets/fonts/KaTeX_Script-Regular.woff2 +0 -0
  54. package/dist/assets/fonts/KaTeX_Size1-Regular.ttf +0 -0
  55. package/dist/assets/fonts/KaTeX_Size1-Regular.woff +0 -0
  56. package/dist/assets/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  57. package/dist/assets/fonts/KaTeX_Size2-Regular.ttf +0 -0
  58. package/dist/assets/fonts/KaTeX_Size2-Regular.woff +0 -0
  59. package/dist/assets/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  60. package/dist/assets/fonts/KaTeX_Size3-Regular.ttf +0 -0
  61. package/dist/assets/fonts/KaTeX_Size3-Regular.woff +0 -0
  62. package/dist/assets/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  63. package/dist/assets/fonts/KaTeX_Size4-Regular.ttf +0 -0
  64. package/dist/assets/fonts/KaTeX_Size4-Regular.woff +0 -0
  65. package/dist/assets/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  66. package/dist/assets/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  67. package/dist/assets/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  68. package/dist/assets/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  69. package/dist/assets/katex.min.css +1105 -0
  70. package/dist/index.cjs.js +263 -0
  71. package/dist/index.cjs.js.map +7 -0
  72. package/dist/index.css +494 -0
  73. package/dist/index.css.map +7 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.esm.mjs +237 -0
  76. package/dist/index.esm.mjs.map +7 -0
  77. package/package.json +68 -0
@@ -0,0 +1,237 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b ||= {})
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+
21
+ // src/Markdown.tsx
22
+ import ReactMarkdown from "react-markdown";
23
+ import remarkDirective from "remark-directive";
24
+ import remarkDirectiveRehype from "remark-directive-rehype";
25
+ import remarkGfm from "remark-gfm";
26
+ import remarkMath from "remark-math";
27
+ import remarkGemoji from "remark-gemoji";
28
+ import remarkUnwrapImages from "remark-unwrap-images";
29
+ import rehypeKatex from "rehype-katex";
30
+ import rehypeHighlight from "rehype-highlight";
31
+ import { useDirectives as useDirectives2 } from "@hyperbook/provider";
32
+
33
+ // src/Code.tsx
34
+ import { useDirectives } from "@hyperbook/provider";
35
+ import { Fragment, useRef, useState } from "react";
36
+ import { MdContentCopy, MdDone } from "react-icons/md";
37
+ import { jsx, jsxs } from "react/jsx-runtime";
38
+ var Code = ({ children, className }) => {
39
+ const directives = useDirectives();
40
+ if (className === "language-mermaid" && directives["mermaid"]) {
41
+ const Mermaid = directives["mermaid"];
42
+ return /* @__PURE__ */ jsx(Mermaid, {
43
+ children
44
+ });
45
+ }
46
+ const ref = useRef(null);
47
+ const [copied, setCopied] = useState(false);
48
+ const copyCode = () => {
49
+ if (navigator.clipboard && ref.current) {
50
+ const text = ref.current.innerText;
51
+ navigator.clipboard.writeText(text);
52
+ setCopied(true);
53
+ setTimeout(() => setCopied(false), 2e3);
54
+ }
55
+ };
56
+ return /* @__PURE__ */ jsxs(Fragment, {
57
+ children: [
58
+ /* @__PURE__ */ jsx("code", {
59
+ ref,
60
+ className,
61
+ children
62
+ }),
63
+ /* @__PURE__ */ jsx("button", {
64
+ className: "copy",
65
+ onClick: copyCode,
66
+ "aria-label": "Copy Code",
67
+ children: copied ? /* @__PURE__ */ jsx(MdDone, {}) : /* @__PURE__ */ jsx(MdContentCopy, {})
68
+ })
69
+ ]
70
+ });
71
+ };
72
+
73
+ // src/Link.tsx
74
+ import { useLink } from "@hyperbook/provider";
75
+ import { jsx as jsx2 } from "react/jsx-runtime";
76
+ var Link = ({ href, title, children }) => {
77
+ const L = useLink();
78
+ return /* @__PURE__ */ jsx2(L, {
79
+ href,
80
+ title,
81
+ children
82
+ });
83
+ };
84
+
85
+ // src/Table.tsx
86
+ import { jsx as jsx3 } from "react/jsx-runtime";
87
+ var tableHeaders = [];
88
+ var tdIndex = 0;
89
+ var Table = ({ children, style }) => {
90
+ tableHeaders = [];
91
+ return /* @__PURE__ */ jsx3("table", {
92
+ style,
93
+ children
94
+ });
95
+ };
96
+ var Tr = ({ children, style }) => {
97
+ tdIndex = 0;
98
+ return /* @__PURE__ */ jsx3("tr", {
99
+ style,
100
+ children
101
+ });
102
+ };
103
+ var Td = ({ children, style }) => {
104
+ return /* @__PURE__ */ jsx3("td", {
105
+ "data-label": tableHeaders[tdIndex++],
106
+ style,
107
+ children
108
+ });
109
+ };
110
+ var Th = ({ children, style }) => {
111
+ tableHeaders.push(children);
112
+ return /* @__PURE__ */ jsx3("th", {
113
+ style,
114
+ children
115
+ });
116
+ };
117
+
118
+ // src/Headings.tsx
119
+ import { useBookmark } from "@hyperbook/provider";
120
+ import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
121
+ var makeAnchor = (heading) => {
122
+ let anchor = heading.toLowerCase();
123
+ anchor = anchor.replace(/[^a-zA-Z0-9 ]/g, "");
124
+ anchor = anchor.replace(/ /g, "-");
125
+ return anchor;
126
+ };
127
+ var Headings = ({ level, children }) => {
128
+ const heading = children[0];
129
+ let anchor = typeof heading === "string" ? makeAnchor(heading) : "";
130
+ const label = typeof heading === "string" ? heading : anchor;
131
+ const [bookmark, toggleBookmark] = useBookmark(anchor, label);
132
+ const container = (children2) => /* @__PURE__ */ jsxs2(Fragment2, {
133
+ children: [
134
+ /* @__PURE__ */ jsx4("a", {
135
+ className: "heading",
136
+ id: anchor,
137
+ href: `#${anchor}`,
138
+ children: /* @__PURE__ */ jsx4("span", {
139
+ children: children2
140
+ })
141
+ }),
142
+ /* @__PURE__ */ jsx4("button", {
143
+ className: bookmark ? "bookmark active" : "bookmark",
144
+ onClick: () => toggleBookmark(),
145
+ title: "Bookmark",
146
+ children: "\u{1F516}"
147
+ })
148
+ ]
149
+ });
150
+ switch (level) {
151
+ case 1:
152
+ return /* @__PURE__ */ jsx4("h1", {
153
+ children: container(children)
154
+ });
155
+ case 2:
156
+ return /* @__PURE__ */ jsx4("h2", {
157
+ children: container(children)
158
+ });
159
+ case 3:
160
+ return /* @__PURE__ */ jsx4("h3", {
161
+ children: container(children)
162
+ });
163
+ case 4:
164
+ return /* @__PURE__ */ jsx4("h4", {
165
+ children: container(children)
166
+ });
167
+ case 5:
168
+ return /* @__PURE__ */ jsx4("h5", {
169
+ children: container(children)
170
+ });
171
+ default:
172
+ return /* @__PURE__ */ jsx4("h6", {
173
+ children: container(children)
174
+ });
175
+ }
176
+ };
177
+
178
+ // src/Image.tsx
179
+ import { useMakeUrl } from "@hyperbook/provider";
180
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
181
+ var Image = ({ src, title, alt }) => {
182
+ const makeUrl = useMakeUrl();
183
+ src = makeUrl(src, "public");
184
+ return /* @__PURE__ */ jsxs3("figure", {
185
+ children: [
186
+ /* @__PURE__ */ jsx5("img", {
187
+ src,
188
+ alt
189
+ }),
190
+ title && /* @__PURE__ */ jsx5("figcaption", {
191
+ children: title
192
+ })
193
+ ]
194
+ });
195
+ };
196
+
197
+ // src/Markdown.tsx
198
+ import { jsx as jsx6 } from "react/jsx-runtime";
199
+ var Markdown = ({ children }) => {
200
+ const directives = useDirectives2();
201
+ return /* @__PURE__ */ jsx6(ReactMarkdown, {
202
+ className: "hyperbook-markdown",
203
+ components: __spreadProps(__spreadValues({}, directives), {
204
+ a: Link,
205
+ code: Code,
206
+ td: Td,
207
+ th: Th,
208
+ table: Table,
209
+ tr: Tr,
210
+ h1: Headings,
211
+ h2: Headings,
212
+ h3: Headings,
213
+ h4: Headings,
214
+ h5: Headings,
215
+ h6: Headings,
216
+ img: Image
217
+ }),
218
+ remarkPlugins: [
219
+ remarkDirective,
220
+ remarkDirectiveRehype,
221
+ remarkGfm,
222
+ remarkMath,
223
+ remarkGemoji,
224
+ remarkUnwrapImages
225
+ ],
226
+ rehypePlugins: [
227
+ rehypeKatex,
228
+ [rehypeHighlight, { ignoreMissing: true, plainText: ["mermaid"] }]
229
+ ],
230
+ skipHtml: false,
231
+ children
232
+ });
233
+ };
234
+ export {
235
+ Markdown
236
+ };
237
+ //# sourceMappingURL=index.esm.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/Markdown.tsx", "../src/Code.tsx", "../src/Link.tsx", "../src/Table.tsx", "../src/Headings.tsx", "../src/Image.tsx"],
4
+ "sourcesContent": ["import ReactMarkdown from \"react-markdown\";\nimport remarkDirective from \"remark-directive\";\nimport remarkDirectiveRehype from \"remark-directive-rehype\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport remarkGemoji from \"remark-gemoji\";\nimport remarkUnwrapImages from \"remark-unwrap-images\";\nimport rehypeKatex from \"rehype-katex\";\nimport rehypeHighlight from \"rehype-highlight\";\nimport { useDirectives } from \"@hyperbook/provider\";\nimport { Code } from \"./Code\";\nimport { Link } from \"./Link\";\nimport { Table, Td, Th, Tr } from \"./Table\";\nimport { Headings } from \"./Headings\";\nimport { Image } from \"./Image\";\n\nimport \"./index.css\";\n\nexport type MarkdownProps = {\n children: string;\n};\n\nexport const Markdown = ({ children }: MarkdownProps) => {\n const directives = useDirectives();\n\n return (\n <ReactMarkdown\n className=\"hyperbook-markdown\"\n components={{\n ...directives,\n a: Link,\n code: Code,\n td: Td,\n th: Th,\n table: Table,\n tr: Tr,\n h1: Headings,\n h2: Headings,\n h3: Headings,\n h4: Headings,\n h5: Headings,\n h6: Headings,\n img: Image,\n }}\n remarkPlugins={[\n remarkDirective,\n remarkDirectiveRehype,\n remarkGfm,\n remarkMath,\n remarkGemoji,\n remarkUnwrapImages,\n ]}\n rehypePlugins={[\n rehypeKatex,\n [rehypeHighlight, { ignoreMissing: true, plainText: [\"mermaid\"] }],\n ]}\n skipHtml={false}\n >\n {children}\n </ReactMarkdown>\n );\n};\n", "import { useDirectives } from \"@hyperbook/provider\";\nimport React, { Fragment, useRef, useState } from \"react\";\nimport { Components } from \"react-markdown\";\nimport { MdContentCopy, MdDone } from \"react-icons/md\";\n\nexport const Code: Components[\"code\"] = ({ children, className }) => {\n const directives = useDirectives();\n if (className === \"language-mermaid\" && directives[\"mermaid\"]) {\n const Mermaid = directives[\"mermaid\"];\n return <Mermaid children={children} />;\n }\n\n const ref = useRef<HTMLElement>(null);\n const [copied, setCopied] = useState(false);\n const copyCode = () => {\n if (navigator.clipboard && ref.current) {\n const text = ref.current.innerText;\n navigator.clipboard.writeText(text);\n\n setCopied(true);\n\n setTimeout(() => setCopied(false), 2000);\n }\n };\n\n return (\n <Fragment>\n <code ref={ref} className={className}>\n {children}\n </code>\n <button className=\"copy\" onClick={copyCode} aria-label=\"Copy Code\">\n {copied ? <MdDone /> : <MdContentCopy />}\n </button>\n </Fragment>\n );\n};\n", "import { useLink } from \"@hyperbook/provider\";\nimport { Components } from \"react-markdown\";\n\nexport const Link: Components[\"a\"] = ({ href, title, children }) => {\n const L = useLink();\n return (\n <L href={href} title={title}>\n {children}\n </L>\n );\n};\n", "import { ReactNode } from \"react\";\nimport { Components } from \"react-markdown\";\n\nlet tableHeaders: ReactNode[][] = [];\nlet tdIndex = 0;\n\nexport const Table: Components[\"table\"] = ({ children, style }) => {\n tableHeaders = [];\n return <table style={style}>{children}</table>;\n};\n\nexport const Tr: Components[\"tr\"] = ({ children, style }) => {\n tdIndex = 0;\n return <tr style={style}>{children}</tr>;\n};\n\nexport const Td: Components[\"td\"] = ({ children, style }) => {\n return (\n <td data-label={tableHeaders[tdIndex++]} style={style}>\n {children}\n </td>\n );\n};\n\nexport const Th: Components[\"th\"] = ({ children, style }) => {\n tableHeaders.push(children);\n return <th style={style}>{children}</th>;\n};\n", "import { useBookmark } from \"@hyperbook/provider\";\nimport { Components } from \"react-markdown\";\n\nexport const makeAnchor = (heading: string) => {\n // If we have a heading, make it lower case\n let anchor = heading.toLowerCase();\n\n // Clean anchor (replace special characters whitespaces).\n // Alternatively, use encodeURIComponent() if you don't care about\n // pretty anchor links\n anchor = anchor.replace(/[^a-zA-Z0-9 ]/g, \"\");\n anchor = anchor.replace(/ /g, \"-\");\n\n return anchor;\n};\n\nexport const Headings: Components[\"h1\"] = ({ level, children }) => {\n // Access actual (string) value of heading\n const heading = children[0];\n\n // If we have a heading, make it lower case\n let anchor = typeof heading === \"string\" ? makeAnchor(heading) : \"\";\n\n const label = typeof heading === \"string\" ? heading : anchor;\n\n const [bookmark, toggleBookmark] = useBookmark(anchor, label);\n\n // Utility\n const container = (children: React.ReactNode): JSX.Element => (\n <>\n <a className=\"heading\" id={anchor} href={`#${anchor}`}>\n <span>{children}</span>\n </a>\n <button\n className={bookmark ? \"bookmark active\" : \"bookmark\"}\n onClick={() => toggleBookmark()}\n title=\"Bookmark\"\n >\n \uD83D\uDD16\n </button>\n </>\n );\n\n switch (level) {\n case 1:\n return <h1>{container(children)}</h1>;\n case 2:\n return <h2>{container(children)}</h2>;\n case 3:\n return <h3>{container(children)}</h3>;\n case 4:\n return <h4>{container(children)}</h4>;\n case 5:\n return <h5>{container(children)}</h5>;\n\n default:\n return <h6>{container(children)}</h6>;\n }\n};\n", "import { useMakeUrl } from \"@hyperbook/provider\";\nimport { Components } from \"react-markdown\";\n\nexport const Image: Components[\"img\"] = ({ src, title, alt }) => {\n const makeUrl = useMakeUrl();\n src = makeUrl(src, \"public\");\n\n return (\n <figure>\n <img src={src} alt={alt} />\n {title && <figcaption>{title}</figcaption>}\n </figure>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useDirectives", "jsx", "jsx", "Fragment", "jsx", "jsxs", "children", "jsx", "jsxs", "jsx", "useDirectives"]
7
+ }
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@hyperbook/markdown",
3
+ "version": "0.1.0",
4
+ "author": "Mike Barkmin",
5
+ "homepage": "https://github.com/openpatch/hyperbook#readme",
6
+ "license": "MIT",
7
+ "main": "dist/index.cjs.js",
8
+ "module": "dist/index.esm.mjs",
9
+ "types": "dist/index.d.ts",
10
+ "typings": "dist/index.d.ts",
11
+ "sideEffects": false,
12
+ "exports": {
13
+ ".": {
14
+ "require": "./dist/index.cjs.js",
15
+ "default": "./dist/index.esm.mjs"
16
+ },
17
+ "./katex.css": "./dist/assets/katex.min.css",
18
+ "./index.css": "./dist/index.css"
19
+ },
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/openpatch/hyperbook.git",
29
+ "directory": "packages/markdown"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/openpatch/hyperbook/issues"
33
+ },
34
+ "dependencies": {
35
+ "@hyperbook/provider": "0.1.0",
36
+ "react-icons": "4.4.0",
37
+ "react-markdown": "8.0.3",
38
+ "rehype-highlight": "5.0.2",
39
+ "rehype-katex": "6.0.2",
40
+ "remark-directive": "2.0.1",
41
+ "remark-directive-rehype": "0.4.0",
42
+ "remark-gemoji": "7.0.1",
43
+ "remark-gfm": "3.0.1",
44
+ "remark-math": "5.1.1",
45
+ "remark-unwrap-images": "3.0.1"
46
+ },
47
+ "peerDependencies": {
48
+ "react": "18.x",
49
+ "react-dom": "18.x"
50
+ },
51
+ "devDependencies": {
52
+ "@types/hast": "^2.3.4",
53
+ "@types/react": "18.0.15",
54
+ "@types/react-dom": "18.0.6",
55
+ "@types/unist": "^2.0.6",
56
+ "react": "18.2.0",
57
+ "react-dom": "18.2.0"
58
+ },
59
+ "scripts": {
60
+ "prebuild": "rimraf dist",
61
+ "version": "pnpm build",
62
+ "lint": "tsc --noEmit",
63
+ "test": "jest --env=jsdom --passWithNoTests",
64
+ "build": "pnpm build:pkg && pnpm build:types",
65
+ "build:pkg": "node ../../scripts/build.mjs && cp -r assets dist/",
66
+ "build:types": "tsc --project tsconfig.build.json --declaration --emitDeclarationOnly"
67
+ }
68
+ }