@myst-theme/diagrams 0.17.1 → 1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAa1D,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CA6BA;AAED,eAAO,MAAM,mBAAmB,EAAE,YAQjC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAgB1D,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAiCA;AAED,eAAO,MAAM,mBAAmB,EAAE,YAQjC,CAAC"}
package/dist/index.js CHANGED
@@ -10,14 +10,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { useEffect, useId, useState } from 'react';
12
12
  import classNames from 'classnames';
13
- function parse(id, text) {
13
+ let _mermaid = undefined;
14
+ function loadMermaid() {
14
15
  return __awaiter(this, void 0, void 0, function* () {
15
- const { default: mermaid } = yield import('mermaid');
16
- return yield new Promise((resolve) => {
17
- mermaid.render(id, text, (code) => {
18
- resolve(code);
19
- });
20
- });
16
+ if (_mermaid === undefined) {
17
+ const module = yield import('mermaid');
18
+ _mermaid = module.default;
19
+ _mermaid.initialize({ startOnLoad: false });
20
+ }
21
+ return _mermaid;
21
22
  });
22
23
  }
23
24
  export function MermaidRenderer({ id, value, className, }) {
@@ -25,15 +26,20 @@ export function MermaidRenderer({ id, value, className, }) {
25
26
  const [graph, setGraph] = useState();
26
27
  const [error, setError] = useState();
27
28
  useEffect(() => {
28
- parse(`mermaid-${key.replace(/:/g, '')}`, value)
29
- .then((svg) => {
30
- setGraph(svg);
31
- setError(undefined);
32
- })
33
- .catch((err) => {
34
- setGraph(undefined);
35
- setError(err);
29
+ const render = () => __awaiter(this, void 0, void 0, function* () {
30
+ try {
31
+ const mermaidID = `mermaid-${key.replace(/:/g, '')}`;
32
+ const mermaid = yield loadMermaid();
33
+ const { svg } = yield mermaid.render(mermaidID, value);
34
+ setGraph(svg);
35
+ setError(undefined);
36
+ }
37
+ catch (err) {
38
+ setGraph(undefined);
39
+ setError(err);
40
+ }
36
41
  });
42
+ render();
37
43
  }, []);
38
44
  return (_jsxs("figure", { id: id, className: className, children: [graph && _jsx("div", { dangerouslySetInnerHTML: { __html: graph } }), error && (_jsxs("pre", { children: ["Error parsing mermaid graph.", '\n\n', error.message, '\n\n', value] }))] }));
39
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myst-theme/diagrams",
3
- "version": "0.17.1",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "exports": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -20,8 +20,8 @@
20
20
  "build": "npm-run-all -l clean -p build:esm"
21
21
  },
22
22
  "dependencies": {
23
- "@myst-theme/providers": "^0.17.1",
24
- "mermaid": "^9.3.0",
23
+ "@myst-theme/providers": "^1.0.0",
24
+ "mermaid": "^11.0.0",
25
25
  "classnames": "^2.3.2"
26
26
  },
27
27
  "peerDependencies": {