// ---------------------------------------------------------------------------
// ui / icons.tsx — EXIT wave 2 (W2-6).
//
// The three glyphs the page primitives need, as SVG paths. Owner constant: NO
// EMOJIS anywhere in the UI — a check mark typed as a character is an emoji on
// most platforms and renders in the system's colour, not the palette's.
//
// Deliberately NOT importing `customer-grid/iconShapes`: `ui/` is the shared
// presentation layer and must not depend on the grid (the direction W2-5 spent
// its amendment lines getting right). Three paths do not justify inverting a
// 400-line module; if this set grows past a handful, hoist iconShapes the way
// `viz/` was hoisted rather than letting it creep.
//
// `currentColor` throughout, so tone comes from the CSS token on the parent and
// no colour is ever written here.
// ---------------------------------------------------------------------------
function Glyph({ d, size, className }: { d: string; size: number; className?: string }) {
return (
);
}
/** Material "download" — the tray with the arrow into it. */
export function DownloadIcon({ size = 15 }: { size?: number }) {
return (
);
}
/** Material "check" — a passing validation leg. */
export function CheckIcon({ size = 14 }: { size?: number }) {
return (
);
}
/** Material "priority_high" — a failing one. Not a cross: a failed
* reconciliation is "look at this", not "this was deleted". */
export function AlertIcon({ size = 14 }: { size?: number }) {
return (
);
}
/**
* ⭐ WAVE 32 · T20/T23 — THE BELL. One drawing, for every surface that means "you will be told".
*
* ⛔ STROKED, NOT FILLED, so it is a sibling of the shell's nav glyphs rather than of the three
* solid page-primitive marks above — and it takes a `className` for the same reason: the Inbox
* head sizes it through `.alerts-bell` while a menu row sizes it through the menu's own rule.
*
* ⚠ IT LIVES HERE BECAUSE TWO SURFACES NEED IT — the Inbox module's header (T20) and the view
* menu's "Alert me about new records" row (T23). It was drawn inline inside `AlertsPane.tsx`; a
* second hand-copy in the view rail is how a product ends up with two bells that differ by a
* stroke width, and `shell/Brand.tsx` records the version of that mistake that shipped.
*/
export function BellIcon({ size = 16, className }: { size?: number; className?: string }) {
return (
);
}