markstream-octane 2.0.19 → 2.0.21

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 = `octane class=\"checkbox-node\"><input error [mermaidWorkerClient] messageerror cleared worker instance inject via busy call timed out canParse findPrefix [markstream-octane] htmlPreviewSandbox contains both allow-scripts and this only fully trusted content served an isolated string 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 dependency is not install it to enable class=\"mb-4\"><dt class=\"definition-term font-semibold\"></dt><dd class=\"definition-desc definition typeof data-index-key mb-4 dt definition-term font-semibold dd definition-desc ml-4 clsx markstream-core stream-markdown-parser mermaid none loose strict hidden viewBox gantt top open-modal keydown fullscreen [data-mermaid-wrapper] mermaid-action-btn 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 toggle-mode preview touch relative absolute top-2 right-2 z-10 rounded-lg flex items-center gap-2 backdrop-blur transition-colors common.zoomIn common.zoomOut −\n common.resetZoom min-h-[360px] overflow-hidden block transition-[height] duration-150 data-mermaid-wrapper inset-0 w-full text-center justify-center min-h-full mermaid-loading mermaid-spinner diagram… mermaid-block-header justify-between px-4 py-2.5 border-b bg-gray-800 border-gray-700/30 bg-gray-50 border-gray-200 space-x-2 icon-slot h-4 w-4 flex-shrink-0 text-sm font-medium font-mono space-x-1 rounded-md px-2.5 py-1 bg-gray-600 text-gray-200 shadow-sm bg-white text-gray-700 text-gray-500 common.preview aria-hidden w-3 h-3 currentColor round source common.source m16 aria-pressed m9 opacity-50 common.export m7 m14 p-4 bg-gray-900 text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid showSource hasRenderedOnce my-4 border markstream-octane mermaid-modal-overlay dialog aria-modal mermaid-modal-header mermaid-modal-title mermaid-modal-close common.close mermaid-modal-body mermaid-modal-content available abort class=\"unknown-node italic\">\n node type:\n ?? image paragraph auto paragraph-node child.type renderNode ctx 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 mouseenter mouseleave class=\"reference-node cursor-pointer bg-[hsl(var(--muted))] px-1.5 mx-0.5 $$mouseenter $$mouseleave $$keydown class=\"footnote-reference\"><span>\n footnote-link className ref heading-node object html-block-node safe escape html-block html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 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 text-left pointermove pointerup pointercancel my-8 isLoading table-node__loading status aria-live polite table-node__spinner sr-only animationend $$animationend text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b text-node node.center token.type 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 primary fallback failed async placeholder image-node__placeholder image-node__spinner image-node__placeholder-text image… image-node__error load class=\"hr-node library in rendered render returned empty text-red-500 transform ease center data-markstream-infographic data-markstream-mode hasPreview gap-x-2 gap-x-1 cursor-not-allowed infographic-preview transition-all duration-100 overflow-auto isDragging fixed z-50 bg-black/70 dialog-panel h-full max-w-full max-h-full shadow-lg top-6 right-6 inline-flex !isDragging 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=\"inline-code text-[85%] px-1 py-0.5 bg-[hsl(var(--secondary))] whitespace-normal break-words cannot delete global clearGlobalCustomComponents was provided streamingComponents entry will be used parser-backed 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 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 markstream-d2-root-svg number window.requestAnimationFrame d2InstanceRef.current 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 [katexWorkerClient] init cache-hit timeout waiting slot 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=\"admonition-header\"><!><span note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer thinking normalizedType module did expected document class children key role aria-describedby 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 globalThis.requestAnimationFrame globalThis.cancelAnimationFrame sequencediagram classdiagram kind statediagram erdiagram flowchart graph viteEnv.MODE development process class=\"math-block overflow-x-auto math-rendering markstream-octane-d2 $$ math-inline__loading math-inline__spinner °C indexKey prototype constructor 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 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 = `octane class=\"checkbox-node\"><input error [mermaidWorkerClient] messageerror cleared worker instance inject via busy call timed out canParse findPrefix [markstream-octane] htmlPreviewSandbox contains both allow-scripts and this only fully trusted content served an isolated string 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 dependency is not install it to enable class=\"mb-4\"><dt class=\"definition-term font-semibold\"></dt><dd class=\"definition-desc definition typeof data-index-key mb-4 dt definition-term font-semibold dd definition-desc ml-4 clsx markstream-core stream-markdown-parser mermaid none loose strict hidden viewBox gantt top open-modal keydown fullscreen [data-mermaid-wrapper] mermaid-action-btn 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 toggle-mode preview touch relative absolute top-2 right-2 z-10 rounded-lg flex items-center gap-2 backdrop-blur transition-colors common.zoomIn common.zoomOut −\n common.resetZoom min-h-[360px] overflow-hidden block transition-[height] duration-150 data-mermaid-wrapper inset-0 w-full text-center justify-center min-h-full mermaid-loading mermaid-spinner diagram… mermaid-block-header justify-between px-4 py-2.5 border-b bg-gray-800 border-gray-700/30 bg-gray-50 border-gray-200 space-x-2 icon-slot h-4 w-4 flex-shrink-0 text-sm font-medium font-mono space-x-1 rounded-md px-2.5 py-1 bg-gray-600 text-gray-200 shadow-sm bg-white text-gray-700 text-gray-500 common.preview aria-hidden w-3 h-3 currentColor round source common.source m16 aria-pressed m9 opacity-50 common.export m7 m14 p-4 bg-gray-900 text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid showSource hasRenderedOnce my-4 border markstream-octane mermaid-modal-overlay dialog aria-modal mermaid-modal-header mermaid-modal-title mermaid-modal-close common.close mermaid-modal-body mermaid-modal-content available abort class=\"unknown-node italic\">\n node type:\n ?? image paragraph auto paragraph-node child.type renderNode ctx 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 mouseenter mouseleave class=\"reference-node cursor-pointer bg-[hsl(var(--muted))] px-1.5 mx-0.5 $$mouseenter $$mouseleave $$keydown class=\"footnote-reference\"><span>\n footnote-link className ref heading-node object html-block-node safe escape html-block html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 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 text-left pointermove pointerup pointercancel my-8 isLoading table-node__loading status aria-live polite table-node__spinner sr-only animationend $$animationend text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b text-node node.center token.type 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 primary fallback failed async placeholder image-node__placeholder image-node__spinner image-node__placeholder-text image… image-node__error load class=\"hr-node library in rendered render returned empty text-red-500 transform ease center data-markstream-infographic data-markstream-mode hasPreview gap-x-2 gap-x-1 cursor-not-allowed infographic-preview transition-all duration-100 overflow-auto isDragging fixed z-50 bg-black/70 dialog-panel h-full max-w-full max-h-full shadow-lg top-6 right-6 inline-flex !isDragging 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=\"inline-code text-[85%] px-1 py-0.5 bg-[hsl(var(--secondary))] whitespace-normal break-words cannot delete global clearGlobalCustomComponents was provided streamingComponents entry will be used parser-backed 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 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 markstream-d2-root-svg number window.requestAnimationFrame d2InstanceRef.current 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 [katexWorkerClient] init cache-hit timeout waiting slot 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=\"admonition-header\"><!><span note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer thinking normalizedType module did expected document class children key role aria-describedby 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 globalThis.requestAnimationFrame globalThis.cancelAnimationFrame sequencediagram classdiagram kind statediagram erdiagram flowchart graph viteEnv.MODE development process class=\"math-block overflow-x-auto math-rendering markstream-octane-d2 $$ math-inline__loading math-inline__spinner °C indexKey prototype constructor 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 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.21",
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.21",
108
+ "stream-markdown-parser": "1.2.22"
109
109
  },
110
110
  "devDependencies": {
111
111
  "@octanejs/testing-library": "^0.1.18",