@epam/ai-dial-conversation-messages 1.3.0-dev.223 → 1.3.0-dev.225

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MessageActions.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions/MessageActions.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAE,EAAE,EAAyB,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKxE,uIAAuI;AACvI,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA8OlD,CAAC"}
1
+ {"version":3,"file":"MessageActions.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions/MessageActions.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAE,EAAE,EAA4C,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKxE,uIAAuI;AACvI,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAoQlD,CAAC"}
package/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { AttachmentType as e, CopyIconButton as t, DeploymentIcon as n, MDMessageViewer as r, MessageRating as i, MessageRole as a, ResponseFormat as o, buildCssVars as s, buildInlineSegmentSource as c, createInlineSegmentComponents as l, createRehypeInlineSegments as u, mergeClasses as d, useCollapsedText as f } from "@epam/ai-dial-chat-shared";
2
2
  import { AttachmentGroup as p } from "@epam/ai-dial-attachment-input";
3
3
  import { Button as m, ButtonVariant as h, DIAL_ICON_SIZE as g, DIAL_KIT_ICON_STROKE as _, ElementSize as v, GhostIconButton as y, InfoMessageNotification as b, LinkButton as x, NeutralButton as S, Tooltip as C } from "@epam/ai-dial-ui-kit";
4
- import { useCallback as w, useEffect as T, useId as ee, useLayoutEffect as E, useMemo as D, useRef as O, useState as k } from "react";
5
- import { IconArrowBackUp as A, IconChevronDown as te, IconChevronUp as ne, IconMarkdown as re, IconPencilMinus as ie, IconRefresh as ae, IconThumbDown as j, IconThumbDownFilled as M, IconThumbUp as oe, IconThumbUpFilled as se, IconTrashX as ce } from "@tabler/icons-react";
4
+ import { useCallback as w, useEffect as T, useId as ee, useLayoutEffect as E, useMemo as D, useRef as te, useState as O } from "react";
5
+ import { IconArrowBackUp as k, IconChevronDown as A, IconChevronUp as j, IconMarkdown as ne, IconPencilMinus as re, IconRefresh as ie, IconThumbDown as M, IconThumbDownFilled as ae, IconThumbUp as oe, IconThumbUpFilled as se, IconTrashX as ce } from "@tabler/icons-react";
6
6
  import { Fragment as N, jsx as P, jsxs as F } from "react/jsx-runtime";
7
7
  import { createPortal as I } from "react-dom";
8
8
  //#region src/constants/public-class-names.ts
9
- var le = {
9
+ var L = {
10
10
  userBubble: "dial-cm-user-bubble",
11
11
  assistantContent: "dial-cm-assistant-content"
12
- }, L = 4, R = (e) => {
13
- let t = O(null), [n, r] = k(0);
12
+ }, R = 4, z = (e) => {
13
+ let t = te(null), [n, r] = O(0);
14
14
  return T(() => {
15
15
  if (!e) return;
16
16
  let n = t.current;
@@ -22,78 +22,87 @@ var le = {
22
22
  return i.observe(n), () => i.disconnect();
23
23
  }, [e]), {
24
24
  slotRef: t,
25
- firstLineIndent: e ? `calc(${n}px + ${L}px)` : void 0
25
+ firstLineIndent: e ? `calc(${n}px + ${R}px)` : void 0
26
26
  };
27
- }, ue = [
27
+ }, le = [
28
28
  "href",
29
29
  "src",
30
30
  "alt",
31
31
  "colspan",
32
32
  "rowspan",
33
33
  "start"
34
- ], de = /* @__PURE__ */ new Set([
34
+ ], B = /* @__PURE__ */ new Set([
35
35
  "pre",
36
36
  "pre-wrap",
37
37
  "pre-line",
38
38
  "break-spaces"
39
- ]), z = (e) => {
39
+ ]), V = (e) => {
40
40
  let t = document.createElement(e.tagName.toLowerCase());
41
- ue.forEach((n) => {
41
+ le.forEach((n) => {
42
42
  let r = e.getAttribute(n);
43
43
  r !== null && t.setAttribute(n, r);
44
44
  });
45
45
  let { whiteSpace: n } = window.getComputedStyle(e);
46
- return de.has(n) && (t.style.whiteSpace = "pre-wrap"), t;
47
- }, fe = (e) => e instanceof SVGElement || window.getComputedStyle(e).display === "none", B = (e, t) => {
46
+ return B.has(n) && (t.style.whiteSpace = "pre-wrap"), t;
47
+ }, H = (e) => e instanceof SVGElement || window.getComputedStyle(e).display === "none", U = (e, t) => {
48
48
  if (!t.intersectsNode(e)) return null;
49
49
  if (e.nodeType === Node.TEXT_NODE) {
50
50
  let n = e.data, r = e === t.startContainer ? t.startOffset : 0, i = e === t.endContainer ? t.endOffset : n.length;
51
51
  return document.createTextNode(n.slice(r, i));
52
52
  }
53
- if (!(e instanceof Element) || fe(e)) return null;
54
- let n = z(e);
53
+ if (!(e instanceof Element) || H(e)) return null;
54
+ let n = V(e);
55
55
  return e.childNodes.forEach((e) => {
56
- let r = B(e, t);
56
+ let r = U(e, t);
57
57
  r && n.appendChild(r);
58
58
  }), n;
59
- }, pe = (e, t, n) => {
59
+ }, ue = (e, t, n) => {
60
60
  let r = e, i = t;
61
61
  for (; i && i !== n && n.contains(i);) {
62
- let e = z(i);
62
+ let e = V(i);
63
63
  e.appendChild(r), r = e, i = i.parentElement;
64
64
  }
65
65
  return r;
66
- }, me = (e, t) => {
66
+ }, de = (e, t) => {
67
67
  let n = e.commonAncestorContainer, r = n instanceof Element ? n : n.parentElement;
68
68
  if (!r) return null;
69
- let i = B(r, e);
70
- return i ? pe(i, r.parentElement, t) : null;
71
- }, he = (e) => {
69
+ let i = U(r, e);
70
+ return i ? ue(i, r.parentElement, t) : null;
71
+ }, fe = (e) => {
72
72
  let t = window.getSelection();
73
73
  if (!t || t.isCollapsed || t.rangeCount === 0 || !e.clipboardData) return;
74
74
  let n = t.toString();
75
75
  if (!n) return;
76
76
  let r = document.createElement("div");
77
77
  for (let n = 0; n < t.rangeCount; n++) {
78
- let i = me(t.getRangeAt(n), e.currentTarget);
78
+ let i = de(t.getRangeAt(n), e.currentTarget);
79
79
  i && r.appendChild(i);
80
80
  }
81
81
  e.clipboardData.setData("text/html", r.innerHTML), e.clipboardData.setData("text/plain", n), e.preventDefault();
82
- }, V = { activeRating: "_activeRating_ygoee_1" }, H = 2e3, ge = ({ role: e = a.User, onEdit: n, onEditHover: r, onDelete: o, onRegenerate: c, onCopy: l, onCopyMarkdown: u, onLike: f, onDislike: p, activeRating: m, isAlwaysVisible: h, leadingContent: b, trailingContent: x, isDisabled: S = !1, className: C, labels: T, colors: ee }) => {
83
- let { tooltips: E, ariaLabels: D } = T ?? {}, [O, A] = k(null), [te, ne] = k(""), I = n != null || o != null || c != null || l != null || u != null || f != null || p != null || b != null || x != null, le = s({ "--ma-active-rating-text": ee?.activeRatingText }), L = w(() => {
84
- l?.(), A("copy"), ne(e === a.User ? D?.copiedMessageStatus ?? "Message copied to clipboard" : D?.copiedStatus ?? "Copied to clipboard"), setTimeout(() => A(null), H);
82
+ }, W = { activeRating: "_activeRating_ygoee_1" }, pe = 2e3, me = ({ role: e = a.User, onEdit: n, onEditHover: r, onDelete: o, onRegenerate: c, onCopy: l, onCopyMarkdown: u, onLike: f, onDislike: p, activeRating: m, isAlwaysVisible: h, leadingContent: b, trailingContent: x, isDisabled: S = !1, className: C, labels: ee, colors: E }) => {
83
+ let { tooltips: D, ariaLabels: k } = ee ?? {}, [A, j] = O(null), [I, L] = O(""), R = te(void 0);
84
+ T(() => () => clearTimeout(R.current), []);
85
+ let z = w(() => {
86
+ clearTimeout(R.current), R.current = setTimeout(() => j(null), pe);
87
+ }, []), le = n != null || o != null || c != null || l != null || u != null || f != null || p != null || b != null || x != null, B = s({ "--ma-active-rating-text": E?.activeRatingText }), V = w(() => {
88
+ l?.(), j("copy"), L(e === a.User ? k?.copiedMessageStatus ?? "Message copied to clipboard" : k?.copiedStatus ?? "Copied to clipboard"), z();
85
89
  }, [
86
90
  l,
87
91
  e,
88
- D?.copiedStatus,
89
- D?.copiedMessageStatus
90
- ]), R = w(() => {
91
- u?.(), A("markdown"), ne(D?.copiedMarkdownStatus ?? "Copied as Markdown to clipboard"), setTimeout(() => A(null), H);
92
- }, [u, D?.copiedMarkdownStatus]);
93
- return I ? /* @__PURE__ */ F("div", {
92
+ k?.copiedStatus,
93
+ k?.copiedMessageStatus,
94
+ z
95
+ ]), H = w(() => {
96
+ u?.(), j("markdown"), L(k?.copiedMarkdownStatus ?? "Copied as Markdown to clipboard"), z();
97
+ }, [
98
+ u,
99
+ k?.copiedMarkdownStatus,
100
+ z
101
+ ]);
102
+ return le ? /* @__PURE__ */ F("div", {
94
103
  role: "toolbar",
95
- "aria-label": D?.actionsGroup ?? "Message actions",
96
- style: le,
104
+ "aria-label": k?.actionsGroup ?? "Message actions",
105
+ style: B,
97
106
  className: d("flex items-center gap-1", !h && "opacity-0 group-hover:opacity-100", C),
98
107
  children: [
99
108
  b,
@@ -101,28 +110,28 @@ var le = {
101
110
  role: "status",
102
111
  "aria-live": "polite",
103
112
  className: "sr-only",
104
- children: te
113
+ children: I
105
114
  }),
106
115
  e === a.User ? /* @__PURE__ */ F(N, { children: [
107
116
  l && /* @__PURE__ */ P(t, {
108
117
  iconSize: g.SM,
109
- onClick: L,
118
+ onClick: V,
110
119
  size: v.Small,
111
- isCopied: O === "copy",
112
- copyLabel: E?.copyMessage ?? "Copy message",
113
- copiedLabel: E?.copied ?? "Copied!",
114
- ariaLabel: D?.copyMessage ?? "Copy message",
120
+ isCopied: A === "copy",
121
+ copyLabel: D?.copyMessage ?? "Copy message",
122
+ copiedLabel: D?.copied ?? "Copied!",
123
+ ariaLabel: k?.copyMessage ?? "Copy message",
115
124
  isDisabled: S
116
125
  }),
117
126
  n && /* @__PURE__ */ P(y, {
118
- icon: /* @__PURE__ */ P(ie, {
127
+ icon: /* @__PURE__ */ P(re, {
119
128
  size: g.SM,
120
129
  "aria-hidden": !0,
121
130
  stroke: _
122
131
  }),
123
132
  size: v.Small,
124
- "aria-label": D?.editMessage ?? "Edit message",
125
- tooltipProps: { tooltip: E?.edit ?? "Edit" },
133
+ "aria-label": k?.editMessage ?? "Edit message",
134
+ tooltipProps: { tooltip: D?.edit ?? "Edit" },
126
135
  onClick: n,
127
136
  onMouseEnter: r,
128
137
  onFocus: r,
@@ -135,52 +144,52 @@ var le = {
135
144
  stroke: _
136
145
  }),
137
146
  size: v.Small,
138
- "aria-label": D?.deleteMessage ?? "Delete message",
139
- tooltipProps: { tooltip: E?.delete ?? "Delete" },
147
+ "aria-label": k?.deleteMessage ?? "Delete message",
148
+ tooltipProps: { tooltip: D?.delete ?? "Delete" },
140
149
  onClick: o,
141
150
  disabled: S
142
151
  })
143
152
  ] }) : /* @__PURE__ */ F(N, { children: [
144
153
  c && /* @__PURE__ */ P(y, {
145
- icon: /* @__PURE__ */ P(ae, {
154
+ icon: /* @__PURE__ */ P(ie, {
146
155
  size: g.SM,
147
156
  "aria-hidden": !0,
148
157
  stroke: _
149
158
  }),
150
159
  size: v.Small,
151
- "aria-label": D?.regenerateResponse ?? "Regenerate response",
152
- tooltipProps: { tooltip: E?.regenerate ?? "Regenerate" },
160
+ "aria-label": k?.regenerateResponse ?? "Regenerate response",
161
+ tooltipProps: { tooltip: D?.regenerate ?? "Regenerate" },
153
162
  onClick: c,
154
163
  disabled: S
155
164
  }),
156
165
  l && /* @__PURE__ */ P(t, {
157
166
  iconSize: g.SM,
158
- onClick: L,
167
+ onClick: V,
159
168
  size: v.Small,
160
- isCopied: O === "copy",
161
- copyLabel: E?.copy ?? "Copy",
162
- copiedLabel: E?.copied ?? "Copied!",
163
- ariaLabel: D?.copyResponse ?? "Copy response",
169
+ isCopied: A === "copy",
170
+ copyLabel: D?.copy ?? "Copy",
171
+ copiedLabel: D?.copied ?? "Copied!",
172
+ ariaLabel: k?.copyResponse ?? "Copy response",
164
173
  isDisabled: S
165
174
  }),
166
175
  u && /* @__PURE__ */ P(t, {
167
176
  iconSize: g.SM,
168
- onClick: R,
177
+ onClick: H,
169
178
  size: v.Small,
170
- isCopied: O === "markdown",
171
- iconCopy: /* @__PURE__ */ P(re, {
179
+ isCopied: A === "markdown",
180
+ iconCopy: /* @__PURE__ */ P(ne, {
172
181
  size: g.SM,
173
182
  "aria-hidden": !0,
174
183
  stroke: _
175
184
  }),
176
- copyLabel: E?.copyMarkdown ?? "Copy as Markdown",
177
- copiedLabel: E?.copiedMarkdown ?? "Copied!",
178
- ariaLabel: D?.copyAsMarkdown ?? "Copy as markdown",
185
+ copyLabel: D?.copyMarkdown ?? "Copy as Markdown",
186
+ copiedLabel: D?.copiedMarkdown ?? "Copied!",
187
+ ariaLabel: k?.copyAsMarkdown ?? "Copy as markdown",
179
188
  isDisabled: S
180
189
  }),
181
190
  f && /* @__PURE__ */ P(y, {
182
191
  icon: m === i.Like ? /* @__PURE__ */ P(se, {
183
- className: V.activeRating,
192
+ className: W.activeRating,
184
193
  size: g.SM,
185
194
  "aria-hidden": !0
186
195
  }) : /* @__PURE__ */ P(oe, {
@@ -189,26 +198,26 @@ var le = {
189
198
  stroke: _
190
199
  }),
191
200
  size: v.Small,
192
- "aria-label": D?.likeResponse ?? "Like response",
201
+ "aria-label": k?.likeResponse ?? "Like response",
193
202
  "aria-pressed": m === i.Like,
194
- tooltipProps: { tooltip: E?.like ?? "Like" },
203
+ tooltipProps: { tooltip: D?.like ?? "Like" },
195
204
  onClick: f,
196
205
  disabled: S
197
206
  }),
198
207
  p && /* @__PURE__ */ P(y, {
199
- icon: m === i.Dislike ? /* @__PURE__ */ P(M, {
200
- className: V.activeRating,
208
+ icon: m === i.Dislike ? /* @__PURE__ */ P(ae, {
209
+ className: W.activeRating,
201
210
  size: g.SM,
202
211
  "aria-hidden": !0
203
- }) : /* @__PURE__ */ P(j, {
212
+ }) : /* @__PURE__ */ P(M, {
204
213
  size: g.SM,
205
214
  "aria-hidden": !0,
206
215
  stroke: _
207
216
  }),
208
217
  size: v.Small,
209
- "aria-label": D?.dislikeResponse ?? "Dislike response",
218
+ "aria-label": k?.dislikeResponse ?? "Dislike response",
210
219
  "aria-pressed": m === i.Dislike,
211
- tooltipProps: { tooltip: E?.dislike ?? "Dislike" },
220
+ tooltipProps: { tooltip: D?.dislike ?? "Dislike" },
212
221
  onClick: p,
213
222
  disabled: S
214
223
  })
@@ -216,117 +225,117 @@ var le = {
216
225
  x
217
226
  ]
218
227
  }) : null;
219
- }, U = (e) => {
220
- let [t, n] = k(() => /* @__PURE__ */ new Date());
228
+ }, G = (e) => {
229
+ let [t, n] = O(() => /* @__PURE__ */ new Date());
221
230
  return T(() => {
222
231
  let t = setInterval(() => n(/* @__PURE__ */ new Date()), e);
223
232
  return () => clearInterval(t);
224
233
  }, [e]), t;
225
- }, W = /* @__PURE__ */ function(e) {
234
+ }, K = /* @__PURE__ */ function(e) {
226
235
  return e.Today = "today", e.Yesterday = "yesterday", e.Absolute = "absolute", e;
227
- }({}), G = {
236
+ }({}), q = {
228
237
  hour: "numeric",
229
238
  minute: "2-digit"
230
- }, K = {
239
+ }, J = {
231
240
  year: "numeric",
232
241
  month: "short",
233
242
  day: "numeric",
234
- ...G
235
- }, q = 60, _e = 3600, J = 24 * _e, ve = [
236
- ["year", 365 * J],
237
- ["month", 30 * J],
238
- ["week", 7 * J],
239
- ["day", J],
240
- ["hour", _e],
241
- ["minute", q]
242
- ], Y = (e, t) => e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate(), ye = (e) => {
243
+ ...q
244
+ }, he = 60, ge = 3600, Y = 24 * ge, _e = [
245
+ ["year", 365 * Y],
246
+ ["month", 30 * Y],
247
+ ["week", 7 * Y],
248
+ ["day", Y],
249
+ ["hour", ge],
250
+ ["minute", he]
251
+ ], X = (e, t) => e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate(), ve = (e) => {
243
252
  if (!e) return null;
244
253
  let t = new Date(e);
245
254
  return Number.isNaN(t.getTime()) ? null : t;
246
- }, be = (e, t) => new Intl.DateTimeFormat(t, K).format(e), X = (e, t, n) => {
255
+ }, ye = (e, t) => new Intl.DateTimeFormat(t, J).format(e), Z = (e, t, n) => {
247
256
  let r = new Date(t.getFullYear(), t.getMonth(), t.getDate() - 1);
248
- return Y(e, t) ? {
249
- kind: W.Today,
250
- text: new Intl.DateTimeFormat(n, G).format(e)
251
- } : Y(e, r) ? {
252
- kind: W.Yesterday,
253
- text: new Intl.DateTimeFormat(n, G).format(e)
257
+ return X(e, t) ? {
258
+ kind: K.Today,
259
+ text: new Intl.DateTimeFormat(n, q).format(e)
260
+ } : X(e, r) ? {
261
+ kind: K.Yesterday,
262
+ text: new Intl.DateTimeFormat(n, q).format(e)
254
263
  } : {
255
- kind: W.Absolute,
256
- text: be(e, n)
264
+ kind: K.Absolute,
265
+ text: ye(e, n)
257
266
  };
258
- }, xe = (e, t, n) => {
267
+ }, be = (e, t, n) => {
259
268
  let r = new Intl.RelativeTimeFormat(n, { numeric: "auto" }), i = (t.getTime() - e.getTime()) / 1e3;
260
- for (let [e, t] of ve) {
269
+ for (let [e, t] of _e) {
261
270
  let n = Math.floor(i / t);
262
271
  if (n >= 1) return r.format(-n, e);
263
272
  }
264
273
  return r.format(0, "second");
265
- }, Se = 6e4, Z = "opacity-0 transition-opacity group-hover/message:opacity-100 group-focus-within/message:opacity-100 [@media(hover:none)]:opacity-100", Ce = ({ timestamp: e, locale: t, className: n = "dial-small-text text-secondary" }) => {
266
- let r = U(Se), i = ye(e);
274
+ }, xe = 6e4, Q = "opacity-0 transition-opacity group-hover/message:opacity-100 group-focus-within/message:opacity-100 [@media(hover:none)]:opacity-100", Se = ({ timestamp: e, locale: t, className: n = "dial-small-text text-secondary" }) => {
275
+ let r = G(xe), i = ve(e);
267
276
  return i == null ? null : /* @__PURE__ */ P(C, {
268
- tooltip: be(i, t),
277
+ tooltip: ye(i, t),
269
278
  asChild: !0,
270
279
  children: /* @__PURE__ */ P("time", {
271
280
  dateTime: e,
272
281
  tabIndex: 0,
273
- className: d("px-1 whitespace-nowrap", n, Z),
274
- children: xe(i, r, t)
282
+ className: d("px-1 whitespace-nowrap", n, Q),
283
+ children: be(i, r, t)
275
284
  })
276
285
  });
277
- }, Q = {
286
+ }, $ = {
278
287
  userBubble: "_userBubble_17fln_1",
279
288
  collapsibleText: "_collapsibleText_17fln_6",
280
289
  expandedText: "_expandedText_17fln_11",
281
290
  collapsedText: "_collapsedText_17fln_15",
282
291
  startersDivider: "_startersDivider_17fln_31",
283
292
  text: "_text_17fln_35"
284
- }, we = "[&>.cm-bubble-markdown>div>*:first-child]:indent-[var(--cm-bubble-first-line-indent,0px)]", Te = ({ text: t, contentRef: i, styles: c, actions: l, hasAlwaysVisibleActions: u, timestamp: f, locale: m, isStreaming: h, attachments: g, beforeContent: _, responseFormat: v, afterContent: y, hasThinkingPlaceholder: b = !0, starters: x, onSelectStarter: C, deploymentIconUrl: w, deploymentDisplayName: T, markdownComponents: ee, markdownClassNames: E, markdownUrlTransform: O, onAttachmentClick: k, onDownloadAll: A, isAttachmentDownloadable: te, onAttachmentRetry: ne, codeBlockTheme: re, tableOnOpenInCanvas: ie, labels: ae, selectedAttachmentId: j }) => {
285
- let { colors: M, typography: oe, className: se, bubbleClassName: ce, timestampClassName: I } = c ?? {}, L = f == null ? void 0 : /* @__PURE__ */ P(Ce, {
293
+ }, Ce = "[&>.cm-bubble-markdown>div>*:first-child]:indent-[var(--cm-bubble-first-line-indent,0px)]", we = ({ text: t, contentRef: i, styles: c, actions: l, hasAlwaysVisibleActions: u, timestamp: f, locale: m, isStreaming: h, attachments: g, beforeContent: _, responseFormat: v, afterContent: y, hasThinkingPlaceholder: b = !0, starters: x, onSelectStarter: C, deploymentIconUrl: w, deploymentDisplayName: T, markdownComponents: ee, markdownClassNames: E, markdownUrlTransform: te, onAttachmentClick: O, onDownloadAll: k, isAttachmentDownloadable: A, onAttachmentRetry: j, codeBlockTheme: ne, tableOnOpenInCanvas: re, labels: ie, selectedAttachmentId: M }) => {
294
+ let { colors: ae, typography: oe, className: se, bubbleClassName: ce, timestampClassName: I } = c ?? {}, R = f == null ? void 0 : /* @__PURE__ */ P(Se, {
286
295
  timestamp: f,
287
296
  locale: m,
288
297
  className: I
289
- }), { attachmentClickLabel: ue, attachmentDownloadLabel: de, attachmentRetryLabel: z, attachmentOpenInNewTabLabel: fe, startersAriaLabel: B = "Quick reply buttons", thinkingLabel: pe, codeBlockCopyLabel: me, codeBlockCopiedLabel: V, codeBlockDownloadLabel: H, tableCopyLabel: U, tableCopiedLabel: W, tableDownloadCsvLabel: G, tableOpenInCanvasLabel: K, tableDownloadFilename: q, tableScrollRegionAriaLabel: _e, mathScrollRegionAriaLabel: J, assistantMessageAriaLabel: ve = "Assistant message", deploymentIconFallbackLabel: Y = "AI" } = ae ?? {}, ye = D(() => ({
290
- copyLabel: U,
291
- copiedLabel: W,
292
- downloadCsvLabel: G,
293
- openInCanvasLabel: K
298
+ }), { attachmentClickLabel: le, attachmentDownloadLabel: B, attachmentRetryLabel: V, attachmentOpenInNewTabLabel: H, startersAriaLabel: U = "Quick reply buttons", thinkingLabel: ue, codeBlockCopyLabel: de, codeBlockCopiedLabel: W, codeBlockDownloadLabel: pe, tableCopyLabel: G, tableCopiedLabel: K, tableDownloadCsvLabel: q, tableOpenInCanvasLabel: J, tableDownloadFilename: he, tableScrollRegionAriaLabel: ge, mathScrollRegionAriaLabel: Y, assistantMessageAriaLabel: _e = "Assistant message", deploymentIconFallbackLabel: X = "AI" } = ie ?? {}, ve = D(() => ({
299
+ copyLabel: G,
300
+ copiedLabel: K,
301
+ downloadCsvLabel: q,
302
+ openInCanvasLabel: J
294
303
  }), [
295
- U,
296
- W,
297
304
  G,
298
- K
299
- ]), be = h ? (g ?? []).filter((t) => t.type !== e.Audio) : g ?? [], X = !!t?.trim(), { slotRef: xe, firstLineIndent: Se } = R(_ != null && X), Z = s({
300
- "--cm-bubble-text": M?.text,
301
- "--cm-starters-divider": M?.startersDivider,
302
- "--cm-bubble-first-line-indent": Se
303
- }), Te = d(Q.text, oe?.fontClassName), $ = !!(w || T);
305
+ K,
306
+ q,
307
+ J
308
+ ]), ye = h ? (g ?? []).filter((t) => t.type !== e.Audio) : g ?? [], Z = !!t?.trim(), { slotRef: be, firstLineIndent: xe } = z(_ != null && Z), Q = s({
309
+ "--cm-bubble-text": ae?.text,
310
+ "--cm-starters-divider": ae?.startersDivider,
311
+ "--cm-bubble-first-line-indent": xe
312
+ }), we = d($.text, oe?.fontClassName), Te = !!(w || T);
304
313
  return /* @__PURE__ */ F("div", {
305
314
  role: "group",
306
- "aria-label": ve,
307
- style: Z,
308
- onCopy: he,
315
+ "aria-label": _e,
316
+ style: Q,
317
+ onCopy: fe,
309
318
  className: d("group/message flex w-full items-start gap-3", se),
310
- children: [$ && /* @__PURE__ */ P(n, {
319
+ children: [Te && /* @__PURE__ */ P(n, {
311
320
  src: w,
312
321
  size: 28,
313
- initialsName: T || Y,
314
- labels: { tooltip: T ?? Y }
322
+ initialsName: T || X,
323
+ labels: { tooltip: T ?? X }
315
324
  }), /* @__PURE__ */ F("div", {
316
325
  className: "flex w-full max-w-full min-w-0 flex-col items-start gap-5",
317
326
  children: [/* @__PURE__ */ F("div", {
318
327
  className: d("flex w-full max-w-full min-w-0 flex-col items-start gap-4", ce),
319
328
  children: [
320
- _ != null && !X && /* @__PURE__ */ P("div", {
329
+ _ != null && !Z && /* @__PURE__ */ P("div", {
321
330
  className: "min-w-0",
322
331
  children: _
323
332
  }),
324
- (X || h && b) && /* @__PURE__ */ F("div", {
333
+ (Z || h && b) && /* @__PURE__ */ F("div", {
325
334
  "aria-live": "polite",
326
335
  "aria-atomic": "false",
327
- className: d(Te, "relative max-w-full min-w-0 text-start", _ != null && X && we, le.assistantContent),
328
- children: [_ != null && X && /* @__PURE__ */ P("div", {
329
- ref: xe,
336
+ className: d(we, "relative max-w-full min-w-0 text-start", _ != null && Z && Ce, L.assistantContent),
337
+ children: [_ != null && Z && /* @__PURE__ */ P("div", {
338
+ ref: be,
330
339
  className: "absolute inset-s-0 top-0",
331
340
  children: _
332
341
  }), /* @__PURE__ */ P("div", {
@@ -336,51 +345,51 @@ var le = {
336
345
  content: t ?? "",
337
346
  isPlainText: v === o.PlainText,
338
347
  isStreaming: h,
339
- thinkingLabel: pe,
348
+ thinkingLabel: ue,
340
349
  components: ee,
341
350
  classNames: E,
342
- urlTransform: O,
343
- codeBlockCopyLabel: me,
344
- codeBlockCopiedLabel: V,
345
- codeBlockDownloadLabel: H,
346
- codeBlockTheme: re,
347
- tableActionLabels: ye,
348
- tableDownloadFilename: q,
349
- tableOnOpenInCanvas: ie,
350
- tableScrollRegionAriaLabel: _e,
351
- mathScrollRegionAriaLabel: J
351
+ urlTransform: te,
352
+ codeBlockCopyLabel: de,
353
+ codeBlockCopiedLabel: W,
354
+ codeBlockDownloadLabel: pe,
355
+ codeBlockTheme: ne,
356
+ tableActionLabels: ve,
357
+ tableDownloadFilename: he,
358
+ tableOnOpenInCanvas: re,
359
+ tableScrollRegionAriaLabel: ge,
360
+ mathScrollRegionAriaLabel: Y
352
361
  })
353
362
  })]
354
363
  }),
355
364
  /* @__PURE__ */ P(p, {
356
- attachments: be,
357
- onAttachmentClick: k ? (e) => {
365
+ attachments: ye,
366
+ onAttachmentClick: O ? (e) => {
358
367
  let t = g?.find((t) => t.id === e);
359
- t && k(t);
368
+ t && O(t);
360
369
  } : void 0,
361
- onDownloadAll: A,
362
- isAttachmentDownloadable: te,
363
- onRetry: ne,
370
+ onDownloadAll: k,
371
+ isAttachmentDownloadable: A,
372
+ onRetry: j,
364
373
  labels: {
365
- clickLabel: ue,
366
- downloadLabel: de,
367
- retryLabel: z,
368
- openInNewTabLabel: fe
374
+ clickLabel: le,
375
+ downloadLabel: B,
376
+ retryLabel: V,
377
+ openInNewTabLabel: H
369
378
  },
370
- selectedAttachmentId: j
379
+ selectedAttachmentId: M
371
380
  }),
372
381
  y,
373
- /* @__PURE__ */ P(ge, {
382
+ /* @__PURE__ */ P(me, {
374
383
  ...l,
375
384
  isAlwaysVisible: u,
376
- trailingContent: L == null ? l?.trailingContent : /* @__PURE__ */ F(N, { children: [l?.trailingContent, L] }),
385
+ trailingContent: R == null ? l?.trailingContent : /* @__PURE__ */ F(N, { children: [l?.trailingContent, R] }),
377
386
  role: a.Assistant
378
387
  })
379
388
  ]
380
389
  }), x && x.length > 0 && C && /* @__PURE__ */ P("div", {
381
390
  role: "list",
382
- "aria-label": B,
383
- className: d("flex w-full flex-wrap gap-2 border-t pt-5", Q.startersDivider),
391
+ "aria-label": U,
392
+ className: d("flex w-full flex-wrap gap-2 border-t pt-5", $.startersDivider),
384
393
  children: x.map((e, t) => /* @__PURE__ */ P("div", {
385
394
  role: "listitem",
386
395
  className: "min-w-[40px]",
@@ -393,7 +402,7 @@ var le = {
393
402
  })]
394
403
  })]
395
404
  });
396
- }, $ = ({ labels: { titleText: e = "Model switched.", bodyText: t } }) => /* @__PURE__ */ P("div", {
405
+ }, Te = ({ labels: { titleText: e = "Model switched.", bodyText: t } }) => /* @__PURE__ */ P("div", {
397
406
  role: "status",
398
407
  "aria-live": "polite",
399
408
  children: /* @__PURE__ */ P(b, {
@@ -403,32 +412,32 @@ var le = {
403
412
  })
404
413
  }), Ee = /* @__PURE__ */ function(e) {
405
414
  return e.Bottom = "Bottom", e.Top = "Top", e;
406
- }({}), De = 10, Oe = "[&>div>*:first-child]:mt-0 [&>div>*:last-child]:mb-0", ke = [], Ae = ({ text: e, contentRef: t, position: n = Ee.Bottom, styles: i, actions: o, hasAlwaysVisibleActions: m, timestamp: h, locale: _, attachments: y, collapsedLineCount: b = De, labels: S, textSegments: C, onAttachmentClick: w, onDownloadAll: T, isAttachmentDownloadable: E, onAttachmentRetry: O, selectedAttachmentId: k, markdownClassNames: A, markdownUrlTransform: re, codeBlockTheme: ie, tableOnOpenInCanvas: ae }) => {
407
- let { colors: j, typography: M, className: oe, bubbleClassName: se, timestampClassName: ce } = i ?? {}, I = h == null ? void 0 : /* @__PURE__ */ P(Ce, {
415
+ }({}), De = 10, Oe = "[&>div>*:first-child]:mt-0 [&>div>*:last-child]:mb-0", ke = [], Ae = ({ text: e, contentRef: t, position: n = Ee.Bottom, styles: i, actions: o, hasAlwaysVisibleActions: m, timestamp: h, locale: _, attachments: y, collapsedLineCount: b = De, labels: S, textSegments: C, onAttachmentClick: w, onDownloadAll: T, isAttachmentDownloadable: E, onAttachmentRetry: te, selectedAttachmentId: O, markdownClassNames: k, markdownUrlTransform: ne, codeBlockTheme: re, tableOnOpenInCanvas: ie }) => {
416
+ let { colors: M, typography: ae, className: oe, bubbleClassName: se, timestampClassName: ce } = i ?? {}, I = h == null ? void 0 : /* @__PURE__ */ P(Se, {
408
417
  timestamp: h,
409
418
  locale: _,
410
419
  className: ce
411
- }), { showMoreLabel: L = "Show more", showLessLabel: R = "Show less", showMoreAriaLabel: ue, showLessAriaLabel: de, attachmentClickLabel: z, attachmentDownloadLabel: fe, attachmentRetryLabel: B, attachmentOpenInNewTabLabel: pe, userMessageAriaLabel: me = "User message", codeBlockCopyLabel: V, codeBlockCopiedLabel: H, codeBlockDownloadLabel: U, tableCopyLabel: W, tableCopiedLabel: G, tableDownloadCsvLabel: K, tableOpenInCanvasLabel: q, tableDownloadFilename: _e, tableScrollRegionAriaLabel: J, mathScrollRegionAriaLabel: ve } = S ?? {}, Y = D(() => ({
412
- copyLabel: W,
413
- copiedLabel: G,
414
- downloadCsvLabel: K,
415
- openInCanvasLabel: q
420
+ }), { showMoreLabel: R = "Show more", showLessLabel: z = "Show less", showMoreAriaLabel: le, showLessAriaLabel: B, attachmentClickLabel: V, attachmentDownloadLabel: H, attachmentRetryLabel: U, attachmentOpenInNewTabLabel: ue, userMessageAriaLabel: de = "User message", codeBlockCopyLabel: W, codeBlockCopiedLabel: pe, codeBlockDownloadLabel: G, tableCopyLabel: K, tableCopiedLabel: q, tableDownloadCsvLabel: J, tableOpenInCanvasLabel: he, tableDownloadFilename: ge, tableScrollRegionAriaLabel: Y, mathScrollRegionAriaLabel: _e } = S ?? {}, X = D(() => ({
421
+ copyLabel: K,
422
+ copiedLabel: q,
423
+ downloadCsvLabel: J,
424
+ openInCanvasLabel: he
416
425
  }), [
417
- W,
418
- G,
419
426
  K,
420
- q
421
- ]), { textRef: ye, isTextCollapsed: be, isOverflowing: X, collapsedMaxHeight: xe, expandedMaxHeight: Se, isCollapsed: Z, toggleCollapsed: we } = f({
427
+ q,
428
+ J,
429
+ he
430
+ ]), { textRef: ve, isTextCollapsed: ye, isOverflowing: Z, collapsedMaxHeight: be, expandedMaxHeight: xe, isCollapsed: Q, toggleCollapsed: Ce } = f({
422
431
  text: e ?? "",
423
432
  collapsedLineCount: b
424
- }), Te = s({
425
- "--cm-bubble-user-bg": j?.userBackground,
426
- "--cm-bubble-user-border": j?.userBorder,
427
- "--cm-bubble-fade-start": j?.fadeStart,
428
- "--cm-bubble-text": j?.text,
429
- "--cm-bubble-collapsed-height": X ? `${xe}px` : void 0,
430
- "--cm-bubble-expanded-height": X ? `${Se}px` : void 0
431
- }), $ = n === Ee.Top ? "rounded-ee-md rounded-se-2xl" : "rounded-se-md rounded-ee-2xl", Ae = d(Q.text, M?.fontClassName), { markdownSource: je, segmentRehypePlugins: Me, segmentComponents: Ne } = D(() => {
433
+ }), we = s({
434
+ "--cm-bubble-user-bg": M?.userBackground,
435
+ "--cm-bubble-user-border": M?.userBorder,
436
+ "--cm-bubble-fade-start": M?.fadeStart,
437
+ "--cm-bubble-text": M?.text,
438
+ "--cm-bubble-collapsed-height": Z ? `${be}px` : void 0,
439
+ "--cm-bubble-expanded-height": Z ? `${xe}px` : void 0
440
+ }), Te = n === Ee.Top ? "rounded-ee-md rounded-se-2xl" : "rounded-se-md rounded-ee-2xl", Ae = d($.text, ae?.fontClassName), { markdownSource: je, segmentRehypePlugins: Me, segmentComponents: Ne } = D(() => {
432
441
  if (C == null) return {
433
442
  markdownSource: e ?? "",
434
443
  segmentRehypePlugins: ke,
@@ -440,12 +449,12 @@ var le = {
440
449
  segmentRehypePlugins: [u(n)],
441
450
  segmentComponents: l(n)
442
451
  };
443
- }, [e, C]), Pe = ue ?? L, Fe = de ?? R, Ie = Z ? L : R, Le = Z ? Pe : Fe, Re = Z ? te : ne, ze = ee();
452
+ }, [e, C]), Pe = le ?? R, Fe = B ?? z, Ie = Q ? R : z, Le = Q ? Pe : Fe, Re = Q ? A : j, ze = ee();
444
453
  return /* @__PURE__ */ P("div", {
445
454
  role: "group",
446
- "aria-label": me,
447
- style: Te,
448
- onCopy: he,
455
+ "aria-label": de,
456
+ style: we,
457
+ onCopy: fe,
449
458
  className: d("group/message flex w-full", oe),
450
459
  children: /* @__PURE__ */ F("div", {
451
460
  className: "ms-auto flex w-fit max-w-full min-w-0 flex-col items-end gap-4",
@@ -458,61 +467,61 @@ var le = {
458
467
  } : void 0,
459
468
  onDownloadAll: T,
460
469
  isAttachmentDownloadable: E,
461
- onRetry: O,
470
+ onRetry: te,
462
471
  labels: {
463
- clickLabel: z,
464
- downloadLabel: fe,
465
- retryLabel: B,
466
- openInNewTabLabel: pe
472
+ clickLabel: V,
473
+ downloadLabel: H,
474
+ retryLabel: U,
475
+ openInNewTabLabel: ue
467
476
  },
468
477
  styles: { className: "max-w-[640px]" },
469
- selectedAttachmentId: k
478
+ selectedAttachmentId: O
470
479
  }),
471
480
  e && /* @__PURE__ */ P("div", {
472
- className: d(Q.userBubble, "flex w-fit max-w-full min-w-0 items-center justify-end rounded-ss-2xl rounded-es-2xl border px-6 py-4 wrap-anywhere", $, se, le.userBubble),
481
+ className: d($.userBubble, "flex w-fit max-w-full min-w-0 items-center justify-end rounded-ss-2xl rounded-es-2xl border px-6 py-4 wrap-anywhere", Te, se, L.userBubble),
473
482
  children: /* @__PURE__ */ F("div", {
474
483
  className: "flex min-w-0 flex-col items-start",
475
484
  children: [/* @__PURE__ */ P("div", {
476
485
  id: ze,
477
486
  ref: t,
478
- className: d("relative -ms-1 -me-1 w-[calc(100%+8px)] overflow-hidden ps-1 pe-1", X && Q.collapsibleText, X && !Z && Q.expandedText, be && Q.collapsedText),
487
+ className: d("relative -ms-1 -me-1 w-[calc(100%+8px)] overflow-hidden ps-1 pe-1", Z && $.collapsibleText, Z && !Q && $.expandedText, ye && $.collapsedText),
479
488
  children: /* @__PURE__ */ P("div", {
480
- ref: ye,
489
+ ref: ve,
481
490
  className: d(Ae, "max-w-full min-w-0 text-start", Oe),
482
491
  children: /* @__PURE__ */ P(r, {
483
492
  content: je,
484
493
  isRawHtmlEnabled: !1,
485
494
  rehypePlugins: Me,
486
495
  components: Ne,
487
- classNames: A,
488
- urlTransform: re,
489
- codeBlockCopyLabel: V,
490
- codeBlockCopiedLabel: H,
491
- codeBlockDownloadLabel: U,
492
- codeBlockTheme: ie,
493
- tableActionLabels: Y,
494
- tableDownloadFilename: _e,
495
- tableOnOpenInCanvas: ae,
496
- tableScrollRegionAriaLabel: J,
497
- mathScrollRegionAriaLabel: ve
496
+ classNames: k,
497
+ urlTransform: ne,
498
+ codeBlockCopyLabel: W,
499
+ codeBlockCopiedLabel: pe,
500
+ codeBlockDownloadLabel: G,
501
+ codeBlockTheme: re,
502
+ tableActionLabels: X,
503
+ tableDownloadFilename: ge,
504
+ tableOnOpenInCanvas: ie,
505
+ tableScrollRegionAriaLabel: Y,
506
+ mathScrollRegionAriaLabel: _e
498
507
  })
499
508
  })
500
- }), X && /* @__PURE__ */ P(x, {
509
+ }), Z && /* @__PURE__ */ P(x, {
501
510
  label: /* @__PURE__ */ P(N, { children: Ie }),
502
511
  iconBefore: /* @__PURE__ */ P(Re, {
503
512
  size: g.SM,
504
513
  "aria-hidden": "true"
505
514
  }),
506
515
  "aria-label": Le,
507
- "aria-expanded": !Z,
516
+ "aria-expanded": !Q,
508
517
  "aria-controls": ze,
509
518
  className: "mt-3",
510
- onClick: we,
519
+ onClick: Ce,
511
520
  size: v.Small
512
521
  })]
513
522
  })
514
523
  }),
515
- /* @__PURE__ */ P(ge, {
524
+ /* @__PURE__ */ P(me, {
516
525
  ...o,
517
526
  isAlwaysVisible: m,
518
527
  leadingContent: I == null ? o?.leadingContent : /* @__PURE__ */ F(N, { children: [I, o?.leadingContent] }),
@@ -521,7 +530,7 @@ var le = {
521
530
  ]
522
531
  })
523
532
  });
524
- }, je = ({ role: e, beforeContent: t, textSegments: n, onAttachmentClick: r, responseFormat: i, markdownComponents: o, markdownUrlTransform: s, ...c }) => e === a.Status ? /* @__PURE__ */ P($, { labels: {
533
+ }, je = ({ role: e, beforeContent: t, textSegments: n, onAttachmentClick: r, responseFormat: i, markdownComponents: o, markdownUrlTransform: s, ...c }) => e === a.Status ? /* @__PURE__ */ P(Te, { labels: {
525
534
  titleText: c.labels?.statusTitleText,
526
535
  bodyText: c.labels?.statusBodyText ?? ""
527
536
  } }) : e === a.User ? /* @__PURE__ */ P(Ae, {
@@ -529,7 +538,7 @@ var le = {
529
538
  textSegments: n,
530
539
  markdownUrlTransform: s,
531
540
  onAttachmentClick: r
532
- }) : /* @__PURE__ */ P(Te, {
541
+ }) : /* @__PURE__ */ P(we, {
533
542
  ...c,
534
543
  beforeContent: t,
535
544
  responseFormat: i,
@@ -541,7 +550,7 @@ var le = {
541
550
  "--cm-reply-background": c?.background,
542
551
  "--cm-reply-hover-background": c?.hoverBackground,
543
552
  "--cm-reply-text": c?.text
544
- }), [b, x] = k({
553
+ }), [b, x] = O({
545
554
  x: 0,
546
555
  y: 0
547
556
  });
@@ -574,7 +583,7 @@ var le = {
574
583
  onClick: n,
575
584
  textClassName: p,
576
585
  className: d(Me.button, "h-8 min-h-8 min-w-11 px-2 shadow-lg mobile:h-11 mobile:min-h-11", f),
577
- iconAfter: /* @__PURE__ */ P(A, {
586
+ iconAfter: /* @__PURE__ */ P(k, {
578
587
  size: 16,
579
588
  stroke: _,
580
589
  "aria-hidden": "true",
@@ -588,14 +597,14 @@ var le = {
588
597
  children: e ? i.selectionAvailable : r > 0 ? /* @__PURE__ */ P("span", { children: i.attachmentAdded }, r) : null
589
598
  })] }), g) : null;
590
599
  }, Pe = (e) => `Today ${e}`, Fe = (e) => `Yesterday ${e}`, Ie = ({ timestamp: e, locale: t, labels: n, className: r = "dial-small-text text-secondary" }) => {
591
- let i = ye(e);
600
+ let i = ve(e);
592
601
  if (i == null) return null;
593
- let { kind: a, text: o } = X(i, /* @__PURE__ */ new Date(), t), s = o;
594
- return a === W.Today ? s = (n?.today ?? Pe)(o) : a === W.Yesterday && (s = (n?.yesterday ?? Fe)(o)), /* @__PURE__ */ P("time", {
602
+ let { kind: a, text: o } = Z(i, /* @__PURE__ */ new Date(), t), s = o;
603
+ return a === K.Today ? s = (n?.today ?? Pe)(o) : a === K.Yesterday && (s = (n?.yesterday ?? Fe)(o)), /* @__PURE__ */ P("time", {
595
604
  dateTime: e,
596
605
  className: d("self-center text-center", r),
597
606
  children: s
598
607
  });
599
608
  };
600
609
  //#endregion
601
- export { Te as AssistantMessageBubble, Ee as BubblePosition, le as CONVERSATION_MESSAGES_CLASS, Ie as ConversationStartTimestamp, ge as MessageActions, je as MessageBubble, Ne as MessageSelectionReply, $ as StatusMessageBubble, Ae as UserMessageBubble };
610
+ export { we as AssistantMessageBubble, Ee as BubblePosition, L as CONVERSATION_MESSAGES_CLASS, Ie as ConversationStartTimestamp, me as MessageActions, je as MessageBubble, Ne as MessageSelectionReply, Te as StatusMessageBubble, Ae as UserMessageBubble };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-conversation-messages",
3
3
  "description": "Message bubble components for rendering conversation history with actions and source citations",
4
- "version": "1.3.0-dev.223",
4
+ "version": "1.3.0-dev.225",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -19,12 +19,12 @@
19
19
  "dependencies": {
20
20
  "@tabler/icons-react": "^3.44.0",
21
21
  "react-markdown": "^10.1.0",
22
- "@epam/ai-dial-attachment-input": "1.3.0-dev.223"
22
+ "@epam/ai-dial-attachment-input": "1.3.0-dev.225"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": "^19.2.8",
26
26
  "react-dom": "^19.2.8",
27
- "@epam/ai-dial-chat-shared": "1.3.0-dev.223",
27
+ "@epam/ai-dial-chat-shared": "1.3.0-dev.225",
28
28
  "@epam/ai-dial-ui-kit": "^0.16.0-dev.45"
29
29
  },
30
30
  "repository": {