@copilotz/chat-ui 0.7.3 → 0.7.5

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 (163) hide show
  1. package/dist/index.cjs +9 -3
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +9 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/styles.css +9 -0
  6. package/package.json +1 -1
  7. package/dist/components/chat/AgentSelectors.d.ts +0 -50
  8. package/dist/components/chat/AgentSelectors.d.ts.map +0 -1
  9. package/dist/components/chat/AgentSelectors.js +0 -67
  10. package/dist/components/chat/AgentSelectors.js.map +0 -1
  11. package/dist/components/chat/AssistantActivity.d.ts +0 -11
  12. package/dist/components/chat/AssistantActivity.d.ts.map +0 -1
  13. package/dist/components/chat/AssistantActivity.js +0 -82
  14. package/dist/components/chat/AssistantActivity.js.map +0 -1
  15. package/dist/components/chat/ChatHeader.d.ts +0 -56
  16. package/dist/components/chat/ChatHeader.d.ts.map +0 -1
  17. package/dist/components/chat/ChatHeader.js +0 -71
  18. package/dist/components/chat/ChatHeader.js.map +0 -1
  19. package/dist/components/chat/ChatInput.d.ts +0 -25
  20. package/dist/components/chat/ChatInput.d.ts.map +0 -1
  21. package/dist/components/chat/ChatInput.js +0 -732
  22. package/dist/components/chat/ChatInput.js.map +0 -1
  23. package/dist/components/chat/ChatUI.d.ts +0 -4
  24. package/dist/components/chat/ChatUI.d.ts.map +0 -1
  25. package/dist/components/chat/ChatUI.js +0 -470
  26. package/dist/components/chat/ChatUI.js.map +0 -1
  27. package/dist/components/chat/Message.d.ts +0 -37
  28. package/dist/components/chat/Message.d.ts.map +0 -1
  29. package/dist/components/chat/Message.js +0 -262
  30. package/dist/components/chat/Message.js.map +0 -1
  31. package/dist/components/chat/Sidebar.d.ts +0 -52
  32. package/dist/components/chat/Sidebar.d.ts.map +0 -1
  33. package/dist/components/chat/Sidebar.js +0 -112
  34. package/dist/components/chat/Sidebar.js.map +0 -1
  35. package/dist/components/chat/ThreadManager.d.ts +0 -18
  36. package/dist/components/chat/ThreadManager.d.ts.map +0 -1
  37. package/dist/components/chat/ThreadManager.js +0 -108
  38. package/dist/components/chat/ThreadManager.js.map +0 -1
  39. package/dist/components/chat/UserContext.d.ts +0 -15
  40. package/dist/components/chat/UserContext.d.ts.map +0 -1
  41. package/dist/components/chat/UserContext.js +0 -39
  42. package/dist/components/chat/UserContext.js.map +0 -1
  43. package/dist/components/chat/UserMenu.d.ts +0 -38
  44. package/dist/components/chat/UserMenu.d.ts.map +0 -1
  45. package/dist/components/chat/UserMenu.js +0 -44
  46. package/dist/components/chat/UserMenu.js.map +0 -1
  47. package/dist/components/chat/UserProfile.d.ts +0 -51
  48. package/dist/components/chat/UserProfile.d.ts.map +0 -1
  49. package/dist/components/chat/UserProfile.js +0 -206
  50. package/dist/components/chat/UserProfile.js.map +0 -1
  51. package/dist/components/chat/VoiceComposer.d.ts +0 -29
  52. package/dist/components/chat/VoiceComposer.d.ts.map +0 -1
  53. package/dist/components/chat/VoiceComposer.js +0 -99
  54. package/dist/components/chat/VoiceComposer.js.map +0 -1
  55. package/dist/components/ui/Spinner.d.ts +0 -7
  56. package/dist/components/ui/Spinner.d.ts.map +0 -1
  57. package/dist/components/ui/Spinner.js +0 -14
  58. package/dist/components/ui/Spinner.js.map +0 -1
  59. package/dist/components/ui/accordion.d.ts +0 -8
  60. package/dist/components/ui/accordion.d.ts.map +0 -1
  61. package/dist/components/ui/accordion.js +0 -14
  62. package/dist/components/ui/accordion.js.map +0 -1
  63. package/dist/components/ui/alert-dialog.d.ts +0 -15
  64. package/dist/components/ui/alert-dialog.d.ts.map +0 -1
  65. package/dist/components/ui/alert-dialog.js +0 -66
  66. package/dist/components/ui/alert-dialog.js.map +0 -1
  67. package/dist/components/ui/avatar.d.ts +0 -7
  68. package/dist/components/ui/avatar.d.ts.map +0 -1
  69. package/dist/components/ui/avatar.js +0 -15
  70. package/dist/components/ui/avatar.js.map +0 -1
  71. package/dist/components/ui/badge.d.ts +0 -10
  72. package/dist/components/ui/badge.d.ts.map +0 -1
  73. package/dist/components/ui/badge.js +0 -23
  74. package/dist/components/ui/badge.js.map +0 -1
  75. package/dist/components/ui/button.d.ts +0 -11
  76. package/dist/components/ui/button.d.ts.map +0 -1
  77. package/dist/components/ui/button.js +0 -32
  78. package/dist/components/ui/button.js.map +0 -1
  79. package/dist/components/ui/card.d.ts +0 -10
  80. package/dist/components/ui/card.d.ts.map +0 -1
  81. package/dist/components/ui/card.js +0 -25
  82. package/dist/components/ui/card.js.map +0 -1
  83. package/dist/components/ui/collapsible.d.ts +0 -6
  84. package/dist/components/ui/collapsible.d.ts.map +0 -1
  85. package/dist/components/ui/collapsible.js +0 -6
  86. package/dist/components/ui/collapsible.js.map +0 -1
  87. package/dist/components/ui/context-menu.d.ts +0 -26
  88. package/dist/components/ui/context-menu.d.ts.map +0 -1
  89. package/dist/components/ui/context-menu.js +0 -51
  90. package/dist/components/ui/context-menu.js.map +0 -1
  91. package/dist/components/ui/dialog.d.ts +0 -16
  92. package/dist/components/ui/dialog.d.ts.map +0 -1
  93. package/dist/components/ui/dialog.js +0 -63
  94. package/dist/components/ui/dialog.js.map +0 -1
  95. package/dist/components/ui/dropdown-menu.d.ts +0 -26
  96. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  97. package/dist/components/ui/dropdown-menu.js +0 -51
  98. package/dist/components/ui/dropdown-menu.js.map +0 -1
  99. package/dist/components/ui/input.d.ts +0 -4
  100. package/dist/components/ui/input.d.ts.map +0 -1
  101. package/dist/components/ui/input.js +0 -7
  102. package/dist/components/ui/input.js.map +0 -1
  103. package/dist/components/ui/progress.d.ts +0 -5
  104. package/dist/components/ui/progress.d.ts.map +0 -1
  105. package/dist/components/ui/progress.js +0 -8
  106. package/dist/components/ui/progress.js.map +0 -1
  107. package/dist/components/ui/scroll-area.d.ts +0 -8
  108. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  109. package/dist/components/ui/scroll-area.js +0 -16
  110. package/dist/components/ui/scroll-area.js.map +0 -1
  111. package/dist/components/ui/select.d.ts +0 -12
  112. package/dist/components/ui/select.d.ts.map +0 -1
  113. package/dist/components/ui/select.js +0 -21
  114. package/dist/components/ui/select.js.map +0 -1
  115. package/dist/components/ui/separator.d.ts +0 -5
  116. package/dist/components/ui/separator.d.ts.map +0 -1
  117. package/dist/components/ui/separator.js +0 -9
  118. package/dist/components/ui/separator.js.map +0 -1
  119. package/dist/components/ui/sheet.d.ts +0 -14
  120. package/dist/components/ui/sheet.d.ts.map +0 -1
  121. package/dist/components/ui/sheet.js +0 -66
  122. package/dist/components/ui/sheet.js.map +0 -1
  123. package/dist/components/ui/sidebar.d.ts +0 -70
  124. package/dist/components/ui/sidebar.d.ts.map +0 -1
  125. package/dist/components/ui/sidebar.js +0 -212
  126. package/dist/components/ui/sidebar.js.map +0 -1
  127. package/dist/components/ui/skeleton.d.ts +0 -3
  128. package/dist/components/ui/skeleton.d.ts.map +0 -1
  129. package/dist/components/ui/skeleton.js +0 -7
  130. package/dist/components/ui/skeleton.js.map +0 -1
  131. package/dist/components/ui/textarea.d.ts +0 -4
  132. package/dist/components/ui/textarea.d.ts.map +0 -1
  133. package/dist/components/ui/textarea.js +0 -7
  134. package/dist/components/ui/textarea.js.map +0 -1
  135. package/dist/components/ui/tooltip.d.ts +0 -8
  136. package/dist/components/ui/tooltip.d.ts.map +0 -1
  137. package/dist/components/ui/tooltip.js +0 -18
  138. package/dist/components/ui/tooltip.js.map +0 -1
  139. package/dist/config/chatConfig.d.ts +0 -4
  140. package/dist/config/chatConfig.d.ts.map +0 -1
  141. package/dist/config/chatConfig.js +0 -173
  142. package/dist/config/chatConfig.js.map +0 -1
  143. package/dist/hooks/use-mobile.d.ts +0 -2
  144. package/dist/hooks/use-mobile.d.ts.map +0 -1
  145. package/dist/hooks/use-mobile.js +0 -16
  146. package/dist/hooks/use-mobile.js.map +0 -1
  147. package/dist/index.d.ts.map +0 -1
  148. package/dist/lib/chatUtils.d.ts +0 -18
  149. package/dist/lib/chatUtils.d.ts.map +0 -1
  150. package/dist/lib/chatUtils.js +0 -64
  151. package/dist/lib/chatUtils.js.map +0 -1
  152. package/dist/lib/utils.d.ts +0 -6
  153. package/dist/lib/utils.d.ts.map +0 -1
  154. package/dist/lib/utils.js +0 -46
  155. package/dist/lib/utils.js.map +0 -1
  156. package/dist/lib/voiceCompose.d.ts +0 -6
  157. package/dist/lib/voiceCompose.d.ts.map +0 -1
  158. package/dist/lib/voiceCompose.js +0 -344
  159. package/dist/lib/voiceCompose.js.map +0 -1
  160. package/dist/types/chatTypes.d.ts +0 -386
  161. package/dist/types/chatTypes.d.ts.map +0 -1
  162. package/dist/types/chatTypes.js +0 -2
  163. package/dist/types/chatTypes.js.map +0 -1
package/dist/styles.css CHANGED
@@ -2007,12 +2007,18 @@
2007
2007
  .pr-2 {
2008
2008
  padding-right: calc(var(--spacing) * 2);
2009
2009
  }
2010
+ .pr-3 {
2011
+ padding-right: calc(var(--spacing) * 3);
2012
+ }
2010
2013
  .pr-6 {
2011
2014
  padding-right: calc(var(--spacing) * 6);
2012
2015
  }
2013
2016
  .pr-8 {
2014
2017
  padding-right: calc(var(--spacing) * 8);
2015
2018
  }
2019
+ .pr-10 {
2020
+ padding-right: calc(var(--spacing) * 10);
2021
+ }
2016
2022
  .pb-1 {
2017
2023
  padding-bottom: calc(var(--spacing) * 1);
2018
2024
  }
@@ -2025,6 +2031,9 @@
2025
2031
  .pl-2 {
2026
2032
  padding-left: calc(var(--spacing) * 2);
2027
2033
  }
2034
+ .pl-3 {
2035
+ padding-left: calc(var(--spacing) * 3);
2036
+ }
2028
2037
  .pl-7 {
2029
2038
  padding-left: calc(var(--spacing) * 7);
2030
2039
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@copilotz/chat-ui",
3
- "version": "0.7.3",
3
+ "version": "0.7.5",
4
4
  "description": "Copilotz chat UI components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -1,50 +0,0 @@
1
- import React from 'react';
2
- import { AgentOption } from '../../types/chatTypes';
3
- interface ParticipantsSelectorProps {
4
- /** All available agents */
5
- agents: AgentOption[];
6
- /** Currently selected participant IDs */
7
- participantIds: string[];
8
- /** Callback when participants change */
9
- onParticipantsChange: (ids: string[]) => void;
10
- /** Label for the selector */
11
- label?: string;
12
- /** Maximum participants to show in collapsed view */
13
- maxVisible?: number;
14
- /** Disabled state */
15
- disabled?: boolean;
16
- }
17
- /**
18
- * Multi-select dropdown for choosing which agents participate in the conversation.
19
- */
20
- export declare const ParticipantsSelector: React.FC<ParticipantsSelectorProps>;
21
- interface TargetAgentSelectorProps {
22
- /** Available agents (should be filtered to participants only) */
23
- agents: AgentOption[];
24
- /** Currently targeted agent ID */
25
- targetAgentId: string | null;
26
- /** Callback when target changes */
27
- onTargetChange: (agentId: string | null) => void;
28
- /** Label for the selector */
29
- label?: string;
30
- /** Placeholder when no target is selected */
31
- placeholder?: string;
32
- /** Disabled state */
33
- disabled?: boolean;
34
- }
35
- /**
36
- * Single-select dropdown for choosing which agent to address with @mention.
37
- */
38
- export declare const TargetAgentSelector: React.FC<TargetAgentSelectorProps>;
39
- interface AgentBadgeProps {
40
- agent: AgentOption;
41
- onRemove?: () => void;
42
- showRemove?: boolean;
43
- size?: 'sm' | 'md';
44
- }
45
- /**
46
- * Badge displaying an agent with optional remove button.
47
- */
48
- export declare const AgentBadge: React.FC<AgentBadgeProps>;
49
- export {};
50
- //# sourceMappingURL=AgentSelectors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentSelectors.d.ts","sourceRoot":"","sources":["../../../src/components/chat/AgentSelectors.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAcpD,UAAU,yBAAyB;IACjC,2BAA2B;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,yCAAyC;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAoHnE,CAAC;AAIH,UAAU,wBAAwB;IAChC,iEAAiE;IACjE,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,kCAAkC;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mCAAmC;IACnC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAqFjE,CAAC;AAIH,UAAU,eAAe;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyC/C,CAAC"}
@@ -1,67 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { memo, useMemo } from 'react';
3
- import { Check, ChevronDown, Users, AtSign, X } from 'lucide-react';
4
- import { Button } from '../ui/button';
5
- import { Avatar, AvatarFallback, AvatarImage } from '../ui/avatar';
6
- import { Badge } from '../ui/badge';
7
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, DropdownMenuSeparator, DropdownMenuLabel, } from '../ui/dropdown-menu';
8
- import { getAgentColor, getAgentInitials, assignAgentColors } from '../../lib/chatUtils';
9
- /**
10
- * Multi-select dropdown for choosing which agents participate in the conversation.
11
- */
12
- export const ParticipantsSelector = memo(({ agents, participantIds, onParticipantsChange, label = 'Team', maxVisible = 3, disabled = false, }) => {
13
- // Assign colors to agents that don't have them
14
- const agentsWithColors = useMemo(() => assignAgentColors(agents), [agents]);
15
- // Get selected agents
16
- const selectedAgents = useMemo(() => agentsWithColors.filter(a => participantIds.includes(a.id)), [agentsWithColors, participantIds]);
17
- const toggleParticipant = (agentId) => {
18
- if (participantIds.includes(agentId)) {
19
- // Don't allow removing the last participant
20
- if (participantIds.length > 1) {
21
- onParticipantsChange(participantIds.filter(id => id !== agentId));
22
- }
23
- }
24
- else {
25
- onParticipantsChange([...participantIds, agentId]);
26
- }
27
- };
28
- const selectAll = () => {
29
- onParticipantsChange(agentsWithColors.map(a => a.id));
30
- };
31
- const visibleAgents = selectedAgents.slice(0, maxVisible);
32
- const hiddenCount = selectedAgents.length - maxVisible;
33
- return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-9 px-2 gap-1.5 text-sm hover:bg-accent/50", disabled: disabled, children: [_jsx(Users, { className: "h-4 w-4 text-muted-foreground" }), _jsx("div", { className: "flex items-center gap-1", children: visibleAgents.length > 0 ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex -space-x-1.5", children: visibleAgents.map(agent => (_jsxs(Avatar, { className: "h-5 w-5 border-2 border-background", children: [_jsx(AvatarImage, { src: agent.avatarUrl, alt: agent.name }), _jsx(AvatarFallback, { style: { backgroundColor: agent.color || getAgentColor(agent.id), color: 'white' }, className: "text-[8px]", children: getAgentInitials(agent.name) })] }, agent.id))) }), hiddenCount > 0 && (_jsxs("span", { className: "text-xs text-muted-foreground", children: ["+", hiddenCount] }))] })) : (_jsx("span", { className: "text-muted-foreground", children: label })) }), _jsx(ChevronDown, { className: "h-3 w-3 opacity-50" })] }) }), _jsxs(DropdownMenuContent, { align: "start", className: "w-[260px]", children: [_jsxs(DropdownMenuLabel, { className: "flex items-center justify-between", children: [_jsx("span", { children: "Participants" }), selectedAgents.length < agentsWithColors.length && (_jsx(Button, { variant: "ghost", size: "sm", className: "h-6 text-xs", onClick: selectAll, children: "Select All" }))] }), _jsx(DropdownMenuSeparator, {}), agentsWithColors.map(agent => {
34
- const isSelected = participantIds.includes(agent.id);
35
- const isLastSelected = isSelected && participantIds.length === 1;
36
- return (_jsxs(DropdownMenuItem, { onClick: () => toggleParticipant(agent.id), className: "flex items-center gap-3 p-2 cursor-pointer", disabled: isLastSelected, children: [_jsxs(Avatar, { className: "h-6 w-6", children: [_jsx(AvatarImage, { src: agent.avatarUrl, alt: agent.name }), _jsx(AvatarFallback, { style: { backgroundColor: agent.color || getAgentColor(agent.id), color: 'white' }, className: "text-[10px]", children: getAgentInitials(agent.name) })] }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("div", { className: "font-medium text-sm truncate", children: agent.name }), agent.description && (_jsx("div", { className: "text-xs text-muted-foreground truncate", children: agent.description }))] }), isSelected && (_jsx(Check, { className: "h-4 w-4 text-primary shrink-0" }))] }, agent.id));
37
- })] })] }));
38
- });
39
- ParticipantsSelector.displayName = 'ParticipantsSelector';
40
- /**
41
- * Single-select dropdown for choosing which agent to address with @mention.
42
- */
43
- export const TargetAgentSelector = memo(({ agents, targetAgentId, onTargetChange, label = 'Target', placeholder = 'Select agent', disabled = false, }) => {
44
- // Assign colors to agents
45
- const agentsWithColors = useMemo(() => assignAgentColors(agents), [agents]);
46
- // Get selected agent
47
- const selectedAgent = useMemo(() => agentsWithColors.find(a => a.id === targetAgentId), [agentsWithColors, targetAgentId]);
48
- return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-9 px-3 gap-1.5 font-medium text-base hover:bg-accent/50", disabled: disabled, children: [_jsx(AtSign, { className: "h-4 w-4 text-muted-foreground" }), selectedAgent ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Avatar, { className: "h-5 w-5", children: [_jsx(AvatarImage, { src: selectedAgent.avatarUrl, alt: selectedAgent.name }), _jsx(AvatarFallback, { style: { backgroundColor: selectedAgent.color || getAgentColor(selectedAgent.id), color: 'white' }, className: "text-[10px]", children: getAgentInitials(selectedAgent.name) })] }), _jsx("span", { className: "max-w-[150px] truncate", children: selectedAgent.name })] })) : (_jsx("span", { className: "text-muted-foreground", children: placeholder })), _jsx(ChevronDown, { className: "h-4 w-4 opacity-50" })] }) }), _jsxs(DropdownMenuContent, { align: "start", className: "w-[280px]", children: [_jsx(DropdownMenuLabel, { children: label }), _jsx(DropdownMenuSeparator, {}), agentsWithColors.map(agent => {
49
- const isSelected = agent.id === targetAgentId;
50
- return (_jsxs(DropdownMenuItem, { onClick: () => onTargetChange(agent.id), className: "flex items-start gap-3 p-3 cursor-pointer", children: [_jsxs(Avatar, { className: "h-6 w-6 mt-0.5 shrink-0", children: [_jsx(AvatarImage, { src: agent.avatarUrl, alt: agent.name }), _jsx(AvatarFallback, { style: { backgroundColor: agent.color || getAgentColor(agent.id), color: 'white' }, className: "text-[10px]", children: getAgentInitials(agent.name) })] }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium text-sm", children: agent.name }), isSelected && (_jsx(Check, { className: "h-4 w-4 text-primary shrink-0" }))] }), agent.description && (_jsx("p", { className: "text-xs text-muted-foreground mt-0.5 line-clamp-2", children: agent.description }))] })] }, agent.id));
51
- })] })] }));
52
- });
53
- TargetAgentSelector.displayName = 'TargetAgentSelector';
54
- /**
55
- * Badge displaying an agent with optional remove button.
56
- */
57
- export const AgentBadge = memo(({ agent, onRemove, showRemove = false, size = 'md', }) => {
58
- const color = agent.color || getAgentColor(agent.id);
59
- const avatarSize = size === 'sm' ? 'h-4 w-4' : 'h-5 w-5';
60
- const textSize = size === 'sm' ? 'text-xs' : 'text-sm';
61
- return (_jsxs(Badge, { variant: "secondary", className: "flex items-center gap-1.5 pr-1", style: { borderColor: color, borderWidth: 1 }, children: [_jsxs(Avatar, { className: avatarSize, children: [_jsx(AvatarImage, { src: agent.avatarUrl, alt: agent.name }), _jsx(AvatarFallback, { style: { backgroundColor: color, color: 'white' }, className: "text-[8px]", children: getAgentInitials(agent.name) })] }), _jsx("span", { className: textSize, children: agent.name }), showRemove && onRemove && (_jsx(Button, { variant: "ghost", size: "icon", className: "h-4 w-4 ml-0.5 hover:bg-destructive/20", onClick: (e) => {
62
- e.stopPropagation();
63
- onRemove();
64
- }, children: _jsx(X, { className: "h-3 w-3" }) }))] }));
65
- });
66
- AgentBadge.displayName = 'AgentBadge';
67
- //# sourceMappingURL=AgentSelectors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentSelectors.js","sourceRoot":"","sources":["../../../src/components/chat/AgentSelectors.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAiBzF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAwC,IAAI,CAAC,CAAC,EAC7E,MAAM,EACN,cAAc,EACd,oBAAoB,EACpB,KAAK,GAAG,MAAM,EACd,UAAU,GAAG,CAAC,EACd,QAAQ,GAAG,KAAK,GACjB,EAAE,EAAE;IACH,+CAA+C;IAC/C,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5E,sBAAsB;IACtB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAClC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3D,CAAC,gBAAgB,EAAE,cAAc,CAAC,CACnC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE;QAC5C,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,4CAA4C;YAC5C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,oBAAoB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,CAAC,GAAG,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC;IAEvD,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,SAAS,EAAC,6CAA6C,EACvD,QAAQ,EAAE,QAAQ,aAElB,KAAC,KAAK,IAAC,SAAS,EAAC,+BAA+B,GAAG,EACnD,cAAK,SAAS,EAAC,yBAAyB,YACrC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1B,8BACE,cAAK,SAAS,EAAC,mBAAmB,YAC/B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC1B,MAAC,MAAM,IAAgB,SAAS,EAAC,oCAAoC,aACnE,KAAC,WAAW,IAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,EACtD,KAAC,cAAc,IACb,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClF,SAAS,EAAC,YAAY,YAErB,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GACd,KAPN,KAAK,CAAC,EAAE,CAQZ,CACV,CAAC,GACE,EACL,WAAW,GAAG,CAAC,IAAI,CAClB,gBAAM,SAAS,EAAC,+BAA+B,kBAAG,WAAW,IAAQ,CACtE,IACA,CACJ,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,GAAQ,CACvD,GACG,EACN,KAAC,WAAW,IAAC,SAAS,EAAC,oBAAoB,GAAG,IACvC,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAC,WAAW,aACtD,MAAC,iBAAiB,IAAC,SAAS,EAAC,mCAAmC,aAC9D,0CAAyB,EACxB,cAAc,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,IAAI,CAClD,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,aAAa,EAAC,OAAO,EAAE,SAAS,2BAEnE,CACV,IACiB,EACpB,KAAC,qBAAqB,KAAG,EACxB,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACrD,MAAM,cAAc,GAAG,UAAU,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;wBAEjE,OAAO,CACL,MAAC,gBAAgB,IAEf,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,EAC1C,SAAS,EAAC,4CAA4C,EACtD,QAAQ,EAAE,cAAc,aAExB,MAAC,MAAM,IAAC,SAAS,EAAC,SAAS,aACzB,KAAC,WAAW,IAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,EACtD,KAAC,cAAc,IACb,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClF,SAAS,EAAC,aAAa,YAEtB,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GACd,IACV,EACT,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,8BAA8B,YAAE,KAAK,CAAC,IAAI,GAAO,EAC/D,KAAK,CAAC,WAAW,IAAI,CACpB,cAAK,SAAS,EAAC,wCAAwC,YAAE,KAAK,CAAC,WAAW,GAAO,CAClF,IACG,EACL,UAAU,IAAI,CACb,KAAC,KAAK,IAAC,SAAS,EAAC,+BAA+B,GAAG,CACpD,KAtBI,KAAK,CAAC,EAAE,CAuBI,CACpB,CAAC;oBACJ,CAAC,CAAC,IACkB,IACT,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAiB1D;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAuC,IAAI,CAAC,CAAC,EAC3E,MAAM,EACN,aAAa,EACb,cAAc,EACd,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,cAAc,EAC5B,QAAQ,GAAG,KAAK,GACjB,EAAE,EAAE;IACH,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5E,qBAAqB;IACrB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CACjC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,EAClD,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAClC,CAAC;IAEF,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,SAAS,EAAC,2DAA2D,EACrE,QAAQ,EAAE,QAAQ,aAElB,KAAC,MAAM,IAAC,SAAS,EAAC,+BAA+B,GAAG,EACnD,aAAa,CAAC,CAAC,CAAC,CACf,eAAK,SAAS,EAAC,yBAAyB,aACtC,MAAC,MAAM,IAAC,SAAS,EAAC,SAAS,aACzB,KAAC,WAAW,IAAC,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,GAAI,EACtE,KAAC,cAAc,IACb,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClG,SAAS,EAAC,aAAa,YAEtB,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,GACtB,IACV,EACT,eAAM,SAAS,EAAC,wBAAwB,YAAE,aAAa,CAAC,IAAI,GAAQ,IAChE,CACP,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,YAAE,WAAW,GAAQ,CAC7D,EACD,KAAC,WAAW,IAAC,SAAS,EAAC,oBAAoB,GAAG,IACvC,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAC,WAAW,aACtD,KAAC,iBAAiB,cAAE,KAAK,GAAqB,EAC9C,KAAC,qBAAqB,KAAG,EACxB,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,KAAK,aAAa,CAAC;wBAE9C,OAAO,CACL,MAAC,gBAAgB,IAEf,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EACvC,SAAS,EAAC,2CAA2C,aAErD,MAAC,MAAM,IAAC,SAAS,EAAC,yBAAyB,aACzC,KAAC,WAAW,IAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,EACtD,KAAC,cAAc,IACb,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClF,SAAS,EAAC,aAAa,YAEtB,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GACd,IACV,EACT,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,qBAAqB,YAAE,KAAK,CAAC,IAAI,GAAQ,EACxD,UAAU,IAAI,CACb,KAAC,KAAK,IAAC,SAAS,EAAC,+BAA+B,GAAG,CACpD,IACG,EACL,KAAK,CAAC,WAAW,IAAI,CACpB,YAAG,SAAS,EAAC,mDAAmD,YAC7D,KAAK,CAAC,WAAW,GAChB,CACL,IACG,KAzBD,KAAK,CAAC,EAAE,CA0BI,CACpB,CAAC;oBACJ,CAAC,CAAC,IACkB,IACT,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mBAAmB,CAAC,WAAW,GAAG,qBAAqB,CAAC;AASxD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAA8B,IAAI,CAAC,CAAC,EACzD,KAAK,EACL,QAAQ,EACR,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,IAAI,GACZ,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvD,OAAO,CACL,MAAC,KAAK,IACJ,OAAO,EAAC,WAAW,EACnB,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,aAE7C,MAAC,MAAM,IAAC,SAAS,EAAE,UAAU,aAC3B,KAAC,WAAW,IAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,EACtD,KAAC,cAAc,IACb,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EACjD,SAAS,EAAC,YAAY,YAErB,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GACd,IACV,EACT,eAAM,SAAS,EAAE,QAAQ,YAAG,KAAK,CAAC,IAAI,GAAQ,EAC7C,UAAU,IAAI,QAAQ,IAAI,CACzB,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,wCAAwC,EAClD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,QAAQ,EAAE,CAAC;gBACb,CAAC,YAED,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,GAClB,CACV,IACK,CACT,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import type { ActivityDisplayMode, AssistantActivityState, ChatConfig } from '../../types/chatTypes';
3
- type ActivityLabels = ChatConfig['labels'];
4
- interface AssistantActivityProps {
5
- activity?: AssistantActivityState;
6
- displayMode: ActivityDisplayMode;
7
- labels?: ActivityLabels;
8
- }
9
- export declare const AssistantActivity: React.NamedExoticComponent<AssistantActivityProps>;
10
- export {};
11
- //# sourceMappingURL=AssistantActivity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantActivity.d.ts","sourceRoot":"","sources":["../../../src/components/chat/AssistantActivity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,UAAU,EAAY,MAAM,uBAAuB,CAAC;AAQ/G,KAAK,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAE3C,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,WAAW,EAAE,mBAAmB,CAAC;IACjC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAgJD,eAAO,MAAM,iBAAiB,oDAwD5B,CAAC"}
@@ -1,82 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useEffect, useMemo, useState } from 'react';
3
- import { cn } from '../../lib/utils';
4
- import { Badge } from '../ui/badge';
5
- import { Button } from '../ui/button';
6
- import { Card, CardContent } from '../ui/card';
7
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
8
- import { Brain, ChevronDown, ChevronRight, LoaderCircle, Sparkles, Wrench } from 'lucide-react';
9
- const interpolate = (template, replacements) => (Object.entries(replacements).reduce((output, [key, value]) => output.replaceAll(`{{${key}}}`, String(value ?? '')), template));
10
- const resolveSummaryLabel = (activity, labels) => {
11
- const summary = activity.summary;
12
- if (summary.kind === 'using_tools') {
13
- if (summary.toolName) {
14
- return interpolate(labels?.activityToolRunning || 'Using {{tool}}...', {
15
- tool: summary.toolName,
16
- });
17
- }
18
- if (typeof summary.toolCount === 'number' && summary.toolCount > 1) {
19
- return interpolate(labels?.activityMultipleTools || 'Using {{count}} tools...', {
20
- count: summary.toolCount,
21
- });
22
- }
23
- return labels?.activityUsingTools || 'Using tools...';
24
- }
25
- if (summary.kind === 'preparing_answer') {
26
- return labels?.activityPreparingAnswer || 'Preparing answer...';
27
- }
28
- if (summary.kind === 'working') {
29
- return labels?.activityWorking || 'Working...';
30
- }
31
- return labels?.activityThinking || 'Thinking...';
32
- };
33
- const getStatusIcon = (toolCall) => {
34
- if (toolCall.status === 'failed') {
35
- return _jsx(Badge, { variant: "destructive", children: "failed" });
36
- }
37
- if (toolCall.status === 'completed') {
38
- return _jsx(Badge, { variant: "secondary", className: "bg-emerald-500/10 text-emerald-700 dark:text-emerald-300", children: "done" });
39
- }
40
- if (toolCall.status === 'running') {
41
- return _jsx(Badge, { variant: "secondary", className: "bg-primary/10 text-primary", children: "running" });
42
- }
43
- return _jsx(Badge, { variant: "secondary", children: "pending" });
44
- };
45
- const AssistantActivitySkeleton = memo(function AssistantActivitySkeleton() {
46
- return (_jsxs("div", { className: "mb-3 flex items-center gap-3 rounded-lg border border-border/50 bg-muted/20 px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "inline-block h-2 w-2 rounded-full bg-primary/80 animate-pulse" }), _jsx("span", { className: "inline-block h-2 w-2 rounded-full bg-primary/60 animate-pulse [animation-delay:120ms]" }), _jsx("span", { className: "inline-block h-2 w-2 rounded-full bg-primary/40 animate-pulse [animation-delay:240ms]" })] }), _jsx("div", { className: "h-3 w-28 rounded-full bg-muted animate-pulse" })] }));
47
- });
48
- const AssistantActivitySummary = memo(function AssistantActivitySummary({ activity, labels, }) {
49
- const summaryLabel = useMemo(() => resolveSummaryLabel(activity, labels), [activity, labels]);
50
- const isActive = activity.isActive;
51
- const icon = activity.summary.kind === 'using_tools'
52
- ? _jsx(Wrench, { className: cn('h-4 w-4 shrink-0', isActive ? 'text-primary' : 'text-muted-foreground') })
53
- : activity.summary.kind === 'preparing_answer'
54
- ? _jsx(Sparkles, { className: cn('h-4 w-4 shrink-0', isActive ? 'text-primary' : 'text-muted-foreground') })
55
- : _jsx(Brain, { className: cn('h-4 w-4 shrink-0', isActive ? 'text-primary' : 'text-muted-foreground') });
56
- return (_jsxs("div", { className: cn('flex items-center gap-2 rounded-lg border px-3 py-2 text-sm transition-colors', isActive ? 'border-primary/30 bg-primary/5 text-foreground' : 'border-border/60 bg-muted/20 text-muted-foreground'), children: [icon, _jsx("span", { className: "min-w-0 flex-1 truncate", children: summaryLabel }), isActive && _jsx(LoaderCircle, { className: "h-4 w-4 shrink-0 animate-spin text-primary" })] }));
57
- });
58
- const AssistantActivityDetails = memo(function AssistantActivityDetails({ activity, }) {
59
- return (_jsxs("div", { className: "space-y-3 pt-3", children: [activity.reasoning && (_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Reasoning" }), _jsx("div", { className: "whitespace-pre-wrap break-words text-sm leading-6 text-muted-foreground", children: activity.reasoning })] })), Array.isArray(activity.toolCalls) && activity.toolCalls.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Tools" }), activity.toolCalls.map((toolCall) => (_jsx(Card, { className: "border-border/60 bg-background/70", children: _jsxs(CardContent, { className: "space-y-2 px-3 py-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("div", { className: "min-w-0", children: _jsx("div", { className: "truncate text-sm font-medium", children: toolCall.name }) }), getStatusIcon(toolCall)] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { children: [_jsx("div", { className: "mb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: "Args" }), _jsx("pre", { className: "overflow-x-auto rounded-md bg-muted/70 p-2 text-xs text-muted-foreground", children: JSON.stringify(toolCall.arguments, null, 2) })] }), typeof toolCall.result !== 'undefined' && (_jsxs("div", { children: [_jsx("div", { className: "mb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: "Result" }), _jsx("pre", { className: "overflow-x-auto rounded-md bg-muted/70 p-2 text-xs text-muted-foreground", children: JSON.stringify(toolCall.result, null, 2) })] }))] })] }) }, toolCall.id)))] }))] }));
60
- });
61
- export const AssistantActivity = memo(function AssistantActivity({ activity, displayMode, labels, }) {
62
- if (!activity)
63
- return null;
64
- if (displayMode === 'hidden') {
65
- return activity.isActive ? _jsx(AssistantActivitySkeleton, {}) : null;
66
- }
67
- if (displayMode === 'summary') {
68
- if (!activity.isActive && activity.isComplete)
69
- return null;
70
- return (_jsx("div", { className: "mb-3", children: _jsx(AssistantActivitySummary, { activity: activity, labels: labels }) }));
71
- }
72
- const hasDetails = Boolean(activity.reasoning) || Boolean(activity.toolCalls?.length);
73
- const defaultOpen = activity.isActive && hasDetails;
74
- const [open, setOpen] = useState(defaultOpen);
75
- useEffect(() => {
76
- if (activity.isActive && hasDetails) {
77
- setOpen(true);
78
- }
79
- }, [activity.isActive, hasDetails]);
80
- return (_jsx("div", { className: "mb-3", children: _jsx(Collapsible, { open: open, onOpenChange: setOpen, children: _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "min-w-0 flex-1", children: _jsx(AssistantActivitySummary, { activity: activity, labels: labels }) }), hasDetails && (_jsx(CollapsibleTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", size: "sm", className: "h-9 shrink-0 px-2 text-xs text-muted-foreground", children: [open ? (labels?.activityHideDetails || 'Hide details') : (labels?.activityShowDetails || 'Show details'), open ? _jsx(ChevronDown, { className: "ml-1 h-3.5 w-3.5" }) : _jsx(ChevronRight, { className: "ml-1 h-3.5 w-3.5" })] }) }))] }), hasDetails && (_jsx(CollapsibleContent, { className: "overflow-hidden rounded-lg border border-border/60 bg-muted/10 px-3", children: _jsx(AssistantActivityDetails, { activity: activity }) }))] }) }) }));
81
- });
82
- //# sourceMappingURL=AssistantActivity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantActivity.js","sourceRoot":"","sources":["../../../src/components/chat/AssistantActivity.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAUhG,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,YAAyD,EAAU,EAAE,CAAC,CAC3G,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACjC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAC9E,QAAQ,CACT,CACF,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,QAAgC,EAChC,MAAuB,EACf,EAAE;IACV,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAEjC,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC,MAAM,EAAE,mBAAmB,IAAI,mBAAmB,EAAE;gBACrE,IAAI,EAAE,OAAO,CAAC,QAAQ;aACvB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACnE,OAAO,WAAW,CAAC,MAAM,EAAE,qBAAqB,IAAI,0BAA0B,EAAE;gBAC9E,KAAK,EAAE,OAAO,CAAC,SAAS;aACzB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,EAAE,kBAAkB,IAAI,gBAAgB,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACxC,OAAO,MAAM,EAAE,uBAAuB,IAAI,qBAAqB,CAAC;IAClE,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,MAAM,EAAE,eAAe,IAAI,YAAY,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,EAAE,gBAAgB,IAAI,aAAa,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,QAAkB,EAAE,EAAE;IAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAC,KAAK,IAAC,OAAO,EAAC,aAAa,uBAAe,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAC,KAAK,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,0DAA0D,qBAAa,CAAC;IACtH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,KAAC,KAAK,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,4BAA4B,wBAAgB,CAAC;IAC3F,CAAC;IACD,OAAO,KAAC,KAAK,IAAC,OAAO,EAAC,WAAW,wBAAgB,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAI,CAAC,SAAS,yBAAyB;IACvE,OAAO,CACL,eAAK,SAAS,EAAC,uFAAuF,aACpG,eAAK,SAAS,EAAC,2BAA2B,aACxC,eAAM,SAAS,EAAC,+DAA+D,GAAG,EAClF,eAAM,SAAS,EAAC,uFAAuF,GAAG,EAC1G,eAAM,SAAS,EAAC,uFAAuF,GAAG,IACtG,EACN,cAAK,SAAS,EAAC,8CAA8C,GAAG,IAC5D,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAI,CAAC,SAAS,wBAAwB,CAAC,EACtE,QAAQ,EACR,MAAM,GAIP;IACC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa;QAClD,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAI;QACpG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,kBAAkB;YAC5C,CAAC,CAAC,KAAC,QAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAI;YACtG,CAAC,CAAC,KAAC,KAAK,IAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAI,CAAC;IAExG,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAChB,+EAA+E,EAC/E,QAAQ,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,oDAAoD,CACnH,aACE,IAAI,EACL,eAAM,SAAS,EAAC,yBAAyB,YAAE,YAAY,GAAQ,EAC9D,QAAQ,IAAI,KAAC,YAAY,IAAC,SAAS,EAAC,4CAA4C,GAAG,IAChF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAI,CAAC,SAAS,wBAAwB,CAAC,EACtE,QAAQ,GAGT;IACC,OAAO,CACL,eAAK,SAAS,EAAC,gBAAgB,aAC5B,QAAQ,CAAC,SAAS,IAAI,CACrB,eAAK,SAAS,EAAC,WAAW,aACxB,cAAK,SAAS,EAAC,mEAAmE,0BAAgB,EAClG,cAAK,SAAS,EAAC,yEAAyE,YACrF,QAAQ,CAAC,SAAS,GACf,IACF,CACP,EACA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACrE,eAAK,SAAS,EAAC,WAAW,aACxB,cAAK,SAAS,EAAC,mEAAmE,sBAAY,EAC7F,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpC,KAAC,IAAI,IAAmB,SAAS,EAAC,mCAAmC,YACnE,MAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,aAC1C,eAAK,SAAS,EAAC,yCAAyC,aACtD,cAAK,SAAS,EAAC,SAAS,YACtB,cAAK,SAAS,EAAC,8BAA8B,YAAE,QAAQ,CAAC,IAAI,GAAO,GAC/D,EACL,aAAa,CAAC,QAAQ,CAAC,IACpB,EACN,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,cAAK,SAAS,EAAC,4EAA4E,qBAAW,EACtG,cAAK,SAAS,EAAC,0EAA0E,YACtF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GACxC,IACF,EACL,OAAO,QAAQ,CAAC,MAAM,KAAK,WAAW,IAAI,CACzC,0BACE,cAAK,SAAS,EAAC,4EAA4E,uBAAa,EACxG,cAAK,SAAS,EAAC,0EAA0E,YACtF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GACrC,IACF,CACP,IACG,IACM,IAxBL,QAAQ,CAAC,EAAE,CAyBf,CACR,CAAC,IACE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,EAC/D,QAAQ,EACR,WAAW,EACX,MAAM,GACiB;IACvB,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAC,yBAAyB,KAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC3D,OAAO,CACL,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,wBAAwB,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAI,GAC5D,CACP,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAEpC,OAAO,CACL,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,YAC5C,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,wBAAwB,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAI,GAC5D,EACL,UAAU,IAAI,CACb,KAAC,kBAAkB,IAAC,OAAO,kBACzB,MAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,iDAAiD,aAC1F,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,mBAAmB,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,mBAAmB,IAAI,cAAc,CAAC,EACxG,IAAI,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,SAAS,EAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,SAAS,EAAC,kBAAkB,GAAG,IAC7F,GACU,CACtB,IACG,EACL,UAAU,IAAI,CACb,KAAC,kBAAkB,IAAC,SAAS,EAAC,qEAAqE,YACjG,KAAC,wBAAwB,IAAC,QAAQ,EAAE,QAAQ,GAAI,GAC7B,CACtB,IACG,GACM,GACV,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,56 +0,0 @@
1
- import React from 'react';
2
- import { ReactNode } from 'react';
3
- import type { AgentOption } from '../../types/chatTypes';
4
- export interface ChatHeaderConfig {
5
- branding?: {
6
- logo?: ReactNode;
7
- title?: string;
8
- subtitle?: string;
9
- };
10
- agentSelector?: {
11
- enabled?: boolean;
12
- label?: string;
13
- hideIfSingle?: boolean;
14
- };
15
- labels?: {
16
- newThread?: string;
17
- exportData?: string;
18
- importData?: string;
19
- clearAll?: string;
20
- sidebarToggle?: string;
21
- customComponentToggle?: string;
22
- settings?: string;
23
- toggleDarkMode?: string;
24
- lightMode?: string;
25
- darkMode?: string;
26
- };
27
- customComponent?: {
28
- label?: string;
29
- icon?: ReactNode;
30
- onClick?: () => void;
31
- };
32
- /** Additional actions to render in the header (before the settings menu) */
33
- headerActions?: ReactNode;
34
- }
35
- export interface ChatHeaderProps {
36
- config: ChatHeaderConfig;
37
- currentThreadTitle?: string | null;
38
- onSidebarToggle?: () => void;
39
- onCustomComponentToggle?: () => void;
40
- onNewThread?: () => void;
41
- onExportData?: () => void;
42
- onImportData?: (file: File) => void;
43
- onClearAll?: () => void;
44
- showCustomComponentButton?: boolean;
45
- isMobile?: boolean;
46
- showAgentSelector?: boolean;
47
- isMultiAgentMode?: boolean;
48
- agentOptions?: AgentOption[];
49
- selectedAgentId?: string | null;
50
- onSelectAgent?: (agentId: string) => void;
51
- participantIds?: string[];
52
- onParticipantsChange?: (ids: string[]) => void;
53
- className?: string;
54
- }
55
- export declare const ChatHeader: React.FC<ChatHeaderProps>;
56
- //# sourceMappingURL=ChatHeader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,eAAe,CAAC,EAAE;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,4EAA4E;IAC5E,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmRhD,CAAC"}
@@ -1,71 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { Card, CardHeader } from '../ui/card';
4
- import { Button } from '../ui/button';
5
- import { Avatar, AvatarFallback, AvatarImage } from '../ui/avatar';
6
- import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip';
7
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '../ui/dropdown-menu';
8
- import { Bot, MoreVertical, Download, Upload, Trash2, Plus, Menu, Moon, Sun, ChevronDown, Check, } from 'lucide-react';
9
- import { SidebarTrigger } from '../ui/sidebar';
10
- import { ParticipantsSelector } from './AgentSelectors';
11
- export const ChatHeader = ({ config, currentThreadTitle, onSidebarToggle: _onSidebarToggle, onCustomComponentToggle, onNewThread, onExportData, onImportData, onClearAll, showCustomComponentButton, isMobile, showAgentSelector = false, isMultiAgentMode = false, agentOptions = [], selectedAgentId = null, onSelectAgent, participantIds, onParticipantsChange, className = '', }) => {
12
- const [isDarkMode, setIsDarkMode] = React.useState(() => {
13
- if (typeof window === 'undefined')
14
- return false;
15
- return document.documentElement.classList.contains('dark');
16
- });
17
- React.useEffect(() => {
18
- const observer = new MutationObserver(() => {
19
- setIsDarkMode(document.documentElement.classList.contains('dark'));
20
- });
21
- observer.observe(document.documentElement, {
22
- attributes: true,
23
- attributeFilter: ['class'],
24
- });
25
- // Listen for system theme changes
26
- const mediaQuery = globalThis.matchMedia('(prefers-color-scheme: dark)');
27
- const handleSystemThemeChange = (e) => {
28
- const savedTheme = localStorage.getItem('theme');
29
- if (!savedTheme) {
30
- // Only update if user hasn't set an explicit preference
31
- setIsDarkMode(e.matches);
32
- }
33
- };
34
- mediaQuery.addEventListener('change', handleSystemThemeChange);
35
- return () => {
36
- observer.disconnect();
37
- mediaQuery.removeEventListener('change', handleSystemThemeChange);
38
- };
39
- }, []);
40
- const toggleDarkMode = () => {
41
- const isDark = document.documentElement.classList.contains('dark');
42
- if (isDark) {
43
- document.documentElement.classList.remove('dark');
44
- localStorage.setItem('theme', 'light');
45
- }
46
- else {
47
- document.documentElement.classList.add('dark');
48
- localStorage.setItem('theme', 'dark');
49
- }
50
- setIsDarkMode(!isDark);
51
- };
52
- const handleImportClick = () => {
53
- const input = document.createElement('input');
54
- input.type = 'file';
55
- input.accept = '.json';
56
- input.onchange = (e) => {
57
- const file = e.target.files?.[0];
58
- if (file && onImportData) {
59
- onImportData(file);
60
- }
61
- };
62
- input.click();
63
- };
64
- const selectedAgent = agentOptions.find((agent) => agent.id === selectedAgentId) || null;
65
- const agentPlaceholder = config.agentSelector?.label || 'Select agent';
66
- return (_jsx(Card, { "data-chat-header": true, className: `py-0 border-b rounded-none relative z-10 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80 ${className}`, style: isMobile ? { paddingTop: 'env(safe-area-inset-top)' } : undefined, children: _jsx(CardHeader, { className: "p-2", children: _jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(SidebarTrigger, { className: "-ml-1" }) }), _jsx(TooltipContent, { children: config.labels?.sidebarToggle || 'Toggle Sidebar' })] }), showAgentSelector && isMultiAgentMode && onParticipantsChange && (_jsx(ParticipantsSelector, { agents: agentOptions, participantIds: participantIds ?? agentOptions.map(a => a.id), onParticipantsChange: onParticipantsChange })), showAgentSelector && !isMultiAgentMode && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-9 px-3 gap-1.5 font-medium text-base hover:bg-accent/50", children: [selectedAgent?.avatarUrl ? (_jsxs(Avatar, { className: "h-5 w-5", children: [_jsx(AvatarImage, { src: selectedAgent.avatarUrl, alt: selectedAgent.name }), _jsx(AvatarFallback, { className: "text-[10px]", children: selectedAgent.name.charAt(0).toUpperCase() })] })) : null, _jsx("span", { className: "max-w-[200px] truncate", children: selectedAgent?.name || agentPlaceholder }), _jsx(ChevronDown, { className: "h-4 w-4 opacity-50" })] }) }), _jsx(DropdownMenuContent, { align: "start", className: "w-[280px]", children: agentOptions.map((agent) => {
67
- const isSelected = agent.id === selectedAgentId;
68
- return (_jsxs(DropdownMenuItem, { onClick: () => onSelectAgent?.(agent.id), className: "flex items-start gap-3 p-3 cursor-pointer", children: [agent.avatarUrl ? (_jsxs(Avatar, { className: "h-6 w-6 mt-0.5 shrink-0", children: [_jsx(AvatarImage, { src: agent.avatarUrl, alt: agent.name }), _jsx(AvatarFallback, { className: "text-[10px]", children: agent.name.charAt(0).toUpperCase() })] })) : (_jsx("div", { className: "h-6 w-6 mt-0.5 shrink-0 flex items-center justify-center rounded-full bg-primary/10", children: _jsx(Bot, { className: "h-3.5 w-3.5 text-primary" }) })), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium text-sm", children: agent.name }), isSelected && (_jsx(Check, { className: "h-4 w-4 text-primary shrink-0" }))] }), agent.description && (_jsx("p", { className: "text-xs text-muted-foreground mt-0.5 line-clamp-2", children: agent.description }))] })] }, agent.id));
69
- }) })] })), !showAgentSelector && isMobile && (_jsx("span", { className: "text-sm font-medium truncate max-w-[150px] ml-2", children: currentThreadTitle || config.branding?.title || 'Chat' }))] }), _jsx("div", { className: "flex-1" }), _jsxs("div", { className: "flex items-center gap-1", children: [showCustomComponentButton && config.customComponent && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-8 w-8", onClick: onCustomComponentToggle, children: config.customComponent.icon || _jsx(Menu, { className: "h-4 w-4" }) }) }), _jsx(TooltipContent, { children: config.customComponent.label || config.labels?.customComponentToggle || 'Toggle' })] })), config.headerActions, _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-8 w-8", children: _jsx(MoreVertical, { className: "h-4 w-4" }) }) }), _jsxs(DropdownMenuContent, { align: "end", children: [onNewThread && (_jsxs(_Fragment, { children: [_jsxs(DropdownMenuItem, { onClick: () => onNewThread?.(), className: "font-medium text-primary", children: [_jsx(Plus, { className: "h-4 w-4 mr-2" }), config.labels?.newThread || 'New Thread'] }), _jsx(DropdownMenuSeparator, {})] })), onExportData && (_jsxs(DropdownMenuItem, { onClick: onExportData, children: [_jsx(Download, { className: "h-4 w-4 mr-2" }), config.labels?.exportData || 'Export Data'] })), onImportData && (_jsxs(DropdownMenuItem, { onClick: handleImportClick, children: [_jsx(Upload, { className: "h-4 w-4 mr-2" }), config.labels?.importData || 'Import Data'] })), (onExportData || onImportData) && (_jsx(DropdownMenuSeparator, {})), _jsx(DropdownMenuItem, { onClick: toggleDarkMode, children: isDarkMode ? (_jsxs(_Fragment, { children: [_jsx(Sun, { className: "h-4 w-4 mr-2" }), config.labels?.lightMode || 'Light Mode'] })) : (_jsxs(_Fragment, { children: [_jsx(Moon, { className: "h-4 w-4 mr-2" }), config.labels?.darkMode || 'Dark Mode'] })) }), onClearAll && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: onClearAll, className: "text-destructive", children: [_jsx(Trash2, { className: "h-4 w-4 mr-2" }), config.labels?.clearAll || 'Clear All'] })] }))] })] })] })] }) }) }));
70
- };
71
- //# sourceMappingURL=ChatHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatHeader.js","sourceRoot":"","sources":["../../../src/components/chat/ChatHeader.tsx"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import React from 'react';
2
- import { AgentOption, MediaAttachment, ChatConfig } from '../../types/chatTypes';
3
- interface ChatInputProps {
4
- value: string;
5
- onChange: (value: string) => void;
6
- onSubmit: (content: string, attachments: MediaAttachment[]) => void;
7
- attachments: MediaAttachment[];
8
- onAttachmentsChange: (attachments: MediaAttachment[]) => void;
9
- placeholder?: string;
10
- disabled?: boolean;
11
- isGenerating?: boolean;
12
- onStopGeneration?: () => void;
13
- enableFileUpload?: boolean;
14
- enableAudioRecording?: boolean;
15
- maxAttachments?: number;
16
- maxFileSize?: number;
17
- acceptedFileTypes?: string[];
18
- className?: string;
19
- config?: ChatConfig;
20
- mentionAgents?: AgentOption[];
21
- onTargetAgentChange?: (agentId: string | null) => void;
22
- }
23
- export declare const ChatInput: React.FC<ChatInputProps>;
24
- export {};
25
- //# sourceMappingURL=ChatInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EACL,WAAW,EACX,eAAe,EAEf,UAAU,EAKX,MAAM,uBAAuB,CAAC;AAwB/B,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IACpE,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,mBAAmB,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACxD;AA+QD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAm5B7C,CAAC"}