@copilotz/chat-ui 0.7.4 → 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 +3 -3
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +3 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/styles.css +6 -3
  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
@@ -1,108 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState, useRef, useEffect } from 'react';
3
- import { formatDate } from '../../lib/utils';
4
- import { Button } from '../ui/button';
5
- import { Input } from '../ui/input';
6
- import { Card, CardContent, CardHeader, CardTitle } from '../ui/card';
7
- import { Badge } from '../ui/badge';
8
- import { ScrollArea } from '../ui/scroll-area';
9
- import { Separator } from '../ui/separator';
10
- import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '../ui/dialog';
11
- import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '../ui/alert-dialog';
12
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '../ui/dropdown-menu';
13
- import { TooltipProvider } from '../ui/tooltip';
14
- import { Plus, MessageSquare, MoreVertical, Edit2, Trash2, Archive, Search, Filter, Calendar, Hash, X, Check, } from 'lucide-react';
15
- // Individual thread item component
16
- const ThreadItem = ({ thread, isActive, config, onSelect, onRename, onDelete, onArchive }) => {
17
- const [isEditing, setIsEditing] = useState(false);
18
- const [editTitle, setEditTitle] = useState(thread.title);
19
- const inputRef = useRef(null);
20
- useEffect(() => {
21
- if (isEditing && inputRef.current) {
22
- inputRef.current.focus();
23
- inputRef.current.select();
24
- }
25
- }, [isEditing]);
26
- const handleSaveEdit = () => {
27
- const trimmedTitle = editTitle.trim();
28
- if (trimmedTitle && trimmedTitle !== thread.title) {
29
- onRename(trimmedTitle);
30
- }
31
- setIsEditing(false);
32
- };
33
- const handleCancelEdit = () => {
34
- setEditTitle(thread.title);
35
- setIsEditing(false);
36
- };
37
- const handleKeyDown = (e) => {
38
- if (e.key === 'Enter') {
39
- handleSaveEdit();
40
- }
41
- else if (e.key === 'Escape') {
42
- handleCancelEdit();
43
- }
44
- };
45
- return (_jsx(Card, { className: `cursor-pointer transition-all duration-200 hover:shadow-md py-0 ${isActive ? 'ring-2 ring-primary bg-primary/5' : 'hover:bg-muted/50'}`, children: _jsx(CardContent, { className: "p-3 max-w-sm", children: _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("div", { className: "flex-1 min-w-0", onClick: onSelect, children: isEditing ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Input, { ref: inputRef, value: editTitle, onChange: (e) => setEditTitle(e.target.value), onKeyDown: handleKeyDown, onBlur: handleSaveEdit, className: "h-8 text-sm", placeholder: config?.labels?.threadNamePlaceholder || "Conversation name" }), _jsx(Button, { size: "sm", variant: "ghost", onClick: handleSaveEdit, children: _jsx(Check, { className: "h-3 w-3" }) }), _jsx(Button, { size: "sm", variant: "ghost", onClick: handleCancelEdit, children: _jsx(X, { className: "h-3 w-3" }) })] })) : (_jsxs(_Fragment, { children: [_jsx("h4", { className: "font-medium text-sm truncate mb-1", children: thread.title }), _jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Hash, { className: "h-3 w-3" }), thread.messageCount, " msgs"] }), _jsx(Separator, { orientation: "vertical", className: "h-3" }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Calendar, { className: "h-3 w-3" }), formatDate(thread.updatedAt, config?.labels)] }), thread.isArchived && (_jsxs(_Fragment, { children: [_jsx(Separator, { orientation: "vertical", className: "h-3" }), _jsxs(Badge, { variant: "secondary", className: "text-xs", children: [_jsx(Archive, { className: "h-2 w-2 mr-1" }), config?.labels?.archiveThread || 'Archived'] })] }))] })] })) }), !isEditing && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6 m-auto", children: _jsx(MoreVertical, { className: "h-3 w-3" }) }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsxs(DropdownMenuItem, { onClick: () => setIsEditing(true), children: [_jsx(Edit2, { className: "h-4 w-4 mr-2" }), config?.labels?.renameThread || 'Rename'] }), _jsxs(DropdownMenuItem, { onClick: onArchive, children: [_jsx(Archive, { className: "h-4 w-4 mr-2" }), thread.isArchived
46
- ? (config?.labels?.unarchiveThread || 'Unarchive')
47
- : (config?.labels?.archiveThread || 'Archive')] }), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: onDelete, className: "text-destructive", children: [_jsx(Trash2, { className: "h-4 w-4 mr-2" }), config?.labels?.deleteThread || 'Delete'] })] })] }))] }) }) }));
48
- };
49
- // Create thread dialog
50
- const CreateThreadDialog = ({ onCreateThread, config }) => {
51
- const [title, setTitle] = useState('');
52
- const [isOpen, setIsOpen] = useState(false);
53
- const handleCreate = () => {
54
- onCreateThread(title.trim() || undefined);
55
- setTitle('');
56
- setIsOpen(false);
57
- };
58
- return (_jsxs(Dialog, { open: isOpen, onOpenChange: setIsOpen, children: [_jsx(DialogTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", className: "w-full", children: [_jsx(Plus, { className: "h-4 w-4 mr-2" }), config?.labels?.createNewThread || 'New Conversation'] }) }), _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: config?.labels?.createNewThread || 'Create New Conversation' }), _jsx(DialogDescription, { children: "Give your new conversation a name or leave blank to auto-generate one." })] }), _jsx(Input, { value: title, onChange: (e) => setTitle(e.target.value), placeholder: config?.labels?.threadNamePlaceholder || "Conversation name (optional)", onKeyDown: (e) => e.key === 'Enter' && handleCreate(), autoFocus: true }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: () => setIsOpen(false), children: config?.labels?.cancel || 'Cancel' }), _jsx(Button, { onClick: handleCreate, children: config?.labels?.create || 'Create' })] })] })] }));
59
- };
60
- export const ThreadManager = ({ threads, currentThreadId, config, onCreateThread, onSelectThread, onRenameThread, onDeleteThread, onArchiveThread, isOpen = false, onClose, className = '', }) => {
61
- const [searchQuery, setSearchQuery] = useState('');
62
- const [showArchived, setShowArchived] = useState(false);
63
- const [deleteThreadId, setDeleteThreadId] = useState(null);
64
- // Filter threads based on search and archive filter
65
- const filteredThreads = threads.filter(thread => {
66
- const title = (thread.title ?? '').toString();
67
- const matchesSearch = title.toLowerCase().includes(searchQuery.toLowerCase());
68
- const matchesArchiveFilter = showArchived || !thread.isArchived;
69
- return matchesSearch && matchesArchiveFilter;
70
- });
71
- // Group threads by date
72
- const groupedThreads = filteredThreads.reduce((groups, thread) => {
73
- const date = new Date(thread.updatedAt);
74
- const today = new Date();
75
- const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000);
76
- let groupKey;
77
- if (date.toDateString() === today.toDateString()) {
78
- groupKey = config?.labels?.today || 'Today';
79
- }
80
- else if (date.toDateString() === yesterday.toDateString()) {
81
- groupKey = config?.labels?.yesterday || 'Yesterday';
82
- }
83
- else {
84
- groupKey = date.toLocaleDateString('en-US', {
85
- weekday: 'long',
86
- day: '2-digit',
87
- month: 'long',
88
- });
89
- }
90
- if (!groups[groupKey]) {
91
- groups[groupKey] = [];
92
- }
93
- groups[groupKey].push(thread);
94
- return groups;
95
- }, {});
96
- const handleDeleteThread = (threadId) => {
97
- onDeleteThread?.(threadId);
98
- setDeleteThreadId(null);
99
- };
100
- if (!isOpen)
101
- return null;
102
- return (_jsx(TooltipProvider, { children: _jsxs("div", { className: `fixed inset-0 z-50 bg-background/80 backdrop-blur-sm ${className}`, children: [_jsx("div", { className: "fixed left-0 top-0 h-full w-full max-w-md border-r bg-background shadow-lg", children: _jsxs(Card, { className: "h-full border-0 rounded-none", children: [_jsxs(CardHeader, { className: "border-b", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(MessageSquare, { className: "h-5 w-5" }), config?.labels?.newChat || 'Conversations'] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: onClose, children: _jsx(X, { className: "h-4 w-4" }) })] }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { placeholder: config?.labels?.search || "Search conversations...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), className: "pl-9" })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs(Button, { variant: "outline", size: "sm", onClick: () => setShowArchived(!showArchived), className: "text-xs", children: [_jsx(Filter, { className: "h-3 w-3 mr-1" }), showArchived
103
- ? (config?.labels?.hideArchived || 'Hide Archived')
104
- : (config?.labels?.showArchived || 'Show Archived')] }), _jsxs(Badge, { variant: "secondary", className: "text-xs", children: [filteredThreads.length, " / ", threads.length] })] })] })] }), _jsxs(CardContent, { className: "p-0 flex-1", children: [_jsx("div", { className: "p-4", children: onCreateThread && (_jsx(CreateThreadDialog, { onCreateThread: onCreateThread, config: config })) }), _jsx(ScrollArea, { className: "h-[calc(100vh-280px)]", children: _jsx("div", { className: "px-4 pb-4 space-y-4", children: Object.keys(groupedThreads).length === 0 ? (_jsxs("div", { className: "text-center py-8 text-muted-foreground", children: [_jsx(MessageSquare, { className: "h-12 w-12 mx-auto mb-3 opacity-50" }), _jsx("p", { className: "text-sm", children: searchQuery
105
- ? (config?.labels?.noThreadsFound || 'No conversations found')
106
- : (config?.labels?.noThreadsYet || 'No conversations yet') })] })) : (Object.entries(groupedThreads).map(([group, groupThreads]) => (_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-medium text-muted-foreground mb-2 px-2", children: group }), _jsx("div", { className: "space-y-2", children: groupThreads.map((thread) => (_jsx(ThreadItem, { thread: thread, isActive: currentThreadId === thread.id, config: config, onSelect: () => onSelectThread?.(thread.id), onRename: (newTitle) => onRenameThread?.(thread.id, newTitle), onDelete: () => setDeleteThreadId(thread.id), onArchive: () => onArchiveThread?.(thread.id) }, thread.id))) })] }, group)))) }) })] })] }) }), deleteThreadId && (_jsx(AlertDialog, { open: !!deleteThreadId, onOpenChange: () => setDeleteThreadId(null), children: _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: config?.labels?.deleteConfirmTitle || 'Delete Conversation' }), _jsx(AlertDialogDescription, { children: config?.labels?.deleteConfirmDescription || 'Are you sure you want to delete this conversation? This action cannot be undone.' })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: config?.labels?.cancel || 'Cancel' }), _jsx(AlertDialogAction, { onClick: () => deleteThreadId && handleDeleteThread(deleteThreadId), className: "bg-destructive text-destructive-foreground hover:bg-destructive/90", children: config?.labels?.deleteThread || 'Delete' })] })] }) }))] }) }));
107
- };
108
- //# sourceMappingURL=ThreadManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThreadManager.js","sourceRoot":"","sources":["../../../src/components/chat/ThreadManager.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import type { ChatUserContext } from '../../types/chatTypes';
3
- type Setter = (next: Partial<ChatUserContext> | ((prev: ChatUserContext) => Partial<ChatUserContext>)) => void;
4
- interface ChatUserContextValue {
5
- context: ChatUserContext;
6
- setContext: Setter;
7
- resetContext: () => void;
8
- }
9
- export declare const ChatUserContextProvider: React.FC<{
10
- children: React.ReactNode;
11
- initial?: Partial<ChatUserContext>;
12
- }>;
13
- export declare function useChatUserContext(): ChatUserContextValue;
14
- export {};
15
- //# sourceMappingURL=UserContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserContext.d.ts","sourceRoot":"","sources":["../../../src/components/chat/UserContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+E,MAAM,OAAO,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC;AAE/G,UAAU,oBAAoB;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAID,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAAE,CA+B/G,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAIzD"}
@@ -1,39 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
3
- const Ctx = createContext(undefined);
4
- export const ChatUserContextProvider = ({ children, initial }) => {
5
- const [ctx, setCtx] = useState(() => ({
6
- updatedAt: Date.now(),
7
- ...(initial ?? {}),
8
- }));
9
- useEffect(() => {
10
- if (!initial)
11
- return;
12
- setCtx(prev => {
13
- const keys = Object.keys(initial);
14
- const hasChanges = keys.some(k => prev[k] !== initial[k]);
15
- if (!hasChanges)
16
- return prev;
17
- return { ...prev, ...initial, updatedAt: Date.now() };
18
- });
19
- }, [initial]);
20
- const setPartial = useCallback((next) => {
21
- setCtx(prev => {
22
- const partial = typeof next === 'function' ? next(prev) : next;
23
- return { ...prev, ...partial, updatedAt: Date.now() };
24
- });
25
- }, []);
26
- const value = useMemo(() => ({
27
- context: ctx,
28
- setContext: setPartial,
29
- resetContext: () => setCtx({ updatedAt: Date.now() })
30
- }), [ctx, setPartial]);
31
- return _jsx(Ctx.Provider, { value: value, children: children });
32
- };
33
- export function useChatUserContext() {
34
- const v = useContext(Ctx);
35
- if (!v)
36
- throw new Error('useChatUserContext must be used within ChatUserContextProvider');
37
- return v;
38
- }
39
- //# sourceMappingURL=UserContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserContext.js","sourceRoot":"","sources":["../../../src/components/chat/UserContext.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAWpG,MAAM,GAAG,GAAG,aAAa,CAAmC,SAAS,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,uBAAuB,GAChC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAkB,GAAG,EAAE,CAAC,CAAC;QACrD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;KACnB,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,CAAC,IAAI,CAAC,EAAE;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAA6B,CAAC;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,UAAU,GAAG,WAAW,CAAS,CAAC,IAAI,EAAE,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,EAAE;YACZ,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/D,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,OAAO,CAAuB,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;KACtD,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvB,OAAO,KAAC,GAAG,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAgB,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAC1F,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,38 +0,0 @@
1
- import React from 'react';
2
- export interface UserMenuConfig {
3
- labels?: {
4
- profile?: string;
5
- settings?: string;
6
- theme?: string;
7
- lightMode?: string;
8
- darkMode?: string;
9
- systemTheme?: string;
10
- logout?: string;
11
- guest?: string;
12
- };
13
- }
14
- export interface UserMenuUser {
15
- id: string;
16
- name?: string;
17
- email?: string;
18
- avatar?: string;
19
- }
20
- export interface UserMenuCallbacks {
21
- onViewProfile?: () => void;
22
- onOpenSettings?: () => void;
23
- onThemeChange?: (theme: 'light' | 'dark' | 'system') => void;
24
- onLogout?: () => void;
25
- }
26
- export interface UserMenuProps {
27
- user?: UserMenuUser | null;
28
- config?: UserMenuConfig;
29
- callbacks?: UserMenuCallbacks;
30
- currentTheme?: 'light' | 'dark' | 'system';
31
- /** Show theme options in the menu */
32
- showThemeOptions?: boolean;
33
- /** Additional menu items to render */
34
- additionalItems?: React.ReactNode;
35
- }
36
- export declare const UserMenu: React.FC<UserMenuProps>;
37
- export default UserMenu;
38
- //# sourceMappingURL=UserMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/components/chat/UserMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0B1B,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sCAAsC;IACtC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAwBD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8I5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { SidebarMenu, SidebarMenuItem, SidebarMenuButton, useSidebar, } from '../ui/sidebar';
3
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, DropdownMenuLabel, } from '../ui/dropdown-menu';
4
- import { Avatar, AvatarFallback, AvatarImage } from '../ui/avatar';
5
- import { User, Settings, LogOut, ChevronsUpDown, Moon, Sun, Palette, } from 'lucide-react';
6
- // Get initials from name or email
7
- const getInitials = (name, email) => {
8
- if (name) {
9
- return name
10
- .split(' ')
11
- .map((n) => n[0])
12
- .slice(0, 2)
13
- .join('')
14
- .toUpperCase();
15
- }
16
- if (email) {
17
- return email[0].toUpperCase();
18
- }
19
- return 'U';
20
- };
21
- // Get display name
22
- const getDisplayName = (user, guestLabel) => {
23
- if (!user)
24
- return guestLabel || 'Guest';
25
- return user.name || user.email?.split('@')[0] || guestLabel || 'Guest';
26
- };
27
- export const UserMenu = ({ user, config, callbacks, currentTheme = 'system', showThemeOptions = true, additionalItems, }) => {
28
- const { isMobile } = useSidebar();
29
- const labels = {
30
- profile: config?.labels?.profile || 'Profile',
31
- settings: config?.labels?.settings || 'Settings',
32
- theme: config?.labels?.theme || 'Theme',
33
- lightMode: config?.labels?.lightMode || 'Light',
34
- darkMode: config?.labels?.darkMode || 'Dark',
35
- systemTheme: config?.labels?.systemTheme || 'System',
36
- logout: config?.labels?.logout || 'Log out',
37
- guest: config?.labels?.guest || 'Guest',
38
- };
39
- const displayName = getDisplayName(user, labels.guest);
40
- const initials = getInitials(user?.name, user?.email);
41
- return (_jsx(SidebarMenu, { children: _jsx(SidebarMenuItem, { children: _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(SidebarMenuButton, { size: "lg", className: "data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground", tooltip: displayName, children: [_jsxs(Avatar, { className: "h-8 w-8 rounded-lg", children: [user?.avatar && _jsx(AvatarImage, { src: user.avatar, alt: displayName }), _jsx(AvatarFallback, { className: "rounded-lg bg-primary/10 text-primary text-xs font-medium", children: initials })] }), _jsxs("div", { className: "grid flex-1 text-left text-sm leading-tight group-data-[collapsible=icon]:hidden", children: [_jsx("span", { className: "truncate font-medium", children: displayName }), user?.email && (_jsx("span", { className: "truncate text-xs text-muted-foreground", children: user.email }))] }), _jsx(ChevronsUpDown, { className: "ml-auto size-4 group-data-[collapsible=icon]:hidden" })] }) }), _jsxs(DropdownMenuContent, { className: "w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg", side: isMobile ? 'bottom' : 'right', align: "end", sideOffset: 4, children: [_jsx(DropdownMenuLabel, { className: "p-0 font-normal", children: _jsxs("div", { className: "flex items-center gap-2 px-1 py-1.5 text-left text-sm", children: [_jsxs(Avatar, { className: "h-8 w-8 rounded-lg", children: [user?.avatar && _jsx(AvatarImage, { src: user.avatar, alt: displayName }), _jsx(AvatarFallback, { className: "rounded-lg bg-primary/10 text-primary text-xs font-medium", children: initials })] }), _jsxs("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [_jsx("span", { className: "truncate font-medium", children: displayName }), user?.email && (_jsx("span", { className: "truncate text-xs text-muted-foreground", children: user.email }))] })] }) }), _jsx(DropdownMenuSeparator, {}), callbacks?.onViewProfile && (_jsxs(DropdownMenuItem, { onClick: callbacks.onViewProfile, children: [_jsx(User, { className: "mr-2 h-4 w-4" }), _jsx("span", { children: labels.profile })] })), callbacks?.onOpenSettings && (_jsxs(DropdownMenuItem, { onClick: callbacks.onOpenSettings, children: [_jsx(Settings, { className: "mr-2 h-4 w-4" }), _jsx("span", { children: labels.settings })] })), additionalItems, showThemeOptions && callbacks?.onThemeChange && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: () => callbacks.onThemeChange?.('light'), className: currentTheme === 'light' ? 'bg-accent' : '', children: [_jsx(Sun, { className: "mr-2 h-4 w-4" }), _jsx("span", { children: labels.lightMode })] }), _jsxs(DropdownMenuItem, { onClick: () => callbacks.onThemeChange?.('dark'), className: currentTheme === 'dark' ? 'bg-accent' : '', children: [_jsx(Moon, { className: "mr-2 h-4 w-4" }), _jsx("span", { children: labels.darkMode })] }), _jsxs(DropdownMenuItem, { onClick: () => callbacks.onThemeChange?.('system'), className: currentTheme === 'system' ? 'bg-accent' : '', children: [_jsx(Palette, { className: "mr-2 h-4 w-4" }), _jsx("span", { children: labels.systemTheme })] })] })), callbacks?.onLogout && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: callbacks.onLogout, className: "text-destructive focus:text-destructive focus:bg-destructive/10", children: [_jsx(LogOut, { className: "mr-2 h-4 w-4" }), _jsx("span", { children: labels.logout })] })] }))] })] }) }) }));
42
- };
43
- export default UserMenu;
44
- //# sourceMappingURL=UserMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/components/chat/UserMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- import type { MemoryItem } from '../../types/chatTypes';
3
- export interface UserProfileConfig {
4
- labels?: {
5
- title?: string;
6
- basicInfo?: string;
7
- customFields?: string;
8
- memories?: string;
9
- addMemory?: string;
10
- noMemories?: string;
11
- close?: string;
12
- noCustomFields?: string;
13
- };
14
- }
15
- export interface UserProfileUser {
16
- id: string;
17
- name?: string;
18
- email?: string;
19
- avatar?: string;
20
- }
21
- export interface CustomField {
22
- key: string;
23
- label: string;
24
- value: string | number | boolean | null | undefined;
25
- type?: 'text' | 'email' | 'phone' | 'url' | 'date' | 'number' | 'boolean';
26
- icon?: React.ReactNode;
27
- }
28
- export interface UserProfileProps {
29
- isOpen: boolean;
30
- onClose: () => void;
31
- user?: UserProfileUser | null;
32
- /** Custom fields from userContext.customFields */
33
- customFields?: CustomField[] | Record<string, unknown>;
34
- /** User memories */
35
- memories?: MemoryItem[];
36
- config?: UserProfileConfig;
37
- /** Called when user wants to edit their profile */
38
- onEditProfile?: () => void;
39
- /** Called when user wants to logout */
40
- onLogout?: () => void;
41
- /** Called when user adds a memory */
42
- onAddMemory?: (content: string, category?: MemoryItem['category']) => void;
43
- /** Called when user updates a memory */
44
- onUpdateMemory?: (memoryId: string, content: string) => void;
45
- /** Called when user deletes a memory */
46
- onDeleteMemory?: (memoryId: string) => void;
47
- className?: string;
48
- }
49
- export declare const UserProfile: React.FC<UserProfileProps>;
50
- export default UserProfile;
51
- //# sourceMappingURL=UserProfile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserProfile.d.ts","sourceRoot":"","sources":["../../../src/components/chat/UserProfile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAoCxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B,kDAAkD;IAClD,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,oBAAoB;IACpB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qCAAqC;IACrC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC3E,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkID,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+UlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,206 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
- import { Sheet, SheetContent, SheetHeader, SheetTitle } from '../ui/sheet';
4
- import { Avatar, AvatarFallback, AvatarImage } from '../ui/avatar';
5
- import { ScrollArea } from '../ui/scroll-area';
6
- import { Button } from '../ui/button';
7
- import { Separator } from '../ui/separator';
8
- import { Input } from '../ui/input';
9
- import { Textarea } from '../ui/textarea';
10
- import { cn } from '../../lib/utils';
11
- import { User, Mail, AtSign, Calendar, MapPin, Phone, Globe, Building, Briefcase, Users, UserPlus, Image, BadgeCheck, FileText, Brain, Plus, Trash2, Target, Lightbulb, Info, Heart, Bot, Pencil, Check, X, } from 'lucide-react';
12
- // Get initials from name or email
13
- const getInitials = (name, email) => {
14
- if (name) {
15
- return name
16
- .split(' ')
17
- .map((n) => n[0])
18
- .slice(0, 2)
19
- .join('')
20
- .toUpperCase();
21
- }
22
- if (email) {
23
- return email[0].toUpperCase();
24
- }
25
- return 'U';
26
- };
27
- // Map field types to icons
28
- const getFieldIcon = (type, key) => {
29
- const iconClass = 'h-4 w-4 text-muted-foreground';
30
- // Check by type first
31
- switch (type) {
32
- case 'email':
33
- return _jsx(Mail, { className: iconClass });
34
- case 'phone':
35
- return _jsx(Phone, { className: iconClass });
36
- case 'url':
37
- return _jsx(Globe, { className: iconClass });
38
- case 'date':
39
- return _jsx(Calendar, { className: iconClass });
40
- }
41
- // Check by common key names
42
- const lowerKey = key?.toLowerCase() || '';
43
- if (lowerKey.includes('follower'))
44
- return _jsx(Users, { className: iconClass });
45
- if (lowerKey.includes('following'))
46
- return _jsx(UserPlus, { className: iconClass });
47
- if (lowerKey.includes('post') || lowerKey.includes('publication'))
48
- return _jsx(Image, { className: iconClass });
49
- if (lowerKey.includes('verified') || lowerKey.includes('badge'))
50
- return _jsx(BadgeCheck, { className: iconClass });
51
- if (lowerKey.includes('bio'))
52
- return _jsx(FileText, { className: iconClass });
53
- // General fields
54
- if (lowerKey.includes('email'))
55
- return _jsx(Mail, { className: iconClass });
56
- if (lowerKey.includes('phone') || lowerKey.includes('tel'))
57
- return _jsx(Phone, { className: iconClass });
58
- if (lowerKey.includes('location') || lowerKey.includes('address') || lowerKey.includes('city'))
59
- return _jsx(MapPin, { className: iconClass });
60
- if (lowerKey.includes('company') || lowerKey.includes('org'))
61
- return _jsx(Building, { className: iconClass });
62
- if (lowerKey.includes('job') || lowerKey.includes('role') || lowerKey.includes('title') || lowerKey.includes('position'))
63
- return _jsx(Briefcase, { className: iconClass });
64
- if (lowerKey.includes('website') || lowerKey.includes('url') || lowerKey.includes('link'))
65
- return _jsx(Globe, { className: iconClass });
66
- if (lowerKey.includes('username') || lowerKey.includes('handle'))
67
- return _jsx(AtSign, { className: iconClass });
68
- if (lowerKey.includes('date') || lowerKey.includes('birthday') || lowerKey.includes('joined'))
69
- return _jsx(Calendar, { className: iconClass });
70
- return _jsx(User, { className: iconClass });
71
- };
72
- // Format value for display
73
- const formatValue = (value, type, key) => {
74
- if (value === null || value === undefined)
75
- return '-';
76
- if (typeof value === 'boolean') {
77
- if (key?.toLowerCase().includes('verified')) {
78
- return value ? 'Verified ✓' : 'Not verified';
79
- }
80
- return value ? 'Yes' : 'No';
81
- }
82
- if (type === 'date' && (typeof value === 'string' || typeof value === 'number')) {
83
- try {
84
- return new Date(value).toLocaleDateString('en-US');
85
- }
86
- catch {
87
- return String(value);
88
- }
89
- }
90
- return String(value);
91
- };
92
- // Convert Record<string, unknown> to CustomField[]
93
- const normalizeCustomFields = (fields) => {
94
- if (!fields)
95
- return [];
96
- if (Array.isArray(fields)) {
97
- return fields;
98
- }
99
- // Convert object to array of fields
100
- return Object.entries(fields)
101
- .filter(([_, value]) => value !== null && value !== undefined && value !== '')
102
- .map(([key, value]) => ({
103
- key,
104
- label: key
105
- .replace(/([A-Z])/g, ' $1')
106
- .replace(/[_-]/g, ' ')
107
- .replace(/^\w/, (c) => c.toUpperCase())
108
- .trim(),
109
- value: value,
110
- }));
111
- };
112
- // Get icon for memory category
113
- const getMemoryCategoryIcon = (category) => {
114
- const iconClass = 'h-4 w-4 text-muted-foreground';
115
- switch (category) {
116
- case 'preference':
117
- return _jsx(Heart, { className: iconClass });
118
- case 'fact':
119
- return _jsx(Info, { className: iconClass });
120
- case 'goal':
121
- return _jsx(Target, { className: iconClass });
122
- case 'context':
123
- return _jsx(Lightbulb, { className: iconClass });
124
- default:
125
- return _jsx(Brain, { className: iconClass });
126
- }
127
- };
128
- // Get label for memory category
129
- const getMemoryCategoryLabel = (category) => {
130
- switch (category) {
131
- case 'preference':
132
- return 'Preferência';
133
- case 'fact':
134
- return 'Fato';
135
- case 'goal':
136
- return 'Meta';
137
- case 'context':
138
- return 'Contexto';
139
- default:
140
- return 'Outro';
141
- }
142
- };
143
- export const UserProfile = ({ isOpen, onClose, user, customFields, memories = [], config, onEditProfile, onLogout, onAddMemory, onUpdateMemory, onDeleteMemory, className, }) => {
144
- const [newMemoryContent, setNewMemoryContent] = useState('');
145
- const [isAddingMemory, setIsAddingMemory] = useState(false);
146
- const [editingMemoryId, setEditingMemoryId] = useState(null);
147
- const [editingMemoryContent, setEditingMemoryContent] = useState('');
148
- const handleAddMemory = () => {
149
- if (newMemoryContent.trim() && onAddMemory) {
150
- onAddMemory(newMemoryContent.trim(), 'other');
151
- setNewMemoryContent('');
152
- setIsAddingMemory(false);
153
- }
154
- };
155
- const handleStartEdit = (memory) => {
156
- setEditingMemoryId(memory.id);
157
- setEditingMemoryContent(memory.content);
158
- };
159
- const handleSaveEdit = () => {
160
- if (editingMemoryId && editingMemoryContent.trim() && onUpdateMemory) {
161
- onUpdateMemory(editingMemoryId, editingMemoryContent.trim());
162
- setEditingMemoryId(null);
163
- setEditingMemoryContent('');
164
- }
165
- };
166
- const handleCancelEdit = () => {
167
- setEditingMemoryId(null);
168
- setEditingMemoryContent('');
169
- };
170
- const labels = {
171
- title: config?.labels?.title || 'Profile',
172
- basicInfo: config?.labels?.basicInfo || 'Account',
173
- customFields: config?.labels?.customFields || 'Details',
174
- memories: config?.labels?.memories || 'Memories',
175
- addMemory: config?.labels?.addMemory || 'Add memory',
176
- noMemories: config?.labels?.noMemories || 'No memories yet',
177
- close: config?.labels?.close || 'Close',
178
- noCustomFields: config?.labels?.noCustomFields || 'No additional information',
179
- };
180
- const displayName = user?.name || user?.email?.split('@')[0] || 'User';
181
- const initials = getInitials(user?.name, user?.email);
182
- const normalizedFields = normalizeCustomFields(customFields);
183
- return (_jsx(Sheet, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: _jsxs(SheetContent, { side: "right", className: cn('w-full sm:max-w-md p-0 flex flex-col h-full overflow-hidden', className), children: [_jsx(SheetHeader, { className: "px-6 py-4 border-b shrink-0", children: _jsx("div", { className: "flex items-center justify-between", children: _jsx(SheetTitle, { children: labels.title }) }) }), _jsx(ScrollArea, { className: "flex-1 min-h-0", children: _jsxs("div", { className: "p-6 space-y-6", children: [_jsxs("div", { className: "flex flex-col items-center text-center space-y-4", children: [_jsxs(Avatar, { className: "h-24 w-24 shrink-0", children: [user?.avatar && _jsx(AvatarImage, { src: user.avatar, alt: displayName }), _jsx(AvatarFallback, { className: "text-2xl bg-primary/10 text-primary", children: initials })] }), _jsxs("div", { className: "w-full px-2", children: [_jsx("h2", { className: "text-xl font-semibold break-words", children: displayName }), user?.email && (_jsx("p", { className: "text-sm text-muted-foreground break-words", children: user.email }))] })] }), _jsx(Separator, {}), _jsxs("div", { className: "space-y-3", children: [_jsx("h3", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: labels.basicInfo }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex items-start gap-3 p-3 rounded-lg bg-muted/50", children: [_jsx(User, { className: "h-4 w-4 text-muted-foreground mt-0.5 shrink-0" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: "Name" }), _jsx("p", { className: "text-sm font-medium break-words", children: displayName })] })] }), user?.email && (_jsxs("div", { className: "flex items-start gap-3 p-3 rounded-lg bg-muted/50", children: [_jsx(AtSign, { className: "h-4 w-4 text-muted-foreground mt-0.5 shrink-0" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: "Handle" }), _jsx("p", { className: "text-sm font-medium break-words", children: user.email })] })] })), user?.id && user.id !== user?.name && user.id !== user?.email && (_jsxs("div", { className: "flex items-start gap-3 p-3 rounded-lg bg-muted/50", children: [_jsx(User, { className: "h-4 w-4 text-muted-foreground mt-0.5 shrink-0" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: "ID" }), _jsx("p", { className: "text-sm font-medium break-words", children: user.id })] })] }))] })] }), normalizedFields.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsxs("div", { className: "space-y-3", children: [_jsx("h3", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: labels.customFields }), _jsx("div", { className: "space-y-2", children: normalizedFields.map((field) => {
184
- const isBioField = field.key.toLowerCase().includes('bio');
185
- return (_jsxs("div", { className: "flex items-start gap-3 p-3 rounded-lg bg-muted/50", children: [_jsx("div", { className: "mt-0.5 shrink-0", children: field.icon || getFieldIcon(field.type, field.key) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: field.label }), _jsx("p", { className: cn("text-sm font-medium", isBioField ? "whitespace-pre-wrap break-words" : "break-words"), children: formatValue(field.value, field.type, field.key) })] })] }, field.key));
186
- }) })] })] })), _jsx(Separator, {}), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("h3", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider flex items-center gap-2", children: [_jsx(Brain, { className: "h-4 w-4" }), labels.memories] }), onAddMemory && (_jsx(Button, { variant: "ghost", size: "sm", className: "h-7 px-2", onClick: () => setIsAddingMemory(true), children: _jsx(Plus, { className: "h-4 w-4" }) }))] }), isAddingMemory && onAddMemory && (_jsxs("div", { className: "flex gap-2", children: [_jsx(Input, { value: newMemoryContent, onChange: (e) => setNewMemoryContent(e.target.value), placeholder: "O que devo lembrar?", className: "flex-1 h-9", onKeyDown: (e) => {
187
- if (e.key === 'Enter')
188
- handleAddMemory();
189
- if (e.key === 'Escape') {
190
- setIsAddingMemory(false);
191
- setNewMemoryContent('');
192
- }
193
- }, autoFocus: true }), _jsx(Button, { size: "sm", onClick: handleAddMemory, disabled: !newMemoryContent.trim(), children: "Salvar" })] })), _jsx("div", { className: "space-y-2", children: memories.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground text-center py-4", children: labels.noMemories })) : (memories.map((memory) => {
194
- const isEditing = editingMemoryId === memory.id;
195
- return (_jsxs("div", { className: "flex items-start gap-3 p-3 rounded-lg bg-muted/50 group", children: [_jsx("div", { className: "mt-0.5 shrink-0", children: memory.source === 'agent' ? (_jsx(Bot, { className: "h-4 w-4 text-primary" })) : (getMemoryCategoryIcon(memory.category)) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2 mb-0.5", children: [_jsx("span", { className: "text-xs text-muted-foreground", children: getMemoryCategoryLabel(memory.category) }), _jsx("span", { className: "text-xs text-muted-foreground", children: "\u2022" }), _jsx("span", { className: "text-xs text-muted-foreground", children: memory.source === 'agent' ? 'IA' : 'Você' })] }), isEditing ? (_jsxs("div", { className: "space-y-2", children: [_jsx(Textarea, { value: editingMemoryContent, onChange: (e) => setEditingMemoryContent(e.target.value), className: "min-h-[60px] text-sm resize-none", autoFocus: true, onKeyDown: (e) => {
196
- if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {
197
- handleSaveEdit();
198
- }
199
- if (e.key === 'Escape') {
200
- handleCancelEdit();
201
- }
202
- } }), _jsxs("div", { className: "flex gap-1 justify-end", children: [_jsxs(Button, { variant: "ghost", size: "sm", className: "h-7 px-2", onClick: handleCancelEdit, children: [_jsx(X, { className: "h-3.5 w-3.5 mr-1" }), "Cancelar"] }), _jsxs(Button, { size: "sm", className: "h-7 px-2", onClick: handleSaveEdit, disabled: !editingMemoryContent.trim(), children: [_jsx(Check, { className: "h-3.5 w-3.5 mr-1" }), "Salvar"] })] })] })) : (_jsx("p", { className: "text-sm break-words", children: memory.content }))] }), !isEditing && (onUpdateMemory || onDeleteMemory) && (_jsxs("div", { className: "flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity shrink-0", children: [onUpdateMemory && (_jsx(Button, { variant: "ghost", size: "icon", className: "h-7 w-7", onClick: () => handleStartEdit(memory), children: _jsx(Pencil, { className: "h-3.5 w-3.5 text-muted-foreground" }) })), onDeleteMemory && (_jsx(Button, { variant: "ghost", size: "icon", className: "h-7 w-7", onClick: () => onDeleteMemory(memory.id), children: _jsx(Trash2, { className: "h-3.5 w-3.5 text-destructive" }) }))] }))] }, memory.id));
203
- })) })] })] }) }), _jsxs("div", { className: "p-4 border-t space-y-2 shrink-0", children: [onEditProfile && (_jsx(Button, { variant: "outline", className: "w-full", onClick: onEditProfile, children: "Edit Profile" })), onLogout && (_jsx(Button, { variant: "destructive", className: "w-full", onClick: onLogout, children: "Log out" }))] })] }) }));
204
- };
205
- export default UserProfile;
206
- //# sourceMappingURL=UserProfile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserProfile.js","sourceRoot":"","sources":["../../../src/components/chat/UserProfile.tsx"],"names":[],"mappings":"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"}