Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
c167bef
chore(frontend): assets y configuración de marca Kairo
ArturoGomezGz May 5, 2026
cb24f9b
feat(frontend): rebranding a Kairo — sidebar, auth, perfil y componentes
ArturoGomezGz May 5, 2026
d6092ed
feat(frontend): rebranding de vista de proyectos
ArturoGomezGz May 5, 2026
f81fc69
feat(frontend): rebranding de vista de tareas y kanban
ArturoGomezGz May 5, 2026
fdb4524
feat(frontend): rebranding de vista de sprints
ArturoGomezGz May 5, 2026
2d60f35
feat(frontend): rebranding de vista de backlog
ArturoGomezGz May 5, 2026
26357b2
feat(frontend): rebranding de vista de miembros
ArturoGomezGz May 5, 2026
263583f
chore(frontend): agregar recharts como dependencia
ArturoGomezGz May 5, 2026
44d004f
feat(frontend): rebranding de vista de dashboard
ArturoGomezGz May 5, 2026
4e797f3
feat(frontend): graficas por developer y compare panel en dashboard
ArturoGomezGz May 5, 2026
23b588c
feat(frontend): custom dropdown con dots de color para filtros de tasks
ArturoGomezGz May 5, 2026
6adfde7
feat(frontend): custom dropdowns en filtros y formulario de tareas
ArturoGomezGz May 5, 2026
6912fcc
feat(frontend): selector de sprint del dashboard con custom dropdown
ArturoGomezGz May 5, 2026
0507d98
fix(frontend): sprintId convertido a string para match correcto en dr…
ArturoGomezGz May 5, 2026
c61725d
feat(frontend): eliminar campo de cambio de contraseña del perfil
ArturoGomezGz May 5, 2026
2c18c8f
feat(frontend): implementación de dark mode con CSS variables y Theme…
ArturoGomezGz May 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,246 changes: 2,039 additions & 207 deletions MtdrSpring/backend/src/main/frontend/package-lock.json

Large diffs are not rendered by default.

25 changes: 17 additions & 8 deletions MtdrSpring/backend/src/main/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
"react-dom": "^18.2.0",
"react-router-dom": "^6.22.0",
"react-scripts": "5.0.1",
"recharts": "^2.12.7"
"recharts": "^2.15.4"
},
"devDependencies": {
"tailwindcss": "^3.4.1",
"postcss": "^8.4.35",
"autoprefixer": "^10.4.17",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0"
"@testing-library/user-event": "^13.5.0",
"autoprefixer": "^10.4.17",
"postcss": "^8.4.35",
"tailwindcss": "^3.4.1"
},
"scripts": {
"start": "react-scripts start",
Expand All @@ -27,8 +27,17 @@
"extends": "react-app"
},
"browserslist": {
"production": [">0.2%", "not dead", "not op_mini all"],
"development": ["last 1 chrome version", "last 1 firefox version", "last 1 safari version"]
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"homepage": "."
"homepage": ".",
"proxy": "http://localhost:8080"
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion MtdrSpring/backend/src/main/frontend/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Chuva Bot</title>
<title>Kairo</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
Expand Down
3 changes: 3 additions & 0 deletions MtdrSpring/backend/src/main/frontend/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { AuthProvider } from './context/AuthContext';
import { ProjectProvider } from './context/ProjectContext';
import { ToastProvider } from './context/ToastContext';
import { ThemeProvider } from './context/ThemeContext';

import AuthLayout from './components/Layout/AuthLayout';
import AppLayout from './components/Layout/AppLayout';
Expand All @@ -20,6 +21,7 @@ import ProfilePage from './pages/ProfilePage';

export default function App() {
return (
<ThemeProvider>
<ToastProvider>
<AuthProvider>
<ProjectProvider>
Expand Down Expand Up @@ -50,5 +52,6 @@ export default function App() {
</ProjectProvider>
</AuthProvider>
</ToastProvider>
</ThemeProvider>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useState, useCallback } from 'react';
import { Outlet, Navigate } from 'react-router-dom';
import { useAuth } from '../../context/AuthContext';
import Sidebar from './Sidebar';
import KairoMark from '../common/KairoMark';

export default function AppLayout() {
const { token } = useAuth();
Expand All @@ -10,7 +11,7 @@ export default function AppLayout() {
if (!token) return <Navigate to="/login" replace />;

return (
<div className="flex min-h-screen bg-gray-50">
<div className="flex min-h-screen" style={{ background: 'var(--bg-page)' }}>
{sidebarOpen && (
<div
className="fixed inset-0 z-30 bg-black/40 md:hidden"
Expand All @@ -19,17 +20,21 @@ export default function AppLayout() {
)}
<Sidebar open={sidebarOpen} onClose={closeSidebar} />
<div className="flex-1 flex flex-col md:ml-56 min-w-0">
<header className="md:hidden flex items-center gap-3 px-4 py-3 bg-white border-b border-gray-100 sticky top-0 z-20">
<header
className="md:hidden flex items-center gap-3 px-4 py-3 sticky top-0 z-20"
style={{ background: 'var(--bg-card)', borderBottom: '1px solid var(--border)' }}
>
<button
onClick={() => setSidebarOpen(true)}
className="p-1 rounded-lg hover:bg-gray-100 text-gray-600"
className="p-1 rounded-lg hover:bg-gray-100 dark:hover:bg-slate-700 text-gray-600 dark:text-gray-300"
aria-label="Open menu"
>
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
<span className="font-semibold text-gray-900 text-sm">Chuva Bot</span>
<KairoMark size={28} variant="light" />
<span className="font-display font-extrabold text-sm" style={{ color: 'var(--text-primary)', letterSpacing: '-0.02em' }}>Kairo</span>
</header>
<main className="flex-1 p-4 md:p-8 overflow-x-hidden min-w-0">
<Outlet />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,59 @@
import React from 'react';
import { Outlet } from 'react-router-dom';
import KairoMark from '../common/KairoMark';

export default function AuthLayout() {
return (
<div className="min-h-screen bg-gray-50 flex items-center justify-center p-4">
<div className="w-full max-w-sm">
<div className="text-center mb-8">
<h1 className="text-2xl font-bold text-gray-900">Chuva Bot</h1>
<p className="text-sm text-gray-500 mt-1">Task Management</p>
<div
className="min-h-screen flex items-center justify-center p-6 relative overflow-hidden"
style={{
background: '#001C33',
backgroundImage: 'radial-gradient(ellipse 70% 60% at 50% 0%, rgba(0,85,135,0.33) 0%, transparent 70%)',
}}
>
{/* Decorative grid */}
<div
className="absolute inset-0 pointer-events-none"
style={{
opacity: 0.04,
backgroundImage: 'linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px)',
backgroundSize: '48px 48px',
}}
/>

<div className="relative z-10 w-full max-w-[420px] flex flex-col items-center gap-0">
{/* Brand lockup */}
<div className="mb-4">
<img
src={`${process.env.PUBLIC_URL}/brand-lockup.png`}
alt="Oracle × Tecnológico de Monterrey"
style={{ height: 40, width: 'auto', filter: 'brightness(0) invert(1)', opacity: 0.65 }}
onError={(e) => { e.target.style.display = 'none'; }}
/>
</div>

{/* Card */}
<div className="w-full bg-white rounded-2xl overflow-hidden" style={{ boxShadow: '0 32px 80px rgba(0,0,0,0.4)' }}>
{/* Top accent bar */}
<div className="h-1" style={{ background: 'linear-gradient(90deg, #003865, #C74634)' }} />

<div className="px-8 py-5">
{/* Logo */}
<div className="flex items-center gap-3 mb-5">
<KairoMark size={40} variant="oracle" />
<div>
<div className="font-display text-xl font-extrabold tracking-tight text-gray-900" style={{ letterSpacing: '-0.03em' }}>
Kairo
</div>
<div className="text-[10px] font-bold tracking-[0.10em] uppercase text-gray-400 mt-0.5">
TEConecta
</div>
</div>
</div>

<Outlet />
</div>
</div>
<Outlet />
</div>
</div>
);
Expand Down
Loading
Loading