import { expect, fixture, html, nextFrame, aTimeout } from '@open-wc/testing'; import sinon from 'sinon'; import { overlays as overlaysManager, OverlayController } from '@lion/ui/overlays.js'; import '@lion/ui/define/lion-dialog.js'; import { browserDetection } from '@lion/ui/core.js'; /** * @typedef {import('../types/OverlayConfig.js').OverlayConfig} OverlayConfig * @typedef {import('../types/OverlayMixinTypes.js').DefineOverlayConfig} DefineOverlayConfig * @typedef {import('../types/OverlayMixinTypes.js').OverlayHost} OverlayHost * @typedef {import('../types/OverlayMixinTypes.js').OverlayMixin} OverlayMixin * @typedef {import('lit').LitElement} LitElement * @typedef {LitElement & OverlayHost & {_overlayCtrl:OverlayController}} OverlayEl */ function getGlobalOverlayCtrls() { return overlaysManager.list; } function resetOverlaysManager() { overlaysManager.list.forEach(overlayCtrl => overlaysManager.remove(overlayCtrl)); } /** * @param {{tagString:string, tag: object, suffix?:string}} config */ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) { describe(`OverlayMixin${suffix}`, () => { it('should not be opened by default', async () => { const el = /** @type {OverlayEl} */ ( await fixture(html` <${tag}>