diff options
Diffstat (limited to 'packages/integrations/lit/server.js')
-rw-r--r-- | packages/integrations/lit/server.js | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/integrations/lit/server.js b/packages/integrations/lit/server.js index da571466f..aa91d1ea8 100644 --- a/packages/integrations/lit/server.js +++ b/packages/integrations/lit/server.js @@ -62,7 +62,11 @@ function* render(Component, attrs, slots) { yield `>`; const shadowContents = instance.renderShadow({}); if (shadowContents !== undefined) { - yield '<template shadowroot="open" shadowrootmode="open">'; + const { mode = 'open', delegatesFocus } = instance.shadowRootOptions ?? {}; + // `delegatesFocus` is intentionally allowed to coerce to boolean to + // match web platform behavior. + const delegatesfocusAttr = delegatesFocus ? ' shadowrootdelegatesfocus' : ''; + yield `<template shadowroot="${mode}" shadowrootmode="${mode}"${delegatesfocusAttr}>`; yield* shadowContents; yield '</template>'; } |