Task 22 of the slice plan. Wires the Inbox window's renderer: - index.html (replaces the placeholder shipped in Task 2) with the full layout styles + module script. - api.ts re-exports window.inkling.inbox as a typed InboxApi. - recoveryToast.ts persists per-day toast dismissal in localStorage (KST date key) so the banner never re-fires after the user closes it. - store.ts: zustand store with notes, continuity, pendingCount, ollamaStatus, loadInitial(), refreshMeta(), upsert/remove. - main.tsx mounts <App />. - App.tsx orchestrates loadInitial + onNoteUpdated subscription + window-focus refresh, renders header / banners / note list. - 7 component stubs (NoteCard / EditableField / IntentBanner / RecoveryToast / ContinuityBadge / PendingBanner / OllamaBanner) so the shell typechecks today; Tasks 23-28 swap each in. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 lines
1.3 KiB
HTML
24 lines
1.3 KiB
HTML
<!doctype html>
|
|
<html lang="ko">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: file:" />
|
|
<title>Inkling</title>
|
|
<style>
|
|
body { margin: 0; font-family: system-ui, sans-serif; background: #f5f5f7; color: #111; }
|
|
.header { display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; background: white; border-bottom: 1px solid #eee; position: sticky; top: 0; z-index: 10; }
|
|
.main { max-width: 780px; margin: 0 auto; padding: 20px; }
|
|
.banner { padding: 10px 14px; border-radius: 8px; margin-bottom: 14px; font-size: 13px; display: flex; justify-content: space-between; align-items: center; }
|
|
.banner.warn { background: #fff4d6; color: #7a5a00; }
|
|
.banner.info { background: #e3f2ff; color: #0a4b80; }
|
|
.banner.recovery { background: #e9f9e4; color: #236b1a; }
|
|
.banner button { background: none; border: none; color: inherit; cursor: pointer; font-size: 13px; }
|
|
.empty { text-align: center; color: #888; padding: 60px 0; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/renderer/inbox/main.tsx"></script>
|
|
</body>
|
|
</html>
|