'].join('\n'); const interactSteps = [ { cmd: 'mkdir -p /tmp/counter' }, { cmd: "cat > /tmp/counter/index.html /tmp/counter/index.html /tmp/repo/README.md' }, { cmd: 'cd /tmp/repo && git add . && git commit -m "initial"', note: 'First commit' }, { cmd: 'echo "v2" >> /tmp/repo/README.md', note: 'Edit a file' }, { cmd: 'cd /tmp/repo && git diff' }, ]; const seedSteps = [ { target: 'right', note: 'Target shiro.computer instance (empty)', delay: 100 }, { target: 'left', cmd: 'mkdir -p /tmp/app' }, { target: 'left', cmd: "echo '
Snapshot me!
' > /tmp/app/index.html" }, { target: 'left', cmd: 'ls /tmp/app', note: 'Files in left Shiro' }, { target: 'left', cmd: 'seed gif', note: 'Generate seed GIF', delay: 2000 }, { drag: { from: 'left', to: 'right' }, delay: 1500 }, { target: 'right', cmd: 'ls /tmp/app', note: 'Files restored!' }, { target: 'right', cmd: 'cat /tmp/app/index.html' }, ]; // ===== Init ===== document.addEventListener('DOMContentLoaded', () => { demos.interact = new DemoPlayer('demo-interact', interactSteps); demos.git = new DemoPlayer('demo-git', gitSteps); demos.seed = new SeedDemoPlayer('demo-seed', seedSteps); // Start hero animation playHero(); });