/* Admin → Payments: revenue + transactions */ function PaymentsScreen() { const tx = [ { n:'Jermaine Hatten', item:'Aftercare — May', amt:'$120.00', method:'Visa ••42', status:'Paid', c:'navy', stBg:'var(--success-100)', stFg:'var(--success-600)' }, { n:'Ashley Brooks', item:'Lunch Balance', amt:'$45.00', method:'ACH', status:'Paid', c:'blue', stBg:'var(--success-100)', stFg:'var(--success-600)' }, { n:'Marcus Lee', item:'Field Trip — Zoo', amt:'$28.00', method:'Mastercard ••08', status:'Pending', c:'green', stBg:'var(--warning-100)', stFg:'var(--warning-600)' }, { n:'Dana Cruz', item:'Aftercare — May', amt:'$120.00', method:'Visa ••71', status:'Failed', c:'red', stBg:'var(--danger-100)', stFg:'var(--danger-600)' }, { n:'Priya Nair', item:'Bus Pass — Q2', amt:'$90.00', method:'ACH', status:'Paid', c:'gold', stBg:'var(--success-100)', stFg:'var(--success-600)' }, ]; return (
{[['Aftercare','$11,400','62%','var(--navy-600)'],['Lunch','$6,250','34%','var(--blue-500)'],['Transport','$4,600','25%','var(--gold-500)'],['Field Trips','$2,400','13%','var(--success-500)']].map(([cat,amt,w,col],i)=>(
{cat}{amt}
))} jlToast('Exporting transactions…', { icon:'download' })} style={{ fontSize:12.5, fontWeight:700, color:'var(--blue-500)', cursor:'pointer' }}>Export} pad={false}>
FamilyItemAmountStatus
{tx.map((r,i)=>(
w[0]).join('')} color={r.c} size={30} />{r.n} {r.item} {r.amt} {r.status}
))}
); } Object.assign(window, { PaymentsScreen });