Skip to content

feat: template picker section in Art Direction pane (UI template selection)#203

Merged
ShotaroKataoka merged 5 commits into
mainfrom
feat/issue165-template-picker
Jul 15, 2026
Merged

feat: template picker section in Art Direction pane (UI template selection)#203
ShotaroKataoka merged 5 commits into
mainfrom
feat/issue165-template-picker

Conversation

@ShotaroKataoka

Copy link
Copy Markdown
Contributor

Summary

Implements #165 — explicit template selection from the UI, alongside the existing Change Style flow.

  • Adds a persistent, header-like template picker section at the top of the Art Direction pane (non-sticky, shares the scroll container with the style gallery; both sections keep independent display states)
  • Clicking a template card inserts a chat message (same mechanism as style selection) — the agent remains the only actor that confirms a template by writing deck.json
  • The confirmed template is exposed as a new template field on the deck detail API (cloud Lambda + local route) and indicated with a check icon, accent border, and an "In use: {name}" header label
  • Card order stays stable (user → builtin); no reordering on confirmation
  • i18n: new templatePicker namespace (en/ja)

Closes #165

Testing

  • web-ui: vitest 45/45 passed (7 new component tests), tsc --noEmit, eslint --quiet, build:cloud OK, en/ja key parity OK
  • Python: make lint / make test (292 passed)
  • Manually verified on a deployed environment (ap-northeast-1): unconfirmed → select → chat send → agent confirms → indicator updates via existing deck polling; template change moves the indicator without reordering cards

Notes

  • defsUrl points to compose/defs_<epoch>.json (animation defs), not deck.json — hence the new API field instead of reusing defsUrl

…ection to Art Direction pane

Add a persistent, header-like template picker above the style gallery
(shared scroll container, independent display states). Clicking a card
inserts a chat message — the agent remains the only actor that confirms
a template (deck.json). Confirmed template is shown with an accent
border, read via no-store polling of defsUrl (the stabilised URL cache
never changes for deck.json, so prop-based updates cannot work).

Closes #165 (UI selection for custom templates, like Change Style)

SPEC: 20260715-1252_issue165-template-picker-art-direction
Progress: implementation + tests complete (44/44), build:cloud OK
Next: deploy to ap-northeast-1 and manual verification
…plate indication

1px teal border at 60% opacity was too subtle on the dark UI. Add ring +
tinted background, a teal check icon + teal name on the current card,
and a labelled header ('In use: {name}') instead of a bare muted name.

SPEC: 20260715-1252_issue165-template-picker-art-direction
…k API, not defsUrl

defsUrl points to compose/defs_<epoch>.json (slide animation defs), NOT
deck.json — the useCurrentTemplate hook always saw no 'template' field,
so the current-template indicator never appeared.

Fix: expose 'template' on the deck detail response (cloud Lambda reads
decks/{id}/deck.json from S3; local route already parses deck.json) and
pass it down as a prop. Updates now flow through the existing useWorkspace
polling + snapshot compare — the no-store polling hook is removed.

SPEC: 20260715-1252_issue165-template-picker-art-direction
…rd order stable

Current-first reordering broke spatial memory when the template changed.
Keep user → builtin order; the check icon, accent border, and header
label indicate the current template instead.

SPEC: 20260715-1252_issue165-template-picker-art-direction
@ShotaroKataoka ShotaroKataoka added blog:skip ブログ対象外 enhancement New feature or request labels Jul 15, 2026
…rts and stale eslint-disables in SlideCarousel

Pre-existing warnings surfaced as CI annotations on the PR diff:
unused Loader2/CloudOnly/LocalOnly/useAuth imports, unused 'auth' var,
and four unused no-console eslint-disable directives.

SPEC: 20260715-1252_issue165-template-picker-art-direction
@ShotaroKataoka ShotaroKataoka merged commit 23b282a into main Jul 15, 2026
12 checks passed
@ShotaroKataoka ShotaroKataoka deleted the feat/issue165-template-picker branch July 15, 2026 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blog:skip ブログ対象外 enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Art DirectionのChange StyleのようにUIからカスタムテンプレートを選択できるようにしてほしい

1 participant