git » bitbop.git » commit c5e861b

init

author Alan Dipert
2025-05-09 23:58:15 UTC
committer Alan Dipert
2025-05-09 23:58:15 UTC

init

.gitmodules +6 -0
JS-Interpreter +1 -0
ace-builds +1 -0
app.js +11 -0
index.html +47 -0
style.css +80 -0

diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..770ace3
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,6 @@
+[submodule "JS-Interpreter"]
+	path = JS-Interpreter
+	url = https://github.com/NeilFraser/JS-Interpreter.git
+[submodule "ace-builds"]
+	path = ace-builds
+	url = https://github.com/ajaxorg/ace-builds.git
diff --git a/JS-Interpreter b/JS-Interpreter
new file mode 160000
index 0000000..37e73f8
--- /dev/null
+++ b/JS-Interpreter
@@ -0,0 +1 @@
+Subproject commit 37e73f830051d4bcfdf0e6b466e7bd8dc1d45709
diff --git a/ace-builds b/ace-builds
new file mode 160000
index 0000000..c27ad0e
--- /dev/null
+++ b/ace-builds
@@ -0,0 +1 @@
+Subproject commit c27ad0e87592703abec38e5e311db9f33935ed55
diff --git a/app.js b/app.js
new file mode 100644
index 0000000..b749300
--- /dev/null
+++ b/app.js
@@ -0,0 +1,11 @@
+document.addEventListener('DOMContentLoaded', () => {
+  let editor = ace.edit("editor-pane", {
+    mode: "ace/mode/javascript",
+    theme: "ace/theme/monokai",
+    fontSize: "12px",
+    tabSize: 2,
+    useSoftTabs: true,
+    showPrintMargin: false
+  });
+});
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..ffe387e
--- /dev/null
+++ b/index.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <title>bitbop.studio</title>
+  <link rel="stylesheet" href="style.css">
+  <script src="JS-Interpreter/acorn.js"></script>
+  <script src="JS-Interpreter/interpreter.js"></script>
+  <script src="ace-builds/src/ace.js"></script>
+  <script src="ace-builds/src/mode-javascript.js"></script>
+  <script src="ace-builds/src/theme-monokai.js"></script>
+  <script src="app.js"></script>
+</head>
+<body>
+  <div id="top-bar">
+    <button id="play">▶</button>
+    <button>⏸</button>
+    <button>⏭</button>
+    <button>⏹</button>
+  </div>
+
+  <div id="main-container">
+    <div id="editor-pane">
+    </div>
+
+    <div id="ui-pane">
+      <div id="inputs-panel">
+        <!-- Inputs laid out in a VB6-like grid -->
+        <div class="input-group">
+          <label>Slider A</label>
+          <input type="range" min="0" max="100" />
+        </div>
+        <div class="input-group">
+          <label>Button B</label>
+          <button>Click</button>
+        </div>
+        <!-- Add more inputs here -->
+      </div>
+
+      <div id="graphics-panel">
+        <canvas id="turtle-canvas" width="400" height="300"></canvas>
+      </div>
+    </div>
+  </div>
+</body>
+</html>
+
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..fec039d
--- /dev/null
+++ b/style.css
@@ -0,0 +1,80 @@
+/* style.css */
+
+body {
+  margin: 0;
+  font-family: sans-serif;
+  background: #d0d9e0;
+  height: 100vh;
+  display: flex;
+  flex-direction: column;
+}
+
+#top-bar {
+  background: #3b4a58;
+  color: white;
+  padding: 5px;
+  display: flex;
+  gap: 5px;
+}
+
+#main-container {
+  flex: 1;
+  display: flex;
+  overflow: hidden;
+}
+
+#editor-pane {
+  width: 50%;
+  padding: 8px;
+  background: #1e1e1e;
+  color: #d4d4d4;
+  display: flex;
+  flex-direction: column;
+}
+
+#editor-pane textarea {
+  flex: 1;
+  width: 100%;
+  background: #1e1e1e;
+  color: #d4d4d4;
+  border: none;
+  font-family: monospace;
+  font-size: 12px;
+  resize: none;
+}
+
+#ui-pane {
+  width: 50%;
+  display: flex;
+  flex-direction: column;
+}
+
+#inputs-panel {
+  flex: 1;
+  padding: 10px;
+  background: #f0f4f7;
+  display: grid;
+  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
+  gap: 10px;
+  overflow-y: auto;
+}
+
+.input-group {
+  background: #fff;
+  border: 1px solid #ccc;
+  padding: 8px;
+  border-radius: 4px;
+}
+
+#graphics-panel {
+  height: 300px;
+  background: #ffffff;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  border-top: 2px solid #ccc;
+}
+
+canvas {
+  border: 1px solid #888;
+}