// VMAX prototype — shared Tweaks dock. A gear FAB opens an in-app panel for flipping // review states: day state, populated vs first-run data, connection, // quick role/active-user jump, and (POS) simulate-idle. (function () { const { Icon, Overline } = window.VMAXUI; const { Avatar, Toggle } = window.VMAXW; const { useVMAX } = window.VMAXStore; function Seg({ value, onChange, options }) { return (
{options.map((o) => { const v = typeof o === 'string' ? o : o.value; const l = typeof o === 'string' ? o : o.label; const on = value === v; return ( ); })}
); } function Section({ title, children }) { return
{title}{children}
; } function TweakDock({ app, roles, onJump, onSimulateIdle }) { const [s, a] = useVMAX(); const [open, setOpen] = React.useState(false); const tw = s.tweaks; const confirmReset = (mode) => { a.reset(mode); }; return ( {open && (
setOpen(false)} style={{ position: 'fixed', inset: 0, zIndex: 150 }} />
Tweaks
{roles && roles.length > 0 && (
{roles.map((r) => ( ))}
)}
a.setTweak('dayState', v)} options={[{ value: 'clean', label: 'Clean' }, { value: 'flagged', label: 'Flagged' }, { value: 'closing', label: 'Mid-close' }]} />

Switching reseeds the demo and clears accumulated records.

a.setTweak('net', v)} options={[{ value: 'online', label: 'Online' }, { value: 'syncing', label: 'Syncing' }, { value: 'offline', label: 'Offline' }]} />
{onSimulateIdle && (

Marks the active user stale — the next receipt print will ask for a PIN to re-verify.

)}
)} ); } window.VMAXTWEAKS = { TweakDock }; })();