@epam/ai-dial-chat-shared 1.3.0-dev.14 → 1.3.0-dev.28

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.
@@ -5,33 +5,34 @@ import r from "./ConfirmationView.module.scss.js";
5
5
  import { ConfirmationPopupVariant as i } from "@epam/ai-dial-ui-kit";
6
6
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  //#region src/components/ConfirmationView/ConfirmationView.tsx
8
- var s = ({ item: s, identity: c, message: l, consequences: u, variant: d = i.Info, messageClassName: f = "dial-small-text", styles: p, children: m }) => {
9
- let h = p?.colors;
8
+ var s = ({ item: s, identity: c, message: l, details: u, consequences: d, variant: f = i.Info, messageClassName: p = "dial-small-text", styles: m, children: h }) => {
9
+ let g = m?.colors;
10
10
  return /* @__PURE__ */ o("div", {
11
11
  style: t({
12
- "--cfm-message-text": h?.messageText,
13
- "--cfm-consequence-text": h?.consequenceText
12
+ "--cfm-message-text": g?.messageText,
13
+ "--cfm-consequence-text": g?.consequenceText
14
14
  }),
15
15
  className: "flex flex-col gap-4 px-4 py-4 desktop:px-6",
16
16
  children: [
17
17
  c ?? (s != null && /* @__PURE__ */ a(n, {
18
18
  item: s,
19
- variant: d,
19
+ variant: f,
20
20
  styles: { colors: {
21
- background: h?.cardBackground,
22
- dangerBackground: h?.cardDangerBackground,
23
- dangerBorder: h?.cardDangerBorder
21
+ background: g?.cardBackground,
22
+ dangerBackground: g?.cardDangerBackground,
23
+ dangerBorder: g?.cardDangerBorder
24
24
  } }
25
25
  })),
26
26
  /* @__PURE__ */ a("p", {
27
- className: e(f, "break-words", r.message),
27
+ className: e(p, "break-words", r.message),
28
28
  children: l
29
29
  }),
30
- u != null && u.length > 0 && /* @__PURE__ */ a("ul", {
31
- className: e("flex list-disc flex-col gap-2 ps-5", f, r.consequences),
32
- children: u.map((e) => /* @__PURE__ */ a("li", { children: e }, e))
30
+ u,
31
+ d != null && d.length > 0 && /* @__PURE__ */ a("ul", {
32
+ className: e("flex list-disc flex-col gap-2 ps-5", p, r.consequences),
33
+ children: d.map((e) => /* @__PURE__ */ a("li", { children: e }, e))
33
34
  }),
34
- m
35
+ h
35
36
  ]
36
37
  });
37
38
  };
@@ -0,0 +1,34 @@
1
+ import { ConfirmationFooter as e } from "../ConfirmationView/ConfirmationFooter.js";
2
+ import { DeleteConfirmationView as t } from "../DeleteConfirmationView/DeleteConfirmationView.js";
3
+ import { ConfirmationPopupVariant as n, Popup as r, PopupSize as i } from "@epam/ai-dial-ui-kit";
4
+ import { jsx as a } from "react/jsx-runtime";
5
+ //#region src/components/DeleteConfirmationDialog/DeleteConfirmationDialog.tsx
6
+ var o = ({ open: o, title: s, isLoading: c = !1, size: l = i.Sm, labels: u, styles: d, onConfirm: f, onClose: p, ...m }) => {
7
+ let { confirm: h = "Delete", cancel: g = "Cancel", deleting: _ = "Deleting…", ...v } = u ?? {}, { popupClassName: y, titleClassName: b, ...x } = d ?? {}, S = () => {
8
+ c || p();
9
+ };
10
+ return /* @__PURE__ */ a(r, {
11
+ open: o,
12
+ header: s,
13
+ size: l,
14
+ className: y,
15
+ titleClassName: b,
16
+ onClose: S,
17
+ footer: /* @__PURE__ */ a(e, {
18
+ variant: n.Danger,
19
+ confirmLabel: h,
20
+ cancelLabel: g,
21
+ isLoading: c,
22
+ loadingStatusLabel: _,
23
+ onConfirm: f,
24
+ onCancel: S
25
+ }),
26
+ children: /* @__PURE__ */ a(t, {
27
+ ...m,
28
+ labels: v,
29
+ styles: x
30
+ })
31
+ });
32
+ };
33
+ //#endregion
34
+ export { o as DeleteConfirmationDialog };
@@ -0,0 +1,37 @@
1
+ import { mergeClasses as e } from "../../utils/merge-class.js";
2
+ import { ResourceSummary as t } from "../ResourceSummary/ResourceSummary.js";
3
+ import { ConfirmationIdentityRow as n } from "../ConfirmationIdentityRow/ConfirmationIdentityRow.js";
4
+ import { ConfirmationView as r } from "../ConfirmationView/ConfirmationView.js";
5
+ import i from "./DeleteConfirmationView.module.scss.js";
6
+ import { ConfirmationPopupVariant as a } from "@epam/ai-dial-ui-kit";
7
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
+ //#region src/components/DeleteConfirmationView/DeleteConfirmationView.tsx
9
+ var c = 10, l = (e) => e === 1 ? "1 item" : `${e} items`, u = (e) => `… and ${e} more`, d = ({ names: c, icon: d, typeLabel: f, message: p, consequences: m = [], maxListedNames: h = 10, labels: g, styles: _, children: v }) => {
10
+ let { cannotBeUndone: y = "Cannot be undone", itemCount: b = l, moreItems: x = u } = g ?? {}, { typeLabelText: S, ...C } = _?.colors ?? {}, w = _?.messageClassName ?? "dial-small-text", T = c.length === 1, E = T ? [] : c.slice(0, h), D = c.length - (T ? 1 : E.length);
11
+ return /* @__PURE__ */ o(r, {
12
+ variant: a.Danger,
13
+ messageClassName: w,
14
+ styles: { colors: C },
15
+ identity: /* @__PURE__ */ o(t, { children: /* @__PURE__ */ o(n, {
16
+ icon: T ? d : void 0,
17
+ typeLabel: T ? f : void 0,
18
+ name: T ? c[0] : b(c.length),
19
+ styles: { colors: { typeLabelText: S } }
20
+ }) }),
21
+ message: p,
22
+ details: E.length > 0 && /* @__PURE__ */ s("ul", {
23
+ className: e("flex flex-col gap-1", w, i.names),
24
+ children: [E.map((e, t) => /* @__PURE__ */ o("li", {
25
+ className: "truncate",
26
+ children: e
27
+ }, `${t}-${e}`)), D > 0 && /* @__PURE__ */ o("li", {
28
+ className: i.more,
29
+ children: x(D)
30
+ })]
31
+ }),
32
+ consequences: [...m, y],
33
+ children: v
34
+ });
35
+ };
36
+ //#endregion
37
+ export { c as DELETE_CONFIRMATION_MAX_LISTED_NAMES, d as DeleteConfirmationView };
@@ -0,0 +1,6 @@
1
+ var e = {
2
+ names: "_names_g31v4_1",
3
+ more: "_more_g31v4_5"
4
+ };
5
+ //#endregion
6
+ export { e as default };
@@ -3,26 +3,27 @@ import { buildCssVars as t } from "../../utils/build-css-vars.js";
3
3
  import { useStreamedMarkdownContent as n } from "../../hooks/useStreamedMarkdownContent.js";
4
4
  import { preprocessLaTeX as r } from "../../utils/latex.js";
5
5
  import { MarkdownCodeBlock as i } from "./CodeBlock/CodeBlock.js";
6
- import a from "./MarkdownRenderer.module.scss.js";
7
- import { MarkdownMathBlock as o } from "./Math/MarkdownMathBlock.js";
8
- import s from "./Table/MarkdownTable.module.scss.js";
9
- import { MarkdownTable as c } from "./Table/MarkdownTable.js";
10
- import { MarkdownTaskCheckbox as l } from "./TaskCheckbox/MarkdownTaskCheckbox.js";
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";
6
+ import { rehypePreserveSpaces as a } from "./markdown-whitespace.js";
7
+ import o from "./MarkdownRenderer.module.scss.js";
8
+ import { MarkdownMathBlock as s } from "./Math/MarkdownMathBlock.js";
9
+ import c from "./Table/MarkdownTable.module.scss.js";
10
+ import { MarkdownTable as l } from "./Table/MarkdownTable.js";
11
+ import { MarkdownTaskCheckbox as u } from "./TaskCheckbox/MarkdownTaskCheckbox.js";
12
+ import { ThinkingShimmer as d } from "./ThinkingShimmer.js";
13
+ import f from "remark-gfm";
14
+ import { memo as p, useEffect as m, useMemo as h, useState as g } from "react";
15
+ import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
16
+ import b, { defaultUrlTransform as x } from "react-markdown";
17
+ import S from "rehype-raw";
18
+ import C, { defaultSchema as w } from "rehype-sanitize";
19
+ import T from "remark-breaks";
20
+ import E from "remark-math";
20
21
  //#region src/components/MarkdownRenderer/MarkdownRenderer.tsx
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 = {
22
+ var D = [
23
+ f,
24
+ T,
25
+ [E, { singleDollarTextMath: !1 }]
26
+ ], O = /* @__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("."), k = {
26
27
  math: ["display", "xmlns"],
27
28
  annotation: ["encoding"],
28
29
  mfrac: ["linethickness"],
@@ -51,231 +52,232 @@ var E = [
51
52
  "width"
52
53
  ],
53
54
  mtd: ["width"]
54
- }, k = [x], A = [S, {
55
- ...C,
55
+ }, A = [S], j = [C, {
56
+ ...w,
56
57
  tagNames: [
57
- ...C.tagNames ?? [],
58
- ...D,
58
+ ...w.tagNames ?? [],
59
+ ...O,
59
60
  "cit"
60
61
  ],
61
62
  attributes: {
62
- ...C.attributes,
63
- ...O,
64
- code: [...C.attributes?.code ?? [], ["className"]],
63
+ ...w.attributes,
64
+ ...k,
65
+ code: [...w.attributes?.code ?? [], ["className"]],
65
66
  cit: ["dataId"],
66
- span: [...C.attributes?.span ?? [], [
67
+ span: [...w.attributes?.span ?? [], [
67
68
  "className",
68
69
  "katex",
69
70
  "katex-error"
70
71
  ]]
71
72
  }
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
+ }], M = [], N = /\$\$|\\\(|\\\[/, P = (e) => N.test(e), F = {}, I = (e) => e == null ? x : (t) => x(e(t)), L = {
74
+ li: ({ children: e }) => /* @__PURE__ */ v("li", {
74
75
  className: "mb-1.5 last:mb-0",
75
76
  children: e
76
77
  }),
77
- cit: ({ children: e, ...t }) => /* @__PURE__ */ v(g, { children: [
78
+ cit: ({ children: e, ...t }) => /* @__PURE__ */ y(_, { children: [
78
79
  t["data-id"] == null ? "<cit>" : `<cit data-id="${t["data-id"]}">`,
79
80
  e,
80
81
  "</cit>"
81
82
  ] })
82
- }, L = (e) => {
83
+ }, R = (e) => {
83
84
  let t = e?.properties?.className;
84
85
  return !Array.isArray(t) || !t.includes("katex") ? !1 : (e?.children ?? []).some((e) => e.type === "element" && e.tagName === "math" && e.properties?.display === "block");
85
- }, R = {
86
+ }, z = {
86
87
  left: "text-start",
87
88
  center: "text-center",
88
89
  right: "text-end"
89
- }, z = (e) => {
90
+ }, B = (e) => {
90
91
  let t = e?.properties?.align;
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, codeBlockDownloadLabel: d, codeBlockTheme: f, tableActionLabels: p, tableDownloadFilename: m, tableOnOpenInCanvas: h, tableScrollRegionAriaLabel: v, mathScrollRegionAriaLabel: y }) => ({
93
- h1: ({ children: e }) => /* @__PURE__ */ _("h1", {
92
+ return typeof t == "string" ? z[t] : void 0;
93
+ }, V = (e) => e ? e.type === "text" ? e.value ?? "" : (e.children ?? []).map(V).join("") : "", H = (t, { isStreaming: n, codeBlockCopyLabel: r, codeBlockCopiedLabel: a, codeBlockDownloadLabel: d, codeBlockTheme: f, tableActionLabels: p, tableDownloadFilename: m, tableOnOpenInCanvas: h, tableScrollRegionAriaLabel: g, mathScrollRegionAriaLabel: y }) => ({
94
+ h1: ({ children: e }) => /* @__PURE__ */ v("h1", {
94
95
  className: t.h1,
95
96
  children: e
96
97
  }),
97
- h2: ({ children: e }) => /* @__PURE__ */ _("h2", {
98
+ h2: ({ children: e }) => /* @__PURE__ */ v("h2", {
98
99
  className: t.h2,
99
100
  children: e
100
101
  }),
101
- h3: ({ children: e }) => /* @__PURE__ */ _("h3", {
102
+ h3: ({ children: e }) => /* @__PURE__ */ v("h3", {
102
103
  className: t.h3,
103
104
  children: e
104
105
  }),
105
- h4: ({ children: e }) => /* @__PURE__ */ _("h4", {
106
+ h4: ({ children: e }) => /* @__PURE__ */ v("h4", {
106
107
  className: t.h4,
107
108
  children: e
108
109
  }),
109
- h5: ({ children: e }) => /* @__PURE__ */ _("h5", {
110
+ h5: ({ children: e }) => /* @__PURE__ */ v("h5", {
110
111
  className: t.h5,
111
112
  children: e
112
113
  }),
113
- h6: ({ children: n }) => /* @__PURE__ */ _("h6", {
114
- className: e(a.h6, t.h6),
114
+ h6: ({ children: n }) => /* @__PURE__ */ v("h6", {
115
+ className: e(o.h6, t.h6),
115
116
  children: n
116
117
  }),
117
- p: ({ children: n }) => /* @__PURE__ */ _("p", {
118
+ p: ({ children: n }) => /* @__PURE__ */ v("p", {
118
119
  className: e("break-words", t.p),
119
120
  children: n
120
121
  }),
121
- ul: ({ children: n }) => /* @__PURE__ */ _("ul", {
122
+ ul: ({ children: n }) => /* @__PURE__ */ v("ul", {
122
123
  className: e("list-disc ps-[2em]", t.ul),
123
124
  children: n
124
125
  }),
125
- ol: ({ children: n }) => /* @__PURE__ */ _("ol", {
126
+ ol: ({ children: n }) => /* @__PURE__ */ v("ol", {
126
127
  className: e("list-decimal ps-[2em]", t.ol),
127
128
  children: n
128
129
  }),
129
- strong: ({ children: e }) => /* @__PURE__ */ _("strong", {
130
+ strong: ({ children: e }) => /* @__PURE__ */ v("strong", {
130
131
  className: t.strong ?? "dial-body-paragraph-semi-text",
131
132
  children: e
132
133
  }),
133
- em: ({ children: e }) => /* @__PURE__ */ _("em", {
134
+ em: ({ children: e }) => /* @__PURE__ */ v("em", {
134
135
  className: t.em ?? "italic",
135
136
  children: e
136
137
  }),
137
- pre: ({ children: e }) => /* @__PURE__ */ _(g, { children: e }),
138
- code: ({ children: o, className: s }) => {
139
- let c = /language-(\w+)/.exec(s ?? "")?.[1] ?? "", l = String(o);
140
- return c || l.includes("\n") ? /* @__PURE__ */ _(i, {
141
- language: c,
142
- value: l.replace(/\n$/, ""),
138
+ pre: ({ children: e }) => /* @__PURE__ */ v(_, { children: e }),
139
+ code: ({ children: s, className: c }) => {
140
+ let l = /language-(\w+)/.exec(c ?? "")?.[1] ?? "", u = String(s);
141
+ return l || u.includes("\n") ? /* @__PURE__ */ v(i, {
142
+ language: l,
143
+ value: u.replace(/\n$/, ""),
143
144
  isStreaming: n,
144
145
  theme: f,
145
146
  copyLabel: r,
146
- copiedLabel: u,
147
+ copiedLabel: a,
147
148
  downloadLabel: d,
148
149
  containerClassName: t.codeBlockContainer,
149
150
  headerClassName: t.codeBlockHeader,
150
151
  codeClassName: t.codeFont
151
- }) : /* @__PURE__ */ _("code", {
152
- className: e("rounded px-1 py-0.5", a.codeInline, t.codeInlineFont ?? "dial-code-text", t.codeInline),
153
- children: o
152
+ }) : /* @__PURE__ */ v("code", {
153
+ className: e("rounded px-1 py-0.5", o.codeInline, t.codeInlineFont ?? "dial-code-text", t.codeInline),
154
+ children: s
154
155
  });
155
156
  },
156
- blockquote: ({ children: n }) => /* @__PURE__ */ _("blockquote", {
157
- className: e("border-s-2 py-1 ps-4", a.blockquote, t.blockquote),
157
+ blockquote: ({ children: n }) => /* @__PURE__ */ v("blockquote", {
158
+ className: e("border-s-2 py-1 ps-4", o.blockquote, t.blockquote),
158
159
  children: n
159
160
  }),
160
- a: ({ href: n, children: r }) => /* @__PURE__ */ _("a", {
161
+ a: ({ href: n, children: r }) => /* @__PURE__ */ v("a", {
161
162
  href: n,
162
163
  target: "_blank",
163
164
  rel: "noopener noreferrer",
164
- 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),
165
+ 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", o.link, t.link),
165
166
  children: r
166
167
  }),
167
- hr: () => /* @__PURE__ */ _("hr", { className: e("my-5 border-t", a.secondaryBorder, t.hr) }),
168
- del: ({ children: n }) => /* @__PURE__ */ _("del", {
168
+ hr: () => /* @__PURE__ */ v("hr", { className: e("my-5 border-t", o.secondaryBorder, t.hr) }),
169
+ del: ({ children: n }) => /* @__PURE__ */ v("del", {
169
170
  className: e("opacity-75", t.del),
170
171
  children: n
171
172
  }),
172
- input: ({ type: e, checked: t }) => e === "checkbox" ? /* @__PURE__ */ _(l, { checked: t ?? !1 }) : null,
173
- span: ({ children: e, node: n, ...r }) => L(n) ? /* @__PURE__ */ _(o, {
173
+ input: ({ type: e, checked: t }) => e === "checkbox" ? /* @__PURE__ */ v(u, { checked: t ?? !1 }) : null,
174
+ span: ({ children: e, node: n, ...r }) => R(n) ? /* @__PURE__ */ v(s, {
174
175
  className: t.mathBlock,
175
176
  scrollRegionAriaLabel: y,
176
177
  children: e
177
- }) : /* @__PURE__ */ _("span", {
178
+ }) : /* @__PURE__ */ v("span", {
178
179
  ...r,
179
180
  children: e
180
181
  }),
181
- table: ({ children: e }) => /* @__PURE__ */ _(c, {
182
+ table: ({ children: e }) => /* @__PURE__ */ v(l, {
182
183
  classNames: t,
183
184
  actionLabels: p,
184
185
  downloadFilename: m,
185
186
  onOpenInCanvas: h,
186
187
  isStreaming: n,
187
- scrollRegionAriaLabel: v,
188
+ scrollRegionAriaLabel: g,
188
189
  children: e
189
190
  }),
190
191
  tr: ({ children: t, node: n }) => {
191
- 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;
192
- return /* @__PURE__ */ _("tr", {
193
- className: e(s.row, o && s.sectionRow),
192
+ let r = n?.children.filter((e) => e.type === "element") ?? [], i = r.some((e) => e.tagName === "th"), a = r.filter((e) => V(e).trim().length > 0).length, o = !i && r.length > 1 && a === 1;
193
+ return /* @__PURE__ */ v("tr", {
194
+ className: e(c.row, o && c.sectionRow),
194
195
  children: t
195
196
  });
196
197
  },
197
- th: ({ children: n, node: r }) => /* @__PURE__ */ _("th", {
198
+ th: ({ children: n, node: r }) => /* @__PURE__ */ v("th", {
198
199
  scope: "col",
199
- 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),
200
+ className: e("sticky top-0 z-[2] max-w-96 whitespace-normal break-words px-3 py-2.5 text-start", B(r), c.rowDivider, c.tableHeaderCell, t.tableHeaderFont ?? "dial-tiny-lead-semi-text", t.tableCell, t.tableHeader),
200
201
  children: n
201
202
  }),
202
- td: ({ children: n, node: r }) => /* @__PURE__ */ _("td", {
203
- className: e("max-w-96 whitespace-normal px-3 py-[7px] align-top [overflow-wrap:anywhere]", z(r), s.rowDivider, t.tableBodyCell, t.tableCell),
203
+ td: ({ children: n, node: r }) => /* @__PURE__ */ v("td", {
204
+ className: e("max-w-96 whitespace-normal px-3 py-[7px] align-top [overflow-wrap:anywhere]", B(r), c.rowDivider, t.tableBodyCell, t.tableCell),
204
205
  children: n
205
206
  })
206
- }), 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, codeBlockDownloadLabel: b, codeBlockTheme: x, colors: S, tableActionLabels: C, tableDownloadFilename: w, tableOnOpenInCanvas: T, tableScrollRegionAriaLabel: D, mathScrollRegionAriaLabel: O }) => {
207
- let M = n(e, a, o), L = m(() => r(M), [M]), R = m(() => N(L), [L]), [z, B] = h(null);
208
- p(() => {
209
- if (!R || z) return;
207
+ }), U = p(({ content: e, containerClassName: i, isStreaming: o, streamCharactersPerSecond: s, classNames: c = F, components: l, urlTransform: u, rehypePlugins: f = M, thinkingLabel: p = "Thinking", codeBlockCopyLabel: _, codeBlockCopiedLabel: y, codeBlockDownloadLabel: x, codeBlockTheme: S, colors: C, tableActionLabels: w, tableDownloadFilename: T, tableOnOpenInCanvas: E, tableScrollRegionAriaLabel: O, mathScrollRegionAriaLabel: k }) => {
208
+ let N = n(e, o, s), R = h(() => r(N), [N]), z = h(() => P(R), [R]), [B, V] = g(null);
209
+ m(() => {
210
+ if (!z || B) return;
210
211
  let e = !1;
211
212
  return (async () => {
212
213
  let [t] = await Promise.all([import("rehype-katex"), import("katex/dist/katex.min.css")]);
213
- e || B([t.default, {
214
+ e || V([t.default, {
214
215
  output: "mathml",
215
216
  strict: !1
216
217
  }]);
217
218
  })(), () => {
218
219
  e = !0;
219
220
  };
220
- }, [R, z]);
221
- let H = m(() => [
222
- ...k,
223
- ...z ? [z] : [],
224
- A,
225
- ...d
226
- ], [z, d]), U = t({
227
- "--cm-markdown-border": S?.border,
228
- "--cm-blockquote-border": S?.blockquoteBorder,
229
- "--cm-blockquote-text": S?.blockquoteText,
230
- "--cm-link-text": S?.linkText,
231
- "--cm-link-focus": S?.linkFocus,
232
- "--cm-table-header-text": S?.tableHeaderText,
233
- "--cm-h6-text": S?.headingSixText,
234
- "--cm-code-inline-bg": S?.inlineCodeBackground,
235
- "--cm-code-inline-text": S?.inlineCodeText
236
- }), W = m(() => F(l), [l]), G = m(() => ({
237
- ...V(s, {
238
- isStreaming: a,
239
- codeBlockCopyLabel: g,
240
- codeBlockCopiedLabel: v,
241
- codeBlockDownloadLabel: b,
242
- codeBlockTheme: x,
243
- tableActionLabels: C,
244
- tableDownloadFilename: w,
245
- tableOnOpenInCanvas: T,
246
- tableScrollRegionAriaLabel: D,
247
- mathScrollRegionAriaLabel: O
221
+ }, [z, B]);
222
+ let U = h(() => [
223
+ ...A,
224
+ ...B ? [B] : [],
225
+ j,
226
+ a,
227
+ ...f
228
+ ], [B, f]), W = t({
229
+ "--cm-markdown-border": C?.border,
230
+ "--cm-blockquote-border": C?.blockquoteBorder,
231
+ "--cm-blockquote-text": C?.blockquoteText,
232
+ "--cm-link-text": C?.linkText,
233
+ "--cm-link-focus": C?.linkFocus,
234
+ "--cm-table-header-text": C?.tableHeaderText,
235
+ "--cm-h6-text": C?.headingSixText,
236
+ "--cm-code-inline-bg": C?.inlineCodeBackground,
237
+ "--cm-code-inline-text": C?.inlineCodeText
238
+ }), G = h(() => I(u), [u]), K = h(() => ({
239
+ ...H(c, {
240
+ isStreaming: o,
241
+ codeBlockCopyLabel: _,
242
+ codeBlockCopiedLabel: y,
243
+ codeBlockDownloadLabel: x,
244
+ codeBlockTheme: S,
245
+ tableActionLabels: w,
246
+ tableDownloadFilename: T,
247
+ tableOnOpenInCanvas: E,
248
+ tableScrollRegionAriaLabel: O,
249
+ mathScrollRegionAriaLabel: k
248
250
  }),
249
- ...I,
250
- ...c
251
+ ...L,
252
+ ...l
251
253
  }), [
252
- s,
253
- a,
254
- g,
255
- v,
256
- b,
254
+ c,
255
+ o,
256
+ _,
257
+ y,
257
258
  x,
258
- C,
259
+ S,
259
260
  w,
260
261
  T,
261
- D,
262
+ E,
262
263
  O,
263
- c
264
+ k,
265
+ l
264
266
  ]);
265
- return a && !M ? /* @__PURE__ */ _(u, {
266
- label: f,
267
- colors: S
268
- }) : /* @__PURE__ */ _("div", {
269
- style: U,
267
+ return o && !N ? /* @__PURE__ */ v(d, {
268
+ label: p,
269
+ colors: C
270
+ }) : /* @__PURE__ */ v("div", {
271
+ style: W,
270
272
  className: i,
271
- children: /* @__PURE__ */ _(y, {
272
- remarkPlugins: E,
273
- rehypePlugins: H,
274
- components: G,
275
- urlTransform: W,
276
- children: L
273
+ children: /* @__PURE__ */ v(b, {
274
+ remarkPlugins: D,
275
+ rehypePlugins: U,
276
+ components: K,
277
+ urlTransform: G,
278
+ children: R
277
279
  })
278
280
  });
279
281
  });
280
282
  //#endregion
281
- export { H as MarkdownRenderer, I as defaultMarkdownComponents };
283
+ export { U as MarkdownRenderer, L as defaultMarkdownComponents };
@@ -0,0 +1,18 @@
1
+ //#region src/components/MarkdownRenderer/markdown-whitespace.ts
2
+ var e = new Set([
3
+ "code",
4
+ "pre",
5
+ "math",
6
+ "script",
7
+ "style"
8
+ ]), t = "\xA0", n = / {2,}/g, r = (e) => `${t.repeat(e.length - 1)} `, i = (t) => {
9
+ if (t.type === "text" && t.value) {
10
+ t.value = t.value.replace(n, r);
11
+ return;
12
+ }
13
+ t.type === "element" && t.tagName && e.has(t.tagName) || t.children?.forEach(i);
14
+ }, a = () => (e) => {
15
+ i(e);
16
+ };
17
+ //#endregion
18
+ export { a as rehypePreserveSpaces };
package/index.css CHANGED
@@ -1,2 +1,2 @@
1
- ._message_1iqfi_1{color:var(--cfm-message-text,var(--text-primary,#161b2d))}._consequences_1iqfi_5{color:var(--cfm-consequence-text,var(--text-secondary,#57647a))}._footer_1iqfi_9{border-block-start:1px solid var(--cfm-footer-border,var(--stroke-tertiary,#e0e6f0))}._info_pkxew_1{--rs-bg:var(--bg-info,#e1eaf9)}._danger_pkxew_5{--rs-bg:var(--bg-control-error-alpha-active,#f7646433);--rs-border:var(--stroke-error-alpha,#ae2f2f73)}._agentIconBadge_1ger8_1{background:var(--di-icon-bg,var(--bg-layer-sunken,#eef1f7))}._title_11w3i_1{color:var(--ih-title-color,var(--text-primary,#161b2d))}._count_11w3i_5{color:var(--ih-count-color,var(--text-secondary,#57647a))}._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}._typeLabel_17nhs_1{color:var(--cir-type-label-text,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_1ql91_1{0%{background-position:200%}to{background-position:-200%}}._thinking_1ql91_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_1ql91_1}._h6_1ql91_18{color:var(--cm-h6-text,var(--text-secondary,#57647a))}._codeInline_1ql91_22{background:var(--cm-code-inline-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-code-inline-text,var(--text-primary,#161b2d))}._secondaryBorder_1ql91_27{border-color:var(--cm-markdown-border,var(--stroke-secondary,#d1dbea))}._blockquote_1ql91_31{border-color:var(--cm-blockquote-border,var(--stroke-primary,#57647a));color:var(--cm-blockquote-text,var(--text-secondary,#57647a))}._link_1ql91_36{color:var(--cm-link-text,var(--text-accent,#1d4ed8))}._link_1ql91_36:focus-visible{outline-color:var(--cm-link-focus,var(--stroke-focus,#161b2d))}._scrollContainer_n2oom_1{scrollbar-width:thin;scrollbar-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_n2oom_1::-webkit-scrollbar{height:4px}._scrollContainer_n2oom_1::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_n2oom_1::-webkit-scrollbar-thumb{background-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._scrollContainer_n2oom_1:focus-visible{outline:1px solid var(--cm-math-focus,var(--stroke-focus,#161b2d));outline-offset:2px}._mathContent_n2oom_24{width:max-content;min-width:100%;display:block}._tableContainer_1qw2e_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_1qw2e_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._copiedIcon_1qw2e_10{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_1qw2e_14{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1qw2e_14::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_1qw2e_14::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1qw2e_14::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_1qw2e_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_1qw2e_37 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}._rowDivider_1qw2e_41{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_1qw2e_41:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_1qw2e_51{-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%)}[dir=rtl] ._tableScrollFadeEnd_1qw2e_51{-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableScrollFadeStart_1qw2e_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_1qw2e_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_1qw2e_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))}
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}.bottom-4{bottom:1rem}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.end-4{inset-inline-end:1rem}.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}.z-\[70\]{z-index:70}.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\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.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\(900px\2c 100dvh\)\]{height:min(900px,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}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.\!w-\[400px\]{width:400px!important}.w-\[360px\]{width:360px}.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-\[1600px\]{max-width:1600px!important}.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}.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}.flex-wrap{flex-wrap:wrap}.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}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.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-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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-\[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-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.\!bg-layer-base{background-color:var(--bg-layer-base,#f5f7fa)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-layer-base{background-color:var(--bg-layer-base,#f5f7fa)}.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-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.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}.pb-0{padding-bottom:0}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-\[2em\]{padding-inline-start:2em}.pt-0{padding-top:0}.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-primary{color:var(--text-primary,#161b2d)}.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-sm{--tw-shadow:0 8px 10px 0 var(--shadow-sm,#2764d914);--tw-shadow-colored:0 8px 10px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xs{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.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\:\!h-full{height:100%!important}.mobile\:\!max-w-full{max-width:100%!important}.mobile\:flex-1{flex:1 1 0%}.mobile\:rounded-none{border-radius:0}.mobile\:p-0{padding:0}}@media (min-width:1280px){.desktop\:p-4{padding:1rem}.desktop\:px-6{padding-left:1.5rem;padding-right:1.5rem}}.rtl\:flex-row-reverse:where([dir=rtl],[dir=rtl] *){flex-direction:row-reverse}.rtl\:justify-start:where([dir=rtl],[dir=rtl] *){justify-content:flex-start}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:\!h-\[var\(--resizable-field-max-height\2c 70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){height:var(--resizable-field-max-height,70vh)!important}.\[\&_\.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}
1
+ ._message_1iqfi_1{color:var(--cfm-message-text,var(--text-primary,#161b2d))}._consequences_1iqfi_5{color:var(--cfm-consequence-text,var(--text-secondary,#57647a))}._footer_1iqfi_9{border-block-start:1px solid var(--cfm-footer-border,var(--stroke-tertiary,#e0e6f0))}._info_pkxew_1{--rs-bg:var(--bg-info,#e1eaf9)}._danger_pkxew_5{--rs-bg:var(--bg-control-error-alpha-active,#f7646433);--rs-border:var(--stroke-error-alpha,#ae2f2f73)}._agentIconBadge_1ger8_1{background:var(--di-icon-bg,var(--bg-layer-sunken,#eef1f7))}._title_11w3i_1{color:var(--ih-title-color,var(--text-primary,#161b2d))}._count_11w3i_5{color:var(--ih-count-color,var(--text-secondary,#57647a))}._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}._typeLabel_17nhs_1{color:var(--cir-type-label-text,var(--text-secondary,#57647a))}._names_g31v4_1{color:var(--cfm-message-text,var(--text-primary,#161b2d))}._more_g31v4_5{color:var(--cfm-consequence-text,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_1ql91_1{0%{background-position:200%}to{background-position:-200%}}._thinking_1ql91_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_1ql91_1}._h6_1ql91_18{color:var(--cm-h6-text,var(--text-secondary,#57647a))}._codeInline_1ql91_22{background:var(--cm-code-inline-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-code-inline-text,var(--text-primary,#161b2d))}._secondaryBorder_1ql91_27{border-color:var(--cm-markdown-border,var(--stroke-secondary,#d1dbea))}._blockquote_1ql91_31{border-color:var(--cm-blockquote-border,var(--stroke-primary,#57647a));color:var(--cm-blockquote-text,var(--text-secondary,#57647a))}._link_1ql91_36{color:var(--cm-link-text,var(--text-accent,#1d4ed8))}._link_1ql91_36:focus-visible{outline-color:var(--cm-link-focus,var(--stroke-focus,#161b2d))}._scrollContainer_n2oom_1{scrollbar-width:thin;scrollbar-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_n2oom_1::-webkit-scrollbar{height:4px}._scrollContainer_n2oom_1::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_n2oom_1::-webkit-scrollbar-thumb{background-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._scrollContainer_n2oom_1:focus-visible{outline:1px solid var(--cm-math-focus,var(--stroke-focus,#161b2d));outline-offset:2px}._mathContent_n2oom_24{width:max-content;min-width:100%;display:block}._tableContainer_1qw2e_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_1qw2e_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._copiedIcon_1qw2e_10{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_1qw2e_14{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1qw2e_14::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_1qw2e_14::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1qw2e_14::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_1qw2e_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_1qw2e_37 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}._rowDivider_1qw2e_41{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_1qw2e_41:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_1qw2e_51{-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%)}[dir=rtl] ._tableScrollFadeEnd_1qw2e_51{-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableScrollFadeStart_1qw2e_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_1qw2e_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_1qw2e_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))}
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}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-4{bottom:1rem}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.end-4{inset-inline-end:1rem}.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}.z-\[70\]{z-index:70}.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\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.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\(900px\2c 100dvh\)\]{height:min(900px,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}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.\!w-\[400px\]{width:400px!important}.w-\[360px\]{width:360px}.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-\[1600px\]{max-width:1600px!important}.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}.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}.flex-wrap{flex-wrap:wrap}.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}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.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-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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-\[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-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.\!bg-layer-base{background-color:var(--bg-layer-base,#f5f7fa)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-layer-base{background-color:var(--bg-layer-base,#f5f7fa)}.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-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.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}.pb-0{padding-bottom:0}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-\[2em\]{padding-inline-start:2em}.pt-0{padding-top:0}.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-primary{color:var(--text-primary,#161b2d)}.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-sm{--tw-shadow:0 8px 10px 0 var(--shadow-sm,#2764d914);--tw-shadow-colored:0 8px 10px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xs{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.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\:\!h-full{height:100%!important}.mobile\:\!max-w-full{max-width:100%!important}.mobile\:flex-1{flex:1 1 0%}.mobile\:rounded-none{border-radius:0}.mobile\:p-0{padding:0}}@media (min-width:1280px){.desktop\:p-4{padding:1rem}.desktop\:px-6{padding-left:1.5rem;padding-right:1.5rem}}.rtl\:flex-row-reverse:where([dir=rtl],[dir=rtl] *){flex-direction:row-reverse}.rtl\:justify-start:where([dir=rtl],[dir=rtl] *){justify-content:flex-start}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:\!h-\[var\(--resizable-field-max-height\2c 70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){height:var(--resizable-field-max-height,70vh)!important}.\[\&_\.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
@@ -463,6 +463,8 @@ export declare interface ConfirmationViewProps {
463
463
  identity?: ReactNode;
464
464
  /** Body copy explaining what confirming does. */
465
465
  message: ReactNode;
466
+ /** Content rendered between the message and the consequence bullets, for example the list of items a bulk action affects. */
467
+ details?: ReactNode;
466
468
  /** Consequences listed as bullets under the message. An empty or omitted list renders nothing. */
467
469
  consequences?: string[];
468
470
  /** Palette of the identity card. Default: `ConfirmationPopupVariant.Info`. */
@@ -758,6 +760,99 @@ export declare const DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME = "table.csv";
758
760
 
759
761
  export declare const defaultMarkdownComponents: Components;
760
762
 
763
+ /** Default cap on the names listed for a multi-item delete. */
764
+ export declare const DELETE_CONFIRMATION_MAX_LISTED_NAMES = 10;
765
+
766
+ /** Delete confirmation presented as a centered dialog, for one resource or a selection. */
767
+ export declare const DeleteConfirmationDialog: FC<DeleteConfirmationDialogProps>;
768
+
769
+ /** User-visible strings of `DeleteConfirmationDialog`. */
770
+ export declare interface DeleteConfirmationDialogLabels extends DeleteConfirmationViewLabels {
771
+ /** Label of the confirming action button. Defaults to `'Delete'`. */
772
+ confirm?: string;
773
+ /** Label of the cancel button. Defaults to `'Cancel'`. */
774
+ cancel?: string;
775
+ /** Status text announced while the deletion is in flight. Defaults to `'Deleting…'`. */
776
+ deleting?: string;
777
+ }
778
+
779
+ /** Props for `DeleteConfirmationDialog`. */
780
+ export declare interface DeleteConfirmationDialogProps extends Omit<DeleteConfirmationViewProps, 'labels' | 'styles'> {
781
+ /** Whether the dialog is open. */
782
+ open: boolean;
783
+ /** Dialog title. A string rather than a node, so the kit names the dialog with it. */
784
+ title: string;
785
+ /** Whether the delete request is in flight; blocks both actions and every dismissal route. Defaults to `false`. */
786
+ isLoading?: boolean;
787
+ /** Width cap of the dialog. Defaults to `PopupSize.Sm`. */
788
+ size?: PopupSize;
789
+ /** User-visible strings. */
790
+ labels?: DeleteConfirmationDialogLabels;
791
+ /** Style overrides. */
792
+ styles?: DeleteConfirmationDialogStyles;
793
+ /** Called when the user confirms. */
794
+ onConfirm: () => void;
795
+ /** Called when the dialog is dismissed — Cancel, the close control, Escape, or an outside click. */
796
+ onClose: () => void;
797
+ }
798
+
799
+ /** Style overrides for `DeleteConfirmationDialog`. */
800
+ export declare interface DeleteConfirmationDialogStyles extends NonNullable<DeleteConfirmationViewProps['styles']> {
801
+ /** CSS class applied to the popup container. */
802
+ popupClassName?: string;
803
+ /** CSS class applied to the dialog title. */
804
+ titleClassName?: string;
805
+ }
806
+
807
+ /** Body of a delete confirmation: the identity card, the warning, the affected names, and the consequences. */
808
+ export declare const DeleteConfirmationView: FC<DeleteConfirmationViewProps>;
809
+
810
+ /** Color overrides for `DeleteConfirmationView`. */
811
+ export declare interface DeleteConfirmationViewColors extends ConfirmationViewColors {
812
+ /** Type label above the name. Defaults to `--text-secondary`. */
813
+ typeLabelText?: string;
814
+ }
815
+
816
+ /** User-visible strings of `DeleteConfirmationView`. */
817
+ export declare interface DeleteConfirmationViewLabels {
818
+ /** Last consequence bullet. Defaults to `'Cannot be undone'`. */
819
+ cannotBeUndone?: string;
820
+ /** Identity-card text for a multi-item delete. Defaults to `'{count} items'`. */
821
+ itemCount?: (count: number) => string;
822
+ /** Trailing list entry for names past `maxListedNames`. Defaults to `'… and {count} more'`. */
823
+ moreItems?: (count: number) => string;
824
+ }
825
+
826
+ /** Props for `DeleteConfirmationView`. */
827
+ export declare interface DeleteConfirmationViewProps {
828
+ /** Names of the resources about to be deleted. One name is shown in the identity card; several are counted there and listed under the message. */
829
+ names: string[];
830
+ /** Icon shown in the identity card ahead of a single name. Supplied by the host, which owns the glyph set. */
831
+ icon?: ReactNode;
832
+ /** Resource type shown above a single name. Pass it in sentence case — the label uppercases itself. */
833
+ typeLabel?: string;
834
+ /** Warning sentence, composed by the host so it can emphasise the name. */
835
+ message: ReactNode;
836
+ /** Consequences listed before the final "cannot be undone" bullet. */
837
+ consequences?: string[];
838
+ /** Maximum number of names listed for a multi-item delete. Defaults to `DELETE_CONFIRMATION_MAX_LISTED_NAMES` (10). */
839
+ maxListedNames?: number;
840
+ /** User-visible strings. */
841
+ labels?: DeleteConfirmationViewLabels;
842
+ /** Style overrides. */
843
+ styles?: DeleteConfirmationViewStyles;
844
+ /** Content rendered after the consequence bullets, for example an inline error. */
845
+ children?: ReactNode;
846
+ }
847
+
848
+ /** Style overrides for `DeleteConfirmationView`. */
849
+ export declare interface DeleteConfirmationViewStyles {
850
+ /** Typography class applied to the message, the name list, and the bullets. Defaults to `'dial-small-text'`. */
851
+ messageClassName?: string;
852
+ /** Color overrides applied as CSS custom properties. */
853
+ colors?: DeleteConfirmationViewColors;
854
+ }
855
+
761
856
  /**
762
857
  * JSON Schema object returned by the DIAL Core deployment configuration endpoint
763
858
  * (`GET /v1/deployments/{deployment_name}/configuration`).
package/index.js CHANGED
@@ -48,28 +48,30 @@ import { ConfirmationIdentityRow as Je } from "./components/ConfirmationIdentity
48
48
  import { ConfirmationView as Ye } from "./components/ConfirmationView/ConfirmationView.js";
49
49
  import { ConfirmationFooter as Xe } from "./components/ConfirmationView/ConfirmationFooter.js";
50
50
  import { ConfirmationDialog as Ze } from "./components/ConfirmationDialog/ConfirmationDialog.js";
51
- import { TableHeader as Qe } from "./components/MarkdownRenderer/Table/TableHeader.js";
52
- import { TextRefinementState as $e, useTextRefinement as et } from "./hooks/useTextRefinement.js";
53
- import { TextRefinementField as tt } from "./components/TextRefinementField/TextRefinementField.js";
54
- import { CHAT_SHARED_CLASS as nt } from "./constants/public-class-names.js";
55
- import { useCodeCopy as rt } from "./hooks/useCodeCopy.js";
56
- import { restrainedSyntaxTheme as it } from "./components/MarkdownRenderer/CodeBlock/syntax-theme.js";
57
- import { MarkdownCodeBlock as at } from "./components/MarkdownRenderer/CodeBlock/CodeBlock.js";
58
- import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as ot, MARKDOWN_TABLE_CSV_MIME_TYPE as st, MarkdownTableCopyFormat as ct, serializeMarkdownTableRows as lt } from "./components/MarkdownRenderer/Table/table-serialization.js";
59
- import { MarkdownTable as ut } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
60
- import { MarkdownRenderer as dt, defaultMarkdownComponents as ft } from "./components/MarkdownRenderer/MarkdownRenderer.js";
61
- import { COMPACT_MARKDOWN_CLASS_NAMES as pt, DEFAULT_MARKDOWN_CLASS_NAMES as mt } from "./components/MarkdownRenderer/markdown-class-names.js";
62
- import { PlainTextRenderer as ht } from "./components/MarkdownRenderer/PlainTextRenderer.js";
63
- import { MDMessageViewer as gt } from "./components/MarkdownRenderer/MDMessageViewer.js";
64
- import { MarkdownWithPlaceholders as _t } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
65
- import { useCollapsedText as vt } from "./hooks/useCollapsedText.js";
66
- import { useAvailableHeightCap as yt } from "./hooks/useAvailableHeightCap.js";
67
- import { useIsMobile as bt } from "./hooks/useIsMobile.js";
68
- import { useUnsavedChangesGuard as xt } from "./hooks/useUnsavedChangesGuard.js";
69
- import { DialFileManagerActionProfile as St, DialFileManagerVariant as Ct } from "./file-manager/file-manager-variant.js";
70
- import { getParentFolderPath as wt, isHiddenPath as Tt } from "./file-manager/path.js";
71
- import { FileUploadStatus as Et, isUploadInProgress as Dt } from "./file-manager/upload-batch.js";
72
- import { useGridEditingScroll as Ot } from "./file-manager/useGridEditingScroll/useGridEditingScroll.js";
73
- import { OperationLoaderModal as kt } from "./file-manager/OperationLoaderModal/OperationLoaderModal.js";
74
- import { isSkillSelectionUnsupported as At } from "./utils/is-skill-selection-unsupported.js";
75
- export { p as AttachmentErrorReason, m as AttachmentType, ye as BASE_LG_ICON_PROPS, be as BASE_MD_ICON_PROPS, o as BackgroundGenerationStatus, nt as CHAT_SHARED_CLASS, pt as COMPACT_MARKDOWN_CLASS_NAMES, h as CatalogEntityType, v as CodeBlockTheme, Ze as ConfirmationDialog, Xe as ConfirmationFooter, qe as ConfirmationIdentityCard, Je as ConfirmationIdentityRow, Ye as ConfirmationView, e as ConversationTransferErrorCode, t as ConversationTransferJobStatus, n as ConversationTransferSubjectKind, r as ConversationTransferUnitKind, i as ConversationTransferWarningCode, Le as CopyButton, Re as CopyIconButton, mt as DEFAULT_MARKDOWN_CLASS_NAMES, ot as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, je as DESKTOP_BREAKPOINT_PX, Me as DESKTOP_MEDIA_QUERY, Ie as DeploymentIcon, St as DialFileManagerActionProfile, Ct as DialFileManagerVariant, I as ENTITY_DESCRIPTION_MAX_LENGTH, L as ENTITY_INSTRUCTIONS_MAX_LENGTH, R as ENTITY_NAME_MAX_LENGTH, le as ENTITY_TYPE_BG_COLOR, ue as ENTITY_TYPE_COLOR, Ge as EntityHeader, Ue as EntityTypeLabel, We as FeaturedChip, g as FileExtension, Et as FileUploadStatus, a as FilterTab, xe as HIDDEN_FILE, Fe as InitialsAvatar, He as ItemHeader, we as MARKDOWN_EDITOR_FILL_HEIGHT_CLASS_NAME, Te as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, Oe as MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME, st as MARKDOWN_TABLE_CSV_MIME_TYPE, gt as MDMessageViewer, _ as MIMEType, y as MIME_TYPE_ALIASES, b as MIME_TYPE_AUDIO_PREFIX, x as MIME_TYPE_EXT_MAP, S as MIME_TYPE_WILDCARD, Ne as MOBILE_MAX_WIDTH_PX, Pe as MOBILE_MEDIA_QUERY, at as MarkdownCodeBlock, dt as MarkdownRenderer, ut as MarkdownTable, ct as MarkdownTableCopyFormat, _t as MarkdownWithPlaceholders, s as MessageRating, c as MessageRole, kt as OperationLoaderModal, j as PROHIBITED_CONVERSATION_NAME_CHARS_RE, de as PROMPT_PARAM_DEFAULT_SEPARATOR, fe as PROMPT_PARAM_PATTERN, pe as PROMPT_VARIABLE_CLASS_NAME, Se as PUBLIC_BUCKET, Ve as PanelEmptyState, ht as PlainTextRenderer, Ee as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, De as RESIZABLE_TEXTAREA_CLASS_NAME, l as RequestStatus, Ke as ResourceSummary, f as ResponseFormat, ke as SELECT_LIST_MAX_HEIGHT_CLASS_NAME, Ae as SELECT_LIST_MAX_HEIGHT_PX, u as StageStatus, d as StatusEvent, Ce as TAG_INPUT_TAG_CLASS_NAME, Qe as TableHeader, tt as TextRefinementField, $e as TextRefinementState, te as base64ToBlob, H as buildCssVars, me as buildPromptParamDefaults, q as copyMarkdownAsRichText, J as copyToClipboard, ft as defaultMarkdownComponents, ne as downloadTextFile, re as ensureDownloadFilename, z as exceedsMaxLength, ze as extractInitials, he as extractPromptParams, Q as formatCost, Z as formatFileSize, X as formatLastUsed, $ as formatPrice, ee as formatUnitPrice, ve as generateUUID, C as getAttachmentTypeFromMime, w as getBaseMimeType, ie as getFileExtensionForLanguage, wt as getParentFolderPath, M as getUtf8ByteLength, B as hasControlCharacters, T as inferMimeTypeFromPath, O as isAnnotationSelector, K as isAudioTranscriptionSupported, Tt as isHiddenPath, At as isSkillSelectionUnsupported, U as isStatusMessage, ce as isSyntaxHighlightingAllowed, Dt as isUploadInProgress, Y as markdownToRichTextHtml, V as mergeClasses, W as messageAttachmentToDisplayAttachment, G as messageAttachmentsToDisplayAttachments, E as normalizeMimeType, k as normalizePersistedHtmlTagAttachmentType, A as normalizeRawAnnotations, Be as pickAvatarColor, ge as rehypePromptVariables, _e as resolvePromptParams, it as restrainedSyntaxTheme, N as sanitizeConversationName, lt as serializeMarkdownTableRows, P as stripTrailingDots, D as stripUrlQueryAndFragment, ae as triggerAnchorDownload, oe as triggerBlobDownload, F as truncateToUtf8Bytes, se as tryBase64ToBytes, yt as useAvailableHeightCap, rt as useCodeCopy, vt as useCollapsedText, Ot as useGridEditingScroll, bt as useIsMobile, et as useTextRefinement, xt as useUnsavedChangesGuard };
51
+ import { DELETE_CONFIRMATION_MAX_LISTED_NAMES as Qe, DeleteConfirmationView as $e } from "./components/DeleteConfirmationView/DeleteConfirmationView.js";
52
+ import { DeleteConfirmationDialog as et } from "./components/DeleteConfirmationDialog/DeleteConfirmationDialog.js";
53
+ import { TableHeader as tt } from "./components/MarkdownRenderer/Table/TableHeader.js";
54
+ import { TextRefinementState as nt, useTextRefinement as rt } from "./hooks/useTextRefinement.js";
55
+ import { TextRefinementField as it } from "./components/TextRefinementField/TextRefinementField.js";
56
+ import { CHAT_SHARED_CLASS as at } from "./constants/public-class-names.js";
57
+ import { useCodeCopy as ot } from "./hooks/useCodeCopy.js";
58
+ import { restrainedSyntaxTheme as st } from "./components/MarkdownRenderer/CodeBlock/syntax-theme.js";
59
+ import { MarkdownCodeBlock as ct } from "./components/MarkdownRenderer/CodeBlock/CodeBlock.js";
60
+ import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as lt, MARKDOWN_TABLE_CSV_MIME_TYPE as ut, MarkdownTableCopyFormat as dt, serializeMarkdownTableRows as ft } from "./components/MarkdownRenderer/Table/table-serialization.js";
61
+ import { MarkdownTable as pt } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
62
+ import { MarkdownRenderer as mt, defaultMarkdownComponents as ht } from "./components/MarkdownRenderer/MarkdownRenderer.js";
63
+ import { COMPACT_MARKDOWN_CLASS_NAMES as gt, DEFAULT_MARKDOWN_CLASS_NAMES as _t } from "./components/MarkdownRenderer/markdown-class-names.js";
64
+ import { PlainTextRenderer as vt } from "./components/MarkdownRenderer/PlainTextRenderer.js";
65
+ import { MDMessageViewer as yt } from "./components/MarkdownRenderer/MDMessageViewer.js";
66
+ import { MarkdownWithPlaceholders as bt } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
67
+ import { useCollapsedText as xt } from "./hooks/useCollapsedText.js";
68
+ import { useAvailableHeightCap as St } from "./hooks/useAvailableHeightCap.js";
69
+ import { useIsMobile as Ct } from "./hooks/useIsMobile.js";
70
+ import { useUnsavedChangesGuard as wt } from "./hooks/useUnsavedChangesGuard.js";
71
+ import { DialFileManagerActionProfile as Tt, DialFileManagerVariant as Et } from "./file-manager/file-manager-variant.js";
72
+ import { getParentFolderPath as Dt, isHiddenPath as Ot } from "./file-manager/path.js";
73
+ import { FileUploadStatus as kt, isUploadInProgress as At } from "./file-manager/upload-batch.js";
74
+ import { useGridEditingScroll as jt } from "./file-manager/useGridEditingScroll/useGridEditingScroll.js";
75
+ import { OperationLoaderModal as Mt } from "./file-manager/OperationLoaderModal/OperationLoaderModal.js";
76
+ import { isSkillSelectionUnsupported as Nt } from "./utils/is-skill-selection-unsupported.js";
77
+ export { p as AttachmentErrorReason, m as AttachmentType, ye as BASE_LG_ICON_PROPS, be as BASE_MD_ICON_PROPS, o as BackgroundGenerationStatus, at as CHAT_SHARED_CLASS, gt as COMPACT_MARKDOWN_CLASS_NAMES, h as CatalogEntityType, v as CodeBlockTheme, Ze as ConfirmationDialog, Xe as ConfirmationFooter, qe as ConfirmationIdentityCard, Je as ConfirmationIdentityRow, Ye as ConfirmationView, e as ConversationTransferErrorCode, t as ConversationTransferJobStatus, n as ConversationTransferSubjectKind, r as ConversationTransferUnitKind, i as ConversationTransferWarningCode, Le as CopyButton, Re as CopyIconButton, _t as DEFAULT_MARKDOWN_CLASS_NAMES, lt as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, Qe as DELETE_CONFIRMATION_MAX_LISTED_NAMES, je as DESKTOP_BREAKPOINT_PX, Me as DESKTOP_MEDIA_QUERY, et as DeleteConfirmationDialog, $e as DeleteConfirmationView, Ie as DeploymentIcon, Tt as DialFileManagerActionProfile, Et as DialFileManagerVariant, I as ENTITY_DESCRIPTION_MAX_LENGTH, L as ENTITY_INSTRUCTIONS_MAX_LENGTH, R as ENTITY_NAME_MAX_LENGTH, le as ENTITY_TYPE_BG_COLOR, ue as ENTITY_TYPE_COLOR, Ge as EntityHeader, Ue as EntityTypeLabel, We as FeaturedChip, g as FileExtension, kt as FileUploadStatus, a as FilterTab, xe as HIDDEN_FILE, Fe as InitialsAvatar, He as ItemHeader, we as MARKDOWN_EDITOR_FILL_HEIGHT_CLASS_NAME, Te as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, Oe as MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME, ut as MARKDOWN_TABLE_CSV_MIME_TYPE, yt as MDMessageViewer, _ as MIMEType, y as MIME_TYPE_ALIASES, b as MIME_TYPE_AUDIO_PREFIX, x as MIME_TYPE_EXT_MAP, S as MIME_TYPE_WILDCARD, Ne as MOBILE_MAX_WIDTH_PX, Pe as MOBILE_MEDIA_QUERY, ct as MarkdownCodeBlock, mt as MarkdownRenderer, pt as MarkdownTable, dt as MarkdownTableCopyFormat, bt as MarkdownWithPlaceholders, s as MessageRating, c as MessageRole, Mt as OperationLoaderModal, j as PROHIBITED_CONVERSATION_NAME_CHARS_RE, de as PROMPT_PARAM_DEFAULT_SEPARATOR, fe as PROMPT_PARAM_PATTERN, pe as PROMPT_VARIABLE_CLASS_NAME, Se as PUBLIC_BUCKET, Ve as PanelEmptyState, vt as PlainTextRenderer, Ee as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, De as RESIZABLE_TEXTAREA_CLASS_NAME, l as RequestStatus, Ke as ResourceSummary, f as ResponseFormat, ke as SELECT_LIST_MAX_HEIGHT_CLASS_NAME, Ae as SELECT_LIST_MAX_HEIGHT_PX, u as StageStatus, d as StatusEvent, Ce as TAG_INPUT_TAG_CLASS_NAME, tt as TableHeader, it as TextRefinementField, nt as TextRefinementState, te as base64ToBlob, H as buildCssVars, me as buildPromptParamDefaults, q as copyMarkdownAsRichText, J as copyToClipboard, ht as defaultMarkdownComponents, ne as downloadTextFile, re as ensureDownloadFilename, z as exceedsMaxLength, ze as extractInitials, he as extractPromptParams, Q as formatCost, Z as formatFileSize, X as formatLastUsed, $ as formatPrice, ee as formatUnitPrice, ve as generateUUID, C as getAttachmentTypeFromMime, w as getBaseMimeType, ie as getFileExtensionForLanguage, Dt as getParentFolderPath, M as getUtf8ByteLength, B as hasControlCharacters, T as inferMimeTypeFromPath, O as isAnnotationSelector, K as isAudioTranscriptionSupported, Ot as isHiddenPath, Nt as isSkillSelectionUnsupported, U as isStatusMessage, ce as isSyntaxHighlightingAllowed, At as isUploadInProgress, Y as markdownToRichTextHtml, V as mergeClasses, W as messageAttachmentToDisplayAttachment, G as messageAttachmentsToDisplayAttachments, E as normalizeMimeType, k as normalizePersistedHtmlTagAttachmentType, A as normalizeRawAnnotations, Be as pickAvatarColor, ge as rehypePromptVariables, _e as resolvePromptParams, st as restrainedSyntaxTheme, N as sanitizeConversationName, ft as serializeMarkdownTableRows, P as stripTrailingDots, D as stripUrlQueryAndFragment, ae as triggerAnchorDownload, oe as triggerBlobDownload, F as truncateToUtf8Bytes, se as tryBase64ToBytes, St as useAvailableHeightCap, ot as useCodeCopy, xt as useCollapsedText, jt as useGridEditingScroll, Ct as useIsMobile, rt as useTextRefinement, wt as useUnsavedChangesGuard };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-chat-shared",
3
3
  "description": "Shared domain models, utilities, and UI components for AI DIAL Chat libraries",
4
- "version": "1.3.0-dev.14",
4
+ "version": "1.3.0-dev.28",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "sideEffects": [
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "peerDependencies": {
34
34
  "react": "^19.2.8",
35
- "@epam/ai-dial-ui-kit": "^0.15.1",
36
- "@epam/ai-dial-react-file-manager": "^0.3.0",
35
+ "@epam/ai-dial-ui-kit": "^0.15.3",
36
+ "@epam/ai-dial-react-file-manager": "^0.3.2",
37
37
  "ag-grid-community": "^35.3.0"
38
38
  },
39
39
  "peerDependenciesMeta": {