XB week 26: ComponentSource plugins

Published on 21 February, 2025

A strong start of the week by Harumi “hooroomoo” Jang and Jesse Baker, to remove the “insert” panel appearing over the left sidebar, in favor of the components being listed inside the left sidebar:

Experience Builder’s (XB) component library now appears in the left sidebar — making them easier to reach. (Previously, there was a blue “plus” button that triggered a popover covering the left sidebar.)
Issue #3482394, image by Harumi.

The XB UI is once again leaping ahead of the back end: the UI for saving compositions of components as “sections” landed, well ahead of the necessary config entity, let alone the needed HTTP API for actually saving those! đŸ‘

Blocks

After a lot of iteration, Dave “longwave” Long, Felix “f.mazeikis” Mazeikis, Ted “tedbow” Bowman, Lee “larowlan” Rowlands and I landed the initial MR to add Blocks support to XB!

Until now, XB was tightly coupled to Single Directory Components (SDC). That’s no longer the case, thanks to the introduction of:

  • ComponentSource plugins: the existing SDC support was refactored into an sdc component source, the new Block support lives in a block component source
  • XB’s Component config entities now have a source property, referring to one of those source plugins

There’s still lots of loose ends — from the pragmatic low-level choice of using hook_block_alter() to automatically create Component config entities, to the rather limiting facts that block plugins’ settings forms do not yet work (the default settings are always used). But the basic infrastructure is there!

This was a huge refactor: 35 files, +1861, −878 is no small diffstat đŸ˜…

Grab bag

Week 26 was November 4–November 10, 2024.