markstream-octane 2.0.19 → 2.0.20

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,60 +1,65 @@
1
1
  import t from "mermaid";
2
- async function a(a, r) {
3
- const e = function(t, a) {
4
- const r = `%%{init: {"theme": "${"dark" === a ? "dark" : "default"}"}}%%\n`;
5
- return t.trimStart().startsWith("%%{") ? t : r + t;
6
- }(a, r), n = t;
7
- if ("function" == typeof n.parse) return await n.parse?.(e), !0;
2
+ async function r(r, n) {
3
+ const a = function(t, r) {
4
+ return function(t, r) {
5
+ var n, a;
6
+ const e = null !== (n = null === (a = t.match(/^---[^\S\r\n]*(?:\r\n?|\n)[\s\S]*?(?:\r\n?|\n)---[^\S\r\n]*(?:\r\n?|\n)/)) || void 0 === a ? void 0 : a[0]) && void 0 !== n ? n : "", i = t.slice(e.length);
7
+ return i.trimStart().startsWith("%%{") ? t : e + r + i;
8
+ }(t, `%%{init: {"theme": "${"dark" === r ? "dark" : "default"}"}}%%\n`);
9
+ }(r, n), e = t;
10
+ if ("function" == typeof e.parse) return await e.parse?.(a), !0;
8
11
  throw new Error("mermaid.parse not available in worker");
9
12
  }
10
- async function r(t, r) {
11
- const e = t.split("\n"), n = function(t) {
12
- const a = /^(?:graph|flowchart|flowchart\s+tb|flowchart\s+lr|sequenceDiagram|gantt|classDiagram|stateDiagram(?:-v2)?|erDiagram|journey|pie|quadrantChart|timeline|xychart(?:-beta)?)\b/;
13
- for (let r = 0; r < t.length; r++) {
14
- const e = t[r].trim();
15
- if (e && !e.startsWith("%%") && a.test(e)) return r;
13
+ async function n(t, n) {
14
+ const a = t.split(/\r\n?|\n/), e = function(t) {
15
+ const r = /^(?:graph|flowchart|flowchart\s+tb|flowchart\s+lr|sequenceDiagram|gantt|classDiagram|stateDiagram(?:-v2)?|erDiagram|journey|pie|quadrantChart|timeline|xychart(?:-beta)?)\b/;
16
+ let n = "---" === t[0]?.trimEnd();
17
+ for (let a = 0; a < t.length; a++) {
18
+ const e = t[a].trim();
19
+ if (n) a > 0 && "---" === t[a].trimEnd() && (n = !1);
20
+ else if (e && !e.startsWith("%%") && r.test(e)) return a;
16
21
  }
17
22
  return -1;
18
- }(e);
19
- if (-1 === n) return null;
20
- const i = e.slice(0, n + 1);
21
- await a(i.join("\n"), r);
22
- let o = n + 1, s = e.length, c = n + 1, l = 0;
23
+ }(a);
24
+ if (-1 === e) return null;
25
+ const i = a.slice(0, e + 1);
26
+ await r(i.join("\n"), n);
27
+ let o = e + 1, s = a.length, c = e + 1, l = 0;
23
28
  for (; o <= s && l < 12;) {
24
- const t = Math.floor((o + s) / 2), f = [...i, ...e.slice(n + 1, t)].join("\n");
29
+ const t = Math.floor((o + s) / 2), d = [...i, ...a.slice(e + 1, t)].join("\n");
25
30
  l++;
26
31
  try {
27
- await a(f, r), c = t, o = t + 1;
32
+ await r(d, n), c = t, o = t + 1;
28
33
  } catch {
29
34
  s = t - 1;
30
35
  }
31
36
  }
32
- return [...i, ...e.slice(n + 1, c)].join("\n");
37
+ return [...i, ...a.slice(e + 1, c)].join("\n");
33
38
  }
34
39
  t.initialize({
35
40
  startOnLoad: !1,
36
41
  securityLevel: "strict",
37
42
  flowchart: { htmlLabels: !1 }
38
43
  }), self.onmessage = async (t) => {
39
- const e = t.data, n = (t) => self.postMessage(t), i = e.id;
44
+ const a = t.data, e = (t) => self.postMessage(t), i = a.id;
40
45
  try {
41
- if ("canParse" === e.action) return void n({
46
+ if ("canParse" === a.action) return void e({
42
47
  id: i,
43
48
  ok: !0,
44
- result: await a(e.payload.code, e.payload.theme)
49
+ result: await r(a.payload.code, a.payload.theme)
45
50
  });
46
- if ("findPrefix" === e.action) return void n({
51
+ if ("findPrefix" === a.action) return void e({
47
52
  id: i,
48
53
  ok: !0,
49
- result: await r(e.payload.code, e.payload.theme)
54
+ result: await n(a.payload.code, a.payload.theme)
50
55
  });
51
- n({
56
+ e({
52
57
  id: i,
53
58
  ok: !1,
54
59
  error: "Unknown action"
55
60
  });
56
61
  } catch (o) {
57
- n({
62
+ e({
58
63
  id: i,
59
64
  ok: !1,
60
65
  error: o?.message ?? String(o)
package/dist/tailwind.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const safeList = `octane typeof clsx name markstream-d2-root-svg string number window.requestAnimationFrame d2InstanceRef.current is not instance.render throw new instance missing object render returned empty to top d2-block my-4 rounded-lg border overflow-hidden shadow-sm border-gray-700/30 bg-gray-900 text-gray-100 border-gray-200 bg-white text-gray-900 d2-block-header flex justify-between items-center px-4 py-2.5 border-b border-gray-400/5 gap-x-2 text-sm font-medium font-mono gap-x-1 rounded-md mode-btn px-2 py-1 text-xs !showSource showSource d2-action-btn p-2 transition-colors hover:bg-[var(--vscode-editor-selectionBackground)] aria-label aria-hidden w-3 h-3 none currentColor round aria-pressed m9 d2-block-body d2-source py-4 d2-code d2-error mt-2 d2-render d2-svg pb-3 error [mermaidWorkerClient] messageerror cleared worker inject via busy call timed out canParse findPrefix class=\"mb-4\"><dt class=\"definition-term font-semibold\"></dt><dd class=\"definition-desc definition data-index-key mb-4 dt definition-term font-semibold dd definition-desc ml-4 click class=\"footnote-anchor hover:underline cursor-pointer\">\n ↩︎\n $$click href smooth class=\"footnote-node leading-relaxed border-t border-[var(--footnote-border,#eaecef)] pt-2\"><div id class=\"footnote-reference\"><span>\n footnote-link cursor-pointer className ref auto heading-node html-block-node stream-markdown-parser safe escape html-block html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 token.type block child value ms-html text self_closing tag_open tag_close parse html-inline dynamic template html-inline-node html-inline-node--loading inline primary fallback failed image async ?? placeholder image-node__placeholder image-node__spinner image-node__placeholder-text image… image-node__error load markstream-core w-4 h-4 flex-shrink-0 library in rendered text-red-500 p-4 hidden keydown transform ease center fullscreen touch rounded text-gray-400 hover:bg-gray-700 hover:text-gray-200 text-gray-600 hover:bg-gray-200 hover:text-gray-700 data-markstream-infographic data-markstream-mode source hasPreview bg-gray-800 bg-gray-50 px-2.5 bg-gray-600 text-gray-200 text-gray-700 text-gray-500 m16 opacity-50 cursor-not-allowed m7 m14 relative absolute top-2 right-2 z-10 gap-2 backdrop-blur infographic-preview min-h-[360px] transition-all duration-100 inset-0 overflow-auto text-left isDragging w-full text-center justify-center min-h-full markstream-octane fixed z-50 bg-black/70 dialog aria-modal dialog-panel h-full max-w-full max-h-full shadow-lg top-6 right-6 inline-flex !isDragging class=\"inline-code text-[85%] px-1 py-0.5 bg-[hsl(var(--secondary))] whitespace-normal break-words text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b class=\"list-item pl-1.5 list-item list-node my-5 pl-[calc(13/8*1em)] list-decimal list-disc max-lg:my-[calc(4/3*1em)] max-lg:pl-[calc(14/9*1em)] list mermaid loose strict viewBox gantt open-modal [data-mermaid-wrapper] mermaid-action-btn toggle-mode preview common.zoomIn common.zoomOut −\n common.resetZoom transition-[height] duration-150 data-mermaid-wrapper mermaid-loading mermaid-spinner diagram… mermaid-block-header space-x-2 icon-slot space-x-1 common.preview common.source common.export text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid hasRenderedOnce mermaid-modal-overlay mermaid-modal-header mermaid-modal-title mermaid-modal-close common.close mermaid-modal-body mermaid-modal-content available abort paragraph paragraph-node child.type renderNode ctx class=\"unknown-node italic\">\n node type:\n mouseenter mouseleave class=\"reference-node bg-[hsl(var(--muted))] px-1.5 mx-0.5 $$mouseenter $$mouseleave $$keydown event.key class=\"table-node-wrapper\"><table><!><thead class=\"border-[var(--table-border,#cbd5e1)]\"><tr p-[calc(4/7*1em)] table-node__resize-handle rowIdx bodyRows.length aria-busy pointermove pointerup pointercancel my-8 isLoading table-node__loading status aria-live polite table-node__spinner sr-only animationend $$animationend text-node node.center class=\"hr-node boolean dark window.matchMedia ms-tooltip z-[9999] inline-block text-base py-2 px-3 shadow-md whitespace-nowrap pointer-events-none tooltip-element text-white border-gray-700 is-dark tooltip cannot delete global clearGlobalCustomComponents was provided both streamingComponents and entry will be used parser-backed zoom javascript typescript go python ruby shell powershell d2 plain cpp csharp objectivec objectivecpp yaml markdown rust kotlin plaintext zsh objective-c objective-cpp diff java php sql [katexWorkerClient] init cache-hit timeout waiting slot dependency install it enable class=\"admonition-header\"><!><span note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby node.type next.maxHeight infographic language code_block html_inline text_special heading list_item definition_list footnote footnote_reference footnote_anchor admonition hardbreak inline_code emphasis strikethrough highlight insert subscript superscript checkbox checkbox_input emoji thematic_break math_inline math_block reference html_block vmr_container label_open label_close [markstream-octane] htmlPreviewSandbox contains allow-scripts this only fully trusted content served an isolated en utf-8 viewport content="width=device-width initial-scale=1 html-preview-frame__header html-preview-frame__title html-preview-frame__dot html-preview-frame__label ×\n html-preview-frame__iframe no-referrer about:blank class=\"checkbox-node\"><input thinking markstream-octane-d2 normalizedType module did expected data-language data-markstream-line-numbers !options.preserveBlankKind added context markstream-pre__diff-pane--inline original markstream-pre__diff-pane--original modified markstream-pre__diff-pane--modified removed no markstream-pre__diff-code markstream-pre__diff-line markstream-pre__diff-rail markstream-pre__diff-number markstream-pre__diff-content markstream-pre__diff-content-inner markstream-pre__line-numbers markstream-pre__line-numbers-text markstream-pre__code class children key viteEnv.MODE development process indexKey prototype constructor °C class=\"math-block overflow-x-auto math-rendering document role aria-describedby globalThis.requestAnimationFrame globalThis.cancelAnimationFrame sequencediagram classdiagram kind statediagram erdiagram flowchart graph $$ math-inline__loading math-inline__spinner target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer katex class=\"code-editor-layer\"><div></div><div code-height-placeholder code-fallback-plain m-0 style.visibility theme themes themeType languages stream disableFileHeader onThemeChange renderCustomHeader renderHeaderMetadata renderHeaderPrefix wrap split line-info night moon black dracula mocha frappe macchiato palenight ocean poimandres monokai laserwave tokyo slack-dark rose-pine github-dark material-theme one-dark catppuccin-mocha catppuccin-frappe catppuccin-macchiato transparent visible max-height height onDidUpdateDiff onDidContentSizeChange onDidLayoutChange window.MutationObserver record.type resolvedOptions.padding vitesse-dark vitesse-light monospace unified fontSize lineHeight maxHeight paddingBottom paddingTop tabSize resolvedOptions.overflow fontFamily nextOptions.unsafeCSS [data-file] [data-diff] canonicalLanguage single window.cancelAnimationFrame clientX navigator.clipboard navigator.clipboard.writeText code-block-container code-block-header flex-1 truncate code-action-btn evenodd code-loading-placeholder loading-skeleton skeleton-line short next next.type window.requestIdleCallback [data-node-index] node-spacer data-custom-id node-slot data-node-index data-node-type fade-node node-placeholder typewriter-cursor [data-node-type="code_block"] [data-node-type="admonition"] [data-node-type="table"] [data-node-type="math_block"] [data-node-type="html_block"] [data-node-type="image"] performance [markstream-octane][perf] markdown-renderer cite value?.useMonaco stream-diffs/markstream stream-diffs runtime`;
1
+ const safeList = `error [mermaidWorkerClient] messageerror cleared worker instance inject via busy call timed out canParse findPrefix octane click class=\"footnote-reference\"><span>\n $$click footnote-link cursor-pointer className ref id typeof smooth class=\"admonition-header\"><!><span data-index-key note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby class=\"checkbox-node\"><input clsx auto heading-node font-semibold object ?? image paragraph paragraph-node child.type renderNode ctx html-block-node stream-markdown-parser safe escape html-block html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 markstream-core none w-4 h-4 flex-shrink-0 library failed to string in rendered render returned empty text-red-500 p-4 hidden keydown transform ease center flex fullscreen touch p-2 text-xs rounded text-gray-400 hover:bg-gray-700 hover:text-gray-200 text-gray-600 hover:bg-gray-200 hover:text-gray-700 data-markstream-infographic data-markstream-mode source hasPreview my-4 rounded-lg border overflow-hidden justify-between items-center px-4 py-2.5 border-b bg-gray-800 border-gray-700/30 bg-gray-50 border-gray-200 gap-x-2 text-sm font-medium font-mono gap-x-1 rounded-md px-2.5 py-1 transition-colors bg-gray-600 text-gray-200 shadow-sm bg-white text-gray-700 text-gray-500 w-3 h-3 currentColor round m16 top m9 opacity-50 cursor-not-allowed m7 m14 relative absolute top-2 right-2 z-10 gap-2 backdrop-blur infographic-preview min-h-[360px] transition-all duration-100 inset-0 overflow-auto text-left isDragging w-full text-center justify-center min-h-full markstream-octane fixed z-50 bg-black/70 dialog aria-modal dialog-panel h-full max-w-full max-h-full shadow-lg top-6 right-6 inline-flex !isDragging primary fallback async placeholder image-node__placeholder image-node__spinner image-node__placeholder-text image… image-node__error aria-hidden load token.type block child name value ms-html text self_closing tag_open tag_close parse html-inline dynamic template html-inline-node html-inline-node--loading inline class=\"inline-code text-[85%] px-1 py-0.5 bg-[hsl(var(--secondary))] whitespace-normal break-words text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b class=\"list-item pl-1.5 list-item list-node my-5 pl-[calc(13/8*1em)] list-decimal list-disc max-lg:my-[calc(4/3*1em)] max-lg:pl-[calc(14/9*1em)] list mermaid loose strict viewBox gantt open-modal [data-mermaid-wrapper] mermaid-action-btn toggle-mode preview common.zoomIn common.zoomOut −\n common.resetZoom transition-[height] duration-150 data-mermaid-wrapper mermaid-loading mermaid-spinner diagram… mermaid-block-header space-x-2 icon-slot space-x-1 common.preview common.source aria-pressed common.export bg-gray-900 text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid showSource hasRenderedOnce mermaid-modal-overlay mermaid-modal-header mermaid-modal-title mermaid-modal-close common.close mermaid-modal-body mermaid-modal-content not available abort class=\"unknown-node italic\">\n node type:\n [markstream-octane] htmlPreviewSandbox contains both allow-scripts and this only fully trusted content served an isolated en utf-8 viewport content="width=device-width initial-scale=1 event.key html-preview-frame__header html-preview-frame__title html-preview-frame__dot html-preview-frame__label ×\n html-preview-frame__iframe no-referrer about:blank boolean dark window.matchMedia ms-tooltip z-[9999] inline-block text-base py-2 px-3 shadow-md whitespace-nowrap pointer-events-none tooltip-element text-white border-gray-700 is-dark text-gray-900 tooltip class=\"hr-node cannot delete global clearGlobalCustomComponents was provided streamingComponents entry will be used parser-backed zoom javascript typescript go python ruby shell powershell d2 plain cpp csharp objectivec objectivecpp yaml markdown rust kotlin plaintext zsh objective-c objective-cpp diff java php sql [katexWorkerClient] init cache-hit timeout waiting slot mouseenter mouseleave class=\"reference-node bg-[hsl(var(--muted))] px-1.5 mx-0.5 $$mouseenter $$mouseleave $$keydown class=\"table-node-wrapper\"><table><!><thead class=\"border-[var(--table-border,#cbd5e1)]\"><tr p-[calc(4/7*1em)] table-node__resize-handle aria-label rowIdx bodyRows.length aria-busy pointermove pointerup pointercancel my-8 isLoading table-node__loading status aria-live polite table-node__spinner sr-only class=\"mb-4\"><dt class=\"definition-term font-semibold\"></dt><dd class=\"definition-desc definition mb-4 dt definition-term dd definition-desc ml-4 markstream-d2-root-svg number window.requestAnimationFrame d2InstanceRef.current is instance.render throw new missing d2-block text-gray-100 d2-block-header border-gray-400/5 mode-btn px-2 !showSource d2-action-btn hover:bg-[var(--vscode-editor-selectionBackground)] d2-block-body d2-source py-4 d2-code d2-error mt-2 d2-render d2-svg pb-3 animationend $$animationend text-node node.center class=\"footnote-anchor hover:underline cursor-pointer\">\n ↩︎\n href node.type next.maxHeight infographic language code_block html_inline text_special heading list_item definition_list footnote footnote_reference footnote_anchor admonition hardbreak inline_code emphasis strikethrough highlight insert subscript superscript checkbox checkbox_input emoji thematic_break math_inline math_block reference html_block vmr_container label_open label_close class=\"footnote-node leading-relaxed border-t border-[var(--footnote-border,#eaecef)] pt-2\"><div dependency install it enable thinking normalizedType viteEnv.MODE development process class children key module did expected class=\"math-block overflow-x-auto math-rendering data-language data-markstream-line-numbers !options.preserveBlankKind added context markstream-pre__diff-pane--inline original markstream-pre__diff-pane--original modified markstream-pre__diff-pane--modified removed no markstream-pre__diff-code markstream-pre__diff-line markstream-pre__diff-rail markstream-pre__diff-number markstream-pre__diff-content markstream-pre__diff-content-inner markstream-pre__line-numbers markstream-pre__line-numbers-text markstream-pre__code °C document $$ math-inline__loading math-inline__spinner role aria-describedby sequencediagram classdiagram kind statediagram erdiagram flowchart graph globalThis.requestAnimationFrame globalThis.cancelAnimationFrame markstream-octane-d2 indexKey prototype constructor target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer next next.type window.requestIdleCallback [data-node-index] node-spacer data-custom-id node-slot data-node-index data-node-type fade-node node-placeholder typewriter-cursor [data-node-type="code_block"] [data-node-type="admonition"] [data-node-type="table"] [data-node-type="math_block"] [data-node-type="html_block"] [data-node-type="image"] performance [markstream-octane][perf] markdown-renderer class=\"code-editor-layer\"><div></div><div code-height-placeholder code-fallback-plain m-0 style.visibility theme themes themeType languages stream disableFileHeader onThemeChange renderCustomHeader renderHeaderMetadata renderHeaderPrefix wrap split line-info night moon black dracula mocha frappe macchiato palenight ocean poimandres monokai laserwave tokyo slack-dark rose-pine github-dark material-theme one-dark catppuccin-mocha catppuccin-frappe catppuccin-macchiato transparent visible max-height height onDidUpdateDiff onDidContentSizeChange onDidLayoutChange window.MutationObserver record.type resolvedOptions.padding vitesse-dark vitesse-light monospace unified fontSize lineHeight maxHeight paddingBottom paddingTop tabSize resolvedOptions.overflow fontFamily nextOptions.unsafeCSS [data-file] [data-diff] canonicalLanguage single window.cancelAnimationFrame clientX navigator.clipboard navigator.clipboard.writeText code-block-container code-block-header flex-1 truncate code-action-btn evenodd code-loading-placeholder loading-skeleton skeleton-line short katex value?.useMonaco stream-diffs/markstream stream-diffs runtime cite`;
2
2
  module.exports = safeList;
3
3
  module.exports.safeList = safeList;
4
4
  module.exports.default = safeList;
package/dist/tailwind.js CHANGED
@@ -1,2 +1,2 @@
1
- export const safeList = `octane typeof clsx name markstream-d2-root-svg string number window.requestAnimationFrame d2InstanceRef.current is not instance.render throw new instance missing object render returned empty to top d2-block my-4 rounded-lg border overflow-hidden shadow-sm border-gray-700/30 bg-gray-900 text-gray-100 border-gray-200 bg-white text-gray-900 d2-block-header flex justify-between items-center px-4 py-2.5 border-b border-gray-400/5 gap-x-2 text-sm font-medium font-mono gap-x-1 rounded-md mode-btn px-2 py-1 text-xs !showSource showSource d2-action-btn p-2 transition-colors hover:bg-[var(--vscode-editor-selectionBackground)] aria-label aria-hidden w-3 h-3 none currentColor round aria-pressed m9 d2-block-body d2-source py-4 d2-code d2-error mt-2 d2-render d2-svg pb-3 error [mermaidWorkerClient] messageerror cleared worker inject via busy call timed out canParse findPrefix class=\"mb-4\"><dt class=\"definition-term font-semibold\"></dt><dd class=\"definition-desc definition data-index-key mb-4 dt definition-term font-semibold dd definition-desc ml-4 click class=\"footnote-anchor hover:underline cursor-pointer\">\n ↩︎\n $$click href smooth class=\"footnote-node leading-relaxed border-t border-[var(--footnote-border,#eaecef)] pt-2\"><div id class=\"footnote-reference\"><span>\n footnote-link cursor-pointer className ref auto heading-node html-block-node stream-markdown-parser safe escape html-block html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 token.type block child value ms-html text self_closing tag_open tag_close parse html-inline dynamic template html-inline-node html-inline-node--loading inline primary fallback failed image async ?? placeholder image-node__placeholder image-node__spinner image-node__placeholder-text image… image-node__error load markstream-core w-4 h-4 flex-shrink-0 library in rendered text-red-500 p-4 hidden keydown transform ease center fullscreen touch rounded text-gray-400 hover:bg-gray-700 hover:text-gray-200 text-gray-600 hover:bg-gray-200 hover:text-gray-700 data-markstream-infographic data-markstream-mode source hasPreview bg-gray-800 bg-gray-50 px-2.5 bg-gray-600 text-gray-200 text-gray-700 text-gray-500 m16 opacity-50 cursor-not-allowed m7 m14 relative absolute top-2 right-2 z-10 gap-2 backdrop-blur infographic-preview min-h-[360px] transition-all duration-100 inset-0 overflow-auto text-left isDragging w-full text-center justify-center min-h-full markstream-octane fixed z-50 bg-black/70 dialog aria-modal dialog-panel h-full max-w-full max-h-full shadow-lg top-6 right-6 inline-flex !isDragging class=\"inline-code text-[85%] px-1 py-0.5 bg-[hsl(var(--secondary))] whitespace-normal break-words text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b class=\"list-item pl-1.5 list-item list-node my-5 pl-[calc(13/8*1em)] list-decimal list-disc max-lg:my-[calc(4/3*1em)] max-lg:pl-[calc(14/9*1em)] list mermaid loose strict viewBox gantt open-modal [data-mermaid-wrapper] mermaid-action-btn toggle-mode preview common.zoomIn common.zoomOut −\n common.resetZoom transition-[height] duration-150 data-mermaid-wrapper mermaid-loading mermaid-spinner diagram… mermaid-block-header space-x-2 icon-slot space-x-1 common.preview common.source common.export text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid hasRenderedOnce mermaid-modal-overlay mermaid-modal-header mermaid-modal-title mermaid-modal-close common.close mermaid-modal-body mermaid-modal-content available abort paragraph paragraph-node child.type renderNode ctx class=\"unknown-node italic\">\n node type:\n mouseenter mouseleave class=\"reference-node bg-[hsl(var(--muted))] px-1.5 mx-0.5 $$mouseenter $$mouseleave $$keydown event.key class=\"table-node-wrapper\"><table><!><thead class=\"border-[var(--table-border,#cbd5e1)]\"><tr p-[calc(4/7*1em)] table-node__resize-handle rowIdx bodyRows.length aria-busy pointermove pointerup pointercancel my-8 isLoading table-node__loading status aria-live polite table-node__spinner sr-only animationend $$animationend text-node node.center class=\"hr-node boolean dark window.matchMedia ms-tooltip z-[9999] inline-block text-base py-2 px-3 shadow-md whitespace-nowrap pointer-events-none tooltip-element text-white border-gray-700 is-dark tooltip cannot delete global clearGlobalCustomComponents was provided both streamingComponents and entry will be used parser-backed zoom javascript typescript go python ruby shell powershell d2 plain cpp csharp objectivec objectivecpp yaml markdown rust kotlin plaintext zsh objective-c objective-cpp diff java php sql [katexWorkerClient] init cache-hit timeout waiting slot dependency install it enable class=\"admonition-header\"><!><span note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby node.type next.maxHeight infographic language code_block html_inline text_special heading list_item definition_list footnote footnote_reference footnote_anchor admonition hardbreak inline_code emphasis strikethrough highlight insert subscript superscript checkbox checkbox_input emoji thematic_break math_inline math_block reference html_block vmr_container label_open label_close [markstream-octane] htmlPreviewSandbox contains allow-scripts this only fully trusted content served an isolated en utf-8 viewport content="width=device-width initial-scale=1 html-preview-frame__header html-preview-frame__title html-preview-frame__dot html-preview-frame__label ×\n html-preview-frame__iframe no-referrer about:blank class=\"checkbox-node\"><input thinking markstream-octane-d2 normalizedType module did expected data-language data-markstream-line-numbers !options.preserveBlankKind added context markstream-pre__diff-pane--inline original markstream-pre__diff-pane--original modified markstream-pre__diff-pane--modified removed no markstream-pre__diff-code markstream-pre__diff-line markstream-pre__diff-rail markstream-pre__diff-number markstream-pre__diff-content markstream-pre__diff-content-inner markstream-pre__line-numbers markstream-pre__line-numbers-text markstream-pre__code class children key viteEnv.MODE development process indexKey prototype constructor °C class=\"math-block overflow-x-auto math-rendering document role aria-describedby globalThis.requestAnimationFrame globalThis.cancelAnimationFrame sequencediagram classdiagram kind statediagram erdiagram flowchart graph $$ math-inline__loading math-inline__spinner target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer katex class=\"code-editor-layer\"><div></div><div code-height-placeholder code-fallback-plain m-0 style.visibility theme themes themeType languages stream disableFileHeader onThemeChange renderCustomHeader renderHeaderMetadata renderHeaderPrefix wrap split line-info night moon black dracula mocha frappe macchiato palenight ocean poimandres monokai laserwave tokyo slack-dark rose-pine github-dark material-theme one-dark catppuccin-mocha catppuccin-frappe catppuccin-macchiato transparent visible max-height height onDidUpdateDiff onDidContentSizeChange onDidLayoutChange window.MutationObserver record.type resolvedOptions.padding vitesse-dark vitesse-light monospace unified fontSize lineHeight maxHeight paddingBottom paddingTop tabSize resolvedOptions.overflow fontFamily nextOptions.unsafeCSS [data-file] [data-diff] canonicalLanguage single window.cancelAnimationFrame clientX navigator.clipboard navigator.clipboard.writeText code-block-container code-block-header flex-1 truncate code-action-btn evenodd code-loading-placeholder loading-skeleton skeleton-line short next next.type window.requestIdleCallback [data-node-index] node-spacer data-custom-id node-slot data-node-index data-node-type fade-node node-placeholder typewriter-cursor [data-node-type="code_block"] [data-node-type="admonition"] [data-node-type="table"] [data-node-type="math_block"] [data-node-type="html_block"] [data-node-type="image"] performance [markstream-octane][perf] markdown-renderer cite value?.useMonaco stream-diffs/markstream stream-diffs runtime`;
1
+ export const safeList = `error [mermaidWorkerClient] messageerror cleared worker instance inject via busy call timed out canParse findPrefix octane click class=\"footnote-reference\"><span>\n $$click footnote-link cursor-pointer className ref id typeof smooth class=\"admonition-header\"><!><span data-index-key note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby class=\"checkbox-node\"><input clsx auto heading-node font-semibold object ?? image paragraph paragraph-node child.type renderNode ctx html-block-node stream-markdown-parser safe escape html-block html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 markstream-core none w-4 h-4 flex-shrink-0 library failed to string in rendered render returned empty text-red-500 p-4 hidden keydown transform ease center flex fullscreen touch p-2 text-xs rounded text-gray-400 hover:bg-gray-700 hover:text-gray-200 text-gray-600 hover:bg-gray-200 hover:text-gray-700 data-markstream-infographic data-markstream-mode source hasPreview my-4 rounded-lg border overflow-hidden justify-between items-center px-4 py-2.5 border-b bg-gray-800 border-gray-700/30 bg-gray-50 border-gray-200 gap-x-2 text-sm font-medium font-mono gap-x-1 rounded-md px-2.5 py-1 transition-colors bg-gray-600 text-gray-200 shadow-sm bg-white text-gray-700 text-gray-500 w-3 h-3 currentColor round m16 top m9 opacity-50 cursor-not-allowed m7 m14 relative absolute top-2 right-2 z-10 gap-2 backdrop-blur infographic-preview min-h-[360px] transition-all duration-100 inset-0 overflow-auto text-left isDragging w-full text-center justify-center min-h-full markstream-octane fixed z-50 bg-black/70 dialog aria-modal dialog-panel h-full max-w-full max-h-full shadow-lg top-6 right-6 inline-flex !isDragging primary fallback async placeholder image-node__placeholder image-node__spinner image-node__placeholder-text image… image-node__error aria-hidden load token.type block child name value ms-html text self_closing tag_open tag_close parse html-inline dynamic template html-inline-node html-inline-node--loading inline class=\"inline-code text-[85%] px-1 py-0.5 bg-[hsl(var(--secondary))] whitespace-normal break-words text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b class=\"list-item pl-1.5 list-item list-node my-5 pl-[calc(13/8*1em)] list-decimal list-disc max-lg:my-[calc(4/3*1em)] max-lg:pl-[calc(14/9*1em)] list mermaid loose strict viewBox gantt open-modal [data-mermaid-wrapper] mermaid-action-btn toggle-mode preview common.zoomIn common.zoomOut −\n common.resetZoom transition-[height] duration-150 data-mermaid-wrapper mermaid-loading mermaid-spinner diagram… mermaid-block-header space-x-2 icon-slot space-x-1 common.preview common.source aria-pressed common.export bg-gray-900 text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid showSource hasRenderedOnce mermaid-modal-overlay mermaid-modal-header mermaid-modal-title mermaid-modal-close common.close mermaid-modal-body mermaid-modal-content not available abort class=\"unknown-node italic\">\n node type:\n [markstream-octane] htmlPreviewSandbox contains both allow-scripts and this only fully trusted content served an isolated en utf-8 viewport content="width=device-width initial-scale=1 event.key html-preview-frame__header html-preview-frame__title html-preview-frame__dot html-preview-frame__label ×\n html-preview-frame__iframe no-referrer about:blank boolean dark window.matchMedia ms-tooltip z-[9999] inline-block text-base py-2 px-3 shadow-md whitespace-nowrap pointer-events-none tooltip-element text-white border-gray-700 is-dark text-gray-900 tooltip class=\"hr-node cannot delete global clearGlobalCustomComponents was provided streamingComponents entry will be used parser-backed zoom javascript typescript go python ruby shell powershell d2 plain cpp csharp objectivec objectivecpp yaml markdown rust kotlin plaintext zsh objective-c objective-cpp diff java php sql [katexWorkerClient] init cache-hit timeout waiting slot mouseenter mouseleave class=\"reference-node bg-[hsl(var(--muted))] px-1.5 mx-0.5 $$mouseenter $$mouseleave $$keydown class=\"table-node-wrapper\"><table><!><thead class=\"border-[var(--table-border,#cbd5e1)]\"><tr p-[calc(4/7*1em)] table-node__resize-handle aria-label rowIdx bodyRows.length aria-busy pointermove pointerup pointercancel my-8 isLoading table-node__loading status aria-live polite table-node__spinner sr-only class=\"mb-4\"><dt class=\"definition-term font-semibold\"></dt><dd class=\"definition-desc definition mb-4 dt definition-term dd definition-desc ml-4 markstream-d2-root-svg number window.requestAnimationFrame d2InstanceRef.current is instance.render throw new missing d2-block text-gray-100 d2-block-header border-gray-400/5 mode-btn px-2 !showSource d2-action-btn hover:bg-[var(--vscode-editor-selectionBackground)] d2-block-body d2-source py-4 d2-code d2-error mt-2 d2-render d2-svg pb-3 animationend $$animationend text-node node.center class=\"footnote-anchor hover:underline cursor-pointer\">\n ↩︎\n href node.type next.maxHeight infographic language code_block html_inline text_special heading list_item definition_list footnote footnote_reference footnote_anchor admonition hardbreak inline_code emphasis strikethrough highlight insert subscript superscript checkbox checkbox_input emoji thematic_break math_inline math_block reference html_block vmr_container label_open label_close class=\"footnote-node leading-relaxed border-t border-[var(--footnote-border,#eaecef)] pt-2\"><div dependency install it enable thinking normalizedType viteEnv.MODE development process class children key module did expected class=\"math-block overflow-x-auto math-rendering data-language data-markstream-line-numbers !options.preserveBlankKind added context markstream-pre__diff-pane--inline original markstream-pre__diff-pane--original modified markstream-pre__diff-pane--modified removed no markstream-pre__diff-code markstream-pre__diff-line markstream-pre__diff-rail markstream-pre__diff-number markstream-pre__diff-content markstream-pre__diff-content-inner markstream-pre__line-numbers markstream-pre__line-numbers-text markstream-pre__code °C document $$ math-inline__loading math-inline__spinner role aria-describedby sequencediagram classdiagram kind statediagram erdiagram flowchart graph globalThis.requestAnimationFrame globalThis.cancelAnimationFrame markstream-octane-d2 indexKey prototype constructor target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer next next.type window.requestIdleCallback [data-node-index] node-spacer data-custom-id node-slot data-node-index data-node-type fade-node node-placeholder typewriter-cursor [data-node-type="code_block"] [data-node-type="admonition"] [data-node-type="table"] [data-node-type="math_block"] [data-node-type="html_block"] [data-node-type="image"] performance [markstream-octane][perf] markdown-renderer class=\"code-editor-layer\"><div></div><div code-height-placeholder code-fallback-plain m-0 style.visibility theme themes themeType languages stream disableFileHeader onThemeChange renderCustomHeader renderHeaderMetadata renderHeaderPrefix wrap split line-info night moon black dracula mocha frappe macchiato palenight ocean poimandres monokai laserwave tokyo slack-dark rose-pine github-dark material-theme one-dark catppuccin-mocha catppuccin-frappe catppuccin-macchiato transparent visible max-height height onDidUpdateDiff onDidContentSizeChange onDidLayoutChange window.MutationObserver record.type resolvedOptions.padding vitesse-dark vitesse-light monospace unified fontSize lineHeight maxHeight paddingBottom paddingTop tabSize resolvedOptions.overflow fontFamily nextOptions.unsafeCSS [data-file] [data-diff] canonicalLanguage single window.cancelAnimationFrame clientX navigator.clipboard navigator.clipboard.writeText code-block-container code-block-header flex-1 truncate code-action-btn evenodd code-loading-placeholder loading-skeleton skeleton-line short katex value?.useMonaco stream-diffs/markstream stream-diffs runtime cite`;
2
2
  export default safeList;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "markstream-octane",
3
3
  "type": "module",
4
- "version": "2.0.19",
4
+ "version": "2.0.20",
5
5
  "description": "Octane streaming Markdown renderer for AI chat, LLM token streams, SSE/WebSocket output, incomplete Markdown, long documents, Mermaid, KaTeX, stream-diffs powered code blocks, and custom Octane components.",
6
6
  "author": "Simon He",
7
7
  "license": "MIT",
@@ -104,8 +104,8 @@
104
104
  "dependencies": {
105
105
  "@floating-ui/dom": "^1.8.0",
106
106
  "clsx": "^2.1.1",
107
- "markstream-core": "2.0.19",
108
- "stream-markdown-parser": "1.2.20"
107
+ "markstream-core": "2.0.20",
108
+ "stream-markdown-parser": "1.2.21"
109
109
  },
110
110
  "devDependencies": {
111
111
  "@octanejs/testing-library": "^0.1.18",