2.4 KiB
2.4 KiB
V13-FE-005 — Existing Component Direct Vendor Restore
Source / Assumption / Unknown / Decision Required
- Source:
frontend/src/shared/ui/components/, existing PrimeVue/AG Grid adapters, and current component contract tests. - Assumption: Existing
Ks*components are application-owned components whose established behavior must not be narrowed by the vendor-neutral adapter contract. - Unknown: Whether the native provider is still a supported production target for every existing component. This must not be inferred from the presence of
VITE_UI_ADAPTER. - Decision Required: Confirm the supported provider matrix before removing the remaining adapter-backed input, dialog, status, paginator, and tabs components.
Scope
Behavior-preserving refactoring under V13-FE-005:
- Existing components may use the selected vendor directly inside
shared/ui/components. - Feature code remains vendor-import free.
- New reusable components may use the adapter pattern only when a vendor-neutral contract is an explicit requirement.
- No policy, API, database, migration, or production automation change.
Implemented
KsButton.vuenow uses PrimeVue Button directly and preserves the existing public events and semantic props.KsDataGrid.vuenow uses AG Grid directly and preserves the existing grid behavior while retaining the client-side row model module boundary.- Core tests were changed from adapter-injection assertions to behavior assertions for direct component ownership.
Remaining
- Existing
shared/ui/components/*.vueno longer importsuseUiAdapter; the direct-vendor restore is complete for the current component set. - Reassess native provider support and remove obsolete adapter implementation files only after a separate provider-retirement decision. The adapter remains available for new vendor-neutral components.
Evidence
- Targeted tests: shared component tests — 25/25 PASS.
- Full frontend tests:
pnpm test -- --run— 63 files / 168 tests PASS. - Typecheck:
pnpm typecheck— PASS. - Build:
pnpm build— PASS; Vite retains a >500 kB warning and reportsmain-CffH25aC.js587.58 kB / gzip 163.16 kB. - Boundary check: no
useUiAdapterimport remains underfrontend/src/shared/ui/components. - Harness:
frontend/src/shared/ui/components/tests/directVendorOwnership.contract.spec.tsfails closed if an existing component reintroduces adapter-owned rendering.