Ensemble Ops

shadcn as implementation detail

Curated blocks can feel like shadcn without making every primitive public CMS content.

Editors choose product-level Ensemble blocks; the runtime applies shadcn-styled texture where the block contract supports it.

shadcn inspired

Internal primitives, public wrappers

The runtime coverage manifest classifies raw shadcn primitives as internal or non-public unless wrapped by a contract.

shadcn/accordionshadcn/alertshadcn/alert-dialogshadcn/aspect-ratioshadcn/avatarshadcn/badgeshadcn/breadcrumbshadcn/buttonshadcn/button-groupshadcn/calendarshadcn/cardshadcn/carouselshadcn/chartshadcn/checkboxshadcn/collapsibleshadcn/comboboxshadcn/commandshadcn/context-menushadcn/data-tableshadcn/date-pickershadcn/dialogshadcn/directionshadcn/drawershadcn/dropdown-menushadcn/emptyshadcn/fieldshadcn/hover-cardshadcn/inputshadcn/input-groupshadcn/input-otpshadcn/itemshadcn/kbdshadcn/labelshadcn/menubarshadcn/native-selectshadcn/navigation-menushadcn/paginationshadcn/popovershadcn/progressshadcn/radio-groupshadcn/resizableshadcn/scroll-areashadcn/selectshadcn/separatorshadcn/sheetshadcn/sidebarshadcn/skeletonshadcn/slidershadcn/sonnershadcn/spinnershadcn/switchshadcn/tableshadcn/tabsshadcn/textareashadcn/toastshadcn/toggleshadcn/toggle-groupshadcn/tooltipshadcn/typography
Tabs-style controlRendered by the wrapper showcase instead of a raw shadcn/tabs CMS block.
Contractready
Rendererready
Validationready
shadcn/dialog

Dialog wrapper

Modal content remains contract-driven while the primitive stays internal.

shadcn/sheet

Sheet wrapper

Side panels can be previewed without exposing raw shadcn/sheet.

shadcn/drawer

Drawer wrapper

Mobile disclosure surfaces keep placement and copy declarative.

shadcn/alert-dialog

Alert dialog wrapper

Confirmation content is visible to QA without raw primitive props.

shadcn/popover

Popover wrapper

Contextual details render through the curated showcase surface.

shadcn/tooltip

Tooltip wrapper

Short help text is represented as accessible wrapper evidence.

shadcn/dropdown-menu

Dropdown menu wrapper

Menu actions stay as simple CMS-authored items.

shadcn/accordion

Accordion wrapper

Grouped disclosure content renders through a semantic summary surface.

Toggle Accordion wrapper

ContractContent remains declarative.

RuntimeThe shared wrapper owns the primitive behavior.

shadcn/collapsible

Collapsible wrapper

Single-section disclosure behavior stays owned by the runtime.

Toggle Collapsible wrapper

ContractContent remains declarative.

RuntimeThe shared wrapper owns the primitive behavior.

shadcn/toast

Toast wrapper

Transient feedback can be themed without exposing primitive props.

Toast wrapperTransient feedback can be themed without exposing primitive props.
shadcn/sonner

Sonner wrapper

Notification texture remains an internal implementation detail.

Sonner wrapperNotification texture remains an internal implementation detail.
shadcn/empty

Empty state wrapper

No-data states use contract-authored copy and runtime styling.

Empty state wrapperNo-data states use contract-authored copy and runtime styling.
shadcn/skeleton

Skeleton wrapper

Loading placeholders are theme-aware but not CMS primitives.

shadcn/alert

Alert wrapper

Inline status messages stay themeable and contract-driven.

shadcn/aspect-ratio

Aspect ratio wrapper

Media boxes preserve stable responsive geometry.

shadcn/button-group

Button group wrapper

Grouped actions remain a wrapper concern.

shadcn/chart

Chart wrapper

Chart texture is previewed without exposing chart internals.

shadcn/command

Command wrapper

Command search stays a curated operator surface.

ContractRuntimeQA
shadcn/context-menu

Context menu wrapper

Contextual actions render as semantic menus.

shadcn/data-table

Data table wrapper

Operator rows stay contract-backed.

LayerStatus
Contractwrapped
Runtimewrapped
QAwrapped
shadcn/direction

Direction wrapper

RTL/LTR treatment is validated as implementation evidence.

RTLLTR safe
shadcn/hover-card

Hover card wrapper

Supplemental details stay in a bounded preview.

shadcn/item

Item wrapper

List item anatomy remains consistent across themes.

  • Contract
  • Runtime
  • QA
shadcn/kbd

Keyboard hint wrapper

Keyboard affordances stay accessible and themeable.

CmdKKeyboard hint wrapper
shadcn/menubar

Menubar wrapper

Menu navigation stays semantic.

shadcn/native-select

Native select wrapper

Native selects route through the CMS form-template pattern.

shadcn/navigation-menu

Navigation menu wrapper

Navigation menus remain curated site chrome behavior.

shadcn/resizable

Resizable wrapper

Split panes are represented without raw primitive props.

PrimaryDetail
shadcn/scroll-area

Scroll area wrapper

Overflow content gets bounded responsive treatment.

ContractRuntimeQAContractRuntimeQA
shadcn/sidebar

Sidebar wrapper

Application sidebars stay a public layout wrapper.

shadcn/spinner

Spinner wrapper

Loading feedback is visible through stable status evidence.

Spinner wrapper
shadcn/table

Table wrapper

Simple tabular data stays contract-first.

LayerStatus
Contractwrapped
Runtimewrapped
QAwrapped

Wrapper-ready layouts

Bento blocks prove shadcn-like structure can stay contract-first.

Card

Product-level card

The CMS captures title, copy, span, and badges instead of raw component props.

CMS publicWrapper

Metric

Business readable

Editors can reason in blocks, not UI library internals.

Accessible

Theme

Style from JSON

Color, font, scale, and texture still flow from the theme object.

Themeable

Mixed shadcn-styled Ensemble blocks

CMS primitives0 raw

No raw shadcn primitive is public by default.

WrappersCurated

Public blocks map to implementation components.

Keep CMS authoring simple

Component-library detail stays behind explicit Ensemble contracts.