Compare commits

...

3 Commits

Author SHA1 Message Date
Jeff Emmett 04d6859b8a feat: add MycroZine Generator shape with 5-phase workflow
Implements interactive 8-page zine creation tool:
- Phase 1: Ideation - chat UI for topic/content planning
- Phase 2: Drafts - generates 8 pages, spawns on canvas
- Phase 3: Feedback - approve/edit individual pages
- Phase 4: Finalizing - regenerate pages with feedback
- Phase 5: Complete - print layout download, template save

Features:
- Style selector (punk-zine, minimal, collage, retro, academic)
- Tone selector (rebellious, playful, informative, poetic)
- Chat-based ideation workflow
- Page grid with approval/feedback UI
- LocalStorage template persistence
- Punk green (#00ff00) theme

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 19:35:28 -05:00
Jeff Emmett 859851c460 Update task task-055 2025-12-15 19:34:43 -05:00
Jeff Emmett 26a94fbef0 Update task task-055 2025-12-15 19:27:36 -05:00
4 changed files with 1181 additions and 3 deletions

View File

@ -1,9 +1,10 @@
---
id: task-055
title: Integrate MycroZine generator tool into canvas
status: To Do
status: In Progress
assignee: []
created_date: '2025-12-15 23:41'
updated_date: '2025-12-16 00:34'
labels:
- feature
- canvas
@ -36,8 +37,8 @@ References mycro-zine repo at /home/jeffe/Github/mycro-zine for layout utilities
## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 MycroZineGeneratorShapeUtil.tsx created
- [ ] #2 MycroZineGeneratorTool.ts created and registered
- [x] #1 MycroZineGeneratorShapeUtil.tsx created
- [x] #2 MycroZineGeneratorTool.ts created and registered
- [ ] #3 Ideation phase with embedded chat UI
- [ ] #4 Drafts phase generates 8 images via Gemini and spawns on canvas
- [ ] #5 Feedback phase collects user input per page
@ -45,3 +46,17 @@ References mycro-zine repo at /home/jeffe/Github/mycro-zine for layout utilities
- [ ] #7 Complete phase with print-ready download and template save
- [ ] #8 Templates stored in localStorage for reprinting
<!-- AC:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
Starting implementation of full 5-phase MycroZineGenerator shape
Created MycroZineGeneratorShapeUtil.tsx with full 5-phase workflow (ideation, drafts, feedback, finalizing, complete)
Created MycroZineGeneratorTool.ts
Registered in Board.tsx
Build successful - no TypeScript errors
<!-- SECTION:NOTES:END -->

View File

@ -19,6 +19,8 @@ import { unfurlBookmarkUrl } from "../utils/unfurlBookmarkUrl"
import { handleInitialPageLoad } from "@/utils/handleInitialPageLoad"
import { MycrozineTemplateTool } from "@/tools/MycrozineTemplateTool"
import { MycrozineTemplateShape } from "@/shapes/MycrozineTemplateShapeUtil"
import { MycroZineGeneratorTool } from "@/tools/MycroZineGeneratorTool"
import { MycroZineGeneratorShape } from "@/shapes/MycroZineGeneratorShapeUtil"
import {
registerPropagators,
ChangePropagator,
@ -144,6 +146,7 @@ const customShapeUtils = [
EmbedShape,
SlideShape,
MycrozineTemplateShape,
MycroZineGeneratorShape,
MarkdownShape,
PromptShape,
ObsNoteShape,
@ -168,6 +171,7 @@ const customTools = [
EmbedTool,
SlideShapeTool,
MycrozineTemplateTool,
MycroZineGeneratorTool,
MarkdownTool,
PromptShapeTool,
GestureTool,

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
import { BaseBoxShapeTool } from "tldraw"
export class MycroZineGeneratorTool extends BaseBoxShapeTool {
static override id = "MycroZineGenerator"
static override initial = "idle"
override shapeType = "MycroZineGenerator"
}