diff --git a/packages/dialog/dialog-wrapper.md b/packages/dialog/dialog-wrapper.md
index 49e72b03b4..eaf63e576e 100644
--- a/packages/dialog/dialog-wrapper.md
+++ b/packages/dialog/dialog-wrapper.md
@@ -38,16 +38,7 @@ import { DialogWrapper } from '@spectrum-web-components/dialog';
>
Content of the dialog
-
- Toggle Dialog
-
+ Toggle Dialog
```
@@ -72,7 +63,6 @@ import { DialogWrapper } from '@spectrum-web-components/dialog';
onClick="
const overlayTrigger = this.parentElement;
const dialogWrapper = overlayTrigger.clickContent;
- dialogWrapper.open = true;
function handleEvent({type}) {
spAlert(this, ` '${type}' event handled.`);
dialogWrapper.open = false;
diff --git a/packages/overlay/README.md b/packages/overlay/README.md
index 4bc029b5c0..a729f4b1d9 100644
--- a/packages/overlay/README.md
+++ b/packages/overlay/README.md
@@ -51,10 +51,8 @@ import {
}
-
- Button popover
-
-
+ Button popover
+
Press me
-
- Tooltip
-
+ Tooltip
```
diff --git a/packages/overlay/src/ActiveOverlay.ts b/packages/overlay/src/ActiveOverlay.ts
index 6396a288ad..409d6ae3f8 100644
--- a/packages/overlay/src/ActiveOverlay.ts
+++ b/packages/overlay/src/ActiveOverlay.ts
@@ -159,7 +159,7 @@ export class ActiveOverlay extends SpectrumElement {
public focus(): void {
const firstFocusable = this.querySelector(
- 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
+ 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]), [focusable]'
) as HTMLElement;
if (firstFocusable) {
firstFocusable.focus();
diff --git a/packages/overlay/src/OverlayTrigger.ts b/packages/overlay/src/OverlayTrigger.ts
index efc6e25cf8..5c0f64a665 100644
--- a/packages/overlay/src/OverlayTrigger.ts
+++ b/packages/overlay/src/OverlayTrigger.ts
@@ -79,6 +79,8 @@ export class OverlayTrigger extends LitElement {
@click=${this.onTrigger}
@mouseenter=${this.onTrigger}
@mouseleave=${this.onTrigger}
+ @focusin=${this.onTrigger}
+ @focusout=${this.onTrigger}
>
{
if (overlay) {
await overlay.hide(animated);
+ const contentWithOpen = (overlay.overlayContent as unknown) as {
+ open: boolean;
+ };
+ if (typeof contentWithOpen.open !== 'undefined') {
+ contentWithOpen.open = false;
+ }
if (overlay.state != 'dispose') return;
const index = this.overlays.indexOf(overlay);
diff --git a/packages/overlay/src/overlay-trigger.css b/packages/overlay/src/overlay-trigger.css
index 393473d7c4..cdb27e8fa0 100644
--- a/packages/overlay/src/overlay-trigger.css
+++ b/packages/overlay/src/overlay-trigger.css
@@ -10,6 +10,10 @@ OF ANY KIND, either express or implied. See the License for the specific languag
governing permissions and limitations under the License.
*/
+#trigger {
+ display: contents;
+}
+
:host([disabled]) #trigger {
pointer-events: none;
}
diff --git a/packages/overlay/stories/overlay-story-components.ts b/packages/overlay/stories/overlay-story-components.ts
index e4a9eb54cb..574783a5a4 100644
--- a/packages/overlay/stories/overlay-story-components.ts
+++ b/packages/overlay/stories/overlay-story-components.ts
@@ -222,12 +222,10 @@ class RecursivePopover extends LitElement {
}
private handleFocusin(): void {
- console.log('focusin');
this.focus();
}
public focus(): void {
- console.log('focus');
if (this.shadowRoot.activeElement !== null) {
return;
}
@@ -267,18 +265,10 @@ class RecursivePopover extends LitElement {
selected="${this.placement}"
name="group-example"
>
-
- Top
-
-
- Right
-
-
- Bottom
-
-
- Left
-
+ Top
+ Right
+ Bottom
+ Left