markstream-svelte 0.0.1-beta.1 → 0.0.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +27 -2
  2. package/dist/components/AdmonitionNode.svelte.d.ts +0 -1
  3. package/dist/components/BlockquoteNode.svelte.d.ts +0 -1
  4. package/dist/components/CheckboxNode.svelte.d.ts +0 -1
  5. package/dist/components/CodeBlockNode.svelte.d.ts +0 -1
  6. package/dist/components/D2BlockNode.svelte.d.ts +0 -1
  7. package/dist/components/DefinitionListNode.svelte.d.ts +0 -1
  8. package/dist/components/EmojiNode.svelte.d.ts +0 -1
  9. package/dist/components/EmphasisNode.svelte.d.ts +0 -1
  10. package/dist/components/FallbackComponent.svelte.d.ts +0 -1
  11. package/dist/components/FootnoteAnchorNode.svelte.d.ts +0 -1
  12. package/dist/components/FootnoteNode.svelte.d.ts +0 -1
  13. package/dist/components/FootnoteReferenceNode.svelte.d.ts +0 -1
  14. package/dist/components/HardBreakNode.svelte.d.ts +0 -1
  15. package/dist/components/HeadingNode.svelte.d.ts +0 -1
  16. package/dist/components/HighlightNode.svelte.d.ts +0 -1
  17. package/dist/components/HtmlBlockNode.svelte.d.ts +0 -1
  18. package/dist/components/HtmlInlineNode.svelte.d.ts +0 -1
  19. package/dist/components/HtmlPreviewFrame.svelte.d.ts +0 -1
  20. package/dist/components/ImageNode.svelte.d.ts +0 -1
  21. package/dist/components/InfographicBlockNode.svelte.d.ts +0 -1
  22. package/dist/components/InlineCodeNode.svelte.d.ts +0 -1
  23. package/dist/components/InlineWrapNode.svelte.d.ts +0 -1
  24. package/dist/components/InsertNode.svelte.d.ts +0 -1
  25. package/dist/components/LinkNode.svelte.d.ts +0 -1
  26. package/dist/components/ListItemNode.svelte.d.ts +0 -1
  27. package/dist/components/ListNode.svelte.d.ts +0 -1
  28. package/dist/components/MarkdownCodeBlockNode.svelte.d.ts +0 -1
  29. package/dist/components/MathBlockNode.svelte.d.ts +0 -1
  30. package/dist/components/MathInlineNode.svelte.d.ts +0 -1
  31. package/dist/components/MermaidBlockNode.svelte.d.ts +0 -1
  32. package/dist/components/NodeOutlet.svelte +22 -17
  33. package/dist/components/NodeOutlet.svelte.d.ts +6 -21
  34. package/dist/components/NodeRenderer.svelte +92 -72
  35. package/dist/components/NodeRenderer.svelte.d.ts +7 -61
  36. package/dist/components/ParagraphNode.svelte.d.ts +0 -1
  37. package/dist/components/PreCodeNode.svelte.d.ts +0 -1
  38. package/dist/components/ReferenceNode.svelte.d.ts +0 -1
  39. package/dist/components/RenderChildren.svelte +9 -3
  40. package/dist/components/RenderChildren.svelte.d.ts +6 -21
  41. package/dist/components/StrikethroughNode.svelte.d.ts +0 -1
  42. package/dist/components/StrongNode.svelte.d.ts +0 -1
  43. package/dist/components/SubscriptNode.svelte.d.ts +0 -1
  44. package/dist/components/SuperscriptNode.svelte.d.ts +0 -1
  45. package/dist/components/TableNode.svelte.d.ts +0 -1
  46. package/dist/components/TextNode.svelte.d.ts +0 -1
  47. package/dist/components/ThematicBreakNode.svelte.d.ts +0 -1
  48. package/dist/components/Tooltip.svelte.d.ts +0 -1
  49. package/dist/components/VmrContainerNode.svelte.d.ts +0 -1
  50. package/dist/components/shared/diagram-height.d.ts +0 -1
  51. package/dist/components/shared/node-helpers.d.ts +0 -1
  52. package/dist/components/shared/node-outlet-helpers.d.ts +0 -1
  53. package/dist/components/shared/render-window.d.ts +0 -1
  54. package/dist/components/shared/renderNodeHtml.d.ts +0 -1
  55. package/dist/components/shared/rich-block-helpers.d.ts +0 -1
  56. package/dist/customComponents.d.ts +2 -2
  57. package/dist/enhanceRenderedHtml.d.ts +0 -1
  58. package/dist/hydrateCustomTagContent.d.ts +0 -1
  59. package/dist/i18n/useSafeI18n.d.ts +0 -1
  60. package/dist/index.d.ts +0 -1
  61. package/dist/optional/d2.d.ts +0 -1
  62. package/dist/optional/infographic.d.ts +0 -1
  63. package/dist/optional/katex.d.ts +0 -1
  64. package/dist/optional/mermaid.d.ts +0 -1
  65. package/dist/optional/monaco.d.ts +0 -1
  66. package/dist/parseNestedMarkdownToNodes.d.ts +0 -1
  67. package/dist/renderMarkdownHtml.d.ts +0 -1
  68. package/dist/sanitizeHtmlContent.d.ts +0 -1
  69. package/dist/sanitizeSvg.d.ts +0 -1
  70. package/dist/tailwind-entry.d.ts +0 -1
  71. package/dist/tooltip/singletonTooltip.d.ts +0 -1
  72. package/dist/types/monaco.d.ts +0 -1
  73. package/dist/utils/languageIcon.d.ts +0 -1
  74. package/dist/utils/normalizeKaTeXRenderInput.d.ts +0 -1
  75. package/dist/workers/katexCdnWorker.d.ts +0 -1
  76. package/dist/workers/katexRenderer.worker.d.ts +0 -1
  77. package/dist/workers/katexWorkerClient.d.ts +0 -1
  78. package/dist/workers/mermaidCdnWorker.d.ts +0 -1
  79. package/dist/workers/mermaidParser.worker.d.ts +0 -1
  80. package/dist/workers/mermaidWorkerClient.d.ts +0 -1
  81. package/package.json +2 -2
  82. package/dist/components/AdmonitionNode.svelte.d.ts.map +0 -1
  83. package/dist/components/BlockquoteNode.svelte.d.ts.map +0 -1
  84. package/dist/components/CheckboxNode.svelte.d.ts.map +0 -1
  85. package/dist/components/CodeBlockNode.svelte.d.ts.map +0 -1
  86. package/dist/components/D2BlockNode.svelte.d.ts.map +0 -1
  87. package/dist/components/DefinitionListNode.svelte.d.ts.map +0 -1
  88. package/dist/components/EmojiNode.svelte.d.ts.map +0 -1
  89. package/dist/components/EmphasisNode.svelte.d.ts.map +0 -1
  90. package/dist/components/FallbackComponent.svelte.d.ts.map +0 -1
  91. package/dist/components/FootnoteAnchorNode.svelte.d.ts.map +0 -1
  92. package/dist/components/FootnoteNode.svelte.d.ts.map +0 -1
  93. package/dist/components/FootnoteReferenceNode.svelte.d.ts.map +0 -1
  94. package/dist/components/HardBreakNode.svelte.d.ts.map +0 -1
  95. package/dist/components/HeadingNode.svelte.d.ts.map +0 -1
  96. package/dist/components/HighlightNode.svelte.d.ts.map +0 -1
  97. package/dist/components/HtmlBlockNode.svelte.d.ts.map +0 -1
  98. package/dist/components/HtmlInlineNode.svelte.d.ts.map +0 -1
  99. package/dist/components/HtmlPreviewFrame.svelte.d.ts.map +0 -1
  100. package/dist/components/ImageNode.svelte.d.ts.map +0 -1
  101. package/dist/components/InfographicBlockNode.svelte.d.ts.map +0 -1
  102. package/dist/components/InlineCodeNode.svelte.d.ts.map +0 -1
  103. package/dist/components/InlineWrapNode.svelte.d.ts.map +0 -1
  104. package/dist/components/InsertNode.svelte.d.ts.map +0 -1
  105. package/dist/components/LinkNode.svelte.d.ts.map +0 -1
  106. package/dist/components/ListItemNode.svelte.d.ts.map +0 -1
  107. package/dist/components/ListNode.svelte.d.ts.map +0 -1
  108. package/dist/components/MarkdownCodeBlockNode.svelte.d.ts.map +0 -1
  109. package/dist/components/MathBlockNode.svelte.d.ts.map +0 -1
  110. package/dist/components/MathInlineNode.svelte.d.ts.map +0 -1
  111. package/dist/components/MermaidBlockNode.svelte.d.ts.map +0 -1
  112. package/dist/components/NodeOutlet.svelte.d.ts.map +0 -1
  113. package/dist/components/NodeRenderer.svelte.d.ts.map +0 -1
  114. package/dist/components/ParagraphNode.svelte.d.ts.map +0 -1
  115. package/dist/components/PreCodeNode.svelte.d.ts.map +0 -1
  116. package/dist/components/ReferenceNode.svelte.d.ts.map +0 -1
  117. package/dist/components/RenderChildren.svelte.d.ts.map +0 -1
  118. package/dist/components/StrikethroughNode.svelte.d.ts.map +0 -1
  119. package/dist/components/StrongNode.svelte.d.ts.map +0 -1
  120. package/dist/components/SubscriptNode.svelte.d.ts.map +0 -1
  121. package/dist/components/SuperscriptNode.svelte.d.ts.map +0 -1
  122. package/dist/components/TableNode.svelte.d.ts.map +0 -1
  123. package/dist/components/TextNode.svelte.d.ts.map +0 -1
  124. package/dist/components/ThematicBreakNode.svelte.d.ts.map +0 -1
  125. package/dist/components/Tooltip.svelte.d.ts.map +0 -1
  126. package/dist/components/VmrContainerNode.svelte.d.ts.map +0 -1
  127. package/dist/components/shared/diagram-height.d.ts.map +0 -1
  128. package/dist/components/shared/node-helpers.d.ts.map +0 -1
  129. package/dist/components/shared/node-outlet-helpers.d.ts.map +0 -1
  130. package/dist/components/shared/render-window.d.ts.map +0 -1
  131. package/dist/components/shared/renderNodeHtml.d.ts.map +0 -1
  132. package/dist/components/shared/rich-block-helpers.d.ts.map +0 -1
  133. package/dist/customComponents.d.ts.map +0 -1
  134. package/dist/enhanceRenderedHtml.d.ts.map +0 -1
  135. package/dist/hydrateCustomTagContent.d.ts.map +0 -1
  136. package/dist/i18n/useSafeI18n.d.ts.map +0 -1
  137. package/dist/index.d.ts.map +0 -1
  138. package/dist/optional/d2.d.ts.map +0 -1
  139. package/dist/optional/infographic.d.ts.map +0 -1
  140. package/dist/optional/katex.d.ts.map +0 -1
  141. package/dist/optional/mermaid.d.ts.map +0 -1
  142. package/dist/optional/monaco.d.ts.map +0 -1
  143. package/dist/parseNestedMarkdownToNodes.d.ts.map +0 -1
  144. package/dist/renderMarkdownHtml.d.ts.map +0 -1
  145. package/dist/sanitizeHtmlContent.d.ts.map +0 -1
  146. package/dist/sanitizeSvg.d.ts.map +0 -1
  147. package/dist/tailwind-entry.d.ts.map +0 -1
  148. package/dist/tooltip/singletonTooltip.d.ts.map +0 -1
  149. package/dist/types/monaco.d.ts.map +0 -1
  150. package/dist/utils/languageIcon.d.ts.map +0 -1
  151. package/dist/utils/normalizeKaTeXRenderInput.d.ts.map +0 -1
  152. package/dist/workers/katexCdnWorker.d.ts.map +0 -1
  153. package/dist/workers/katexRenderer.worker.d.ts.map +0 -1
  154. package/dist/workers/katexWorkerClient.d.ts.map +0 -1
  155. package/dist/workers/mermaidCdnWorker.d.ts.map +0 -1
  156. package/dist/workers/mermaidParser.worker.d.ts.map +0 -1
  157. package/dist/workers/mermaidWorkerClient.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # markstream-svelte
2
2
 
3
- Svelte 5 renderer aligned with `markstream-vue`, `markstream-vue2`, and `markstream-react`.
3
+ Svelte 5-only renderer aligned with `markstream-vue`, `markstream-vue2`, and `markstream-react`. Svelte 4 is not supported.
4
4
 
5
5
  ## Install
6
6
 
7
7
  ```bash
8
- pnpm add markstream-svelte svelte
8
+ pnpm add markstream-svelte svelte@^5
9
9
  ```
10
10
 
11
11
  Optional heavy renderers stay as peer dependencies, matching the Vue and React packages:
@@ -52,6 +52,8 @@ flowchart LR
52
52
 
53
53
  ## Custom Components
54
54
 
55
+ Register Svelte 5 components with the scoped registry:
56
+
55
57
  ```svelte
56
58
  <script lang="ts">
57
59
  import MarkdownRender, { setCustomComponents } from 'markstream-svelte'
@@ -70,6 +72,29 @@ flowchart LR
70
72
  />
71
73
  ```
72
74
 
75
+ ```svelte
76
+ <!-- ThinkingNode.svelte -->
77
+ <script lang="ts">
78
+ import MarkdownRender from 'markstream-svelte'
79
+
80
+ let {
81
+ node,
82
+ customId = undefined,
83
+ }: {
84
+ node: any
85
+ customId?: string
86
+ } = $props()
87
+ </script>
88
+
89
+ <section class="thinking-node">
90
+ <MarkdownRender
91
+ content={String(node?.content ?? '')}
92
+ {customId}
93
+ customHtmlTags={['thinking']}
94
+ />
95
+ </section>
96
+ ```
97
+
73
98
  Run the local playground with:
74
99
 
75
100
  ```bash
@@ -20,4 +20,3 @@ declare const AdmonitionNode: $$__sveltets_2_IsomorphicComponent<{
20
20
  }, {}, {}, string>;
21
21
  type AdmonitionNode = InstanceType<typeof AdmonitionNode>;
22
22
  export default AdmonitionNode;
23
- //# sourceMappingURL=AdmonitionNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const BlockquoteNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type BlockquoteNode = InstanceType<typeof BlockquoteNode>;
23
23
  export default BlockquoteNode;
24
- //# sourceMappingURL=BlockquoteNode.svelte.d.ts.map
@@ -19,4 +19,3 @@ declare const CheckboxNode: $$__sveltets_2_IsomorphicComponent<{
19
19
  }, {}, {}, string>;
20
20
  type CheckboxNode = InstanceType<typeof CheckboxNode>;
21
21
  export default CheckboxNode;
22
- //# sourceMappingURL=CheckboxNode.svelte.d.ts.map
@@ -40,4 +40,3 @@ declare const CodeBlockNode: $$__sveltets_2_IsomorphicComponent<{
40
40
  }, {}, {}, string>;
41
41
  type CodeBlockNode = InstanceType<typeof CodeBlockNode>;
42
42
  export default CodeBlockNode;
43
- //# sourceMappingURL=CodeBlockNode.svelte.d.ts.map
@@ -30,4 +30,3 @@ declare const D2BlockNode: $$__sveltets_2_IsomorphicComponent<{
30
30
  }, {}, {}, string>;
31
31
  type D2BlockNode = InstanceType<typeof D2BlockNode>;
32
32
  export default D2BlockNode;
33
- //# sourceMappingURL=D2BlockNode.svelte.d.ts.map
@@ -20,4 +20,3 @@ declare const DefinitionListNode: $$__sveltets_2_IsomorphicComponent<{
20
20
  }, {}, {}, string>;
21
21
  type DefinitionListNode = InstanceType<typeof DefinitionListNode>;
22
22
  export default DefinitionListNode;
23
- //# sourceMappingURL=DefinitionListNode.svelte.d.ts.map
@@ -19,4 +19,3 @@ declare const EmojiNode: $$__sveltets_2_IsomorphicComponent<{
19
19
  }, {}, {}, string>;
20
20
  type EmojiNode = InstanceType<typeof EmojiNode>;
21
21
  export default EmojiNode;
22
- //# sourceMappingURL=EmojiNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const EmphasisNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type EmphasisNode = InstanceType<typeof EmphasisNode>;
23
23
  export default EmphasisNode;
24
- //# sourceMappingURL=EmphasisNode.svelte.d.ts.map
@@ -20,4 +20,3 @@ declare const FallbackComponent: $$__sveltets_2_IsomorphicComponent<{
20
20
  }, {}, {}, string>;
21
21
  type FallbackComponent = InstanceType<typeof FallbackComponent>;
22
22
  export default FallbackComponent;
23
- //# sourceMappingURL=FallbackComponent.svelte.d.ts.map
@@ -19,4 +19,3 @@ declare const FootnoteAnchorNode: $$__sveltets_2_IsomorphicComponent<{
19
19
  }, {}, {}, string>;
20
20
  type FootnoteAnchorNode = InstanceType<typeof FootnoteAnchorNode>;
21
21
  export default FootnoteAnchorNode;
22
- //# sourceMappingURL=FootnoteAnchorNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const FootnoteNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type FootnoteNode = InstanceType<typeof FootnoteNode>;
23
23
  export default FootnoteNode;
24
- //# sourceMappingURL=FootnoteNode.svelte.d.ts.map
@@ -19,4 +19,3 @@ declare const FootnoteReferenceNode: $$__sveltets_2_IsomorphicComponent<{
19
19
  }, {}, {}, string>;
20
20
  type FootnoteReferenceNode = InstanceType<typeof FootnoteReferenceNode>;
21
21
  export default FootnoteReferenceNode;
22
- //# sourceMappingURL=FootnoteReferenceNode.svelte.d.ts.map
@@ -24,4 +24,3 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
24
24
  };
25
25
  z_$$bindings?: Bindings;
26
26
  }
27
- //# sourceMappingURL=HardBreakNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const HeadingNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type HeadingNode = InstanceType<typeof HeadingNode>;
23
23
  export default HeadingNode;
24
- //# sourceMappingURL=HeadingNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const HighlightNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type HighlightNode = InstanceType<typeof HighlightNode>;
23
23
  export default HighlightNode;
24
- //# sourceMappingURL=HighlightNode.svelte.d.ts.map
@@ -20,4 +20,3 @@ declare const HtmlBlockNode: $$__sveltets_2_IsomorphicComponent<{
20
20
  }, {}, {}, string>;
21
21
  type HtmlBlockNode = InstanceType<typeof HtmlBlockNode>;
22
22
  export default HtmlBlockNode;
23
- //# sourceMappingURL=HtmlBlockNode.svelte.d.ts.map
@@ -20,4 +20,3 @@ declare const HtmlInlineNode: $$__sveltets_2_IsomorphicComponent<{
20
20
  }, {}, {}, string>;
21
21
  type HtmlInlineNode = InstanceType<typeof HtmlInlineNode>;
22
22
  export default HtmlInlineNode;
23
- //# sourceMappingURL=HtmlInlineNode.svelte.d.ts.map
@@ -23,4 +23,3 @@ declare const HtmlPreviewFrame: $$__sveltets_2_IsomorphicComponent<{
23
23
  }, {}, {}, string>;
24
24
  type HtmlPreviewFrame = InstanceType<typeof HtmlPreviewFrame>;
25
25
  export default HtmlPreviewFrame;
26
- //# sourceMappingURL=HtmlPreviewFrame.svelte.d.ts.map
@@ -22,4 +22,3 @@ declare const ImageNode: $$__sveltets_2_IsomorphicComponent<{
22
22
  }, {}, {}, string>;
23
23
  type ImageNode = InstanceType<typeof ImageNode>;
24
24
  export default ImageNode;
25
- //# sourceMappingURL=ImageNode.svelte.d.ts.map
@@ -31,4 +31,3 @@ declare const InfographicBlockNode: $$__sveltets_2_IsomorphicComponent<{
31
31
  }, {}, {}, string>;
32
32
  type InfographicBlockNode = InstanceType<typeof InfographicBlockNode>;
33
33
  export default InfographicBlockNode;
34
- //# sourceMappingURL=InfographicBlockNode.svelte.d.ts.map
@@ -19,4 +19,3 @@ declare const InlineCodeNode: $$__sveltets_2_IsomorphicComponent<{
19
19
  }, {}, {}, string>;
20
20
  type InlineCodeNode = InstanceType<typeof InlineCodeNode>;
21
21
  export default InlineCodeNode;
22
- //# sourceMappingURL=InlineCodeNode.svelte.d.ts.map
@@ -22,4 +22,3 @@ declare const InlineWrapNode: $$__sveltets_2_IsomorphicComponent<{
22
22
  }, {}, {}, string>;
23
23
  type InlineWrapNode = InstanceType<typeof InlineWrapNode>;
24
24
  export default InlineWrapNode;
25
- //# sourceMappingURL=InlineWrapNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const InsertNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type InsertNode = InstanceType<typeof InsertNode>;
23
23
  export default InsertNode;
24
- //# sourceMappingURL=InsertNode.svelte.d.ts.map
@@ -22,4 +22,3 @@ declare const LinkNode: $$__sveltets_2_IsomorphicComponent<{
22
22
  }, {}, {}, string>;
23
23
  type LinkNode = InstanceType<typeof LinkNode>;
24
24
  export default LinkNode;
25
- //# sourceMappingURL=LinkNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const ListItemNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type ListItemNode = InstanceType<typeof ListItemNode>;
23
23
  export default ListItemNode;
24
- //# sourceMappingURL=ListItemNode.svelte.d.ts.map
@@ -21,4 +21,3 @@ declare const ListNode: $$__sveltets_2_IsomorphicComponent<{
21
21
  }, {}, {}, string>;
22
22
  type ListNode = InstanceType<typeof ListNode>;
23
23
  export default ListNode;
24
- //# sourceMappingURL=ListNode.svelte.d.ts.map
@@ -20,4 +20,3 @@ declare const MarkdownCodeBlockNode: $$__sveltets_2_IsomorphicComponent<{
20
20
  }, {}, {}, string>;
21
21
  type MarkdownCodeBlockNode = InstanceType<typeof MarkdownCodeBlockNode>;
22
22
  export default MarkdownCodeBlockNode;
23
- //# sourceMappingURL=MarkdownCodeBlockNode.svelte.d.ts.map
@@ -19,4 +19,3 @@ declare const MathBlockNode: $$__sveltets_2_IsomorphicComponent<{
19
19
  }, {}, {}, string>;
20
20
  type MathBlockNode = InstanceType<typeof MathBlockNode>;
21
21
  export default MathBlockNode;
22
- //# sourceMappingURL=MathBlockNode.svelte.d.ts.map
@@ -19,4 +19,3 @@ declare const MathInlineNode: $$__sveltets_2_IsomorphicComponent<{
19
19
  }, {}, {}, string>;
20
20
  type MathInlineNode = InstanceType<typeof MathInlineNode>;
21
21
  export default MathInlineNode;
22
- //# sourceMappingURL=MathInlineNode.svelte.d.ts.map
@@ -37,4 +37,3 @@ declare const MermaidBlockNode: $$__sveltets_2_IsomorphicComponent<{
37
37
  }, {}, {}, string>;
38
38
  type MermaidBlockNode = InstanceType<typeof MermaidBlockNode>;
39
39
  export default MermaidBlockNode;
40
- //# sourceMappingURL=MermaidBlockNode.svelte.d.ts.map
@@ -50,25 +50,31 @@
50
50
  resolveNodeOutletCustomInputs,
51
51
  } from './shared/node-outlet-helpers'
52
52
 
53
- export let node: SvelteRenderableNode
54
- export let context: SvelteRenderContext | undefined = undefined
55
- export let indexKey: string | number | undefined = undefined
53
+ let {
54
+ node,
55
+ context = undefined,
56
+ indexKey = undefined,
57
+ }: {
58
+ node: SvelteRenderableNode
59
+ context?: SvelteRenderContext
60
+ indexKey?: string | number
61
+ } = $props()
56
62
 
57
- $: resolvedType = String((node as any)?.type || '')
58
- $: customComponentMap = context?.customComponents || getCustomNodeComponents(context?.customId)
59
- $: CustomComponent = resolveNodeOutletCustomComponent(node, context, customComponentMap)
60
- $: customNode = coerceCustomHtmlNode(node)
61
- $: customInputs = resolveNodeOutletCustomInputs(node, context) || {}
62
- $: codeMode = resolveNodeOutletCodeMode(node, context)
63
- $: htmlTag = resolveHtmlTag(node)
64
- $: shouldEscapeHtmlTag = resolveShouldEscapeHtmlTag()
65
- $: htmlRenderNode = coerceBuiltinHtmlNode(node, resolvedType)
66
- $: codeBlockInstanceKey = `${String(indexKey ?? 'code-block')}:${String((node as any)?.language ?? '')}:${(node as any)?.diff ? 'diff' : 'code'}`
67
- $: escapedTextNode = {
63
+ let resolvedType = $derived(String((node as any)?.type || ''))
64
+ let customComponentMap = $derived(context?.customComponents || getCustomNodeComponents(context?.customId))
65
+ let CustomComponent = $derived(resolveNodeOutletCustomComponent(node, context, customComponentMap))
66
+ let customNode = $derived(coerceCustomHtmlNode(node))
67
+ let customInputs = $derived(resolveNodeOutletCustomInputs(node, context) || {})
68
+ let codeMode = $derived(resolveNodeOutletCodeMode(node, context))
69
+ let htmlTag = $derived(resolveHtmlTag(node))
70
+ let shouldEscapeHtmlTag = $derived(resolveShouldEscapeHtmlTag())
71
+ let htmlRenderNode = $derived(coerceBuiltinHtmlNode(node, resolvedType))
72
+ let codeBlockInstanceKey = $derived(`${String(indexKey ?? 'code-block')}:${String((node as any)?.language ?? '')}:${(node as any)?.diff ? 'diff' : 'code'}`)
73
+ let escapedTextNode = $derived({
68
74
  type: 'text',
69
75
  content: String((node as any)?.content ?? (node as any)?.raw ?? ''),
70
76
  raw: String((node as any)?.content ?? (node as any)?.raw ?? ''),
71
- } as SvelteRenderableNode
77
+ } as SvelteRenderableNode)
72
78
 
73
79
  function resolveShouldEscapeHtmlTag() {
74
80
  if (resolvedType !== 'html_block' && resolvedType !== 'html_inline')
@@ -88,8 +94,7 @@
88
94
  </script>
89
95
 
90
96
  {#if CustomComponent}
91
- <svelte:component
92
- this={CustomComponent}
97
+ <CustomComponent
93
98
  node={customNode}
94
99
  context={context}
95
100
  ctx={context}
@@ -1,24 +1,9 @@
1
1
  import type { SvelteRenderableNode, SvelteRenderContext } from './shared/node-helpers';
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const NodeOutlet: $$__sveltets_2_IsomorphicComponent<{
2
+ type $$ComponentProps = {
16
3
  node: SvelteRenderableNode;
17
- context?: SvelteRenderContext | undefined;
18
- indexKey?: string | number | undefined;
19
- }, {
20
- [evt: string]: CustomEvent<any>;
21
- }, {}, {}, string>;
22
- type NodeOutlet = InstanceType<typeof NodeOutlet>;
4
+ context?: SvelteRenderContext;
5
+ indexKey?: string | number;
6
+ };
7
+ declare const NodeOutlet: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type NodeOutlet = ReturnType<typeof NodeOutlet>;
23
9
  export default NodeOutlet;
24
- //# sourceMappingURL=NodeOutlet.svelte.d.ts.map
@@ -5,73 +5,80 @@
5
5
  SvelteRenderableNode,
6
6
  SvelteRenderContext,
7
7
  } from './shared/node-helpers'
8
- import { afterUpdate, onDestroy, onMount, tick } from 'svelte'
8
+ import { onDestroy, onMount, tick } from 'svelte'
9
9
  import { getCustomNodeComponents, subscribeCustomComponents } from '../customComponents'
10
10
  import { disposeRenderedHtmlEnhancements, enhanceRenderedHtml } from '../enhanceRenderedHtml'
11
11
  import NodeOutlet from './NodeOutlet.svelte'
12
12
  import { buildRenderContext, resolveParsedNodes } from './shared/node-helpers'
13
13
 
14
- export let content: NodeRendererProps['content'] = ''
15
- export let nodes: NodeRendererProps['nodes'] = null
16
- export let final: NodeRendererProps['final'] = undefined
17
- export let parseOptions: NodeRendererProps['parseOptions'] = undefined
18
- export let customMarkdownIt: NodeRendererProps['customMarkdownIt'] = undefined
19
- export let debugPerformance = false
20
- export let customHtmlTags: NodeRendererProps['customHtmlTags'] = undefined
21
- export let htmlPolicy: NodeRendererProps['htmlPolicy'] = 'safe'
22
- export let viewportPriority: NodeRendererProps['viewportPriority'] = true
23
- export let codeBlockStream = true
24
- export let codeBlockDarkTheme: NodeRendererProps['codeBlockDarkTheme'] = undefined
25
- export let codeBlockLightTheme: NodeRendererProps['codeBlockLightTheme'] = undefined
26
- export let codeBlockMonacoOptions: NodeRendererProps['codeBlockMonacoOptions'] = undefined
27
- export let renderCodeBlocksAsPre = false
28
- export let codeBlockMinWidth: NodeRendererProps['codeBlockMinWidth'] = undefined
29
- export let codeBlockMaxWidth: NodeRendererProps['codeBlockMaxWidth'] = undefined
30
- export let codeBlockProps: NodeRendererProps['codeBlockProps'] = undefined
31
- export let mermaidProps: NodeRendererProps['mermaidProps'] = undefined
32
- export let d2Props: NodeRendererProps['d2Props'] = undefined
33
- export let infographicProps: NodeRendererProps['infographicProps'] = undefined
34
- export let customComponents: NodeRendererProps['customComponents'] = undefined
35
- export let showTooltips = true
36
- export let themes: NodeRendererProps['themes'] = undefined
37
- export let isDark = false
38
- export let customId: NodeRendererProps['customId'] = undefined
39
- export let indexKey: NodeRendererProps['indexKey'] = undefined
40
- export let typewriter = true
41
- export let batchRendering = true
42
- export let initialRenderBatchSize = 40
43
- export let renderBatchSize = 80
44
- export let renderBatchDelay = 16
45
- export let renderBatchBudgetMs = 6
46
- export let renderBatchIdleTimeoutMs = 120
47
- export let deferNodesUntilVisible = true
48
- export let maxLiveNodes = 320
49
- export let liveNodeBuffer = 60
50
- export let allowHtml = true
51
- export let className = ''
52
- export let onCopy: NodeRendererEvents['onCopy'] = undefined
53
- export let onHandleArtifactClick: NodeRendererEvents['onHandleArtifactClick'] = undefined
54
- export let onClick: ((event: MouseEvent) => void) | undefined = undefined
55
- export let onMouseover: ((event: MouseEvent) => void) | undefined = undefined
56
- export let onMouseout: ((event: MouseEvent) => void) | undefined = undefined
14
+ type NodeRendererComponentProps = NodeRendererProps & NodeRendererEvents & {
15
+ className?: string
16
+ onClick?: (event: MouseEvent) => void
17
+ onMouseover?: (event: MouseEvent) => void
18
+ onMouseout?: (event: MouseEvent) => void
19
+ }
20
+
21
+ let {
22
+ content = '',
23
+ nodes = null,
24
+ final = undefined,
25
+ parseOptions = undefined,
26
+ customMarkdownIt = undefined,
27
+ debugPerformance = false,
28
+ customHtmlTags = undefined,
29
+ htmlPolicy = 'safe',
30
+ viewportPriority = true,
31
+ codeBlockStream = true,
32
+ codeBlockDarkTheme = undefined,
33
+ codeBlockLightTheme = undefined,
34
+ codeBlockMonacoOptions = undefined,
35
+ renderCodeBlocksAsPre = false,
36
+ codeBlockMinWidth = undefined,
37
+ codeBlockMaxWidth = undefined,
38
+ codeBlockProps = undefined,
39
+ mermaidProps = undefined,
40
+ d2Props = undefined,
41
+ infographicProps = undefined,
42
+ customComponents = undefined,
43
+ showTooltips = true,
44
+ themes = undefined,
45
+ isDark = false,
46
+ customId = undefined,
47
+ indexKey = undefined,
48
+ typewriter = true,
49
+ batchRendering = true,
50
+ initialRenderBatchSize = 40,
51
+ renderBatchSize = 80,
52
+ renderBatchDelay = 16,
53
+ renderBatchBudgetMs = 6,
54
+ renderBatchIdleTimeoutMs = 120,
55
+ deferNodesUntilVisible = true,
56
+ maxLiveNodes = 320,
57
+ liveNodeBuffer = 60,
58
+ allowHtml = true,
59
+ className = '',
60
+ onCopy = undefined,
61
+ onHandleArtifactClick = undefined,
62
+ onClick = undefined,
63
+ onMouseover = undefined,
64
+ onMouseout = undefined,
65
+ }: NodeRendererComponentProps = $props()
57
66
 
58
- let rootEl: HTMLDivElement | null = null
59
- let parsedNodes: SvelteRenderableNode[] = []
60
- let renderContext: SvelteRenderContext = { events: {} }
61
- let customComponentsRevision = 0
62
- let streamRenderVersion = 0
63
- let previousContent: typeof content = undefined
64
- let previousNodes: typeof nodes = undefined
67
+ let rootEl: HTMLDivElement | null = $state(null)
68
+ let customComponentsRevision = $state(0)
69
+ let streamRenderVersion = $state(0)
70
+ let previousContent = $state<NodeRendererProps['content']>()
71
+ let previousNodes = $state<NodeRendererProps['nodes']>()
65
72
  let enhancementToken = 0
66
73
  let enhancementHandle: { dispose: () => void } | null = null
67
- let renderedNodeCount = 0
74
+ let renderedNodeCount = $state(0)
68
75
  let renderBatchTimer: ReturnType<typeof setTimeout> | null = null
69
76
  let renderBatchFrame: number | null = null
70
77
  let renderBatchIdle: number | null = null
71
78
  let renderBatchToken = 0
72
79
  const textStreamState = new Map<string, string>()
73
80
 
74
- $: props = {
81
+ let rendererProps = $derived({
75
82
  content,
76
83
  nodes,
77
84
  final,
@@ -109,37 +116,38 @@
109
116
  maxLiveNodes,
110
117
  liveNodeBuffer,
111
118
  allowHtml,
112
- } satisfies NodeRendererProps
119
+ } satisfies NodeRendererProps)
113
120
 
114
- $: {
121
+ $effect.pre(() => {
115
122
  if (previousContent !== content || previousNodes !== nodes) {
116
123
  streamRenderVersion += 1
117
124
  previousContent = content
118
125
  previousNodes = nodes
119
126
  }
120
- }
127
+ })
121
128
 
122
- $: {
129
+ let parsedNodes = $derived.by<SvelteRenderableNode[]>(() => {
123
130
  const start = debugPerformance && typeof performance !== 'undefined' ? performance.now() : 0
124
- parsedNodes = resolveParsedNodes(props)
131
+ const nextParsedNodes = resolveParsedNodes(rendererProps)
125
132
  if (debugPerformance && typeof console !== 'undefined' && typeof performance !== 'undefined') {
126
133
  console.info('[markstream-svelte][perf] parse(sync)', {
127
134
  ms: Math.round(performance.now() - start),
128
- nodes: parsedNodes.length,
135
+ nodes: nextParsedNodes.length,
129
136
  contentLength: content?.length ?? 0,
130
137
  })
131
138
  }
132
- }
139
+ return nextParsedNodes
140
+ })
133
141
 
134
- $: {
142
+ let renderContext = $derived.by<SvelteRenderContext>(() => {
135
143
  void customComponentsRevision
136
144
  const scopedCustomComponents = getCustomNodeComponents(customId)
137
145
  const mergedCustomComponents = customComponents
138
146
  ? { ...scopedCustomComponents, ...customComponents }
139
147
  : scopedCustomComponents
140
- renderContext = buildRenderContext(
148
+ return buildRenderContext(
141
149
  {
142
- ...props,
150
+ ...rendererProps,
143
151
  customComponents: mergedCustomComponents,
144
152
  },
145
153
  {
@@ -149,9 +157,9 @@
149
157
  textStreamState,
150
158
  streamRenderVersion,
151
159
  )
152
- }
160
+ })
153
161
 
154
- $: {
162
+ $effect(() => {
155
163
  void parsedNodes.length
156
164
  void batchRendering
157
165
  void initialRenderBatchSize
@@ -162,21 +170,33 @@
162
170
  void final
163
171
  void renderedNodeCount
164
172
  syncRenderedNodeWindow()
165
- }
166
- $: renderedNodes = parsedNodes.slice(0, Math.min(renderedNodeCount, parsedNodes.length))
173
+ })
174
+ let renderedNodes = $derived(parsedNodes.slice(0, Math.min(renderedNodeCount, parsedNodes.length)))
175
+
176
+ $effect(() => {
177
+ void rootEl
178
+ void final
179
+ void parsedNodes
180
+ void renderedNodes
181
+ void isDark
182
+ void renderCodeBlocksAsPre
183
+ void codeBlockMonacoOptions
184
+ void codeBlockProps
185
+ void mermaidProps
186
+ void d2Props
187
+ void infographicProps
188
+ void showTooltips
189
+ void onCopy
190
+ scheduleEnhancement()
191
+ })
167
192
 
168
193
  onMount(() => {
169
194
  const unsubscribe = subscribeCustomComponents(() => {
170
195
  customComponentsRevision += 1
171
196
  })
172
- scheduleEnhancement()
173
197
  return unsubscribe
174
198
  })
175
199
 
176
- afterUpdate(() => {
177
- scheduleEnhancement()
178
- })
179
-
180
200
  onDestroy(() => {
181
201
  enhancementToken += 1
182
202
  cancelRenderBatch()
@@ -1,64 +1,10 @@
1
1
  import type { NodeRendererEvents, NodeRendererProps } from './shared/node-helpers';
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const NodeRenderer: $$__sveltets_2_IsomorphicComponent<{
16
- content?: NodeRendererProps["content"];
17
- nodes?: NodeRendererProps["nodes"];
18
- final?: NodeRendererProps["final"];
19
- parseOptions?: NodeRendererProps["parseOptions"];
20
- customMarkdownIt?: NodeRendererProps["customMarkdownIt"];
21
- debugPerformance?: boolean;
22
- customHtmlTags?: NodeRendererProps["customHtmlTags"];
23
- htmlPolicy?: NodeRendererProps["htmlPolicy"];
24
- viewportPriority?: NodeRendererProps["viewportPriority"];
25
- codeBlockStream?: boolean;
26
- codeBlockDarkTheme?: NodeRendererProps["codeBlockDarkTheme"];
27
- codeBlockLightTheme?: NodeRendererProps["codeBlockLightTheme"];
28
- codeBlockMonacoOptions?: NodeRendererProps["codeBlockMonacoOptions"];
29
- renderCodeBlocksAsPre?: boolean;
30
- codeBlockMinWidth?: NodeRendererProps["codeBlockMinWidth"];
31
- codeBlockMaxWidth?: NodeRendererProps["codeBlockMaxWidth"];
32
- codeBlockProps?: NodeRendererProps["codeBlockProps"];
33
- mermaidProps?: NodeRendererProps["mermaidProps"];
34
- d2Props?: NodeRendererProps["d2Props"];
35
- infographicProps?: NodeRendererProps["infographicProps"];
36
- customComponents?: NodeRendererProps["customComponents"];
37
- showTooltips?: boolean;
38
- themes?: NodeRendererProps["themes"];
39
- isDark?: boolean;
40
- customId?: NodeRendererProps["customId"];
41
- indexKey?: NodeRendererProps["indexKey"];
42
- typewriter?: boolean;
43
- batchRendering?: boolean;
44
- initialRenderBatchSize?: number;
45
- renderBatchSize?: number;
46
- renderBatchDelay?: number;
47
- renderBatchBudgetMs?: number;
48
- renderBatchIdleTimeoutMs?: number;
49
- deferNodesUntilVisible?: boolean;
50
- maxLiveNodes?: number;
51
- liveNodeBuffer?: number;
52
- allowHtml?: boolean;
2
+ type NodeRendererComponentProps = NodeRendererProps & NodeRendererEvents & {
53
3
  className?: string;
54
- onCopy?: NodeRendererEvents["onCopy"];
55
- onHandleArtifactClick?: NodeRendererEvents["onHandleArtifactClick"];
56
- onClick?: ((event: MouseEvent) => void) | undefined;
57
- onMouseover?: ((event: MouseEvent) => void) | undefined;
58
- onMouseout?: ((event: MouseEvent) => void) | undefined;
59
- }, {
60
- [evt: string]: CustomEvent<any>;
61
- }, {}, {}, string>;
62
- type NodeRenderer = InstanceType<typeof NodeRenderer>;
4
+ onClick?: (event: MouseEvent) => void;
5
+ onMouseover?: (event: MouseEvent) => void;
6
+ onMouseout?: (event: MouseEvent) => void;
7
+ };
8
+ declare const NodeRenderer: import("svelte").Component<NodeRendererComponentProps, {}, "">;
9
+ type NodeRenderer = ReturnType<typeof NodeRenderer>;
63
10
  export default NodeRenderer;
64
- //# sourceMappingURL=NodeRenderer.svelte.d.ts.map