Changes Completed in Overview

This commit is contained in:
2026-07-28 14:45:34 +05:30
parent 954de712a7
commit b8e833dbb9
70 changed files with 207 additions and 214 deletions

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"chat.disableAIFeatures": false
}

View File

@@ -10,7 +10,7 @@ export default function DynamicDashboardPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<DynamicDashboardPortal/> <DynamicDashboardPortal/>
</div> </div>

View File

@@ -11,7 +11,7 @@ export default function LanguagePage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<LanguagePortal/> <LanguagePortal/>
</div> </div>

View File

@@ -12,7 +12,7 @@ export default function MobileFlowPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<MobileFlowsPortal/> <MobileFlowsPortal/>
</div> </div>

View File

@@ -10,7 +10,7 @@ export default function ModulesPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<ModulesPortal/> <ModulesPortal/>
</div> </div>

View File

@@ -1,6 +1,6 @@
"use client" "use client"
import AdminOverviewPortal from "@/components/dashboard/admin/overview"; import AdminOverviewPortal from "@/components/dashboard/admin/Platform/overview";
@@ -9,7 +9,7 @@ export default function OverviewPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<AdminOverviewPortal/> <AdminOverviewPortal/>
</div> </div>

View File

@@ -14,7 +14,7 @@ export default function SecurityPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<SecurityPortal/> <SecurityPortal/>
</div> </div>

View File

@@ -1,17 +1,17 @@
"use client" "use client"
import SitePortal from "@/components/dashboard/admin/site"; import SitePortal from "@/components/dashboard/admin/Platform/site";
export default function AuditSurveyPage() { export default function SitePage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<SitePortal/> <SitePortal/>
</div> </div>

View File

@@ -1,7 +1,7 @@
"use client" "use client"
import TenantsPortal from "@/components/dashboard/admin/tenants"; import TenantsPortal from "@/components/dashboard/admin/Platform/tenants";
@@ -10,7 +10,7 @@ export default function TenantsPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<TenantsPortal/> <TenantsPortal/>
</div> </div>

View File

@@ -2,7 +2,7 @@
import UserPortal from "@/components/dashboard/admin/users"; import UserPortal from "@/components/dashboard/admin/Platform/users";
@@ -11,7 +11,7 @@ export default function UsersPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<UserPortal/> <UserPortal/>
</div> </div>

View File

@@ -14,7 +14,7 @@ export default function AuditSurveyPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<AuditSurveyPortal/> <AuditSurveyPortal/>
</div> </div>

View File

@@ -11,7 +11,7 @@ export default function ContractsPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<ContractsPortal/> <ContractsPortal/>
</div> </div>

View File

@@ -13,7 +13,7 @@ export default function FireSafetyPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<FireSafetyPortal/> <FireSafetyPortal/>
</div> </div>

View File

@@ -10,7 +10,7 @@ export default function ComplianceSafetyPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<StatutoryCompliancePortal/> <StatutoryCompliancePortal/>
</div> </div>

View File

@@ -13,7 +13,7 @@ export default function TrainingPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<TrainingPortal/> <TrainingPortal/>
</div> </div>

View File

@@ -13,7 +13,7 @@ export default function WasteEsGPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<WasteESGPortal/> <WasteESGPortal/>
</div> </div>

View File

@@ -10,7 +10,7 @@ export default function MasterdataPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<MasterDataPortal/> <MasterDataPortal/>
</div> </div>

View File

@@ -11,7 +11,7 @@ export default function RolesAccessPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<RolesAccessPortal/> <RolesAccessPortal/>
</div> </div>

View File

@@ -13,7 +13,7 @@ export default function SettingsPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<SettingsPortal/> <SettingsPortal/>
</div> </div>

View File

@@ -1,7 +1,6 @@
"use client" "use client"
import MasterDataPortal from "@/components/dashboard/configure/masterData";
import RolesAccessPortal from "@/components/dashboard/configure/rolesaccess";
import UserLocationPortal from "@/components/dashboard/configure/userLocation"; import UserLocationPortal from "@/components/dashboard/configure/userLocation";
@@ -12,7 +11,7 @@ export default function userLocationPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<UserLocationPortal/> <UserLocationPortal/>
</div> </div>

View File

@@ -3,18 +3,11 @@
import WorkFlowAutomationPortal from "@/components/dashboard/configure/workflowAutomation"; import WorkFlowAutomationPortal from "@/components/dashboard/configure/workflowAutomation";
export default function WorkflowAutomationPage() { export default function WorkflowAutomationPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<WorkFlowAutomationPortal/> <WorkFlowAutomationPortal/>
</div> </div>

View File

@@ -9,7 +9,7 @@ export default function BudgetPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<BudgetPortal/> <BudgetPortal/>
</div> </div>

View File

@@ -9,7 +9,7 @@ export default function CostInvoicePage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<CostInvoicePortal/> <CostInvoicePortal/>
</div> </div>

View File

@@ -10,7 +10,7 @@ export default function ReportPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<ReportPortal/> <ReportPortal/>
</div> </div>

View File

@@ -13,7 +13,7 @@ export default function AiHelpdeskPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<AiHelpdeskPortal/> <AiHelpdeskPortal/>
</div> </div>

View File

@@ -11,7 +11,7 @@ export default function AiPredictivePage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<AiPredictivePortal/> <AiPredictivePortal/>
</div> </div>

View File

@@ -12,7 +12,7 @@ export default function AssetHealthPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<AssetHealthPortal/> <AssetHealthPortal/>
</div> </div>

View File

@@ -14,7 +14,7 @@ export default function ConnectedAssetPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<ConnectedAssetPortal/> <ConnectedAssetPortal/>
</div> </div>

View File

@@ -15,7 +15,7 @@ export default function ConnectedOpsPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<ConnectedOpsPortal/> <ConnectedOpsPortal/>
</div> </div>

View File

@@ -14,7 +14,7 @@ export default function EnergybenchmarkingPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<EnergyBenchmarkingPortal/> <EnergyBenchmarkingPortal/>
</div> </div>

View File

@@ -16,7 +16,7 @@ export default function GpsTrackingPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<GpsTrackingPortal/> <GpsTrackingPortal/>
</div> </div>

View File

@@ -15,7 +15,7 @@ export default function SustainabilityPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<SustainabilityPortal/> <SustainabilityPortal/>
</div> </div>

View File

@@ -14,7 +14,7 @@ export default function AlarmRulesPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<AlarmRulesPortal/> <AlarmRulesPortal/>
</div> </div>

View File

@@ -10,7 +10,7 @@ export default function CommandCenterPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<CommandCenterPortal /> <CommandCenterPortal />
</div> </div>

View File

@@ -13,7 +13,7 @@ export default function DeviceFleetPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<DeviceFleetPortal/> <DeviceFleetPortal/>
</div> </div>

View File

@@ -12,7 +12,7 @@ export default function EnergyUtilityPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<EnergyUtilityPortal/> <EnergyUtilityPortal/>
</div> </div>

View File

@@ -11,7 +11,7 @@ export default function HVACPlantPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<HVACPlantPortal/> <HVACPlantPortal/>
</div> </div>

View File

@@ -22,6 +22,7 @@ export default function DashboardLayout({
{/* Main Page Content */} {/* Main Page Content */}
<main className="flex-1 bg-[#071321]"> <main className="flex-1 bg-[#071321]">
{children} {children}
</main> </main>
</div> </div>

View File

@@ -7,7 +7,7 @@ export default function EnergyPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<EnergyPortal/> <EnergyPortal/>
</div> </div>

View File

@@ -5,7 +5,7 @@ export default function EquipmentPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<EquipmentPortal/> <EquipmentPortal/>
</div> </div>

View File

@@ -5,7 +5,7 @@ export default function HelpDeskPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<HelpDeskPortal/> <HelpDeskPortal/>
</div> </div>

View File

@@ -5,7 +5,7 @@ export default function InventoryPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<InventoryPortal/> <InventoryPortal/>
</div> </div>

View File

@@ -5,7 +5,7 @@ export default function ServiceRequestPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<ServiceRequestsPortal/> <ServiceRequestsPortal/>
</div> </div>

View File

@@ -7,7 +7,7 @@ export default function VendorPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<VendorServicePortal/> <VendorServicePortal/>
</div> </div>

View File

@@ -7,7 +7,7 @@ export default function WorkPermitPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<WorkPermitPortal/> <WorkPermitPortal/>
</div> </div>

View File

@@ -9,7 +9,7 @@ export default function BuildingOwnerPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<BuildingOwnerPortal/> <BuildingOwnerPortal/>
</div> </div>

View File

@@ -9,7 +9,7 @@ export default function OverViewDashboardPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<OperationsDashboard /> <OperationsDashboard />
</div> </div>

View File

@@ -6,7 +6,7 @@ export default function EngagementDashboard() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<EngagementPage/> <EngagementPage/>
</div> </div>

View File

@@ -6,7 +6,7 @@ export default function PropertymanagerPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<PropertyManagerPortal/> <PropertyManagerPortal/>
</div> </div>

View File

@@ -6,7 +6,7 @@ export default function ServiceEngineerPage() {
return ( return (
<div className="p-8 mx-3 "> <div className="p-6 mx-2 ">
<ServiceEngineerPortal/> <ServiceEngineerPortal/>
</div> </div>

View File

@@ -8,7 +8,7 @@ export default function MeetingPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<MeetingRoomPortal/> <MeetingRoomPortal/>
</div> </div>

View File

@@ -7,7 +7,7 @@ export default function VisitorPage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<VistiorManagementPortal/> <VistiorManagementPortal/>
</div> </div>

View File

@@ -7,7 +7,7 @@ export default function WorkSpacePage() {
return ( return (
<div className="p-8 mx-3"> <div className="p-6 mx-2">
<WorkSpacePortal/> <WorkSpacePortal/>
</div> </div>

View File

@@ -19,3 +19,7 @@ body {
color: var(--foreground); color: var(--foreground);
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
} }

View File

@@ -2,6 +2,11 @@
import "./globals.css"; import "./globals.css";
import SessionWrapper from "./sessionWrapper"; import SessionWrapper from "./sessionWrapper";
import { Inter } from "next/font/google";
const inter = Inter({
subsets: ["latin"],
});
export default function RootLayout({ export default function RootLayout({
children, children,
@@ -11,6 +16,7 @@ export default function RootLayout({
return ( return (
<html <html
lang="en" lang="en"
className={inter.className}
> >
<body> <body>
<SessionWrapper> <SessionWrapper>

View File

@@ -7,7 +7,8 @@ type TableProps = {
export default function Table({ headers, rows }: TableProps) { export default function Table({ headers, rows }: TableProps) {
return ( return (
<div className="w-full overflow-hidden rounded-2xl border border-slate-800 bg-[#0B1727] shadow-xl"> <div className="w-full overflow-hidden rounded-2xl border
border-slate-800 bg-[#0B1727] shadow-xl">
<div className="overflow-x-auto"> <div className="overflow-x-auto">
<table className="w-full border-collapse text-[12px]"> <table className="w-full border-collapse text-[12px]">
<thead> <thead>

View File

@@ -10,16 +10,16 @@ export default function EnergyPortal() {
return ( return (
<div className="text-slate-100 mt-15 font-sans"> <div className="text-slate-100 my-15 font-sans">
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6"> <div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className='text-gray-600'></span>
<span>Operations</span> <span className='text-gray-400'>Operations</span>
<span></span> <span className='text-gray-600'></span>
<span>Energy</span> <span className='text-gray-400'>Energy</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-2"> <h1 className="text-2xl font-bold text-white tracking-tight mt-2">
Meters & readings Meters & readings

View File

@@ -1,6 +1,4 @@
import { import {
Pencil,
FileText,
QrCode, QrCode,
Search, Search,
Plus, Plus,
@@ -30,18 +28,18 @@ export default function EquipmentPortal() {
return ( return (
<div className="my-15 text-slate-100 font-sans "> <div className="my-15 text-slate-100 font-sans ">
<div className="flex items-center gap-2 text-[10px] <div className="flex items-center gap-2 text-[12px]
font-bold tracking-widest text-slate-500 uppercase font-mono"> font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className='text-gray-600'></span>
<span>Operations</span> <span className='text-gray-400'>Operations</span>
<span></span> <span className='text-gray-600'></span>
<span>Equipment</span> <span className='text-gray-400'>Equipment</span>
</div> </div>

View File

@@ -6,9 +6,6 @@ import {
Clock, Clock,
Search, Search,
QrCode, QrCode,
Power,
List,
Pencil,
Plus, Plus,
} from 'lucide-react'; } from 'lucide-react';
import Button from "@/components/common/button"; import Button from "@/components/common/button";
@@ -28,16 +25,16 @@ export default function HelpDeskPortal() {
const [activeTab, setActiveTab] = useState<string>('Location'); const [activeTab, setActiveTab] = useState<string>('Location');
return ( return (
<div className="my-15 px-4 text-slate-100 font-sans"> <div className="my-15 text-slate-100 font-sans">
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-3 mb-4"> <div className="flex flex-col md:flex-row md:items-start md:justify-between gap-3 mb-4">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className='text-gray-600'></span>
<span>Operations</span> <span className='text-gray-400'>Operations</span>
<span></span> <span className='text-gray-600'></span>
<span>Help Desk</span> <span className='text-gray-400'>Help Desk</span>
</div> </div>
<h1 className="text-2xl font-extrabold text-white tracking-tight mt-1.5"> <h1 className="text-2xl font-extrabold text-white tracking-tight mt-1.5">
Help Desk & checklists Help Desk & checklists

View File

@@ -21,12 +21,12 @@ export default function InventoryPortal() {
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6"> <div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className='text-gray-600'></span>
<span>Operations</span> <span className='text-gray-400'>Operations</span>
<span></span> <span className='text-gray-600'></span>
<span>Inventory</span> <span className='text-gray-400'>Inventory</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-2"> <h1 className="text-2xl font-bold text-white tracking-tight mt-2">
Inventory & stock Inventory & stock

View File

@@ -22,16 +22,16 @@ export default function ServiceRequestsPortal() {
return ( return (
<div className="my-15 text-slate-100 max-w-7xl mx-auto font-sans"> <div className="my-15 text-slate-100 font-sans">
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6"> <div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className='text-gray-600'></span>
<span>Operations</span> <span className='text-gray-400'>Operations</span>
<span></span> <span className='text-gray-600'></span>
<span>Requests</span> <span className='text-gray-400'>Requests</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-2"> <h1 className="text-2xl font-bold text-white tracking-tight mt-2">
Service requests Service requests

View File

@@ -19,12 +19,12 @@ export default function VendorServicePortal() {
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6"> <div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className='text-gray-600'></span>
<span>Operations</span> <span className='text-gray-400'>Operations</span>
<span></span> <span className='text-gray-600'></span>
<span>Vendors</span> <span className='text-gray-400'>Vendors</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-2"> <h1 className="text-2xl font-bold text-white tracking-tight mt-2">
Vendor & field service Vendor & field service

View File

@@ -74,12 +74,12 @@ export default function WorkPermitPortal() {
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6"> <div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className='text-gray-600'></span>
<span>Operations</span> <span className='text-gray-400'>Operations</span>
<span></span> <span className='text-gray-600'></span>
<span>Work Permit</span> <span className='text-gray-400'>Work Permit</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-2"> <h1 className="text-2xl font-bold text-white tracking-tight mt-2">
Permit to Work Permit to Work

View File

@@ -12,17 +12,17 @@ import { CardHeader } from "@/components/common/cardHeader";
export default function BuildingOwnerPortal() { export default function BuildingOwnerPortal() {
return ( return (
<div className="mt-20 font-sans antialiased"> <div className="mt-15 font-sans antiliased">
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4"> <div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className="text-gray-600"></span>
<span>Portal</span> <span className="text-gray-400">Portal</span>
<span></span> <span className="text-gray-600"></span>
<span>Building Owner</span> <span className="text-gray-400">Building Owner</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-2"> <h1 className="text-2xl font-bold text-white tracking-tight mt-2">
Building owner portal Building owner portal

View File

@@ -3,32 +3,33 @@ import { Check } from 'lucide-react';
import BarChart from "@/components/charts/barchart"; import BarChart from "@/components/charts/barchart";
import StatCard from "@/components/common/dashStatCard"; import StatCard from "@/components/common/dashStatCard";
import ActivityFeed from "@/components/dashboard/overview/activityFeed"; import ActivityFeed from "@/components/dashboard/overview/activityFeed";
import {activities, chartData} from "@/constants/constant" import {activities, chartData, schedulePerformanceHeaders, schedulePerformanceRows} from "@/constants/constant"
import { Card } from '@/components/common/cardWrapper'; import { Card } from '@/components/common/cardWrapper';
import {CardHeader} from '@/components/common/cardHeader'; import {CardHeader} from '@/components/common/cardHeader';
import {ProgressBarRow }from '@/components/charts/progressBarRow'; import {ProgressBarRow }from '@/components/charts/progressBarRow';
import {StatusProgressRow} from '@/components/charts/statusProgressRow'; import {StatusProgressRow} from '@/components/charts/statusProgressRow';
import Table from '@/components/common/dataTable';
export default function Dashboard() { export default function Dashboard() {
return ( return (
<div > <div className='my-15 font-sans antialiased' >
<hr className="border-[#142538]" />
<main className=" pt-8 bg-[#071321] text-[#93a3b8] font-sans antialiased" >
{/* Title Section */} {/* Title Section */}
<div className="flex items-start justify-between"> <div className="flex items-start justify-between">
<div> <div>
<div className="flex items-center gap-2 <div className="flex items-center gap-2
text-xs font-bold uppercase tracking-widest text-teal-500 mt-8"> text-xs font-bold uppercase tracking-widest text-teal-500">
<span>Apple One HQ Tower</span> <span>Apple One HQ Tower</span>
<span className="text-gray-600">·</span> <span className="text-gray-600">·</span>
<span className="text-gray-400">Tenant</span> <span className="text-gray-400">Tenant</span>
<span className="text-gray-600">·</span> <span className="text-gray-600">·</span>
<span className="text-gray-400">Apple One</span> <span className="text-gray-400">Apple One</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight">Operations dashboard</h1> <h1 className="text-2xl
<p className="mt-2 text-sm text-gray-400 max-w-xl leading-relaxed"> font-bold text-white tracking-tight">Operations dashboard</h1>
<p className="text-sm font-medium text-slate-400 mt-2 max-w-xl leading-relaxed">
Live snapshot scoped to Apple One. The layout below is the dashboard published for this tenant in Administration. Live snapshot scoped to Apple One. The layout below is the dashboard published for this tenant in Administration.
</p> </p>
</div> </div>
@@ -87,35 +88,7 @@ export default function Dashboard() {
<div className="lg:col-span-7"> <div className="lg:col-span-7">
<Card> <Card>
<CardHeader title="Schedule performance • MMR" subtitle="ppm & amc" /> <CardHeader title="Schedule performance • MMR" subtitle="ppm & amc" />
<div className="overflow-x-auto mt-2"> <Table headers={schedulePerformanceHeaders} rows={schedulePerformanceRows}/>
<table className=" text-left border-collapse">
<thead>
<tr className="text-[#4b5f7a] text-xs font-bold uppercase tracking-wider border-b border-[#1b2b41]/40 pb-3">
<th className="pb-3">Schedule</th>
<th className="pb-3 text-right">Total</th>
<th className="pb-3 text-right">Done</th>
<th className="pb-3 text-right">On Time</th>
<th className="pb-3 text-right">Delayed</th>
</tr>
</thead>
<tbody className="divide-y divide-[#1b2b41]/30 text-sm font-semibold">
<tr className="hover:bg-[#11233a]/25 transition-colors">
<td className="py-4 text-white">PPM</td>
<td className="py-4 text-right text-slate-300">24</td>
<td className="py-4 text-right text-slate-300">19</td>
<td className="py-4 text-right text-slate-300">17</td>
<td className="py-4 text-right text-red-500">2</td>
</tr>
<tr className="hover:bg-[#11233a]/25 transition-colors">
<td className="py-4 text-white">AMC</td>
<td className="py-4 text-right text-slate-300">8</td>
<td className="py-4 text-right text-slate-300">6</td>
<td className="py-4 text-right text-slate-300">6</td>
<td className="py-4 text-right text-slate-400">0</td>
</tr>
</tbody>
</table>
</div>
</Card> </Card>
</div> </div>
@@ -204,7 +177,7 @@ export default function Dashboard() {
</Card> </Card>
</div> </div>
</main>
</div> </div>
); );
} }

View File

@@ -18,16 +18,16 @@ import { CardHeader } from "@/components/common/cardHeader";
export default function EngagementPage() { export default function EngagementPage() {
return ( return (
<div className=" text-[#93a3b8] font-sans "> <div className="my-15 font-sans antiliased ">
<main className="mt-20">
{/* Page Header Section */} {/* Page Header Section */}
<div className="flex flex-col md:flex-row md:items-center <div className="flex flex-col md:flex-row md:items-center
justify-between gap-4 mt-4"> justify-between gap-4 mt-4">
<div> <div>
<div className="flex items-center gap-2 text-xs <div className="flex items-center gap-2 text-xs
font-bold uppercase tracking-widest text-teal-500"> font-bold uppercase tracking-widest text-teal-500 font-mono">
<span>Apple One HQ Tower</span> <span>Apple One HQ Tower</span>
<span className="text-gray-600">·</span> <span className="text-gray-600">·</span>
<span className="text-gray-400">Intelligence</span> <span className="text-gray-400">Intelligence</span>
@@ -35,7 +35,7 @@ export default function EngagementPage() {
<span className="text-gray-400">Engagement</span> <span className="text-gray-400">Engagement</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-1">Employee engagement</h1> <h1 className="text-2xl font-bold text-white tracking-tight mt-1">Employee engagement</h1>
<p className="mt-2 text-sm text-gray-400 max-w-2xl leading-relaxed"> <p className="text-sm font-medium text-slate-400 mt-2 max-w-xl leading-relaxed">
Pulse satisfaction surveys, complaint tickets and a suggestion system boosting morale, transparency and retention. Pulse satisfaction surveys, complaint tickets and a suggestion system boosting morale, transparency and retention.
</p> </p>
</div> </div>
@@ -151,7 +151,7 @@ export default function EngagementPage() {
</div> </div>
</main>
<div className="mb-10 mt-10"> <div className="mb-10 mt-10">
<InfoBanner <InfoBanner

View File

@@ -18,18 +18,20 @@ import { CardHeader } from "@/components/common/cardHeader";
export default function PropertyManagerPortal() { export default function PropertyManagerPortal() {
return ( return (
<div className=" text-slate-100 mt-15 <div className=" mt-15 font-sans antiliased
"> ">
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4"> <div className="flex flex-col md:flex-row md:items-start
md:justify-between gap-4 mb-4">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center
gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span className="text-gray-600"></span>
<span>Portal</span> <span className="text-gray-400">Portal</span>
<span></span> <span className="text-gray-600"></span>
<span>Property Manager</span> <span className="text-gray-400">Property Manager</span>
</div> </div>
<h1 className="text-2xl font-bold text-white tracking-tight mt-2"> <h1 className="text-2xl font-bold text-white tracking-tight mt-2">
Property manager portal Property manager portal

View File

@@ -16,13 +16,14 @@ import { CardHeader } from "@/components/common/cardHeader";
export default function ServiceEngineerPortal() { export default function ServiceEngineerPortal() {
return ( return (
<div className="my-15 text-slate-100 "> <div className="my-15 font-sans antiliased ">
{/* --- HEADER SECTION --- */} {/* --- HEADER SECTION --- */}
<div className=" flex flex-col <div className=" flex flex-col
md:flex-row md:items-start md:justify-between gap-4 mb-4"> md:flex-row md:items-start md:justify-between gap-4 mb-4">
<div> <div>
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono"> <div className="flex items-center gap-2
text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
<span className="text-teal-400">Apple One HQ Tower</span> <span className="text-teal-400">Apple One HQ Tower</span>
<span></span> <span></span>
<span>Portal</span> <span>Portal</span>

View File

@@ -8,14 +8,17 @@ export default function Navbar() {
const { mode } = useNav(); const { mode } = useNav();
return ( return (
<header className="fixed top-0 right-0 left-64 z-30 flex h-16 items-center justify-between border-b border-[#142538]/50 bg-[#071321] px-8"> <header className="fixed top-0 right-0
left-64 z-30 flex h-16 items-center justify-between border-b
border-[#142538]/50 bg-[#071321]/80 backdrop-blur-md px-8">
{mode === "operations" ? ( {mode === "operations" ? (
/* ================= OPERATIONS NAVBAR ================= */ /* ================= OPERATIONS NAVBAR ================= */
<> <>
{/* Left Group */} {/* Left Group */}
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
{/* Company Selector */} {/* Company Selector */}
<div className="flex items-center gap-2 rounded-full bg-[#0a1826] px-3 py-1.5 text-sm font-semibold text-[#10b981] border border-[#132338] cursor-pointer hover:bg-[#0f2338] transition whitespace-nowrap relative"> <div className="flex items-center gap-2
rounded-full bg-[#0a1826] px-3 py-1.5 text-sm font-semibold text-[#10b981] border border-[#132338] cursor-pointer hover:bg-[#0f2338] transition whitespace-nowrap relative">
<span className="h-2 w-2 rounded-full bg-[#10b981] shrink-0"></span> <span className="h-2 w-2 rounded-full bg-[#10b981] shrink-0"></span>
<select <select

View File

@@ -60,78 +60,78 @@ export const OPERATIONS_SIDEBAR_ITEMS = [
title: "Operations", title: "Operations",
icon: Settings, icon: Settings,
children: [ children: [
{ title: "Help Desk", href: "/operations/help-desk", icon: CheckSquare, badge: 6, badgeColor: "bg-amber-500 text-black" }, { title: "Help Desk", href: "/dashboard/operations/helpDesk", icon: CheckSquare, badge: 6, badgeColor: "bg-amber-500 text-black" },
{ title: "Equipment", href: "/operations/equipment", icon: Target }, { title: "Equipment", href: "/dashboard/operations/equipment", icon: Target },
{ title: "Requests", href: "/operations/requests", icon: FileText, badge: 15, badgeColor: "bg-amber-400 text-black" }, { title: "Requests", href: "/dashboard/operations/request", icon: FileText, badge: 15, badgeColor: "bg-amber-400 text-black" },
{ title: "Inventory", href: "/operations/inventory", icon: Box }, { title: "Inventory", href: "/dashboard/operations/inventory", icon: Box },
{ title: "Energy", href: "/operations/energy", icon: Zap }, { title: "Energy", href: "/dashboard/operations/energy", icon: Zap },
{ title: "Work Permit", href: "/operations/work-permit", icon: ClipboardList, badge: 3, badgeColor: "bg-amber-500 text-black" }, { title: "Work Permit", href: "/dashboard/operations/workPermit", icon: ClipboardList, badge: 3, badgeColor: "bg-amber-500 text-black" },
{ title: "Vendor & Field Service", href: "/operations/vendor-field", icon: Star, badge: 12, badgeColor: "bg-sky-400 text-black" }, { title: "Vendor & Field Service", href: "/dashboard/operations/vendorFieldService", icon: Star, badge: 12, badgeColor: "bg-sky-400 text-black" },
], ],
}, },
{ {
title: "Workplace", title: "Workplace",
icon: Monitor, icon: Monitor,
children: [ children: [
{ title: "Visitor Management", href: "/workplace/visitor", icon: UserCheck }, { title: "Visitor Management", href: "/dashboard/workplace/visitorManagement", icon: UserCheck },
{ title: "Meeting Rooms", href: "/workplace/meeting-rooms", icon: Calendar }, { title: "Meeting Rooms", href: "/dashboard/workplace/meetingRoom", icon: Calendar },
{ title: "Workspace", href: "/workplace/workspace", icon: Layers }, { title: "Workspace", href: "/dashboard/workplace/workspace", icon: Layers },
], ],
}, },
{ {
title: "Finance", title: "Finance",
icon: Wallet, icon: Wallet,
children: [ children: [
{ title: "O&M Budget", href: "/finance/om-budget", icon: Coins }, { title: "O&M Budget", href: "/dashboard/finance/budget", icon: Coins },
{ title: "Costing & Invoicing", href: "/finance/costing-invoicing", icon: Receipt }, { title: "Costing & Invoicing", href: "/dashboard/finance/costinvoice", icon: Receipt },
], ],
}, },
{ {
title: "Compliance & Safety", title: "Compliance & Safety",
icon: ShieldCheck, icon: ShieldCheck,
children: [ children: [
{ title: "Statutory Compliance", href: "/compliance/statutory", icon: ShieldCheck }, { title: "Statutory Compliance", href: "/dashboard/compliance-safety/statutoryCompliance", icon: ShieldCheck },
{ title: "Contracts & SLA", href: "/compliance/contracts-sla", icon: FileText }, { title: "Contracts & SLA", href: "/dashboard/compliance-safety/contracts", icon: FileText },
{ title: "Fire & Safety", href: "/compliance/fire-safety", icon: Flame }, { title: "Fire & Safety", href: "/dashboard/compliance-safety/fireAndSafety", icon: Flame },
{ title: "Waste & ESG", href: "/compliance/waste-esg", icon: Recycle }, { title: "Waste & ESG", href: "/dashboard/compliance-safety/wasteAndEsg", icon: Recycle },
{ title: "Training", href: "/compliance/training", icon: GraduationCap }, { title: "Training", href: "/dashboard/compliance-safety/training", icon: GraduationCap },
{ title: "Audit & Survey", href: "/compliance/training", icon: GraduationCap }, { title: "Audit & Survey", href: "/dashboard/compliance-safety/auditAndSurvey", icon: GraduationCap },
], ],
}, },
{ {
title: "Intelligence", title: "Intelligence",
icon: Brain, icon: Brain,
children: [{ title: "AI & Predictive", href: "/intelligence/predictive", icon: Brain }, children: [{ title: "AI & Predictive", href: "/dashboard/intelligence/aiPredictive", icon: Brain },
{ title: "Asset Health", href: "/intelligence/asset-health", icon: ShieldCheck }, { title: "Asset Health", href: "/dashboard/intelligence/assetHealth", icon: ShieldCheck },
{ title: "Energy Benchmarking", href: "/intelligence/benchmarking", icon: Activity }, { title: "Energy Benchmarking", href: "/dashboard/intelligence/energyBenchmarking", icon: Activity },
{ title: "AI Helpdesk", href: "/intelligence/ai-helpdesk", icon: Bot }, { title: "AI Helpdesk", href: "/dashboard/intelligence/aiHelpdesk", icon: Bot },
{ title: "Connected Ops", href: "/intelligence/connected-ops", icon: Gauge }, { title: "Connected Ops", href: "/dashboard/intelligence/connectedOps", icon: Gauge },
{ title: "Connected Assets", href: "/intelligence/connected-assets", icon: Snowflake }, { title: "Connected Assets", href: "/dashboard/intelligence/connectedAsset", icon: Snowflake },
{ title: "Sustainability", href: "/intelligence/sustainability", icon: Leaf }, { title: "Sustainability", href: "/dashboard/intelligence/sustainability", icon: Leaf },
{ title: "GPS Tracking", href: "/intelligence/gps-tracking", icon: MapPin },], { title: "GPS Tracking", href: "/dashboard/intelligence/gpstracking", icon: MapPin },],
}, },
{ {
title: "IoT Application", title: "IoT Application",
icon: Radar, icon: Radar,
children: [{ title: "Command Center", href: "/iot/command-center", icon: Gauge }, children: [{ title: "Command Center", href: "/dashboard/iot-app/commandCenter", icon: Gauge },
{ title: "HVAC Plant", href: "/iot/hvac-plant", icon: Snowflake }, { title: "HVAC Plant", href: "/dashboard/iot-app/hvacPlant", icon: Snowflake },
{ title: "Energy & Utilities", href: "/iot/energy-utilities", icon: Zap }, { title: "Energy & Utilities", href: "/dashboard/iot-app/energyUtility", icon: Zap },
{ title: "Device Fleet", href: "/iot/device-fleet", icon: LayoutGrid }, { title: "Device Fleet", href: "/dashboard/iot-app/deviceFleet", icon: LayoutGrid },
{ title: "Alarms & Rules", href: "/iot/alarms-rules", icon: Shield, badge: 7, badgeColor: "bg-rose-500 text-white" },], { title: "Alarms & Rules", href: "/dashboard/iot-app/alarmsRules", icon: Shield, badge: 7, badgeColor: "bg-rose-500 text-white" },],
}, },
{ {
title: "Insight", title: "Insight",
icon: BarChart3, icon: BarChart3,
children: [{ title: "Reports & MMR", href: "/insight/reports", icon: BarChart3 },], children: [{ title: "Reports & MMR", href: "/dashboard/insight/report", icon: BarChart3 },],
}, },
{ {
title: "Configure", title: "Configure",
icon: Cog, icon: Cog,
children: [{ title: "Master Data", href: "/configure/master-data", icon: Layers }, children: [{ title: "Master Data", href: "/dashboard/configure/masterdata", icon: Layers },
{ title: "Roles & Access", href: "/configure/roles-access", icon: Shield }, { title: "Roles & Access", href: "/dashboard/configure/rolesAndAccess", icon: Shield },
{ title: "Workflow Automation", href: "/configure/workflow", icon: Bot }, { title: "Workflow Automation", href: "/dashboard/configure/workflowautomation", icon: Bot },
{ title: "User Location", href: "/configure/user-location", icon: MapPin }, { title: "User Location", href: "/dashboard/configure/userLocation", icon: MapPin },
{ title: "Settings", href: "/configure/settings", icon: Sun },], { title: "Settings", href: "/dashboard/configure/settings", icon: Sun },],
}, },
]; ];
export const ADMIN_SIDEBAR_ITEMS = [ export const ADMIN_SIDEBAR_ITEMS = [
@@ -139,26 +139,38 @@ export const ADMIN_SIDEBAR_ITEMS = [
title: "Platform", title: "Platform",
icon: Building2, icon: Building2,
children: [ children: [
{ title: "Overview", href: "/admin/overview", icon: LayoutGrid }, { title: "Overview", href: "/dashboard/admin/overview", icon: LayoutGrid },
{ title: "Tenants", href: "/admin/tenants", icon: Building2 }, { title: "Tenants", href: "/dashboard/admin/tenants", icon: Building2 },
{ title: "Users", href: "/admin/users", icon: Users }, { title: "Users", href: "/dashboard/admin/users", icon: Users },
{ title: "Sites", href: "/admin/sites", icon: MapPin }, { title: "Sites", href: "/dashboard/admin/site", icon: MapPin },
{ title: "Security", href: "/admin/security", icon: Shield }, { title: "Security", href: "/dashboard/admin/security", icon: Shield },
], ],
}, },
{ {
title: "Configuration", title: "Configuration",
icon: LayoutGrid, icon: LayoutGrid,
children: [ children: [
{ title: "Modules", href: "/admin/configuration/modules", icon: LayoutGrid }, { title: "Modules", href: "/dashboard/admin/modules", icon: LayoutGrid },
{ title: "Language", href: "/admin/configuration/language", icon: Globe }, { title: "Language", href: "/dashboard/admin/language", icon: Globe },
{ title: "Dynamic Dashboard", href: "/admin/configuration/dynamic-dashboard", icon: LayoutDashboard }, { title: "Dynamic Dashboard", href: "/dashboard/admin/dynamicDashboard", icon: LayoutDashboard },
{ title: "Mobile Flows", href: "/admin/configuration/mobile-flows", icon: Smartphone }, { title: "Mobile Flows", href: "/dashboard/admin/mobileFlow", icon: Smartphone },
], ],
}, },
]; ];
export const schedulePerformanceHeaders = [
"Schedule",
"Total",
"Done",
"On Time",
"Delayed",
];
export const schedulePerformanceRows = [
["PPM", 24, 19, 17, 2],
["AMC", 8, 6, 6, 0],
];
//Overview dashboard data //Overview dashboard data