openpencil/apps/web
Fini 552fecc504 feat(ai): add_textarea_v0 — multi-line input element tool (43rd)
Same label-above-input shape as add_form_field_v0 but the input
grows vertically by `rows` (default 4, clamped 2..12) for notes /
bio / feedback use cases. Input frame layout is vertical with
placeholder top-aligned, matching native iOS/Material behavior.

Wired across all three paths:
- pen-core: `buildTextarea` + TextareaParams in element-builders
- pen-mcp: `handleAddTextareaV0` + tool schema in element-tool-defs-ext
- apps/web: shim + Nitro SERVER_BUILDERS entry
- elements.md: PREFER list + keyword map + 2 example lines

Tests:
- pen-mcp: 8 new cases in add-textarea-v0.test.ts (height math,
  rows clamp, required suffix, placeholder wiring, id uniqueness,
  parent_id rollback)
- Parametric builder tests auto-extended (+1 case each in 9 files):
  layout smoke, post-process idempotency, normalize preservation,
  performance, role coverage, anti-patterns clean, detectors
  clean, shim-server parity. Total delta: 2907 → 2931 passing.

Closes #47; covers part of #50 (textarea entry).
2026-04-22 06:05:00 +08:00
..
public V0.5.0 (#67) 2026-03-22 09:44:04 +08:00
server feat(ai): add_textarea_v0 — multi-line input element tool (43rd) 2026-04-22 06:05:00 +08:00
src feat(ai): add_textarea_v0 — multi-line input element tool (43rd) 2026-04-22 06:05:00 +08:00
CLAUDE.md V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
components.json V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
dev.ts V0.7.2-bugfix (#109) 2026-04-14 21:42:56 +08:00
package.json chore(release): bump to v0.7.4 2026-04-17 19:20:19 +08:00
tsconfig.json V0.7.2-bugfix (#109) 2026-04-14 21:42:56 +08:00
vite.config.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00