@epam/ai-dial-conversation-messages 1.3.0-dev.6 → 1.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/AssistantMessageBubble.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAa/E,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAiOlE,CAAC"}
1
+ {"version":3,"file":"AssistantMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/AssistantMessageBubble.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAa/E,gHAAgH;AAChH,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAyOlE,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,CAyChD,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,CA0ChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/UserMessageBubble.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAS,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAQ1E,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAqKxD,CAAC"}
1
+ {"version":3,"file":"UserMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/UserMessageBubble.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,EAAE,EAAkB,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAmB1E,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAmOxD,CAAC"}
package/index.css CHANGED
@@ -1,2 +1,2 @@
1
1
  ._activeRating_ygoee_1{color:var(--ma-active-rating-text,var(--text-accent,#1d4ed8))}._userBubble_cq829_1{border-color:var(--cm-bubble-user-border,var(--stroke-secondary,#d1dbea));background:var(--cm-bubble-user-bg,var(--bg-layer-sunken,#eef1f7))}._collapsibleText_cq829_6{max-height:var(--cm-bubble-collapsed-height);transition:max-height .2s ease-out}._expandedText_cq829_11{max-height:var(--cm-bubble-expanded-height)}._collapsedText_cq829_15:after{content:"";pointer-events:none;background:linear-gradient(to bottom, var(--cm-bubble-fade-start,var(--shadow-xs-2,#161b2d08)), var(--cm-bubble-user-bg,var(--bg-layer-sunken,#eef1f7)));height:3rem;position:absolute;bottom:0;left:0;right:0}@media (prefers-reduced-motion:reduce){._collapsibleText_cq829_6{transition:none}}._startersDivider_cq829_26{border-color:var(--cm-starters-divider,var(--stroke-secondary,#d1dbea))}._text_cq829_30{color:var(--cm-bubble-text,var(--text-primary,#161b2d))}._button_tqo4d_3._button_tqo4d_3{color:var(--cm-reply-text,var(--text-primary,#161b2d));background:var(--cm-reply-background,var(--bg-layer-raised,#fcfcfc))!important}._button_tqo4d_3._button_tqo4d_3:hover{color:var(--cm-reply-text,var(--text-primary,#161b2d));background:var(--cm-reply-hover-background,var(--bg-layer-base,#f5f7fa))!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}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.start-0{inset-inline-start:0}.top-0{top:0}.z-50{z-index:50}.-me-1{margin-inline-end:-.25rem}.-ms-1{margin-inline-start:-.25rem}.ms-auto{margin-inline-start:auto}.mt-3{margin-top:.75rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.h-8{height:2rem}.min-h-8{min-height:2rem}.w-\[calc\(100\%\+8px\)\]{width:calc(100% + 8px)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-11{min-width:2.75rem}.min-w-\[40px\]{min-width:40px}.max-w-\[640px\]{max-width:640px}.max-w-\[calc\(100vw-16px\)\]{max-width:calc(100vw - 16px)}.max-w-full{max-width:100%}.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))}.resize{resize:both}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.overflow-hidden{overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-ee-2xl{border-end-end-radius:1rem}.rounded-ee-md{border-end-end-radius:.375rem}.rounded-es-2xl{border-end-start-radius:1rem}.rounded-se-2xl{border-start-end-radius:1rem}.rounded-se-md{border-start-end-radius:.375rem}.rounded-ss-2xl{border-start-start-radius:1rem}.border{border-width:1px}.border-t{border-top-width:1px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pe-1{padding-inline-end:.25rem}.ps-1{padding-inline-start:.25rem}.pt-5{padding-top:1.25rem}.text-start{text-align:start}.opacity-0{opacity:0}.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)}.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)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.group:hover .group-hover\:opacity-100{opacity:1}@media (max-width:1279px){.mobile\:h-11{height:2.75rem}.mobile\:min-h-11{min-height:2.75rem}}.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))}.\[\&\>\.cm-bubble-markdown\>div\>\*\:first-child\]\:indent-\[var\(--cm-bubble-first-line-indent\2c 0px\)\]>.cm-bubble-markdown>div>:first-child{text-indent:var(--cm-bubble-first-line-indent,0)}
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}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.start-0{inset-inline-start:0}.top-0{top:0}.z-50{z-index:50}.-me-1{margin-inline-end:-.25rem}.-ms-1{margin-inline-start:-.25rem}.ms-auto{margin-inline-start:auto}.mt-3{margin-top:.75rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.h-8{height:2rem}.min-h-8{min-height:2rem}.w-\[calc\(100\%\+8px\)\]{width:calc(100% + 8px)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-11{min-width:2.75rem}.min-w-\[40px\]{min-width:40px}.max-w-\[640px\]{max-width:640px}.max-w-\[calc\(100vw-16px\)\]{max-width:calc(100vw - 16px)}.max-w-full{max-width:100%}.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))}.resize{resize:both}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.overflow-hidden{overflow:hidden}.rounded-ee-2xl{border-end-end-radius:1rem}.rounded-ee-md{border-end-end-radius:.375rem}.rounded-es-2xl{border-end-start-radius:1rem}.rounded-se-2xl{border-start-end-radius:1rem}.rounded-se-md{border-start-end-radius:.375rem}.rounded-ss-2xl{border-start-start-radius:1rem}.border{border-width:1px}.border-t{border-top-width:1px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pe-1{padding-inline-end:.25rem}.ps-1{padding-inline-start:.25rem}.pt-5{padding-top:1.25rem}.text-start{text-align:start}.opacity-0{opacity:0}.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)}.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)}.group:hover .group-hover\:opacity-100{opacity:1}@media (max-width:1279px){.mobile\:h-11{height:2.75rem}.mobile\:min-h-11{min-height:2.75rem}}.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))}.\[\&\>\.cm-bubble-markdown\>div\>\*\:first-child\]\:indent-\[var\(--cm-bubble-first-line-indent\2c 0px\)\]>.cm-bubble-markdown>div>:first-child{text-indent:var(--cm-bubble-first-line-indent,0)}.\[\&\>div\>\*\:first-child\]\:mt-0>div>:first-child{margin-top:0}.\[\&\>div\>\*\:last-child\]\:mb-0>div>:last-child{margin-bottom:0}
package/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { StatusMessageBubble } from './components/MessageBubble/StatusMessageBub
6
6
  export { MessageActions } from './components/MessageActions/MessageActions';
7
7
  export { MessageSelectionReply } from './components/MessageSelectionReply/MessageSelectionReply';
8
8
  export { BubblePosition } from './types/bubble-position';
9
- export type { MessageBubbleProps, UserMessageBubbleProps, AssistantMessageBubbleProps, MessageBubbleStyles, MessageBubbleColors, MessageBubbleTypography, MessageBubbleLabels, AssistantMessageBubbleLabels, } from './models/message-bubble';
9
+ export type { MessageBubbleProps, UserMessageBubbleProps, AssistantMessageBubbleProps, MessageBubbleStyles, MessageBubbleColors, MessageBubbleTypography, MessageBubbleLabels, AssistantMessageBubbleLabels, UserMessageBubbleLabels, MarkdownContentLabels, } from './models/message-bubble';
10
10
  export type { MessageSelectionReplyColors, MessageSelectionReplyLabels, MessageSelectionReplyProps, MessageSelectionReplyStyles, MessageSelectionReplyTypography, } from './components/MessageSelectionReply/MessageSelectionReply';
11
11
  export type { StatusMessageBubbleLabels, StatusMessageBubbleProps, } from './components/MessageBubble/StatusMessageBubble';
12
12
  export type { MessageActionsProps, MessageActionColors, MessageActionLabels, MessageActionTooltips, MessageActionAriaLabels, } from './models/message-actions';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,0DAA0D,CAAC;AAClE,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,gDAAgD,CAAC;AACxD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,0DAA0D,CAAC;AAClE,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,gDAAgD,CAAC;AACxD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
package/index.js CHANGED
@@ -1,17 +1,17 @@
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, mergeClasses as c, useCollapsedText as l } from "@epam/ai-dial-chat-shared";
2
- import { AttachmentGroup as u } from "@epam/ai-dial-attachment-input";
3
- import { Button as d, ButtonVariant as f, DIAL_ICON_SIZE as p, DIAL_KIT_ICON_STROKE as m, ElementSize as h, GhostIconButton as g, InfoMessageNotification as _, LinkButton as v, NeutralButton as y } from "@epam/ai-dial-ui-kit";
4
- import { useCallback as b, useEffect as x, useId as S, useLayoutEffect as C, useMemo as ee, useRef as w, useState as T } from "react";
5
- import { IconArrowBackUp as E, IconChevronDown as D, IconChevronUp as O, IconMarkdown as k, IconPencilMinus as A, IconRefresh as j, IconThumbDown as M, IconThumbDownFilled as N, IconThumbUp as P, IconThumbUpFilled as te, IconTrashX as ne } from "@tabler/icons-react";
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
+ import { AttachmentGroup as p } from "@epam/ai-dial-attachment-input";
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 ee } from "@epam/ai-dial-ui-kit";
4
+ import { useCallback as S, useEffect as C, useId as w, useLayoutEffect as T, useMemo as E, useRef as D, useState as O } from "react";
5
+ import { IconArrowBackUp as k, IconChevronDown as A, IconChevronUp as te, IconMarkdown as ne, IconPencilMinus as j, IconRefresh as M, IconThumbDown as re, IconThumbDownFilled as ie, IconThumbUp as N, IconThumbUpFilled as P, IconTrashX as ae } from "@tabler/icons-react";
6
6
  import { Fragment as F, jsx as I, jsxs as L } from "react/jsx-runtime";
7
7
  import { createPortal as R } from "react-dom";
8
8
  //#region src/constants/public-class-names.ts
9
9
  var z = {
10
10
  userBubble: "dial-cm-user-bubble",
11
11
  assistantContent: "dial-cm-assistant-content"
12
- }, B = 4, V = (e) => {
13
- let t = w(null), [n, r] = T(0);
14
- return x(() => {
12
+ }, B = 4, oe = (e) => {
13
+ let t = D(null), [n, r] = O(0);
14
+ return C(() => {
15
15
  if (!e) return;
16
16
  let n = t.current;
17
17
  if (n == null) return;
@@ -24,242 +24,242 @@ var z = {
24
24
  slotRef: t,
25
25
  firstLineIndent: e ? `calc(${n}px + ${B}px)` : void 0
26
26
  };
27
- }, H = [
27
+ }, se = [
28
28
  "href",
29
29
  "src",
30
30
  "alt",
31
31
  "colspan",
32
32
  "rowspan",
33
33
  "start"
34
- ], U = new Set([
34
+ ], ce = new Set([
35
35
  "pre",
36
36
  "pre-wrap",
37
37
  "pre-line",
38
38
  "break-spaces"
39
- ]), W = (e) => {
39
+ ]), V = (e) => {
40
40
  let t = document.createElement(e.tagName.toLowerCase());
41
- H.forEach((n) => {
41
+ se.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 U.has(n) && (t.style.whiteSpace = "pre-wrap"), t;
47
- }, G = (e) => e instanceof SVGElement || window.getComputedStyle(e).display === "none", K = (e, t) => {
46
+ return ce.has(n) && (t.style.whiteSpace = "pre-wrap"), t;
47
+ }, le = (e) => e instanceof SVGElement || window.getComputedStyle(e).display === "none", H = (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) || G(e)) return null;
54
- let n = W(e);
53
+ if (!(e instanceof Element) || le(e)) return null;
54
+ let n = V(e);
55
55
  return e.childNodes.forEach((e) => {
56
- let r = K(e, t);
56
+ let r = H(e, t);
57
57
  r && n.appendChild(r);
58
58
  }), n;
59
- }, re = (e, t, n) => {
59
+ }, U = (e, t, n) => {
60
60
  let r = e, i = t;
61
61
  for (; i && i !== n && n.contains(i);) {
62
- let e = W(i);
62
+ let e = V(i);
63
63
  e.appendChild(r), r = e, i = i.parentElement;
64
64
  }
65
65
  return r;
66
- }, ie = (e, t) => {
66
+ }, W = (e, t) => {
67
67
  let n = e.commonAncestorContainer, r = n instanceof Element ? n : n.parentElement;
68
68
  if (!r) return null;
69
- let i = K(r, e);
70
- return i ? re(i, r.parentElement, t) : null;
71
- }, ae = (e) => {
69
+ let i = H(r, e);
70
+ return i ? U(i, r.parentElement, t) : null;
71
+ }, ue = (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 = ie(t.getRangeAt(n), e.currentTarget);
78
+ let i = W(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
- }, q = { activeRating: "_activeRating_ygoee_1" }, J = 2e3, oe = ({ role: e = a.User, onEdit: n, onEditHover: r, onDelete: o, onRegenerate: l, onCopy: u, onCopyMarkdown: d, onLike: f, onDislike: _, activeRating: v, isAlwaysVisible: y, isDisabled: x = !1, className: S, labels: C, colors: ee }) => {
83
- let { tooltips: w, ariaLabels: E } = C ?? {}, [D, O] = T(null), [R, z] = T(""), B = n != null || o != null || l != null || u != null || d != null || f != null || _ != null, V = s({ "--ma-active-rating-text": ee?.activeRatingText }), H = b(() => {
84
- u?.(), O("copy"), z(e === a.User ? E?.copiedMessageStatus ?? "Message copied to clipboard" : E?.copiedStatus ?? "Copied to clipboard"), setTimeout(() => O(null), J);
82
+ }, G = { activeRating: "_activeRating_ygoee_1" }, K = 2e3, de = ({ role: e = a.User, onEdit: n, onEditHover: r, onDelete: o, onRegenerate: c, onCopy: l, onCopyMarkdown: u, onLike: f, onDislike: p, activeRating: m, isAlwaysVisible: h, isDisabled: b = !1, className: x, labels: ee, colors: C }) => {
83
+ let { tooltips: w, ariaLabels: T } = ee ?? {}, [E, D] = O(null), [k, A] = O(""), te = n != null || o != null || c != null || l != null || u != null || f != null || p != null, R = s({ "--ma-active-rating-text": C?.activeRatingText }), z = S(() => {
84
+ l?.(), D("copy"), A(e === a.User ? T?.copiedMessageStatus ?? "Message copied to clipboard" : T?.copiedStatus ?? "Copied to clipboard"), setTimeout(() => D(null), K);
85
85
  }, [
86
- u,
86
+ l,
87
87
  e,
88
- E?.copiedStatus,
89
- E?.copiedMessageStatus
90
- ]), U = b(() => {
91
- d?.(), O("markdown"), z(E?.copiedMarkdownStatus ?? "Copied as Markdown to clipboard"), setTimeout(() => O(null), J);
92
- }, [d, E?.copiedMarkdownStatus]);
93
- return B ? /* @__PURE__ */ L("div", {
88
+ T?.copiedStatus,
89
+ T?.copiedMessageStatus
90
+ ]), B = S(() => {
91
+ u?.(), D("markdown"), A(T?.copiedMarkdownStatus ?? "Copied as Markdown to clipboard"), setTimeout(() => D(null), K);
92
+ }, [u, T?.copiedMarkdownStatus]);
93
+ return te ? /* @__PURE__ */ L("div", {
94
94
  role: "toolbar",
95
- "aria-label": E?.actionsGroup ?? "Message actions",
96
- style: V,
97
- className: c("flex gap-1", !y && "opacity-0 group-hover:opacity-100", S),
95
+ "aria-label": T?.actionsGroup ?? "Message actions",
96
+ style: R,
97
+ className: d("flex gap-1", !h && "opacity-0 group-hover:opacity-100", x),
98
98
  children: [/* @__PURE__ */ I("span", {
99
99
  role: "status",
100
100
  "aria-live": "polite",
101
101
  className: "sr-only",
102
- children: R
102
+ children: k
103
103
  }), e === a.User ? /* @__PURE__ */ L(F, { children: [
104
- u && /* @__PURE__ */ I(t, {
105
- iconSize: p.SM,
106
- onClick: H,
107
- size: h.Small,
108
- isCopied: D === "copy",
104
+ l && /* @__PURE__ */ I(t, {
105
+ iconSize: g.SM,
106
+ onClick: z,
107
+ size: v.Small,
108
+ isCopied: E === "copy",
109
109
  copyLabel: w?.copyMessage ?? "Copy message",
110
110
  copiedLabel: w?.copied ?? "Copied!",
111
- ariaLabel: E?.copyMessage ?? "Copy message",
112
- isDisabled: x
111
+ ariaLabel: T?.copyMessage ?? "Copy message",
112
+ isDisabled: b
113
113
  }),
114
- n && /* @__PURE__ */ I(g, {
115
- icon: /* @__PURE__ */ I(A, {
116
- size: p.SM,
114
+ n && /* @__PURE__ */ I(y, {
115
+ icon: /* @__PURE__ */ I(j, {
116
+ size: g.SM,
117
117
  "aria-hidden": !0,
118
- stroke: m
118
+ stroke: _
119
119
  }),
120
- size: h.Small,
121
- "aria-label": E?.editMessage ?? "Edit message",
120
+ size: v.Small,
121
+ "aria-label": T?.editMessage ?? "Edit message",
122
122
  tooltipProps: { tooltip: w?.edit ?? "Edit" },
123
123
  onClick: n,
124
124
  onMouseEnter: r,
125
125
  onFocus: r,
126
- disabled: x
126
+ disabled: b
127
127
  }),
128
- o && /* @__PURE__ */ I(g, {
129
- icon: /* @__PURE__ */ I(ne, {
130
- size: p.SM,
128
+ o && /* @__PURE__ */ I(y, {
129
+ icon: /* @__PURE__ */ I(ae, {
130
+ size: g.SM,
131
131
  "aria-hidden": !0,
132
- stroke: m
132
+ stroke: _
133
133
  }),
134
- size: h.Small,
135
- "aria-label": E?.deleteMessage ?? "Delete message",
134
+ size: v.Small,
135
+ "aria-label": T?.deleteMessage ?? "Delete message",
136
136
  tooltipProps: { tooltip: w?.delete ?? "Delete" },
137
137
  onClick: o,
138
- disabled: x
138
+ disabled: b
139
139
  })
140
140
  ] }) : /* @__PURE__ */ L(F, { children: [
141
- l && /* @__PURE__ */ I(g, {
142
- icon: /* @__PURE__ */ I(j, {
143
- size: p.SM,
141
+ c && /* @__PURE__ */ I(y, {
142
+ icon: /* @__PURE__ */ I(M, {
143
+ size: g.SM,
144
144
  "aria-hidden": !0,
145
- stroke: m
145
+ stroke: _
146
146
  }),
147
- size: h.Small,
148
- "aria-label": E?.regenerateResponse ?? "Regenerate response",
147
+ size: v.Small,
148
+ "aria-label": T?.regenerateResponse ?? "Regenerate response",
149
149
  tooltipProps: { tooltip: w?.regenerate ?? "Regenerate" },
150
- onClick: l,
151
- disabled: x
150
+ onClick: c,
151
+ disabled: b
152
152
  }),
153
- u && /* @__PURE__ */ I(t, {
154
- iconSize: p.SM,
155
- onClick: H,
156
- size: h.Small,
157
- isCopied: D === "copy",
153
+ l && /* @__PURE__ */ I(t, {
154
+ iconSize: g.SM,
155
+ onClick: z,
156
+ size: v.Small,
157
+ isCopied: E === "copy",
158
158
  copyLabel: w?.copy ?? "Copy",
159
159
  copiedLabel: w?.copied ?? "Copied!",
160
- ariaLabel: E?.copyResponse ?? "Copy response",
161
- isDisabled: x
160
+ ariaLabel: T?.copyResponse ?? "Copy response",
161
+ isDisabled: b
162
162
  }),
163
- d && /* @__PURE__ */ I(t, {
164
- iconSize: p.SM,
165
- onClick: U,
166
- size: h.Small,
167
- isCopied: D === "markdown",
168
- iconCopy: /* @__PURE__ */ I(k, {
169
- size: p.SM,
163
+ u && /* @__PURE__ */ I(t, {
164
+ iconSize: g.SM,
165
+ onClick: B,
166
+ size: v.Small,
167
+ isCopied: E === "markdown",
168
+ iconCopy: /* @__PURE__ */ I(ne, {
169
+ size: g.SM,
170
170
  "aria-hidden": !0,
171
- stroke: m
171
+ stroke: _
172
172
  }),
173
173
  copyLabel: w?.copyMarkdown ?? "Copy as Markdown",
174
174
  copiedLabel: w?.copiedMarkdown ?? "Copied!",
175
- ariaLabel: E?.copyAsMarkdown ?? "Copy as markdown",
176
- isDisabled: x
175
+ ariaLabel: T?.copyAsMarkdown ?? "Copy as markdown",
176
+ isDisabled: b
177
177
  }),
178
- f && /* @__PURE__ */ I(g, {
179
- icon: v === i.Like ? /* @__PURE__ */ I(te, {
180
- className: q.activeRating,
181
- size: p.SM,
178
+ f && /* @__PURE__ */ I(y, {
179
+ icon: m === i.Like ? /* @__PURE__ */ I(P, {
180
+ className: G.activeRating,
181
+ size: g.SM,
182
182
  "aria-hidden": !0
183
- }) : /* @__PURE__ */ I(P, {
184
- size: p.SM,
183
+ }) : /* @__PURE__ */ I(N, {
184
+ size: g.SM,
185
185
  "aria-hidden": !0,
186
- stroke: m
186
+ stroke: _
187
187
  }),
188
- size: h.Small,
189
- "aria-label": E?.likeResponse ?? "Like response",
190
- "aria-pressed": v === i.Like,
188
+ size: v.Small,
189
+ "aria-label": T?.likeResponse ?? "Like response",
190
+ "aria-pressed": m === i.Like,
191
191
  tooltipProps: { tooltip: w?.like ?? "Like" },
192
192
  onClick: f,
193
- disabled: x
193
+ disabled: b
194
194
  }),
195
- _ && /* @__PURE__ */ I(g, {
196
- icon: v === i.Dislike ? /* @__PURE__ */ I(N, {
197
- className: q.activeRating,
198
- size: p.SM,
195
+ p && /* @__PURE__ */ I(y, {
196
+ icon: m === i.Dislike ? /* @__PURE__ */ I(ie, {
197
+ className: G.activeRating,
198
+ size: g.SM,
199
199
  "aria-hidden": !0
200
- }) : /* @__PURE__ */ I(M, {
201
- size: p.SM,
200
+ }) : /* @__PURE__ */ I(re, {
201
+ size: g.SM,
202
202
  "aria-hidden": !0,
203
- stroke: m
203
+ stroke: _
204
204
  }),
205
- size: h.Small,
206
- "aria-label": E?.dislikeResponse ?? "Dislike response",
207
- "aria-pressed": v === i.Dislike,
205
+ size: v.Small,
206
+ "aria-label": T?.dislikeResponse ?? "Dislike response",
207
+ "aria-pressed": m === i.Dislike,
208
208
  tooltipProps: { tooltip: w?.dislike ?? "Dislike" },
209
- onClick: _,
210
- disabled: x
209
+ onClick: p,
210
+ disabled: b
211
211
  })
212
212
  ] })]
213
213
  }) : null;
214
- }, Y = {
214
+ }, q = {
215
215
  userBubble: "_userBubble_cq829_1",
216
216
  collapsibleText: "_collapsibleText_cq829_6",
217
217
  expandedText: "_expandedText_cq829_11",
218
218
  collapsedText: "_collapsedText_cq829_15",
219
219
  startersDivider: "_startersDivider_cq829_26",
220
220
  text: "_text_cq829_30"
221
- }, se = "[&>.cm-bubble-markdown>div>*:first-child]:indent-[var(--cm-bubble-first-line-indent,0px)]", X = ({ text: t, contentRef: i, styles: l, actions: d, hasAlwaysVisibleActions: f, isStreaming: p, attachments: m, beforeContent: h, responseFormat: g, afterContent: _, hasThinkingPlaceholder: v = !0, starters: b, onSelectStarter: x, deploymentIconUrl: S, deploymentDisplayName: C, markdownComponents: w, markdownClassNames: T, markdownUrlTransform: E, onAttachmentClick: D, onDownloadAll: O, onAttachmentRetry: k, codeBlockTheme: A, tableOnOpenInCanvas: j, labels: M, selectedAttachmentId: N }) => {
222
- let { colors: P, typography: te, className: ne, bubbleClassName: F } = l ?? {}, { attachmentClickLabel: R, attachmentDownloadLabel: B, attachmentRetryLabel: H, attachmentOpenInNewTabLabel: U, startersAriaLabel: W = "Quick reply buttons", thinkingLabel: G, codeBlockCopyLabel: K, codeBlockCopiedLabel: re, codeBlockDownloadLabel: ie, tableCopyLabel: q, tableCopiedLabel: J, tableDownloadCsvLabel: X, tableOpenInCanvasLabel: Z, tableDownloadFilename: Q, tableScrollRegionAriaLabel: ce, mathScrollRegionAriaLabel: $, assistantMessageAriaLabel: le = "Assistant message", deploymentIconFallbackLabel: ue = "AI" } = M ?? {}, de = ee(() => ({
223
- copyLabel: q,
224
- copiedLabel: J,
225
- downloadCsvLabel: X,
226
- openInCanvasLabel: Z
221
+ }, fe = "[&>.cm-bubble-markdown>div>*:first-child]:indent-[var(--cm-bubble-first-line-indent,0px)]", J = ({ text: t, contentRef: i, styles: c, actions: l, hasAlwaysVisibleActions: u, isStreaming: f, attachments: m, beforeContent: h, responseFormat: g, afterContent: _, hasThinkingPlaceholder: v = !0, starters: y, onSelectStarter: b, deploymentIconUrl: x, deploymentDisplayName: S, markdownComponents: C, markdownClassNames: w, markdownUrlTransform: T, onAttachmentClick: D, onDownloadAll: O, onAttachmentRetry: k, codeBlockTheme: A, tableOnOpenInCanvas: te, labels: ne, selectedAttachmentId: j }) => {
222
+ let { colors: M, typography: re, className: ie, bubbleClassName: N } = c ?? {}, { attachmentClickLabel: P, attachmentDownloadLabel: ae, attachmentRetryLabel: F, attachmentOpenInNewTabLabel: R, startersAriaLabel: B = "Quick reply buttons", thinkingLabel: se, codeBlockCopyLabel: ce, codeBlockCopiedLabel: V, codeBlockDownloadLabel: le, tableCopyLabel: H, tableCopiedLabel: U, tableDownloadCsvLabel: W, tableOpenInCanvasLabel: G, tableDownloadFilename: K, tableScrollRegionAriaLabel: J, mathScrollRegionAriaLabel: Y, assistantMessageAriaLabel: X = "Assistant message", deploymentIconFallbackLabel: pe = "AI" } = ne ?? {}, me = E(() => ({
223
+ copyLabel: H,
224
+ copiedLabel: U,
225
+ downloadCsvLabel: W,
226
+ openInCanvasLabel: G
227
227
  }), [
228
- q,
229
- J,
230
- X,
231
- Z
232
- ]), fe = p ? (m ?? []).filter((t) => t.type !== e.Audio) : m ?? [], { slotRef: pe, firstLineIndent: me } = V(h != null && !!t), he = s({
233
- "--cm-bubble-text": P?.text,
234
- "--cm-starters-divider": P?.startersDivider,
235
- "--cm-bubble-first-line-indent": me
236
- }), ge = c(Y.text, te?.fontClassName), _e = !!(S || C);
228
+ H,
229
+ U,
230
+ W,
231
+ G
232
+ ]), he = f ? (m ?? []).filter((t) => t.type !== e.Audio) : m ?? [], Z = !!t?.trim(), { slotRef: ge, firstLineIndent: _e } = oe(h != null && Z), ve = s({
233
+ "--cm-bubble-text": M?.text,
234
+ "--cm-starters-divider": M?.startersDivider,
235
+ "--cm-bubble-first-line-indent": _e
236
+ }), Q = d(q.text, re?.fontClassName), ye = !!(x || S);
237
237
  return /* @__PURE__ */ L("div", {
238
238
  role: "group",
239
- "aria-label": le,
240
- style: he,
241
- onCopy: ae,
242
- className: c("flex w-full items-start gap-3", ne),
243
- children: [_e && /* @__PURE__ */ I(n, {
244
- src: S,
239
+ "aria-label": X,
240
+ style: ve,
241
+ onCopy: ue,
242
+ className: d("flex w-full items-start gap-3", ie),
243
+ children: [ye && /* @__PURE__ */ I(n, {
244
+ src: x,
245
245
  size: 28,
246
- initialsName: C || ue,
247
- labels: { tooltip: C ?? ue }
246
+ initialsName: S || pe,
247
+ labels: { tooltip: S ?? pe }
248
248
  }), /* @__PURE__ */ L("div", {
249
249
  className: "flex w-full min-w-0 max-w-full flex-col items-start gap-5",
250
250
  children: [/* @__PURE__ */ L("div", {
251
- className: c("flex w-full min-w-0 max-w-full flex-col items-start gap-4", F),
251
+ className: d("flex w-full min-w-0 max-w-full flex-col items-start gap-4", N),
252
252
  children: [
253
- h != null && !t && /* @__PURE__ */ I("div", {
253
+ h != null && !Z && /* @__PURE__ */ I("div", {
254
254
  className: "min-w-0",
255
255
  children: h
256
256
  }),
257
- (t || p && v) && /* @__PURE__ */ L("div", {
257
+ (Z || f && v) && /* @__PURE__ */ L("div", {
258
258
  "aria-live": "polite",
259
259
  "aria-atomic": "false",
260
- className: c(ge, "relative min-w-0 max-w-full text-start", h != null && t && se, z.assistantContent),
261
- children: [h != null && t && /* @__PURE__ */ I("div", {
262
- ref: pe,
260
+ className: d(Q, "relative min-w-0 max-w-full text-start", h != null && Z && fe, z.assistantContent),
261
+ children: [h != null && Z && /* @__PURE__ */ I("div", {
262
+ ref: ge,
263
263
  className: "absolute start-0 top-0",
264
264
  children: h
265
265
  }), /* @__PURE__ */ I("div", {
@@ -268,25 +268,25 @@ var z = {
268
268
  children: /* @__PURE__ */ I(r, {
269
269
  content: t ?? "",
270
270
  isPlainText: g === o.PlainText,
271
- isStreaming: p,
272
- thinkingLabel: G,
273
- components: w,
274
- classNames: T,
275
- urlTransform: E,
276
- codeBlockCopyLabel: K,
277
- codeBlockCopiedLabel: re,
278
- codeBlockDownloadLabel: ie,
271
+ isStreaming: f,
272
+ thinkingLabel: se,
273
+ components: C,
274
+ classNames: w,
275
+ urlTransform: T,
276
+ codeBlockCopyLabel: ce,
277
+ codeBlockCopiedLabel: V,
278
+ codeBlockDownloadLabel: le,
279
279
  codeBlockTheme: A,
280
- tableActionLabels: de,
281
- tableDownloadFilename: Q,
282
- tableOnOpenInCanvas: j,
283
- tableScrollRegionAriaLabel: ce,
284
- mathScrollRegionAriaLabel: $
280
+ tableActionLabels: me,
281
+ tableDownloadFilename: K,
282
+ tableOnOpenInCanvas: te,
283
+ tableScrollRegionAriaLabel: J,
284
+ mathScrollRegionAriaLabel: Y
285
285
  })
286
286
  })]
287
287
  }),
288
- /* @__PURE__ */ I(u, {
289
- attachments: fe,
288
+ /* @__PURE__ */ I(p, {
289
+ attachments: he,
290
290
  onAttachmentClick: D ? (e) => {
291
291
  let t = m?.find((t) => t.id === e);
292
292
  t && D(t);
@@ -294,144 +294,183 @@ var z = {
294
294
  onDownloadAll: O,
295
295
  onRetry: k,
296
296
  labels: {
297
- clickLabel: R,
298
- downloadLabel: B,
299
- retryLabel: H,
300
- openInNewTabLabel: U
297
+ clickLabel: P,
298
+ downloadLabel: ae,
299
+ retryLabel: F,
300
+ openInNewTabLabel: R
301
301
  },
302
- selectedAttachmentId: N
302
+ selectedAttachmentId: j
303
303
  }),
304
304
  _,
305
- /* @__PURE__ */ I(oe, {
306
- ...d,
307
- isAlwaysVisible: f,
305
+ /* @__PURE__ */ I(de, {
306
+ ...l,
307
+ isAlwaysVisible: u,
308
308
  role: a.Assistant
309
309
  })
310
310
  ]
311
- }), b && b.length > 0 && x && /* @__PURE__ */ I("div", {
311
+ }), y && y.length > 0 && b && /* @__PURE__ */ I("div", {
312
312
  role: "list",
313
- "aria-label": W,
314
- className: c("flex w-full flex-wrap gap-2 border-t pt-5", Y.startersDivider),
315
- children: b.map((e, t) => /* @__PURE__ */ I("div", {
313
+ "aria-label": B,
314
+ className: d("flex w-full flex-wrap gap-2 border-t pt-5", q.startersDivider),
315
+ children: y.map((e, t) => /* @__PURE__ */ I("div", {
316
316
  role: "listitem",
317
317
  className: "min-w-[40px]",
318
- children: /* @__PURE__ */ I(y, {
318
+ children: /* @__PURE__ */ I(ee, {
319
319
  label: e.title,
320
320
  className: "min-w-[40px]",
321
- onClick: () => x(e)
321
+ onClick: () => b(e)
322
322
  })
323
323
  }, t))
324
324
  })]
325
325
  })]
326
326
  });
327
- }, Z = ({ labels: { titleText: e = "Model switched.", bodyText: t } }) => /* @__PURE__ */ I("div", {
327
+ }, Y = ({ labels: { titleText: e = "Model switched.", bodyText: t } }) => /* @__PURE__ */ I("div", {
328
328
  role: "status",
329
329
  "aria-live": "polite",
330
- children: /* @__PURE__ */ I(_, {
330
+ children: /* @__PURE__ */ I(b, {
331
331
  title: e,
332
332
  message: t,
333
333
  textClassName: "flex-row flex-wrap gap-1"
334
334
  })
335
- }), Q = /* @__PURE__ */ function(e) {
335
+ }), X = /* @__PURE__ */ function(e) {
336
336
  return e.Bottom = "Bottom", e.Top = "Top", e;
337
- }({}), ce = 10, $ = ({ text: e, contentRef: t, position: n = Q.Bottom, styles: r, actions: i, hasAlwaysVisibleActions: o, attachments: d, collapsedLineCount: f = ce, labels: m, textSegments: g, onAttachmentClick: _, onDownloadAll: y, onAttachmentRetry: b, selectedAttachmentId: x }) => {
338
- let { colors: C, typography: ee, className: w, bubbleClassName: T } = r ?? {}, { showMoreLabel: E = "Show more", showLessLabel: k = "Show less", showMoreAriaLabel: A, showLessAriaLabel: j, attachmentClickLabel: M, attachmentDownloadLabel: N, attachmentRetryLabel: P, attachmentOpenInNewTabLabel: te, userMessageAriaLabel: ne = "User message" } = m ?? {}, { textRef: R, isTextCollapsed: B, isOverflowing: V, collapsedMaxHeight: H, expandedMaxHeight: U, isCollapsed: W, toggleCollapsed: G } = l({
337
+ }({}), pe = 10, me = "[&>div>*:first-child]:mt-0 [&>div>*:last-child]:mb-0", he = [], Z = ({ text: e, contentRef: t, position: n = X.Bottom, styles: i, actions: o, hasAlwaysVisibleActions: m, attachments: h, collapsedLineCount: _ = pe, labels: y, textSegments: b, onAttachmentClick: ee, onDownloadAll: S, onAttachmentRetry: C, selectedAttachmentId: T, markdownClassNames: D, markdownUrlTransform: O, codeBlockTheme: k, tableOnOpenInCanvas: ne }) => {
338
+ let { colors: j, typography: M, className: re, bubbleClassName: ie } = i ?? {}, { showMoreLabel: N = "Show more", showLessLabel: P = "Show less", showMoreAriaLabel: ae, showLessAriaLabel: R, attachmentClickLabel: B, attachmentDownloadLabel: oe, attachmentRetryLabel: se, attachmentOpenInNewTabLabel: ce, userMessageAriaLabel: V = "User message", codeBlockCopyLabel: le, codeBlockCopiedLabel: H, codeBlockDownloadLabel: U, tableCopyLabel: W, tableCopiedLabel: G, tableDownloadCsvLabel: K, tableOpenInCanvasLabel: fe, tableDownloadFilename: J, tableScrollRegionAriaLabel: Y, mathScrollRegionAriaLabel: Z } = y ?? {}, ge = E(() => ({
339
+ copyLabel: W,
340
+ copiedLabel: G,
341
+ downloadCsvLabel: K,
342
+ openInCanvasLabel: fe
343
+ }), [
344
+ W,
345
+ G,
346
+ K,
347
+ fe
348
+ ]), { textRef: _e, isTextCollapsed: ve, isOverflowing: Q, collapsedMaxHeight: ye, expandedMaxHeight: be, isCollapsed: $, toggleCollapsed: xe } = f({
339
349
  text: e ?? "",
340
- collapsedLineCount: f
341
- }), K = s({
342
- "--cm-bubble-user-bg": C?.userBackground,
343
- "--cm-bubble-user-border": C?.userBorder,
344
- "--cm-bubble-fade-start": C?.fadeStart,
345
- "--cm-bubble-text": C?.text,
346
- "--cm-bubble-collapsed-height": V ? `${H}px` : void 0,
347
- "--cm-bubble-expanded-height": V ? `${U}px` : void 0
348
- }), re = n === Q.Top ? "rounded-ee-md rounded-se-2xl" : "rounded-se-md rounded-ee-2xl", ie = c(Y.text, ee?.fontClassName), q = A ?? E, J = j ?? k, se = W ? E : k, X = W ? q : J, Z = W ? D : O, $ = S();
350
+ collapsedLineCount: _
351
+ }), Se = s({
352
+ "--cm-bubble-user-bg": j?.userBackground,
353
+ "--cm-bubble-user-border": j?.userBorder,
354
+ "--cm-bubble-fade-start": j?.fadeStart,
355
+ "--cm-bubble-text": j?.text,
356
+ "--cm-bubble-collapsed-height": Q ? `${ye}px` : void 0,
357
+ "--cm-bubble-expanded-height": Q ? `${be}px` : void 0
358
+ }), Ce = n === X.Top ? "rounded-ee-md rounded-se-2xl" : "rounded-se-md rounded-ee-2xl", we = d(q.text, M?.fontClassName), { markdownSource: Te, segmentRehypePlugins: Ee, segmentComponents: De } = E(() => {
359
+ if (b == null) return {
360
+ markdownSource: e ?? "",
361
+ segmentRehypePlugins: he,
362
+ segmentComponents: void 0
363
+ };
364
+ let { source: t, inlineSegments: n } = c(b);
365
+ return {
366
+ markdownSource: t,
367
+ segmentRehypePlugins: [u(n)],
368
+ segmentComponents: l(n)
369
+ };
370
+ }, [e, b]), Oe = ae ?? N, ke = R ?? P, Ae = $ ? N : P, je = $ ? Oe : ke, Me = $ ? A : te, Ne = w();
349
371
  return /* @__PURE__ */ I("div", {
350
372
  role: "group",
351
- "aria-label": ne,
352
- style: K,
353
- onCopy: ae,
354
- className: c("flex w-full", w),
373
+ "aria-label": V,
374
+ style: Se,
375
+ onCopy: ue,
376
+ className: d("flex w-full", re),
355
377
  children: /* @__PURE__ */ L("div", {
356
378
  className: "ms-auto flex w-fit min-w-0 max-w-full flex-col items-end gap-4",
357
379
  children: [
358
- /* @__PURE__ */ I(u, {
359
- attachments: d ?? [],
360
- onAttachmentClick: _ ? (e) => {
361
- let t = d?.find((t) => t.id === e);
362
- t && _(t);
380
+ /* @__PURE__ */ I(p, {
381
+ attachments: h ?? [],
382
+ onAttachmentClick: ee ? (e) => {
383
+ let t = h?.find((t) => t.id === e);
384
+ t && ee(t);
363
385
  } : void 0,
364
- onDownloadAll: y,
365
- onRetry: b,
386
+ onDownloadAll: S,
387
+ onRetry: C,
366
388
  labels: {
367
- clickLabel: M,
368
- downloadLabel: N,
369
- retryLabel: P,
370
- openInNewTabLabel: te
389
+ clickLabel: B,
390
+ downloadLabel: oe,
391
+ retryLabel: se,
392
+ openInNewTabLabel: ce
371
393
  },
372
394
  styles: { className: "max-w-[640px]" },
373
- selectedAttachmentId: x
395
+ selectedAttachmentId: T
374
396
  }),
375
397
  e && /* @__PURE__ */ I("div", {
376
- className: c(Y.userBubble, "flex w-fit items-center justify-end rounded-es-2xl rounded-ss-2xl border px-6 py-4", re, T, z.userBubble),
398
+ className: d(q.userBubble, "flex w-fit items-center justify-end rounded-es-2xl rounded-ss-2xl border px-6 py-4", Ce, ie, z.userBubble),
377
399
  children: /* @__PURE__ */ L("div", {
378
400
  className: "flex min-w-0 flex-col items-start",
379
401
  children: [/* @__PURE__ */ I("div", {
380
- id: $,
402
+ id: Ne,
381
403
  ref: t,
382
- className: c("relative -me-1 -ms-1 w-[calc(100%+8px)] overflow-hidden pe-1 ps-1", V && Y.collapsibleText, V && !W && Y.expandedText, B && Y.collapsedText),
383
- children: /* @__PURE__ */ I("p", {
384
- ref: R,
385
- className: c(ie, "whitespace-pre-wrap text-start [overflow-wrap:anywhere]"),
386
- children: g ?? e
404
+ className: d("relative -me-1 -ms-1 w-[calc(100%+8px)] overflow-hidden pe-1 ps-1", Q && q.collapsibleText, Q && !$ && q.expandedText, ve && q.collapsedText),
405
+ children: /* @__PURE__ */ I("div", {
406
+ ref: _e,
407
+ className: d(we, "min-w-0 max-w-full text-start", me),
408
+ children: /* @__PURE__ */ I(r, {
409
+ content: Te,
410
+ isRawHtmlEnabled: !1,
411
+ rehypePlugins: Ee,
412
+ components: De,
413
+ classNames: D,
414
+ urlTransform: O,
415
+ codeBlockCopyLabel: le,
416
+ codeBlockCopiedLabel: H,
417
+ codeBlockDownloadLabel: U,
418
+ codeBlockTheme: k,
419
+ tableActionLabels: ge,
420
+ tableDownloadFilename: J,
421
+ tableOnOpenInCanvas: ne,
422
+ tableScrollRegionAriaLabel: Y,
423
+ mathScrollRegionAriaLabel: Z
424
+ })
387
425
  })
388
- }), V && /* @__PURE__ */ I(v, {
389
- label: /* @__PURE__ */ I(F, { children: se }),
390
- iconBefore: /* @__PURE__ */ I(Z, {
391
- size: p.SM,
426
+ }), Q && /* @__PURE__ */ I(x, {
427
+ label: /* @__PURE__ */ I(F, { children: Ae }),
428
+ iconBefore: /* @__PURE__ */ I(Me, {
429
+ size: g.SM,
392
430
  "aria-hidden": "true"
393
431
  }),
394
- "aria-label": X,
395
- "aria-expanded": !W,
396
- "aria-controls": $,
432
+ "aria-label": je,
433
+ "aria-expanded": !$,
434
+ "aria-controls": Ne,
397
435
  className: "mt-3",
398
- onClick: G,
399
- size: h.Small
436
+ onClick: xe,
437
+ size: v.Small
400
438
  })]
401
439
  })
402
440
  }),
403
- /* @__PURE__ */ I(oe, {
404
- ...i,
405
- isAlwaysVisible: o,
441
+ /* @__PURE__ */ I(de, {
442
+ ...o,
443
+ isAlwaysVisible: m,
406
444
  role: a.User
407
445
  })
408
446
  ]
409
447
  })
410
448
  });
411
- }, le = ({ role: e, beforeContent: t, textSegments: n, onAttachmentClick: r, responseFormat: i, markdownComponents: o, markdownUrlTransform: s, ...c }) => e === a.Status ? /* @__PURE__ */ I(Z, { labels: {
449
+ }, ge = ({ role: e, beforeContent: t, textSegments: n, onAttachmentClick: r, responseFormat: i, markdownComponents: o, markdownUrlTransform: s, ...c }) => e === a.Status ? /* @__PURE__ */ I(Y, { labels: {
412
450
  titleText: c.labels?.statusTitleText,
413
451
  bodyText: c.labels?.statusBodyText ?? ""
414
- } }) : e === a.User ? /* @__PURE__ */ I($, {
452
+ } }) : e === a.User ? /* @__PURE__ */ I(Z, {
415
453
  ...c,
416
454
  textSegments: n,
455
+ markdownUrlTransform: s,
417
456
  onAttachmentClick: r
418
- }) : /* @__PURE__ */ I(X, {
457
+ }) : /* @__PURE__ */ I(J, {
419
458
  ...c,
420
459
  beforeContent: t,
421
460
  responseFormat: i,
422
461
  markdownComponents: o,
423
462
  markdownUrlTransform: s,
424
463
  onAttachmentClick: r
425
- }), ue = { button: "_button_tqo4d_3" }, de = ({ rect: e, actionRef: t, onReply: n, addedRevision: r, labels: i, styles: a, portalContainer: o }) => {
426
- let { colors: l, typography: u, className: p, buttonClassName: g } = a ?? {}, _ = u?.fontClassName ?? "dial-small-text", v = o === void 0 ? typeof document > "u" ? null : document.body : o, y = s({
427
- "--cm-reply-background": l?.background,
428
- "--cm-reply-hover-background": l?.hoverBackground,
429
- "--cm-reply-text": l?.text
430
- }), [b, x] = T({
464
+ }), _e = { button: "_button_tqo4d_3" }, ve = ({ rect: e, actionRef: t, onReply: n, addedRevision: r, labels: i, styles: a, portalContainer: o }) => {
465
+ let { colors: c, typography: l, className: u, buttonClassName: f } = a ?? {}, p = l?.fontClassName ?? "dial-small-text", g = o === void 0 ? typeof document > "u" ? null : document.body : o, y = s({
466
+ "--cm-reply-background": c?.background,
467
+ "--cm-reply-hover-background": c?.hoverBackground,
468
+ "--cm-reply-text": c?.text
469
+ }), [b, x] = O({
431
470
  x: 0,
432
471
  y: 0
433
472
  });
434
- return C(() => {
473
+ return T(() => {
435
474
  if (!e || !t.current) return;
436
475
  let n = t.current.getBoundingClientRect(), r = window.visualViewport, i = r?.offsetLeft ?? 0, a = r?.offsetTop ?? 0, o = r?.width ?? document.documentElement.clientWidth, s = r?.height ?? document.documentElement.clientHeight, c = e.top - n.height - 8 >= a + 8 ? e.top - n.height - 8 : e.bottom + 8;
437
476
  x({
@@ -441,28 +480,28 @@ var z = {
441
480
  }, [
442
481
  e,
443
482
  t,
444
- v,
445
- p,
446
483
  g,
447
- _,
484
+ u,
485
+ f,
486
+ p,
448
487
  i.reply
449
- ]), v ? R(/* @__PURE__ */ L(F, { children: [e && /* @__PURE__ */ I("div", {
488
+ ]), g ? R(/* @__PURE__ */ L(F, { children: [e && /* @__PURE__ */ I("div", {
450
489
  ref: t,
451
- className: c("fixed left-0 top-0 z-50 max-w-[calc(100vw-16px)]", p),
490
+ className: d("fixed left-0 top-0 z-50 max-w-[calc(100vw-16px)]", u),
452
491
  style: {
453
492
  ...y,
454
493
  transform: `translate(${b.x}px, ${b.y}px)`
455
494
  },
456
- children: /* @__PURE__ */ I(d, {
457
- variant: f.Neutral,
458
- size: h.Small,
495
+ children: /* @__PURE__ */ I(m, {
496
+ variant: h.Neutral,
497
+ size: v.Small,
459
498
  label: i.reply,
460
499
  onClick: n,
461
- textClassName: _,
462
- className: c(ue.button, "h-8 min-h-8 min-w-11 px-2 shadow-lg mobile:h-11 mobile:min-h-11", g),
463
- iconAfter: /* @__PURE__ */ I(E, {
500
+ textClassName: p,
501
+ className: d(_e.button, "h-8 min-h-8 min-w-11 px-2 shadow-lg mobile:h-11 mobile:min-h-11", f),
502
+ iconAfter: /* @__PURE__ */ I(k, {
464
503
  size: 16,
465
- stroke: m,
504
+ stroke: _,
466
505
  "aria-hidden": "true",
467
506
  className: "rtl:scale-x-[-1]"
468
507
  })
@@ -472,7 +511,7 @@ var z = {
472
511
  "aria-live": "polite",
473
512
  className: "sr-only",
474
513
  children: e ? i.selectionAvailable : r > 0 ? /* @__PURE__ */ I("span", { children: i.attachmentAdded }, r) : null
475
- })] }), v) : null;
514
+ })] }), g) : null;
476
515
  };
477
516
  //#endregion
478
- export { X as AssistantMessageBubble, Q as BubblePosition, z as CONVERSATION_MESSAGES_CLASS, oe as MessageActions, le as MessageBubble, de as MessageSelectionReply, Z as StatusMessageBubble, $ as UserMessageBubble };
517
+ export { J as AssistantMessageBubble, X as BubblePosition, z as CONVERSATION_MESSAGES_CLASS, de as MessageActions, ge as MessageBubble, ve as MessageSelectionReply, Y as StatusMessageBubble, Z as UserMessageBubble };
@@ -1,4 +1,4 @@
1
- import { CodeBlockTheme, DisplayAttachment, MarkdownRendererClassNames, MessageRole, ResponseFormat, StarterOption } from '@epam/ai-dial-chat-shared';
1
+ import { CodeBlockTheme, DisplayAttachment, MarkdownRendererClassNames, MessageRole, ResponseFormat, StarterOption, TextSegment } from '@epam/ai-dial-chat-shared';
2
2
  import { ReactNode, Ref } from 'react';
3
3
  import { Components } from 'react-markdown';
4
4
  import { BubblePosition } from '../types/bubble-position';
@@ -59,12 +59,8 @@ export interface MessageBubbleLabels {
59
59
  /** Body text for the status banner. Required when `role === MessageRole.Status`. */
60
60
  statusBodyText?: string;
61
61
  }
62
- /** Localised labels for the `AssistantMessageBubble` component. */
63
- export interface AssistantMessageBubbleLabels extends MessageBubbleLabels {
64
- /** aria-label for the quick-reply list. Defaults to `"Quick reply buttons"`. */
65
- startersAriaLabel?: string;
66
- /** Shimmer placeholder shown while streaming and message text is empty. Defaults to `'Thinking'`. */
67
- thinkingLabel?: string;
62
+ /** Localised labels for markdown content (code blocks, tables, formulas) inside a message bubble. */
63
+ export interface MarkdownContentLabels {
68
64
  /** aria-label for the code block copy button. */
69
65
  codeBlockCopyLabel?: string;
70
66
  /** aria-label for the code block copy button after copying. */
@@ -85,6 +81,16 @@ export interface AssistantMessageBubbleLabels extends MessageBubbleLabels {
85
81
  tableScrollRegionAriaLabel?: string;
86
82
  /** Accessible label for a block formula's scrollable region. */
87
83
  mathScrollRegionAriaLabel?: string;
84
+ }
85
+ /** Localised labels for the `UserMessageBubble` component. */
86
+ export interface UserMessageBubbleLabels extends MessageBubbleLabels, MarkdownContentLabels {
87
+ }
88
+ /** Localised labels for the `AssistantMessageBubble` component. */
89
+ export interface AssistantMessageBubbleLabels extends MessageBubbleLabels, MarkdownContentLabels {
90
+ /** aria-label for the quick-reply list. Defaults to `"Quick reply buttons"`. */
91
+ startersAriaLabel?: string;
92
+ /** Shimmer placeholder shown while streaming and message text is empty. Defaults to `'Thinking'`. */
93
+ thinkingLabel?: string;
88
94
  /** Fallback aria-label for the deployment icon. Defaults to `'AI'`. */
89
95
  deploymentIconFallbackLabel?: string;
90
96
  }
@@ -114,6 +120,18 @@ interface BaseMessageBubbleProps {
114
120
  onAttachmentRetry?: (id: string) => void;
115
121
  /** ID of the attachment currently open in the canvas panel, if any. Renders that tile's selected visual state. */
116
122
  selectedAttachmentId?: string;
123
+ /** Per-element markdown typography classes. Defaults to the renderer's full-size scale; pass `COMPACT_MARKDOWN_CLASS_NAMES` for the smaller body scale. */
124
+ markdownClassNames?: MarkdownRendererClassNames;
125
+ /**
126
+ * Rewrites markdown `href`/`src` values before they are rendered. Forwarded
127
+ * to `MDMessageViewer`. Hosts use this to map DIAL file ids to download URLs.
128
+ * Defaults to no extra rewrite.
129
+ */
130
+ markdownUrlTransform?: (url: string) => string;
131
+ /** Syntax highlight theme for code blocks. Defaults to `'dark'`. */
132
+ codeBlockTheme?: CodeBlockTheme;
133
+ /** Opens serialized Markdown table content in the host canvas. */
134
+ tableOnOpenInCanvas?: (markdown: string) => void;
117
135
  }
118
136
  /** Props for `UserMessageBubble`. */
119
137
  export interface UserMessageBubbleProps extends BaseMessageBubbleProps {
@@ -122,15 +140,16 @@ export interface UserMessageBubbleProps extends BaseMessageBubbleProps {
122
140
  /** Maximum number of text lines shown while a long user message is collapsed. Defaults to `10`. */
123
141
  collapsedLineCount?: number;
124
142
  /**
125
- * Ordered content replacing the plain-text render when present —
126
- * interleaved plain-text runs and inline elements (e.g. skill-mention
127
- * chips at their text position), rendered in place of `text` inside the
128
- * same paragraph. `text` is still required alongside this: it remains the
129
- * identity/measurement input for the collapse-height calculation
130
- * (`useCollapsedText`), even though `textSegments` is what's visually
131
- * rendered. Absent renders `text` directly, byte-identical to today.
143
+ * Ordered content rendered in place of `text` when present: markdown
144
+ * string runs interleaved with inline segments (e.g. skill-mention chips),
145
+ * each rendered at its position within the markdown output, or as its
146
+ * literal `text` inside code and link text. `text` is still required
147
+ * alongside this: it remains the identity input for the collapse state
148
+ * (`useCollapsedText`). Absent renders `text` as markdown directly.
132
149
  */
133
- textSegments?: ReactNode[];
150
+ textSegments?: TextSegment[];
151
+ /** Localised labels for the toggle button, attachment rows, and markdown code/table actions. */
152
+ labels?: UserMessageBubbleLabels;
134
153
  }
135
154
  /** Props for `AssistantMessageBubble`. */
136
155
  export interface AssistantMessageBubbleProps extends BaseMessageBubbleProps {
@@ -155,14 +174,6 @@ export interface AssistantMessageBubbleProps extends BaseMessageBubbleProps {
155
174
  beforeContent?: ReactNode;
156
175
  /** react-markdown component overrides. Use to inject custom renderers (e.g. citation markers) into markdown elements. */
157
176
  markdownComponents?: Components;
158
- /** Per-element markdown typography classes. Defaults to the renderer's full-size scale; pass `COMPACT_MARKDOWN_CLASS_NAMES` for the smaller body scale. */
159
- markdownClassNames?: MarkdownRendererClassNames;
160
- /**
161
- * Rewrites markdown `href`/`src` values before they are rendered. Forwarded
162
- * to `MDMessageViewer`. Hosts use this to map DIAL file ids to download URLs.
163
- * Defaults to no extra rewrite.
164
- */
165
- markdownUrlTransform?: (url: string) => string;
166
177
  /** Quick-reply buttons rendered below the message text when non-empty. */
167
178
  starters?: StarterOption[];
168
179
  /** Fires with the clicked `StarterOption`. */
@@ -175,10 +186,6 @@ export interface AssistantMessageBubbleProps extends BaseMessageBubbleProps {
175
186
  deploymentIconUrl?: string;
176
187
  /** Deployment name used as the icon's accessible label. */
177
188
  deploymentDisplayName?: string;
178
- /** Syntax highlight theme for code blocks. Defaults to `'dark'`. */
179
- codeBlockTheme?: CodeBlockTheme;
180
- /** Opens serialized Markdown table content in the host canvas. */
181
- tableOnOpenInCanvas?: (markdown: string) => void;
182
189
  /** Localised labels for quick replies, the thinking indicator, and code block copy actions. */
183
190
  labels?: AssistantMessageBubbleLabels;
184
191
  }
@@ -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":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,0DAA0D;AAC1D,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,8DAA8D;IAC9D,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yIAAyI;IACzI,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4DAA4D;IAC5D,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,mHAAmH;IACnH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qGAAqG;AACrG,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qDAAqD;IACrD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,gEAAgE;IAChE,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBACf,SAAQ,mBAAmB,EAAE,qBAAqB;CAAG;AAEvD,mEAAmE;AACnE,MAAM,WAAW,4BACf,SAAQ,mBAAmB,EAAE,qBAAqB;IAClD,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,qEAAqE;AACrE,UAAU,sBAAsB;IAC9B,gFAAgF;IAChF,UAAU,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACjC,kHAAkH;IAClH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,wEAAwE;IACxE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,kEAAkE;IAClE,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5D,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAC3D,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,kHAAkH;IAClH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2JAA2J;IAC3J,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IAChD;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,oEAAoE;IACpE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,qCAAqC;AACrC,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mGAAmG;IACnG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,gGAAgG;IAChG,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,0CAA0C;AAC1C,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,yHAAyH;IACzH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,2FAA2F;IAC3F,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gKAAgK;IAChK,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,+FAA+F;IAC/F,MAAM,CAAC,EAAE,4BAA4B,CAAC;CACvC;AAED,kGAAkG;AAClG,MAAM,MAAM,kBAAkB,GAAG,2BAA2B,GAC1D,IAAI,CACF,sBAAsB,EACtB,UAAU,GAAG,oBAAoB,GAAG,cAAc,CACnD,GAAG;IACF,8DAA8D;IAC9D,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC"}
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.6",
4
+ "version": "1.3.0-dev.61",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -19,13 +19,13 @@
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.6"
22
+ "@epam/ai-dial-attachment-input": "1.3.0-dev.61"
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.6",
28
- "@epam/ai-dial-ui-kit": "^0.15.0"
27
+ "@epam/ai-dial-chat-shared": "1.3.0-dev.61",
28
+ "@epam/ai-dial-ui-kit": "^0.15.4"
29
29
  },
30
30
  "repository": {
31
31
  "type": "git",