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