feat: add show mask chip for tools

This commit is contained in:
2026-10-09 14:09:51 +05:00
parent a51e224d02
commit c22c6e5574
22 changed files with 521 additions and 30 deletions
+1
View File
@@ -122,6 +122,7 @@ registry/{tools,pages}/*.ts
| `result`? | `"image" \| "text" \| "verdict" \| "files"` — что отдаёт |
| `domOnly`? | инструмент требует DOM (canvas); превью-executor запускает его напрямую |
| `output`? | mime/ext/quality для скачивания (не у всех) |
| `runMask`? | ч/б превью «что изменится»; тогл на тайле результата, в цепочку не идёт |
| `run(ctx)` | единственный метод: `ctx` → `ToolResult` |
`Page` (записи в `registry/pages/<group>.ts`):
+10 -13
View File
@@ -131,24 +131,21 @@
отдельное решение о формате.
- [ ] **Идея 12. HARD-серия** (glitch, barcode, signature-extract,
handwritten-digital).
- [ ] **Идея 14. Отображение маски для инструментов (`runMask`)** — придумать и
реализовать процесс показа маски результата. **Контекст:** удалённый UI-v1
умел показывать ч/б превью-маску «что будет вырезано» отдельным полем; при
переходе на единый `run(ctx)` этого поля не осталось — executor и
schema-превью зовут `run()` напрямую, маска не возвращается. **Идея 1:**
дать каждому `run` возможность вернуть (или инструмент — объявить)
`runMask` — ч/б изображение маски изменений либо иной подход (отдельное
поле `mask` + функция маски, второй результат, overlay). Оценка — на
усмотрение при проработке (S/M). Пока живём без неё. **Идея 2:** каждый
`run` возвращает два изображения — для отображения (показывает маску или
сам результат) и для передачи в следующий инструмент (всегда результат).
Оценка — на усмотрение при проработке (S/M). Пока живём без неё. Первые
кандидаты на маску: `remove-color-from-png`, `remove-background-png`.
## UI и качество
- [ ] split to parts - посмотреть вариант с toggle component - может будет
удобнее чем sectioned buttons
- [ ] чип «Маска» (`resultCard.maskToggle` на тайлах результата) — попробовать
заменить на Toggle-компонент, когда тот будет доделан (см. пункт про
визуал toggle в «Pipeline»): возможно, будет удобнее и понятнее
- [ ] маска подгружается с задержкой при нажатии на чип «Маска» — сейчас
`runMask` считается только для включённых шагов (эффект в
`SchemaToolView.svelte`). Альтернатива: считать маску всегда вместе с
результатом, по нажатию просто показывать другую картинку. Оценить
достоинства/недостатки: отклик мгновенный, но лишний проход по пикселям на
каждый ран каждого шага с `runMask` (на больших изображениях — заметная
цена за функцию, которую могут не открыть)
- [ ] неудобно настраивать ползунками, некоторые инструменты удобнее настроить
через drag-n-drop. звучит сложно, но надо придумать процесс
- [ ] fav: текущий ui слишком дерганный — при клике на звёздочку элементы