refactor(soma): route FieldProvider through field/internals barrel + register DRP view sub-parts (audit Round 3 §3 #23 + P4 follow-up)
Two related housekeeping items in one commit: **1. FieldProvider via barrel (audit Round 3 §3 #23)** 37 consumer files across soma imported `FieldProvider` from the deep path `'../field/field-provider.svelte'`, mirroring the same pattern that motivated `internals.ts` indirection on the 5 pickers earlier. Adds `src/uix/soma/components/field/internals.ts` re-exporting `FieldProvider` and exposes it from the barrel `exports.ts`. The 37 imports become the canonical `from '../field'`. Consistency only — no behavioral change. **2. DateRangePicker view sub-parts (P4 follow-up)** The MonthView/YearView soma parts created in commit `e93c0c73` stamp internal layout data-attrs (`-header`, `-prev`, `-heading`, `-next`, `-grid`, `-cell`) that weren't declared in the morfo, surfacing as 12 hardcoded-data-attr violations once the contract suite caught up. Declares the 12 sub-parts in the morfo with the canonical kebab prefix (`month-view-*`, `year-view-*`). Each entry minimal (data: [], aria: []) except `*-prev` / `*-next` which stamp `type='button'` and `*-cell` which surfaces the `data-range-{start,end,in-range}` classification states used by the eidos range tinting CSS. Test result: 2393/2399 passing — back to the canonical 6 fails (Words + cookie infra). The 13 transient regressions are closed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>active-uix
parent
3a23fa239b
commit
bf7e116af9
@ -0,0 +1,15 @@
|
||||
// Indirection layer for the public barrel.
|
||||
//
|
||||
// Soma's `exports.ts` cannot import directly from `*provider.svelte.ts`
|
||||
// (contract: "public barrel must not re-export provider implementation
|
||||
// filenames"). This file is the canonical re-export point — consumers
|
||||
// reach it through `$soma/components/field` via `exports.ts`.
|
||||
//
|
||||
// `FieldProvider` is consumed across the soma codebase (37+ sites:
|
||||
// every form-control provider that integrates with Field's labelId /
|
||||
// description / invalid state). They now import via the barrel:
|
||||
//
|
||||
// import { FieldProvider } from '../field';
|
||||
//
|
||||
// instead of the deep path that bypassed the indirection.
|
||||
export { FieldProvider } from './field-provider.svelte';
|
||||
Loading…
Reference in new issue