chat-with-multi-llm / index.html
Simultaneous-Orthoganlity-In-Time's picture
Add 2 files
5d6ad84 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AsanaAI - Collaborative Project Management with AI</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.kanban-column {
min-height: 500px;
}
.chat-message.ai {
background-color: #f0f7ff;
border-left: 4px solid #3b82f6;
}
.chat-message.user {
background-color: #f8fafc;
border-left: 4px solid #e2e8f0;
}
.task-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.sidebar-item:hover .sidebar-tooltip {
display: block;
}
.sidebar-tooltip {
display: none;
position: absolute;
left: 100%;
top: 50%;
transform: translateY(-50%);
background: #1e293b;
color: white;
padding: 0.5rem 1rem;
border-radius: 0.375rem;
white-space: nowrap;
z-index: 10;
}
.animate-pulse {
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.5;
}
}
</style>
</head>
<body class="bg-gray-50 text-gray-800">
<div class="flex h-screen overflow-hidden">
<!-- Sidebar -->
<div class="hidden md:flex md:flex-shrink-0">
<div class="flex flex-col w-20 bg-white border-r border-gray-200">
<div class="flex items-center justify-center h-16 px-4 bg-indigo-600">
<span class="text-white font-bold text-xl">AAI</span>
</div>
<div class="flex flex-col flex-grow pt-5 overflow-y-auto">
<div class="flex-1 space-y-1">
<a href="#" class="sidebar-item group relative flex items-center justify-center py-3 px-2 text-indigo-600 bg-indigo-50">
<i class="fas fa-home text-xl"></i>
<span class="sidebar-tooltip">Dashboard</span>
</a>
<a href="#" class="sidebar-item group relative flex items-center justify-center py-3 px-2 text-gray-600 hover:text-indigo-600 hover:bg-indigo-50">
<i class="fas fa-tasks text-xl"></i>
<span class="sidebar-tooltip">Projects</span>
</a>
<a href="#" class="sidebar-item group relative flex items-center justify-center py-3 px-2 text-gray-600 hover:text-indigo-600 hover:bg-indigo-50">
<i class="fas fa-users text-xl"></i>
<span class="sidebar-tooltip">Team</span>
</a>
<a href="#" class="sidebar-item group relative flex items-center justify-center py-3 px-2 text-gray-600 hover:text-indigo-600 hover:bg-indigo-50">
<i class="fas fa-comments text-xl"></i>
<span class="sidebar-tooltip">Chat</span>
</a>
<a href="#" class="sidebar-item group relative flex items-center justify-center py-3 px-2 text-gray-600 hover:text-indigo-600 hover:bg-indigo-50">
<i class="fas fa-cog text-xl"></i>
<span class="sidebar-tooltip">Settings</span>
</a>
</div>
<div class="pb-4">
<a href="#" class="sidebar-item group relative flex items-center justify-center py-3 px-2 text-gray-600 hover:text-indigo-600 hover:bg-indigo-50">
<i class="fas fa-question-circle text-xl"></i>
<span class="sidebar-tooltip">Help</span>
</a>
</div>
</div>
</div>
</div>
<!-- Main content -->
<div class="flex flex-col flex-1 overflow-hidden">
<!-- Top navigation -->
<div class="flex items-center justify-between h-16 px-4 bg-white border-b border-gray-200">
<div class="flex items-center">
<button class="md:hidden p-2 rounded-md text-gray-500 hover:text-gray-600 hover:bg-gray-100 focus:outline-none">
<i class="fas fa-bars"></i>
</button>
<h1 class="ml-4 text-xl font-semibold text-gray-900">Project Dashboard</h1>
</div>
<div class="flex items-center space-x-4">
<div class="relative">
<button class="p-2 rounded-full text-gray-500 hover:text-gray-600 hover:bg-gray-100 focus:outline-none">
<i class="fas fa-bell"></i>
</button>
<span class="absolute top-0 right-0 h-2 w-2 rounded-full bg-red-500"></span>
</div>
<div class="relative">
<button class="flex items-center space-x-2 focus:outline-none">
<img class="h-8 w-8 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="User profile">
<span class="hidden md:block text-sm font-medium text-gray-700">John Doe</span>
</button>
</div>
</div>
</div>
<!-- Main content area -->
<div class="flex-1 overflow-auto p-4">
<!-- Project header -->
<div class="mb-6">
<div class="flex items-center justify-between">
<div>
<h2 class="text-2xl font-bold">Website Redesign</h2>
<p class="text-gray-600">Complete redesign of company website with new branding</p>
</div>
<div class="flex space-x-2">
<button class="px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 focus:outline-none">
<i class="fas fa-plus mr-2"></i> Add Task
</button>
<button class="px-4 py-2 bg-white border border-gray-300 text-gray-700 rounded-md hover:bg-gray-50 focus:outline-none">
<i class="fas fa-ellipsis-h"></i>
</button>
</div>
</div>
<div class="mt-4 flex items-center space-x-4">
<div class="flex -space-x-2">
<img class="h-8 w-8 rounded-full border-2 border-white" src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="Team member">
<img class="h-8 w-8 rounded-full border-2 border-white" src="https://images.unsplash.com/photo-1519244703995-f4e0f30006d5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="Team member">
<div class="h-8 w-8 rounded-full border-2 border-white bg-indigo-100 flex items-center justify-center">
<span class="text-xs font-medium text-indigo-800">+2</span>
</div>
</div>
<div class="flex -space-x-2">
<div class="h-8 w-8 rounded-full border-2 border-white bg-purple-100 flex items-center justify-center">
<i class="fas fa-robot text-purple-500"></i>
</div>
<div class="h-8 w-8 rounded-full border-2 border-white bg-green-100 flex items-center justify-center">
<i class="fas fa-robot text-green-500"></i>
</div>
</div>
<span class="text-sm text-gray-500">2 humans, 2 AI assistants</span>
</div>
</div>
<!-- Kanban board -->
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<!-- Backlog column -->
<div class="bg-white rounded-lg shadow kanban-column">
<div class="p-4 border-b border-gray-200">
<h3 class="font-medium text-gray-900">Backlog</h3>
</div>
<div class="p-4 space-y-3">
<div class="task-card bg-white p-3 rounded-lg border border-gray-200 hover:shadow-md transition duration-150 ease-in-out cursor-move">
<div class="flex justify-between items-start">
<div>
<span class="text-xs px-2 py-1 bg-blue-100 text-blue-800 rounded-full">Design</span>
<h4 class="mt-2 font-medium">Create wireframes</h4>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i class="fas fa-ellipsis-v"></i>
</button>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center space-x-1">
<i class="fas fa-comment text-gray-400 text-xs"></i>
<span class="text-xs text-gray-500">3</span>
</div>
<div class="flex -space-x-1">
<img class="h-6 w-6 rounded-full border-2 border-white" src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="Assignee">
</div>
</div>
</div>
<div class="task-card bg-white p-3 rounded-lg border border-gray-200 hover:shadow-md transition duration-150 ease-in-out cursor-move">
<div class="flex justify-between items-start">
<div>
<span class="text-xs px-2 py-1 bg-purple-100 text-purple-800 rounded-full">Content</span>
<h4 class="mt-2 font-medium">Write homepage copy</h4>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i class="fas fa-ellipsis-v"></i>
</button>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center space-x-1">
<i class="fas fa-comment text-gray-400 text-xs"></i>
<span class="text-xs text-gray-500">5</span>
</div>
<div class="flex -space-x-1">
<div class="h-6 w-6 rounded-full border-2 border-white bg-purple-100 flex items-center justify-center">
<i class="fas fa-robot text-purple-500 text-xs"></i>
</div>
</div>
</div>
</div>
</div>
<div class="p-3 border-t border-gray-200">
<button class="w-full py-2 text-sm text-gray-500 hover:text-indigo-600 hover:bg-indigo-50 rounded-md">
<i class="fas fa-plus mr-2"></i> Add task
</button>
</div>
</div>
<!-- In Progress column -->
<div class="bg-white rounded-lg shadow kanban-column">
<div class="p-4 border-b border-gray-200">
<h3 class="font-medium text-gray-900">In Progress</h3>
</div>
<div class="p-4 space-y-3">
<div class="task-card bg-white p-3 rounded-lg border border-gray-200 hover:shadow-md transition duration-150 ease-in-out cursor-move">
<div class="flex justify-between items-start">
<div>
<span class="text-xs px-2 py-1 bg-green-100 text-green-800 rounded-full">Development</span>
<h4 class="mt-2 font-medium">Implement new header</h4>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i class="fas fa-ellipsis-v"></i>
</button>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center space-x-1">
<i class="fas fa-comment text-gray-400 text-xs"></i>
<span class="text-xs text-gray-500">7</span>
</div>
<div class="flex -space-x-1">
<img class="h-6 w-6 rounded-full border-2 border-white" src="https://images.unsplash.com/photo-1519244703995-f4e0f30006d5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="Assignee">
</div>
</div>
</div>
<div class="task-card bg-white p-3 rounded-lg border border-gray-200 hover:shadow-md transition duration-150 ease-in-out cursor-move">
<div class="flex justify-between items-start">
<div>
<span class="text-xs px-2 py-1 bg-yellow-100 text-yellow-800 rounded-full">SEO</span>
<h4 class="mt-2 font-medium">Optimize meta tags</h4>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i class="fas fa-ellipsis-v"></i>
</button>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center space-x-1">
<i class="fas fa-comment text-gray-400 text-xs"></i>
<span class="text-xs text-gray-500">2</span>
</div>
<div class="flex -space-x-1">
<div class="h-6 w-6 rounded-full border-2 border-white bg-green-100 flex items-center justify-center">
<i class="fas fa-robot text-green-500 text-xs"></i>
</div>
</div>
</div>
</div>
</div>
<div class="p-3 border-t border-gray-200">
<button class="w-full py-2 text-sm text-gray-500 hover:text-indigo-600 hover:bg-indigo-50 rounded-md">
<i class="fas fa-plus mr-2"></i> Add task
</button>
</div>
</div>
<!-- Review column -->
<div class="bg-white rounded-lg shadow kanban-column">
<div class="p-4 border-b border-gray-200">
<h3 class="font-medium text-gray-900">Review</h3>
</div>
<div class="p-4 space-y-3">
<div class="task-card bg-white p-3 rounded-lg border border-gray-200 hover:shadow-md transition duration-150 ease-in-out cursor-move">
<div class="flex justify-between items-start">
<div>
<span class="text-xs px-2 py-1 bg-red-100 text-red-800 rounded-full">Bug</span>
<h4 class="mt-2 font-medium">Fix mobile menu</h4>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i class="fas fa-ellipsis-v"></i>
</button>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center space-x-1">
<i class="fas fa-comment text-gray-400 text-xs"></i>
<span class="text-xs text-gray-500">4</span>
</div>
<div class="flex -space-x-1">
<img class="h-6 w-6 rounded-full border-2 border-white" src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="Assignee">
</div>
</div>
</div>
</div>
<div class="p-3 border-t border-gray-200">
<button class="w-full py-2 text-sm text-gray-500 hover:text-indigo-600 hover:bg-indigo-50 rounded-md">
<i class="fas fa-plus mr-2"></i> Add task
</button>
</div>
</div>
<!-- Done column -->
<div class="bg-white rounded-lg shadow kanban-column">
<div class="p-4 border-b border-gray-200">
<h3 class="font-medium text-gray-900">Done</h3>
</div>
<div class="p-4 space-y-3">
<div class="task-card bg-white p-3 rounded-lg border border-gray-200 hover:shadow-md transition duration-150 ease-in-out cursor-move opacity-70">
<div class="flex justify-between items-start">
<div>
<span class="text-xs px-2 py-1 bg-indigo-100 text-indigo-800 rounded-full">Research</span>
<h4 class="mt-2 font-medium">Competitor analysis</h4>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i class="fas fa-ellipsis-v"></i>
</button>
</div>
<div class="mt-3 flex items-center justify-between">
<div class="flex items-center space-x-1">
<i class="fas fa-comment text-gray-400 text-xs"></i>
<span class="text-xs text-gray-500">8</span>
</div>
<div class="flex -space-x-1">
<div class="h-6 w-6 rounded-full border-2 border-white bg-purple-100 flex items-center justify-center">
<i class="fas fa-robot text-purple-500 text-xs"></i>
</div>
</div>
</div>
</div>
</div>
<div class="p-3 border-t border-gray-200">
<button class="w-full py-2 text-sm text-gray-500 hover:text-indigo-600 hover:bg-indigo-50 rounded-md">
<i class="fas fa-plus mr-2"></i> Add task
</button>
</div>
</div>
</div>
<!-- Chat panel (hidden by default, can be toggled) -->
<div id="chat-panel" class="hidden fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center">
<div class="bg-white rounded-lg shadow-xl w-full max-w-2xl max-h-screen flex flex-col" style="height: 80vh;">
<div class="p-4 border-b border-gray-200 flex justify-between items-center">
<h3 class="font-medium text-gray-900">Project Chat</h3>
<button id="close-chat" class="text-gray-400 hover:text-gray-600">
<i class="fas fa-times"></i>
</button>
</div>
<div class="flex-1 overflow-y-auto p-4 space-y-4">
<!-- AI message -->
<div class="chat-message ai p-3 rounded-lg">
<div class="flex items-start space-x-3">
<div class="h-8 w-8 rounded-full bg-purple-100 flex items-center justify-center">
<i class="fas fa-robot text-purple-500"></i>
</div>
<div>
<p class="font-medium text-purple-600">Design Assistant</p>
<p class="mt-1 text-gray-700">I've analyzed the wireframes and suggest we increase the padding on the header elements for better mobile readability.</p>
</div>
</div>
</div>
<!-- User message -->
<div class="chat-message user p-3 rounded-lg">
<div class="flex items-start space-x-3">
<img class="h-8 w-8 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="User">
<div>
<p class="font-medium text-gray-800">John Doe</p>
<p class="mt-1 text-gray-700">Thanks for the suggestion! What specific padding values would you recommend?</p>
</div>
</div>
</div>
<!-- AI message -->
<div class="chat-message ai p-3 rounded-lg">
<div class="flex items-start space-x-3">
<div class="h-8 w-8 rounded-full bg-green-100 flex items-center justify-center">
<i class="fas fa-robot text-green-500"></i>
</div>
<div>
<p class="font-medium text-green-600">Dev Assistant</p>
<p class="mt-1 text-gray-700">Based on current mobile design trends, I'd recommend 16px padding on the sides and 12px between elements.</p>
</div>
</div>
</div>
<!-- AI thinking indicator -->
<div class="chat-message ai p-3 rounded-lg">
<div class="flex items-start space-x-3">
<div class="h-8 w-8 rounded-full bg-blue-100 flex items-center justify-center">
<i class="fas fa-robot text-blue-500"></i>
</div>
<div>
<p class="font-medium text-blue-600">Project Manager AI</p>
<div class="mt-1 flex space-x-2">
<div class="h-2 w-2 bg-blue-400 rounded-full animate-pulse"></div>
<div class="h-2 w-2 bg-blue-400 rounded-full animate-pulse" style="animation-delay: 0.2s"></div>
<div class="h-2 w-2 bg-blue-400 rounded-full animate-pulse" style="animation-delay: 0.4s"></div>
</div>
</div>
</div>
</div>
</div>
<div class="p-4 border-t border-gray-200">
<div class="flex items-center space-x-2">
<div class="flex-1 relative">
<input type="text" placeholder="Type your message..." class="w-full pl-4 pr-10 py-2 border border-gray-300 rounded-full focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500">
<div class="absolute right-3 top-2 flex space-x-1">
<button class="p-1 text-gray-400 hover:text-indigo-600">
<i class="far fa-smile"></i>
</button>
<button class="p-1 text-gray-400 hover:text-indigo-600">
<i class="fas fa-paperclip"></i>
</button>
</div>
</div>
<button class="p-2 bg-indigo-600 text-white rounded-full hover:bg-indigo-700 focus:outline-none">
<i class="fas fa-paper-plane"></i>
</button>
</div>
<div class="mt-2 flex flex-wrap gap-2">
<button class="text-xs px-2 py-1 bg-indigo-100 text-indigo-800 rounded-full hover:bg-indigo-200">
<i class="fas fa-robot mr-1"></i> Ask Design AI
</button>
<button class="text-xs px-2 py-1 bg-green-100 text-green-800 rounded-full hover:bg-green-200">
<i class="fas fa-robot mr-1"></i> Ask Dev AI
</button>
<button class="text-xs px-2 py-1 bg-blue-100 text-blue-800 rounded-full hover:bg-blue-200">
<i class="fas fa-robot mr-1"></i> Ask PM AI
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Floating action button for chat -->
<button id="open-chat" class="fixed bottom-6 right-6 h-14 w-14 bg-indigo-600 text-white rounded-full shadow-lg hover:bg-indigo-700 focus:outline-none flex items-center justify-center">
<i class="fas fa-comment-dots text-xl"></i>
<span class="absolute -top-1 -right-1 h-5 w-5 rounded-full bg-red-500 text-white text-xs flex items-center justify-center">3</span>
</button>
<script>
// Chat panel toggle
document.getElementById('open-chat').addEventListener('click', function() {
document.getElementById('chat-panel').classList.remove('hidden');
});
document.getElementById('close-chat').addEventListener('click', function() {
document.getElementById('chat-panel').classList.add('hidden');
});
// Simulate AI response after 2 seconds
setTimeout(() => {
const thinkingMessage = document.querySelector('.chat-message.ai:last-child');
if (thinkingMessage) {
thinkingMessage.innerHTML = `
<div class="flex items-start space-x-3">
<div class="h-8 w-8 rounded-full bg-blue-100 flex items-center justify-center">
<i class="fas fa-robot text-blue-500"></i>
</div>
<div>
<p class="font-medium text-blue-600">Project Manager AI</p>
<p class="mt-1 text-gray-700">I've updated the task description with these specifications and assigned it to the design team. The estimated completion time is 2 days.</p>
</div>
</div>
`;
}
}, 2000);
// Drag and drop functionality for kanban cards
const cards = document.querySelectorAll('.task-card');
const columns = document.querySelectorAll('.kanban-column');
cards.forEach(card => {
card.setAttribute('draggable', 'true');
card.addEventListener('dragstart', () => {
card.classList.add('opacity-50');
});
card.addEventListener('dragend', () => {
card.classList.remove('opacity-50');
});
});
columns.forEach(column => {
column.addEventListener('dragover', e => {
e.preventDefault();
const draggingCard = document.querySelector('.opacity-50');
if (draggingCard) {
const afterElement = getDragAfterElement(column, e.clientY);
if (afterElement) {
column.insertBefore(draggingCard, afterElement);
} else {
column.appendChild(draggingCard);
}
}
});
});
function getDragAfterElement(column, y) {
const cards = [...column.querySelectorAll('.task-card:not(.opacity-50)')];
return cards.reduce((closest, child) => {
const box = child.getBoundingClientRect();
const offset = y - box.top - box.height / 2;
if (offset < 0 && offset > closest.offset) {
return { offset: offset, element: child };
} else {
return closest;
}
}, { offset: Number.NEGATIVE_INFINITY }).element;
}
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Simultaneous-Orthoganlity-In-Time/chat-with-multi-llm" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>