markstream-angular 0.0.10 → 0.1.0-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.
- package/README.md +23 -22
- package/dist/README.md +23 -22
- package/dist/fesm2022/markstream-angular.mjs +435 -241
- package/dist/fesm2022/markstream-angular.mjs.map +1 -1
- package/dist/index.css +7 -12
- package/dist/index.d.ts +100 -119
- package/package.json +7 -11
package/dist/index.css
CHANGED
|
@@ -992,8 +992,7 @@ body > div[id^="dmermaid-"] {
|
|
|
992
992
|
background: #0b1220;
|
|
993
993
|
}
|
|
994
994
|
|
|
995
|
-
.markstream-angular .markstream-angular-enhanced-block__body--code .
|
|
996
|
-
.markstream-angular .markstream-angular-enhanced-block__body--code .monaco-diff-editor {
|
|
995
|
+
.markstream-angular .markstream-angular-enhanced-block__body--code .stream-diffs-shell {
|
|
997
996
|
min-height: inherit;
|
|
998
997
|
}
|
|
999
998
|
|
|
@@ -1137,19 +1136,15 @@ body > div[id^="dmermaid-"] {
|
|
|
1137
1136
|
box-shadow: 0 22px 44px -30px rgba(2, 6, 23, 0.95);
|
|
1138
1137
|
}
|
|
1139
1138
|
|
|
1140
|
-
.markstream-angular .code-block-container.is-plain-text .
|
|
1141
|
-
.markstream-angular .code-block-container.is-plain-text .
|
|
1142
|
-
.markstream-angular .code-block-container.is-plain-text .
|
|
1143
|
-
.markstream-angular .code-block-container.is-plain-text .monaco-editor .lines-content {
|
|
1139
|
+
.markstream-angular .code-block-container.is-plain-text .stream-diffs-shell,
|
|
1140
|
+
.markstream-angular .code-block-container.is-plain-text .stream-diffs-shell diffs-container,
|
|
1141
|
+
.markstream-angular .code-block-container.is-plain-text .stream-diffs-shell [data-stream-diffs-state] {
|
|
1144
1142
|
background: var(--vscode-editor-background, var(--markstream-code-fallback-bg)) !important;
|
|
1145
1143
|
}
|
|
1146
1144
|
|
|
1147
|
-
.markstream-angular .code-block-container.is-plain-text .
|
|
1148
|
-
.markstream-angular .code-block-container.is-plain-text .
|
|
1149
|
-
.markstream-angular .code-block-container.is-plain-text .
|
|
1150
|
-
.markstream-angular .code-block-container.is-plain-text .monaco-editor .view-line,
|
|
1151
|
-
.markstream-angular .code-block-container.is-plain-text .monaco-editor .view-line span,
|
|
1152
|
-
.markstream-angular .code-block-container.is-plain-text .monaco-editor .line-numbers {
|
|
1145
|
+
.markstream-angular .code-block-container.is-plain-text .stream-diffs-shell,
|
|
1146
|
+
.markstream-angular .code-block-container.is-plain-text .stream-diffs-shell diffs-container,
|
|
1147
|
+
.markstream-angular .code-block-container.is-plain-text .stream-diffs-shell [data-stream-diffs-state] {
|
|
1153
1148
|
color: var(--vscode-editor-foreground, var(--markstream-code-fallback-fg)) !important;
|
|
1154
1149
|
}
|
|
1155
1150
|
|
package/dist/index.d.ts
CHANGED
|
@@ -14,16 +14,13 @@ declare function getCustomNodeComponents(customId?: string): CustomComponentMap;
|
|
|
14
14
|
declare function removeCustomComponents(id: string): void;
|
|
15
15
|
declare function clearGlobalCustomComponents(): void;
|
|
16
16
|
|
|
17
|
-
interface
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
type CodeBlockMonacoTheme = string | CodeBlockMonacoThemeObject;
|
|
26
|
-
type CodeBlockMonacoLanguage = string | ((...args: unknown[]) => unknown);
|
|
17
|
+
interface CodeBlockThemePair {
|
|
18
|
+
dark: string;
|
|
19
|
+
light: string;
|
|
20
|
+
}
|
|
21
|
+
type CodeBlockTheme = string;
|
|
22
|
+
type CodeBlockThemeProp = CodeBlockTheme | CodeBlockThemePair;
|
|
23
|
+
type CodeBlockThemes = readonly [dark: CodeBlockTheme, light: CodeBlockTheme];
|
|
27
24
|
interface CodeBlockDiffHideUnchangedRegionsOptions {
|
|
28
25
|
enabled?: boolean;
|
|
29
26
|
contextLineCount?: number;
|
|
@@ -31,53 +28,57 @@ interface CodeBlockDiffHideUnchangedRegionsOptions {
|
|
|
31
28
|
revealLineCount?: number;
|
|
32
29
|
}
|
|
33
30
|
type CodeBlockDiffHideUnchangedRegions = boolean | CodeBlockDiffHideUnchangedRegionsOptions;
|
|
34
|
-
|
|
35
|
-
type CodeBlockDiffAppearance = 'auto' | 'light' | 'dark';
|
|
36
|
-
type CodeBlockDiffUnchangedRegionStyle = 'line-info' | 'line-info-basic' | 'metadata' | 'simple';
|
|
37
|
-
type CodeBlockDiffHunkActionKind = 'revert' | 'stage';
|
|
38
|
-
type CodeBlockDiffHunkSide = 'upper' | 'lower';
|
|
39
|
-
interface CodeBlockDiffHunkActionContext {
|
|
40
|
-
action: CodeBlockDiffHunkActionKind;
|
|
41
|
-
side: CodeBlockDiffHunkSide;
|
|
42
|
-
lineChange: unknown;
|
|
43
|
-
originalModel: unknown;
|
|
44
|
-
modifiedModel: unknown;
|
|
45
|
-
}
|
|
46
|
-
interface CodeBlockMonacoOptions {
|
|
47
|
-
MAX_HEIGHT?: number | string;
|
|
31
|
+
interface CodeBlockOptions {
|
|
48
32
|
fontSize?: number;
|
|
49
33
|
lineHeight?: number;
|
|
50
34
|
fontFamily?: string;
|
|
35
|
+
maxHeight?: number;
|
|
36
|
+
padding?: number;
|
|
51
37
|
tabSize?: number;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
38
|
+
disableLineNumbers?: boolean;
|
|
39
|
+
overflow?: 'scroll' | 'wrap';
|
|
40
|
+
disableVirtualizationBuffers?: boolean;
|
|
41
|
+
preferredHighlighter?: 'shiki-js' | 'shiki-wasm';
|
|
42
|
+
useCSSClasses?: boolean;
|
|
43
|
+
useTokenTransformer?: boolean;
|
|
44
|
+
tokenizeMaxLineLength?: number;
|
|
45
|
+
tokenizeMaxLength?: number;
|
|
46
|
+
unsafeCSS?: string;
|
|
47
|
+
diffStyle?: 'unified' | 'split';
|
|
48
|
+
diffIndicators?: 'classic' | 'bars' | 'none';
|
|
49
|
+
disableBackground?: boolean;
|
|
50
|
+
hunkSeparators?: 'simple' | 'metadata' | 'line-info' | 'line-info-basic';
|
|
51
|
+
expandUnchanged?: boolean;
|
|
52
|
+
collapsedContextThreshold?: number;
|
|
53
|
+
lineDiffType?: 'word-alt' | 'word' | 'char' | 'none';
|
|
54
|
+
maxLineDiffLength?: number;
|
|
55
|
+
expansionLineCount?: number;
|
|
56
|
+
parseDiffOptions?: Record<string, unknown>;
|
|
57
|
+
lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';
|
|
58
|
+
enableTokenInteractionsOnWhitespace?: boolean;
|
|
59
|
+
enableGutterUtility?: boolean;
|
|
60
|
+
enableLineSelection?: boolean;
|
|
61
|
+
controlledSelection?: boolean;
|
|
62
|
+
onGutterUtilityClick?: (...args: any[]) => unknown;
|
|
63
|
+
onLineClick?: (...args: any[]) => unknown;
|
|
64
|
+
onLineNumberClick?: (...args: any[]) => unknown;
|
|
65
|
+
onLineEnter?: (...args: any[]) => unknown;
|
|
66
|
+
onLineLeave?: (...args: any[]) => unknown;
|
|
67
|
+
onTokenClick?: (...args: any[]) => unknown;
|
|
68
|
+
onTokenEnter?: (...args: any[]) => unknown;
|
|
69
|
+
onTokenLeave?: (...args: any[]) => unknown;
|
|
70
|
+
onLineSelected?: (...args: any[]) => unknown;
|
|
71
|
+
onLineSelectionStart?: (...args: any[]) => unknown;
|
|
72
|
+
onLineSelectionChange?: (...args: any[]) => unknown;
|
|
73
|
+
onLineSelectionEnd?: (...args: any[]) => unknown;
|
|
74
|
+
getLineIndex?: (...args: any[]) => unknown;
|
|
75
|
+
renderAnnotation?: (...args: any[]) => unknown;
|
|
76
|
+
renderGutterUtility?: (...args: any[]) => unknown;
|
|
77
|
+
onPostRender?: (...args: any[]) => unknown;
|
|
78
|
+
mergeConflict?: boolean;
|
|
79
|
+
lineAnnotations?: unknown[];
|
|
80
|
+
onController?: (controller: any) => void;
|
|
81
|
+
workerManager?: unknown;
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
type AngularRenderableNode = (ParsedNode | BaseNode) & Record<string, unknown>;
|
|
@@ -89,10 +90,10 @@ interface CodeBlockPreviewPayload {
|
|
|
89
90
|
}
|
|
90
91
|
type NodeRendererCodeBlockProps = Partial<{
|
|
91
92
|
stream: boolean;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
theme: CodeBlockThemeProp;
|
|
94
|
+
darkTheme: CodeBlockTheme;
|
|
95
|
+
lightTheme: CodeBlockTheme;
|
|
96
|
+
themes: CodeBlockThemes;
|
|
96
97
|
minWidth: string | number;
|
|
97
98
|
maxWidth: string | number;
|
|
98
99
|
isShowPreview: boolean;
|
|
@@ -103,8 +104,10 @@ type NodeRendererCodeBlockProps = Partial<{
|
|
|
103
104
|
showPreviewButton: boolean;
|
|
104
105
|
showCollapseButton: boolean;
|
|
105
106
|
showFontSizeButtons: boolean;
|
|
107
|
+
showLineNumbers: boolean;
|
|
106
108
|
htmlPreviewAllowScripts: boolean;
|
|
107
109
|
htmlPreviewSandbox: string;
|
|
110
|
+
codeBlockOptions?: never;
|
|
108
111
|
}> & Record<string, unknown>;
|
|
109
112
|
type NodeRendererMermaidProps = Partial<{
|
|
110
113
|
maxHeight: string | null;
|
|
@@ -160,19 +163,19 @@ interface NodeRendererProps {
|
|
|
160
163
|
htmlPolicy?: HtmlPolicy;
|
|
161
164
|
viewportPriority?: boolean;
|
|
162
165
|
codeBlockStream?: boolean;
|
|
163
|
-
codeBlockDarkTheme?:
|
|
164
|
-
codeBlockLightTheme?:
|
|
165
|
-
codeBlockMonacoOptions?: CodeBlockMonacoOptions;
|
|
166
|
+
codeBlockDarkTheme?: CodeBlockTheme;
|
|
167
|
+
codeBlockLightTheme?: CodeBlockTheme;
|
|
166
168
|
renderCodeBlocksAsPre?: boolean;
|
|
167
169
|
codeBlockMinWidth?: string | number;
|
|
168
170
|
codeBlockMaxWidth?: string | number;
|
|
171
|
+
codeBlockOptions?: CodeBlockOptions;
|
|
169
172
|
codeBlockProps?: NodeRendererCodeBlockProps;
|
|
170
173
|
mermaidProps?: NodeRendererMermaidProps;
|
|
171
174
|
d2Props?: NodeRendererD2Props;
|
|
172
175
|
infographicProps?: NodeRendererInfographicProps;
|
|
173
176
|
customComponents?: CustomComponentMap;
|
|
174
177
|
showTooltips?: boolean;
|
|
175
|
-
themes?:
|
|
178
|
+
themes?: CodeBlockThemes;
|
|
176
179
|
isDark?: boolean;
|
|
177
180
|
customId?: string;
|
|
178
181
|
indexKey?: number | string;
|
|
@@ -209,16 +212,16 @@ interface AngularRenderContext {
|
|
|
209
212
|
customHtmlTags?: readonly string[];
|
|
210
213
|
parseOptions?: ParseOptions;
|
|
211
214
|
customMarkdownIt?: (md: MarkdownIt) => MarkdownIt;
|
|
215
|
+
codeBlockOptions?: CodeBlockOptions;
|
|
212
216
|
codeBlockProps?: NodeRendererCodeBlockProps;
|
|
213
217
|
mermaidProps?: NodeRendererMermaidProps;
|
|
214
218
|
d2Props?: NodeRendererD2Props;
|
|
215
219
|
infographicProps?: NodeRendererInfographicProps;
|
|
216
220
|
customComponents?: CustomComponentMap;
|
|
217
221
|
codeBlockThemes?: {
|
|
218
|
-
themes?:
|
|
219
|
-
darkTheme?:
|
|
220
|
-
lightTheme?:
|
|
221
|
-
monacoOptions?: CodeBlockMonacoOptions;
|
|
222
|
+
themes?: CodeBlockThemes;
|
|
223
|
+
darkTheme?: CodeBlockTheme;
|
|
224
|
+
lightTheme?: CodeBlockTheme;
|
|
222
225
|
minWidth?: string | number;
|
|
223
226
|
maxWidth?: string | number;
|
|
224
227
|
};
|
|
@@ -264,6 +267,7 @@ declare class CodeBlockNodeComponent implements AfterViewInit, OnChanges, OnDest
|
|
|
264
267
|
private editorHost?;
|
|
265
268
|
node: AngularRenderableNode;
|
|
266
269
|
context?: AngularRenderContext;
|
|
270
|
+
codeBlockOptions?: CodeBlockOptions;
|
|
267
271
|
props?: Record<string, any>;
|
|
268
272
|
useFallback: boolean;
|
|
269
273
|
copied: boolean;
|
|
@@ -274,7 +278,7 @@ declare class CodeBlockNodeComponent implements AfterViewInit, OnChanges, OnDest
|
|
|
274
278
|
defaultFontSize: number;
|
|
275
279
|
fontSize: number;
|
|
276
280
|
private helpers;
|
|
277
|
-
private
|
|
281
|
+
private runtimeOptions;
|
|
278
282
|
private createPromise;
|
|
279
283
|
private syncPromise;
|
|
280
284
|
private editorKind;
|
|
@@ -284,14 +288,16 @@ declare class CodeBlockNodeComponent implements AfterViewInit, OnChanges, OnDest
|
|
|
284
288
|
private destroyed;
|
|
285
289
|
private copyTimer;
|
|
286
290
|
private deferredHeightSyncRaf;
|
|
291
|
+
private lastCodeBlockOptions?;
|
|
292
|
+
private lastRuntimeHostKey;
|
|
287
293
|
get t(): (key: string) => string;
|
|
288
294
|
get mergedProps(): {
|
|
289
295
|
[x: string]: any;
|
|
290
296
|
stream?: boolean;
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
297
|
+
theme?: markstream_angular.CodeBlockThemeProp;
|
|
298
|
+
darkTheme?: CodeBlockTheme;
|
|
299
|
+
lightTheme?: CodeBlockTheme;
|
|
300
|
+
themes?: markstream_angular.CodeBlockThemes;
|
|
295
301
|
minWidth?: string | number;
|
|
296
302
|
maxWidth?: string | number;
|
|
297
303
|
isShowPreview?: boolean;
|
|
@@ -302,51 +308,20 @@ declare class CodeBlockNodeComponent implements AfterViewInit, OnChanges, OnDest
|
|
|
302
308
|
showPreviewButton?: boolean;
|
|
303
309
|
showCollapseButton?: boolean;
|
|
304
310
|
showFontSizeButtons?: boolean;
|
|
311
|
+
showLineNumbers?: boolean;
|
|
305
312
|
htmlPreviewAllowScripts?: boolean;
|
|
306
313
|
htmlPreviewSandbox?: string;
|
|
314
|
+
codeBlockOptions?: never;
|
|
307
315
|
};
|
|
308
316
|
get resolvedLoading(): boolean;
|
|
309
317
|
get resolvedStream(): boolean;
|
|
310
318
|
get resolvedIsDark(): boolean;
|
|
311
|
-
get resolvedDarkTheme():
|
|
312
|
-
get resolvedLightTheme():
|
|
313
|
-
get resolvedThemes():
|
|
314
|
-
get
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
fontSize?: number;
|
|
318
|
-
lineHeight?: number;
|
|
319
|
-
fontFamily?: string;
|
|
320
|
-
tabSize?: number;
|
|
321
|
-
readOnly?: boolean;
|
|
322
|
-
wordWrap?: "off" | "on" | "wordWrapColumn" | "bounded" | string;
|
|
323
|
-
wrappingIndent?: "none" | "same" | "indent" | "deepIndent" | string;
|
|
324
|
-
theme?: string;
|
|
325
|
-
themes?: CodeBlockMonacoTheme[];
|
|
326
|
-
languages?: markstream_angular.CodeBlockMonacoLanguage[];
|
|
327
|
-
renderSideBySide?: boolean;
|
|
328
|
-
useInlineViewWhenSpaceIsLimited?: boolean;
|
|
329
|
-
enableSplitViewResizing?: boolean;
|
|
330
|
-
ignoreTrimWhitespace?: boolean;
|
|
331
|
-
maxComputationTime?: number;
|
|
332
|
-
diffAlgorithm?: string;
|
|
333
|
-
renderIndicators?: boolean;
|
|
334
|
-
originalEditable?: boolean;
|
|
335
|
-
revealDebounceMs?: number;
|
|
336
|
-
revealStrategy?: "bottom" | "centerIfOutside" | "center";
|
|
337
|
-
revealBatchOnIdleMs?: number;
|
|
338
|
-
updateThrottleMs?: number;
|
|
339
|
-
diffUpdateThrottleMs?: number;
|
|
340
|
-
diffAutoScroll?: boolean;
|
|
341
|
-
diffHideUnchangedRegions?: markstream_angular.CodeBlockDiffHideUnchangedRegions;
|
|
342
|
-
diffLineStyle?: markstream_angular.CodeBlockDiffLineStyle;
|
|
343
|
-
diffAppearance?: markstream_angular.CodeBlockDiffAppearance;
|
|
344
|
-
diffUnchangedRegionStyle?: markstream_angular.CodeBlockDiffUnchangedRegionStyle;
|
|
345
|
-
diffHunkActionsOnHover?: boolean;
|
|
346
|
-
diffHunkHoverHideDelayMs?: number;
|
|
347
|
-
onDiffHunkAction?: (context: markstream_angular.CodeBlockDiffHunkActionContext) => void | boolean | Promise<void | boolean>;
|
|
348
|
-
scrollbar?: Record<string, unknown>;
|
|
349
|
-
};
|
|
319
|
+
get resolvedDarkTheme(): string;
|
|
320
|
+
get resolvedLightTheme(): string;
|
|
321
|
+
get resolvedThemes(): [dark: string, light: string];
|
|
322
|
+
get resolvedCodeBlockOptions(): CodeBlockOptions;
|
|
323
|
+
get resolvedShowLineNumbers(): boolean;
|
|
324
|
+
get resolvedPreWhiteSpace(): 'pre' | 'pre-wrap';
|
|
350
325
|
get resolvedEnableFontSizeControl(): boolean;
|
|
351
326
|
get resolvedShowHeader(): boolean;
|
|
352
327
|
get resolvedShowCopyButton(): boolean;
|
|
@@ -358,7 +333,7 @@ declare class CodeBlockNodeComponent implements AfterViewInit, OnChanges, OnDest
|
|
|
358
333
|
get resolvedIsShowPreview(): boolean;
|
|
359
334
|
get rawLanguage(): string;
|
|
360
335
|
get canonicalLanguage(): string;
|
|
361
|
-
get
|
|
336
|
+
get language(): string;
|
|
362
337
|
get isPlainTextLanguage(): boolean;
|
|
363
338
|
get displayLanguage(): string;
|
|
364
339
|
get languageIconDataUrl(): string;
|
|
@@ -391,6 +366,7 @@ declare class CodeBlockNodeComponent implements AfterViewInit, OnChanges, OnDest
|
|
|
391
366
|
private applyInitialFontSize;
|
|
392
367
|
private syncEditorState;
|
|
393
368
|
private ensureHelpers;
|
|
369
|
+
private buildRuntimeOptions;
|
|
394
370
|
private recreateEditor;
|
|
395
371
|
private syncEditorGeometryVars;
|
|
396
372
|
private updateEditor;
|
|
@@ -408,10 +384,11 @@ declare class CodeBlockNodeComponent implements AfterViewInit, OnChanges, OnDest
|
|
|
408
384
|
private cancelDeferredHeightSync;
|
|
409
385
|
private scheduleDeferredHeightSync;
|
|
410
386
|
private cleanupEditor;
|
|
387
|
+
private disposeRuntimeHelpers;
|
|
411
388
|
private resolveCssSize;
|
|
412
389
|
private copyUsingTextarea;
|
|
413
390
|
static ɵfac: i0.ɵɵFactoryDeclaration<CodeBlockNodeComponent, never>;
|
|
414
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CodeBlockNodeComponent, "markstream-angular-code-block-node", never, { "node": { "alias": "node"; "required": true; }; "context": { "alias": "context"; "required": false; }; "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
|
|
391
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CodeBlockNodeComponent, "markstream-angular-code-block-node", never, { "node": { "alias": "node"; "required": true; }; "context": { "alias": "context"; "required": false; }; "codeBlockOptions": { "alias": "codeBlockOptions"; "required": false; }; "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
|
|
415
392
|
}
|
|
416
393
|
|
|
417
394
|
declare class HtmlPreviewFrameComponent {
|
|
@@ -963,17 +940,17 @@ declare class NodeRendererComponent implements NodeRendererProps, OnChanges, OnI
|
|
|
963
940
|
codeBlockStream: boolean;
|
|
964
941
|
codeBlockDarkTheme?: NodeRendererProps['codeBlockDarkTheme'];
|
|
965
942
|
codeBlockLightTheme?: NodeRendererProps['codeBlockLightTheme'];
|
|
966
|
-
codeBlockMonacoOptions?: NodeRendererProps['codeBlockMonacoOptions'];
|
|
967
943
|
renderCodeBlocksAsPre: boolean;
|
|
968
944
|
codeBlockMinWidth?: string | number;
|
|
969
945
|
codeBlockMaxWidth?: string | number;
|
|
946
|
+
codeBlockOptions?: NodeRendererProps['codeBlockOptions'];
|
|
970
947
|
codeBlockProps?: NodeRendererProps['codeBlockProps'];
|
|
971
948
|
mermaidProps?: NodeRendererProps['mermaidProps'];
|
|
972
949
|
d2Props?: NodeRendererProps['d2Props'];
|
|
973
950
|
infographicProps?: NodeRendererProps['infographicProps'];
|
|
974
951
|
customComponents?: NodeRendererProps['customComponents'];
|
|
975
952
|
showTooltips: boolean;
|
|
976
|
-
themes?:
|
|
953
|
+
themes?: NodeRendererProps['themes'];
|
|
977
954
|
isDark: boolean;
|
|
978
955
|
customId?: string;
|
|
979
956
|
indexKey?: number | string;
|
|
@@ -1094,7 +1071,7 @@ declare class NodeRendererComponent implements NodeRendererProps, OnChanges, OnI
|
|
|
1094
1071
|
private updateTypewriterCursorPosition;
|
|
1095
1072
|
private updateTypewriterCursorState;
|
|
1096
1073
|
static ɵfac: i0.ɵɵFactoryDeclaration<NodeRendererComponent, never>;
|
|
1097
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NodeRendererComponent, "markstream-angular", never, { "content": { "alias": "content"; "required": false; }; "nodes": { "alias": "nodes"; "required": false; }; "final": { "alias": "final"; "required": false; }; "parseOptions": { "alias": "parseOptions"; "required": false; }; "customMarkdownIt": { "alias": "customMarkdownIt"; "required": false; }; "debugPerformance": { "alias": "debugPerformance"; "required": false; }; "customHtmlTags": { "alias": "customHtmlTags"; "required": false; }; "htmlPolicy": { "alias": "htmlPolicy"; "required": false; }; "viewportPriority": { "alias": "viewportPriority"; "required": false; }; "codeBlockStream": { "alias": "codeBlockStream"; "required": false; }; "codeBlockDarkTheme": { "alias": "codeBlockDarkTheme"; "required": false; }; "codeBlockLightTheme": { "alias": "codeBlockLightTheme"; "required": false; }; "
|
|
1074
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NodeRendererComponent, "markstream-angular", never, { "content": { "alias": "content"; "required": false; }; "nodes": { "alias": "nodes"; "required": false; }; "final": { "alias": "final"; "required": false; }; "parseOptions": { "alias": "parseOptions"; "required": false; }; "customMarkdownIt": { "alias": "customMarkdownIt"; "required": false; }; "debugPerformance": { "alias": "debugPerformance"; "required": false; }; "customHtmlTags": { "alias": "customHtmlTags"; "required": false; }; "htmlPolicy": { "alias": "htmlPolicy"; "required": false; }; "viewportPriority": { "alias": "viewportPriority"; "required": false; }; "codeBlockStream": { "alias": "codeBlockStream"; "required": false; }; "codeBlockDarkTheme": { "alias": "codeBlockDarkTheme"; "required": false; }; "codeBlockLightTheme": { "alias": "codeBlockLightTheme"; "required": false; }; "renderCodeBlocksAsPre": { "alias": "renderCodeBlocksAsPre"; "required": false; }; "codeBlockMinWidth": { "alias": "codeBlockMinWidth"; "required": false; }; "codeBlockMaxWidth": { "alias": "codeBlockMaxWidth"; "required": false; }; "codeBlockOptions": { "alias": "codeBlockOptions"; "required": false; }; "codeBlockProps": { "alias": "codeBlockProps"; "required": false; }; "mermaidProps": { "alias": "mermaidProps"; "required": false; }; "d2Props": { "alias": "d2Props"; "required": false; }; "infographicProps": { "alias": "infographicProps"; "required": false; }; "customComponents": { "alias": "customComponents"; "required": false; }; "showTooltips": { "alias": "showTooltips"; "required": false; }; "themes": { "alias": "themes"; "required": false; }; "isDark": { "alias": "isDark"; "required": false; }; "customId": { "alias": "customId"; "required": false; }; "indexKey": { "alias": "indexKey"; "required": false; }; "typewriter": { "alias": "typewriter"; "required": false; }; "fade": { "alias": "fade"; "required": false; }; "batchRendering": { "alias": "batchRendering"; "required": false; }; "initialRenderBatchSize": { "alias": "initialRenderBatchSize"; "required": false; }; "renderBatchSize": { "alias": "renderBatchSize"; "required": false; }; "renderBatchDelay": { "alias": "renderBatchDelay"; "required": false; }; "renderBatchBudgetMs": { "alias": "renderBatchBudgetMs"; "required": false; }; "renderBatchIdleTimeoutMs": { "alias": "renderBatchIdleTimeoutMs"; "required": false; }; "deferNodesUntilVisible": { "alias": "deferNodesUntilVisible"; "required": false; }; "maxLiveNodes": { "alias": "maxLiveNodes"; "required": false; }; "liveNodeBuffer": { "alias": "liveNodeBuffer"; "required": false; }; "allowHtml": { "alias": "allowHtml"; "required": false; }; "smoothStreaming": { "alias": "smoothStreaming"; "required": false; }; "smoothStreamingOptions": { "alias": "smoothStreamingOptions"; "required": false; }; }, { "copy": "copy"; "handleArtifactClick": "handleArtifactClick"; "click": "click"; "mouseover": "mouseover"; "mouseout": "mouseout"; }, never, never, true, never>;
|
|
1098
1075
|
}
|
|
1099
1076
|
|
|
1100
1077
|
type ParagraphSegment = {
|
|
@@ -1125,6 +1102,7 @@ declare class ParagraphNodeComponent implements OnChanges {
|
|
|
1125
1102
|
declare class PreCodeNodeComponent {
|
|
1126
1103
|
node: AngularRenderableNode;
|
|
1127
1104
|
showLineNumbers: boolean;
|
|
1105
|
+
whiteSpace: 'pre' | 'pre-wrap' | undefined;
|
|
1128
1106
|
private cachedCode;
|
|
1129
1107
|
private cachedCount;
|
|
1130
1108
|
private textCount;
|
|
@@ -1143,7 +1121,7 @@ declare class PreCodeNodeComponent {
|
|
|
1143
1121
|
get lineNumbersText(): string;
|
|
1144
1122
|
get lineNumberLayoutStyle(): Record<string, string> | null;
|
|
1145
1123
|
static ɵfac: i0.ɵɵFactoryDeclaration<PreCodeNodeComponent, never>;
|
|
1146
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PreCodeNodeComponent, "markstream-angular-pre-code-node", never, { "node": { "alias": "node"; "required": true; }; "showLineNumbers": { "alias": "showLineNumbers"; "required": false; }; }, {}, never, never, true, never>;
|
|
1124
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PreCodeNodeComponent, "markstream-angular-pre-code-node", never, { "node": { "alias": "node"; "required": true; }; "showLineNumbers": { "alias": "showLineNumbers"; "required": false; }; "whiteSpace": { "alias": "whiteSpace"; "required": false; }; }, {}, never, never, true, never>;
|
|
1147
1125
|
}
|
|
1148
1126
|
|
|
1149
1127
|
declare class ReferenceNodeComponent {
|
|
@@ -1290,11 +1268,14 @@ interface EnhanceRenderedHtmlOptions {
|
|
|
1290
1268
|
final?: boolean;
|
|
1291
1269
|
isDark?: boolean;
|
|
1292
1270
|
renderCodeBlocksAsPre?: boolean;
|
|
1293
|
-
monacoOptions?: CodeBlockMonacoOptions;
|
|
1294
1271
|
d2ThemeId?: number | null;
|
|
1295
1272
|
d2DarkThemeId?: number | null;
|
|
1296
1273
|
showTooltips?: boolean;
|
|
1274
|
+
codeBlockOptions?: CodeBlockOptions;
|
|
1297
1275
|
codeBlockProps?: NodeRendererCodeBlockProps;
|
|
1276
|
+
codeBlockDarkTheme?: CodeBlockTheme;
|
|
1277
|
+
codeBlockLightTheme?: CodeBlockTheme;
|
|
1278
|
+
themes?: CodeBlockThemes;
|
|
1298
1279
|
mermaidProps?: NodeRendererMermaidProps;
|
|
1299
1280
|
d2Props?: NodeRendererD2Props;
|
|
1300
1281
|
infographicProps?: NodeRendererInfographicProps;
|
|
@@ -1439,7 +1420,7 @@ declare class SmoothMarkdownStreamService implements OnDestroy {
|
|
|
1439
1420
|
|
|
1440
1421
|
type LanguageIconResolver = (lang: string) => string | undefined | null;
|
|
1441
1422
|
declare function normalizeLanguageIdentifier(lang?: string | null): string;
|
|
1442
|
-
declare function
|
|
1423
|
+
declare function resolveLanguageId(lang?: string | null): string;
|
|
1443
1424
|
declare function setLanguageIconResolver(resolver?: LanguageIconResolver | null): void;
|
|
1444
1425
|
declare function getLanguageIcon(lang: string): string;
|
|
1445
1426
|
declare const languageMap: Record<string, string>;
|
|
@@ -1531,5 +1512,5 @@ declare function canParseOffthread(code: string, theme: Theme, timeout?: number)
|
|
|
1531
1512
|
declare function findPrefixOffthread(code: string, theme: Theme, timeout?: number): Promise<string>;
|
|
1532
1513
|
declare function terminateWorker(): void;
|
|
1533
1514
|
|
|
1534
|
-
export { AdmonitionNodeComponent as AdmonitionNode, CodeBlockNodeComponent as AngularCodeBlockNode, BlockquoteNodeComponent as BlockquoteNode, CheckboxNodeComponent as CheckboxNode, CodeBlockNodeComponent as CodeBlockNode, D2BlockNodeComponent as D2BlockNode, DefinitionListNodeComponent as DefinitionListNode, EmojiNodeComponent as EmojiNode, EmphasisNodeComponent as EmphasisNode, FallbackComponent, FootnoteAnchorNodeComponent as FootnoteAnchorNode, FootnoteNodeComponent as FootnoteNode, FootnoteReferenceNodeComponent as FootnoteReferenceNode, HardBreakNodeComponent as HardBreakNode, HeadingNodeComponent as HeadingNode, HighlightNodeComponent as HighlightNode, HtmlBlockNodeComponent as HtmlBlockNode, HtmlInlineNodeComponent as HtmlInlineNode, HtmlPreviewFrameComponent as HtmlPreviewFrame, ImageNodeComponent as ImageNode, InfographicBlockNodeComponent as InfographicBlockNode, InlineCodeNodeComponent as InlineCodeNode, InsertNodeComponent as InsertNode, LinkNodeComponent as LinkNode, ListItemNodeComponent as ListItemNode, ListNodeComponent as ListNode, MARKSTREAM_SMOOTH_STREAMING_SCOPE, MERMAID_DISABLED_CODE, MERMAID_WORKER_BUSY_CODE,
|
|
1535
|
-
export type { AngularRenderContext, AngularRenderableNode, BackpressureOptions,
|
|
1515
|
+
export { AdmonitionNodeComponent as AdmonitionNode, CodeBlockNodeComponent as AngularCodeBlockNode, BlockquoteNodeComponent as BlockquoteNode, CheckboxNodeComponent as CheckboxNode, CodeBlockNodeComponent as CodeBlockNode, D2BlockNodeComponent as D2BlockNode, DefinitionListNodeComponent as DefinitionListNode, EmojiNodeComponent as EmojiNode, EmphasisNodeComponent as EmphasisNode, FallbackComponent, FootnoteAnchorNodeComponent as FootnoteAnchorNode, FootnoteNodeComponent as FootnoteNode, FootnoteReferenceNodeComponent as FootnoteReferenceNode, HardBreakNodeComponent as HardBreakNode, HeadingNodeComponent as HeadingNode, HighlightNodeComponent as HighlightNode, HtmlBlockNodeComponent as HtmlBlockNode, HtmlInlineNodeComponent as HtmlInlineNode, HtmlPreviewFrameComponent as HtmlPreviewFrame, ImageNodeComponent as ImageNode, InfographicBlockNodeComponent as InfographicBlockNode, InlineCodeNodeComponent as InlineCodeNode, InsertNodeComponent as InsertNode, LinkNodeComponent as LinkNode, ListItemNodeComponent as ListItemNode, ListNodeComponent as ListNode, MARKSTREAM_SMOOTH_STREAMING_SCOPE, MERMAID_DISABLED_CODE, MERMAID_WORKER_BUSY_CODE, NodeRendererComponent as MarkdownRenderComponent, NodeRendererComponent as MarkstreamAngularComponent, MathBlockNodeComponent as MathBlockNode, MathInlineNodeComponent as MathInlineNode, MermaidBlockNodeComponent as MermaidBlockNode, NestedRendererComponent as NestedRenderer, NodeRendererComponent as NodeRenderer, ParagraphNodeComponent as ParagraphNode, PreCodeNodeComponent as PreCodeNode, ReferenceNodeComponent as ReferenceNode, SafeAttrsDirective, SmoothMarkdownStreamService, StrikethroughNodeComponent as StrikethroughNode, StrongNodeComponent as StrongNode, SubscriptNodeComponent as SubscriptNode, SuperscriptNodeComponent as SuperscriptNode, TableNodeComponent as TableNode, TextNodeComponent as TextNode, ThematicBreakNodeComponent as ThematicBreakNode, VmrContainerNodeComponent as VmrContainerNode, WORKER_BUSY_CODE, buildKaTeXCDNWorkerSource, buildMermaidCDNWorkerSource, buildRenderContext, canParseOffthread, clearGlobalCustomComponents, clearKaTeXWorker, clearMermaidWorker, createKaTeXWorkerFromCDN, createMermaidWorkerFromCDN, disableD2, disableKatex, disableMermaid, disposeRenderedHtmlEnhancements, enableD2, enableKatex, enableMermaid, enhanceRenderedHtml, findPrefixOffthread, getCustomComponentsRevision, getCustomNodeComponents, getKaTeXBackpressureDefaults, getKaTeXWorkerLoad, getKatex, getLanguageIcon, getMermaid, getMermaidWorkerLoad, isD2Enabled, isKaTeXWorkerBusy, isKatexEnabled, isMermaidEnabled, languageMap, normalizeLanguageIdentifier, parseNestedMarkdownToNodes, removeCustomComponents, renderKaTeXInWorker, renderKaTeXWithBackpressure, renderMarkdownNodeToHtml, renderMarkdownNodesToHtml, renderMarkdownToHtml, renderNestedMarkdownToHtml, resolveLanguageId, resolveParsedNodes, sanitizeHtmlContent, setCustomComponents, setD2Loader, setDefaultI18nMap, setKaTeXBackpressureDefaults, setKaTeXCache, setKaTeXWorker, setKaTeXWorkerDebug, setKaTeXWorkerMaxConcurrency, setKatexLoader, setLanguageIconResolver, setMermaidLoader, setMermaidWorker, setMermaidWorkerClientDebug, setMermaidWorkerMaxConcurrency, subscribeCustomComponents, terminateWorker, useSafeI18n, waitForKaTeXWorkerSlot };
|
|
1516
|
+
export type { AngularRenderContext, AngularRenderableNode, BackpressureOptions, CodeBlockDiffHideUnchangedRegions, CodeBlockDiffHideUnchangedRegionsOptions, CodeBlockOptions, CodeBlockPreviewPayload, CodeBlockTheme, CodeBlockThemePair, CodeBlockThemeProp, CodeBlockThemes, CustomComponentMap, D2Loader, EnhanceRenderedHtmlOptions, KaTeXCDNWorkerHandle, KaTeXCDNWorkerMode, KaTeXCDNWorkerOptions, KatexLoader, LanguageIconResolver, NodeRendererProps as MarkstreamAngularComponentProps, MarkstreamAngularRenderOptions, MermaidCDNWorkerHandle, MermaidCDNWorkerMode, MermaidCDNWorkerOptions, MermaidLoader, NestedMarkdownHtmlInput, NestedMarkdownHtmlOptions, NestedMarkdownNodesInput, NestedMarkdownNodesOptions, NodeRendererCodeBlockProps, NodeRendererD2Props, NodeRendererEvents, NodeRendererInfographicProps, NodeRendererMermaidProps, NodeRendererProps, RenderableMarkdownNode, RenderedHtmlEnhancementHandle, SmoothStreamingScope };
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "markstream-angular",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
5
|
-
"description": "Angular 20+ standalone streaming Markdown renderer for AI chat, LLM token streams, SSE/WebSocket output, incomplete Markdown, Mermaid, KaTeX,
|
|
4
|
+
"version": "0.1.0-beta.2",
|
|
5
|
+
"description": "Angular 20+ standalone streaming Markdown renderer for AI chat, LLM token streams, SSE/WebSocket output, incomplete Markdown, Mermaid, KaTeX, stream-diffs powered code blocks, and safe Angular component rendering.",
|
|
6
6
|
"author": "Simon He",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://markstream.simonhe.me/frameworks/angular",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"streaming-mermaid",
|
|
41
41
|
"katex",
|
|
42
42
|
"streaming-katex",
|
|
43
|
-
"
|
|
43
|
+
"stream-diffs",
|
|
44
44
|
"streaming-code-blocks",
|
|
45
45
|
"large-documents",
|
|
46
46
|
"custom-components",
|
|
@@ -73,8 +73,7 @@
|
|
|
73
73
|
"@terrastruct/d2": ">=0.1.33",
|
|
74
74
|
"katex": ">=0.16.22",
|
|
75
75
|
"mermaid": ">=11",
|
|
76
|
-
"stream-diffs": ">=0.0.2"
|
|
77
|
-
"stream-monaco": ">=0.0.48"
|
|
76
|
+
"stream-diffs": ">=0.0.2"
|
|
78
77
|
},
|
|
79
78
|
"peerDependenciesMeta": {
|
|
80
79
|
"@antv/infographic": {
|
|
@@ -91,15 +90,12 @@
|
|
|
91
90
|
},
|
|
92
91
|
"stream-diffs": {
|
|
93
92
|
"optional": true
|
|
94
|
-
},
|
|
95
|
-
"stream-monaco": {
|
|
96
|
-
"optional": true
|
|
97
93
|
}
|
|
98
94
|
},
|
|
99
95
|
"dependencies": {
|
|
100
96
|
"@floating-ui/dom": "^1.8.0",
|
|
101
|
-
"markstream-core": "1.0.
|
|
102
|
-
"stream-markdown-parser": "1.2.
|
|
97
|
+
"markstream-core": "1.1.0-beta.1",
|
|
98
|
+
"stream-markdown-parser": "1.2.5-beta.1"
|
|
103
99
|
},
|
|
104
100
|
"devDependencies": {
|
|
105
101
|
"@angular/common": "^20.3.26",
|
|
@@ -120,6 +116,6 @@
|
|
|
120
116
|
"typecheck": "tsc --noEmit",
|
|
121
117
|
"check:core-published": "node ../../scripts/check-core-published.mjs --package-json package.json --core-package-json ../markstream-core/package.json",
|
|
122
118
|
"check:workspace-deps-published": "node ../../scripts/check-workspace-deps-published.mjs --package-json package.json",
|
|
123
|
-
"release": "pnpm run check:workspace-deps-published && bumpp --all --commit --no-tag --no-push --execute 'pnpm --workspace-root run docs:llms:generate' &&
|
|
119
|
+
"release": "pnpm run check:workspace-deps-published && bumpp --all --commit --no-tag --no-push --execute 'pnpm --workspace-root run docs:llms:generate' && DIST_TAG=\"$(node ../../scripts/dist-tag.mjs)\" && pnpm publish --access public --tag \"${DIST_TAG}\" && node ../../scripts/tag-package.mjs --package-json package.json --push"
|
|
124
120
|
}
|
|
125
121
|
}
|