@messenger-box/tailwind-ui-inbox 10.0.3-alpha.207 → 10.0.3-alpha.211

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.0.3-alpha.211](https://github.com/cdmbase/messenger-box/compare/v10.0.3-alpha.210...v10.0.3-alpha.211) (2026-04-17)
7
+
8
+ **Note:** Version bump only for package @messenger-box/tailwind-ui-inbox
9
+
10
+ ## [10.0.3-alpha.208](https://github.com/CDEBase/messenger-box/compare/v10.0.3-alpha.207...v10.0.3-alpha.208) (2026-04-10)
11
+
12
+ **Note:** Version bump only for package @messenger-box/tailwind-ui-inbox
13
+
6
14
  ## [10.0.3-alpha.207](https://github.com/CDEBase/messenger-box/compare/v10.0.3-alpha.206...v10.0.3-alpha.207) (2026-04-10)
7
15
 
8
16
  **Note:** Version bump only for package @messenger-box/tailwind-ui-inbox
@@ -18,11 +18,24 @@ interface ModernMessageGroupProps {
18
18
  showCopyDownloadOnCodeBlock?: boolean;
19
19
  }
20
20
  export declare const groupMessagesByUserAndTime: (messages: IPost[], timeThresholdMinutes?: number) => IPost[][];
21
+ export declare const detectContentType: (value: string) => "html" | "markdown" | "code" | "text";
22
+ export declare const CodeFormatter: React.FC<{
23
+ content: string;
24
+ showCopyDownload?: boolean;
25
+ variant?: 'default' | 'user';
26
+ /** When variant is `user`, use primary-foreground only on plan-mode bubbles (bg-primary). */
27
+ planMode?: boolean;
28
+ }>;
21
29
  export declare const FormattedMessageContent: React.FC<{
22
30
  content: string;
23
31
  variant?: 'default' | 'user';
24
32
  /** When variant is `user`, use primary-foreground only on plan-mode bubbles (bg-primary). */
25
33
  planMode?: boolean;
34
+ /**
35
+ * When true, fenced code blocks use the same copy/download UI as elsewhere.
36
+ * Implemented via react-markdown (safe) instead of raw HTML from marked.
37
+ */
38
+ showCopyDownloadOnCodeBlock?: boolean;
26
39
  }>;
27
40
  export declare const ModernMessageGroupComponent: React.FC<ModernMessageGroupProps>;
28
41
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ModernMessageGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/InboxMessage/message-widgets/ModernMessageGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAsB,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AA4b9D,UAAU,uBAAuB;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,iGAAiG;IACjG,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAiBD,eAAO,MAAM,0BAA0B,GAAI,UAAU,KAAK,EAAE,EAAE,6BAAwB,KAAG,KAAK,EAAE,EAgC/F,CAAC;AA6aF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAoGA,CAAC;AAqeF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA0DzE,CAAC"}
1
+ {"version":3,"file":"ModernMessageGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/InboxMessage/message-widgets/ModernMessageGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAsB,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AA8b9D,UAAU,uBAAuB;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,iGAAiG;IACjG,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAiBD,eAAO,MAAM,0BAA0B,GAAI,UAAU,KAAK,EAAE,EAAE,6BAAwB,KAAG,KAAK,EAAE,EAgC/F,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAyDhF,CAAC;AAwVF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAkEA,CAAC;AAGF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC,CAqLA,CAAC;AA2eF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA0DzE,CAAC"}
@@ -1,4 +1,4 @@
1
- import React__default,{useEffect,useMemo}from'react';import {format,differenceInMinutes}from'date-fns';import {AiAgentMessageRole}from'common';import {Slot}from'@common-stack/components-pro';import {MessengerSlotFillNameEnum}from'../../../enums/messenger-slot-fill-name-enum.js';import {FilesList}from'../../inbox/FilesList.js';import'../../inbox/MessageItem.js';import'../../inbox/ThreadItem.js';import {ErrorFixCard}from'./ErrorFixCard.js';import {marked}from'marked';// Configure marked for better markdown rendering
1
+ import React__default,{useEffect,useMemo}from'react';import {format,differenceInMinutes}from'date-fns';import {AiAgentMessageRole}from'common';import {Slot}from'@common-stack/components-pro';import {MessengerSlotFillNameEnum}from'../../../enums/messenger-slot-fill-name-enum.js';import {FilesList}from'../../inbox/FilesList.js';import'../../inbox/MessageItem.js';import'../../inbox/ThreadItem.js';import {ErrorFixCard}from'./ErrorFixCard.js';import {marked}from'marked';import ReactMarkdown from'react-markdown';import remarkGfm from'remark-gfm';// Configure marked for better markdown rendering
2
2
  marked.setOptions({
3
3
  breaks: true,
4
4
  // Convert line breaks to <br>
@@ -677,65 +677,114 @@ const CodeBlockWithActions = ({
677
677
  URL.revokeObjectURL(url);
678
678
  }, [content, language]);
679
679
  const langLabel = (language || 'code').toUpperCase();
680
+ /**
681
+ * Duplicate / copy: back square offset top-left (only its top-left shows behind),
682
+ * front square on top toward bottom-right — matches typical “two sheets” reference art.
683
+ */
684
+ const IconCopy = ({
685
+ className
686
+ }) => React__default.createElement("svg", {
687
+ className: className,
688
+ viewBox: "0 0 24 24",
689
+ fill: "none",
690
+ xmlns: "http://www.w3.org/2000/svg",
691
+ "aria-hidden": true
692
+ }, React__default.createElement("rect", {
693
+ x: "3.25",
694
+ y: "3.25",
695
+ width: "10.5",
696
+ height: "10.5",
697
+ rx: "2.25",
698
+ ry: "2.25",
699
+ stroke: "currentColor",
700
+ strokeWidth: "1.5",
701
+ strokeLinecap: "round",
702
+ strokeLinejoin: "round"
703
+ }), React__default.createElement("rect", {
704
+ x: "8.75",
705
+ y: "8.75",
706
+ width: "10.5",
707
+ height: "10.5",
708
+ rx: "2.25",
709
+ ry: "2.25",
710
+ stroke: "currentColor",
711
+ strokeWidth: "1.5",
712
+ strokeLinecap: "round",
713
+ strokeLinejoin: "round"
714
+ }));
715
+ /** Arrow into tray (download) */
716
+ const IconDownload = ({
717
+ className
718
+ }) => React__default.createElement("svg", {
719
+ className: className,
720
+ viewBox: "0 0 24 24",
721
+ fill: "none",
722
+ stroke: "currentColor",
723
+ strokeWidth: 1.5,
724
+ strokeLinecap: "round",
725
+ strokeLinejoin: "round",
726
+ "aria-hidden": true
727
+ }, React__default.createElement("path", {
728
+ d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3"
729
+ }));
730
+ const IconCheck = ({
731
+ className
732
+ }) => React__default.createElement("svg", {
733
+ className: className,
734
+ viewBox: "0 0 24 24",
735
+ fill: "none",
736
+ stroke: "currentColor",
737
+ strokeWidth: 1.75,
738
+ strokeLinecap: "round",
739
+ strokeLinejoin: "round",
740
+ "aria-hidden": true
741
+ }, React__default.createElement("path", {
742
+ d: "M5 13l4 4L19 7"
743
+ }));
744
+ const iconMuted = 'text-slate-500 hover:text-slate-600';
680
745
  return React__default.createElement("div", {
681
- className: "rounded-lg border border-gray-200 bg-gray-50 overflow-hidden my-3 shadow-sm"
746
+ className: "rounded-xl bg-white overflow-hidden my-3 shadow-sm ring-1 ring-slate-200/60"
682
747
  }, React__default.createElement("div", {
683
- className: "flex items-center justify-between px-3 py-2 border-b border-gray-200 bg-gray-100/80"
748
+ className: "flex items-center justify-between px-4 pt-4 pb-3 bg-white"
684
749
  }, React__default.createElement("span", {
685
- className: "text-xs font-medium text-gray-500"
750
+ className: "text-[11px] font-semibold uppercase tracking-wide text-slate-500"
686
751
  }, langLabel), React__default.createElement("button", {
687
752
  type: "button",
688
753
  onClick: handleCopy,
689
- className: "p-1 rounded hover:bg-gray-200 transition-colors text-gray-500 hover:text-gray-700",
754
+ className: `p-1 rounded-md hover:bg-slate-100/80 transition-colors ${iconMuted}`,
690
755
  title: "Copy",
691
756
  "aria-label": "Copy to clipboard"
692
- }, React__default.createElement("svg", {
693
- className: "w-4 h-4",
694
- fill: "none",
695
- stroke: "currentColor",
696
- viewBox: "0 0 24 24"
697
- }, React__default.createElement("path", {
698
- strokeLinecap: "round",
699
- strokeLinejoin: "round",
700
- strokeWidth: 2,
701
- d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h2m8 0h2a2 2 0 012 2v2m0 8V6a2 2 0 012-2h-2m-4 0h-2m-4 0H8"
702
- })))), React__default.createElement("div", {
703
- className: "p-4 overflow-x-auto"
757
+ }, React__default.createElement(IconCopy, {
758
+ className: "w-[15px] h-[15px] shrink-0"
759
+ }))), React__default.createElement("div", {
760
+ className: "px-4 pb-4"
761
+ }, React__default.createElement("div", {
762
+ className: "overflow-x-auto bg-white py-4"
704
763
  }, React__default.createElement("pre", {
705
- className: "text-sm text-gray-900 font-mono leading-relaxed whitespace-pre-wrap break-words"
706
- }, React__default.createElement("code", null, content))), showCopyDownload && React__default.createElement("div", {
707
- className: "flex items-center gap-2 px-3 py-2 border-t border-gray-200 bg-gray-100/60"
764
+ className: "text-sm text-slate-900 font-mono leading-relaxed whitespace-pre-wrap break-words m-0 p-0 border-0 bg-transparent"
765
+ }, React__default.createElement("code", {
766
+ className: "bg-transparent"
767
+ }, content)))), showCopyDownload && React__default.createElement("div", {
768
+ className: "flex items-center justify-start gap-0.5 px-4 pb-3 pt-0 mt-2 bg-white"
708
769
  }, React__default.createElement("button", {
709
770
  type: "button",
710
771
  onClick: handleCopy,
711
- className: "flex items-center gap-1.5 text-xs text-gray-600 hover:text-gray-900 transition-colors"
712
- }, React__default.createElement("svg", {
713
- className: "w-3.5 h-3.5",
714
- fill: "none",
715
- stroke: "currentColor",
716
- viewBox: "0 0 24 24"
717
- }, React__default.createElement("path", {
718
- strokeLinecap: "round",
719
- strokeLinejoin: "round",
720
- strokeWidth: 2,
721
- d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h2m8 0h2a2 2 0 012 2v2m0 8V6a2 2 0 012-2h-2m-4 0h-2m-4 0H8"
722
- })), copied ? 'Copied!' : 'Copy'), React__default.createElement("button", {
772
+ className: `p-1 rounded-md hover:bg-slate-100/80 transition-colors ${iconMuted}`,
773
+ title: copied ? 'Copied' : 'Copy',
774
+ "aria-label": copied ? 'Copied' : 'Copy to clipboard'
775
+ }, copied ? React__default.createElement(IconCheck, {
776
+ className: "w-[15px] h-[15px] text-emerald-600"
777
+ }) : React__default.createElement(IconCopy, {
778
+ className: "w-[15px] h-[15px] shrink-0"
779
+ })), React__default.createElement("button", {
723
780
  type: "button",
724
781
  onClick: handleDownload,
725
- className: "flex items-center gap-1.5 text-xs text-gray-600 hover:text-gray-900 transition-colors",
782
+ className: `p-1 rounded-md hover:bg-slate-100/80 transition-colors ${iconMuted}`,
726
783
  title: "Download",
727
784
  "aria-label": "Download"
728
- }, React__default.createElement("svg", {
729
- className: "w-3.5 h-3.5",
730
- fill: "none",
731
- stroke: "currentColor",
732
- viewBox: "0 0 24 24"
733
- }, React__default.createElement("path", {
734
- strokeLinecap: "round",
735
- strokeLinejoin: "round",
736
- strokeWidth: 2,
737
- d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"
738
- })), "Download")));
785
+ }, React__default.createElement(IconDownload, {
786
+ className: "w-[15px] h-[15px] shrink-0"
787
+ }))));
739
788
  };
740
789
  // Infer language from file extension or content
741
790
  const inferCodeLanguage = (section, filename) => {
@@ -792,11 +841,15 @@ const CodeFormatter = ({
792
841
  const FormattedMessageContent = ({
793
842
  content,
794
843
  variant = 'default',
795
- planMode = false
844
+ planMode = false,
845
+ showCopyDownloadOnCodeBlock = false
796
846
  }) => {
797
847
  if (!content) return null;
798
848
  // Parse markdown using marked - be more aggressive in detection
799
- const htmlContent = useMemo(() => {
849
+ const {
850
+ htmlContent,
851
+ markdownSource
852
+ } = useMemo(() => {
800
853
  try {
801
854
  const trimmed = content.trim();
802
855
  // Comprehensive markdown detection patterns
@@ -836,15 +889,90 @@ const FormattedMessageContent = ({
836
889
  });
837
890
  // Only return if parsing actually produced HTML (not just the same text)
838
891
  if (parsed && parsed.trim() !== trimmed && parsed.includes('<')) {
839
- return parsed;
892
+ return {
893
+ htmlContent: parsed,
894
+ markdownSource: trimmed
895
+ };
840
896
  }
841
897
  }
842
- return null;
898
+ return {
899
+ htmlContent: null,
900
+ markdownSource: null
901
+ };
843
902
  } catch (error) {
844
903
  console.error('Error parsing markdown:', error);
845
- return null;
904
+ return {
905
+ htmlContent: null,
906
+ markdownSource: null
907
+ };
846
908
  }
847
909
  }, [content]);
910
+ const proseMarkdownClasses = `text-sm prose prose-sm max-w-none leading-relaxed break-words
911
+ prose-p:my-2 prose-p:text-gray-700
912
+ prose-pre:my-2 prose-pre:bg-transparent prose-pre:border-0 prose-pre:p-0
913
+ prose-ul:my-2 prose-ol:my-2
914
+ prose-code:break-words prose-code:bg-gray-50 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded prose-code:text-sm prose-code:font-mono
915
+ prose-headings:font-semibold prose-headings:text-gray-900 prose-headings:mt-4 prose-headings:mb-2
916
+ prose-h1:text-2xl prose-h1:border-b prose-h1:border-gray-200 prose-h1:pb-2
917
+ prose-h2:text-xl prose-h2:border-b prose-h2:border-gray-200 prose-h2:pb-1
918
+ prose-h3:text-lg
919
+ prose-h4:text-base
920
+ prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline
921
+ prose-strong:font-semibold prose-strong:text-gray-900
922
+ prose-em:text-gray-600
923
+ prose-blockquote:border-l-4 prose-blockquote:border-blue-400 prose-blockquote:pl-4 prose-blockquote:py-2 prose-blockquote:bg-blue-50 prose-blockquote:rounded-r-md prose-blockquote:my-3 prose-blockquote:italic
924
+ prose-table:w-full prose-table:border prose-table:border-gray-200 prose-table:rounded-md prose-table:my-4
925
+ prose-th:px-3 prose-th:py-2 prose-th:text-left prose-th:font-semibold prose-th:bg-gray-50 prose-th:border prose-th:border-gray-200
926
+ prose-td:px-3 prose-td:py-2 prose-td:border prose-td:border-gray-200 prose-td:text-gray-700
927
+ prose-li:my-1 prose-li:text-gray-700
928
+ prose-hr:my-4 prose-hr:border-gray-200
929
+ ${variant === 'user' ? planMode ? '!prose-p:text-primary-foreground !prose-li:text-primary-foreground !prose-strong:text-primary-foreground !prose-em:text-primary-foreground !prose-a:text-primary-foreground' : '!prose-p:text-gray-900 !prose-li:text-gray-900 !prose-strong:text-gray-900 !prose-em:text-gray-700 !prose-a:text-blue-600' : ''}`;
930
+ const markdownComponents = useMemo(() => ({
931
+ pre: ({
932
+ children
933
+ }) => React__default.createElement(React__default.Fragment, null, children),
934
+ code: ({
935
+ className,
936
+ children,
937
+ ...rest
938
+ }) => {
939
+ const match = /language-(\w+)/.exec(className || '');
940
+ const text = String(children).replace(/\n$/, '');
941
+ if (match) {
942
+ return React__default.createElement("div", {
943
+ className: "not-prose max-w-none"
944
+ }, React__default.createElement(CodeBlockWithActions, {
945
+ content: text,
946
+ language: match[1],
947
+ showCopyDownload: showCopyDownloadOnCodeBlock
948
+ }));
949
+ }
950
+ if (text.includes('\n')) {
951
+ return React__default.createElement("div", {
952
+ className: "not-prose max-w-none"
953
+ }, React__default.createElement(CodeBlockWithActions, {
954
+ content: text,
955
+ language: "code",
956
+ showCopyDownload: showCopyDownloadOnCodeBlock
957
+ }));
958
+ }
959
+ return React__default.createElement("code", {
960
+ className: `rounded px-1.5 py-0.5 text-sm font-mono bg-gray-50 break-words ${className || ''}`,
961
+ ...rest
962
+ }, children);
963
+ }
964
+ }), [showCopyDownloadOnCodeBlock]);
965
+ // Fenced code copy/download needs React tree (not marked HTML)
966
+ if (showCopyDownloadOnCodeBlock && markdownSource) {
967
+ return React__default.createElement("div", {
968
+ className: variant === 'user' ? '' : 'message-container'
969
+ }, React__default.createElement("div", {
970
+ className: `${proseMarkdownClasses}`
971
+ }, React__default.createElement(ReactMarkdown, {
972
+ remarkPlugins: [remarkGfm],
973
+ components: markdownComponents
974
+ }, markdownSource)));
975
+ }
848
976
  // If markdown was parsed, render as HTML with prose styling
849
977
  if (htmlContent) {
850
978
  return React__default.createElement("div", {
@@ -1060,7 +1188,8 @@ const ModernMessageBubble = ({
1060
1188
  return React__default.createElement(FormattedMessageContent, {
1061
1189
  content: message.message,
1062
1190
  variant: isAssistantRole ? 'default' : 'user',
1063
- planMode: !isAssistantRole && isPlanMode
1191
+ planMode: !isAssistantRole && isPlanMode,
1192
+ showCopyDownloadOnCodeBlock: showCopyDownloadOnCodeBlock
1064
1193
  });
1065
1194
  }
1066
1195
  })()), tryExtractBuilderBlocks(message?.message)?.length ? React__default.createElement("div", {
@@ -1138,7 +1267,8 @@ const ModernMessageBubble = ({
1138
1267
  // Handle both 'markdown' and 'text' - FormattedMessageContent
1139
1268
  // will detect markdown patterns and render accordingly
1140
1269
  return React__default.createElement(FormattedMessageContent, {
1141
- content: message.message
1270
+ content: message.message,
1271
+ showCopyDownloadOnCodeBlock: showCopyDownloadOnCodeBlock
1142
1272
  });
1143
1273
  }
1144
1274
  })()), !hasStreamingSlot && tryExtractBuilderBlocks(message?.message)?.length ? React__default.createElement("div", {
@@ -1206,4 +1336,4 @@ const ModernMessageGroupComponent = ({
1206
1336
  currentFiles: currentFiles,
1207
1337
  isFixing: false
1208
1338
  }))));
1209
- };export{FormattedMessageContent,ModernMessageGroupComponent,groupMessagesByUserAndTime};//# sourceMappingURL=ModernMessageGroup.js.map
1339
+ };export{CodeFormatter,FormattedMessageContent,ModernMessageGroupComponent,detectContentType,groupMessagesByUserAndTime};//# sourceMappingURL=ModernMessageGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModernMessageGroup.js","sources":["../../../../src/components/InboxMessage/message-widgets/ModernMessageGroup.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"ModernMessageGroup.js","sources":["../../../../src/components/InboxMessage/message-widgets/ModernMessageGroup.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { MessageSliceRenderer } from './MessageSliceRenderer';
2
2
  export { SlackLikeMessageGroup } from './SlackLikeMessageGroup';
3
- export { FormattedMessageContent, ModernMessageGroupComponent } from './ModernMessageGroup';
3
+ export { CodeFormatter, detectContentType, FormattedMessageContent, ModernMessageGroupComponent, } from './ModernMessageGroup';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/InboxMessage/message-widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/InboxMessage/message-widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,GAC9B,MAAM,sBAAsB,CAAC"}
@@ -68,12 +68,14 @@ export interface MessagesContainerUIProps {
68
68
  contentClassName?: string;
69
69
  /** Optional: className applied to the post container inside PlanModeView. */
70
70
  postContainerClassName?: string;
71
+ /** When true, code blocks show copy and download actions (default: true). */
72
+ showCopyDownloadOnCodeBlock?: boolean;
71
73
  }
72
74
  /**
73
75
  * Messages container UI for plan mode (chat / search / research).
74
76
  * Uses ModernMessageGroupComponent for message display (same as AIAgent).
75
77
  * Renders message list + streaming + loading state and delegates input to renderInputToolbar.
76
78
  */
77
- export declare function MessagesContainerUI({ messages, streamingContent, currentUser, onSend, className, scrollContainerRef, planModeViewClassName, planModeScrollContainerClassName, hideScrollbar, disabled, isLoading, onStop, showDate, showAvatar, showMessageBubbleBorder, useInternalScroll, hideInputToolbar, inputPlacement, renderInputToolbar, onOpen, onMessageClick, isDesktopView, isSmallScreen, sandboxErrors, currentFiles, onFixError, error, onRetry, renderEmptyState, scrollToBottomDeps, contentClassName, postContainerClassName, }: MessagesContainerUIProps): React.JSX.Element;
79
+ export declare function MessagesContainerUI({ messages, streamingContent, currentUser, onSend, className, scrollContainerRef, planModeViewClassName, planModeScrollContainerClassName, hideScrollbar, disabled, isLoading, onStop, showDate, showAvatar, showMessageBubbleBorder, useInternalScroll, hideInputToolbar, inputPlacement, renderInputToolbar, onOpen, onMessageClick, isDesktopView, isSmallScreen, sandboxErrors, currentFiles, onFixError, error, onRetry, renderEmptyState, scrollToBottomDeps, contentClassName, postContainerClassName, showCopyDownloadOnCodeBlock, }: MessagesContainerUIProps): React.JSX.Element;
78
80
  export default MessagesContainerUI;
79
81
  //# sourceMappingURL=MessagesContainerUI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagesContainerUI.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/MessagesContainerUI.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessagesContainerUI.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/MessagesContainerUI.tsx"],"names":[],"mappings":"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"}
@@ -35,7 +35,8 @@ function MessagesContainerUI({
35
35
  renderEmptyState,
36
36
  scrollToBottomDeps,
37
37
  contentClassName,
38
- postContainerClassName
38
+ postContainerClassName,
39
+ showCopyDownloadOnCodeBlock = true
39
40
  }) {
40
41
  return React__default.createElement("div", {
41
42
  className: clsx('flex flex-col flex-1 min-h-0', className)
@@ -70,6 +71,7 @@ function MessagesContainerUI({
70
71
  renderEmptyState: renderEmptyState,
71
72
  scrollToBottomDeps: scrollToBottomDeps,
72
73
  contentClassName: contentClassName,
73
- postContainerClassName: postContainerClassName
74
+ postContainerClassName: postContainerClassName,
75
+ showCopyDownloadOnCodeBlock: showCopyDownloadOnCodeBlock
74
76
  }));
75
77
  }export{MessagesContainerUI};//# sourceMappingURL=MessagesContainerUI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagesContainerUI.js","sources":["../../../src/components/messages-container-ui/MessagesContainerUI.tsx"],"sourcesContent":[null],"names":[],"mappings":"sGAoEA;;;;AAIG;SACa,mBAAmB,CAAC;UAkChC;AAEQ,EAAA,gBAAA;AAmCZ,EAAC,WAAA;AAED,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MessagesContainerUI.js","sources":["../../../src/components/messages-container-ui/MessagesContainerUI.tsx"],"sourcesContent":[null],"names":[],"mappings":"sGAsEA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC;UAmChC;AAEQ,EAAA,gBAAA;AAoCZ,EAAC,WAAA;AAED,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -75,6 +75,8 @@ export interface PlanModeViewProps {
75
75
  * Lets the parent force scroll on each stream chunk when the internal ResizeObserver/layout effect miss.
76
76
  */
77
77
  scrollToBottomDeps?: React.DependencyList;
78
+ /** When true, fenced / raw code blocks show copy and download actions (default: true). */
79
+ showCopyDownloadOnCodeBlock?: boolean;
78
80
  }
79
- export declare function PlanModeView({ messages, streamingContent, currentUser, onSend, disabled, isLoading, onStop, showDate, showAvatar, showMessageBubbleBorder, useInternalScroll, scrollContainerRef, scrollContainerClassName, hideScrollbar, contentClassName, postContainerClassName, className, hideInputToolbar, inputPlacement, renderInputToolbar, onOpen, onMessageClick, isDesktopView, isSmallScreen, sandboxErrors, currentFiles, onFixError, error, onRetry, renderEmptyState, scrollToBottomDeps, }: PlanModeViewProps): React.JSX.Element;
81
+ export declare function PlanModeView({ messages, streamingContent, currentUser, onSend, disabled, isLoading, onStop, showDate, showAvatar, showMessageBubbleBorder, useInternalScroll, scrollContainerRef, scrollContainerClassName, hideScrollbar, contentClassName, postContainerClassName, className, hideInputToolbar, inputPlacement, renderInputToolbar, onOpen, onMessageClick, isDesktopView, isSmallScreen, sandboxErrors, currentFiles, onFixError, error, onRetry, renderEmptyState, scrollToBottomDeps, showCopyDownloadOnCodeBlock, }: PlanModeViewProps): React.JSX.Element;
80
82
  //# sourceMappingURL=PlanModeView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanModeView.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanModeView.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AASlG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA6B3C,MAAM,WAAW,6BAA6B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAChF,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/C,kEAAkE;IAClE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IAC9C,+EAA+E;IAC/E,kBAAkB,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9E,sDAAsD;IACtD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,iBAAiB,EAAE,6BAA6B,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAClG;;;OAGG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC;IAC1C,0FAA0F;IAC1F,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAqDD,wBAAgB,YAAY,CAAC,EACzB,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,QAAgB,EAChB,SAAiB,EACjB,MAAM,EACN,QAAgB,EAChB,UAAkB,EAClB,uBAA+B,EAC/B,iBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,aAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,gBAAwB,EACxB,cAAyB,EACzB,kBAAkB,EAClB,MAAiB,EACjB,cAAyB,EACzB,aAAqB,EACrB,aAAqB,EACrB,aAAkB,EAClB,YAAiB,EACjB,UAAU,EACV,KAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,2BAAkC,GACrC,EAAE,iBAAiB,qBAqOnB"}
@@ -1,4 +1,4 @@
1
- import React__default,{useState,useRef,useCallback,useMemo,useLayoutEffect,useEffect}from'react';import clsx from'clsx';import {ModernMessageGroupComponent,FormattedMessageContent}from'../InboxMessage/message-widgets/ModernMessageGroup.js';import {AiAgentMessageRole,PostTypeEnum}from'common';const ASSISTANT_BUBBLE_BG = 'bg-white';
1
+ import React__default,{useState,useRef,useCallback,useMemo,useLayoutEffect,useEffect}from'react';import clsx from'clsx';import {ModernMessageGroupComponent,detectContentType,CodeFormatter,FormattedMessageContent}from'../InboxMessage/message-widgets/ModernMessageGroup.js';import {AiAgentMessageRole,PostTypeEnum}from'common';const ASSISTANT_BUBBLE_BG = 'bg-white';
2
2
  const BORDER_COLOR = 'border-gray-200';
3
3
  const HIDE_SCROLLBAR_CSS = `
4
4
  /* Hide scrollbar while keeping scrollability */
@@ -99,7 +99,8 @@ function PlanModeView({
99
99
  error = null,
100
100
  onRetry,
101
101
  renderEmptyState,
102
- scrollToBottomDeps
102
+ scrollToBottomDeps,
103
+ showCopyDownloadOnCodeBlock = true
103
104
  }) {
104
105
  const [inputValue, setInputValue] = useState('');
105
106
  const internalListRef = useRef(null);
@@ -238,15 +239,20 @@ function PlanModeView({
238
239
  showTimestamp: showDate,
239
240
  sandboxErrors: sandboxErrors,
240
241
  currentFiles: currentFiles,
241
- onFixError: onFixError
242
+ onFixError: onFixError,
243
+ showCopyDownloadOnCodeBlock: showCopyDownloadOnCodeBlock
242
244
  }))), streamingContent?.trim() && React__default.createElement("div", {
243
245
  className: "flex justify-start"
244
246
  }, React__default.createElement("div", {
245
247
  className: `max-w-[85%] rounded-2xl px-4 py-3 ${ASSISTANT_BUBBLE_BG} text-gray-900 ${showMessageBubbleBorder ? `border ${BORDER_COLOR}` : ''}`
246
248
  }, React__default.createElement("div", {
247
249
  className: "text-[15px] leading-relaxed break-words min-w-0"
248
- }, React__default.createElement(FormattedMessageContent, {
249
- content: streamingContent
250
+ }, detectContentType(streamingContent) === 'code' ? React__default.createElement(CodeFormatter, {
251
+ content: streamingContent,
252
+ showCopyDownload: showCopyDownloadOnCodeBlock
253
+ }) : React__default.createElement(FormattedMessageContent, {
254
+ content: streamingContent,
255
+ showCopyDownloadOnCodeBlock: showCopyDownloadOnCodeBlock
250
256
  })))), isLoading && React__default.createElement("div", {
251
257
  className: "flex justify-start"
252
258
  }, React__default.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"PlanModeView.js","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"PlanModeView.js","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messenger-box/tailwind-ui-inbox",
3
- "version": "10.0.3-alpha.207",
3
+ "version": "10.0.3-alpha.211",
4
4
  "description": "Inbox UI components built with TailwindCSS",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -21,8 +21,8 @@
21
21
  "watch": "npm run build:lib:watch"
22
22
  },
23
23
  "dependencies": {
24
- "@messenger-box/core": "10.0.3-alpha.204",
25
- "@messenger-box/platform-client": "10.0.3-alpha.204",
24
+ "@messenger-box/core": "10.0.3-alpha.211",
25
+ "@messenger-box/platform-client": "10.0.3-alpha.211",
26
26
  "@monaco-editor/react": "^4.7.0",
27
27
  "date-fns": "^4.1.0",
28
28
  "date-fns-tz": "^3.2.0",
@@ -63,5 +63,5 @@
63
63
  "typescript": {
64
64
  "definition": "lib/index.d.ts"
65
65
  },
66
- "gitHead": "1b3863403fa7b455b1c78b3ec888560420d854b6"
66
+ "gitHead": "ce4867062199153ff485acd98e57e38de13f0aa2"
67
67
  }
@@ -6,6 +6,8 @@ import { MessengerSlotFillNameEnum } from '../../../enums';
6
6
  import { FilesList } from '../../inbox';
7
7
  import { ErrorFixCard } from './ErrorFixCard';
8
8
  import { marked } from 'marked';
9
+ import ReactMarkdown from 'react-markdown';
10
+ import remarkGfm from 'remark-gfm';
9
11
 
10
12
  // Configure marked for better markdown rendering
11
13
  marked.setOptions({
@@ -512,7 +514,7 @@ export const groupMessagesByUserAndTime = (messages: IPost[], timeThresholdMinut
512
514
  };
513
515
 
514
516
  // Enhanced content detection that properly identifies different content types
515
- const detectContentType = (value: string): 'html' | 'markdown' | 'code' | 'text' => {
517
+ export const detectContentType = (value: string): 'html' | 'markdown' | 'code' | 'text' => {
516
518
  if (!value) return 'text';
517
519
 
518
520
  const trimmed = value.trim();
@@ -773,68 +775,118 @@ const CodeBlockWithActions: React.FC<{
773
775
 
774
776
  const langLabel = (language || 'code').toUpperCase();
775
777
 
778
+ /**
779
+ * Duplicate / copy: back square offset top-left (only its top-left shows behind),
780
+ * front square on top toward bottom-right — matches typical “two sheets” reference art.
781
+ */
782
+ const IconCopy = ({ className }: { className?: string }) => (
783
+ <svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden>
784
+ <rect
785
+ x="3.25"
786
+ y="3.25"
787
+ width="10.5"
788
+ height="10.5"
789
+ rx="2.25"
790
+ ry="2.25"
791
+ stroke="currentColor"
792
+ strokeWidth="1.5"
793
+ strokeLinecap="round"
794
+ strokeLinejoin="round"
795
+ />
796
+ <rect
797
+ x="8.75"
798
+ y="8.75"
799
+ width="10.5"
800
+ height="10.5"
801
+ rx="2.25"
802
+ ry="2.25"
803
+ stroke="currentColor"
804
+ strokeWidth="1.5"
805
+ strokeLinecap="round"
806
+ strokeLinejoin="round"
807
+ />
808
+ </svg>
809
+ );
810
+
811
+ /** Arrow into tray (download) */
812
+ const IconDownload = ({ className }: { className?: string }) => (
813
+ <svg
814
+ className={className}
815
+ viewBox="0 0 24 24"
816
+ fill="none"
817
+ stroke="currentColor"
818
+ strokeWidth={1.5}
819
+ strokeLinecap="round"
820
+ strokeLinejoin="round"
821
+ aria-hidden
822
+ >
823
+ <path d="M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3" />
824
+ </svg>
825
+ );
826
+
827
+ const IconCheck = ({ className }: { className?: string }) => (
828
+ <svg
829
+ className={className}
830
+ viewBox="0 0 24 24"
831
+ fill="none"
832
+ stroke="currentColor"
833
+ strokeWidth={1.75}
834
+ strokeLinecap="round"
835
+ strokeLinejoin="round"
836
+ aria-hidden
837
+ >
838
+ <path d="M5 13l4 4L19 7" />
839
+ </svg>
840
+ );
841
+
842
+ const iconMuted = 'text-slate-500 hover:text-slate-600';
843
+
776
844
  return (
777
- <div className="rounded-lg border border-gray-200 bg-gray-50 overflow-hidden my-3 shadow-sm">
778
- {/* Header: language label (left) + copy icon (right) */}
779
- <div className="flex items-center justify-between px-3 py-2 border-b border-gray-200 bg-gray-100/80">
780
- <span className="text-xs font-medium text-gray-500">{langLabel}</span>
845
+ <div className="rounded-xl bg-white overflow-hidden my-3 shadow-sm ring-1 ring-slate-200/60">
846
+ {/* Header: label + copy padding aligned with inner code gutter (image 3) */}
847
+ <div className="flex items-center justify-between px-4 pt-4 pb-3 bg-white">
848
+ <span className="text-[11px] font-semibold uppercase tracking-wide text-slate-500">{langLabel}</span>
781
849
  <button
782
850
  type="button"
783
851
  onClick={handleCopy}
784
- className="p-1 rounded hover:bg-gray-200 transition-colors text-gray-500 hover:text-gray-700"
852
+ className={`p-1 rounded-md hover:bg-slate-100/80 transition-colors ${iconMuted}`}
785
853
  title="Copy"
786
854
  aria-label="Copy to clipboard"
787
855
  >
788
- <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
789
- <path
790
- strokeLinecap="round"
791
- strokeLinejoin="round"
792
- strokeWidth={2}
793
- d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h2m8 0h2a2 2 0 012 2v2m0 8V6a2 2 0 012-2h-2m-4 0h-2m-4 0H8"
794
- />
795
- </svg>
856
+ <IconCopy className="w-[15px] h-[15px] shrink-0" />
796
857
  </button>
797
858
  </div>
798
- {/* Code content */}
799
- <div className="p-4 overflow-x-auto">
800
- <pre className="text-sm text-gray-900 font-mono leading-relaxed whitespace-pre-wrap break-words">
801
- <code>{content}</code>
802
- </pre>
859
+ {/* Code body: white, no inner border (single flat surface inside the card) */}
860
+ <div className="px-4 pb-4">
861
+ <div className="overflow-x-auto bg-white py-4">
862
+ <pre className="text-sm text-slate-900 font-mono leading-relaxed whitespace-pre-wrap break-words m-0 p-0 border-0 bg-transparent">
863
+ <code className="bg-transparent">{content}</code>
864
+ </pre>
865
+ </div>
803
866
  </div>
804
- {/* Footer: copy + download when showCopyDownload */}
805
867
  {showCopyDownload && (
806
- <div className="flex items-center gap-2 px-3 py-2 border-t border-gray-200 bg-gray-100/60">
868
+ <div className="flex items-center justify-start gap-0.5 px-4 pb-3 pt-0 mt-2 bg-white">
807
869
  <button
808
870
  type="button"
809
871
  onClick={handleCopy}
810
- className="flex items-center gap-1.5 text-xs text-gray-600 hover:text-gray-900 transition-colors"
872
+ className={`p-1 rounded-md hover:bg-slate-100/80 transition-colors ${iconMuted}`}
873
+ title={copied ? 'Copied' : 'Copy'}
874
+ aria-label={copied ? 'Copied' : 'Copy to clipboard'}
811
875
  >
812
- <svg className="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
813
- <path
814
- strokeLinecap="round"
815
- strokeLinejoin="round"
816
- strokeWidth={2}
817
- d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h2m8 0h2a2 2 0 012 2v2m0 8V6a2 2 0 012-2h-2m-4 0h-2m-4 0H8"
818
- />
819
- </svg>
820
- {copied ? 'Copied!' : 'Copy'}
876
+ {copied ? (
877
+ <IconCheck className="w-[15px] h-[15px] text-emerald-600" />
878
+ ) : (
879
+ <IconCopy className="w-[15px] h-[15px] shrink-0" />
880
+ )}
821
881
  </button>
822
882
  <button
823
883
  type="button"
824
884
  onClick={handleDownload}
825
- className="flex items-center gap-1.5 text-xs text-gray-600 hover:text-gray-900 transition-colors"
885
+ className={`p-1 rounded-md hover:bg-slate-100/80 transition-colors ${iconMuted}`}
826
886
  title="Download"
827
887
  aria-label="Download"
828
888
  >
829
- <svg className="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
830
- <path
831
- strokeLinecap="round"
832
- strokeLinejoin="round"
833
- strokeWidth={2}
834
- d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"
835
- />
836
- </svg>
837
- Download
889
+ <IconDownload className="w-[15px] h-[15px] shrink-0" />
838
890
  </button>
839
891
  </div>
840
892
  )}
@@ -863,7 +915,7 @@ const inferCodeLanguage = (section: string, filename?: string): string => {
863
915
  };
864
916
 
865
917
  // Enhanced code formatter for raw code content
866
- const CodeFormatter: React.FC<{
918
+ export const CodeFormatter: React.FC<{
867
919
  content: string;
868
920
  showCopyDownload?: boolean;
869
921
  variant?: 'default' | 'user';
@@ -943,11 +995,16 @@ export const FormattedMessageContent: React.FC<{
943
995
  variant?: 'default' | 'user';
944
996
  /** When variant is `user`, use primary-foreground only on plan-mode bubbles (bg-primary). */
945
997
  planMode?: boolean;
946
- }> = ({ content, variant = 'default', planMode = false }) => {
998
+ /**
999
+ * When true, fenced code blocks use the same copy/download UI as elsewhere.
1000
+ * Implemented via react-markdown (safe) instead of raw HTML from marked.
1001
+ */
1002
+ showCopyDownloadOnCodeBlock?: boolean;
1003
+ }> = ({ content, variant = 'default', planMode = false, showCopyDownloadOnCodeBlock = false }) => {
947
1004
  if (!content) return null;
948
1005
 
949
1006
  // Parse markdown using marked - be more aggressive in detection
950
- const htmlContent = useMemo(() => {
1007
+ const { htmlContent, markdownSource } = useMemo(() => {
951
1008
  try {
952
1009
  const trimmed = content.trim();
953
1010
 
@@ -980,17 +1037,98 @@ export const FormattedMessageContent: React.FC<{
980
1037
  const parsed = marked.parse(trimmed, { async: false }) as string;
981
1038
  // Only return if parsing actually produced HTML (not just the same text)
982
1039
  if (parsed && parsed.trim() !== trimmed && parsed.includes('<')) {
983
- return parsed;
1040
+ return { htmlContent: parsed, markdownSource: trimmed as string };
984
1041
  }
985
1042
  }
986
1043
 
987
- return null;
1044
+ return { htmlContent: null as string | null, markdownSource: null as string | null };
988
1045
  } catch (error) {
989
1046
  console.error('Error parsing markdown:', error);
990
- return null;
1047
+ return { htmlContent: null as string | null, markdownSource: null as string | null };
991
1048
  }
992
1049
  }, [content]);
993
1050
 
1051
+ const proseMarkdownClasses = `text-sm prose prose-sm max-w-none leading-relaxed break-words
1052
+ prose-p:my-2 prose-p:text-gray-700
1053
+ prose-pre:my-2 prose-pre:bg-transparent prose-pre:border-0 prose-pre:p-0
1054
+ prose-ul:my-2 prose-ol:my-2
1055
+ prose-code:break-words prose-code:bg-gray-50 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded prose-code:text-sm prose-code:font-mono
1056
+ prose-headings:font-semibold prose-headings:text-gray-900 prose-headings:mt-4 prose-headings:mb-2
1057
+ prose-h1:text-2xl prose-h1:border-b prose-h1:border-gray-200 prose-h1:pb-2
1058
+ prose-h2:text-xl prose-h2:border-b prose-h2:border-gray-200 prose-h2:pb-1
1059
+ prose-h3:text-lg
1060
+ prose-h4:text-base
1061
+ prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline
1062
+ prose-strong:font-semibold prose-strong:text-gray-900
1063
+ prose-em:text-gray-600
1064
+ prose-blockquote:border-l-4 prose-blockquote:border-blue-400 prose-blockquote:pl-4 prose-blockquote:py-2 prose-blockquote:bg-blue-50 prose-blockquote:rounded-r-md prose-blockquote:my-3 prose-blockquote:italic
1065
+ prose-table:w-full prose-table:border prose-table:border-gray-200 prose-table:rounded-md prose-table:my-4
1066
+ prose-th:px-3 prose-th:py-2 prose-th:text-left prose-th:font-semibold prose-th:bg-gray-50 prose-th:border prose-th:border-gray-200
1067
+ prose-td:px-3 prose-td:py-2 prose-td:border prose-td:border-gray-200 prose-td:text-gray-700
1068
+ prose-li:my-1 prose-li:text-gray-700
1069
+ prose-hr:my-4 prose-hr:border-gray-200
1070
+ ${
1071
+ variant === 'user'
1072
+ ? planMode
1073
+ ? '!prose-p:text-primary-foreground !prose-li:text-primary-foreground !prose-strong:text-primary-foreground !prose-em:text-primary-foreground !prose-a:text-primary-foreground'
1074
+ : '!prose-p:text-gray-900 !prose-li:text-gray-900 !prose-strong:text-gray-900 !prose-em:text-gray-700 !prose-a:text-blue-600'
1075
+ : ''
1076
+ }`;
1077
+
1078
+ const markdownComponents = useMemo(
1079
+ () => ({
1080
+ pre: ({ children }: { children?: React.ReactNode }) => <>{children}</>,
1081
+ code: ({ className, children, ...rest }: { className?: string; children?: React.ReactNode }) => {
1082
+ const match = /language-(\w+)/.exec(className || '');
1083
+ const text = String(children).replace(/\n$/, '');
1084
+ if (match) {
1085
+ return (
1086
+ <div className="not-prose max-w-none">
1087
+ <CodeBlockWithActions
1088
+ content={text}
1089
+ language={match[1]}
1090
+ showCopyDownload={showCopyDownloadOnCodeBlock}
1091
+ />
1092
+ </div>
1093
+ );
1094
+ }
1095
+ if (text.includes('\n')) {
1096
+ return (
1097
+ <div className="not-prose max-w-none">
1098
+ <CodeBlockWithActions
1099
+ content={text}
1100
+ language="code"
1101
+ showCopyDownload={showCopyDownloadOnCodeBlock}
1102
+ />
1103
+ </div>
1104
+ );
1105
+ }
1106
+ return (
1107
+ <code
1108
+ className={`rounded px-1.5 py-0.5 text-sm font-mono bg-gray-50 break-words ${className || ''}`}
1109
+ {...rest}
1110
+ >
1111
+ {children}
1112
+ </code>
1113
+ );
1114
+ },
1115
+ }),
1116
+ [showCopyDownloadOnCodeBlock],
1117
+ );
1118
+
1119
+ // Fenced code copy/download needs React tree (not marked HTML)
1120
+ if (showCopyDownloadOnCodeBlock && markdownSource) {
1121
+ return (
1122
+ <div className={variant === 'user' ? '' : 'message-container'}>
1123
+ <div className={`${proseMarkdownClasses}`}>
1124
+ <ReactMarkdown remarkPlugins={[remarkGfm]} components={markdownComponents}>
1125
+ {markdownSource}
1126
+ </ReactMarkdown>
1127
+ </div>
1128
+ </div>
1129
+ );
1130
+ }
1131
+
994
1132
  // If markdown was parsed, render as HTML with prose styling
995
1133
  if (htmlContent) {
996
1134
  return (
@@ -1332,6 +1470,7 @@ const ModernMessageBubble: React.FC<ModernMessageBubbleProps> = ({
1332
1470
  content={message.message}
1333
1471
  variant={isAssistantRole ? 'default' : 'user'}
1334
1472
  planMode={!isAssistantRole && isPlanMode}
1473
+ showCopyDownloadOnCodeBlock={showCopyDownloadOnCodeBlock}
1335
1474
  />
1336
1475
  );
1337
1476
  }
@@ -1458,7 +1597,12 @@ const ModernMessageBubble: React.FC<ModernMessageBubbleProps> = ({
1458
1597
  } else {
1459
1598
  // Handle both 'markdown' and 'text' - FormattedMessageContent
1460
1599
  // will detect markdown patterns and render accordingly
1461
- return <FormattedMessageContent content={message.message} />;
1600
+ return (
1601
+ <FormattedMessageContent
1602
+ content={message.message}
1603
+ showCopyDownloadOnCodeBlock={showCopyDownloadOnCodeBlock}
1604
+ />
1605
+ );
1462
1606
  }
1463
1607
  })()}
1464
1608
  </div>
@@ -1,3 +1,8 @@
1
1
  export { MessageSliceRenderer } from './MessageSliceRenderer';
2
2
  export { SlackLikeMessageGroup } from './SlackLikeMessageGroup';
3
- export { FormattedMessageContent, ModernMessageGroupComponent } from './ModernMessageGroup';
3
+ export {
4
+ CodeFormatter,
5
+ detectContentType,
6
+ FormattedMessageContent,
7
+ ModernMessageGroupComponent,
8
+ } from './ModernMessageGroup';
@@ -64,6 +64,8 @@ export interface MessagesContainerUIProps {
64
64
  contentClassName?: string;
65
65
  /** Optional: className applied to the post container inside PlanModeView. */
66
66
  postContainerClassName?: string;
67
+ /** When true, code blocks show copy and download actions (default: true). */
68
+ showCopyDownloadOnCodeBlock?: boolean;
67
69
  }
68
70
 
69
71
  /**
@@ -104,6 +106,7 @@ export function MessagesContainerUI({
104
106
  scrollToBottomDeps,
105
107
  contentClassName,
106
108
  postContainerClassName,
109
+ showCopyDownloadOnCodeBlock = true,
107
110
  }: MessagesContainerUIProps) {
108
111
  return (
109
112
  <div className={clsx('flex flex-col flex-1 min-h-0', className)}>
@@ -139,6 +142,7 @@ export function MessagesContainerUI({
139
142
  scrollToBottomDeps={scrollToBottomDeps}
140
143
  contentClassName={contentClassName}
141
144
  postContainerClassName={postContainerClassName}
145
+ showCopyDownloadOnCodeBlock={showCopyDownloadOnCodeBlock}
142
146
  />
143
147
  </div>
144
148
  );
@@ -1,6 +1,8 @@
1
1
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
2
2
  import clsx from 'clsx';
3
3
  import {
4
+ CodeFormatter,
5
+ detectContentType,
4
6
  FormattedMessageContent,
5
7
  ModernMessageGroupComponent,
6
8
  } from '../InboxMessage/message-widgets/ModernMessageGroup';
@@ -104,6 +106,8 @@ export interface PlanModeViewProps {
104
106
  * Lets the parent force scroll on each stream chunk when the internal ResizeObserver/layout effect miss.
105
107
  */
106
108
  scrollToBottomDeps?: React.DependencyList;
109
+ /** When true, fenced / raw code blocks show copy and download actions (default: true). */
110
+ showCopyDownloadOnCodeBlock?: boolean;
107
111
  }
108
112
 
109
113
  /** Map PlanMessage to the post-like shape expected by ModernMessageGroupComponent */
@@ -189,6 +193,7 @@ export function PlanModeView({
189
193
  onRetry,
190
194
  renderEmptyState,
191
195
  scrollToBottomDeps,
196
+ showCopyDownloadOnCodeBlock = true,
192
197
  }: PlanModeViewProps) {
193
198
  const [inputValue, setInputValue] = useState('');
194
199
  const internalListRef = useRef<HTMLDivElement>(null);
@@ -374,6 +379,7 @@ export function PlanModeView({
374
379
  sandboxErrors={sandboxErrors}
375
380
  currentFiles={currentFiles}
376
381
  onFixError={onFixError}
382
+ showCopyDownloadOnCodeBlock={showCopyDownloadOnCodeBlock}
377
383
  />
378
384
  </div>
379
385
  ))}
@@ -386,7 +392,17 @@ export function PlanModeView({
386
392
  }`}
387
393
  >
388
394
  <div className="text-[15px] leading-relaxed break-words min-w-0">
389
- <FormattedMessageContent content={streamingContent} />
395
+ {detectContentType(streamingContent) === 'code' ? (
396
+ <CodeFormatter
397
+ content={streamingContent}
398
+ showCopyDownload={showCopyDownloadOnCodeBlock}
399
+ />
400
+ ) : (
401
+ <FormattedMessageContent
402
+ content={streamingContent}
403
+ showCopyDownloadOnCodeBlock={showCopyDownloadOnCodeBlock}
404
+ />
405
+ )}
390
406
  </div>
391
407
  </div>
392
408
  </div>