@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
@@ -85,6 +85,8 @@ __export(chat_exports, {
85
85
  CopilotSidebar: () => CopilotSidebar,
86
86
  Markdown: () => Markdown,
87
87
  RenderImageMessage: () => RenderImageMessage,
88
+ RenderSuggestion: () => Suggestion,
89
+ RenderSuggestionsList: () => Suggestions,
88
90
  UserMessage: () => UserMessage,
89
91
  useChatContext: () => useChatContext
90
92
  });
@@ -1065,7 +1067,8 @@ var Messages = ({
1065
1067
  onRegenerate,
1066
1068
  onCopy,
1067
1069
  onThumbsUp,
1068
- onThumbsDown
1070
+ onThumbsDown,
1071
+ markdownTagRenderers
1069
1072
  }) => {
1070
1073
  const context = useChatContext();
1071
1074
  const initialMessages = (0, import_react6.useMemo)(
@@ -1104,7 +1107,8 @@ var Messages = ({
1104
1107
  onRegenerate,
1105
1108
  onCopy,
1106
1109
  onThumbsUp,
1107
- onThumbsDown
1110
+ onThumbsDown,
1111
+ markdownTagRenderers
1108
1112
  },
1109
1113
  index
1110
1114
  );
@@ -1933,31 +1937,17 @@ var highlightStyle = {
1933
1937
  // src/components/chat/Markdown.tsx
1934
1938
  var import_remark_gfm = __toESM(require("remark-gfm"));
1935
1939
  var import_remark_math = __toESM(require("remark-math"));
1940
+ var import_rehype_raw = __toESM(require("rehype-raw"));
1936
1941
  var import_jsx_runtime16 = require("react/jsx-runtime");
1937
- var MemoizedReactMarkdown = (0, import_react11.memo)(
1938
- import_react_markdown.default,
1939
- (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.className === nextProps.className
1940
- );
1941
- var Markdown = ({ content }) => {
1942
- 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 }) });
1943
- };
1944
- var components = {
1942
+ var defaultComponents = {
1945
1943
  a(_a) {
1946
1944
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1947
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1948
- "a",
1949
- __spreadProps(__spreadValues({
1950
- style: { color: "blue", textDecoration: "underline" }
1951
- }, props), {
1952
- target: "_blank",
1953
- rel: "noopener noreferrer",
1954
- children
1955
- })
1956
- );
1945
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("a", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { target: "_blank", rel: "noopener noreferrer", children }));
1957
1946
  },
1947
+ // @ts-expect-error -- inline
1958
1948
  code(_c) {
1959
1949
  var _d = _c, { children, className, inline } = _d, props = __objRest(_d, ["children", "className", "inline"]);
1960
- if (children.length) {
1950
+ if (Array.isArray(children) && children.length) {
1961
1951
  if (children[0] == "\u258D") {
1962
1952
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1963
1953
  "span",
@@ -1970,7 +1960,7 @@ var components = {
1970
1960
  }
1971
1961
  );
1972
1962
  }
1973
- children[0] = children[0].replace("`\u258D`", "\u258D");
1963
+ children[0] = (children == null ? void 0 : children[0]).replace("`\u258D`", "\u258D");
1974
1964
  }
1975
1965
  const match = /language-(\w+)/.exec(className || "");
1976
1966
  if (inline) {
@@ -1984,8 +1974,67 @@ var components = {
1984
1974
  }, props),
1985
1975
  Math.random()
1986
1976
  );
1977
+ },
1978
+ h1: (_e) => {
1979
+ var _f = _e, { children } = _f, props = __objRest(_f, ["children"]);
1980
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h1", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1981
+ },
1982
+ h2: (_g) => {
1983
+ var _h = _g, { children } = _h, props = __objRest(_h, ["children"]);
1984
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1985
+ },
1986
+ h3: (_i) => {
1987
+ var _j = _i, { children } = _j, props = __objRest(_j, ["children"]);
1988
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1989
+ },
1990
+ h4: (_k) => {
1991
+ var _l = _k, { children } = _l, props = __objRest(_l, ["children"]);
1992
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h4", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1993
+ },
1994
+ h5: (_m) => {
1995
+ var _n = _m, { children } = _n, props = __objRest(_n, ["children"]);
1996
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h5", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1997
+ },
1998
+ h6: (_o) => {
1999
+ var _p = _o, { children } = _p, props = __objRest(_p, ["children"]);
2000
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h6", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2001
+ },
2002
+ p: (_q) => {
2003
+ var _r = _q, { children } = _r, props = __objRest(_r, ["children"]);
2004
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2005
+ },
2006
+ pre: (_s) => {
2007
+ var _t = _s, { children } = _t, props = __objRest(_t, ["children"]);
2008
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("pre", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2009
+ },
2010
+ blockquote: (_u) => {
2011
+ var _v = _u, { children } = _v, props = __objRest(_v, ["children"]);
2012
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("blockquote", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2013
+ },
2014
+ ul: (_w) => {
2015
+ var _x = _w, { children } = _x, props = __objRest(_x, ["children"]);
2016
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("ul", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
2017
+ },
2018
+ li: (_y) => {
2019
+ var _z = _y, { children } = _z, props = __objRest(_z, ["children"]);
2020
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", __spreadProps(__spreadValues({ className: "copilotKitMarkdownElement" }, props), { children }));
1987
2021
  }
1988
2022
  };
2023
+ var MemoizedReactMarkdown = (0, import_react11.memo)(
2024
+ import_react_markdown.default,
2025
+ (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.components === nextProps.components
2026
+ );
2027
+ var Markdown = ({ content, components }) => {
2028
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "copilotKitMarkdown", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2029
+ MemoizedReactMarkdown,
2030
+ {
2031
+ components: __spreadValues(__spreadValues({}, defaultComponents), components),
2032
+ remarkPlugins: [import_remark_gfm.default, import_remark_math.default],
2033
+ rehypePlugins: [import_rehype_raw.default],
2034
+ children: content
2035
+ }
2036
+ ) });
2037
+ };
1989
2038
 
1990
2039
  // src/components/chat/messages/AssistantMessage.tsx
1991
2040
  var import_react12 = require("react");
@@ -2000,7 +2049,8 @@ var AssistantMessage = (props) => {
2000
2049
  onCopy,
2001
2050
  onThumbsUp,
2002
2051
  onThumbsDown,
2003
- isCurrentMessage
2052
+ isCurrentMessage,
2053
+ markdownTagRenderers
2004
2054
  } = props;
2005
2055
  const [copied, setCopied] = (0, import_react12.useState)(false);
2006
2056
  const handleCopy = () => {
@@ -2033,7 +2083,7 @@ var AssistantMessage = (props) => {
2033
2083
  const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: icons.activityIcon });
2034
2084
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
2035
2085
  (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
2036
- message && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Markdown, { content: message || "" }),
2086
+ message && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Markdown, { content: message || "", components: markdownTagRenderers }),
2037
2087
  isLoading && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LoadingIcon, {}),
2038
2088
  message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
2039
2089
  "div",
@@ -2106,7 +2156,8 @@ function RenderTextMessage(_a) {
2106
2156
  onRegenerate,
2107
2157
  onCopy,
2108
2158
  onThumbsUp,
2109
- onThumbsDown
2159
+ onThumbsDown,
2160
+ markdownTagRenderers
2110
2161
  } = props;
2111
2162
  if (message.isTextMessage()) {
2112
2163
  if (message.role === "user") {
@@ -2132,7 +2183,8 @@ function RenderTextMessage(_a) {
2132
2183
  onRegenerate: () => onRegenerate == null ? void 0 : onRegenerate(message.id),
2133
2184
  onCopy,
2134
2185
  onThumbsUp,
2135
- onThumbsDown
2186
+ onThumbsDown,
2187
+ markdownTagRenderers
2136
2188
  },
2137
2189
  index
2138
2190
  );
@@ -2443,19 +2495,23 @@ function RenderImageMessage(_a) {
2443
2495
  return null;
2444
2496
  }
2445
2497
 
2498
+ // src/components/chat/Chat.tsx
2499
+ var import_react13 = __toESM(require("react"));
2500
+ var import_react_core10 = require("@copilotkit/react-core");
2501
+
2446
2502
  // src/components/chat/Suggestion.tsx
2447
2503
  var import_react_core9 = require("@copilotkit/react-core");
2448
2504
  var import_shared2 = require("@copilotkit/shared");
2449
2505
  var import_runtime_client_gql3 = require("@copilotkit/runtime-client-gql");
2450
2506
  var import_jsx_runtime23 = require("react/jsx-runtime");
2451
- function Suggestion({ title, message, onClick, partial, className }) {
2507
+ function Suggestion({ title, onClick, partial, className }) {
2452
2508
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2453
2509
  "button",
2454
2510
  {
2455
2511
  disabled: partial,
2456
2512
  onClick: (e) => {
2457
2513
  e.preventDefault();
2458
- onClick(message);
2514
+ onClick();
2459
2515
  },
2460
2516
  className: className || (partial ? "suggestion loading" : "suggestion"),
2461
2517
  "data-test-id": "suggestion",
@@ -2534,8 +2590,6 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
2534
2590
  });
2535
2591
 
2536
2592
  // src/components/chat/Chat.tsx
2537
- var import_react13 = __toESM(require("react"));
2538
- var import_react_core10 = require("@copilotkit/react-core");
2539
2593
  var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
2540
2594
  var import_shared3 = require("@copilotkit/shared");
2541
2595
  var import_react_core11 = require("@copilotkit/react-core");
@@ -2618,8 +2672,24 @@ var ImageUploadQueue = ({
2618
2672
  );
2619
2673
  };
2620
2674
 
2621
- // src/components/chat/Chat.tsx
2675
+ // src/components/chat/Suggestions.tsx
2622
2676
  var import_jsx_runtime25 = require("react/jsx-runtime");
2677
+ function Suggestions({ suggestions, onSuggestionClick }) {
2678
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "suggestions", children: suggestions.map((suggestion, index) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2679
+ Suggestion,
2680
+ {
2681
+ title: suggestion.title,
2682
+ message: suggestion.message,
2683
+ partial: suggestion.partial,
2684
+ className: suggestion.className,
2685
+ onClick: () => onSuggestionClick(suggestion.message)
2686
+ },
2687
+ index
2688
+ )) });
2689
+ }
2690
+
2691
+ // src/components/chat/Chat.tsx
2692
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2623
2693
  function CopilotChat({
2624
2694
  instructions,
2625
2695
  onSubmitMessage,
@@ -2631,12 +2701,14 @@ function CopilotChat({
2631
2701
  onCopy,
2632
2702
  onThumbsUp,
2633
2703
  onThumbsDown,
2704
+ markdownTagRenderers,
2634
2705
  Messages: Messages2 = Messages,
2635
2706
  RenderTextMessage: RenderTextMessage2 = RenderTextMessage,
2636
2707
  RenderActionExecutionMessage: RenderActionExecutionMessage2 = RenderActionExecutionMessage,
2637
2708
  RenderAgentStateMessage: RenderAgentStateMessage2 = RenderAgentStateMessage,
2638
2709
  RenderResultMessage: RenderResultMessage2 = RenderResultMessage,
2639
2710
  RenderImageMessage: RenderImageMessage2 = RenderImageMessage,
2711
+ RenderSuggestionsList = Suggestions,
2640
2712
  Input: Input2 = Input,
2641
2713
  className,
2642
2714
  icons,
@@ -2776,8 +2848,8 @@ function CopilotChat({
2776
2848
  const removeSelectedImage = (index) => {
2777
2849
  setSelectedImages((prev) => prev.filter((_, i) => i !== index));
2778
2850
  };
2779
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
2780
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2851
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
2852
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2781
2853
  Messages2,
2782
2854
  {
2783
2855
  AssistantMessage: AssistantMessage2,
@@ -2793,22 +2865,19 @@ function CopilotChat({
2793
2865
  onCopy: handleCopy,
2794
2866
  onThumbsUp,
2795
2867
  onThumbsDown,
2796
- children: currentSuggestions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "suggestions", children: currentSuggestions.map((suggestion, index) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2797
- Suggestion,
2868
+ markdownTagRenderers,
2869
+ children: currentSuggestions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2870
+ RenderSuggestionsList,
2798
2871
  {
2799
- title: suggestion.title,
2800
- message: suggestion.message,
2801
- partial: suggestion.partial,
2802
- className: suggestion.className,
2803
- onClick: (message) => handleSendMessage(message)
2804
- },
2805
- index
2806
- )) })
2872
+ onSuggestionClick: handleSendMessage,
2873
+ suggestions: currentSuggestions
2874
+ }
2875
+ )
2807
2876
  }
2808
2877
  ),
2809
- imageUploadsEnabled && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
2810
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ImageUploadQueue, { images: selectedImages, onRemoveImage: removeSelectedImage }),
2811
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2878
+ imageUploadsEnabled && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
2879
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ImageUploadQueue, { images: selectedImages, onRemoveImage: removeSelectedImage }),
2880
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2812
2881
  "input",
2813
2882
  {
2814
2883
  type: "file",
@@ -2820,7 +2889,7 @@ function CopilotChat({
2820
2889
  }
2821
2890
  )
2822
2891
  ] }),
2823
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2892
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2824
2893
  Input2,
2825
2894
  {
2826
2895
  inProgress: isLoading,
@@ -2843,10 +2912,10 @@ function WrappedCopilotChat({
2843
2912
  }) {
2844
2913
  const chatContext = import_react13.default.useContext(ChatContext);
2845
2914
  if (!chatContext) {
2846
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChatContextProvider, { icons, labels, open: true, setOpen: () => {
2847
- }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `copilotKitChat ${className != null ? className : ""}`, children }) });
2915
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChatContextProvider, { icons, labels, open: true, setOpen: () => {
2916
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: `copilotKitChat ${className != null ? className : ""}`, children }) });
2848
2917
  }
2849
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children });
2918
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_jsx_runtime26.Fragment, { children });
2850
2919
  }
2851
2920
  var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
2852
2921
  var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) => {
@@ -3031,55 +3100,85 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
3031
3100
  };
3032
3101
 
3033
3102
  // src/components/chat/Modal.tsx
3034
- var import_jsx_runtime26 = require("react/jsx-runtime");
3035
- var CopilotModal = ({
3036
- instructions,
3037
- defaultOpen = false,
3038
- clickOutsideToClose = true,
3039
- hitEscapeToClose = true,
3040
- onSetOpen,
3041
- onSubmitMessage,
3042
- onStopGeneration,
3043
- onReloadMessages,
3044
- shortcut = "/",
3045
- icons,
3046
- labels,
3047
- makeSystemMessage,
3048
- onInProgress,
3049
- Window: Window2 = Window,
3050
- Button: Button2 = Button,
3051
- Header: Header2 = Header,
3052
- Messages: Messages2 = Messages,
3053
- Input: Input2 = Input,
3054
- AssistantMessage: AssistantMessage2 = AssistantMessage,
3055
- UserMessage: UserMessage2 = UserMessage,
3056
- onThumbsUp,
3057
- onThumbsDown,
3058
- onCopy,
3059
- onRegenerate,
3060
- className,
3061
- children
3062
- }) => {
3103
+ var import_jsx_runtime27 = require("react/jsx-runtime");
3104
+ var CopilotModal = (_a) => {
3105
+ var _b = _a, {
3106
+ instructions,
3107
+ defaultOpen = false,
3108
+ clickOutsideToClose = true,
3109
+ hitEscapeToClose = true,
3110
+ onSetOpen,
3111
+ onSubmitMessage,
3112
+ onStopGeneration,
3113
+ onReloadMessages,
3114
+ shortcut = "/",
3115
+ icons,
3116
+ labels,
3117
+ makeSystemMessage,
3118
+ onInProgress,
3119
+ Window: Window2 = Window,
3120
+ Button: Button2 = Button,
3121
+ Header: Header2 = Header,
3122
+ Messages: Messages2 = Messages,
3123
+ Input: Input2 = Input,
3124
+ AssistantMessage: AssistantMessage2 = AssistantMessage,
3125
+ UserMessage: UserMessage2 = UserMessage,
3126
+ onThumbsUp,
3127
+ onThumbsDown,
3128
+ onCopy,
3129
+ onRegenerate,
3130
+ markdownTagRenderers,
3131
+ className,
3132
+ children
3133
+ } = _b, props = __objRest(_b, [
3134
+ "instructions",
3135
+ "defaultOpen",
3136
+ "clickOutsideToClose",
3137
+ "hitEscapeToClose",
3138
+ "onSetOpen",
3139
+ "onSubmitMessage",
3140
+ "onStopGeneration",
3141
+ "onReloadMessages",
3142
+ "shortcut",
3143
+ "icons",
3144
+ "labels",
3145
+ "makeSystemMessage",
3146
+ "onInProgress",
3147
+ "Window",
3148
+ "Button",
3149
+ "Header",
3150
+ "Messages",
3151
+ "Input",
3152
+ "AssistantMessage",
3153
+ "UserMessage",
3154
+ "onThumbsUp",
3155
+ "onThumbsDown",
3156
+ "onCopy",
3157
+ "onRegenerate",
3158
+ "markdownTagRenderers",
3159
+ "className",
3160
+ "children"
3161
+ ]);
3063
3162
  const [openState, setOpenState] = import_react14.default.useState(defaultOpen);
3064
3163
  const setOpen = (open) => {
3065
3164
  onSetOpen == null ? void 0 : onSetOpen(open);
3066
3165
  setOpenState(open);
3067
3166
  };
3068
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
3167
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
3069
3168
  children,
3070
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className, children: [
3071
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Button2, {}),
3072
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3169
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className, children: [
3170
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button2, {}),
3171
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
3073
3172
  Window2,
3074
3173
  {
3075
3174
  clickOutsideToClose,
3076
3175
  shortcut,
3077
3176
  hitEscapeToClose,
3078
3177
  children: [
3079
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Header2, {}),
3080
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3178
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Header2, {}),
3179
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3081
3180
  CopilotChat,
3082
- {
3181
+ __spreadProps(__spreadValues({}, props), {
3083
3182
  instructions,
3084
3183
  onSubmitMessage,
3085
3184
  onStopGeneration,
@@ -3093,8 +3192,9 @@ var CopilotModal = ({
3093
3192
  onThumbsUp,
3094
3193
  onThumbsDown,
3095
3194
  onCopy,
3096
- onRegenerate
3097
- }
3195
+ onRegenerate,
3196
+ markdownTagRenderers
3197
+ })
3098
3198
  )
3099
3199
  ]
3100
3200
  }
@@ -3104,17 +3204,17 @@ var CopilotModal = ({
3104
3204
  };
3105
3205
 
3106
3206
  // src/components/chat/Popup.tsx
3107
- var import_jsx_runtime27 = require("react/jsx-runtime");
3207
+ var import_jsx_runtime28 = require("react/jsx-runtime");
3108
3208
  function CopilotPopup(props) {
3109
3209
  props = __spreadProps(__spreadValues({}, props), {
3110
3210
  className: props.className ? props.className + " copilotKitPopup" : "copilotKitPopup"
3111
3211
  });
3112
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CopilotModal, __spreadProps(__spreadValues({}, props), { children: props.children }));
3212
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(CopilotModal, __spreadProps(__spreadValues({}, props), { children: props.children }));
3113
3213
  }
3114
3214
 
3115
3215
  // src/components/chat/Sidebar.tsx
3116
3216
  var import_react15 = require("react");
3117
- var import_jsx_runtime28 = require("react/jsx-runtime");
3217
+ var import_jsx_runtime29 = require("react/jsx-runtime");
3118
3218
  function CopilotSidebar(props) {
3119
3219
  props = __spreadProps(__spreadValues({}, props), {
3120
3220
  className: props.className ? props.className + " copilotKitSidebar" : "copilotKitSidebar"
@@ -3127,7 +3227,7 @@ function CopilotSidebar(props) {
3127
3227
  (_a = props.onSetOpen) == null ? void 0 : _a.call(props, open);
3128
3228
  setExpandedClassName(open ? "sidebarExpanded" : "");
3129
3229
  };
3130
- 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 })) });
3230
+ 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 })) });
3131
3231
  }
3132
3232
  // Annotate the CommonJS export names for ESM import in node:
3133
3233
  0 && (module.exports = {
@@ -3137,6 +3237,8 @@ function CopilotSidebar(props) {
3137
3237
  CopilotSidebar,
3138
3238
  Markdown,
3139
3239
  RenderImageMessage,
3240
+ RenderSuggestion,
3241
+ RenderSuggestionsList,
3140
3242
  UserMessage,
3141
3243
  useChatContext
3142
3244
  });