feat: #3586210: Improve form #prefix/#suffix to be extracted into named slots.

Stripping #theme_wrappers while leaving #prefix/#suffix in the default slot means the frontend's

wrapper ends up nesting whatever markup those properties carried. In the openid_connect case that markup is a whole with its own form_id hidden input, which the HTML5 parser flattens onto the outer form - causing login submits to silently target the wrong form handler.

Extract top-level #prefix and #suffix before rendering the default slot, and expose each as a named slot on the CustomElement, so frontend consumers can render them outside the wrapper (matching standard Drupal theme semantics). Render arrays go through setSlotFromRenderArray() for cacheability bubbling; scalar / MarkupInterface values use setSlot() directly.

Kernel test coverage added to CustomElementsFormTest.

Closes #3586210

Merge request reports

Loading