// Shared shell primitives — slimmed for the compact "sheet" demo layout.
const DG = '#033d2e';
const DG80 = 'rgba(3,61,46,0.8)';
const DG70 = 'rgba(3,61,46,0.7)';
const DG60 = 'rgba(3,61,46,0.6)';
const DG50 = 'rgba(3,61,46,0.5)';
const DG10 = 'rgba(3,61,46,0.1)';
const DG06 = 'rgba(3,61,46,0.06)';
const MINT = '#77deba';
const MINT32 = 'rgba(119,222,186,0.32)';
const MINT12 = 'rgba(119,222,186,0.12)';
const BGMINT = '#d3e8e1';
const BGLIGHT = '#f8faf9';
const SPINE = '#03a878';
// Legacy standalone TopBar — unused in the embedded sheet; kept exported for safety.
const TopBar = ({ currentAssistant, onHome }) => (
);
// Horizontal chip-tabs that replace the old 248px AssistantSidebar.
// First chip is "HOME" (→ hub); then one per assistant.
const TopTabs = ({ assistants, currentId, onPick }) => {
const chipStyle = (active) => ({
height: 44,
padding: '0 14px',
borderRadius: 9999,
fontSize: 12.5,
fontWeight: 600,
letterSpacing: '0.02em',
border: active ? `1px solid ${DG}` : `1px solid ${MINT32}`,
background: active ? DG : 'transparent',
color: active ? '#fff' : DG,
transition: 'background-color 200ms ease, color 200ms ease, border-color 200ms ease',
scrollSnapAlign: 'start',
flexShrink: 0,
whiteSpace: 'nowrap',
cursor: 'pointer',
fontFamily: 'inherit',
display: 'inline-flex',
alignItems: 'center',
gap: 6,
});
return (
{assistants.map((a) => {
const active = a.id === currentId;
const num = a.number || a.num;
const short = a.shortName || (a.name || '').replace('Hysio ', '');
return (
);
})}
);
};
const PatientStrip = ({ patient }) => (
{patient.initials || (patient.name || '').split(' ').map((w) => w[0]).slice(0, 2).join('').toUpperCase()}
{patient.name}
{patient.episode}
{patient.age} jr · {patient.geslacht} · {patient.klacht}
Actief
);
// Legacy vertical sidebar — kept exported but no longer rendered by app.jsx.
const AssistantSidebar = ({ assistants, currentId, onPick }) => (
{assistants.map((a) => {
const active = a.id === currentId;
return (
);
})}
);
const Chip = ({ children, tone = 'default' }) => {
const tones = {
default: { bg: BGMINT, color: DG70 },
solid: { bg: DG, color: '#fff' },
active: { bg: 'rgba(3,168,120,0.12)', color: SPINE },
};
const t = tones[tone];
return (
{children}
);
};
const Card = ({ children, style = {} }) => (
{children}
);
const PrimaryButton = ({ children, onClick, disabled, loading, icon }) => (
);
const GhostButton = ({ children, onClick, icon }) => (
);
const SectionLabel = ({ children, icon }) => (
{icon}{children}
);
Object.assign(window, {
TopBar, TopTabs, PatientStrip, AssistantSidebar, Chip, Card, PrimaryButton, GhostButton, SectionLabel,
DG, DG80, DG70, DG60, DG50, DG10, DG06, MINT, MINT32, MINT12, BGMINT, BGLIGHT, SPINE,
});