Upload folder using huggingface_hub
Browse files- client/src/components/Layout.tsx +7 -6
- client/src/index.css +7 -1
- client/src/pages/Dashboard.tsx +3 -3
- client/tailwind.config.js +2 -1
client/src/components/Layout.tsx
CHANGED
|
@@ -6,7 +6,8 @@ import {
|
|
| 6 |
BookOpenIcon,
|
| 7 |
HandThumbUpIcon,
|
| 8 |
WrenchScrewdriverIcon,
|
| 9 |
-
|
|
|
|
| 10 |
ArrowRightOnRectangleIcon,
|
| 11 |
PowerIcon
|
| 12 |
} from '@heroicons/react/24/outline';
|
|
@@ -149,7 +150,7 @@ const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => {
|
|
| 149 |
{ name: 'Votes', href: '/votes', icon: HandThumbUpIcon },
|
| 150 |
{ name: 'Toolkit', href: '/toolkit', icon: WrenchScrewdriverIcon },
|
| 151 |
{ name: 'Slides', href: '/slides', icon: BookOpenIcon },
|
| 152 |
-
{ name: 'Feedback', href: '/feedback', icon:
|
| 153 |
];
|
| 154 |
|
| 155 |
// Hide Slides for visitors
|
|
@@ -159,7 +160,7 @@ const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => {
|
|
| 159 |
|
| 160 |
// Add Manage link for admin users
|
| 161 |
if (user?.role === 'admin') {
|
| 162 |
-
navigation.push({ name: 'Manage', href: '/manage', icon:
|
| 163 |
}
|
| 164 |
|
| 165 |
return (
|
|
@@ -176,18 +177,18 @@ const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => {
|
|
| 176 |
<div className="flex">
|
| 177 |
{/* Sidebar */}
|
| 178 |
<aside className="hidden md:flex md:flex-col w-60 min-h-[calc(100vh-56px)] border-r border-ui-border bg-ui-panel">
|
| 179 |
-
<nav className="p-
|
| 180 |
{navigation.map((item) => {
|
| 181 |
const isActive = location.pathname === item.href;
|
| 182 |
return (
|
| 183 |
<Link
|
| 184 |
key={item.name}
|
| 185 |
to={item.href}
|
| 186 |
-
className={`flex items-center px-3 py-2 rounded-
|
| 187 |
isActive ? 'bg-ui-bg text-ui-text neon-border' : 'text-ui-text/80 hover:bg-ui-panel/60'
|
| 188 |
}`}
|
| 189 |
>
|
| 190 |
-
<item.icon className="h-
|
| 191 |
<span>{item.name}</span>
|
| 192 |
</Link>
|
| 193 |
);
|
|
|
|
| 6 |
BookOpenIcon,
|
| 7 |
HandThumbUpIcon,
|
| 8 |
WrenchScrewdriverIcon,
|
| 9 |
+
ChatBubbleLeftRightIcon,
|
| 10 |
+
Cog6ToothIcon,
|
| 11 |
ArrowRightOnRectangleIcon,
|
| 12 |
PowerIcon
|
| 13 |
} from '@heroicons/react/24/outline';
|
|
|
|
| 150 |
{ name: 'Votes', href: '/votes', icon: HandThumbUpIcon },
|
| 151 |
{ name: 'Toolkit', href: '/toolkit', icon: WrenchScrewdriverIcon },
|
| 152 |
{ name: 'Slides', href: '/slides', icon: BookOpenIcon },
|
| 153 |
+
{ name: 'Feedback', href: '/feedback', icon: ChatBubbleLeftRightIcon },
|
| 154 |
];
|
| 155 |
|
| 156 |
// Hide Slides for visitors
|
|
|
|
| 160 |
|
| 161 |
// Add Manage link for admin users
|
| 162 |
if (user?.role === 'admin') {
|
| 163 |
+
navigation.push({ name: 'Manage', href: '/manage', icon: Cog6ToothIcon });
|
| 164 |
}
|
| 165 |
|
| 166 |
return (
|
|
|
|
| 177 |
<div className="flex">
|
| 178 |
{/* Sidebar */}
|
| 179 |
<aside className="hidden md:flex md:flex-col w-60 min-h-[calc(100vh-56px)] border-r border-ui-border bg-ui-panel">
|
| 180 |
+
<nav className="p-4 space-y-2 flex-1">
|
| 181 |
{navigation.map((item) => {
|
| 182 |
const isActive = location.pathname === item.href;
|
| 183 |
return (
|
| 184 |
<Link
|
| 185 |
key={item.name}
|
| 186 |
to={item.href}
|
| 187 |
+
className={`flex items-center px-3 py-2 rounded-lg text-[0.95rem] font-medium transition-colors ${
|
| 188 |
isActive ? 'bg-ui-bg text-ui-text neon-border' : 'text-ui-text/80 hover:bg-ui-panel/60'
|
| 189 |
}`}
|
| 190 |
>
|
| 191 |
+
<item.icon className="h-5 w-5 mr-3 text-ui-neonBlue" />
|
| 192 |
<span>{item.name}</span>
|
| 193 |
</Link>
|
| 194 |
);
|
client/src/index.css
CHANGED
|
@@ -12,8 +12,14 @@
|
|
| 12 |
}
|
| 13 |
|
| 14 |
@layer components {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
.btn-primary {
|
| 16 |
-
@apply bg-ui-
|
| 17 |
}
|
| 18 |
|
| 19 |
.btn-secondary {
|
|
|
|
| 12 |
}
|
| 13 |
|
| 14 |
@layer components {
|
| 15 |
+
h1, h2, h3 {
|
| 16 |
+
@apply text-ui-text;
|
| 17 |
+
}
|
| 18 |
+
a {
|
| 19 |
+
@apply text-ui-neonBlue hover:text-ui-neonPink;
|
| 20 |
+
}
|
| 21 |
.btn-primary {
|
| 22 |
+
@apply bg-ui-neonBlue hover:bg-ui-neonBlue/90 text-white font-semibold py-2 px-4 rounded-lg transition-colors duration-200 shadow-[0_0_10px_rgba(14,165,233,0.55)];
|
| 23 |
}
|
| 24 |
|
| 25 |
.btn-secondary {
|
client/src/pages/Dashboard.tsx
CHANGED
|
@@ -183,15 +183,15 @@ const Dashboard: React.FC = () => {
|
|
| 183 |
</div>
|
| 184 |
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
|
| 185 |
<div className="text-center">
|
| 186 |
-
<div className="text-2xl font-bold text-ui-
|
| 187 |
<div className="text-sm text-ui-text/70">Weeks</div>
|
| 188 |
</div>
|
| 189 |
<div className="text-center">
|
| 190 |
-
<div className="text-2xl font-bold text-ui-
|
| 191 |
<div className="text-sm text-ui-text/70">Task Types</div>
|
| 192 |
</div>
|
| 193 |
<div className="text-center">
|
| 194 |
-
<div className="text-2xl font-bold text-ui-
|
| 195 |
<div className="text-sm text-ui-text/70">Peer Review</div>
|
| 196 |
</div>
|
| 197 |
</div>
|
|
|
|
| 183 |
</div>
|
| 184 |
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
|
| 185 |
<div className="text-center">
|
| 186 |
+
<div className="text-2xl font-bold text-ui-neonBlue">6</div>
|
| 187 |
<div className="text-sm text-ui-text/70">Weeks</div>
|
| 188 |
</div>
|
| 189 |
<div className="text-center">
|
| 190 |
+
<div className="text-2xl font-bold text-ui-neonBlue">2</div>
|
| 191 |
<div className="text-sm text-ui-text/70">Task Types</div>
|
| 192 |
</div>
|
| 193 |
<div className="text-center">
|
| 194 |
+
<div className="text-2xl font-bold text-ui-neonBlue">Voting</div>
|
| 195 |
<div className="text-sm text-ui-text/70">Peer Review</div>
|
| 196 |
</div>
|
| 197 |
</div>
|
client/tailwind.config.js
CHANGED
|
@@ -19,7 +19,8 @@ module.exports = {
|
|
| 19 |
|
| 20 |
// Neon accents (unchanged)
|
| 21 |
neonPink: '#FF2DAC', // neon primary
|
| 22 |
-
neonCyan: '#
|
|
|
|
| 23 |
neonLime: '#C7FF41', // highlights
|
| 24 |
magenta: '#D700FF', // accents
|
| 25 |
warning: '#FFB020', // warnings
|
|
|
|
| 19 |
|
| 20 |
// Neon accents (unchanged)
|
| 21 |
neonPink: '#FF2DAC', // neon primary
|
| 22 |
+
neonCyan: '#14BBD2', // darker cyan for better contrast
|
| 23 |
+
neonBlue: '#0EA5E9', // further darkened option for solid fills
|
| 24 |
neonLime: '#C7FF41', // highlights
|
| 25 |
magenta: '#D700FF', // accents
|
| 26 |
warning: '#FFB020', // warnings
|