@epam/ai-dial-chat-shared 1.2.0-dev.6 → 1.2.0-dev.61

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.
@@ -2,81 +2,82 @@ import { CodeBlockTheme as e } from "../../../types/code-editor.js";
2
2
  import { mergeClasses as t } from "../../../utils/merge-class.js";
3
3
  import { buildCssVars as n } from "../../../utils/build-css-vars.js";
4
4
  import { downloadTextFile as r, getFileExtensionForLanguage as i } from "../../../utils/file-download.js";
5
- import { useCodeCopy as a } from "../../../hooks/useCodeCopy.js";
6
- import o from "./CodeBlock.module.scss.js";
7
- import { restrainedSyntaxTheme as s } from "./syntax-theme.js";
8
- import { DIAL_ICON_SIZE as c, DIAL_KIT_ICON_STROKE as l, ElementSize as u, GhostIconButton as d } from "@epam/ai-dial-ui-kit";
9
- import { Suspense as f, lazy as p, memo as m } from "react";
10
- import { jsx as h, jsxs as g } from "react/jsx-runtime";
11
- import { IconCheck as _, IconCopy as v, IconDownload as y } from "@tabler/icons-react";
5
+ import { CHAT_SHARED_CLASS as a } from "../../../constants/public-class-names.js";
6
+ import { useCodeCopy as o } from "../../../hooks/useCodeCopy.js";
7
+ import s from "./CodeBlock.module.scss.js";
8
+ import { restrainedSyntaxTheme as c } from "./syntax-theme.js";
9
+ import { DIAL_ICON_SIZE as l, DIAL_KIT_ICON_STROKE as u, ElementSize as d, GhostIconButton as f } from "@epam/ai-dial-ui-kit";
10
+ import { Suspense as p, lazy as m, memo as h } from "react";
11
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
12
+ import { IconCheck as v, IconCopy as y, IconDownload as b } from "@tabler/icons-react";
12
13
  //#region src/components/MarkdownRenderer/CodeBlock/CodeBlock.tsx
13
- var b = {
14
- dark: s,
15
- light: s
16
- }, x = p(async () => {
14
+ var x = {
15
+ dark: c,
16
+ light: c
17
+ }, S = m(async () => {
17
18
  let { Prism: e } = await import("react-syntax-highlighter");
18
19
  return { default: e };
19
- }), S = m(({ language: p, value: m, isStreaming: S, theme: C = e.Dark, copyLabel: w = "Copy code", copiedLabel: T = "Copied!", downloadLabel: E = "Download code", hideDownload: D = !1, containerClassName: O, headerClassName: k, codeClassName: A = "dial-code-text", languageLabelClassName: j = "dial-tiny-lead-semi-text", title: M, titleSlot: N, colors: P }) => {
20
- let { isCopied: F, copy: I } = a(m), L = C === e.Light, R = () => {
21
- r(m, `code.${i(p)}`);
22
- }, z = /* @__PURE__ */ h("pre", {
20
+ }), C = h(({ language: m, value: h, isStreaming: C, theme: w = e.Dark, copyLabel: T = "Copy code", copiedLabel: E = "Copied!", downloadLabel: D = "Download code", hideDownload: O = !1, containerClassName: k, headerClassName: A, codeClassName: j = "dial-code-text", languageLabelClassName: M = "dial-tiny-lead-semi-text", title: N, titleSlot: P, colors: F }) => {
21
+ let { isCopied: I, copy: L } = o(h), R = w === e.Light, z = () => {
22
+ r(h, `code.${i(m)}`);
23
+ }, B = /* @__PURE__ */ g("pre", {
23
24
  className: "p-4",
24
- children: /* @__PURE__ */ h("code", {
25
- className: t("whitespace-pre", A),
26
- children: m
25
+ children: /* @__PURE__ */ g("code", {
26
+ className: t("whitespace-pre", j),
27
+ children: h
27
28
  })
28
29
  });
29
- return /* @__PURE__ */ g("div", {
30
+ return /* @__PURE__ */ _("div", {
30
31
  style: n({
31
- "--cm-code-block-bg": P?.background,
32
- "--cm-code-block-border": P?.border,
33
- "--cm-code-block-header-bg": P?.headerBackground,
34
- "--cm-code-block-language": P?.language,
35
- "--cm-code-block-copied": P?.copied,
36
- "--cm-code-block-scrollbar": P?.scrollbar
32
+ "--cm-code-block-bg": F?.background,
33
+ "--cm-code-block-border": F?.border,
34
+ "--cm-code-block-header-bg": F?.headerBackground,
35
+ "--cm-code-block-language": F?.language,
36
+ "--cm-code-block-copied": F?.copied,
37
+ "--cm-code-block-scrollbar": F?.scrollbar
37
38
  }),
38
- className: t("my-4 max-w-full overflow-hidden rounded-xl border", o.container, L && o.containerLight, O),
39
+ className: t("my-4 max-w-full rounded-xl border [overflow:clip]", s.container, R && s.containerLight, k, a.codeBlock),
39
40
  children: [
40
- /* @__PURE__ */ g("div", {
41
- className: t("flex min-h-10 items-center justify-between border-b px-4", N == null ? "py-2" : "py-0", o.header, k),
42
- children: [N ?? /* @__PURE__ */ h("span", {
43
- className: t(o.languageLabel, j),
44
- children: M ?? p
45
- }), !S && /* @__PURE__ */ g("div", {
41
+ /* @__PURE__ */ _("div", {
42
+ className: t("sticky top-0 z-10 flex min-h-10 items-center justify-between px-4", P == null ? "py-2" : "py-0", s.header, A, a.codeBlockHeader),
43
+ children: [P ?? /* @__PURE__ */ g("span", {
44
+ className: t(s.languageLabel, M),
45
+ children: N ?? m
46
+ }), !C && /* @__PURE__ */ _("div", {
46
47
  className: "flex items-center gap-1",
47
- children: [!D && /* @__PURE__ */ h(d, {
48
- icon: /* @__PURE__ */ h(y, {
49
- size: c.SM,
50
- stroke: l
48
+ children: [!O && /* @__PURE__ */ g(f, {
49
+ icon: /* @__PURE__ */ g(b, {
50
+ size: l.SM,
51
+ stroke: u
51
52
  }),
52
- "aria-label": E,
53
- size: u.Small,
54
- onClick: R
55
- }), /* @__PURE__ */ h(d, {
56
- icon: F ? /* @__PURE__ */ h(_, {
57
- size: c.SM,
58
- className: o.copiedIcon,
53
+ "aria-label": D,
54
+ size: d.Small,
55
+ onClick: z
56
+ }), /* @__PURE__ */ g(f, {
57
+ icon: I ? /* @__PURE__ */ g(v, {
58
+ size: l.SM,
59
+ className: s.copiedIcon,
59
60
  "aria-hidden": !0,
60
- stroke: l
61
- }) : /* @__PURE__ */ h(v, {
62
- size: c.SM,
61
+ stroke: u
62
+ }) : /* @__PURE__ */ g(y, {
63
+ size: l.SM,
63
64
  "aria-hidden": !0,
64
- stroke: l
65
+ stroke: u
65
66
  }),
66
- "aria-label": w,
67
- size: u.Small,
68
- onClick: I
67
+ "aria-label": T,
68
+ size: d.Small,
69
+ onClick: L
69
70
  })]
70
71
  })]
71
72
  }),
72
- /* @__PURE__ */ h("div", {
73
- className: t(o.scrollContainer, "max-h-[60vh] overflow-auto"),
73
+ /* @__PURE__ */ g("div", {
74
+ className: t(s.scrollContainer, "max-h-[60vh] overflow-auto"),
74
75
  dir: "ltr",
75
- children: p ? /* @__PURE__ */ h(f, {
76
- fallback: z,
77
- children: /* @__PURE__ */ h(x, {
78
- language: p,
79
- style: b[C] ?? s,
76
+ children: m ? /* @__PURE__ */ g(p, {
77
+ fallback: B,
78
+ children: /* @__PURE__ */ g(S, {
79
+ language: m,
80
+ style: x[w] ?? c,
80
81
  customStyle: {
81
82
  margin: 0,
82
83
  borderRadius: 0,
@@ -86,19 +87,19 @@ var b = {
86
87
  padding: "14px 16px",
87
88
  letterSpacing: 0
88
89
  },
89
- codeTagProps: { className: A },
90
- children: m
90
+ codeTagProps: { className: j },
91
+ children: h
91
92
  })
92
- }) : z
93
+ }) : B
93
94
  }),
94
- /* @__PURE__ */ h("span", {
95
+ /* @__PURE__ */ g("span", {
95
96
  role: "status",
96
97
  "aria-live": "polite",
97
98
  className: "sr-only",
98
- children: F ? T : ""
99
+ children: I ? E : ""
99
100
  })
100
101
  ]
101
102
  });
102
103
  });
103
104
  //#endregion
104
- export { S as MarkdownCodeBlock };
105
+ export { C as MarkdownCodeBlock };
@@ -1,10 +1,10 @@
1
1
  var e = {
2
- container: "_container_spugt_1",
3
- containerLight: "_containerLight_spugt_6",
4
- header: "_header_spugt_10",
5
- languageLabel: "_languageLabel_spugt_15",
6
- copiedIcon: "_copiedIcon_spugt_19",
7
- scrollContainer: "_scrollContainer_spugt_23"
2
+ container: "_container_sqe5k_1",
3
+ containerLight: "_containerLight_sqe5k_6",
4
+ header: "_header_sqe5k_10",
5
+ languageLabel: "_languageLabel_sqe5k_15",
6
+ copiedIcon: "_copiedIcon_sqe5k_19",
7
+ scrollContainer: "_scrollContainer_sqe5k_23"
8
8
  };
9
9
  //#endregion
10
10
  export { e as default };
@@ -198,7 +198,7 @@ var T = [
198
198
  children: n
199
199
  }),
200
200
  td: ({ children: n, node: r }) => /* @__PURE__ */ g("td", {
201
- className: e("max-w-96 whitespace-normal px-3 py-2.5 align-top [overflow-wrap:anywhere]", R(r), s.rowDivider, t.tableBodyCell, t.tableCell),
201
+ className: e("max-w-96 whitespace-normal px-3 py-[7px] align-top [overflow-wrap:anywhere]", R(r), s.rowDivider, t.tableBodyCell, t.tableCell),
202
202
  children: n
203
203
  })
204
204
  }), V = d(({ content: e, containerClassName: i, isStreaming: o, streamCharactersPerSecond: s, classNames: c = N, components: l, urlTransform: u, rehypePlugins: d = A, thinkingLabel: h = "Thinking", codeBlockCopyLabel: _, codeBlockCopiedLabel: y, codeBlockTheme: b, colors: x, tableActionLabels: S, tableDownloadFilename: C, tableOnOpenInCanvas: w, tableScrollRegionAriaLabel: E, mathScrollRegionAriaLabel: D }) => {
@@ -1,24 +1,25 @@
1
1
  import { mergeClasses as e } from "../../../utils/merge-class.js";
2
- import { useHorizontalOverflow as t } from "../../../hooks/useHorizontalOverflow.js";
3
- import n from "./MarkdownMathBlock.module.scss.js";
4
- import { memo as r } from "react";
5
- import { jsx as i } from "react/jsx-runtime";
2
+ import { CHAT_SHARED_CLASS as t } from "../../../constants/public-class-names.js";
3
+ import { useHorizontalOverflow as n } from "../../../hooks/useHorizontalOverflow.js";
4
+ import r from "./MarkdownMathBlock.module.scss.js";
5
+ import { memo as i } from "react";
6
+ import { jsx as a } from "react/jsx-runtime";
6
7
  //#region src/components/MarkdownRenderer/Math/MarkdownMathBlock.tsx
7
- var a = r(({ children: r, className: a, scrollRegionAriaLabel: o = "Scrollable formula" }) => {
8
- let { scrollContainerRef: s, contentRef: c, hasContentBeyondStart: l, hasContentBeyondEnd: u, handleScroll: d } = t(), f = l || u;
9
- return /* @__PURE__ */ i("div", {
10
- ref: s,
11
- className: e("w-full min-w-0 max-w-full overflow-x-auto overflow-y-hidden", n.scrollContainer, a),
12
- onScroll: d,
13
- role: f ? "region" : void 0,
14
- "aria-label": f ? o : void 0,
15
- tabIndex: f ? 0 : void 0,
16
- children: /* @__PURE__ */ i("span", {
17
- ref: c,
18
- className: e("katex", n.mathContent),
19
- children: r
8
+ var o = i(({ children: i, className: o, scrollRegionAriaLabel: s = "Scrollable formula" }) => {
9
+ let { scrollContainerRef: c, contentRef: l, hasContentBeyondStart: u, hasContentBeyondEnd: d, handleScroll: f } = n(), p = u || d;
10
+ return /* @__PURE__ */ a("div", {
11
+ ref: c,
12
+ className: e("w-full min-w-0 max-w-full overflow-x-auto overflow-y-hidden", r.scrollContainer, o, t.mathBlock),
13
+ onScroll: f,
14
+ role: p ? "region" : void 0,
15
+ "aria-label": p ? s : void 0,
16
+ tabIndex: p ? 0 : void 0,
17
+ children: /* @__PURE__ */ a("span", {
18
+ ref: l,
19
+ className: e("katex", r.mathContent),
20
+ children: i
20
21
  })
21
22
  });
22
23
  });
23
24
  //#endregion
24
- export { a as MarkdownMathBlock };
25
+ export { o as MarkdownMathBlock };
@@ -1,77 +1,95 @@
1
1
  import { mergeClasses as e } from "../../../utils/merge-class.js";
2
2
  import { buildCssVars as t } from "../../../utils/build-css-vars.js";
3
- import { copyToClipboard as n } from "../../../utils/copy-to-clipboard.js";
3
+ import { copyMarkdownAsRichText as n } from "../../../utils/copy-to-clipboard.js";
4
4
  import { downloadTextFile as r } from "../../../utils/file-download.js";
5
- import { TableHeader as i } from "./TableHeader.js";
5
+ import { CHAT_SHARED_CLASS as i } from "../../../constants/public-class-names.js";
6
6
  import { useHorizontalOverflow as a } from "../../../hooks/useHorizontalOverflow.js";
7
7
  import o from "./MarkdownTable.module.scss.js";
8
8
  import { MARKDOWN_TABLE_CSV_MIME_TYPE as s, MarkdownTableCopyFormat as c, serializeMarkdownTableRows as l } from "./table-serialization.js";
9
9
  import { useMarkdownTableActions as u } from "./useMarkdownTableActions/useMarkdownTableActions.js";
10
- import { memo as d, useCallback as f, useEffect as p, useRef as m, useState as h } from "react";
11
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
10
+ import { ElementSize as d, GhostIconButton as f, Tooltip as p } from "@epam/ai-dial-ui-kit";
11
+ import { memo as m, useCallback as h, useEffect as g, useRef as _, useState as v } from "react";
12
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
12
13
  //#region src/components/MarkdownRenderer/Table/MarkdownTable.tsx
13
- var v = 2e3, y = d(({ children: d, classNames: y, colors: b, actionLabels: x, downloadFilename: S, isStreaming: C, onOpenInCanvas: w, scrollRegionAriaLabel: T = "Scrollable table" }) => {
14
- let [E, D] = h(void 0), O = m(null), { scrollContainerRef: k, contentRef: A, hasContentBeyondStart: j, hasContentBeyondEnd: M, handleScroll: N } = a(), P = t({
15
- "--cm-markdown-border": b?.border,
16
- "--cm-table-scrollbar": b?.scrollbar,
17
- "--cm-table-fade": b?.fade,
18
- "--cm-table-row-divider": b?.rowDivider,
19
- "--cm-table-row-zebra-bg": b?.rowZebraBackground,
20
- "--cm-table-row-hover-bg": b?.rowHoverBackground
21
- }), F = j || M;
22
- p(() => () => {
23
- O.current != null && clearTimeout(O.current);
14
+ var x = 2e3, S = m(({ children: m, classNames: S, colors: C, actionLabels: w, downloadFilename: T, isStreaming: E, onOpenInCanvas: D, scrollRegionAriaLabel: O = "Scrollable table" }) => {
15
+ let [k, A] = v(!1), j = _(null), { scrollContainerRef: M, contentRef: N, hasContentBeyondStart: P, hasContentBeyondEnd: F, handleScroll: I } = a(), L = t({
16
+ "--cm-markdown-border": C?.border,
17
+ "--cm-table-scrollbar": C?.scrollbar,
18
+ "--cm-table-fade": C?.fade,
19
+ "--cm-table-row-divider": C?.rowDivider,
20
+ "--cm-table-row-hover-bg": C?.rowHoverBackground
21
+ }), R = P || F;
22
+ g(() => () => {
23
+ j.current != null && clearTimeout(j.current);
24
24
  }, []);
25
- let I = f((e) => {
26
- let t = A.current;
27
- t != null && n(l(Array.from(t.rows), e)).then((t) => {
28
- t && (O.current != null && clearTimeout(O.current), D(e), O.current = setTimeout(() => {
29
- D(void 0);
30
- }, v));
25
+ let z = h(() => {
26
+ let e = N.current;
27
+ e != null && n(l(Array.from(e.rows), c.Markdown)).then((e) => {
28
+ e && (j.current != null && clearTimeout(j.current), A(!0), j.current = setTimeout(() => {
29
+ A(!1);
30
+ }, x));
31
31
  });
32
- }, [A]), L = f(() => {
33
- let e = A.current;
34
- e != null && r(`\uFEFF${l(Array.from(e.rows), c.Csv)}`, S ?? "table.csv", s);
35
- }, [A, S]), R = f(() => {
36
- let e = A.current;
37
- e == null || w == null || w(l(Array.from(e.rows), c.Markdown));
38
- }, [A, w]), z = u({
39
- actionLabels: x,
40
- copiedFormat: E,
41
- onCopy: I,
42
- onDownloadCsv: L,
43
- onOpenInCanvas: w == null ? void 0 : R
44
- }), B = z.length > 0 && !C;
45
- return /* @__PURE__ */ _("div", {
46
- style: P,
47
- className: e("relative w-full min-w-0 max-w-full overflow-hidden rounded-xl border", o.tableContainer, o.tableContainerLight, y.tableWrapper),
32
+ }, [N]), B = h(() => {
33
+ let e = N.current;
34
+ e != null && r(`\uFEFF${l(Array.from(e.rows), c.Csv)}`, T ?? "table.csv", s);
35
+ }, [N, T]), V = h(() => {
36
+ let e = N.current;
37
+ e == null || D == null || D(l(Array.from(e.rows), c.Markdown));
38
+ }, [N, D]), H = u({
39
+ actionLabels: w,
40
+ isCopied: k,
41
+ onCopy: z,
42
+ onDownloadCsv: B,
43
+ onOpenInCanvas: D == null ? void 0 : V
44
+ }), U = H.length > 0 && !E;
45
+ return /* @__PURE__ */ b("div", {
46
+ style: L,
47
+ className: e("group/table relative w-full min-w-0 max-w-full rounded-xl border [overflow:clip]", o.tableContainer, S.tableWrapper, i.table),
48
48
  children: [
49
- B && /* @__PURE__ */ g(i, { actions: z }),
50
- /* @__PURE__ */ g("div", {
51
- ref: k,
52
- className: e("w-full min-w-0 max-w-full overflow-x-auto", o.scrollContainer, y.tableScrollContainer, {
53
- [o.tableScrollFadeBoth]: j && M,
54
- [o.tableScrollFadeStart]: j && !M,
55
- [o.tableScrollFadeEnd]: !j && M
56
- }),
57
- onScroll: N,
58
- role: F ? "region" : void 0,
59
- "aria-label": F ? T : void 0,
60
- tabIndex: F ? 0 : void 0,
61
- children: /* @__PURE__ */ g("table", {
62
- ref: A,
63
- className: e("w-max min-w-full border-collapse", y.tableFont ?? "dial-small-text"),
64
- children: d
49
+ U && /* @__PURE__ */ y("div", {
50
+ className: "sticky top-0 z-10 h-0",
51
+ children: /* @__PURE__ */ y("div", {
52
+ className: "absolute end-2 top-2 flex items-center gap-1 rounded-lg border border-tertiary bg-layer-raised px-2 py-1 opacity-0 shadow-xs transition-opacity focus-within:opacity-100 group-hover/table:opacity-100",
53
+ children: H.map((e) => /* @__PURE__ */ y(p, {
54
+ tooltip: e.label,
55
+ asChild: !0,
56
+ children: /* @__PURE__ */ y(f, {
57
+ "aria-label": e.label,
58
+ icon: /* @__PURE__ */ y("span", {
59
+ "aria-hidden": !0,
60
+ children: e.icon
61
+ }),
62
+ size: d.Small,
63
+ onClick: e.onClick
64
+ })
65
+ }, e.label))
65
66
  })
66
67
  }),
67
- x?.copiedLabel && /* @__PURE__ */ g("span", {
68
+ /* @__PURE__ */ y("div", {
69
+ ref: M,
70
+ className: e("w-full min-w-0 max-w-full overflow-x-auto", o.scrollContainer, S.tableScrollContainer, {
71
+ [o.tableScrollFadeBoth]: P && F,
72
+ [o.tableScrollFadeStart]: P && !F,
73
+ [o.tableScrollFadeEnd]: !P && F
74
+ }, i.tableScroll),
75
+ onScroll: I,
76
+ role: R ? "region" : void 0,
77
+ "aria-label": R ? O : void 0,
78
+ tabIndex: R ? 0 : void 0,
79
+ children: /* @__PURE__ */ y("table", {
80
+ ref: N,
81
+ className: e("w-max min-w-full border-collapse", S.tableFont ?? "dial-small-text"),
82
+ children: m
83
+ })
84
+ }),
85
+ w?.copyLabel && /* @__PURE__ */ y("span", {
68
86
  "aria-live": "polite",
69
87
  className: "sr-only",
70
88
  role: "status",
71
- children: E ? x.copiedLabel : ""
89
+ children: k ? w.copiedLabel ?? "" : ""
72
90
  })
73
91
  ]
74
92
  });
75
93
  });
76
94
  //#endregion
77
- export { y as MarkdownTable };
95
+ export { S as MarkdownTable };
@@ -1,15 +1,15 @@
1
1
  var e = {
2
- tableContainer: "_tableContainer_187t3_1",
3
- tableContainerLight: "_tableContainerLight_187t3_6",
4
- copiedIcon: "_copiedIcon_187t3_10",
5
- scrollContainer: "_scrollContainer_187t3_14",
6
- tableHeaderCell: "_tableHeaderCell_187t3_30",
7
- sectionRow: "_sectionRow_187t3_35",
8
- row: "_row_187t3_39",
9
- rowDivider: "_rowDivider_187t3_43",
10
- tableScrollFadeEnd: "_tableScrollFadeEnd_187t3_53",
11
- tableScrollFadeStart: "_tableScrollFadeStart_187t3_61",
12
- tableScrollFadeBoth: "_tableScrollFadeBoth_187t3_69"
2
+ tableContainer: "_tableContainer_1fwnj_1",
3
+ tableContainerLight: "_tableContainerLight_1fwnj_6",
4
+ copiedIcon: "_copiedIcon_1fwnj_10",
5
+ scrollContainer: "_scrollContainer_1fwnj_14",
6
+ tableHeaderCell: "_tableHeaderCell_1fwnj_30",
7
+ sectionRow: "_sectionRow_1fwnj_37",
8
+ rowDivider: "_rowDivider_1fwnj_41",
9
+ row: "_row_1fwnj_41",
10
+ tableScrollFadeEnd: "_tableScrollFadeEnd_1fwnj_51",
11
+ tableScrollFadeStart: "_tableScrollFadeStart_1fwnj_59",
12
+ tableScrollFadeBoth: "_tableScrollFadeBoth_1fwnj_67"
13
13
  };
14
14
  //#endregion
15
15
  export { e as default };
@@ -1,6 +1,6 @@
1
1
  //#region src/components/MarkdownRenderer/Table/table-serialization.ts
2
2
  var e = /* @__PURE__ */ function(e) {
3
- return e.Csv = "csv", e.Txt = "txt", e.Markdown = "markdown", e;
4
- }({}), t = "table.csv", n = "text/csv;charset=utf-8", r = (e) => Array.from(e.cells).map((e) => e.textContent?.trim() ?? ""), i = (e) => r(e).map((e) => e ? `"${e.replace(/"/g, "\"\"")}"` : "").join(","), a = (e) => r(e).join(" "), o = (e) => `| ${r(e).join(" | ")} |`, s = (e, t) => t === "csv" ? e.map(i).join("\n") : t === "txt" ? e.map(a).join("\n") : e.map((e, t) => t === 0 ? [o(e), `| ${r(e).map(() => ":--").join(" | ")} |`].join("\n") : o(e)).join("\n");
3
+ return e.Csv = "csv", e.Markdown = "markdown", e;
4
+ }({}), t = "table.csv", n = "text/csv;charset=utf-8", r = (e) => Array.from(e.cells).map((e) => e.textContent?.trim() ?? ""), i = (e) => r(e).map((e) => e ? `"${e.replace(/"/g, "\"\"")}"` : "").join(","), a = (e) => `| ${r(e).join(" | ")} |`, o = (e, t) => t === "csv" ? e.map(i).join("\n") : e.map((e, t) => t === 0 ? [a(e), `| ${r(e).map(() => ":--").join(" | ")} |`].join("\n") : a(e)).join("\n");
5
5
  //#endregion
6
- export { t as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, n as MARKDOWN_TABLE_CSV_MIME_TYPE, e as MarkdownTableCopyFormat, s as serializeMarkdownTableRows };
6
+ export { t as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, n as MARKDOWN_TABLE_CSV_MIME_TYPE, e as MarkdownTableCopyFormat, o as serializeMarkdownTableRows };
@@ -1,66 +1,52 @@
1
1
  import e from "../MarkdownTable.module.scss.js";
2
- import { MarkdownTableCopyFormat as t } from "../table-serialization.js";
3
- import { DIAL_ICON_SIZE as n, DIAL_KIT_ICON_STROKE as r } from "@epam/ai-dial-ui-kit";
4
- import { useMemo as i } from "react";
5
- import { jsx as a } from "react/jsx-runtime";
6
- import { IconCheck as o, IconCsv as s, IconDownload as c, IconMarkdown as l, IconMaximize as u, IconTxt as d } from "@tabler/icons-react";
2
+ import { DIAL_ICON_SIZE as t, DIAL_KIT_ICON_STROKE as n } from "@epam/ai-dial-ui-kit";
3
+ import { useMemo as r } from "react";
4
+ import { jsx as i } from "react/jsx-runtime";
5
+ import { IconCheck as a, IconCopy as o, IconDownload as s, IconLayoutSidebarRight as c } from "@tabler/icons-react";
7
6
  //#region src/components/MarkdownRenderer/Table/useMarkdownTableActions/useMarkdownTableActions.tsx
8
- var f = ({ actionLabels: f, copiedFormat: p, onCopy: m, onDownloadCsv: h, onOpenInCanvas: g }) => i(() => {
9
- if (f == null) return [];
10
- let i = [], _ = [
11
- {
12
- label: f.copyCsvLabel,
13
- format: t.Csv,
14
- Icon: s
15
- },
16
- {
17
- label: f.copyTxtLabel,
18
- format: t.Txt,
19
- Icon: d
20
- },
21
- {
22
- label: f.copyMarkdownLabel,
23
- format: t.Markdown,
24
- Icon: l
7
+ var l = ({ actionLabels: l, isCopied: u, onCopy: d, onDownloadCsv: f, onOpenInCanvas: p }) => {
8
+ let m = l?.copyLabel, h = l?.downloadCsvLabel, g = l?.openInCanvasLabel;
9
+ return r(() => {
10
+ let r = [];
11
+ if (m != null) {
12
+ let s = u ? /* @__PURE__ */ i(a, {
13
+ className: e.copiedIcon,
14
+ size: t.SM,
15
+ stroke: n
16
+ }) : /* @__PURE__ */ i(o, {
17
+ size: t.SM,
18
+ stroke: n
19
+ });
20
+ r.push({
21
+ label: m,
22
+ icon: s,
23
+ onClick: d
24
+ });
25
25
  }
26
- ];
27
- for (let { label: t, format: s, Icon: c } of _) {
28
- if (t == null) continue;
29
- let l = p === s ? /* @__PURE__ */ a(o, {
30
- className: e.copiedIcon,
31
- size: n.SM,
32
- stroke: r
33
- }) : /* @__PURE__ */ a(c, {
34
- size: n.SM,
35
- stroke: r
36
- });
37
- i.push({
38
- label: t,
39
- icon: l,
40
- onClick: () => m(s)
41
- });
42
- }
43
- return f.downloadCsvLabel != null && i.push({
44
- label: f.downloadCsvLabel,
45
- icon: /* @__PURE__ */ a(c, {
46
- size: n.SM,
47
- stroke: r
48
- }),
49
- onClick: h
50
- }), f.openInCanvasLabel != null && g != null && i.push({
51
- label: f.openInCanvasLabel,
52
- icon: /* @__PURE__ */ a(u, {
53
- size: n.SM,
54
- stroke: r
55
- }),
56
- onClick: g
57
- }), i;
58
- }, [
59
- f,
60
- p,
61
- m,
62
- h,
63
- g
64
- ]);
26
+ return h != null && r.push({
27
+ label: h,
28
+ icon: /* @__PURE__ */ i(s, {
29
+ size: t.SM,
30
+ stroke: n
31
+ }),
32
+ onClick: f
33
+ }), g != null && p != null && r.push({
34
+ label: g,
35
+ icon: /* @__PURE__ */ i(c, {
36
+ size: t.SM,
37
+ stroke: n
38
+ }),
39
+ onClick: p
40
+ }), r;
41
+ }, [
42
+ m,
43
+ h,
44
+ g,
45
+ u,
46
+ d,
47
+ f,
48
+ p
49
+ ]);
50
+ };
65
51
  //#endregion
66
- export { f as useMarkdownTableActions };
52
+ export { l as useMarkdownTableActions };
@@ -0,0 +1,10 @@
1
+ //#region src/constants/public-class-names.ts
2
+ var e = {
3
+ codeBlock: "dial-chat-shared-code-block",
4
+ codeBlockHeader: "dial-chat-shared-code-block-header",
5
+ table: "dial-chat-shared-table",
6
+ tableScroll: "dial-chat-shared-table-scroll",
7
+ mathBlock: "dial-chat-shared-math-block"
8
+ };
9
+ //#endregion
10
+ export { e as CHAT_SHARED_CLASS };
@@ -1,4 +1,4 @@
1
1
  //#region src/constants/resizable-fields.ts
2
- var e = "max-h-[50vh]", t = "--resizable-field-max-height", n = "[&_.w-md-editor]:max-h-[var(--resizable-field-max-height,70vh)]";
2
+ var e = "max-h-[50vh]", t = "--resizable-field-max-height", n = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:max-h-[var(--resizable-field-max-height,70vh)]";
3
3
  //#endregion
4
4
  export { n as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, t as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, e as RESIZABLE_TEXTAREA_CLASS_NAME };
@@ -1,56 +1,50 @@
1
- import { DialFileName as e, NeutralButton as t, Popup as n } from "@epam/ai-dial-ui-kit";
2
- import { memo as r, useCallback as i } from "react";
3
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
1
+ import { DialFileName as e, ElementSize as t, NeutralButton as n, Popup as r, ProgressBar as i } from "@epam/ai-dial-ui-kit";
2
+ import { memo as a, useCallback as o } from "react";
3
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
4
4
  //#region src/file-manager/UploadProgressModal/UploadProgressModal.tsx
5
- var s = ({ batchState: r, uploadProgressTitle: s, uploadProgressText: c, cancelLabel: l, onCancel: u }) => {
6
- let { files: d } = r, f = i((e) => e === void 0 ? null : /* @__PURE__ */ a("div", {
7
- className: "h-1 w-full overflow-hidden rounded-full bg-control-disable-primary",
8
- "data-qa": "uploading-indicator",
9
- role: "progressbar",
10
- "aria-valuemin": 0,
11
- "aria-valuemax": 100,
12
- "aria-valuenow": e,
13
- children: /* @__PURE__ */ a("div", {
14
- className: "h-full rounded-full bg-control-accent transition-all duration-300",
15
- style: { width: `${e}%` }
16
- })
5
+ var l = ({ batchState: a, uploadProgressTitle: l, uploadProgressText: u, cancelLabel: d, onCancel: f }) => {
6
+ let { files: p } = a, m = o((e, n) => n === void 0 ? null : /* @__PURE__ */ s(i, {
7
+ value: n,
8
+ size: t.Small,
9
+ "aria-label": e,
10
+ "data-qa": "uploading-indicator"
17
11
  }), []);
18
- return /* @__PURE__ */ a(n, {
12
+ return /* @__PURE__ */ s(r, {
19
13
  className: "!h-fit !max-h-full !w-[400px] mobile:!w-full desktop:!max-h-[693px]",
20
- open: r.isOpen,
14
+ open: a.isOpen,
21
15
  closeOnOutsideClick: !1,
22
16
  hideClose: !0,
23
- onClose: u,
24
- footer: /* @__PURE__ */ a("div", {
17
+ onClose: f,
18
+ footer: /* @__PURE__ */ s("div", {
25
19
  className: "flex justify-end gap-2 px-6 py-4",
26
- children: /* @__PURE__ */ a(t, {
27
- label: l,
28
- onClick: u
20
+ children: /* @__PURE__ */ s(n, {
21
+ label: d,
22
+ onClick: f
29
23
  })
30
24
  }),
31
- header: /* @__PURE__ */ o("div", {
25
+ header: /* @__PURE__ */ c("div", {
32
26
  className: "flex flex-col gap-2",
33
- children: [/* @__PURE__ */ a("div", { children: s }), /* @__PURE__ */ a("div", {
27
+ children: [/* @__PURE__ */ s("div", { children: l }), /* @__PURE__ */ s("div", {
34
28
  className: "dial-small-text text-secondary",
35
29
  "data-qa": "uploading-items-count",
36
- children: c
30
+ children: u
37
31
  })]
38
32
  }),
39
- children: /* @__PURE__ */ a("div", {
33
+ children: /* @__PURE__ */ s("div", {
40
34
  className: "flex h-full max-h-full flex-col gap-4 px-6",
41
- children: /* @__PURE__ */ a("div", {
35
+ children: /* @__PURE__ */ s("div", {
42
36
  className: "flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto",
43
- children: d.map((t) => /* @__PURE__ */ a("div", {
37
+ children: p.map((t) => /* @__PURE__ */ s("div", {
44
38
  className: "rounded bg-layer-sunken px-3 py-2",
45
- children: /* @__PURE__ */ a(e, {
39
+ children: /* @__PURE__ */ s(e, {
46
40
  name: t.name,
47
- details: f(t.percent)
41
+ details: m(t.name, t.percent)
48
42
  })
49
43
  }, t.id))
50
44
  })
51
45
  })
52
46
  });
53
47
  };
54
- r(s);
48
+ a(l);
55
49
  //#endregion
56
- export { s as UploadProgressModal };
50
+ export { l as UploadProgressModal };
package/index.css CHANGED
@@ -1,2 +1,2 @@
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_spugt_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._containerLight_spugt_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._header_spugt_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_spugt_15{color:var(--cm-code-block-language,var(--text-secondary,#57647a))}._copiedIcon_spugt_19{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_spugt_23 .token.table,._scrollContainer_spugt_23 .token.table-header-row,._scrollContainer_spugt_23 .token.table-line,._scrollContainer_spugt_23 .token.table-data-rows{display:inline}._scrollContainer_spugt_23{scrollbar-width:thin;scrollbar-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_spugt_23::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_spugt_23::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_spugt_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_187t3_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_187t3_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._copiedIcon_187t3_10{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_187t3_14{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_187t3_14::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_187t3_14::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_187t3_14::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_187t3_30{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-table-header-text,var(--text-secondary,#57647a))}._sectionRow_187t3_35 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}tbody ._row_187t3_39:nth-child(2n) td{background:var(--cm-table-row-zebra-bg,var(--bg-layer-base,#f5f7fa))}._rowDivider_187t3_43{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_187t3_39:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_187t3_53{-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_187t3_53{-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_187t3_61{-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_187t3_61{-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_187t3_69{-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}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip:auto;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-bottom-0{bottom:0}.-bottom-0\.5{bottom:-.125rem}.-left-0{left:0}.-left-0\.5{left:-.125rem}.end-0{inset-inline-end:0}.left-0{left:0}.left-full{left:100%}.right-0{right:0}.right-full{right:100%}.top-0{top:0}.top-1\/2{top:50%}.top-8{top:2rem}.top-\[-2px\]{top:-2px}.top-\[-6px\]{top:-6px}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.z-\[53\]{z-index:53}.z-\[54\]{z-index:54}.z-\[55\]{z-index:55}.-m-px{margin:-1px}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-\[-2px\]{margin-top:-2px;margin-bottom:-2px}.-ml-6{margin-left:-1.5rem}.-mr-2{margin-right:-.5rem}.-mr-px{margin-right:-1px}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-\[2px\]{margin-bottom:2px}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-6{margin-left:1.5rem}.ml-\[26px\]{margin-left:26px}.ml-\[28px\]{margin-left:28px}.ml-\[44px\]{margin-left:44px}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.ms-auto{margin-inline-start:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.size-0{width:0;height:0}.size-10{width:2.5rem;height:2.5rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-9{width:2.25rem;height:2.25rem}.size-\[16px\]{width:16px;height:16px}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]{width:20px;height:20px}.size-\[24px\]{width:24px;height:24px}.size-\[38px\]{width:38px;height:38px}.size-\[40px\]{width:40px;height:40px}.size-\[48px\]{width:48px;height:48px}.size-\[4px\]{width:4px;height:4px}.size-\[8px\]{width:8px;height:8px}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.size-px{width:1px;height:1px}.\!h-10{height:2.5rem!important}.\!h-5{height:1.25rem!important}.\!h-6{height:1.5rem!important}.\!h-9{height:2.25rem!important}.\!h-\[min\(800px\,100dvh\)\]{height:min(800px,100dvh)!important}.\!h-auto{height:auto!important}.\!h-fit{height:fit-content!important}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[120px\]{height:120px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[24px\]{height:24px}.h-\[26px\]{height:26px}.h-\[32px\]{height:32px}.h-\[34px\]{height:34px}.h-\[38px\]{height:38px}.h-\[40px\]{height:40px}.h-\[60px\]{height:60px}.h-\[8px\]{height:8px}.h-auto{height:auto}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[344px\]{max-height:344px}.max-h-\[352px\]{max-height:352px}.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}.min-h-2{min-height:.5rem}.min-h-4{min-height:1rem}.min-h-\[248px\]{min-height:248px}.min-h-\[24px\]{min-height:24px}.min-h-\[25px\]{min-height:25px}.min-h-\[38px\]{min-height:38px}.min-h-\[40px\]{min-height:40px}.min-h-\[42px\]{min-height:42px}.\!w-\[400px\]{width:400px!important}.w-0{width:0}.w-0\.5{width:.125rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-2\/5{width:40%}.w-8{width:2rem}.w-\[120px\]{width:120px}.w-\[22px\]{width:22px}.w-\[248px\]{width:248px}.w-\[24px\]{width:24px}.w-\[260px\]{width:260px}.w-\[32px\]{width:32px}.w-\[36px\]{width:36px}.w-\[40px\]{width:40px}.w-\[44px\]{width:44px}.w-\[600px\]{width:600px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-8{min-width:2rem}.min-w-\[100px\]{min-width:100px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[24px\]{min-width:24px}.min-w-\[5ch\]{min-width:5ch}.min-w-full{min-width:100%}.\!max-w-\[var\(--reference-width\)\]{max-width:var(--reference-width)!important}.max-w-96{max-width:24rem}.max-w-\[200px\]{max-width:200px}.max-w-\[280px\]{max-width:280px}.max-w-\[30\%\]{max-width:30%}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[376px\]{max-width:376px}.max-w-\[428px\]{max-width:428px}.max-w-\[45\%\]{max-width:45%}.max-w-\[51\%\]{max-width:51%}.max-w-\[600px\]{max-width:600px}.max-w-full{max-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-auto{flex-basis:auto}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.\!cursor-default{cursor:default!important}.\!cursor-not-allowed{cursor:not-allowed!important}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.gap-\[2px\]{gap:2px}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}.divide-tertiary>:not([hidden])~:not([hidden]){border-color:var(--stroke-tertiary,#e0e6f0)}.self-start{align-self:flex-start}.self-center{align-self:center}.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}.\!truncate{text-overflow:ellipsis!important;white-space:nowrap!important;overflow:hidden!important}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.text-clip{text-overflow:clip}.\!whitespace-normal{white-space:normal!important}.whitespace-normal{white-space:normal}.\!whitespace-nowrap{white-space:nowrap!important}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded{border-radius:4px!important}.rounded{border-radius:4px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[120px\]{border-radius:120px}.rounded-\[14px\]{border-radius:14px}.rounded-\[20px\]{border-radius:20px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.\!rounded-r-none{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-b{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.rounded-e{border-start-end-radius:4px;border-end-end-radius:4px}.rounded-l{border-top-left-radius:4px;border-bottom-left-radius:4px}.rounded-r{border-top-right-radius:4px;border-bottom-right-radius:4px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-s{border-start-start-radius:4px;border-end-start-radius:4px}.rounded-t{border-top-left-radius:4px;border-top-right-radius:4px}.rounded-bl{border-bottom-left-radius:4px}.rounded-br{border-bottom-right-radius:4px}.rounded-ee{border-end-end-radius:4px}.rounded-es{border-end-start-radius:4px}.rounded-se{border-start-end-radius:4px}.rounded-ss{border-start-start-radius:4px}.rounded-tl{border-top-left-radius:4px}.rounded-tr{border-top-right-radius:4px}.\!border-0{border-width:0!important}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-b-2{border-bottom-width:2px}.border-e{border-inline-end-width:1px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0}.border-s{border-inline-start-width:1px}.border-s-2{border-inline-start-width:2px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.\!border-none{border-style:none!important}.border-none{border-style:none}.\!border-error{border-color:var(--stroke-error,#ae2f2f)!important}.\!border-primary{border-color:var(--stroke-primary,#57647a)!important}.\!border-transparent{border-color:#0000!important}.border-accent{border-color:var(--stroke-accent,#1d4ed8)}.border-control-disable-primary{border-color:var(--stroke-control-disable-primary,#848e9c)}.border-default{border-color:var(--stroke-default,#b2c2dd)}.border-error{border-color:var(--stroke-error,#ae2f2f)}.border-info{border-color:var(--stroke-info,#1d4ed8)}.border-primary{border-color:var(--stroke-primary,#57647a)}.border-secondary{border-color:var(--stroke-secondary,#d1dbea)}.border-success{border-color:var(--stroke-success,#007274)}.border-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--stroke-warning,#eec840)}.border-l-transparent{border-left-color:#0000}.border-t-accent{border-top-color:var(--stroke-accent,#1d4ed8)}.\!bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-control-accent{background-color:var(--bg-control-accent,#1d4ed8)}.bg-control-accent-alpha{background-color:var(--bg-control-accent-alpha,#2764d90f)}.bg-control-accent-alpha-hover{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.bg-control-disable-primary{background-color:var(--bg-control-disable-primary,#dce0e8)}.bg-control-disable-secondary{background-color:var(--bg-control-disable-secondary,#acb3c3)}.bg-control-error{background-color:var(--bg-control-error,#ae2f2f)}.bg-control-inverted{background-color:var(--bg-control-inverted,#57647a)}.bg-control-neutral{background-color:var(--bg-control-neutral,#fcfcfc)}.bg-control-neutral-active{background-color:var(--bg-control-neutral-active,#d1dbea)}.bg-control-neutral-default{background-color:var(--bg-control-neutral-default,#acb3c3)}.bg-error{background-color:var(--bg-error,#f3d6d8)}.bg-info{background-color:var(--bg-info,#e1eaf9)}.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)}.bg-success{background-color:var(--bg-success,#dbf1eb)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--bg-warning,#faf0cf)}.bg-repeat{background-repeat:repeat}.fill-control-inverted{fill:var(--bg-control-inverted,#57647a)}.stroke-primary{stroke:var(--stroke-primary,#57647a)}.object-contain{-o-object-fit:contain;object-fit:contain}.\!p-0{padding:0!important}.\!p-1{padding:.25rem!important}.\!p-\[9px\]{padding:9px!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-\[3px\]{padding:3px}.p-\[6px\]{padding:6px}.p-px{padding:1px}.\!py-\[1px\]{padding-top:1px!important;padding-bottom:1px!important}.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-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.\!pl-\[7px\]{padding-left:7px!important}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-\[7px\]{padding-left:7px}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-7{padding-right:1.75rem}.pr-\[7px\]{padding-right:7px}.ps-10{padding-inline-start:2.5rem}.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}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.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}.\!text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.\!text-accent{color:var(--text-accent,#1d4ed8)!important}.text-\[var\(--bg-layer-0\,_\#000000\)\]{color:var(--bg-layer-0,#000)}.text-accent{color:var(--text-accent,#1d4ed8)}.text-control-disable-primary{color:var(--text-control-disable-primary,var(--text-control-disable-alpha,#848e9c))}.text-control-inverted{color:var(--text-control-inverted,#fcfcfc)}.text-control-permanent{color:var(--text-control-permanent,#fcfcfc)}.text-error{color:var(--text-error,#ae2f2f)}.text-info{color:var(--text-info,#1d4ed8)}.text-primary{color:var(--text-primary,#161b2d)}.text-secondary{color:var(--text-secondary,#57647a)}.text-success{color:var(--text-success,#007274)}.text-tertiary{color:var(--text-tertiary,#848e9c)}.text-transparent{color:#0000}.text-violet-1{color:var(--text-visual-violet-1,#7c3aed)}.text-warning{color:var(--text-warning,#7f6300)}.text-warning-icon{color:var(--text-warning-icon,#eec840)}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 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)}.shadow-md{--tw-shadow:0 8px 24px 0 var(--shadow-md,#2764d90f);--tw-shadow-colored:0 8px 24px 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)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-width:1px;outline-style:solid}.outline-offset-0{outline-offset:0px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.blur{--tw-blur:blur(8px);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)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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)}.grayscale{--tw-grayscale:grayscale(100%);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)}.invert{--tw-invert:invert(100%);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)}.sepia{--tw-sepia:sepia(100%);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)}.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)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[transform\,box-shadow\]{transition-property:transform,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.\[writing-mode\:tb-rl\]{writing-mode:tb-rl}.placeholder\:text-secondary::placeholder{color:var(--text-secondary,#57647a)}.before\:inline-block:before{content:var(--tw-content);display:inline-block}.before\:h-\[18px\]:before{content:var(--tw-content);height:18px}.before\:w-\[18px\]:before{content:var(--tw-content);width:18px}.before\:rounded:before{content:var(--tw-content);border-radius:4px}.before\:border:before{content:var(--tw-content);border-width:1px}.before\:content-\[\"\"\]:before{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:border-accent-focus:focus-within{border-color:var(--stroke-accent-focus,#6785fb)}.hover\:-translate-y-\[3px\]:hover{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:\!border-transparent:hover{border-color:#0000!important}.hover\:border-accent:hover{border-color:var(--stroke-accent,#1d4ed8)}.hover\:border-accent-alpha:hover{border-color:var(--stroke-accent-alpha,#2764d933)}.hover\:border-error:hover{border-color:var(--stroke-error,#ae2f2f)}.hover\:bg-control-accent-alpha-hover:hover{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.hover\:bg-control-accent-hover:hover{background-color:var(--bg-control-accent-hover,#5976e9)}.hover\:bg-control-neutral-hover-strong:hover{background-color:var(--bg-control-neutral-hover-strong,#848e9c)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent:hover{color:var(--text-accent,#1d4ed8)}.hover\:text-control-accent-hover:hover{color:var(--text-control-accent-hover,var(--text-control-blue-hover,#5976e9))}.hover\:text-primary:hover{color:var(--text-primary,#161b2d)}.hover\:decoration-current:hover{text-decoration-color:currentColor}.hover\:shadow-lg:hover{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 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)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus-visible\:relative:focus-visible{position:relative}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-none:focus-visible{border-style:none}.focus-visible\:border-focus:focus-visible{border-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:outline:focus-visible{outline-width:1px;outline-style:solid}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-focus:focus-visible{outline-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.active\:bg-control-accent-alpha-active:active{background-color:var(--bg-control-accent-alpha-active,#2764d933)}.active\:text-control-accent-active:active{color:var(--text-control-accent-active,var(--text-control-blue-active,#6785fb))}.enabled\:text-secondary:enabled{color:var(--text-secondary,#57647a)}.enabled\:hover\:bg-control-accent-alpha-hover:hover:enabled{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.enabled\:hover\:text-control-accent-hover:hover:enabled{color:var(--text-control-accent-hover,var(--text-control-blue-hover,#5976e9))}.enabled\:active\:bg-control-accent-alpha-active:active:enabled{background-color:var(--bg-control-accent-alpha-active,#2764d933)}.enabled\:active\:text-control-accent-active:active:enabled{color:var(--text-control-accent-active,var(--text-control-blue-active,#6785fb))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-control-disable-primary:disabled{color:var(--text-control-disable-primary,var(--text-control-disable-alpha,#848e9c))}.disabled\:opacity-75:disabled{opacity:.75}.disabled\:hover\:cursor-default:hover:disabled{cursor:default}.group\/grid-row:hover .group-hover\/grid-row\:pointer-events-auto{pointer-events:auto}.group\/item:hover .group-hover\/item\:visible,.group:hover .group-hover\:visible{visibility:visible}.group\/grid-row:hover .group-hover\/grid-row\:bg-control-accent-alpha-hover,.group\/item:hover .group-hover\/item\:bg-control-accent-alpha-hover{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.group:hover .group-hover\:text-primary{color:var(--text-primary,#161b2d)}.group\/grid-row:hover .group-hover\/grid-row\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.peer:focus-visible~.peer-focus-visible\:outline{outline-width:1px;outline-style:solid}.peer:focus-visible~.peer-focus-visible\:outline-offset-2{outline-offset:2px}.peer:focus-visible~.peer-focus-visible\:outline-focus{outline-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.has-\[\[data-menu-item-row\]\:focus-visible\]\:outline:has([data-menu-item-row]:focus-visible){outline-width:1px;outline-style:solid}.has-\[\[data-menu-item-row\]\:focus-visible\]\:outline-focus:has([data-menu-item-row]:focus-visible){outline-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.aria-expanded\:bg-control-accent-alpha-hover[aria-expanded=true]{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}.motion-reduce\:hover\:translate-y-0:hover{--tw-translate-y:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}@media (width>=640px){.sm\:inline{display:inline}}@media (width>=768px){.md\:\!h-\[800px\]{height:800px!important}.md\:h-auto{height:auto}.md\:min-h-\[266px\]{min-height:266px}.md\:max-w-\[1200px\]{max-width:1200px}.md\:max-w-\[400px\]{max-width:400px}.md\:max-w-\[800px\]{max-width:800px}.md\:p-4{padding:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (width<=1279px){.mobile\:\!w-full{width:100%!important}}@media (width>=1280px){.desktop\:\!max-h-\[693px\]{max-height:693px!important}.desktop\:p-4{padding:1rem}}.rtl\:scale-x-\[-1\]:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>div\]\:\!border-0>div{border-width:0!important}.\[\&_\.w-md-editor\]\:max-h-\[var\(--resizable-field-max-height\,70vh\)\] .w-md-editor{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}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}
2
- /*$vite$: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-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\:\!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
@@ -70,6 +70,53 @@ export declare interface AnnotationTarget {
70
70
  selector?: AnnotationSelector;
71
71
  }
72
72
 
73
+ /**
74
+ * A single application → grouped visualizer mapping from the
75
+ * `APPLICATION_VISUALIZERS` registry. Field semantics are fixed by
76
+ * already-deployed visualizer applications and operator configurations
77
+ * carried over from legacy Chat 0.x, which is why `contentType` is optional
78
+ * here while `CustomVisualizer.contentType` is required.
79
+ */
80
+ export declare interface ApplicationVisualizer {
81
+ /**
82
+ * The postMessage protocol namespace, NOT a display label. Every message
83
+ * exchanged with the iframe is prefixed `${title}/…`, and the iframe-side
84
+ * visualizer application must be constructed with this identical string
85
+ * as its `appName`. A mismatch is a silent failure — the iframe loads but
86
+ * never receives data. Also used as the inline frame's header text.
87
+ */
88
+ title: string;
89
+ /** Human-readable description of the visualizer. Accepted for operator-configuration parity; not consumed by host logic. */
90
+ description?: string;
91
+ /** Icon URL or identifier for the visualizer. Accepted for operator-configuration parity; not consumed by host logic. */
92
+ icon?: string;
93
+ /**
94
+ * Comma-separated list of MIME types this entry claims (e.g.
95
+ * `'application/vnd.plotly.v1+json'` or
96
+ * `'application/vnd.plotly.v1+json, application/vnd.vega.v5+json'`).
97
+ * Stored verbatim; splitting happens at lookup time. When omitted, the
98
+ * entry claims every attachment that carries a URL.
99
+ */
100
+ contentType?: string;
101
+ /** Absolute HTTP(S) URL of the visualizer iframe. */
102
+ url: string;
103
+ /** Milliseconds to wait for a `send()` request's `/RESPONSE` before rejecting. Defaults to `10000`. Does NOT bound the initial handshake. */
104
+ requestTimeout?: number;
105
+ /** Suggested initial width of the visualizer surface in pixels. Forwarded as-is in `CustomVisualizerDataLayout`. */
106
+ width?: number;
107
+ /** Suggested initial height of the visualizer surface in pixels. Forwarded as-is in `CustomVisualizerDataLayout`, and used by the host to size the inline frame. */
108
+ height?: number;
109
+ /** Suggested height on mobile viewports in pixels. Forwarded as-is in `CustomVisualizerDataLayout`, and used by the host to size the inline frame on mobile. */
110
+ mobileHeight?: number;
111
+ /** Whether the host should pass auth info to the visualizer. Accepted for operator-configuration parity; inert, because 1.0 auth is server-side and the browser holds no access token. */
112
+ passAuthInfo?: boolean;
113
+ /** Whether the host should pass an explicit access token. Accepted for operator-configuration parity; inert, because 1.0 auth is server-side and the browser holds no access token. */
114
+ passExplicitToken?: boolean;
115
+ }
116
+
117
+ /** The `APPLICATION_VISUALIZERS` registry: application id → grouped visualizer entry. */
118
+ export declare type ApplicationVisualizerRegistry = Record<string, ApplicationVisualizer>;
119
+
73
120
  /** Attachment selected locally by the user before it is sent to the backend. */
74
121
  export declare interface Attachment extends DisplayAttachment {
75
122
  /** The underlying browser `File` object selected by the user. */
@@ -174,6 +221,19 @@ export declare enum CatalogEntityType {
174
221
  Prompt = "PROMPT"
175
222
  }
176
223
 
224
+ export declare const CHAT_SHARED_CLASS: {
225
+ /** The bordered container of a fenced code block. */
226
+ readonly codeBlock: "dial-chat-shared-code-block";
227
+ /** The code block's sticky header, holding the language label and actions. */
228
+ readonly codeBlockHeader: "dial-chat-shared-code-block-header";
229
+ /** The bordered container of a Markdown table. */
230
+ readonly table: "dial-chat-shared-table";
231
+ /** The scrolling box around a Markdown table, which owns its overflow. */
232
+ readonly tableScroll: "dial-chat-shared-table-scroll";
233
+ /** The scrolling box around a display-math block. */
234
+ readonly mathBlock: "dial-chat-shared-math-block";
235
+ };
236
+
177
237
  /** Color theme for syntax highlighting. */
178
238
  export declare enum CodeBlockTheme {
179
239
  /** Dark syntax-highlighting theme. */
@@ -276,6 +336,8 @@ export declare interface ConversationTransferJob {
276
336
  * {@link ConversationTransferJobStatus.Warning}.
277
337
  */
278
338
  warningCode?: ConversationTransferWarningCode;
339
+ /** Untranslated names of skipped attachments, when available for this warning. */
340
+ warningNames?: string[];
279
341
  }
280
342
 
281
343
  /** Lifecycle status of a queued export/import job. */
@@ -1192,6 +1254,24 @@ export declare const getParentFolderPath: (path: string) => string;
1192
1254
  /** Returns the UTF-8 byte length of `str`. */
1193
1255
  export declare const getUtf8ByteLength: (str: string) => number;
1194
1256
 
1257
+ /** A single attachment handed to a grouped visualizer inside `SEND_GROUPED_VISUALIZE_DATA`. */
1258
+ export declare interface GroupedAttachmentItem {
1259
+ /** Absolute URL of the attachment, resolved by the host before sending. */
1260
+ url: string;
1261
+ /** The attachment's own MIME type. */
1262
+ mimeType: string;
1263
+ /** Presentation layout plus the opaque per-attachment payload. */
1264
+ visualizerData: CustomVisualizerData;
1265
+ }
1266
+
1267
+ /** Payload of a `SEND_GROUPED_VISUALIZE_DATA` request: every claimed attachment plus the shared presentation layout. */
1268
+ export declare interface GroupedAttachmentsData {
1269
+ /** One item per claimed attachment, in the message's attachment order. */
1270
+ attachments: GroupedAttachmentItem[];
1271
+ /** Presentation layout hints shared by every item. */
1272
+ layout: CustomVisualizerDataLayout;
1273
+ }
1274
+
1195
1275
  /** Minimal hast shapes this plugin reads and writes. */
1196
1276
  declare interface HastNode {
1197
1277
  type: string;
@@ -1285,7 +1365,7 @@ export declare interface ItemHeaderProps {
1285
1365
  shouldTruncateTitle?: boolean;
1286
1366
  }
1287
1367
 
1288
- export declare const MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME = "[&_.w-md-editor]:max-h-[var(--resizable-field-max-height,70vh)]";
1368
+ export declare const MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:max-h-[var(--resizable-field-max-height,70vh)]";
1289
1369
 
1290
1370
  export declare const MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME = "[&_.wmde-markdown>ol]:list-decimal [&_.wmde-markdown_ul]:list-disc [&_.wmde-markdown_ul_ul]:list-[circle] [&_.wmde-markdown_ul_ul_ul]:list-[square]";
1291
1371
 
@@ -1487,9 +1567,7 @@ export declare interface MarkdownRendererProps {
1487
1567
  export declare const MarkdownTable: FC<MarkdownTableProps>;
1488
1568
 
1489
1569
  export declare interface MarkdownTableActionLabels {
1490
- copyCsvLabel?: string;
1491
- copyTxtLabel?: string;
1492
- copyMarkdownLabel?: string;
1570
+ copyLabel?: string;
1493
1571
  copiedLabel?: string;
1494
1572
  downloadCsvLabel?: string;
1495
1573
  openInCanvasLabel?: string;
@@ -1515,19 +1593,16 @@ export declare interface MarkdownTableColors {
1515
1593
  fade?: string;
1516
1594
  /** Divider color between rows. Defaults to `--stroke-tertiary`. */
1517
1595
  rowDivider?: string;
1518
- /** Background of even-indexed body rows. Defaults to `--bg-layer-base`. */
1519
- rowZebraBackground?: string;
1520
1596
  /** Background of a body row on hover. Defaults to `--bg-control-accent-alpha-hover`. */
1521
1597
  rowHoverBackground?: string;
1522
1598
  }
1523
1599
 
1524
1600
  export declare enum MarkdownTableCopyFormat {
1525
1601
  Csv = "csv",
1526
- Txt = "txt",
1527
1602
  Markdown = "markdown"
1528
1603
  }
1529
1604
 
1530
- /** A table header action rendered as an icon button. */
1605
+ /** A table action rendered as an icon button. */
1531
1606
  export declare interface MarkdownTableHeaderAction {
1532
1607
  /** Stable accessible name and tooltip text. */
1533
1608
  label: string;
package/index.js CHANGED
@@ -1,4 +1,3 @@
1
- /* empty css */
2
1
  import { ConversationTransferErrorCode as e, ConversationTransferJobStatus as t, ConversationTransferSubjectKind as n, ConversationTransferUnitKind as r, ConversationTransferWarningCode as i } from "./models/conversation-transfer.js";
3
2
  import { FilterTab as a } from "./models/conversation-classification.js";
4
3
  import { MessageRating as o, MessageRole as s, RequestStatus as c, StageStatus as l, StatusEvent as u } from "./models/chat.js";
@@ -43,22 +42,23 @@ import { FeaturedChip as Me } from "./components/FeaturedChip/FeaturedChip.js";
43
42
  import { EntityHeader as Ne } from "./components/EntityHeader/EntityHeader.js";
44
43
  import { ResourceSummary as Pe } from "./components/ResourceSummary/ResourceSummary.js";
45
44
  import { TableHeader as Fe } from "./components/MarkdownRenderer/Table/TableHeader.js";
46
- import { useCodeCopy as Ie } from "./hooks/useCodeCopy.js";
47
- import { restrainedSyntaxTheme as Le } from "./components/MarkdownRenderer/CodeBlock/syntax-theme.js";
48
- import { MarkdownCodeBlock as Re } from "./components/MarkdownRenderer/CodeBlock/CodeBlock.js";
49
- import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as ze, MARKDOWN_TABLE_CSV_MIME_TYPE as Be, MarkdownTableCopyFormat as Ve, serializeMarkdownTableRows as He } from "./components/MarkdownRenderer/Table/table-serialization.js";
50
- import { MarkdownTable as Ue } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
51
- import { MarkdownRenderer as We, defaultMarkdownComponents as Ge } from "./components/MarkdownRenderer/MarkdownRenderer.js";
52
- import { COMPACT_MARKDOWN_CLASS_NAMES as Ke, DEFAULT_MARKDOWN_CLASS_NAMES as qe } from "./components/MarkdownRenderer/markdown-class-names.js";
53
- import { MDMessageViewer as Je } from "./components/MarkdownRenderer/MDMessageViewer.js";
54
- import { MarkdownWithPlaceholders as Ye } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
55
- import { useCollapsedText as Xe } from "./hooks/useCollapsedText.js";
56
- import { useAvailableHeightCap as Ze } from "./hooks/useAvailableHeightCap.js";
57
- import { useIsMobile as Qe } from "./hooks/useIsMobile.js";
58
- import { DialFileManagerActionProfile as $e, DialFileManagerVariant as et } from "./file-manager/file-manager-variant.js";
59
- import { getParentFolderPath as tt, isHiddenPath as nt } from "./file-manager/path.js";
60
- import { FileUploadStatus as rt } from "./file-manager/upload-batch.js";
61
- import { useGridEditingScroll as it } from "./file-manager/useGridEditingScroll/useGridEditingScroll.js";
62
- import { OperationLoaderModal as at } from "./file-manager/OperationLoaderModal/OperationLoaderModal.js";
63
- import { UploadProgressModal as ot } from "./file-manager/UploadProgressModal/UploadProgressModal.js";
64
- export { f as AttachmentErrorReason, p as AttachmentType, le as BASE_LG_ICON_PROPS, ue as BASE_MD_ICON_PROPS, Ke 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, De as CopyButton, Oe as CopyIconButton, qe as DEFAULT_MARKDOWN_CLASS_NAMES, ze as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, ye as DESKTOP_BREAKPOINT_PX, be as DESKTOP_MEDIA_QUERY, Ee as DeploymentIcon, $e as DialFileManagerActionProfile, et as DialFileManagerVariant, $ as ENTITY_TYPE_BG_COLOR, ee as ENTITY_TYPE_COLOR, Ne as EntityHeader, je as EntityTypeLabel, Me as FeaturedChip, h as FileExtension, rt as FileUploadStatus, a as FilterTab, de as HIDDEN_FILE, Te as InitialsAvatar, Ae as ItemHeader, pe as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, ge as MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME, Be as MARKDOWN_TABLE_CSV_MIME_TYPE, Je as MDMessageViewer, g as MIMEType, P as MIME_TYPE_AUDIO_PREFIX, F as MIME_TYPE_EXT_MAP, I as MIME_TYPE_WILDCARD, xe as MOBILE_MAX_WIDTH_PX, Se as MOBILE_MEDIA_QUERY, Re as MarkdownCodeBlock, We as MarkdownRenderer, Ue as MarkdownTable, Ve as MarkdownTableCopyFormat, Ye as MarkdownWithPlaceholders, o as MessageRating, s as MessageRole, at as OperationLoaderModal, w as PROHIBITED_CONVERSATION_NAME_CHARS_RE, te as PROMPT_PARAM_DEFAULT_SEPARATOR, ne as PROMPT_PARAM_PATTERN, re as PROMPT_VARIABLE_CLASS_NAME, ke as PanelEmptyState, me as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, he as RESIZABLE_TEXTAREA_CLASS_NAME, c as RequestStatus, Pe as ResourceSummary, d as ResponseFormat, _e as SELECT_LIST_MAX_HEIGHT_CLASS_NAME, ve as SELECT_LIST_MAX_HEIGHT_PX, l as StageStatus, u as StatusEvent, fe as TAG_INPUT_TAG_CLASS_NAME, Fe as TableHeader, ot as UploadProgressModal, K as base64ToBlob, A as buildCssVars, ie as buildPromptParamDefaults, R as copyMarkdownAsRichText, z as copyToClipboard, Ge as defaultMarkdownComponents, q as downloadTextFile, J as ensureDownloadFilename, we as extractInitials, ae as extractPromptParams, U as formatCost, H as formatFileSize, V as formatLastUsed, W as formatPrice, G as formatUnitPrice, ce as generateUUID, v as getAttachmentTypeFromMime, Y as getFileExtensionForLanguage, tt as getParentFolderPath, T as getUtf8ByteLength, y as inferMimeTypeFromPath, x as isAnnotationSelector, L as isAudioTranscriptionSupported, nt as isHiddenPath, j as isStatusMessage, B as markdownToRichTextHtml, k as mergeClasses, M as messageAttachmentToDisplayAttachment, N as messageAttachmentsToDisplayAttachments, S as normalizePersistedHtmlTagAttachmentType, C as normalizeRawAnnotations, Ce as pickAvatarColor, oe as rehypePromptVariables, se as resolvePromptParams, Le as restrainedSyntaxTheme, E as sanitizeConversationName, He as serializeMarkdownTableRows, D as stripTrailingDots, b as stripUrlQueryAndFragment, X as triggerAnchorDownload, Z as triggerBlobDownload, O as truncateToUtf8Bytes, Q as tryBase64ToBytes, Ze as useAvailableHeightCap, Ie as useCodeCopy, Xe as useCollapsedText, it as useGridEditingScroll, Qe as useIsMobile };
45
+ import { CHAT_SHARED_CLASS as Ie } from "./constants/public-class-names.js";
46
+ import { useCodeCopy as Le } from "./hooks/useCodeCopy.js";
47
+ import { restrainedSyntaxTheme as Re } from "./components/MarkdownRenderer/CodeBlock/syntax-theme.js";
48
+ import { MarkdownCodeBlock as ze } from "./components/MarkdownRenderer/CodeBlock/CodeBlock.js";
49
+ import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as Be, MARKDOWN_TABLE_CSV_MIME_TYPE as Ve, MarkdownTableCopyFormat as He, serializeMarkdownTableRows as Ue } from "./components/MarkdownRenderer/Table/table-serialization.js";
50
+ import { MarkdownTable as We } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
51
+ import { MarkdownRenderer as Ge, defaultMarkdownComponents as Ke } from "./components/MarkdownRenderer/MarkdownRenderer.js";
52
+ import { COMPACT_MARKDOWN_CLASS_NAMES as qe, DEFAULT_MARKDOWN_CLASS_NAMES as Je } from "./components/MarkdownRenderer/markdown-class-names.js";
53
+ import { MDMessageViewer as Ye } from "./components/MarkdownRenderer/MDMessageViewer.js";
54
+ import { MarkdownWithPlaceholders as Xe } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
55
+ import { useCollapsedText as Ze } from "./hooks/useCollapsedText.js";
56
+ import { useAvailableHeightCap as Qe } from "./hooks/useAvailableHeightCap.js";
57
+ import { useIsMobile as $e } from "./hooks/useIsMobile.js";
58
+ import { DialFileManagerActionProfile as et, DialFileManagerVariant as tt } from "./file-manager/file-manager-variant.js";
59
+ import { getParentFolderPath as nt, isHiddenPath as rt } from "./file-manager/path.js";
60
+ import { FileUploadStatus as it } from "./file-manager/upload-batch.js";
61
+ import { useGridEditingScroll as at } from "./file-manager/useGridEditingScroll/useGridEditingScroll.js";
62
+ import { OperationLoaderModal as ot } from "./file-manager/OperationLoaderModal/OperationLoaderModal.js";
63
+ import { UploadProgressModal as st } from "./file-manager/UploadProgressModal/UploadProgressModal.js";
64
+ export { f as AttachmentErrorReason, p as AttachmentType, le as BASE_LG_ICON_PROPS, ue as BASE_MD_ICON_PROPS, Ie as CHAT_SHARED_CLASS, qe 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, De as CopyButton, Oe as CopyIconButton, Je as DEFAULT_MARKDOWN_CLASS_NAMES, Be as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, ye as DESKTOP_BREAKPOINT_PX, be as DESKTOP_MEDIA_QUERY, Ee as DeploymentIcon, et as DialFileManagerActionProfile, tt as DialFileManagerVariant, $ as ENTITY_TYPE_BG_COLOR, ee as ENTITY_TYPE_COLOR, Ne as EntityHeader, je as EntityTypeLabel, Me as FeaturedChip, h as FileExtension, it as FileUploadStatus, a as FilterTab, de as HIDDEN_FILE, Te as InitialsAvatar, Ae as ItemHeader, pe as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, ge as MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME, Ve as MARKDOWN_TABLE_CSV_MIME_TYPE, Ye as MDMessageViewer, g as MIMEType, P as MIME_TYPE_AUDIO_PREFIX, F as MIME_TYPE_EXT_MAP, I as MIME_TYPE_WILDCARD, xe as MOBILE_MAX_WIDTH_PX, Se as MOBILE_MEDIA_QUERY, ze as MarkdownCodeBlock, Ge as MarkdownRenderer, We as MarkdownTable, He as MarkdownTableCopyFormat, Xe as MarkdownWithPlaceholders, o as MessageRating, s as MessageRole, ot as OperationLoaderModal, w as PROHIBITED_CONVERSATION_NAME_CHARS_RE, te as PROMPT_PARAM_DEFAULT_SEPARATOR, ne as PROMPT_PARAM_PATTERN, re as PROMPT_VARIABLE_CLASS_NAME, ke as PanelEmptyState, me as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, he as RESIZABLE_TEXTAREA_CLASS_NAME, c as RequestStatus, Pe as ResourceSummary, d as ResponseFormat, _e as SELECT_LIST_MAX_HEIGHT_CLASS_NAME, ve as SELECT_LIST_MAX_HEIGHT_PX, l as StageStatus, u as StatusEvent, fe as TAG_INPUT_TAG_CLASS_NAME, Fe as TableHeader, st as UploadProgressModal, K as base64ToBlob, A as buildCssVars, ie as buildPromptParamDefaults, R as copyMarkdownAsRichText, z as copyToClipboard, Ke as defaultMarkdownComponents, q as downloadTextFile, J as ensureDownloadFilename, we as extractInitials, ae as extractPromptParams, U as formatCost, H as formatFileSize, V as formatLastUsed, W as formatPrice, G as formatUnitPrice, ce as generateUUID, v as getAttachmentTypeFromMime, Y as getFileExtensionForLanguage, nt as getParentFolderPath, T as getUtf8ByteLength, y as inferMimeTypeFromPath, x as isAnnotationSelector, L as isAudioTranscriptionSupported, rt as isHiddenPath, j as isStatusMessage, B as markdownToRichTextHtml, k as mergeClasses, M as messageAttachmentToDisplayAttachment, N as messageAttachmentsToDisplayAttachments, S as normalizePersistedHtmlTagAttachmentType, C as normalizeRawAnnotations, Ce as pickAvatarColor, oe as rehypePromptVariables, se as resolvePromptParams, Re as restrainedSyntaxTheme, E as sanitizeConversationName, Ue as serializeMarkdownTableRows, D as stripTrailingDots, b as stripUrlQueryAndFragment, X as triggerAnchorDownload, Z as triggerBlobDownload, O as truncateToUtf8Bytes, Q as tryBase64ToBytes, Qe as useAvailableHeightCap, Le as useCodeCopy, Ze as useCollapsedText, at as useGridEditingScroll, $e as useIsMobile };
package/markdown.d.ts CHANGED
@@ -4,6 +4,19 @@ import { FC } from 'react';
4
4
  import { Options } from 'react-markdown';
5
5
  import { ReactNode } from 'react';
6
6
 
7
+ export declare const CHAT_SHARED_CLASS: {
8
+ /** The bordered container of a fenced code block. */
9
+ readonly codeBlock: "dial-chat-shared-code-block";
10
+ /** The code block's sticky header, holding the language label and actions. */
11
+ readonly codeBlockHeader: "dial-chat-shared-code-block-header";
12
+ /** The bordered container of a Markdown table. */
13
+ readonly table: "dial-chat-shared-table";
14
+ /** The scrolling box around a Markdown table, which owns its overflow. */
15
+ readonly tableScroll: "dial-chat-shared-table-scroll";
16
+ /** The scrolling box around a display-math block. */
17
+ readonly mathBlock: "dial-chat-shared-math-block";
18
+ };
19
+
7
20
  /** Color theme for syntax highlighting. */
8
21
  declare enum CodeBlockTheme {
9
22
  /** Dark syntax-highlighting theme. */
@@ -225,9 +238,7 @@ export declare interface MarkdownRendererProps {
225
238
  export declare const MarkdownTable: FC<MarkdownTableProps>;
226
239
 
227
240
  export declare interface MarkdownTableActionLabels {
228
- copyCsvLabel?: string;
229
- copyTxtLabel?: string;
230
- copyMarkdownLabel?: string;
241
+ copyLabel?: string;
231
242
  copiedLabel?: string;
232
243
  downloadCsvLabel?: string;
233
244
  openInCanvasLabel?: string;
@@ -253,19 +264,16 @@ export declare interface MarkdownTableColors {
253
264
  fade?: string;
254
265
  /** Divider color between rows. Defaults to `--stroke-tertiary`. */
255
266
  rowDivider?: string;
256
- /** Background of even-indexed body rows. Defaults to `--bg-layer-base`. */
257
- rowZebraBackground?: string;
258
267
  /** Background of a body row on hover. Defaults to `--bg-control-accent-alpha-hover`. */
259
268
  rowHoverBackground?: string;
260
269
  }
261
270
 
262
271
  export declare enum MarkdownTableCopyFormat {
263
272
  Csv = "csv",
264
- Txt = "txt",
265
273
  Markdown = "markdown"
266
274
  }
267
275
 
268
- /** A table header action rendered as an icon button. */
276
+ /** A table action rendered as an icon button. */
269
277
  export declare interface MarkdownTableHeaderAction {
270
278
  /** Stable accessible name and tooltip text. */
271
279
  label: string;
package/markdown.js CHANGED
@@ -1,11 +1,12 @@
1
- import { useCodeCopy as e } from "./hooks/useCodeCopy.js";
2
- import { restrainedSyntaxTheme as t } from "./components/MarkdownRenderer/CodeBlock/syntax-theme.js";
3
- import { MarkdownCodeBlock as n } from "./components/MarkdownRenderer/CodeBlock/CodeBlock.js";
4
- import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as r, MARKDOWN_TABLE_CSV_MIME_TYPE as i, MarkdownTableCopyFormat as a, serializeMarkdownTableRows as o } from "./components/MarkdownRenderer/Table/table-serialization.js";
5
- import { MarkdownTable as s } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
6
- import { MarkdownRenderer as c, defaultMarkdownComponents as l } from "./components/MarkdownRenderer/MarkdownRenderer.js";
7
- import { COMPACT_MARKDOWN_CLASS_NAMES as u, DEFAULT_MARKDOWN_CLASS_NAMES as d } from "./components/MarkdownRenderer/markdown-class-names.js";
8
- import { MDMessageViewer as f } from "./components/MarkdownRenderer/MDMessageViewer.js";
9
- import { MarkdownWithPlaceholders as p } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
10
- import { useCollapsedText as m } from "./hooks/useCollapsedText.js";
11
- export { u as COMPACT_MARKDOWN_CLASS_NAMES, d as DEFAULT_MARKDOWN_CLASS_NAMES, r as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, i as MARKDOWN_TABLE_CSV_MIME_TYPE, f as MDMessageViewer, n as MarkdownCodeBlock, c as MarkdownRenderer, s as MarkdownTable, a as MarkdownTableCopyFormat, p as MarkdownWithPlaceholders, l as defaultMarkdownComponents, t as restrainedSyntaxTheme, o as serializeMarkdownTableRows, e as useCodeCopy, m as useCollapsedText };
1
+ import { CHAT_SHARED_CLASS as e } from "./constants/public-class-names.js";
2
+ import { useCodeCopy as t } from "./hooks/useCodeCopy.js";
3
+ import { restrainedSyntaxTheme as n } from "./components/MarkdownRenderer/CodeBlock/syntax-theme.js";
4
+ import { MarkdownCodeBlock as r } from "./components/MarkdownRenderer/CodeBlock/CodeBlock.js";
5
+ import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as i, MARKDOWN_TABLE_CSV_MIME_TYPE as a, MarkdownTableCopyFormat as o, serializeMarkdownTableRows as s } from "./components/MarkdownRenderer/Table/table-serialization.js";
6
+ import { MarkdownTable as c } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
7
+ import { MarkdownRenderer as l, defaultMarkdownComponents as u } from "./components/MarkdownRenderer/MarkdownRenderer.js";
8
+ import { COMPACT_MARKDOWN_CLASS_NAMES as d, DEFAULT_MARKDOWN_CLASS_NAMES as f } from "./components/MarkdownRenderer/markdown-class-names.js";
9
+ import { MDMessageViewer as p } from "./components/MarkdownRenderer/MDMessageViewer.js";
10
+ import { MarkdownWithPlaceholders as m } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
11
+ import { useCollapsedText as h } from "./hooks/useCollapsedText.js";
12
+ 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, p as MDMessageViewer, r as MarkdownCodeBlock, l as MarkdownRenderer, c as MarkdownTable, o as MarkdownTableCopyFormat, m as MarkdownWithPlaceholders, u as defaultMarkdownComponents, n as restrainedSyntaxTheme, s as serializeMarkdownTableRows, t as useCodeCopy, h as useCollapsedText };
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.2.0-dev.6",
4
+ "version": "1.2.0-dev.61",
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.14.2",
36
- "@epam/ai-dial-react-file-manager": "^0.2.0",
35
+ "@epam/ai-dial-ui-kit": "^0.15.0-dev.9",
36
+ "@epam/ai-dial-react-file-manager": "^0.3.0-dev.2",
37
37
  "ag-grid-community": "^35.3.0"
38
38
  },
39
39
  "peerDependenciesMeta": {