@katechat/ui 1.0.6 → 1.0.8

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.
package/dist/esm/index.js CHANGED
@@ -57372,22 +57372,6 @@ var CopyMessageButton = ({
57372
57372
  /* @__PURE__ */ React2.createElement(IconCopy, null)
57373
57373
  )), /* @__PURE__ */ React2.createElement(ActionIcon, { disabled: true, size: "sm", className: "check-icon" }, /* @__PURE__ */ React2.createElement(IconCopyCheck, null)));
57374
57374
 
57375
- // src/components/chat/message/ChatMessage.module.scss
57376
- var ChatMessage_module_default = {
57377
- "messageContainer": "_messageContainer_bxv2j_1",
57378
- "main": "_main_bxv2j_7",
57379
- "linked": "_linked_bxv2j_8",
57380
- "linkedToggle": "_linkedToggle_bxv2j_19",
57381
- "hidden": "_hidden_bxv2j_41",
57382
- "linkedMessageContainer": "_linkedMessageContainer_bxv2j_45",
57383
- "message": "_message_bxv2j_1",
57384
- "preview": "_preview_bxv2j_82",
57385
- "detailsBlock": "_detailsBlock_bxv2j_91",
57386
- "messageFooter": "_messageFooter_bxv2j_251",
57387
- "user": "_user_bxv2j_277",
57388
- "error": "_error_bxv2j_282"
57389
- };
57390
-
57391
57375
  // src/components/chat/message/ChatMessage.Carousel.module.scss
57392
57376
  var ChatMessage_Carousel_module_default = {
57393
57377
  "controls": "_controls_pp1ia_1"
@@ -57501,7 +57485,7 @@ var ChatMessage = (props) => {
57501
57485
  const mainMessage = useMemo(() => {
57502
57486
  const plugins = pluginsLoader ? pluginsLoader(message) : null;
57503
57487
  const model = models?.find((m) => m.modelId === message?.modelId);
57504
- return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(Group, { align: "center" }, /* @__PURE__ */ React3.createElement(Avatar, { color: "gray", radius: "xl", size: "md", src: isUserMessage ? message?.user?.avatarUrl : void 0 }, isUserMessage ? /* @__PURE__ */ React3.createElement(IconUser, null) : model ? /* @__PURE__ */ React3.createElement(ProviderIcon, { apiProvider: model.apiProvider, provider: model.provider }) : /* @__PURE__ */ React3.createElement(IconRobot, null)), /* @__PURE__ */ React3.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React3.createElement(Text, { size: "sm", fw: 500, c: isUserMessage ? "blue" : "teal" }, username), /* @__PURE__ */ React3.createElement(Text, { size: "xs", c: "dimmed" }, timestamp), status && /* @__PURE__ */ React3.createElement(MessageStatus, { status }), statusInfo && /* @__PURE__ */ React3.createElement(Text, { size: "xs", c: "dimmed" }, statusInfo))), /* @__PURE__ */ React3.createElement("div", { className: ChatMessage_module_default.message }, streaming && !content && /* @__PURE__ */ React3.createElement(Loader, { size: "md", mb: "md" }), html2 ? html2.map((part, index2) => /* @__PURE__ */ React3.createElement("div", { key: index2, dangerouslySetInnerHTML: { __html: part } })) : /* @__PURE__ */ React3.createElement("div", null, content), details && /* @__PURE__ */ React3.createElement(Box, { mt: "md" }, /* @__PURE__ */ React3.createElement(Group, { mb: 5 }, /* @__PURE__ */ React3.createElement(Button, { onClick: toggleDetails, p: "xs", variant: "light", size: "xs" }, "Details")), /* @__PURE__ */ React3.createElement(Collapse, { in: showDetails }, /* @__PURE__ */ React3.createElement("div", { className: ChatMessage_module_default.detailsBlock }, details))), /* @__PURE__ */ React3.createElement("div", { className: ChatMessage_module_default.messageFooter }, /* @__PURE__ */ React3.createElement(CopyMessageButton, { messageId: id, messageIndex: index }), plugins)));
57488
+ return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(Group, { align: "center" }, /* @__PURE__ */ React3.createElement(Avatar, { color: "gray", radius: "xl", size: "md", src: isUserMessage ? message?.user?.avatarUrl : void 0 }, isUserMessage ? /* @__PURE__ */ React3.createElement(IconUser, null) : model ? /* @__PURE__ */ React3.createElement(ProviderIcon, { apiProvider: model.apiProvider, provider: model.provider }) : /* @__PURE__ */ React3.createElement(IconRobot, null)), /* @__PURE__ */ React3.createElement(Group, { gap: "xs" }, /* @__PURE__ */ React3.createElement(Text, { size: "sm", fw: 500, c: isUserMessage ? "blue" : "teal" }, username), /* @__PURE__ */ React3.createElement(Text, { size: "xs", c: "dimmed" }, timestamp), status && /* @__PURE__ */ React3.createElement(MessageStatus, { status }), statusInfo && /* @__PURE__ */ React3.createElement(Text, { size: "xs", c: "dimmed" }, statusInfo))), /* @__PURE__ */ React3.createElement("div", { className: "katechat-message-content" }, streaming && !content && /* @__PURE__ */ React3.createElement(Loader, { size: "md", mb: "md" }), html2 ? html2.map((part, index2) => /* @__PURE__ */ React3.createElement("div", { key: index2, dangerouslySetInnerHTML: { __html: part } })) : /* @__PURE__ */ React3.createElement("div", null, content), details && /* @__PURE__ */ React3.createElement(Box, { mt: "md" }, /* @__PURE__ */ React3.createElement(Group, { mb: 5 }, /* @__PURE__ */ React3.createElement(Button, { onClick: toggleDetails, p: "xs", variant: "light", size: "xs" }, "Details")), /* @__PURE__ */ React3.createElement(Collapse, { in: showDetails }, /* @__PURE__ */ React3.createElement("div", { className: "katechat-message-content-details" }, details))), /* @__PURE__ */ React3.createElement("div", { className: "katechat-message-footer" }, /* @__PURE__ */ React3.createElement(CopyMessageButton, { messageId: id, messageIndex: index }), plugins)));
57505
57489
  }, [
57506
57490
  role,
57507
57491
  username,
@@ -57544,9 +57528,9 @@ var ChatMessage = (props) => {
57544
57528
  );
57545
57529
  }, [linkedMessages, models, pluginsLoader, index]);
57546
57530
  if (!linkedMessagesCmp) {
57547
- return /* @__PURE__ */ React3.createElement("div", { className: [ChatMessage_module_default.messageContainer, ChatMessage_module_default[role] || ""].join(" "), ref: componentRef }, /* @__PURE__ */ React3.createElement("div", { className: ChatMessage_module_default.main }, mainMessage));
57531
+ return /* @__PURE__ */ React3.createElement("div", { className: ["katechat-message", `katechat-message__${role || ""}`].join(" "), ref: componentRef }, /* @__PURE__ */ React3.createElement("div", { className: "katechat-message-main" }, mainMessage));
57548
57532
  }
57549
- return /* @__PURE__ */ React3.createElement("div", { className: [ChatMessage_module_default.messageContainer, ChatMessage_module_default[role] || ""].join(" "), ref: componentRef }, /* @__PURE__ */ React3.createElement("div", { className: ChatMessage_module_default.linkedToggle }, /* @__PURE__ */ React3.createElement(
57533
+ return /* @__PURE__ */ React3.createElement("div", { className: ["katechat-message", `katechat-message__${role || ""}`].join(" "), ref: componentRef }, /* @__PURE__ */ React3.createElement("div", { className: "katechat-message-linked-toggle" }, /* @__PURE__ */ React3.createElement(
57550
57534
  Switch,
57551
57535
  {
57552
57536
  checked: showMainMessage,
@@ -57554,7 +57538,7 @@ var ChatMessage = (props) => {
57554
57538
  label: showMainMessage ? "Main" : "Others",
57555
57539
  size: "sm"
57556
57540
  }
57557
- )), /* @__PURE__ */ React3.createElement("div", { className: [ChatMessage_module_default.main, showMainMessage ? "" : ChatMessage_module_default.hidden].join(" ") }, mainMessage), /* @__PURE__ */ React3.createElement("div", { className: [ChatMessage_module_default.linked, showMainMessage ? ChatMessage_module_default.hidden : ""].join(" ") }, linkedMessagesCmp));
57541
+ )), /* @__PURE__ */ React3.createElement("div", { className: ["katechat-message-main", showMainMessage ? "" : "hidden"].join(" ") }, mainMessage), /* @__PURE__ */ React3.createElement("div", { className: ["katechat-message-linked", showMainMessage ? "hidden" : ""].join(" ") }, linkedMessagesCmp));
57558
57542
  };
57559
57543
  ChatMessage.displayName = "ChatMessage";
57560
57544
 
@@ -57562,7 +57546,15 @@ ChatMessage.displayName = "ChatMessage";
57562
57546
  import React4 from "react";
57563
57547
  import { ScrollArea } from "@mantine/core";
57564
57548
  var ChatMessagePreview = ({ html: html2, text: text2 }) => {
57565
- return /* @__PURE__ */ React4.createElement(ScrollArea, { type: "hover", offsetScrollbars: true, className: [ChatMessage_module_default.message, ChatMessage_module_default.preview].join(" ") }, text2 ? /* @__PURE__ */ React4.createElement(React4.Fragment, null, html2 ? html2.map((part, index) => /* @__PURE__ */ React4.createElement("div", { key: index, dangerouslySetInnerHTML: { __html: part } })) : /* @__PURE__ */ React4.createElement("div", null, text2)) : "...");
57549
+ return /* @__PURE__ */ React4.createElement(
57550
+ ScrollArea,
57551
+ {
57552
+ type: "hover",
57553
+ offsetScrollbars: true,
57554
+ className: ["katechat-message-content", "katechat-message-preview"].join(" ")
57555
+ },
57556
+ text2 ? /* @__PURE__ */ React4.createElement(React4.Fragment, null, html2 ? html2.map((part, index) => /* @__PURE__ */ React4.createElement("div", { key: index, dangerouslySetInnerHTML: { __html: part } })) : /* @__PURE__ */ React4.createElement("div", null, text2)) : "..."
57557
+ );
57566
57558
  };
57567
57559
 
57568
57560
  // src/components/chat/message/LinkedChatMessage.tsx
@@ -57618,7 +57610,7 @@ var LinkedChatMessage = ({ message, parentIndex, index, plugins, models }) => {
57618
57610
  const model = useMemo2(() => {
57619
57611
  return models?.find((m) => m.modelId === message.modelId);
57620
57612
  }, [models, message.modelId]);
57621
- return /* @__PURE__ */ React6.createElement(Carousel2.Slide, { key: message.id, className: ChatMessage_module_default.linkedMessageContainer }, /* @__PURE__ */ React6.createElement(Group2, { align: "center" }, /* @__PURE__ */ React6.createElement(Avatar2, { radius: "xl", size: "md" }, model ? /* @__PURE__ */ React6.createElement(ProviderIcon, { apiProvider: model.apiProvider, provider: model.provider }) : /* @__PURE__ */ React6.createElement(IconRobot2, null)), /* @__PURE__ */ React6.createElement(Group2, { gap: "xs" }, /* @__PURE__ */ React6.createElement(Text2, { size: "sm", fw: 500, c: "teal" }, message.modelName), message.status && /* @__PURE__ */ React6.createElement(MessageStatus, { status: message.status }), message.statusInfo && /* @__PURE__ */ React6.createElement(Text2, { size: "xs", c: "dimmed" }, message.statusInfo))), /* @__PURE__ */ React6.createElement("div", { className: ChatMessage_module_default.message }, message.html ? message.html.map((part, index2) => /* @__PURE__ */ React6.createElement("div", { key: index2, dangerouslySetInnerHTML: { __html: part } })) : /* @__PURE__ */ React6.createElement("div", null, message.content), /* @__PURE__ */ React6.createElement("div", { className: ChatMessage_module_default.messageFooter }, /* @__PURE__ */ React6.createElement(CopyMessageButton, { messageId: message.id, messageIndex: parentIndex, linkedMessageIndex: index }), plugins)));
57613
+ return /* @__PURE__ */ React6.createElement(Carousel2.Slide, { key: message.id, className: "katechat-message-linked" }, /* @__PURE__ */ React6.createElement(Group2, { align: "center" }, /* @__PURE__ */ React6.createElement(Avatar2, { radius: "xl", size: "md" }, model ? /* @__PURE__ */ React6.createElement(ProviderIcon, { apiProvider: model.apiProvider, provider: model.provider }) : /* @__PURE__ */ React6.createElement(IconRobot2, null)), /* @__PURE__ */ React6.createElement(Group2, { gap: "xs" }, /* @__PURE__ */ React6.createElement(Text2, { size: "sm", fw: 500, c: "teal" }, message.modelName), message.status && /* @__PURE__ */ React6.createElement(MessageStatus, { status: message.status }), message.statusInfo && /* @__PURE__ */ React6.createElement(Text2, { size: "xs", c: "dimmed" }, message.statusInfo))), /* @__PURE__ */ React6.createElement("div", { className: "katechat-message-content" }, message.html ? message.html.map((part, index2) => /* @__PURE__ */ React6.createElement("div", { key: index2, dangerouslySetInnerHTML: { __html: part } })) : /* @__PURE__ */ React6.createElement("div", null, message.content), /* @__PURE__ */ React6.createElement("div", { className: "katechat-message-footer" }, /* @__PURE__ */ React6.createElement(CopyMessageButton, { messageId: message.id, messageIndex: parentIndex, linkedMessageIndex: index }), plugins)));
57622
57614
  };
57623
57615
  LinkedChatMessage.displayName = "LinkedChatMessage";
57624
57616
 
@@ -58142,7 +58134,7 @@ var ChatMessagesList = ({
58142
58134
 
58143
58135
  // src/components/chat/ChatMessagesContainer.tsx
58144
58136
  import React12, { useCallback as useCallback6, useEffect as useEffect7, useImperativeHandle, useRef as useRef6, useState as useState4 } from "react";
58145
- import { Group as Group7, Loader as Loader2 } from "@mantine/core";
58137
+ import { Group as Group6, Loader as Loader2 } from "@mantine/core";
58146
58138
  import { IconCircleChevronDown } from "@tabler/icons-react";
58147
58139
 
58148
58140
  // src/hooks/useIntersectionObserver.ts
@@ -58208,18 +58200,6 @@ var useTheme = () => {
58208
58200
  return context;
58209
58201
  };
58210
58202
 
58211
- // src/components/chat/ChatMessagesContainer.module.scss
58212
- var ChatMessagesContainer_module_default = {
58213
- "messagesContainer": "_messagesContainer_b8239_2",
58214
- "messagesList": "_messagesList_b8239_19",
58215
- "empty": "_empty_b8239_23",
58216
- "scroller": "_scroller_b8239_12",
58217
- "loadCompleted": "_loadCompleted_b8239_31",
58218
- "anchorContainer": "_anchorContainer_b8239_41",
58219
- "visible": "_visible_b8239_55",
58220
- "anchor": "_anchor_b8239_41"
58221
- };
58222
-
58223
58203
  // src/components/chat/ChatMessagesContainer.tsx
58224
58204
  var ChatMessagesContainer = React12.forwardRef(
58225
58205
  ({
@@ -58292,12 +58272,12 @@ var ChatMessagesContainer = React12.forwardRef(
58292
58272
  "div",
58293
58273
  {
58294
58274
  className: [
58295
- ChatMessagesContainer_module_default.messagesContainer,
58296
- loadCompleted ? ChatMessagesContainer_module_default.loadCompleted : "",
58297
- loadCompleted && messages?.length === 0 ? ChatMessagesContainer_module_default.empty : ""
58275
+ "katechat-messages-container",
58276
+ loadCompleted ? "container--load-completed" : "",
58277
+ loadCompleted && messages?.length === 0 ? "container--empty" : ""
58298
58278
  ].join(" ")
58299
58279
  },
58300
- /* @__PURE__ */ React12.createElement("div", { className: ChatMessagesContainer_module_default.scroller, ref: messagesContainerRef, onScroll: handleScroll }, /* @__PURE__ */ React12.createElement("div", { ref: firstMessageRef }), loading && /* @__PURE__ */ React12.createElement(Group7, { justify: "center", align: "center", py: "xl" }, /* @__PURE__ */ React12.createElement(Loader2, null)), /* @__PURE__ */ React12.createElement("div", { className: ChatMessagesContainer_module_default.messagesList }, messages && /* @__PURE__ */ React12.createElement(
58280
+ /* @__PURE__ */ React12.createElement("div", { className: "katechat-messages-container-scroller", ref: messagesContainerRef, onScroll: handleScroll }, /* @__PURE__ */ React12.createElement("div", { ref: firstMessageRef }), loading && /* @__PURE__ */ React12.createElement(Group6, { justify: "center", align: "center", py: "xl" }, /* @__PURE__ */ React12.createElement(Loader2, null)), /* @__PURE__ */ React12.createElement("div", { className: "katechat-messages-list" }, messages && /* @__PURE__ */ React12.createElement(
58301
58281
  ChatMessagesList,
58302
58282
  {
58303
58283
  messages,
@@ -58308,7 +58288,7 @@ var ChatMessagesContainer = React12.forwardRef(
58308
58288
  detailsPlugins
58309
58289
  }
58310
58290
  ))),
58311
- /* @__PURE__ */ React12.createElement("div", { className: [ChatMessagesContainer_module_default.anchorContainer, showAnchorButton ? ChatMessagesContainer_module_default.visible : ""].join(" ") }, /* @__PURE__ */ React12.createElement("div", { className: ChatMessagesContainer_module_default.anchor }, /* @__PURE__ */ React12.createElement(IconCircleChevronDown, { size: 32, color: "teal", style: { cursor: "pointer" }, onClick: anchorHandleClick })))
58291
+ /* @__PURE__ */ React12.createElement("div", { className: ["katechat-anchor-container", showAnchorButton ? "container--visible" : ""].join(" ") }, /* @__PURE__ */ React12.createElement("div", { className: "katechat-anchor" }, /* @__PURE__ */ React12.createElement(IconCircleChevronDown, { size: 32, color: "teal", onClick: anchorHandleClick })))
58312
58292
  );
58313
58293
  }
58314
58294
  );