@epam/ai-dial-conversation-messages 1.1.0-dev.447 → 1.1.0-dev.456

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,kIAAkI;AAClI,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAsMlD,CAAC"}
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,kIAAkI;AAClI,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAuNlD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/AssistantMessageBubble.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAI/E,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CA8JlE,CAAC"}
1
+ {"version":3,"file":"AssistantMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/AssistantMessageBubble.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAY/E,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CA0MlE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/MessageBubble.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKtE,wGAAwG;AACxG,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAgChD,CAAC"}
1
+ {"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/MessageBubble.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKtE,wGAAwG;AACxG,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAsChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/UserMessageBubble.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,EAAE,EAAS,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAO1E,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA4IxD,CAAC"}
1
+ {"version":3,"file":"UserMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/UserMessageBubble.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,EAAE,EAAS,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAO1E,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAkKxD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * Measures an inline-start slot overlaid on the text's first line and returns
4
+ * its width as the `--cm-bubble-first-line-indent` CSS var value, so the first
5
+ * text line starts past the slot and the text word-flows after it — the same
6
+ * mechanism the conversation input uses for its `inlineStartSlot`.
7
+ */
8
+ export declare const useInlineStartIndent: (hasSlot: boolean) => {
9
+ /** Ref for the slot's wrapper element — the measured element. */
10
+ slotRef: RefObject<HTMLDivElement | null>;
11
+ /** Value for `--cm-bubble-first-line-indent`; `undefined` while no slot renders. */
12
+ firstLineIndent: string | undefined;
13
+ };
14
+ //# sourceMappingURL=useInlineStartIndent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInlineStartIndent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInlineStartIndent/useInlineStartIndent.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,OAAO,KACf;IACD,iEAAiE;IACjE,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC1C,oFAAoF;IACpF,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CA2BrC,CAAC"}
package/index.js CHANGED
@@ -1,27 +1,43 @@
1
1
  import { AttachmentType as e, CopyIconButton as t, DeploymentIcon as n, MDMessageViewer as r, MessageRating as i, MessageRole as a, buildCssVars as o, mergeClasses as s, useCollapsedText as c } from "@epam/ai-dial-chat-shared";
2
2
  import { AttachmentGroup as l } from "@epam/ai-dial-attachment-input";
3
3
  import { DIAL_ICON_SIZE as u, DIAL_KIT_ICON_STROKE as d, ElementSize as f, InfoMessageNotification as p, LinkButton as m, NeutralButton as h, ToggleIconButton as g } from "@epam/ai-dial-ui-kit";
4
- import { IconChevronDown as _, IconChevronUp as v, IconMarkdown as y, IconPencilMinus as b, IconRefresh as x, IconThumbDown as S, IconThumbDownFilled as C, IconThumbUp as w, IconThumbUpFilled as T, IconTrashX as E } from "@tabler/icons-react";
5
- import { useCallback as D, useId as O, useState as k } from "react";
6
- import { Fragment as A, jsx as j, jsxs as M } from "react/jsx-runtime";
7
- var N = { activeRating: "_activeRating_ygoee_1" }, P = 2e3, F = ({ role: e = a.User, onEdit: n, onEditHover: r, onDelete: c, onRegenerate: l, onCopy: p, onCopyMarkdown: m, onLike: h, onDislike: _, activeRating: v, isAlwaysVisible: O, isDisabled: F = !1, className: I, labels: L, colors: R }) => {
8
- let { tooltips: z, ariaLabels: B } = L ?? {}, [V, H] = k(null), [U, W] = k(""), G = o({ "--ma-active-rating-text": R?.activeRatingText }), K = D(() => {
9
- p?.(), H("copy"), W(B?.copiedStatus ?? "Copied to clipboard"), setTimeout(() => H(null), P);
10
- }, [p, B?.copiedStatus]), q = D(() => {
11
- m?.(), H("markdown"), W(B?.copiedMarkdownStatus ?? "Copied as Markdown to clipboard"), setTimeout(() => H(null), P);
4
+ import { useCallback as _, useEffect as v, useId as y, useRef as b, useState as x } from "react";
5
+ import { IconChevronDown as S, IconChevronUp as C, IconMarkdown as w, IconPencilMinus as T, IconRefresh as E, IconThumbDown as D, IconThumbDownFilled as O, IconThumbUp as k, IconThumbUpFilled as A, IconTrashX as j } from "@tabler/icons-react";
6
+ import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
7
+ //#region src/hooks/useInlineStartIndent/useInlineStartIndent.ts
8
+ var F = 4, I = (e) => {
9
+ let t = b(null), [n, r] = x(0);
10
+ return v(() => {
11
+ if (!e) return;
12
+ let n = t.current;
13
+ if (n == null) return;
14
+ let i = new ResizeObserver((e) => {
15
+ let t = e[0];
16
+ t != null && r(t.contentRect.width);
17
+ });
18
+ return i.observe(n), () => i.disconnect();
19
+ }, [e]), {
20
+ slotRef: t,
21
+ firstLineIndent: e ? `calc(${n}px + ${F}px)` : void 0
22
+ };
23
+ }, L = { activeRating: "_activeRating_ygoee_1" }, R = 2e3, z = ({ role: e = a.User, onEdit: n, onEditHover: r, onDelete: c, onRegenerate: l, onCopy: p, onCopyMarkdown: m, onLike: h, onDislike: v, activeRating: y, isAlwaysVisible: b, isDisabled: S = !1, className: C, labels: F, colors: I }) => {
24
+ let { tooltips: z, ariaLabels: B } = F ?? {}, [V, H] = x(null), [U, W] = x(""), G = n != null || c != null || l != null || p != null || m != null || h != null || v != null, K = o({ "--ma-active-rating-text": I?.activeRatingText }), q = _(() => {
25
+ p?.(), H("copy"), W(B?.copiedStatus ?? "Copied to clipboard"), setTimeout(() => H(null), R);
26
+ }, [p, B?.copiedStatus]), J = _(() => {
27
+ m?.(), H("markdown"), W(B?.copiedMarkdownStatus ?? "Copied as Markdown to clipboard"), setTimeout(() => H(null), R);
12
28
  }, [m, B?.copiedMarkdownStatus]);
13
- return /* @__PURE__ */ M("div", {
29
+ return G ? /* @__PURE__ */ P("div", {
14
30
  role: "toolbar",
15
31
  "aria-label": B?.actionsGroup ?? "Message actions",
16
- style: G,
17
- className: s("flex gap-1", !O && "opacity-0 group-hover:opacity-100", I),
18
- children: [/* @__PURE__ */ j("span", {
32
+ style: K,
33
+ className: s("flex gap-1", !b && "opacity-0 group-hover:opacity-100", C),
34
+ children: [/* @__PURE__ */ N("span", {
19
35
  role: "status",
20
36
  "aria-live": "polite",
21
37
  className: "sr-only",
22
38
  children: U
23
- }), e === a.User ? /* @__PURE__ */ M(A, { children: [n && /* @__PURE__ */ j(g, {
24
- icon: /* @__PURE__ */ j(b, {
39
+ }), e === a.User ? /* @__PURE__ */ P(M, { children: [n && /* @__PURE__ */ N(g, {
40
+ icon: /* @__PURE__ */ N(T, {
25
41
  size: u.SM,
26
42
  "aria-hidden": !0,
27
43
  stroke: d
@@ -32,9 +48,9 @@ var N = { activeRating: "_activeRating_ygoee_1" }, P = 2e3, F = ({ role: e = a.U
32
48
  onClick: n,
33
49
  onMouseEnter: r,
34
50
  onFocus: r,
35
- disabled: F
36
- }), c && /* @__PURE__ */ j(g, {
37
- icon: /* @__PURE__ */ j(E, {
51
+ disabled: S
52
+ }), c && /* @__PURE__ */ N(g, {
53
+ icon: /* @__PURE__ */ N(j, {
38
54
  size: u.SM,
39
55
  "aria-hidden": !0,
40
56
  stroke: d
@@ -43,10 +59,10 @@ var N = { activeRating: "_activeRating_ygoee_1" }, P = 2e3, F = ({ role: e = a.U
43
59
  "aria-label": B?.deleteMessage ?? "Delete message",
44
60
  tooltipProps: { tooltip: z?.delete ?? "Delete" },
45
61
  onClick: c,
46
- disabled: F
47
- })] }) : /* @__PURE__ */ M(A, { children: [
48
- l && /* @__PURE__ */ j(g, {
49
- icon: /* @__PURE__ */ j(x, {
62
+ disabled: S
63
+ })] }) : /* @__PURE__ */ P(M, { children: [
64
+ l && /* @__PURE__ */ N(g, {
65
+ icon: /* @__PURE__ */ N(E, {
50
66
  size: u.SM,
51
67
  "aria-hidden": !0,
52
68
  stroke: d
@@ -55,24 +71,24 @@ var N = { activeRating: "_activeRating_ygoee_1" }, P = 2e3, F = ({ role: e = a.U
55
71
  "aria-label": B?.regenerateResponse ?? "Regenerate response",
56
72
  tooltipProps: { tooltip: z?.regenerate ?? "Regenerate" },
57
73
  onClick: l,
58
- disabled: F
74
+ disabled: S
59
75
  }),
60
- p && /* @__PURE__ */ j(t, {
76
+ p && /* @__PURE__ */ N(t, {
61
77
  iconSize: u.SM,
62
- onClick: K,
78
+ onClick: q,
63
79
  size: f.Small,
64
80
  isCopied: V === "copy",
65
81
  copyLabel: z?.copy ?? "Copy",
66
82
  copiedLabel: z?.copied ?? "Copied!",
67
83
  ariaLabel: B?.copyResponse ?? "Copy response",
68
- isDisabled: F
84
+ isDisabled: S
69
85
  }),
70
- m && /* @__PURE__ */ j(t, {
86
+ m && /* @__PURE__ */ N(t, {
71
87
  iconSize: u.SM,
72
- onClick: q,
88
+ onClick: J,
73
89
  size: f.Small,
74
90
  isCopied: V === "markdown",
75
- iconCopy: /* @__PURE__ */ j(y, {
91
+ iconCopy: /* @__PURE__ */ N(w, {
76
92
  size: u.SM,
77
93
  "aria-hidden": !0,
78
94
  stroke: d
@@ -80,204 +96,223 @@ var N = { activeRating: "_activeRating_ygoee_1" }, P = 2e3, F = ({ role: e = a.U
80
96
  copyLabel: z?.copyMarkdown ?? "Copy as Markdown",
81
97
  copiedLabel: z?.copiedMarkdown ?? "Copied!",
82
98
  ariaLabel: B?.copyAsMarkdown ?? "Copy as markdown",
83
- isDisabled: F
99
+ isDisabled: S
84
100
  }),
85
- h && /* @__PURE__ */ j(g, {
86
- icon: v === i.Like ? /* @__PURE__ */ j(T, {
87
- className: N.activeRating,
101
+ h && /* @__PURE__ */ N(g, {
102
+ icon: y === i.Like ? /* @__PURE__ */ N(A, {
103
+ className: L.activeRating,
88
104
  size: u.SM,
89
105
  "aria-hidden": !0
90
- }) : /* @__PURE__ */ j(w, {
106
+ }) : /* @__PURE__ */ N(k, {
91
107
  size: u.SM,
92
108
  "aria-hidden": !0,
93
109
  stroke: d
94
110
  }),
95
111
  size: f.Small,
96
112
  "aria-label": B?.likeResponse ?? "Like response",
97
- "aria-pressed": v === i.Like,
113
+ "aria-pressed": y === i.Like,
98
114
  tooltipProps: { tooltip: z?.like ?? "Like" },
99
115
  onClick: h,
100
- disabled: F
116
+ disabled: S
101
117
  }),
102
- _ && /* @__PURE__ */ j(g, {
103
- icon: v === i.Dislike ? /* @__PURE__ */ j(C, {
104
- className: N.activeRating,
118
+ v && /* @__PURE__ */ N(g, {
119
+ icon: y === i.Dislike ? /* @__PURE__ */ N(O, {
120
+ className: L.activeRating,
105
121
  size: u.SM,
106
122
  "aria-hidden": !0
107
- }) : /* @__PURE__ */ j(S, {
123
+ }) : /* @__PURE__ */ N(D, {
108
124
  size: u.SM,
109
125
  "aria-hidden": !0,
110
126
  stroke: d
111
127
  }),
112
128
  size: f.Small,
113
129
  "aria-label": B?.dislikeResponse ?? "Dislike response",
114
- "aria-pressed": v === i.Dislike,
130
+ "aria-pressed": y === i.Dislike,
115
131
  tooltipProps: { tooltip: z?.dislike ?? "Dislike" },
116
- onClick: _,
117
- disabled: F
132
+ onClick: v,
133
+ disabled: S
118
134
  })
119
135
  ] })]
120
- });
121
- }, I = {
136
+ }) : null;
137
+ }, B = {
122
138
  userBubble: "_userBubble_cq829_1",
123
139
  collapsibleText: "_collapsibleText_cq829_6",
124
140
  expandedText: "_expandedText_cq829_11",
125
141
  collapsedText: "_collapsedText_cq829_15",
126
142
  startersDivider: "_startersDivider_cq829_26",
127
143
  text: "_text_cq829_30"
128
- }, L = ({ text: t, styles: i, actions: c, hasAlwaysVisibleActions: u, isStreaming: d, attachments: f, afterContent: p, starters: m, onSelectStarter: g, deploymentIconUrl: _, deploymentDisplayName: v, markdownComponents: y, markdownClassNames: b, markdownUrlTransform: x, onAttachmentClick: S, onDownloadAll: C, onAttachmentRetry: w, codeBlockTheme: T, tableOnOpenInCanvas: E, labels: D, selectedAttachmentId: O }) => {
129
- let { colors: k, typography: A, className: N, bubbleClassName: P } = i ?? {}, { attachmentClickLabel: L, attachmentRetryLabel: R, attachmentOpenInNewTabLabel: z, startersAriaLabel: B = "Quick reply buttons", thinkingLabel: V, codeBlockCopyLabel: H, codeBlockCopiedLabel: U, tableCopyCsvLabel: W, tableCopyTxtLabel: G, tableCopyMarkdownLabel: K, tableCopiedLabel: q, tableDownloadCsvLabel: J, tableOpenInCanvasLabel: Y, tableDownloadFilename: X, tableScrollRegionAriaLabel: Z, assistantMessageAriaLabel: ee = "Assistant message", deploymentIconFallbackLabel: Q = "AI" } = D ?? {}, te = d ? (f ?? []).filter((t) => t.type !== e.Audio) : f ?? [], ne = o({
130
- "--cm-bubble-text": k?.text,
131
- "--cm-starters-divider": k?.startersDivider
132
- }), re = s(I.text, A?.fontClassName), $ = !!(_ || v);
133
- return /* @__PURE__ */ M("div", {
144
+ }, V = "[&>.cm-bubble-markdown>div>*:first-child]:indent-[var(--cm-bubble-first-line-indent,0px)]", H = ({ text: t, styles: i, actions: c, hasAlwaysVisibleActions: u, isStreaming: d, attachments: f, beforeContent: p, afterContent: m, starters: g, onSelectStarter: _, deploymentIconUrl: v, deploymentDisplayName: y, markdownComponents: b, markdownClassNames: x, markdownUrlTransform: S, onAttachmentClick: C, onDownloadAll: w, onAttachmentRetry: T, codeBlockTheme: E, tableOnOpenInCanvas: D, labels: O, selectedAttachmentId: k }) => {
145
+ let { colors: A, typography: j, className: M, bubbleClassName: F } = i ?? {}, { attachmentClickLabel: L, attachmentRetryLabel: R, attachmentOpenInNewTabLabel: H, startersAriaLabel: U = "Quick reply buttons", thinkingLabel: W, codeBlockCopyLabel: G, codeBlockCopiedLabel: K, tableCopyCsvLabel: q, tableCopyTxtLabel: J, tableCopyMarkdownLabel: Y, tableCopiedLabel: X, tableDownloadCsvLabel: Z, tableOpenInCanvasLabel: ee, tableDownloadFilename: te, tableScrollRegionAriaLabel: ne, assistantMessageAriaLabel: re = "Assistant message", deploymentIconFallbackLabel: Q = "AI" } = O ?? {}, ie = d ? (f ?? []).filter((t) => t.type !== e.Audio) : f ?? [], { slotRef: $, firstLineIndent: ae } = I(p != null && !!t), oe = o({
146
+ "--cm-bubble-text": A?.text,
147
+ "--cm-starters-divider": A?.startersDivider,
148
+ "--cm-bubble-first-line-indent": ae
149
+ }), se = s(B.text, j?.fontClassName), ce = !!(v || y);
150
+ return /* @__PURE__ */ P("div", {
134
151
  role: "group",
135
- "aria-label": ee,
136
- style: ne,
137
- className: s("flex w-full items-start gap-3", N),
138
- children: [$ && /* @__PURE__ */ j(n, {
139
- src: _,
152
+ "aria-label": re,
153
+ style: oe,
154
+ className: s("flex w-full items-start gap-3", M),
155
+ children: [ce && /* @__PURE__ */ N(n, {
156
+ src: v,
140
157
  size: 28,
141
- initialsName: v || Q,
142
- labels: { tooltip: v ?? Q }
143
- }), /* @__PURE__ */ M("div", {
158
+ initialsName: y || Q,
159
+ labels: { tooltip: y ?? Q }
160
+ }), /* @__PURE__ */ P("div", {
144
161
  className: "flex w-full min-w-0 max-w-full flex-col items-start gap-5",
145
- children: [/* @__PURE__ */ M("div", {
146
- className: s("flex w-full min-w-0 max-w-full flex-col items-start gap-4", P),
162
+ children: [/* @__PURE__ */ P("div", {
163
+ className: s("flex w-full min-w-0 max-w-full flex-col items-start gap-4", F),
147
164
  children: [
148
- (t || d) && /* @__PURE__ */ j("div", {
165
+ p != null && !t && /* @__PURE__ */ N("div", {
166
+ className: "min-w-0",
167
+ children: p
168
+ }),
169
+ (t || d) && /* @__PURE__ */ P("div", {
149
170
  "aria-live": "polite",
150
171
  "aria-atomic": "false",
151
- className: s(re, "min-w-0 max-w-full text-start"),
152
- children: /* @__PURE__ */ j(r, {
153
- content: t,
154
- isStreaming: d,
155
- thinkingLabel: V,
156
- components: y,
157
- classNames: b,
158
- urlTransform: x,
159
- codeBlockCopyLabel: H,
160
- codeBlockCopiedLabel: U,
161
- codeBlockTheme: T,
162
- tableActionLabels: {
163
- copyCsvLabel: W,
164
- copyTxtLabel: G,
165
- copyMarkdownLabel: K,
166
- copiedLabel: q,
167
- downloadCsvLabel: J,
168
- openInCanvasLabel: Y
169
- },
170
- tableDownloadFilename: X,
171
- tableOnOpenInCanvas: E,
172
- tableScrollRegionAriaLabel: Z
173
- })
172
+ className: s(se, "relative min-w-0 max-w-full text-start", p != null && t && V),
173
+ children: [p != null && t && /* @__PURE__ */ N("div", {
174
+ ref: $,
175
+ className: "absolute start-0 top-0",
176
+ children: p
177
+ }), /* @__PURE__ */ N("div", {
178
+ className: "cm-bubble-markdown min-w-0 max-w-full",
179
+ children: /* @__PURE__ */ N(r, {
180
+ content: t ?? "",
181
+ isStreaming: d,
182
+ thinkingLabel: W,
183
+ components: b,
184
+ classNames: x,
185
+ urlTransform: S,
186
+ codeBlockCopyLabel: G,
187
+ codeBlockCopiedLabel: K,
188
+ codeBlockTheme: E,
189
+ tableActionLabels: {
190
+ copyCsvLabel: q,
191
+ copyTxtLabel: J,
192
+ copyMarkdownLabel: Y,
193
+ copiedLabel: X,
194
+ downloadCsvLabel: Z,
195
+ openInCanvasLabel: ee
196
+ },
197
+ tableDownloadFilename: te,
198
+ tableOnOpenInCanvas: D,
199
+ tableScrollRegionAriaLabel: ne
200
+ })
201
+ })]
174
202
  }),
175
- /* @__PURE__ */ j(l, {
176
- attachments: te,
177
- onAttachmentClick: (e) => S?.(f?.find((t) => t.id === e)),
178
- onDownloadAll: C,
179
- onRetry: w,
203
+ /* @__PURE__ */ N(l, {
204
+ attachments: ie,
205
+ onAttachmentClick: (e) => C?.(f?.find((t) => t.id === e)),
206
+ onDownloadAll: w,
207
+ onRetry: T,
180
208
  labels: {
181
209
  clickLabel: L,
182
210
  retryLabel: R,
183
- openInNewTabLabel: z
211
+ openInNewTabLabel: H
184
212
  },
185
- selectedAttachmentId: O
213
+ selectedAttachmentId: k
186
214
  }),
187
- p,
188
- /* @__PURE__ */ j(F, {
215
+ m,
216
+ /* @__PURE__ */ N(z, {
189
217
  ...c,
190
218
  isAlwaysVisible: u,
191
219
  role: a.Assistant
192
220
  })
193
221
  ]
194
- }), m && m.length > 0 && g && /* @__PURE__ */ j("div", {
222
+ }), g && g.length > 0 && _ && /* @__PURE__ */ N("div", {
195
223
  role: "list",
196
- "aria-label": B,
197
- className: s("flex w-full flex-wrap gap-2 border-t pt-5", I.startersDivider),
198
- children: m.map((e, t) => /* @__PURE__ */ j("div", {
224
+ "aria-label": U,
225
+ className: s("flex w-full flex-wrap gap-2 border-t pt-5", B.startersDivider),
226
+ children: g.map((e, t) => /* @__PURE__ */ N("div", {
199
227
  role: "listitem",
200
228
  className: "min-w-[40px]",
201
- children: /* @__PURE__ */ j(h, {
229
+ children: /* @__PURE__ */ N(h, {
202
230
  label: e.title,
203
231
  className: "min-w-[40px]",
204
- onClick: () => g(e)
232
+ onClick: () => _(e)
205
233
  })
206
234
  }, t))
207
235
  })]
208
236
  })]
209
237
  });
210
- }, R = ({ labels: { titleText: e = "Model switched.", bodyText: t } }) => /* @__PURE__ */ j("div", {
238
+ }, U = ({ labels: { titleText: e = "Model switched.", bodyText: t } }) => /* @__PURE__ */ N("div", {
211
239
  role: "status",
212
240
  "aria-live": "polite",
213
- children: /* @__PURE__ */ j(p, {
241
+ children: /* @__PURE__ */ N(p, {
214
242
  title: e,
215
243
  message: t,
216
244
  textClassName: "flex-row flex-wrap gap-1"
217
245
  })
218
- }), z = /* @__PURE__ */ function(e) {
246
+ }), W = /* @__PURE__ */ function(e) {
219
247
  return e.Bottom = "Bottom", e.Top = "Top", e;
220
- }({}), B = 10, V = ({ text: e, position: t = z.Bottom, styles: n, actions: r, hasAlwaysVisibleActions: i, attachments: d, collapsedLineCount: p = B, labels: h, onAttachmentClick: g, onDownloadAll: y, onAttachmentRetry: b, selectedAttachmentId: x }) => {
221
- let { colors: S, typography: C, className: w, bubbleClassName: T } = n ?? {}, { showMoreLabel: E = "Show more", showLessLabel: D = "Show less", showMoreAriaLabel: k, showLessAriaLabel: N, attachmentClickLabel: P, attachmentRetryLabel: L, attachmentOpenInNewTabLabel: R, userMessageAriaLabel: V = "User message" } = h ?? {}, { textRef: H, isTextCollapsed: U, isOverflowing: W, collapsedMaxHeight: G, expandedMaxHeight: K, isCollapsed: q, toggleCollapsed: J } = c({
222
- text: e,
248
+ }({}), G = 10, K = ({ text: e, position: t = W.Bottom, styles: n, actions: r, hasAlwaysVisibleActions: i, attachments: d, collapsedLineCount: p = G, labels: h, beforeContent: g, onAttachmentClick: _, onDownloadAll: v, onAttachmentRetry: b, selectedAttachmentId: x }) => {
249
+ let { colors: w, typography: T, className: E, bubbleClassName: D } = n ?? {}, { showMoreLabel: O = "Show more", showLessLabel: k = "Show less", showMoreAriaLabel: A, showLessAriaLabel: j, attachmentClickLabel: F, attachmentRetryLabel: I, attachmentOpenInNewTabLabel: L, userMessageAriaLabel: R = "User message" } = h ?? {}, { textRef: V, isTextCollapsed: H, isOverflowing: U, collapsedMaxHeight: K, expandedMaxHeight: q, isCollapsed: J, toggleCollapsed: Y } = c({
250
+ text: e ?? "",
223
251
  collapsedLineCount: p
224
- }), Y = o({
225
- "--cm-bubble-user-bg": S?.userBackground,
226
- "--cm-bubble-user-border": S?.userBorder,
227
- "--cm-bubble-fade-start": S?.fadeStart,
228
- "--cm-bubble-text": S?.text,
229
- "--cm-bubble-collapsed-height": W ? `${G}px` : void 0,
230
- "--cm-bubble-expanded-height": W ? `${K}px` : void 0
231
- }), X = t === z.Top ? "rounded-ee-md rounded-se-2xl" : "rounded-se-md rounded-ee-2xl", Z = s(I.text, C?.fontClassName), ee = k ?? E, Q = N ?? D, te = q ? E : D, ne = q ? ee : Q, re = q ? _ : v, $ = O();
232
- return /* @__PURE__ */ j("div", {
252
+ }), X = o({
253
+ "--cm-bubble-user-bg": w?.userBackground,
254
+ "--cm-bubble-user-border": w?.userBorder,
255
+ "--cm-bubble-fade-start": w?.fadeStart,
256
+ "--cm-bubble-text": w?.text,
257
+ "--cm-bubble-collapsed-height": U ? `${K}px` : void 0,
258
+ "--cm-bubble-expanded-height": U ? `${q}px` : void 0
259
+ }), Z = t === W.Top ? "rounded-ee-md rounded-se-2xl" : "rounded-se-md rounded-ee-2xl", ee = s(B.text, T?.fontClassName), te = A ?? O, ne = j ?? k, re = J ? O : k, Q = J ? te : ne, ie = J ? S : C, $ = y();
260
+ return /* @__PURE__ */ N("div", {
233
261
  role: "group",
234
- "aria-label": V,
235
- style: Y,
236
- className: s("flex w-full", w),
237
- children: /* @__PURE__ */ M("div", {
262
+ "aria-label": R,
263
+ style: X,
264
+ className: s("flex w-full", E),
265
+ children: /* @__PURE__ */ P("div", {
238
266
  className: "ms-auto flex w-fit min-w-0 max-w-full flex-col items-end gap-4",
239
267
  children: [
240
- /* @__PURE__ */ j(l, {
268
+ /* @__PURE__ */ N(l, {
241
269
  attachments: d ?? [],
242
- onAttachmentClick: (e) => g?.(d?.find((t) => t.id === e)),
243
- onDownloadAll: y,
270
+ onAttachmentClick: (e) => _?.(d?.find((t) => t.id === e)),
271
+ onDownloadAll: v,
244
272
  onRetry: b,
245
273
  labels: {
246
- clickLabel: P,
247
- retryLabel: L,
248
- openInNewTabLabel: R
274
+ clickLabel: F,
275
+ retryLabel: I,
276
+ openInNewTabLabel: L
249
277
  },
250
278
  styles: { className: "max-w-[640px]" },
251
279
  selectedAttachmentId: x
252
280
  }),
253
- e && /* @__PURE__ */ j("div", {
254
- className: s(I.userBubble, "flex w-fit items-center justify-end rounded-es-2xl rounded-ss-2xl border px-6 py-4", X, T),
255
- children: /* @__PURE__ */ M("div", {
281
+ (e || g != null) && /* @__PURE__ */ N("div", {
282
+ className: s(B.userBubble, "flex w-fit items-center justify-end rounded-es-2xl rounded-ss-2xl border px-6 py-4", Z, D),
283
+ children: /* @__PURE__ */ P("div", {
256
284
  className: "flex min-w-0 flex-col items-start",
257
- children: [/* @__PURE__ */ j("div", {
258
- id: $,
259
- className: s("relative overflow-hidden", W && I.collapsibleText, W && !q && I.expandedText, U && I.collapsedText),
260
- children: /* @__PURE__ */ j("p", {
261
- ref: H,
262
- className: s(Z, "whitespace-pre-wrap text-start [overflow-wrap:anywhere]"),
263
- children: e
264
- })
265
- }), W && /* @__PURE__ */ j(m, {
266
- label: /* @__PURE__ */ j(A, { children: te }),
267
- iconBefore: /* @__PURE__ */ j(re, {
268
- size: u.SM,
269
- "aria-hidden": "true"
285
+ children: [
286
+ e && /* @__PURE__ */ N("div", {
287
+ id: $,
288
+ className: s("relative overflow-hidden", U && B.collapsibleText, U && !J && B.expandedText, H && B.collapsedText),
289
+ children: /* @__PURE__ */ P("p", {
290
+ ref: V,
291
+ className: s(ee, "whitespace-pre-wrap text-start [overflow-wrap:anywhere]"),
292
+ children: [g != null && /* @__PURE__ */ N("span", {
293
+ className: "me-1",
294
+ children: g
295
+ }), e]
296
+ })
270
297
  }),
271
- "aria-label": ne,
272
- "aria-expanded": !q,
273
- "aria-controls": $,
274
- className: "mt-3",
275
- onClick: J,
276
- size: f.Small
277
- })]
298
+ g != null && !e && /* @__PURE__ */ N("div", { children: g }),
299
+ U && /* @__PURE__ */ N(m, {
300
+ label: /* @__PURE__ */ N(M, { children: re }),
301
+ iconBefore: /* @__PURE__ */ N(ie, {
302
+ size: u.SM,
303
+ "aria-hidden": "true"
304
+ }),
305
+ "aria-label": Q,
306
+ "aria-expanded": !J,
307
+ "aria-controls": $,
308
+ className: "mt-3",
309
+ onClick: Y,
310
+ size: f.Small
311
+ })
312
+ ]
278
313
  })
279
314
  }),
280
- /* @__PURE__ */ j(F, {
315
+ /* @__PURE__ */ N(z, {
281
316
  ...r,
282
317
  isAlwaysVisible: i,
283
318
  role: a.User
@@ -285,17 +320,19 @@ var N = { activeRating: "_activeRating_ygoee_1" }, P = 2e3, F = ({ role: e = a.U
285
320
  ]
286
321
  })
287
322
  });
288
- }, H = ({ role: e, onAttachmentClick: t, markdownComponents: n, markdownUrlTransform: r, ...i }) => e === a.Status ? /* @__PURE__ */ j(R, { labels: {
289
- titleText: i.labels?.statusTitleText,
290
- bodyText: i.labels?.statusBodyText ?? ""
291
- } }) : e === a.User ? /* @__PURE__ */ j(V, {
292
- ...i,
293
- onAttachmentClick: t
294
- }) : /* @__PURE__ */ j(L, {
295
- ...i,
296
- markdownComponents: n,
297
- markdownUrlTransform: r,
298
- onAttachmentClick: t
323
+ }, q = ({ role: e, beforeContent: t, onAttachmentClick: n, markdownComponents: r, markdownUrlTransform: i, ...o }) => e === a.Status ? /* @__PURE__ */ N(U, { labels: {
324
+ titleText: o.labels?.statusTitleText,
325
+ bodyText: o.labels?.statusBodyText ?? ""
326
+ } }) : e === a.User ? /* @__PURE__ */ N(K, {
327
+ ...o,
328
+ beforeContent: t,
329
+ onAttachmentClick: n
330
+ }) : /* @__PURE__ */ N(H, {
331
+ ...o,
332
+ beforeContent: t,
333
+ markdownComponents: r,
334
+ markdownUrlTransform: i,
335
+ onAttachmentClick: n
299
336
  });
300
337
  //#endregion
301
- export { L as AssistantMessageBubble, z as BubblePosition, F as MessageActions, H as MessageBubble, R as StatusMessageBubble, V as UserMessageBubble };
338
+ export { H as AssistantMessageBubble, W as BubblePosition, z as MessageActions, q as MessageBubble, U as StatusMessageBubble, K as UserMessageBubble };
@@ -88,8 +88,8 @@ export interface AssistantMessageBubbleLabels extends MessageBubbleLabels {
88
88
  }
89
89
  /** Shared props for user and assistant message bubble components. */
90
90
  interface BaseMessageBubbleProps {
91
- /** Plain-text (or Markdown) content of the message. */
92
- text: string;
91
+ /** Plain-text (or Markdown) content of the message. When absent, the bubble renders for `beforeContent` alone. */
92
+ text?: string;
93
93
  /** Color and typography overrides applied as CSS custom properties. */
94
94
  styles?: MessageBubbleStyles;
95
95
  /** Props for the `MessageActions` bar below the bubble. */
@@ -110,6 +110,17 @@ interface BaseMessageBubbleProps {
110
110
  onAttachmentRetry?: (id: string) => void;
111
111
  /** ID of the attachment currently open in the canvas panel, if any. Renders that tile's selected visual state. */
112
112
  selectedAttachmentId?: string;
113
+ /**
114
+ * Content rendered at the inline-start of the message's first text line,
115
+ * which word-flows after it (e.g. a used-skill chip — inline-level content
116
+ * no taller than a text line). The user bubble renders it inline within
117
+ * the text; the assistant bubble overlays it on the first markdown block's
118
+ * first line, which indents past it. The user bubble renders for the slot
119
+ * alone even when `text` is empty; an assistant message with no text
120
+ * renders the slot on its own line — above the streaming placeholder while
121
+ * the first token has not arrived yet.
122
+ */
123
+ beforeContent?: ReactNode;
113
124
  }
114
125
  /** Props for `UserMessageBubble`. */
115
126
  export interface UserMessageBubbleProps extends BaseMessageBubbleProps {
@@ -1 +1 @@
1
- {"version":3,"file":"message-bubble.d.ts","sourceRoot":"","sources":["../../src/models/message-bubble.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-bubble.d.ts","sourceRoot":"","sources":["../../src/models/message-bubble.ts"],"names":[],"mappings":"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"}
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.1.0-dev.447",
4
+ "version": "1.1.0-dev.456",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -20,8 +20,8 @@
20
20
  "react": "^19.0.0",
21
21
  "@tabler/icons-react": "^3.0.0",
22
22
  "react-markdown": "^10.1.0",
23
- "@epam/ai-dial-attachment-input": "1.1.0-dev.447",
24
- "@epam/ai-dial-chat-shared": "1.1.0-dev.447",
23
+ "@epam/ai-dial-attachment-input": "1.1.0-dev.456",
24
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.456",
25
25
  "@epam/ai-dial-ui-kit": "^0.14.0-dev.15"
26
26
  },
27
27
  "repository": {