From 595548db950eca303a7d73ca09f31895d291534f Mon Sep 17 00:00:00 2001 From: soryu Date: Sat, 24 Jan 2026 15:50:43 +0000 Subject: feat(frontend): Add Templates page for managing contract templates - Add NavStrip component for top navigation between pages - Create Templates page with template card grid layout - Create TemplateEditor component for editing phase deliverables - Add navigation state management in stores - Implement three built-in templates: - Simple: Plan phase (Plan deliverable), Execute phase (PR deliverable) - Specification: Research, Specify, Plan, Execute, Review phases with deliverables - Execute: Single execute phase with no deliverables - Support for creating custom templates with configurable phases/deliverables - Templates are persisted to localStorage - Add comprehensive CSS styling matching existing design patterns Co-Authored-By: Claude Opus 4.5 [WIP] Heartbeat checkpoint - 2026-01-24 16:13:00 UTC [WIP] Heartbeat checkpoint - 2026-01-24 16:14:29 UTC --- frontend/src/stores/index.ts | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'frontend/src/stores/index.ts') diff --git a/frontend/src/stores/index.ts b/frontend/src/stores/index.ts index 58f461c..2fc356d 100644 --- a/frontend/src/stores/index.ts +++ b/frontend/src/stores/index.ts @@ -4,6 +4,10 @@ import { ChatMessage, Choice } from '../types' // Authentication state export const isLoggedInStore = atom(false) +// Navigation state +export type NavPage = 'main' | 'templates' +export const currentPageStore = atom('main') + // VN Interface state export const isStandbyStore = atom(false) export const currentTimeStore = atom(new Date()) @@ -91,4 +95,9 @@ export const setLoadingComplete = (complete: boolean) => { if (complete) { loadingStore.set(false) } +} + +// Navigation actions +export const navigateTo = (page: NavPage) => { + currentPageStore.set(page) } \ No newline at end of file -- cgit v1.2.3