react-native-nitro-markdown 0.7.2 → 0.8.0

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 (79) hide show
  1. package/README.md +66 -4
  2. package/ios/HybridMarkdownSession.swift +11 -4
  3. package/lib/commonjs/MarkdownContext.js +1 -3
  4. package/lib/commonjs/MarkdownContext.js.map +1 -1
  5. package/lib/commonjs/index.js +6 -0
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/markdown-stream.js +80 -29
  8. package/lib/commonjs/markdown-stream.js.map +1 -1
  9. package/lib/commonjs/markdown.js +94 -37
  10. package/lib/commonjs/markdown.js.map +1 -1
  11. package/lib/commonjs/renderers/image.js +2 -2
  12. package/lib/commonjs/renderers/image.js.map +1 -1
  13. package/lib/commonjs/renderers/math.js +6 -2
  14. package/lib/commonjs/renderers/math.js.map +1 -1
  15. package/lib/commonjs/renderers/table/index.js +4 -4
  16. package/lib/commonjs/renderers/table/index.js.map +1 -1
  17. package/lib/commonjs/renderers/table/table-utils.js +1 -1
  18. package/lib/commonjs/renderers/table/table-utils.js.map +1 -1
  19. package/lib/commonjs/utils/code-highlight.js +1 -1
  20. package/lib/commonjs/utils/code-highlight.js.map +1 -1
  21. package/lib/commonjs/utils/incremental-ast.js +24 -11
  22. package/lib/commonjs/utils/incremental-ast.js.map +1 -1
  23. package/lib/commonjs/utils/link-security.js +2 -2
  24. package/lib/commonjs/utils/link-security.js.map +1 -1
  25. package/lib/commonjs/utils/stream-timeline.js +13 -7
  26. package/lib/commonjs/utils/stream-timeline.js.map +1 -1
  27. package/lib/module/MarkdownContext.js +1 -3
  28. package/lib/module/MarkdownContext.js.map +1 -1
  29. package/lib/module/index.js +1 -1
  30. package/lib/module/index.js.map +1 -1
  31. package/lib/module/markdown-stream.js +79 -29
  32. package/lib/module/markdown-stream.js.map +1 -1
  33. package/lib/module/markdown.js +94 -37
  34. package/lib/module/markdown.js.map +1 -1
  35. package/lib/module/renderers/image.js +2 -2
  36. package/lib/module/renderers/image.js.map +1 -1
  37. package/lib/module/renderers/math.js +6 -2
  38. package/lib/module/renderers/math.js.map +1 -1
  39. package/lib/module/renderers/table/index.js +4 -4
  40. package/lib/module/renderers/table/index.js.map +1 -1
  41. package/lib/module/renderers/table/table-utils.js +1 -1
  42. package/lib/module/renderers/table/table-utils.js.map +1 -1
  43. package/lib/module/utils/code-highlight.js +1 -1
  44. package/lib/module/utils/code-highlight.js.map +1 -1
  45. package/lib/module/utils/incremental-ast.js +24 -11
  46. package/lib/module/utils/incremental-ast.js.map +1 -1
  47. package/lib/module/utils/link-security.js +2 -2
  48. package/lib/module/utils/link-security.js.map +1 -1
  49. package/lib/module/utils/stream-timeline.js +13 -7
  50. package/lib/module/utils/stream-timeline.js.map +1 -1
  51. package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/index.d.ts +2 -2
  53. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/markdown-stream.d.ts +28 -7
  55. package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/utils/incremental-ast.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/utils/stream-timeline.d.ts.map +1 -1
  59. package/lib/typescript/module/MarkdownContext.d.ts.map +1 -1
  60. package/lib/typescript/module/index.d.ts +2 -2
  61. package/lib/typescript/module/index.d.ts.map +1 -1
  62. package/lib/typescript/module/markdown-stream.d.ts +28 -7
  63. package/lib/typescript/module/markdown-stream.d.ts.map +1 -1
  64. package/lib/typescript/module/markdown.d.ts.map +1 -1
  65. package/lib/typescript/module/utils/incremental-ast.d.ts.map +1 -1
  66. package/lib/typescript/module/utils/stream-timeline.d.ts.map +1 -1
  67. package/package.json +1 -1
  68. package/src/MarkdownContext.ts +0 -2
  69. package/src/index.ts +9 -2
  70. package/src/markdown-stream.tsx +107 -31
  71. package/src/markdown.tsx +75 -41
  72. package/src/renderers/image.tsx +2 -2
  73. package/src/renderers/math.tsx +2 -2
  74. package/src/renderers/table/index.tsx +4 -4
  75. package/src/renderers/table/table-utils.ts +1 -1
  76. package/src/utils/code-highlight.ts +1 -1
  77. package/src/utils/incremental-ast.ts +25 -9
  78. package/src/utils/link-security.ts +3 -3
  79. package/src/utils/stream-timeline.ts +10 -7
@@ -1 +1 @@
1
- {"version":3,"names":["ALLOWED_LINK_PROTOCOLS","Set","DEFAULT_IMAGE_PROTOCOLS","CONTROL_CHARACTER_PATTERN","normalizeLinkHref","href","normalizedHref","trim","test","length","exports","parseAbsoluteHref","protocolMatch","match","protocol","normalizeProtocol","rest","slice","authorityMatch","rawHost","hostname","replace","split","toLowerCase","normalized","endsWith","getAllowedExternalHref","parsed","has","getAllowedImageHref","options","allowedProtocols","map","allowedHosts","normalizedHost","allowedHostSet","host","filter","Boolean"],"sourceRoot":"../../../src","sources":["utils/link-security.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ALLOWED_LINK_PROTOCOLS","Set","DEFAULT_IMAGE_PROTOCOLS","CONTROL_CHARACTER_PATTERN","normalizeLinkHref","href","normalizedHref","trim","test","length","exports","parseAbsoluteHref","protocolMatch","match","protocol","normalizeProtocol","rest","slice","authorityMatch","rawHost","hostname","replace","split","toLowerCase","normalized","endsWith","getAllowedExternalHref","parsed","has","getAllowedImageHref","options","allowedProtocols","map","allowedHosts","normalizedHost","allowedHostSet","host","filter","Boolean"],"sourceRoot":"../../../src","sources":["utils/link-security.ts"],"mappings":"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","ignoreList":[]}
@@ -11,13 +11,18 @@ const createTimestampTimeline = timestamps => {
11
11
  monotonic: true
12
12
  };
13
13
  }
14
- const entries = Object.keys(timestamps).map(Number).filter(index => Number.isFinite(index)).sort((a, b) => a - b).map(index => ({
15
- index,
16
- time: timestamps[index]
17
- })).filter(entry => Number.isFinite(entry.time));
14
+ const entries = Object.keys(timestamps).map(Number).filter(index => Number.isFinite(index)).sort((a, b) => a - b).flatMap(index => {
15
+ const time = timestamps[index];
16
+ return time === undefined ? [] : [{
17
+ index,
18
+ time
19
+ }];
20
+ }).filter(entry => Number.isFinite(entry.time));
18
21
  let monotonic = true;
19
22
  for (let i = 1; i < entries.length; i += 1) {
20
- if (entries[i].time < entries[i - 1].time) {
23
+ const current = entries[i];
24
+ const previous = entries[i - 1];
25
+ if (current && previous && current.time < previous.time) {
21
26
  monotonic = false;
22
27
  break;
23
28
  }
@@ -48,7 +53,8 @@ const resolveHighlightPosition = (timeline, currentTimeMs) => {
48
53
  let resolvedIndex = -1;
49
54
  while (left <= right) {
50
55
  const mid = left + right >> 1;
51
- if (entries[mid].time <= currentTimeMs) {
56
+ const entry = entries[mid];
57
+ if (entry !== undefined && entry.time <= currentTimeMs) {
52
58
  resolvedIndex = mid;
53
59
  left = mid + 1;
54
60
  } else {
@@ -56,7 +62,7 @@ const resolveHighlightPosition = (timeline, currentTimeMs) => {
56
62
  }
57
63
  }
58
64
  if (resolvedIndex === -1) return 0;
59
- return entries[resolvedIndex].index + 1;
65
+ return (entries[resolvedIndex]?.index ?? 0) + 1;
60
66
  };
61
67
  exports.resolveHighlightPosition = resolveHighlightPosition;
62
68
  //# sourceMappingURL=stream-timeline.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createTimestampTimeline","timestamps","entries","monotonic","Object","keys","map","Number","filter","index","isFinite","sort","a","b","time","entry","i","length","exports","resolveHighlightPosition","timeline","currentTimeMs","wordIndex","left","right","resolvedIndex","mid"],"sourceRoot":"../../../src","sources":["utils/stream-timeline.ts"],"mappings":";;;;;;AAUO,MAAMA,uBAAuB,GAClCC,UAAmC,IACb;EACtB,IAAI,CAACA,UAAU,EAAE;IACf,OAAO;MAAEC,OAAO,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAK,CAAC;EACzC;EAEA,MAAMD,OAAO,GAAGE,MAAM,CAACC,IAAI,CAACJ,UAAU,CAAC,CACpCK,GAAG,CAACC,MAAM,CAAC,CACXC,MAAM,CAAEC,KAAK,IAAKF,MAAM,CAACG,QAAQ,CAACD,KAAK,CAAC,CAAC,CACzCE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC,CACrBP,GAAG,CAAEG,KAAK,KAAM;IACfA,KAAK;IACLK,IAAI,EAAEb,UAAU,CAACQ,KAAK;EACxB,CAAC,CAAC,CAAC,CACFD,MAAM,CAAEO,KAAK,IAAKR,MAAM,CAACG,QAAQ,CAACK,KAAK,CAACD,IAAI,CAAC,CAAC;EAEjD,IAAIX,SAAS,GAAG,IAAI;EACpB,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,OAAO,CAACe,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IAC1C,IAAId,OAAO,CAACc,CAAC,CAAC,CAACF,IAAI,GAAGZ,OAAO,CAACc,CAAC,GAAG,CAAC,CAAC,CAACF,IAAI,EAAE;MACzCX,SAAS,GAAG,KAAK;MACjB;IACF;EACF;EAEA,OAAO;IAAED,OAAO;IAAEC;EAAU,CAAC;AAC/B,CAAC;AAACe,OAAA,CAAAlB,uBAAA,GAAAA,uBAAA;AAEK,MAAMmB,wBAAwB,GAAGA,CACtCC,QAA2B,EAC3BC,aAAqB,KACV;EACX,MAAM;IAAEnB,OAAO;IAAEC;EAAU,CAAC,GAAGiB,QAAQ;EACvC,IAAIlB,OAAO,CAACe,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC;EAElC,IAAI,CAACd,SAAS,EAAE;IACd,IAAImB,SAAS,GAAG,CAAC;IACjB,KAAK,MAAMP,KAAK,IAAIb,OAAO,EAAE;MAC3B,IAAImB,aAAa,IAAIN,KAAK,CAACD,IAAI,EAAE;QAC/BQ,SAAS,GAAGP,KAAK,CAACN,KAAK,GAAG,CAAC;MAC7B;IACF;IACA,OAAOa,SAAS;EAClB;EAEA,IAAIC,IAAI,GAAG,CAAC;EACZ,IAAIC,KAAK,GAAGtB,OAAO,CAACe,MAAM,GAAG,CAAC;EAC9B,IAAIQ,aAAa,GAAG,CAAC,CAAC;EAEtB,OAAOF,IAAI,IAAIC,KAAK,EAAE;IACpB,MAAME,GAAG,GAAIH,IAAI,GAAGC,KAAK,IAAK,CAAC;IAC/B,IAAItB,OAAO,CAACwB,GAAG,CAAC,CAACZ,IAAI,IAAIO,aAAa,EAAE;MACtCI,aAAa,GAAGC,GAAG;MACnBH,IAAI,GAAGG,GAAG,GAAG,CAAC;IAChB,CAAC,MAAM;MACLF,KAAK,GAAGE,GAAG,GAAG,CAAC;IACjB;EACF;EAEA,IAAID,aAAa,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;EAClC,OAAOvB,OAAO,CAACuB,aAAa,CAAC,CAAChB,KAAK,GAAG,CAAC;AACzC,CAAC;AAACS,OAAA,CAAAC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["createTimestampTimeline","timestamps","entries","monotonic","Object","keys","map","Number","filter","index","isFinite","sort","a","b","flatMap","time","undefined","entry","i","length","current","previous","exports","resolveHighlightPosition","timeline","currentTimeMs","wordIndex","left","right","resolvedIndex","mid"],"sourceRoot":"../../../src","sources":["utils/stream-timeline.ts"],"mappings":";;;;;;AAUO,MAAMA,uBAAuB,GAClCC,UAAmC,IACb;EACtB,IAAI,CAACA,UAAU,EAAE;IACf,OAAO;MAAEC,OAAO,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAK,CAAC;EACzC;EAEA,MAAMD,OAAO,GAAGE,MAAM,CAACC,IAAI,CAACJ,UAAU,CAAC,CACpCK,GAAG,CAACC,MAAM,CAAC,CACXC,MAAM,CAAEC,KAAK,IAAKF,MAAM,CAACG,QAAQ,CAACD,KAAK,CAAC,CAAC,CACzCE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC,CACrBC,OAAO,CAAEL,KAAK,IAAK;IAClB,MAAMM,IAAI,GAAGd,UAAU,CAACQ,KAAK,CAAC;IAC9B,OAAOM,IAAI,KAAKC,SAAS,GAAG,EAAE,GAAG,CAAC;MAAEP,KAAK;MAAEM;IAAK,CAAC,CAAC;EACpD,CAAC,CAAC,CACDP,MAAM,CAAES,KAAK,IAAKV,MAAM,CAACG,QAAQ,CAACO,KAAK,CAACF,IAAI,CAAC,CAAC;EAEjD,IAAIZ,SAAS,GAAG,IAAI;EACpB,KAAK,IAAIe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhB,OAAO,CAACiB,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IAC1C,MAAME,OAAO,GAAGlB,OAAO,CAACgB,CAAC,CAAC;IAC1B,MAAMG,QAAQ,GAAGnB,OAAO,CAACgB,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAIE,OAAO,IAAIC,QAAQ,IAAID,OAAO,CAACL,IAAI,GAAGM,QAAQ,CAACN,IAAI,EAAE;MACvDZ,SAAS,GAAG,KAAK;MACjB;IACF;EACF;EAEA,OAAO;IAAED,OAAO;IAAEC;EAAU,CAAC;AAC/B,CAAC;AAACmB,OAAA,CAAAtB,uBAAA,GAAAA,uBAAA;AAEK,MAAMuB,wBAAwB,GAAGA,CACtCC,QAA2B,EAC3BC,aAAqB,KACV;EACX,MAAM;IAAEvB,OAAO;IAAEC;EAAU,CAAC,GAAGqB,QAAQ;EACvC,IAAItB,OAAO,CAACiB,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC;EAElC,IAAI,CAAChB,SAAS,EAAE;IACd,IAAIuB,SAAS,GAAG,CAAC;IACjB,KAAK,MAAMT,KAAK,IAAIf,OAAO,EAAE;MAC3B,IAAIuB,aAAa,IAAIR,KAAK,CAACF,IAAI,EAAE;QAC/BW,SAAS,GAAGT,KAAK,CAACR,KAAK,GAAG,CAAC;MAC7B;IACF;IACA,OAAOiB,SAAS;EAClB;EAEA,IAAIC,IAAI,GAAG,CAAC;EACZ,IAAIC,KAAK,GAAG1B,OAAO,CAACiB,MAAM,GAAG,CAAC;EAC9B,IAAIU,aAAa,GAAG,CAAC,CAAC;EAEtB,OAAOF,IAAI,IAAIC,KAAK,EAAE;IACpB,MAAME,GAAG,GAAIH,IAAI,GAAGC,KAAK,IAAK,CAAC;IAC/B,MAAMX,KAAK,GAAGf,OAAO,CAAC4B,GAAG,CAAC;IAC1B,IAAIb,KAAK,KAAKD,SAAS,IAAIC,KAAK,CAACF,IAAI,IAAIU,aAAa,EAAE;MACtDI,aAAa,GAAGC,GAAG;MACnBH,IAAI,GAAGG,GAAG,GAAG,CAAC;IAChB,CAAC,MAAM;MACLF,KAAK,GAAGE,GAAG,GAAG,CAAC;IACjB;EACF;EAEA,IAAID,aAAa,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;EAClC,OAAO,CAAC3B,OAAO,CAAC2B,aAAa,CAAC,EAAEpB,KAAK,IAAI,CAAC,IAAI,CAAC;AACjD,CAAC;AAACa,OAAA,CAAAC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -5,9 +5,7 @@ import { defaultMarkdownTheme } from "./theme.js";
5
5
  export const MarkdownContext = /*#__PURE__*/createContext({
6
6
  renderers: {},
7
7
  theme: defaultMarkdownTheme,
8
- styles: undefined,
9
- stylingStrategy: "opinionated",
10
- onLinkPress: undefined
8
+ stylingStrategy: "opinionated"
11
9
  });
12
10
  export const useMarkdownContext = () => useContext(MarkdownContext);
13
11
  //# sourceMappingURL=MarkdownContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","defaultMarkdownTheme","MarkdownContext","renderers","theme","styles","undefined","stylingStrategy","onLinkPress","useMarkdownContext"],"sourceRoot":"../../src","sources":["MarkdownContext.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,UAAU,QAGL,OAAO;AAEd,SACEC,oBAAoB,QAIf,YAAS;AAmIhB,OAAO,MAAMC,eAAe,gBAAGH,aAAa,CAAuB;EACjEI,SAAS,EAAE,CAAC,CAAC;EACbC,KAAK,EAAEH,oBAAoB;EAC3BI,MAAM,EAAEC,SAAS;EACjBC,eAAe,EAAE,aAAa;EAC9BC,WAAW,EAAEF;AACf,CAAC,CAAC;AAEF,OAAO,MAAMG,kBAAkB,GAAGA,CAAA,KAAMT,UAAU,CAACE,eAAe,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","defaultMarkdownTheme","MarkdownContext","renderers","theme","stylingStrategy","useMarkdownContext"],"sourceRoot":"../../src","sources":["MarkdownContext.ts"],"mappings":";;AAAA,SACEA,aAAa,EACbC,UAAU,QAGL,OAAO;AAEd,SACEC,oBAAoB,QAIf,YAAS;AAmIhB,OAAO,MAAMC,eAAe,gBAAGH,aAAa,CAAuB;EACjEI,SAAS,EAAE,CAAC,CAAC;EACbC,KAAK,EAAEH,oBAAoB;EAC3BI,eAAe,EAAE;AACnB,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAMN,UAAU,CAACE,eAAe,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  export { MarkdownParserModule, parseMarkdown, parseMarkdownWithOptions, extractPlainText, extractPlainTextWithOptions, getTextContent, getFlattenedText, stripSourceOffsets } from "./headless.js";
4
4
  export { Markdown } from "./markdown.js";
5
- export { MarkdownStream } from "./markdown-stream.js";
5
+ export { MarkdownStream, useMarkdownStreamState } from "./markdown-stream.js";
6
6
  export { useMarkdownContext, MarkdownContext } from "./MarkdownContext.js";
7
7
  export { defaultMarkdownTheme, minimalMarkdownTheme, mergeThemes } from "./theme.js";
8
8
  export { Heading } from "./renderers/heading.js";
@@ -1 +1 @@
1
- {"version":3,"names":["MarkdownParserModule","parseMarkdown","parseMarkdownWithOptions","extractPlainText","extractPlainTextWithOptions","getTextContent","getFlattenedText","stripSourceOffsets","Markdown","MarkdownStream","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream","defaultHighlighter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,oBAAoB,EACpBC,aAAa,EACbC,wBAAwB,EACxBC,gBAAgB,EAChBC,2BAA2B,EAC3BC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,QACb,eAAY;AAUnB,SAASC,QAAQ,QAAQ,eAAY;AASrC,SAASC,cAAc,QAAQ,sBAAmB;AAGlD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAuBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB;AAQrE,SAASC,kBAAkB,QAAQ,2BAAwB","ignoreList":[]}
1
+ {"version":3,"names":["MarkdownParserModule","parseMarkdown","parseMarkdownWithOptions","extractPlainText","extractPlainTextWithOptions","getTextContent","getFlattenedText","stripSourceOffsets","Markdown","MarkdownStream","useMarkdownStreamState","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream","defaultHighlighter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,oBAAoB,EACpBC,aAAa,EACbC,wBAAwB,EACxBC,gBAAgB,EAChBC,2BAA2B,EAC3BC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,QACb,eAAY;AAUnB,SAASC,QAAQ,QAAQ,eAAY;AASrC,SAASC,cAAc,EAAEC,sBAAsB,QAAQ,sBAAmB;AAU1E,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAuBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB;AAQrE,SAASC,kBAAkB,QAAQ,2BAAwB","ignoreList":[]}
@@ -18,11 +18,11 @@ const normalizeParserOptions = options => {
18
18
  if (gfm === undefined && math === undefined && html === undefined) {
19
19
  return undefined;
20
20
  }
21
- return {
22
- gfm,
23
- math,
24
- html
25
- };
21
+ const normalized = {};
22
+ if (gfm !== undefined) normalized.gfm = gfm;
23
+ if (math !== undefined) normalized.math = math;
24
+ if (html !== undefined) normalized.html = html;
25
+ return normalized;
26
26
  };
27
27
  const resolveStreamText = ({
28
28
  forceFullSync,
@@ -61,41 +61,41 @@ function warnStreamError(message, error) {
61
61
  warn.call(console, message, error);
62
62
  }
63
63
  }
64
- /**
65
- * A component that renders streaming Markdown from a MarkdownSession.
66
- * It efficiently subscribes to session updates to minimize parent re-renders.
67
- */
68
- export const MarkdownStream = ({
64
+ export function useMarkdownStreamState({
69
65
  session,
70
66
  updateIntervalMs = 50,
71
67
  updateStrategy = "interval",
72
68
  useTransitionUpdates = false,
73
69
  incrementalParsing = true,
74
70
  options,
75
- plugins,
76
- ...props
77
- }) => {
71
+ plugins
72
+ }) {
78
73
  const activeSession = resolveMarkdownSession(session);
79
74
  const parserOptionGfm = options?.gfm;
80
75
  const parserOptionMath = options?.math;
81
76
  const parserOptionHtml = options?.html;
82
- const parserOptions = useMemo(() => normalizeParserOptions({
83
- gfm: parserOptionGfm,
84
- math: parserOptionMath,
77
+ const parserOptions = useMemo(() => normalizeParserOptions(Object.assign({}, parserOptionGfm === undefined ? null : {
78
+ gfm: parserOptionGfm
79
+ }, parserOptionMath === undefined ? null : {
80
+ math: parserOptionMath
81
+ }, parserOptionHtml === undefined ? null : {
85
82
  html: parserOptionHtml
86
- }), [parserOptionGfm, parserOptionMath, parserOptionHtml]);
83
+ })), [parserOptionGfm, parserOptionMath, parserOptionHtml]);
87
84
  const parseText = useCallback(text => parseMarkdownAst(text, parserOptions), [parserOptions]);
88
85
  const createEmptyAst = () => ({
89
86
  type: "document",
90
87
  children: []
91
88
  });
92
- const initialText = activeSession.getAllText();
93
89
  const hasBeforeParsePlugins = plugins?.some(plugin => typeof plugin.beforeParse === "function") ?? false;
94
- const [renderState, setRenderState] = useState(() => ({
95
- text: initialText,
96
- ast: hasBeforeParsePlugins ? createEmptyAst() : parseText(initialText)
97
- }));
90
+ const [renderState, setRenderState] = useState(() => {
91
+ const initialText = activeSession.getAllText();
92
+ return {
93
+ text: initialText,
94
+ ast: hasBeforeParsePlugins ? createEmptyAst() : parseText(initialText)
95
+ };
96
+ });
98
97
  const renderStateRef = useRef(renderState);
98
+ const didMountRef = useRef(false);
99
99
  const pendingUpdateRef = useRef(false);
100
100
  const pendingFromRef = useRef(null);
101
101
  const pendingToRef = useRef(null);
@@ -114,6 +114,10 @@ export const MarkdownStream = ({
114
114
  };
115
115
  }, []);
116
116
  useEffect(() => {
117
+ if (!didMountRef.current) {
118
+ didMountRef.current = true;
119
+ return;
120
+ }
117
121
  const initialText = activeSession.getAllText();
118
122
  const initialState = {
119
123
  text: initialText,
@@ -159,9 +163,11 @@ export const MarkdownStream = ({
159
163
  const nextAst = hasBeforeParsePlugins ? previousState.ast : getNextStreamAst({
160
164
  allowIncremental,
161
165
  nextText: latest,
162
- options: parserOptions,
163
166
  previousAst: previousState.ast,
164
- previousText: previousState.text
167
+ previousText: previousState.text,
168
+ ...(parserOptions ? {
169
+ options: parserOptions
170
+ } : {})
165
171
  });
166
172
  const nextState = {
167
173
  text: latest,
@@ -229,12 +235,56 @@ export const MarkdownStream = ({
229
235
  }
230
236
  };
231
237
  }, [allowIncremental, hasBeforeParsePlugins, parserOptions, activeSession, updateIntervalMs, updateStrategy, useTransitionUpdates]);
232
- return /*#__PURE__*/_jsx(Markdown, {
238
+ const streamState = {
239
+ text: renderState.text,
240
+ sourceAstStatus: hasBeforeParsePlugins ? "disabled" : "available"
241
+ };
242
+ if (hasBeforeParsePlugins) {
243
+ streamState.sourceAstDisabledReason = "beforeParse-plugin";
244
+ } else {
245
+ streamState.sourceAst = renderState.ast;
246
+ }
247
+ return streamState;
248
+ }
249
+ export const MarkdownStream = ({
250
+ session,
251
+ updateIntervalMs = 50,
252
+ updateStrategy = "interval",
253
+ useTransitionUpdates = false,
254
+ incrementalParsing = true,
255
+ options,
256
+ plugins,
257
+ renderMarkdown,
258
+ ...props
259
+ }) => {
260
+ const streamState = useMarkdownStreamState({
261
+ session,
262
+ updateIntervalMs,
263
+ updateStrategy,
264
+ useTransitionUpdates,
265
+ incrementalParsing,
266
+ ...(options ? {
267
+ options
268
+ } : {}),
269
+ ...(plugins ? {
270
+ plugins
271
+ } : {})
272
+ });
273
+ const markdownProps = {
233
274
  ...props,
234
- options: options,
235
- plugins: plugins,
236
- sourceAst: hasBeforeParsePlugins ? undefined : renderState.ast,
237
- children: renderState.text
275
+ children: streamState.text
276
+ };
277
+ if (options) markdownProps.options = options;
278
+ if (plugins) markdownProps.plugins = plugins;
279
+ if (streamState.sourceAst) markdownProps.sourceAst = streamState.sourceAst;
280
+ if (renderMarkdown) {
281
+ return renderMarkdown({
282
+ ...streamState,
283
+ markdownProps
284
+ });
285
+ }
286
+ return /*#__PURE__*/_jsx(Markdown, {
287
+ ...markdownProps
238
288
  });
239
289
  };
240
290
  //# sourceMappingURL=markdown-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useRef","useCallback","useMemo","startTransition","Markdown","resolveMarkdownSession","getNextStreamAst","parseMarkdownAst","jsx","_jsx","normalizeOffset","value","Number","isFinite","Math","floor","normalizeParserOptions","options","undefined","gfm","math","html","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","warnStreamError","message","error","__DEV__","warn","Reflect","get","console","call","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","plugins","props","activeSession","parserOptionGfm","parserOptionMath","parserOptionHtml","parserOptions","parseText","text","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","ast","renderStateRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","mountedRef","allowIncremental","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","nextText","previousAst","nextState","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","sourceAst"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useEffect","useRef","useCallback","useMemo","startTransition","Markdown","resolveMarkdownSession","getNextStreamAst","parseMarkdownAst","jsx","_jsx","normalizeOffset","value","Number","isFinite","Math","floor","normalizeParserOptions","options","undefined","gfm","math","html","normalized","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","warnStreamError","message","error","__DEV__","warn","Reflect","get","console","call","useMarkdownStreamState","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","plugins","activeSession","parserOptionGfm","parserOptionMath","parserOptionHtml","parserOptions","Object","assign","parseText","text","createEmptyAst","type","children","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","initialText","ast","renderStateRef","didMountRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","mountedRef","allowIncremental","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","nextText","previousAst","nextState","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","streamState","sourceAstStatus","sourceAstDisabledReason","sourceAst","MarkdownStream","renderMarkdown","props","markdownProps"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAO,EACPC,eAAe,QAGV,OAAO;AAGd,SAASC,QAAQ,QAAiD,eAAY;AAE9E,SACEC,sBAAsB,QAEjB,0BAAuB;AAC9B,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE7E,MAAMC,eAAe,GAAIC,KAAa,IAAoB;EACxD,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE,OAAO,IAAI;EACxC,IAAIA,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC;EACxB,OAAOG,IAAI,CAACC,KAAK,CAACJ,KAAK,CAAC;AAC1B,CAAC;AAED,MAAMK,sBAAsB,GAC1BC,OAAuB,IACO;EAC9B,IAAI,CAACA,OAAO,EAAE,OAAOC,SAAS;EAE9B,MAAMC,GAAG,GAAGF,OAAO,CAACE,GAAG;EACvB,MAAMC,IAAI,GAAGH,OAAO,CAACG,IAAI;EACzB,MAAMC,IAAI,GAAGJ,OAAO,CAACI,IAAI;EAEzB,IAAIF,GAAG,KAAKD,SAAS,IAAIE,IAAI,KAAKF,SAAS,IAAIG,IAAI,KAAKH,SAAS,EAAE;IACjE,OAAOA,SAAS;EAClB;EAEA,MAAMI,UAAyB,GAAG,CAAC,CAAC;EACpC,IAAIH,GAAG,KAAKD,SAAS,EAAEI,UAAU,CAACH,GAAG,GAAGA,GAAG;EAC3C,IAAIC,IAAI,KAAKF,SAAS,EAAEI,UAAU,CAACF,IAAI,GAAGA,IAAI;EAC9C,IAAIC,IAAI,KAAKH,SAAS,EAAEI,UAAU,CAACD,IAAI,GAAGA,IAAI;EAC9C,OAAOC,UAAU;AACnB,CAAC;AAED,MAAMC,iBAAiB,GAAGA,CAAC;EACzBC,aAAa;EACbC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC;AAOF,CAAC,KAAa;EACZ,IAAIJ,aAAa,IAAIC,WAAW,KAAK,IAAI,IAAIC,SAAS,KAAK,IAAI,EAAE;IAC/D,OAAOE,OAAO,CAACC,UAAU,CAAC,CAAC;EAC7B;EAEA,IAAIH,SAAS,GAAGD,WAAW,EAAE;IAC3B,OAAOG,OAAO,CAACC,UAAU,CAAC,CAAC;EAC7B;EAEA,IAAIJ,WAAW,KAAKE,YAAY,CAACG,MAAM,EAAE;IACvC,IAAI;MACF,MAAMC,aAAa,GAAGH,OAAO,CAACI,YAAY,CAACP,WAAW,EAAEC,SAAS,CAAC;MAClE,OAAO,GAAGC,YAAY,GAAGI,aAAa,EAAE;IAC1C,CAAC,CAAC,MAAM;MACN,OAAOH,OAAO,CAACC,UAAU,CAAC,CAAC;IAC7B;EACF;EAEA,IAAIJ,WAAW,KAAK,CAAC,EAAE;IACrB,IAAI;MACF,OAAOG,OAAO,CAACI,YAAY,CAAC,CAAC,EAAEN,SAAS,CAAC;IAC3C,CAAC,CAAC,MAAM;MACN,OAAOE,OAAO,CAACC,UAAU,CAAC,CAAC;IAC7B;EACF;EAEA,OAAOD,OAAO,CAACC,UAAU,CAAC,CAAC;AAC7B,CAAC;AAED,SAASI,eAAeA,CAACC,OAAe,EAAEC,KAAc,EAAQ;EAC9D,IAAI,CAACC,OAAO,EAAE;EAEd,MAAMC,IAAI,GAAGC,OAAO,CAACC,GAAG,CAACC,OAAO,EAAE,MAAM,CAAC;EACzC,IAAI,OAAOH,IAAI,KAAK,UAAU,EAAE;IAC9BA,IAAI,CAACI,IAAI,CAACD,OAAO,EAAEN,OAAO,EAAEC,KAAK,CAAC;EACpC;AACF;AA0DA,OAAO,SAASO,sBAAsBA,CAAC;EACrCd,OAAO;EACPe,gBAAgB,GAAG,EAAE;EACrBC,cAAc,GAAG,UAAU;EAC3BC,oBAAoB,GAAG,KAAK;EAC5BC,kBAAkB,GAAG,IAAI;EACzB7B,OAAO;EACP8B;AAC6B,CAAC,EAAuB;EACrD,MAAMC,aAAa,GAAG3C,sBAAsB,CAACuB,OAAO,CAAC;EACrD,MAAMqB,eAAe,GAAGhC,OAAO,EAAEE,GAAG;EACpC,MAAM+B,gBAAgB,GAAGjC,OAAO,EAAEG,IAAI;EACtC,MAAM+B,gBAAgB,GAAGlC,OAAO,EAAEI,IAAI;EACtC,MAAM+B,aAAa,GAAGlD,OAAO,CAC3B,MACEc,sBAAsB,CACpBqC,MAAM,CAACC,MAAM,CACX,CAAC,CAAC,EACFL,eAAe,KAAK/B,SAAS,GAAG,IAAI,GAAG;IAAEC,GAAG,EAAE8B;EAAgB,CAAC,EAC/DC,gBAAgB,KAAKhC,SAAS,GAAG,IAAI,GAAG;IAAEE,IAAI,EAAE8B;EAAiB,CAAC,EAClEC,gBAAgB,KAAKjC,SAAS,GAAG,IAAI,GAAG;IAAEG,IAAI,EAAE8B;EAAiB,CACnE,CACF,CAAC,EACH,CAACF,eAAe,EAAEC,gBAAgB,EAAEC,gBAAgB,CACtD,CAAC;EACD,MAAMI,SAAS,GAAGtD,WAAW,CAC1BuD,IAAY,IAAmBjD,gBAAgB,CAACiD,IAAI,EAAEJ,aAAa,CAAC,EACrE,CAACA,aAAa,CAChB,CAAC;EACD,MAAMK,cAAc,GAAGA,CAAA,MAAqB;IAC1CC,IAAI,EAAE,UAAU;IAChBC,QAAQ,EAAE;EACZ,CAAC,CAAC;EACF,MAAMC,qBAAqB,GACzBb,OAAO,EAAEc,IAAI,CAAEC,MAAM,IAAK,OAAOA,MAAM,CAACC,WAAW,KAAK,UAAU,CAAC,IACnE,KAAK;EACP,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGnE,QAAQ,CAAC,MAAM;IACnD,MAAMoE,WAAW,GAAGlB,aAAa,CAACnB,UAAU,CAAC,CAAC;IAC9C,OAAO;MACL2B,IAAI,EAAEU,WAAW;MACjBC,GAAG,EAAEP,qBAAqB,GAAGH,cAAc,CAAC,CAAC,GAAGF,SAAS,CAACW,WAAW;IACvE,CAAC;EACH,CAAC,CAAC;EACF,MAAME,cAAc,GAAGpE,MAAM,CAACgE,WAAW,CAAC;EAC1C,MAAMK,WAAW,GAAGrE,MAAM,CAAC,KAAK,CAAC;EACjC,MAAMsE,gBAAgB,GAAGtE,MAAM,CAAC,KAAK,CAAC;EACtC,MAAMuE,cAAc,GAAGvE,MAAM,CAAgB,IAAI,CAAC;EAClD,MAAMwE,YAAY,GAAGxE,MAAM,CAAgB,IAAI,CAAC;EAChD,MAAMyE,gBAAgB,GAAGzE,MAAM,CAAC,KAAK,CAAC;EACtC,MAAM0E,cAAc,GAAG1E,MAAM,CAAuC,IAAI,CAAC;EACzE,MAAM2E,MAAM,GAAG3E,MAAM,CAAgB,IAAI,CAAC;EAC1C,MAAM4E,UAAU,GAAG5E,MAAM,CAAC,IAAI,CAAC;EAC/B,MAAM6E,gBAAgB,GAAG/B,kBAAkB,IAAI,CAACc,qBAAqB;EAErE7D,SAAS,CAAC,MAAM;IACdqE,cAAc,CAACU,OAAO,GAAGd,WAAW;EACtC,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjBjE,SAAS,CAAC,MAAM;IACd6E,UAAU,CAACE,OAAO,GAAG,IAAI;IACzB,OAAO,MAAM;MACXF,UAAU,CAACE,OAAO,GAAG,KAAK;IAC5B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN/E,SAAS,CAAC,MAAM;IACd,IAAI,CAACsE,WAAW,CAACS,OAAO,EAAE;MACxBT,WAAW,CAACS,OAAO,GAAG,IAAI;MAC1B;IACF;IAEA,MAAMZ,WAAW,GAAGlB,aAAa,CAACnB,UAAU,CAAC,CAAC;IAC9C,MAAMkD,YAAY,GAAG;MACnBvB,IAAI,EAAEU,WAAW;MACjBC,GAAG,EAAEP,qBAAqB,GAAGH,cAAc,CAAC,CAAC,GAAGF,SAAS,CAACW,WAAW;IACvE,CAAC;IACDI,gBAAgB,CAACQ,OAAO,GAAG,KAAK;IAChCP,cAAc,CAACO,OAAO,GAAG,IAAI;IAC7BN,YAAY,CAACM,OAAO,GAAG,IAAI;IAC3BL,gBAAgB,CAACK,OAAO,GAAG,KAAK;IAChCV,cAAc,CAACU,OAAO,GAAGC,YAAY;IACrCd,cAAc,CAACc,YAAY,CAAC;EAC9B,CAAC,EAAE,CAAC/B,aAAa,EAAEY,qBAAqB,EAAEL,SAAS,CAAC,CAAC;EAErDxD,SAAS,CAAC,MAAM;IACd,MAAMiF,WAAW,GAAGA,CAAA,KAAM;MACxBN,cAAc,CAACI,OAAO,GAAG,IAAI;MAC7B,IAAIH,MAAM,CAACG,OAAO,KAAK,IAAI,EAAE;QAC3BG,oBAAoB,CAACN,MAAM,CAACG,OAAO,CAAC;QACpCH,MAAM,CAACG,OAAO,GAAG,IAAI;MACvB;MACA,IAAI,CAACR,gBAAgB,CAACQ,OAAO,EAAE;MAC/BR,gBAAgB,CAACQ,OAAO,GAAG,KAAK;MAEhC,MAAMI,aAAa,GAAGd,cAAc,CAACU,OAAO;MAC5C,MAAMrD,WAAW,GAAG8C,cAAc,CAACO,OAAO;MAC1C,MAAMpD,SAAS,GAAG8C,YAAY,CAACM,OAAO;MACtC,MAAMtD,aAAa,GAAGiD,gBAAgB,CAACK,OAAO;MAC9CP,cAAc,CAACO,OAAO,GAAG,IAAI;MAC7BN,YAAY,CAACM,OAAO,GAAG,IAAI;MAC3BL,gBAAgB,CAACK,OAAO,GAAG,KAAK;MAEhC,IAAIK,MAAc;MAClB,IAAI;QACFA,MAAM,GAAG5D,iBAAiB,CAAC;UACzBC,aAAa;UACbC,WAAW;UACXC,SAAS;UACTC,YAAY,EAAEuD,aAAa,CAAC1B,IAAI;UAChC5B,OAAO,EAAEoB;QACX,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOb,KAAK,EAAE;QACdF,eAAe,CAAC,gDAAgD,EAAEE,KAAK,CAAC;QACxE;MACF;MACA,IAAIgD,MAAM,KAAKD,aAAa,CAAC1B,IAAI,EAAE;MAEnC,MAAM4B,OAAO,GAAGxB,qBAAqB,GACjCsB,aAAa,CAACf,GAAG,GACjB7D,gBAAgB,CAAC;QACfuE,gBAAgB;QAChBQ,QAAQ,EAAEF,MAAM;QAChBG,WAAW,EAAEJ,aAAa,CAACf,GAAG;QAC9BxC,YAAY,EAAEuD,aAAa,CAAC1B,IAAI;QAChC,IAAIJ,aAAa,GAAG;UAAEnC,OAAO,EAAEmC;QAAc,CAAC,GAAG,CAAC,CAAC;MACrD,CAAC,CAAC;MACN,MAAMmC,SAAS,GAAG;QAChB/B,IAAI,EAAE2B,MAAM;QACZhB,GAAG,EAAEiB;MACP,CAAC;MACDhB,cAAc,CAACU,OAAO,GAAGS,SAAS;MAClC,IAAI,CAACX,UAAU,CAACE,OAAO,EAAE;MAEzB,IAAIjC,oBAAoB,EAAE;QACxB1C,eAAe,CAAC,MAAM;UACpB,IAAI,CAACyE,UAAU,CAACE,OAAO,EAAE;UACzBb,cAAc,CAACsB,SAAS,CAAC;QAC3B,CAAC,CAAC;MACJ,CAAC,MAAM;QACLtB,cAAc,CAACsB,SAAS,CAAC;MAC3B;IACF,CAAC;IAED,MAAMC,aAAa,GAAGA,CAAA,KAAM;MAC1B,IAAI5C,cAAc,KAAK,KAAK,EAAE;QAC5B,IAAI+B,MAAM,CAACG,OAAO,KAAK,IAAI,EAAE;UAC3BH,MAAM,CAACG,OAAO,GAAGW,qBAAqB,CAACT,WAAW,CAAC;QACrD;QACA;MACF;MAEA,IAAI,CAACN,cAAc,CAACI,OAAO,EAAE;QAC3BJ,cAAc,CAACI,OAAO,GAAGY,UAAU,CAACV,WAAW,EAAErC,gBAAgB,CAAC;MACpE;IACF,CAAC;IAED,IAAIgD,WAAgC,GAAG,IAAI;IAE3C,IAAI;MACFA,WAAW,GAAG3C,aAAa,CAAC4C,WAAW,CAAC,CAACC,IAAI,EAAEC,EAAE,KAAK;QACpD,IAAI,CAAClB,UAAU,CAACE,OAAO,EAAE;QAEzB,MAAMiB,QAAQ,GAAGrF,eAAe,CAACmF,IAAI,CAAC;QACtC,MAAMG,MAAM,GAAGtF,eAAe,CAACoF,EAAE,CAAC;QAElC,IAAIC,QAAQ,KAAK,IAAI,IAAIC,MAAM,KAAK,IAAI,IAAIA,MAAM,GAAGD,QAAQ,EAAE;UAC7DtB,gBAAgB,CAACK,OAAO,GAAG,IAAI;QACjC,CAAC,MAAM;UACL,MAAMmB,WAAW,GAAG1B,cAAc,CAACO,OAAO;UAC1C,MAAMoB,SAAS,GAAG1B,YAAY,CAACM,OAAO;UAEtCP,cAAc,CAACO,OAAO,GACpBmB,WAAW,KAAK,IAAI,GAAGF,QAAQ,GAAGjF,IAAI,CAACqF,GAAG,CAACF,WAAW,EAAEF,QAAQ,CAAC;UACnEvB,YAAY,CAACM,OAAO,GAClBoB,SAAS,KAAK,IAAI,GAAGF,MAAM,GAAGlF,IAAI,CAACsF,GAAG,CAACF,SAAS,EAAEF,MAAM,CAAC;QAC7D;QAEA1B,gBAAgB,CAACQ,OAAO,GAAG,IAAI;QAC/BU,aAAa,CAAC,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOrD,KAAK,EAAE;MACdF,eAAe,CAAC,gDAAgD,EAAEE,KAAK,CAAC;IAC1E;IAEA,OAAO,MAAM;MACXmC,gBAAgB,CAACQ,OAAO,GAAG,KAAK;MAChCP,cAAc,CAACO,OAAO,GAAG,IAAI;MAC7BN,YAAY,CAACM,OAAO,GAAG,IAAI;MAC3BL,gBAAgB,CAACK,OAAO,GAAG,KAAK;MAChC,IAAI;QACFa,WAAW,GAAG,CAAC;MACjB,CAAC,CAAC,OAAOxD,KAAK,EAAE;QACdF,eAAe,CACb,oDAAoD,EACpDE,KACF,CAAC;MACH;MACA,IAAIuC,cAAc,CAACI,OAAO,EAAE;QAC1BuB,YAAY,CAAC3B,cAAc,CAACI,OAAO,CAAC;QACpCJ,cAAc,CAACI,OAAO,GAAG,IAAI;MAC/B;MACA,IAAIH,MAAM,CAACG,OAAO,KAAK,IAAI,EAAE;QAC3BG,oBAAoB,CAACN,MAAM,CAACG,OAAO,CAAC;QACpCH,MAAM,CAACG,OAAO,GAAG,IAAI;MACvB;IACF,CAAC;EACH,CAAC,EAAE,CACDD,gBAAgB,EAChBjB,qBAAqB,EACrBR,aAAa,EACbJ,aAAa,EACbL,gBAAgB,EAChBC,cAAc,EACdC,oBAAoB,CACrB,CAAC;EAEF,MAAMyD,WAAgC,GAAG;IACvC9C,IAAI,EAAEQ,WAAW,CAACR,IAAI;IACtB+C,eAAe,EAAE3C,qBAAqB,GAAG,UAAU,GAAG;EACxD,CAAC;EACD,IAAIA,qBAAqB,EAAE;IACzB0C,WAAW,CAACE,uBAAuB,GAAG,oBAAoB;EAC5D,CAAC,MAAM;IACLF,WAAW,CAACG,SAAS,GAAGzC,WAAW,CAACG,GAAG;EACzC;EACA,OAAOmC,WAAW;AACpB;AAEA,OAAO,MAAMI,cAAuC,GAAGA,CAAC;EACtD9E,OAAO;EACPe,gBAAgB,GAAG,EAAE;EACrBC,cAAc,GAAG,UAAU;EAC3BC,oBAAoB,GAAG,KAAK;EAC5BC,kBAAkB,GAAG,IAAI;EACzB7B,OAAO;EACP8B,OAAO;EACP4D,cAAc;EACd,GAAGC;AACL,CAAC,KAAK;EACJ,MAAMN,WAAW,GAAG5D,sBAAsB,CAAC;IACzCd,OAAO;IACPe,gBAAgB;IAChBC,cAAc;IACdC,oBAAoB;IACpBC,kBAAkB;IAClB,IAAI7B,OAAO,GAAG;MAAEA;IAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI8B,OAAO,GAAG;MAAEA;IAAQ,CAAC,GAAG,CAAC,CAAC;EAChC,CAAC,CAAC;EACF,MAAM8D,aAA4B,GAAG;IACnC,GAAGD,KAAK;IACRjD,QAAQ,EAAE2C,WAAW,CAAC9C;EACxB,CAAC;EACD,IAAIvC,OAAO,EAAE4F,aAAa,CAAC5F,OAAO,GAAGA,OAAO;EAC5C,IAAI8B,OAAO,EAAE8D,aAAa,CAAC9D,OAAO,GAAGA,OAAO;EAC5C,IAAIuD,WAAW,CAACG,SAAS,EAAEI,aAAa,CAACJ,SAAS,GAAGH,WAAW,CAACG,SAAS;EAE1E,IAAIE,cAAc,EAAE;IAClB,OAAOA,cAAc,CAAC;MACpB,GAAGL,WAAW;MACdO;IACF,CAAC,CAAC;EACJ;EAEA,oBAAOpG,IAAA,CAACL,QAAQ;IAAA,GAAKyG;EAAa,CAAG,CAAC;AACxC,CAAC","ignoreList":[]}
@@ -61,9 +61,12 @@ const warnInDev = (message, error) => {
61
61
  }
62
62
  };
63
63
  const cloneMarkdownNode = node => {
64
- return {
64
+ const children = node.children?.map(cloneMarkdownNode);
65
+ return children ? {
65
66
  ...node,
66
- children: node.children?.map(cloneMarkdownNode)
67
+ children
68
+ } : {
69
+ ...node
67
70
  };
68
71
  };
69
72
  const getParserOptionsKey = options => {
@@ -81,11 +84,11 @@ const normalizeParserOptions = options => {
81
84
  if (gfm === undefined && math === undefined && html === undefined) {
82
85
  return undefined;
83
86
  }
84
- return {
85
- gfm,
86
- math,
87
- html
88
- };
87
+ const normalized = {};
88
+ if (gfm !== undefined) normalized.gfm = gfm;
89
+ if (math !== undefined) normalized.math = math;
90
+ if (html !== undefined) normalized.html = html;
91
+ return normalized;
89
92
  };
90
93
  const parseWithNativeParser = (text, options) => {
91
94
  if (options) {
@@ -197,11 +200,13 @@ export const Markdown = ({
197
200
  try {
198
201
  const sortedPlugins = sortPluginsByPriority(plugins);
199
202
  const markdownToParse = sourceAst ? children : applyBeforeParsePlugins(children, sortedPlugins, onErrorRef.current);
200
- const parserOptions = normalizeParserOptions({
201
- gfm: parserOptionGfm,
202
- math: parserOptionMath,
203
+ const parserOptions = normalizeParserOptions(Object.assign({}, parserOptionGfm === undefined ? null : {
204
+ gfm: parserOptionGfm
205
+ }, parserOptionMath === undefined ? null : {
206
+ math: parserOptionMath
207
+ }, parserOptionHtml === undefined ? null : {
203
208
  html: parserOptionHtml
204
- });
209
+ }));
205
210
  const shouldCloneSourceAst = sourceAst && (Boolean(astTransform) || sortedPlugins?.some(plugin => plugin.afterParse) === true);
206
211
  let parsedAst = sourceAst ? shouldCloneSourceAst ? cloneMarkdownNode(sourceAst) : sourceAst : parseCache ? getCachedParsedAst(markdownToParse, parserOptions) : parseWithNativeParser(markdownToParse, parserOptions);
207
212
  parsedAst = applyAfterParsePlugins(parsedAst, sortedPlugins, onErrorRef.current);
@@ -248,12 +253,22 @@ export const Markdown = ({
248
253
  const contextValue = useMemo(() => ({
249
254
  renderers,
250
255
  theme,
251
- styles: nodeStyles,
252
256
  stylingStrategy,
253
- onLinkPress,
254
- tableOptions,
255
- imageOptions,
256
- highlightCode
257
+ ...(nodeStyles ? {
258
+ styles: nodeStyles
259
+ } : {}),
260
+ ...(onLinkPress ? {
261
+ onLinkPress
262
+ } : {}),
263
+ ...(tableOptions ? {
264
+ tableOptions
265
+ } : {}),
266
+ ...(imageOptions ? {
267
+ imageOptions
268
+ } : {}),
269
+ ...(highlightCode === undefined ? {} : {
270
+ highlightCode
271
+ })
257
272
  }), [renderers, theme, nodeStyles, stylingStrategy, onLinkPress, tableOptions, imageOptions, highlightCode]);
258
273
  const topLevelBlocks = parseResult.ast?.type === "document" ? parseResult.ast.children ?? [] : parseResult.ast ? [parseResult.ast] : [];
259
274
  const shouldVirtualizeBySetting = virtualize === true || virtualize === "auto" && topLevelBlocks.length >= virtualizationMinBlocks;
@@ -391,16 +406,24 @@ const NodeRendererComponent = ({
391
406
  }),
392
407
  ...(node.type === "link" && {
393
408
  href: node.href ?? "",
394
- title: node.title
409
+ ...(node.title ? {
410
+ title: node.title
411
+ } : {})
395
412
  }),
396
413
  ...(node.type === "image" && {
397
414
  url: node.href ?? "",
398
- alt: node.alt,
399
- title: node.title
415
+ ...(node.alt ? {
416
+ alt: node.alt
417
+ } : {}),
418
+ ...(node.title ? {
419
+ title: node.title
420
+ } : {})
400
421
  }),
401
422
  ...(node.type === "code_block" && {
402
423
  content: getTextContent(node),
403
- language: node.language
424
+ ...(node.language ? {
425
+ language: node.language
426
+ } : {})
404
427
  }),
405
428
  ...(node.type === "code_inline" && {
406
429
  content: node.content ?? ""
@@ -410,7 +433,9 @@ const NodeRendererComponent = ({
410
433
  }),
411
434
  ...(node.type === "list" && {
412
435
  ordered: node.ordered ?? false,
413
- start: node.start
436
+ ...(node.start === undefined ? {} : {
437
+ start: node.start
438
+ })
414
439
  }),
415
440
  ...(node.type === "task_list_item" && {
416
441
  checked: node.checked ?? false
@@ -430,7 +455,9 @@ const NodeRendererComponent = ({
430
455
  case "heading":
431
456
  return /*#__PURE__*/_jsx(Heading, {
432
457
  level: node.level ?? 1,
433
- style: nodeStyles?.heading,
458
+ ...(nodeStyles?.heading ? {
459
+ style: nodeStyles.heading
460
+ } : {}),
434
461
  children: renderChildren(node.children, inListItem, true)
435
462
  });
436
463
  case "paragraph":
@@ -467,36 +494,54 @@ const NodeRendererComponent = ({
467
494
  case "link":
468
495
  return /*#__PURE__*/_jsx(Link, {
469
496
  href: node.href ?? "",
470
- style: nodeStyles?.link,
497
+ ...(nodeStyles?.link ? {
498
+ style: nodeStyles.link
499
+ } : {}),
471
500
  children: renderChildren(node.children, inListItem, true)
472
501
  });
473
502
  case "image":
474
503
  return /*#__PURE__*/_jsx(Image, {
475
504
  url: node.href ?? "",
476
- title: node.title,
477
- alt: node.alt,
478
505
  Renderer: NodeRenderer,
479
- style: nodeStyles?.image
506
+ ...(node.title ? {
507
+ title: node.title
508
+ } : {}),
509
+ ...(node.alt ? {
510
+ alt: node.alt
511
+ } : {}),
512
+ ...(nodeStyles?.image ? {
513
+ style: nodeStyles.image
514
+ } : {})
480
515
  });
481
516
  case "code_inline":
482
517
  return /*#__PURE__*/_jsx(InlineCode, {
483
- style: nodeStyles?.code_inline,
518
+ ...(nodeStyles?.code_inline ? {
519
+ style: nodeStyles.code_inline
520
+ } : {}),
484
521
  children: node.content
485
522
  });
486
523
  case "code_block":
487
524
  return /*#__PURE__*/_jsx(CodeBlock, {
488
- language: node.language,
489
525
  content: getTextContent(node),
490
- style: nodeStyles?.code_block
526
+ ...(node.language ? {
527
+ language: node.language
528
+ } : {}),
529
+ ...(nodeStyles?.code_block ? {
530
+ style: nodeStyles.code_block
531
+ } : {})
491
532
  });
492
533
  case "blockquote":
493
534
  return /*#__PURE__*/_jsx(Blockquote, {
494
- style: nodeStyles?.blockquote,
535
+ ...(nodeStyles?.blockquote ? {
536
+ style: nodeStyles.blockquote
537
+ } : {}),
495
538
  children: renderChildren(node.children, inListItem, false)
496
539
  });
497
540
  case "horizontal_rule":
498
541
  return /*#__PURE__*/_jsx(HorizontalRule, {
499
- style: nodeStyles?.horizontal_rule
542
+ ...(nodeStyles?.horizontal_rule ? {
543
+ style: nodeStyles.horizontal_rule
544
+ } : {})
500
545
  });
501
546
  case "line_break":
502
547
  return /*#__PURE__*/_jsx(Text, {
@@ -513,20 +558,28 @@ const NodeRendererComponent = ({
513
558
  mathContent = mathContent.replace(/^\$+|\$+$/g, "").trim();
514
559
  return /*#__PURE__*/_jsx(MathInline, {
515
560
  content: mathContent,
516
- style: nodeStyles?.math_inline
561
+ ...(nodeStyles?.math_inline ? {
562
+ style: nodeStyles.math_inline
563
+ } : {})
517
564
  });
518
565
  }
519
566
  case "math_block":
520
567
  return /*#__PURE__*/_jsx(MathBlock, {
521
568
  content: getTextContent(node),
522
- style: nodeStyles?.math_block
569
+ ...(nodeStyles?.math_block ? {
570
+ style: nodeStyles.math_block
571
+ } : {})
523
572
  });
524
573
  case "list":
525
574
  return /*#__PURE__*/_jsx(List, {
526
575
  ordered: node.ordered ?? false,
527
- start: node.start,
528
576
  depth: depth,
529
- style: nodeStyles?.list,
577
+ ...(node.start === undefined ? {} : {
578
+ start: node.start
579
+ }),
580
+ ...(nodeStyles?.list ? {
581
+ style: nodeStyles.list
582
+ } : {}),
530
583
  children: node.children?.map((child, index) => {
531
584
  if (child.type === "task_list_item") {
532
585
  return /*#__PURE__*/_jsx(NodeRenderer, {
@@ -556,14 +609,18 @@ const NodeRendererComponent = ({
556
609
  case "task_list_item":
557
610
  return /*#__PURE__*/_jsx(TaskListItem, {
558
611
  checked: node.checked ?? false,
559
- style: nodeStyles?.task_list_item,
612
+ ...(nodeStyles?.task_list_item ? {
613
+ style: nodeStyles.task_list_item
614
+ } : {}),
560
615
  children: renderChildren(node.children, true, false)
561
616
  });
562
617
  case "table":
563
618
  return /*#__PURE__*/_jsx(TableRenderer, {
564
619
  node: node,
565
620
  Renderer: NodeRenderer,
566
- style: nodeStyles?.table
621
+ ...(nodeStyles?.table ? {
622
+ style: nodeStyles.table
623
+ } : {})
567
624
  });
568
625
  case "table_head":
569
626
  case "table_body":