rotion 3.5.0 → 3.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
12
  import { useCallback, useEffect, useRef, useState } from 'react';
13
13
 
14
14
  import mermaid from 'mermaid';
15
+ mermaid.startOnLoad = false;
15
16
  import Prism from 'prismjs';
16
17
  import 'prismjs/plugins/autoloader/prism-autoloader.js';
17
18
  if (Prism.plugins.autoloader) {
@@ -34,16 +35,34 @@ const setPrismCss = () => {
34
35
  };
35
36
  const Code = ({ children, language = 'text' }) => {
36
37
  const codeRef = useRef(null);
38
+ const sourceRef = useRef(null);
39
+ const mermaidIdRef = useRef(`mermaid-${Math.random().toString(36).slice(2, 11)}`);
40
+ const [mermaidSvg, setMermaidSvg] = useState(null);
37
41
  const highlight = useCallback((language) => __awaiter(void 0, void 0, void 0, function* () {
38
- if (codeRef.current) {
39
- if (language === 'mermaid') {
40
- mermaid.initialize({ theme: isDark() ? 'dark' : 'neutral' });
41
- mermaid.init(undefined, codeRef.current);
42
+ var _a;
43
+ if (language === 'mermaid') {
44
+ if (sourceRef.current === null) {
45
+ if (!codeRef.current)
46
+ return;
47
+ sourceRef.current = (_a = codeRef.current.textContent) !== null && _a !== void 0 ? _a : '';
42
48
  }
43
- else {
44
- setPrismCss();
45
- Prism.highlightElement(codeRef.current);
49
+ mermaid.initialize({
50
+ theme: isDark() ? 'dark' : 'neutral',
51
+ securityLevel: 'strict',
52
+ });
53
+ try {
54
+ const { svg } = yield mermaid.render(mermaidIdRef.current, sourceRef.current);
55
+ setMermaidSvg(svg);
46
56
  }
57
+ catch (e) {
58
+ console.error('mermaid render failed:', e);
59
+ }
60
+ }
61
+ else {
62
+ if (!codeRef.current)
63
+ return;
64
+ setPrismCss();
65
+ Prism.highlightElement(codeRef.current);
47
66
  }
48
67
  }), []);
49
68
  const cl = language === 'mermaid' ? 'mermaid' : `language-${language.toLowerCase()}`;
@@ -51,9 +70,12 @@ const Code = ({ children, language = 'text' }) => {
51
70
  const showLang = () => setShow(true);
52
71
  const hideLang = () => setShow(false);
53
72
  useEffect(() => {
54
- highlight(language);
55
- }, [language, highlight]);
56
- return (_jsxs("div", { className: "rotion-code-area", onMouseOver: showLang, onMouseOut: hideLang, onFocus: showLang, onBlur: hideLang, children: [show && _jsx("div", { className: "rotion-code-lang", children: language }), _jsx("pre", { className: cl, suppressHydrationWarning: true, children: _jsx("code", { ref: codeRef, suppressHydrationWarning: true, children: children }) })] }));
73
+ if (language === 'mermaid' && mermaidSvg !== null)
74
+ return;
75
+ highlight(language).catch((e) => console.error(e));
76
+ }, [language, highlight, mermaidSvg]);
77
+ const showMermaid = language === 'mermaid' && mermaidSvg;
78
+ return (_jsxs("div", { className: "rotion-code-area", onMouseOver: showLang, onMouseOut: hideLang, onFocus: showLang, onBlur: hideLang, children: [show && _jsx("div", { className: "rotion-code-lang", children: language }), showMermaid ? (_jsx("pre", { className: cl, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: mermaidSvg } }, "mermaid-rendered")) : (_jsx("pre", { className: cl, suppressHydrationWarning: true, children: _jsx("code", { ref: codeRef, suppressHydrationWarning: true, children: children }) }, "mermaid-source"))] }));
57
79
  };
58
80
  export default Code;
59
81
  //# sourceMappingURL=Code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Code.js","sourceRoot":"","sources":["../../../../../../../../src/ui/components/Page/CodeBlock/Code/Code.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Code.js","sourceRoot":"","sources":["../../../../../../../../src/ui/components/Page/CodeBlock/Code/Code.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rotion",
3
- "version": "3.5.0",
3
+ "version": "3.5.2",
4
4
  "license": "MIT",
5
5
  "repository": "linyows/rotion",
6
6
  "description": "This is react components that uses the notion API to display the notion's database and page.",