WORK-347
ID:WORK-347Status:draft

Explicit bento-cell authoring

Make {% bento-cell %} a first-class authoring path for full per-tile control (the dashboard use case), alongside the heading sugar. Today the bento-cell tag is registered but convertHeadings would swallow a hand-authored cell into the preceding heading's content, so explicit authoring doesn't actually work.

Priority:mediumComplexity:moderateMilestone:v0.19.0Source:SPEC-085
changeset-release/main View source

Criteria completion

Criteria completion: 0 of 5 (0%) checked; tracking started on Jun 5, no incremental history yet0%25%50%75%100%Jun 5Jun 15

Tracking started Jun 5 — check back for trends.

Branches 3
History 3
  1. e1084e4
    Created (draft)by github-actions[bot]
  2. ae814c3
    Content editedby Claude
    plan: consolidate the bento redesign into SPEC-085 + WORK-345/347/348
  3. 9e6d3e8
    Content editedby Claude
    plan: expand bento into a composition substrate (SPEC-085)

Acceptance Criteria

  • A bento whose children include {% bento-cell %} tags uses them directly as cells, short-circuiting heading conversion (no mixing within one grid — out of scope by decision).
  • An explicit cell accepts cols / rows (precise per-axis grid spans) and/or size (preset), plus media-position, href, and a ----split media zone (the SPEC-085 / WORK-345 contract). The legacy span attribute is removed (subsumed by cols).
  • When no explicit cells are present, heading sugar behaves as defined in WORK-348.
  • A grid that mixes headings and explicit cells is handled deterministically (explicit cells win / headings ignored) and documented; it is not a supported authoring pattern.
  • Tests cover: an all-explicit grid (incl. cols/rows), an all-heading grid, and the mixed-input fallback.

Approach

In bento's processChildren / transform, detect explicit bento-cell tag nodes up front; if any exist, bypass convertHeadings and pass the cells through. Otherwise run heading conversion. Keep the cell transform identical for both paths so structure is uniform; cols/rows/size resolve to grid spans per WORK-348.

References

  • plugins/marketing/src/tags/bento.ts (convertHeadings, bento transform), plugins/marketing/src/index.ts (bento-cell registration)
  • Substrate SPEC-085; cell zones WORK-345; sizing WORK-348