markstream-react 0.0.20-beta.8 → 0.0.20
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 +15 -0
- package/dist/index.d.ts +15 -9
- package/dist/index.js +140 -140
- package/dist/languageIconExtended-B1nZmPQn.js +1 -0
- package/dist/tailwind.ts +1 -1
- package/package.json +5 -2
- package/dist/index-GGJFJL7K.js +0 -1
package/README.md
CHANGED
|
@@ -12,6 +12,8 @@ pnpm --filter markstream-react dev
|
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
pnpm --filter markstream-react build
|
|
15
|
+
pnpm --filter markstream-react build:analyze
|
|
16
|
+
pnpm --filter markstream-react size:check
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
## Usage
|
|
@@ -29,6 +31,19 @@ export default function Article({ markdown }: { markdown: string }) {
|
|
|
29
31
|
|
|
30
32
|
You can also pass a pre-parsed `nodes` array if you already have AST data.
|
|
31
33
|
|
|
34
|
+
## Bundle size notes
|
|
35
|
+
|
|
36
|
+
- Optional peers are not bundled; install only what you use (`stream-monaco`, `stream-markdown`, `mermaid`, `katex`, etc.).
|
|
37
|
+
- Infrequent language icons are split into an async chunk and loaded on demand.
|
|
38
|
+
- To avoid first-hit fallback icons, preload once when the app is idle:
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { preloadExtendedLanguageIcons } from 'markstream-react'
|
|
42
|
+
|
|
43
|
+
if (typeof window !== 'undefined')
|
|
44
|
+
void preloadExtendedLanguageIcons()
|
|
45
|
+
```
|
|
46
|
+
|
|
32
47
|
## Tailwind
|
|
33
48
|
|
|
34
49
|
- Non-Tailwind projects: keep importing `markstream-react/index.css` (includes precompiled utilities for the renderer).
|
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ interface NodeRendererProps {
|
|
|
28
28
|
codeBlockMinWidth?: string | number;
|
|
29
29
|
codeBlockMaxWidth?: string | number;
|
|
30
30
|
codeBlockProps?: Record<string, any>;
|
|
31
|
+
showTooltips?: boolean;
|
|
31
32
|
themes?: string[];
|
|
32
33
|
isDark?: boolean;
|
|
33
34
|
customId?: string;
|
|
@@ -55,6 +56,7 @@ interface RenderContext {
|
|
|
55
56
|
typewriter?: boolean;
|
|
56
57
|
customComponents?: Record<string, React.ComponentType<any>>;
|
|
57
58
|
codeBlockProps?: Record<string, any>;
|
|
59
|
+
showTooltips?: boolean;
|
|
58
60
|
codeBlockStream?: boolean;
|
|
59
61
|
renderCodeBlocksAsPre?: boolean;
|
|
60
62
|
codeBlockThemes?: {
|
|
@@ -122,6 +124,7 @@ interface CodeBlockNodeProps {
|
|
|
122
124
|
showExpandButton?: boolean;
|
|
123
125
|
showPreviewButton?: boolean;
|
|
124
126
|
showFontSizeButtons?: boolean;
|
|
127
|
+
showTooltips?: boolean;
|
|
125
128
|
customId?: string;
|
|
126
129
|
}
|
|
127
130
|
interface ImageNodeProps {
|
|
@@ -258,6 +261,14 @@ interface HtmlPreviewFrameProps {
|
|
|
258
261
|
}
|
|
259
262
|
declare function HtmlPreviewFrame(props: HtmlPreviewFrameProps): React.ReactPortal;
|
|
260
263
|
|
|
264
|
+
type D2Loader = () => Promise<any> | any;
|
|
265
|
+
declare function setD2Loader(loader: D2Loader | null): void;
|
|
266
|
+
declare function enableD2(loader?: D2Loader): void;
|
|
267
|
+
declare function disableD2(): void;
|
|
268
|
+
declare function isD2Enabled(): boolean;
|
|
269
|
+
|
|
270
|
+
declare function D2BlockNode(rawProps: D2BlockNodeProps): react_jsx_runtime.JSX.Element;
|
|
271
|
+
|
|
261
272
|
declare function DefinitionListNode(props: NodeComponentProps<{
|
|
262
273
|
type: 'definition_list';
|
|
263
274
|
items?: any[];
|
|
@@ -328,8 +339,6 @@ interface ImageNodeReactEvents {
|
|
|
328
339
|
}
|
|
329
340
|
declare function ImageNode(rawProps: ImageNodeProps & ImageNodeReactEvents): react_jsx_runtime.JSX.Element;
|
|
330
341
|
|
|
331
|
-
declare function D2BlockNode(rawProps: D2BlockNodeProps): react_jsx_runtime.JSX.Element;
|
|
332
|
-
|
|
333
342
|
interface InfographicBlockNodeReactEvents {
|
|
334
343
|
onCopy?: (code: string) => void;
|
|
335
344
|
onExport?: (event: MermaidBlockEvent<{
|
|
@@ -415,6 +424,7 @@ interface MarkdownCodeBlockNodeProps {
|
|
|
415
424
|
showExpandButton?: boolean;
|
|
416
425
|
showPreviewButton?: boolean;
|
|
417
426
|
showFontSizeButtons?: boolean;
|
|
427
|
+
showTooltips?: boolean;
|
|
418
428
|
onCopy?: (code: string) => void;
|
|
419
429
|
onPreviewCode?: (payload: {
|
|
420
430
|
type: string;
|
|
@@ -540,16 +550,12 @@ declare function useSafeI18n(): {
|
|
|
540
550
|
|
|
541
551
|
declare function renderNode(node: ParsedNode, key: React.Key, ctx: RenderContext): react_jsx_runtime.JSX.Element;
|
|
542
552
|
|
|
543
|
-
type D2Loader = () => Promise<any> | any;
|
|
544
|
-
declare function setD2Loader(loader: D2Loader | null): void;
|
|
545
|
-
declare function enableD2(loader?: D2Loader): void;
|
|
546
|
-
declare function disableD2(): void;
|
|
547
|
-
declare function isD2Enabled(): boolean;
|
|
548
|
-
|
|
549
553
|
type LanguageIconResolver = (lang: string) => string | undefined | null;
|
|
550
554
|
declare function setLanguageIconResolver(resolver?: LanguageIconResolver | null): void;
|
|
551
555
|
declare function normalizeLanguageIdentifier(lang?: string | null): string;
|
|
552
556
|
declare function resolveMonacoLanguageId(lang?: string | null): string;
|
|
557
|
+
declare function preloadExtendedLanguageIcons(): Promise<void>;
|
|
558
|
+
declare function subscribeLanguageIconsRevision(listener: () => void): () => void;
|
|
553
559
|
declare function getLanguageIcon(lang: string): string;
|
|
554
560
|
declare const languageMap: Record<string, string>;
|
|
555
561
|
|
|
@@ -598,4 +604,4 @@ declare function canParseOffthread(code: string, theme: Theme, timeout?: number)
|
|
|
598
604
|
declare function findPrefixOffthread(code: string, theme: Theme, timeout?: number): Promise<string>;
|
|
599
605
|
declare function terminateWorker(): void;
|
|
600
606
|
|
|
601
|
-
export { AdmonitionNode, BackpressureOptions, BlockquoteNode, CheckboxNode, CodeBlockNode, CodeBlockNodeProps, D2BlockNode, D2BlockNodeProps, D2Loader, DefinitionListNode, EmojiNode, EmphasisNode, FallbackComponent, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlPreviewFrame, ImageNode, ImageNodeProps, InfographicBlockNode, InfographicBlockNodeProps, InlineCodeNode, InsertNode, LanguageIconResolver, LinkNode, LinkNodeProps, ListItemNode, ListNode, MERMAID_WORKER_BUSY_CODE, MarkdownCodeBlockNode, MathBlockNode, MathBlockNodeProps, MathInlineNode, MathInlineNodeProps, MermaidBlockEvent, MermaidBlockNode, MermaidBlockNodeProps, NodeComponentProps, NodeRenderer, NodeRendererProps, ParagraphNode, PreCodeNode, PreCodeNodeProps, CodeBlockNode as ReactCodeBlockNode, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TableNode, TextNode, ThematicBreakNode, Tooltip, VmrContainerNode, WORKER_BUSY_CODE, canParseOffthread, clearGlobalCustomComponents, clearKaTeXCache, clearKaTeXWorker, clearMermaidWorker, NodeRenderer as default, disableD2, enableD2, findPrefixOffthread, getCustomNodeComponents, getKaTeXBackpressureDefaults, getLanguageIcon, getMermaidWorkerLoad, isD2Enabled, languageMap, normalizeLanguageIdentifier, removeCustomComponents, renderKaTeXInWorker, renderKaTeXWithBackpressure, renderNode, resolveMonacoLanguageId, setCustomComponents, setD2Loader, setDefaultI18nMap, setKaTeXBackpressureDefaults, setKaTeXCache, setKaTeXConcurrencyLimit, setKaTeXWorker, setKaTeXWorkerDebug, setLanguageIconResolver, setMermaidWorker, setMermaidWorkerClientDebug, setMermaidWorkerMaxConcurrency, terminateWorker, useSafeI18n, waitForKaTeXWorkerSlot };
|
|
607
|
+
export { AdmonitionNode, BackpressureOptions, BlockquoteNode, CheckboxNode, CodeBlockNode, CodeBlockNodeProps, D2BlockNode, D2BlockNodeProps, D2Loader, DefinitionListNode, EmojiNode, EmphasisNode, FallbackComponent, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlPreviewFrame, ImageNode, ImageNodeProps, InfographicBlockNode, InfographicBlockNodeProps, InlineCodeNode, InsertNode, LanguageIconResolver, LinkNode, LinkNodeProps, ListItemNode, ListNode, MERMAID_WORKER_BUSY_CODE, MarkdownCodeBlockNode, MathBlockNode, MathBlockNodeProps, MathInlineNode, MathInlineNodeProps, MermaidBlockEvent, MermaidBlockNode, MermaidBlockNodeProps, NodeComponentProps, NodeRenderer, NodeRendererProps, ParagraphNode, PreCodeNode, PreCodeNodeProps, CodeBlockNode as ReactCodeBlockNode, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TableNode, TextNode, ThematicBreakNode, Tooltip, VmrContainerNode, WORKER_BUSY_CODE, canParseOffthread, clearGlobalCustomComponents, clearKaTeXCache, clearKaTeXWorker, clearMermaidWorker, NodeRenderer as default, disableD2, enableD2, findPrefixOffthread, getCustomNodeComponents, getKaTeXBackpressureDefaults, getLanguageIcon, getMermaidWorkerLoad, isD2Enabled, languageMap, normalizeLanguageIdentifier, preloadExtendedLanguageIcons, removeCustomComponents, renderKaTeXInWorker, renderKaTeXWithBackpressure, renderNode, resolveMonacoLanguageId, setCustomComponents, setD2Loader, setDefaultI18nMap, setKaTeXBackpressureDefaults, setKaTeXCache, setKaTeXConcurrencyLimit, setKaTeXWorker, setKaTeXWorkerDebug, setLanguageIconResolver, setMermaidWorker, setMermaidWorkerClientDebug, setMermaidWorkerMaxConcurrency, subscribeLanguageIconsRevision, terminateWorker, useSafeI18n, waitForKaTeXWorkerSlot };
|