// Icons + small UI atoms. Single-file collection of inline SVGs.
// Stroke-based, current-color, so they pick up parent color.
const Icon = ({ name, size = 22, stroke = 1.6, ...rest }) => {
const props = {
width: size, height: size, viewBox: "0 0 24 24",
fill: "none", stroke: "currentColor", strokeWidth: stroke,
strokeLinecap: "round", strokeLinejoin: "round", ...rest,
};
switch (name) {
case "scan":
return ();
case "alert":
return ();
case "scalpel":
return ();
case "shield":
return ();
case "drop":
return ();
case "heart":
return ();
case "tooth":
return ();
case "leaf":
return ();
case "tag":
return ();
case "house":
return ();
case "car":
return ();
case "plane":
return ();
case "phone":
return ();
case "mail":
return ();
case "pin":
return ();
case "clock":
return ();
case "calendar":
return ();
case "chat":
return ();
case "check":
return ();
case "arrow-right":
return ();
case "arrow-up-right":
return ();
case "menu":
return ();
case "x":
return ();
case "paw":
return ();
case "stethoscope":
return ();
case "globe":
return ();
case "spark":
return ();
default:
return ();
}
};
// ECG / heartbeat line — visual nod to the logo's pulse
const ECGLine = ({ color = "currentColor", strokeWidth = 1.6, className = "ecg" }) => (
);
// Heart-line ECG variant for hero — single big pulse
const ECGPulse = ({ color = "currentColor" }) => (
);
// Brand mark — original "Blue Oasis Vet" lockup (we do NOT recreate the photo logo —
// instead we draw a clean monogram + wordmark using brand colors).
const BrandLogo = ({ size = 36, withWord = true, color = "var(--oasis-deep)" }) => (
{withWord && (
Blue Oasis
Veterinary Clinic
)}
);
window.Icon = Icon;
window.ECGLine = ECGLine;
window.ECGPulse = ECGPulse;
window.BrandLogo = BrandLogo;