|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>TheraGPT - AI Assistant for Therapists</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> |
|
|
|
.gradient-bg { |
|
background: linear-gradient(135deg, #6b73ff 0%, #000dff 100%); |
|
} |
|
.note-preview { |
|
min-height: 300px; |
|
border-left: 3px solid #4f46e5; |
|
} |
|
.sidebar-item.active { |
|
border-left: 4px solid #4f46e5; |
|
background-color: #f5f3ff; |
|
} |
|
.fade-in { |
|
animation: fadeIn 0.3s ease-in-out; |
|
} |
|
@keyframes fadeIn { |
|
from { opacity: 0; transform: translateY(10px); } |
|
to { opacity: 1; transform: translateY(0); } |
|
} |
|
.textarea-autosize { |
|
min-height: 100px; |
|
resize: none; |
|
} |
|
</style> |
|
</head> |
|
<body class="bg-gray-50 font-sans"> |
|
|
|
<div id="authModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden"> |
|
<div class="bg-white rounded-lg shadow-xl w-full max-w-md p-6 fade-in"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h3 class="text-2xl font-bold text-gray-800">Welcome to TheraGPT</h3> |
|
<button id="closeAuthModal" class="text-gray-500 hover:text-gray-700"> |
|
<i class="fas fa-times"></i> |
|
</button> |
|
</div> |
|
|
|
<div class="flex border-b mb-4"> |
|
<button id="loginTab" class="py-2 px-4 font-medium text-indigo-600 border-b-2 border-indigo-600">Login</button> |
|
<button id="signupTab" class="py-2 px-4 font-medium text-gray-500 hover:text-gray-700">Sign Up</button> |
|
</div> |
|
|
|
|
|
<div id="loginForm" class="space-y-4"> |
|
<div> |
|
<label for="loginEmail" class="block text-sm font-medium text-gray-700">Email</label> |
|
<input type="email" id="loginEmail" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 p-2 border"> |
|
</div> |
|
<div> |
|
<label for="loginPassword" class="block text-sm font-medium text-gray-700">Password</label> |
|
<input type="password" id="loginPassword" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 p-2 border"> |
|
</div> |
|
<button id="loginBtn" class="w-full bg-indigo-600 text-white py-2 px-4 rounded-md hover:bg-indigo-700 transition duration-200"> |
|
Login |
|
</button> |
|
<div class="text-center text-sm text-gray-500"> |
|
<button class="text-indigo-600 hover:text-indigo-800">Forgot password?</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="signupForm" class="space-y-4 hidden"> |
|
<div> |
|
<label for="signupName" class="block text-sm font-medium text-gray-700">Full Name</label> |
|
<input type="text" id="signupName" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 p-2 border"> |
|
</div> |
|
<div> |
|
<label for="signupEmail" class="block text-sm font-medium text-gray-700">Email</label> |
|
<input type="email" id="signupEmail" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 p-2 border"> |
|
</div> |
|
<div> |
|
<label for="signupPassword" class="block text-sm font-medium text-gray-700">Password</label> |
|
<input type="password" id="signupPassword" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 p-2 border"> |
|
</div> |
|
<div> |
|
<label for="signupConfirmPassword" class="block text-sm font-medium text-gray-700">Confirm Password</label> |
|
<input type="password" id="signupConfirmPassword" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 p-2 border"> |
|
</div> |
|
<div class="flex items-center"> |
|
<input type="checkbox" id="termsCheckbox" class="h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"> |
|
<label for="termsCheckbox" class="ml-2 block text-sm text-gray-700"> |
|
I agree to the <a href="#" class="text-indigo-600 hover:text-indigo-800">Terms of Service</a> |
|
</label> |
|
</div> |
|
<button id="signupBtn" class="w-full bg-indigo-600 text-white py-2 px-4 rounded-md hover:bg-indigo-700 transition duration-200"> |
|
Create Account |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="flex h-screen"> |
|
|
|
<div class="hidden md:flex flex-col w-64 bg-white border-r border-gray-200"> |
|
<div class="flex items-center justify-center h-16 px-4 gradient-bg"> |
|
<h1 class="text-white font-bold text-xl">TheraGPT</h1> |
|
</div> |
|
<div class="flex flex-col flex-grow p-4 overflow-auto"> |
|
<div class="space-y-1"> |
|
<button class="sidebar-item active w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100 transition duration-200"> |
|
<i class="fas fa-home mr-3 text-indigo-600"></i> |
|
<span>Dashboard</span> |
|
</button> |
|
<button class="sidebar-item w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100 transition duration-200"> |
|
<i class="fas fa-file-alt mr-3 text-gray-500"></i> |
|
<span>DAP Notes</span> |
|
</button> |
|
<button class="sidebar-item w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100 transition duration-200"> |
|
<i class="fas fa-clipboard-check mr-3 text-gray-500"></i> |
|
<span>Treatment Plans</span> |
|
</button> |
|
<button class="sidebar-item w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100 transition duration-200"> |
|
<i class="fas fa-balance-scale mr-3 text-gray-500"></i> |
|
<span>Ethics Assistant</span> |
|
</button> |
|
<button class="sidebar-item w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100 transition duration-200"> |
|
<i class="fas fa-cog mr-3 text-gray-500"></i> |
|
<span>Settings</span> |
|
</button> |
|
</div> |
|
|
|
<div class="mt-auto p-4"> |
|
<div class="bg-indigo-50 rounded-lg p-4"> |
|
<h4 class="text-sm font-medium text-indigo-800">Need help?</h4> |
|
<p class="text-xs text-indigo-600 mt-1">Our support team is available 24/7</p> |
|
<button class="mt-2 text-xs font-medium text-indigo-600 hover:text-indigo-800">Contact Support</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="md:hidden fixed bottom-4 right-4 z-40"> |
|
<button id="mobileMenuBtn" class="p-3 rounded-full bg-indigo-600 text-white shadow-lg hover:bg-indigo-700 transition duration-200"> |
|
<i class="fas fa-bars"></i> |
|
</button> |
|
</div> |
|
|
|
|
|
<div id="mobileSidebar" class="fixed inset-0 bg-black bg-opacity-50 z-30 hidden md:hidden"> |
|
<div class="absolute left-0 top-0 h-full w-64 bg-white transform -translate-x-full transition-transform duration-300"> |
|
<div class="flex items-center justify-between h-16 px-4 gradient-bg"> |
|
<h1 class="text-white font-bold text-xl">TheraGPT</h1> |
|
<button id="closeMobileSidebar" class="text-white"> |
|
<i class="fas fa-times"></i> |
|
</button> |
|
</div> |
|
<div class="p-4 space-y-2"> |
|
<button class="w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100"> |
|
<i class="fas fa-home mr-3 text-indigo-600"></i> |
|
<span>Dashboard</span> |
|
</button> |
|
<button class="w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100"> |
|
<i class="fas fa-file-alt mr-3 text-gray-500"></i> |
|
<span>DAP Notes</span> |
|
</button> |
|
<button class="w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100"> |
|
<i class="fas fa-clipboard-check mr-3 text-gray-500"></i> |
|
<span>Treatment Plans</span> |
|
</button> |
|
<button class="w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100"> |
|
<i class="fas fa-balance-scale mr-3 text-gray-500"></i> |
|
<span>Ethics Assistant</span> |
|
</button> |
|
<button class="w-full flex items-center p-3 text-gray-700 rounded-lg hover:bg-gray-100"> |
|
<i class="fas fa-cog mr-3 text-gray-500"></i> |
|
<span>Settings</span> |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="flex-1 flex flex-col overflow-hidden"> |
|
|
|
<header class="bg-white border-b border-gray-200 flex items-center justify-between h-16 px-4"> |
|
<div class="flex items-center"> |
|
<button id="sidebarToggle" class="md:hidden text-gray-500 hover:text-gray-700 mr-2"> |
|
<i class="fas fa-bars"></i> |
|
</button> |
|
<h2 class="text-lg font-medium text-gray-800">Dashboard</h2> |
|
</div> |
|
<div class="flex items-center space-x-4"> |
|
<button class="text-gray-500 hover:text-gray-700"> |
|
<i class="fas fa-bell"></i> |
|
</button> |
|
<div class="relative"> |
|
<button id="userMenuBtn" class="flex items-center space-x-2 focus:outline-none"> |
|
<div class="h-8 w-8 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600"> |
|
<i class="fas fa-user"></i> |
|
</div> |
|
<span class="hidden md:inline text-sm font-medium text-gray-700">Dr. Smith</span> |
|
</button> |
|
<div id="userMenu" class="hidden absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 z-10"> |
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">Profile</a> |
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">Settings</a> |
|
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">Logout</a> |
|
</div> |
|
</div> |
|
</div> |
|
</header> |
|
|
|
|
|
<main class="flex-1 overflow-y-auto p-4 bg-gray-50"> |
|
|
|
<div class="gradient-bg text-white rounded-lg p-6 mb-6"> |
|
<div class="flex flex-col md:flex-row md:items-center md:justify-between"> |
|
<div> |
|
<h2 class="text-2xl font-bold mb-2">Welcome back, Dr. Smith</h2> |
|
<p class="opacity-90">Ready to streamline your clinical documentation today?</p> |
|
</div> |
|
<button class="mt-4 md:mt-0 bg-white text-indigo-600 px-4 py-2 rounded-md font-medium hover:bg-gray-100 transition duration-200"> |
|
Quick Note |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6"> |
|
<div class="bg-white p-4 rounded-lg shadow-sm border border-gray-100 hover:shadow-md transition duration-200"> |
|
<div class="flex items-center"> |
|
<div class="p-3 rounded-full bg-indigo-100 text-indigo-600 mr-4"> |
|
<i class="fas fa-file-alt"></i> |
|
</div> |
|
<div> |
|
<h3 class="font-medium text-gray-800">DAP Note Builder</h3> |
|
<p class="text-sm text-gray-500">Create structured clinical notes</p> |
|
</div> |
|
</div> |
|
<button class="mt-4 w-full text-sm text-indigo-600 font-medium py-2 border border-indigo-100 rounded-md hover:bg-indigo-50 transition duration-200"> |
|
Start Now |
|
</button> |
|
</div> |
|
<div class="bg-white p-4 rounded-lg shadow-sm border border-gray-100 hover:shadow-md transition duration-200"> |
|
<div class="flex items-center"> |
|
<div class="p-3 rounded-full bg-green-100 text-green-600 mr-4"> |
|
<i class="fas fa-clipboard-check"></i> |
|
</div> |
|
<div> |
|
<h3 class="font-medium text-gray-800">Treatment Plan</h3> |
|
<p class="text-sm text-gray-500">Generate SMART goals</p> |
|
</div> |
|
</div> |
|
<button class="mt-4 w-full text-sm text-green-600 font-medium py-2 border border-green-100 rounded-md hover:bg-green-50 transition duration-200"> |
|
Create Plan |
|
</button> |
|
</div> |
|
<div class="bg-white p-4 rounded-lg shadow-sm border border-gray-100 hover:shadow-md transition duration-200"> |
|
<div class="flex items-center"> |
|
<div class="p-3 rounded-full bg-purple-100 text-purple-600 mr-4"> |
|
<i class="fas fa-balance-scale"></i> |
|
</div> |
|
<div> |
|
<h3 class="font-medium text-gray-800">Ethics Assistant</h3> |
|
<p class="text-sm text-gray-500">Navigate ethical dilemmas</p> |
|
</div> |
|
</div> |
|
<button class="mt-4 w-full text-sm text-purple-600 font-medium py-2 border border-purple-100 rounded-md hover:bg-purple-50 transition duration-200"> |
|
Get Guidance |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="bg-white rounded-lg shadow-sm border border-gray-100 p-4 mb-6"> |
|
<div class="flex items-center justify-between mb-4"> |
|
<h3 class="font-medium text-gray-800">Recent Notes</h3> |
|
<button class="text-sm text-indigo-600 font-medium hover:text-indigo-800 transition duration-200"> |
|
View All |
|
</button> |
|
</div> |
|
<div class="overflow-x-auto"> |
|
<table class="min-w-full divide-y divide-gray-200"> |
|
<thead class="bg-gray-50"> |
|
<tr> |
|
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Client</th> |
|
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Date</th> |
|
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Type</th> |
|
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th> |
|
<th class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th> |
|
</tr> |
|
</thead> |
|
<tbody class="bg-white divide-y divide-gray-200"> |
|
<tr> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-800">Jane D.</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">May 15, 2023</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">Individual</td> |
|
<td class="px-4 py-3 whitespace-nowrap"> |
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Completed</span> |
|
</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"> |
|
<button class="text-indigo-600 hover:text-indigo-900 mr-3">View</button> |
|
<button class="text-gray-600 hover:text-gray-900">Export</button> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-800">Mark T.</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">May 14, 2023</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">Couples</td> |
|
<td class="px-4 py-3 whitespace-nowrap"> |
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800">Draft</span> |
|
</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"> |
|
<button class="text-indigo-600 hover:text-indigo-900 mr-3">Edit</button> |
|
<button class="text-gray-600 hover:text-gray-900">Delete</button> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-800">Sarah K.</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">May 12, 2023</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">Group</td> |
|
<td class="px-4 py-3 whitespace-nowrap"> |
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Completed</span> |
|
</td> |
|
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"> |
|
<button class="text-indigo-600 hover:text-indigo-900 mr-3">View</button> |
|
<button class="text-gray-600 hover:text-gray-900">Export</button> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="dapNoteBuilder" class="bg-white rounded-lg shadow-sm border border-gray-100 p-6 mb-6 hidden"> |
|
<div class="flex justify-between items-center mb-6"> |
|
<h3 class="text-xl font-bold text-gray-800">DAP Note Builder</h3> |
|
<div class="flex space-x-2"> |
|
<button class="px-3 py-1 text-sm bg-gray-100 text-gray-600 rounded hover:bg-gray-200 transition duration-200"> |
|
<i class="fas fa-save mr-1"></i> Save Draft |
|
</button> |
|
<button class="px-3 py-1 text-sm bg-indigo-600 text-white rounded hover:bg-indigo-700 transition duration-200"> |
|
<i class="fas fa-file-export mr-1"></i> Export |
|
</button> |
|
</div> |
|
</div> |
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6"> |
|
<div class="space-y-6"> |
|
|
|
<div> |
|
<label class="block text-sm font-medium text-gray-700 mb-2">Subjective</label> |
|
<textarea class="textarea-autosize w-full p-3 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500" placeholder="Client's reported experiences, feelings, perceptions..."></textarea> |
|
</div> |
|
|
|
|
|
<div> |
|
<label class="block text-sm font-medium text-gray-700 mb-2">Objective</label> |
|
<textarea class="textarea-autosize w-full p-3 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500" placeholder="Observable behaviors, test results, measurable data..."></textarea> |
|
</div> |
|
|
|
|
|
<div> |
|
<label class="block text-sm font-medium text-gray-700 mb-2">Assessment</label> |
|
<textarea class="textarea-autosize w-full p-3 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500" placeholder="Clinical interpretation, diagnosis, progress..."></textarea> |
|
</div> |
|
|
|
|
|
<div> |
|
<label class="block text-sm font-medium text-gray-700 mb-2">Plan</label> |
|
<textarea class="textarea-autosize w-full p-3 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500" placeholder="Next steps, interventions, follow-up..."></textarea> |
|
</div> |
|
|
|
<div class="flex justify-between"> |
|
<button class="px-4 py-2 bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200 transition duration-200"> |
|
<i class="fas fa-redo mr-2"></i> Clear All |
|
</button> |
|
<button class="px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 transition duration-200"> |
|
<i class="fas fa-magic mr-2"></i> AI Assist |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="note-preview p-4 bg-gray-50 rounded-lg"> |
|
<h4 class="font-medium text-gray-700 mb-3">Note Preview</h4> |
|
<div class="prose max-w-none"> |
|
<h5 class="text-sm font-semibold text-gray-600 uppercase tracking-wider">Subjective</h5> |
|
<p class="text-gray-700 mb-4">Client reports feeling anxious about upcoming work presentation. Describes physical symptoms including rapid heartbeat and difficulty sleeping.</p> |
|
|
|
<h5 class="text-sm font-semibold text-gray-600 uppercase tracking-wider">Objective</h5> |
|
<p class="text-gray-700 mb-4">Client appeared fidgety during session, with visible hand tremors. Speech was rapid but coherent. PHQ-9 score: 12 (moderate depression).</p> |
|
|
|
<h5 class="text-sm font-semibold text-gray-600 uppercase tracking-wider">Assessment</h5> |
|
<p class="text-gray-700 mb-4">Symptoms consistent with adjustment disorder with anxiety. Client demonstrates insight into triggers but struggles with coping strategies.</p> |
|
|
|
<h5 class="text-sm font-semibold text-gray-600 uppercase tracking-wider">Plan</h5> |
|
<p class="text-gray-700">Continue CBT techniques focusing on cognitive restructuring. Assign thought record for next session. Consider relaxation exercises for physical symptoms.</p> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</main> |
|
</div> |
|
</div> |
|
|
|
<script> |
|
|
|
const authModal = document.getElementById('authModal'); |
|
const closeAuthModal = document.getElementById('closeAuthModal'); |
|
const loginTab = document.getElementById('loginTab'); |
|
const signupTab = document.getElementById('signupTab'); |
|
const loginForm = document.getElementById('loginForm'); |
|
const signupForm = document.getElementById('signupForm'); |
|
const loginBtn = document.getElementById('loginBtn'); |
|
const signupBtn = document.getElementById('signupBtn'); |
|
const userMenuBtn = document.getElementById('userMenuBtn'); |
|
const userMenu = document.getElementById('userMenu'); |
|
const sidebarToggle = document.getElementById('sidebarToggle'); |
|
const mobileMenuBtn = document.getElementById('mobileMenuBtn'); |
|
const mobileSidebar = document.getElementById('mobileSidebar'); |
|
const closeMobileSidebar = document.getElementById('closeMobileSidebar'); |
|
const dapNoteBuilder = document.getElementById('dapNoteBuilder'); |
|
|
|
|
|
window.addEventListener('DOMContentLoaded', () => { |
|
authModal.classList.remove('hidden'); |
|
}); |
|
|
|
|
|
closeAuthModal.addEventListener('click', () => { |
|
authModal.classList.add('hidden'); |
|
}); |
|
|
|
|
|
loginTab.addEventListener('click', () => { |
|
loginTab.classList.add('border-indigo-600', 'text-indigo-600'); |
|
loginTab.classList.remove('text-gray-500'); |
|
signupTab.classList.remove('border-indigo-600', 'text-indigo-600'); |
|
signupTab.classList.add('text-gray-500'); |
|
loginForm.classList.remove('hidden'); |
|
signupForm.classList.add('hidden'); |
|
}); |
|
|
|
signupTab.addEventListener('click', () => { |
|
signupTab.classList.add('border-indigo-600', 'text-indigo-600'); |
|
signupTab.classList.remove('text-gray-500'); |
|
loginTab.classList.remove('border-indigo-600', 'text-indigo-600'); |
|
loginTab.classList.add('text-gray-500'); |
|
signupForm.classList.remove('hidden'); |
|
loginForm.classList.add('hidden'); |
|
}); |
|
|
|
|
|
loginBtn.addEventListener('click', () => { |
|
const email = document.getElementById('loginEmail').value; |
|
const password = document.getElementById('loginPassword').value; |
|
|
|
if (email && password) { |
|
|
|
authModal.classList.add('hidden'); |
|
|
|
} else { |
|
alert('Please enter both email and password'); |
|
} |
|
}); |
|
|
|
|
|
signupBtn.addEventListener('click', () => { |
|
const name = document.getElementById('signupName').value; |
|
const email = document.getElementById('signupEmail').value; |
|
const password = document.getElementById('signupPassword').value; |
|
const confirmPassword = document.getElementById('signupConfirmPassword').value; |
|
const termsChecked = document.getElementById('termsCheckbox').checked; |
|
|
|
if (!name || !email || !password || !confirmPassword) { |
|
alert('Please fill in all fields'); |
|
return; |
|
} |
|
|
|
if (password !== confirmPassword) { |
|
alert('Passwords do not match'); |
|
return; |
|
} |
|
|
|
if (!termsChecked) { |
|
alert('You must agree to the terms of service'); |
|
return; |
|
} |
|
|
|
|
|
alert('Account created successfully! Please login.'); |
|
loginTab.click(); |
|
document.getElementById('loginEmail').value = email; |
|
document.getElementById('loginPassword').value = password; |
|
}); |
|
|
|
|
|
userMenuBtn.addEventListener('click', () => { |
|
userMenu.classList.toggle('hidden'); |
|
}); |
|
|
|
|
|
document.addEventListener('click', (e) => { |
|
if (!userMenuBtn.contains(e.target) && !userMenu.contains(e.target)) { |
|
userMenu.classList.add('hidden'); |
|
} |
|
}); |
|
|
|
|
|
sidebarToggle.addEventListener('click', () => { |
|
mobileSidebar.classList.remove('hidden'); |
|
document.querySelector('#mobileSidebar > div').classList.remove('-translate-x-full'); |
|
}); |
|
|
|
mobileMenuBtn.addEventListener('click', () => { |
|
mobileSidebar.classList.remove('hidden'); |
|
document.querySelector('#mobileSidebar > div').classList.remove('-translate-x-full'); |
|
}); |
|
|
|
closeMobileSidebar.addEventListener('click', () => { |
|
document.querySelector('#mobileSidebar > div').classList.add('-translate-x-full'); |
|
setTimeout(() => { |
|
mobileSidebar.classList.add('hidden'); |
|
}, 300); |
|
}); |
|
|
|
|
|
document.querySelectorAll('.grid-cols-1 button').forEach(button => { |
|
button.addEventListener('click', () => { |
|
if (button.textContent.includes('Start Now')) { |
|
|
|
document.querySelectorAll('main > div:not(#dapNoteBuilder)').forEach(el => { |
|
el.classList.add('hidden'); |
|
}); |
|
|
|
dapNoteBuilder.classList.remove('hidden'); |
|
} |
|
}); |
|
}); |
|
|
|
|
|
document.querySelectorAll('.textarea-autosize').forEach(textarea => { |
|
textarea.addEventListener('input', function() { |
|
this.style.height = 'auto'; |
|
this.style.height = (this.scrollHeight) + 'px'; |
|
}); |
|
}); |
|
</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=AI4U2/theragpt" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
</html> |