stream-chat-react 12.12.0 → 12.13.0

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.
@@ -16187,10 +16187,10 @@ function Parse(source, customConvertors) {
16187
16187
  var XMLNodes = SourceToXML(source);
16188
16188
  return XMLtoMMLTree(XMLNodes, customConvertors);
16189
16189
  }
16190
- var import_react214, import_parse_xml, import_dayjs4, import_sanitize_url4, import_react_markdown3, import_linkifyjs3, import_ical_expander, import_react_virtuoso2, import_isBetween, runtime_1, MMLTag, Card2, Icon3, CardHeader2, CardBody, ButtonList, SvgIcon, IconGoogle, IconMicrosoft, IconApple, isIE, getCurrentURL, CALENDAR_SERVICES, AddToCalendar, Button, Carousel, CarouselItem, Col, Error$1, Image2, Input, SIZE, Progress, Loading, truncate, matchMarkdownLinks2, MDLinkRender, markDownRenderers2, allowedMarkups, MD, Number2, Row, ITEMS_PER_PAGE, VERTICAL_COMPENSATION, INITIAL_INDEX, VIRTUOSO_START_INDEX, DatePickerSelect, getItemData, DatePickerDate, getItemData$1, DatePickerTime, DatePicker, setupIcalFilter, Scheduler, Success, Text, converters, Tree, MML;
16190
+ var import_react206, import_parse_xml, import_dayjs4, import_sanitize_url4, import_react_markdown3, import_linkifyjs3, import_ical_expander, import_react_virtuoso2, import_isBetween, runtime_1, MMLTag, Card2, Icon3, CardHeader2, CardBody, ButtonList, SvgIcon, IconGoogle, IconMicrosoft, IconApple, isIE, getCurrentURL, CALENDAR_SERVICES, AddToCalendar, Button, Carousel, CarouselItem, Col, Error$1, Image2, Input, SIZE, Progress, Loading, truncate, matchMarkdownLinks2, MDLinkRender, markDownRenderers2, allowedMarkups, MD, Number2, Row, ITEMS_PER_PAGE, VERTICAL_COMPENSATION, INITIAL_INDEX, VIRTUOSO_START_INDEX, DatePickerSelect, getItemData, DatePickerDate, getItemData$1, DatePickerTime, DatePicker, setupIcalFilter, Scheduler, Success, Text, converters, Tree, MML;
16191
16191
  var init_mml_react_esm = __esm({
16192
16192
  "node_modules/mml-react/dist/mml-react.esm.js"() {
16193
- import_react214 = __toESM(require("react"));
16193
+ import_react206 = __toESM(require("react"));
16194
16194
  import_parse_xml = __toESM(require_src());
16195
16195
  import_dayjs4 = __toESM(require("dayjs"));
16196
16196
  import_sanitize_url4 = require("@braintree/sanitize-url");
@@ -16720,57 +16720,57 @@ var init_mml_react_esm = __esm({
16720
16720
  }();
16721
16721
  Card2 = function Card3(_ref) {
16722
16722
  var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, children = _ref.children;
16723
- return import_react214.default.createElement("div", {
16723
+ return import_react206.default.createElement("div", {
16724
16724
  className: "mml-card " + className
16725
16725
  }, children);
16726
16726
  };
16727
16727
  Icon3 = function Icon4(_ref) {
16728
16728
  var name2 = _ref.name;
16729
- return import_react214.default.createElement("i", {
16729
+ return import_react206.default.createElement("i", {
16730
16730
  className: "mml-icon material-icons"
16731
16731
  }, name2);
16732
16732
  };
16733
16733
  CardHeader2 = function CardHeader3(_ref) {
16734
16734
  var text8 = _ref.text, _ref$icon = _ref.icon, icon2 = _ref$icon === void 0 ? "" : _ref$icon, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
16735
- return import_react214.default.createElement("div", {
16735
+ return import_react206.default.createElement("div", {
16736
16736
  className: "mml-card-header " + className
16737
- }, icon2 && import_react214.default.createElement(Icon3, {
16737
+ }, icon2 && import_react206.default.createElement(Icon3, {
16738
16738
  name: icon2
16739
- }), import_react214.default.createElement("span", {
16739
+ }), import_react206.default.createElement("span", {
16740
16740
  className: "mml-card-header__text"
16741
16741
  }, text8));
16742
16742
  };
16743
16743
  CardBody = function CardBody2(_ref) {
16744
16744
  var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, children = _ref.children;
16745
- return import_react214.default.createElement("div", {
16745
+ return import_react206.default.createElement("div", {
16746
16746
  className: "mml-card-body " + className
16747
16747
  }, children);
16748
16748
  };
16749
16749
  ButtonList = function ButtonList2(_ref) {
16750
16750
  var children = _ref.children, _ref$variant = _ref.variant, variant = _ref$variant === void 0 ? "" : _ref$variant;
16751
- return import_react214.default.createElement("div", {
16751
+ return import_react206.default.createElement("div", {
16752
16752
  className: "mml-btnlist " + (variant === "floating" ? " mml-btnlist--floating" : "mml-btnlist--grounded")
16753
16753
  }, children);
16754
16754
  };
16755
16755
  SvgIcon = function SvgIcon2(_ref) {
16756
16756
  var path2 = _ref.path;
16757
- return import_react214.default.createElement("i", {
16757
+ return import_react206.default.createElement("i", {
16758
16758
  className: "mml-icon"
16759
- }, import_react214.default.createElement("svg", {
16759
+ }, import_react206.default.createElement("svg", {
16760
16760
  className: "mml-icon__svg",
16761
16761
  xmlns: "http://www.w3.org/2000/svg",
16762
16762
  viewBox: "0 0 24 24"
16763
- }, import_react214.default.createElement("path", {
16763
+ }, import_react206.default.createElement("path", {
16764
16764
  d: path2
16765
16765
  })));
16766
16766
  };
16767
- IconGoogle = /* @__PURE__ */ import_react214.default.createElement(SvgIcon, {
16767
+ IconGoogle = /* @__PURE__ */ import_react206.default.createElement(SvgIcon, {
16768
16768
  path: "M21.35 11.1h-9.17v2.73h6.5c-.33 3.8-3.5 5.44-6.5 5.44C8.36 19.27 5 16.25 5 12c0-4.1 3.2-7.27 7.2-7.27 3.1 0 4.9 1.97 4.9 1.97L19 4.72S16.56 2 12.1 2C6.42 2 2.03 6.8 2.03 12c0 5.05 4.13 10 10.22 10 5.35 0 9.25-3.67 9.25-9.1 0-1.15-.15-1.8-.15-1.8h0z"
16769
16769
  });
16770
- IconMicrosoft = /* @__PURE__ */ import_react214.default.createElement(SvgIcon, {
16770
+ IconMicrosoft = /* @__PURE__ */ import_react206.default.createElement(SvgIcon, {
16771
16771
  path: "M3 12V6.75l6-1.32v6.48L3 12m17-9v8.75l-10 .15V5.2L20 3M3 13l6 .1v6.8l-6-1.15V13m17 .25V22l-10-1.9v-7l10 .15z"
16772
16772
  });
16773
- IconApple = /* @__PURE__ */ import_react214.default.createElement(SvgIcon, {
16773
+ IconApple = /* @__PURE__ */ import_react206.default.createElement(SvgIcon, {
16774
16774
  path: "M18.7 19.5c-.83 1.24-1.7 2.45-3.05 2.47-1.34.03-1.77-.8-3.3-.8-1.53 0-2 .77-3.27.82-1.3.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.4c.87-1.52 2.43-2.48 4.12-2.5 1.28-.02 2.5.87 3.3.87.78 0 2.26-1.07 3.8-.9.65.03 2.47.26 3.64 1.98-.1.06-2.17 1.28-2.15 3.8.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.2-.7.85-1.83 1.5-2.95 1.42-.15-1.15.4-2.35 1.05-3.1z"
16775
16775
  });
16776
16776
  isIE = typeof window !== "undefined" && window.navigator.msSaveOrOpenBlob && window.Blob;
@@ -16826,14 +16826,14 @@ var init_mml_react_esm = __esm({
16826
16826
  window.open(url, "_blank");
16827
16827
  }
16828
16828
  }
16829
- return import_react214.default.createElement(Card2, {
16829
+ return import_react206.default.createElement(Card2, {
16830
16830
  className: "mml-add-to-calendar " + className
16831
- }, import_react214.default.createElement(CardHeader2, {
16831
+ }, import_react206.default.createElement(CardHeader2, {
16832
16832
  icon: "date_range",
16833
16833
  text: "Add to My Calendar"
16834
- }), import_react214.default.createElement(CardBody, null, import_react214.default.createElement(ButtonList, null, CALENDAR_SERVICES.map(function(_ref3) {
16834
+ }), import_react206.default.createElement(CardBody, null, import_react206.default.createElement(ButtonList, null, CALENDAR_SERVICES.map(function(_ref3) {
16835
16835
  var id = _ref3.id, label = _ref3.label, Icon5 = _ref3.Icon;
16836
- return import_react214.default.createElement("a", {
16836
+ return import_react206.default.createElement("a", {
16837
16837
  key: id,
16838
16838
  className: "mml-btn " + (Icon5 ? "mml-btn--with-icon" : ""),
16839
16839
  onClick: handleLinkClick,
@@ -16851,15 +16851,15 @@ var init_mml_react_esm = __esm({
16851
16851
  className += " mml-btn--text";
16852
16852
  }
16853
16853
  className += variant === "floating" ? " mml-btn--floating" : " mml-btn--grounded";
16854
- if (url) return import_react214.default.createElement("a", {
16854
+ if (url) return import_react206.default.createElement("a", {
16855
16855
  className: "mml-btn " + className,
16856
16856
  href: (0, import_sanitize_url4.sanitizeUrl)(url),
16857
16857
  target: "_blank",
16858
16858
  rel: "nofollow noreferrer noopener"
16859
- }, icon2 && import_react214.default.createElement(Icon3, {
16859
+ }, icon2 && import_react206.default.createElement(Icon3, {
16860
16860
  name: icon2
16861
16861
  }), text8);
16862
- return import_react214.default.createElement("button", {
16862
+ return import_react206.default.createElement("button", {
16863
16863
  className: "mml-btn " + className,
16864
16864
  type: "submit",
16865
16865
  name: name2,
@@ -16872,20 +16872,20 @@ var init_mml_react_esm = __esm({
16872
16872
  input2.value = value || "";
16873
16873
  (_event$currentTarget = event.currentTarget) == null ? void 0 : (_event$currentTarget$ = _event$currentTarget.closest("form")) == null ? void 0 : _event$currentTarget$.appendChild(input2);
16874
16874
  }
16875
- }, icon2 && import_react214.default.createElement(Icon3, {
16875
+ }, icon2 && import_react206.default.createElement(Icon3, {
16876
16876
  name: icon2
16877
16877
  }), text8);
16878
16878
  };
16879
16879
  Carousel = function Carousel2(_ref) {
16880
16880
  var children = _ref.children, _ref$slideWidth = _ref.slideWidth, slideWidth = _ref$slideWidth === void 0 ? "120px" : _ref$slideWidth, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
16881
- return import_react214.default.createElement("div", {
16881
+ return import_react206.default.createElement("div", {
16882
16882
  className: "mml-carousel " + className
16883
- }, import_react214.default.createElement("div", {
16883
+ }, import_react206.default.createElement("div", {
16884
16884
  className: "mml-carousel__track"
16885
- }, import_react214.default.createElement("div", {
16885
+ }, import_react206.default.createElement("div", {
16886
16886
  className: "mml-carousel__slides"
16887
- }, import_react214.Children.map(children, function(child) {
16888
- return (0, import_react214.cloneElement)(child, {
16887
+ }, import_react206.Children.map(children, function(child) {
16888
+ return (0, import_react206.cloneElement)(child, {
16889
16889
  className: "mml-carousel__slide",
16890
16890
  slideWidth
16891
16891
  });
@@ -16894,7 +16894,7 @@ var init_mml_react_esm = __esm({
16894
16894
  CarouselItem = function CarouselItem2(_ref) {
16895
16895
  var children = _ref.children, slideWidth = _ref.slideWidth, _ref$width = _ref.width, width = _ref$width === void 0 ? "" : _ref$width, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
16896
16896
  var finalWidth = width || slideWidth;
16897
- return import_react214.default.createElement("div", {
16897
+ return import_react206.default.createElement("div", {
16898
16898
  className: "mml-carousel-item " + className,
16899
16899
  style: {
16900
16900
  flex: "0 0 " + finalWidth,
@@ -16907,20 +16907,20 @@ var init_mml_react_esm = __esm({
16907
16907
  var classNames = "mml-col-" + width;
16908
16908
  if (offset) classNames = classNames + (" mml-offset-" + offset);
16909
16909
  classNames = classNames + (" mml-align-" + align);
16910
- return import_react214.default.createElement("div", {
16910
+ return import_react206.default.createElement("div", {
16911
16911
  className: classNames
16912
16912
  }, children);
16913
16913
  };
16914
16914
  Error$1 = function Error2(_ref) {
16915
16915
  var _ref$error = _ref.error, error = _ref$error === void 0 ? "" : _ref$error;
16916
16916
  if (!error) return null;
16917
- return import_react214.default.createElement("span", {
16917
+ return import_react206.default.createElement("span", {
16918
16918
  className: "mml-error"
16919
16919
  }, error);
16920
16920
  };
16921
16921
  Image2 = function Image3(_ref) {
16922
16922
  var src = _ref.src, _ref$alt = _ref.alt, alt = _ref$alt === void 0 ? "" : _ref$alt, _ref$title = _ref.title, title = _ref$title === void 0 ? "" : _ref$title, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
16923
- return import_react214.default.createElement("img", {
16923
+ return import_react206.default.createElement("img", {
16924
16924
  className: ("mml-image " + className).trim(),
16925
16925
  src,
16926
16926
  alt,
@@ -16929,14 +16929,14 @@ var init_mml_react_esm = __esm({
16929
16929
  };
16930
16930
  Input = function Input2(_ref) {
16931
16931
  var name2 = _ref.name, label = _ref.label, _ref$value = _ref.value, value = _ref$value === void 0 ? "" : _ref$value, _ref$type = _ref.type, type = _ref$type === void 0 ? "text" : _ref$type, _ref$placeholder = _ref.placeholder, placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder;
16932
- var _useState = (0, import_react214.useState)(value), state = _useState[0], setState = _useState[1];
16932
+ var _useState = (0, import_react206.useState)(value), state = _useState[0], setState = _useState[1];
16933
16933
  var id = "mml-" + name2;
16934
- return import_react214.default.createElement(import_react214.default.Fragment, null, label && import_react214.default.createElement("label", {
16934
+ return import_react206.default.createElement(import_react206.default.Fragment, null, label && import_react206.default.createElement("label", {
16935
16935
  className: "mml-card-header",
16936
16936
  htmlFor: id
16937
- }, import_react214.default.createElement("span", {
16937
+ }, import_react206.default.createElement("span", {
16938
16938
  className: "mml-card-header__text"
16939
- }, label)), import_react214.default.createElement("input", {
16939
+ }, label)), import_react206.default.createElement("input", {
16940
16940
  id,
16941
16941
  className: "mml-input",
16942
16942
  name: name2,
@@ -16953,7 +16953,7 @@ var init_mml_react_esm = __esm({
16953
16953
  var size = _ref.size, _ref$thickness = _ref.thickness, thickness = _ref$thickness === void 0 ? 3.6 : _ref$thickness, color2 = _ref.color;
16954
16954
  thickness = typeof thickness === "string" ? parseFloat(thickness) : thickness;
16955
16955
  size = typeof size === "string" && /^\d+$/.test(size) || typeof size === "number" ? size + "px" : size;
16956
- return import_react214.default.createElement("span", {
16956
+ return import_react206.default.createElement("span", {
16957
16957
  className: "mml-progress",
16958
16958
  role: "progressbar",
16959
16959
  style: {
@@ -16961,10 +16961,10 @@ var init_mml_react_esm = __esm({
16961
16961
  height: size,
16962
16962
  color: color2
16963
16963
  }
16964
- }, import_react214.default.createElement("svg", {
16964
+ }, import_react206.default.createElement("svg", {
16965
16965
  className: "mml-progress__svg",
16966
16966
  viewBox: SIZE / 2 + " " + SIZE / 2 + " " + SIZE + " " + SIZE
16967
- }, import_react214.default.createElement("circle", {
16967
+ }, import_react206.default.createElement("circle", {
16968
16968
  className: "mml-progress__circle",
16969
16969
  cx: SIZE,
16970
16970
  cy: SIZE,
@@ -16976,13 +16976,13 @@ var init_mml_react_esm = __esm({
16976
16976
  Loading = function Loading2(_ref) {
16977
16977
  var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, _ref$loading = _ref.loading, loading = _ref$loading === void 0 ? false : _ref$loading, text8 = _ref.text, size = _ref.size, thickness = _ref.thickness, color2 = _ref.color;
16978
16978
  if (!loading) return null;
16979
- return import_react214.default.createElement("div", {
16979
+ return import_react206.default.createElement("div", {
16980
16980
  className: "mml-loading " + className
16981
- }, import_react214.default.createElement(Progress, Object.assign({}, {
16981
+ }, import_react206.default.createElement(Progress, Object.assign({}, {
16982
16982
  size,
16983
16983
  thickness,
16984
16984
  color: color2
16985
- })), text8 && import_react214.default.createElement("div", {
16985
+ })), text8 && import_react206.default.createElement("div", {
16986
16986
  className: "mml-loading__text"
16987
16987
  }, text8));
16988
16988
  };
@@ -17005,7 +17005,7 @@ var init_mml_react_esm = __esm({
17005
17005
  };
17006
17006
  MDLinkRender = function MDLinkRender2(props) {
17007
17007
  if (!props.href || !props.href.startsWith("http") && !props.href.startsWith("mailto:")) return props.children;
17008
- return import_react214.default.createElement("a", {
17008
+ return import_react206.default.createElement("a", {
17009
17009
  href: props.href,
17010
17010
  target: "_blank",
17011
17011
  rel: "nofollow noreferrer noopener"
@@ -17044,9 +17044,9 @@ var init_mml_react_esm = __esm({
17044
17044
  var displayLink = type === "email" ? value : truncate(value.replace(/(http(s?):\/\/)?(www\.)?/, ""), 20);
17045
17045
  newText = newText.replace(value, "[" + displayLink + "](" + encodeURI(href) + ")");
17046
17046
  });
17047
- return import_react214.default.createElement("div", {
17047
+ return import_react206.default.createElement("div", {
17048
17048
  className: "mml-md"
17049
- }, import_react214.default.createElement(import_react_markdown3.default, {
17049
+ }, import_react206.default.createElement(import_react_markdown3.default, {
17050
17050
  allowedTypes: allowedMarkups,
17051
17051
  renderers: markDownRenderers2,
17052
17052
  source: newText,
@@ -17059,34 +17059,34 @@ var init_mml_react_esm = __esm({
17059
17059
  };
17060
17060
  Number2 = function Number3(_ref) {
17061
17061
  var name2 = _ref.name, value = _ref.value;
17062
- var _useState = (0, import_react214.useState)(parseInt("" + value, 10) || 0), state = _useState[0], setState = _useState[1];
17063
- return import_react214.default.createElement("div", {
17062
+ var _useState = (0, import_react206.useState)(parseInt("" + value, 10) || 0), state = _useState[0], setState = _useState[1];
17063
+ return import_react206.default.createElement("div", {
17064
17064
  className: "mml-number"
17065
- }, import_react214.default.createElement("input", {
17065
+ }, import_react206.default.createElement("input", {
17066
17066
  name: name2,
17067
17067
  value: state,
17068
17068
  type: "hidden"
17069
- }), import_react214.default.createElement("span", {
17069
+ }), import_react206.default.createElement("span", {
17070
17070
  className: "mml-btn mml-btn--floating mml-btn--icon mml-number__dec",
17071
17071
  onClick: function onClick() {
17072
17072
  return setState(state - 1);
17073
17073
  }
17074
- }, import_react214.default.createElement(Icon3, {
17074
+ }, import_react206.default.createElement(Icon3, {
17075
17075
  name: "remove"
17076
- })), import_react214.default.createElement("span", {
17076
+ })), import_react206.default.createElement("span", {
17077
17077
  className: "mml-number__count"
17078
- }, state), import_react214.default.createElement("span", {
17078
+ }, state), import_react206.default.createElement("span", {
17079
17079
  className: "mml-btn mml-btn--floating mml-btn--icon mml-number__inc",
17080
17080
  onClick: function onClick() {
17081
17081
  return setState(state + 1);
17082
17082
  }
17083
- }, import_react214.default.createElement(Icon3, {
17083
+ }, import_react206.default.createElement(Icon3, {
17084
17084
  name: "add"
17085
17085
  })));
17086
17086
  };
17087
17087
  Row = function Row2(_ref) {
17088
17088
  var children = _ref.children;
17089
- return import_react214.default.createElement("div", {
17089
+ return import_react206.default.createElement("div", {
17090
17090
  className: "mml-row"
17091
17091
  }, children);
17092
17092
  };
@@ -17096,7 +17096,7 @@ var init_mml_react_esm = __esm({
17096
17096
  VIRTUOSO_START_INDEX = 1e4;
17097
17097
  DatePickerSelect = function DatePickerSelect2(props) {
17098
17098
  var onChange = props.onChange, icalFilter = props.icalFilter, getItemData4 = props.getItemData, itemClassName = props.itemClassName, interval = props.interval, format = props.format, value = props.value;
17099
- var generateItems = (0, import_react214.useCallback)(function(quantity, firstIdx) {
17099
+ var generateItems = (0, import_react206.useCallback)(function(quantity, firstIdx) {
17100
17100
  return Array(quantity).fill(true).map(function(_, idx) {
17101
17101
  return getItemData4({
17102
17102
  interval,
@@ -17108,11 +17108,11 @@ var init_mml_react_esm = __esm({
17108
17108
  return !icalFilter || icalFilter && icalFilter(newItem.value);
17109
17109
  });
17110
17110
  }, [interval, format, value, icalFilter, getItemData4]);
17111
- var _useState = (0, import_react214.useState)(generateItems(ITEMS_PER_PAGE * 2, -ITEMS_PER_PAGE)), items = _useState[0], setItems = _useState[1];
17112
- var _useState2 = (0, import_react214.useState)(VIRTUOSO_START_INDEX), firstItemIndex = _useState2[0], setFirstItemIndex = _useState2[1];
17113
- var initialIndexOffset = (0, import_react214.useRef)(INITIAL_INDEX);
17114
- var _useState3 = (0, import_react214.useState)(null), selectedIdx = _useState3[0], setSelectedIdx = _useState3[1];
17115
- var handleClick = (0, import_react214.useCallback)(function(item2) {
17111
+ var _useState = (0, import_react206.useState)(generateItems(ITEMS_PER_PAGE * 2, -ITEMS_PER_PAGE)), items = _useState[0], setItems = _useState[1];
17112
+ var _useState2 = (0, import_react206.useState)(VIRTUOSO_START_INDEX), firstItemIndex = _useState2[0], setFirstItemIndex = _useState2[1];
17113
+ var initialIndexOffset = (0, import_react206.useRef)(INITIAL_INDEX);
17114
+ var _useState3 = (0, import_react206.useState)(null), selectedIdx = _useState3[0], setSelectedIdx = _useState3[1];
17115
+ var handleClick = (0, import_react206.useCallback)(function(item2) {
17116
17116
  onChange(item2.value);
17117
17117
  var firstItemIndex2 = initialIndexOffset.current || 0;
17118
17118
  var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
@@ -17126,12 +17126,12 @@ var init_mml_react_esm = __esm({
17126
17126
  }
17127
17127
  setSelectedIdx(item2.idx);
17128
17128
  }, [setItems, generateItems, initialIndexOffset, onChange]);
17129
- var appendItems = (0, import_react214.useCallback)(function(lastItemIndex) {
17129
+ var appendItems = (0, import_react206.useCallback)(function(lastItemIndex) {
17130
17130
  setItems(function(items2) {
17131
17131
  return [].concat(items2, generateItems(ITEMS_PER_PAGE, lastItemIndex));
17132
17132
  });
17133
17133
  }, [setItems, generateItems]);
17134
- var prependItems = (0, import_react214.useCallback)(function() {
17134
+ var prependItems = (0, import_react206.useCallback)(function() {
17135
17135
  var firstItemIndex2 = initialIndexOffset.current || 0;
17136
17136
  var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
17137
17137
  if (initialIndexOffset) {
@@ -17143,7 +17143,7 @@ var init_mml_react_esm = __esm({
17143
17143
  setFirstItemIndex(firstItemIndex2 - ITEMS_PER_PAGE);
17144
17144
  return false;
17145
17145
  }, [setItems, generateItems, initialIndexOffset]);
17146
- (0, import_react214.useEffect)(function() {
17146
+ (0, import_react206.useEffect)(function() {
17147
17147
  if (value) {
17148
17148
  var initialSelectedIdx = null;
17149
17149
  for (var i = 0; i < items.length; i++) {
@@ -17155,11 +17155,11 @@ var init_mml_react_esm = __esm({
17155
17155
  setSelectedIdx(initialSelectedIdx);
17156
17156
  }
17157
17157
  }, []);
17158
- return import_react214.default.createElement(import_react_virtuoso2.Virtuoso, {
17158
+ return import_react206.default.createElement(import_react_virtuoso2.Virtuoso, {
17159
17159
  data: items,
17160
17160
  firstItemIndex,
17161
17161
  itemContent: function itemContent(_, item2) {
17162
- return import_react214.default.createElement("div", {
17162
+ return import_react206.default.createElement("div", {
17163
17163
  className: itemClassName + (" mml-datepicker__item " + (item2.idx === selectedIdx ? "mml-datepicker__item--selected" : "")),
17164
17164
  onClick: function onClick() {
17165
17165
  return handleClick(item2);
@@ -17183,9 +17183,9 @@ var init_mml_react_esm = __esm({
17183
17183
  };
17184
17184
  };
17185
17185
  DatePickerDate = function DatePickerDate2(props) {
17186
- return import_react214.default.createElement("div", {
17186
+ return import_react206.default.createElement("div", {
17187
17187
  className: "mml-datepicker__select mml-datepicker__date"
17188
- }, import_react214.default.createElement(DatePickerSelect, Object.assign({}, props, {
17188
+ }, import_react206.default.createElement(DatePickerSelect, Object.assign({}, props, {
17189
17189
  itemClassName: "mml-datepicker__item--day",
17190
17190
  getItemData
17191
17191
  })));
@@ -17204,16 +17204,16 @@ var init_mml_react_esm = __esm({
17204
17204
  };
17205
17205
  };
17206
17206
  DatePickerTime = function DatePickerTime2(props) {
17207
- return import_react214.default.createElement("div", {
17207
+ return import_react206.default.createElement("div", {
17208
17208
  className: "mml-datepicker__select mml-datepicker__time"
17209
- }, import_react214.default.createElement(DatePickerSelect, Object.assign({}, props, {
17209
+ }, import_react206.default.createElement(DatePickerSelect, Object.assign({}, props, {
17210
17210
  itemClassName: "mml-datepicker__item--time",
17211
17211
  getItemData: getItemData$1
17212
17212
  })));
17213
17213
  };
17214
17214
  DatePicker = function DatePicker2(_ref) {
17215
17215
  var name2 = _ref.name, selected = _ref.selected, dateInterval = _ref.dateInterval, timeInterval = _ref.timeInterval, dateFormat = _ref.dateFormat, timeFormat = _ref.timeFormat, fullDay = _ref.fullDay, icalFilter = _ref.icalFilter;
17216
- var _useState = (0, import_react214.useState)(selected), date = _useState[0], setDate = _useState[1];
17216
+ var _useState = (0, import_react206.useState)(selected), date = _useState[0], setDate = _useState[1];
17217
17217
  var handleChangeDate = function handleChangeDate2(value) {
17218
17218
  setDate(function(prevDate) {
17219
17219
  return prevDate.set("date", value.get("date")).set("month", value.get("month")).set("year", value.get("year"));
@@ -17224,19 +17224,19 @@ var init_mml_react_esm = __esm({
17224
17224
  return prevDate.set("minute", value.get("minute")).set("hour", value.get("hour"));
17225
17225
  });
17226
17226
  };
17227
- return import_react214.default.createElement("div", {
17227
+ return import_react206.default.createElement("div", {
17228
17228
  className: "mml-datepicker mml-datepicker--" + (fullDay ? "single" : "double")
17229
- }, import_react214.default.createElement("input", {
17229
+ }, import_react206.default.createElement("input", {
17230
17230
  name: name2,
17231
17231
  value: date.toISOString(),
17232
17232
  type: "hidden"
17233
- }), import_react214.default.createElement(DatePickerDate, {
17233
+ }), import_react206.default.createElement(DatePickerDate, {
17234
17234
  icalFilter,
17235
17235
  format: dateFormat,
17236
17236
  value: date,
17237
17237
  onChange: handleChangeDate,
17238
17238
  interval: dateInterval
17239
- }), !fullDay && import_react214.default.createElement(DatePickerTime, {
17239
+ }), !fullDay && import_react206.default.createElement(DatePickerTime, {
17240
17240
  icalFilter,
17241
17241
  format: timeFormat,
17242
17242
  value: date,
@@ -17293,14 +17293,14 @@ var init_mml_react_esm = __esm({
17293
17293
  }();
17294
17294
  Scheduler = function Scheduler2(_ref2) {
17295
17295
  var name2 = _ref2.name, selected = _ref2.selected, icalAvailability = _ref2.icalAvailability, _ref2$duration = _ref2.duration, duration = _ref2$duration === void 0 ? 30 : _ref2$duration, _ref2$dateInterval = _ref2.dateInterval, dateInterval = _ref2$dateInterval === void 0 ? 1 : _ref2$dateInterval, _ref2$timeInterval = _ref2.timeInterval, timeInterval = _ref2$timeInterval === void 0 ? 30 : _ref2$timeInterval, _ref2$dateFormat = _ref2.dateFormat, dateFormat = _ref2$dateFormat === void 0 ? "ddd MMM DD" : _ref2$dateFormat, _ref2$timeFormat = _ref2.timeFormat, timeFormat = _ref2$timeFormat === void 0 ? "hh:mm A" : _ref2$timeFormat, _ref2$fullDay = _ref2.fullDay, fullDay = _ref2$fullDay === void 0 ? false : _ref2$fullDay;
17296
- var _useState = (0, import_react214.useState)(false), loading = _useState[0], setLoading = _useState[1];
17297
- var _useState2 = (0, import_react214.useState)(""), error = _useState2[0], setError = _useState2[1];
17298
- var _useState3 = (0, import_react214.useState)(function() {
17296
+ var _useState = (0, import_react206.useState)(false), loading = _useState[0], setLoading = _useState[1];
17297
+ var _useState2 = (0, import_react206.useState)(""), error = _useState2[0], setError = _useState2[1];
17298
+ var _useState3 = (0, import_react206.useState)(function() {
17299
17299
  return function() {
17300
17300
  return true;
17301
17301
  };
17302
17302
  }), icalFilter = _useState3[0], setIcalFilter = _useState3[1];
17303
- (0, import_react214.useEffect)(function() {
17303
+ (0, import_react206.useEffect)(function() {
17304
17304
  if (!icalAvailability) return;
17305
17305
  setLoading(true);
17306
17306
  setupIcalFilter(icalAvailability, duration).then(setIcalFilter)["catch"](function(err) {
@@ -17313,17 +17313,17 @@ var init_mml_react_esm = __esm({
17313
17313
  return setLoading(false);
17314
17314
  });
17315
17315
  }, [icalAvailability, duration]);
17316
- return import_react214.default.createElement(Card2, {
17316
+ return import_react206.default.createElement(Card2, {
17317
17317
  className: "mml-scheduler"
17318
- }, import_react214.default.createElement(CardHeader2, {
17318
+ }, import_react206.default.createElement(CardHeader2, {
17319
17319
  icon: "date_range",
17320
17320
  text: "Scheduler"
17321
- }), import_react214.default.createElement(CardBody, null, error && !loading && import_react214.default.createElement(Error$1, {
17321
+ }), import_react206.default.createElement(CardBody, null, error && !loading && import_react206.default.createElement(Error$1, {
17322
17322
  error: "Failed, error: " + error
17323
- }), !error && loading && import_react214.default.createElement(Loading, {
17323
+ }), !error && loading && import_react206.default.createElement(Loading, {
17324
17324
  loading: true,
17325
17325
  text: "Loading availability"
17326
- }), !error && !loading && import_react214.default.createElement(DatePicker, {
17326
+ }), !error && !loading && import_react206.default.createElement(DatePicker, {
17327
17327
  name: name2,
17328
17328
  selected: selected ? (0, import_dayjs4.default)(selected) : (0, import_dayjs4.default)().startOf("hour"),
17329
17329
  dateInterval,
@@ -17336,20 +17336,20 @@ var init_mml_react_esm = __esm({
17336
17336
  };
17337
17337
  Success = function Success2(_ref) {
17338
17338
  var success = _ref.success;
17339
- if (success) return import_react214.default.createElement("div", {
17339
+ if (success) return import_react206.default.createElement("div", {
17340
17340
  className: "mml-success"
17341
17341
  }, success);
17342
17342
  return null;
17343
17343
  };
17344
17344
  Text = function Text2(_ref) {
17345
17345
  var text8 = _ref.text, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
17346
- return import_react214.default.createElement("div", {
17346
+ return import_react206.default.createElement("div", {
17347
17347
  className: ("mml-text " + className).trim()
17348
17348
  }, text8);
17349
17349
  };
17350
17350
  converters = {
17351
17351
  button: function button(tag) {
17352
- return import_react214.default.createElement(Button, Object.assign({}, tag.attributes, {
17352
+ return import_react206.default.createElement(Button, Object.assign({}, tag.attributes, {
17353
17353
  key: tag.key,
17354
17354
  text: tag.getText(),
17355
17355
  name: tag.attributes.name,
@@ -17357,19 +17357,19 @@ var init_mml_react_esm = __esm({
17357
17357
  }));
17358
17358
  },
17359
17359
  button_list: function button_list(tag, children) {
17360
- return import_react214.default.createElement(ButtonList, Object.assign({}, tag.attributes, {
17360
+ return import_react206.default.createElement(ButtonList, Object.assign({}, tag.attributes, {
17361
17361
  key: tag.key
17362
17362
  }), children);
17363
17363
  },
17364
17364
  input: function input(tag) {
17365
- return import_react214.default.createElement(Input, Object.assign({}, tag.attributes, {
17365
+ return import_react206.default.createElement(Input, Object.assign({}, tag.attributes, {
17366
17366
  key: tag.key,
17367
17367
  name: tag.attributes.name,
17368
17368
  value: tag.attributes.value
17369
17369
  }));
17370
17370
  },
17371
17371
  add_to_calendar: function add_to_calendar(tag) {
17372
- return import_react214.default.createElement(AddToCalendar, Object.assign({}, tag.attributes, {
17372
+ return import_react206.default.createElement(AddToCalendar, Object.assign({}, tag.attributes, {
17373
17373
  key: tag.key,
17374
17374
  title: tag.attributes.title,
17375
17375
  start: tag.attributes.start,
@@ -17377,41 +17377,41 @@ var init_mml_react_esm = __esm({
17377
17377
  }));
17378
17378
  },
17379
17379
  col: function col(tag, children) {
17380
- return import_react214.default.createElement(Col, Object.assign({}, tag.attributes, {
17380
+ return import_react206.default.createElement(Col, Object.assign({}, tag.attributes, {
17381
17381
  key: tag.key
17382
17382
  }), children);
17383
17383
  },
17384
17384
  row: function row(tag, children) {
17385
- return import_react214.default.createElement(Row, Object.assign({}, tag.attributes, {
17385
+ return import_react206.default.createElement(Row, Object.assign({}, tag.attributes, {
17386
17386
  key: tag.key
17387
17387
  }), children);
17388
17388
  },
17389
17389
  icon: function icon(tag) {
17390
- return import_react214.default.createElement(Icon3, Object.assign({}, tag.attributes, {
17390
+ return import_react206.default.createElement(Icon3, Object.assign({}, tag.attributes, {
17391
17391
  key: tag.key,
17392
17392
  name: tag.attributes.name
17393
17393
  }));
17394
17394
  },
17395
17395
  image: function image3(tag) {
17396
- return import_react214.default.createElement(Image2, Object.assign({}, tag.attributes, {
17396
+ return import_react206.default.createElement(Image2, Object.assign({}, tag.attributes, {
17397
17397
  key: tag.key,
17398
17398
  src: tag.attributes.src
17399
17399
  }));
17400
17400
  },
17401
17401
  md: function md(tag) {
17402
- return import_react214.default.createElement(MD, Object.assign({}, tag.attributes, {
17402
+ return import_react206.default.createElement(MD, Object.assign({}, tag.attributes, {
17403
17403
  key: tag.key,
17404
17404
  text: tag.getText()
17405
17405
  }));
17406
17406
  },
17407
17407
  text: function text7(tag) {
17408
- return import_react214.default.createElement(Text, Object.assign({}, tag.attributes, {
17408
+ return import_react206.default.createElement(Text, Object.assign({}, tag.attributes, {
17409
17409
  key: tag.key,
17410
17410
  text: tag.getText()
17411
17411
  }));
17412
17412
  },
17413
17413
  scheduler: function scheduler(tag) {
17414
- return import_react214.default.createElement(Scheduler, Object.assign({}, tag.attributes, {
17414
+ return import_react206.default.createElement(Scheduler, Object.assign({}, tag.attributes, {
17415
17415
  key: tag.key,
17416
17416
  name: tag.attributes.name,
17417
17417
  dateInterval: parseInt(tag.attributes.dateInterval, 10) || 1,
@@ -17423,19 +17423,19 @@ var init_mml_react_esm = __esm({
17423
17423
  }));
17424
17424
  },
17425
17425
  carousel: function carousel(tag, children) {
17426
- return import_react214.default.createElement(Carousel, Object.assign({
17426
+ return import_react206.default.createElement(Carousel, Object.assign({
17427
17427
  slideWidth: tag.attributes.slideWidth
17428
17428
  }, tag.attributes, {
17429
17429
  key: tag.key
17430
17430
  }), children);
17431
17431
  },
17432
17432
  item: function item(tag, children) {
17433
- return import_react214.default.createElement(CarouselItem, Object.assign({}, tag.attributes, {
17433
+ return import_react206.default.createElement(CarouselItem, Object.assign({}, tag.attributes, {
17434
17434
  key: tag.key
17435
17435
  }), children);
17436
17436
  },
17437
17437
  number: function number2(tag) {
17438
- return import_react214.default.createElement(Number2, Object.assign({}, tag.attributes, {
17438
+ return import_react206.default.createElement(Number2, Object.assign({}, tag.attributes, {
17439
17439
  key: tag.key,
17440
17440
  name: tag.attributes.name,
17441
17441
  value: tag.attributes.value
@@ -17473,13 +17473,13 @@ var init_mml_react_esm = __esm({
17473
17473
  }();
17474
17474
  MML = function MML2(_ref) {
17475
17475
  var source = _ref.source, onSubmit = _ref.onSubmit, converters2 = _ref.converters, _ref$theme = _ref.theme, theme = _ref$theme === void 0 ? "" : _ref$theme, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, _ref$Loading = _ref.Loading, Loading$1 = _ref$Loading === void 0 ? Loading : _ref$Loading, _ref$Error = _ref.Error, Error3 = _ref$Error === void 0 ? Error$1 : _ref$Error, _ref$Success = _ref.Success, Success$1 = _ref$Success === void 0 ? Success : _ref$Success;
17476
- var _useState = (0, import_react214.useState)(""), error = _useState[0], setError = _useState[1];
17477
- var _useState2 = (0, import_react214.useState)({
17476
+ var _useState = (0, import_react206.useState)(""), error = _useState[0], setError = _useState[1];
17477
+ var _useState2 = (0, import_react206.useState)({
17478
17478
  loading: false,
17479
17479
  error: "",
17480
17480
  success: ""
17481
17481
  }), submitState = _useState2[0], setSubmitState = _useState2[1];
17482
- var tree = (0, import_react214.useMemo)(function() {
17482
+ var tree = (0, import_react206.useMemo)(function() {
17483
17483
  try {
17484
17484
  return Parse(source, converters2);
17485
17485
  } catch (e2) {
@@ -17488,7 +17488,7 @@ var init_mml_react_esm = __esm({
17488
17488
  return null;
17489
17489
  }
17490
17490
  }, [source, converters2]);
17491
- var handleSubmit = (0, import_react214.useCallback)(/* @__PURE__ */ function() {
17491
+ var handleSubmit = (0, import_react206.useCallback)(/* @__PURE__ */ function() {
17492
17492
  var _ref2 = _asyncToGenerator(/* @__PURE__ */ runtime_1.mark(function _callee(event) {
17493
17493
  var state;
17494
17494
  return runtime_1.wrap(function _callee$(_context) {
@@ -17542,24 +17542,24 @@ var init_mml_react_esm = __esm({
17542
17542
  return _ref2.apply(this, arguments);
17543
17543
  };
17544
17544
  }(), [onSubmit, tree]);
17545
- return import_react214.default.createElement("div", {
17545
+ return import_react206.default.createElement("div", {
17546
17546
  className: "mml-container " + theme + " " + className,
17547
17547
  "data-testid": "mml-container"
17548
- }, error ? import_react214.default.createElement("div", {
17548
+ }, error ? import_react206.default.createElement("div", {
17549
17549
  className: "mml-wrap"
17550
- }, Error3 && import_react214.default.createElement(Error3, {
17550
+ }, Error3 && import_react206.default.createElement(Error3, {
17551
17551
  error
17552
- })) : import_react214.default.createElement("form", {
17552
+ })) : import_react206.default.createElement("form", {
17553
17553
  onSubmit: handleSubmit,
17554
17554
  className: "mml-wrap",
17555
17555
  "data-testid": "mml-form"
17556
- }, tree != null && tree.type ? import_react214.default.createElement("div", {
17556
+ }, tree != null && tree.type ? import_react206.default.createElement("div", {
17557
17557
  className: "mml-card"
17558
- }, tree == null ? void 0 : tree.reactElements) : tree == null ? void 0 : tree.reactElements, submitState.loading && Loading$1 && import_react214.default.createElement(Loading$1, {
17558
+ }, tree == null ? void 0 : tree.reactElements) : tree == null ? void 0 : tree.reactElements, submitState.loading && Loading$1 && import_react206.default.createElement(Loading$1, {
17559
17559
  loading: submitState.loading
17560
- }), submitState.success && Success$1 && import_react214.default.createElement(Success$1, {
17560
+ }), submitState.success && Success$1 && import_react206.default.createElement(Success$1, {
17561
17561
  success: submitState.success
17562
- }), submitState.error && Error3 && import_react214.default.createElement(Error3, {
17562
+ }), submitState.error && Error3 && import_react206.default.createElement(Error3, {
17563
17563
  error: submitState.error
17564
17564
  })));
17565
17565
  };
@@ -40855,10 +40855,10 @@ var UnMemoizedConnectionStatus = () => {
40855
40855
  var ConnectionStatus = import_react80.default.memo(UnMemoizedConnectionStatus);
40856
40856
 
40857
40857
  // src/components/MessageList/GiphyPreviewMessage.tsx
40858
- var import_react225 = __toESM(require("react"));
40858
+ var import_react226 = __toESM(require("react"));
40859
40859
 
40860
40860
  // src/components/Message/Message.tsx
40861
- var import_react224 = __toESM(require("react"));
40861
+ var import_react225 = __toESM(require("react"));
40862
40862
 
40863
40863
  // src/components/Message/hooks/useActionHandler.ts
40864
40864
  var handleActionWarning = `Action handler was called, but it is missing one of its required arguments.
@@ -44432,7 +44432,7 @@ var useMessageTextStreaming = ({
44432
44432
  };
44433
44433
 
44434
44434
  // src/components/Message/MessageSimple.tsx
44435
- var import_react223 = __toESM(require("react"));
44435
+ var import_react224 = __toESM(require("react"));
44436
44436
  var import_clsx59 = __toESM(require("clsx"));
44437
44437
 
44438
44438
  // src/components/Message/icons.tsx
@@ -47027,19 +47027,30 @@ var PollCreationDialog = ({ close }) => {
47027
47027
  };
47028
47028
 
47029
47029
  // src/components/Message/QuotedMessage.tsx
47030
- var QuotedMessage = () => {
47030
+ var QuotedMessage = ({
47031
+ renderText: propsRenderText
47032
+ }) => {
47031
47033
  const { Attachment: Attachment2 = Attachment, Avatar: ContextAvatar } = useComponentContext("QuotedMessage");
47032
47034
  const { client } = useChatContext();
47033
- const { isMyMessage, message } = useMessageContext("QuotedMessage");
47035
+ const {
47036
+ isMyMessage,
47037
+ message,
47038
+ renderText: contextRenderText
47039
+ } = useMessageContext("QuotedMessage");
47034
47040
  const { t: t2, userLanguage } = useTranslationContext("QuotedMessage");
47035
47041
  const { jumpToMessage } = useChannelActionContext("QuotedMessage");
47042
+ const renderText2 = propsRenderText ?? contextRenderText ?? renderText;
47036
47043
  const Avatar2 = ContextAvatar || Avatar;
47037
47044
  const { quoted_message } = message;
47045
+ const poll = quoted_message?.poll_id && client.polls.fromState(quoted_message.poll_id);
47046
+ const quotedMessageDeleted = quoted_message?.deleted_at || quoted_message?.type === "deleted";
47047
+ const quotedMessageText = quotedMessageDeleted ? t2("This message was deleted...") : quoted_message?.i18n?.[`${userLanguage}_text`] || quoted_message?.text;
47048
+ const quotedMessageAttachment = quoted_message?.attachments?.length && !quotedMessageDeleted ? quoted_message.attachments[0] : null;
47049
+ const renderedText = (0, import_react179.useMemo)(
47050
+ () => renderText2(quotedMessageText, quoted_message?.mentioned_users),
47051
+ [quotedMessageText, quoted_message?.mentioned_users, renderText2]
47052
+ );
47038
47053
  if (!quoted_message) return null;
47039
- const poll = quoted_message.poll_id && client.polls.fromState(quoted_message.poll_id);
47040
- const quotedMessageDeleted = quoted_message.deleted_at || quoted_message.type === "deleted";
47041
- const quotedMessageText = quotedMessageDeleted ? t2("This message was deleted...") : quoted_message.i18n?.[`${userLanguage}_text`] || quoted_message.text;
47042
- const quotedMessageAttachment = quoted_message.attachments?.length && !quotedMessageDeleted ? quoted_message.attachments[0] : null;
47043
47054
  if (!quoted_message.poll && !quotedMessageText && !quotedMessageAttachment) return null;
47044
47055
  return /* @__PURE__ */ import_react179.default.createElement(import_react179.default.Fragment, null, /* @__PURE__ */ import_react179.default.createElement(
47045
47056
  "div",
@@ -47073,7 +47084,7 @@ var QuotedMessage = () => {
47073
47084
  className: "str-chat__quoted-message-bubble__text",
47074
47085
  "data-testid": "quoted-message-text"
47075
47086
  },
47076
- quotedMessageText
47087
+ renderedText
47077
47088
  ))
47078
47089
  )
47079
47090
  ), message.attachments?.length ? /* @__PURE__ */ import_react179.default.createElement(Attachment2, { attachments: message.attachments }) : null);
@@ -48380,10 +48391,10 @@ var DefaultTriggerProvider = ({
48380
48391
  };
48381
48392
 
48382
48393
  // src/components/MessageInput/EditMessageForm.tsx
48383
- var import_react212 = __toESM(require("react"));
48394
+ var import_react216 = __toESM(require("react"));
48384
48395
 
48385
48396
  // src/components/MessageInput/MessageInputFlat.tsx
48386
- var import_react211 = __toESM(require("react"));
48397
+ var import_react215 = __toESM(require("react"));
48387
48398
  var import_clsx54 = __toESM(require("clsx"));
48388
48399
  var import_react_dropzone2 = require("react-dropzone");
48389
48400
 
@@ -48425,40 +48436,170 @@ var StopAIGenerationButton = ({
48425
48436
  };
48426
48437
 
48427
48438
  // src/components/MessageInput/QuotedMessagePreview.tsx
48428
- var import_react206 = __toESM(require("react"));
48439
+ var import_react210 = __toESM(require("react"));
48440
+
48441
+ // src/components/Message/FixedHeightMessage.tsx
48442
+ var import_react208 = __toESM(require("react"));
48443
+
48444
+ // src/components/MML/MML.tsx
48445
+ var import_react207 = __toESM(require("react"));
48446
+ var MMLReact = import_react207.default.lazy(async () => {
48447
+ const mml = await Promise.resolve().then(() => (init_mml_react_esm(), mml_react_esm_exports));
48448
+ return { default: mml.MML };
48449
+ });
48450
+ var MML3 = (props) => {
48451
+ const { actionHandler, align = "right", source } = props;
48452
+ const { theme } = useChatContext("MML");
48453
+ return /* @__PURE__ */ import_react207.default.createElement(import_react207.Suspense, { fallback: null }, /* @__PURE__ */ import_react207.default.createElement(
48454
+ MMLReact,
48455
+ {
48456
+ className: `mml-align-${align}`,
48457
+ Loading: null,
48458
+ onSubmit: actionHandler,
48459
+ source,
48460
+ Success: null,
48461
+ theme: (theme || "").replace(" ", "-")
48462
+ }
48463
+ ));
48464
+ };
48465
+
48466
+ // src/components/Message/FixedHeightMessage.tsx
48467
+ var selectColor = (number3, dark) => {
48468
+ const hue = number3 * 137.508;
48469
+ return `hsl(${hue},${dark ? "50%" : "85%"}, ${dark ? "75%" : "55%"})`;
48470
+ };
48471
+ var hashUserId = (userId) => {
48472
+ const hash = userId.split("").reduce((acc, c) => {
48473
+ acc = (acc << 5) - acc + c.charCodeAt(0);
48474
+ return acc & acc;
48475
+ }, 0);
48476
+ return Math.abs(hash) / 10 ** Math.ceil(Math.log10(Math.abs(hash) + 1));
48477
+ };
48478
+ var getUserColor = (theme, userId) => selectColor(hashUserId(userId), theme.includes("dark"));
48479
+ var UnMemoizedFixedHeightMessage = (props) => {
48480
+ const { groupedByUser: propGroupedByUser, message: propMessage } = props;
48481
+ const { theme } = useChatContext("FixedHeightMessage");
48482
+ const { groupedByUser: contextGroupedByUser, message: contextMessage } = useMessageContext("FixedHeightMessage");
48483
+ const { MessageDeleted: MessageDeleted2 = MessageDeleted } = useComponentContext("FixedHeightMessage");
48484
+ const { userLanguage } = useTranslationContext("FixedHeightMessage");
48485
+ const groupedByUser = propGroupedByUser !== void 0 ? propGroupedByUser : contextGroupedByUser;
48486
+ const message = propMessage || contextMessage;
48487
+ const handleAction = useActionHandler(message);
48488
+ const handleDelete2 = useDeleteHandler(message);
48489
+ const role = useUserRole(message);
48490
+ const messageTextToRender = message?.i18n?.[`${userLanguage}_text`] || message?.text;
48491
+ const renderedText = (0, import_react208.useMemo)(
48492
+ () => renderText(messageTextToRender, message.mentioned_users),
48493
+ [message.mentioned_users, messageTextToRender]
48494
+ );
48495
+ const userId = message.user?.id || "";
48496
+ const userColor = (0, import_react208.useMemo)(() => getUserColor(theme, userId), [userId, theme]);
48497
+ const messageActionsHandler = (0, import_react208.useCallback)(
48498
+ () => getMessageActions(["delete"], { canDelete: role.canDelete }),
48499
+ [role]
48500
+ );
48501
+ const images = message?.attachments?.filter(({ type }) => type === "image");
48502
+ return /* @__PURE__ */ import_react208.default.createElement(
48503
+ "div",
48504
+ {
48505
+ className: `str-chat__virtual-message__wrapper ${role.isMyMessage ? "str-chat__virtual-message__wrapper--me" : ""} ${groupedByUser ? "str-chat__virtual-message__wrapper--group" : ""}`,
48506
+ key: message.id
48507
+ },
48508
+ message.user && /* @__PURE__ */ import_react208.default.createElement(
48509
+ Avatar,
48510
+ {
48511
+ image: message.user.image,
48512
+ name: message.user.name || message.user.id,
48513
+ user: message.user
48514
+ }
48515
+ ),
48516
+ /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__content" }, /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__meta" }, /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__author", style: { color: userColor } }, /* @__PURE__ */ import_react208.default.createElement("strong", null, message.user?.name || "unknown"))), message.deleted_at || message.type === "deleted" ? /* @__PURE__ */ import_react208.default.createElement(MessageDeleted2, { message }) : /* @__PURE__ */ import_react208.default.createElement(import_react208.default.Fragment, null, images && /* @__PURE__ */ import_react208.default.createElement(Gallery, { images }), /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__text", "data-testid": "msg-text" }, renderedText, message.mml && /* @__PURE__ */ import_react208.default.createElement(MML3, { actionHandler: handleAction, align: "left", source: message.mml }), /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__data" }, /* @__PURE__ */ import_react208.default.createElement(
48517
+ MessageActions,
48518
+ {
48519
+ customWrapperClass: "str-chat__virtual-message__actions",
48520
+ getMessageActions: messageActionsHandler,
48521
+ handleDelete: handleDelete2,
48522
+ message,
48523
+ mine: () => role.isMyMessage
48524
+ }
48525
+ ), /* @__PURE__ */ import_react208.default.createElement("span", { className: "str-chat__virtual-message__date" }, /* @__PURE__ */ import_react208.default.createElement(
48526
+ MessageTimestamp,
48527
+ {
48528
+ customClass: "str-chat__message-simple-timestamp",
48529
+ message
48530
+ }
48531
+ ))))))
48532
+ );
48533
+ };
48534
+ var FixedHeightMessage = import_react208.default.memo(
48535
+ UnMemoizedFixedHeightMessage
48536
+ );
48537
+
48538
+ // src/components/Message/StreamedMessageText.tsx
48539
+ var import_react209 = __toESM(require("react"));
48540
+ var StreamedMessageText = (props) => {
48541
+ const {
48542
+ message: messageFromProps,
48543
+ renderingLetterCount,
48544
+ renderText: renderText2,
48545
+ streamingLetterIntervalMs
48546
+ } = props;
48547
+ const { message: messageFromContext } = useMessageContext("StreamedMessageText");
48548
+ const message = messageFromProps || messageFromContext;
48549
+ const { text: text8 = "" } = message;
48550
+ const { streamedMessageText } = useMessageTextStreaming({
48551
+ renderingLetterCount,
48552
+ streamingLetterIntervalMs,
48553
+ text: text8
48554
+ });
48555
+ return /* @__PURE__ */ import_react209.default.createElement(
48556
+ MessageText,
48557
+ {
48558
+ message: { ...message, text: streamedMessageText },
48559
+ renderText: renderText2
48560
+ }
48561
+ );
48562
+ };
48563
+
48564
+ // src/components/MessageInput/QuotedMessagePreview.tsx
48429
48565
  var QuotedMessagePreviewHeader = () => {
48430
48566
  const { setQuotedMessage } = useChannelActionContext("QuotedMessagePreview");
48431
48567
  const { t: t2 } = useTranslationContext("QuotedMessagePreview");
48432
- return /* @__PURE__ */ import_react206.default.createElement("div", { className: "str-chat__quoted-message-preview-header" }, /* @__PURE__ */ import_react206.default.createElement("div", { className: "str-chat__quoted-message-reply-to-message" }, t2("Reply to Message")), /* @__PURE__ */ import_react206.default.createElement(
48568
+ return /* @__PURE__ */ import_react210.default.createElement("div", { className: "str-chat__quoted-message-preview-header" }, /* @__PURE__ */ import_react210.default.createElement("div", { className: "str-chat__quoted-message-reply-to-message" }, t2("Reply to Message")), /* @__PURE__ */ import_react210.default.createElement(
48433
48569
  "button",
48434
48570
  {
48435
48571
  "aria-label": t2("aria/Cancel Reply"),
48436
48572
  className: "str-chat__quoted-message-remove",
48437
48573
  onClick: () => setQuotedMessage(void 0)
48438
48574
  },
48439
- /* @__PURE__ */ import_react206.default.createElement(CloseIcon, null)
48575
+ /* @__PURE__ */ import_react210.default.createElement(CloseIcon, null)
48440
48576
  ));
48441
48577
  };
48442
48578
  var QuotedMessagePreview = ({
48443
- quotedMessage
48579
+ quotedMessage,
48580
+ renderText: renderText2 = renderText
48444
48581
  }) => {
48445
48582
  const { client } = useChatContext();
48446
48583
  const { Attachment: Attachment2 = Attachment, Avatar: Avatar2 = Avatar } = useComponentContext("QuotedMessagePreview");
48447
48584
  const { userLanguage } = useTranslationContext("QuotedMessagePreview");
48448
48585
  const quotedMessageText = quotedMessage.i18n?.[`${userLanguage}_text`] || quotedMessage.text;
48449
- const quotedMessageAttachment = (0, import_react206.useMemo)(() => {
48586
+ const renderedText = (0, import_react210.useMemo)(
48587
+ () => renderText2(quotedMessageText, quotedMessage.mentioned_users),
48588
+ [quotedMessage.mentioned_users, quotedMessageText, renderText2]
48589
+ );
48590
+ const quotedMessageAttachment = (0, import_react210.useMemo)(() => {
48450
48591
  const [attachment] = quotedMessage.attachments ?? [];
48451
48592
  return attachment ? [attachment] : [];
48452
48593
  }, [quotedMessage.attachments]);
48453
48594
  if (!quotedMessageText && !quotedMessageAttachment) return null;
48454
48595
  const poll = quotedMessage.poll_id && client.polls.fromState(quotedMessage.poll_id);
48455
- return /* @__PURE__ */ import_react206.default.createElement(
48596
+ return /* @__PURE__ */ import_react210.default.createElement(
48456
48597
  "div",
48457
48598
  {
48458
48599
  className: "str-chat__quoted-message-preview",
48459
48600
  "data-testid": "quoted-message-preview"
48460
48601
  },
48461
- quotedMessage.user && /* @__PURE__ */ import_react206.default.createElement(
48602
+ quotedMessage.user && /* @__PURE__ */ import_react210.default.createElement(
48462
48603
  Avatar2,
48463
48604
  {
48464
48605
  className: "str-chat__avatar--quoted-message-sender",
@@ -48467,33 +48608,33 @@ var QuotedMessagePreview = ({
48467
48608
  user: quotedMessage.user
48468
48609
  }
48469
48610
  ),
48470
- /* @__PURE__ */ import_react206.default.createElement("div", { className: "str-chat__quoted-message-bubble" }, poll ? /* @__PURE__ */ import_react206.default.createElement(Poll, { isQuoted: true, poll }) : /* @__PURE__ */ import_react206.default.createElement(import_react206.default.Fragment, null, !!quotedMessageAttachment.length && /* @__PURE__ */ import_react206.default.createElement(Attachment2, { attachments: quotedMessageAttachment, isQuoted: true }), /* @__PURE__ */ import_react206.default.createElement(
48611
+ /* @__PURE__ */ import_react210.default.createElement("div", { className: "str-chat__quoted-message-bubble" }, poll ? /* @__PURE__ */ import_react210.default.createElement(Poll, { isQuoted: true, poll }) : /* @__PURE__ */ import_react210.default.createElement(import_react210.default.Fragment, null, !!quotedMessageAttachment.length && /* @__PURE__ */ import_react210.default.createElement(Attachment2, { attachments: quotedMessageAttachment, isQuoted: true }), /* @__PURE__ */ import_react210.default.createElement(
48471
48612
  "div",
48472
48613
  {
48473
48614
  className: "str-chat__quoted-message-text",
48474
48615
  "data-testid": "quoted-message-text"
48475
48616
  },
48476
- /* @__PURE__ */ import_react206.default.createElement("p", null, quotedMessageText)
48617
+ renderedText
48477
48618
  )))
48478
48619
  );
48479
48620
  };
48480
48621
 
48481
48622
  // src/components/MessageInput/LinkPreviewList.tsx
48482
48623
  var import_clsx53 = __toESM(require("clsx"));
48483
- var import_react207 = __toESM(require("react"));
48624
+ var import_react211 = __toESM(require("react"));
48484
48625
  var LinkPreviewList = ({ linkPreviews }) => {
48485
48626
  const { quotedMessage } = useChannelStateContext();
48486
48627
  const showLinkPreviews = linkPreviews.length > 0 && !quotedMessage;
48487
48628
  if (!showLinkPreviews) return null;
48488
- return /* @__PURE__ */ import_react207.default.createElement("div", { className: "str-chat__link-preview-list" }, Array.from(linkPreviews.values()).map(
48489
- (linkPreview) => linkPreview.state === "loaded" /* LOADED */ ? /* @__PURE__ */ import_react207.default.createElement(LinkPreviewCard, { key: linkPreview.og_scrape_url, linkPreview }) : null
48629
+ return /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-list" }, Array.from(linkPreviews.values()).map(
48630
+ (linkPreview) => linkPreview.state === "loaded" /* LOADED */ ? /* @__PURE__ */ import_react211.default.createElement(LinkPreviewCard, { key: linkPreview.og_scrape_url, linkPreview }) : null
48490
48631
  ));
48491
48632
  };
48492
48633
  var LinkPreviewCard = ({ linkPreview }) => {
48493
48634
  const { dismissLinkPreview } = useMessageInputContext();
48494
48635
  const { handleEnter, handleLeave, tooltipVisible } = useEnterLeaveHandlers();
48495
- const [referenceElement, setReferenceElement] = (0, import_react207.useState)(null);
48496
- return /* @__PURE__ */ import_react207.default.createElement(
48636
+ const [referenceElement, setReferenceElement] = (0, import_react211.useState)(null);
48637
+ return /* @__PURE__ */ import_react211.default.createElement(
48497
48638
  "div",
48498
48639
  {
48499
48640
  className: (0, import_clsx53.default)("str-chat__link-preview-card", {
@@ -48501,7 +48642,7 @@ var LinkPreviewCard = ({ linkPreview }) => {
48501
48642
  }),
48502
48643
  "data-testid": "link-preview-card"
48503
48644
  },
48504
- /* @__PURE__ */ import_react207.default.createElement(
48645
+ /* @__PURE__ */ import_react211.default.createElement(
48505
48646
  PopperTooltip,
48506
48647
  {
48507
48648
  offset: [0, 5],
@@ -48510,7 +48651,7 @@ var LinkPreviewCard = ({ linkPreview }) => {
48510
48651
  },
48511
48652
  linkPreview.og_scrape_url
48512
48653
  ),
48513
- /* @__PURE__ */ import_react207.default.createElement(
48654
+ /* @__PURE__ */ import_react211.default.createElement(
48514
48655
  "div",
48515
48656
  {
48516
48657
  className: "str-chat__link-preview-card__icon-container",
@@ -48518,23 +48659,23 @@ var LinkPreviewCard = ({ linkPreview }) => {
48518
48659
  onMouseLeave: handleLeave,
48519
48660
  ref: setReferenceElement
48520
48661
  },
48521
- /* @__PURE__ */ import_react207.default.createElement(LinkIcon, null)
48662
+ /* @__PURE__ */ import_react211.default.createElement(LinkIcon, null)
48522
48663
  ),
48523
- /* @__PURE__ */ import_react207.default.createElement("div", { className: "str-chat__link-preview-card__content" }, /* @__PURE__ */ import_react207.default.createElement("div", { className: "str-chat__link-preview-card__content-title" }, linkPreview.title), /* @__PURE__ */ import_react207.default.createElement("div", { className: "str-chat__link-preview-card__content-description" }, linkPreview.text)),
48524
- /* @__PURE__ */ import_react207.default.createElement(
48664
+ /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-card__content" }, /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-card__content-title" }, linkPreview.title), /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-card__content-description" }, linkPreview.text)),
48665
+ /* @__PURE__ */ import_react211.default.createElement(
48525
48666
  "button",
48526
48667
  {
48527
48668
  className: "str-chat__link-preview-card__dismiss-button",
48528
48669
  "data-testid": "link-preview-card-dismiss-btn",
48529
48670
  onClick: () => dismissLinkPreview(linkPreview)
48530
48671
  },
48531
- /* @__PURE__ */ import_react207.default.createElement(CloseIcon, null)
48672
+ /* @__PURE__ */ import_react211.default.createElement(CloseIcon, null)
48532
48673
  )
48533
48674
  );
48534
48675
  };
48535
48676
 
48536
48677
  // src/components/ChatAutoComplete/ChatAutoComplete.tsx
48537
- var import_react208 = __toESM(require("react"));
48678
+ var import_react212 = __toESM(require("react"));
48538
48679
  var UnMemoizedChatAutoComplete = (props) => {
48539
48680
  const {
48540
48681
  AutocompleteSuggestionItem: SuggestionItem,
@@ -48556,7 +48697,7 @@ var UnMemoizedChatAutoComplete = (props) => {
48556
48697
  const [firstSkin] = emoji.skins ?? [];
48557
48698
  return emoji.native ?? firstSkin.native;
48558
48699
  };
48559
- const updateInnerRef = (0, import_react208.useCallback)(
48700
+ const updateInnerRef = (0, import_react212.useCallback)(
48560
48701
  (ref) => {
48561
48702
  if (innerRef) {
48562
48703
  innerRef.current = ref;
@@ -48564,7 +48705,7 @@ var UnMemoizedChatAutoComplete = (props) => {
48564
48705
  },
48565
48706
  [innerRef]
48566
48707
  );
48567
- return /* @__PURE__ */ import_react208.default.createElement(
48708
+ return /* @__PURE__ */ import_react212.default.createElement(
48568
48709
  ReactTextareaAutocomplete,
48569
48710
  {
48570
48711
  additionalTextareaProps: messageInput.additionalTextareaProps,
@@ -48599,15 +48740,15 @@ var UnMemoizedChatAutoComplete = (props) => {
48599
48740
  }
48600
48741
  );
48601
48742
  };
48602
- var ChatAutoComplete = import_react208.default.memo(
48743
+ var ChatAutoComplete = import_react212.default.memo(
48603
48744
  UnMemoizedChatAutoComplete
48604
48745
  );
48605
48746
 
48606
48747
  // src/components/AIStateIndicator/AIStateIndicator.tsx
48607
- var import_react210 = __toESM(require("react"));
48748
+ var import_react214 = __toESM(require("react"));
48608
48749
 
48609
48750
  // src/components/AIStateIndicator/hooks/useAIState.ts
48610
- var import_react209 = require("react");
48751
+ var import_react213 = require("react");
48611
48752
  var AIStates = {
48612
48753
  Error: "AI_STATE_ERROR",
48613
48754
  ExternalSources: "AI_STATE_EXTERNAL_SOURCES",
@@ -48616,8 +48757,8 @@ var AIStates = {
48616
48757
  Thinking: "AI_STATE_THINKING"
48617
48758
  };
48618
48759
  var useAIState = (channel) => {
48619
- const [aiState, setAiState] = (0, import_react209.useState)(AIStates.Idle);
48620
- (0, import_react209.useEffect)(() => {
48760
+ const [aiState, setAiState] = (0, import_react213.useState)(AIStates.Idle);
48761
+ (0, import_react213.useEffect)(() => {
48621
48762
  if (!channel) {
48622
48763
  return;
48623
48764
  }
@@ -48657,7 +48798,7 @@ var AIStateIndicator = ({
48657
48798
  [AIStates.Thinking]: t2("Thinking..."),
48658
48799
  [AIStates.Generating]: t2("Generating...")
48659
48800
  };
48660
- return aiState in allowedStates ? /* @__PURE__ */ import_react210.default.createElement("div", { className: "str-chat__ai-state-indicator-container" }, /* @__PURE__ */ import_react210.default.createElement("p", { className: "str-chat__ai-state-indicator-text" }, allowedStates[aiState])) : null;
48801
+ return aiState in allowedStates ? /* @__PURE__ */ import_react214.default.createElement("div", { className: "str-chat__ai-state-indicator-container" }, /* @__PURE__ */ import_react214.default.createElement("p", { className: "str-chat__ai-state-indicator-text" }, allowedStates[aiState])) : null;
48661
48802
  };
48662
48803
 
48663
48804
  // src/components/MessageInput/MessageInputFlat.tsx
@@ -48702,19 +48843,19 @@ var MessageInputFlat = () => {
48702
48843
  const { setQuotedMessage } = useChannelActionContext("MessageInputFlat");
48703
48844
  const { channel } = useChatContext("MessageInputFlat");
48704
48845
  const { aiState } = useAIState(channel);
48705
- const stopGenerating = (0, import_react211.useCallback)(() => channel?.stopAIResponse(), [channel]);
48846
+ const stopGenerating = (0, import_react215.useCallback)(() => channel?.stopAIResponse(), [channel]);
48706
48847
  const [
48707
48848
  showRecordingPermissionDeniedNotification,
48708
48849
  setShowRecordingPermissionDeniedNotification
48709
- ] = (0, import_react211.useState)(false);
48710
- const closePermissionDeniedNotification = (0, import_react211.useCallback)(() => {
48850
+ ] = (0, import_react215.useState)(false);
48851
+ const closePermissionDeniedNotification = (0, import_react215.useCallback)(() => {
48711
48852
  setShowRecordingPermissionDeniedNotification(false);
48712
48853
  }, []);
48713
- const failedUploadsCount = (0, import_react211.useMemo)(
48854
+ const failedUploadsCount = (0, import_react215.useMemo)(
48714
48855
  () => attachments.filter((a2) => a2.localMetadata?.uploadState === "failed").length,
48715
48856
  [attachments]
48716
48857
  );
48717
- const accept = (0, import_react211.useMemo)(
48858
+ const accept = (0, import_react215.useMemo)(
48718
48859
  () => acceptedFiles.reduce((mediaTypeMap, mediaType) => {
48719
48860
  mediaTypeMap[mediaType] ?? (mediaTypeMap[mediaType] = []);
48720
48861
  return mediaTypeMap;
@@ -48728,7 +48869,7 @@ var MessageInputFlat = () => {
48728
48869
  noClick: true,
48729
48870
  onDrop: uploadNewFiles
48730
48871
  });
48731
- (0, import_react211.useEffect)(() => {
48872
+ (0, import_react215.useEffect)(() => {
48732
48873
  const handleQuotedMessageUpdate = (e2) => {
48733
48874
  if (e2.message?.id !== quotedMessage?.id) return;
48734
48875
  if (e2.type === "message.deleted") {
@@ -48744,40 +48885,40 @@ var MessageInputFlat = () => {
48744
48885
  channel?.off("message.updated", handleQuotedMessageUpdate);
48745
48886
  };
48746
48887
  }, [channel, quotedMessage]);
48747
- if (recordingController.recordingState) return /* @__PURE__ */ import_react211.default.createElement(AudioRecorder2, null);
48888
+ if (recordingController.recordingState) return /* @__PURE__ */ import_react215.default.createElement(AudioRecorder2, null);
48748
48889
  const displayQuotedMessage = !message && quotedMessage && quotedMessage.parent_id === parent?.id;
48749
48890
  const recordingEnabled = !!(recordingController.recorder && navigator.mediaDevices);
48750
48891
  const isRecording = !!recordingController.recordingState;
48751
48892
  const StopAIGenerationButton2 = StopAIGenerationButtonOverride === void 0 ? StopAIGenerationButton : StopAIGenerationButtonOverride;
48752
48893
  const shouldDisplayStopAIGeneration = [AIStates.Thinking, AIStates.Generating].includes(aiState) && !!StopAIGenerationButton2;
48753
- return /* @__PURE__ */ import_react211.default.createElement(import_react211.default.Fragment, null, /* @__PURE__ */ import_react211.default.createElement("div", { ...getRootProps({ className: "str-chat__message-input" }) }, recordingEnabled && recordingController.permissionState === "denied" && showRecordingPermissionDeniedNotification && /* @__PURE__ */ import_react211.default.createElement(
48894
+ return /* @__PURE__ */ import_react215.default.createElement(import_react215.default.Fragment, null, /* @__PURE__ */ import_react215.default.createElement("div", { ...getRootProps({ className: "str-chat__message-input" }) }, recordingEnabled && recordingController.permissionState === "denied" && showRecordingPermissionDeniedNotification && /* @__PURE__ */ import_react215.default.createElement(
48754
48895
  RecordingPermissionDeniedNotification2,
48755
48896
  {
48756
48897
  onClose: closePermissionDeniedNotification,
48757
48898
  permissionName: "microphone" /* MIC */
48758
48899
  }
48759
- ), findAndEnqueueURLsToEnrich && /* @__PURE__ */ import_react211.default.createElement(LinkPreviewList2, { linkPreviews: Array.from(linkPreviews.values()) }), isDragActive && /* @__PURE__ */ import_react211.default.createElement(
48900
+ ), findAndEnqueueURLsToEnrich && /* @__PURE__ */ import_react215.default.createElement(LinkPreviewList2, { linkPreviews: Array.from(linkPreviews.values()) }), isDragActive && /* @__PURE__ */ import_react215.default.createElement(
48760
48901
  "div",
48761
48902
  {
48762
48903
  className: (0, import_clsx54.default)("str-chat__dropzone-container", {
48763
48904
  "str-chat__dropzone-container--not-accepted": isDragReject
48764
48905
  })
48765
48906
  },
48766
- !isDragReject && /* @__PURE__ */ import_react211.default.createElement("p", null, t2("Drag your files here")),
48767
- isDragReject && /* @__PURE__ */ import_react211.default.createElement("p", null, t2("Some of the files will not be accepted"))
48768
- ), displayQuotedMessage && /* @__PURE__ */ import_react211.default.createElement(QuotedMessagePreviewHeader, null), /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__message-input-inner" }, /* @__PURE__ */ import_react211.default.createElement(AttachmentSelector2, null), /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__message-textarea-container" }, displayQuotedMessage && /* @__PURE__ */ import_react211.default.createElement(QuotedMessagePreview2, { quotedMessage }), isUploadEnabled && !!(numberOfUploads + failedUploadsCount || attachments.length > 0) && /* @__PURE__ */ import_react211.default.createElement(AttachmentPreviewList2, null), /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__message-textarea-with-emoji-picker" }, /* @__PURE__ */ import_react211.default.createElement(ChatAutoComplete, null), EmojiPicker && /* @__PURE__ */ import_react211.default.createElement(EmojiPicker, null))), shouldDisplayStopAIGeneration ? /* @__PURE__ */ import_react211.default.createElement(StopAIGenerationButton2, { onClick: stopGenerating }) : !hideSendButton && /* @__PURE__ */ import_react211.default.createElement(import_react211.default.Fragment, null, cooldownRemaining ? /* @__PURE__ */ import_react211.default.createElement(
48907
+ !isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Drag your files here")),
48908
+ isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Some of the files will not be accepted"))
48909
+ ), displayQuotedMessage && /* @__PURE__ */ import_react215.default.createElement(QuotedMessagePreviewHeader, null), /* @__PURE__ */ import_react215.default.createElement("div", { className: "str-chat__message-input-inner" }, /* @__PURE__ */ import_react215.default.createElement(AttachmentSelector2, null), /* @__PURE__ */ import_react215.default.createElement("div", { className: "str-chat__message-textarea-container" }, displayQuotedMessage && /* @__PURE__ */ import_react215.default.createElement(QuotedMessagePreview2, { quotedMessage }), isUploadEnabled && !!(numberOfUploads + failedUploadsCount || attachments.length > 0) && /* @__PURE__ */ import_react215.default.createElement(AttachmentPreviewList2, null), /* @__PURE__ */ import_react215.default.createElement("div", { className: "str-chat__message-textarea-with-emoji-picker" }, /* @__PURE__ */ import_react215.default.createElement(ChatAutoComplete, null), EmojiPicker && /* @__PURE__ */ import_react215.default.createElement(EmojiPicker, null))), shouldDisplayStopAIGeneration ? /* @__PURE__ */ import_react215.default.createElement(StopAIGenerationButton2, { onClick: stopGenerating }) : !hideSendButton && /* @__PURE__ */ import_react215.default.createElement(import_react215.default.Fragment, null, cooldownRemaining ? /* @__PURE__ */ import_react215.default.createElement(
48769
48910
  CooldownTimer2,
48770
48911
  {
48771
48912
  cooldownInterval: cooldownRemaining,
48772
48913
  setCooldownRemaining
48773
48914
  }
48774
- ) : /* @__PURE__ */ import_react211.default.createElement(import_react211.default.Fragment, null, /* @__PURE__ */ import_react211.default.createElement(
48915
+ ) : /* @__PURE__ */ import_react215.default.createElement(import_react215.default.Fragment, null, /* @__PURE__ */ import_react215.default.createElement(
48775
48916
  SendButton2,
48776
48917
  {
48777
48918
  disabled: !numberOfUploads && !text8.length && attachments.length - failedUploadsCount === 0,
48778
48919
  sendMessage: handleSubmit
48779
48920
  }
48780
- ), recordingEnabled && /* @__PURE__ */ import_react211.default.createElement(
48921
+ ), recordingEnabled && /* @__PURE__ */ import_react215.default.createElement(
48781
48922
  StartRecordingAudioButton2,
48782
48923
  {
48783
48924
  disabled: isRecording || !asyncMessagesMultiSendEnabled && attachments.some(
@@ -48795,22 +48936,22 @@ var MessageInputFlat = () => {
48795
48936
  var EditMessageForm = () => {
48796
48937
  const { t: t2 } = useTranslationContext("EditMessageForm");
48797
48938
  const { clearEditingState, handleSubmit } = useMessageInputContext("EditMessageForm");
48798
- (0, import_react212.useEffect)(() => {
48939
+ (0, import_react216.useEffect)(() => {
48799
48940
  const onKeyDown = (event) => {
48800
48941
  if (event.key === "Escape") clearEditingState?.();
48801
48942
  };
48802
48943
  document.addEventListener("keydown", onKeyDown);
48803
48944
  return () => document.removeEventListener("keydown", onKeyDown);
48804
48945
  }, [clearEditingState]);
48805
- return /* @__PURE__ */ import_react212.default.createElement(
48946
+ return /* @__PURE__ */ import_react216.default.createElement(
48806
48947
  "form",
48807
48948
  {
48808
48949
  autoComplete: "off",
48809
48950
  className: "str-chat__edit-message-form",
48810
48951
  onSubmit: handleSubmit
48811
48952
  },
48812
- /* @__PURE__ */ import_react212.default.createElement(MessageInputFlat, null),
48813
- /* @__PURE__ */ import_react212.default.createElement("div", { className: "str-chat__edit-message-form-options" }, /* @__PURE__ */ import_react212.default.createElement(
48953
+ /* @__PURE__ */ import_react216.default.createElement(MessageInputFlat, null),
48954
+ /* @__PURE__ */ import_react216.default.createElement("div", { className: "str-chat__edit-message-form-options" }, /* @__PURE__ */ import_react216.default.createElement(
48814
48955
  "button",
48815
48956
  {
48816
48957
  className: "str-chat__edit-message-cancel",
@@ -48818,7 +48959,7 @@ var EditMessageForm = () => {
48818
48959
  onClick: clearEditingState
48819
48960
  },
48820
48961
  t2("Cancel")
48821
- ), /* @__PURE__ */ import_react212.default.createElement(
48962
+ ), /* @__PURE__ */ import_react216.default.createElement(
48822
48963
  "button",
48823
48964
  {
48824
48965
  className: "str-chat__edit-message-send",
@@ -48831,7 +48972,7 @@ var EditMessageForm = () => {
48831
48972
  };
48832
48973
 
48833
48974
  // src/components/MessageInput/MessageInput.tsx
48834
- var import_react213 = __toESM(require("react"));
48975
+ var import_react217 = __toESM(require("react"));
48835
48976
  var MessageInputProvider = (props) => {
48836
48977
  const cooldownTimerState = useCooldownTimer();
48837
48978
  const messageInputState = useMessageInputState(props);
@@ -48842,7 +48983,7 @@ var MessageInputProvider = (props) => {
48842
48983
  ...props,
48843
48984
  emojiSearchIndex: props.emojiSearchIndex ?? emojiSearchIndex
48844
48985
  });
48845
- return /* @__PURE__ */ import_react213.default.createElement(MessageInputContextProvider, { value: messageInputContextValue }, props.children);
48986
+ return /* @__PURE__ */ import_react217.default.createElement(MessageInputContextProvider, { value: messageInputContextValue }, props.children);
48846
48987
  };
48847
48988
  var UnMemoizedMessageInput = (props) => {
48848
48989
  const { Input: PropInput } = props;
@@ -48851,57 +48992,35 @@ var UnMemoizedMessageInput = (props) => {
48851
48992
  const Input3 = PropInput || ContextInput || MessageInputFlat;
48852
48993
  const dialogManagerId = props.isThreadInput ? "message-input-dialog-manager-thread" : "message-input-dialog-manager";
48853
48994
  if (dragAndDropWindow)
48854
- return /* @__PURE__ */ import_react213.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react213.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react213.default.createElement(Input3, null)));
48855
- return /* @__PURE__ */ import_react213.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react213.default.createElement(MessageInputProvider, { ...props }, /* @__PURE__ */ import_react213.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react213.default.createElement(Input3, null))));
48995
+ return /* @__PURE__ */ import_react217.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react217.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react217.default.createElement(Input3, null)));
48996
+ return /* @__PURE__ */ import_react217.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react217.default.createElement(MessageInputProvider, { ...props }, /* @__PURE__ */ import_react217.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react217.default.createElement(Input3, null))));
48856
48997
  };
48857
- var MessageInput = import_react213.default.memo(
48998
+ var MessageInput = import_react217.default.memo(
48858
48999
  UnMemoizedMessageInput
48859
49000
  );
48860
49001
 
48861
- // src/components/MML/MML.tsx
48862
- var import_react215 = __toESM(require("react"));
48863
- var MMLReact = import_react215.default.lazy(async () => {
48864
- const mml = await Promise.resolve().then(() => (init_mml_react_esm(), mml_react_esm_exports));
48865
- return { default: mml.MML };
48866
- });
48867
- var MML3 = (props) => {
48868
- const { actionHandler, align = "right", source } = props;
48869
- const { theme } = useChatContext("MML");
48870
- return /* @__PURE__ */ import_react215.default.createElement(import_react215.Suspense, { fallback: null }, /* @__PURE__ */ import_react215.default.createElement(
48871
- MMLReact,
48872
- {
48873
- className: `mml-align-${align}`,
48874
- Loading: null,
48875
- onSubmit: actionHandler,
48876
- source,
48877
- Success: null,
48878
- theme: (theme || "").replace(" ", "-")
48879
- }
48880
- ));
48881
- };
48882
-
48883
49002
  // src/components/Reactions/ReactionsList.tsx
48884
- var import_react219 = __toESM(require("react"));
49003
+ var import_react221 = __toESM(require("react"));
48885
49004
  var import_clsx56 = __toESM(require("clsx"));
48886
49005
 
48887
49006
  // src/components/Reactions/ReactionsListModal.tsx
48888
- var import_react217 = __toESM(require("react"));
49007
+ var import_react219 = __toESM(require("react"));
48889
49008
  var import_clsx55 = __toESM(require("clsx"));
48890
49009
 
48891
49010
  // src/components/Reactions/hooks/useFetchReactions.ts
48892
- var import_react216 = require("react");
49011
+ var import_react218 = require("react");
48893
49012
  function useFetchReactions(options) {
48894
49013
  const { handleFetchReactions: contextHandleFetchReactions } = useMessageContext("useFetchReactions");
48895
- const [reactions, setReactions] = (0, import_react216.useState)([]);
49014
+ const [reactions, setReactions] = (0, import_react218.useState)([]);
48896
49015
  const {
48897
49016
  handleFetchReactions: propHandleFetchReactions,
48898
49017
  reactionType,
48899
49018
  shouldFetch,
48900
49019
  sort
48901
49020
  } = options;
48902
- const [isLoading, setIsLoading] = (0, import_react216.useState)(shouldFetch);
49021
+ const [isLoading, setIsLoading] = (0, import_react218.useState)(shouldFetch);
48903
49022
  const handleFetchReactions = propHandleFetchReactions ?? contextHandleFetchReactions;
48904
- (0, import_react216.useEffect)(() => {
49023
+ (0, import_react218.useEffect)(() => {
48905
49024
  if (!shouldFetch) {
48906
49025
  return;
48907
49026
  }
@@ -48957,24 +49076,24 @@ function ReactionsListModal({
48957
49076
  shouldFetch: modalProps.open,
48958
49077
  sort: reactionDetailsSort
48959
49078
  });
48960
- const reactionDetailsWithLegacyFallback = (0, import_react217.useMemo)(
49079
+ const reactionDetailsWithLegacyFallback = (0, import_react219.useMemo)(
48961
49080
  () => legacySortReactionDetails ? [...reactionDetails].sort(legacySortReactionDetails) : reactionDetails,
48962
49081
  [legacySortReactionDetails, reactionDetails]
48963
49082
  );
48964
- return /* @__PURE__ */ import_react217.default.createElement(
49083
+ return /* @__PURE__ */ import_react219.default.createElement(
48965
49084
  Modal,
48966
49085
  {
48967
49086
  ...modalProps,
48968
49087
  className: (0, import_clsx55.default)("str-chat__message-reactions-details-modal", modalProps.className)
48969
49088
  },
48970
- /* @__PURE__ */ import_react217.default.createElement(
49089
+ /* @__PURE__ */ import_react219.default.createElement(
48971
49090
  "div",
48972
49091
  {
48973
49092
  className: "str-chat__message-reactions-details",
48974
49093
  "data-testid": "reactions-list-modal"
48975
49094
  },
48976
- /* @__PURE__ */ import_react217.default.createElement("div", { className: "str-chat__message-reactions-details-reaction-types" }, reactions.map(
48977
- ({ EmojiComponent, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react217.default.createElement(
49095
+ /* @__PURE__ */ import_react219.default.createElement("div", { className: "str-chat__message-reactions-details-reaction-types" }, reactions.map(
49096
+ ({ EmojiComponent, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react219.default.createElement(
48978
49097
  "div",
48979
49098
  {
48980
49099
  className: (0, import_clsx55.default)("str-chat__message-reactions-details-reaction-type", {
@@ -48986,25 +49105,25 @@ function ReactionsListModal({
48986
49105
  reactionType
48987
49106
  )
48988
49107
  },
48989
- /* @__PURE__ */ import_react217.default.createElement("span", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback" }, /* @__PURE__ */ import_react217.default.createElement(EmojiComponent, null)),
49108
+ /* @__PURE__ */ import_react219.default.createElement("span", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback" }, /* @__PURE__ */ import_react219.default.createElement(EmojiComponent, null)),
48990
49109
  "\xA0",
48991
- /* @__PURE__ */ import_react217.default.createElement("span", { className: "str-chat__message-reaction-count" }, reactionCount)
49110
+ /* @__PURE__ */ import_react219.default.createElement("span", { className: "str-chat__message-reaction-count" }, reactionCount)
48992
49111
  )
48993
49112
  )),
48994
- SelectedEmojiComponent && /* @__PURE__ */ import_react217.default.createElement("div", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback str-chat__message-reaction-emoji-big" }, /* @__PURE__ */ import_react217.default.createElement(SelectedEmojiComponent, null)),
48995
- /* @__PURE__ */ import_react217.default.createElement(
49113
+ SelectedEmojiComponent && /* @__PURE__ */ import_react219.default.createElement("div", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback str-chat__message-reaction-emoji-big" }, /* @__PURE__ */ import_react219.default.createElement(SelectedEmojiComponent, null)),
49114
+ /* @__PURE__ */ import_react219.default.createElement(
48996
49115
  "div",
48997
49116
  {
48998
49117
  className: "str-chat__message-reactions-details-reacting-users",
48999
49118
  "data-testid": "all-reacting-users"
49000
49119
  },
49001
- areReactionsLoading ? /* @__PURE__ */ import_react217.default.createElement(LoadingIndicator, null) : reactionDetailsWithLegacyFallback.map(({ user }) => /* @__PURE__ */ import_react217.default.createElement(
49120
+ areReactionsLoading ? /* @__PURE__ */ import_react219.default.createElement(LoadingIndicator, null) : reactionDetailsWithLegacyFallback.map(({ user }) => /* @__PURE__ */ import_react219.default.createElement(
49002
49121
  "div",
49003
49122
  {
49004
49123
  className: "str-chat__message-reactions-details-reacting-user",
49005
49124
  key: user?.id
49006
49125
  },
49007
- /* @__PURE__ */ import_react217.default.createElement(
49126
+ /* @__PURE__ */ import_react219.default.createElement(
49008
49127
  Avatar,
49009
49128
  {
49010
49129
  className: "stream-chat__avatar--reaction",
@@ -49013,7 +49132,7 @@ function ReactionsListModal({
49013
49132
  name: user?.name || user?.id
49014
49133
  }
49015
49134
  ),
49016
- /* @__PURE__ */ import_react217.default.createElement(
49135
+ /* @__PURE__ */ import_react219.default.createElement(
49017
49136
  "span",
49018
49137
  {
49019
49138
  className: "str-chat__user-item--name",
@@ -49028,7 +49147,7 @@ function ReactionsListModal({
49028
49147
  }
49029
49148
 
49030
49149
  // src/components/Reactions/hooks/useProcessReactions.tsx
49031
- var import_react218 = require("react");
49150
+ var import_react220 = require("react");
49032
49151
  var defaultReactionsSort = (a2, b) => {
49033
49152
  if (a2.firstReactionAt && b.firstReactionAt) {
49034
49153
  return +a2.firstReactionAt - +b.firstReactionAt;
@@ -49050,19 +49169,19 @@ var useProcessReactions = (params) => {
49050
49169
  const latestReactions = propReactions || message.latest_reactions;
49051
49170
  const ownReactions = propOwnReactions || message?.own_reactions;
49052
49171
  const reactionGroups = propReactionGroups || message?.reaction_groups;
49053
- const isOwnReaction = (0, import_react218.useCallback)(
49172
+ const isOwnReaction = (0, import_react220.useCallback)(
49054
49173
  (reactionType) => ownReactions?.some((reaction) => reaction.type === reactionType) ?? false,
49055
49174
  [ownReactions]
49056
49175
  );
49057
- const getEmojiByReactionType = (0, import_react218.useCallback)(
49176
+ const getEmojiByReactionType = (0, import_react220.useCallback)(
49058
49177
  (reactionType) => reactionOptions.find(({ type }) => type === reactionType)?.Component ?? null,
49059
49178
  [reactionOptions]
49060
49179
  );
49061
- const isSupportedReaction = (0, import_react218.useCallback)(
49180
+ const isSupportedReaction = (0, import_react220.useCallback)(
49062
49181
  (reactionType) => reactionOptions.some((reactionOption) => reactionOption.type === reactionType),
49063
49182
  [reactionOptions]
49064
49183
  );
49065
- const getLatestReactedUserNames = (0, import_react218.useCallback)(
49184
+ const getLatestReactedUserNames = (0, import_react220.useCallback)(
49066
49185
  (reactionType) => latestReactions?.flatMap((reaction) => {
49067
49186
  if (reactionType && reactionType === reaction.type) {
49068
49187
  const username = reaction.user?.name || reaction.user?.id;
@@ -49072,7 +49191,7 @@ var useProcessReactions = (params) => {
49072
49191
  }) ?? [],
49073
49192
  [latestReactions]
49074
49193
  );
49075
- const existingReactions = (0, import_react218.useMemo)(() => {
49194
+ const existingReactions = (0, import_react220.useMemo)(() => {
49076
49195
  if (!reactionGroups) {
49077
49196
  return [];
49078
49197
  }
@@ -49106,7 +49225,7 @@ var useProcessReactions = (params) => {
49106
49225
  sortReactions
49107
49226
  ]);
49108
49227
  const hasReactions = existingReactions.length > 0;
49109
- const totalReactionCount = (0, import_react218.useMemo)(
49228
+ const totalReactionCount = (0, import_react220.useMemo)(
49110
49229
  () => existingReactions.reduce((total, { reactionCount }) => total + reactionCount, 0),
49111
49230
  [existingReactions]
49112
49231
  );
@@ -49128,7 +49247,7 @@ var UnMemoizedReactionsList = (props) => {
49128
49247
  ...rest
49129
49248
  } = props;
49130
49249
  const { existingReactions, hasReactions, totalReactionCount } = useProcessReactions(rest);
49131
- const [selectedReactionType, setSelectedReactionType] = (0, import_react219.useState)(null);
49250
+ const [selectedReactionType, setSelectedReactionType] = (0, import_react221.useState)(null);
49132
49251
  const { t: t2 } = useTranslationContext("ReactionsList");
49133
49252
  const { ReactionsListModal: ReactionsListModal2 = ReactionsListModal } = useComponentContext();
49134
49253
  const handleReactionButtonClick = (reactionType) => {
@@ -49138,7 +49257,7 @@ var UnMemoizedReactionsList = (props) => {
49138
49257
  setSelectedReactionType(reactionType);
49139
49258
  };
49140
49259
  if (!hasReactions) return null;
49141
- return /* @__PURE__ */ import_react219.default.createElement(import_react219.default.Fragment, null, /* @__PURE__ */ import_react219.default.createElement(
49260
+ return /* @__PURE__ */ import_react221.default.createElement(import_react221.default.Fragment, null, /* @__PURE__ */ import_react221.default.createElement(
49142
49261
  "div",
49143
49262
  {
49144
49263
  "aria-label": t2("aria/Reaction list"),
@@ -49149,8 +49268,8 @@ var UnMemoizedReactionsList = (props) => {
49149
49268
  "data-testid": "reaction-list",
49150
49269
  role: "figure"
49151
49270
  },
49152
- /* @__PURE__ */ import_react219.default.createElement("ul", { className: "str-chat__message-reactions" }, existingReactions.map(
49153
- ({ EmojiComponent, isOwnReaction, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react219.default.createElement(
49271
+ /* @__PURE__ */ import_react221.default.createElement("ul", { className: "str-chat__message-reactions" }, existingReactions.map(
49272
+ ({ EmojiComponent, isOwnReaction, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react221.default.createElement(
49154
49273
  "li",
49155
49274
  {
49156
49275
  className: (0, import_clsx56.default)("str-chat__message-reaction", {
@@ -49158,7 +49277,7 @@ var UnMemoizedReactionsList = (props) => {
49158
49277
  }),
49159
49278
  key: reactionType
49160
49279
  },
49161
- /* @__PURE__ */ import_react219.default.createElement(
49280
+ /* @__PURE__ */ import_react221.default.createElement(
49162
49281
  "button",
49163
49282
  {
49164
49283
  "aria-label": `Reactions: ${reactionType}`,
@@ -49166,9 +49285,9 @@ var UnMemoizedReactionsList = (props) => {
49166
49285
  onClick: () => handleReactionButtonClick(reactionType),
49167
49286
  type: "button"
49168
49287
  },
49169
- /* @__PURE__ */ import_react219.default.createElement("span", { className: "str-chat__message-reaction-emoji" }, /* @__PURE__ */ import_react219.default.createElement(EmojiComponent, null)),
49288
+ /* @__PURE__ */ import_react221.default.createElement("span", { className: "str-chat__message-reaction-emoji" }, /* @__PURE__ */ import_react221.default.createElement(EmojiComponent, null)),
49170
49289
  "\xA0",
49171
- /* @__PURE__ */ import_react219.default.createElement(
49290
+ /* @__PURE__ */ import_react221.default.createElement(
49172
49291
  "span",
49173
49292
  {
49174
49293
  className: "str-chat__message-reaction-count",
@@ -49178,8 +49297,8 @@ var UnMemoizedReactionsList = (props) => {
49178
49297
  )
49179
49298
  )
49180
49299
  )
49181
- ), /* @__PURE__ */ import_react219.default.createElement("li", null, /* @__PURE__ */ import_react219.default.createElement("span", { className: "str-chat__reaction-list--counter" }, totalReactionCount)))
49182
- ), selectedReactionType !== null && /* @__PURE__ */ import_react219.default.createElement(
49300
+ ), /* @__PURE__ */ import_react221.default.createElement("li", null, /* @__PURE__ */ import_react221.default.createElement("span", { className: "str-chat__reaction-list--counter" }, totalReactionCount)))
49301
+ ), selectedReactionType !== null && /* @__PURE__ */ import_react221.default.createElement(
49183
49302
  ReactionsListModal2,
49184
49303
  {
49185
49304
  handleFetchReactions,
@@ -49192,12 +49311,12 @@ var UnMemoizedReactionsList = (props) => {
49192
49311
  }
49193
49312
  ));
49194
49313
  };
49195
- var ReactionsList = import_react219.default.memo(
49314
+ var ReactionsList = import_react221.default.memo(
49196
49315
  UnMemoizedReactionsList
49197
49316
  );
49198
49317
 
49199
49318
  // src/components/Reactions/SimpleReactionsList.tsx
49200
- var import_react220 = __toESM(require("react"));
49319
+ var import_react222 = __toESM(require("react"));
49201
49320
  var import_clsx57 = __toESM(require("clsx"));
49202
49321
  var WithTooltip = ({
49203
49322
  children,
@@ -49205,12 +49324,12 @@ var WithTooltip = ({
49205
49324
  onMouseLeave,
49206
49325
  title
49207
49326
  }) => {
49208
- const [referenceElement, setReferenceElement] = (0, import_react220.useState)(null);
49327
+ const [referenceElement, setReferenceElement] = (0, import_react222.useState)(null);
49209
49328
  const { handleEnter, handleLeave, tooltipVisible } = useEnterLeaveHandlers({
49210
49329
  onMouseEnter,
49211
49330
  onMouseLeave
49212
49331
  });
49213
- return /* @__PURE__ */ import_react220.default.createElement(import_react220.default.Fragment, null, /* @__PURE__ */ import_react220.default.createElement(PopperTooltip, { referenceElement, visible: tooltipVisible }, title), /* @__PURE__ */ import_react220.default.createElement(
49332
+ return /* @__PURE__ */ import_react222.default.createElement(import_react222.default.Fragment, null, /* @__PURE__ */ import_react222.default.createElement(PopperTooltip, { referenceElement, visible: tooltipVisible }, title), /* @__PURE__ */ import_react222.default.createElement(
49214
49333
  "span",
49215
49334
  {
49216
49335
  onMouseEnter: handleEnter,
@@ -49226,7 +49345,7 @@ var UnMemoizedSimpleReactionsList = (props) => {
49226
49345
  const { existingReactions, hasReactions, totalReactionCount } = useProcessReactions(rest);
49227
49346
  const handleReaction = propHandleReaction || contextHandleReaction;
49228
49347
  if (!hasReactions) return null;
49229
- return /* @__PURE__ */ import_react220.default.createElement("div", { className: "str-chat__message-reactions-container" }, /* @__PURE__ */ import_react220.default.createElement(
49348
+ return /* @__PURE__ */ import_react222.default.createElement("div", { className: "str-chat__message-reactions-container" }, /* @__PURE__ */ import_react222.default.createElement(
49230
49349
  "ul",
49231
49350
  {
49232
49351
  className: "str-chat__simple-reactions-list str-chat__message-reactions",
@@ -49235,7 +49354,7 @@ var UnMemoizedSimpleReactionsList = (props) => {
49235
49354
  existingReactions.map(
49236
49355
  ({ EmojiComponent, isOwnReaction, latestReactedUserNames, reactionType }) => {
49237
49356
  const tooltipContent = latestReactedUserNames.join(", ");
49238
- return EmojiComponent && /* @__PURE__ */ import_react220.default.createElement(
49357
+ return EmojiComponent && /* @__PURE__ */ import_react222.default.createElement(
49239
49358
  "li",
49240
49359
  {
49241
49360
  className: (0, import_clsx57.default)("str-chat__simple-reactions-list-item", {
@@ -49245,19 +49364,19 @@ var UnMemoizedSimpleReactionsList = (props) => {
49245
49364
  onClick: (event) => handleReaction(reactionType, event),
49246
49365
  onKeyUp: (event) => handleReaction(reactionType, event)
49247
49366
  },
49248
- /* @__PURE__ */ import_react220.default.createElement(WithTooltip, { title: tooltipContent }, /* @__PURE__ */ import_react220.default.createElement(EmojiComponent, null))
49367
+ /* @__PURE__ */ import_react222.default.createElement(WithTooltip, { title: tooltipContent }, /* @__PURE__ */ import_react222.default.createElement(EmojiComponent, null))
49249
49368
  );
49250
49369
  }
49251
49370
  ),
49252
- /* @__PURE__ */ import_react220.default.createElement("li", { className: "str-chat__simple-reactions-list-item--last-number" }, totalReactionCount)
49371
+ /* @__PURE__ */ import_react222.default.createElement("li", { className: "str-chat__simple-reactions-list-item--last-number" }, totalReactionCount)
49253
49372
  ));
49254
49373
  };
49255
- var SimpleReactionsList = import_react220.default.memo(
49374
+ var SimpleReactionsList = import_react222.default.memo(
49256
49375
  UnMemoizedSimpleReactionsList
49257
49376
  );
49258
49377
 
49259
49378
  // src/components/Message/MessageEditedTimestamp.tsx
49260
- var import_react221 = __toESM(require("react"));
49379
+ var import_react223 = __toESM(require("react"));
49261
49380
  var import_clsx58 = __toESM(require("clsx"));
49262
49381
  function MessageEditedTimestamp({
49263
49382
  message: propMessage,
@@ -49273,7 +49392,7 @@ function MessageEditedTimestamp({
49273
49392
  if (!isMessageEdited(message)) {
49274
49393
  return null;
49275
49394
  }
49276
- return /* @__PURE__ */ import_react221.default.createElement(
49395
+ return /* @__PURE__ */ import_react223.default.createElement(
49277
49396
  "div",
49278
49397
  {
49279
49398
  className: (0, import_clsx58.default)(
@@ -49284,36 +49403,10 @@ function MessageEditedTimestamp({
49284
49403
  },
49285
49404
  t2("Edited"),
49286
49405
  " ",
49287
- /* @__PURE__ */ import_react221.default.createElement(Timestamp2, { timestamp: message.message_text_updated_at, ...timestampProps })
49406
+ /* @__PURE__ */ import_react223.default.createElement(Timestamp2, { timestamp: message.message_text_updated_at, ...timestampProps })
49288
49407
  );
49289
49408
  }
49290
49409
 
49291
- // src/components/Message/StreamedMessageText.tsx
49292
- var import_react222 = __toESM(require("react"));
49293
- var StreamedMessageText = (props) => {
49294
- const {
49295
- message: messageFromProps,
49296
- renderingLetterCount,
49297
- renderText: renderText2,
49298
- streamingLetterIntervalMs
49299
- } = props;
49300
- const { message: messageFromContext } = useMessageContext("StreamedMessageText");
49301
- const message = messageFromProps || messageFromContext;
49302
- const { text: text8 = "" } = message;
49303
- const { streamedMessageText } = useMessageTextStreaming({
49304
- renderingLetterCount,
49305
- streamingLetterIntervalMs,
49306
- text: text8
49307
- });
49308
- return /* @__PURE__ */ import_react222.default.createElement(
49309
- MessageText,
49310
- {
49311
- message: { ...message, text: streamedMessageText },
49312
- renderText: renderText2
49313
- }
49314
- );
49315
- };
49316
-
49317
49410
  // src/components/Message/MessageSimple.tsx
49318
49411
  var MessageSimpleWithContext = (props) => {
49319
49412
  const {
@@ -49337,8 +49430,8 @@ var MessageSimpleWithContext = (props) => {
49337
49430
  } = props;
49338
49431
  const { client } = useChatContext("MessageSimple");
49339
49432
  const { t: t2 } = useTranslationContext("MessageSimple");
49340
- const [isBounceDialogOpen, setIsBounceDialogOpen] = (0, import_react223.useState)(false);
49341
- const [isEditedTimestampOpen, setEditedTimestampOpen] = (0, import_react223.useState)(false);
49433
+ const [isBounceDialogOpen, setIsBounceDialogOpen] = (0, import_react224.useState)(false);
49434
+ const [isEditedTimestampOpen, setEditedTimestampOpen] = (0, import_react224.useState)(false);
49342
49435
  const {
49343
49436
  Attachment: Attachment2 = Attachment,
49344
49437
  Avatar: Avatar2 = Avatar,
@@ -49358,7 +49451,7 @@ var MessageSimpleWithContext = (props) => {
49358
49451
  } = useComponentContext("MessageSimple");
49359
49452
  const hasAttachment = messageHasAttachments(message);
49360
49453
  const hasReactions = messageHasReactions(message);
49361
- const isAIGenerated = (0, import_react223.useMemo)(
49454
+ const isAIGenerated = (0, import_react224.useMemo)(
49362
49455
  () => isMessageAIGenerated?.(message),
49363
49456
  [isMessageAIGenerated, message]
49364
49457
  );
@@ -49366,7 +49459,7 @@ var MessageSimpleWithContext = (props) => {
49366
49459
  return null;
49367
49460
  }
49368
49461
  if (message.deleted_at || message.type === "deleted") {
49369
- return /* @__PURE__ */ import_react223.default.createElement(MessageDeleted2, { message });
49462
+ return /* @__PURE__ */ import_react224.default.createElement(MessageDeleted2, { message });
49370
49463
  }
49371
49464
  const showMetadata = !groupedByUser || endOfGroup;
49372
49465
  const showReplyCountButton = !threadList && !!message.reply_count;
@@ -49400,14 +49493,14 @@ var MessageSimpleWithContext = (props) => {
49400
49493
  }
49401
49494
  );
49402
49495
  const poll = message.poll_id && client.polls.fromState(message.poll_id);
49403
- return /* @__PURE__ */ import_react223.default.createElement(import_react223.default.Fragment, null, editing && /* @__PURE__ */ import_react223.default.createElement(
49496
+ return /* @__PURE__ */ import_react224.default.createElement(import_react224.default.Fragment, null, editing && /* @__PURE__ */ import_react224.default.createElement(
49404
49497
  Modal,
49405
49498
  {
49406
49499
  className: "str-chat__edit-message-modal",
49407
49500
  onClose: clearEditingState,
49408
49501
  open: editing
49409
49502
  },
49410
- /* @__PURE__ */ import_react223.default.createElement(
49503
+ /* @__PURE__ */ import_react224.default.createElement(
49411
49504
  MessageInput,
49412
49505
  {
49413
49506
  clearEditingState,
@@ -49418,14 +49511,14 @@ var MessageSimpleWithContext = (props) => {
49418
49511
  ...additionalMessageInputProps
49419
49512
  }
49420
49513
  )
49421
- ), isBounceDialogOpen && /* @__PURE__ */ import_react223.default.createElement(
49514
+ ), isBounceDialogOpen && /* @__PURE__ */ import_react224.default.createElement(
49422
49515
  MessageBounceModal,
49423
49516
  {
49424
49517
  MessageBouncePrompt: MessageBouncePrompt2,
49425
49518
  onClose: () => setIsBounceDialogOpen(false),
49426
49519
  open: isBounceDialogOpen
49427
49520
  }
49428
- ), /* @__PURE__ */ import_react223.default.createElement("div", { className: rootClassName2, key: message.id }, PinIndicator2 && /* @__PURE__ */ import_react223.default.createElement(PinIndicator2, null), message.user && /* @__PURE__ */ import_react223.default.createElement(
49521
+ ), /* @__PURE__ */ import_react224.default.createElement("div", { className: rootClassName2, key: message.id }, PinIndicator2 && /* @__PURE__ */ import_react224.default.createElement(PinIndicator2, null), message.user && /* @__PURE__ */ import_react224.default.createElement(
49429
49522
  Avatar2,
49430
49523
  {
49431
49524
  image: message.user.image,
@@ -49434,7 +49527,7 @@ var MessageSimpleWithContext = (props) => {
49434
49527
  onMouseOver: onUserHover,
49435
49528
  user: message.user
49436
49529
  }
49437
- ), /* @__PURE__ */ import_react223.default.createElement(
49530
+ ), /* @__PURE__ */ import_react224.default.createElement(
49438
49531
  "div",
49439
49532
  {
49440
49533
  className: (0, import_clsx59.default)("str-chat__message-inner", {
@@ -49444,37 +49537,37 @@ var MessageSimpleWithContext = (props) => {
49444
49537
  onClick: handleClick,
49445
49538
  onKeyUp: handleClick
49446
49539
  },
49447
- /* @__PURE__ */ import_react223.default.createElement(MessageActions2, null),
49448
- /* @__PURE__ */ import_react223.default.createElement("div", { className: "str-chat__message-reactions-host" }, hasReactions && /* @__PURE__ */ import_react223.default.createElement(ReactionsList2, { reverse: true })),
49449
- /* @__PURE__ */ import_react223.default.createElement("div", { className: "str-chat__message-bubble" }, poll && /* @__PURE__ */ import_react223.default.createElement(Poll, { poll }), message.attachments?.length && !message.quoted_message ? /* @__PURE__ */ import_react223.default.createElement(
49540
+ /* @__PURE__ */ import_react224.default.createElement(MessageActions2, null),
49541
+ /* @__PURE__ */ import_react224.default.createElement("div", { className: "str-chat__message-reactions-host" }, hasReactions && /* @__PURE__ */ import_react224.default.createElement(ReactionsList2, { reverse: true })),
49542
+ /* @__PURE__ */ import_react224.default.createElement("div", { className: "str-chat__message-bubble" }, poll && /* @__PURE__ */ import_react224.default.createElement(Poll, { poll }), message.attachments?.length && !message.quoted_message ? /* @__PURE__ */ import_react224.default.createElement(
49450
49543
  Attachment2,
49451
49544
  {
49452
49545
  actionHandler: handleAction,
49453
49546
  attachments: message.attachments
49454
49547
  }
49455
- ) : null, isAIGenerated ? /* @__PURE__ */ import_react223.default.createElement(StreamedMessageText2, { message, renderText: renderText2 }) : /* @__PURE__ */ import_react223.default.createElement(MessageText, { message, renderText: renderText2 }), message.mml && /* @__PURE__ */ import_react223.default.createElement(
49548
+ ) : null, isAIGenerated ? /* @__PURE__ */ import_react224.default.createElement(StreamedMessageText2, { message, renderText: renderText2 }) : /* @__PURE__ */ import_react224.default.createElement(MessageText, { message, renderText: renderText2 }), message.mml && /* @__PURE__ */ import_react224.default.createElement(
49456
49549
  MML3,
49457
49550
  {
49458
49551
  actionHandler: handleAction,
49459
49552
  align: isMyMessage() ? "right" : "left",
49460
49553
  source: message.mml
49461
49554
  }
49462
- ), /* @__PURE__ */ import_react223.default.createElement(MessageErrorIcon, null))
49463
- ), showReplyCountButton && /* @__PURE__ */ import_react223.default.createElement(
49555
+ ), /* @__PURE__ */ import_react224.default.createElement(MessageErrorIcon, null))
49556
+ ), showReplyCountButton && /* @__PURE__ */ import_react224.default.createElement(
49464
49557
  MessageRepliesCountButton2,
49465
49558
  {
49466
49559
  onClick: handleOpenThread,
49467
49560
  reply_count: message.reply_count
49468
49561
  }
49469
- ), showMetadata && /* @__PURE__ */ import_react223.default.createElement("div", { className: "str-chat__message-metadata" }, /* @__PURE__ */ import_react223.default.createElement(MessageStatus2, null), !isMyMessage() && !!message.user && /* @__PURE__ */ import_react223.default.createElement("span", { className: "str-chat__message-simple-name" }, message.user.name || message.user.id), /* @__PURE__ */ import_react223.default.createElement(MessageTimestamp2, { customClass: "str-chat__message-simple-timestamp" }), isEdited && /* @__PURE__ */ import_react223.default.createElement("span", { className: "str-chat__mesage-simple-edited" }, t2("Edited")), isEdited && /* @__PURE__ */ import_react223.default.createElement(MessageEditedTimestamp, { calendar: true, open: isEditedTimestampOpen }))));
49562
+ ), showMetadata && /* @__PURE__ */ import_react224.default.createElement("div", { className: "str-chat__message-metadata" }, /* @__PURE__ */ import_react224.default.createElement(MessageStatus2, null), !isMyMessage() && !!message.user && /* @__PURE__ */ import_react224.default.createElement("span", { className: "str-chat__message-simple-name" }, message.user.name || message.user.id), /* @__PURE__ */ import_react224.default.createElement(MessageTimestamp2, { customClass: "str-chat__message-simple-timestamp" }), isEdited && /* @__PURE__ */ import_react224.default.createElement("span", { className: "str-chat__mesage-simple-edited" }, t2("Edited")), isEdited && /* @__PURE__ */ import_react224.default.createElement(MessageEditedTimestamp, { calendar: true, open: isEditedTimestampOpen }))));
49470
49563
  };
49471
- var MemoizedMessageSimple = import_react223.default.memo(
49564
+ var MemoizedMessageSimple = import_react224.default.memo(
49472
49565
  MessageSimpleWithContext,
49473
49566
  areMessageUIPropsEqual
49474
49567
  );
49475
49568
  var MessageSimple = (props) => {
49476
49569
  const messageContext = useMessageContext("MessageSimple");
49477
- return /* @__PURE__ */ import_react223.default.createElement(MemoizedMessageSimple, { ...messageContext, ...props });
49570
+ return /* @__PURE__ */ import_react224.default.createElement(MemoizedMessageSimple, { ...messageContext, ...props });
49478
49571
  };
49479
49572
 
49480
49573
  // src/components/Message/Message.tsx
@@ -49510,11 +49603,11 @@ var MessageWithContext = (props) => {
49510
49603
  canReply,
49511
49604
  isMyMessage
49512
49605
  } = userRoles;
49513
- const messageIsUnread = (0, import_react224.useMemo)(
49606
+ const messageIsUnread = (0, import_react225.useMemo)(
49514
49607
  () => !!(!isMyMessage && client.user?.id && read && (!read[client.user.id] || message?.created_at && new Date(message.created_at).getTime() > read[client.user.id].last_read.getTime())),
49515
49608
  [client, isMyMessage, message.created_at, read]
49516
49609
  );
49517
- const messageActionsHandler = (0, import_react224.useCallback)(
49610
+ const messageActionsHandler = (0, import_react225.useCallback)(
49518
49611
  () => getMessageActions(messageActions, {
49519
49612
  canDelete,
49520
49613
  canEdit,
@@ -49568,9 +49661,9 @@ var MessageWithContext = (props) => {
49568
49661
  onUserHover,
49569
49662
  setEditingState: setEdit
49570
49663
  };
49571
- return /* @__PURE__ */ import_react224.default.createElement(MessageProvider, { value: messageContextValue }, /* @__PURE__ */ import_react224.default.createElement(MessageUIComponent, { groupedByUser }));
49664
+ return /* @__PURE__ */ import_react225.default.createElement(MessageProvider, { value: messageContextValue }, /* @__PURE__ */ import_react225.default.createElement(MessageUIComponent, { groupedByUser }));
49572
49665
  };
49573
- var MemoizedMessage = import_react224.default.memo(
49666
+ var MemoizedMessage = import_react225.default.memo(
49574
49667
  MessageWithContext,
49575
49668
  areMessagePropsEqual
49576
49669
  );
@@ -49637,7 +49730,7 @@ var Message = (props) => {
49637
49730
  notify: addNotification
49638
49731
  });
49639
49732
  const highlighted = highlightedMessageId === message.id;
49640
- return /* @__PURE__ */ import_react224.default.createElement(
49733
+ return /* @__PURE__ */ import_react225.default.createElement(
49641
49734
  MemoizedMessage,
49642
49735
  {
49643
49736
  additionalMessageInputProps: props.additionalMessageInputProps,
@@ -49689,7 +49782,7 @@ var Message = (props) => {
49689
49782
  // src/components/MessageList/GiphyPreviewMessage.tsx
49690
49783
  var GiphyPreviewMessage = (props) => {
49691
49784
  const { message } = props;
49692
- return /* @__PURE__ */ import_react225.default.createElement("div", { className: "giphy-preview-message" }, /* @__PURE__ */ import_react225.default.createElement(Message, { message }));
49785
+ return /* @__PURE__ */ import_react226.default.createElement("div", { className: "giphy-preview-message" }, /* @__PURE__ */ import_react226.default.createElement(Message, { message }));
49693
49786
  };
49694
49787
 
49695
49788
  // src/components/MessageList/MessageList.tsx
@@ -49697,7 +49790,7 @@ var import_clsx61 = __toESM(require("clsx"));
49697
49790
  var import_react245 = __toESM(require("react"));
49698
49791
 
49699
49792
  // src/components/MessageList/hooks/MessageList/useEnrichedMessages.ts
49700
- var import_react226 = require("react");
49793
+ var import_react227 = require("react");
49701
49794
 
49702
49795
  // src/components/MessageList/utils.ts
49703
49796
  var import_nanoid9 = require("nanoid");
@@ -49880,6 +49973,7 @@ var getIsFirstUnreadMessage = ({
49880
49973
  previousMessage,
49881
49974
  unreadMessageCount = 0
49882
49975
  }) => {
49976
+ if (message.parent_id) return false;
49883
49977
  const createdAtTimestamp = message.created_at && new Date(message.created_at).getTime();
49884
49978
  const lastReadTimestamp = lastReadDate?.getTime();
49885
49979
  const messageIsUnread = !!createdAtTimestamp && !!lastReadTimestamp && createdAtTimestamp > lastReadTimestamp;
@@ -49903,7 +49997,7 @@ var useEnrichedMessages = (args) => {
49903
49997
  } = args;
49904
49998
  const { client } = useChatContext("useEnrichedMessages");
49905
49999
  const { HeaderComponent } = useComponentContext("useEnrichedMessages");
49906
- const lastRead = (0, import_react226.useMemo)(() => channel.lastRead?.(), [channel]);
50000
+ const lastRead = (0, import_react227.useMemo)(() => channel.lastRead?.(), [channel]);
49907
50001
  const enableDateSeparator = !disableDateSeparator;
49908
50002
  let messagesWithDates = !enableDateSeparator && !hideDeletedMessages && hideNewMessageSeparator ? messages : processMessages({
49909
50003
  enableDateSeparator,
@@ -49918,7 +50012,7 @@ var useEnrichedMessages = (args) => {
49918
50012
  messagesWithDates = insertIntro(messagesWithDates, headerPosition);
49919
50013
  }
49920
50014
  const groupStylesFn = groupStyles || getGroupStyles;
49921
- const messageGroupStyles = (0, import_react226.useMemo)(
50015
+ const messageGroupStyles = (0, import_react227.useMemo)(
49922
50016
  () => messagesWithDates.reduce((acc, message, i) => {
49923
50017
  const style = groupStylesFn(
49924
50018
  message,
@@ -49937,13 +50031,13 @@ var useEnrichedMessages = (args) => {
49937
50031
  };
49938
50032
 
49939
50033
  // src/components/MessageList/hooks/MessageList/useMessageListElements.tsx
49940
- var import_react228 = require("react");
50034
+ var import_react229 = require("react");
49941
50035
 
49942
50036
  // src/components/MessageList/hooks/useLastReadData.ts
49943
- var import_react227 = require("react");
50037
+ var import_react228 = require("react");
49944
50038
  var useLastReadData = (props) => {
49945
50039
  const { messages, read, returnAllReadData, userID } = props;
49946
- return (0, import_react227.useMemo)(
50040
+ return (0, import_react228.useMemo)(
49947
50041
  () => getReadStates(
49948
50042
  messages.filter(({ user }) => user?.id === userID),
49949
50043
  read,
@@ -49975,11 +50069,11 @@ var useMessageListElements = (props) => {
49975
50069
  returnAllReadData,
49976
50070
  userID: client.userID
49977
50071
  });
49978
- const lastReceivedMessageId = (0, import_react228.useMemo)(
50072
+ const lastReceivedMessageId = (0, import_react229.useMemo)(
49979
50073
  () => getLastReceived(enrichedMessages),
49980
50074
  [enrichedMessages]
49981
50075
  );
49982
- const elements = (0, import_react228.useMemo)(
50076
+ const elements = (0, import_react229.useMemo)(
49983
50077
  () => renderMessages({
49984
50078
  channelUnreadUiState,
49985
50079
  components,
@@ -50006,7 +50100,7 @@ var useMessageListElements = (props) => {
50006
50100
  };
50007
50101
 
50008
50102
  // src/components/MessageList/hooks/MessageList/useMessageListScrollManager.ts
50009
- var import_react229 = require("react");
50103
+ var import_react230 = require("react");
50010
50104
  function useMessageListScrollManager(params) {
50011
50105
  const {
50012
50106
  loadMoreScrollThreshold,
@@ -50017,13 +50111,13 @@ function useMessageListScrollManager(params) {
50017
50111
  showNewMessages
50018
50112
  } = params;
50019
50113
  const { client } = useChatContext("useMessageListScrollManager");
50020
- const measures = (0, import_react229.useRef)({
50114
+ const measures = (0, import_react230.useRef)({
50021
50115
  offsetHeight: 0,
50022
50116
  scrollHeight: 0
50023
50117
  });
50024
- const messages = (0, import_react229.useRef)(void 0);
50025
- const scrollTop = (0, import_react229.useRef)(0);
50026
- (0, import_react229.useLayoutEffect)(() => {
50118
+ const messages = (0, import_react230.useRef)(void 0);
50119
+ const scrollTop = (0, import_react230.useRef)(0);
50120
+ (0, import_react230.useLayoutEffect)(() => {
50027
50121
  const prevMeasures = measures.current;
50028
50122
  const prevMessages = messages.current;
50029
50123
  const newMessages = params.messages;
@@ -50063,7 +50157,7 @@ function useMessageListScrollManager(params) {
50063
50157
  }
50064
50158
 
50065
50159
  // src/components/MessageList/hooks/MessageList/useScrollLocationLogic.tsx
50066
- var import_react230 = require("react");
50160
+ var import_react231 = require("react");
50067
50161
  var useScrollLocationLogic = (params) => {
50068
50162
  const {
50069
50163
  hasMoreNewer,
@@ -50073,12 +50167,12 @@ var useScrollLocationLogic = (params) => {
50073
50167
  scrolledUpThreshold = 200,
50074
50168
  suppressAutoscroll
50075
50169
  } = params;
50076
- const [hasNewMessages, setHasNewMessages] = (0, import_react230.useState)(false);
50077
- const [wrapperRect, setWrapperRect] = (0, import_react230.useState)();
50078
- const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0, import_react230.useState)(true);
50079
- const closeToBottom = (0, import_react230.useRef)(false);
50080
- const closeToTop = (0, import_react230.useRef)(false);
50081
- const scrollToBottom = (0, import_react230.useCallback)(() => {
50170
+ const [hasNewMessages, setHasNewMessages] = (0, import_react231.useState)(false);
50171
+ const [wrapperRect, setWrapperRect] = (0, import_react231.useState)();
50172
+ const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0, import_react231.useState)(true);
50173
+ const closeToBottom = (0, import_react231.useRef)(false);
50174
+ const closeToTop = (0, import_react231.useRef)(false);
50175
+ const scrollToBottom = (0, import_react231.useCallback)(() => {
50082
50176
  if (!listElement?.scrollTo || hasMoreNewer || suppressAutoscroll) {
50083
50177
  return;
50084
50178
  }
@@ -50087,7 +50181,7 @@ var useScrollLocationLogic = (params) => {
50087
50181
  });
50088
50182
  setHasNewMessages(false);
50089
50183
  }, [listElement, hasMoreNewer, suppressAutoscroll]);
50090
- (0, import_react230.useLayoutEffect)(() => {
50184
+ (0, import_react231.useLayoutEffect)(() => {
50091
50185
  if (listElement) {
50092
50186
  setWrapperRect(listElement.getBoundingClientRect());
50093
50187
  scrollToBottom();
@@ -50107,7 +50201,7 @@ var useScrollLocationLogic = (params) => {
50107
50201
  scrollToBottom,
50108
50202
  showNewMessages: () => setHasNewMessages(true)
50109
50203
  });
50110
- const onScroll = (0, import_react230.useCallback)(
50204
+ const onScroll = (0, import_react231.useCallback)(
50111
50205
  (event) => {
50112
50206
  const element4 = event.target;
50113
50207
  const scrollTop = element4.scrollTop;
@@ -50138,22 +50232,22 @@ var useScrollLocationLogic = (params) => {
50138
50232
  };
50139
50233
 
50140
50234
  // src/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.ts
50141
- var import_react233 = require("react");
50235
+ var import_react234 = require("react");
50142
50236
 
50143
50237
  // src/components/MessageList/MessageListMainPanel.tsx
50144
- var import_react231 = __toESM(require("react"));
50238
+ var import_react232 = __toESM(require("react"));
50145
50239
  var MESSAGE_LIST_MAIN_PANEL_CLASS = "str-chat__main-panel-inner str-chat__message-list-main-panel";
50146
- var MessageListMainPanel = ({ children }) => /* @__PURE__ */ import_react231.default.createElement("div", { className: MESSAGE_LIST_MAIN_PANEL_CLASS }, children);
50240
+ var MessageListMainPanel = ({ children }) => /* @__PURE__ */ import_react232.default.createElement("div", { className: MESSAGE_LIST_MAIN_PANEL_CLASS }, children);
50147
50241
 
50148
50242
  // src/components/MessageList/UnreadMessagesSeparator.tsx
50149
- var import_react232 = __toESM(require("react"));
50243
+ var import_react233 = __toESM(require("react"));
50150
50244
  var UNREAD_MESSAGE_SEPARATOR_CLASS = "str-chat__unread-messages-separator";
50151
50245
  var UnreadMessagesSeparator = ({
50152
50246
  showCount,
50153
50247
  unreadCount
50154
50248
  }) => {
50155
50249
  const { t: t2 } = useTranslationContext("UnreadMessagesSeparator");
50156
- return /* @__PURE__ */ import_react232.default.createElement(
50250
+ return /* @__PURE__ */ import_react233.default.createElement(
50157
50251
  "div",
50158
50252
  {
50159
50253
  className: UNREAD_MESSAGE_SEPARATOR_CLASS,
@@ -50179,10 +50273,10 @@ var useUnreadMessagesNotification = ({
50179
50273
  unreadCount
50180
50274
  }) => {
50181
50275
  const { messages } = useChannelStateContext("UnreadMessagesNotification");
50182
- const [show, setShow] = (0, import_react233.useState)(false);
50183
- const isScrolledAboveTargetTop = (0, import_react233.useRef)(false);
50276
+ const [show, setShow] = (0, import_react234.useState)(false);
50277
+ const isScrolledAboveTargetTop = (0, import_react234.useRef)(false);
50184
50278
  const intersectionObserverIsSupported = typeof IntersectionObserver !== "undefined";
50185
- (0, import_react233.useEffect)(() => {
50279
+ (0, import_react234.useEffect)(() => {
50186
50280
  if (!(unreadCount && intersectionObserverIsSupported)) {
50187
50281
  setShow(false);
50188
50282
  return;
@@ -50229,7 +50323,7 @@ var useUnreadMessagesNotification = ({
50229
50323
  showAlways,
50230
50324
  unreadCount
50231
50325
  ]);
50232
- (0, import_react233.useEffect)(() => {
50326
+ (0, import_react234.useEffect)(() => {
50233
50327
  if (unreadCount && isMessageListScrolledToBottom && isScrolledAboveTargetTop.current) {
50234
50328
  setShow(true);
50235
50329
  isScrolledAboveTargetTop.current = false;
@@ -50239,7 +50333,7 @@ var useUnreadMessagesNotification = ({
50239
50333
  };
50240
50334
 
50241
50335
  // src/components/MessageList/hooks/useMarkRead.ts
50242
- var import_react234 = require("react");
50336
+ var import_react235 = require("react");
50243
50337
  var hasReadLastMessage = (channel, userId) => {
50244
50338
  const latestMessageIdInChannel = channel.state.latestMessages.slice(-1)[0]?.id;
50245
50339
  const lastReadMessageIdServer = channel.state.read[userId]?.last_read_message_id;
@@ -50253,7 +50347,7 @@ var useMarkRead = ({
50253
50347
  const { client } = useChatContext("useMarkRead");
50254
50348
  const { markRead, setChannelUnreadUiState } = useChannelActionContext("useMarkRead");
50255
50349
  const { channel } = useChannelStateContext("useMarkRead");
50256
- (0, import_react234.useEffect)(() => {
50350
+ (0, import_react235.useEffect)(() => {
50257
50351
  const shouldMarkRead = () => !document.hidden && !wasMarkedUnread && !messageListIsThread && isMessageListScrolledToBottom && client.user?.id && !hasReadLastMessage(channel, client.user.id);
50258
50352
  const onVisibilityChange = () => {
50259
50353
  if (shouldMarkRead()) markRead();
@@ -50312,11 +50406,11 @@ function getPreviousLastMessage(messages, newMessage) {
50312
50406
  }
50313
50407
 
50314
50408
  // src/components/MessageList/MessageNotification.tsx
50315
- var import_react235 = __toESM(require("react"));
50409
+ var import_react236 = __toESM(require("react"));
50316
50410
  var UnMemoizedMessageNotification = (props) => {
50317
50411
  const { children, onClick, showNotification = true } = props;
50318
50412
  if (!showNotification) return null;
50319
- return /* @__PURE__ */ import_react235.default.createElement(
50413
+ return /* @__PURE__ */ import_react236.default.createElement(
50320
50414
  "button",
50321
50415
  {
50322
50416
  "aria-live": "polite",
@@ -50327,12 +50421,12 @@ var UnMemoizedMessageNotification = (props) => {
50327
50421
  children
50328
50422
  );
50329
50423
  };
50330
- var MessageNotification = import_react235.default.memo(
50424
+ var MessageNotification = import_react236.default.memo(
50331
50425
  UnMemoizedMessageNotification
50332
50426
  );
50333
50427
 
50334
50428
  // src/components/MessageList/MessageListNotifications.tsx
50335
- var import_react236 = __toESM(require("react"));
50429
+ var import_react237 = __toESM(require("react"));
50336
50430
  var MessageListNotifications = (props) => {
50337
50431
  const {
50338
50432
  hasNewMessages,
@@ -50345,7 +50439,7 @@ var MessageListNotifications = (props) => {
50345
50439
  unreadCount
50346
50440
  } = props;
50347
50441
  const { t: t2 } = useTranslationContext("MessageListNotifications");
50348
- return /* @__PURE__ */ import_react236.default.createElement("div", { className: "str-chat__list-notifications" }, notifications.map((notification) => /* @__PURE__ */ import_react236.default.createElement(CustomNotification, { active: true, key: notification.id, type: notification.type }, notification.text)), /* @__PURE__ */ import_react236.default.createElement(ConnectionStatus, null), /* @__PURE__ */ import_react236.default.createElement(
50442
+ return /* @__PURE__ */ import_react237.default.createElement("div", { className: "str-chat__list-notifications" }, notifications.map((notification) => /* @__PURE__ */ import_react237.default.createElement(CustomNotification, { active: true, key: notification.id, type: notification.type }, notification.text)), /* @__PURE__ */ import_react237.default.createElement(ConnectionStatus, null), /* @__PURE__ */ import_react237.default.createElement(
50349
50443
  MessageNotification2,
50350
50444
  {
50351
50445
  isMessageListScrolledToBottom,
@@ -50359,11 +50453,11 @@ var MessageListNotifications = (props) => {
50359
50453
  };
50360
50454
 
50361
50455
  // src/components/MessageList/UnreadMessagesNotification.tsx
50362
- var import_react238 = __toESM(require("react"));
50456
+ var import_react239 = __toESM(require("react"));
50363
50457
 
50364
50458
  // src/components/MessageList/icons.tsx
50365
- var import_react237 = __toESM(require("react"));
50366
- var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react237.default.createElement(
50459
+ var import_react238 = __toESM(require("react"));
50460
+ var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react238.default.createElement(
50367
50461
  "svg",
50368
50462
  {
50369
50463
  className,
@@ -50374,7 +50468,7 @@ var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react23
50374
50468
  width: "24",
50375
50469
  xmlns: "http://www.w3.org/2000/svg"
50376
50470
  },
50377
- /* @__PURE__ */ import_react237.default.createElement(
50471
+ /* @__PURE__ */ import_react238.default.createElement(
50378
50472
  "path",
50379
50473
  {
50380
50474
  d: "M7.41 8.29504L12 12.875L16.59 8.29504L18 9.70504L12 15.705L6 9.70504L7.41 8.29504Z",
@@ -50382,7 +50476,7 @@ var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react23
50382
50476
  }
50383
50477
  )
50384
50478
  );
50385
- var CloseIcon2 = () => /* @__PURE__ */ import_react237.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 14 13", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react237.default.createElement("path", { d: "M1.32227 12.3408C0.944336 11.9629 0.953125 11.3213 1.32227 10.9521L5.60254 6.66309L1.32227 2.38281C0.953125 2.01367 0.944336 1.37207 1.32227 0.994141C1.7002 0.616211 2.3418 0.625 2.71094 0.985352L7 5.27441L11.2803 0.994141C11.6494 0.625 12.291 0.616211 12.6689 0.994141C13.0469 1.37207 13.0381 2.01367 12.6689 2.38281L8.38867 6.66309L12.6689 10.9521C13.0381 11.3213 13.0469 11.9629 12.6689 12.3408C12.291 12.7188 11.6494 12.71 11.2803 12.3408L7 8.06055L2.71094 12.3408C2.3418 12.71 1.7002 12.7188 1.32227 12.3408Z" }));
50479
+ var CloseIcon2 = () => /* @__PURE__ */ import_react238.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 14 13", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react238.default.createElement("path", { d: "M1.32227 12.3408C0.944336 11.9629 0.953125 11.3213 1.32227 10.9521L5.60254 6.66309L1.32227 2.38281C0.953125 2.01367 0.944336 1.37207 1.32227 0.994141C1.7002 0.616211 2.3418 0.625 2.71094 0.985352L7 5.27441L11.2803 0.994141C11.6494 0.625 12.291 0.616211 12.6689 0.994141C13.0469 1.37207 13.0381 2.01367 12.6689 2.38281L8.38867 6.66309L12.6689 10.9521C13.0381 11.3213 13.0469 11.9629 12.6689 12.3408C12.291 12.7188 11.6494 12.71 11.2803 12.3408L7 8.06055L2.71094 12.3408C2.3418 12.71 1.7002 12.7188 1.32227 12.3408Z" }));
50386
50480
 
50387
50481
  // src/components/MessageList/UnreadMessagesNotification.tsx
50388
50482
  var UnreadMessagesNotification = ({
@@ -50394,19 +50488,19 @@ var UnreadMessagesNotification = ({
50394
50488
  "UnreadMessagesNotification"
50395
50489
  );
50396
50490
  const { t: t2 } = useTranslationContext("UnreadMessagesNotification");
50397
- return /* @__PURE__ */ import_react238.default.createElement(
50491
+ return /* @__PURE__ */ import_react239.default.createElement(
50398
50492
  "div",
50399
50493
  {
50400
50494
  className: "str-chat__unread-messages-notification",
50401
50495
  "data-testid": "unread-messages-notification"
50402
50496
  },
50403
- /* @__PURE__ */ import_react238.default.createElement("button", { onClick: () => jumpToFirstUnreadMessage(queryMessageLimit) }, unreadCount && showCount ? t2("{{count}} unread", { count: unreadCount ?? 0 }) : t2("Unread messages")),
50404
- /* @__PURE__ */ import_react238.default.createElement("button", { onClick: () => markRead() }, /* @__PURE__ */ import_react238.default.createElement(CloseIcon2, null))
50497
+ /* @__PURE__ */ import_react239.default.createElement("button", { onClick: () => jumpToFirstUnreadMessage(queryMessageLimit) }, unreadCount && showCount ? t2("{{count}} unread", { count: unreadCount ?? 0 }) : t2("Unread messages")),
50498
+ /* @__PURE__ */ import_react239.default.createElement("button", { onClick: () => markRead() }, /* @__PURE__ */ import_react239.default.createElement(CloseIcon2, null))
50405
50499
  );
50406
50500
  };
50407
50501
 
50408
50502
  // src/components/InfiniteScrollPaginator/InfiniteScroll.tsx
50409
- var import_react239 = __toESM(require("react"));
50503
+ var import_react240 = __toESM(require("react"));
50410
50504
  var mousewheelListener2 = (event) => {
50411
50505
  if (event instanceof WheelEvent && event.deltaY === 1) {
50412
50506
  event.preventDefault();
@@ -50437,10 +50531,10 @@ var InfiniteScroll = (props) => {
50437
50531
  const loadPreviousPageFn = loadPreviousPage || loadMore;
50438
50532
  const hasNextPageFlag = hasNextPage || hasMoreNewer;
50439
50533
  const hasPreviousPageFlag = hasPreviousPage || hasMore;
50440
- const scrollComponent = (0, import_react239.useRef)(void 0);
50441
- const previousOffset = (0, import_react239.useRef)(void 0);
50442
- const previousReverseOffset = (0, import_react239.useRef)(void 0);
50443
- const scrollListenerRef = (0, import_react239.useRef)(void 0);
50534
+ const scrollComponent = (0, import_react240.useRef)(void 0);
50535
+ const previousOffset = (0, import_react240.useRef)(void 0);
50536
+ const previousReverseOffset = (0, import_react240.useRef)(void 0);
50537
+ const scrollListenerRef = (0, import_react240.useRef)(void 0);
50444
50538
  scrollListenerRef.current = () => {
50445
50539
  const element5 = scrollComponent.current;
50446
50540
  if (!element5 || element5.offsetParent === null) {
@@ -50464,7 +50558,7 @@ var InfiniteScroll = (props) => {
50464
50558
  loadNextPageFn();
50465
50559
  }
50466
50560
  };
50467
- (0, import_react239.useEffect)(() => {
50561
+ (0, import_react240.useEffect)(() => {
50468
50562
  deprecationAndReplacementWarning(
50469
50563
  [
50470
50564
  [{ hasMoreNewer }, { hasNextPage }],
@@ -50475,7 +50569,7 @@ var InfiniteScroll = (props) => {
50475
50569
  "InfiniteScroll"
50476
50570
  );
50477
50571
  }, []);
50478
- (0, import_react239.useEffect)(() => {
50572
+ (0, import_react240.useEffect)(() => {
50479
50573
  const scrollElement = scrollComponent.current?.parentNode;
50480
50574
  if (!scrollElement) return;
50481
50575
  const scrollListener = () => scrollListenerRef.current?.();
@@ -50487,7 +50581,7 @@ var InfiniteScroll = (props) => {
50487
50581
  scrollElement.removeEventListener("resize", scrollListener, useCapture);
50488
50582
  };
50489
50583
  }, [initialLoad, useCapture]);
50490
- (0, import_react239.useEffect)(() => {
50584
+ (0, import_react240.useEffect)(() => {
50491
50585
  const scrollElement = scrollComponent.current?.parentNode;
50492
50586
  if (scrollElement) {
50493
50587
  scrollElement.addEventListener("wheel", mousewheelListener2, { passive: false });
@@ -50508,11 +50602,11 @@ var InfiniteScroll = (props) => {
50508
50602
  if (head) {
50509
50603
  childrenArray.unshift(head);
50510
50604
  }
50511
- return import_react239.default.createElement(element4, attributes, childrenArray);
50605
+ return import_react240.default.createElement(element4, attributes, childrenArray);
50512
50606
  };
50513
50607
 
50514
50608
  // src/components/TypingIndicator/TypingIndicator.tsx
50515
- var import_react240 = __toESM(require("react"));
50609
+ var import_react241 = __toESM(require("react"));
50516
50610
  var import_clsx60 = __toESM(require("clsx"));
50517
50611
  var useJoinTypingUsers = (names) => {
50518
50612
  const { t: t2 } = useTranslationContext();
@@ -50550,7 +50644,7 @@ var UnMemoizedTypingIndicator = (props) => {
50550
50644
  return null;
50551
50645
  }
50552
50646
  if (!isTypingActive) return null;
50553
- return /* @__PURE__ */ import_react240.default.createElement(
50647
+ return /* @__PURE__ */ import_react241.default.createElement(
50554
50648
  "div",
50555
50649
  {
50556
50650
  className: (0, import_clsx60.default)("str-chat__typing-indicator", {
@@ -50558,90 +50652,17 @@ var UnMemoizedTypingIndicator = (props) => {
50558
50652
  }),
50559
50653
  "data-testid": "typing-indicator"
50560
50654
  },
50561
- /* @__PURE__ */ import_react240.default.createElement("div", { className: "str-chat__typing-indicator__dots" }, /* @__PURE__ */ import_react240.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react240.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react240.default.createElement("span", { className: "str-chat__typing-indicator__dot" })),
50562
- /* @__PURE__ */ import_react240.default.createElement("div", { className: "str-chat__typing-indicator__users", "data-testid": "typing-users" }, joinedTypingUsers)
50655
+ /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__typing-indicator__dots" }, /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__typing-indicator__dot" })),
50656
+ /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__typing-indicator__users", "data-testid": "typing-users" }, joinedTypingUsers)
50563
50657
  );
50564
50658
  };
50565
- var TypingIndicator = import_react240.default.memo(
50659
+ var TypingIndicator = import_react241.default.memo(
50566
50660
  UnMemoizedTypingIndicator
50567
50661
  );
50568
50662
 
50569
50663
  // src/components/MessageList/renderMessages.tsx
50570
50664
  var import_react244 = __toESM(require("react"));
50571
50665
 
50572
- // src/components/Message/FixedHeightMessage.tsx
50573
- var import_react241 = __toESM(require("react"));
50574
- var selectColor = (number3, dark) => {
50575
- const hue = number3 * 137.508;
50576
- return `hsl(${hue},${dark ? "50%" : "85%"}, ${dark ? "75%" : "55%"})`;
50577
- };
50578
- var hashUserId = (userId) => {
50579
- const hash = userId.split("").reduce((acc, c) => {
50580
- acc = (acc << 5) - acc + c.charCodeAt(0);
50581
- return acc & acc;
50582
- }, 0);
50583
- return Math.abs(hash) / 10 ** Math.ceil(Math.log10(Math.abs(hash) + 1));
50584
- };
50585
- var getUserColor = (theme, userId) => selectColor(hashUserId(userId), theme.includes("dark"));
50586
- var UnMemoizedFixedHeightMessage = (props) => {
50587
- const { groupedByUser: propGroupedByUser, message: propMessage } = props;
50588
- const { theme } = useChatContext("FixedHeightMessage");
50589
- const { groupedByUser: contextGroupedByUser, message: contextMessage } = useMessageContext("FixedHeightMessage");
50590
- const { MessageDeleted: MessageDeleted2 = MessageDeleted } = useComponentContext("FixedHeightMessage");
50591
- const { userLanguage } = useTranslationContext("FixedHeightMessage");
50592
- const groupedByUser = propGroupedByUser !== void 0 ? propGroupedByUser : contextGroupedByUser;
50593
- const message = propMessage || contextMessage;
50594
- const handleAction = useActionHandler(message);
50595
- const handleDelete2 = useDeleteHandler(message);
50596
- const role = useUserRole(message);
50597
- const messageTextToRender = message?.i18n?.[`${userLanguage}_text`] || message?.text;
50598
- const renderedText = (0, import_react241.useMemo)(
50599
- () => renderText(messageTextToRender, message.mentioned_users),
50600
- [message.mentioned_users, messageTextToRender]
50601
- );
50602
- const userId = message.user?.id || "";
50603
- const userColor = (0, import_react241.useMemo)(() => getUserColor(theme, userId), [userId, theme]);
50604
- const messageActionsHandler = (0, import_react241.useCallback)(
50605
- () => getMessageActions(["delete"], { canDelete: role.canDelete }),
50606
- [role]
50607
- );
50608
- const images = message?.attachments?.filter(({ type }) => type === "image");
50609
- return /* @__PURE__ */ import_react241.default.createElement(
50610
- "div",
50611
- {
50612
- className: `str-chat__virtual-message__wrapper ${role.isMyMessage ? "str-chat__virtual-message__wrapper--me" : ""} ${groupedByUser ? "str-chat__virtual-message__wrapper--group" : ""}`,
50613
- key: message.id
50614
- },
50615
- message.user && /* @__PURE__ */ import_react241.default.createElement(
50616
- Avatar,
50617
- {
50618
- image: message.user.image,
50619
- name: message.user.name || message.user.id,
50620
- user: message.user
50621
- }
50622
- ),
50623
- /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__content" }, /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__meta" }, /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__author", style: { color: userColor } }, /* @__PURE__ */ import_react241.default.createElement("strong", null, message.user?.name || "unknown"))), message.deleted_at || message.type === "deleted" ? /* @__PURE__ */ import_react241.default.createElement(MessageDeleted2, { message }) : /* @__PURE__ */ import_react241.default.createElement(import_react241.default.Fragment, null, images && /* @__PURE__ */ import_react241.default.createElement(Gallery, { images }), /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__text", "data-testid": "msg-text" }, renderedText, message.mml && /* @__PURE__ */ import_react241.default.createElement(MML3, { actionHandler: handleAction, align: "left", source: message.mml }), /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__data" }, /* @__PURE__ */ import_react241.default.createElement(
50624
- MessageActions,
50625
- {
50626
- customWrapperClass: "str-chat__virtual-message__actions",
50627
- getMessageActions: messageActionsHandler,
50628
- handleDelete: handleDelete2,
50629
- message,
50630
- mine: () => role.isMyMessage
50631
- }
50632
- ), /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__virtual-message__date" }, /* @__PURE__ */ import_react241.default.createElement(
50633
- MessageTimestamp,
50634
- {
50635
- customClass: "str-chat__message-simple-timestamp",
50636
- message
50637
- }
50638
- ))))))
50639
- );
50640
- };
50641
- var FixedHeightMessage = import_react241.default.memo(
50642
- UnMemoizedFixedHeightMessage
50643
- );
50644
-
50645
50666
  // src/components/DateSeparator/DateSeparator.tsx
50646
50667
  var import_react242 = __toESM(require("react"));
50647
50668
  var UnMemoizedDateSeparator = (props) => {
@@ -52996,7 +53017,7 @@ var useChat = ({
52996
53017
  if (!client) return;
52997
53018
  const userAgent = client.getUserAgent();
52998
53019
  if (!userAgent.includes("stream-chat-react")) {
52999
- client.setUserAgent(`stream-chat-react-12.12.0-${userAgent}`);
53020
+ client.setUserAgent(`stream-chat-react-12.13.0-${userAgent}`);
53000
53021
  }
53001
53022
  client.threads.registerSubscriptions();
53002
53023
  client.polls.registerSubscriptions();