markdown-flow-ui 0.2.30 → 0.2.32

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 (119) hide show
  1. package/README.md +27 -4
  2. package/dist/_virtual/index.es3.js +5 -4
  3. package/dist/_virtual/index.es3.js.map +1 -1
  4. package/dist/_virtual/index.es4.js +4 -5
  5. package/dist/_virtual/index.es4.js.map +1 -1
  6. package/dist/_virtual/index.es5.js +5 -3
  7. package/dist/_virtual/index.es5.js.map +1 -1
  8. package/dist/_virtual/index.es6.js +3 -5
  9. package/dist/_virtual/index.es6.js.map +1 -1
  10. package/dist/_virtual/index.es7.js +4 -4
  11. package/dist/_virtual/index.es8.js +2 -2
  12. package/dist/_virtual/index.es9.js +2 -2
  13. package/dist/_virtual/index3.cjs +1 -1
  14. package/dist/_virtual/index4.cjs +1 -1
  15. package/dist/_virtual/index5.cjs +1 -1
  16. package/dist/_virtual/index6.cjs +1 -1
  17. package/dist/_virtual/index7.cjs +1 -1
  18. package/dist/_virtual/index8.cjs +1 -1
  19. package/dist/_virtual/index9.cjs +1 -1
  20. package/dist/components/ContentRender/ContentRender.cjs +2 -2
  21. package/dist/components/ContentRender/ContentRender.cjs.map +1 -1
  22. package/dist/components/ContentRender/ContentRender.d.ts +1 -1
  23. package/dist/components/ContentRender/ContentRender.es.js +623 -401
  24. package/dist/components/ContentRender/ContentRender.es.js.map +1 -1
  25. package/dist/components/ContentRender/index.cjs +1 -1
  26. package/dist/components/ContentRender/index.es.js +1 -0
  27. package/dist/components/ContentRender/index.es.js.map +1 -1
  28. package/dist/components/ContentRender/utils/escape-typed-metadata.cjs +2 -0
  29. package/dist/components/ContentRender/utils/escape-typed-metadata.cjs.map +1 -0
  30. package/dist/components/ContentRender/utils/escape-typed-metadata.d.ts +9 -0
  31. package/dist/components/ContentRender/utils/escape-typed-metadata.es.js +47 -0
  32. package/dist/components/ContentRender/utils/escape-typed-metadata.es.js.map +1 -0
  33. package/dist/components/ContentRender/utils/escape-typed-metadata.test.d.ts +1 -0
  34. package/dist/components/ContentRender/utils/html-block-end.cjs +1 -1
  35. package/dist/components/ContentRender/utils/html-block-end.cjs.map +1 -1
  36. package/dist/components/ContentRender/utils/html-block-end.d.ts +20 -6
  37. package/dist/components/ContentRender/utils/html-block-end.es.js +63 -56
  38. package/dist/components/ContentRender/utils/html-block-end.es.js.map +1 -1
  39. package/dist/components/ContentRender/utils/inline-code-ranges.cache.test.d.ts +1 -0
  40. package/dist/components/ContentRender/utils/inline-code-ranges.cjs +10 -0
  41. package/dist/components/ContentRender/utils/inline-code-ranges.cjs.map +1 -0
  42. package/dist/components/ContentRender/utils/inline-code-ranges.d.ts +39 -0
  43. package/dist/components/ContentRender/utils/inline-code-ranges.es.js +336 -0
  44. package/dist/components/ContentRender/utils/inline-code-ranges.es.js.map +1 -0
  45. package/dist/components/ContentRender/utils/inline-code-ranges.test.d.ts +1 -0
  46. package/dist/components/ContentRender/utils/markdown-plugins.cjs +2 -0
  47. package/dist/components/ContentRender/utils/markdown-plugins.cjs.map +1 -0
  48. package/dist/components/ContentRender/utils/markdown-plugins.d.ts +2 -0
  49. package/dist/components/ContentRender/utils/markdown-plugins.es.js +14 -0
  50. package/dist/components/ContentRender/utils/markdown-plugins.es.js.map +1 -0
  51. package/dist/components/ContentRender/utils/mermaid-parse.cjs +4 -3
  52. package/dist/components/ContentRender/utils/mermaid-parse.cjs.map +1 -1
  53. package/dist/components/ContentRender/utils/mermaid-parse.es.js +86 -67
  54. package/dist/components/ContentRender/utils/mermaid-parse.es.js.map +1 -1
  55. package/dist/components/ContentRender/utils/mermaid-parse.test.d.ts +1 -0
  56. package/dist/components/ContentRender/utils/normalize-inline-html.cjs +4 -2
  57. package/dist/components/ContentRender/utils/normalize-inline-html.cjs.map +1 -1
  58. package/dist/components/ContentRender/utils/normalize-inline-html.d.ts +4 -1
  59. package/dist/components/ContentRender/utils/normalize-inline-html.es.js +15 -7
  60. package/dist/components/ContentRender/utils/normalize-inline-html.es.js.map +1 -1
  61. package/dist/components/ContentRender/utils/normalize-inline-html.test.d.ts +1 -0
  62. package/dist/components/ContentRender/utils/resumed-prose-fence.cjs +5 -0
  63. package/dist/components/ContentRender/utils/resumed-prose-fence.cjs.map +1 -0
  64. package/dist/components/ContentRender/utils/resumed-prose-fence.d.ts +5 -0
  65. package/dist/components/ContentRender/utils/resumed-prose-fence.es.js +60 -0
  66. package/dist/components/ContentRender/utils/resumed-prose-fence.es.js.map +1 -0
  67. package/dist/components/ContentRender/utils/split-content.cjs +6 -3
  68. package/dist/components/ContentRender/utils/split-content.cjs.map +1 -1
  69. package/dist/components/ContentRender/utils/split-content.d.ts +7 -1
  70. package/dist/components/ContentRender/utils/split-content.es.js +460 -216
  71. package/dist/components/ContentRender/utils/split-content.es.js.map +1 -1
  72. package/dist/components/ContentRender/utils/split-content.image-alt.test.d.ts +1 -0
  73. package/dist/components/ContentRender/utils/split-content.resumed-fences.test.d.ts +1 -0
  74. package/dist/components/ContentRender/utils/video-markdown-run.cjs +14 -0
  75. package/dist/components/ContentRender/utils/video-markdown-run.cjs.map +1 -0
  76. package/dist/components/ContentRender/utils/video-markdown-run.d.ts +47 -0
  77. package/dist/components/ContentRender/utils/video-markdown-run.es.js +468 -0
  78. package/dist/components/ContentRender/utils/video-markdown-run.es.js.map +1 -0
  79. package/dist/components/ContentRender/utils/video-markdown-run.test.d.ts +1 -0
  80. package/dist/components/ContentRender/utils/wrapped-content.test.d.ts +1 -0
  81. package/dist/components/MarkdownFlow/MarkdownFlow.cjs +1 -1
  82. package/dist/components/MarkdownFlow/MarkdownFlow.cjs.map +1 -1
  83. package/dist/components/MarkdownFlow/MarkdownFlow.es.js +9 -8
  84. package/dist/components/MarkdownFlow/MarkdownFlow.es.js.map +1 -1
  85. package/dist/components/Slide/Slide.cjs +1 -1
  86. package/dist/components/Slide/Slide.cjs.map +1 -1
  87. package/dist/components/Slide/Slide.es.js +3 -2
  88. package/dist/components/Slide/Slide.es.js.map +1 -1
  89. package/dist/components/ui/inputGroup/textarea.cjs +1 -1
  90. package/dist/components/ui/inputGroup/textarea.es.js +1 -1
  91. package/dist/node_modules/@braintree/sanitize-url/dist/index.cjs +1 -1
  92. package/dist/node_modules/@braintree/sanitize-url/dist/index.es.js +1 -1
  93. package/dist/node_modules/classnames/index.cjs +1 -1
  94. package/dist/node_modules/classnames/index.es.js +1 -1
  95. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.cjs +1 -1
  96. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.es.js +1 -1
  97. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-AAMF2YG6.cjs +1 -1
  98. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-AAMF2YG6.es.js +1 -1
  99. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-OMD6QJNC.cjs +1 -1
  100. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-OMD6QJNC.es.js +1 -1
  101. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-U37J5Y7L.cjs +1 -1
  102. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-U37J5Y7L.es.js +1 -1
  103. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-WV7ZQ7D5.cjs +1 -1
  104. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-WV7ZQ7D5.es.js +1 -1
  105. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-4MX5Z3NR.cjs +1 -1
  106. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-4MX5Z3NR.es.js +1 -1
  107. package/dist/node_modules/rc-input/es/BaseInput.cjs +1 -1
  108. package/dist/node_modules/rc-input/es/BaseInput.es.js +1 -1
  109. package/dist/node_modules/rc-textarea/es/ResizableTextArea.cjs +1 -1
  110. package/dist/node_modules/rc-textarea/es/ResizableTextArea.es.js +1 -1
  111. package/dist/node_modules/rc-textarea/es/TextArea.cjs +1 -1
  112. package/dist/node_modules/rc-textarea/es/TextArea.es.js +1 -1
  113. package/dist/node_modules/rc-textarea/es/index.cjs +1 -1
  114. package/dist/node_modules/rc-textarea/es/index.es.js +1 -1
  115. package/dist/node_modules/remark-flow/dist/interaction-plugin-core.cjs +1 -1
  116. package/dist/node_modules/remark-flow/dist/interaction-plugin-core.es.js +1 -1
  117. package/dist/node_modules/unified/lib/index.cjs +1 -1
  118. package/dist/node_modules/unified/lib/index.es.js +1 -1
  119. package/package.json +6 -1
package/README.md CHANGED
@@ -48,10 +48,33 @@ function App() {
48
48
  }
49
49
  ```
50
50
 
51
- With the typewriter enabled, prose follows the configured typing pace. Sandbox
52
- HTML is rendered from each received snapshot immediately, including unfinished
53
- fragments, while surrounding prose continues typing. HTML does not consume the
54
- typing budget or wait for earlier prose to finish.
51
+ With the typewriter enabled, prose follows the configured typing pace. Received
52
+ HTML waits until the preceding prose has finished typing, then renders each
53
+ received snapshot immediately, including unfinished fragments. HTML does not consume
54
+ the typing budget. Tag-like text such as `<div`
55
+ remains ordinary Markdown until a tag-name boundary (whitespace, `/`, or `>`) is
56
+ received.
57
+
58
+ Streaming detection recognizes the backend MarkdownFlow block roots, including
59
+ `figure`, `table`, `canvas`, `video`, `header`, `nav`, and `details`. HTML-looking
60
+ text inside Markdown code, math, comments, image alt text, link destinations/titles,
61
+ reference definitions, or another tag's attributes stays inert. Unfinished link metadata
62
+ also stays literal while streaming; invalid links do not hide subsequent HTML.
63
+ Quoted and nested list code fences remain code even directly after closed HTML.
64
+ Detection and presentation are separate: `pre`, `details`, `summary`,
65
+ `aside`, `blockquote`, `ul`, `ol`, `dl`, and `table` keep their native Markdown
66
+ styles and language/direction attributes while bypassing typing. Widget roots
67
+ retain the sandbox; native presentation blocks with embedded script, style, or
68
+ other document resources also use the sandbox (native video frames are exempt).
69
+ Detection scans absolute source offsets without reparsing every remaining
70
+ suffix. Native videos use the complete received Markdown structure; typing only
71
+ changes text visibility, preserving video frames across earlier headings, lists,
72
+ quotes, reference links, and subsequent HTML updates. Stable runs apply the
73
+ same HTML indentation and newline normalization as the ordinary renderer, with
74
+ positions mapped back to the original source for typing and callbacks.
75
+ Each received snapshot determines the Markdown structure. Later source that
76
+ changes its grammar, such as adding a previously missing reference definition,
77
+ can change that structure; typing an already received snapshot preserves it.
55
78
 
56
79
  ### Interactive Elements
57
80
 
@@ -1,7 +1,8 @@
1
- import { getAugmentedNamespace as e } from "./_commonjsHelpers.es.js";
2
- import * as r from "../node_modules/unist-util-visit/index.es.js";
3
- const m = /* @__PURE__ */ e(r);
1
+ import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.es.js";
2
+ import { __require as s } from "../node_modules/classnames/index.es.js";
3
+ var e = s();
4
+ const t = /* @__PURE__ */ r(e);
4
5
  export {
5
- m as default
6
+ t as default
6
7
  };
7
8
  //# sourceMappingURL=index.es3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.es3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,8 +1,7 @@
1
- import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.es.js";
2
- import { __require as s } from "../node_modules/classnames/index.es.js";
3
- var e = s();
4
- const t = /* @__PURE__ */ r(e);
1
+ import { getAugmentedNamespace as e } from "./_commonjsHelpers.es.js";
2
+ import * as r from "../node_modules/unist-util-visit/index.es.js";
3
+ const m = /* @__PURE__ */ e(r);
5
4
  export {
6
- t as default
5
+ m as default
7
6
  };
8
7
  //# sourceMappingURL=index.es4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.es4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,6 +1,8 @@
1
- import { __require as r } from "../node_modules/@braintree/sanitize-url/dist/index.es.js";
2
- var i = r();
1
+ import { getDefaultExportFromCjs as e } from "./_commonjsHelpers.es.js";
2
+ import { __require as r } from "../node_modules/extend/index.es.js";
3
+ var t = r();
4
+ const a = /* @__PURE__ */ e(t);
3
5
  export {
4
- i as d
6
+ a as default
5
7
  };
6
8
  //# sourceMappingURL=index.es5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.es5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,8 +1,6 @@
1
- import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.es.js";
2
- import { __require as o } from "../node_modules/style-to-js/cjs/index.es.js";
3
- var t = o();
4
- const a = /* @__PURE__ */ r(t);
1
+ import { __require as r } from "../node_modules/@braintree/sanitize-url/dist/index.es.js";
2
+ var i = r();
5
3
  export {
6
- a as default
4
+ i as d
7
5
  };
8
6
  //# sourceMappingURL=index.es6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.es6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,7 +1,7 @@
1
- import { getDefaultExportFromCjs as e } from "./_commonjsHelpers.es.js";
2
- import { __require as r } from "../node_modules/extend/index.es.js";
3
- var t = r();
4
- const a = /* @__PURE__ */ e(t);
1
+ import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.es.js";
2
+ import { __require as o } from "../node_modules/style-to-js/cjs/index.es.js";
3
+ var t = o();
4
+ const a = /* @__PURE__ */ r(t);
5
5
  export {
6
6
  a as default
7
7
  };
@@ -1,5 +1,5 @@
1
- var s = { exports: {} };
1
+ var r = {};
2
2
  export {
3
- s as __module
3
+ r as __exports
4
4
  };
5
5
  //# sourceMappingURL=index.es8.js.map
@@ -1,5 +1,5 @@
1
- var r = {};
1
+ var s = { exports: {} };
2
2
  export {
3
- r as __exports
3
+ s as __module
4
4
  };
5
5
  //# sourceMappingURL=index.es9.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),t=require("../node_modules/unist-util-visit/index.cjs"),r=e.getAugmentedNamespace(t);exports.default=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),r=require("../node_modules/classnames/index.cjs");var s=r.__require();const t=e.getDefaultExportFromCjs(s);exports.default=t;
2
2
  //# sourceMappingURL=index3.cjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),r=require("../node_modules/classnames/index.cjs");var s=r.__require();const t=e.getDefaultExportFromCjs(s);exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),t=require("../node_modules/unist-util-visit/index.cjs"),r=e.getAugmentedNamespace(t);exports.default=r;
2
2
  //# sourceMappingURL=index4.cjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../node_modules/@braintree/sanitize-url/dist/index.cjs");var r=e.__require();exports.distExports=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),t=require("../node_modules/extend/index.cjs");var r=t.__require();const o=e.getDefaultExportFromCjs(r);exports.default=o;
2
2
  //# sourceMappingURL=index5.cjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),r=require("../node_modules/style-to-js/cjs/index.cjs");var t=r.__require();const o=e.getDefaultExportFromCjs(t);exports.default=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../node_modules/@braintree/sanitize-url/dist/index.cjs");var r=e.__require();exports.distExports=r;
2
2
  //# sourceMappingURL=index6.cjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),t=require("../node_modules/extend/index.cjs");var r=t.__require();const o=e.getDefaultExportFromCjs(r);exports.default=o;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./_commonjsHelpers.cjs"),r=require("../node_modules/style-to-js/cjs/index.cjs");var t=r.__require();const o=e.getDefaultExportFromCjs(t);exports.default=o;
2
2
  //# sourceMappingURL=index7.cjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={exports:{}};exports.__module=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.__exports=e;
2
2
  //# sourceMappingURL=index8.cjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.__exports=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={exports:{}};exports.__module=e;
2
2
  //# sourceMappingURL=index9.cjs.map
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),r=require("react"),Pe=require("../../_virtual/index.cjs"),_e=require("./utils/sanitize-invalid-tag-name.cjs"),He=require("./utils/strip-svg-text-line-breaks.cjs");;/* empty css */;/* empty css */;/* empty css */;/* empty css */const Le=require("./CodeBlock.cjs"),Qe=require("./plugins/CustomVariable.cjs"),ie=require("./plugins/MermaidChart.cjs"),Be=require("./utils/custom-variable-props.cjs"),je=require("./utils/highlight-languages.cjs"),ce=require("./utils/mermaid-parse.cjs"),Ne=require("./utils/normalize-inline-html.cjs"),Oe=require("./IframeSandbox.cjs"),j=require("./utils/typewriter-pacing.cjs"),Ue=require("./utils/split-content.cjs"),Ke=require("../../lib/interaction-defaults.cjs"),qe=require("../../lib/locale.cjs"),Ae=require("./contentRenderI18n.cjs"),Ye=require("../../node_modules/react-markdown/lib/index.cjs"),Xe=require("../../node_modules/rehype-raw/lib/index.cjs"),Ze=require("../../node_modules/rehype-highlight/lib/index.cjs"),Je=require("../../node_modules/rehype-katex/lib/index.cjs"),et=require("../../node_modules/remark-gfm/lib/index.cjs"),tt=require("../../node_modules/remark-math/lib/index.cjs"),nt=require("../../node_modules/remark-breaks/lib/index.cjs"),rt=2,Me=({svg:t})=>{const s=r.useRef(null);return r.useEffect(()=>{const o=s.current;if(!o)return;const i=o.shadowRoot??o.attachShadow({mode:"open"}),C="content-render-svg-style";let f=i.getElementById(C);f||(f=document.createElement("style"),f.id=C,f.textContent=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),r=require("react"),lt=require("./utils/sanitize-invalid-tag-name.cjs"),dt=require("./utils/strip-svg-text-line-breaks.cjs");;/* empty css */;/* empty css */;/* empty css */;/* empty css */const Qe=require("./CodeBlock.cjs"),mt=require("./plugins/CustomVariable.cjs"),ye=require("./plugins/MermaidChart.cjs"),ze=require("./utils/custom-variable-props.cjs"),We=require("./utils/highlight-languages.cjs"),we=require("./utils/mermaid-parse.cjs"),Ge=require("./utils/inline-code-ranges.cjs"),Oe=require("./utils/markdown-plugins.cjs"),ve=require("./utils/normalize-inline-html.cjs"),ke=require("./utils/escape-typed-metadata.cjs"),pt=require("./IframeSandbox.cjs"),O=require("./utils/typewriter-pacing.cjs"),Fe=require("./utils/split-content.cjs"),ft=require("../../lib/interaction-defaults.cjs"),$e=require("../../lib/locale.cjs"),Re=require("./contentRenderI18n.cjs"),ee=require("./utils/video-markdown-run.cjs"),He=require("../../node_modules/unified/lib/index.cjs"),ht=require("../../node_modules/remark-rehype/lib/index.cjs"),gt=require("../../node_modules/rehype-raw/lib/index.cjs"),xt=require("../../node_modules/rehype-highlight/lib/index.cjs"),vt=require("../../node_modules/rehype-katex/lib/index.cjs"),Ue=require("../../node_modules/react-markdown/lib/index.cjs"),yt=2,Ce=({svg:t,inline:s=!1})=>{const a=r.useRef(null),c=s?"span":"div";return r.useEffect(()=>{const u=a.current;if(!u)return;const d=u.shadowRoot??u.attachShadow({mode:"open"}),v="content-render-svg-style";let g=d.getElementById(v);g||(g=document.createElement("style"),g.id=v,g.textContent=`
2
2
  svg { height: auto; display: inline-block; }
3
3
  svg.content-render-svg-el--responsive { width: 100%; max-width: 100%; }
4
4
  svg.content-render-svg-el--fixed { max-width: none; }
5
- `,i.appendChild(f)),Array.from(i.childNodes).filter(c=>c!==f).forEach(c=>i.removeChild(c));const z=document.createElement("template"),A=He.stripSvgTextLineBreaks(t);z.innerHTML=A,i.append(z.content.cloneNode(!0));let h=!1,G=!1;i.querySelectorAll("svg").forEach(c=>{const W=c.getAttribute("viewBox");if(!W)return;const $=W.trim().split(/[\s,]+/).map(T=>Number(T));if($.length!==4||$.some(Number.isNaN))return;const[,,E,R]=$,q=c.getAttribute("width"),I=c.getAttribute("height"),Q=T=>{if(!T)return!1;const l=T.trim().toLowerCase();return l==="auto"||l.endsWith("%")},O=T=>{if(!T)return null;const l=T.trim().toLowerCase();if(l==="auto"||l.endsWith("%"))return null;const M=Number.parseFloat(l);return Number.isNaN(M)?null:M},Z=Q(q),J=Q(I),U=!q||q==="0",K=!I||I==="0",ee=O(q),te=O(I);if(Z||J||U&&K||ee===E&&te===R){h=!0,c.classList.add("content-render-svg-el--responsive"),c.classList.remove("content-render-svg-el--fixed"),c.style.width="100%",c.style.height="auto",!c.style.aspectRatio&&R>0&&(c.style.aspectRatio=`${E} / ${R}`);return}G=!0,c.classList.add("content-render-svg-el--fixed"),c.classList.remove("content-render-svg-el--responsive"),U&&E>0&&c.setAttribute("width",`${E}`),K&&R>0&&c.setAttribute("height",`${R}`)});const F=h&&!G;o.classList.toggle("content-render-svg--responsive",F),o.classList.toggle("content-render-svg--fixed",!F)},[t]),n.jsx("div",{className:"content-render-svg-scroll",children:n.jsx("div",{className:"content-render-svg",ref:s})})},ue=r.createContext(null),st=t=>{const s=r.useContext(ue),o=r.useContext(Le.CodeBlockContext);if(!s)throw new Error("Markdown code renderer requires ContentRender context.");const{className:i,children:C,...f}=t;if(/language-(\w+)/.exec(i||"")?.[1]==="mermaid"){const A=C?.toString().replace(/\n$/,"")||"",h=ce.mermaidBlockIsComplete(s.current.renderContent,A);return n.jsx(ie.default,{chart:A,frozen:h,messages:s.current.mermaidMessages})}return n.jsx("code",{className:i,...f,dir:f.dir??(o?void 0:"ltr"),children:C})},ot=[et.default,tt.default,Pe.default,nt.default],at=[Be.preserveCustomVariableProperties,Xe.default,_e.sanitizeInvalidTagName,Be.restoreCustomVariableProperties,[Ze.default,{languages:je.highlightLanguages,subset:je.subsetLanguages}],Je.default],le=({content:t,components:s,locale:o})=>{const i=Ae.getContentRenderLocaleTexts(o);return n.jsx("div",{className:"markdown-renderer",children:n.jsx(Ye.Markdown,{remarkPlugins:ot,rehypePlugins:at,remarkRehypeOptions:{footnoteLabel:i.footnoteLabel,footnoteBackLabel:(C,f)=>{const N=String(C+1)+(f>1?`-${f}`:"");return i.footnoteBackLabel.replace("{reference}",N)}},components:s,children:t})})},it=t=>{if(t.length<=1)return t;const s=[];return t.forEach(o=>{if(o.type==="sandbox"){s.push(o);return}const i=s[s.length-1];if(i&&i.type!=="sandbox"){s[s.length-1]={type:"markdown",value:`${i.value}${o.value}`};return}s.push({type:"markdown",value:o.value})}),s},ct=(t,s)=>{const o=Math.max(1,s),i=Array.from(t);return{chunk:i.slice(0,o).join(""),rest:i.slice(o).join("")}},ut=(t,s)=>t===s?!0:!t||!s||t.length!==s.length?!1:t.every((o,i)=>o===s[i]),lt=t=>{const s=r.useRef(t);return ut(s.current,t)||(s.current=t),s.current},dt=({content:t,contentType:s,locale:o,lang:i,dir:C,customRenderBar:f,onSend:N,typingSpeed:z=30,enableTypewriter:A=!1,typewriterPacing:h="fixed",onTypeFinished:G,onTypewriterStateChange:F,userInput:c,interactionDefaultValueOptions:W,defaultButtonText:$,defaultInputText:E,defaultSelectedValues:R,readonly:q=!1,confirmButtonText:I,copyButtonText:Q,copiedButtonText:O,sandboxLoadingText:Z,sandboxStyleLoadingText:J,sandboxScriptLoadingText:U,disableSandboxLoadingOverlay:K=!1,sandboxFullscreenButtonText:ee,sandboxExitFullscreenButtonText:te,sandboxMode:de="content",onClickCustomButtonAfterContent:ne,beforeSend:T})=>{const l=Ae.getContentRenderLocaleTexts(o),M=r.useMemo(()=>({loading:l.mermaidLoadingText,emptyChart:l.mermaidEmptyChartText,error:l.mermaidErrorText}),[l]),P=C??qe.getMarkdownFlowDirection(o),_=i??qe.getMarkdownFlowLanguage(o),me=I||l.confirmButtonText,fe=Q||l.copyButtonText,he=O||l.copiedButtonText,Ee=ee||l.sandboxFullscreenButtonText,Ie=te||l.sandboxExitFullscreenButtonText,d=!!A&&(!s||s==="text"),Y=r.useMemo(()=>it(Ue.splitContentSegments(t,!0,!0)),[t]),re=Y.some(e=>e.type==="sandbox"),u=re?Y.filter(e=>e.type!=="sandbox").map(e=>e.value).join(""):t,pe=Math.max(0,z),Ve=h==="fixed"?u:void 0,[g,xe]=r.useState(()=>d?"":u),X=r.useRef(g),x=r.useRef(""),v=r.useRef({tokens:[],head:0,trailingGrapheme:""}),S=r.useRef(0),ge=r.useRef(d),ve=r.useRef(h),Te=r.useRef(u),ye=r.useRef(t),se=r.useRef(!1),[De,ze]=r.useState(0);r.useEffect(()=>{const e=ge.current,a=ve.current,p=Te.current,w=!!x.current,y=ye.current!==t;ye.current=t,ge.current=d,ve.current=h,Te.current=u,(y||d!==e)&&(se.current=!1);const H=()=>{x.current="",v.current={tokens:[],head:0,trailingGrapheme:""},S.current=0},k=D=>{X.current=D,xe(D)};if(!d){H(),k(u);return}e||(H(),k(""));const L=e?X.current:"";if(!u.startsWith(L)){H(),k(u),h==="content-aware"&&(v.current={tokens:[],head:0,trailingGrapheme:j.getTrailingTypewriterGrapheme(u)});return}let B=u.slice(L.length);if(!B){x.current="",S.current=0,v.current=h==="content-aware"?{tokens:[],head:0,trailingGrapheme:j.getTrailingTypewriterGrapheme(L)}:{tokens:[],head:0,trailingGrapheme:""};return}if(h==="content-aware"){const D=p.slice(L.length);if(e&&a==="content-aware"&&u.startsWith(p)&&x.current===D){const b=j.appendContentAwareTypewriterQueue(v.current,u.slice(p.length));v.current=b.queue,b.immediateChunk&&(B=B.slice(b.immediateChunk.length),k(`${L}${b.immediateChunk}`))}else{const b=j.appendContentAwareTypewriterQueue({tokens:[],head:0,trailingGrapheme:j.getTrailingTypewriterGrapheme(L)},B);v.current=b.queue,b.immediateChunk&&(B=B.slice(b.immediateChunk.length),k(`${L}${b.immediateChunk}`)),S.current=0}}else v.current={tokens:[],head:0,trailingGrapheme:""},S.current=0;x.current=B,!w&&B&&ze(D=>D+1)},[t,u,d,h]),r.useEffect(()=>{d&&(se.current||x.current||g!==u||(se.current=!0,G?.()))},[t,u,g,d,G]),r.useEffect(()=>{if(!d||!x.current)return;const e=window.setTimeout(()=>{if(!x.current)return;let a="";if(h==="content-aware"){const w=j.consumeContentAwareTypewriterQueue(v.current,S.current+j.CONTENT_AWARE_TYPEWRITER_TICK_BUDGET);a=w.chunk,v.current=w.queue,j.isContentAwareTypewriterQueueEmpty(w.queue)?S.current=0:S.current=w.remainingBudget}else a=ct(x.current,rt).chunk;if(!a)return;x.current=x.current.slice(a.length),x.current||(v.current=h==="content-aware"?{tokens:[],head:0,trailingGrapheme:v.current.trailingGrapheme}:{tokens:[],head:0,trailingGrapheme:""},S.current=0);const p=`${X.current}${a}`;X.current=p,xe(p)},pe);return()=>window.clearTimeout(e)},[g,Ve,d,h,pe,De]);const Ce=r.useMemo(()=>({isTypewriterEnabled:d,isTyping:d&&g!==u,isComplete:g===u,renderedLength:t.length-Math.max(0,u.length-g.length),totalLength:t.length}),[t,u,g,d]);r.useEffect(()=>{F?.(Ce)},[F,Ce]);const we=r.useMemo(()=>{let e=0;return Y.map(a=>{if(a.type==="sandbox"||!d)return a;const p=g.slice(e,e+a.value.length);return e+=a.value.length,{...a,value:p}})},[Y,g,d]),V=re?we.map(e=>e.value).join(""):d?g:t,oe=r.useMemo(()=>Ne.normalizeInlineHtml(V),[V]),ae=r.useMemo(()=>Ke.getInteractionDefaultValues(V,c,W),[W,V,c]),ke=$?.trim()||ae.buttonText,be=E?.trim()||ae.inputText,Ge=r.useMemo(()=>c?c.split(",").map(e=>e.trim()).filter(Boolean):void 0,[c]),Fe=R?.length?R:ae.selectedValues||Ge,Re=lt(Fe),m=r.useRef({direction:P,language:_,mermaidMessages:M,beforeSend:T,locale:o,onClickCustomButtonAfterContent:ne,onSend:N,readonly:q,renderContent:V,resolvedConfirmButtonText:me,resolvedCopiedButtonText:he,resolvedCopyButtonText:fe,resolvedDefaultButtonText:ke,resolvedDefaultInputText:be,resolvedDefaultSelectedValues:Re});m.current={direction:P,language:_,mermaidMessages:M,beforeSend:T,locale:o,onClickCustomButtonAfterContent:ne,onSend:N,readonly:q,renderContent:V,resolvedConfirmButtonText:me,resolvedCopiedButtonText:he,resolvedCopyButtonText:fe,resolvedDefaultButtonText:ke,resolvedDefaultInputText:be,resolvedDefaultSelectedValues:Re};const Se=r.useMemo(()=>({"custom-button-after-content":({children:e})=>n.jsx("button",{className:"content-render-custom-button-after-content",onClick:m.current.onClickCustomButtonAfterContent,children:n.jsx("span",{className:"content-render-custom-button-after-content-inner",children:e})}),"custom-variable":e=>n.jsx(Qe.default,{...e,readonly:m.current.readonly,defaultButtonText:m.current.resolvedDefaultButtonText,defaultInputText:m.current.resolvedDefaultInputText,defaultSelectedValues:m.current.resolvedDefaultSelectedValues,onSend:m.current.onSend,beforeSend:m.current.beforeSend,locale:m.current.locale,dir:m.current.direction,lang:m.current.language,confirmButtonText:m.current.resolvedConfirmButtonText}),code:st,table:({...e})=>n.jsx("div",{className:"content-render-table-container",children:n.jsx("table",{className:"content-render-table",...e})}),th:({...e})=>n.jsx("th",{className:"content-render-th",...e}),td:({...e})=>n.jsx("td",{className:"content-render-td",...e}),tr:({...e})=>n.jsx("tr",{className:"content-render-tr",...e}),li:({node:e,...a})=>{const p=e?.properties?.className;return typeof p=="string"&&p.includes("task-list-item")||Array.isArray(p)&&p.includes("task-list-item")?n.jsx("li",{className:"content-render-task-list-item",...a}):n.jsx("li",{...a})},ol:({...e})=>n.jsx("ol",{className:"content-render-ol",...e}),ul:({...e})=>n.jsx("ul",{className:"content-render-ul",...e}),input:({...e})=>e.type==="checkbox"?n.jsx("input",{type:"checkbox",className:"content-render-checkbox",disabled:!0,...e}):n.jsx("input",{...e}),a:({children:e,...a})=>n.jsx("a",{target:"_blank",rel:"noopener noreferrer",...a,children:e}),pre:e=>n.jsx(Le.default,{...e,copyButtonText:m.current.resolvedCopyButtonText,copiedButtonText:m.current.resolvedCopiedButtonText})}),[]),We=r.useMemo(()=>ce.parseMarkdownSegments(oe),[oe]),$e=(e,a)=>{const p=Ne.normalizeInlineHtml(e);return ce.parseMarkdownSegments(p).map((y,H)=>{const k=`${a}-${y.type}-${H}`;return y.type==="text"?n.jsx(ue.Provider,{value:m,children:n.jsx(le,{locale:o,components:Se,content:y.value})},k):y.type==="mermaid"?n.jsx(ie.default,{chart:y.value,frozen:!y.complete,messages:M},k):y.type==="svg"?n.jsx(Me,{svg:y.value},k):null})};return re?n.jsx("div",{className:"content-render markdown-body",dir:P,lang:_,children:we.map((e,a)=>e.type==="sandbox"?n.jsx(Oe.default,{hideFullScreen:!0,type:"sandbox",content:e.value,className:"content-render-iframe",locale:o,dir:P,lang:_,loadingText:Z,styleLoadingText:J,scriptLoadingText:U,disableLoadingOverlay:K,fullScreenButtonText:Ee,exitFullScreenButtonText:Ie,mode:de},`sandbox-${a}`):n.jsx(r.Fragment,{children:$e(e.value,`md-${a}`)},`md-${a}`))}):n.jsxs("div",{className:"content-render markdown-body",dir:P,lang:_,children:[We.map((e,a)=>{if(e.type==="text")return n.jsx(ue.Provider,{value:m,children:n.jsx(le,{locale:o,components:Se,content:e.value})},a);if(e.type==="mermaid")return n.jsx(ie.default,{chart:e.value,frozen:!e.complete,messages:M},a);if(e.type==="svg")return n.jsx(Me,{svg:e.value},a)}),f&&n.jsx("div",{className:"content-render-custom-bar",children:r.createElement(f,{content:t,displayContent:oe,onSend:N})})]})};exports.MarkdownRenderer=le;exports.default=dt;
5
+ `,d.appendChild(g)),Array.from(d.childNodes).filter(l=>l!==g).forEach(l=>d.removeChild(l));const y=document.createElement("template"),R=dt.stripSvgTextLineBreaks(t);y.innerHTML=R,d.append(y.content.cloneNode(!0));let b=!1,k=!1;d.querySelectorAll("svg").forEach(l=>{const E=l.getAttribute("viewBox");if(!E)return;const V=E.trim().split(/[\s,]+/).map(j=>Number(j));if(V.length!==4||V.some(Number.isNaN))return;const[,,I,C]=V,U=l.getAttribute("width"),D=l.getAttribute("height"),K=j=>{if(!j)return!1;const B=j.trim().toLowerCase();return B==="auto"||B.endsWith("%")},te=j=>{if(!j)return null;const B=j.trim().toLowerCase();if(B==="auto"||B.endsWith("%"))return null;const H=Number.parseFloat(B);return Number.isNaN(H)?null:H},ie=K(U),ue=K(D),ne=!U||U==="0",re=!D||D==="0",le=te(U),oe=te(D);if(ie||ue||ne&&re||le===I&&oe===C){b=!0,l.classList.add("content-render-svg-el--responsive"),l.classList.remove("content-render-svg-el--fixed"),l.style.width="100%",l.style.height="auto",!l.style.aspectRatio&&C>0&&(l.style.aspectRatio=`${I} / ${C}`);return}k=!0,l.classList.add("content-render-svg-el--fixed"),l.classList.remove("content-render-svg-el--responsive"),ne&&I>0&&l.setAttribute("width",`${I}`),re&&C>0&&l.setAttribute("height",`${C}`)});const f=b&&!k;u.classList.toggle("content-render-svg--responsive",f),u.classList.toggle("content-render-svg--fixed",!f)},[t]),o.jsx(c,{className:"content-render-svg-scroll",children:o.jsx(c,{className:"content-render-svg",ref:u=>{a.current=u}})})},ce=r.createContext(null),Ke=t=>{const{receivedTree:s,...a}=t,c=r.useContext(ce),u=r.useContext(Qe.CodeBlockContext);if(!c)throw new Error("Markdown code renderer requires ContentRender context.");const{className:d,children:v,...g}=a;if(/language-(\w+)/.exec(d||"")?.[1]==="mermaid"){const R=v?.toString().replace(/\n$/,"")||"",b=we.mermaidBlockIsComplete(c.current.renderContent,R),k=s?!b:b;return o.jsx(ye.default,{chart:R,frozen:k,messages:c.current.mermaidMessages})}return o.jsx("code",{className:d,...g,dir:g.dir??(u?void 0:"ltr"),children:v})},Ye=[ze.preserveCustomVariableProperties,gt.default,lt.sanitizeInvalidTagName,ze.restoreCustomVariableProperties],Xe=[[xt.default,{languages:We.highlightLanguages,subset:We.subsetLanguages}],vt.default],wt=[...Ye,...Xe],Te=({content:t,components:s,locale:a})=>{const c=Re.getContentRenderLocaleTexts(a);return o.jsx("div",{className:"markdown-renderer",children:o.jsx(Ue.Markdown,{remarkPlugins:Oe.remarkPlugins,rehypePlugins:wt,remarkRehypeOptions:{footnoteLabel:c.footnoteLabel,footnoteBackLabel:(u,d)=>{const v=String(u+1)+(d>1?`-${d}`:"");return c.footnoteBackLabel.replace("{reference}",v)}},components:s,children:t})})},kt=function(){this.parser=()=>({type:"root",children:[]})},Ct=({plan:t,renderedSegments:s,components:a,locale:c})=>{const u=r.useMemo(()=>{const R=Re.getContentRenderLocaleTexts(c),b=He.unified().use(Oe.remarkPlugins).use(ht.default,{allowDangerousHtml:!0,footnoteLabel:R.footnoteLabel,footnoteBackLabel:(l,E)=>R.footnoteBackLabel.replace("{reference}",String(l+1)+(E>1?`-${E}`:""))}).use(Ye),k=He.unified().use(Xe),f=b.runSync(ee.cloneVideoMarkdownSourceTree(t),t.markdownSource);return ee.prepareVideoMarkdownRun(t,f,l=>k.runSync(l,t.fullSource))},[t,c]),d=r.useMemo(()=>ee.projectVideoMarkdownRun(u,s),[u,s]),v=r.useRef(a);v.current=a;const g=r.useRef(new Map),J=r.useMemo(()=>{const R=new Set,b=f=>{f.type==="element"&&R.add(f.tagName),"children"in f&&f.children.forEach(b)};b(u.tree);const k={};for(const f of R){if(!g.current.has(f)){const l=({node:E,children:V,...I})=>{const C=ee.getVideoMarkdownNodeState(E);if(C?.svg)return C.svgSource?o.jsx(Ce,{svg:C.svgSource,inline:!0}):null;if(C?.atomic)return C.active?o.jsx(o.Fragment,{children:V}):null;if(C?.active===!1&&f!=="a")return null;const D=v.current[f],K=C?.active===!1?{...I,href:void 0,tabIndex:-1}:I;return D?r.createElement(D,{...K,node:E,...D===Ke?{receivedTree:!0}:{}},V):r.createElement(f,K,V)};l.displayName=`StableMarkdown(${f})`,g.current.set(f,l)}k[f]=g.current.get(f)}return k},[u]),y=r.useMemo(()=>[()=>()=>d],[d]);return o.jsx("div",{className:"markdown-renderer",children:o.jsx(Ue.Markdown,{remarkPlugins:[kt],rehypePlugins:y,components:J,children:""})})},$=t=>t.type==="markdown"&&t.immediate===!0,Tt=t=>{if(t.length<=1)return t;const s=[];return t.forEach(a=>{if(a.type==="sandbox"||$(a)){s.push(a);return}const c=s[s.length-1];if(c&&c.type!=="sandbox"&&!$(c)){s[s.length-1]={type:"markdown",value:`${c.value}${a.value}`};return}s.push({type:"markdown",value:a.value})}),s},Rt=(t,s,a)=>{if(t.length>=s.length)return t;const c=a.find(({start:v,end:g})=>v<t.length&&t.length<g);if(!c)return t;const u=/^`+/.exec(s.slice(c.start))?.[0];if(!u||t.length<c.start+u.length)return t;const d=c.end-u.length;return t.length>d?t+u.slice(t.length-d):t+(t.endsWith("`")?" ":"")+u},_e=(t,s,a,c,u=0)=>{const d=Rt(t,s,a);return ke.escapeTypedMarkdownMetadata(t,c,u)+d.slice(t.length)},bt=(t,s)=>{const a=Math.max(1,s),c=Array.from(t);return{chunk:c.slice(0,a).join(""),rest:c.slice(a).join("")}},St=(t,s)=>t===s?!0:!t||!s||t.length!==s.length?!1:t.every((a,c)=>a===s[c]),Mt=t=>{const s=r.useRef(t);return St(s.current,t)||(s.current=t),s.current},jt=({content:t,contentType:s,locale:a,lang:c,dir:u,customRenderBar:d,onSend:v,typingSpeed:g=30,enableTypewriter:J=!1,typewriterPacing:y="fixed",onTypeFinished:R,onTypewriterStateChange:b,userInput:k,interactionDefaultValueOptions:f,defaultButtonText:l,defaultInputText:E,defaultSelectedValues:V,readonly:I=!1,confirmButtonText:C,copyButtonText:U,copiedButtonText:D,sandboxLoadingText:K,sandboxStyleLoadingText:te,sandboxScriptLoadingText:ie,disableSandboxLoadingOverlay:ue=!1,sandboxFullscreenButtonText:ne,sandboxExitFullscreenButtonText:re,sandboxMode:le="content",onClickCustomButtonAfterContent:oe,beforeSend:de})=>{const z=Re.getContentRenderLocaleTexts(a),j=r.useMemo(()=>({loading:z.mermaidLoadingText,emptyChart:z.mermaidEmptyChartText,error:z.mermaidErrorText}),[z]),B=u??$e.getMarkdownFlowDirection(a),H=c??$e.getMarkdownFlowLanguage(a),be=C||z.confirmButtonText,Se=U||z.copyButtonText,Me=D||z.copiedButtonText,Ze=ne||z.sandboxFullscreenButtonText,Je=re||z.sandboxExitFullscreenButtonText,p=!!J&&(!s||s==="text"),S=r.useMemo(()=>Fe.normalizeWrappedSandboxContent(t),[t]),N=r.useMemo(()=>Ge.getMarkdownSourceAnalysis(S),[S]),w=r.useMemo(()=>{const e=Tt(Fe.splitContentSegments(S,!0,!0,N));return S!==t&&e.length&&(e[0].type==="sandbox"||$(e[0]))?[{type:"text",value:""},...e]:e},[t,S,N]),Y=w.some(e=>e.type==="sandbox"||$(e)),h=Y?w.filter(e=>e.type!=="sandbox"&&!$(e)).map(e=>e.value).join(""):S,je=Math.max(0,g),et=y==="fixed"?h:void 0,[A,Be]=r.useState(()=>p?"":h),se=r.useRef(A),q=r.useRef(""),P=r.useRef({tokens:[],head:0,trailingGrapheme:""}),_=r.useRef(0),Ne=r.useRef(p),qe=r.useRef(y),Le=r.useRef(h),me=r.useRef(t),pe=r.useRef(!1),[tt,nt]=r.useState(0);r.useEffect(()=>{const e=Ne.current,n=qe.current,i=Le.current,m=!!q.current,T=me.current!==t,xe=T&&t.startsWith(me.current);me.current=t,Ne.current=p,qe.current=y,Le.current=h,(T||p!==e)&&(pe.current=!1);const X=()=>{q.current="",P.current={tokens:[],head:0,trailingGrapheme:""},_.current=0},Z=M=>{se.current=M,Be(M)};if(!p){X(),Z(h);return}e||(X(),Z(""));let L=e?se.current:"";if(!h.startsWith(L)){if(X(),!xe){Z(h),y==="content-aware"&&(P.current={tokens:[],head:0,trailingGrapheme:O.getTrailingTypewriterGrapheme(h)});return}let M=0;for(;M<L.length&&M<h.length&&L[M]===h[M];)M+=1;L=L.slice(0,M),Z(L)}let Q=h.slice(L.length);if(!Q){q.current="",_.current=0,P.current=y==="content-aware"?{tokens:[],head:0,trailingGrapheme:O.getTrailingTypewriterGrapheme(L)}:{tokens:[],head:0,trailingGrapheme:""};return}if(y==="content-aware"){const M=i.slice(L.length);if(e&&n==="content-aware"&&h.startsWith(i)&&q.current===M){const F=O.appendContentAwareTypewriterQueue(P.current,h.slice(i.length));P.current=F.queue,F.immediateChunk&&(Q=Q.slice(F.immediateChunk.length),Z(`${L}${F.immediateChunk}`))}else{const F=O.appendContentAwareTypewriterQueue({tokens:[],head:0,trailingGrapheme:O.getTrailingTypewriterGrapheme(L)},Q);P.current=F.queue,F.immediateChunk&&(Q=Q.slice(F.immediateChunk.length),Z(`${L}${F.immediateChunk}`)),_.current=0}}else P.current={tokens:[],head:0,trailingGrapheme:""},_.current=0;q.current=Q,!m&&Q&&nt(M=>M+1)},[t,h,p,y]),r.useEffect(()=>{p&&(pe.current||q.current||A!==h||(pe.current=!0,R?.()))},[t,h,A,p,R]),r.useEffect(()=>{if(!p||!q.current)return;const e=window.setTimeout(()=>{if(!q.current)return;let n="";if(y==="content-aware"){const m=O.consumeContentAwareTypewriterQueue(P.current,_.current+O.CONTENT_AWARE_TYPEWRITER_TICK_BUDGET);n=m.chunk,P.current=m.queue,O.isContentAwareTypewriterQueueEmpty(m.queue)?_.current=0:_.current=m.remainingBudget}else n=bt(q.current,yt).chunk;if(!n)return;q.current=q.current.slice(n.length),q.current||(P.current=y==="content-aware"?{tokens:[],head:0,trailingGrapheme:P.current.trailingGrapheme}:{tokens:[],head:0,trailingGrapheme:""},_.current=0);const i=`${se.current}${n}`;se.current=i,Be(i)},je);return()=>window.clearTimeout(e)},[A,et,p,y,je,tt]);const W=r.useMemo(()=>{let e=0;return w.map(n=>{if(!p)return n;if(n.type==="sandbox"||$(n))return A.length>=e?n:{...n,value:""};const i=A.slice(e,e+n.value.length);return e+=n.value.length,{...n,value:i}})},[w,A,p]),Ae=r.useMemo(()=>({isTypewriterEnabled:p,isTyping:p&&A!==h,isComplete:A===h,renderedLength:t.length-w.reduce((e,n,i)=>e+n.value.length-W[i].value.length,0),totalLength:t.length}),[t,h,A,p,w,W]);r.useEffect(()=>{b?.(Ae)},[b,Ae]);const fe=r.useMemo(()=>{let e=0;return w.map(n=>{const i=e;return e+=n.value.length,i})},[w]),ae=r.useMemo(()=>p?w.map(e=>e.type==="sandbox"||$(e)?[]:e.value===S?N.inline:Ge.getInlineCodeRanges(e.value)):[],[p,w,S,N]),rt=r.useMemo(()=>Y?W.map((e,n)=>e.type==="sandbox"||$(e)?e.value:p?_e(e.value,w[n].value,ae[n]??[],N.metadata,fe[n]):ke.escapeTypedMarkdownMetadata(e.value,N.metadata,fe[n])):[],[Y,p,W,ae,w,N.metadata,fe]),ot=r.useMemo(()=>{const e=[];w.forEach((n,i)=>{const m=e.at(-1);n.type!=="sandbox"&&m&&!m.sandbox?m.indices.push(i):e.push({indices:[i],sandbox:n.type==="sandbox"})});for(const n of e)if(!n.sandbox&&n.indices.some(i=>$(w[i]))){const i=n.indices.map(T=>w[T]),m=i.map(T=>T.value).join("");n.plan=ee.createVideoMarkdownRunPlan(i,m===S?N:void 0)}return e},[w,S,N]),G=Y?W.map(e=>e.value).join(""):p?A:S,st=r.useMemo(()=>d?ve.normalizeInlineHtml(G):"",[d,G]),Pe=r.useMemo(()=>Y?"":ve.normalizeInlineHtml(p?_e(G,S,ae[0]??[],N.metadata):ke.escapeTypedMarkdownMetadata(G,N.metadata)),[S,Y,p,G,ae,N.metadata]),he=r.useMemo(()=>ft.getInteractionDefaultValues(G,k,f),[f,G,k]),Ee=l?.trim()||he.buttonText,Ve=E?.trim()||he.inputText,at=r.useMemo(()=>k?k.split(",").map(e=>e.trim()).filter(Boolean):void 0,[k]),ct=V?.length?V:he.selectedValues||at,Ie=Mt(ct),x=r.useRef({direction:B,language:H,mermaidMessages:j,beforeSend:de,locale:a,onClickCustomButtonAfterContent:oe,onSend:v,readonly:I,renderContent:G,resolvedConfirmButtonText:be,resolvedCopiedButtonText:Me,resolvedCopyButtonText:Se,resolvedDefaultButtonText:Ee,resolvedDefaultInputText:Ve,resolvedDefaultSelectedValues:Ie});x.current={direction:B,language:H,mermaidMessages:j,beforeSend:de,locale:a,onClickCustomButtonAfterContent:oe,onSend:v,readonly:I,renderContent:G,resolvedConfirmButtonText:be,resolvedCopiedButtonText:Me,resolvedCopyButtonText:Se,resolvedDefaultButtonText:Ee,resolvedDefaultInputText:Ve,resolvedDefaultSelectedValues:Ie};const ge=r.useMemo(()=>({"custom-button-after-content":({children:e})=>o.jsx("button",{className:"content-render-custom-button-after-content",onClick:x.current.onClickCustomButtonAfterContent,children:o.jsx("span",{className:"content-render-custom-button-after-content-inner",children:e})}),"custom-variable":e=>o.jsx(mt.default,{...e,readonly:x.current.readonly,defaultButtonText:x.current.resolvedDefaultButtonText,defaultInputText:x.current.resolvedDefaultInputText,defaultSelectedValues:x.current.resolvedDefaultSelectedValues,onSend:x.current.onSend,beforeSend:x.current.beforeSend,locale:x.current.locale,dir:x.current.direction,lang:x.current.language,confirmButtonText:x.current.resolvedConfirmButtonText}),code:Ke,table:({...e})=>o.jsx("div",{className:"content-render-table-container",children:o.jsx("table",{className:"content-render-table",...e})}),th:({...e})=>o.jsx("th",{className:"content-render-th",...e}),td:({...e})=>o.jsx("td",{className:"content-render-td",...e}),tr:({...e})=>o.jsx("tr",{className:"content-render-tr",...e}),li:({node:e,...n})=>{const i=e?.properties?.className;return typeof i=="string"&&i.includes("task-list-item")||Array.isArray(i)&&i.includes("task-list-item")?o.jsx("li",{className:"content-render-task-list-item",...n}):o.jsx("li",{...n})},ol:({...e})=>o.jsx("ol",{className:"content-render-ol",...e}),ul:({...e})=>o.jsx("ul",{className:"content-render-ul",...e}),input:({...e})=>e.type==="checkbox"?o.jsx("input",{type:"checkbox",className:"content-render-checkbox",disabled:!0,...e}):o.jsx("input",{...e}),a:({children:e,...n})=>o.jsx("a",{target:"_blank",rel:"noopener noreferrer",...n,children:e}),pre:e=>o.jsx(Qe.default,{...e,copyButtonText:x.current.resolvedCopyButtonText,copiedButtonText:x.current.resolvedCopiedButtonText})}),[]),it=r.useMemo(()=>we.parseMarkdownSegments(Pe),[Pe]),ut=(e,n)=>{const i=ve.normalizeInlineHtml(e);return we.parseMarkdownSegments(i).map((T,xe)=>{const X=`${n}-${T.type}-${xe}`;return T.type==="text"?o.jsx(ce.Provider,{value:x,children:o.jsx(Te,{locale:a,components:ge,content:T.value})},X):T.type==="mermaid"?o.jsx(ye.default,{chart:T.value,frozen:!T.complete,messages:j},X):T.type==="svg"?o.jsx(Ce,{svg:T.value},X):null})},De=d?o.jsx("div",{className:"content-render-custom-bar",children:r.createElement(d,{content:t,displayContent:st,onSend:v})}):null;return Y?o.jsxs("div",{className:"content-render markdown-body",dir:B,lang:H,children:[ot.map(e=>{const n=e.indices[0],i=W[n];return e.sandbox?i.value?o.jsx(pt.default,{hideFullScreen:!0,type:"sandbox",content:i.value,className:"content-render-iframe",locale:a,dir:B,lang:H,loadingText:K,styleLoadingText:te,scriptLoadingText:ie,disableLoadingOverlay:ue,fullScreenButtonText:Ze,exitFullScreenButtonText:Je,mode:le},`sandbox-${n}`):null:e.plan?o.jsx(ce.Provider,{value:x,children:o.jsx(Ct,{locale:a,components:ge,plan:e.plan,renderedSegments:e.indices.map(m=>W[m])})},`md-${n}`):e.indices.map(m=>o.jsx(r.Fragment,{children:W[m].type==="markdown"&&W[m].pending?null:ut(rt[m],`md-${m}`)},`md-${m}`))}),De]}):o.jsxs("div",{className:"content-render markdown-body",dir:B,lang:H,children:[it.map((e,n)=>{if(e.type==="text")return o.jsx(ce.Provider,{value:x,children:o.jsx(Te,{locale:a,components:ge,content:e.value})},n);if(e.type==="mermaid")return o.jsx(ye.default,{chart:e.value,frozen:!e.complete,messages:j},n);if(e.type==="svg")return o.jsx(Ce,{svg:e.value},n)}),De]})};exports.MarkdownRenderer=Te;exports.default=jt;
6
6
  //# sourceMappingURL=ContentRender.cjs.map