@siteboon/claude-code-ui 1.8.2 → 1.8.3
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/assets/index-BNGSzSdr.css +32 -0
- package/dist/assets/index-BZctMHnE.js +900 -0
- package/{index.html → dist/index.html} +4 -3
- package/package.json +6 -1
- package/server/database/auth.db +0 -0
- package/.env.example +0 -12
- package/.nvmrc +0 -1
- package/postcss.config.js +0 -6
- package/src/App.jsx +0 -751
- package/src/components/ChatInterface.jsx +0 -3485
- package/src/components/ClaudeLogo.jsx +0 -11
- package/src/components/ClaudeStatus.jsx +0 -107
- package/src/components/CodeEditor.jsx +0 -422
- package/src/components/CreateTaskModal.jsx +0 -88
- package/src/components/CursorLogo.jsx +0 -9
- package/src/components/DarkModeToggle.jsx +0 -35
- package/src/components/DiffViewer.jsx +0 -41
- package/src/components/ErrorBoundary.jsx +0 -73
- package/src/components/FileTree.jsx +0 -480
- package/src/components/GitPanel.jsx +0 -1283
- package/src/components/ImageViewer.jsx +0 -54
- package/src/components/LoginForm.jsx +0 -110
- package/src/components/MainContent.jsx +0 -577
- package/src/components/MicButton.jsx +0 -272
- package/src/components/MobileNav.jsx +0 -88
- package/src/components/NextTaskBanner.jsx +0 -695
- package/src/components/PRDEditor.jsx +0 -871
- package/src/components/ProtectedRoute.jsx +0 -44
- package/src/components/QuickSettingsPanel.jsx +0 -262
- package/src/components/Settings.jsx +0 -2023
- package/src/components/SetupForm.jsx +0 -135
- package/src/components/Shell.jsx +0 -663
- package/src/components/Sidebar.jsx +0 -1665
- package/src/components/StandaloneShell.jsx +0 -106
- package/src/components/TaskCard.jsx +0 -210
- package/src/components/TaskDetail.jsx +0 -406
- package/src/components/TaskIndicator.jsx +0 -108
- package/src/components/TaskList.jsx +0 -1054
- package/src/components/TaskMasterSetupWizard.jsx +0 -603
- package/src/components/TaskMasterStatus.jsx +0 -86
- package/src/components/TodoList.jsx +0 -91
- package/src/components/Tooltip.jsx +0 -91
- package/src/components/ui/badge.jsx +0 -31
- package/src/components/ui/button.jsx +0 -46
- package/src/components/ui/input.jsx +0 -19
- package/src/components/ui/scroll-area.jsx +0 -23
- package/src/contexts/AuthContext.jsx +0 -158
- package/src/contexts/TaskMasterContext.jsx +0 -324
- package/src/contexts/TasksSettingsContext.jsx +0 -95
- package/src/contexts/ThemeContext.jsx +0 -94
- package/src/contexts/WebSocketContext.jsx +0 -29
- package/src/hooks/useAudioRecorder.js +0 -109
- package/src/hooks/useVersionCheck.js +0 -39
- package/src/index.css +0 -822
- package/src/lib/utils.js +0 -6
- package/src/main.jsx +0 -10
- package/src/utils/api.js +0 -141
- package/src/utils/websocket.js +0 -109
- package/src/utils/whisper.js +0 -37
- package/tailwind.config.js +0 -63
- package/vite.config.js +0 -29
- /package/{public → dist}/convert-icons.md +0 -0
- /package/{public → dist}/favicon.png +0 -0
- /package/{public → dist}/favicon.svg +0 -0
- /package/{public → dist}/generate-icons.js +0 -0
- /package/{public → dist}/icons/claude-ai-icon.svg +0 -0
- /package/{public → dist}/icons/cursor.svg +0 -0
- /package/{public → dist}/icons/generate-icons.md +0 -0
- /package/{public → dist}/icons/icon-128x128.png +0 -0
- /package/{public → dist}/icons/icon-128x128.svg +0 -0
- /package/{public → dist}/icons/icon-144x144.png +0 -0
- /package/{public → dist}/icons/icon-144x144.svg +0 -0
- /package/{public → dist}/icons/icon-152x152.png +0 -0
- /package/{public → dist}/icons/icon-152x152.svg +0 -0
- /package/{public → dist}/icons/icon-192x192.png +0 -0
- /package/{public → dist}/icons/icon-192x192.svg +0 -0
- /package/{public → dist}/icons/icon-384x384.png +0 -0
- /package/{public → dist}/icons/icon-384x384.svg +0 -0
- /package/{public → dist}/icons/icon-512x512.png +0 -0
- /package/{public → dist}/icons/icon-512x512.svg +0 -0
- /package/{public → dist}/icons/icon-72x72.png +0 -0
- /package/{public → dist}/icons/icon-72x72.svg +0 -0
- /package/{public → dist}/icons/icon-96x96.png +0 -0
- /package/{public → dist}/icons/icon-96x96.svg +0 -0
- /package/{public → dist}/icons/icon-template.svg +0 -0
- /package/{public → dist}/logo.svg +0 -0
- /package/{public → dist}/manifest.json +0 -0
- /package/{public → dist}/screenshots/cli-selection.png +0 -0
- /package/{public → dist}/screenshots/desktop-main.png +0 -0
- /package/{public → dist}/screenshots/mobile-chat.png +0 -0
- /package/{public → dist}/screenshots/tools-modal.png +0 -0
- /package/{public → dist}/sw.js +0 -0
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import { useAuth } from '../contexts/AuthContext';
|
|
3
|
-
import ClaudeLogo from './ClaudeLogo';
|
|
4
|
-
|
|
5
|
-
const SetupForm = () => {
|
|
6
|
-
const [username, setUsername] = useState('');
|
|
7
|
-
const [password, setPassword] = useState('');
|
|
8
|
-
const [confirmPassword, setConfirmPassword] = useState('');
|
|
9
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
10
|
-
const [error, setError] = useState('');
|
|
11
|
-
|
|
12
|
-
const { register } = useAuth();
|
|
13
|
-
|
|
14
|
-
const handleSubmit = async (e) => {
|
|
15
|
-
e.preventDefault();
|
|
16
|
-
setError('');
|
|
17
|
-
|
|
18
|
-
if (password !== confirmPassword) {
|
|
19
|
-
setError('Passwords do not match');
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (username.length < 3) {
|
|
24
|
-
setError('Username must be at least 3 characters long');
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (password.length < 6) {
|
|
29
|
-
setError('Password must be at least 6 characters long');
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
setIsLoading(true);
|
|
34
|
-
|
|
35
|
-
const result = await register(username, password);
|
|
36
|
-
|
|
37
|
-
if (!result.success) {
|
|
38
|
-
setError(result.error);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
setIsLoading(false);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
return (
|
|
45
|
-
<div className="min-h-screen bg-background flex items-center justify-center p-4">
|
|
46
|
-
<div className="w-full max-w-md">
|
|
47
|
-
<div className="bg-card rounded-lg shadow-lg border border-border p-8 space-y-6">
|
|
48
|
-
{/* Logo and Title */}
|
|
49
|
-
<div className="text-center">
|
|
50
|
-
<div className="flex justify-center mb-4">
|
|
51
|
-
<ClaudeLogo size={64} />
|
|
52
|
-
</div>
|
|
53
|
-
<h1 className="text-2xl font-bold text-foreground">Welcome to Claude Code UI</h1>
|
|
54
|
-
<p className="text-muted-foreground mt-2">
|
|
55
|
-
Set up your account to get started
|
|
56
|
-
</p>
|
|
57
|
-
</div>
|
|
58
|
-
|
|
59
|
-
{/* Setup Form */}
|
|
60
|
-
<form onSubmit={handleSubmit} className="space-y-4">
|
|
61
|
-
<div>
|
|
62
|
-
<label htmlFor="username" className="block text-sm font-medium text-foreground mb-1">
|
|
63
|
-
Username
|
|
64
|
-
</label>
|
|
65
|
-
<input
|
|
66
|
-
type="text"
|
|
67
|
-
id="username"
|
|
68
|
-
value={username}
|
|
69
|
-
onChange={(e) => setUsername(e.target.value)}
|
|
70
|
-
className="w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
|
71
|
-
placeholder="Enter your username"
|
|
72
|
-
required
|
|
73
|
-
disabled={isLoading}
|
|
74
|
-
/>
|
|
75
|
-
</div>
|
|
76
|
-
|
|
77
|
-
<div>
|
|
78
|
-
<label htmlFor="password" className="block text-sm font-medium text-foreground mb-1">
|
|
79
|
-
Password
|
|
80
|
-
</label>
|
|
81
|
-
<input
|
|
82
|
-
type="password"
|
|
83
|
-
id="password"
|
|
84
|
-
value={password}
|
|
85
|
-
onChange={(e) => setPassword(e.target.value)}
|
|
86
|
-
className="w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
|
87
|
-
placeholder="Enter your password"
|
|
88
|
-
required
|
|
89
|
-
disabled={isLoading}
|
|
90
|
-
/>
|
|
91
|
-
</div>
|
|
92
|
-
|
|
93
|
-
<div>
|
|
94
|
-
<label htmlFor="confirmPassword" className="block text-sm font-medium text-foreground mb-1">
|
|
95
|
-
Confirm Password
|
|
96
|
-
</label>
|
|
97
|
-
<input
|
|
98
|
-
type="password"
|
|
99
|
-
id="confirmPassword"
|
|
100
|
-
value={confirmPassword}
|
|
101
|
-
onChange={(e) => setConfirmPassword(e.target.value)}
|
|
102
|
-
className="w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
|
103
|
-
placeholder="Confirm your password"
|
|
104
|
-
required
|
|
105
|
-
disabled={isLoading}
|
|
106
|
-
/>
|
|
107
|
-
</div>
|
|
108
|
-
|
|
109
|
-
{error && (
|
|
110
|
-
<div className="p-3 bg-red-100 dark:bg-red-900/20 border border-red-300 dark:border-red-800 rounded-md">
|
|
111
|
-
<p className="text-sm text-red-700 dark:text-red-400">{error}</p>
|
|
112
|
-
</div>
|
|
113
|
-
)}
|
|
114
|
-
|
|
115
|
-
<button
|
|
116
|
-
type="submit"
|
|
117
|
-
disabled={isLoading}
|
|
118
|
-
className="w-full bg-blue-600 hover:bg-blue-700 disabled:bg-blue-400 text-white font-medium py-2 px-4 rounded-md transition-colors duration-200"
|
|
119
|
-
>
|
|
120
|
-
{isLoading ? 'Setting up...' : 'Create Account'}
|
|
121
|
-
</button>
|
|
122
|
-
</form>
|
|
123
|
-
|
|
124
|
-
<div className="text-center">
|
|
125
|
-
<p className="text-sm text-muted-foreground">
|
|
126
|
-
This is a single-user system. Only one account can be created.
|
|
127
|
-
</p>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
);
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
export default SetupForm;
|