// BRIMS UI mockups — match the app's dark operator UI and Filament admin panel. // Each mockup is a self-contained functional component. const TopBar = ({ on = 'Dashboard' }) => { const items = ['Dashboard','Bags','Processing','QC / Lab','Outbound']; return (
BBRIMS
production supervisor
); }; const Chrome = ({ url }) => (
{url}
); // ------- LOGIN ------- const LoginMock = () => (
B
BRIMS
Battery Recycling Inventory
Sign in
Welcome back. Please enter your details.
operator@brims.local
••••••••••
☐ Remember me Forgot password?
); // ------- DASHBOARD ------- const DashboardMock = () => (
Dashboard
Plant A · Tema · live · 09:42
Today 7d 30d
Total Bags
4,218
▲ 3.2% wow
Total kg
98,740
▲ 2.8%
Active Inbound
7
2 arriving today
Open Lots
31
8 in refining
Needs Inspection
14
3 over 24h

Bags by status

Registered312
Approved1,104
In Sorting728
In Discharge402
In Dismantling611
In Refining498
Dispatched512
Quarantined51

Open exceptions auto-refresh 10s

CRIT Weight variance +3.4kg BG-LI-00014712m
HIGH Seal broken at Loc B-04 BG-LI-00009338m
HIGH Yield variance -5.1% LOT-DM-03141h
MED Missing scan on transfer BG-PB-0020152h
MED Quarantine approaching limit BG-NI-0003023h
LOW TID verification skipped BG-LI-0001885h
); // ------- BAG INQUIRY ------- const BagInquiryMock = () => (
🔍 BG-LI-000147
Scan RFID Approve Quarantine
Bag
BG-LI-000147
QUARANTINED
ChemistryLi-ion NMC
Bag typeBLUE · 15kg
HazardClass 9 · UN3480
Gross weight18.42 kg
Net weight16.92 kg
Variance+3.42 kg
Current locationQuarantine · Q-02
EPC303A1D4F 2E00 0093
Registered byK. Mensah · Apr 18, 08:12

RFID Timeline

📍 Weighbridge scale08:12
📍 Receiving dock A08:14
📍 Inspection bay08:22
📍 Quarantine Q-0209:03

Open Exceptions

CRIT Weight variance +3.42 kgopen
MED Awaiting EHS reviewopen
); // ------- PIPELINE ------- const PipelineMock = () => { const stages = [ {k:'amber',n:'Receiving',open:7,q:12}, {k:'blue',n:'Sorting',open:9,q:24}, {k:'yellow',n:'Discharge',open:4,q:6}, {k:'orange',n:'Dismantling',open:6,q:11}, {k:'purple',n:'Refining',open:8,q:9}, {k:'emerald',n:'Dispatch',open:3,q:2}, ]; return (
Processing Pipeline
Click any stage to drill in · live updates
{stages.map(s => (
{s.n}
{s.open}
open lots · {s.q} queued
))}

Recent activity

REFINING LOT-RF-0088 · assay added by A. Owusu2m
DISMANTLE LOT-DM-0312 · output recorded 412 kg by J. Boateng6m
SORTING LOT-SR-0455 · 24 bags added by K. Mensah11m
RECEIVING SHP-IN-0219 · completed by E. Asare22m
DISPATCH SHP-OUT-0077 · approved 2nd by Y. Adams34m
); }; // ------- RECEIVING ------- const ReceivingMock = () => (
Receiving
Inbound shipments and bag registration
+ New Shipment
Shipment #SupplierArrivalBagsGross kgStatus
SHP-IN-0221Accra Metals LtdApr 18 · 09:1034 / 40812.4RECEIVINGOpen →
SHP-IN-0220GreenCell RecyclersApr 18 · 07:5528 / 28640.1PENDING APPROVALOpen →
SHP-IN-0219Tema Port LogisticsApr 17 · 16:4052 / 521,206.7COMPLETEDOpen →
SHP-IN-0218Volta IndustrialApr 17 · 14:1019 / 20405.3EXCEPTIONOpen →
SHP-IN-0217Accra Metals LtdApr 17 · 11:0241 / 41984.8COMPLETEDOpen →
); // ------- DISMANTLING DETAIL ------- const DismantlingDetailMock = () => (
Dismantling · lot
LOT-DM-0312 · parent LOT-SR-0450
Add output Close Lot
Bags
24
Input kg
512.0
Output kg
487.3
Yield
95.2%
benchmark 94%

Bags in Lot 24

BG-LI-000301BLUE
BG-LI-000302BLUE
BG-LI-000303BLUE
BG-LI-000304YELLOW
BG-LI-000305BLUE
BG-LI-000306BLUE
+ 18 more

Output Fractions + Add

Black Mass292.4 kg · 60.0%
Copper Foil62.1 kg · 12.7%
Aluminium Casing71.3 kg · 14.6%
Plastic Separator28.2 kg · 5.8%
Electrolyte (captured)33.3 kg · 6.8%
Material Accounted
95.2% · loss 4.8% (24.7 kg)

Activity

Output +33.3 kg electrolyte6m
Output +71.3 kg Al casing22m
Output +62.1 kg Cu foil38m
Output +292.4 kg black mass1h
Lot opened · 24 bags3h
Created from LOT-SR-04503h
); // ------- QC / LAB ------- const QcLabMock = () => (
QC / Lab
Lots awaiting assay · chemistry entry
{[ {lot:'LOT-RF-0088',out:5,as:2,st:'purple',stl:'REFINING'}, {lot:'LOT-DM-0312',out:5,as:0,st:'orange',stl:'DISMANTLING'}, {lot:'LOT-DM-0311',out:4,as:4,st:'emerald',stl:'DONE'}, {lot:'LOT-RF-0087',out:3,as:3,st:'emerald',stl:'DONE'}, {lot:'LOT-DM-0310',out:5,as:1,st:'orange',stl:'DISMANTLING'}, {lot:'LOT-RF-0086',out:4,as:0,st:'purple',stl:'REFINING'}, ].map(l => (
{l.lot}
{l.stl}
Outputs{l.out}
Assays recorded{l.as}/{l.out}
ChemistryLi-ion NMC
+ Add assay
))}
); // ------- OUTBOUND ------- const OutboundMock = () => (
Outbound Dispatch
Two-step approval · refined output shipments
+ New Shipment
Draft
4
Pending 2nd
2
Approved
3
Dispatched (wk)
11
Shipment #DestinationLotsNet kgStatusNext action
SHP-OUT-0080Smelter Plant A · Tema3842.3DRAFTAdd lots
SHP-OUT-0079Hydromet Ref. · Takoradi51,204.7PENDING 2nd2nd approval
SHP-OUT-0078Smelter Plant A · Tema4988.0APPROVEDMark dispatched
SHP-OUT-0077EcoRefine · Accra2410.5DISPATCHED
SHP-OUT-0076Smelter Plant B · Kumasi61,552.1DISPATCHED
); // ------- FILAMENT ADMIN — USERS ------- const FilaShell = ({ page, children, title, sub }) => { const nav = [ ['USER MANAGEMENT', ['Users','Roles','Permissions']], ['MASTER DATA', ['Companies','Sites','Locations','Suppliers','Bag Types','Battery Chemistries','EPC Versions','Yield Benchmarks']], ['OPERATIONS', ['Bags','Lots','Inbound Shipments','Outbound Shipments']], ['MONITORING', ['Exception Board','Material Balance','Reports','Audit Log']], ]; return (
B
BRIMS · Admin
admin@brims.local
{nav.map(([g, items]) => (
{g}
{items.map(i => {i})}
))}
{title}
{sub &&
{sub}
} {children}
); }; const FilamentUsersMock = () => (
All roles ▾ All sites ▾
NameEmailRolesSiteStatusLast login
Ama Owusua.owusu@brims.localqc_lab_officerPlant A · TemaActive2m ago
Kwame Mensahk.mensah@brims.localreceiving_operatorPlant A · TemaActive14m ago
Efua Asaree.asare@brims.localehs_officerPlant A · TemaActive1h ago
Yaw Adamsy.adams@brims.localproduction_supervisorPlant B · KumasiActive3h ago
Joseph Boatengj.boateng@brims.localwarehouse_operatorPlant A · TemaActive4h ago
N. Agyemann.agyeman@brims.localinventory_controllerPlant B · KumasiInvited
System Adminadmin@brims.localadminAll sitesActivejust now
); const FilamentBagTypesMock = () => (
BLU-15-LI
Blue · 15kg · Li-ion
BLUE
Li-ion NMC
1.50
20.00
Class 9 · UN3480
94.0
Inspect for swelling. Do not stack more than 2 high. Keep dry; temp below 35°C.
Yes
); const ExceptionBoardMock = () => (
Type: All ▾ Severity: All ▾ Status: Open ▾
RaisedTypeSeveritySubjectStatusAssignee
18 Apr · 09:26weight_varianceCRITBG-LI-000147 · +3.42 kgOpenE. Asare
18 Apr · 08:58seal_brokenHIGHBG-LI-000093 · Loc B-04OpenE. Asare
18 Apr · 08:44yield_varianceHIGHLOT-DM-0314 · -5.1%OpenY. Adams
18 Apr · 07:42missing_scanMEDBG-PB-002015 · transferOpen
18 Apr · 06:58quarantine_expMEDBG-NI-000302 · 29dOpenE. Asare
17 Apr · 18:10tid_verifyLOWBG-LI-000188 · reader 2ResolvedE. Asare
17 Apr · 14:22weight_varianceMEDBG-LI-000088 · +1.08 kgResolvedE. Asare
); const MaterialBalanceMock = () => (
Apr 1 – Apr 18 ▾ Chemistry: All ▾ Plant A ▾
LotStageChemistryInput kgOutput kgLoss kgYield %Benchmark
LOT-DM-0312DismantlingLi-ion NMC512.0487.324.795.294.0
LOT-DM-0311DismantlingLi-ion LFP438.4410.228.293.692.0
LOT-DM-0310DismantlingLi-ion NMC402.1371.530.692.494.0
LOT-RF-0088RefiningLi-ion NMC292.4278.114.395.194.0
LOT-RF-0087RefiningPb-acid882.0842.639.495.595.0
LOT-RF-0086RefiningNiMH214.0196.117.991.693.0
); const FilamentReportsMock = () => { const groups = [ {n:'Inbound Reports',items:['Shipment Arrivals','Supplier Summary','Bag Registration Log']}, {n:'Processing Reports',items:['Lot Event Log','Yield Analysis','Chemistry Breakdown']}, {n:'Outbound Reports',items:['Dispatch Summary','Approval Timeline','Customer Allocation']}, {n:'Exception Reports',items:['Exception Frequency','MTTR Analysis','Severity Trends']}, {n:'Compliance Reports',items:['Custody Chain','Hazmat Handling','Audit Trail']}, {n:'RFID Reports',items:['Tag Read Log','Location Transitions','Verification Failures']}, ]; return (
{groups.map(g => (
{g.n}
{g.items.map(i => (
{i} CSV PDF
))}
))}
); };