Dialog wrapper
Modal content remains contract-driven while the primitive stays internal.
shadcn as implementation detail
Editors choose product-level Ensemble blocks; the runtime applies shadcn-styled texture where the block contract supports it.
shadcn inspired
The runtime coverage manifest classifies raw shadcn primitives as internal or non-public unless wrapped by a contract.
Modal content remains contract-driven while the primitive stays internal.
Modal content remains contract-driven while the primitive stays internal.
Side panels can be previewed without exposing raw shadcn/sheet.
Side panels can be previewed without exposing raw shadcn/sheet.
Mobile disclosure surfaces keep placement and copy declarative.
Mobile disclosure surfaces keep placement and copy declarative.
Confirmation content is visible to QA without raw primitive props.
Confirmation content is visible to QA without raw primitive props.
Contextual details render through the curated showcase surface.
Contextual details render through the curated showcase surface.
Short help text is represented as accessible wrapper evidence.
Short help text is represented as accessible wrapper evidence.
Menu actions stay as simple CMS-authored items.
Menu actions stay as simple CMS-authored items.
Grouped disclosure content renders through a semantic summary surface.
ContractContent remains declarative.
RuntimeThe shared wrapper owns the primitive behavior.
Single-section disclosure behavior stays owned by the runtime.
ContractContent remains declarative.
RuntimeThe shared wrapper owns the primitive behavior.
Sequential cards are represented as bounded wrapper previews.
Transient feedback can be themed without exposing primitive props.
Notification texture remains an internal implementation detail.
No-data states use contract-authored copy and runtime styling.
Loading placeholders are theme-aware but not CMS primitives.
Inline status messages stay themeable and contract-driven.
Media boxes preserve stable responsive geometry.
Grouped actions remain a wrapper concern.
Chart texture is previewed without exposing chart internals.
Command search stays a curated operator surface.
Contextual actions render as semantic menus.
Operator rows stay contract-backed.
| Layer | Status |
|---|---|
| Contract | wrapped |
| Runtime | wrapped |
| QA | wrapped |
RTL/LTR treatment is validated as implementation evidence.
Supplemental details stay in a bounded preview.
List item anatomy remains consistent across themes.
Keyboard affordances stay accessible and themeable.
Menu navigation stays semantic.
Native selects route through the CMS form-template pattern.
Navigation menus remain curated site chrome behavior.
Split panes are represented without raw primitive props.
Overflow content gets bounded responsive treatment.
Application sidebars stay a public layout wrapper.
Loading feedback is visible through stable status evidence.
Simple tabular data stays contract-first.
| Layer | Status |
|---|---|
| Contract | wrapped |
| Runtime | wrapped |
| QA | wrapped |
Bento blocks prove shadcn-like structure can stay contract-first.
Card
The CMS captures title, copy, span, and badges instead of raw component props.
Metric
Editors can reason in blocks, not UI library internals.
Theme
Color, font, scale, and texture still flow from the theme object.
No raw shadcn primitive is public by default.
Public blocks map to implementation components.
Component-library detail stays behind explicit Ensemble contracts.