blob: f5e12d491afb7dd2685d0ff0abdcaa45b4f9775d [file] [log] [blame]
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sketch Monaco Viewer Demo</title>
<script type="module" src="../sketch-monaco-view.ts"></script>
<style>
body {
font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
Arial, sans-serif;
max-width: 1200px;
margin: 0 auto;
padding: 2rem;
}
h1 {
color: #333;
margin-bottom: 2rem;
}
.control-panel {
margin-bottom: 2rem;
padding: 1rem;
background-color: #f0f0f0;
border-radius: 4px;
}
button {
padding: 8px 12px;
background-color: #4285f4;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
margin-right: 8px;
}
button:hover {
background-color: #3367d6;
}
sketch-monaco-view {
margin-top: 20px;
height: 500px;
}
</style>
</head>
<body>
<h1>Sketch Monaco Viewer Demo</h1>
<div class="control-panel">
<p>This is a demo page for the sketch-monaco-view component.</p>
<div>
<button id="example1">Example 1: JavaScript</button>
<button id="example2">Example 2: HTML</button>
<button id="example3">Example 3: Go</button>
</div>
</div>
<sketch-monaco-view id="diffEditor"></sketch-monaco-view>
<script>
document.addEventListener("DOMContentLoaded", () => {
const diffEditor = document.getElementById("diffEditor");
// Set initial example
diffEditor.originalCode = `function hello() {
console.log("Hello World");
return true;
}`;
diffEditor.modifiedCode = `function hello() {
// Add a comment
console.log("Hello Updated World");
return true;
}`;
// Example 1: JavaScript
document.getElementById("example1").addEventListener("click", () => {
diffEditor.setOriginalCode(
`function calculateTotal(items) {
return items
.map(item => item.price * item.quantity)
.reduce((a, b) => a + b, 0);
}`,
"original.js",
);
diffEditor.setModifiedCode(
`function calculateTotal(items) {
// Apply discount if available
return items
.map(item => {
const price = item.discount ?
item.price * (1 - item.discount) :
item.price;
return price * item.quantity;
})
.reduce((a, b) => a + b, 0);
}`,
"modified.js",
);
});
// Example 2: HTML
document.getElementById("example2").addEventListener("click", () => {
diffEditor.setOriginalCode(
`<!DOCTYPE html>
<html>
<head>
<title>Demo Page</title>
</head>
<body>
<h1>Hello World</h1>
<p>This is a paragraph.</p>
</body>
</html>`,
"original.html",
);
diffEditor.setModifiedCode(
`<!DOCTYPE html>
<html>
<head>
<title>Demo Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>Hello World</h1>
</header>
<main>
<p>This is a paragraph with some <strong>bold</strong> text.</p>
</main>
<footer>
<p>&copy; 2025</p>
</footer>
</body>
</html>`,
"modified.html",
);
});
// Example 3: Go
document.getElementById("example3").addEventListener("click", () => {
diffEditor.setOriginalCode(
`package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}`,
"original.go",
);
diffEditor.setModifiedCode(
`package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Hello, world!")
fmt.Printf("The time is %s\n", time.Now().Format(time.RFC3339))
}`,
"modified.go",
);
});
});
</script>
</body>
</html>