Background
Early versions of Experience Builder stored the source type, expression and value for each component prop in Single Directory and Code Components in the component inputs.
With the implementation of #3523841: Versioned Component config entities (SDC, JS: prop_field_definitions, block: default_setting, all: slots for fallback) + component instances refer to versions ⇒ less data to store per XB field row much of this information was moved into the Component configuration entity and instead each component kept track of a component_version pointing to this information.
This meant that the amount of data stored in the input column for each component was dramatically reduced.
For example the two-column component
Before - uncollapsed
'inputs' => [
'width' => [
'sourceType' => 'static:field_item:list_integer',
'value' => 50,
'expression' => 'ℹ︎list_integer␟value',
'sourceTypeSettings' => [
'storage' => [
'allowed_values' => [
[
'value' => 25,
'label' => '25',
],
[
'value' => 33,
'label' => '33',
],
[
'value' => 50,
'label' => '50',
],
[
'value' => 66,
'label' => '66',
],
[
'value' => 75,
'label' => '75',
],
],
],
],
]
],
After - collapsed
'inputs' => [
'width' => 50,
]
In order to minimize test code changes and disruption, support for both uncollapsed and collapsed input were retained.
What has changed
From #3538487: Don't allow passing uncollapsed inputs if using default expression component input that matches the default static prop source (what is stored in the version in the Component config entity) must be stored as a collapsed value. Using an uncollapsed value in default content, config entities (Patterns, Content Templates, Page Region, Field Default values) and content entities will trigger a validation error.
Experience Builder will automatically collapse the input for configuration entities and trigger a deprecation error. Update any default configuration or content to use the collapsed form to avoid these deprecation errors.