Tip: keep each widget self‑contained in a single .svg file with embedded JS and optional inline CSS.