[18/06, 11:19 pm] Mauli Tcs: header.jsx
import React from 'react';
import '../styles/AdminPanel.css';
export default function AdminPanel() {
const recentBookingsData = [
{ id: '#BK-9201', user: 'Rahul Sharma', slot: 'A2', floor: 'Floor 1', price: '$80.00', status: 'Active' },
{ id: '#BK-8841', user: 'Amit Patel', slot: 'C5', floor: 'Floor 3', price: '$60.00', status: 'Active' },
{ id: '#BK-8711', user: 'Priya Singh', slot: 'B3', floor: 'Floor 2', price: '$40.00', status: 'Completed' },
{ id: '#BK-8502', user: 'Sneha Patil', slot: 'D5', floor: 'Floor 4', price: '$120.00', status: 'Completed' }
];
return (
<div className="admin-panel-viewport-wrapper">
<div className="admin-lane-scroller-stream">
<div className="admin-welcome-header">
<h2>Admin Management System</h2>
<p>Monitor bookings, adjust parking layouts, and analyze system performance metrics in real-time.</p>
</div>
{/* 4 Analytical Summary Component Cards */}
<div className="admin-analytical-cards-grid">
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-orange">💰</div>
<div>
<span className="stat-label">Total Revenue</span>
<h3 className="stat-value">$24,500</h3>
<span className="stat-subtext text-green">▲ 12% vs last week</span>
</div>
</div>
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-blue">📅</div>
<div>
<span className="stat-label">Total Bookings</span>
<h3 className="stat-value">1,248</h3>
<span className="stat-subtext text-green">▲ 8% this month</span>
</div>
</div>
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-green">📈</div>
<div>
<span className="stat-label">Occupancy Rate</span>
<h3 className="stat-value">82%</h3>
<span className="stat-subtext text-amber">● Peak hours alert active</span>
</div>
</div>
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-purple">👤</div>
<div>
<span className="stat-label">Total Users</span>
<h3 className="stat-value">2,543</h3>
<span className="stat-subtext text-green">▲ 5% new drivers</span>
</div>
</div>
</div>
{/* Analytics Graphical Visualization Rows */}
<div className="admin-charts-split-flex-row">
<div className="card chart-box-card flex-2">
<h4 className="chart-card-heading">Revenue Analytics Overlap</h4>
<div className="mock-css-line-graph-viewport">
{/* Visualized pure CSS line graph vector layout nodes */}
<div className="css-graph-vector-wrapper">
<div className="vector-bar" style={{ height: '30%' }}><span className="bar-pop">$4k</span></div>
<div className="vector-bar" style={{ height: '45%' }}><span className="bar-pop">$8k</span></div>
<div className="vector-bar" style={{ height: '40%' }}><span className="bar-pop">$6k</span></div>
<div className="vector-bar" style={{ height: '65%' }}><span className="bar-pop">$14k</span></div>
<div className="vector-bar" style={{ height: '85%' }}><span className="bar-pop">$24k</span></div>
</div>
<div className="graph-bottom-timeline-labels"><span>Jan</span><span>Feb</span><span>Mar</span><span>Apr</span><span>May</span></div>
</div>
</div>
<div className="card chart-box-card flex-1">
<h4 className="chart-card-heading">Occupancy Breakdown</h4>
<div className="mock-donut-chart-container">
<div className="donut-circle-graphic">
<div className="donut-center-hole">
<strong>82%</strong>
<span>Filled</span>
</div>
</div>
<div className="donut-legend-rows-list">
<div className="d-legend"><span className="dot bg-blue"></span> 28 Available</div>
<div className="d-legend"><span className="dot bg-purple"></span> 4 Out of order</div>
</div>
</div>
</div>
</div>
{/* Comprehensive Recent Activity Log Table */}
<div className="card admin-data-table-panel-card">
<h4 className="table-card-title-heading">Monitor Bookings and System Usage</h4>
<div className="table-overflow-responsive-wrapper">
<table className="admin-native-data-table">
<thead>
<tr>
<th>Booking ID</th>
<th>Driver/User</th>
<th>Assigned Slot</th>
<th>Floor</th>
<th>Amount Paid</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{recentBookingsData.map((row) => (
<tr key={row.id}>
<td><strong className="text-slate-dark">{row.id}</strong></td>
<td>
<div className="driver-profile-cell-flex">
<div className="driver-avatar-placeholder">{row.user.charAt(0)}</div>
<span>{row.user}</span>
</div>
</td>
<td><span className="table-slot-pill-badge">{row.slot}</span></td>
<td>{row.floor}</td>
<td><strong className="text-green-bold">{row.price}</strong></td>
<td>
<span className={`status-table-tag tag-${row.status.toLowerCase()}`}>
{row.status}
</span>
</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</div>
{/* Right Side Sticky Admin Tool Controls Widget */}
<div className="admin-right-control-sidebar-card card">
<h4 className="control-sidebar-title">Manage Parking Slots</h4>
<p className="control-sidebar-desc">Admin can view all parking slots, add new slots, edit details, or delete configuration blocks instantly.</p>
<div className="admin-actions-vertical-buttons-stack">
<button className="btn-admin-action-block bg-blue-action">➕ Add New Parking Slot</button>
<button className="btn-admin-action-block bg-slate-action">✏️ Edit Slot Details Configuration</button>
<button className="btn-admin-action-block bg-red-action">🗑️ Delete Slot From Matrix Repo</button>
</div>
<div className="system-health-diagnostic-box">
<span className="diagnostic-heartbeat-pulse">🟢</span>
<div>
<strong>System Operational Sync Active</strong>
<p>Information is updated in real-time across client layers without errors.</p>
</div>
</div>
</div>
</div>
);
}
[18/06, 11:19 pm] Mauli Tcs: sidebar.jsx
import React from 'react';
import { useNavigate, useLocation } from 'react-router-dom';
import '../styles/Sidebar.css'
export default function Sidebar({ role, onLogout }) {
const navigate = useNavigate();
const location = useLocation();
const menuItems = role === 'admin'
? [
{ name: 'Dashboard', path: '/dashboard', icon: '📁' },
{ name: 'Slots Management', path: '/slots-manage', icon: '🅿️' },
{ name: 'Bookings', path: '/bookings-manage', icon: '📅' },
{ name: 'Users', path: '/users-list', icon: '👤' },
{ name: 'Payments', path: '/payments-log', icon: '💳' },
{ name: 'Reports', path: '/reports-panel', icon: '📈' },
{ name: 'Analytics', path: '/analytics-panel', icon: '📊' },
{ name: 'Settings', path: '/settings', icon: '⚙️' }
]
: [
{ name: 'Dashboard', path: '/dashboard', icon: '📁' },
{ name: 'Find Slots', path: '/booking-details', icon: '🔍' }, // 🔥 FIX: Change this from /dashboard to /booking-details
{ name: 'My Bookings', path: '/my-bookings', icon: '📅' },
{ name: 'Wallet', path: '/wallet', icon: '💳' },
{ name: 'Settings', path: '/settings', icon: '⚙️' }
];
return (
<div className="sidebar-main-navigation-panel">
{/* Sidebar Top Branding Header */}
<div className="sidebar-brand-wrapper">
<div className="sidebar-brand-logo-square">P</div>
<div>
<h4 className="brand-txt-main">SMART PARKING</h4>
<span className="brand-txt-sub">{role === 'admin' ? 'Admin Panel' : 'Management System'}</span>
</div>
</div>
{/* Sidebar Navigation Items Links List */}
<div className="sidebar-navigation-links-container">
<div className="links-top-cluster-stack">
{menuItems.map((item) => {
const isActive = location.pathname === item.path;
return (
<button
key={item.name}
onClick={() => navigate(item.path)}
className={`sidebar-nav-link-item ${isActive ? 'link-state-active' : ''}`}
>
<span className="sidebar-item-icon">{item.icon}</span>
<span className="sidebar-item-name-text">{item.name}</span>
</button>
);
})}
</div>
{/* Bottom App Promo & Actions Banner wrapper */}
<div className="sidebar-footer-group">
<div className="sidebar-promo-blue-card">
<h5>Smart Parking System</h5>
<p>Manage your parking operations efficiently.</p>
</div>
<button onClick={onLogout} className="sidebar-nav-link-item color-logout-red">
<span className="sidebar-item-icon">🚪</span>
<span className="sidebar-item-name-text">Logout</span>
</button>
</div>
</div>
</div>
);
}
[18/06, 11:19 pm] Mauli Tcs: adminPanel.jsx
import React from 'react';
import '../styles/AdminPanel.css';
export default function AdminPanel() {
const recentBookingsData = [
{ id: '#BK-9201', user: 'Rahul Sharma', slot: 'A2', floor: 'Floor 1', price: '$80.00', status: 'Active' },
{ id: '#BK-8841', user: 'Amit Patel', slot: 'C5', floor: 'Floor 3', price: '$60.00', status: 'Active' },
{ id: '#BK-8711', user: 'Priya Singh', slot: 'B3', floor: 'Floor 2', price: '$40.00', status: 'Completed' },
{ id: '#BK-8502', user: 'Sneha Patil', slot: 'D5', floor: 'Floor 4', price: '$120.00', status: 'Completed' }
];
return (
<div className="admin-panel-viewport-wrapper">
<div className="admin-lane-scroller-stream">
<div className="admin-welcome-header">
<h2>Admin Management System</h2>
<p>Monitor bookings, adjust parking layouts, and analyze system performance metrics in real-time.</p>
</div>
{/* 4 Analytical Summary Component Cards */}
<div className="admin-analytical-cards-grid">
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-orange">💰</div>
<div>
<span className="stat-label">Total Revenue</span>
<h3 className="stat-value">$24,500</h3>
<span className="stat-subtext text-green">▲ 12% vs last week</span>
</div>
</div>
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-blue">📅</div>
<div>
<span className="stat-label">Total Bookings</span>
<h3 className="stat-value">1,248</h3>
<span className="stat-subtext text-green">▲ 8% this month</span>
</div>
</div>
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-green">📈</div>
<div>
<span className="stat-label">Occupancy Rate</span>
<h3 className="stat-value">82%</h3>
<span className="stat-subtext text-amber">● Peak hours alert active</span>
</div>
</div>
<div className="admin-stat-card card">
<div className="stat-icon-wrapper color-purple">👤</div>
<div>
<span className="stat-label">Total Users</span>
<h3 className="stat-value">2,543</h3>
<span className="stat-subtext text-green">▲ 5% new drivers</span>
</div>
</div>
</div>
{/* Analytics Graphical Visualization Rows */}
<div className="admin-charts-split-flex-row">
<div className="card chart-box-card flex-2">
<h4 className="chart-card-heading">Revenue Analytics Overlap</h4>
<div className="mock-css-line-graph-viewport">
{/* Visualized pure CSS line graph vector layout nodes */}
<div className="css-graph-vector-wrapper">
<div className="vector-bar" style={{ height: '30%' }}><span className="bar-pop">$4k</span></div>
<div className="vector-bar" style={{ height: '45%' }}><span className="bar-pop">$8k</span></div>
<div className="vector-bar" style={{ height: '40%' }}><span className="bar-pop">$6k</span></div>
<div className="vector-bar" style={{ height: '65%' }}><span className="bar-pop">$14k</span></div>
<div className="vector-bar" style={{ height: '85%' }}><span className="bar-pop">$24k</span></div>
</div>
<div className="graph-bottom-timeline-labels"><span>Jan</span><span>Feb</span><span>Mar</span><span>Apr</span><span>May</span></div>
</div>
</div>
<div className="card chart-box-card flex-1">
<h4 className="chart-card-heading">Occupancy Breakdown</h4>
<div className="mock-donut-chart-container">
<div className="donut-circle-graphic">
<div className="donut-center-hole">
<strong>82%</strong>
<span>Filled</span>
</div>
</div>
<div className="donut-legend-rows-list">
<div className="d-legend"><span className="dot bg-blue"></span> 28 Available</div>
<div className="d-legend"><span className="dot bg-purple"></span> 4 Out of order</div>
</div>
</div>
</div>
</div>
{/* Comprehensive Recent Activity Log Table */}
<div className="card admin-data-table-panel-card">
<h4 className="table-card-title-heading">Monitor Bookings and System Usage</h4>
<div className="table-overflow-responsive-wrapper">
<table className="admin-native-data-table">
<thead>
<tr>
<th>Booking ID</th>
<th>Driver/User</th>
<th>Assigned Slot</th>
<th>Floor</th>
<th>Amount Paid</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{recentBookingsData.map((row) => (
<tr key={row.id}>
<td><strong className="text-slate-dark">{row.id}</strong></td>
<td>
<div className="driver-profile-cell-flex">
<div className="driver-avatar-placeholder">{row.user.charAt(0)}</div>
<span>{row.user}</span>
</div>
</td>
<td><span className="table-slot-pill-badge">{row.slot}</span></td>
<td>{row.floor}</td>
<td><strong className="text-green-bold">{row.price}</strong></td>
<td>
<span className={`status-table-tag tag-${row.status.toLowerCase()}`}>
{row.status}
</span>
</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</div>
{/* Right Side Sticky Admin Tool Controls Widget */}
<div className="admin-right-control-sidebar-card card">
<h4 className="control-sidebar-title">Manage Parking Slots</h4>
<p className="control-sidebar-desc">Admin can view all parking slots, add new slots, edit details, or delete configuration blocks instantly.</p>
<div className="admin-actions-vertical-buttons-stack">
<button className="btn-admin-action-block bg-blue-action">➕ Add New Parking Slot</button>
<button className="btn-admin-action-block bg-slate-action">✏️ Edit Slot Details Configuration</button>
<button className="btn-admin-action-block bg-red-action">🗑️ Delete Slot From Matrix Repo</button>
</div>
<div className="system-health-diagnostic-box">
<span className="diagnostic-heartbeat-pulse">🟢</span>
<div>
<strong>System Operational Sync Active</strong>
<p>Information is updated in real-time across client layers without errors.</p>
</div>
</div>
</div>
</div>
);
}
[18/06, 11:20 pm] Mauli Tcs: BookingDetails.jsx
import React, { useState } from 'react';
import { useNavigate, useLocation } from 'react-router-dom';
import '../styles/BookingDetails.css';
export default function BookingDetails() {
const navigate = useNavigate();
const location = useLocation();
// Selected slot fallback parameters to prevent workspace crashes if accessed directly
const slot = location.state?.slot || {
slotNumber: 'A1',
floor: 1,
type: 'SUV, Compact',
pricePerHour: 20.00,
status: 'Available',
description: 'Near elevator lobby'
};
// State handles matching layout selections inside 37a2cf5f-4311-41fc-9ec1-cc681ada9259_2.png
const [selectedDuration, setSelectedDuration] = useState(4); // Default to 4 Hours button active border
const [startDate, setStartDate] = useState('2025-05-18');
const [startTime, setStartTime] = useState('09:00');
const [endDate, setEndDate] = useState('2025-05-18');
const [endTime, setEndTime] = useState('13:00');
const hourlyPrice = slot.pricePerHour || 20.00;
const totalCost = selectedDuration * hourlyPrice;
// Handles quick select clicks to instantly update totals
const handleQuickSelect = (hours) => {
setSelectedDuration(hours);
// Simulates changing end time option fields dynamically based on 9:00 AM start
const calculableEndHour = 9 + hours;
const formattedEndStr = calculableEndHour < 12
? `${calculableEndHour.toString().padStart(2, '0')}:00 AM`
: `${(calculableEndHour === 12 ? 12 : calculableEndHour - 12).toString().padStart(2, '0')}:00 PM`;
if (hours === 4) setEndTime('13:00');
};
return (
<div className="booking-wizard-layout-container">
{/* Breadcrumb Header Nav Tracker */}
<div className="wizard-breadcrumb-trail">
<span>Dashboard</span> <span className="trail-arrow">></span> <span className="trail-current">Booking Details</span>
</div>
<div className="wizard-split-columns-grid">
{/* Left Interactive Configuration Lane Container */}
<div className="wizard-main-config-stream">
<div className="card core-wizard-card">
<h2 className="wizard-main-heading">Booking Details</h2>
<p className="wizard-main-subheading">Select duration to book your parking slot</p>
{/* Step Progress Tracker
-------+--