markdown-flow-ui 0.1.83-beta.18 → 0.1.83-beta.19
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/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js +1 -1
- package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-input/es/BaseInput.js +1 -1
- package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/ResizableTextArea.js +1 -1
- package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/TextArea.js +1 -1
- package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/index.js +1 -1
- package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/remark-flow@0.1.6/node_modules/remark-flow/dist/remark-custom-variable.js +1 -1
- package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/remark-flow@0.1.6/node_modules/remark-flow/dist/remark-interaction.js +1 -1
- package/dist/Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/style-to-object@1.0.11/node_modules/style-to-object/cjs/index.js +1 -1
- package/dist/_virtual/index10.js +2 -2
- package/dist/_virtual/index3.js +4 -5
- package/dist/_virtual/index3.js.map +1 -1
- package/dist/_virtual/index4.js +5 -4
- package/dist/_virtual/index4.js.map +1 -1
- package/dist/_virtual/index8.js +2 -2
- package/dist/components/ContentRender/utils/split-content.js +67 -56
- package/dist/components/ContentRender/utils/split-content.js.map +1 -1
- package/dist/components/ui/inputGroup/textarea.js +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import $ from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/hel
|
|
|
2
2
|
import oe from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/extends.js";
|
|
3
3
|
import r from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/defineProperty.js";
|
|
4
4
|
import te from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/typeof.js";
|
|
5
|
-
import d from "../../../../../../../../../_virtual/
|
|
5
|
+
import d from "../../../../../../../../../_virtual/index4.js";
|
|
6
6
|
import l, { useRef as q, cloneElement as ie } from "react";
|
|
7
7
|
import { hasPrefixSuffix as re, hasAddon as de } from "./utils/commonUtils.js";
|
|
8
8
|
var xe = /* @__PURE__ */ l.forwardRef(function(e, z) {
|
|
@@ -4,7 +4,7 @@ import w from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/hel
|
|
|
4
4
|
import J from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/typeof.js";
|
|
5
5
|
import s from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/slicedToArray.js";
|
|
6
6
|
import K from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js";
|
|
7
|
-
import Q from "../../../../../../../../../_virtual/
|
|
7
|
+
import Q from "../../../../../../../../../_virtual/index4.js";
|
|
8
8
|
import ee from "../../../../rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/index.js";
|
|
9
9
|
import M from "../../../../rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useLayoutEffect.js";
|
|
10
10
|
import te from "../../../../rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useMergedState.js";
|
|
@@ -4,7 +4,7 @@ import d from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/hel
|
|
|
4
4
|
import Ae from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js";
|
|
5
5
|
import x from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/slicedToArray.js";
|
|
6
6
|
import Fe from "../../../../@babel_runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js";
|
|
7
|
-
import h from "../../../../../../../../../_virtual/
|
|
7
|
+
import h from "../../../../../../../../../_virtual/index4.js";
|
|
8
8
|
import Ne from "../../../../rc-input@1.8.0_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-input/es/BaseInput.js";
|
|
9
9
|
import Te from "../../../../rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useMergedState.js";
|
|
10
10
|
import o, { useRef as Y, useImperativeHandle as $e, useEffect as Ie } from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import t from "./TextArea.js";
|
|
2
|
-
import "../../../../../../../../../_virtual/
|
|
2
|
+
import "../../../../../../../../../_virtual/index4.js";
|
|
3
3
|
import "../../../../rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/index.js";
|
|
4
4
|
import "../../../../rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useLayoutEffect.js";
|
|
5
5
|
import "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exports as a } from "../../../../../../../../../_virtual/remark-custom-variable.js";
|
|
2
|
-
import g from "../../../../../../../../../_virtual/
|
|
2
|
+
import g from "../../../../../../../../../_virtual/index3.js";
|
|
3
3
|
import { __require as h } from "./interaction-parser.js";
|
|
4
4
|
var m;
|
|
5
5
|
function C() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exports as n } from "../../../../../../../../../_virtual/remark-interaction.js";
|
|
2
|
-
import I from "../../../../../../../../../_virtual/
|
|
2
|
+
import I from "../../../../../../../../../_virtual/index3.js";
|
|
3
3
|
import { __require as g } from "./interaction-parser.js";
|
|
4
4
|
var m;
|
|
5
5
|
function k() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as r } from "../../../../../../../../../_virtual/
|
|
1
|
+
import { __exports as r } from "../../../../../../../../../_virtual/index10.js";
|
|
2
2
|
import { __require as p } from "../../../../inline-style-parser@0.2.4/node_modules/inline-style-parser/index.js";
|
|
3
3
|
var f;
|
|
4
4
|
function q() {
|
package/dist/_virtual/index10.js
CHANGED
package/dist/_virtual/index3.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
const t = /* @__PURE__ */ r(e);
|
|
1
|
+
import { getAugmentedNamespace as e } from "./_commonjsHelpers.js";
|
|
2
|
+
import * as r from "../Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/unist-util-visit@5.0.0/node_modules/unist-util-visit/index.js";
|
|
3
|
+
const m = /* @__PURE__ */ e(r);
|
|
5
4
|
export {
|
|
6
|
-
|
|
5
|
+
m as default
|
|
7
6
|
};
|
|
8
7
|
//# sourceMappingURL=index3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/dist/_virtual/index4.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
|
|
2
|
+
import { __require as s } from "../Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";
|
|
3
|
+
var e = s();
|
|
4
|
+
const t = /* @__PURE__ */ r(e);
|
|
4
5
|
export {
|
|
5
|
-
|
|
6
|
+
t as default
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=index4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index4.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/dist/_virtual/index8.js
CHANGED
|
@@ -1,81 +1,92 @@
|
|
|
1
|
-
const
|
|
1
|
+
const B = /<(script|style|link|iframe|html|head|body|meta|title|base|template|div|section|article|main)[\s>]/i, E = [
|
|
2
2
|
/<svg[\s\S]*?<\/svg>/i,
|
|
3
3
|
/<img\b[^>]*?>/i,
|
|
4
4
|
/```mermaid[\s\S]*?```/i,
|
|
5
5
|
/```[a-zA-Z0-9]+[\s\S]*?```/i
|
|
6
|
-
],
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (
|
|
10
|
-
|
|
6
|
+
], k = /<\/[a-z][^>]*>/gi, O = (t, e, i) => {
|
|
7
|
+
if (i) {
|
|
8
|
+
const l = t.toLowerCase(), c = `</${i.toLowerCase()}>`, u = l.indexOf(c, e);
|
|
9
|
+
if (u !== -1) {
|
|
10
|
+
let o = u + c.length;
|
|
11
|
+
for (; o < t.length && /\s/.test(t[o]); )
|
|
12
|
+
o += 1;
|
|
13
|
+
return o;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
let n = t.length, s;
|
|
17
|
+
for (k.lastIndex = 0; s = k.exec(t); )
|
|
18
|
+
if (!(s.index <= e)) {
|
|
19
|
+
n = s.index + s[0].length;
|
|
11
20
|
break;
|
|
12
21
|
}
|
|
13
|
-
return
|
|
14
|
-
},
|
|
15
|
-
let
|
|
16
|
-
return
|
|
17
|
-
const
|
|
18
|
-
if (!
|
|
19
|
-
const
|
|
20
|
-
(!
|
|
21
|
-
}),
|
|
22
|
-
},
|
|
23
|
-
const
|
|
24
|
-
if (!
|
|
25
|
-
const
|
|
26
|
-
`),
|
|
27
|
-
for (const
|
|
28
|
-
if (!
|
|
29
|
-
|
|
22
|
+
return n;
|
|
23
|
+
}, A = (t) => {
|
|
24
|
+
let e = null;
|
|
25
|
+
return E.forEach((i) => {
|
|
26
|
+
const n = i.exec(t);
|
|
27
|
+
if (!n || typeof n.index != "number") return;
|
|
28
|
+
const s = n.index, l = n.index + n[0].length;
|
|
29
|
+
(!e || s < e.start) && (e = { start: s, end: l });
|
|
30
|
+
}), e;
|
|
31
|
+
}, N = (t) => {
|
|
32
|
+
const e = t.match(/^\s*\|.+\|\s*$/m);
|
|
33
|
+
if (!e || typeof e.index != "number") return null;
|
|
34
|
+
const i = e[0].match(/^\s*/)?.[0].length ?? 0, n = e.index + i, s = t.slice(n).split(`
|
|
35
|
+
`), l = [];
|
|
36
|
+
for (const u of s) {
|
|
37
|
+
if (!u.trim().startsWith("|")) break;
|
|
38
|
+
l.push(u);
|
|
30
39
|
}
|
|
31
|
-
const
|
|
40
|
+
const c = l.join(`
|
|
32
41
|
`);
|
|
33
|
-
return { start:
|
|
34
|
-
},
|
|
35
|
-
const
|
|
36
|
-
if (
|
|
37
|
-
if (
|
|
38
|
-
const
|
|
39
|
-
return
|
|
42
|
+
return { start: n, block: c, end: n + c.length };
|
|
43
|
+
}, p = (t, e = !1) => {
|
|
44
|
+
const i = t.search(B), n = t.indexOf("```");
|
|
45
|
+
if (n !== -1 && t.indexOf("```", n + 3) === -1) {
|
|
46
|
+
if (e) {
|
|
47
|
+
const d = t.slice(0, n).trimEnd(), f = t.slice(n), m = [];
|
|
48
|
+
return d && m.push({ type: "text", value: d }), m.push({ type: "markdown", value: f }), m;
|
|
40
49
|
}
|
|
41
50
|
return [{ type: "markdown", value: t }];
|
|
42
51
|
}
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
const
|
|
46
|
-
return
|
|
52
|
+
const s = t.search(/<svg\b/i), l = s !== -1 && (i === -1 || s <= i);
|
|
53
|
+
if (e && l) {
|
|
54
|
+
const r = t.slice(0, s), a = t.indexOf("</svg>", s), d = a === -1 ? `${t.slice(s)}</svg>` : t.slice(s, a + 6), f = a === -1 ? "" : t.slice(a + 6), m = [];
|
|
55
|
+
return r.trim() && m.push({ type: "text", value: r }), m.push({ type: "markdown", value: d }), f.trim() && m.push(...p(f, !0)), m;
|
|
47
56
|
}
|
|
48
|
-
if (
|
|
57
|
+
if (l && t.indexOf("</svg>", s) === -1)
|
|
49
58
|
return [{ type: "markdown", value: `${t}</svg>` }];
|
|
50
|
-
const c =
|
|
59
|
+
const c = N(t);
|
|
51
60
|
if (c) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
),
|
|
61
|
+
if (!e)
|
|
62
|
+
return [{ type: "markdown", value: c.block }];
|
|
63
|
+
const r = [], a = t.slice(0, c.start);
|
|
64
|
+
a.trim() && r.push({ type: "text", value: a }), r.push({ type: "markdown", value: c.block });
|
|
65
|
+
const d = t.slice(c.end), f = d.length < t.length;
|
|
66
|
+
return d.trim() && f && r.push(...p(d, !0)), r;
|
|
58
67
|
}
|
|
59
|
-
if (t.match(/<svg[\s\S]*?<\/svg>/i) &&
|
|
68
|
+
if (t.match(/<svg[\s\S]*?<\/svg>/i) && e && i === -1)
|
|
60
69
|
return t.trim().toLowerCase().endsWith("</svg>") ? [{ type: "markdown", value: t }] : [{ type: "markdown", value: `${t}</svg>` }];
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
63
|
-
return
|
|
64
|
-
const
|
|
65
|
-
if (!
|
|
70
|
+
const o = A(t);
|
|
71
|
+
if (i === -1 && !o)
|
|
72
|
+
return e && t.trim() ? [{ type: "text", value: t }] : [];
|
|
73
|
+
const h = !!o && (i === -1 || o.start < i);
|
|
74
|
+
if (!e)
|
|
66
75
|
return [
|
|
67
76
|
{
|
|
68
|
-
type:
|
|
77
|
+
type: h ? "markdown" : "sandbox",
|
|
69
78
|
value: t
|
|
70
79
|
}
|
|
71
80
|
];
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
const g = h ? o.start : i, S = h ? void 0 : t.slice(g).match(
|
|
82
|
+
/^<(script|style|link|iframe|html|head|body|meta|title|base|template|div|section|article|main)[\s>]/i
|
|
83
|
+
)?.[1], b = h ? o.end : O(t, g, S), v = [], x = t.slice(0, g), I = t.slice(g, b), y = t.slice(b);
|
|
84
|
+
return e && x.trim() && v.push({ type: "text", value: x }), v.push({
|
|
85
|
+
type: h ? "markdown" : "sandbox",
|
|
86
|
+
value: I
|
|
87
|
+
}), y.trim() && v.push(...p(y, e)), v;
|
|
77
88
|
};
|
|
78
89
|
export {
|
|
79
|
-
|
|
90
|
+
p as splitContentSegments
|
|
80
91
|
};
|
|
81
92
|
//# sourceMappingURL=split-content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-content.js","sources":["../../../../src/components/ContentRender/utils/split-content.ts"],"sourcesContent":["export type RenderSegment =\n | { type: \"markdown\"; value: string }\n | { type: \"sandbox\"; value: string }\n | { type: \"text\"; value: string };\n\nconst SANDBOX_START_PATTERN =\n /<(script|style|link|iframe|html|head|body|meta|title|base|template|div|section|article|main)[\\s>]/i;\n\nconst INLINE_SANDBOX_PATTERNS: RegExp[] = [\n /<svg[\\s\\S]*?<\\/svg>/i,\n /<img\\b[^>]*?>/i,\n /```mermaid[\\s\\S]*?```/i,\n /```[a-zA-Z0-9]+[\\s\\S]*?```/i,\n];\n\nconst closingBoundary = /<\\/[a-z][^>]*>\\s*\\n(?=[^\\s<])/gi;\n\ntype MatchResult = { start: number; end: number };\n\nconst findHtmlBlockEnd = (raw: string, startIndex: number) => {\n let blockEnd = raw.length;\n let match: RegExpExecArray | null;\n closingBoundary.lastIndex = 0;\n\n while ((match = closingBoundary.exec(raw))) {\n if (match.index <= startIndex) continue;\n blockEnd = match.index + match[0].length;\n break;\n }\n\n return blockEnd;\n};\n\nconst findInlineSandboxMatch = (raw: string): MatchResult | null => {\n let earliest: MatchResult | null = null;\n\n INLINE_SANDBOX_PATTERNS.forEach((pattern) => {\n const match = pattern.exec(raw);\n if (!match || typeof match.index !== \"number\") return;\n const start = match.index;\n const end = match.index + match[0].length;\n\n if (!earliest || start < earliest.start) {\n earliest = { start, end };\n }\n });\n\n return earliest;\n};\n\nconst extractTableBlock = (\n raw: string\n): { start: number; block: string; end: number } | null => {\n const tableMatch = raw.match(/^\\s*\\|.+\\|\\s*$/m);\n if (!tableMatch || typeof tableMatch.index !== \"number\") return null;\n\n const leadingSpaces = tableMatch[0].match(/^\\s*/)?.[0].length ?? 0;\n const tableStart = tableMatch.index + leadingSpaces;\n\n const lines = raw.slice(tableStart).split(\"\\n\");\n const tableLines: string[] = [];\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed.startsWith(\"|\")) break;\n tableLines.push(line);\n }\n\n const block = tableLines.join(\"\\n\");\n return { start: tableStart, block, end: tableStart + block.length };\n};\n\n// Split incoming markdown content into markdown and sandbox HTML segments\nexport const splitContentSegments = (\n raw: string,\n keepText = false\n): RenderSegment[] => {\n const fenceStart = raw.indexOf(\"```\");\n if (fenceStart !== -1) {\n const closingFence = raw.indexOf(\"```\", fenceStart + 3);\n if (closingFence === -1) {\n if (keepText) {\n const before = raw.slice(0, fenceStart);\n const beforeText = before.trimEnd();\n const fenceBlock = raw.slice(fenceStart);\n const segments: RenderSegment[] = [];\n if (beforeText) {\n segments.push({ type: \"text\", value: beforeText });\n }\n segments.push({ type: \"markdown\", value: fenceBlock });\n return segments;\n }\n return [{ type: \"markdown\", value: raw }];\n }\n }\n\n const svgOpenIndex = raw.search(/<svg\\b/i);\n if (keepText && svgOpenIndex !== -1) {\n const before = raw.slice(0, svgOpenIndex);\n const closeIdx = raw.indexOf(\"</svg>\", svgOpenIndex);\n const svgBlock =\n closeIdx === -1\n ? `${raw.slice(svgOpenIndex)}</svg>`\n : raw.slice(svgOpenIndex, closeIdx + \"</svg>\".length);\n const after = closeIdx === -1 ? \"\" : raw.slice(closeIdx + \"</svg>\".length);\n\n const segments: RenderSegment[] = [];\n if (before.trim()) {\n segments.push({ type: \"text\", value: before });\n }\n segments.push({ type: \"markdown\", value: svgBlock });\n if (after.trim()) {\n segments.push(...splitContentSegments(after, true));\n }\n return segments;\n }\n if (svgOpenIndex !== -1 && raw.indexOf(\"</svg>\", svgOpenIndex) === -1) {\n return [{ type: \"markdown\", value: `${raw}</svg>` }];\n }\n\n const tableBlock = extractTableBlock(raw);\n if (tableBlock) {\n const segments: RenderSegment[] = [];\n const before = raw.slice(0, tableBlock.start);\n if (keepText && before.trim()) {\n segments.push({ type: \"text\", value: before });\n }\n segments.push({ type: \"markdown\", value: tableBlock.block });\n const after = raw.slice(tableBlock.end);\n const hasProgress = after.length < raw.length;\n if (after.trim() && hasProgress) {\n segments.push(\n ...(keepText\n ? splitContentSegments(after, true)\n : splitContentSegments(after))\n );\n }\n return segments;\n }\n\n const completeSvgMatch = raw.match(/<svg[\\s\\S]*?<\\/svg>/i);\n if (completeSvgMatch && keepText) {\n if (!raw.trim().toLowerCase().endsWith(\"</svg>\")) {\n return [{ type: \"markdown\", value: `${raw}</svg>` }];\n }\n return [{ type: \"markdown\", value: raw }];\n }\n\n const sandboxStartIndex = raw.search(SANDBOX_START_PATTERN);\n const inlineMatch = findInlineSandboxMatch(raw);\n\n if (sandboxStartIndex === -1 && !inlineMatch) {\n if (keepText && raw.trim()) {\n return [{ type: \"text\", value: raw }];\n }\n return [];\n }\n\n const shouldUseInline =\n !!inlineMatch &&\n (sandboxStartIndex === -1 || inlineMatch.start < sandboxStartIndex);\n\n if (!keepText) {\n return [\n {\n type: shouldUseInline ? \"markdown\" : \"sandbox\",\n value: raw,\n },\n ];\n }\n\n const startIndex = shouldUseInline ? inlineMatch!.start : sandboxStartIndex;\n const blockEnd = shouldUseInline\n ? inlineMatch!.end\n : findHtmlBlockEnd(raw, startIndex);\n\n const segments: RenderSegment[] = [];\n const before = raw.slice(0, startIndex);\n const matchedBlock = raw.slice(startIndex, blockEnd);\n const after = raw.slice(blockEnd);\n\n if (keepText && before.trim()) {\n segments.push({ type: \"text\", value: before });\n }\n\n segments.push({\n type: shouldUseInline ? \"markdown\" : \"sandbox\",\n value: matchedBlock,\n });\n\n if (after.trim()) {\n segments.push(...splitContentSegments(after, keepText));\n }\n\n return segments;\n};\n"],"names":["SANDBOX_START_PATTERN","INLINE_SANDBOX_PATTERNS","closingBoundary","findHtmlBlockEnd","raw","startIndex","blockEnd","match","findInlineSandboxMatch","earliest","pattern","start","end","extractTableBlock","tableMatch","leadingSpaces","tableStart","lines","tableLines","line","block","splitContentSegments","keepText","fenceStart","beforeText","fenceBlock","segments","svgOpenIndex","before","closeIdx","svgBlock","after","tableBlock","hasProgress","sandboxStartIndex","inlineMatch","shouldUseInline","matchedBlock"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"split-content.js","sources":["../../../../src/components/ContentRender/utils/split-content.ts"],"sourcesContent":["export type RenderSegment =\n | { type: \"markdown\"; value: string }\n | { type: \"sandbox\"; value: string }\n | { type: \"text\"; value: string };\n\nconst SANDBOX_START_PATTERN =\n /<(script|style|link|iframe|html|head|body|meta|title|base|template|div|section|article|main)[\\s>]/i;\n\nconst INLINE_SANDBOX_PATTERNS: RegExp[] = [\n /<svg[\\s\\S]*?<\\/svg>/i,\n /<img\\b[^>]*?>/i,\n /```mermaid[\\s\\S]*?```/i,\n /```[a-zA-Z0-9]+[\\s\\S]*?```/i,\n];\n\nconst closingBoundary = /<\\/[a-z][^>]*>/gi;\n\ntype MatchResult = { start: number; end: number };\n\nconst findHtmlBlockEnd = (\n raw: string,\n startIndex: number,\n tagName?: string\n) => {\n if (tagName) {\n const lower = raw.toLowerCase();\n const endTag = `</${tagName.toLowerCase()}>`;\n const closeIdx = lower.indexOf(endTag, startIndex);\n if (closeIdx !== -1) {\n let blockEnd = closeIdx + endTag.length;\n while (blockEnd < raw.length && /\\s/.test(raw[blockEnd])) {\n blockEnd += 1;\n }\n return blockEnd;\n }\n }\n\n let blockEnd = raw.length;\n let match: RegExpExecArray | null;\n closingBoundary.lastIndex = 0;\n\n while ((match = closingBoundary.exec(raw))) {\n if (match.index <= startIndex) continue;\n blockEnd = match.index + match[0].length;\n break;\n }\n\n return blockEnd;\n};\n\nconst findInlineSandboxMatch = (raw: string): MatchResult | null => {\n let earliest: MatchResult | null = null;\n\n INLINE_SANDBOX_PATTERNS.forEach((pattern) => {\n const match = pattern.exec(raw);\n if (!match || typeof match.index !== \"number\") return;\n const start = match.index;\n const end = match.index + match[0].length;\n\n if (!earliest || start < earliest.start) {\n earliest = { start, end };\n }\n });\n\n return earliest;\n};\n\nconst extractTableBlock = (\n raw: string\n): { start: number; block: string; end: number } | null => {\n const tableMatch = raw.match(/^\\s*\\|.+\\|\\s*$/m);\n if (!tableMatch || typeof tableMatch.index !== \"number\") return null;\n\n const leadingSpaces = tableMatch[0].match(/^\\s*/)?.[0].length ?? 0;\n const tableStart = tableMatch.index + leadingSpaces;\n\n const lines = raw.slice(tableStart).split(\"\\n\");\n const tableLines: string[] = [];\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed.startsWith(\"|\")) break;\n tableLines.push(line);\n }\n\n const block = tableLines.join(\"\\n\");\n return { start: tableStart, block, end: tableStart + block.length };\n};\n\n// Split incoming markdown content into markdown and sandbox HTML segments\nexport const splitContentSegments = (\n raw: string,\n keepText = false\n): RenderSegment[] => {\n const sandboxStartIndex = raw.search(SANDBOX_START_PATTERN);\n const fenceStart = raw.indexOf(\"```\");\n if (fenceStart !== -1) {\n const closingFence = raw.indexOf(\"```\", fenceStart + 3);\n if (closingFence === -1) {\n if (keepText) {\n const before = raw.slice(0, fenceStart);\n const beforeText = before.trimEnd();\n const fenceBlock = raw.slice(fenceStart);\n const segments: RenderSegment[] = [];\n if (beforeText) {\n segments.push({ type: \"text\", value: beforeText });\n }\n segments.push({ type: \"markdown\", value: fenceBlock });\n return segments;\n }\n return [{ type: \"markdown\", value: raw }];\n }\n }\n\n const svgOpenIndex = raw.search(/<svg\\b/i);\n const canHandleInlineSvg =\n svgOpenIndex !== -1 &&\n (sandboxStartIndex === -1 || svgOpenIndex <= sandboxStartIndex);\n\n if (keepText && canHandleInlineSvg) {\n const before = raw.slice(0, svgOpenIndex);\n const closeIdx = raw.indexOf(\"</svg>\", svgOpenIndex);\n const svgBlock =\n closeIdx === -1\n ? `${raw.slice(svgOpenIndex)}</svg>`\n : raw.slice(svgOpenIndex, closeIdx + \"</svg>\".length);\n const after = closeIdx === -1 ? \"\" : raw.slice(closeIdx + \"</svg>\".length);\n\n const segments: RenderSegment[] = [];\n if (before.trim()) {\n segments.push({ type: \"text\", value: before });\n }\n segments.push({ type: \"markdown\", value: svgBlock });\n if (after.trim()) {\n segments.push(...splitContentSegments(after, true));\n }\n return segments;\n }\n if (canHandleInlineSvg && raw.indexOf(\"</svg>\", svgOpenIndex) === -1) {\n return [{ type: \"markdown\", value: `${raw}</svg>` }];\n }\n\n const tableBlock = extractTableBlock(raw);\n if (tableBlock) {\n if (!keepText) {\n return [{ type: \"markdown\", value: tableBlock.block }];\n }\n\n const segments: RenderSegment[] = [];\n const before = raw.slice(0, tableBlock.start);\n if (before.trim()) {\n segments.push({ type: \"text\", value: before });\n }\n segments.push({ type: \"markdown\", value: tableBlock.block });\n const after = raw.slice(tableBlock.end);\n const hasProgress = after.length < raw.length;\n if (after.trim() && hasProgress) {\n segments.push(...splitContentSegments(after, true));\n }\n return segments;\n }\n\n const completeSvgMatch = raw.match(/<svg[\\s\\S]*?<\\/svg>/i);\n if (completeSvgMatch && keepText && sandboxStartIndex === -1) {\n if (!raw.trim().toLowerCase().endsWith(\"</svg>\")) {\n return [{ type: \"markdown\", value: `${raw}</svg>` }];\n }\n return [{ type: \"markdown\", value: raw }];\n }\n\n const inlineMatch = findInlineSandboxMatch(raw);\n\n if (sandboxStartIndex === -1 && !inlineMatch) {\n if (keepText && raw.trim()) {\n return [{ type: \"text\", value: raw }];\n }\n return [];\n }\n\n const shouldUseInline =\n !!inlineMatch &&\n (sandboxStartIndex === -1 || inlineMatch.start < sandboxStartIndex);\n\n if (!keepText) {\n return [\n {\n type: shouldUseInline ? \"markdown\" : \"sandbox\",\n value: raw,\n },\n ];\n }\n\n const startIndex = shouldUseInline ? inlineMatch!.start : sandboxStartIndex;\n const tagName = shouldUseInline\n ? undefined\n : raw\n .slice(startIndex)\n .match(\n /^<(script|style|link|iframe|html|head|body|meta|title|base|template|div|section|article|main)[\\s>]/i\n )?.[1];\n const blockEnd = shouldUseInline\n ? inlineMatch!.end\n : findHtmlBlockEnd(raw, startIndex, tagName);\n\n const segments: RenderSegment[] = [];\n const before = raw.slice(0, startIndex);\n const matchedBlock = raw.slice(startIndex, blockEnd);\n const after = raw.slice(blockEnd);\n\n if (keepText && before.trim()) {\n segments.push({ type: \"text\", value: before });\n }\n\n segments.push({\n type: shouldUseInline ? \"markdown\" : \"sandbox\",\n value: matchedBlock,\n });\n\n if (after.trim()) {\n segments.push(...splitContentSegments(after, keepText));\n }\n\n return segments;\n};\n"],"names":["SANDBOX_START_PATTERN","INLINE_SANDBOX_PATTERNS","closingBoundary","findHtmlBlockEnd","raw","startIndex","tagName","lower","endTag","closeIdx","blockEnd","match","findInlineSandboxMatch","earliest","pattern","start","end","extractTableBlock","tableMatch","leadingSpaces","tableStart","lines","tableLines","line","block","splitContentSegments","keepText","sandboxStartIndex","fenceStart","beforeText","fenceBlock","segments","svgOpenIndex","canHandleInlineSvg","before","svgBlock","after","tableBlock","hasProgress","inlineMatch","shouldUseInline","matchedBlock"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as i } from "../../../_virtual/jsx-runtime.js";
|
|
2
2
|
import * as d from "react";
|
|
3
3
|
import n from "../../../Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-textarea@1.10.2_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-textarea/es/TextArea.js";
|
|
4
|
-
import "../../../_virtual/
|
|
4
|
+
import "../../../_virtual/index4.js";
|
|
5
5
|
import "../../../Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-resize-observer@1.4.3_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-resize-observer/es/index.js";
|
|
6
6
|
import "../../../Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/hooks/useLayoutEffect.js";
|
|
7
7
|
import "../../../Documents/ai-shifu/markdown-flow-ui/node_modules/.pnpm/rc-util@5.44.4_react-dom@19.0.1_react@19.0.1__react@19.0.1/node_modules/rc-util/es/raf.js";
|