Summary
On auto-generated node detail pages (default layout areas), every content property is rendered in a fixed ⅓-page-width grid cell on desktop, regardless of content length. Long free-text values — e.g. extracted values from Geschäftsberichten — are clipped/cramped and only become readable after clicking the field into edit mode.
Reproduce
- Open any data node whose content type has free-text string properties, e.g.
https://atioz.meshweaver.cloud/AgenticPension/Jahresbericht/JB-2024-SGPK
(or any AgenticPension/Erhebung/* node — the Wert (roh) field holds the extracted content).
- Observe: each field sits in a narrow cell (3 per row on LG breakpoints); long values are not readable.
- Click a field → it toggles to the edit control → only now the value is visible.
Root cause
- Hardcoded grid sizing — every regular property gets the same responsive cell, independent of its type:
src/MeshWeaver.Layout/Domain/EditLayoutArea.cs → BuildPropertyForm:
propsGrid.WithView(control, s => s.WithXs(12).WithMd(6).WithLg(4));
src/MeshWeaver.Graph/MeshNodePropertyEditor.cs:69 — same pattern in the second property-grid renderer.
- No wrapping on read-only values —
EditorExtensions.BuildReadonlyControl renders the generic string label without white-space/word-break styling, so long values clip instead of wrapping.
Only properties detected as markdown (UiControlAttribute.SeparateEditView == true, e.g. [Markdown]) escape the grid and render full-width — type authors cannot fix this per-type for plain string values without misusing [Markdown] semantics.
Proposed fix (drafted on my-working-branch-rs, pending review)
EditLayoutArea: new WithPropertyCellSizing(this LayoutGridItemSkin, PropertyInfo) —
plain free-text string properties (no [Dimension], no [MeshNode], no fixed Options) span the full row (Xs(12)); structured values (numbers, dates, bools, enums, dimension/mesh-node references — all short labels) keep the compact Xs(12).Md(6).Lg(4) cells.
- Apply the same sizing in
MeshNodePropertyEditor.BuildPropertyEditors.
EditorExtensions.BuildReadonlyControl: add white-space: pre-wrap; word-break: break-word; to the generic read-only label so long values wrap instead of clipping.
Verification (already run against the draft)
MeshWeaver.Layout + MeshWeaver.Graph build clean (0 errors)
MeshWeaver.Layout.Test: 185/185 passed
MeshWeaver.Graph.Test (Overview/InlineEditing): 15/15 passed
Acceptance criteria
Affected scope
All node detail/overview pages using the default layout areas (AddDefaultLayoutAreas → BuildPropertyOverview/BuildContentView) — observed on atioz (AgenticPension/Jahresbericht/*, Erhebung/*, Dokument/*, Datenpunkt/*), but platform-wide by construction.
🤖 Generated with Claude Code
Summary
On auto-generated node detail pages (default layout areas), every content property is rendered in a fixed ⅓-page-width grid cell on desktop, regardless of content length. Long free-text values — e.g. extracted values from Geschäftsberichten — are clipped/cramped and only become readable after clicking the field into edit mode.
Reproduce
https://atioz.meshweaver.cloud/AgenticPension/Jahresbericht/JB-2024-SGPK(or any
AgenticPension/Erhebung/*node — theWert (roh)field holds the extracted content).Root cause
src/MeshWeaver.Layout/Domain/EditLayoutArea.cs→BuildPropertyForm:propsGrid.WithView(control, s => s.WithXs(12).WithMd(6).WithLg(4));src/MeshWeaver.Graph/MeshNodePropertyEditor.cs:69— same pattern in the second property-grid renderer.EditorExtensions.BuildReadonlyControlrenders the generic string label withoutwhite-space/word-breakstyling, so long values clip instead of wrapping.Only properties detected as markdown (
UiControlAttribute.SeparateEditView == true, e.g.[Markdown]) escape the grid and render full-width — type authors cannot fix this per-type for plain string values without misusing[Markdown]semantics.Proposed fix (drafted on
my-working-branch-rs, pending review)EditLayoutArea: newWithPropertyCellSizing(this LayoutGridItemSkin, PropertyInfo)—plain free-text string properties (no
[Dimension], no[MeshNode], no fixedOptions) span the full row (Xs(12)); structured values (numbers, dates, bools, enums, dimension/mesh-node references — all short labels) keep the compactXs(12).Md(6).Lg(4)cells.MeshNodePropertyEditor.BuildPropertyEditors.EditorExtensions.BuildReadonlyControl: addwhite-space: pre-wrap; word-break: break-word;to the generic read-only label so long values wrap instead of clipping.Verification (already run against the draft)
MeshWeaver.Layout+MeshWeaver.Graphbuild clean (0 errors)MeshWeaver.Layout.Test: 185/185 passedMeshWeaver.Graph.Test(Overview/InlineEditing): 15/15 passedAcceptance criteria
[Markdown]-attributed properties keep their current full-width rendered sections.Affected scope
All node detail/overview pages using the default layout areas (
AddDefaultLayoutAreas→BuildPropertyOverview/BuildContentView) — observed on atioz (AgenticPension/Jahresbericht/*,Erhebung/*,Dokument/*,Datenpunkt/*), but platform-wide by construction.🤖 Generated with Claude Code