markstream-octane 2.0.17 → 2.0.19

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.
package/dist/index.d.ts CHANGED
@@ -105,6 +105,8 @@ interface CodeBlockOptions {
105
105
  interface CodeBlockNodeProps extends CommonCodeBlockProps {
106
106
  node: CodeBlockNode$1;
107
107
  codeBlockOptions?: CodeBlockOptions;
108
+ /** Overrides browser clipboard writes. Copy feedback and events wait for completion. */
109
+ clipboardWriter?: (text: string) => void | Promise<void>;
108
110
  isDark?: boolean;
109
111
  loading?: boolean;
110
112
  stream?: boolean;
@@ -150,6 +152,8 @@ interface LinkNodeProps {
150
152
  }[];
151
153
  raw: string;
152
154
  loading?: boolean;
155
+ /** `'linkify'` marks links auto-detected from bare text. */
156
+ markup?: string;
153
157
  };
154
158
  indexKey: number | string;
155
159
  customId?: string;
@@ -590,6 +594,8 @@ declare function LinkNode(props: NodeComponentProps<{
590
594
  text: string;
591
595
  children?: ParsedNode[];
592
596
  loading?: boolean;
597
+ /** `'linkify'` marks links auto-detected from bare text. */
598
+ markup?: string;
593
599
  }> & LinkNodeStyleProps): octane_jsx_runtime.Octane.JSX.Element;
594
600
 
595
601
  interface ListItemNodeData {
package/dist/server.d.ts CHANGED
@@ -126,6 +126,8 @@ interface CodeBlockOptions {
126
126
  interface CodeBlockNodeProps extends CommonCodeBlockProps {
127
127
  node: CodeBlockNode$1;
128
128
  codeBlockOptions?: CodeBlockOptions;
129
+ /** Overrides browser clipboard writes. Copy feedback and events wait for completion. */
130
+ clipboardWriter?: (text: string) => void | Promise<void>;
129
131
  isDark?: boolean;
130
132
  loading?: boolean;
131
133
  stream?: boolean;
@@ -171,6 +173,8 @@ interface LinkNodeProps {
171
173
  }[];
172
174
  raw: string;
173
175
  loading?: boolean;
176
+ /** `'linkify'` marks links auto-detected from bare text. */
177
+ markup?: string;
174
178
  };
175
179
  indexKey: number | string;
176
180
  customId?: string;
package/dist/tailwind.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const safeList = `octane class=\"checkbox-node\"><input error [mermaidWorkerClient] messageerror cleared worker instance inject via busy call timed out canParse findPrefix typeof [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 clsx name markstream-d2-root-svg number window.requestAnimationFrame d2InstanceRef.current instance.render throw new missing object render returned empty 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 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 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 auto heading-node class=\"list-item pl-1.5 value 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 token.type block child 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 mermaid loose strict hidden viewBox gantt open-modal keydown fullscreen [data-mermaid-wrapper] mermaid-action-btn 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 gap-2 backdrop-blur common.zoomIn common.zoomOut −\n common.resetZoom min-h-[360px] 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 bg-gray-800 bg-gray-50 space-x-2 icon-slot h-4 w-4 flex-shrink-0 space-x-1 px-2.5 bg-gray-600 text-gray-200 text-gray-700 text-gray-500 common.preview source common.source m16 opacity-50 common.export m7 m14 p-4 text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid hasRenderedOnce 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 library in rendered text-red-500 transform ease center data-markstream-infographic data-markstream-mode hasPreview cursor-not-allowed infographic-preview transition-all duration-100 overflow-auto text-left 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 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=\"unknown-node italic\">\n node type:\n paragraph paragraph-node child.type renderNode ctx 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 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 zoom class=\"admonition-header\"><!><span note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby node.type next.maxHeight infographic language boolean 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=\"hr-node 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 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 cannot delete global clearGlobalCustomComponents was provided streamingComponents entry will be used parser-backed [katexWorkerClient] init cache-hit timeout waiting slot target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer class=\"math-block overflow-x-auto math-rendering globalThis.requestAnimationFrame globalThis.cancelAnimationFrame $$ math-inline__loading math-inline__spinner 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 sequencediagram classdiagram kind statediagram erdiagram flowchart graph module did expected normalizedType document role aria-describedby thinking indexKey prototype constructor °C viteEnv.MODE development process markstream-octane-d2 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`;
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`;
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 class=\"checkbox-node\"><input error [mermaidWorkerClient] messageerror cleared worker instance inject via busy call timed out canParse findPrefix typeof [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 clsx name markstream-d2-root-svg number window.requestAnimationFrame d2InstanceRef.current instance.render throw new missing object render returned empty 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 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 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 auto heading-node class=\"list-item pl-1.5 value 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 token.type block child 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 mermaid loose strict hidden viewBox gantt open-modal keydown fullscreen [data-mermaid-wrapper] mermaid-action-btn 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 gap-2 backdrop-blur common.zoomIn common.zoomOut −\n common.resetZoom min-h-[360px] 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 bg-gray-800 bg-gray-50 space-x-2 icon-slot h-4 w-4 flex-shrink-0 space-x-1 px-2.5 bg-gray-600 text-gray-200 text-gray-700 text-gray-500 common.preview source common.source m16 opacity-50 common.export m7 m14 p-4 text-gray-300 whitespace-pre-wrap mermaid-error data-markstream-mermaid hasRenderedOnce 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 library in rendered text-red-500 transform ease center data-markstream-infographic data-markstream-mode hasPreview cursor-not-allowed infographic-preview transition-all duration-100 overflow-auto text-left 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 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=\"unknown-node italic\">\n node type:\n paragraph paragraph-node child.type renderNode ctx 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 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 zoom class=\"admonition-header\"><!><span note admonition-icon admonition-toggle aria-expanded aria-controls collapsed admonition-content aria-labelledby node.type next.maxHeight infographic language boolean 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=\"hr-node 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 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 cannot delete global clearGlobalCustomComponents was provided streamingComponents entry will be used parser-backed [katexWorkerClient] init cache-hit timeout waiting slot target rel infinite node.title link-loading items-baseline gap-1.5 link-text-wrapper leading-[normal] link-text link-loading-indicator noopener noreferrer class=\"math-block overflow-x-auto math-rendering globalThis.requestAnimationFrame globalThis.cancelAnimationFrame $$ math-inline__loading math-inline__spinner 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 sequencediagram classdiagram kind statediagram erdiagram flowchart graph module did expected normalizedType document role aria-describedby thinking indexKey prototype constructor °C viteEnv.MODE development process markstream-octane-d2 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`;
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`;
2
2
  export default safeList;
@@ -18,5 +18,7 @@ export declare function LinkNode(props: NodeComponentProps<{
18
18
  text: string;
19
19
  children?: ParsedNode[];
20
20
  loading?: boolean;
21
+ /** `'linkify'` marks links auto-detected from bare text. */
22
+ markup?: string;
21
23
  }> & LinkNodeStyleProps): import("octane/jsx-runtime").Octane.JSX.Element;
22
24
  export default LinkNode;
@@ -69,6 +69,8 @@ export interface CodeBlockOptions {
69
69
  export interface CodeBlockNodeProps extends CommonCodeBlockProps {
70
70
  node: CodeBlockNode;
71
71
  codeBlockOptions?: CodeBlockOptions;
72
+ /** Overrides browser clipboard writes. Copy feedback and events wait for completion. */
73
+ clipboardWriter?: (text: string) => void | Promise<void>;
72
74
  isDark?: boolean;
73
75
  loading?: boolean;
74
76
  stream?: boolean;
@@ -114,6 +116,8 @@ export interface LinkNodeProps {
114
116
  }[];
115
117
  raw: string;
116
118
  loading?: boolean;
119
+ /** `'linkify'` marks links auto-detected from bare text. */
120
+ markup?: string;
117
121
  };
118
122
  indexKey: number | string;
119
123
  customId?: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "markstream-octane",
3
3
  "type": "module",
4
- "version": "2.0.17",
4
+ "version": "2.0.19",
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.17",
108
- "stream-markdown-parser": "1.2.19"
107
+ "markstream-core": "2.0.19",
108
+ "stream-markdown-parser": "1.2.20"
109
109
  },
110
110
  "devDependencies": {
111
111
  "@octanejs/testing-library": "^0.1.18",