--- // The installer demo, recorded by scripts/make_demo.py and served from // public/assets/demo/. Nothing of it loads before it is on screen: the // poster and the sources are set by the script below once the video is in // view (preload="none", no src in the HTML). With reduced motion or Save-Data // the poster stays, and the button plays it. The button pauses it otherwise. // variant names the recording (default, handheld), name the tab a demo sits // in when a page holds several: a demo in a closed tab is not on screen, so // it loads nothing until its tab is chosen. interface Props { description: string; width: string; height: string; variant?: 'default' | 'handheld'; name?: string; } const { description, width, height, variant = 'default', name = '' } = Astro.props; const base = import.meta.env.BASE_URL.replace(/\/?$/, '/'); const stem = variant === 'default' ? 'install' : `install-${variant}`; const asset = (ext: string) => `${base}assets/demo/${stem}.${ext}`; const textId = name ? `rb-demo-text-${name}` : 'rb-demo-text'; ---
{description}