Commit Graph

17 Commits

Author SHA1 Message Date
root 4f8c32b5ac change(ui): increase font size of disabled button from 12px to 14px 2026-07-10 23:05:00 +08:00
root b704335f6b change(ui): adjust font size of home prompt editor 2026-07-10 23:03:46 +08:00
root 6f998480bc feat(canvas): show loading state while agent history loads
Track agent history loading in the workspace and render a spinner with a
localized "loading conversation history" message in the assistant feed,
so the empty state no longer flashes before history resolves.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 22:42:41 +08:00
root 71a1b3ace4 feat(frontend): add canvas agent empty state with server-driven starters
Render a CanvasAgentEmptyState in the Agent panel that fetches localized
starter content from the new agent-starters endpoint, with local defaults
as fallback. Clicking a starter focuses the prompt composer (new focus
handle). Includes accompanying UI polish: side-nav cleanup, animated
prompt examples, and canvas panel spacing tweaks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 22:19:22 +08:00
root 2df9ae6581 feat(frontend): add brand kit management UI and project binding
Add a brand kit domain model, repository, and dedicated page/route for
managing brand kits, plus a BrandKitSelector used on the home page and
canvas workspace. Home project creation and the workspace can attach a
brand kit to a project, with new i18n strings and a side-nav entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 20:59:05 +08:00
root 3653474355 refactor(ui): add size variants to Switch and consolidate styles
Introduce sm/md/lg sizes on the Switch component driven by CSS custom
properties, move switch styling into a dedicated switch.css, and remove
the duplicated overrides from styles.css and ToolbarCustomizeDialog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 20:58:45 +08:00
root 14eaece0ac feat(canvas): add shared workspace access and controls 2026-07-10 14:47:19 +08:00
root a1503a1687 feat(canvas): frame-based layer separation UI
Render and manage the separated layers produced by the edit-elements
action as a manual-frame container with attached image and text
children.

- canvasNodeOps: frame container/child helpers, render ordering,
  auto-attach nodes to containing frames, and layer reordering
- CanvasWorkspace wires frame-aware selection, drag, resize, hide/lock,
  and layer reorder through the new ops
- CanvasPanels: expandable layer tree with rename/reorder
- designGateway.submitGeneratorTask + GeneratorTaskSubmitResponse and
  bbox/generator_name artifact metadata in the domain
- ArtboardPreview shows a working state for generating frame layers
- i18n: expandLayer / renameLayer / layerTitlePlaceholder; styles

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 12:27:00 +08:00
root 4f2825bb8e feat(ui): localize friendly agent errors and surface them as toasts
Thread a translate function through friendlyAgentErrorMessage/
friendlyProjectFailureMessage and move the hard-coded zh-CN error copy
into the i18n locale files (with a zh-CN fallback map). Generation
stream failures now report through a toast via showGenerationError in
addition to setError, so the removed inline .panel-error footer is
gone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 09:05:44 +08:00
root cbf4e21e2b feat(canvas): per-generator target size, placement and draft preservation
Persist each image-generator node's target resolution in metadata and
surface it in the selection frame and node preview. Place new generators
without overlapping existing ones, keep local draft generators when a
compressed snapshot omits them, and add a dedicated selection-frame
variant plus scale-aware preview styling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 01:46:16 +08:00
root d7300ed0f6 feat(ui): make workspace layout responsive for narrow and mobile screens
Widen the assistant panel via a shared CSS variable, overlay it below
1180px, and add mobile breakpoints for the topbar, canvas controls,
toolbar, minimap, and bottom-sheet assistant panel. Use dvh units and
safe-area insets for mobile viewports.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 14:39:00 +08:00
root b842c34fca feat(ui): add scroll-to-latest button in assistant feed
Track the assistant feed scroll position and footer height, and show a
floating button to jump back to the newest message when scrolled up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 14:33:02 +08:00
root e9cfadfb90 refactor(ui): extract NotFoundPage into its own i18n-aware module
Move the inline 404 component and its styles out of App.tsx into a
dedicated NotFoundPage module, and localize its copy via i18n keys.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 12:16:30 +08:00
root 4e98a81aae feat(ui): path-based app-router routes with 404 and project auth preview
Resolve routes from pathname (and legacy hash), add a notFound route with
a dedicated 404 page, and show a blurred workspace preview for
unauthenticated project visits. Wire up Next.js app-router entry files and
listen for popstate so history navigation updates the route.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 12:07:13 +08:00
root 222e5a0219 refactor(ui): focus the product on image generation only
Drop the disabled video/3D model tabs from the composer and home model
picker, reword storyboard/campaign copy away from motion/video toward
static campaign frames, ease the home prompt editor font sizing, and
update the deterministic fallback message to describe image generation
and editing instead of "video not yet supported".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 10:56:14 +08:00
root ef45606a24 feat(home): animated typewriter placeholder for the prompt composer
Cycle through localized example prompts with a typing/deleting animation
in the home composer placeholder, start the field empty instead of with
a default prompt, and style the home editor with larger prompt text.

Also rebrand the device-management copy from Lovart to Moteva.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 09:00:20 +08:00
root 44406b72db Initial commit: img-infinite-canvas AI design workbench MVP
Moteva-style AI design workbench replica. Home prompt creates a project;
the project page provides an infinite canvas with node drag, zoom/pan,
a design chat panel, history replay, image asset upload, and project
save/regenerate.

- Backend: go-zero, DDD layering, sqlc/pgx, optional PostgreSQL; memory
  or Redis cache; asynq job queue; MinIO/S3/R2/OSS object storage;
  sky-valley/pi agent runtime adapter.
- Frontend: Next.js App Router + Vite artifact build, TypeScript, i18n,
  shadcn/ui components, auth (OTP/Turnstile/Google/WeChat).
- Deploy: Docker Compose and k3s manifests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 23:15:37 +08:00