| 42-wallpapers-social-format-conversion-voice |
05 |
ui |
| react |
| shadcn |
| wallpaper |
| social-post |
| content-studio |
| tabs |
| select |
| collapsible |
| progress |
| sse |
|
| phase |
plan |
provides |
| 42-wallpapers-social-format-conversion-voice |
02 |
renderWallpaper + PLATFORM_DIMENSIONS in wallpaper-renderer.ts; renderSocialPost + PLATFORM_CHAR_LIMITS in social-renderer.ts; WallpaperBundle, AppIconBundle, SocialPostBundle types |
|
| phase |
provides |
| 41-diagrams-icons-theme-engine |
ContentStudio.tsx with Diagrams/Icons/Themes tabs; useContentJob hook; DiagramGeneratePanel pattern; shadcn component set |
|
|
| WallpaperGeneratePanel component with 12-platform Select (grouped Desktop/Mobile/Social/App), PLATFORM_DIMENSIONS constant, SSE job tracking |
| WallpaperPreview component handling both wallpaper-bundle (Download PNG) and app-icon-bundle (multi-size grid) |
| SocialPostPanel component with 4-platform Select, live character count (text-destructive over limit), PLATFORM_CHAR_LIMITS constant |
| SocialPostResult component with copy button, hashtag chips with inline CheckCheck feedback, numbered Collapsible carousel slides |
| ContentStudio.tsx extended with Wallpapers and Social tabs (5 tabs total) |
|
| 42-06 (Convert tab to be added to ContentStudio following same pattern) |
|
| added |
patterns |
|
|
| SelectGroup + SelectLabel for grouped platform options in shadcn Select |
| Collapsible per-slide pattern for Instagram carousel with open/close state per index |
| Inline chip copy-feedback: setState(tag) for 1.5s then null — no toast required |
| 2-second copy-confirmed state for primary Copy button (setCopied + setTimeout) |
|
|
| created |
modified |
| ui/src/components/WallpaperGeneratePanel.tsx |
| ui/src/components/WallpaperPreview.tsx |
| ui/src/components/SocialPostPanel.tsx |
| ui/src/components/SocialPostResult.tsx |
|
| ui/src/pages/ContentStudio.tsx |
|
|
| WallpaperBundle and AppIconBundle types defined locally in WallpaperGeneratePanel.tsx — no need for content-bundles.ts addition since these are consumed only by Wallpaper components |
| SocialPostBundle type defined locally in SocialPostPanel.tsx — same reasoning |
| ContentStudio.tsx created from scratch in this worktree (file exists on phase-42 base branch but not yet in worktree HEAD) — copied base then extended with Wallpapers + Social tabs |
|
| Wallpaper/social panel pattern: same Card structure as DiagramGeneratePanel — textarea, select, button with spinner, progress bar, result or empty state |
| Hashtag chip copy pattern: copiedTag state tracks which chip is showing CheckCheck, auto-reverts after 1.5s |
| Carousel collapsible pattern: openSlides Record<number, boolean> with toggleSlide helper |
|
| WALL-01 |
| WALL-02 |
| WALL-03 |
| WALL-04 |
| SOCIAL-01 |
| SOCIAL-02 |
| SOCIAL-03 |
|
3min |
2026-04-04 |