Estimate: 40m · Depends on: 6.14.1, 6.14.4
Build the work-item DETAIL child-panel placeholder per the 6.14.1 design, over the 6.14.4 enforcement. On a private epic’s detail page, the CHILD PANEL (the panel that lists the epic’s children / sub-issues) shows the "this epic is not public" statement instead of a child list, for a public/non-member viewer.
- The child-panel placeholder: when the detail child-panel read (6.14.4) returns the "children-hidden" marker + zero children for a non-member, render the "this epic is not public" statement (the 6.14.1 copy, the detail-page framing — distinct from the inline tree row, same copy/tone) in the child-panel slot instead of the child list.
- No tell leak: the detail page’s epic header / summary must NOT render a child count, progress / rollup, or point total for a non-member (the 6.14.4 projection omits them) — the UI must not reconstruct them.
- Member parity: a project MEMBER on the same detail page sees the normal child list + the real rollups (the projection returns them) — driven by the marker in the payload, no special-casing.
Uses ONLY shipped components/ui/* + --el-* / [data-display-style] tokens, matching the 6.14.1 design.
Acceptance criteria
- A public/non-member viewer on a private epic’s detail page sees the "this epic is not public" statement in the CHILD PANEL (the 6.14.1 copy), NOT a child list; no child count / progress / points render in the epic header/summary for the non-member.
- The placeholder is driven by the 6.14.4 marker (no child in the payload); a project member on the same page sees the children + rollups normally.
- Only
--el-* + [data-display-style] tokens + shipped components/ui/*; matches the 6.14.1 design; AA contrast holds.
Context refs
- 6.14.1 (design asset — required), 6.14.4 (the detail child-panel read + the marker).
- the work-item detail page + its child / sub-issue panel — the surface this extends.
motir-core/components/ui/* (the EmptyState family) + app/globals.css token layers; motir-core/CLAUDE.md § colour + shape tokens.