{/* Toolbar */}
NeedleScript — scrubber
{/* Editor */}
setSource(v ?? '')}
beforeMount={handleBeforeMount}
onMount={handleMount}
options={{
minimap: { enabled: false },
lineNumbers: 'on',
lineDecorationsWidth: 4,
lineNumbersMinChars: 2,
glyphMargin: false,
folding: false,
scrollBeyondLastLine: false,
wordWrap: 'off',
scrollbar: { vertical: 'hidden', horizontal: 'auto' },
overviewRulerLanes: 0,
renderLineHighlight: 'line',
fontFamily: '"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace',
fontSize: 13,
lineHeight: 20,
padding: { top: 8, bottom: 8 },
quickSuggestions: true,
suggest: { showWords: false },
contextmenu: false,
}}
/>
{/* Canvas */}
{/* Scrubber controls */}
{total > 0 && !error && (
{
setPlaying(false);
setScrubPos(Number(e.target.value));
}}
aria-label="Stitch playback position"
style={{ flex: 1, accentColor: 'var(--bk-run)' }}
/>
{scrubPos.toLocaleString()} / {total.toLocaleString()}
)}
{/* Error */}
{error && (
{error}
)}
);
}