@copilotkit/react-ui 1.8.13-next.1 → 1.8.13-next.3

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.
Files changed (136) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{chunk-RVLCPPEL.mjs → chunk-5INP2EWU.mjs} +6 -4
  3. package/dist/chunk-5INP2EWU.mjs.map +1 -0
  4. package/dist/{chunk-XFCMZH2H.mjs → chunk-6VUDBDUN.mjs} +2 -2
  5. package/dist/{chunk-24TDU7MY.mjs → chunk-ALWZ35SI.mjs} +2 -2
  6. package/dist/{chunk-IIRQWGWV.mjs → chunk-B3D7U7TJ.mjs} +5 -3
  7. package/dist/chunk-B3D7U7TJ.mjs.map +1 -0
  8. package/dist/{chunk-KQ44Z255.mjs → chunk-EMIYIMQ6.mjs} +4 -4
  9. package/dist/{chunk-ZDKVXAL3.mjs → chunk-FWKHST6I.mjs} +75 -39
  10. package/dist/chunk-FWKHST6I.mjs.map +1 -0
  11. package/dist/{chunk-NWE7CLTB.mjs → chunk-IAHSHPRJ.mjs} +22 -21
  12. package/dist/chunk-IAHSHPRJ.mjs.map +1 -0
  13. package/dist/{chunk-XZNY26GH.mjs → chunk-IMBPSLL4.mjs} +3 -3
  14. package/dist/chunk-IMBPSLL4.mjs.map +1 -0
  15. package/dist/{chunk-MDMNZ6JL.mjs → chunk-JU3HNL5N.mjs} +2 -2
  16. package/dist/{chunk-DSQGQJI4.mjs → chunk-MPZAMNCN.mjs} +2 -2
  17. package/dist/{chunk-K7SXHJRT.mjs → chunk-QEZ3YYLO.mjs} +2 -2
  18. package/dist/chunk-QGSPTXOV.mjs +24 -0
  19. package/dist/chunk-QGSPTXOV.mjs.map +1 -0
  20. package/dist/chunk-SC6JRFAJ.mjs +1 -0
  21. package/dist/{chunk-LUPGADWY.mjs → chunk-UKWBNVMQ.mjs} +2 -2
  22. package/dist/{chunk-OZXUB3V7.mjs → chunk-XMNTLIK5.mjs} +5 -4
  23. package/dist/chunk-XMNTLIK5.mjs.map +1 -0
  24. package/dist/chunk-YTXEWDNC.mjs +117 -0
  25. package/dist/chunk-YTXEWDNC.mjs.map +1 -0
  26. package/dist/components/chat/Button.d.ts +2 -0
  27. package/dist/components/chat/Chat.d.ts +11 -2
  28. package/dist/components/chat/Chat.js +117 -50
  29. package/dist/components/chat/Chat.js.map +1 -1
  30. package/dist/components/chat/Chat.mjs +13 -12
  31. package/dist/components/chat/Header.d.ts +2 -0
  32. package/dist/components/chat/Input.d.ts +2 -0
  33. package/dist/components/chat/Input.mjs +2 -2
  34. package/dist/components/chat/Markdown.d.ts +3 -1
  35. package/dist/components/chat/Markdown.js +65 -20
  36. package/dist/components/chat/Markdown.js.map +1 -1
  37. package/dist/components/chat/Markdown.mjs +1 -1
  38. package/dist/components/chat/Messages.d.ts +2 -1
  39. package/dist/components/chat/Messages.js +4 -2
  40. package/dist/components/chat/Messages.js.map +1 -1
  41. package/dist/components/chat/Messages.mjs +1 -1
  42. package/dist/components/chat/Modal.d.ts +2 -2
  43. package/dist/components/chat/Modal.js +186 -88
  44. package/dist/components/chat/Modal.js.map +1 -1
  45. package/dist/components/chat/Modal.mjs +19 -18
  46. package/dist/components/chat/Popup.d.ts +1 -1
  47. package/dist/components/chat/Popup.js +188 -90
  48. package/dist/components/chat/Popup.js.map +1 -1
  49. package/dist/components/chat/Popup.mjs +20 -19
  50. package/dist/components/chat/Sidebar.d.ts +1 -1
  51. package/dist/components/chat/Sidebar.js +188 -90
  52. package/dist/components/chat/Sidebar.js.map +1 -1
  53. package/dist/components/chat/Sidebar.mjs +20 -19
  54. package/dist/components/chat/Suggestion.d.ts +8 -3
  55. package/dist/components/chat/Suggestion.js +2 -2
  56. package/dist/components/chat/Suggestion.js.map +1 -1
  57. package/dist/components/chat/Suggestion.mjs +1 -1
  58. package/dist/components/chat/Suggestions.d.ts +9 -0
  59. package/dist/components/chat/Suggestions.js +73 -0
  60. package/dist/components/chat/Suggestions.js.map +1 -0
  61. package/dist/components/chat/Suggestions.mjs +10 -0
  62. package/dist/components/chat/Suggestions.mjs.map +1 -0
  63. package/dist/components/chat/Window.d.ts +2 -0
  64. package/dist/components/chat/index.d.ts +6 -3
  65. package/dist/components/chat/index.js +194 -92
  66. package/dist/components/chat/index.js.map +1 -1
  67. package/dist/components/chat/index.mjs +31 -24
  68. package/dist/components/chat/messages/AssistantMessage.d.ts +2 -0
  69. package/dist/components/chat/messages/AssistantMessage.js +68 -22
  70. package/dist/components/chat/messages/AssistantMessage.js.map +1 -1
  71. package/dist/components/chat/messages/AssistantMessage.mjs +2 -2
  72. package/dist/components/chat/messages/RenderActionExecutionMessage.d.ts +2 -0
  73. package/dist/components/chat/messages/RenderActionExecutionMessage.js +68 -22
  74. package/dist/components/chat/messages/RenderActionExecutionMessage.js.map +1 -1
  75. package/dist/components/chat/messages/RenderActionExecutionMessage.mjs +3 -3
  76. package/dist/components/chat/messages/RenderAgentStateMessage.d.ts +2 -0
  77. package/dist/components/chat/messages/RenderAgentStateMessage.js +68 -22
  78. package/dist/components/chat/messages/RenderAgentStateMessage.js.map +1 -1
  79. package/dist/components/chat/messages/RenderAgentStateMessage.mjs +3 -3
  80. package/dist/components/chat/messages/RenderImageMessage.d.ts +2 -0
  81. package/dist/components/chat/messages/RenderImageMessage.js +68 -22
  82. package/dist/components/chat/messages/RenderImageMessage.js.map +1 -1
  83. package/dist/components/chat/messages/RenderImageMessage.mjs +3 -3
  84. package/dist/components/chat/messages/RenderResultMessage.d.ts +2 -0
  85. package/dist/components/chat/messages/RenderResultMessage.js +68 -22
  86. package/dist/components/chat/messages/RenderResultMessage.js.map +1 -1
  87. package/dist/components/chat/messages/RenderResultMessage.mjs +3 -3
  88. package/dist/components/chat/messages/RenderTextMessage.d.ts +2 -0
  89. package/dist/components/chat/messages/RenderTextMessage.js +72 -24
  90. package/dist/components/chat/messages/RenderTextMessage.js.map +1 -1
  91. package/dist/components/chat/messages/RenderTextMessage.mjs +3 -3
  92. package/dist/components/chat/messages/UserMessage.d.ts +2 -0
  93. package/dist/components/chat/props.d.ts +27 -1
  94. package/dist/components/chat/props.js.map +1 -1
  95. package/dist/components/index.d.ts +6 -3
  96. package/dist/components/index.js +194 -92
  97. package/dist/components/index.js.map +1 -1
  98. package/dist/components/index.mjs +35 -28
  99. package/dist/index.css +32 -28
  100. package/dist/index.css.map +1 -1
  101. package/dist/index.d.ts +6 -3
  102. package/dist/index.js +194 -92
  103. package/dist/index.js.map +1 -1
  104. package/dist/index.mjs +35 -28
  105. package/dist/types/index.d.ts +1 -0
  106. package/dist/types/index.js.map +1 -1
  107. package/package.json +11 -10
  108. package/src/components/chat/Chat.tsx +21 -13
  109. package/src/components/chat/Markdown.tsx +86 -29
  110. package/src/components/chat/Messages.tsx +2 -0
  111. package/src/components/chat/Modal.tsx +4 -0
  112. package/src/components/chat/Suggestion.tsx +10 -3
  113. package/src/components/chat/Suggestions.tsx +20 -0
  114. package/src/components/chat/index.tsx +2 -0
  115. package/src/components/chat/messages/AssistantMessage.tsx +2 -1
  116. package/src/components/chat/messages/RenderTextMessage.tsx +2 -0
  117. package/src/components/chat/props.ts +29 -0
  118. package/src/css/markdown.css +33 -28
  119. package/src/types/index.ts +1 -0
  120. package/dist/chunk-ABHUX6T6.mjs +0 -72
  121. package/dist/chunk-ABHUX6T6.mjs.map +0 -1
  122. package/dist/chunk-IIRQWGWV.mjs.map +0 -1
  123. package/dist/chunk-NWE7CLTB.mjs.map +0 -1
  124. package/dist/chunk-OZXUB3V7.mjs.map +0 -1
  125. package/dist/chunk-PXEVB7IK.mjs +0 -1
  126. package/dist/chunk-RVLCPPEL.mjs.map +0 -1
  127. package/dist/chunk-XZNY26GH.mjs.map +0 -1
  128. package/dist/chunk-ZDKVXAL3.mjs.map +0 -1
  129. /package/dist/{chunk-XFCMZH2H.mjs.map → chunk-6VUDBDUN.mjs.map} +0 -0
  130. /package/dist/{chunk-24TDU7MY.mjs.map → chunk-ALWZ35SI.mjs.map} +0 -0
  131. /package/dist/{chunk-KQ44Z255.mjs.map → chunk-EMIYIMQ6.mjs.map} +0 -0
  132. /package/dist/{chunk-MDMNZ6JL.mjs.map → chunk-JU3HNL5N.mjs.map} +0 -0
  133. /package/dist/{chunk-DSQGQJI4.mjs.map → chunk-MPZAMNCN.mjs.map} +0 -0
  134. /package/dist/{chunk-K7SXHJRT.mjs.map → chunk-QEZ3YYLO.mjs.map} +0 -0
  135. /package/dist/{chunk-PXEVB7IK.mjs.map → chunk-SC6JRFAJ.mjs.map} +0 -0
  136. /package/dist/{chunk-LUPGADWY.mjs.map → chunk-UKWBNVMQ.mjs.map} +0 -0
@@ -86,6 +86,8 @@ __export(components_exports, {
86
86
  CopilotSidebar: () => CopilotSidebar,
87
87
  Markdown: () => Markdown,
88
88
  RenderImageMessage: () => RenderImageMessage,
89
+ RenderSuggestion: () => Suggestion,
90
+ RenderSuggestionsList: () => Suggestions,
89
91
  UserMessage: () => UserMessage,
90
92
  shouldShowDevConsole: () => shouldShowDevConsole,
91
93
  useChatContext: () => useChatContext
@@ -1067,7 +1069,8 @@ var Messages = ({
1067
1069
  onRegenerate,
1068
1070
  onCopy,
1069
1071
  onThumbsUp,
1070
- onThumbsDown
1072
+ onThumbsDown,
1073
+ markdownTagRenderers
1071
1074
  }) => {
1072
1075
  const context = useChatContext();
1073
1076
  const initialMessages = (0, import_react6.useMemo)(
@@ -1106,7 +1109,8 @@ var Messages = ({
1106
1109
  onRegenerate,
1107
1110
  onCopy,
1108
1111
  onThumbsUp,
1109
- onThumbsDown
1112
+ onThumbsDown,
1113
+ markdownTagRenderers
1110
1114
  },
1111
1115
  index
1112
1116
  );
@@ -1935,31 +1939,17 @@ var highlightStyle = {
1935
1939
  // src/components/chat/Markdown.tsx
1936
1940
  var import_remark_gfm = __toESM(require("remark-gfm"));
1937
1941
  var import_remark_math = __toESM(require("remark-math"));
1942
+ var import_rehype_raw = __toESM(require("rehype-raw"));
1938
1943
  var import_jsx_runtime16 = require("react/jsx-runtime");
1939
- var MemoizedReactMarkdown = (0, import_react11.memo)(
1940
- import_react_markdown.default,
1941
- (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.className === nextProps.className
1942
- );
1943
- var Markdown = ({ content }) => {
1944
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "copilotKitMarkdown", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(MemoizedReactMarkdown, { components, remarkPlugins: [import_remark_gfm.default, import_remark_math.default], children: content }) });
1945
- };
1946
- var components = {
1944
+ var defaultComponents = {
1947
1945
  a(_a) {
1948
1946
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1949
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1950
- "a",
1951
- __spreadProps(__spreadValues({
1952
- style: { color: "blue", textDecoration: "underline" }
1953
- }, props), {
1954
- target: "_blank",
1955
- rel: "noopener noreferrer",
1956
- children
1957
- })
1958
- );
1947
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("a", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { target: "_blank", rel: "noopener noreferrer", children }));
1959
1948
  },
1949
+ // @ts-expect-error -- inline
1960
1950
  code(_c) {
1961
1951
  var _d = _c, { children, className, inline } = _d, props = __objRest(_d, ["children", "className", "inline"]);
1962
- if (children.length) {
1952
+ if (Array.isArray(children) && children.length) {
1963
1953
  if (children[0] == "\u258D") {
1964
1954
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1965
1955
  "span",
@@ -1972,7 +1962,7 @@ var components = {
1972
1962
  }
1973
1963
  );
1974
1964
  }
1975
- children[0] = children[0].replace("`\u258D`", "\u258D");
1965
+ children[0] = (children == null ? void 0 : children[0]).replace("`\u258D`", "\u258D");
1976
1966
  }
1977
1967
  const match = /language-(\w+)/.exec(className || "");
1978
1968
  if (inline) {
@@ -1986,8 +1976,67 @@ var components = {
1986
1976
  }, props),
1987
1977
  Math.random()
1988
1978
  );
1979
+ },
1980
+ h1: (_e) => {
1981
+ var _f = _e, { children } = _f, props = __objRest(_f, ["children"]);
1982
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h1", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1983
+ },
1984
+ h2: (_g) => {
1985
+ var _h = _g, { children } = _h, props = __objRest(_h, ["children"]);
1986
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1987
+ },
1988
+ h3: (_i) => {
1989
+ var _j = _i, { children } = _j, props = __objRest(_j, ["children"]);
1990
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1991
+ },
1992
+ h4: (_k) => {
1993
+ var _l = _k, { children } = _l, props = __objRest(_l, ["children"]);
1994
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h4", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1995
+ },
1996
+ h5: (_m) => {
1997
+ var _n = _m, { children } = _n, props = __objRest(_n, ["children"]);
1998
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h5", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1999
+ },
2000
+ h6: (_o) => {
2001
+ var _p = _o, { children } = _p, props = __objRest(_p, ["children"]);
2002
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h6", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2003
+ },
2004
+ p: (_q) => {
2005
+ var _r = _q, { children } = _r, props = __objRest(_r, ["children"]);
2006
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2007
+ },
2008
+ pre: (_s) => {
2009
+ var _t = _s, { children } = _t, props = __objRest(_t, ["children"]);
2010
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("pre", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2011
+ },
2012
+ blockquote: (_u) => {
2013
+ var _v = _u, { children } = _v, props = __objRest(_v, ["children"]);
2014
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("blockquote", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2015
+ },
2016
+ ul: (_w) => {
2017
+ var _x = _w, { children } = _x, props = __objRest(_x, ["children"]);
2018
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("ul", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2019
+ },
2020
+ li: (_y) => {
2021
+ var _z = _y, { children } = _z, props = __objRest(_z, ["children"]);
2022
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1989
2023
  }
1990
2024
  };
2025
+ var MemoizedReactMarkdown = (0, import_react11.memo)(
2026
+ import_react_markdown.default,
2027
+ (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.components === nextProps.components
2028
+ );
2029
+ var Markdown = ({ content, components }) => {
2030
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "copilotKitMarkdown", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2031
+ MemoizedReactMarkdown,
2032
+ {
2033
+ components: __spreadValues(__spreadValues({}, defaultComponents), components),
2034
+ remarkPlugins: [import_remark_gfm.default, import_remark_math.default],
2035
+ rehypePlugins: [import_rehype_raw.default],
2036
+ children: content
2037
+ }
2038
+ ) });
2039
+ };
1991
2040
 
1992
2041
  // src/components/chat/messages/AssistantMessage.tsx
1993
2042
  var import_react12 = require("react");
@@ -2002,7 +2051,8 @@ var AssistantMessage = (props) => {
2002
2051
  onCopy,
2003
2052
  onThumbsUp,
2004
2053
  onThumbsDown,
2005
- isCurrentMessage
2054
+ isCurrentMessage,
2055
+ markdownTagRenderers
2006
2056
  } = props;
2007
2057
  const [copied, setCopied] = (0, import_react12.useState)(false);
2008
2058
  const handleCopy = () => {
@@ -2035,7 +2085,7 @@ var AssistantMessage = (props) => {
2035
2085
  const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: icons.activityIcon });
2036
2086
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
2037
2087
  (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
2038
- message && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Markdown, { content: message || "" }),
2088
+ message && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Markdown, { content: message || "", components: markdownTagRenderers }),
2039
2089
  isLoading && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LoadingIcon, {}),
2040
2090
  message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
2041
2091
  "div",
@@ -2108,7 +2158,8 @@ function RenderTextMessage(_a) {
2108
2158
  onRegenerate,
2109
2159
  onCopy,
2110
2160
  onThumbsUp,
2111
- onThumbsDown
2161
+ onThumbsDown,
2162
+ markdownTagRenderers
2112
2163
  } = props;
2113
2164
  if (message.isTextMessage()) {
2114
2165
  if (message.role === "user") {
@@ -2134,7 +2185,8 @@ function RenderTextMessage(_a) {
2134
2185
  onRegenerate: () => onRegenerate == null ? void 0 : onRegenerate(message.id),
2135
2186
  onCopy,
2136
2187
  onThumbsUp,
2137
- onThumbsDown
2188
+ onThumbsDown,
2189
+ markdownTagRenderers
2138
2190
  },
2139
2191
  index
2140
2192
  );
@@ -2445,19 +2497,23 @@ function RenderImageMessage(_a) {
2445
2497
  return null;
2446
2498
  }
2447
2499
 
2500
+ // src/components/chat/Chat.tsx
2501
+ var import_react13 = __toESM(require("react"));
2502
+ var import_react_core10 = require("@copilotkit/react-core");
2503
+
2448
2504
  // src/components/chat/Suggestion.tsx
2449
2505
  var import_react_core9 = require("@copilotkit/react-core");
2450
2506
  var import_shared2 = require("@copilotkit/shared");
2451
2507
  var import_runtime_client_gql3 = require("@copilotkit/runtime-client-gql");
2452
2508
  var import_jsx_runtime23 = require("react/jsx-runtime");
2453
- function Suggestion({ title, message, onClick, partial, className }) {
2509
+ function Suggestion({ title, onClick, partial, className }) {
2454
2510
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2455
2511
  "button",
2456
2512
  {
2457
2513
  disabled: partial,
2458
2514
  onClick: (e) => {
2459
2515
  e.preventDefault();
2460
- onClick(message);
2516
+ onClick();
2461
2517
  },
2462
2518
  className: className || (partial ? "suggestion loading" : "suggestion"),
2463
2519
  "data-test-id": "suggestion",
@@ -2536,8 +2592,6 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
2536
2592
  });
2537
2593
 
2538
2594
  // src/components/chat/Chat.tsx
2539
- var import_react13 = __toESM(require("react"));
2540
- var import_react_core10 = require("@copilotkit/react-core");
2541
2595
  var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
2542
2596
  var import_shared3 = require("@copilotkit/shared");
2543
2597
  var import_react_core11 = require("@copilotkit/react-core");
@@ -2620,8 +2674,24 @@ var ImageUploadQueue = ({
2620
2674
  );
2621
2675
  };
2622
2676
 
2623
- // src/components/chat/Chat.tsx
2677
+ // src/components/chat/Suggestions.tsx
2624
2678
  var import_jsx_runtime25 = require("react/jsx-runtime");
2679
+ function Suggestions({ suggestions, onSuggestionClick }) {
2680
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "suggestions", children: suggestions.map((suggestion, index) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2681
+ Suggestion,
2682
+ {
2683
+ title: suggestion.title,
2684
+ message: suggestion.message,
2685
+ partial: suggestion.partial,
2686
+ className: suggestion.className,
2687
+ onClick: () => onSuggestionClick(suggestion.message)
2688
+ },
2689
+ index
2690
+ )) });
2691
+ }
2692
+
2693
+ // src/components/chat/Chat.tsx
2694
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2625
2695
  function CopilotChat({
2626
2696
  instructions,
2627
2697
  onSubmitMessage,
@@ -2633,12 +2703,14 @@ function CopilotChat({
2633
2703
  onCopy,
2634
2704
  onThumbsUp,
2635
2705
  onThumbsDown,
2706
+ markdownTagRenderers,
2636
2707
  Messages: Messages2 = Messages,
2637
2708
  RenderTextMessage: RenderTextMessage2 = RenderTextMessage,
2638
2709
  RenderActionExecutionMessage: RenderActionExecutionMessage2 = RenderActionExecutionMessage,
2639
2710
  RenderAgentStateMessage: RenderAgentStateMessage2 = RenderAgentStateMessage,
2640
2711
  RenderResultMessage: RenderResultMessage2 = RenderResultMessage,
2641
2712
  RenderImageMessage: RenderImageMessage2 = RenderImageMessage,
2713
+ RenderSuggestionsList = Suggestions,
2642
2714
  Input: Input2 = Input,
2643
2715
  className,
2644
2716
  icons,
@@ -2778,8 +2850,8 @@ function CopilotChat({
2778
2850
  const removeSelectedImage = (index) => {
2779
2851
  setSelectedImages((prev) => prev.filter((_, i) => i !== index));
2780
2852
  };
2781
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
2782
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2853
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
2854
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2783
2855
  Messages2,
2784
2856
  {
2785
2857
  AssistantMessage: AssistantMessage2,
@@ -2795,22 +2867,19 @@ function CopilotChat({
2795
2867
  onCopy: handleCopy,
2796
2868
  onThumbsUp,
2797
2869
  onThumbsDown,
2798
- children: currentSuggestions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "suggestions", children: currentSuggestions.map((suggestion, index) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2799
- Suggestion,
2870
+ markdownTagRenderers,
2871
+ children: currentSuggestions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2872
+ RenderSuggestionsList,
2800
2873
  {
2801
- title: suggestion.title,
2802
- message: suggestion.message,
2803
- partial: suggestion.partial,
2804
- className: suggestion.className,
2805
- onClick: (message) => handleSendMessage(message)
2806
- },
2807
- index
2808
- )) })
2874
+ onSuggestionClick: handleSendMessage,
2875
+ suggestions: currentSuggestions
2876
+ }
2877
+ )
2809
2878
  }
2810
2879
  ),
2811
- imageUploadsEnabled && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
2812
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ImageUploadQueue, { images: selectedImages, onRemoveImage: removeSelectedImage }),
2813
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2880
+ imageUploadsEnabled && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
2881
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ImageUploadQueue, { images: selectedImages, onRemoveImage: removeSelectedImage }),
2882
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2814
2883
  "input",
2815
2884
  {
2816
2885
  type: "file",
@@ -2822,7 +2891,7 @@ function CopilotChat({
2822
2891
  }
2823
2892
  )
2824
2893
  ] }),
2825
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2894
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2826
2895
  Input2,
2827
2896
  {
2828
2897
  inProgress: isLoading,
@@ -2845,10 +2914,10 @@ function WrappedCopilotChat({
2845
2914
  }) {
2846
2915
  const chatContext = import_react13.default.useContext(ChatContext);
2847
2916
  if (!chatContext) {
2848
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChatContextProvider, { icons, labels, open: true, setOpen: () => {
2849
- }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `copilotKitChat ${className != null ? className : ""}`, children }) });
2917
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChatContextProvider, { icons, labels, open: true, setOpen: () => {
2918
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: `copilotKitChat ${className != null ? className : ""}`, children }) });
2850
2919
  }
2851
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children });
2920
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_jsx_runtime26.Fragment, { children });
2852
2921
  }
2853
2922
  var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
2854
2923
  var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) => {
@@ -3033,55 +3102,85 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
3033
3102
  };
3034
3103
 
3035
3104
  // src/components/chat/Modal.tsx
3036
- var import_jsx_runtime26 = require("react/jsx-runtime");
3037
- var CopilotModal = ({
3038
- instructions,
3039
- defaultOpen = false,
3040
- clickOutsideToClose = true,
3041
- hitEscapeToClose = true,
3042
- onSetOpen,
3043
- onSubmitMessage,
3044
- onStopGeneration,
3045
- onReloadMessages,
3046
- shortcut = "/",
3047
- icons,
3048
- labels,
3049
- makeSystemMessage,
3050
- onInProgress,
3051
- Window: Window2 = Window,
3052
- Button: Button2 = Button,
3053
- Header: Header2 = Header,
3054
- Messages: Messages2 = Messages,
3055
- Input: Input2 = Input,
3056
- AssistantMessage: AssistantMessage2 = AssistantMessage,
3057
- UserMessage: UserMessage2 = UserMessage,
3058
- onThumbsUp,
3059
- onThumbsDown,
3060
- onCopy,
3061
- onRegenerate,
3062
- className,
3063
- children
3064
- }) => {
3105
+ var import_jsx_runtime27 = require("react/jsx-runtime");
3106
+ var CopilotModal = (_a) => {
3107
+ var _b = _a, {
3108
+ instructions,
3109
+ defaultOpen = false,
3110
+ clickOutsideToClose = true,
3111
+ hitEscapeToClose = true,
3112
+ onSetOpen,
3113
+ onSubmitMessage,
3114
+ onStopGeneration,
3115
+ onReloadMessages,
3116
+ shortcut = "/",
3117
+ icons,
3118
+ labels,
3119
+ makeSystemMessage,
3120
+ onInProgress,
3121
+ Window: Window2 = Window,
3122
+ Button: Button2 = Button,
3123
+ Header: Header2 = Header,
3124
+ Messages: Messages2 = Messages,
3125
+ Input: Input2 = Input,
3126
+ AssistantMessage: AssistantMessage2 = AssistantMessage,
3127
+ UserMessage: UserMessage2 = UserMessage,
3128
+ onThumbsUp,
3129
+ onThumbsDown,
3130
+ onCopy,
3131
+ onRegenerate,
3132
+ markdownTagRenderers,
3133
+ className,
3134
+ children
3135
+ } = _b, props = __objRest(_b, [
3136
+ "instructions",
3137
+ "defaultOpen",
3138
+ "clickOutsideToClose",
3139
+ "hitEscapeToClose",
3140
+ "onSetOpen",
3141
+ "onSubmitMessage",
3142
+ "onStopGeneration",
3143
+ "onReloadMessages",
3144
+ "shortcut",
3145
+ "icons",
3146
+ "labels",
3147
+ "makeSystemMessage",
3148
+ "onInProgress",
3149
+ "Window",
3150
+ "Button",
3151
+ "Header",
3152
+ "Messages",
3153
+ "Input",
3154
+ "AssistantMessage",
3155
+ "UserMessage",
3156
+ "onThumbsUp",
3157
+ "onThumbsDown",
3158
+ "onCopy",
3159
+ "onRegenerate",
3160
+ "markdownTagRenderers",
3161
+ "className",
3162
+ "children"
3163
+ ]);
3065
3164
  const [openState, setOpenState] = import_react14.default.useState(defaultOpen);
3066
3165
  const setOpen = (open) => {
3067
3166
  onSetOpen == null ? void 0 : onSetOpen(open);
3068
3167
  setOpenState(open);
3069
3168
  };
3070
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
3169
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
3071
3170
  children,
3072
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className, children: [
3073
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Button2, {}),
3074
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3171
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className, children: [
3172
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button2, {}),
3173
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
3075
3174
  Window2,
3076
3175
  {
3077
3176
  clickOutsideToClose,
3078
3177
  shortcut,
3079
3178
  hitEscapeToClose,
3080
3179
  children: [
3081
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Header2, {}),
3082
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3180
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Header2, {}),
3181
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3083
3182
  CopilotChat,
3084
- {
3183
+ __spreadProps(__spreadValues({}, props), {
3085
3184
  instructions,
3086
3185
  onSubmitMessage,
3087
3186
  onStopGeneration,
@@ -3095,8 +3194,9 @@ var CopilotModal = ({
3095
3194
  onThumbsUp,
3096
3195
  onThumbsDown,
3097
3196
  onCopy,
3098
- onRegenerate
3099
- }
3197
+ onRegenerate,
3198
+ markdownTagRenderers
3199
+ })
3100
3200
  )
3101
3201
  ]
3102
3202
  }
@@ -3106,17 +3206,17 @@ var CopilotModal = ({
3106
3206
  };
3107
3207
 
3108
3208
  // src/components/chat/Popup.tsx
3109
- var import_jsx_runtime27 = require("react/jsx-runtime");
3209
+ var import_jsx_runtime28 = require("react/jsx-runtime");
3110
3210
  function CopilotPopup(props) {
3111
3211
  props = __spreadProps(__spreadValues({}, props), {
3112
3212
  className: props.className ? props.className + " copilotKitPopup" : "copilotKitPopup"
3113
3213
  });
3114
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CopilotModal, __spreadProps(__spreadValues({}, props), { children: props.children }));
3214
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(CopilotModal, __spreadProps(__spreadValues({}, props), { children: props.children }));
3115
3215
  }
3116
3216
 
3117
3217
  // src/components/chat/Sidebar.tsx
3118
3218
  var import_react15 = require("react");
3119
- var import_jsx_runtime28 = require("react/jsx-runtime");
3219
+ var import_jsx_runtime29 = require("react/jsx-runtime");
3120
3220
  function CopilotSidebar(props) {
3121
3221
  props = __spreadProps(__spreadValues({}, props), {
3122
3222
  className: props.className ? props.className + " copilotKitSidebar" : "copilotKitSidebar"
@@ -3129,7 +3229,7 @@ function CopilotSidebar(props) {
3129
3229
  (_a = props.onSetOpen) == null ? void 0 : _a.call(props, open);
3130
3230
  setExpandedClassName(open ? "sidebarExpanded" : "");
3131
3231
  };
3132
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: `copilotKitSidebarContentWrapper ${expandedClassName}`, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(CopilotModal, __spreadProps(__spreadValues(__spreadValues({}, props), { onSetOpen }), { children: props.children })) });
3232
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: `copilotKitSidebarContentWrapper ${expandedClassName}`, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CopilotModal, __spreadProps(__spreadValues(__spreadValues({}, props), { onSetOpen }), { children: props.children })) });
3133
3233
  }
3134
3234
  // Annotate the CommonJS export names for ESM import in node:
3135
3235
  0 && (module.exports = {
@@ -3140,6 +3240,8 @@ function CopilotSidebar(props) {
3140
3240
  CopilotSidebar,
3141
3241
  Markdown,
3142
3242
  RenderImageMessage,
3243
+ RenderSuggestion,
3244
+ RenderSuggestionsList,
3143
3245
  UserMessage,
3144
3246
  shouldShowDevConsole,
3145
3247
  useChatContext