Ensemble Ops

Gutenberg generated controls

Preview repeatable rows and object fields from real block contracts.

This fixture gives editors and developers one page that exercises the structured fields we expect to edit without raw JSON.

Metric rows

Metric rows prove required label/value validation and optional progress/delta fields.

Validation pathspath-levelmetrics[0].label
Optional fieldssafeprogress
Runtime exportsharedWP + static

Card rows

Icon-card rows cover item arrays with required icon and title fields.

Contract field order

Required fields render first so editors can complete a row quickly.

No JSON for common arrays

Cards, features, metrics, steps, and FAQs are editable as rows.

Portable preview

The same props render in WordPress, Next, and static output.

How it works

Step rows

The generated row editor keeps multi-step customer flows readable.

01

Choose a wrapper block

Editors start with a curated public block contract.

  • Hero
  • Metrics
  • FAQ
02

Fill generated rows

Each row maps to a schema item instead of an arbitrary JSON blob.

  • Labels
  • Values
  • Descriptions
03

Publish with validation

Missing required row fields lock saving before bad content ships.

Proof

The editor shows the fields I need instead of asking for JSON.
Morgan LeeWordPress developer, Pilot Studio
The preview page makes it clear which blocks are ready for customer configuration.
Priya ShahImplementation lead, Ensemble Labs

Questions

Which generated fields are covered?

Rows for metrics, cards, steps, testimonials, FAQs, tabs, and hero actions plus object groups for CTA-like props.

What happens when a required row field is missing?

The editor surfaces the exact contract path and locks post saving until the value is restored.

Does this change runtime contracts?

No. The fixture uses the same block props that snapshots and static builds already render.

shadcn inspired

Tab rows

The shadcn showcase wrapper exercises tab row editing without exposing raw primitives.

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
Repeatable row controlsEditors can add, remove, and edit schema-backed rows.
Contractready
Rendererready
Validationready

Bento rows

Bento item rows cover richer repeated content with spans and badges.

Hero

Actions row

Hero action buttons come from repeatable row props.

actionsrows

CTA

Object field group

CTA text, href, labels, and events stay grouped.

object

FAQ

Question rows

FAQ content remains easy to scan and reorder.

qaeditor

Object fields instead of JSON

The CTA block previews primary and secondary CTA object controls with required nested text and href fields.