markstream-angular 0.0.2-beta.1 → 0.0.2-beta.11

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 (90) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.js +2623 -2184
  3. package/dist/types/index.d.ts +6 -73
  4. package/dist/types/{components → markstream-angular/src/components}/CodeBlockNode/CodeBlockNode.component.d.ts +57 -4
  5. package/dist/types/{components → markstream-angular/src/components}/CodeBlockNode/HtmlPreviewFrame.component.d.ts +3 -0
  6. package/dist/types/{components → markstream-angular/src/components}/D2BlockNode/D2BlockNode.component.d.ts +8 -0
  7. package/dist/types/{components → markstream-angular/src/components}/FootnoteReferenceNode/FootnoteReferenceNode.component.d.ts +1 -0
  8. package/dist/types/{components → markstream-angular/src/components}/InfographicBlockNode/InfographicBlockNode.component.d.ts +12 -0
  9. package/dist/types/{components → markstream-angular/src/components}/InlineCodeNode/InlineCodeNode.component.d.ts +2 -0
  10. package/dist/types/{components → markstream-angular/src/components}/MermaidBlockNode/MermaidBlockNode.component.d.ts +17 -0
  11. package/dist/types/{components → markstream-angular/src/components}/NestedRenderer/NestedRenderer.component.d.ts +1 -1
  12. package/dist/types/{components → markstream-angular/src/components}/NodeOutlet/NodeOutlet.component.d.ts +5 -3
  13. package/dist/types/{components → markstream-angular/src/components}/NodeRenderer/NodeRenderer.component.d.ts +48 -9
  14. package/dist/types/markstream-angular/src/components/TableNode/TableNode.component.d.ts +29 -0
  15. package/dist/types/{components → markstream-angular/src/components}/TextNode/TextNode.component.d.ts +2 -0
  16. package/dist/types/markstream-angular/src/components/TextNode/streamingTextState.d.ts +2 -0
  17. package/dist/types/markstream-angular/src/components/shared/diagram-height.d.ts +9 -0
  18. package/dist/types/{components → markstream-angular/src/components}/shared/node-helpers.d.ts +84 -13
  19. package/dist/types/{components → markstream-angular/src/components}/shared/node-outlet-helpers.d.ts +4 -1
  20. package/dist/types/markstream-angular/src/components/shared/smooth-streaming-scope.d.ts +5 -0
  21. package/dist/types/{customComponents.d.ts → markstream-angular/src/customComponents.d.ts} +1 -1
  22. package/dist/types/{enhanceRenderedHtml.d.ts → markstream-angular/src/enhanceRenderedHtml.d.ts} +7 -5
  23. package/dist/types/{hydrateCustomTagContent.d.ts → markstream-angular/src/hydrateCustomTagContent.d.ts} +1 -1
  24. package/dist/types/markstream-angular/src/index.d.ts +77 -0
  25. package/dist/types/markstream-angular/src/optional/d2.d.ts +17 -0
  26. package/dist/types/markstream-angular/src/optional/infographic.d.ts +13 -0
  27. package/dist/types/markstream-angular/src/optional/katex.d.ts +9 -0
  28. package/dist/types/markstream-angular/src/optional/mermaid.d.ts +27 -0
  29. package/dist/types/markstream-angular/src/optional/monaco.d.ts +18 -0
  30. package/dist/types/{parseNestedMarkdownToNodes.d.ts → markstream-angular/src/parseNestedMarkdownToNodes.d.ts} +7 -2
  31. package/dist/types/{renderMarkdownHtml.d.ts → markstream-angular/src/renderMarkdownHtml.d.ts} +3 -1
  32. package/dist/types/markstream-angular/src/sanitizeHtmlContent.d.ts +2 -0
  33. package/dist/types/markstream-angular/src/services/smooth-markdown-stream.service.d.ts +33 -0
  34. package/dist/types/{types → markstream-angular/src/types}/monaco.d.ts +3 -3
  35. package/dist/workers/mermaidParser.worker.js +8 -8
  36. package/package.json +7 -5
  37. package/dist/types/components/TableNode/TableNode.component.d.ts +0 -14
  38. package/dist/types/components/TextNode/streamingTextState.d.ts +0 -11
  39. package/dist/types/optional/d2.d.ts +0 -6
  40. package/dist/types/optional/infographic.d.ts +0 -1
  41. package/dist/types/optional/katex.d.ts +0 -6
  42. package/dist/types/optional/mermaid.d.ts +0 -6
  43. package/dist/types/optional/monaco.d.ts +0 -1
  44. package/dist/types/sanitizeHtmlContent.d.ts +0 -1
  45. /package/dist/types/{components → markstream-angular/src/components}/AdmonitionNode/AdmonitionNode.component.d.ts +0 -0
  46. /package/dist/types/{components → markstream-angular/src/components}/BlockquoteNode/BlockquoteNode.component.d.ts +0 -0
  47. /package/dist/types/{components → markstream-angular/src/components}/CheckboxNode/CheckboxNode.component.d.ts +0 -0
  48. /package/dist/types/{components → markstream-angular/src/components}/DefinitionListNode/DefinitionListNode.component.d.ts +0 -0
  49. /package/dist/types/{components → markstream-angular/src/components}/DynamicNodeHost/DynamicNodeHost.component.d.ts +0 -0
  50. /package/dist/types/{components → markstream-angular/src/components}/EmojiNode/EmojiNode.component.d.ts +0 -0
  51. /package/dist/types/{components → markstream-angular/src/components}/EmphasisNode/EmphasisNode.component.d.ts +0 -0
  52. /package/dist/types/{components → markstream-angular/src/components}/FallbackComponent/FallbackComponent.component.d.ts +0 -0
  53. /package/dist/types/{components → markstream-angular/src/components}/FootnoteAnchorNode/FootnoteAnchorNode.component.d.ts +0 -0
  54. /package/dist/types/{components → markstream-angular/src/components}/FootnoteNode/FootnoteNode.component.d.ts +0 -0
  55. /package/dist/types/{components → markstream-angular/src/components}/HardBreakNode/HardBreakNode.component.d.ts +0 -0
  56. /package/dist/types/{components → markstream-angular/src/components}/HeadingNode/HeadingNode.component.d.ts +0 -0
  57. /package/dist/types/{components → markstream-angular/src/components}/HighlightNode/HighlightNode.component.d.ts +0 -0
  58. /package/dist/types/{components → markstream-angular/src/components}/HtmlBlockNode/HtmlBlockNode.component.d.ts +0 -0
  59. /package/dist/types/{components → markstream-angular/src/components}/HtmlInlineNode/HtmlInlineNode.component.d.ts +0 -0
  60. /package/dist/types/{components → markstream-angular/src/components}/ImageNode/ImageNode.component.d.ts +0 -0
  61. /package/dist/types/{components → markstream-angular/src/components}/InsertNode/InsertNode.component.d.ts +0 -0
  62. /package/dist/types/{components → markstream-angular/src/components}/LinkNode/LinkNode.component.d.ts +0 -0
  63. /package/dist/types/{components → markstream-angular/src/components}/ListItemNode/ListItemNode.component.d.ts +0 -0
  64. /package/dist/types/{components → markstream-angular/src/components}/ListNode/ListNode.component.d.ts +0 -0
  65. /package/dist/types/{components → markstream-angular/src/components}/MathBlockNode/MathBlockNode.component.d.ts +0 -0
  66. /package/dist/types/{components → markstream-angular/src/components}/MathInlineNode/MathInlineNode.component.d.ts +0 -0
  67. /package/dist/types/{components → markstream-angular/src/components}/ParagraphNode/ParagraphNode.component.d.ts +0 -0
  68. /package/dist/types/{components → markstream-angular/src/components}/PreCodeNode/PreCodeNode.component.d.ts +0 -0
  69. /package/dist/types/{components → markstream-angular/src/components}/ReferenceNode/ReferenceNode.component.d.ts +0 -0
  70. /package/dist/types/{components → markstream-angular/src/components}/StrikethroughNode/StrikethroughNode.component.d.ts +0 -0
  71. /package/dist/types/{components → markstream-angular/src/components}/StrongNode/StrongNode.component.d.ts +0 -0
  72. /package/dist/types/{components → markstream-angular/src/components}/SubscriptNode/SubscriptNode.component.d.ts +0 -0
  73. /package/dist/types/{components → markstream-angular/src/components}/SuperscriptNode/SuperscriptNode.component.d.ts +0 -0
  74. /package/dist/types/{components → markstream-angular/src/components}/ThematicBreakNode/ThematicBreakNode.component.d.ts +0 -0
  75. /package/dist/types/{components → markstream-angular/src/components}/VmrContainerNode/VmrContainerNode.component.d.ts +0 -0
  76. /package/dist/types/{components → markstream-angular/src/components}/shared/render-window.d.ts +0 -0
  77. /package/dist/types/{components → markstream-angular/src/components}/shared/rich-block-helpers.d.ts +0 -0
  78. /package/dist/types/{components → markstream-angular/src/components}/shared/safe-attrs.directive.d.ts +0 -0
  79. /package/dist/types/{i18n → markstream-angular/src/i18n}/useSafeI18n.d.ts +0 -0
  80. /package/dist/types/{markstream-angular.component.d.ts → markstream-angular/src/markstream-angular.component.d.ts} +0 -0
  81. /package/dist/types/{sanitizeSvg.d.ts → markstream-angular/src/sanitizeSvg.d.ts} +0 -0
  82. /package/dist/types/{tooltip → markstream-angular/src/tooltip}/singletonTooltip.d.ts +0 -0
  83. /package/dist/types/{utils → markstream-angular/src/utils}/languageIcon.d.ts +0 -0
  84. /package/dist/types/{utils → markstream-angular/src/utils}/normalizeKaTeXRenderInput.d.ts +0 -0
  85. /package/dist/types/{workers → markstream-angular/src/workers}/katexCdnWorker.d.ts +0 -0
  86. /package/dist/types/{workers → markstream-angular/src/workers}/katexRenderer.worker.d.ts +0 -0
  87. /package/dist/types/{workers → markstream-angular/src/workers}/katexWorkerClient.d.ts +0 -0
  88. /package/dist/types/{workers → markstream-angular/src/workers}/mermaidCdnWorker.d.ts +0 -0
  89. /package/dist/types/{workers → markstream-angular/src/workers}/mermaidParser.worker.d.ts +0 -0
  90. /package/dist/types/{workers → markstream-angular/src/workers}/mermaidWorkerClient.d.ts +0 -0
@@ -1,15 +1,17 @@
1
+ import { NodeRendererCodeBlockProps, NodeRendererD2Props, NodeRendererInfographicProps, NodeRendererMermaidProps } from './components/shared/node-helpers';
2
+ import { CodeBlockMonacoOptions } from './types/monaco';
1
3
  export interface EnhanceRenderedHtmlOptions {
2
4
  final?: boolean;
3
5
  isDark?: boolean;
4
6
  renderCodeBlocksAsPre?: boolean;
5
- monacoOptions?: Record<string, any>;
7
+ monacoOptions?: CodeBlockMonacoOptions;
6
8
  d2ThemeId?: number | null;
7
9
  d2DarkThemeId?: number | null;
8
10
  showTooltips?: boolean;
9
- codeBlockProps?: Record<string, any>;
10
- mermaidProps?: Record<string, any>;
11
- d2Props?: Record<string, any>;
12
- infographicProps?: Record<string, any>;
11
+ codeBlockProps?: NodeRendererCodeBlockProps;
12
+ mermaidProps?: NodeRendererMermaidProps;
13
+ d2Props?: NodeRendererD2Props;
14
+ infographicProps?: NodeRendererInfographicProps;
13
15
  onCopy?: (code: string) => void;
14
16
  isCancelled?: () => boolean;
15
17
  }
@@ -1,2 +1,2 @@
1
- import { BaseNode } from 'stream-markdown-parser';
1
+ import { BaseNode } from '../../markdown-parser/src/index.ts';
2
2
  export declare function hydrateCustomTagContent<T extends BaseNode>(nodes: readonly T[] | null | undefined, source: string, customHtmlTags?: readonly string[]): T[];
@@ -0,0 +1,77 @@
1
+ export { AdmonitionNodeComponent as AdmonitionNode } from './components/AdmonitionNode/AdmonitionNode.component';
2
+ export { BlockquoteNodeComponent as BlockquoteNode } from './components/BlockquoteNode/BlockquoteNode.component';
3
+ export { CheckboxNodeComponent as CheckboxNode } from './components/CheckboxNode/CheckboxNode.component';
4
+ export { CodeBlockNodeComponent as CodeBlockNode } from './components/CodeBlockNode/CodeBlockNode.component';
5
+ export { CodeBlockNodeComponent as AngularCodeBlockNode } from './components/CodeBlockNode/CodeBlockNode.component';
6
+ export { CodeBlockNodeComponent as MarkdownCodeBlockNode } from './components/CodeBlockNode/CodeBlockNode.component';
7
+ export { HtmlPreviewFrameComponent as HtmlPreviewFrame } from './components/CodeBlockNode/HtmlPreviewFrame.component';
8
+ export { D2BlockNodeComponent as D2BlockNode } from './components/D2BlockNode/D2BlockNode.component';
9
+ export { DefinitionListNodeComponent as DefinitionListNode } from './components/DefinitionListNode/DefinitionListNode.component';
10
+ export { EmojiNodeComponent as EmojiNode } from './components/EmojiNode/EmojiNode.component';
11
+ export { EmphasisNodeComponent as EmphasisNode } from './components/EmphasisNode/EmphasisNode.component';
12
+ export { FallbackComponent } from './components/FallbackComponent/FallbackComponent.component';
13
+ export { FootnoteAnchorNodeComponent as FootnoteAnchorNode } from './components/FootnoteAnchorNode/FootnoteAnchorNode.component';
14
+ export { FootnoteNodeComponent as FootnoteNode } from './components/FootnoteNode/FootnoteNode.component';
15
+ export { FootnoteReferenceNodeComponent as FootnoteReferenceNode } from './components/FootnoteReferenceNode/FootnoteReferenceNode.component';
16
+ export { HardBreakNodeComponent as HardBreakNode } from './components/HardBreakNode/HardBreakNode.component';
17
+ export { HeadingNodeComponent as HeadingNode } from './components/HeadingNode/HeadingNode.component';
18
+ export { HighlightNodeComponent as HighlightNode } from './components/HighlightNode/HighlightNode.component';
19
+ export { HtmlBlockNodeComponent as HtmlBlockNode } from './components/HtmlBlockNode/HtmlBlockNode.component';
20
+ export { HtmlInlineNodeComponent as HtmlInlineNode } from './components/HtmlInlineNode/HtmlInlineNode.component';
21
+ export { ImageNodeComponent as ImageNode } from './components/ImageNode/ImageNode.component';
22
+ export { InfographicBlockNodeComponent as InfographicBlockNode } from './components/InfographicBlockNode/InfographicBlockNode.component';
23
+ export { InlineCodeNodeComponent as InlineCodeNode } from './components/InlineCodeNode/InlineCodeNode.component';
24
+ export { InsertNodeComponent as InsertNode } from './components/InsertNode/InsertNode.component';
25
+ export { LinkNodeComponent as LinkNode } from './components/LinkNode/LinkNode.component';
26
+ export { ListItemNodeComponent as ListItemNode } from './components/ListItemNode/ListItemNode.component';
27
+ export { ListNodeComponent as ListNode } from './components/ListNode/ListNode.component';
28
+ export { MathBlockNodeComponent as MathBlockNode } from './components/MathBlockNode/MathBlockNode.component';
29
+ export { MathInlineNodeComponent as MathInlineNode } from './components/MathInlineNode/MathInlineNode.component';
30
+ export { MermaidBlockNodeComponent as MermaidBlockNode } from './components/MermaidBlockNode/MermaidBlockNode.component';
31
+ export { NestedRendererComponent as NestedRenderer } from './components/NestedRenderer/NestedRenderer.component';
32
+ export { NodeRendererComponent as NodeRenderer } from './components/NodeRenderer/NodeRenderer.component';
33
+ export { ParagraphNodeComponent as ParagraphNode } from './components/ParagraphNode/ParagraphNode.component';
34
+ export { PreCodeNodeComponent as PreCodeNode } from './components/PreCodeNode/PreCodeNode.component';
35
+ export { ReferenceNodeComponent as ReferenceNode } from './components/ReferenceNode/ReferenceNode.component';
36
+ export type { AngularRenderableNode, AngularRenderContext, CodeBlockPreviewPayload, NodeRendererCodeBlockProps, NodeRendererD2Props, NodeRendererEvents, NodeRendererInfographicProps, NodeRendererMermaidProps, NodeRendererProps, } from './components/shared/node-helpers';
37
+ export { buildRenderContext, resolveParsedNodes, } from './components/shared/node-helpers';
38
+ export { SafeAttrsDirective } from './components/shared/safe-attrs.directive';
39
+ export { MARKSTREAM_SMOOTH_STREAMING_SCOPE } from './components/shared/smooth-streaming-scope';
40
+ export type { SmoothStreamingScope } from './components/shared/smooth-streaming-scope';
41
+ export { StrikethroughNodeComponent as StrikethroughNode } from './components/StrikethroughNode/StrikethroughNode.component';
42
+ export { StrongNodeComponent as StrongNode } from './components/StrongNode/StrongNode.component';
43
+ export { SubscriptNodeComponent as SubscriptNode } from './components/SubscriptNode/SubscriptNode.component';
44
+ export { SuperscriptNodeComponent as SuperscriptNode } from './components/SuperscriptNode/SuperscriptNode.component';
45
+ export { TableNodeComponent as TableNode } from './components/TableNode/TableNode.component';
46
+ export { TextNodeComponent as TextNode } from './components/TextNode/TextNode.component';
47
+ export { ThematicBreakNodeComponent as ThematicBreakNode } from './components/ThematicBreakNode/ThematicBreakNode.component';
48
+ export { VmrContainerNodeComponent as VmrContainerNode } from './components/VmrContainerNode/VmrContainerNode.component';
49
+ export { clearGlobalCustomComponents, getCustomComponentsRevision, getCustomNodeComponents, removeCustomComponents, setCustomComponents, subscribeCustomComponents, } from './customComponents';
50
+ export type { CustomComponentMap } from './customComponents';
51
+ export { disposeRenderedHtmlEnhancements, enhanceRenderedHtml, } from './enhanceRenderedHtml';
52
+ export type { EnhanceRenderedHtmlOptions, RenderedHtmlEnhancementHandle } from './enhanceRenderedHtml';
53
+ export { setDefaultI18nMap, useSafeI18n } from './i18n/useSafeI18n';
54
+ export { MarkstreamAngularComponent } from './markstream-angular.component';
55
+ export { MarkstreamAngularComponent as MarkdownRenderComponent } from './markstream-angular.component';
56
+ export { MarkstreamAngularComponent as default } from './markstream-angular.component';
57
+ export type { MarkstreamAngularComponentProps } from './markstream-angular.component';
58
+ export type { D2Loader } from './optional/d2';
59
+ export { disableD2, enableD2, isD2Enabled, setD2Loader, } from './optional/d2';
60
+ export type { KatexLoader } from './optional/katex';
61
+ export { disableKatex, enableKatex, getKatex, isKatexEnabled, setKatexLoader, } from './optional/katex';
62
+ export type { MermaidLoader } from './optional/mermaid';
63
+ export { disableMermaid, enableMermaid, getMermaid, isMermaidEnabled, setMermaidLoader, } from './optional/mermaid';
64
+ export { parseNestedMarkdownToNodes, } from './parseNestedMarkdownToNodes';
65
+ export type { NestedMarkdownNodesInput, NestedMarkdownNodesOptions, } from './parseNestedMarkdownToNodes';
66
+ export { renderMarkdownNodesToHtml, renderMarkdownNodeToHtml, renderMarkdownToHtml, renderNestedMarkdownToHtml, } from './renderMarkdownHtml';
67
+ export type { MarkstreamAngularRenderOptions, NestedMarkdownHtmlInput, NestedMarkdownHtmlOptions, RenderableMarkdownNode, } from './renderMarkdownHtml';
68
+ export { sanitizeHtmlContent } from './sanitizeHtmlContent';
69
+ export { SmoothMarkdownStreamService } from './services/smooth-markdown-stream.service';
70
+ export type { SmoothMarkdownStreamOptions } from './services/smooth-markdown-stream.service';
71
+ export type { CodeBlockDiffAppearance, CodeBlockDiffHideUnchangedRegions, CodeBlockDiffHideUnchangedRegionsOptions, CodeBlockDiffHunkActionContext, CodeBlockDiffHunkActionKind, CodeBlockDiffHunkSide, CodeBlockDiffLineStyle, CodeBlockDiffUnchangedRegionStyle, CodeBlockMonacoLanguage, CodeBlockMonacoOptions, CodeBlockMonacoTheme, CodeBlockMonacoThemeObject, } from './types/monaco';
72
+ export { getLanguageIcon, languageMap, normalizeLanguageIdentifier, resolveMonacoLanguageId, setLanguageIconResolver, } from './utils/languageIcon';
73
+ export type { LanguageIconResolver } from './utils/languageIcon';
74
+ export * from './workers/katexCdnWorker';
75
+ export * from './workers/katexWorkerClient';
76
+ export * from './workers/mermaidCdnWorker';
77
+ export * from './workers/mermaidWorkerClient';
@@ -0,0 +1,17 @@
1
+ export interface D2Instance {
2
+ D2?: D2Constructor;
3
+ compile?: (source: string, options?: Record<string, unknown>) => Promise<unknown> | unknown;
4
+ render?: (input: unknown, options?: Record<string, unknown>) => Promise<unknown> | unknown;
5
+ }
6
+ export interface D2Constructor {
7
+ new (): D2Instance;
8
+ D2?: D2Constructor;
9
+ compile?: D2Instance['compile'];
10
+ }
11
+ export type D2Module = D2Constructor | D2Instance;
12
+ export type D2Loader = () => Promise<unknown> | unknown;
13
+ export declare function setD2Loader(loader: D2Loader | null): void;
14
+ export declare function enableD2(loader?: D2Loader): void;
15
+ export declare function disableD2(): void;
16
+ export declare function isD2Enabled(): boolean;
17
+ export declare function getD2(): Promise<D2Module | null>;
@@ -0,0 +1,13 @@
1
+ export interface InfographicInstance {
2
+ render: (source: string) => unknown;
3
+ destroy?: () => unknown;
4
+ on?: (event: string, handler: (payload: unknown) => void) => unknown;
5
+ }
6
+ export interface InfographicConstructor {
7
+ new (options: {
8
+ container: HTMLElement;
9
+ width?: string | number;
10
+ height?: string | number;
11
+ }): InfographicInstance;
12
+ }
13
+ export declare function getInfographic(): Promise<InfographicConstructor | null>;
@@ -0,0 +1,9 @@
1
+ export interface KatexModule {
2
+ renderToString: (content: string, options?: Record<string, unknown>) => string;
3
+ }
4
+ export type KatexLoader = () => Promise<unknown> | unknown;
5
+ export declare function setKatexLoader(loader: KatexLoader | null): void;
6
+ export declare function enableKatex(loader?: KatexLoader): void;
7
+ export declare function disableKatex(): void;
8
+ export declare function isKatexEnabled(): boolean;
9
+ export declare function getKatex(): Promise<KatexModule | null>;
@@ -0,0 +1,27 @@
1
+ export type MermaidLoader = () => Promise<unknown> | unknown;
2
+ export interface MermaidModule {
3
+ render: (id: string, source: string) => Promise<MermaidRenderResult> | MermaidRenderResult;
4
+ parse?: (source: string) => Promise<unknown> | unknown;
5
+ initialize?: (config?: Record<string, unknown>) => unknown;
6
+ mermaidAPI?: {
7
+ render?: MermaidModule['render'];
8
+ parse?: MermaidModule['parse'];
9
+ initialize?: MermaidModule['initialize'];
10
+ };
11
+ }
12
+ export type MermaidRenderResult = string | {
13
+ svg?: string;
14
+ bindFunctions?: (element: Element) => unknown;
15
+ };
16
+ interface MermaidInitConfig extends Record<string, unknown> {
17
+ securityLevel?: unknown;
18
+ flowchart?: {
19
+ htmlLabels?: unknown;
20
+ };
21
+ }
22
+ export declare function setMermaidLoader(loader: MermaidLoader | null): void;
23
+ export declare function enableMermaid(loader?: MermaidLoader): void;
24
+ export declare function disableMermaid(): void;
25
+ export declare function isMermaidEnabled(): boolean;
26
+ export declare function getMermaid(initConfig?: MermaidInitConfig): Promise<MermaidModule | null>;
27
+ export {};
@@ -0,0 +1,18 @@
1
+ export interface MonacoRuntimeHelpers {
2
+ createEditor?: (container: HTMLElement, code: string, language: string) => Promise<unknown> | unknown;
3
+ createDiffEditor?: (container: HTMLElement, original: string, modified: string, language: string) => Promise<unknown> | unknown;
4
+ updateCode?: (code: string, language?: string) => Promise<unknown> | unknown;
5
+ updateDiff?: (original: string, modified: string, language?: string) => Promise<unknown> | unknown;
6
+ cleanupEditor?: () => unknown;
7
+ safeClean?: () => unknown;
8
+ setTheme?: (theme?: string | Record<string, unknown>) => Promise<unknown> | unknown;
9
+ getEditorView?: () => unknown;
10
+ getDiffEditorView?: () => unknown;
11
+ refreshDiffPresentation?: () => unknown;
12
+ }
13
+ export interface MonacoRuntimeModule {
14
+ useMonaco: (options?: Record<string, unknown>) => MonacoRuntimeHelpers;
15
+ preloadMonacoWorkers?: () => Promise<unknown> | unknown;
16
+ getOrCreateHighlighter?: (...args: unknown[]) => Promise<unknown> | unknown;
17
+ }
18
+ export declare function getUseMonaco(): Promise<MonacoRuntimeModule | null>;
@@ -1,6 +1,10 @@
1
- import { BaseNode, MarkdownIt, ParseOptions } from 'stream-markdown-parser';
1
+ import { BaseNode, MarkdownIt, ParseOptions } from '../../markdown-parser/src/index.ts';
2
+ type NestedMarkdownSourceNode = BaseNode & {
3
+ children?: BaseNode[];
4
+ content?: string;
5
+ };
2
6
  export interface NestedMarkdownNodesInput {
3
- node?: (BaseNode & Record<string, any>) | null;
7
+ node?: NestedMarkdownSourceNode | null;
4
8
  nodes?: readonly BaseNode[] | null;
5
9
  content?: string | null;
6
10
  }
@@ -12,3 +16,4 @@ export interface NestedMarkdownNodesOptions {
12
16
  customMarkdownIt?: (markdown: MarkdownIt) => MarkdownIt;
13
17
  }
14
18
  export declare function parseNestedMarkdownToNodes(input: NestedMarkdownNodesInput, options?: NestedMarkdownNodesOptions): BaseNode[];
19
+ export {};
@@ -1,4 +1,4 @@
1
- import { BaseNode, ParsedNode, ParseOptions } from 'stream-markdown-parser';
1
+ import { BaseNode, HtmlPolicy, ParsedNode, ParseOptions } from '../../markdown-parser/src/index.ts';
2
2
  export type RenderableMarkdownNode = (ParsedNode | BaseNode) & Record<string, unknown>;
3
3
  type NestedClassValue = string | readonly string[] | null | undefined;
4
4
  export interface MarkstreamAngularRenderOptions {
@@ -8,11 +8,13 @@ export interface MarkstreamAngularRenderOptions {
8
8
  parseOptions?: ParseOptions;
9
9
  customHtmlTags?: readonly string[];
10
10
  allowHtml?: boolean;
11
+ htmlPolicy?: HtmlPolicy;
11
12
  }
12
13
  export interface NestedMarkdownHtmlOptions {
13
14
  cacheKey?: string;
14
15
  customHtmlTags?: readonly string[];
15
16
  allowHtml?: boolean;
17
+ htmlPolicy?: HtmlPolicy;
16
18
  customNodeTag?: string;
17
19
  customNodeClass?: NestedClassValue | ((node: RenderableMarkdownNode) => NestedClassValue);
18
20
  }
@@ -0,0 +1,2 @@
1
+ import { HtmlPolicy } from '../../markdown-parser/src/index.ts';
2
+ export declare function sanitizeHtmlContent(content: string, policy?: HtmlPolicy): string;
@@ -0,0 +1,33 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { SmoothMarkdownStreamOptions } from '../../../markstream-core/src/index.ts';
3
+ export type { SmoothMarkdownStreamOptions };
4
+ export declare class SmoothMarkdownStreamService implements OnDestroy {
5
+ private controller;
6
+ private snapshot;
7
+ private readonly listeners;
8
+ private unsubscribeFromController?;
9
+ init(options?: SmoothMarkdownStreamOptions): void;
10
+ ngOnDestroy(): void;
11
+ /**
12
+ * Subscribe to snapshot updates. Called when the controller's visible
13
+ * content advances during smooth streaming. The listener is invoked
14
+ * after each snapshot sync so that Angular components can trigger
15
+ * rebuild / markForCheck.
16
+ */
17
+ subscribe(listener: () => void): () => void;
18
+ get source(): string;
19
+ get visible(): string;
20
+ get done(): boolean;
21
+ get caughtUp(): boolean;
22
+ get final(): boolean;
23
+ get pendingChars(): number;
24
+ enqueue(chunk: string): void;
25
+ finish(options?: {
26
+ flush?: boolean;
27
+ }): void;
28
+ flush(): void;
29
+ reset(initialMarkdown?: string): void;
30
+ pause(): void;
31
+ resume(): void;
32
+ private syncSnapshot;
33
+ }
@@ -7,7 +7,7 @@ export interface CodeBlockMonacoThemeObject {
7
7
  [key: string]: unknown;
8
8
  }
9
9
  export type CodeBlockMonacoTheme = string | CodeBlockMonacoThemeObject;
10
- export type CodeBlockMonacoLanguage = string | ((...args: any[]) => unknown);
10
+ export type CodeBlockMonacoLanguage = string | ((...args: unknown[]) => unknown);
11
11
  export interface CodeBlockDiffHideUnchangedRegionsOptions {
12
12
  enabled?: boolean;
13
13
  contextLineCount?: number;
@@ -60,6 +60,6 @@ export interface CodeBlockMonacoOptions {
60
60
  diffHunkActionsOnHover?: boolean;
61
61
  diffHunkHoverHideDelayMs?: number;
62
62
  onDiffHunkAction?: (context: CodeBlockDiffHunkActionContext) => void | boolean | Promise<void | boolean>;
63
- scrollbar?: Record<string, any>;
64
- [key: string]: any;
63
+ scrollbar?: Record<string, unknown>;
64
+ [key: string]: unknown;
65
65
  }
@@ -1,6 +1,6 @@
1
1
  import f from "mermaid";
2
- f.initialize({ startOnLoad: !1, securityLevel: "loose" });
3
- function h(r, t) {
2
+ f.initialize({ startOnLoad: !1, securityLevel: "strict", flowchart: { htmlLabels: !1 } });
3
+ function u(r, t) {
4
4
  const e = `%%{init: {"theme": "${t === "dark" ? "dark" : "default"}"}}%%
5
5
  `;
6
6
  return r.trimStart().startsWith("%%{") ? r : e + r;
@@ -15,7 +15,7 @@ function g(r) {
15
15
  return -1;
16
16
  }
17
17
  async function l(r, t) {
18
- const a = h(r, t), e = f;
18
+ const a = u(r, t), e = f;
19
19
  if (typeof e.parse == "function")
20
20
  return await e.parse(a), !0;
21
21
  throw new Error("mermaid.parse not available in worker");
@@ -28,16 +28,16 @@ async function p(r, t) {
28
28
  const n = a.slice(0, e + 1);
29
29
  await l(n.join(`
30
30
  `), t);
31
- let o = e + 1, s = a.length, c = e + 1, d = 0;
31
+ let s = e + 1, o = a.length, c = e + 1, d = 0;
32
32
  const m = 12;
33
- for (; o <= s && d < m; ) {
34
- const i = Math.floor((o + s) / 2), u = [...n, ...a.slice(e + 1, i)].join(`
33
+ for (; s <= o && d < m; ) {
34
+ const i = Math.floor((s + o) / 2), h = [...n, ...a.slice(e + 1, i)].join(`
35
35
  `);
36
36
  d += 1;
37
37
  try {
38
- await l(u, t), c = i, o = i + 1;
38
+ await l(h, t), c = i, s = i + 1;
39
39
  } catch {
40
- s = i - 1;
40
+ o = i - 1;
41
41
  }
42
42
  }
43
43
  return [...n, ...a.slice(e + 1, c)].join(`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "markstream-angular",
3
3
  "type": "module",
4
- "version": "0.0.2-beta.1",
4
+ "version": "0.0.2-beta.11",
5
5
  "description": "Experimental Angular Markdown renderer for Markstream, built on stream-markdown AST and a stable HTML baseline renderer.",
6
6
  "author": "Simon He",
7
7
  "license": "MIT",
@@ -47,7 +47,7 @@
47
47
  "@terrastruct/d2": ">=0.1.33",
48
48
  "katex": ">=0.16.22",
49
49
  "mermaid": ">=11",
50
- "stream-monaco": ">=0.0.22"
50
+ "stream-monaco": ">=0.0.40"
51
51
  },
52
52
  "peerDependenciesMeta": {
53
53
  "@antv/infographic": {
@@ -68,7 +68,8 @@
68
68
  },
69
69
  "dependencies": {
70
70
  "@floating-ui/dom": "^1.7.6",
71
- "stream-markdown-parser": "0.0.84"
71
+ "markstream-core": "0.0.1",
72
+ "stream-markdown-parser": "0.0.95"
72
73
  },
73
74
  "devDependencies": {
74
75
  "@types/node": "^18.19.130",
@@ -78,10 +79,11 @@
78
79
  "vite-plugin-dts": "^4.5.4"
79
80
  },
80
81
  "scripts": {
81
- "build": "vite build --mode npm",
82
+ "build": "pnpm --dir ../markstream-core build && vite build --mode npm",
82
83
  "dev": "vite dev",
83
84
  "preview": "vite preview",
84
85
  "typecheck": "tsc --noEmit",
85
- "release": "bumpp --commit --no-tag --no-push && pnpm publish --access public && node ../../scripts/tag-package.mjs --package-json package.json --push"
86
+ "check:core-published": "node ../../scripts/check-core-published.mjs --package-json package.json --core-package-json ../markstream-core/package.json",
87
+ "release": "pnpm run check:core-published && bumpp --commit --no-tag --no-push && pnpm publish --access public && node ../../scripts/tag-package.mjs --package-json package.json --push"
86
88
  }
87
89
  }
@@ -1,14 +0,0 @@
1
- import { AngularRenderableNode, AngularRenderContext } from '../shared/node-helpers';
2
- export declare class TableNodeComponent {
3
- node: AngularRenderableNode;
4
- context?: AngularRenderContext;
5
- indexKey?: string;
6
- get headerRow(): AngularRenderableNode;
7
- get rows(): AngularRenderableNode[];
8
- cellsFor(row: AngularRenderableNode): AngularRenderableNode[];
9
- childrenFor(cell: AngularRenderableNode): AngularRenderableNode[];
10
- alignment(cell: AngularRenderableNode): string;
11
- trackRow: (index: number) => string;
12
- trackCell: (index: number) => number;
13
- cellPrefix(rowIndex: string | number, cellIndex: number): string;
14
- }
@@ -1,11 +0,0 @@
1
- export interface ResolveStreamingTextStateOptions {
2
- nextContent: string;
3
- previousContent: string;
4
- typewriterEnabled: boolean;
5
- }
6
- export interface StreamingTextStateResult {
7
- settledContent: string;
8
- streamedDelta: string;
9
- appended: boolean;
10
- }
11
- export declare function resolveStreamingTextState({ nextContent, previousContent, typewriterEnabled, }: ResolveStreamingTextStateOptions): StreamingTextStateResult;
@@ -1,6 +0,0 @@
1
- export type D2Loader = () => Promise<any> | any;
2
- export declare function setD2Loader(loader: D2Loader | null): void;
3
- export declare function enableD2(loader?: D2Loader): void;
4
- export declare function disableD2(): void;
5
- export declare function isD2Enabled(): boolean;
6
- export declare function getD2(): Promise<any>;
@@ -1 +0,0 @@
1
- export declare function getInfographic(): Promise<any>;
@@ -1,6 +0,0 @@
1
- export type KatexLoader = () => Promise<any> | any;
2
- export declare function setKatexLoader(loader: KatexLoader | null): void;
3
- export declare function enableKatex(loader?: KatexLoader): void;
4
- export declare function disableKatex(): void;
5
- export declare function isKatexEnabled(): boolean;
6
- export declare function getKatex(): Promise<any>;
@@ -1,6 +0,0 @@
1
- export type MermaidLoader = () => Promise<any> | any;
2
- export declare function setMermaidLoader(loader: MermaidLoader | null): void;
3
- export declare function enableMermaid(loader?: MermaidLoader): void;
4
- export declare function disableMermaid(): void;
5
- export declare function isMermaidEnabled(): boolean;
6
- export declare function getMermaid(initConfig?: Record<string, any>): Promise<any>;
@@ -1 +0,0 @@
1
- export declare function getUseMonaco(): Promise<any>;
@@ -1 +0,0 @@
1
- export declare function sanitizeHtmlContent(content: string): string;