From ecc6fdc2ad820e10519e96013cd41dbd55c582a1 Mon Sep 17 00:00:00 2001 From: Gerard Oosterhof Date: Wed, 15 Jul 2026 14:11:59 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20add=20ui-inputs=20to=20the=20packages?= =?UTF-8?q?=20table=20(12=E2=86=9213,=20ui-*=20family)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reflects PR #160 (ADR-0043) landing + 0.2.0 published. Notes the fs-* / ui-* family split (service vs UI components) and that ui-inputs runs a coverage-only gate (Stryker mutates .ts; the SFC logic is inlined, so the mutation gate is a documented no-op for this package). Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_012CvXVLsRR86xmpmrxzhEQV --- CLAUDE.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 0620ad2..85c0dcb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -44,7 +44,9 @@ Consumer territories must apply per-call timeouts at instantiation OR rely on th **Precedent + residue.** The prior consumer-side obligation ("every consumer MUST wrap its own middleware bodies") is **superseded** by the default guard. kendo WR-0078 (PR [#1538](https://github.com/script-development/kendo/pull/1538), 2026-06-15) and the WR-0290 fleet wave hand-wrapped consumer middleware under the old contract; those explicit `guarded()`/try-catch wraps (and fs-form's own `guarded()`) become **redundant-but-harmless double-wraps** (inner catches, outer auto-guard never fires) — strip in a later, unhurried cleanup, not a blocker. See the war-room `deferred.md [adr] fs-packages-fs-http-async-aware-middleware-rejection-doctrine` entry and ADR-0037. -## Packages (12) +## Packages (13) + +`fs-*` are frontend **service** packages; `ui-*` (new family, ADR-0043) are headless, themeable Vue **UI components**. | Package | Vue | Description | | ----------------------- | --- | ---------------------------------------------------------------------------------------------------------------- | @@ -60,6 +62,7 @@ Consumer territories must apply per-call timeouts at instantiation OR rely on th | fs-form | Yes | One-call `useForm`: double-submit guard + `submitting` loading flag + 422 validation-error binding (guarded fs-http middleware); `keyMapper` seam for raw/camel field keys. `useValidationErrors`/`useFormSubmit` primitives still exported | | fs-translation | Yes | Type-safe reactive i18n with dot-notation keys | | fs-router | Yes | Type-safe router service factory with CRUD navigation, middleware pipeline, and custom components for Vue Router | +| ui-inputs | Yes | Headless, themeable form inputs (`FormField`/`FormLabel`/`FormError`/`TextInput`/`SingleSelect`) styled purely through `--ui-*` CSS vars; error-as-prop, `aria-*` a11y wiring. First `ui-*`-family package (ADR-0043); SFC + coverage-only gate (Stryker mutates `.ts`, so the mutation gate is a no-op for this package) | ## Conventions