chore: P0 skeleton
Bootstrap the Dashward repo per arch/UBUNTU-DASHBOARD-SPACE.md: - pnpm-workspaces monorepo (sdk, extension, container, widgets-builtin/*) - GNOME extension stub (metadata.json, src/*.ts placeholders for warden, guard, supervisor, entry UX, DBus service) - WebKit container stub (GJS main + page-side runtime + dashboard.html) - TypeScript widget SDK (defineWidget + types) - Builtin clock widget as the first SDK consumer example - DBus interface XML (proto/shell.iface.xml) and shared types - esbuild configs for extension and container; tsc for SDK - Design doc copied in at repo root for discoverability No functional logic yet -- all components are placeholders that compose in extension.ts so the build chain can be exercised. P1 (workspace warden) starts next. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
12
container/runtime/dashboard.html
Normal file
12
container/runtime/dashboard.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="dark">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Dashward</title>
|
||||
<link rel="stylesheet" href="styles.css" />
|
||||
</head>
|
||||
<body>
|
||||
<main id="grid"></main>
|
||||
<script type="module" src="runtime.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
15
container/runtime/runtime.ts
Normal file
15
container/runtime/runtime.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
// Stub: page-side runtime (design §11).
|
||||
// Loads layout.json, instantiates widgets in iframes on the 12-column grid,
|
||||
// handles edit mode, persists changes via the shell bridge.
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
__dashShell__?: {
|
||||
call(method: string, args?: unknown): Promise<unknown>;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
console.info('[dashward-runtime] P0 stub loaded');
|
||||
|
||||
export {};
|
||||
22
container/runtime/styles.css
Normal file
22
container/runtime/styles.css
Normal file
@@ -0,0 +1,22 @@
|
||||
:root {
|
||||
--bg: #f5f5f7;
|
||||
--fg: #1c1c1e;
|
||||
--grid-gap: 16px;
|
||||
}
|
||||
|
||||
[data-theme="dark"] {
|
||||
--bg: #0f0f12;
|
||||
--fg: #f0f0f5;
|
||||
}
|
||||
|
||||
html, body { margin: 0; padding: 0; height: 100%; background: var(--bg); color: var(--fg); }
|
||||
body { font-family: ui-sans-serif, system-ui, -apple-system, sans-serif; }
|
||||
|
||||
#grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(12, 1fr);
|
||||
gap: var(--grid-gap);
|
||||
padding: var(--grid-gap);
|
||||
min-height: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
Reference in New Issue
Block a user