@spectrum-web-components/dialog 0.11.6 → 0.11.8

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.
@@ -803,6 +803,15 @@
803
803
  "default": "''",
804
804
  "attribute": "headline"
805
805
  },
806
+ {
807
+ "kind": "field",
808
+ "name": "headlineVisibility",
809
+ "type": {
810
+ "text": "'none' | undefined"
811
+ },
812
+ "privacy": "public",
813
+ "attribute": "headline-visibility"
814
+ },
806
815
  {
807
816
  "kind": "field",
808
817
  "name": "dialog",
@@ -1221,6 +1230,13 @@
1221
1230
  "default": "''",
1222
1231
  "fieldName": "headline"
1223
1232
  },
1233
+ {
1234
+ "name": "headline-visibility",
1235
+ "type": {
1236
+ "text": "'none' | undefined"
1237
+ },
1238
+ "fieldName": "headlineVisibility"
1239
+ },
1224
1240
  {
1225
1241
  "name": "dismissable",
1226
1242
  "type": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/dialog",
3
- "version": "0.11.6",
3
+ "version": "0.11.8",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -73,17 +73,17 @@
73
73
  "lit-html"
74
74
  ],
75
75
  "dependencies": {
76
- "@spectrum-web-components/base": "^0.7.1",
77
- "@spectrum-web-components/button": "^0.19.6",
78
- "@spectrum-web-components/button-group": "^0.10.1",
79
- "@spectrum-web-components/divider": "^0.6.1",
80
- "@spectrum-web-components/icons-workflow": "^0.9.3",
81
- "@spectrum-web-components/modal": "^0.7.2",
82
- "@spectrum-web-components/shared": "^0.15.2",
83
- "@spectrum-web-components/underlay": "^0.9.1"
76
+ "@spectrum-web-components/base": "^0.7.2",
77
+ "@spectrum-web-components/button": "^0.19.8",
78
+ "@spectrum-web-components/button-group": "^0.10.3",
79
+ "@spectrum-web-components/divider": "^0.6.3",
80
+ "@spectrum-web-components/icons-workflow": "^0.9.5",
81
+ "@spectrum-web-components/modal": "^0.7.4",
82
+ "@spectrum-web-components/shared": "^0.15.3",
83
+ "@spectrum-web-components/underlay": "^0.9.3"
84
84
  },
85
85
  "devDependencies": {
86
- "@spectrum-css/dialog": "^6.0.15"
86
+ "@spectrum-css/dialog": "^6.0.16"
87
87
  },
88
88
  "types": "./src/index.d.ts",
89
89
  "customElements": "custom-elements.json",
@@ -91,5 +91,5 @@
91
91
  "./sp-*.js",
92
92
  "./**/*.dev.js"
93
93
  ],
94
- "gitHead": "8bd87724e91e23df83dbf63a434bbbe10b8daaa6"
94
+ "gitHead": "34bbc8bf1636f2d78ca9d5dbabc0b89da625572f"
95
95
  }
@@ -25,6 +25,7 @@ export declare class DialogWrapper extends DialogBase {
25
25
  size?: 's' | 'm' | 'l';
26
26
  secondaryLabel: string;
27
27
  headline: string;
28
+ headlineVisibility: 'none' | undefined;
28
29
  protected get dialog(): Dialog;
29
30
  private clickSecondary;
30
31
  private clickCancel;
@@ -60,10 +60,23 @@ export class DialogWrapper extends DialogBase {
60
60
  );
61
61
  }
62
62
  renderDialog() {
63
+ const hideDivider = this.noDivider || !this.headline || this.headlineVisibility === "none";
64
+ if (true) {
65
+ if (!this.headline) {
66
+ window.__swc.warn(
67
+ this,
68
+ `<${this.localName}> elements will not be accessible to screen readers without a "headline" attribute or property.`,
69
+ "https://opensource.adobe.com/spectrum-web-components/components/dialog-wrapper/#accessibility",
70
+ {
71
+ type: "accessibility"
72
+ }
73
+ );
74
+ }
75
+ }
63
76
  return html`
64
77
  <sp-dialog
65
78
  ?dismissable=${this.dismissable}
66
- ?no-divider=${this.noDivider}
79
+ ?no-divider=${hideDivider}
67
80
  ?error=${this.error}
68
81
  mode=${ifDefined(this.mode)}
69
82
  size=${ifDefined(this.size)}
@@ -81,7 +94,12 @@ export class DialogWrapper extends DialogBase {
81
94
  />
82
95
  ` : html``}
83
96
  ${this.headline ? html`
84
- <h2 slot="heading">${this.headline}</h2>
97
+ <h2
98
+ slot="heading"
99
+ ?hidden=${this.headlineVisibility === "none"}
100
+ >
101
+ ${this.headline}
102
+ </h2>
85
103
  ` : html``}
86
104
  <slot></slot>
87
105
  ${this.footer ? html`
@@ -150,4 +168,7 @@ __decorateClass([
150
168
  __decorateClass([
151
169
  property()
152
170
  ], DialogWrapper.prototype, "headline", 2);
171
+ __decorateClass([
172
+ property({ type: String, attribute: "headline-visibility" })
173
+ ], DialogWrapper.prototype, "headlineVisibility", 2);
153
174
  //# sourceMappingURL=DialogWrapper.dev.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["DialogWrapper.ts"],
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 {\n CSSResultArray,\n html,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/underlay/sp-underlay.js';\nimport '@spectrum-web-components/button/sp-button.js';\n\nimport '../sp-dialog.dev.js'\nimport { DialogBase } from './DialogBase.dev.js'\nimport { Dialog } from './Dialog.dev.js'\n\n/**\n * @element sp-dialog-wrapper\n *\n * @slot - content for the dialog\n * @fires secondary - Announces that the \"secondary\" button has been clicked.\n * @fires cancel - Announces that the \"cancel\" button has been clicked.\n * @fires confirm - Announces that the \"confirm\" button has been clicked.\n * @fires close - Announces that the dialog has been closed.\n */\nexport class DialogWrapper extends DialogBase {\n public static override get styles(): CSSResultArray {\n return [...super.styles];\n }\n\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ attribute: 'cancel-label' })\n public cancelLabel = '';\n\n @property({ attribute: 'confirm-label' })\n public confirmLabel = '';\n\n @property()\n public footer = '';\n\n @property()\n public hero = '';\n\n @property({ attribute: 'hero-label' })\n public heroLabel = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n @property({ attribute: 'secondary-label' })\n public secondaryLabel = '';\n\n @property()\n public headline = '';\n\n protected override get dialog(): Dialog {\n return this.shadowRoot.querySelector('sp-dialog') as Dialog;\n }\n\n private clickSecondary(): void {\n this.dispatchEvent(\n new Event('secondary', {\n bubbles: true,\n })\n );\n }\n\n private clickCancel(): void {\n this.dispatchEvent(\n new Event('cancel', {\n bubbles: true,\n })\n );\n }\n\n private clickConfirm(): void {\n this.dispatchEvent(\n new Event('confirm', {\n bubbles: true,\n })\n );\n }\n\n protected override renderDialog(): TemplateResult {\n return html`\n <sp-dialog\n ?dismissable=${this.dismissable}\n ?no-divider=${this.noDivider}\n ?error=${this.error}\n mode=${ifDefined(this.mode)}\n size=${ifDefined(this.size)}\n >\n ${this.hero\n ? html`\n <img\n src=\"${this.hero}\"\n slot=\"hero\"\n aria-hidden=${ifDefined(\n this.heroLabel ? undefined : 'true'\n )}\n alt=${ifDefined(\n this.heroLabel ? this.heroLabel : undefined\n )}\n />\n `\n : html``}\n ${this.headline\n ? html`\n <h2 slot=\"heading\">${this.headline}</h2>\n `\n : html``}\n <slot></slot>\n ${this.footer\n ? html`\n <div slot=\"footer\">${this.footer}</div>\n `\n : html``}\n ${this.cancelLabel\n ? html`\n <sp-button\n variant=\"secondary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickCancel}\n >\n ${this.cancelLabel}\n </sp-button>\n `\n : html``}\n ${this.secondaryLabel\n ? html`\n <sp-button\n variant=\"primary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickSecondary}\n >\n ${this.secondaryLabel}\n </sp-button>\n `\n : html``}\n ${this.confirmLabel\n ? html`\n <sp-button\n variant=\"accent\"\n slot=\"button\"\n @click=${this.clickConfirm}\n >\n ${this.confirmLabel}\n </sp-button>\n `\n : html``}\n </sp-dialog>\n `;\n }\n}\n"],
5
- "mappings": "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",
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 {\n CSSResultArray,\n html,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/underlay/sp-underlay.js';\nimport '@spectrum-web-components/button/sp-button.js';\n\nimport '../sp-dialog.dev.js'\nimport { DialogBase } from './DialogBase.dev.js'\nimport { Dialog } from './Dialog.dev.js'\n\n/**\n * @element sp-dialog-wrapper\n *\n * @slot - content for the dialog\n * @fires secondary - Announces that the \"secondary\" button has been clicked.\n * @fires cancel - Announces that the \"cancel\" button has been clicked.\n * @fires confirm - Announces that the \"confirm\" button has been clicked.\n * @fires close - Announces that the dialog has been closed.\n */\nexport class DialogWrapper extends DialogBase {\n public static override get styles(): CSSResultArray {\n return [...super.styles];\n }\n\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ attribute: 'cancel-label' })\n public cancelLabel = '';\n\n @property({ attribute: 'confirm-label' })\n public confirmLabel = '';\n\n @property()\n public footer = '';\n\n @property()\n public hero = '';\n\n @property({ attribute: 'hero-label' })\n public heroLabel = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n @property({ attribute: 'secondary-label' })\n public secondaryLabel = '';\n\n @property()\n public headline = '';\n\n @property({ type: String, attribute: 'headline-visibility' })\n public headlineVisibility: 'none' | undefined;\n\n protected override get dialog(): Dialog {\n return this.shadowRoot.querySelector('sp-dialog') as Dialog;\n }\n\n private clickSecondary(): void {\n this.dispatchEvent(\n new Event('secondary', {\n bubbles: true,\n })\n );\n }\n\n private clickCancel(): void {\n this.dispatchEvent(\n new Event('cancel', {\n bubbles: true,\n })\n );\n }\n\n private clickConfirm(): void {\n this.dispatchEvent(\n new Event('confirm', {\n bubbles: true,\n })\n );\n }\n\n protected override renderDialog(): TemplateResult {\n const hideDivider =\n this.noDivider ||\n !this.headline ||\n this.headlineVisibility === 'none';\n\n if (window.__swc.DEBUG) {\n if (!this.headline) {\n window.__swc.warn(\n this,\n `<${this.localName}> elements will not be accessible to screen readers without a \"headline\" attribute or property.`,\n 'https://opensource.adobe.com/spectrum-web-components/components/dialog-wrapper/#accessibility',\n {\n type: 'accessibility',\n }\n );\n }\n }\n\n return html`\n <sp-dialog\n ?dismissable=${this.dismissable}\n ?no-divider=${hideDivider}\n ?error=${this.error}\n mode=${ifDefined(this.mode)}\n size=${ifDefined(this.size)}\n >\n ${this.hero\n ? html`\n <img\n src=\"${this.hero}\"\n slot=\"hero\"\n aria-hidden=${ifDefined(\n this.heroLabel ? undefined : 'true'\n )}\n alt=${ifDefined(\n this.heroLabel ? this.heroLabel : undefined\n )}\n />\n `\n : html``}\n ${this.headline\n ? html`\n <h2\n slot=\"heading\"\n ?hidden=${this.headlineVisibility === 'none'}\n >\n ${this.headline}\n </h2>\n `\n : html``}\n <slot></slot>\n ${this.footer\n ? html`\n <div slot=\"footer\">${this.footer}</div>\n `\n : html``}\n ${this.cancelLabel\n ? html`\n <sp-button\n variant=\"secondary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickCancel}\n >\n ${this.cancelLabel}\n </sp-button>\n `\n : html``}\n ${this.secondaryLabel\n ? html`\n <sp-button\n variant=\"primary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickSecondary}\n >\n ${this.secondaryLabel}\n </sp-button>\n `\n : html``}\n ${this.confirmLabel\n ? html`\n <sp-button\n variant=\"accent\"\n slot=\"button\"\n @click=${this.clickConfirm}\n >\n ${this.confirmLabel}\n </sp-button>\n `\n : html``}\n </sp-dialog>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,21 +1,26 @@
1
- "use strict";var d=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var t=(n,r,c,l)=>{for(var o=l>1?void 0:l?h(r,c):r,a=n.length-1,b;a>=0;a--)(b=n[a])&&(o=(l?b(r,c,o):b(o))||o);return l&&o&&d(r,c,o),o};import{html as e}from"@spectrum-web-components/base";import{property as i}from"@spectrum-web-components/base/src/decorators.js";import{ifDefined as s}from"@spectrum-web-components/base/src/directives.js";import"@spectrum-web-components/underlay/sp-underlay.js";import"@spectrum-web-components/button/sp-button.js";import"../sp-dialog.js";import{DialogBase as u}from"./DialogBase.js";export class DialogWrapper extends u{constructor(){super(...arguments);this.error=!1;this.cancelLabel="";this.confirmLabel="";this.footer="";this.hero="";this.heroLabel="";this.noDivider=!1;this.secondaryLabel="";this.headline=""}static get styles(){return[...super.styles]}get dialog(){return this.shadowRoot.querySelector("sp-dialog")}clickSecondary(){this.dispatchEvent(new Event("secondary",{bubbles:!0}))}clickCancel(){this.dispatchEvent(new Event("cancel",{bubbles:!0}))}clickConfirm(){this.dispatchEvent(new Event("confirm",{bubbles:!0}))}renderDialog(){return e`
1
+ "use strict";var b=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var t=(c,o,l,r)=>{for(var s=r>1?void 0:r?h(o,l):o,a=c.length-1,d;a>=0;a--)(d=c[a])&&(s=(r?d(o,l,s):d(s))||s);return r&&s&&b(o,l,s),s};import{html as e}from"@spectrum-web-components/base";import{property as i}from"@spectrum-web-components/base/src/decorators.js";import{ifDefined as n}from"@spectrum-web-components/base/src/directives.js";import"@spectrum-web-components/underlay/sp-underlay.js";import"@spectrum-web-components/button/sp-button.js";import"../sp-dialog.js";import{DialogBase as u}from"./DialogBase.js";export class DialogWrapper extends u{constructor(){super(...arguments);this.error=!1;this.cancelLabel="";this.confirmLabel="";this.footer="";this.hero="";this.heroLabel="";this.noDivider=!1;this.secondaryLabel="";this.headline=""}static get styles(){return[...super.styles]}get dialog(){return this.shadowRoot.querySelector("sp-dialog")}clickSecondary(){this.dispatchEvent(new Event("secondary",{bubbles:!0}))}clickCancel(){this.dispatchEvent(new Event("cancel",{bubbles:!0}))}clickConfirm(){this.dispatchEvent(new Event("confirm",{bubbles:!0}))}renderDialog(){const l=this.noDivider||!this.headline||this.headlineVisibility==="none";return e`
2
2
  <sp-dialog
3
3
  ?dismissable=${this.dismissable}
4
- ?no-divider=${this.noDivider}
4
+ ?no-divider=${l}
5
5
  ?error=${this.error}
6
- mode=${s(this.mode)}
7
- size=${s(this.size)}
6
+ mode=${n(this.mode)}
7
+ size=${n(this.size)}
8
8
  >
9
9
  ${this.hero?e`
10
10
  <img
11
11
  src="${this.hero}"
12
12
  slot="hero"
13
- aria-hidden=${s(this.heroLabel?void 0:"true")}
14
- alt=${s(this.heroLabel?this.heroLabel:void 0)}
13
+ aria-hidden=${n(this.heroLabel?void 0:"true")}
14
+ alt=${n(this.heroLabel?this.heroLabel:void 0)}
15
15
  />
16
16
  `:e``}
17
17
  ${this.headline?e`
18
- <h2 slot="heading">${this.headline}</h2>
18
+ <h2
19
+ slot="heading"
20
+ ?hidden=${this.headlineVisibility==="none"}
21
+ >
22
+ ${this.headline}
23
+ </h2>
19
24
  `:e``}
20
25
  <slot></slot>
21
26
  ${this.footer?e`
@@ -51,5 +56,5 @@
51
56
  </sp-button>
52
57
  `:e``}
53
58
  </sp-dialog>
54
- `}}t([i({type:Boolean,reflect:!0})],DialogWrapper.prototype,"error",2),t([i({attribute:"cancel-label"})],DialogWrapper.prototype,"cancelLabel",2),t([i({attribute:"confirm-label"})],DialogWrapper.prototype,"confirmLabel",2),t([i()],DialogWrapper.prototype,"footer",2),t([i()],DialogWrapper.prototype,"hero",2),t([i({attribute:"hero-label"})],DialogWrapper.prototype,"heroLabel",2),t([i({type:Boolean,reflect:!0,attribute:"no-divider"})],DialogWrapper.prototype,"noDivider",2),t([i({type:String,reflect:!0})],DialogWrapper.prototype,"size",2),t([i({attribute:"secondary-label"})],DialogWrapper.prototype,"secondaryLabel",2),t([i()],DialogWrapper.prototype,"headline",2);
59
+ `}}t([i({type:Boolean,reflect:!0})],DialogWrapper.prototype,"error",2),t([i({attribute:"cancel-label"})],DialogWrapper.prototype,"cancelLabel",2),t([i({attribute:"confirm-label"})],DialogWrapper.prototype,"confirmLabel",2),t([i()],DialogWrapper.prototype,"footer",2),t([i()],DialogWrapper.prototype,"hero",2),t([i({attribute:"hero-label"})],DialogWrapper.prototype,"heroLabel",2),t([i({type:Boolean,reflect:!0,attribute:"no-divider"})],DialogWrapper.prototype,"noDivider",2),t([i({type:String,reflect:!0})],DialogWrapper.prototype,"size",2),t([i({attribute:"secondary-label"})],DialogWrapper.prototype,"secondaryLabel",2),t([i()],DialogWrapper.prototype,"headline",2),t([i({type:String,attribute:"headline-visibility"})],DialogWrapper.prototype,"headlineVisibility",2);
55
60
  //# sourceMappingURL=DialogWrapper.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["DialogWrapper.ts"],
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 {\n CSSResultArray,\n html,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/underlay/sp-underlay.js';\nimport '@spectrum-web-components/button/sp-button.js';\n\nimport '../sp-dialog.js';\nimport { DialogBase } from './DialogBase.js';\nimport { Dialog } from './Dialog.js';\n\n/**\n * @element sp-dialog-wrapper\n *\n * @slot - content for the dialog\n * @fires secondary - Announces that the \"secondary\" button has been clicked.\n * @fires cancel - Announces that the \"cancel\" button has been clicked.\n * @fires confirm - Announces that the \"confirm\" button has been clicked.\n * @fires close - Announces that the dialog has been closed.\n */\nexport class DialogWrapper extends DialogBase {\n public static override get styles(): CSSResultArray {\n return [...super.styles];\n }\n\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ attribute: 'cancel-label' })\n public cancelLabel = '';\n\n @property({ attribute: 'confirm-label' })\n public confirmLabel = '';\n\n @property()\n public footer = '';\n\n @property()\n public hero = '';\n\n @property({ attribute: 'hero-label' })\n public heroLabel = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n @property({ attribute: 'secondary-label' })\n public secondaryLabel = '';\n\n @property()\n public headline = '';\n\n protected override get dialog(): Dialog {\n return this.shadowRoot.querySelector('sp-dialog') as Dialog;\n }\n\n private clickSecondary(): void {\n this.dispatchEvent(\n new Event('secondary', {\n bubbles: true,\n })\n );\n }\n\n private clickCancel(): void {\n this.dispatchEvent(\n new Event('cancel', {\n bubbles: true,\n })\n );\n }\n\n private clickConfirm(): void {\n this.dispatchEvent(\n new Event('confirm', {\n bubbles: true,\n })\n );\n }\n\n protected override renderDialog(): TemplateResult {\n return html`\n <sp-dialog\n ?dismissable=${this.dismissable}\n ?no-divider=${this.noDivider}\n ?error=${this.error}\n mode=${ifDefined(this.mode)}\n size=${ifDefined(this.size)}\n >\n ${this.hero\n ? html`\n <img\n src=\"${this.hero}\"\n slot=\"hero\"\n aria-hidden=${ifDefined(\n this.heroLabel ? undefined : 'true'\n )}\n alt=${ifDefined(\n this.heroLabel ? this.heroLabel : undefined\n )}\n />\n `\n : html``}\n ${this.headline\n ? html`\n <h2 slot=\"heading\">${this.headline}</h2>\n `\n : html``}\n <slot></slot>\n ${this.footer\n ? html`\n <div slot=\"footer\">${this.footer}</div>\n `\n : html``}\n ${this.cancelLabel\n ? html`\n <sp-button\n variant=\"secondary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickCancel}\n >\n ${this.cancelLabel}\n </sp-button>\n `\n : html``}\n ${this.secondaryLabel\n ? html`\n <sp-button\n variant=\"primary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickSecondary}\n >\n ${this.secondaryLabel}\n </sp-button>\n `\n : html``}\n ${this.confirmLabel\n ? html`\n <sp-button\n variant=\"accent\"\n slot=\"button\"\n @click=${this.clickConfirm}\n >\n ${this.confirmLabel}\n </sp-button>\n `\n : html``}\n </sp-dialog>\n `;\n }\n}\n"],
5
- "mappings": "qNAYA,OAEI,QAAAA,MAEG,gCACP,OAAS,YAAAC,MAAgB,kDACzB,OAAS,aAAAC,MAAiB,kDAE1B,MAAO,mDACP,MAAO,+CAEP,MAAO,kBACP,OAAS,cAAAC,MAAkB,kBAYpB,aAAM,sBAAsBA,CAAW,CAAvC,kCAMH,KAAO,MAAQ,GAGf,KAAO,YAAc,GAGrB,KAAO,aAAe,GAGtB,KAAO,OAAS,GAGhB,KAAO,KAAO,GAGd,KAAO,UAAY,GAGnB,KAAO,UAAY,GAMnB,KAAO,eAAiB,GAGxB,KAAO,SAAW,GAhClB,WAA2B,QAAyB,CAChD,MAAO,CAAC,GAAG,MAAM,MAAM,CAC3B,CAgCA,IAAuB,QAAiB,CACpC,OAAO,KAAK,WAAW,cAAc,WAAW,CACpD,CAEQ,gBAAuB,CAC3B,KAAK,cACD,IAAI,MAAM,YAAa,CACnB,QAAS,EACb,CAAC,CACL,CACJ,CAEQ,aAAoB,CACxB,KAAK,cACD,IAAI,MAAM,SAAU,CAChB,QAAS,EACb,CAAC,CACL,CACJ,CAEQ,cAAqB,CACzB,KAAK,cACD,IAAI,MAAM,UAAW,CACjB,QAAS,EACb,CAAC,CACL,CACJ,CAEmB,cAA+B,CAC9C,OAAOH;AAAA;AAAA,+BAEgB,KAAK;AAAA,8BACN,KAAK;AAAA,yBACV,KAAK;AAAA,uBACPE,EAAU,KAAK,IAAI;AAAA,uBACnBA,EAAU,KAAK,IAAI;AAAA;AAAA,kBAExB,KAAK,KACDF;AAAA;AAAA,qCAEe,KAAK;AAAA;AAAA,4CAEEE,EACV,KAAK,UAAY,OAAY,MACjC;AAAA,oCACMA,EACF,KAAK,UAAY,KAAK,UAAY,MACtC;AAAA;AAAA,wBAGRF;AAAA,kBACJ,KAAK,SACDA;AAAA,+CACyB,KAAK;AAAA,wBAE9BA;AAAA;AAAA,kBAEJ,KAAK,OACDA;AAAA,+CACyB,KAAK;AAAA,wBAE9BA;AAAA,kBACJ,KAAK,YACDA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAKiB,KAAK;AAAA;AAAA,gCAEZ,KAAK;AAAA;AAAA,wBAGfA;AAAA,kBACJ,KAAK,eACDA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAKiB,KAAK;AAAA;AAAA,gCAEZ,KAAK;AAAA;AAAA,wBAGfA;AAAA,kBACJ,KAAK,aACDA;AAAA;AAAA;AAAA;AAAA,uCAIiB,KAAK;AAAA;AAAA,gCAEZ,KAAK;AAAA;AAAA,wBAGfA;AAAA;AAAA,SAGlB,CACJ,CAjIWI,EAAA,CADNH,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GALjC,cAMF,qBAGAG,EAAA,CADNH,EAAS,CAAE,UAAW,cAAe,CAAC,GAR9B,cASF,2BAGAG,EAAA,CADNH,EAAS,CAAE,UAAW,eAAgB,CAAC,GAX/B,cAYF,4BAGAG,EAAA,CADNH,EAAS,GAdD,cAeF,sBAGAG,EAAA,CADNH,EAAS,GAjBD,cAkBF,oBAGAG,EAAA,CADNH,EAAS,CAAE,UAAW,YAAa,CAAC,GApB5B,cAqBF,yBAGAG,EAAA,CADNH,EAAS,CAAE,KAAM,QAAS,QAAS,GAAM,UAAW,YAAa,CAAC,GAvB1D,cAwBF,yBAGAG,EAAA,CADNH,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,GA1BhC,cA2BF,oBAGAG,EAAA,CADNH,EAAS,CAAE,UAAW,iBAAkB,CAAC,GA7BjC,cA8BF,8BAGAG,EAAA,CADNH,EAAS,GAhCD,cAiCF",
6
- "names": ["html", "property", "ifDefined", "DialogBase", "__decorateClass"]
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 {\n CSSResultArray,\n html,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/underlay/sp-underlay.js';\nimport '@spectrum-web-components/button/sp-button.js';\n\nimport '../sp-dialog.js';\nimport { DialogBase } from './DialogBase.js';\nimport { Dialog } from './Dialog.js';\n\n/**\n * @element sp-dialog-wrapper\n *\n * @slot - content for the dialog\n * @fires secondary - Announces that the \"secondary\" button has been clicked.\n * @fires cancel - Announces that the \"cancel\" button has been clicked.\n * @fires confirm - Announces that the \"confirm\" button has been clicked.\n * @fires close - Announces that the dialog has been closed.\n */\nexport class DialogWrapper extends DialogBase {\n public static override get styles(): CSSResultArray {\n return [...super.styles];\n }\n\n @property({ type: Boolean, reflect: true })\n public error = false;\n\n @property({ attribute: 'cancel-label' })\n public cancelLabel = '';\n\n @property({ attribute: 'confirm-label' })\n public confirmLabel = '';\n\n @property()\n public footer = '';\n\n @property()\n public hero = '';\n\n @property({ attribute: 'hero-label' })\n public heroLabel = '';\n\n @property({ type: Boolean, reflect: true, attribute: 'no-divider' })\n public noDivider = false;\n\n @property({ type: String, reflect: true })\n public size?: 's' | 'm' | 'l';\n\n @property({ attribute: 'secondary-label' })\n public secondaryLabel = '';\n\n @property()\n public headline = '';\n\n @property({ type: String, attribute: 'headline-visibility' })\n public headlineVisibility: 'none' | undefined;\n\n protected override get dialog(): Dialog {\n return this.shadowRoot.querySelector('sp-dialog') as Dialog;\n }\n\n private clickSecondary(): void {\n this.dispatchEvent(\n new Event('secondary', {\n bubbles: true,\n })\n );\n }\n\n private clickCancel(): void {\n this.dispatchEvent(\n new Event('cancel', {\n bubbles: true,\n })\n );\n }\n\n private clickConfirm(): void {\n this.dispatchEvent(\n new Event('confirm', {\n bubbles: true,\n })\n );\n }\n\n protected override renderDialog(): TemplateResult {\n const hideDivider =\n this.noDivider ||\n !this.headline ||\n this.headlineVisibility === 'none';\n\n if (window.__swc.DEBUG) {\n if (!this.headline) {\n window.__swc.warn(\n this,\n `<${this.localName}> elements will not be accessible to screen readers without a \"headline\" attribute or property.`,\n 'https://opensource.adobe.com/spectrum-web-components/components/dialog-wrapper/#accessibility',\n {\n type: 'accessibility',\n }\n );\n }\n }\n\n return html`\n <sp-dialog\n ?dismissable=${this.dismissable}\n ?no-divider=${hideDivider}\n ?error=${this.error}\n mode=${ifDefined(this.mode)}\n size=${ifDefined(this.size)}\n >\n ${this.hero\n ? html`\n <img\n src=\"${this.hero}\"\n slot=\"hero\"\n aria-hidden=${ifDefined(\n this.heroLabel ? undefined : 'true'\n )}\n alt=${ifDefined(\n this.heroLabel ? this.heroLabel : undefined\n )}\n />\n `\n : html``}\n ${this.headline\n ? html`\n <h2\n slot=\"heading\"\n ?hidden=${this.headlineVisibility === 'none'}\n >\n ${this.headline}\n </h2>\n `\n : html``}\n <slot></slot>\n ${this.footer\n ? html`\n <div slot=\"footer\">${this.footer}</div>\n `\n : html``}\n ${this.cancelLabel\n ? html`\n <sp-button\n variant=\"secondary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickCancel}\n >\n ${this.cancelLabel}\n </sp-button>\n `\n : html``}\n ${this.secondaryLabel\n ? html`\n <sp-button\n variant=\"primary\"\n treatment=\"outline\"\n slot=\"button\"\n @click=${this.clickSecondary}\n >\n ${this.secondaryLabel}\n </sp-button>\n `\n : html``}\n ${this.confirmLabel\n ? html`\n <sp-button\n variant=\"accent\"\n slot=\"button\"\n @click=${this.clickConfirm}\n >\n ${this.confirmLabel}\n </sp-button>\n `\n : html``}\n </sp-dialog>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["html", "property", "ifDefined", "DialogBase", "hideDivider", "__decorateClass"]
7
7
  }
@@ -405,6 +405,44 @@ export const wrapperFullscreen = (args = {}, context = {}) => {
405
405
  </sp-dialog-wrapper>
406
406
  `;
407
407
  };
408
+ export const wrapperWithHeadline = (args = {}, context = {}) => {
409
+ const open = context.viewMode === "docs" ? false : true;
410
+ return html`
411
+ <sp-dialog-wrapper
412
+ ?open=${open}
413
+ headline="Headline for dialog"
414
+ @close=${handleClose(args)}
415
+ >
416
+ Content of the dialog
417
+ </sp-dialog-wrapper>
418
+ `;
419
+ };
420
+ export const wrapperWithHeadlineNoDivider = (args = {}, context = {}) => {
421
+ const open = context.viewMode === "docs" ? false : true;
422
+ return html`
423
+ <sp-dialog-wrapper
424
+ ?open=${open}
425
+ headline="Headline for dialog"
426
+ no-divider=${true}
427
+ @close=${handleClose(args)}
428
+ >
429
+ Content of the dialog
430
+ </sp-dialog-wrapper>
431
+ `;
432
+ };
433
+ export const wrapperHeadlineVisibilityNone = (args = {}, context = {}) => {
434
+ const open = context.viewMode === "docs" ? false : true;
435
+ return html`
436
+ <sp-dialog-wrapper
437
+ headline="Accessible headline"
438
+ .headlineVisibility=${"none"}
439
+ ?open=${open}
440
+ @close=${handleClose(args)}
441
+ >
442
+ Content of the dialog
443
+ </sp-dialog-wrapper>
444
+ `;
445
+ };
408
446
  export const tooltips = (args = {}, context = {}) => {
409
447
  const open = context.viewMode === "docs" ? void 0 : "click";
410
448
  return html`
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["dialog-wrapper.stories.ts"],
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 { html, TemplateResult } from '@spectrum-web-components/base';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/button/sp-button.js';\nimport '@spectrum-web-components/field-label/sp-field-label.js';\nimport '@spectrum-web-components/help-text/sp-help-text.js';\nimport '@spectrum-web-components/textfield/sp-textfield.js';\nimport '@spectrum-web-components/tooltip/sp-tooltip.js';\nimport '@spectrum-web-components/overlay/overlay-trigger.js';\n\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { landscape } from './images.js';\nimport { overlayTriggerDecorator } from './index.js';\n\nexport default {\n title: 'Dialog Wrapped',\n component: 'sp-dialog-wrapper',\n argTypes: {\n onClose: { action: 'close' },\n onConfirm: { action: 'confirm' },\n onSecondary: { action: 'secondary' },\n onCancel: { action: 'cancel' },\n },\n};\n\ntype StoryArgs = {\n onClose?: (event: Event) => void;\n onConfirm?: (event: Event) => void;\n onSecondary?: (event: Event) => void;\n onCancel?: (event: Event) => void;\n};\n\nconst handleClose =\n ({ onClose }: StoryArgs) =>\n (event: Event) => {\n if (onClose) onClose(event);\n };\n\nconst handleConfirm =\n ({ onConfirm }: StoryArgs) =>\n (event: Event) => {\n if (onConfirm) onConfirm(event);\n };\n\nconst handleSecondary =\n ({ onSecondary }: StoryArgs) =>\n (event: Event) => {\n if (onSecondary) onSecondary(event);\n };\n\nconst handleCancel =\n ({ onCancel }: StoryArgs) =>\n (event: Event) => {\n if (onCancel) onCancel(event);\n };\n\nexport const wrapperLabeledHero = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n hero-label=\"Hero Image Alt Text\"\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const wrapperDismissable = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const wrapperDismissableUnderlay = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n underlay\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const form = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n placement=\"none\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n id=\"form-fields\"\n slot=\"click-content\"\n headline=\"Add Delivery Address\"\n underlay\n size=\"m\"\n confirm-label=\"Verify Address\"\n secondary-label=\"Add\"\n cancel-label=\"Cancel\"\n @close=${handleClose(args)}\n @confirm=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleConfirm(args);\n }}\n @secondary=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleSecondary(args);\n }}\n @cancel=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleCancel(args);\n }}\n >\n <style>\n #form-fields div {\n display: grid;\n row-gap: var(--spectrum-global-dimension-size-150);\n grid-template-columns: auto auto;\n\n --spectrum-fieldlabel-m-side-padding-right: 0;\n }\n </style>\n <div>\n <sp-field-label side-aligned=\"end\" for=\"street\">\n Street:\n </sp-field-label>\n <sp-textfield id=\"street\" autofocus></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"city\">\n City:\n </sp-field-label>\n <sp-textfield id=\"city\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"state\">\n State:\n </sp-field-label>\n <sp-textfield id=\"state\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"zip\">\n Zip:\n </sp-field-label>\n <sp-textfield id=\"zip\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"instructions\">\n Special instructions:\n </sp-field-label>\n <sp-textfield id=\"instructions\" multiline>\n <sp-help-text slot=\"help-text\">\n For example, gate code or other information to help\n the driver find you\n </sp-help-text>\n </sp-textfield>\n </div>\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\nform.decorators = [overlayTriggerDecorator];\n\nexport const longContent = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n placement=\"none\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n dismissable\n underlay\n size=\"s\"\n >\n <p>\n Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\n Sed ac dolor sit amet purus malesuada congue. Donec quis\n nibh at felis congue commodo. Ut enim ad minima veniam, quis\n nostrum exercitationem ullam corporis suscipit laboriosam,\n nisi ut aliquid ex ea commodi consequatur? Sed ac dolor sit\n amet purus malesuada congue. Nam libero tempore, cum soluta\n nobis est eligendi optio cumque nihil impedit quo minus id\n quod maxime placeat facere possimus, omnis voluptas\n assumenda est, omnis dolor repellendus. Nullam sit amet\n magna in magna gravida vehicula. Itaque earum rerum hic\n tenetur a sapiente delectus, ut aut reiciendis voluptatibus\n maiores alias consequatur aut perferendis doloribus\n asperiores repellat. Neque porro quisquam est, qui dolorem\n ipsum quia dolor sit amet, consectetur, adipisci velit, sed\n quia non numquam eius modi tempora incidunt ut labore et\n dolore magnam aliquam quaerat voluptatem. Phasellus faucibus\n molestie nisl. Vestibulum fermentum tortor id mi. Integer\n rutrum, orci vestibulum ullamcorper ultricies, lacus quam\n ultricies odio, vitae placerat pede sem sit amet enim.\n Maecenas sollicitudin. Nullam rhoncus aliquam metus.\n </p>\n <p>\n Curabitur ligula sapien, pulvinar a vestibulum quis,\n facilisis vel sapien. Fusce nibh. Proin pede metus,\n vulputate nec, fermentum fringilla, vehicula vitae, justo.\n Aenean placerat. Aliquam erat volutpat. Et harum quidem\n rerum facilis est et expedita distinctio. Fusce nibh.\n Temporibus autem quibusdam et aut officiis debitis aut rerum\n necessitatibus saepe eveniet ut et voluptates repudiandae\n sint et molestiae non recusandae. Vestibulum erat nulla,\n ullamcorper nec, rutrum non, nonummy ac, erat. Etiam posuere\n lacus quis dolor. Mauris elementum mauris vitae tortor.\n Nulla turpis magna, cursus sit amet, suscipit a, interdum\n id, felis. Nam libero tempore, cum soluta nobis est eligendi\n optio cumque nihil impedit quo minus id quod maxime placeat\n facere possimus, omnis voluptas assumenda est, omnis dolor\n repellendus. Nulla accumsan, elit sit amet varius semper,\n nulla mauris mollis quam, tempor suscipit diam nulla vel\n leo. Pellentesque sapien.\n </p>\n <p>\n Curabitur vitae diam non enim vestibulum interdum. Sed elit\n dui, pellentesque a, faucibus vel, interdum nec, diam.\n Praesent vitae arcu tempor neque lacinia pretium. Ut tempus\n purus at lorem. Phasellus rhoncus. Temporibus autem\n quibusdam et aut officiis debitis aut rerum necessitatibus\n saepe eveniet ut et voluptates repudiandae sint et molestiae\n non recusandae. Duis ante orci, molestie vitae vehicula\n venenatis, tincidunt ac pede. Integer vulputate sem a nibh\n rutrum consequat. Aenean placerat. Cum sociis natoque\n penatibus et magnis dis parturient montes, nascetur\n ridiculus mus. Sed vel lectus. Donec odio tempus molestie,\n porttitor ut, iaculis quis, sem. Class aptent taciti\n sociosqu ad litora torquent per conubia nostra, per inceptos\n hymenaeos. Integer in sapien. Nullam dapibus fermentum\n ipsum.\n </p>\n <p>\n Integer vulputate sem a nibh rutrum consequat. Class aptent\n taciti sociosqu ad litora torquent per conubia nostra, per\n inceptos hymenaeos. Duis bibendum, lectus ut viverra\n rhoncus, dolor nunc faucibus libero, eget facilisis enim\n ipsum id lacus. Aliquam erat volutpat. Aenean id metus id\n velit ullamcorper pulvinar. Morbi scelerisque luctus velit.\n Aliquam erat volutpat. Temporibus autem quibusdam et aut\n officiis debitis aut rerum necessitatibus saepe eveniet ut\n et voluptates repudiandae sint et molestiae non recusandae.\n Fusce dui leo, imperdiet in, aliquam sit amet, feugiat eu,\n orci. Suspendisse sagittis ultrices augue. Nullam justo\n enim, consectetuer nec, ullamcorper ac, vestibulum in, elit.\n Praesent vitae arcu tempor neque lacinia pretium. Nullam\n faucibus mi quis velit. Maecenas aliquet accumsan leo. Morbi\n scelerisque luctus velit. Aliquam ornare wisi eu metus.\n </p>\n <p>\n Sed elit dui, pellentesque a, faucibus vel, interdum nec,\n diam. Praesent vitae arcu tempor neque lacinia pretium.\n Etiam dictum tincidunt diam. Et harum quidem rerum facilis\n est et expedita distinctio. Duis ante orci, molestie vitae\n vehicula venenatis, tincidunt ac pede. Integer lacinia.\n Excepteur sint occaecat cupidatat non proident, sunt in\n culpa qui officia deserunt mollit anim id est laborum.\n Mauris tincidunt sem sed arcu. Praesent in mauris eu tortor\n porttitor accumsan. Aenean id metus id velit ullamcorper\n pulvinar. Donec iaculis gravida nulla. Duis bibendum, lectus\n ut viverra rhoncus, dolor nunc faucibus libero, eget\n facilisis enim ipsum id lacus. Nulla quis diam. Quisque\n porta. Integer rutrum, orci vestibulum ullamcorper\n ultricies, lacus quam ultricies odio, vitae placerat pede\n sem sit amet enim. Nam sed tellus id magna elementum\n tincidunt. In enim a arcu imperdiet malesuada.\n </p>\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\nlongContent.decorators = [overlayTriggerDecorator];\n\nexport const wrapperDismissableUnderlayError = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <div>\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n error\n headline=\"Wrapped Dialog w/ Hero Image\"\n underlay\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n </div>\n `;\n};\n\nexport const wrapperButtons = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n size=\"l\"\n headline=\"Wrapped Dialog w/ Buttons\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperButtonsUnderlay = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n underlay\n size=\"l\"\n headline=\"Wrapped Dialog w/ Buttons\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperFullscreen = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n headline=\"Wrapped Dialog - Fullscreen\"\n mode=\"fullscreen\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const tooltips = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n placement=\"none\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n dismissable\n underlay\n size=\"s\"\n >\n ${[1, 2, 3, 4].map(\n (index) => html`\n <overlay-trigger>\n <sp-button slot=\"trigger\">\n Button with Tooltip ${index}\n </sp-button>\n <sp-tooltip slot=\"hover-content\">\n Tooltip ${index}\n </sp-tooltip>\n </overlay-trigger>\n `\n )}\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\ntooltips.decorators = [overlayTriggerDecorator];\n"],
5
- "mappings": "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",
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 { html, TemplateResult } from '@spectrum-web-components/base';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport '@spectrum-web-components/button/sp-button.js';\nimport '@spectrum-web-components/field-label/sp-field-label.js';\nimport '@spectrum-web-components/help-text/sp-help-text.js';\nimport '@spectrum-web-components/textfield/sp-textfield.js';\nimport '@spectrum-web-components/tooltip/sp-tooltip.js';\nimport '@spectrum-web-components/overlay/overlay-trigger.js';\n\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { landscape } from './images.js';\nimport { overlayTriggerDecorator } from './index.js';\n\nexport default {\n title: 'Dialog Wrapped',\n component: 'sp-dialog-wrapper',\n argTypes: {\n onClose: { action: 'close' },\n onConfirm: { action: 'confirm' },\n onSecondary: { action: 'secondary' },\n onCancel: { action: 'cancel' },\n },\n};\n\ntype StoryArgs = {\n onClose?: (event: Event) => void;\n onConfirm?: (event: Event) => void;\n onSecondary?: (event: Event) => void;\n onCancel?: (event: Event) => void;\n};\n\nconst handleClose =\n ({ onClose }: StoryArgs) =>\n (event: Event) => {\n if (onClose) onClose(event);\n };\n\nconst handleConfirm =\n ({ onConfirm }: StoryArgs) =>\n (event: Event) => {\n if (onConfirm) onConfirm(event);\n };\n\nconst handleSecondary =\n ({ onSecondary }: StoryArgs) =>\n (event: Event) => {\n if (onSecondary) onSecondary(event);\n };\n\nconst handleCancel =\n ({ onCancel }: StoryArgs) =>\n (event: Event) => {\n if (onCancel) onCancel(event);\n };\n\nexport const wrapperLabeledHero = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n hero-label=\"Hero Image Alt Text\"\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const wrapperDismissable = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const wrapperDismissableUnderlay = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n headline=\"Wrapped Dialog w/ Hero Image\"\n underlay\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n `;\n};\n\nexport const form = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n placement=\"none\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n id=\"form-fields\"\n slot=\"click-content\"\n headline=\"Add Delivery Address\"\n underlay\n size=\"m\"\n confirm-label=\"Verify Address\"\n secondary-label=\"Add\"\n cancel-label=\"Cancel\"\n @close=${handleClose(args)}\n @confirm=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleConfirm(args);\n }}\n @secondary=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleSecondary(args);\n }}\n @cancel=${({ target }: Event & { target: HTMLElement }) => {\n target.dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n handleCancel(args);\n }}\n >\n <style>\n #form-fields div {\n display: grid;\n row-gap: var(--spectrum-global-dimension-size-150);\n grid-template-columns: auto auto;\n\n --spectrum-fieldlabel-m-side-padding-right: 0;\n }\n </style>\n <div>\n <sp-field-label side-aligned=\"end\" for=\"street\">\n Street:\n </sp-field-label>\n <sp-textfield id=\"street\" autofocus></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"city\">\n City:\n </sp-field-label>\n <sp-textfield id=\"city\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"state\">\n State:\n </sp-field-label>\n <sp-textfield id=\"state\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"zip\">\n Zip:\n </sp-field-label>\n <sp-textfield id=\"zip\"></sp-textfield>\n <sp-field-label side-aligned=\"end\" for=\"instructions\">\n Special instructions:\n </sp-field-label>\n <sp-textfield id=\"instructions\" multiline>\n <sp-help-text slot=\"help-text\">\n For example, gate code or other information to help\n the driver find you\n </sp-help-text>\n </sp-textfield>\n </div>\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\nform.decorators = [overlayTriggerDecorator];\n\nexport const longContent = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n placement=\"none\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n dismissable\n underlay\n size=\"s\"\n >\n <p>\n Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\n Sed ac dolor sit amet purus malesuada congue. Donec quis\n nibh at felis congue commodo. Ut enim ad minima veniam, quis\n nostrum exercitationem ullam corporis suscipit laboriosam,\n nisi ut aliquid ex ea commodi consequatur? Sed ac dolor sit\n amet purus malesuada congue. Nam libero tempore, cum soluta\n nobis est eligendi optio cumque nihil impedit quo minus id\n quod maxime placeat facere possimus, omnis voluptas\n assumenda est, omnis dolor repellendus. Nullam sit amet\n magna in magna gravida vehicula. Itaque earum rerum hic\n tenetur a sapiente delectus, ut aut reiciendis voluptatibus\n maiores alias consequatur aut perferendis doloribus\n asperiores repellat. Neque porro quisquam est, qui dolorem\n ipsum quia dolor sit amet, consectetur, adipisci velit, sed\n quia non numquam eius modi tempora incidunt ut labore et\n dolore magnam aliquam quaerat voluptatem. Phasellus faucibus\n molestie nisl. Vestibulum fermentum tortor id mi. Integer\n rutrum, orci vestibulum ullamcorper ultricies, lacus quam\n ultricies odio, vitae placerat pede sem sit amet enim.\n Maecenas sollicitudin. Nullam rhoncus aliquam metus.\n </p>\n <p>\n Curabitur ligula sapien, pulvinar a vestibulum quis,\n facilisis vel sapien. Fusce nibh. Proin pede metus,\n vulputate nec, fermentum fringilla, vehicula vitae, justo.\n Aenean placerat. Aliquam erat volutpat. Et harum quidem\n rerum facilis est et expedita distinctio. Fusce nibh.\n Temporibus autem quibusdam et aut officiis debitis aut rerum\n necessitatibus saepe eveniet ut et voluptates repudiandae\n sint et molestiae non recusandae. Vestibulum erat nulla,\n ullamcorper nec, rutrum non, nonummy ac, erat. Etiam posuere\n lacus quis dolor. Mauris elementum mauris vitae tortor.\n Nulla turpis magna, cursus sit amet, suscipit a, interdum\n id, felis. Nam libero tempore, cum soluta nobis est eligendi\n optio cumque nihil impedit quo minus id quod maxime placeat\n facere possimus, omnis voluptas assumenda est, omnis dolor\n repellendus. Nulla accumsan, elit sit amet varius semper,\n nulla mauris mollis quam, tempor suscipit diam nulla vel\n leo. Pellentesque sapien.\n </p>\n <p>\n Curabitur vitae diam non enim vestibulum interdum. Sed elit\n dui, pellentesque a, faucibus vel, interdum nec, diam.\n Praesent vitae arcu tempor neque lacinia pretium. Ut tempus\n purus at lorem. Phasellus rhoncus. Temporibus autem\n quibusdam et aut officiis debitis aut rerum necessitatibus\n saepe eveniet ut et voluptates repudiandae sint et molestiae\n non recusandae. Duis ante orci, molestie vitae vehicula\n venenatis, tincidunt ac pede. Integer vulputate sem a nibh\n rutrum consequat. Aenean placerat. Cum sociis natoque\n penatibus et magnis dis parturient montes, nascetur\n ridiculus mus. Sed vel lectus. Donec odio tempus molestie,\n porttitor ut, iaculis quis, sem. Class aptent taciti\n sociosqu ad litora torquent per conubia nostra, per inceptos\n hymenaeos. Integer in sapien. Nullam dapibus fermentum\n ipsum.\n </p>\n <p>\n Integer vulputate sem a nibh rutrum consequat. Class aptent\n taciti sociosqu ad litora torquent per conubia nostra, per\n inceptos hymenaeos. Duis bibendum, lectus ut viverra\n rhoncus, dolor nunc faucibus libero, eget facilisis enim\n ipsum id lacus. Aliquam erat volutpat. Aenean id metus id\n velit ullamcorper pulvinar. Morbi scelerisque luctus velit.\n Aliquam erat volutpat. Temporibus autem quibusdam et aut\n officiis debitis aut rerum necessitatibus saepe eveniet ut\n et voluptates repudiandae sint et molestiae non recusandae.\n Fusce dui leo, imperdiet in, aliquam sit amet, feugiat eu,\n orci. Suspendisse sagittis ultrices augue. Nullam justo\n enim, consectetuer nec, ullamcorper ac, vestibulum in, elit.\n Praesent vitae arcu tempor neque lacinia pretium. Nullam\n faucibus mi quis velit. Maecenas aliquet accumsan leo. Morbi\n scelerisque luctus velit. Aliquam ornare wisi eu metus.\n </p>\n <p>\n Sed elit dui, pellentesque a, faucibus vel, interdum nec,\n diam. Praesent vitae arcu tempor neque lacinia pretium.\n Etiam dictum tincidunt diam. Et harum quidem rerum facilis\n est et expedita distinctio. Duis ante orci, molestie vitae\n vehicula venenatis, tincidunt ac pede. Integer lacinia.\n Excepteur sint occaecat cupidatat non proident, sunt in\n culpa qui officia deserunt mollit anim id est laborum.\n Mauris tincidunt sem sed arcu. Praesent in mauris eu tortor\n porttitor accumsan. Aenean id metus id velit ullamcorper\n pulvinar. Donec iaculis gravida nulla. Duis bibendum, lectus\n ut viverra rhoncus, dolor nunc faucibus libero, eget\n facilisis enim ipsum id lacus. Nulla quis diam. Quisque\n porta. Integer rutrum, orci vestibulum ullamcorper\n ultricies, lacus quam ultricies odio, vitae placerat pede\n sem sit amet enim. Nam sed tellus id magna elementum\n tincidunt. In enim a arcu imperdiet malesuada.\n </p>\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\nlongContent.decorators = [overlayTriggerDecorator];\n\nexport const wrapperDismissableUnderlayError = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <div>\n <sp-dialog-wrapper\n ?open=${open}\n hero=${landscape}\n dismissable\n error\n headline=\"Wrapped Dialog w/ Hero Image\"\n underlay\n @close=${handleClose(args)}\n size=\"s\"\n >\n Content of the dialog\n </sp-dialog-wrapper>\n <sp-button\n onClick=\"\n this.previousElementSibling.open = !this.previousElementSibling.open;\n if (this.previousElementSibling.open) {\n this.previousElementSibling.focus();\n }\n \"\n variant=\"primary\"\n >\n Toggle Dialog\n </sp-button>\n </div>\n `;\n};\n\nexport const wrapperButtons = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n size=\"l\"\n headline=\"Wrapped Dialog w/ Buttons\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperButtonsUnderlay = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n underlay\n size=\"l\"\n headline=\"Wrapped Dialog w/ Buttons\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n footer=\"Content for footer\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperFullscreen = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n headline=\"Wrapped Dialog - Fullscreen\"\n mode=\"fullscreen\"\n confirm-label=\"Keep Both\"\n secondary-label=\"Replace\"\n cancel-label=\"Cancel\"\n @close=${handleClose(args)}\n @confirm=${handleConfirm(args)}\n @secondary=${handleSecondary(args)}\n @cancel=${handleCancel(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperWithHeadline = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n headline=\"Headline for dialog\"\n @close=${handleClose(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperWithHeadlineNoDivider = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n ?open=${open}\n headline=\"Headline for dialog\"\n no-divider=${true}\n @close=${handleClose(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const wrapperHeadlineVisibilityNone = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? false : true;\n return html`\n <sp-dialog-wrapper\n headline=\"Accessible headline\"\n .headlineVisibility=${'none'}\n ?open=${open}\n @close=${handleClose(args)}\n >\n Content of the dialog\n </sp-dialog-wrapper>\n `;\n};\n\nexport const tooltips = (\n args: StoryArgs = {},\n context: { viewMode?: string } = {}\n): TemplateResult => {\n const open = context.viewMode === 'docs' ? undefined : 'click';\n return html`\n <overlay-trigger\n type=\"modal\"\n placement=\"none\"\n @close=${handleClose(args)}\n open=${ifDefined(open)}\n >\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-dialog-wrapper\n slot=\"click-content\"\n headline=\"Dialog title\"\n dismissable\n underlay\n size=\"s\"\n >\n ${[1, 2, 3, 4].map(\n (index) => html`\n <overlay-trigger>\n <sp-button slot=\"trigger\">\n Button with Tooltip ${index}\n </sp-button>\n <sp-tooltip slot=\"hover-content\">\n Tooltip ${index}\n </sp-tooltip>\n </overlay-trigger>\n `\n )}\n </sp-dialog-wrapper>\n </overlay-trigger>\n `;\n};\n\ntooltips.decorators = [overlayTriggerDecorator];\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -6,7 +6,7 @@ import {
6
6
  nextFrame,
7
7
  oneEvent
8
8
  } from "@open-wc/testing";
9
- import { spy } from "sinon";
9
+ import { spy, stub } from "sinon";
10
10
  import "@spectrum-web-components/theme/sp-theme.js";
11
11
  import "@spectrum-web-components/theme/src/themes.js";
12
12
  import "@spectrum-web-components/dialog/sp-dialog-wrapper.js";
@@ -17,7 +17,10 @@ import {
17
17
  wrapperDismissable,
18
18
  wrapperDismissableUnderlayError,
19
19
  wrapperFullscreen,
20
- wrapperLabeledHero
20
+ wrapperHeadlineVisibilityNone,
21
+ wrapperLabeledHero,
22
+ wrapperWithHeadline,
23
+ wrapperWithHeadlineNoDivider
21
24
  } from "../stories/dialog-wrapper.stories.js";
22
25
  import { html } from "@spectrum-web-components/base";
23
26
  import { testForLitDevWarnings } from "../../../test/testing-helpers.js";
@@ -89,6 +92,41 @@ describe("Dialog Wrapper", () => {
89
92
  expect(el.open).to.be.false;
90
93
  expect(closeSpy.callCount).to.equal(1);
91
94
  });
95
+ it("shows header divider when there's a header", async () => {
96
+ const wrapper = await styledFixture(
97
+ wrapperWithHeadline()
98
+ );
99
+ await elementUpdated(wrapper);
100
+ const dialog = wrapper.shadowRoot.querySelector("sp-dialog");
101
+ const divider = dialog.shadowRoot.querySelector(
102
+ "sp-divider.divider"
103
+ );
104
+ expect(divider).to.be.not.null;
105
+ });
106
+ it(`hides header divider when there's a header but "no-divider"`, async () => {
107
+ const wrapper = await styledFixture(
108
+ wrapperWithHeadlineNoDivider()
109
+ );
110
+ await elementUpdated(wrapper);
111
+ await expect(wrapper).to.be.accessible();
112
+ const dialog = wrapper.shadowRoot.querySelector("sp-dialog");
113
+ const divider = dialog.shadowRoot.querySelector(
114
+ "sp-divider.divider"
115
+ );
116
+ expect(divider).to.be.null;
117
+ });
118
+ it("hides header divider when there's no header", async () => {
119
+ const wrapper = await styledFixture(
120
+ wrapperHeadlineVisibilityNone()
121
+ );
122
+ await elementUpdated(wrapper);
123
+ await expect(wrapper).to.be.accessible();
124
+ const dialog = wrapper.shadowRoot.querySelector("sp-dialog");
125
+ const divider = dialog.shadowRoot.querySelector(
126
+ "sp-divider.divider"
127
+ );
128
+ expect(divider).to.be.null;
129
+ });
92
130
  it("dismisses via clicking the underlay when [dismissable]", async () => {
93
131
  const test = await styledFixture(
94
132
  wrapperDismissableUnderlayError()
@@ -207,5 +245,26 @@ describe("Dialog Wrapper", () => {
207
245
  expect(secondarySpy.callCount).to.equal(1);
208
246
  expect(cancelSpy.called, "dispatched `secondary`").to.be.true;
209
247
  });
248
+ it("warns in Dev Mode when accessible attributes are not leveraged", async () => {
249
+ const consoleWarnStub = stub(console, "warn");
250
+ const el = await fixture(html`
251
+ <sp-dialog-wrapper></sp-dialog-wrapper>
252
+ `);
253
+ await elementUpdated(el);
254
+ expect(consoleWarnStub.called).to.be.true;
255
+ const spyCall = consoleWarnStub.getCall(0);
256
+ expect(
257
+ spyCall.args.at(0).includes("accessible"),
258
+ "confirm accessibility-centric message"
259
+ ).to.be.true;
260
+ expect(spyCall.args.at(-1), "confirm `data` shape").to.deep.equal({
261
+ data: {
262
+ localName: "sp-dialog-wrapper",
263
+ type: "accessibility",
264
+ level: "default"
265
+ }
266
+ });
267
+ consoleWarnStub.restore();
268
+ });
210
269
  });
211
270
  //# sourceMappingURL=dialog-wrapper.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["dialog-wrapper.test.ts"],
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 {\n elementUpdated,\n expect,\n fixture,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport { spy } from 'sinon';\n\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { Dialog, DialogWrapper } from '@spectrum-web-components/dialog';\nimport { ActionButton } from '@spectrum-web-components/action-button';\nimport { Button } from '@spectrum-web-components/button';\nimport { Underlay } from '@spectrum-web-components/underlay';\nimport {\n longContent,\n wrapperButtons,\n wrapperButtonsUnderlay,\n wrapperDismissable,\n wrapperDismissableUnderlayError,\n wrapperFullscreen,\n wrapperLabeledHero,\n} from '../stories/dialog-wrapper.stories.js';\nimport { OverlayTrigger } from '@spectrum-web-components/overlay';\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport { Theme } from '@spectrum-web-components/theme';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\n\nasync function styledFixture<T extends Element>(\n story: TemplateResult\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme theme=\"classic\" scale=\"medium\" color=\"dark\">\n ${story}\n </sp-theme>\n `);\n return test.children[0] as T;\n}\n\ndescribe('Dialog Wrapper', () => {\n testForLitDevWarnings(\n async () => await styledFixture<DialogWrapper>(wrapperDismissable())\n );\n it('loads wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads labeled hero dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperLabeledHero());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads fullscreen wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperFullscreen());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n xit('loads with underlay and no headline accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n el.headline = '';\n await elementUpdated(el);\n await expect(el).to.be.accessible();\n });\n it('opens and closes', async () => {\n const closeSpy = spy();\n const test = await styledFixture<OverlayTrigger>(longContent());\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n\n await elementUpdated(el);\n\n const opened = oneEvent(test, 'sp-opened');\n test.open = 'click';\n await opened;\n\n expect(el.open).to.be.true;\n\n const closed = oneEvent(test, 'sp-closed');\n test.open = undefined;\n await closed;\n await nextFrame();\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it('opens and closes when element is recycled', async () => {\n const closeSpy = spy();\n const test = await styledFixture<OverlayTrigger>(longContent());\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n\n await elementUpdated(el);\n\n const opened = oneEvent(test, 'sp-opened');\n test.open = 'click';\n await opened;\n\n expect(el.open).to.be.true;\n\n const closed = oneEvent(test, 'sp-closed');\n test.open = undefined;\n await closed;\n await nextFrame();\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it('dismisses via clicking the underlay when [dismissable]', async () => {\n const test = await styledFixture<DialogWrapper>(\n wrapperDismissableUnderlayError()\n );\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n await elementUpdated(el);\n expect(el.open).to.be.true;\n el.dismissable = true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('does not dismiss via clicking the underlay :not([dismissable])', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n expect(el.open).to.be.true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.true;\n });\n it('dismisses', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n const root = el.shadowRoot ? el.shadowRoot : el;\n const dialog = root.querySelector('sp-dialog') as Dialog;\n const dialogRoot = dialog.shadowRoot ? dialog.shadowRoot : dialog;\n const dismissButton = dialogRoot.querySelector(\n '.close-button'\n ) as HTMLButtonElement;\n dismissButton.click();\n\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('manages entry focus - dismissable', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n expect(document.activeElement !== el, 'no focused').to.be.true;\n\n const dialog = el.shadowRoot.querySelector('sp-dialog') as Dialog;\n const dialogRoot = dialog.shadowRoot ? dialog.shadowRoot : dialog;\n const dismissButton = dialogRoot.querySelector(\n '.close-button'\n ) as ActionButton;\n\n el.focus();\n await elementUpdated(el);\n expect(\n document.activeElement === el,\n `focused generally, ${document.activeElement}`\n ).to.be.true;\n expect(\n (dismissButton.getRootNode() as Document).activeElement !==\n dismissButton,\n `does not focus specifically, ${\n (dismissButton.getRootNode() as Document).activeElement\n }`\n ).to.be.true;\n\n dismissButton.click();\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('manages entry focus - buttons', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n expect(document.activeElement !== el, 'no focused').to.be.true;\n\n const button = el.shadowRoot.querySelector('sp-button') as Button;\n\n el.focus();\n await elementUpdated(el);\n expect(\n document.activeElement === el,\n `focused generally, ${document.activeElement}`\n ).to.be.true;\n expect(\n (button.getRootNode() as Document).activeElement === button,\n `focused specifically, ${\n (button.getRootNode() as Document).activeElement?.outerHTML\n }`\n ).to.be.true;\n });\n it('dispatches `confirm`, `cancel` and `secondary`', async () => {\n const confirmSpy = spy();\n const cancelSpy = spy();\n const secondarySpy = spy();\n const handleConfirm = (): void => confirmSpy();\n const handleCancel = (): void => cancelSpy();\n const handleSecondary = (): void => secondarySpy();\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n el.addEventListener('confirm', handleConfirm);\n el.addEventListener('cancel', handleCancel);\n el.addEventListener('secondary', handleSecondary);\n\n await elementUpdated(el);\n expect(confirmSpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n expect(secondarySpy.called).to.be.false;\n\n const accentButton = el.shadowRoot.querySelector(\n '[variant=\"accent\"]'\n ) as Button;\n const primaryButton = el.shadowRoot.querySelector(\n '[variant=\"primary\"]'\n ) as Button;\n const secondaryButton = el.shadowRoot.querySelector(\n '[variant=\"secondary\"]'\n ) as Button;\n\n accentButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.called, 'dispatched `confirm`').to.be.true;\n expect(secondarySpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n\n primaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.called, 'dispatched `cancel`').to.be.true;\n expect(cancelSpy.called).to.be.false;\n\n secondaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.callCount).to.equal(1);\n expect(cancelSpy.called, 'dispatched `secondary`').to.be.true;\n });\n});\n"],
5
- "mappings": "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",
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 {\n elementUpdated,\n expect,\n fixture,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport { spy, stub } from 'sinon';\n\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport '@spectrum-web-components/dialog/sp-dialog-wrapper.js';\nimport { Dialog, DialogWrapper } from '@spectrum-web-components/dialog';\nimport { ActionButton } from '@spectrum-web-components/action-button';\nimport { Button } from '@spectrum-web-components/button';\nimport { Underlay } from '@spectrum-web-components/underlay';\nimport {\n longContent,\n wrapperButtons,\n wrapperButtonsUnderlay,\n wrapperDismissable,\n wrapperDismissableUnderlayError,\n wrapperFullscreen,\n wrapperHeadlineVisibilityNone,\n wrapperLabeledHero,\n wrapperWithHeadline,\n wrapperWithHeadlineNoDivider,\n} from '../stories/dialog-wrapper.stories.js';\nimport { OverlayTrigger } from '@spectrum-web-components/overlay';\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport { Theme } from '@spectrum-web-components/theme';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\nimport { Divider } from '@spectrum-web-components/divider/src/Divider.js';\n\nasync function styledFixture<T extends Element>(\n story: TemplateResult\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme theme=\"classic\" scale=\"medium\" color=\"dark\">\n ${story}\n </sp-theme>\n `);\n return test.children[0] as T;\n}\n\ndescribe('Dialog Wrapper', () => {\n testForLitDevWarnings(\n async () => await styledFixture<DialogWrapper>(wrapperDismissable())\n );\n it('loads wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads labeled hero dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperLabeledHero());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('loads fullscreen wrapped dialog accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperFullscreen());\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n xit('loads with underlay and no headline accessibly', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n el.headline = '';\n await elementUpdated(el);\n await expect(el).to.be.accessible();\n });\n it('opens and closes', async () => {\n const closeSpy = spy();\n const test = await styledFixture<OverlayTrigger>(longContent());\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n\n await elementUpdated(el);\n\n const opened = oneEvent(test, 'sp-opened');\n test.open = 'click';\n await opened;\n\n expect(el.open).to.be.true;\n\n const closed = oneEvent(test, 'sp-closed');\n test.open = undefined;\n await closed;\n await nextFrame();\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it('opens and closes when element is recycled', async () => {\n const closeSpy = spy();\n const test = await styledFixture<OverlayTrigger>(longContent());\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n el.addEventListener('close', () => closeSpy());\n\n await elementUpdated(el);\n\n const opened = oneEvent(test, 'sp-opened');\n test.open = 'click';\n await opened;\n\n expect(el.open).to.be.true;\n\n const closed = oneEvent(test, 'sp-closed');\n test.open = undefined;\n await closed;\n await nextFrame();\n\n expect(el.open).to.be.false;\n expect(closeSpy.callCount).to.equal(1);\n });\n it(\"shows header divider when there's a header\", async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperWithHeadline()\n );\n await elementUpdated(wrapper);\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.not.null;\n });\n it('hides header divider when there\\'s a header but \"no-divider\"', async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperWithHeadlineNoDivider()\n );\n await elementUpdated(wrapper);\n\n await expect(wrapper).to.be.accessible();\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.null;\n });\n it(\"hides header divider when there's no header\", async () => {\n const wrapper = await styledFixture<DialogWrapper>(\n wrapperHeadlineVisibilityNone()\n );\n await elementUpdated(wrapper);\n\n await expect(wrapper).to.be.accessible();\n\n const dialog = wrapper.shadowRoot.querySelector('sp-dialog') as Dialog;\n const divider = dialog.shadowRoot.querySelector(\n 'sp-divider.divider'\n ) as Divider;\n\n expect(divider).to.be.null;\n });\n it('dismisses via clicking the underlay when [dismissable]', async () => {\n const test = await styledFixture<DialogWrapper>(\n wrapperDismissableUnderlayError()\n );\n const el = test.querySelector('sp-dialog-wrapper') as DialogWrapper;\n await elementUpdated(el);\n expect(el.open).to.be.true;\n el.dismissable = true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('does not dismiss via clicking the underlay :not([dismissable])', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtonsUnderlay());\n await elementUpdated(el);\n expect(el.open).to.be.true;\n const underlay = el.shadowRoot.querySelector('sp-underlay') as Underlay;\n underlay.click();\n await elementUpdated(el);\n expect(el.open).to.be.true;\n });\n it('dismisses', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n const root = el.shadowRoot ? el.shadowRoot : el;\n const dialog = root.querySelector('sp-dialog') as Dialog;\n const dialogRoot = dialog.shadowRoot ? dialog.shadowRoot : dialog;\n const dismissButton = dialogRoot.querySelector(\n '.close-button'\n ) as HTMLButtonElement;\n dismissButton.click();\n\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('manages entry focus - dismissable', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperDismissable());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n expect(document.activeElement !== el, 'no focused').to.be.true;\n\n const dialog = el.shadowRoot.querySelector('sp-dialog') as Dialog;\n const dialogRoot = dialog.shadowRoot ? dialog.shadowRoot : dialog;\n const dismissButton = dialogRoot.querySelector(\n '.close-button'\n ) as ActionButton;\n\n el.focus();\n await elementUpdated(el);\n expect(\n document.activeElement === el,\n `focused generally, ${document.activeElement}`\n ).to.be.true;\n expect(\n (dismissButton.getRootNode() as Document).activeElement !==\n dismissButton,\n `does not focus specifically, ${\n (dismissButton.getRootNode() as Document).activeElement\n }`\n ).to.be.true;\n\n dismissButton.click();\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n it('manages entry focus - buttons', async () => {\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n expect(document.activeElement !== el, 'no focused').to.be.true;\n\n const button = el.shadowRoot.querySelector('sp-button') as Button;\n\n el.focus();\n await elementUpdated(el);\n expect(\n document.activeElement === el,\n `focused generally, ${document.activeElement}`\n ).to.be.true;\n expect(\n (button.getRootNode() as Document).activeElement === button,\n `focused specifically, ${\n (button.getRootNode() as Document).activeElement?.outerHTML\n }`\n ).to.be.true;\n });\n it('dispatches `confirm`, `cancel` and `secondary`', async () => {\n const confirmSpy = spy();\n const cancelSpy = spy();\n const secondarySpy = spy();\n const handleConfirm = (): void => confirmSpy();\n const handleCancel = (): void => cancelSpy();\n const handleSecondary = (): void => secondarySpy();\n const el = await styledFixture<DialogWrapper>(wrapperButtons());\n el.addEventListener('confirm', handleConfirm);\n el.addEventListener('cancel', handleCancel);\n el.addEventListener('secondary', handleSecondary);\n\n await elementUpdated(el);\n expect(confirmSpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n expect(secondarySpy.called).to.be.false;\n\n const accentButton = el.shadowRoot.querySelector(\n '[variant=\"accent\"]'\n ) as Button;\n const primaryButton = el.shadowRoot.querySelector(\n '[variant=\"primary\"]'\n ) as Button;\n const secondaryButton = el.shadowRoot.querySelector(\n '[variant=\"secondary\"]'\n ) as Button;\n\n accentButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.called, 'dispatched `confirm`').to.be.true;\n expect(secondarySpy.called).to.be.false;\n expect(cancelSpy.called).to.be.false;\n\n primaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.called, 'dispatched `cancel`').to.be.true;\n expect(cancelSpy.called).to.be.false;\n\n secondaryButton.click();\n\n await elementUpdated(el);\n expect(confirmSpy.callCount).to.equal(1);\n expect(secondarySpy.callCount).to.equal(1);\n expect(cancelSpy.called, 'dispatched `secondary`').to.be.true;\n });\n\n it('warns in Dev Mode when accessible attributes are not leveraged', async () => {\n const consoleWarnStub = stub(console, 'warn');\n const el = await fixture<DialogWrapper>(html`\n <sp-dialog-wrapper></sp-dialog-wrapper>\n `);\n\n await elementUpdated(el);\n\n expect(consoleWarnStub.called).to.be.true;\n const spyCall = consoleWarnStub.getCall(0);\n expect(\n spyCall.args.at(0).includes('accessible'),\n 'confirm accessibility-centric message'\n ).to.be.true;\n expect(spyCall.args.at(-1), 'confirm `data` shape').to.deep.equal({\n data: {\n localName: 'sp-dialog-wrapper',\n type: 'accessibility',\n level: 'default',\n },\n });\n consoleWarnStub.restore();\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }