MOTIR-435Done
6.14.5 Tree UI — a private epic expanded by a public viewer shows the "this epic is not public" placeholder instead of children
Estimate: 45m · Depends on: 6.14.1, 6.14.4
Build the work-item TREE placeholder per the 6.14.1 design, over the 6.14.4 enforcement. When a public/non-member viewer EXPANDS a private epic in the tree, the children rows are replaced by the "this epic is not public" placeholder.
- The private epic row: render the epic title + kind icon (
IssueTypeIcon) + the "private" badge (Pilltone) per the design; render NO child count / progress / point total (the 6.14.4 projection already omits them, so there is nothing to display — the UI must NOT reconstruct or estimate them). - The expand placeholder: on expand, because the projection returned the "children-hidden" marker and zero children, render the inline "this epic is not public" placeholder (an
EmptyState-family panel) at the child-indent level instead of a child list — the exact copy from 6.14.1. The viewer can still expand/collapse the row; it just never reveals children. - Member parity: a project MEMBER expanding the SAME epic sees the children normally (the 6.14.4 projection returns them for a member) — the placeholder is driven entirely by the marker in the payload, so the member path renders children with no special-casing.
Uses ONLY shipped components/ui/* + --el-* / [data-display-style] tokens (no Tier-0 --color-*, no raw spacing/radius), matching the 6.14.1 design.
Acceptance criteria
- A public/non-member viewer expanding a private epic in the tree sees the "this epic is not public" placeholder (the 6.14.1 copy) at the child indent, NOT a child list; the epic row shows title + "private" badge and NO count / progress / points.
- The placeholder is driven by the 6.14.4 "children-hidden" marker (no child in the payload); a project member expanding the same epic sees the children normally.
- Only
--el-*+[data-display-style]tokens + shippedcomponents/ui/*; matches the 6.14.1 design; AA contrast holds for the badge + placeholder.
Context refs
- 6.14.1 (design asset — required), 6.14.4 (the projection + the "children-hidden" marker the row reads).
- the work-item tree component + the epic-row / expand rendering — the surface this extends.
motir-core/components/ui/*(IssueTypeIcon,Pill, theEmptyStatefamily) +app/globals.csstoken layers;motir-core/CLAUDE.md§ colour + shape tokens.