@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
package/dist/index.js CHANGED
@@ -87,6 +87,8 @@ __export(src_exports, {
87
87
  CopilotSidebar: () => CopilotSidebar,
88
88
  Markdown: () => Markdown,
89
89
  RenderImageMessage: () => RenderImageMessage,
90
+ RenderSuggestion: () => Suggestion,
91
+ RenderSuggestionsList: () => Suggestions,
90
92
  UserMessage: () => UserMessage,
91
93
  shouldShowDevConsole: () => shouldShowDevConsole,
92
94
  useChatContext: () => useChatContext,
@@ -1069,7 +1071,8 @@ var Messages = ({
1069
1071
  onRegenerate,
1070
1072
  onCopy,
1071
1073
  onThumbsUp,
1072
- onThumbsDown
1074
+ onThumbsDown,
1075
+ markdownTagRenderers
1073
1076
  }) => {
1074
1077
  const context = useChatContext();
1075
1078
  const initialMessages = (0, import_react6.useMemo)(
@@ -1108,7 +1111,8 @@ var Messages = ({
1108
1111
  onRegenerate,
1109
1112
  onCopy,
1110
1113
  onThumbsUp,
1111
- onThumbsDown
1114
+ onThumbsDown,
1115
+ markdownTagRenderers
1112
1116
  },
1113
1117
  index
1114
1118
  );
@@ -1937,31 +1941,17 @@ var highlightStyle = {
1937
1941
  // src/components/chat/Markdown.tsx
1938
1942
  var import_remark_gfm = __toESM(require("remark-gfm"));
1939
1943
  var import_remark_math = __toESM(require("remark-math"));
1944
+ var import_rehype_raw = __toESM(require("rehype-raw"));
1940
1945
  var import_jsx_runtime16 = require("react/jsx-runtime");
1941
- var MemoizedReactMarkdown = (0, import_react11.memo)(
1942
- import_react_markdown.default,
1943
- (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.className === nextProps.className
1944
- );
1945
- var Markdown = ({ content }) => {
1946
- 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 }) });
1947
- };
1948
- var components = {
1946
+ var defaultComponents = {
1949
1947
  a(_a) {
1950
1948
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1951
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1952
- "a",
1953
- __spreadProps(__spreadValues({
1954
- style: { color: "blue", textDecoration: "underline" }
1955
- }, props), {
1956
- target: "_blank",
1957
- rel: "noopener noreferrer",
1958
- children
1959
- })
1960
- );
1949
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("a", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { target: "_blank", rel: "noopener noreferrer", children }));
1961
1950
  },
1951
+ // @ts-expect-error -- inline
1962
1952
  code(_c) {
1963
1953
  var _d = _c, { children, className, inline } = _d, props = __objRest(_d, ["children", "className", "inline"]);
1964
- if (children.length) {
1954
+ if (Array.isArray(children) && children.length) {
1965
1955
  if (children[0] == "\u258D") {
1966
1956
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1967
1957
  "span",
@@ -1974,7 +1964,7 @@ var components = {
1974
1964
  }
1975
1965
  );
1976
1966
  }
1977
- children[0] = children[0].replace("`\u258D`", "\u258D");
1967
+ children[0] = (children == null ? void 0 : children[0]).replace("`\u258D`", "\u258D");
1978
1968
  }
1979
1969
  const match = /language-(\w+)/.exec(className || "");
1980
1970
  if (inline) {
@@ -1988,8 +1978,67 @@ var components = {
1988
1978
  }, props),
1989
1979
  Math.random()
1990
1980
  );
1981
+ },
1982
+ h1: (_e) => {
1983
+ var _f = _e, { children } = _f, props = __objRest(_f, ["children"]);
1984
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h1", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1985
+ },
1986
+ h2: (_g) => {
1987
+ var _h = _g, { children } = _h, props = __objRest(_h, ["children"]);
1988
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1989
+ },
1990
+ h3: (_i) => {
1991
+ var _j = _i, { children } = _j, props = __objRest(_j, ["children"]);
1992
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1993
+ },
1994
+ h4: (_k) => {
1995
+ var _l = _k, { children } = _l, props = __objRest(_l, ["children"]);
1996
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h4", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1997
+ },
1998
+ h5: (_m) => {
1999
+ var _n = _m, { children } = _n, props = __objRest(_n, ["children"]);
2000
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h5", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2001
+ },
2002
+ h6: (_o) => {
2003
+ var _p = _o, { children } = _p, props = __objRest(_p, ["children"]);
2004
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h6", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2005
+ },
2006
+ p: (_q) => {
2007
+ var _r = _q, { children } = _r, props = __objRest(_r, ["children"]);
2008
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2009
+ },
2010
+ pre: (_s) => {
2011
+ var _t = _s, { children } = _t, props = __objRest(_t, ["children"]);
2012
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("pre", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2013
+ },
2014
+ blockquote: (_u) => {
2015
+ var _v = _u, { children } = _v, props = __objRest(_v, ["children"]);
2016
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("blockquote", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2017
+ },
2018
+ ul: (_w) => {
2019
+ var _x = _w, { children } = _x, props = __objRest(_x, ["children"]);
2020
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("ul", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2021
+ },
2022
+ li: (_y) => {
2023
+ var _z = _y, { children } = _z, props = __objRest(_z, ["children"]);
2024
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1991
2025
  }
1992
2026
  };
2027
+ var MemoizedReactMarkdown = (0, import_react11.memo)(
2028
+ import_react_markdown.default,
2029
+ (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.components === nextProps.components
2030
+ );
2031
+ var Markdown = ({ content, components }) => {
2032
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "copilotKitMarkdown", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2033
+ MemoizedReactMarkdown,
2034
+ {
2035
+ components: __spreadValues(__spreadValues({}, defaultComponents), components),
2036
+ remarkPlugins: [import_remark_gfm.default, import_remark_math.default],
2037
+ rehypePlugins: [import_rehype_raw.default],
2038
+ children: content
2039
+ }
2040
+ ) });
2041
+ };
1993
2042
 
1994
2043
  // src/components/chat/messages/AssistantMessage.tsx
1995
2044
  var import_react12 = require("react");
@@ -2004,7 +2053,8 @@ var AssistantMessage = (props) => {
2004
2053
  onCopy,
2005
2054
  onThumbsUp,
2006
2055
  onThumbsDown,
2007
- isCurrentMessage
2056
+ isCurrentMessage,
2057
+ markdownTagRenderers
2008
2058
  } = props;
2009
2059
  const [copied, setCopied] = (0, import_react12.useState)(false);
2010
2060
  const handleCopy = () => {
@@ -2037,7 +2087,7 @@ var AssistantMessage = (props) => {
2037
2087
  const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: icons.activityIcon });
2038
2088
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
2039
2089
  (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
2040
- message && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Markdown, { content: message || "" }),
2090
+ message && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Markdown, { content: message || "", components: markdownTagRenderers }),
2041
2091
  isLoading && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LoadingIcon, {}),
2042
2092
  message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
2043
2093
  "div",
@@ -2110,7 +2160,8 @@ function RenderTextMessage(_a) {
2110
2160
  onRegenerate,
2111
2161
  onCopy,
2112
2162
  onThumbsUp,
2113
- onThumbsDown
2163
+ onThumbsDown,
2164
+ markdownTagRenderers
2114
2165
  } = props;
2115
2166
  if (message.isTextMessage()) {
2116
2167
  if (message.role === "user") {
@@ -2136,7 +2187,8 @@ function RenderTextMessage(_a) {
2136
2187
  onRegenerate: () => onRegenerate == null ? void 0 : onRegenerate(message.id),
2137
2188
  onCopy,
2138
2189
  onThumbsUp,
2139
- onThumbsDown
2190
+ onThumbsDown,
2191
+ markdownTagRenderers
2140
2192
  },
2141
2193
  index
2142
2194
  );
@@ -2447,19 +2499,23 @@ function RenderImageMessage(_a) {
2447
2499
  return null;
2448
2500
  }
2449
2501
 
2502
+ // src/components/chat/Chat.tsx
2503
+ var import_react13 = __toESM(require("react"));
2504
+ var import_react_core10 = require("@copilotkit/react-core");
2505
+
2450
2506
  // src/components/chat/Suggestion.tsx
2451
2507
  var import_react_core9 = require("@copilotkit/react-core");
2452
2508
  var import_shared2 = require("@copilotkit/shared");
2453
2509
  var import_runtime_client_gql3 = require("@copilotkit/runtime-client-gql");
2454
2510
  var import_jsx_runtime23 = require("react/jsx-runtime");
2455
- function Suggestion({ title, message, onClick, partial, className }) {
2511
+ function Suggestion({ title, onClick, partial, className }) {
2456
2512
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2457
2513
  "button",
2458
2514
  {
2459
2515
  disabled: partial,
2460
2516
  onClick: (e) => {
2461
2517
  e.preventDefault();
2462
- onClick(message);
2518
+ onClick();
2463
2519
  },
2464
2520
  className: className || (partial ? "suggestion loading" : "suggestion"),
2465
2521
  "data-test-id": "suggestion",
@@ -2538,8 +2594,6 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
2538
2594
  });
2539
2595
 
2540
2596
  // src/components/chat/Chat.tsx
2541
- var import_react13 = __toESM(require("react"));
2542
- var import_react_core10 = require("@copilotkit/react-core");
2543
2597
  var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
2544
2598
  var import_shared3 = require("@copilotkit/shared");
2545
2599
  var import_react_core11 = require("@copilotkit/react-core");
@@ -2622,8 +2676,24 @@ var ImageUploadQueue = ({
2622
2676
  );
2623
2677
  };
2624
2678
 
2625
- // src/components/chat/Chat.tsx
2679
+ // src/components/chat/Suggestions.tsx
2626
2680
  var import_jsx_runtime25 = require("react/jsx-runtime");
2681
+ function Suggestions({ suggestions, onSuggestionClick }) {
2682
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "suggestions", children: suggestions.map((suggestion, index) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2683
+ Suggestion,
2684
+ {
2685
+ title: suggestion.title,
2686
+ message: suggestion.message,
2687
+ partial: suggestion.partial,
2688
+ className: suggestion.className,
2689
+ onClick: () => onSuggestionClick(suggestion.message)
2690
+ },
2691
+ index
2692
+ )) });
2693
+ }
2694
+
2695
+ // src/components/chat/Chat.tsx
2696
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2627
2697
  function CopilotChat({
2628
2698
  instructions,
2629
2699
  onSubmitMessage,
@@ -2635,12 +2705,14 @@ function CopilotChat({
2635
2705
  onCopy,
2636
2706
  onThumbsUp,
2637
2707
  onThumbsDown,
2708
+ markdownTagRenderers,
2638
2709
  Messages: Messages2 = Messages,
2639
2710
  RenderTextMessage: RenderTextMessage2 = RenderTextMessage,
2640
2711
  RenderActionExecutionMessage: RenderActionExecutionMessage2 = RenderActionExecutionMessage,
2641
2712
  RenderAgentStateMessage: RenderAgentStateMessage2 = RenderAgentStateMessage,
2642
2713
  RenderResultMessage: RenderResultMessage2 = RenderResultMessage,
2643
2714
  RenderImageMessage: RenderImageMessage2 = RenderImageMessage,
2715
+ RenderSuggestionsList = Suggestions,
2644
2716
  Input: Input2 = Input,
2645
2717
  className,
2646
2718
  icons,
@@ -2780,8 +2852,8 @@ function CopilotChat({
2780
2852
  const removeSelectedImage = (index) => {
2781
2853
  setSelectedImages((prev) => prev.filter((_, i) => i !== index));
2782
2854
  };
2783
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
2784
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2855
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
2856
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2785
2857
  Messages2,
2786
2858
  {
2787
2859
  AssistantMessage: AssistantMessage2,
@@ -2797,22 +2869,19 @@ function CopilotChat({
2797
2869
  onCopy: handleCopy,
2798
2870
  onThumbsUp,
2799
2871
  onThumbsDown,
2800
- children: currentSuggestions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "suggestions", children: currentSuggestions.map((suggestion, index) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2801
- Suggestion,
2872
+ markdownTagRenderers,
2873
+ children: currentSuggestions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2874
+ RenderSuggestionsList,
2802
2875
  {
2803
- title: suggestion.title,
2804
- message: suggestion.message,
2805
- partial: suggestion.partial,
2806
- className: suggestion.className,
2807
- onClick: (message) => handleSendMessage(message)
2808
- },
2809
- index
2810
- )) })
2876
+ onSuggestionClick: handleSendMessage,
2877
+ suggestions: currentSuggestions
2878
+ }
2879
+ )
2811
2880
  }
2812
2881
  ),
2813
- imageUploadsEnabled && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
2814
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ImageUploadQueue, { images: selectedImages, onRemoveImage: removeSelectedImage }),
2815
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2882
+ imageUploadsEnabled && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
2883
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ImageUploadQueue, { images: selectedImages, onRemoveImage: removeSelectedImage }),
2884
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2816
2885
  "input",
2817
2886
  {
2818
2887
  type: "file",
@@ -2824,7 +2893,7 @@ function CopilotChat({
2824
2893
  }
2825
2894
  )
2826
2895
  ] }),
2827
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2896
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2828
2897
  Input2,
2829
2898
  {
2830
2899
  inProgress: isLoading,
@@ -2847,10 +2916,10 @@ function WrappedCopilotChat({
2847
2916
  }) {
2848
2917
  const chatContext = import_react13.default.useContext(ChatContext);
2849
2918
  if (!chatContext) {
2850
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChatContextProvider, { icons, labels, open: true, setOpen: () => {
2851
- }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `copilotKitChat ${className != null ? className : ""}`, children }) });
2919
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChatContextProvider, { icons, labels, open: true, setOpen: () => {
2920
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: `copilotKitChat ${className != null ? className : ""}`, children }) });
2852
2921
  }
2853
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children });
2922
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_jsx_runtime26.Fragment, { children });
2854
2923
  }
2855
2924
  var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
2856
2925
  var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) => {
@@ -3035,55 +3104,85 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
3035
3104
  };
3036
3105
 
3037
3106
  // src/components/chat/Modal.tsx
3038
- var import_jsx_runtime26 = require("react/jsx-runtime");
3039
- var CopilotModal = ({
3040
- instructions,
3041
- defaultOpen = false,
3042
- clickOutsideToClose = true,
3043
- hitEscapeToClose = true,
3044
- onSetOpen,
3045
- onSubmitMessage,
3046
- onStopGeneration,
3047
- onReloadMessages,
3048
- shortcut = "/",
3049
- icons,
3050
- labels,
3051
- makeSystemMessage,
3052
- onInProgress,
3053
- Window: Window2 = Window,
3054
- Button: Button2 = Button,
3055
- Header: Header2 = Header,
3056
- Messages: Messages2 = Messages,
3057
- Input: Input2 = Input,
3058
- AssistantMessage: AssistantMessage2 = AssistantMessage,
3059
- UserMessage: UserMessage2 = UserMessage,
3060
- onThumbsUp,
3061
- onThumbsDown,
3062
- onCopy,
3063
- onRegenerate,
3064
- className,
3065
- children
3066
- }) => {
3107
+ var import_jsx_runtime27 = require("react/jsx-runtime");
3108
+ var CopilotModal = (_a) => {
3109
+ var _b = _a, {
3110
+ instructions,
3111
+ defaultOpen = false,
3112
+ clickOutsideToClose = true,
3113
+ hitEscapeToClose = true,
3114
+ onSetOpen,
3115
+ onSubmitMessage,
3116
+ onStopGeneration,
3117
+ onReloadMessages,
3118
+ shortcut = "/",
3119
+ icons,
3120
+ labels,
3121
+ makeSystemMessage,
3122
+ onInProgress,
3123
+ Window: Window2 = Window,
3124
+ Button: Button2 = Button,
3125
+ Header: Header2 = Header,
3126
+ Messages: Messages2 = Messages,
3127
+ Input: Input2 = Input,
3128
+ AssistantMessage: AssistantMessage2 = AssistantMessage,
3129
+ UserMessage: UserMessage2 = UserMessage,
3130
+ onThumbsUp,
3131
+ onThumbsDown,
3132
+ onCopy,
3133
+ onRegenerate,
3134
+ markdownTagRenderers,
3135
+ className,
3136
+ children
3137
+ } = _b, props = __objRest(_b, [
3138
+ "instructions",
3139
+ "defaultOpen",
3140
+ "clickOutsideToClose",
3141
+ "hitEscapeToClose",
3142
+ "onSetOpen",
3143
+ "onSubmitMessage",
3144
+ "onStopGeneration",
3145
+ "onReloadMessages",
3146
+ "shortcut",
3147
+ "icons",
3148
+ "labels",
3149
+ "makeSystemMessage",
3150
+ "onInProgress",
3151
+ "Window",
3152
+ "Button",
3153
+ "Header",
3154
+ "Messages",
3155
+ "Input",
3156
+ "AssistantMessage",
3157
+ "UserMessage",
3158
+ "onThumbsUp",
3159
+ "onThumbsDown",
3160
+ "onCopy",
3161
+ "onRegenerate",
3162
+ "markdownTagRenderers",
3163
+ "className",
3164
+ "children"
3165
+ ]);
3067
3166
  const [openState, setOpenState] = import_react14.default.useState(defaultOpen);
3068
3167
  const setOpen = (open) => {
3069
3168
  onSetOpen == null ? void 0 : onSetOpen(open);
3070
3169
  setOpenState(open);
3071
3170
  };
3072
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
3171
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
3073
3172
  children,
3074
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className, children: [
3075
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Button2, {}),
3076
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3173
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className, children: [
3174
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button2, {}),
3175
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
3077
3176
  Window2,
3078
3177
  {
3079
3178
  clickOutsideToClose,
3080
3179
  shortcut,
3081
3180
  hitEscapeToClose,
3082
3181
  children: [
3083
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Header2, {}),
3084
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3182
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Header2, {}),
3183
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3085
3184
  CopilotChat,
3086
- {
3185
+ __spreadProps(__spreadValues({}, props), {
3087
3186
  instructions,
3088
3187
  onSubmitMessage,
3089
3188
  onStopGeneration,
@@ -3097,8 +3196,9 @@ var CopilotModal = ({
3097
3196
  onThumbsUp,
3098
3197
  onThumbsDown,
3099
3198
  onCopy,
3100
- onRegenerate
3101
- }
3199
+ onRegenerate,
3200
+ markdownTagRenderers
3201
+ })
3102
3202
  )
3103
3203
  ]
3104
3204
  }
@@ -3108,17 +3208,17 @@ var CopilotModal = ({
3108
3208
  };
3109
3209
 
3110
3210
  // src/components/chat/Popup.tsx
3111
- var import_jsx_runtime27 = require("react/jsx-runtime");
3211
+ var import_jsx_runtime28 = require("react/jsx-runtime");
3112
3212
  function CopilotPopup(props) {
3113
3213
  props = __spreadProps(__spreadValues({}, props), {
3114
3214
  className: props.className ? props.className + " copilotKitPopup" : "copilotKitPopup"
3115
3215
  });
3116
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CopilotModal, __spreadProps(__spreadValues({}, props), { children: props.children }));
3216
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(CopilotModal, __spreadProps(__spreadValues({}, props), { children: props.children }));
3117
3217
  }
3118
3218
 
3119
3219
  // src/components/chat/Sidebar.tsx
3120
3220
  var import_react15 = require("react");
3121
- var import_jsx_runtime28 = require("react/jsx-runtime");
3221
+ var import_jsx_runtime29 = require("react/jsx-runtime");
3122
3222
  function CopilotSidebar(props) {
3123
3223
  props = __spreadProps(__spreadValues({}, props), {
3124
3224
  className: props.className ? props.className + " copilotKitSidebar" : "copilotKitSidebar"
@@ -3131,7 +3231,7 @@ function CopilotSidebar(props) {
3131
3231
  (_a = props.onSetOpen) == null ? void 0 : _a.call(props, open);
3132
3232
  setExpandedClassName(open ? "sidebarExpanded" : "");
3133
3233
  };
3134
- 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 })) });
3234
+ 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 })) });
3135
3235
  }
3136
3236
 
3137
3237
  // src/hooks/use-copilot-chat-suggestions.tsx
@@ -3170,6 +3270,8 @@ function useCopilotChatSuggestions({
3170
3270
  CopilotSidebar,
3171
3271
  Markdown,
3172
3272
  RenderImageMessage,
3273
+ RenderSuggestion,
3274
+ RenderSuggestionsList,
3173
3275
  UserMessage,
3174
3276
  shouldShowDevConsole,
3175
3277
  useChatContext,