+
+
+ {/* Loading overlay */}
+ {status && (
+
+ {status}
+
+ )}
+
+ {/* Error overlay */}
+ {error && (
+
+ Error: {error}
+
+ )}
+
+ {/* HUD */}
+ {!status && !error && (
+ <>
+
+
FPS: {stats.fps}
+
Drawn: {stats.drawn.toLocaleString()} / 10,000,000
+
Mode: {stats.mode}
+
Zoom: {stats.zoom < 0.01 ? stats.zoom.toExponential(2) : stats.zoom.toFixed(2)} px/unit
+
Pt Size: {stats.ptSize.toFixed(1)}px
+
+
+ Drag to pan · Scroll to zoom
+
+ >
+ )}
+
+ );
+}
diff --git a/src/index.css b/src/index.css
new file mode 100644
index 0000000..f1d8c73
--- /dev/null
+++ b/src/index.css
@@ -0,0 +1 @@
+@import "tailwindcss";
diff --git a/src/main.tsx b/src/main.tsx
new file mode 100644
index 0000000..12fa35b
--- /dev/null
+++ b/src/main.tsx
@@ -0,0 +1,10 @@
+import { StrictMode } from "react";
+import { createRoot } from "react-dom/client";
+import "./index.css";
+import App from "./App";
+
+createRoot(document.getElementById("root")!).render(
+