fix: #3591685 Fix config schema rejecting existing inputs on Fallback components
Closes #3591685 (closed)
What this MR does
When a component's defining module or theme is removed, its instances are converted to the Fallback source, whose generated inputs config schema mapping is empty. Strict config schema validation then rejected every existing input key as unsupported (e.g. 'width' is not a supported key), even though the stored values are valid and must be preserved.
FallbackComponentInstanceInputsConfigSchemaGenerator::refineForInstance() now maps the instance's actual input keys to type: ignore, so existing configuration validates without data loss.
Testing steps
- Place a component instance that carries explicit inputs (for example
width,columns). - Uninstall the module or disable the theme that defines the component, so the instance is converted to the
Fallbacksource. - Save or validate the entity/template — it validates instead of rejecting the existing input keys.
Automated coverage: a shared FallbackComponentTreeConfigValidationTestTrait runs against all three component-tree config entities (ContentTemplateValidationTest, PageRegionValidationTest, PatternValidationTest), adding a my-cta instance and forcing it to the Fallback source; a config-translation variant in ContentTemplateTest covers the override path. Every case fails without the fix and passes with it.
Notes for reviewers
Split out from #3591642 (closed), which bundled an unrelated LogicException fix — only the fallback config-schema change lives here.
AI use disclosed per Drupal.org policy: the fix and tests were AI-assisted and reviewed against the 1.x source.