@spectrum-web-components/overlay 0.18.0-devmode.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +3 -0
  2. package/active-overlay.js +1 -2
  3. package/active-overlay.js.map +1 -1
  4. package/overlay-trigger.js +1 -2
  5. package/overlay-trigger.js.map +1 -1
  6. package/package.json +7 -7
  7. package/src/ActiveOverlay.js +8 -437
  8. package/src/ActiveOverlay.js.map +1 -1
  9. package/src/OverlayTrigger.js +2 -265
  10. package/src/OverlayTrigger.js.map +1 -1
  11. package/src/VirtualTrigger.js +1 -29
  12. package/src/VirtualTrigger.js.map +1 -1
  13. package/src/active-overlay.css.js +2 -4
  14. package/src/active-overlay.css.js.map +1 -1
  15. package/src/index.js +1 -6
  16. package/src/index.js.map +1 -1
  17. package/src/loader.js +1 -4
  18. package/src/loader.js.map +1 -1
  19. package/src/overlay-events.js +1 -6
  20. package/src/overlay-events.js.map +1 -1
  21. package/src/overlay-stack.js +2 -405
  22. package/src/overlay-stack.js.map +1 -1
  23. package/src/overlay-timer.js +1 -70
  24. package/src/overlay-timer.js.map +1 -1
  25. package/src/overlay-trigger.css.js +2 -4
  26. package/src/overlay-trigger.css.js.map +1 -1
  27. package/src/overlay-utils.js +1 -27
  28. package/src/overlay-utils.js.map +1 -1
  29. package/src/overlay.js +1 -84
  30. package/src/overlay.js.map +1 -1
  31. package/stories/overlay-story-components.js +11 -207
  32. package/stories/overlay-story-components.js.map +1 -1
  33. package/stories/overlay.stories.js +55 -338
  34. package/stories/overlay.stories.js.map +1 -1
  35. package/sync/overlay-trigger.js +1 -6
  36. package/sync/overlay-trigger.js.map +1 -1
  37. package/test/benchmark/basic-test.js +1 -6
  38. package/test/benchmark/basic-test.js.map +1 -1
  39. package/test/overlay-lifecycle.test.js +6 -112
  40. package/test/overlay-lifecycle.test.js.map +1 -1
  41. package/test/overlay-timer.test.js +1 -116
  42. package/test/overlay-timer.test.js.map +1 -1
  43. package/test/overlay-trigger-click.test.js +7 -51
  44. package/test/overlay-trigger-click.test.js.map +1 -1
  45. package/test/overlay-trigger-extended.test.js +4 -174
  46. package/test/overlay-trigger-extended.test.js.map +1 -1
  47. package/test/overlay-trigger-hover-click.test.js +3 -63
  48. package/test/overlay-trigger-hover-click.test.js.map +1 -1
  49. package/test/overlay-trigger-hover.test.js +7 -81
  50. package/test/overlay-trigger-hover.test.js.map +1 -1
  51. package/test/overlay-trigger-longpress.test.js +9 -177
  52. package/test/overlay-trigger-longpress.test.js.map +1 -1
  53. package/test/overlay-trigger-sync.test.js +4 -407
  54. package/test/overlay-trigger-sync.test.js.map +1 -1
  55. package/test/overlay-trigger.test.js +4 -407
  56. package/test/overlay-trigger.test.js.map +1 -1
  57. package/test/overlay.test-vrt.js +1 -3
  58. package/test/overlay.test-vrt.js.map +1 -1
  59. package/test/overlay.test.js +11 -477
  60. package/test/overlay.test.js.map +1 -1
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["overlay.stories.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\nimport {\n openOverlay,\n Overlay,\n OverlayContentTypes,\n OverlayTrigger,\n Placement,\n TriggerInteractions,\n VirtualTrigger,\n} from '@spectrum-web-components/overlay';\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport '@spectrum-web-components/action-group/sp-action-group.js';\nimport '@spectrum-web-components/button/sp-button.js';\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { DialogWrapper } from '@spectrum-web-components/dialog';\nimport '@spectrum-web-components/field-label/sp-field-label.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-magnify.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-open-in.js';\nimport '@spectrum-web-components/overlay/overlay-trigger.js';\nimport { Picker } from '@spectrum-web-components/picker';\nimport '@spectrum-web-components/picker/sp-picker.js';\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/menu/sp-menu-divider.js';\nimport '@spectrum-web-components/popover/sp-popover.js';\nimport '@spectrum-web-components/slider/sp-slider.js';\nimport '@spectrum-web-components/radio/sp-radio.js';\nimport '@spectrum-web-components/radio/sp-radio-group.js';\nimport '@spectrum-web-components/tooltip/sp-tooltip.js';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport '../../../projects/story-decorator/src/types.js';\n\nimport './overlay-story-components.js';\nimport { render } from 'lit-html';\nimport { Popover } from '@spectrum-web-components/popover';\n\nconst storyStyles = html`\n <style>\n html,\n body,\n #root,\n #root-inner,\n sp-story-decorator {\n height: 100%;\n margin: 0;\n }\n\n sp-story-decorator::part(container) {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n }\n\n overlay-trigger {\n flex: none;\n }\n\n #styled-div {\n background-color: var(--styled-div-background-color, blue);\n color: white;\n padding: 4px 10px;\n margin-bottom: 10px;\n }\n\n #inner-trigger {\n display: inline-block;\n }\n </style>\n`;\n\nexport default {\n title: 'Overlay',\n argTypes: {\n offset: { control: 'number' },\n placement: {\n control: {\n type: 'inline-radio',\n options: [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n 'left',\n 'left-start',\n 'left-end',\n 'right',\n 'right-start',\n 'right-end',\n 'auto',\n 'auto-start',\n 'auto-end',\n 'none',\n ],\n },\n },\n type: {\n control: {\n type: 'inline-radio',\n options: ['modal', 'replace', 'inline'],\n },\n },\n colorStop: {\n control: {\n type: 'inline-radio',\n options: ['light', 'dark'],\n },\n },\n },\n args: {\n placement: 'bottom',\n offset: 0,\n colorStop: 'light',\n },\n};\n\ninterface Properties {\n placement: Placement;\n offset: number;\n open?: OverlayContentTypes;\n type?: Extract<TriggerInteractions, 'inline' | 'modal' | 'replace'>;\n}\n\nconst template = ({\n placement,\n offset,\n open,\n type,\n}: Properties): TemplateResult => {\n return html`\n ${storyStyles}\n <overlay-trigger\n id=\"trigger\"\n placement=\"${placement}\"\n offset=\"${offset}\"\n open=${ifDefined(open)}\n type=${ifDefined(type)}\n >\n <sp-button variant=\"primary\" slot=\"trigger\">Show Popover</sp-button>\n <sp-popover\n dialog\n slot=\"click-content\"\n placement=\"${placement}\"\n tip\n >\n <div class=\"options-popover-content\">\n <sp-slider\n value=\"5\"\n step=\"0.5\"\n min=\"0\"\n max=\"20\"\n label=\"Awesomeness\"\n ></sp-slider>\n <div id=\"styled-div\">\n The background of this div should be blue\n </div>\n <overlay-trigger id=\"inner-trigger\" placement=\"bottom\">\n <sp-button slot=\"trigger\">Press Me</sp-button>\n <sp-popover\n dialog\n slot=\"click-content\"\n placement=\"bottom\"\n tip\n open\n >\n <div class=\"options-popover-content\">\n Another Popover\n </div>\n </sp-popover>\n\n <sp-tooltip slot=\"hover-content\" delayed tip=\"bottom\">\n Click to open another popover.\n </sp-tooltip>\n </overlay-trigger>\n </div>\n </sp-popover>\n <sp-tooltip\n slot=\"hover-content\"\n ?delayed=${open !== 'hover'}\n tip=\"bottom\"\n >\n Click to open a popover.\n </sp-tooltip>\n </overlay-trigger>\n `;\n};\n\nexport const Default = (args: Properties): TemplateResult => template(args);\n\nexport const openHoverContent = (args: Properties): TemplateResult =>\n template({\n ...args,\n open: 'hover',\n });\n\nexport const openClickContent = (args: Properties): TemplateResult =>\n template({\n ...args,\n open: 'click',\n });\n\nexport const customizedClickContent = (\n args: Properties\n): TemplateResult => html`\n <style>\n active-overlay::part(theme) {\n --styled-div-background-color: var(--spectrum-semantic-cta-background-color-default);\n --spectrum-button-m-cta-texticon-background-color: rebeccapurple;\n }\n </style>\n </style>\n ${template({\n ...args,\n open: 'click',\n })}\n`;\n\nconst extraText = html`\n <p>This is some text.</p>\n <p>This is some text.</p>\n <p>\n This is a\n <a href=\"#anchor\">link</a>\n .\n </p>\n`;\n\nexport const inline = (): TemplateResult => {\n const closeEvent = new Event('close', { bubbles: true, composed: true });\n return html`\n <overlay-trigger type=\"inline\">\n <sp-button slot=\"trigger\">Open</sp-button>\n <sp-overlay slot=\"click-content\">\n <sp-button\n @click=${(event: Event & { target: HTMLElement }): void => {\n event.target.dispatchEvent(closeEvent);\n }}\n >\n Close\n </sp-button>\n </sp-overlay>\n </overlay-trigger>\n ${extraText}\n `;\n};\n\nexport const replace = (): TemplateResult => {\n const closeEvent = new Event('close', { bubbles: true, composed: true });\n return html`\n <overlay-trigger type=\"replace\">\n <sp-button slot=\"trigger\">Open</sp-button>\n <sp-overlay slot=\"click-content\">\n <sp-button\n @click=${(event: Event & { target: HTMLElement }): void => {\n event.target.dispatchEvent(closeEvent);\n }}\n >\n Close\n </sp-button>\n </sp-overlay>\n </overlay-trigger>\n ${extraText}\n `;\n};\n\nexport const modalLoose = (): TemplateResult => {\n const closeEvent = new Event('close', { bubbles: true, composed: true });\n return html`\n <overlay-trigger type=\"modal\" placement=\"none\">\n <sp-button slot=\"trigger\">Open</sp-button>\n <sp-dialog\n size=\"s\"\n dismissable\n slot=\"click-content\"\n @closed=${(event: Event & { target: DialogWrapper }) =>\n event.target.dispatchEvent(closeEvent)}\n >\n <h2 slot=\"heading\">Loose Dialog</h2>\n <p>\n The\n <code>sp-dialog</code>\n element is not \"meant\" to be a modal alone. In that way it\n does not manage its own\n <code>open</code>\n attribute or outline when it should have\n <code>pointer-events: auto</code>\n . It's a part of this test suite to prove that content in\n this way can be used in an\n <code>overlay-trigger</code>\n element.\n </p>\n </sp-dialog>\n </overlay-trigger>\n ${extraText}\n `;\n};\n\nexport const modalManaged = (): TemplateResult => {\n const closeEvent = new Event('close', { bubbles: true, composed: true });\n return html`\n <overlay-trigger type=\"modal\" placement=\"none\">\n <sp-button slot=\"trigger\">Open</sp-button>\n <sp-dialog-wrapper\n underlay\n slot=\"click-content\"\n headline=\"Wrapped Dialog w/ Hero Image\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n @confirm=${(event: Event & { target: DialogWrapper }): void => {\n event.target.dispatchEvent(closeEvent);\n }}\n @secondary=${(\n event: Event & { target: DialogWrapper }\n ): void => {\n event.target.dispatchEvent(closeEvent);\n }}\n @cancel=${(event: Event & { target: DialogWrapper }): void => {\n event.target.dispatchEvent(closeEvent);\n }}\n >\n <p>\n The\n <code>sp-dialog-wrapper</code>\n element has been prepared for use in an\n <code>overlay-trigger</code>\n element by it's combination of modal, underlay, etc. styles\n and features.\n </p>\n </sp-dialog-wrapper>\n </overlay-trigger>\n ${extraText}\n `;\n};\n\nexport const deepNesting = (): TemplateResult => {\n const color = window.__swc_hack_knobs__.defaultColor;\n const outter = color === 'light' ? 'dark' : 'light';\n return html`\n ${storyStyles}\n <sp-theme\n color=${outter}\n theme=${window.__swc_hack_knobs__.defaultThemeVariant}\n scale=${window.__swc_hack_knobs__.defaultScale}\n dir=${window.__swc_hack_knobs__.defaultDirection}\n >\n <sp-theme\n color=${color}\n theme=${window.__swc_hack_knobs__.defaultThemeVariant}\n scale=${window.__swc_hack_knobs__.defaultScale}\n dir=${window.__swc_hack_knobs__.defaultDirection}\n >\n <recursive-popover\n tabindex=\"\"\n style=\"\n background-color: var(--spectrum-global-color-gray-100);\n color: var(--spectrum-global-color-gray-800);\n padding: var(--spectrum-global-dimension-size-225);\n \"\n ></recursive-popover>\n </sp-theme>\n </sp-theme>\n `;\n};\n\nexport const edges = (): TemplateResult => {\n return html`\n <style>\n .demo {\n position: absolute;\n }\n .top-left {\n top: 0;\n left: 0;\n }\n .top-right {\n top: 0;\n right: 0;\n }\n .bottom-right {\n bottom: 0;\n right: 0;\n }\n .bottom-left {\n bottom: 0;\n left: 0;\n }\n </style>\n <overlay-trigger class=\"demo top-left\" placement=\"bottom\">\n <sp-button slot=\"trigger\">\n Top/\n <br />\n Left\n </sp-button>\n <sp-tooltip slot=\"hover-content\" delayed open tip=\"bottom\">\n Triskaidekaphobia and More\n </sp-tooltip>\n </overlay-trigger>\n <overlay-trigger class=\"demo top-right\" placement=\"bottom\">\n <sp-button slot=\"trigger\">\n Top/\n <br />\n Right\n </sp-button>\n <sp-tooltip slot=\"hover-content\" delayed open tip=\"bottom\">\n Triskaidekaphobia and More\n </sp-tooltip>\n </overlay-trigger>\n <overlay-trigger class=\"demo bottom-left\" placement=\"top\">\n <sp-button slot=\"trigger\">\n Bottom/\n <br />\n Left\n </sp-button>\n <sp-tooltip slot=\"hover-content\" delayed open tip=\"top\">\n Triskaidekaphobia and More\n </sp-tooltip>\n </overlay-trigger>\n <overlay-trigger placement=\"top\" class=\"demo bottom-right\">\n <sp-button slot=\"trigger\">\n Bottom/\n <br />\n Right\n </sp-button>\n <sp-tooltip slot=\"hover-content\" delayed open tip=\"top\">\n Triskaidekaphobia and More\n </sp-tooltip>\n </overlay-trigger>\n `;\n};\n\nexport const updated = (): TemplateResult => {\n return html`\n ${storyStyles}\n <style>\n sp-tooltip {\n transition: none;\n }\n </style>\n <overlay-drag>\n <overlay-trigger class=\"demo top-left\" placement=\"bottom\">\n <overlay-target-icon\n slot=\"trigger\"\n style=\"translate(400px, 300px)\"\n ></overlay-target-icon>\n <sp-tooltip slot=\"hover-content\" delayed tip=\"bottom\">\n Click to open popover\n </sp-tooltip>\n <sp-popover\n dialog\n slot=\"click-content\"\n position=\"bottom\"\n tip\n open\n >\n <div class=\"options-popover-content\">\n <sp-slider\n value=\"5\"\n step=\"0.5\"\n min=\"0\"\n max=\"20\"\n label=\"Awesomeness\"\n ></sp-slider>\n <div id=\"styled-div\">\n The background of this div should be blue\n </div>\n <overlay-trigger id=\"inner-trigger\" placement=\"bottom\">\n <sp-button slot=\"trigger\">Press Me</sp-button>\n <sp-popover\n dialog\n slot=\"click-content\"\n placement=\"bottom\"\n tip\n open\n >\n <div class=\"options-popover-content\">\n Another Popover\n </div>\n </sp-popover>\n\n <sp-tooltip\n slot=\"hover-content\"\n delayed\n tip=\"bottom\"\n >\n Click to open another popover.\n </sp-tooltip>\n </overlay-trigger>\n </div>\n </sp-popover>\n </overlay-trigger>\n </overlay-drag>\n `;\n};\n\nexport const sideHoverDraggable = (): TemplateResult => {\n return html`\n ${storyStyles}\n <style>\n sp-tooltip {\n transition: none;\n }\n </style>\n <overlay-drag>\n <overlay-trigger placement=\"right\">\n <overlay-target-icon slot=\"trigger\"></overlay-target-icon>\n <sp-tooltip slot=\"hover-content\" delayed tip=\"right\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n Vivamus egestas sed enim sed condimentum. Nunc facilisis\n scelerisque massa sed luctus. Orci varius natoque penatibus\n et magnis dis parturient montes, nascetur ridiculus mus.\n Suspendisse sagittis sodales purus vitae ultricies. Integer\n at dui sem. Sed quam tortor, ornare in nisi et, rhoncus\n lacinia mauris. Sed vel rutrum mauris, ac pellentesque nibh.\n Sed feugiat semper libero, sit amet vehicula orci fermentum\n id. Vivamus imperdiet egestas luctus. Mauris tincidunt\n malesuada ante, faucibus viverra nunc blandit a. Fusce et\n nisl nisi. Aenean dictum quam id mollis faucibus. Nulla a\n ultricies dui. In hac habitasse platea dictumst. Curabitur\n gravida lobortis vestibulum.\n </sp-tooltip>\n </overlay-trigger>\n </overlay-drag>\n `;\n};\n\nexport const longpress = (): TemplateResult => {\n return html`\n <overlay-trigger placement=\"right-start\">\n <sp-action-button slot=\"trigger\" hold-affordance>\n <sp-icon-magnify slot=\"icon\"></sp-icon-magnify>\n </sp-action-button>\n <sp-tooltip slot=\"hover-content\">Search real hard...</sp-tooltip>\n <sp-popover slot=\"longpress-content\" tip>\n <sp-action-group\n @change=${(event: Event & { target: HTMLElement }) =>\n event.target.dispatchEvent(\n new Event('close', { bubbles: true })\n )}\n selects=\"single\"\n vertical\n style=\"margin: calc(var(--spectrum-actiongroup-button-gap-y,var(--spectrum-global-dimension-size-100)) / 2);\"\n >\n <sp-action-button>\n <sp-icon-magnify slot=\"icon\"></sp-icon-magnify>\n </sp-action-button>\n <sp-action-button>\n <sp-icon-magnify slot=\"icon\"></sp-icon-magnify>\n </sp-action-button>\n <sp-action-button>\n <sp-icon-magnify slot=\"icon\"></sp-icon-magnify>\n </sp-action-button>\n </sp-action-group>\n </sp-popover>\n </overlay-trigger>\n `;\n};\n\nfunction nextFrame(): Promise<void> {\n return new Promise((res) => requestAnimationFrame(() => res()));\n}\n\nclass ComplexModalReady extends HTMLElement {\n ready!: (value: boolean | PromiseLike<boolean>) => void;\n\n constructor() {\n super();\n this.readyPromise = new Promise((res) => {\n this.ready = res;\n this.setup();\n });\n }\n\n async setup(): Promise<void> {\n await nextFrame();\n\n const overlay = document.querySelector(\n `overlay-trigger`\n ) as OverlayTrigger;\n overlay.addEventListener('sp-opened', this.handleTriggerOpened);\n }\n\n handleTriggerOpened = async (): Promise<void> => {\n await nextFrame();\n\n const picker = document.querySelector('#test-picker') as Picker;\n picker.addEventListener('sp-opened', this.handlePickerOpen);\n picker.open = true;\n };\n\n handlePickerOpen = async (): Promise<void> => {\n const picker = document.querySelector('#test-picker') as Picker;\n const actions = [nextFrame, picker.updateComplete];\n\n await Promise.all(actions);\n\n this.ready(true);\n };\n\n private readyPromise: Promise<boolean> = Promise.resolve(false);\n\n get updateComplete(): Promise<boolean> {\n return this.readyPromise;\n }\n}\n\ncustomElements.define('complex-modal-ready', ComplexModalReady);\n\nconst complexModalDecorator = (story: () => TemplateResult): TemplateResult => {\n return html`\n ${story()}\n <complex-modal-ready></complex-modal-ready>\n `;\n};\n\nexport const complexModal = (): TemplateResult => {\n return html`\n <style>\n body {\n --swc-margin-test: 10px;\n margin: var(--swc-margin-test);\n }\n sp-story-decorator::part(container) {\n min-height: calc(100vh - (2 * var(--swc-margin-test)));\n padding: 0;\n display: grid;\n place-content: center;\n }\n active-overlay > * {\n --spectrum-global-animation-duration-100: 0ms;\n --spectrum-global-animation-duration-200: 0ms;\n --spectrum-global-animation-duration-300: 0ms;\n --spectrum-global-animation-duration-400: 0ms;\n --spectrum-global-animation-duration-500: 0ms;\n --spectrum-global-animation-duration-600: 0ms;\n --spectrum-global-animation-duration-700: 0ms;\n --spectrum-global-animation-duration-800: 0ms;\n --spectrum-global-animation-duration-900: 0ms;\n --spectrum-global-animation-duration-1000: 0ms;\n --spectrum-global-animation-duration-2000: 0ms;\n --spectrum-global-animation-duration-4000: 0ms;\n --spectrum-coachmark-animation-indicator-ring-duration: 0ms;\n --swc-test-duration: 1ms;\n }\n </style>\n <overlay-trigger type=\"modal\" placement=\"none\" open=\"click\">\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n dismissable\n underlay\n footer=\"Content for footer\"\n >\n <sp-field-label for=\"test-picker\">\n Selection type:\n </sp-field-label>\n <sp-picker id=\"test-picker\">\n <sp-menu-item>Deselect</sp-menu-item>\n <sp-menu-item>Select inverse</sp-menu-item>\n <sp-menu-item>Feather...</sp-menu-item>\n <sp-menu-item>Select and mask...</sp-menu-item>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-item>Save selection</sp-menu-item>\n <sp-menu-item disabled>Make work path</sp-menu-item>\n </sp-picker>\n </sp-dialog-wrapper>\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n </overlay-trigger>\n `;\n};\n\ncomplexModal.decorators = [complexModalDecorator];\n\nexport const superComplexModal = (): TemplateResult => {\n return html`\n <overlay-trigger type=\"modal\" placement=\"none\">\n <sp-button slot=\"trigger\" variant=\"accent\">Toggle Dialog</sp-button>\n <sp-popover dialog slot=\"click-content\">\n <overlay-trigger>\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-popover dialog slot=\"click-content\">\n <overlay-trigger type=\"modal\">\n <sp-button slot=\"trigger\" variant=\"secondary\">\n Toggle Dialog\n </sp-button>\n <sp-popover dialog slot=\"click-content\">\n <p>\n When you get this deep, this ActiveOverlay\n should be the only one in [slot=\"open\"].\n </p>\n <p>\n All of the rest of the ActiveOverlay\n elements should have had their [slot]\n attribute removed.\n </p>\n <p>\n Closing this ActiveOverlay should replace\n them...\n </p>\n </sp-popover>\n </overlay-trigger>\n </sp-popover>\n </overlay-trigger>\n </sp-popover>\n </overlay-trigger>\n `;\n};\n\nclass StartEndContextmenu extends HTMLElement {\n override shadowRoot!: ShadowRoot;\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.innerHTML = `\n <style>\n :host {\n display: flex;\n align-items: stretch;\n }\n div {\n width: 50%;\n height: 100%;\n }\n </style>\n <div id=\"start\"></div>\n <div id=\"end\"></div>\n `;\n }\n}\n\ncustomElements.define('start-end-contextmenu', StartEndContextmenu);\n\nexport const virtualElement = (args: Properties): TemplateResult => {\n const contextMenuTemplate = (kind = ''): TemplateResult => html`\n <sp-popover\n style=\"width:300px;\"\n @click=${(event: Event) =>\n event.target?.dispatchEvent(\n new Event('close', { bubbles: true })\n )}\n >\n <sp-menu>\n <sp-menu-group>\n <span slot=\"header\">Menu source: ${kind}</span>\n <sp-menu-item>Deselect</sp-menu-item>\n <sp-menu-item>Select inverse</sp-menu-item>\n <sp-menu-item>Feather...</sp-menu-item>\n <sp-menu-item>Select and mask...</sp-menu-item>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-item>Save selection</sp-menu-item>\n <sp-menu-item disabled>Make work path</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n </sp-popover>\n `;\n const pointerenter = async (event: PointerEvent): Promise<void> => {\n event.preventDefault();\n const source = event.composedPath()[0] as HTMLDivElement;\n const { id } = source;\n const trigger = event.target as HTMLElement;\n const virtualTrigger = new VirtualTrigger(event.clientX, event.clientY);\n const fragment = document.createDocumentFragment();\n render(contextMenuTemplate(id), fragment);\n const popover = fragment.querySelector('sp-popover') as Popover;\n openOverlay(trigger, 'modal', popover, {\n placement: args.placement,\n receivesFocus: 'auto',\n virtualTrigger,\n });\n };\n return html`\n <style>\n .app-root {\n position: absolute;\n inset: 0;\n }\n </style>\n <start-end-contextmenu\n class=\"app-root\"\n @contextmenu=${pointerenter}\n ></start-end-contextmenu>\n `;\n};\n\nvirtualElement.args = {\n placement: 'right-start' as Placement,\n};\n\nexport const detachedElement = (): TemplateResult => {\n let closeOverlay: (() => void) | undefined;\n const openDetachedOverlayContent = async ({\n target,\n }: {\n target: HTMLElement;\n }): Promise<void> => {\n if (closeOverlay) {\n closeOverlay();\n closeOverlay = undefined;\n return;\n }\n const div = document.createElement('div');\n div.textContent = 'This div is overlaid';\n div.setAttribute(\n 'style',\n `\n background-color: var(--spectrum-global-color-gray-50);\n color: var(--spectrum-global-color-gray-800);\n border: 1px solid;\n padding: 2em;\n `\n );\n closeOverlay = await Overlay.open(target, 'click', div, {\n offset: 0,\n placement: 'bottom',\n });\n };\n requestAnimationFrame(() => {\n openDetachedOverlayContent({\n target: document.querySelector(\n '#detached-content-trigger'\n ) as HTMLElement,\n });\n });\n return html`\n <sp-action-button\n id=\"detached-content-trigger\"\n @click=${openDetachedOverlayContent}\n @sp-closed=${() => (closeOverlay = undefined)}\n >\n <sp-icon-open-in\n slot=\"icon\"\n label=\"Open in overlay\"\n ></sp-icon-open-in>\n </sp-action-button>\n `;\n};\n\nclass DefinedOverlayReady extends HTMLElement {\n ready!: (value: boolean | PromiseLike<boolean>) => void;\n\n constructor() {\n super();\n this.readyPromise = new Promise((res) => {\n this.ready = res;\n this.setup();\n });\n }\n\n async setup(): Promise<void> {\n await nextFrame();\n\n const overlay = document.querySelector(\n `overlay-trigger`\n ) as OverlayTrigger;\n const button = document.querySelector(\n `[slot=\"trigger\"]`\n ) as HTMLButtonElement;\n overlay.addEventListener('sp-opened', this.handleTriggerOpened);\n button.click();\n }\n\n handleTriggerOpened = async (): Promise<void> => {\n await nextFrame();\n\n const popover = document.querySelector('popover-content');\n if (!popover) {\n return;\n }\n popover.addEventListener('sp-opened', this.handlePopoverOpen);\n popover.button.click();\n };\n\n handlePopoverOpen = async (): Promise<void> => {\n await nextFrame();\n\n this.ready(true);\n };\n\n private readyPromise: Promise<boolean> = Promise.resolve(false);\n\n get updateComplete(): Promise<boolean> {\n return this.readyPromise;\n }\n}\n\ncustomElements.define('defined-overlay-ready', DefinedOverlayReady);\n\nconst definedOverlayDecorator = (\n story: () => TemplateResult\n): TemplateResult => {\n return html`\n ${story()}\n <defined-overlay-ready></defined-overlay-ready>\n `;\n};\n\nexport const definedOverlayElement = (): TemplateResult => {\n return html`\n <overlay-trigger placement=\"bottom\" type=\"modal\">\n <sp-button variant=\"primary\" slot=\"trigger\">Open popover</sp-button>\n <sp-popover slot=\"click-content\" direction=\"bottom\" dialog>\n <popover-content></popover-content>\n </sp-popover>\n </overlay-trigger>\n `;\n};\n\ndefinedOverlayElement.decorators = [definedOverlayDecorator];\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,2 @@
1
- import { OverlayTrigger } from "../src/OverlayTrigger.js";
2
- import { Overlay } from "../src/index.js";
3
- import "../overlay-trigger.js";
4
- OverlayTrigger.openOverlay = async (target, interaction, content, options) => {
5
- return Overlay.open(target, interaction, content, options);
6
- };
1
+ import{OverlayTrigger as n}from"../src/OverlayTrigger.js";import{Overlay as t}from"../src/index.js";import"../overlay-trigger.js";n.openOverlay=async(r,e,o,i)=>t.open(r,e,o,i);
7
2
  //# sourceMappingURL=overlay-trigger.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["overlay-trigger.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { OverlayTrigger } from '../src/OverlayTrigger.js';\nimport { Overlay, OverlayOptions, TriggerInteractions } from '../src/index.js';\nimport '../overlay-trigger.js';\n\nOverlayTrigger.openOverlay = async (\n target: HTMLElement,\n interaction: TriggerInteractions,\n content: HTMLElement,\n options: OverlayOptions\n): Promise<() => void> => {\n return Overlay.open(target, interaction, content, options);\n};\n"],
5
- "mappings": "AAYA;AACA;AACA;AAEA,eAAe,cAAc,OACzB,QACA,aACA,SACA,YACsB;AACtB,SAAO,QAAQ,KAAK,QAAQ,aAAa,SAAS,OAAO;AAC7D;",
5
+ "mappings": "AAYA,0DACA,0CACA,8BAEA,EAAe,YAAc,MACzB,EACA,EACA,EACA,IAEO,EAAQ,KAAK,EAAQ,EAAa,EAAS,CAAO",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,4 @@
1
- import "@spectrum-web-components/overlay/overlay-trigger.js";
2
- import "@spectrum-web-components/button/sp-button.js";
3
- import "@spectrum-web-components/popover/sp-popover.js";
4
- import { html } from "lit";
5
- import { measureFixtureCreation } from "../../../../test/benchmark/helpers.js";
6
- measureFixtureCreation(html`
1
+ import"@spectrum-web-components/overlay/overlay-trigger.js";import"@spectrum-web-components/button/sp-button.js";import"@spectrum-web-components/popover/sp-popover.js";import{html as r}from"lit";import{measureFixtureCreation as t}from"../../../../test/benchmark/helpers.js";t(r`
7
2
  <overlay-trigger>
8
3
  <sp-button slot="trigger">Trigger</sp-button>
9
4
  <sp-popover slot="content">
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["basic-test.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport '@spectrum-web-components/overlay/overlay-trigger.js';\nimport '@spectrum-web-components/button/sp-button.js';\nimport '@spectrum-web-components/popover/sp-popover.js';\nimport { html } from 'lit';\nimport { measureFixtureCreation } from '../../../../test/benchmark/helpers.js';\n\nmeasureFixtureCreation(\n html`\n <overlay-trigger>\n <sp-button slot=\"trigger\">Trigger</sp-button>\n <sp-popover slot=\"content\">\n <p>This is the content.</p>\n </sp-popover>\n </overlay-trigger>\n `\n);\n"],
5
- "mappings": "AAYA;AACA;AACA;AACA;AACA;AAEA,uBACI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQJ;",
5
+ "mappings": "AAYA,4DACA,qDACA,uDACA,2BACA,+EAEA,EACI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQJ",
6
6
  "names": []
7
7
  }
@@ -1,18 +1,4 @@
1
- import {
2
- elementUpdated,
3
- expect,
4
- fixture,
5
- html,
6
- oneEvent,
7
- waitUntil
8
- } from "@open-wc/testing";
9
- import "@spectrum-web-components/tooltip/sp-tooltip.js";
10
- import "@spectrum-web-components/action-button/sp-action-button.js";
11
- import "@spectrum-web-components/overlay/overlay-trigger.js";
12
- import { a11ySnapshot, findAccessibilityNode } from "@web/test-runner-commands";
13
- describe("Overlay Trigger - Lifecycle Methods", () => {
14
- it("calls the overlay lifecycle (willOpen/Close)", async () => {
15
- const el = await fixture(html`
1
+ import{elementUpdated as s,expect as o,fixture as c,html as d,oneEvent as n,waitUntil as p}from"@open-wc/testing";import"@spectrum-web-components/tooltip/sp-tooltip.js";import"@spectrum-web-components/action-button/sp-action-button.js";import"@spectrum-web-components/overlay/overlay-trigger.js";import{a11ySnapshot as u,findAccessibilityNode as b}from"@web/test-runner-commands";describe("Overlay Trigger - Lifecycle Methods",()=>{it("calls the overlay lifecycle (willOpen/Close)",async()=>{const t=await c(d`
16
2
  <overlay-trigger placement="right-start">
17
3
  <sp-action-button slot="trigger">
18
4
  Button with Tooltip
@@ -21,29 +7,7 @@ describe("Overlay Trigger - Lifecycle Methods", () => {
21
7
  Described by this content on focus/hover. 1
22
8
  </sp-tooltip>
23
9
  </overlay-trigger>
24
- `);
25
- await elementUpdated(el);
26
- expect(el.open).to.be.undefined;
27
- expect(el.childNodes.length).to.equal(5);
28
- const trigger = el.querySelector('[slot="trigger"]');
29
- let snapshot = await a11ySnapshot({});
30
- expect(findAccessibilityNode(snapshot, (node) => node.name === "Button with Tooltip" && typeof node.description === "undefined"), "`name`ed with no `description`");
31
- const opened = oneEvent(el, "sp-opened");
32
- trigger.dispatchEvent(new FocusEvent("focusin", { bubbles: true, composed: true }));
33
- await opened;
34
- expect(el.open).to.equal("hover");
35
- snapshot = await a11ySnapshot({});
36
- expect(el.childNodes.length).to.equal(6);
37
- expect(findAccessibilityNode(snapshot, (node) => node.name === "Button with Tooltip" && node.description === "Described by this content on focus/hover."), "`name`ed with `description`");
38
- const closed = oneEvent(el, "sp-closed");
39
- trigger.dispatchEvent(new FocusEvent("focusout", { bubbles: true, composed: true }));
40
- await closed;
41
- await elementUpdated(el);
42
- await waitUntil(() => el.open === null);
43
- expect(el.childNodes.length).to.equal(5);
44
- });
45
- it("calls the overlay lifecycle (willOpen/openCanceled)", async () => {
46
- const el = await fixture(html`
10
+ `);await s(t),o(t.open).to.be.undefined,o(t.childNodes.length).to.equal(5);const e=t.querySelector('[slot="trigger"]');let r=await u({});o(b(r,l=>l.name==="Button with Tooltip"&&typeof l.description=="undefined"),"`name`ed with no `description`");const i=n(t,"sp-opened");e.dispatchEvent(new FocusEvent("focusin",{bubbles:!0,composed:!0})),await i,o(t.open).to.equal("hover"),r=await u({}),o(t.childNodes.length).to.equal(6),o(b(r,l=>l.name==="Button with Tooltip"&&l.description==="Described by this content on focus/hover."),"`name`ed with `description`");const a=n(t,"sp-closed");e.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,composed:!0})),await a,await s(t),await p(()=>t.open===null),o(t.childNodes.length).to.equal(5)}),it("calls the overlay lifecycle (willOpen/openCanceled)",async()=>{const t=await c(d`
47
11
  <overlay-trigger placement="right-start">
48
12
  <sp-action-button slot="trigger">
49
13
  Button with Tooltip
@@ -52,25 +16,7 @@ describe("Overlay Trigger - Lifecycle Methods", () => {
52
16
  Described by this content on focus/hover. 2
53
17
  </sp-tooltip>
54
18
  </overlay-trigger>
55
- `);
56
- await elementUpdated(el);
57
- expect(el.open).to.be.undefined;
58
- expect(el.childNodes.length, "always").to.equal(5);
59
- const trigger = el.querySelector('[slot="trigger"]');
60
- trigger.dispatchEvent(new FocusEvent("focusin", { bubbles: true, composed: true }));
61
- await elementUpdated(el);
62
- trigger.dispatchEvent(new FocusEvent("focusout", { bubbles: true, composed: true }));
63
- await elementUpdated(el);
64
- await waitUntil(() => {
65
- return el.open === null;
66
- }, "open");
67
- await elementUpdated(el);
68
- await waitUntil(() => {
69
- return el.childNodes.length === 5;
70
- }, "children");
71
- });
72
- it("gardens `aria-describedby` in its target", async () => {
73
- const el = await fixture(html`
19
+ `);await s(t),o(t.open).to.be.undefined,o(t.childNodes.length,"always").to.equal(5);const e=t.querySelector('[slot="trigger"]');e.dispatchEvent(new FocusEvent("focusin",{bubbles:!0,composed:!0})),await s(t),e.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,composed:!0})),await s(t),await p(()=>t.open===null,"open"),await s(t),await p(()=>t.childNodes.length===5,"children")}),it("gardens `aria-describedby` in its target",async()=>{const t=await c(d`
74
20
  <overlay-trigger placement="right-start">
75
21
  <sp-action-button slot="trigger" aria-describedby="descriptor">
76
22
  Button with Tooltip
@@ -80,24 +26,7 @@ describe("Overlay Trigger - Lifecycle Methods", () => {
80
26
  </sp-tooltip>
81
27
  </overlay-trigger>
82
28
  <div id="descriptor">I'm a description!</div>
83
- `);
84
- const trigger = el.querySelector('[slot="trigger"]');
85
- const tooltip = el.querySelector("sp-tooltip");
86
- await elementUpdated(el);
87
- expect(trigger.getAttribute("aria-describedby")).to.equal("descriptor");
88
- expect(el.open).to.be.undefined;
89
- expect(el.childNodes.length, "always").to.equal(5);
90
- const opened = oneEvent(el, "sp-opened");
91
- trigger.dispatchEvent(new FocusEvent("focusin", { bubbles: true, composed: true }));
92
- await opened;
93
- expect(trigger.getAttribute("aria-describedby")).to.equal(`descriptor ${tooltip._tooltipId}`);
94
- const closed = oneEvent(el, "sp-closed");
95
- trigger.dispatchEvent(new FocusEvent("focusout", { bubbles: true, composed: true }));
96
- await closed;
97
- expect(trigger.getAttribute("aria-describedby")).to.equal("descriptor");
98
- });
99
- it("adds and removes `aria-describedby` attribute", async () => {
100
- const el = await fixture(html`
29
+ `),e=t.querySelector('[slot="trigger"]'),r=t.querySelector("sp-tooltip");await s(t),o(e.getAttribute("aria-describedby")).to.equal("descriptor"),o(t.open).to.be.undefined,o(t.childNodes.length,"always").to.equal(5);const i=n(t,"sp-opened");e.dispatchEvent(new FocusEvent("focusin",{bubbles:!0,composed:!0})),await i,o(e.getAttribute("aria-describedby")).to.equal(`descriptor ${r._tooltipId}`);const a=n(t,"sp-closed");e.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,composed:!0})),await a,o(e.getAttribute("aria-describedby")).to.equal("descriptor")}),it("adds and removes `aria-describedby` attribute",async()=>{const t=await c(d`
101
30
  <overlay-trigger placement="right-start">
102
31
  <sp-action-button slot="trigger">
103
32
  Button with Tooltip
@@ -106,24 +35,7 @@ describe("Overlay Trigger - Lifecycle Methods", () => {
106
35
  Described by this content on focus/hover. 2
107
36
  </sp-tooltip>
108
37
  </overlay-trigger>
109
- `);
110
- const trigger = el.querySelector('[slot="trigger"]');
111
- const tooltip = el.querySelector("sp-tooltip");
112
- await elementUpdated(el);
113
- expect(trigger.hasAttribute("aria-describedby")).to.be.false;
114
- expect(el.open).to.be.undefined;
115
- expect(el.childNodes.length, "always").to.equal(5);
116
- const opened = oneEvent(el, "sp-opened");
117
- trigger.dispatchEvent(new FocusEvent("focusin", { bubbles: true, composed: true }));
118
- await opened;
119
- expect(trigger.getAttribute("aria-describedby")).to.equal(`${tooltip._tooltipId}`);
120
- const closed = oneEvent(el, "sp-closed");
121
- trigger.dispatchEvent(new FocusEvent("focusout", { bubbles: true, composed: true }));
122
- await closed;
123
- expect(trigger.hasAttribute("aria-describedby")).to.be.false;
124
- });
125
- it("does not duplicate `aria-describedby` attribute", async () => {
126
- const el = await fixture(html`
38
+ `),e=t.querySelector('[slot="trigger"]'),r=t.querySelector("sp-tooltip");await s(t),o(e.hasAttribute("aria-describedby")).to.be.false,o(t.open).to.be.undefined,o(t.childNodes.length,"always").to.equal(5);const i=n(t,"sp-opened");e.dispatchEvent(new FocusEvent("focusin",{bubbles:!0,composed:!0})),await i,o(e.getAttribute("aria-describedby")).to.equal(`${r._tooltipId}`);const a=n(t,"sp-closed");e.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,composed:!0})),await a,o(e.hasAttribute("aria-describedby")).to.be.false}),it("does not duplicate `aria-describedby` attribute",async()=>{const t=await c(d`
127
39
  <overlay-trigger placement="right-start">
128
40
  <sp-action-button slot="trigger">
129
41
  Button with Tooltip
@@ -132,23 +44,5 @@ describe("Overlay Trigger - Lifecycle Methods", () => {
132
44
  Described by this content on focus/hover. 2
133
45
  </sp-tooltip>
134
46
  </overlay-trigger>
135
- `);
136
- const trigger = el.querySelector('[slot="trigger"]');
137
- const tooltip = el.querySelector("sp-tooltip");
138
- const tooltipId = tooltip._tooltipId;
139
- trigger.setAttribute("aria-describedby", tooltipId);
140
- await elementUpdated(el);
141
- expect(trigger.getAttribute("aria-describedby")).to.equal(tooltipId);
142
- expect(el.open).to.be.undefined;
143
- expect(el.childNodes.length, "always").to.equal(5);
144
- const opened = oneEvent(el, "sp-opened");
145
- trigger.dispatchEvent(new FocusEvent("focusin", { bubbles: true, composed: true }));
146
- await opened;
147
- expect(trigger.getAttribute("aria-describedby")).to.equal(tooltipId);
148
- const closed = oneEvent(el, "sp-closed");
149
- trigger.dispatchEvent(new FocusEvent("focusout", { bubbles: true, composed: true }));
150
- await closed;
151
- expect(trigger.getAttribute("aria-describedby")).to.equal(tooltipId);
152
- });
153
- });
47
+ `),e=t.querySelector('[slot="trigger"]'),i=t.querySelector("sp-tooltip")._tooltipId;e.setAttribute("aria-describedby",i),await s(t),o(e.getAttribute("aria-describedby")).to.equal(i),o(t.open).to.be.undefined,o(t.childNodes.length,"always").to.equal(5);const a=n(t,"sp-opened");e.dispatchEvent(new FocusEvent("focusin",{bubbles:!0,composed:!0})),await a,o(e.getAttribute("aria-describedby")).to.equal(i);const l=n(t,"sp-closed");e.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,composed:!0})),await l,o(e.getAttribute("aria-describedby")).to.equal(i)})});
154
48
  //# sourceMappingURL=overlay-lifecycle.test.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["overlay-lifecycle.test.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n oneEvent,\n waitUntil,\n} from '@open-wc/testing';\nimport '@spectrum-web-components/tooltip/sp-tooltip.js';\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport { OverlayTrigger } from '@spectrum-web-components/overlay';\nimport '@spectrum-web-components/overlay/overlay-trigger.js';\nimport { a11ySnapshot, findAccessibilityNode } from '@web/test-runner-commands';\nimport { Tooltip } from '@spectrum-web-components/tooltip';\n\ndescribe('Overlay Trigger - Lifecycle Methods', () => {\n it('calls the overlay lifecycle (willOpen/Close)', async () => {\n const el = await fixture<OverlayTrigger>(html`\n <overlay-trigger placement=\"right-start\">\n <sp-action-button slot=\"trigger\">\n Button with Tooltip\n </sp-action-button>\n <sp-tooltip slot=\"hover-content\">\n Described by this content on focus/hover. 1\n </sp-tooltip>\n </overlay-trigger>\n `);\n\n await elementUpdated(el);\n\n expect(el.open).to.be.undefined;\n expect(el.childNodes.length).to.equal(5);\n const trigger = el.querySelector('[slot=\"trigger\"]') as HTMLElement;\n type DescribedNode = {\n name: string;\n description: string;\n };\n let snapshot = (await a11ySnapshot({})) as unknown as DescribedNode & {\n children: DescribedNode[];\n };\n expect(\n findAccessibilityNode<DescribedNode>(\n snapshot,\n (node) =>\n node.name === 'Button with Tooltip' &&\n typeof node.description === 'undefined'\n ),\n '`name`ed with no `description`'\n );\n const opened = oneEvent(el, 'sp-opened');\n trigger.dispatchEvent(\n new FocusEvent('focusin', { bubbles: true, composed: true })\n );\n await opened;\n\n expect(el.open).to.equal('hover');\n snapshot = (await a11ySnapshot({})) as unknown as DescribedNode & {\n children: DescribedNode[];\n };\n\n expect(el.childNodes.length).to.equal(6);\n expect(\n findAccessibilityNode<DescribedNode>(\n snapshot,\n (node) =>\n node.name === 'Button with Tooltip' &&\n node.description ===\n 'Described by this content on focus/hover.'\n ),\n '`name`ed with `description`'\n );\n\n const closed = oneEvent(el, 'sp-closed');\n trigger.dispatchEvent(\n new FocusEvent('focusout', { bubbles: true, composed: true })\n );\n await closed;\n await elementUpdated(el);\n\n await waitUntil(() => el.open === null);\n expect(el.childNodes.length).to.equal(5);\n });\n it('calls the overlay lifecycle (willOpen/openCanceled)', async () => {\n const el = await fixture<OverlayTrigger>(html`\n <overlay-trigger placement=\"right-start\">\n <sp-action-button slot=\"trigger\">\n Button with Tooltip\n </sp-action-button>\n <sp-tooltip slot=\"hover-content\" delayed>\n Described by this content on focus/hover. 2\n </sp-tooltip>\n </overlay-trigger>\n `);\n\n await elementUpdated(el);\n\n expect(el.open).to.be.undefined;\n expect(el.childNodes.length, 'always').to.equal(5);\n const trigger = el.querySelector('[slot=\"trigger\"]') as HTMLElement;\n trigger.dispatchEvent(\n new FocusEvent('focusin', { bubbles: true, composed: true })\n );\n await elementUpdated(el);\n trigger.dispatchEvent(\n new FocusEvent('focusout', { bubbles: true, composed: true })\n );\n await elementUpdated(el);\n\n await waitUntil(() => {\n return el.open === null;\n }, 'open');\n await elementUpdated(el);\n await waitUntil(() => {\n return el.childNodes.length === 5;\n }, 'children');\n });\n it('gardens `aria-describedby` in its target', async () => {\n const el = await fixture<OverlayTrigger>(html`\n <overlay-trigger placement=\"right-start\">\n <sp-action-button slot=\"trigger\" aria-describedby=\"descriptor\">\n Button with Tooltip\n </sp-action-button>\n <sp-tooltip slot=\"hover-content\" delayed>\n Described by this content on focus/hover. 2\n </sp-tooltip>\n </overlay-trigger>\n <div id=\"descriptor\">I'm a description!</div>\n `);\n\n const trigger = el.querySelector('[slot=\"trigger\"]') as HTMLElement;\n const tooltip = el.querySelector('sp-tooltip') as Tooltip;\n\n await elementUpdated(el);\n\n expect(trigger.getAttribute('aria-describedby')).to.equal('descriptor');\n expect(el.open).to.be.undefined;\n expect(el.childNodes.length, 'always').to.equal(5);\n\n const opened = oneEvent(el, 'sp-opened');\n trigger.dispatchEvent(\n new FocusEvent('focusin', { bubbles: true, composed: true })\n );\n await opened;\n\n expect(trigger.getAttribute('aria-describedby')).to.equal(\n `descriptor ${\n (tooltip as unknown as { _tooltipId: string })._tooltipId\n }`\n );\n\n const closed = oneEvent(el, 'sp-closed');\n trigger.dispatchEvent(\n new FocusEvent('focusout', { bubbles: true, composed: true })\n );\n await closed;\n\n expect(trigger.getAttribute('aria-describedby')).to.equal('descriptor');\n });\n it('adds and removes `aria-describedby` attribute', async () => {\n const el = await fixture<OverlayTrigger>(html`\n <overlay-trigger placement=\"right-start\">\n <sp-action-button slot=\"trigger\">\n Button with Tooltip\n </sp-action-button>\n <sp-tooltip slot=\"hover-content\" delayed>\n Described by this content on focus/hover. 2\n </sp-tooltip>\n </overlay-trigger>\n `);\n\n const trigger = el.querySelector('[slot=\"trigger\"]') as HTMLElement;\n const tooltip = el.querySelector('sp-tooltip') as Tooltip;\n\n await elementUpdated(el);\n\n expect(trigger.hasAttribute('aria-describedby')).to.be.false;\n expect(el.open).to.be.undefined;\n expect(el.childNodes.length, 'always').to.equal(5);\n\n const opened = oneEvent(el, 'sp-opened');\n trigger.dispatchEvent(\n new FocusEvent('focusin', { bubbles: true, composed: true })\n );\n await opened;\n\n expect(trigger.getAttribute('aria-describedby')).to.equal(\n `${(tooltip as unknown as { _tooltipId: string })._tooltipId}`\n );\n\n const closed = oneEvent(el, 'sp-closed');\n trigger.dispatchEvent(\n new FocusEvent('focusout', { bubbles: true, composed: true })\n );\n await closed;\n\n expect(trigger.hasAttribute('aria-describedby')).to.be.false;\n });\n it('does not duplicate `aria-describedby` attribute', async () => {\n const el = await fixture<OverlayTrigger>(html`\n <overlay-trigger placement=\"right-start\">\n <sp-action-button slot=\"trigger\">\n Button with Tooltip\n </sp-action-button>\n <sp-tooltip slot=\"hover-content\" delayed>\n Described by this content on focus/hover. 2\n </sp-tooltip>\n </overlay-trigger>\n `);\n\n const trigger = el.querySelector('[slot=\"trigger\"]') as HTMLElement;\n const tooltip = el.querySelector('sp-tooltip') as Tooltip;\n const tooltipId = (tooltip as unknown as { _tooltipId: string })\n ._tooltipId;\n trigger.setAttribute('aria-describedby', tooltipId);\n\n await elementUpdated(el);\n\n expect(trigger.getAttribute('aria-describedby')).to.equal(tooltipId);\n expect(el.open).to.be.undefined;\n expect(el.childNodes.length, 'always').to.equal(5);\n\n const opened = oneEvent(el, 'sp-opened');\n trigger.dispatchEvent(\n new FocusEvent('focusin', { bubbles: true, composed: true })\n );\n await opened;\n\n expect(trigger.getAttribute('aria-describedby')).to.equal(tooltipId);\n\n const closed = oneEvent(el, 'sp-closed');\n trigger.dispatchEvent(\n new FocusEvent('focusout', { bubbles: true, composed: true })\n );\n await closed;\n\n expect(trigger.getAttribute('aria-describedby')).to.equal(tooltipId);\n });\n});\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,117 +1,2 @@
1
- import { useFakeTimers } from "sinon";
2
- import { OverlayTimer } from "@spectrum-web-components/overlay/src/overlay-timer.js";
3
- import { expect } from "@open-wc/testing";
4
- describe("Overlays timer", () => {
5
- let clock;
6
- beforeEach(() => {
7
- clock = useFakeTimers();
8
- });
9
- afterEach(() => {
10
- clock.restore();
11
- });
12
- it("should resolve after warmup", async () => {
13
- const timer = new OverlayTimer({
14
- warmUpDelay: 500,
15
- coolDownDelay: 500
16
- });
17
- const element = document.createElement("div");
18
- const promise = timer.openTimer(element);
19
- clock.next();
20
- expect(clock.now).to.equal(500);
21
- const cancelled = await promise;
22
- expect(cancelled).to.be.false;
23
- });
24
- it("should resolve true when cancelled", async () => {
25
- const timer = new OverlayTimer({
26
- warmUpDelay: 500,
27
- coolDownDelay: 500
28
- });
29
- const element = document.createElement("div");
30
- const promise = timer.openTimer(element);
31
- clock.tick(10);
32
- timer.close(element);
33
- clock.next();
34
- const cancelled = await promise;
35
- expect(cancelled).to.be.true;
36
- });
37
- it("should resolve cancelled when opening new overlay", async () => {
38
- const timer = new OverlayTimer({
39
- warmUpDelay: 500,
40
- coolDownDelay: 500
41
- });
42
- const element1 = document.createElement("div");
43
- const element2 = document.createElement("div");
44
- const promise1 = timer.openTimer(element1);
45
- clock.tick(10);
46
- const promise2 = timer.openTimer(element2);
47
- clock.tick(10);
48
- let cancelled = await promise1;
49
- expect(cancelled).to.be.true;
50
- clock.next();
51
- cancelled = await promise2;
52
- expect(cancelled).to.be.false;
53
- expect(clock.now).to.equal(510);
54
- });
55
- it("should cooldown after closing overlay", async () => {
56
- const timer = new OverlayTimer({
57
- warmUpDelay: 500,
58
- coolDownDelay: 500
59
- });
60
- const element = document.createElement("div");
61
- let promise = timer.openTimer(element);
62
- clock.next();
63
- timer.close(element);
64
- clock.next();
65
- expect(clock.now).to.equal(1e3);
66
- promise = timer.openTimer(element);
67
- clock.next();
68
- const cancelled = await promise;
69
- expect(cancelled).to.be.false;
70
- expect(clock.now).to.equal(1500);
71
- });
72
- it("should open overlay quickly when hot", async () => {
73
- const timer = new OverlayTimer({
74
- warmUpDelay: 500,
75
- coolDownDelay: 500
76
- });
77
- const element = document.createElement("div");
78
- let promise = timer.openTimer(element);
79
- clock.next();
80
- timer.close(element);
81
- clock.tick(1);
82
- promise = timer.openTimer(element);
83
- clock.next();
84
- const cancelled = await promise;
85
- expect(cancelled).to.be.false;
86
- expect(clock.now).to.equal(501);
87
- });
88
- it("should cooldown after opening and closing overlay multiple times", async () => {
89
- const timer = new OverlayTimer({
90
- warmUpDelay: 500,
91
- coolDownDelay: 500
92
- });
93
- const element = document.createElement("div");
94
- let promise = timer.openTimer(element);
95
- clock.next();
96
- expect(clock.now).to.equal(500);
97
- timer.close(element);
98
- clock.tick(1);
99
- for (let i = 0; i < 10; i++) {
100
- const element2 = document.createElement("div");
101
- promise = timer.openTimer(element2);
102
- clock.next();
103
- const cancelled2 = await promise;
104
- expect(cancelled2).to.be.false;
105
- timer.close(element2);
106
- clock.tick(1);
107
- }
108
- clock.next();
109
- expect(clock.now).to.equal(1010);
110
- promise = timer.openTimer(element);
111
- clock.next();
112
- const cancelled = await promise;
113
- expect(cancelled).to.be.false;
114
- expect(clock.now).to.equal(1510);
115
- });
116
- });
1
+ import{useFakeTimers as s}from"sinon";import{OverlayTimer as i}from"@spectrum-web-components/overlay/src/overlay-timer.js";import{expect as l}from"@open-wc/testing";describe("Overlays timer",()=>{let e;beforeEach(()=>{e=s()}),afterEach(()=>{e.restore()}),it("should resolve after warmup",async()=>{const o=new i({warmUpDelay:500,coolDownDelay:500}),t=document.createElement("div"),n=o.openTimer(t);e.next(),l(e.now).to.equal(500);const c=await n;l(c).to.be.false}),it("should resolve true when cancelled",async()=>{const o=new i({warmUpDelay:500,coolDownDelay:500}),t=document.createElement("div"),n=o.openTimer(t);e.tick(10),o.close(t),e.next();const c=await n;l(c).to.be.true}),it("should resolve cancelled when opening new overlay",async()=>{const o=new i({warmUpDelay:500,coolDownDelay:500}),t=document.createElement("div"),n=document.createElement("div"),c=o.openTimer(t);e.tick(10);const r=o.openTimer(n);e.tick(10);let a=await c;l(a).to.be.true,e.next(),a=await r,l(a).to.be.false,l(e.now).to.equal(510)}),it("should cooldown after closing overlay",async()=>{const o=new i({warmUpDelay:500,coolDownDelay:500}),t=document.createElement("div");let n=o.openTimer(t);e.next(),o.close(t),e.next(),l(e.now).to.equal(1e3),n=o.openTimer(t),e.next();const c=await n;l(c).to.be.false,l(e.now).to.equal(1500)}),it("should open overlay quickly when hot",async()=>{const o=new i({warmUpDelay:500,coolDownDelay:500}),t=document.createElement("div");let n=o.openTimer(t);e.next(),o.close(t),e.tick(1),n=o.openTimer(t),e.next();const c=await n;l(c).to.be.false,l(e.now).to.equal(501)}),it("should cooldown after opening and closing overlay multiple times",async()=>{const o=new i({warmUpDelay:500,coolDownDelay:500}),t=document.createElement("div");let n=o.openTimer(t);e.next(),l(e.now).to.equal(500),o.close(t),e.tick(1);for(let r=0;r<10;r++){const a=document.createElement("div");n=o.openTimer(a),e.next();const m=await n;l(m).to.be.false,o.close(a),e.tick(1)}e.next(),l(e.now).to.equal(1010),n=o.openTimer(t),e.next();const c=await n;l(c).to.be.false,l(e.now).to.equal(1510)})});
117
2
  //# sourceMappingURL=overlay-timer.test.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["overlay-timer.test.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { SinonFakeTimers, useFakeTimers } from 'sinon';\nimport { OverlayTimer } from '@spectrum-web-components/overlay/src/overlay-timer.js';\nimport { expect } from '@open-wc/testing';\n\ndescribe('Overlays timer', () => {\n let clock: SinonFakeTimers;\n\n beforeEach(() => {\n clock = useFakeTimers();\n });\n\n afterEach(() => {\n clock.restore();\n });\n\n it('should resolve after warmup', async () => {\n const timer = new OverlayTimer({\n warmUpDelay: 500,\n coolDownDelay: 500,\n });\n const element = document.createElement('div');\n const promise = timer.openTimer(element);\n clock.next();\n expect(clock.now).to.equal(500);\n const cancelled = await promise;\n expect(cancelled).to.be.false;\n });\n\n it('should resolve true when cancelled', async () => {\n const timer = new OverlayTimer({\n warmUpDelay: 500,\n coolDownDelay: 500,\n });\n const element = document.createElement('div');\n const promise = timer.openTimer(element);\n clock.tick(10);\n timer.close(element);\n clock.next();\n const cancelled = await promise;\n expect(cancelled).to.be.true;\n });\n\n it('should resolve cancelled when opening new overlay', async () => {\n const timer = new OverlayTimer({\n warmUpDelay: 500,\n coolDownDelay: 500,\n });\n const element1 = document.createElement('div');\n const element2 = document.createElement('div');\n const promise1 = timer.openTimer(element1);\n clock.tick(10);\n const promise2 = timer.openTimer(element2);\n clock.tick(10);\n let cancelled = await promise1;\n expect(cancelled).to.be.true;\n clock.next();\n cancelled = await promise2;\n expect(cancelled).to.be.false;\n expect(clock.now).to.equal(510);\n });\n\n it('should cooldown after closing overlay', async () => {\n const timer = new OverlayTimer({\n warmUpDelay: 500,\n coolDownDelay: 500,\n });\n const element = document.createElement('div');\n let promise = timer.openTimer(element);\n clock.next();\n timer.close(element);\n clock.next();\n expect(clock.now).to.equal(1000);\n promise = timer.openTimer(element);\n clock.next();\n const cancelled = await promise;\n expect(cancelled).to.be.false;\n expect(clock.now).to.equal(1500);\n });\n\n it('should open overlay quickly when hot', async () => {\n const timer = new OverlayTimer({\n warmUpDelay: 500,\n coolDownDelay: 500,\n });\n const element = document.createElement('div');\n let promise = timer.openTimer(element);\n clock.next();\n timer.close(element);\n clock.tick(1);\n promise = timer.openTimer(element);\n clock.next();\n const cancelled = await promise;\n expect(cancelled).to.be.false;\n expect(clock.now).to.equal(501);\n });\n\n it('should cooldown after opening and closing overlay multiple times', async () => {\n const timer = new OverlayTimer({\n warmUpDelay: 500,\n coolDownDelay: 500,\n });\n const element = document.createElement('div');\n let promise = timer.openTimer(element);\n clock.next();\n expect(clock.now).to.equal(500);\n timer.close(element);\n clock.tick(1);\n\n for (let i = 0; i < 10; i++) {\n const element = document.createElement('div');\n promise = timer.openTimer(element);\n clock.next();\n const cancelled = await promise;\n expect(cancelled).to.be.false;\n timer.close(element);\n clock.tick(1);\n }\n\n // Wait for cooldown\n clock.next();\n expect(clock.now).to.equal(1010);\n promise = timer.openTimer(element);\n clock.next();\n const cancelled = await promise;\n expect(cancelled).to.be.false;\n expect(clock.now).to.equal(1510);\n });\n});\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }