@epam/ai-dial-chat-shared 1.2.0-dev.101 → 1.2.0-dev.106
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/components/MarkdownRenderer/MDMessageViewer.js +23 -17
- package/components/MarkdownRenderer/MarkdownRenderer.js +88 -90
- package/components/MarkdownRenderer/PlainTextRenderer.js +21 -0
- package/components/MarkdownRenderer/ThinkingShimmer.js +14 -0
- package/index.css +1 -1
- package/index.d.ts +49 -1
- package/index.js +14 -12
- package/markdown.d.ts +46 -1
- package/markdown.js +5 -4
- package/package.json +1 -1
- package/utils/is-skill-selection-unsupported.js +4 -0
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import { MarkdownRenderer as e } from "./MarkdownRenderer.js";
|
|
2
2
|
import { DEFAULT_MARKDOWN_CLASS_NAMES as t } from "./markdown-class-names.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { PlainTextRenderer as n } from "./PlainTextRenderer.js";
|
|
4
|
+
import { memo as r } from "react";
|
|
5
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
5
6
|
//#region src/components/MarkdownRenderer/MDMessageViewer.tsx
|
|
6
|
-
var
|
|
7
|
-
content:
|
|
8
|
-
isStreaming:
|
|
9
|
-
thinkingLabel:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
var a = r(({ content: r, isPlainText: a, isStreaming: o, thinkingLabel: s, components: c, urlTransform: l, codeBlockCopyLabel: u, codeBlockCopiedLabel: d, codeBlockTheme: f, tableActionLabels: p, tableDownloadFilename: m, tableOnOpenInCanvas: h, tableScrollRegionAriaLabel: g, classNames: _ = t }) => a ? /* @__PURE__ */ i(n, {
|
|
8
|
+
content: r,
|
|
9
|
+
isStreaming: o,
|
|
10
|
+
thinkingLabel: s,
|
|
11
|
+
classNames: _
|
|
12
|
+
}) : /* @__PURE__ */ i(e, {
|
|
13
|
+
content: r,
|
|
14
|
+
isStreaming: o,
|
|
15
|
+
thinkingLabel: s,
|
|
16
|
+
components: c,
|
|
17
|
+
urlTransform: l,
|
|
18
|
+
codeBlockCopyLabel: u,
|
|
19
|
+
codeBlockCopiedLabel: d,
|
|
20
|
+
codeBlockTheme: f,
|
|
21
|
+
tableActionLabels: p,
|
|
22
|
+
tableDownloadFilename: m,
|
|
23
|
+
tableOnOpenInCanvas: h,
|
|
24
|
+
tableScrollRegionAriaLabel: g,
|
|
25
|
+
classNames: _
|
|
20
26
|
}));
|
|
21
27
|
//#endregion
|
|
22
|
-
export {
|
|
28
|
+
export { a as MDMessageViewer };
|
|
@@ -8,20 +8,21 @@ import { MarkdownMathBlock as o } from "./Math/MarkdownMathBlock.js";
|
|
|
8
8
|
import s from "./Table/MarkdownTable.module.scss.js";
|
|
9
9
|
import { MarkdownTable as c } from "./Table/MarkdownTable.js";
|
|
10
10
|
import { MarkdownTaskCheckbox as l } from "./TaskCheckbox/MarkdownTaskCheckbox.js";
|
|
11
|
-
import u from "
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import
|
|
15
|
-
import b from "
|
|
16
|
-
import x
|
|
17
|
-
import C from "
|
|
18
|
-
import w from "remark-
|
|
11
|
+
import { ThinkingShimmer as u } from "./ThinkingShimmer.js";
|
|
12
|
+
import d from "remark-gfm";
|
|
13
|
+
import { memo as f, useEffect as p, useMemo as m, useState as h } from "react";
|
|
14
|
+
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
15
|
+
import y, { defaultUrlTransform as b } from "react-markdown";
|
|
16
|
+
import x from "rehype-raw";
|
|
17
|
+
import S, { defaultSchema as C } from "rehype-sanitize";
|
|
18
|
+
import w from "remark-breaks";
|
|
19
|
+
import T from "remark-math";
|
|
19
20
|
//#region src/components/MarkdownRenderer/MarkdownRenderer.tsx
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
[
|
|
24
|
-
],
|
|
21
|
+
var E = [
|
|
22
|
+
d,
|
|
23
|
+
w,
|
|
24
|
+
[T, { singleDollarTextMath: !1 }]
|
|
25
|
+
], D = /* @__PURE__ */ "math.maction.annotation.annotation-xml.menclose.merror.mfenced.mfrac.mi.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.semantics.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover".split("."), O = {
|
|
25
26
|
math: ["display", "xmlns"],
|
|
26
27
|
annotation: ["encoding"],
|
|
27
28
|
mfrac: ["linethickness"],
|
|
@@ -50,93 +51,93 @@ var T = [
|
|
|
50
51
|
"width"
|
|
51
52
|
],
|
|
52
53
|
mtd: ["width"]
|
|
53
|
-
},
|
|
54
|
-
...
|
|
54
|
+
}, k = [x], A = [S, {
|
|
55
|
+
...C,
|
|
55
56
|
tagNames: [
|
|
56
|
-
...
|
|
57
|
-
...
|
|
57
|
+
...C.tagNames ?? [],
|
|
58
|
+
...D,
|
|
58
59
|
"cit"
|
|
59
60
|
],
|
|
60
61
|
attributes: {
|
|
61
|
-
...
|
|
62
|
-
...
|
|
63
|
-
code: [...
|
|
62
|
+
...C.attributes,
|
|
63
|
+
...O,
|
|
64
|
+
code: [...C.attributes?.code ?? [], ["className"]],
|
|
64
65
|
cit: ["dataId"],
|
|
65
|
-
span: [...
|
|
66
|
+
span: [...C.attributes?.span ?? [], [
|
|
66
67
|
"className",
|
|
67
68
|
"katex",
|
|
68
69
|
"katex-error"
|
|
69
70
|
]]
|
|
70
71
|
}
|
|
71
|
-
}],
|
|
72
|
-
li: ({ children: e }) => /* @__PURE__ */
|
|
72
|
+
}], j = [], M = /\$\$|\\\(|\\\[/, N = (e) => M.test(e), P = {}, F = (e) => e == null ? b : (t) => b(e(t)), I = {
|
|
73
|
+
li: ({ children: e }) => /* @__PURE__ */ _("li", {
|
|
73
74
|
className: "mb-1.5 last:mb-0",
|
|
74
75
|
children: e
|
|
75
76
|
}),
|
|
76
|
-
cit: ({ children: e, ...t }) => /* @__PURE__ */
|
|
77
|
+
cit: ({ children: e, ...t }) => /* @__PURE__ */ v(g, { children: [
|
|
77
78
|
t["data-id"] == null ? "<cit>" : `<cit data-id="${t["data-id"]}">`,
|
|
78
79
|
e,
|
|
79
80
|
"</cit>"
|
|
80
81
|
] })
|
|
81
|
-
},
|
|
82
|
+
}, L = (e) => {
|
|
82
83
|
let t = e?.properties?.className;
|
|
83
84
|
return !Array.isArray(t) || !t.includes("katex") ? !1 : (e?.children ?? []).some((e) => e.type === "element" && e.tagName === "math" && e.properties?.display === "block");
|
|
84
|
-
},
|
|
85
|
+
}, R = {
|
|
85
86
|
left: "text-start",
|
|
86
87
|
center: "text-center",
|
|
87
88
|
right: "text-end"
|
|
88
|
-
},
|
|
89
|
+
}, z = (e) => {
|
|
89
90
|
let t = e?.properties?.align;
|
|
90
|
-
return typeof t == "string" ?
|
|
91
|
-
},
|
|
92
|
-
h1: ({ children: e }) => /* @__PURE__ */
|
|
91
|
+
return typeof t == "string" ? R[t] : void 0;
|
|
92
|
+
}, B = (e) => e ? e.type === "text" ? e.value ?? "" : (e.children ?? []).map(B).join("") : "", V = (t, { isStreaming: n, codeBlockCopyLabel: r, codeBlockCopiedLabel: u, codeBlockTheme: d, tableActionLabels: f, tableDownloadFilename: p, tableOnOpenInCanvas: m, tableScrollRegionAriaLabel: h, mathScrollRegionAriaLabel: v }) => ({
|
|
93
|
+
h1: ({ children: e }) => /* @__PURE__ */ _("h1", {
|
|
93
94
|
className: t.h1,
|
|
94
95
|
children: e
|
|
95
96
|
}),
|
|
96
|
-
h2: ({ children: e }) => /* @__PURE__ */
|
|
97
|
+
h2: ({ children: e }) => /* @__PURE__ */ _("h2", {
|
|
97
98
|
className: t.h2,
|
|
98
99
|
children: e
|
|
99
100
|
}),
|
|
100
|
-
h3: ({ children: e }) => /* @__PURE__ */
|
|
101
|
+
h3: ({ children: e }) => /* @__PURE__ */ _("h3", {
|
|
101
102
|
className: t.h3,
|
|
102
103
|
children: e
|
|
103
104
|
}),
|
|
104
|
-
h4: ({ children: e }) => /* @__PURE__ */
|
|
105
|
+
h4: ({ children: e }) => /* @__PURE__ */ _("h4", {
|
|
105
106
|
className: t.h4,
|
|
106
107
|
children: e
|
|
107
108
|
}),
|
|
108
|
-
h5: ({ children: e }) => /* @__PURE__ */
|
|
109
|
+
h5: ({ children: e }) => /* @__PURE__ */ _("h5", {
|
|
109
110
|
className: t.h5,
|
|
110
111
|
children: e
|
|
111
112
|
}),
|
|
112
|
-
h6: ({ children: n }) => /* @__PURE__ */
|
|
113
|
+
h6: ({ children: n }) => /* @__PURE__ */ _("h6", {
|
|
113
114
|
className: e(a.h6, t.h6),
|
|
114
115
|
children: n
|
|
115
116
|
}),
|
|
116
|
-
p: ({ children: n }) => /* @__PURE__ */
|
|
117
|
+
p: ({ children: n }) => /* @__PURE__ */ _("p", {
|
|
117
118
|
className: e("break-words", t.p),
|
|
118
119
|
children: n
|
|
119
120
|
}),
|
|
120
|
-
ul: ({ children: n }) => /* @__PURE__ */
|
|
121
|
+
ul: ({ children: n }) => /* @__PURE__ */ _("ul", {
|
|
121
122
|
className: e("list-disc ps-[2em]", t.ul),
|
|
122
123
|
children: n
|
|
123
124
|
}),
|
|
124
|
-
ol: ({ children: n }) => /* @__PURE__ */
|
|
125
|
+
ol: ({ children: n }) => /* @__PURE__ */ _("ol", {
|
|
125
126
|
className: e("list-decimal ps-[2em]", t.ol),
|
|
126
127
|
children: n
|
|
127
128
|
}),
|
|
128
|
-
strong: ({ children: e }) => /* @__PURE__ */
|
|
129
|
+
strong: ({ children: e }) => /* @__PURE__ */ _("strong", {
|
|
129
130
|
className: t.strong ?? "dial-body-paragraph-semi-text",
|
|
130
131
|
children: e
|
|
131
132
|
}),
|
|
132
|
-
em: ({ children: e }) => /* @__PURE__ */
|
|
133
|
+
em: ({ children: e }) => /* @__PURE__ */ _("em", {
|
|
133
134
|
className: t.em ?? "italic",
|
|
134
135
|
children: e
|
|
135
136
|
}),
|
|
136
|
-
pre: ({ children: e }) => /* @__PURE__ */ g
|
|
137
|
+
pre: ({ children: e }) => /* @__PURE__ */ _(g, { children: e }),
|
|
137
138
|
code: ({ children: o, className: s }) => {
|
|
138
139
|
let c = /language-(\w+)/.exec(s ?? "")?.[1] ?? "", l = String(o);
|
|
139
|
-
return c || l.includes("\n") ? /* @__PURE__ */
|
|
140
|
+
return c || l.includes("\n") ? /* @__PURE__ */ _(i, {
|
|
140
141
|
language: c,
|
|
141
142
|
value: l.replace(/\n$/, ""),
|
|
142
143
|
isStreaming: n,
|
|
@@ -146,64 +147,64 @@ var T = [
|
|
|
146
147
|
containerClassName: t.codeBlockContainer,
|
|
147
148
|
headerClassName: t.codeBlockHeader,
|
|
148
149
|
codeClassName: t.codeFont
|
|
149
|
-
}) : /* @__PURE__ */
|
|
150
|
+
}) : /* @__PURE__ */ _("code", {
|
|
150
151
|
className: e("rounded px-1 py-0.5", a.codeInline, t.codeInlineFont ?? "dial-code-text", t.codeInline),
|
|
151
152
|
children: o
|
|
152
153
|
});
|
|
153
154
|
},
|
|
154
|
-
blockquote: ({ children: n }) => /* @__PURE__ */
|
|
155
|
+
blockquote: ({ children: n }) => /* @__PURE__ */ _("blockquote", {
|
|
155
156
|
className: e("border-s-2 py-1 ps-4", a.blockquote, t.blockquote),
|
|
156
157
|
children: n
|
|
157
158
|
}),
|
|
158
|
-
a: ({ href: n, children: r }) => /* @__PURE__ */
|
|
159
|
+
a: ({ href: n, children: r }) => /* @__PURE__ */ _("a", {
|
|
159
160
|
href: n,
|
|
160
161
|
target: "_blank",
|
|
161
162
|
rel: "noopener noreferrer",
|
|
162
163
|
className: e("decoration-current/60 break-words underline underline-offset-2 hover:decoration-current focus-visible:outline focus-visible:outline-1 focus-visible:outline-offset-2", a.link, t.link),
|
|
163
164
|
children: r
|
|
164
165
|
}),
|
|
165
|
-
hr: () => /* @__PURE__ */
|
|
166
|
-
del: ({ children: n }) => /* @__PURE__ */
|
|
166
|
+
hr: () => /* @__PURE__ */ _("hr", { className: e("my-5 border-t", a.secondaryBorder, t.hr) }),
|
|
167
|
+
del: ({ children: n }) => /* @__PURE__ */ _("del", {
|
|
167
168
|
className: e("opacity-75", t.del),
|
|
168
169
|
children: n
|
|
169
170
|
}),
|
|
170
|
-
input: ({ type: e, checked: t }) => e === "checkbox" ? /* @__PURE__ */
|
|
171
|
-
span: ({ children: e, node: n, ...r }) =>
|
|
171
|
+
input: ({ type: e, checked: t }) => e === "checkbox" ? /* @__PURE__ */ _(l, { checked: t ?? !1 }) : null,
|
|
172
|
+
span: ({ children: e, node: n, ...r }) => L(n) ? /* @__PURE__ */ _(o, {
|
|
172
173
|
className: t.mathBlock,
|
|
173
174
|
scrollRegionAriaLabel: v,
|
|
174
175
|
children: e
|
|
175
|
-
}) : /* @__PURE__ */
|
|
176
|
+
}) : /* @__PURE__ */ _("span", {
|
|
176
177
|
...r,
|
|
177
178
|
children: e
|
|
178
179
|
}),
|
|
179
|
-
table: ({ children: e }) => /* @__PURE__ */
|
|
180
|
+
table: ({ children: e }) => /* @__PURE__ */ _(c, {
|
|
180
181
|
classNames: t,
|
|
181
182
|
actionLabels: f,
|
|
182
183
|
downloadFilename: p,
|
|
183
184
|
onOpenInCanvas: m,
|
|
184
185
|
isStreaming: n,
|
|
185
|
-
scrollRegionAriaLabel:
|
|
186
|
+
scrollRegionAriaLabel: h,
|
|
186
187
|
children: e
|
|
187
188
|
}),
|
|
188
189
|
tr: ({ children: t, node: n }) => {
|
|
189
|
-
let r = n?.children.filter((e) => e.type === "element") ?? [], i = r.some((e) => e.tagName === "th"), a = r.filter((e) =>
|
|
190
|
-
return /* @__PURE__ */
|
|
190
|
+
let r = n?.children.filter((e) => e.type === "element") ?? [], i = r.some((e) => e.tagName === "th"), a = r.filter((e) => B(e).trim().length > 0).length, o = !i && r.length > 1 && a === 1;
|
|
191
|
+
return /* @__PURE__ */ _("tr", {
|
|
191
192
|
className: e(s.row, o && s.sectionRow),
|
|
192
193
|
children: t
|
|
193
194
|
});
|
|
194
195
|
},
|
|
195
|
-
th: ({ children: n, node: r }) => /* @__PURE__ */
|
|
196
|
+
th: ({ children: n, node: r }) => /* @__PURE__ */ _("th", {
|
|
196
197
|
scope: "col",
|
|
197
|
-
className: e("sticky top-0 z-[2] max-w-96 whitespace-normal break-words px-3 py-2.5 text-start",
|
|
198
|
+
className: e("sticky top-0 z-[2] max-w-96 whitespace-normal break-words px-3 py-2.5 text-start", z(r), s.rowDivider, s.tableHeaderCell, t.tableHeaderFont ?? "dial-tiny-lead-semi-text", t.tableCell, t.tableHeader),
|
|
198
199
|
children: n
|
|
199
200
|
}),
|
|
200
|
-
td: ({ children: n, node: r }) => /* @__PURE__ */
|
|
201
|
-
className: e("max-w-96 whitespace-normal px-3 py-[7px] align-top [overflow-wrap:anywhere]",
|
|
201
|
+
td: ({ children: n, node: r }) => /* @__PURE__ */ _("td", {
|
|
202
|
+
className: e("max-w-96 whitespace-normal px-3 py-[7px] align-top [overflow-wrap:anywhere]", z(r), s.rowDivider, t.tableBodyCell, t.tableCell),
|
|
202
203
|
children: n
|
|
203
204
|
})
|
|
204
|
-
}),
|
|
205
|
-
let
|
|
206
|
-
|
|
205
|
+
}), H = f(({ content: e, containerClassName: i, isStreaming: a, streamCharactersPerSecond: o, classNames: s = P, components: c, urlTransform: l, rehypePlugins: d = j, thinkingLabel: f = "Thinking", codeBlockCopyLabel: g, codeBlockCopiedLabel: v, codeBlockTheme: b, colors: x, tableActionLabels: S, tableDownloadFilename: C, tableOnOpenInCanvas: w, tableScrollRegionAriaLabel: T, mathScrollRegionAriaLabel: D }) => {
|
|
206
|
+
let O = n(e, a, o), M = m(() => r(O), [O]), L = m(() => N(M), [M]), [R, z] = h(null);
|
|
207
|
+
p(() => {
|
|
207
208
|
if (!L || R) return;
|
|
208
209
|
let e = !1;
|
|
209
210
|
return (async () => {
|
|
@@ -216,14 +217,12 @@ var T = [
|
|
|
216
217
|
e = !0;
|
|
217
218
|
};
|
|
218
219
|
}, [L, R]);
|
|
219
|
-
let
|
|
220
|
-
...
|
|
220
|
+
let B = m(() => [
|
|
221
|
+
...k,
|
|
221
222
|
...R ? [R] : [],
|
|
222
|
-
|
|
223
|
+
A,
|
|
223
224
|
...d
|
|
224
225
|
], [R, d]), H = t({
|
|
225
|
-
"--cm-thinking-inverted": x?.thinkingPrimary,
|
|
226
|
-
"--cm-thinking-secondary": x?.thinkingSecondary,
|
|
227
226
|
"--cm-markdown-border": x?.border,
|
|
228
227
|
"--cm-blockquote-border": x?.blockquoteBorder,
|
|
229
228
|
"--cm-blockquote-text": x?.blockquoteText,
|
|
@@ -233,48 +232,47 @@ var T = [
|
|
|
233
232
|
"--cm-h6-text": x?.headingSixText,
|
|
234
233
|
"--cm-code-inline-bg": x?.inlineCodeBackground,
|
|
235
234
|
"--cm-code-inline-text": x?.inlineCodeText
|
|
236
|
-
}), U =
|
|
237
|
-
...
|
|
238
|
-
isStreaming:
|
|
239
|
-
codeBlockCopyLabel:
|
|
240
|
-
codeBlockCopiedLabel:
|
|
235
|
+
}), U = m(() => F(l), [l]), W = m(() => ({
|
|
236
|
+
...V(s, {
|
|
237
|
+
isStreaming: a,
|
|
238
|
+
codeBlockCopyLabel: g,
|
|
239
|
+
codeBlockCopiedLabel: v,
|
|
241
240
|
codeBlockTheme: b,
|
|
242
241
|
tableActionLabels: S,
|
|
243
242
|
tableDownloadFilename: C,
|
|
244
243
|
tableOnOpenInCanvas: w,
|
|
245
|
-
tableScrollRegionAriaLabel:
|
|
244
|
+
tableScrollRegionAriaLabel: T,
|
|
246
245
|
mathScrollRegionAriaLabel: D
|
|
247
246
|
}),
|
|
248
|
-
...
|
|
249
|
-
...
|
|
247
|
+
...I,
|
|
248
|
+
...c
|
|
250
249
|
}), [
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
250
|
+
s,
|
|
251
|
+
a,
|
|
252
|
+
g,
|
|
253
|
+
v,
|
|
255
254
|
b,
|
|
256
255
|
S,
|
|
257
256
|
C,
|
|
258
257
|
w,
|
|
259
|
-
|
|
258
|
+
T,
|
|
260
259
|
D,
|
|
261
|
-
|
|
260
|
+
c
|
|
262
261
|
]);
|
|
263
|
-
return
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
}) : /* @__PURE__ */ g("div", {
|
|
262
|
+
return a && !O ? /* @__PURE__ */ _(u, {
|
|
263
|
+
label: f,
|
|
264
|
+
colors: x
|
|
265
|
+
}) : /* @__PURE__ */ _("div", {
|
|
268
266
|
style: H,
|
|
269
267
|
className: i,
|
|
270
|
-
children: /* @__PURE__ */
|
|
271
|
-
remarkPlugins:
|
|
272
|
-
rehypePlugins:
|
|
268
|
+
children: /* @__PURE__ */ _(y, {
|
|
269
|
+
remarkPlugins: E,
|
|
270
|
+
rehypePlugins: B,
|
|
273
271
|
components: W,
|
|
274
272
|
urlTransform: U,
|
|
275
|
-
children:
|
|
273
|
+
children: M
|
|
276
274
|
})
|
|
277
275
|
});
|
|
278
276
|
});
|
|
279
277
|
//#endregion
|
|
280
|
-
export {
|
|
278
|
+
export { H as MarkdownRenderer, I as defaultMarkdownComponents };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { mergeClasses as e } from "../../utils/merge-class.js";
|
|
2
|
+
import { useStreamedMarkdownContent as t } from "../../hooks/useStreamedMarkdownContent.js";
|
|
3
|
+
import { ThinkingShimmer as n } from "./ThinkingShimmer.js";
|
|
4
|
+
import { memo as r } from "react";
|
|
5
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/MarkdownRenderer/PlainTextRenderer.tsx
|
|
7
|
+
var a = {}, o = r(({ content: r, containerClassName: o, isStreaming: s, streamCharactersPerSecond: c, classNames: l = a, thinkingLabel: u = "Thinking", colors: d }) => {
|
|
8
|
+
let f = t(r, s, c);
|
|
9
|
+
return s && !f ? /* @__PURE__ */ i(n, {
|
|
10
|
+
label: u,
|
|
11
|
+
colors: d
|
|
12
|
+
}) : /* @__PURE__ */ i("div", {
|
|
13
|
+
className: o,
|
|
14
|
+
children: /* @__PURE__ */ i("p", {
|
|
15
|
+
className: e(l.p, "whitespace-pre-wrap break-words [overflow-wrap:anywhere]"),
|
|
16
|
+
children: f
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//#endregion
|
|
21
|
+
export { o as PlainTextRenderer };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { buildCssVars as e } from "../../utils/build-css-vars.js";
|
|
2
|
+
import t from "./MarkdownRenderer.module.scss.js";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/MarkdownRenderer/ThinkingShimmer.tsx
|
|
5
|
+
var r = ({ label: r, colors: i }) => /* @__PURE__ */ n("span", {
|
|
6
|
+
className: t.thinking,
|
|
7
|
+
style: e({
|
|
8
|
+
"--cm-thinking-inverted": i?.thinkingPrimary,
|
|
9
|
+
"--cm-thinking-secondary": i?.thinkingSecondary
|
|
10
|
+
}),
|
|
11
|
+
children: r
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
export { r as ThinkingShimmer };
|
package/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
._agentIconBadge_1ger8_1{background:var(--di-icon-bg,var(--bg-layer-sunken,#eef1f7))}._badge_1ko75_1{background:var(--ia-bg,var(--bg-visual-green-1,#cde8e5))}._initials_1ko75_5{color:var(--ia-fg,var(--text-visual-green-2,#0d6e72))}._title_11w3i_1{color:var(--ih-title-color,var(--text-primary,#161b2d))}._count_11w3i_5{color:var(--ih-count-color,var(--text-secondary,#57647a))}._container_sqe5k_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._containerLight_sqe5k_6{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc))}._header_sqe5k_10{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._languageLabel_sqe5k_15{color:var(--cm-code-block-language,var(--text-secondary,#57647a))}._copiedIcon_sqe5k_19{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_sqe5k_23 .token.table,._scrollContainer_sqe5k_23 .token.table-header-row,._scrollContainer_sqe5k_23 .token.table-line,._scrollContainer_sqe5k_23 .token.table-data-rows{display:inline}._scrollContainer_sqe5k_23{scrollbar-width:thin;scrollbar-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_sqe5k_23::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_sqe5k_23::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_sqe5k_23::-webkit-scrollbar-thumb{background-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}@keyframes _cm-shimmer_1g29w_1{0%{background-position:200%}to{background-position:-200%}}._thinking_1g29w_9{background:linear-gradient(270deg, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 0%, var(--cm-thinking-secondary,var(--text-secondary,#57647a)) 40%, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 80%);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite _cm-shimmer_1g29w_1}._h6_1g29w_18{color:var(--cm-h6-text,var(--text-secondary,#57647a))}._codeInline_1g29w_22{background:var(--cm-code-inline-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-code-inline-text,var(--text-primary,#161b2d))}._secondaryBorder_1g29w_27{border-color:var(--cm-markdown-border,var(--stroke-secondary,#d1dbea))}._blockquote_1g29w_31{border-color:var(--cm-blockquote-border,var(--stroke-primary,#57647a));color:var(--cm-blockquote-text,var(--text-secondary,#57647a))}._link_1g29w_36{color:var(--cm-link-text,var(--text-accent,#1d4ed8))}._link_1g29w_36:focus-visible{outline-color:var(--cm-link-focus,var(--stroke-focus-black,#161b2d))}._scrollContainer_1f433_1{scrollbar-width:thin;scrollbar-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1f433_1::-webkit-scrollbar{height:4px}._scrollContainer_1f433_1::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1f433_1::-webkit-scrollbar-thumb{background-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._scrollContainer_1f433_1:focus-visible{outline:1px solid var(--cm-math-focus,var(--stroke-focus-black,#161b2d));outline-offset:2px}._mathContent_1f433_24{width:max-content;min-width:100%;display:block}._tableContainer_1fwnj_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._tableContainerLight_1fwnj_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._copiedIcon_1fwnj_10{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_1fwnj_14{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1fwnj_14::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_1fwnj_14::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1fwnj_14::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_1fwnj_30{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));height:3rem;color:var(--cm-table-header-text,var(--text-secondary,#57647a))}._sectionRow_1fwnj_37 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}._rowDivider_1fwnj_41{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_1fwnj_41:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_1fwnj_51{-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}[dir=rtl] ._tableScrollFadeEnd_1fwnj_51{-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableScrollFadeStart_1fwnj_59{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}[dir=rtl] ._tableScrollFadeStart_1fwnj_59{-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}._tableScrollFadeBoth_1fwnj_67{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableHeader_1qvg8_1{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._label_12p89_1{color:var(--pes-label-color,var(--text-primary,#161b2d))}._row_1csuq_1{border-color:var(--rs-border,var(--stroke-tertiary,#e0e6f0));background:var(--rs-bg,var(--bg-layer-sunken,#eef1f7))}._versionTag_1csuq_7{border-color:var(--rs-version-tag-border,var(--stroke-tertiary,#e0e6f0))!important;background:var(--rs-version-tag-bg,var(--bg-control-accent-alpha,#2764d90f))!important;color:var(--rs-version-tag-text,var(--text-accent,#1d4ed8))!important}
|
|
2
|
-
/*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.top-0{top:0}.top-2{top:.5rem}.top-\[-6px\]{top:-6px}.z-10{z-index:10}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.ms-auto{margin-inline-start:auto}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-full{height:100%;width:100%}.\!h-\[min\(800px\2c 100dvh\)\]{height:min(800px,100dvh)!important}.\!h-fit{height:-moz-fit-content!important;height:fit-content!important}.h-0{height:0}.h-\[24px\]{height:24px}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[344px\]{max-height:344px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.\!w-\[400px\]{width:400px!important}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-96{max-width:24rem}.max-w-\[30\%\]{max-width:30%}.max-w-\[45\%\]{max-width:45%}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.break-words{overflow-wrap:break-word}.rounded{border-radius:4px}.rounded-2xl{border-radius:1rem}.rounded-\[14px\]{border-radius:14px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-s-2{border-inline-start-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.\!bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-\[7px\]{padding-bottom:7px;padding-top:7px}.ps-4{padding-inline-start:1rem}.ps-\[2em\]{padding-inline-start:2em}.pt-1{padding-top:.25rem}.text-center{text-align:center}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-secondary{color:var(--text-secondary,#57647a)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-chat-button{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-chat-button{--tw-shadow:0 2px 12px 0 var(--shadow-xs-1,#2764d933),0 2px 6px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 2px 12px 0 var(--tw-shadow-color),0 2px 6px 0 var(--tw-shadow-color)}.shadow-xs{--tw-shadow:0 1px 4px 0 var(--shadow-xs-1,#2764d933),0 1px 2px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 1px 4px 0 var(--tw-shadow-color),0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid;outline-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[overflow\:clip\]{overflow:clip}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:opacity-100:focus-within{opacity:1}.hover\:decoration-current:hover{text-decoration-color:currentColor}.focus-visible\:outline:focus-visible{outline-style:solid;outline-width:1px}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.group\/table:hover .group-hover\/table\:opacity-100{opacity:1}@media (max-width:1279px){.mobile\:\!w-full{width:100%!important}}@media (min-width:1280px){.desktop\:\!max-h-\[693px\]{max-height:693px!important}.desktop\:p-4{padding:1rem}}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:max-h-\[var\(--resizable-field-max-height\2c 70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){max-height:var(--resizable-field-max-height,70vh)}.\[\&_\.wmde-markdown\>ol\]\:list-decimal .wmde-markdown>ol{list-style-type:decimal}.\[\&_\.wmde-markdown_ul\]\:list-disc .wmde-markdown ul{list-style-type:disc}.\[\&_\.wmde-markdown_ul_ul\]\:list-\[circle\] .wmde-markdown ul ul{list-style-type:circle}.\[\&_\.wmde-markdown_ul_ul_ul\]\:list-\[square\] .wmde-markdown ul ul ul{list-style-type:square}
|
|
2
|
+
/*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.top-0{top:0}.top-2{top:.5rem}.top-\[-6px\]{top:-6px}.z-10{z-index:10}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.ms-auto{margin-inline-start:auto}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-full{height:100%;width:100%}.\!h-\[min\(800px\2c 100dvh\)\]{height:min(800px,100dvh)!important}.\!h-fit{height:-moz-fit-content!important;height:fit-content!important}.h-0{height:0}.h-\[24px\]{height:24px}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[344px\]{max-height:344px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.\!w-\[400px\]{width:400px!important}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-96{max-width:24rem}.max-w-\[30\%\]{max-width:30%}.max-w-\[45\%\]{max-width:45%}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:4px}.rounded-2xl{border-radius:1rem}.rounded-\[14px\]{border-radius:14px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-s-2{border-inline-start-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.\!bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-\[7px\]{padding-bottom:7px;padding-top:7px}.ps-4{padding-inline-start:1rem}.ps-\[2em\]{padding-inline-start:2em}.pt-1{padding-top:.25rem}.text-center{text-align:center}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-secondary{color:var(--text-secondary,#57647a)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-chat-button{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-chat-button{--tw-shadow:0 2px 12px 0 var(--shadow-xs-1,#2764d933),0 2px 6px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 2px 12px 0 var(--tw-shadow-color),0 2px 6px 0 var(--tw-shadow-color)}.shadow-xs{--tw-shadow:0 1px 4px 0 var(--shadow-xs-1,#2764d933),0 1px 2px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 1px 4px 0 var(--tw-shadow-color),0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid;outline-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[overflow\:clip\]{overflow:clip}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:opacity-100:focus-within{opacity:1}.hover\:decoration-current:hover{text-decoration-color:currentColor}.focus-visible\:outline:focus-visible{outline-style:solid;outline-width:1px}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.group\/table:hover .group-hover\/table\:opacity-100{opacity:1}@media (max-width:1279px){.mobile\:\!w-full{width:100%!important}}@media (min-width:1280px){.desktop\:\!max-h-\[693px\]{max-height:693px!important}.desktop\:p-4{padding:1rem}}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:max-h-\[var\(--resizable-field-max-height\2c 70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){max-height:var(--resizable-field-max-height,70vh)}.\[\&_\.wmde-markdown\>ol\]\:list-decimal .wmde-markdown>ol{list-style-type:decimal}.\[\&_\.wmde-markdown_ul\]\:list-disc .wmde-markdown ul{list-style-type:disc}.\[\&_\.wmde-markdown_ul_ul\]\:list-\[circle\] .wmde-markdown ul ul{list-style-type:circle}.\[\&_\.wmde-markdown_ul_ul_ul\]\:list-\[square\] .wmde-markdown ul ul ul{list-style-type:square}
|
package/index.d.ts
CHANGED
|
@@ -1330,6 +1330,9 @@ export declare const isAudioTranscriptionSupported: (types?: string[]) => boolea
|
|
|
1330
1330
|
/** Returns true when any path segment starts with a dot (hidden file or folder). */
|
|
1331
1331
|
export declare const isHiddenPath: (path: string) => boolean;
|
|
1332
1332
|
|
|
1333
|
+
/** Whether a selected skill lacks explicitly confirmed support. */
|
|
1334
|
+
export declare const isSkillSelectionUnsupported: (skillUrl: string | null | undefined, isSkillsSupported: boolean | undefined) => boolean;
|
|
1335
|
+
|
|
1333
1336
|
/** Returns `true` when `msg` is a `StatusMessage`. */
|
|
1334
1337
|
export declare const isStatusMessage: (msg: Message | StatusMessage) => msg is StatusMessage;
|
|
1335
1338
|
|
|
@@ -1658,13 +1661,20 @@ export declare interface MarkdownWithPlaceholdersProps {
|
|
|
1658
1661
|
headingClassName?: string;
|
|
1659
1662
|
}
|
|
1660
1663
|
|
|
1661
|
-
/** Renders assistant message content as formatted markdown. */
|
|
1664
|
+
/** Renders assistant message content as formatted markdown, or as escaped plain text when `isPlainText` is set. */
|
|
1662
1665
|
export declare const MDMessageViewer: FC<MDMessageViewerProps>;
|
|
1663
1666
|
|
|
1664
1667
|
/** Props for the {@link MDMessageViewer} markdown renderer. */
|
|
1665
1668
|
declare interface MDMessageViewerProps {
|
|
1666
1669
|
/** Raw markdown string to render. */
|
|
1667
1670
|
content: string;
|
|
1671
|
+
/**
|
|
1672
|
+
* Renders `content` verbatim as escaped plain text instead of running the
|
|
1673
|
+
* Markdown pipeline — the conversation's `plain_text` response format.
|
|
1674
|
+
* Markdown-only props (`components`, `urlTransform`, the code-block and
|
|
1675
|
+
* table labels) do not apply while it is set. Defaults to `false`.
|
|
1676
|
+
*/
|
|
1677
|
+
isPlainText?: boolean;
|
|
1668
1678
|
/** Enables gradual reveal for appended streaming content. */
|
|
1669
1679
|
isStreaming?: boolean;
|
|
1670
1680
|
/**
|
|
@@ -2020,6 +2030,44 @@ export declare interface PdfBBoxSelector {
|
|
|
2020
2030
|
/** Returns a deterministic colour-pair for the given display name. */
|
|
2021
2031
|
export declare const pickAvatarColor: (name: string) => AvatarColorEntry;
|
|
2022
2032
|
|
|
2033
|
+
/**
|
|
2034
|
+
* Renders message text as plain text: no Markdown pipeline, no raw HTML, no
|
|
2035
|
+
* syntax highlighting. The text is a React text child, so it is escaped by
|
|
2036
|
+
* construction — a table, a heading, or `**bold**` reaches the reader exactly
|
|
2037
|
+
* as the model emitted it, which is what a conversation's `plain_text`
|
|
2038
|
+
* response format promises.
|
|
2039
|
+
*
|
|
2040
|
+
* Lives beside {@link MarkdownRenderer} because it is the other half of the
|
|
2041
|
+
* same choice: both render an assistant message body, and both are selected
|
|
2042
|
+
* by `MDMessageViewer` from the conversation's response format.
|
|
2043
|
+
*/
|
|
2044
|
+
export declare const PlainTextRenderer: FC<PlainTextRendererProps>;
|
|
2045
|
+
|
|
2046
|
+
/** Props for {@link PlainTextRenderer}. */
|
|
2047
|
+
export declare interface PlainTextRendererProps {
|
|
2048
|
+
/** Message text. Rendered verbatim — never parsed as Markdown or HTML. */
|
|
2049
|
+
content: string;
|
|
2050
|
+
/** Classes applied to the renderer root. */
|
|
2051
|
+
containerClassName?: string;
|
|
2052
|
+
/** When true, appended content is revealed gradually for smoother streaming updates. */
|
|
2053
|
+
isStreaming?: boolean;
|
|
2054
|
+
/** Reveal speed used while `isStreaming` is true. Defaults to 120 characters per second. */
|
|
2055
|
+
streamCharactersPerSecond?: number;
|
|
2056
|
+
/**
|
|
2057
|
+
* Typography classes. Only `p` is read — the single paragraph the renderer
|
|
2058
|
+
* emits — so the same object a Markdown message is styled with keeps both
|
|
2059
|
+
* formats on one type scale.
|
|
2060
|
+
*/
|
|
2061
|
+
classNames?: Pick<MarkdownRendererClassNames, 'p'>;
|
|
2062
|
+
/**
|
|
2063
|
+
* Label shown with a shimmer animation while `isStreaming` is true and no
|
|
2064
|
+
* content has arrived yet. Defaults to `'Thinking'`.
|
|
2065
|
+
*/
|
|
2066
|
+
thinkingLabel?: string;
|
|
2067
|
+
/** Color overrides applied as CSS custom properties. */
|
|
2068
|
+
colors?: Pick<MarkdownRendererColors, 'thinkingPrimary' | 'thinkingSecondary'>;
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2023
2071
|
/**
|
|
2024
2072
|
* Selector that targets a character range inside a single shape on one PPTX
|
|
2025
2073
|
* slide. Confirmed against captured DIAL Core responses: unlike
|
package/index.js
CHANGED
|
@@ -50,15 +50,17 @@ import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as Ue, MARKDOWN_TABLE_CSV_MIME
|
|
|
50
50
|
import { MarkdownTable as qe } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
|
|
51
51
|
import { MarkdownRenderer as Je, defaultMarkdownComponents as Ye } from "./components/MarkdownRenderer/MarkdownRenderer.js";
|
|
52
52
|
import { COMPACT_MARKDOWN_CLASS_NAMES as Xe, DEFAULT_MARKDOWN_CLASS_NAMES as Ze } from "./components/MarkdownRenderer/markdown-class-names.js";
|
|
53
|
-
import {
|
|
54
|
-
import {
|
|
55
|
-
import {
|
|
56
|
-
import {
|
|
57
|
-
import {
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
|
|
53
|
+
import { PlainTextRenderer as Qe } from "./components/MarkdownRenderer/PlainTextRenderer.js";
|
|
54
|
+
import { MDMessageViewer as $e } from "./components/MarkdownRenderer/MDMessageViewer.js";
|
|
55
|
+
import { MarkdownWithPlaceholders as et } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
|
|
56
|
+
import { useCollapsedText as tt } from "./hooks/useCollapsedText.js";
|
|
57
|
+
import { useAvailableHeightCap as nt } from "./hooks/useAvailableHeightCap.js";
|
|
58
|
+
import { useIsMobile as rt } from "./hooks/useIsMobile.js";
|
|
59
|
+
import { DialFileManagerActionProfile as it, DialFileManagerVariant as at } from "./file-manager/file-manager-variant.js";
|
|
60
|
+
import { getParentFolderPath as ot, isHiddenPath as st } from "./file-manager/path.js";
|
|
61
|
+
import { FileUploadStatus as ct } from "./file-manager/upload-batch.js";
|
|
62
|
+
import { useGridEditingScroll as lt } from "./file-manager/useGridEditingScroll/useGridEditingScroll.js";
|
|
63
|
+
import { OperationLoaderModal as ut } from "./file-manager/OperationLoaderModal/OperationLoaderModal.js";
|
|
64
|
+
import { UploadProgressModal as dt } from "./file-manager/UploadProgressModal/UploadProgressModal.js";
|
|
65
|
+
import { isSkillSelectionUnsupported as ft } from "./utils/is-skill-selection-unsupported.js";
|
|
66
|
+
export { f as AttachmentErrorReason, p as AttachmentType, fe as BASE_LG_ICON_PROPS, pe as BASE_MD_ICON_PROPS, ze as CHAT_SHARED_CLASS, Xe as COMPACT_MARKDOWN_CLASS_NAMES, m as CatalogEntityType, _ as CodeBlockTheme, e as ConversationTransferErrorCode, t as ConversationTransferJobStatus, n as ConversationTransferSubjectKind, r as ConversationTransferUnitKind, i as ConversationTransferWarningCode, Ae as CopyButton, je as CopyIconButton, Ze as DEFAULT_MARKDOWN_CLASS_NAMES, Ue as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, Se as DESKTOP_BREAKPOINT_PX, Ce as DESKTOP_MEDIA_QUERY, ke as DeploymentIcon, it as DialFileManagerActionProfile, at as DialFileManagerVariant, ne as ENTITY_TYPE_BG_COLOR, re as ENTITY_TYPE_COLOR, Ie as EntityHeader, Pe as EntityTypeLabel, Fe as FeaturedChip, h as FileExtension, ct as FileUploadStatus, a as FilterTab, me as HIDDEN_FILE, Oe as InitialsAvatar, Ne as ItemHeader, ge as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, ye as MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME, We as MARKDOWN_TABLE_CSV_MIME_TYPE, $e as MDMessageViewer, g as MIMEType, v as MIME_TYPE_ALIASES, y as MIME_TYPE_AUDIO_PREFIX, b as MIME_TYPE_EXT_MAP, x as MIME_TYPE_WILDCARD, we as MOBILE_MAX_WIDTH_PX, Te as MOBILE_MEDIA_QUERY, He as MarkdownCodeBlock, Je as MarkdownRenderer, qe as MarkdownTable, Ge as MarkdownTableCopyFormat, et as MarkdownWithPlaceholders, o as MessageRating, s as MessageRole, ut as OperationLoaderModal, A as PROHIBITED_CONVERSATION_NAME_CHARS_RE, ie as PROMPT_PARAM_DEFAULT_SEPARATOR, ae as PROMPT_PARAM_PATTERN, oe as PROMPT_VARIABLE_CLASS_NAME, Me as PanelEmptyState, Qe as PlainTextRenderer, _e as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, ve as RESIZABLE_TEXTAREA_CLASS_NAME, c as RequestStatus, Le as ResourceSummary, d as ResponseFormat, be as SELECT_LIST_MAX_HEIGHT_CLASS_NAME, xe as SELECT_LIST_MAX_HEIGHT_PX, l as StageStatus, u as StatusEvent, he as TAG_INPUT_TAG_CLASS_NAME, Re as TableHeader, dt as UploadProgressModal, Y as base64ToBlob, I as buildCssVars, se as buildPromptParamDefaults, V as copyMarkdownAsRichText, H as copyToClipboard, Ye as defaultMarkdownComponents, X as downloadTextFile, Z as ensureDownloadFilename, De as extractInitials, ce as extractPromptParams, K as formatCost, G as formatFileSize, W as formatLastUsed, q as formatPrice, J as formatUnitPrice, de as generateUUID, S as getAttachmentTypeFromMime, C as getBaseMimeType, Q as getFileExtensionForLanguage, ot as getParentFolderPath, j as getUtf8ByteLength, w as inferMimeTypeFromPath, D as isAnnotationSelector, B as isAudioTranscriptionSupported, st as isHiddenPath, ft as isSkillSelectionUnsupported, L as isStatusMessage, U as markdownToRichTextHtml, F as mergeClasses, R as messageAttachmentToDisplayAttachment, z as messageAttachmentsToDisplayAttachments, T as normalizeMimeType, O as normalizePersistedHtmlTagAttachmentType, k as normalizeRawAnnotations, Ee as pickAvatarColor, le as rehypePromptVariables, ue as resolvePromptParams, Ve as restrainedSyntaxTheme, M as sanitizeConversationName, Ke as serializeMarkdownTableRows, N as stripTrailingDots, E as stripUrlQueryAndFragment, $ as triggerAnchorDownload, ee as triggerBlobDownload, P as truncateToUtf8Bytes, te as tryBase64ToBytes, nt as useAvailableHeightCap, Be as useCodeCopy, tt as useCollapsedText, lt as useGridEditingScroll, rt as useIsMobile };
|
package/markdown.d.ts
CHANGED
|
@@ -317,13 +317,20 @@ export declare interface MarkdownWithPlaceholdersProps {
|
|
|
317
317
|
headingClassName?: string;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
-
/** Renders assistant message content as formatted markdown. */
|
|
320
|
+
/** Renders assistant message content as formatted markdown, or as escaped plain text when `isPlainText` is set. */
|
|
321
321
|
export declare const MDMessageViewer: FC<MDMessageViewerProps>;
|
|
322
322
|
|
|
323
323
|
/** Props for the {@link MDMessageViewer} markdown renderer. */
|
|
324
324
|
declare interface MDMessageViewerProps {
|
|
325
325
|
/** Raw markdown string to render. */
|
|
326
326
|
content: string;
|
|
327
|
+
/**
|
|
328
|
+
* Renders `content` verbatim as escaped plain text instead of running the
|
|
329
|
+
* Markdown pipeline — the conversation's `plain_text` response format.
|
|
330
|
+
* Markdown-only props (`components`, `urlTransform`, the code-block and
|
|
331
|
+
* table labels) do not apply while it is set. Defaults to `false`.
|
|
332
|
+
*/
|
|
333
|
+
isPlainText?: boolean;
|
|
327
334
|
/** Enables gradual reveal for appended streaming content. */
|
|
328
335
|
isStreaming?: boolean;
|
|
329
336
|
/**
|
|
@@ -363,6 +370,44 @@ declare interface MDMessageViewerProps {
|
|
|
363
370
|
classNames?: MarkdownRendererClassNames;
|
|
364
371
|
}
|
|
365
372
|
|
|
373
|
+
/**
|
|
374
|
+
* Renders message text as plain text: no Markdown pipeline, no raw HTML, no
|
|
375
|
+
* syntax highlighting. The text is a React text child, so it is escaped by
|
|
376
|
+
* construction — a table, a heading, or `**bold**` reaches the reader exactly
|
|
377
|
+
* as the model emitted it, which is what a conversation's `plain_text`
|
|
378
|
+
* response format promises.
|
|
379
|
+
*
|
|
380
|
+
* Lives beside {@link MarkdownRenderer} because it is the other half of the
|
|
381
|
+
* same choice: both render an assistant message body, and both are selected
|
|
382
|
+
* by `MDMessageViewer` from the conversation's response format.
|
|
383
|
+
*/
|
|
384
|
+
export declare const PlainTextRenderer: FC<PlainTextRendererProps>;
|
|
385
|
+
|
|
386
|
+
/** Props for {@link PlainTextRenderer}. */
|
|
387
|
+
export declare interface PlainTextRendererProps {
|
|
388
|
+
/** Message text. Rendered verbatim — never parsed as Markdown or HTML. */
|
|
389
|
+
content: string;
|
|
390
|
+
/** Classes applied to the renderer root. */
|
|
391
|
+
containerClassName?: string;
|
|
392
|
+
/** When true, appended content is revealed gradually for smoother streaming updates. */
|
|
393
|
+
isStreaming?: boolean;
|
|
394
|
+
/** Reveal speed used while `isStreaming` is true. Defaults to 120 characters per second. */
|
|
395
|
+
streamCharactersPerSecond?: number;
|
|
396
|
+
/**
|
|
397
|
+
* Typography classes. Only `p` is read — the single paragraph the renderer
|
|
398
|
+
* emits — so the same object a Markdown message is styled with keeps both
|
|
399
|
+
* formats on one type scale.
|
|
400
|
+
*/
|
|
401
|
+
classNames?: Pick<MarkdownRendererClassNames, 'p'>;
|
|
402
|
+
/**
|
|
403
|
+
* Label shown with a shimmer animation while `isStreaming` is true and no
|
|
404
|
+
* content has arrived yet. Defaults to `'Thinking'`.
|
|
405
|
+
*/
|
|
406
|
+
thinkingLabel?: string;
|
|
407
|
+
/** Color overrides applied as CSS custom properties. */
|
|
408
|
+
colors?: Pick<MarkdownRendererColors, 'thinkingPrimary' | 'thinkingSecondary'>;
|
|
409
|
+
}
|
|
410
|
+
|
|
366
411
|
/** Style map consumed by `react-syntax-highlighter`'s `Prism` renderer. */
|
|
367
412
|
declare type PrismStyleMap = Record<string, CSSProperties>;
|
|
368
413
|
|
package/markdown.js
CHANGED
|
@@ -6,7 +6,8 @@ import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as i, MARKDOWN_TABLE_CSV_MIME_
|
|
|
6
6
|
import { MarkdownTable as c } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
|
|
7
7
|
import { MarkdownRenderer as l, defaultMarkdownComponents as u } from "./components/MarkdownRenderer/MarkdownRenderer.js";
|
|
8
8
|
import { COMPACT_MARKDOWN_CLASS_NAMES as d, DEFAULT_MARKDOWN_CLASS_NAMES as f } from "./components/MarkdownRenderer/markdown-class-names.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
|
|
9
|
+
import { PlainTextRenderer as p } from "./components/MarkdownRenderer/PlainTextRenderer.js";
|
|
10
|
+
import { MDMessageViewer as m } from "./components/MarkdownRenderer/MDMessageViewer.js";
|
|
11
|
+
import { MarkdownWithPlaceholders as h } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
|
|
12
|
+
import { useCollapsedText as g } from "./hooks/useCollapsedText.js";
|
|
13
|
+
export { e as CHAT_SHARED_CLASS, d as COMPACT_MARKDOWN_CLASS_NAMES, f as DEFAULT_MARKDOWN_CLASS_NAMES, i as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, a as MARKDOWN_TABLE_CSV_MIME_TYPE, m as MDMessageViewer, r as MarkdownCodeBlock, l as MarkdownRenderer, c as MarkdownTable, o as MarkdownTableCopyFormat, h as MarkdownWithPlaceholders, p as PlainTextRenderer, u as defaultMarkdownComponents, n as restrainedSyntaxTheme, s as serializeMarkdownTableRows, t as useCodeCopy, g as useCollapsedText };
|
package/package.json
CHANGED