Skip to content

feat(contracts): studio settings UI with live merge preview and signing config (TASK-0065) - #79

Merged
Ediminator merged 2 commits into
mainfrom
feat/task-0065-contract-templates-studio-settings-ui
Nov 7, 2026
Merged

Ediminator merged 2 commits into
mainfrom
feat/task-0065-contract-templates-studio-settings-ui

Conversation

@Ediminator

Copy link
Copy Markdown
Owner

Task

  • ID: TASK-0065
  • Title: Contract templates studio settings UI with live merge preview and studio signing configuration
  • Epic: E6 — Contracts & e-signature
  • Contract: control/ownlight/backlog/TASK-0065-contract-templates-studio-settings-ui.md
  • Iterations: 2 (cf134c1ae7b0dc6c173c2e24501af87172eb3d47)

Summary

  • Contracts Settings Hub (/settings/contracts):
    • Added src/app/[locale]/settings/contracts/page.tsx and linked Contracts into src/components/settings/settings-nav.tsx and /settings/page.tsx, protected by requireOwner().
  • Contract Templates Management UI (src/components/settings/contract-templates-list.tsx, contract-template-modal.tsx, contracts-helpers.ts):
    • Project-type & active/archived filtering, default template badges, and quick actions (New Template, Edit, Duplicate, Soft-Archive & Restore with confirmation dialog).
    • Bilingual clause editor modal (English / Deutsch tabs with roving keyboard focus and auto-focus/scroll to invalid fields), categorized merge-token palette ({{client.*}}, {{project.*}}, {{shoot.*}}, {{package.*}}, {{studio.*}}, {{contract.*}}) with cursor-position insertion, and live merge-field preview interpolated against synthetic commission data.
  • Studio Signing Profile Card (src/components/settings/studio-signing-settings-card.tsx):
    • Configures studio signatory legal name, title, default countersignature mode (pre_signed vs explicit), and studio physical business address.
  • Server Actions (src/server/contracts/actions.ts):
    • createContractTemplateAction, updateContractTemplateAction, archiveContractTemplateAction, and updateStudioSigningSettingsAction with requireOwner(), strict Zod validation, and PII-free audit metadata.
  • Internationalization & Accessibility (messages/en.json, messages/de.json, tests/e2e/contracts-settings.spec.ts):
    • Full EN/DE parity (2,153 keys verified) and zero WCAG 2.2 AA axe-core violations across 1280px and 375px viewports in both light and dark themes.

Validation

  • L1 Quality Gate (--profile full): 13/13 steps PASS (stmts: 90.99%, branches: 85.73%, funcs: 87.71%, lines: 91.28%)
  • L2 Functional Review (validator): PASS (0 blocking)
  • L3 Security & Privacy Audit (security-privacy-auditor): PASS (0 blocking)
  • L3 UX & A11y Review (ux-a11y-reviewer): PASS (0 blocking)

…e preview (TASK-0065)

Signed-off-by: Ediminator <211899731+Ediminator@users.noreply.github.com>
…bility and UI ergonomics (TASK-0065)

Signed-off-by: Ediminator <211899731+Ediminator@users.noreply.github.com>
@Ediminator
Ediminator merged commit dcedd75 into main Nov 7, 2026
8 checks passed
@Ediminator
Ediminator deleted the feat/task-0065-contract-templates-studio-settings-ui branch November 7, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant