Project structure changes ad new files added in dashboard folders

This commit is contained in:
2026-07-23 18:32:07 +05:30
parent 1993d91319
commit 5a2ae769d8
63 changed files with 1550 additions and 190 deletions

View File

@@ -1,5 +1,5 @@
import { TableRowData } from '@/constants/types';
import { TableRowData } from '@/types/types';
import {
LayoutGrid,
Smile,
@@ -214,6 +214,12 @@ export const Reqeusttabs: string[] = [
{ label: 'Completed', count: 3 },
{ label: 'Overdue', count: 4 },
];
export const reportFilters = [
{ label: 'Site: All' },
{ label: 'Group: all' },
{ label: 'Status:All' },
];
export const workPermitFilters = [
@@ -239,17 +245,218 @@ export const Reqeusttabs: string[] = [
// Data model interface
// Sample data extracted from your screenshot
export const mockData: TableRowData[] = [
{ id: '1', block: 'Block 1', floor: 'G', zone: 'Z2', department: 'Electrical', location: 'Main lobby', window: '06:0017:30', tat: '60m', sched: 8, approval: true, status: 'INACTIVE' },
{ id: '2', block: 'Block 2', floor: '3', zone: 'Z2', department: 'Electrical', location: 'Main lobby', window: '08:0023:59', tat: '30m', sched: 4, approval: false, status: 'ACTIVE' },
{ id: '3', block: 'Block 2', floor: '3', zone: 'Z1', department: 'Inspection work', location: 'Cafeteria', window: '06:0017:30', tat: '20m', sched: 8, approval: true, status: 'ACTIVE' },
{ id: '4', block: 'Block 1', floor: 'G', zone: 'Z1', department: 'HVAC', location: 'Server room', window: '08:0018:00', tat: '30m', sched: 4, approval: false, status: 'INACTIVE' },
{ id: '5', block: 'Block 2', floor: '3', zone: 'N', department: 'Inspection work', location: 'Server room', window: '08:0018:00', tat: '60m', sched: 8, approval: true, status: 'ACTIVE' },
{ id: '6', block: 'Block 2', floor: 'G', zone: 'Z1', department: 'Electrical', location: 'Reception', window: '06:0018:00', tat: '60m', sched: 6, approval: false, status: 'ACTIVE' },
{ id: '7', block: 'Block 1', floor: 'G', zone: 'Z2', department: 'Electrical', location: 'Food court', window: '06:0017:30', tat: '60m', sched: 8, approval: true, status: 'ACTIVE' },
{ id: '8', block: 'Block 2', floor: '3', zone: 'Z2', department: 'Electrical', location: 'Cafeteria', window: '08:0023:59', tat: '30m', sched: 4, approval: false, status: 'ACTIVE' },
{ id: '9', block: 'Block 2', floor: '3', zone: 'Z1', department: 'Inspection work', location: 'Gym', window: '06:0017:30', tat: '20m', sched: 8, approval: true, status: 'INACTIVE' },
{ id: '10', block: 'Block 1', floor: 'G', zone: 'Z1', department: 'HVAC', location: 'Lobby', window: '08:0018:00', tat: '30m', sched: 4, approval: false, status: 'ACTIVE' },
export const roomData = [
{
id: 1,
name: "Boardroom A",
location: "L10 • 16 seats",
status: "OCCUPIED",
statusColor: "bg-rose-500/10 text-rose-400 border-rose-500/20",
dotColor: "bg-rose-400",
tags: ["Video", "Display", "VC"],
subtitle: "Until 11:30 • Quarterly review",
actionType: "view"
},
{
id: 2,
name: "Huddle 1",
location: "L8 • 4 seats",
status: "AVAILABLE",
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
dotColor: "bg-emerald-400",
tags: ["Display"],
subtitle: "Free now",
actionType: "book"
},
{
id: 3,
name: "Training Hall",
location: "L2 • 40 seats",
status: "RESERVED",
statusColor: "bg-amber-500/10 text-amber-400 border-amber-500/20",
dotColor: "bg-amber-400",
tags: ["Projector", "Mic", "Catering"],
subtitle: "Until 14:00 • Safety induction",
actionType: "view"
},
{
id: 4,
name: "Focus Room 3",
location: "L8 • 2 seats",
status: "AVAILABLE",
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
dotColor: "bg-emerald-400",
tags: ["Display"],
subtitle: "Free now",
actionType: "book"
},
{
id: 5,
name: "Conf B",
location: "L5 • 10 seats",
status: "OCCUPIED",
statusColor: "bg-rose-500/10 text-rose-400 border-rose-500/20",
dotColor: "bg-rose-400",
tags: ["Video", "VC", "Whiteboard"],
subtitle: "Until 12:15 • Vendor call",
actionType: "view"
},
{
id: 6,
name: "Collab Zone",
location: "L3 • 8 seats",
status: "AVAILABLE",
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
dotColor: "bg-emerald-400",
tags: ["Display", "Whiteboard"],
subtitle: "Free now",
actionType: "book"
}
];
export const scheduleData = [
{
room: "Boardroom A",
title: "Quarterly business review",
time: "09:00",
status: "occupied"
},
{
room: "Conf B",
title: "Vendor onboarding call",
time: "10:00",
status: "occupied"
},
{
room: "Training Hall",
title: "Fire-safety induction",
time: "11:30",
status: "reserved"
},
{
room: "Collab Zone",
title: "Design sprint",
time: "14:00",
status: "available"
},
{
room: "Huddle 1",
title: "1:1 sync",
time: "16:00",
status: "available"
}
];
export const workspaceTabs: string[] = [
'Desk Booking',
'Floor Plan',
'TimeTable',
];
export const reporttabs: string[] = [
'Equipment',
'Maintance',
'Checklists',
'Requests',
'Inventory',
'Energy',
'HSQE',
'MMR',
];
// Mock Data for Zone Utilization
export const zoneUtilizationData = [
{ name: "North Wing · L8", current: 39, max: 48, barColor: "bg-amber-400" },
{ name: "Quiet Zone · L8", current: 11, max: 24, barColor: "bg-teal-400" },
{ name: "Collab · L3", current: 22, max: 30, barColor: "bg-amber-400" },
{ name: "Hot Desk · L5", current: 51, max: 60, barColor: "bg-amber-400" },
];
// Mock Data for Planned vs Actual Categories
export const categoryData = [
{
category: "PPM & AMC contracts",
type: "OPEX",
planned: "₹48.0 L",
actual: "₹31.2 L",
variance: "+₹16.8 L",
varianceColor: "text-emerald-400",
utilization: 65,
barColor: "bg-teal-400"
},
{
category: "Reactive repairs",
type: "OPEX",
planned: "₹15.0 L",
actual: "₹16.8 L",
variance: "-₹1.8 L",
varianceColor: "text-rose-400",
utilization: 112,
barColor: "bg-rose-400"
},
{
category: "Energy & utilities",
type: "OPEX",
planned: "₹62.0 L",
actual: "₹54.1 L",
variance: "+₹7.9 L",
varianceColor: "text-emerald-400",
utilization: 87,
barColor: "bg-teal-400"
},
{
category: "Consumables & spares",
type: "OPEX",
planned: "₹9.0 L",
actual: "₹7.4 L",
variance: "+₹1.6 L",
varianceColor: "text-emerald-400",
utilization: 82,
barColor: "bg-teal-400"
},
{
category: "Equipment upgrades",
type: "CAPEX",
planned: "₹35.0 L",
actual: "₹12.0 L",
variance: "+₹23.0 L",
varianceColor: "text-emerald-400",
utilization: 34,
barColor: "bg-teal-400"
},
{
category: "Soft services",
type: "OPEX",
planned: "₹22.0 L",
actual: "₹20.5 L",
variance: "+₹1.5 L",
varianceColor: "text-emerald-400",
utilization: 93,
barColor: "bg-amber-400"
}
];
// Mock Data for Approval Queue
export const approvalQueueData = [
{
id: "BUD-114",
title: "Chiller compressor overhaul",
meta: "L2 • FM Head • ₹4.8 L",
status: "pending"
},
{
id: "BUD-115",
title: "Q3 energy budget revision",
meta: "L3 • Finance • ₹12.0 L",
status: "pending"
},
{
id: "BUD-112",
title: "Fire panel AMC renewal",
meta: "L1 • Site • ₹2.6 L",
status: "completed"
}
];

View File

@@ -1,117 +0,0 @@
import { LucideProps } from "lucide-react";
import { ComponentType } from "react";
import { colorMap } from "./constant";
// Types and interfaces used in login Page
export type Step = "login" | "verify" | "forgot";
export interface AuthLayoutProps {
children: React.ReactNode;
}
export interface Props {
onBack?: () => void;
onSuccess?: () => void;
onForgotPassword?:()=>void;
item?: any;
}
export interface ButtonProps {
children: React.ReactNode;
onClick?: () => void;
className?: string;
}
export interface FormProps {
label: string;
value?: string;
type?: string;
placeholder?:string
}
// Overview dashboard interface used
interface Activity {
time: string;
text: string;
boldText: string;
}
export interface ActivityFeedProps {
activities: Activity[];
}
export interface ChartItem {
month: string;
height: string;
}
export interface BarChartProps {
data: ChartItem[];
}
export interface StatCardProps {
// Common Fields
title: string;
value: string | number;
variant?: "progress" | "icon";
subtitle?: string;
progress?: number;
color?: keyof typeof colorMap;
icon?: ComponentType<LucideProps>;
badgeText?: string;
badgeClassName?: string;
iconContainerClassName?: string;
isActiveCard?: boolean;
}
export interface ProgressBarProps {
label: string;
value: number;
maxValue: number;
}
export interface StatusProgressProps {
label: string;
value: number;
total: number;
barColor?: string;
}
export interface NavigationTabsProps {
tabs: string[];
activeTab: string;
onTabChange: (tab: string) => void;
className?: string;
}
export interface FilterItem {
label: string;
count?: number | string;
}
export interface FilterTabsProps {
options: FilterItem[];
activeFilter: string;
onChange: (label: string) => void;
className?: string;
}
// For footer banner
export interface InfoBannerProps {
boldText?: string;
normalText?: string;
}
export interface TableRowData {
id: string;
block: string;
floor: string;
zone: string;
department: string;
location: string;
window: string;
tat: string;
sched: number;
approval: boolean;
status: 'ACTIVE' | 'INACTIVE';
}