/* Home dashboard */ function SectionLabel({ children, action }) { return (
{children} {action}
); } function HomeScreen({ onNav, onBack }) { const [busOpen, setBusOpen] = React.useState(true); const [emOpen, setEmOpen] = React.useState(true); const [emExp, setEmExp] = React.useState(false); return (
jlToast('No new notifications', { icon:'bell' })} onBack={onBack} />
{/* emergency alert */} {emOpen && (
EMERGENCY ALERT · KATY MIDDLE
Early dismissal today at 1:00 PM
{emExp && (
Due to a forecasted storm, all students will be dismissed at 1:00 PM. Buses will run on the early schedule. Please confirm your pickup plan.
)}
)} {/* child selector */} {/* bus status hero */} {busOpen && (
BUS STATUS
On the way
Bus #12
ETA
5 min
Last updated 3:19 PM
)} {/* quick actions */} Quick Actions
{[ { id:'pickup', label:'Pickup', icon:'car-front', tint:'var(--gold-100)', ic:'var(--gold-600)' }, { id:'grades', label:'Grades', icon:'graduation-cap', tint:'var(--blue-100)', ic:'var(--blue-500)' }, { id:'wallet', label:'Lunch', icon:'utensils', tint:'var(--success-100)', ic:'var(--success-500)' }, { id:'tutor', label:'AI Tutor', icon:'bot', tint:'var(--info-100)', ic:'var(--info-500)' }, ].map(q => ( ))}
{/* explore */} Explore
onNav('safety')} /> onNav('attendance')} /> onNav('marketplace')} /> onNav('engagement')} />
{/* today's schedule */} Today's Schedule
{/* recent alerts */} View All}>Recent Alerts
High} onClick={()=>onNav('activities')} /> onNav('messages')} />
); } function ScheduleRow({ icon, tint, ic, title, sub, right, onClick }) { return ( ); } const cardWrap = { background:'#fff', border:'1px solid var(--gray-200)', borderRadius:14, boxShadow:'var(--shadow-sm)', overflow:'hidden' }; function Divider(){ return
; } Object.assign(window, { HomeScreen, SectionLabel, ScheduleRow, Divider, cardWrap });