@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.
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/styles.css +6 -3
- package/package.json +1 -1
- package/dist/components/chat/AgentSelectors.d.ts +0 -50
- package/dist/components/chat/AgentSelectors.d.ts.map +0 -1
- package/dist/components/chat/AgentSelectors.js +0 -67
- package/dist/components/chat/AgentSelectors.js.map +0 -1
- package/dist/components/chat/AssistantActivity.d.ts +0 -11
- package/dist/components/chat/AssistantActivity.d.ts.map +0 -1
- package/dist/components/chat/AssistantActivity.js +0 -82
- package/dist/components/chat/AssistantActivity.js.map +0 -1
- package/dist/components/chat/ChatHeader.d.ts +0 -56
- package/dist/components/chat/ChatHeader.d.ts.map +0 -1
- package/dist/components/chat/ChatHeader.js +0 -71
- package/dist/components/chat/ChatHeader.js.map +0 -1
- package/dist/components/chat/ChatInput.d.ts +0 -25
- package/dist/components/chat/ChatInput.d.ts.map +0 -1
- package/dist/components/chat/ChatInput.js +0 -732
- package/dist/components/chat/ChatInput.js.map +0 -1
- package/dist/components/chat/ChatUI.d.ts +0 -4
- package/dist/components/chat/ChatUI.d.ts.map +0 -1
- package/dist/components/chat/ChatUI.js +0 -470
- package/dist/components/chat/ChatUI.js.map +0 -1
- package/dist/components/chat/Message.d.ts +0 -37
- package/dist/components/chat/Message.d.ts.map +0 -1
- package/dist/components/chat/Message.js +0 -262
- package/dist/components/chat/Message.js.map +0 -1
- package/dist/components/chat/Sidebar.d.ts +0 -52
- package/dist/components/chat/Sidebar.d.ts.map +0 -1
- package/dist/components/chat/Sidebar.js +0 -112
- package/dist/components/chat/Sidebar.js.map +0 -1
- package/dist/components/chat/ThreadManager.d.ts +0 -18
- package/dist/components/chat/ThreadManager.d.ts.map +0 -1
- package/dist/components/chat/ThreadManager.js +0 -108
- package/dist/components/chat/ThreadManager.js.map +0 -1
- package/dist/components/chat/UserContext.d.ts +0 -15
- package/dist/components/chat/UserContext.d.ts.map +0 -1
- package/dist/components/chat/UserContext.js +0 -39
- package/dist/components/chat/UserContext.js.map +0 -1
- package/dist/components/chat/UserMenu.d.ts +0 -38
- package/dist/components/chat/UserMenu.d.ts.map +0 -1
- package/dist/components/chat/UserMenu.js +0 -44
- package/dist/components/chat/UserMenu.js.map +0 -1
- package/dist/components/chat/UserProfile.d.ts +0 -51
- package/dist/components/chat/UserProfile.d.ts.map +0 -1
- package/dist/components/chat/UserProfile.js +0 -206
- package/dist/components/chat/UserProfile.js.map +0 -1
- package/dist/components/chat/VoiceComposer.d.ts +0 -29
- package/dist/components/chat/VoiceComposer.d.ts.map +0 -1
- package/dist/components/chat/VoiceComposer.js +0 -99
- package/dist/components/chat/VoiceComposer.js.map +0 -1
- package/dist/components/ui/Spinner.d.ts +0 -7
- package/dist/components/ui/Spinner.d.ts.map +0 -1
- package/dist/components/ui/Spinner.js +0 -14
- package/dist/components/ui/Spinner.js.map +0 -1
- package/dist/components/ui/accordion.d.ts +0 -8
- package/dist/components/ui/accordion.d.ts.map +0 -1
- package/dist/components/ui/accordion.js +0 -14
- package/dist/components/ui/accordion.js.map +0 -1
- package/dist/components/ui/alert-dialog.d.ts +0 -15
- package/dist/components/ui/alert-dialog.d.ts.map +0 -1
- package/dist/components/ui/alert-dialog.js +0 -66
- package/dist/components/ui/alert-dialog.js.map +0 -1
- package/dist/components/ui/avatar.d.ts +0 -7
- package/dist/components/ui/avatar.d.ts.map +0 -1
- package/dist/components/ui/avatar.js +0 -15
- package/dist/components/ui/avatar.js.map +0 -1
- package/dist/components/ui/badge.d.ts +0 -10
- package/dist/components/ui/badge.d.ts.map +0 -1
- package/dist/components/ui/badge.js +0 -23
- package/dist/components/ui/badge.js.map +0 -1
- package/dist/components/ui/button.d.ts +0 -11
- package/dist/components/ui/button.d.ts.map +0 -1
- package/dist/components/ui/button.js +0 -32
- package/dist/components/ui/button.js.map +0 -1
- package/dist/components/ui/card.d.ts +0 -10
- package/dist/components/ui/card.d.ts.map +0 -1
- package/dist/components/ui/card.js +0 -25
- package/dist/components/ui/card.js.map +0 -1
- package/dist/components/ui/collapsible.d.ts +0 -6
- package/dist/components/ui/collapsible.d.ts.map +0 -1
- package/dist/components/ui/collapsible.js +0 -6
- package/dist/components/ui/collapsible.js.map +0 -1
- package/dist/components/ui/context-menu.d.ts +0 -26
- package/dist/components/ui/context-menu.d.ts.map +0 -1
- package/dist/components/ui/context-menu.js +0 -51
- package/dist/components/ui/context-menu.js.map +0 -1
- package/dist/components/ui/dialog.d.ts +0 -16
- package/dist/components/ui/dialog.d.ts.map +0 -1
- package/dist/components/ui/dialog.js +0 -63
- package/dist/components/ui/dialog.js.map +0 -1
- package/dist/components/ui/dropdown-menu.d.ts +0 -26
- package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
- package/dist/components/ui/dropdown-menu.js +0 -51
- package/dist/components/ui/dropdown-menu.js.map +0 -1
- package/dist/components/ui/input.d.ts +0 -4
- package/dist/components/ui/input.d.ts.map +0 -1
- package/dist/components/ui/input.js +0 -7
- package/dist/components/ui/input.js.map +0 -1
- package/dist/components/ui/progress.d.ts +0 -5
- package/dist/components/ui/progress.d.ts.map +0 -1
- package/dist/components/ui/progress.js +0 -8
- package/dist/components/ui/progress.js.map +0 -1
- package/dist/components/ui/scroll-area.d.ts +0 -8
- package/dist/components/ui/scroll-area.d.ts.map +0 -1
- package/dist/components/ui/scroll-area.js +0 -16
- package/dist/components/ui/scroll-area.js.map +0 -1
- package/dist/components/ui/select.d.ts +0 -12
- package/dist/components/ui/select.d.ts.map +0 -1
- package/dist/components/ui/select.js +0 -21
- package/dist/components/ui/select.js.map +0 -1
- package/dist/components/ui/separator.d.ts +0 -5
- package/dist/components/ui/separator.d.ts.map +0 -1
- package/dist/components/ui/separator.js +0 -9
- package/dist/components/ui/separator.js.map +0 -1
- package/dist/components/ui/sheet.d.ts +0 -14
- package/dist/components/ui/sheet.d.ts.map +0 -1
- package/dist/components/ui/sheet.js +0 -66
- package/dist/components/ui/sheet.js.map +0 -1
- package/dist/components/ui/sidebar.d.ts +0 -70
- package/dist/components/ui/sidebar.d.ts.map +0 -1
- package/dist/components/ui/sidebar.js +0 -212
- package/dist/components/ui/sidebar.js.map +0 -1
- package/dist/components/ui/skeleton.d.ts +0 -3
- package/dist/components/ui/skeleton.d.ts.map +0 -1
- package/dist/components/ui/skeleton.js +0 -7
- package/dist/components/ui/skeleton.js.map +0 -1
- package/dist/components/ui/textarea.d.ts +0 -4
- package/dist/components/ui/textarea.d.ts.map +0 -1
- package/dist/components/ui/textarea.js +0 -7
- package/dist/components/ui/textarea.js.map +0 -1
- package/dist/components/ui/tooltip.d.ts +0 -8
- package/dist/components/ui/tooltip.d.ts.map +0 -1
- package/dist/components/ui/tooltip.js +0 -18
- package/dist/components/ui/tooltip.js.map +0 -1
- package/dist/config/chatConfig.d.ts +0 -4
- package/dist/config/chatConfig.d.ts.map +0 -1
- package/dist/config/chatConfig.js +0 -173
- package/dist/config/chatConfig.js.map +0 -1
- package/dist/hooks/use-mobile.d.ts +0 -2
- package/dist/hooks/use-mobile.d.ts.map +0 -1
- package/dist/hooks/use-mobile.js +0 -16
- package/dist/hooks/use-mobile.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/chatUtils.d.ts +0 -18
- package/dist/lib/chatUtils.d.ts.map +0 -1
- package/dist/lib/chatUtils.js +0 -64
- package/dist/lib/chatUtils.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -6
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -46
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/voiceCompose.d.ts +0 -6
- package/dist/lib/voiceCompose.d.ts.map +0 -1
- package/dist/lib/voiceCompose.js +0 -344
- package/dist/lib/voiceCompose.js.map +0 -1
- package/dist/types/chatTypes.d.ts +0 -386
- package/dist/types/chatTypes.d.ts.map +0 -1
- package/dist/types/chatTypes.js +0 -2
- 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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"}
|