// Android Material 3 screens — batch 4: Addresses, Lab tests, Doctor consult, Reminders, Notifications, Help chat
const Aroboto4 = { fontFamily: 'Roboto, "Roboto Flex", system-ui, sans-serif' };
// ═════════════════════════════════════════════════════════════
// MA-15) ADDRESSES
// ═════════════════════════════════════════════════════════════
function MdScreenAddresses() {
const addrs = [
{ label: 'Home', sub: 'Apt 4B, Maple Residency, 100ft Road, Indiranagar, Bengaluru 560038', Icon: IconHome, def: true, hue: 'blue' },
{ label: 'Work', sub: '5th Floor, Prestige Tech Park, Marathahalli, Bengaluru 560103', Icon: IconBox, def: false, hue: 'mint' },
{ label: 'Mom\u2019s place', sub: 'Plot 12, Sector 14, Whitefield, Bengaluru 560066', Icon: IconHeart, def: false, hue: 'rose' },
];
const palettes = { blue: { bg: M.primaryContainer, fg: M.onPrimaryContainer }, mint: { bg: '#D6F5EA', fg: '#0F5A48' }, rose: { bg: '#FFE4E4', fg: '#7A1C1F' } };
return (
{/* Map */}
{addrs.map((a, i) => {
const p = palettes[a.hue];
return (
{a.label}
{a.def && Default}
{a.sub}
Edit
{!a.def && Set default}
Delete
);
})}
Add new address
Home, work, or anywhere else
);
}
// ═════════════════════════════════════════════════════════════
// MA-16) LAB TESTS
// ═════════════════════════════════════════════════════════════
function MdScreenLabTests() {
const tests = [
{ name: 'Complete blood count (CBC)', sub: '24 parameters · No fasting', price: 320, mrp: 480, hue: 'rose', tag: 'POPULAR' },
{ name: 'HbA1c (Diabetes)', sub: '3-month sugar avg · Fasting', price: 480, mrp: 650, hue: 'blue', tag: null },
{ name: 'Vitamin D 25-OH', sub: 'Deficiency screening', price: 1080, mrp: 1400, hue: 'amber', tag: null },
{ name: 'Thyroid T3 T4 TSH', sub: '3 tests · Morning sample', price: 540, mrp: 720, hue: 'mint', tag: null },
];
const palettes = { blue: { bg: M.primaryContainer, fg: M.onPrimaryContainer }, mint: { bg: '#D6F5EA', fg: '#0F5A48' }, amber: { bg: '#FFEFD1', fg: '#7A4500' }, rose: { bg: '#FFE4E4', fg: '#7A1C1F' } };
return (
{/* Hero */}
Home sample collection,
NABL-accredited labs
⚡ Reports in 12 hrs• Free pickup
PopularDiabetesHeartThyroidFull body
{tests.map((t, i) => {
const p = palettes[t.hue];
return (
{t.name}
{t.tag && {t.tag}}
{t.sub}
);
})}
Full body checkup · 62 tests
Recommended for ages 30+ annually
);
}
// ═════════════════════════════════════════════════════════════
// MA-17) DOCTOR CONSULT
// ═════════════════════════════════════════════════════════════
function MdScreenDoctorConsult() {
const specs = [
{ l: 'General', Icon: IconUser, hue: 'blue' },
{ l: 'Skin', Icon: IconHeart, hue: 'rose' },
{ l: 'Pediatrics', Icon: IconShield, hue: 'mint' },
{ l: 'Mental', Icon: IconStar, hue: 'amber' },
];
const docs = [
{ name: 'Dr. Priya Mehta', spec: 'General physician · 12 yrs', rating: '4.9', lang: 'EN · HI · KN', price: 199, available: 'In 4 min', hue: 'blue' },
{ name: 'Dr. Rohan Iyer', spec: 'Dermatologist · 8 yrs', rating: '4.8', lang: 'EN · HI', price: 349, available: 'In 12 min', hue: 'rose' },
{ name: 'Dr. Anjali Rao', spec: 'Pediatrician · 15 yrs', rating: '4.9', lang: 'EN · HI · TA', price: 299, available: 'Tomorrow', hue: 'mint' },
];
const palettes = { blue: { bg: M.primaryContainer, fg: M.onPrimaryContainer }, mint: { bg: '#D6F5EA', fg: '#0F5A48' }, amber: { bg: '#FFEFD1', fg: '#7A4500' }, rose: { bg: '#FFE4E4', fg: '#7A1C1F' } };
return (
{/* Active consult */}
PM
Dr. Priya replied to your chat
2 min ago · Follow-up
Open
{specs.map(s => {
const p = palettes[s.hue];
return (
);
})}
{docs.map((d, i) => {
const p = palettes[d.hue];
return (
{d.name.split(' ').slice(1).map(s => s[0]).join('')}
₹{d.price}
● {d.available}
Chat
Video
);
})}
);
}
// ═════════════════════════════════════════════════════════════
// MA-18) MEDICINE REMINDERS
// ═════════════════════════════════════════════════════════════
function MdScreenReminders() {
const schedule = [
{ time: '08:00 AM', label: 'Morning · After breakfast', meds: [
{ name: 'Metformin SR 500mg', dose: '1 tab', hue: 'blue', taken: true },
{ name: 'Atorvastatin 10mg', dose: '1 tab', hue: 'mint', taken: true },
]},
{ time: '06:30 PM', label: 'Evening · before dinner', meds: [
{ name: 'Pan-D', dose: '1 cap', hue: 'mint', taken: false, due: true },
{ name: 'Vitamin D3 60K', dose: '1 cap · weekly', hue: 'amber', taken: false, due: true },
]},
{ time: '10:00 PM', label: 'Bedtime', meds: [
{ name: 'Metformin SR 500mg', dose: '1 tab', hue: 'blue', taken: false },
]},
];
return (
{/* Adherence ring */}
3 of 5 doses taken
2 doses due at 6:30 PM
14-day streak · keep going!
{schedule.map((slot, si) => (
m.due) ? M.primary : M.onSurface }}>{slot.time}
{slot.label}
{slot.meds.some(m => m.due) &&
NOW}
{slot.meds.map((m, mi) => (
{m.taken ? (
) : (
Mark taken
)}
))}
))}
);
}
// ═════════════════════════════════════════════════════════════
// MA-19) NOTIFICATIONS
// ═════════════════════════════════════════════════════════════
function MdScreenNotifications() {
const notifs = [
{ group: 'Today', items: [
{ title: 'Your order is being packed', sub: '#JN-2841-09 · est 6:40 PM', time: '5:55 PM', unread: true, Icon: IconBox, hue: 'blue' },
{ title: 'Rx verified by Dr. Mehta', sub: '"Refill safe to dispense."', time: '5:48 PM', unread: true, Icon: IconRx, hue: 'mint' },
{ title: '6:30 PM — Time for Pan-D', sub: '1 capsule before dinner', time: '6:30 PM', unread: false, Icon: IconClock, hue: 'amber' },
]},
{ group: 'Yesterday', items: [
{ title: '20% off on vitamins', sub: 'Use VIT20 · ends Sunday', time: '11:24 AM', unread: false, Icon: IconStar, hue: 'amber' },
{ title: 'Time to refill Metformin SR', sub: '3 days of stock left', time: '9:00 AM', unread: false, Icon: IconRx, hue: 'blue' },
]},
];
const palettes = { blue: { bg: M.primaryContainer, fg: M.onPrimaryContainer }, mint: { bg: '#D6F5EA', fg: '#0F5A48' }, amber: { bg: '#FFEFD1', fg: '#7A4500' }, rose: { bg: '#FFE4E4', fg: '#7A1C1F' } };
return (
AllOrdersRemindersOffers
{notifs.map((g, gi) => (
{g.group.toUpperCase()}
{g.items.map((n, ni, a) => {
const p = palettes[n.hue];
return (
{n.unread &&
}
{n.title}
{n.sub}
{n.time}
);
})}
))}
);
}
// ═════════════════════════════════════════════════════════════
// MA-20) HELP & CHAT
// ═════════════════════════════════════════════════════════════
function MdScreenHelpChat() {
return (
{/* App bar */}
Janaushadhi Care
● Replies in seconds
{/* Chat */}
Today, 5:42 PM
J
Hi Aarav! How can we help today?
{['Track my order', 'Rx not verified', 'Refund status'].map((q, i) => (
{q}
))}
Where is my order #JN-2841-09?
J
It's being packed and will be on its way in ~10 minutes.
#JN-2841-09
Packing · ETA 6:40 PM
Track live
{/* Composer */}
);
}
Object.assign(window, { MdScreenAddresses, MdScreenLabTests, MdScreenDoctorConsult, MdScreenReminders, MdScreenNotifications, MdScreenHelpChat });