// FRAZIER Finance OS — shared UI kit (ported pattern from the ops app's
// ops-ui.jsx/ops-kit.jsx: inline-SVG icon set + a few generic presentational
// components). Pure skin, no finance-data coupling, global scope (no build
// framework — see build/build.js).
function finCls(...xs) { return xs.filter(Boolean).join(' '); }
function finEscapeXml(v) {
return String(v === null || v === undefined ? '' : v)
.replace(/&/g, '&').replace(//g, '>')
.replace(/"/g, '"').replace(/'/g, ''');
}
// Trimmed icon set — only what Phase 1's shell/Home/Jarvis/login need.
// Same line style as the ops app's OPS_ICON_PATHS (viewBox 24, stroke 1.75).
const FIN_ICON_PATHS = {
home: '',
invoice: '',
payroll: '',
forecast: '',
jarvis: '',
files: '',
warn: '',
check: '',
chevr: '',
chevl: '',
x: '',
logout: '',
clock: '',
calendar: '',
send: '',
search: '',
};
function FinIcon({ name, size = 16, className = '', title }) {
const d = FIN_ICON_PATHS[name];
if (!d) return null;
return (