Only create a shadow root if editor.useShadowDOM config setting is true

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Correctly handle focus when shadow DOM is disabled

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
:lipstick:
Make blur event on text editor element work with shadow DOM disabled

When the shadow DOM is enabled, this happens organically because the
focus is abstracted across the shadow boundary. Without that abstraction
boundary, we need to pretend that a blur of the hidden input is actually
a blur of the entire editor.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Fix corner cases related to lifecycle state of EditorComponent on events

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Focus the root TextEditorElement in spec instead of component node

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Test editor focus/blur handling with shadow DOM enabled/disabled

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Enable editor.useShadowDOM in all specs
Add config schema for editor.useShadowDOM

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>