@spectrum-web-components/dialog 0.11.0 → 0.11.2

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 (66) hide show
  1. package/custom-elements.json +504 -109
  2. package/package.json +13 -5
  3. package/sp-dialog-base.d.ts +6 -0
  4. package/sp-dialog-base.dev.js +4 -0
  5. package/sp-dialog-base.dev.js.map +7 -0
  6. package/sp-dialog-base.js +2 -0
  7. package/sp-dialog-base.js.map +7 -0
  8. package/sp-dialog-wrapper.dev.js +1 -0
  9. package/sp-dialog-wrapper.dev.js.map +1 -1
  10. package/sp-dialog-wrapper.js +1 -1
  11. package/sp-dialog-wrapper.js.map +2 -2
  12. package/sp-dialog.dev.js +1 -0
  13. package/sp-dialog.dev.js.map +1 -1
  14. package/sp-dialog.js +1 -1
  15. package/sp-dialog.js.map +2 -2
  16. package/src/Dialog.dev.js +46 -17
  17. package/src/Dialog.dev.js.map +1 -1
  18. package/src/Dialog.js +10 -10
  19. package/src/Dialog.js.map +2 -2
  20. package/src/DialogBase.d.ts +48 -0
  21. package/src/DialogBase.dev.js +177 -0
  22. package/src/DialogBase.dev.js.map +7 -0
  23. package/src/DialogBase.js +19 -0
  24. package/src/DialogBase.js.map +7 -0
  25. package/src/DialogWrapper.d.ts +6 -35
  26. package/src/DialogWrapper.dev.js +79 -188
  27. package/src/DialogWrapper.dev.js.map +2 -2
  28. package/src/DialogWrapper.js +53 -66
  29. package/src/DialogWrapper.js.map +3 -3
  30. package/src/dialog.css.dev.js +2 -1
  31. package/src/dialog.css.dev.js.map +2 -2
  32. package/src/dialog.css.js +2 -2
  33. package/src/dialog.css.js.map +3 -3
  34. package/src/index.d.ts +1 -0
  35. package/src/index.dev.js +2 -0
  36. package/src/index.dev.js.map +2 -2
  37. package/src/index.js +1 -1
  38. package/src/index.js.map +2 -2
  39. package/src/spectrum-dialog.css.dev.js +1 -0
  40. package/src/spectrum-dialog.css.dev.js.map +1 -1
  41. package/src/spectrum-dialog.css.js +1 -1
  42. package/src/spectrum-dialog.css.js.map +2 -2
  43. package/stories/dialog-base.stories.js +187 -0
  44. package/stories/dialog-base.stories.js.map +7 -0
  45. package/stories/dialog-wrapper.stories.js +171 -48
  46. package/stories/dialog-wrapper.stories.js.map +2 -2
  47. package/stories/dialog.stories.js +66 -19
  48. package/stories/dialog.stories.js.map +2 -2
  49. package/stories/images.js +3 -1
  50. package/stories/images.js.map +1 -1
  51. package/stories/index.js +37 -0
  52. package/stories/index.js.map +7 -0
  53. package/test/benchmark/basic-test.js +5 -1
  54. package/test/benchmark/basic-test.js.map +1 -1
  55. package/test/dialog-base.test-vrt.js +5 -0
  56. package/test/dialog-base.test-vrt.js.map +7 -0
  57. package/test/dialog-base.test.js +133 -0
  58. package/test/dialog-base.test.js.map +7 -0
  59. package/test/dialog-wrapper.test-vrt.js +4 -1
  60. package/test/dialog-wrapper.test-vrt.js.map +1 -1
  61. package/test/dialog-wrapper.test.js +208 -3
  62. package/test/dialog-wrapper.test.js.map +2 -2
  63. package/test/dialog.test-vrt.js +4 -1
  64. package/test/dialog.test-vrt.js.map +1 -1
  65. package/test/dialog.test.js +149 -13
  66. package/test/dialog.test.js.map +1 -1
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ import { html } from "@spectrum-web-components/base";
3
+ import "@spectrum-web-components/dialog/sp-dialog-base.js";
4
+ import "@spectrum-web-components/dialog/sp-dialog.js";
5
+ import "@spectrum-web-components/button/sp-button.js";
6
+ import "@spectrum-web-components/overlay/overlay-trigger.js";
7
+ import "@spectrum-web-components/checkbox/sp-checkbox.js";
8
+ import { alertDestructive } from "./dialog.stories.js";
9
+ import { portrait } from "./images.js";
10
+ import { overlayTriggerDecorator } from "./index.js";
11
+ export default {
12
+ title: "Dialog Base",
13
+ component: "sp-dialog-base",
14
+ decorators: [
15
+ (story) => html`
16
+ <overlay-trigger type="modal" open="click" placement="none">
17
+ <sp-button slot="trigger" variant="primary">
18
+ Toggle Dialog
19
+ </sp-button>
20
+ ${story()}
21
+ </overlay-trigger>
22
+ `,
23
+ overlayTriggerDecorator
24
+ ]
25
+ };
26
+ export const Slotted = () => html`
27
+ <sp-dialog-base
28
+ underlay
29
+ slot="click-content"
30
+ @click=${(event) => {
31
+ if (event.target.localName === "sp-button") {
32
+ event.target.dispatchEvent(
33
+ new Event("close", { bubbles: true, composed: true })
34
+ );
35
+ }
36
+ }}
37
+ >
38
+ ${alertDestructive()}
39
+ </sp-dialog-base>
40
+ `;
41
+ export const disabledButton = () => {
42
+ return html`
43
+ <sp-dialog-base
44
+ underlay
45
+ slot="click-content"
46
+ @click=${(event) => {
47
+ if (event.target.localName === "sp-button") {
48
+ event.target.dispatchEvent(
49
+ new Event("close", { bubbles: true, composed: true })
50
+ );
51
+ }
52
+ }}
53
+ .overlayOpenCallback=${() => {
54
+ setTimeout(() => {
55
+ document.querySelector(
56
+ "#changing-header"
57
+ ).textContent = "The button in this dialog is now enabled";
58
+ document.querySelector(
59
+ "#changing-button"
60
+ ).disabled = false;
61
+ }, 5e3);
62
+ }}
63
+ .overlayCloseCallback=${() => {
64
+ document.querySelector("#changing-header").textContent = "The button in this dialog is disabled";
65
+ document.querySelector(
66
+ "#changing-button"
67
+ ).disabled = true;
68
+ }}
69
+ >
70
+ <sp-dialog size="s">
71
+ <h2 slot="heading" id="changing-header">
72
+ The button in this dialog is disabled
73
+ </h2>
74
+ <p>After about 5 seconds the button with be enabled.</p>
75
+ <sp-button disabled slot="button" id="changing-button">
76
+ Ok
77
+ </sp-button>
78
+ </sp-dialog>
79
+ </sp-dialog-base>
80
+ `;
81
+ };
82
+ export const notAgain = () => html`
83
+ <sp-dialog-base
84
+ underlay
85
+ slot="click-content"
86
+ @click=${(event) => {
87
+ if (event.target.localName === "sp-button") {
88
+ event.target.dispatchEvent(
89
+ new Event("close", { bubbles: true, composed: true })
90
+ );
91
+ }
92
+ }}
93
+ >
94
+ <sp-dialog size="s">
95
+ <h2 slot="heading">A thing is about to happen</h2>
96
+ <p>Something that might happen a lot is about to happen.</p>
97
+ <p>
98
+ The click events for the "OK" button are bound to the story not
99
+ to the components in specific.
100
+ </p>
101
+ <sp-button variant="secondary" treatment="fill" slot="button">
102
+ Ok
103
+ </sp-button>
104
+ <sp-checkbox slot="footer">Don't show me this again</sp-checkbox>
105
+ </sp-dialog>
106
+ </sp-dialog-base>
107
+ `;
108
+ export const moreCustom = () => html`
109
+ <sp-dialog-base
110
+ underlay
111
+ slot="click-content"
112
+ @click=${(event) => {
113
+ if (event.target.localName === "sp-button") {
114
+ event.target.dispatchEvent(
115
+ new Event("close", { bubbles: true, composed: true })
116
+ );
117
+ }
118
+ }}
119
+ >
120
+ <div style="display: flex;">
121
+ <div
122
+ style="
123
+ display: grid;
124
+ place-content: center;
125
+ grid-template-columns: calc(100% - 40px);
126
+ grid-template-rows: calc(100% - 40px);
127
+ "
128
+ >
129
+ <img
130
+ src=${portrait}
131
+ alt=""
132
+ style="
133
+ width: 100%;
134
+ height: 100%;
135
+ object-fit: contain;
136
+ object-placement: center;
137
+ "
138
+ />
139
+ </div>
140
+ <sp-dialog size="s">
141
+ <h2 slot="heading">Look at that image</h2>
142
+ <p>
143
+ Its position has been customized beyond the language of
144
+ Spectrum. Be careful with all this power. There's no
145
+ "mobile" default for delivering content like this.
146
+ </p>
147
+ <sp-button variant="accent" treatment="outline" slot="button">
148
+ Ok
149
+ </sp-button>
150
+ </sp-dialog>
151
+ </div>
152
+ </sp-dialog-base>
153
+ `;
154
+ export const fullyCustom = () => html`
155
+ <sp-dialog-base
156
+ underlay
157
+ slot="click-content"
158
+ @click=${(event) => {
159
+ if (event.target.localName === "button") {
160
+ event.target.dispatchEvent(
161
+ new Event("close", { bubbles: true, composed: true })
162
+ );
163
+ }
164
+ }}
165
+ >
166
+ <div id="fully-custom-dialog">
167
+ <style>
168
+ #fully-custom-dialog {
169
+ margin: 1em;
170
+ }
171
+ </style>
172
+ <h2>Custom headline</h2>
173
+ <p>
174
+ The click events for the "Done" button are bound to the story
175
+ not to the components in specific.
176
+ </p>
177
+ <p>
178
+ This is a demonstration of what is possible with
179
+ &lt;sp-dialog-base&gt;, only, and should not be seen as an
180
+ endorsement for fully custom dialog UIs.
181
+ </p>
182
+ <p>Fully open content area, for whatever DOM you would like.</p>
183
+ <button>Done</button>
184
+ </div>
185
+ </sp-dialog-base>
186
+ `;
187
+ //# sourceMappingURL=dialog-base.stories.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["dialog-base.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 '@spectrum-web-components/dialog/sp-dialog-base.js';\nimport '@spectrum-web-components/dialog/sp-dialog.js';\nimport '@spectrum-web-components/button/sp-button.js';\nimport '@spectrum-web-components/overlay/overlay-trigger.js';\nimport '@spectrum-web-components/checkbox/sp-checkbox.js';\nimport { alertDestructive } from './dialog.stories.js';\nimport { portrait } from './images.js';\nimport { overlayTriggerDecorator } from './index.js';\n\nexport default {\n title: 'Dialog Base',\n component: 'sp-dialog-base',\n decorators: [\n (story: () => TemplateResult): TemplateResult => html`\n <overlay-trigger type=\"modal\" open=\"click\" placement=\"none\">\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n ${story()}\n </overlay-trigger>\n `,\n overlayTriggerDecorator,\n ],\n};\n\nexport const Slotted = (): TemplateResult => html`\n <sp-dialog-base\n underlay\n slot=\"click-content\"\n @click=${(event: Event) => {\n if ((event.target as HTMLElement).localName === 'sp-button') {\n (event.target as HTMLElement).dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n }\n }}\n >\n ${alertDestructive()}\n </sp-dialog-base>\n`;\n\nexport const disabledButton = (): TemplateResult => {\n return html`\n <sp-dialog-base\n underlay\n slot=\"click-content\"\n @click=${(event: Event) => {\n if ((event.target as HTMLElement).localName === 'sp-button') {\n (event.target as HTMLElement).dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n }\n }}\n .overlayOpenCallback=${() => {\n setTimeout(() => {\n (\n document.querySelector(\n '#changing-header'\n ) as HTMLElement\n ).textContent = 'The button in this dialog is now enabled';\n (\n document.querySelector(\n '#changing-button'\n ) as HTMLButtonElement\n ).disabled = false;\n }, 5000);\n }}\n .overlayCloseCallback=${() => {\n (\n document.querySelector('#changing-header') as HTMLElement\n ).textContent = 'The button in this dialog is disabled';\n (\n document.querySelector(\n '#changing-button'\n ) as HTMLButtonElement\n ).disabled = true;\n }}\n >\n <sp-dialog size=\"s\">\n <h2 slot=\"heading\" id=\"changing-header\">\n The button in this dialog is disabled\n </h2>\n <p>After about 5 seconds the button with be enabled.</p>\n <sp-button disabled slot=\"button\" id=\"changing-button\">\n Ok\n </sp-button>\n </sp-dialog>\n </sp-dialog-base>\n `;\n};\n\nexport const notAgain = (): TemplateResult => html`\n <sp-dialog-base\n underlay\n slot=\"click-content\"\n @click=${(event: Event) => {\n if ((event.target as HTMLElement).localName === 'sp-button') {\n (event.target as HTMLElement).dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n }\n }}\n >\n <sp-dialog size=\"s\">\n <h2 slot=\"heading\">A thing is about to happen</h2>\n <p>Something that might happen a lot is about to happen.</p>\n <p>\n The click events for the \"OK\" button are bound to the story not\n to the components in specific.\n </p>\n <sp-button variant=\"secondary\" treatment=\"fill\" slot=\"button\">\n Ok\n </sp-button>\n <sp-checkbox slot=\"footer\">Don't show me this again</sp-checkbox>\n </sp-dialog>\n </sp-dialog-base>\n`;\n\nexport const moreCustom = (): TemplateResult => html`\n <sp-dialog-base\n underlay\n slot=\"click-content\"\n @click=${(event: Event) => {\n if ((event.target as HTMLElement).localName === 'sp-button') {\n (event.target as HTMLElement).dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n }\n }}\n >\n <div style=\"display: flex;\">\n <div\n style=\"\n display: grid;\n place-content: center;\n grid-template-columns: calc(100% - 40px);\n grid-template-rows: calc(100% - 40px);\n \"\n >\n <img\n src=${portrait}\n alt=\"\"\n style=\"\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-placement: center;\n \"\n />\n </div>\n <sp-dialog size=\"s\">\n <h2 slot=\"heading\">Look at that image</h2>\n <p>\n Its position has been customized beyond the language of\n Spectrum. Be careful with all this power. There's no\n \"mobile\" default for delivering content like this.\n </p>\n <sp-button variant=\"accent\" treatment=\"outline\" slot=\"button\">\n Ok\n </sp-button>\n </sp-dialog>\n </div>\n </sp-dialog-base>\n`;\n\nexport const fullyCustom = (): TemplateResult => html`\n <sp-dialog-base\n underlay\n slot=\"click-content\"\n @click=${(event: Event) => {\n if ((event.target as HTMLElement).localName === 'button') {\n (event.target as HTMLElement).dispatchEvent(\n new Event('close', { bubbles: true, composed: true })\n );\n }\n }}\n >\n <div id=\"fully-custom-dialog\">\n <style>\n #fully-custom-dialog {\n margin: 1em;\n }\n </style>\n <h2>Custom headline</h2>\n <p>\n The click events for the \"Done\" button are bound to the story\n not to the components in specific.\n </p>\n <p>\n This is a demonstration of what is possible with\n &lt;sp-dialog-base&gt;, only, and should not be seen as an\n endorsement for fully custom dialog UIs.\n </p>\n <p>Fully open content area, for whatever DOM you would like.</p>\n <button>Done</button>\n </div>\n </sp-dialog-base>\n`;\n"],
5
+ "mappings": ";AAYA,SAAS,YAA4B;AACrC,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AAExC,eAAe;AAAA,EACX,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,IACR,CAAC,UAAgD;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKvC,MAAM;AAAA;AAAA;AAAA,IAGhB;AAAA,EACJ;AACJ;AAEO,aAAM,UAAU,MAAsB;AAAA;AAAA;AAAA;AAAA,iBAI5B,CAAC,UAAiB;AACvB,MAAK,MAAM,OAAuB,cAAc,aAAa;AACzD,IAAC,MAAM,OAAuB;AAAA,MAC1B,IAAI,MAAM,SAAS,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC;AAAA,IACxD;AAAA,EACJ;AACJ;AAAA;AAAA,UAEE,iBAAiB;AAAA;AAAA;AAIpB,aAAM,iBAAiB,MAAsB;AAChD,SAAO;AAAA;AAAA;AAAA;AAAA,qBAIU,CAAC,UAAiB;AACvB,QAAK,MAAM,OAAuB,cAAc,aAAa;AACzD,MAAC,MAAM,OAAuB;AAAA,QAC1B,IAAI,MAAM,SAAS,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC;AAAA,MACxD;AAAA,IACJ;AAAA,EACJ;AAAA,mCACuB,MAAM;AACzB,eAAW,MAAM;AACb,MACI,SAAS;AAAA,QACL;AAAA,MACJ,EACF,cAAc;AAChB,MACI,SAAS;AAAA,QACL;AAAA,MACJ,EACF,WAAW;AAAA,IACjB,GAAG,GAAI;AAAA,EACX;AAAA,oCACwB,MAAM;AAC1B,IACI,SAAS,cAAc,kBAAkB,EAC3C,cAAc;AAChB,IACI,SAAS;AAAA,MACL;AAAA,IACJ,EACF,WAAW;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaZ;AAEO,aAAM,WAAW,MAAsB;AAAA;AAAA;AAAA;AAAA,iBAI7B,CAAC,UAAiB;AACvB,MAAK,MAAM,OAAuB,cAAc,aAAa;AACzD,IAAC,MAAM,OAAuB;AAAA,MAC1B,IAAI,MAAM,SAAS,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC;AAAA,IACxD;AAAA,EACJ;AACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBD,aAAM,aAAa,MAAsB;AAAA;AAAA;AAAA;AAAA,iBAI/B,CAAC,UAAiB;AACvB,MAAK,MAAM,OAAuB,cAAc,aAAa;AACzD,IAAC,MAAM,OAAuB;AAAA,MAC1B,IAAI,MAAM,SAAS,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC;AAAA,IACxD;AAAA,EACJ;AACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAYkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBnB,aAAM,cAAc,MAAsB;AAAA;AAAA;AAAA;AAAA,iBAIhC,CAAC,UAAiB;AACvB,MAAK,MAAM,OAAuB,cAAc,UAAU;AACtD,IAAC,MAAM,OAAuB;AAAA,MAC1B,IAAI,MAAM,SAAS,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC;AAAA,IACxD;AAAA,EACJ;AACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,11 +1,51 @@
1
- import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"@spectrum-web-components/base/src/directives.js";import"@spectrum-web-components/button/sp-button.js";import"@spectrum-web-components/field-label/sp-field-label.js";import"@spectrum-web-components/help-text/sp-help-text.js";import"@spectrum-web-components/textfield/sp-textfield.js";import"@spectrum-web-components/overlay/overlay-trigger.js";import"@spectrum-web-components/dialog/sp-dialog-wrapper.js";import{landscape as r}from"./images.js";export default{title:"Dialog Wrapped",component:"sp-dialog-wrapper",argTypes:{onClose:{action:"close"},onConfirm:{action:"confirm"},onSecondary:{action:"secondary"},onCancel:{action:"cancel"}}};const s=({onClose:e})=>i=>{e&&e(i)},l=({onConfirm:e})=>i=>{e&&e(i)},n=({onSecondary:e})=>i=>{e&&e(i)},u=({onCancel:e})=>i=>{e&&e(i)};export const wrapperLabeledHero=(e={},i={})=>{const t=i.viewMode!=="docs";return a`
1
+ "use strict";
2
+ import { html } from "@spectrum-web-components/base";
3
+ import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
4
+ import "@spectrum-web-components/button/sp-button.js";
5
+ import "@spectrum-web-components/field-label/sp-field-label.js";
6
+ import "@spectrum-web-components/help-text/sp-help-text.js";
7
+ import "@spectrum-web-components/textfield/sp-textfield.js";
8
+ import "@spectrum-web-components/tooltip/sp-tooltip.js";
9
+ import "@spectrum-web-components/overlay/overlay-trigger.js";
10
+ import "@spectrum-web-components/dialog/sp-dialog-wrapper.js";
11
+ import { landscape } from "./images.js";
12
+ import { overlayTriggerDecorator } from "./index.js";
13
+ export default {
14
+ title: "Dialog Wrapped",
15
+ component: "sp-dialog-wrapper",
16
+ argTypes: {
17
+ onClose: { action: "close" },
18
+ onConfirm: { action: "confirm" },
19
+ onSecondary: { action: "secondary" },
20
+ onCancel: { action: "cancel" }
21
+ }
22
+ };
23
+ const handleClose = ({ onClose }) => (event) => {
24
+ if (onClose)
25
+ onClose(event);
26
+ };
27
+ const handleConfirm = ({ onConfirm }) => (event) => {
28
+ if (onConfirm)
29
+ onConfirm(event);
30
+ };
31
+ const handleSecondary = ({ onSecondary }) => (event) => {
32
+ if (onSecondary)
33
+ onSecondary(event);
34
+ };
35
+ const handleCancel = ({ onCancel }) => (event) => {
36
+ if (onCancel)
37
+ onCancel(event);
38
+ };
39
+ export const wrapperLabeledHero = (args = {}, context = {}) => {
40
+ const open = context.viewMode === "docs" ? false : true;
41
+ return html`
2
42
  <sp-dialog-wrapper
3
- ?open=${t}
4
- hero=${r}
43
+ ?open=${open}
44
+ hero=${landscape}
5
45
  hero-label="Hero Image Alt Text"
6
46
  dismissable
7
47
  headline="Wrapped Dialog w/ Hero Image"
8
- @close=${s(e)}
48
+ @close=${handleClose(args)}
9
49
  size="s"
10
50
  >
11
51
  Content of the dialog
@@ -21,13 +61,17 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
21
61
  >
22
62
  Toggle Dialog
23
63
  </sp-button>
24
- `},wrapperDismissable=(e={},i={})=>{const t=i.viewMode!=="docs";return a`
64
+ `;
65
+ };
66
+ export const wrapperDismissable = (args = {}, context = {}) => {
67
+ const open = context.viewMode === "docs" ? false : true;
68
+ return html`
25
69
  <sp-dialog-wrapper
26
- ?open=${t}
27
- hero=${r}
70
+ ?open=${open}
71
+ hero=${landscape}
28
72
  dismissable
29
73
  headline="Wrapped Dialog w/ Hero Image"
30
- @close=${s(e)}
74
+ @close=${handleClose(args)}
31
75
  size="s"
32
76
  >
33
77
  Content of the dialog
@@ -43,14 +87,18 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
43
87
  >
44
88
  Toggle Dialog
45
89
  </sp-button>
46
- `},wrapperDismissableUnderlay=(e={},i={})=>{const t=i.viewMode!=="docs";return a`
90
+ `;
91
+ };
92
+ export const wrapperDismissableUnderlay = (args = {}, context = {}) => {
93
+ const open = context.viewMode === "docs" ? false : true;
94
+ return html`
47
95
  <sp-dialog-wrapper
48
- ?open=${t}
49
- hero=${r}
96
+ ?open=${open}
97
+ hero=${landscape}
50
98
  dismissable
51
99
  headline="Wrapped Dialog w/ Hero Image"
52
100
  underlay
53
- @close=${s(e)}
101
+ @close=${handleClose(args)}
54
102
  size="s"
55
103
  >
56
104
  Content of the dialog
@@ -66,12 +114,16 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
66
114
  >
67
115
  Toggle Dialog
68
116
  </sp-button>
69
- `},form=(e={},i={})=>{const t=i.viewMode==="docs"?void 0:"click";return a`
117
+ `;
118
+ };
119
+ export const form = (args = {}, context = {}) => {
120
+ const open = context.viewMode === "docs" ? void 0 : "click";
121
+ return html`
70
122
  <overlay-trigger
71
123
  type="modal"
72
124
  placement="none"
73
- @close=${s(e)}
74
- open=${p(t)}
125
+ @close=${handleClose(args)}
126
+ open=${ifDefined(open)}
75
127
  >
76
128
  <sp-button slot="trigger" variant="primary">
77
129
  Toggle Dialog
@@ -85,10 +137,25 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
85
137
  confirm-label="Verify Address"
86
138
  secondary-label="Add"
87
139
  cancel-label="Cancel"
88
- @close=${s(e)}
89
- @confirm=${({target:o})=>{o.dispatchEvent(new Event("close",{bubbles:!0,composed:!0})),l(e)}}
90
- @secondary=${({target:o})=>{o.dispatchEvent(new Event("close",{bubbles:!0,composed:!0})),n(e)}}
91
- @cancel=${({target:o})=>{o.dispatchEvent(new Event("close",{bubbles:!0,composed:!0})),u(e)}}
140
+ @close=${handleClose(args)}
141
+ @confirm=${({ target }) => {
142
+ target.dispatchEvent(
143
+ new Event("close", { bubbles: true, composed: true })
144
+ );
145
+ handleConfirm(args);
146
+ }}
147
+ @secondary=${({ target }) => {
148
+ target.dispatchEvent(
149
+ new Event("close", { bubbles: true, composed: true })
150
+ );
151
+ handleSecondary(args);
152
+ }}
153
+ @cancel=${({ target }) => {
154
+ target.dispatchEvent(
155
+ new Event("close", { bubbles: true, composed: true })
156
+ );
157
+ handleCancel(args);
158
+ }}
92
159
  >
93
160
  <style>
94
161
  #form-fields div {
@@ -128,15 +195,17 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
128
195
  </div>
129
196
  </sp-dialog-wrapper>
130
197
  </overlay-trigger>
131
- `};function d(){return new Promise(e=>requestAnimationFrame(()=>e()))}class m extends HTMLElement{constructor(){super();this.handleTriggerOpened=async()=>{await d(),this.ready(!0)};this.readyPromise=Promise.resolve(!1);this.readyPromise=new Promise(i=>{this.ready=i,this.setup()})}async setup(){await d(),document.querySelector("overlay-trigger").addEventListener("sp-opened",this.handleTriggerOpened)}get updateComplete(){return this.readyPromise}}customElements.define("overlay-trigger-ready",m);const c=e=>a`
132
- ${e()}
133
- <overlay-trigger-ready></overlay-trigger-ready>
134
- `;export const longContent=(e={},i={})=>{const t=i.viewMode==="docs"?void 0:"click";return a`
198
+ `;
199
+ };
200
+ form.decorators = [overlayTriggerDecorator];
201
+ export const longContent = (args = {}, context = {}) => {
202
+ const open = context.viewMode === "docs" ? void 0 : "click";
203
+ return html`
135
204
  <overlay-trigger
136
205
  type="modal"
137
206
  placement="none"
138
- @close=${s(e)}
139
- open=${p(t)}
207
+ @close=${handleClose(args)}
208
+ open=${ifDefined(open)}
140
209
  >
141
210
  <sp-button slot="trigger" variant="primary">
142
211
  Toggle Dialog
@@ -243,16 +312,21 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
243
312
  </p>
244
313
  </sp-dialog-wrapper>
245
314
  </overlay-trigger>
246
- `};longContent.decorators=[c];export const wrapperDismissableUnderlayError=(e={},i={})=>{const t=i.viewMode!=="docs";return a`
315
+ `;
316
+ };
317
+ longContent.decorators = [overlayTriggerDecorator];
318
+ export const wrapperDismissableUnderlayError = (args = {}, context = {}) => {
319
+ const open = context.viewMode === "docs" ? false : true;
320
+ return html`
247
321
  <div>
248
322
  <sp-dialog-wrapper
249
- ?open=${t}
250
- hero=${r}
323
+ ?open=${open}
324
+ hero=${landscape}
251
325
  dismissable
252
326
  error
253
327
  headline="Wrapped Dialog w/ Hero Image"
254
328
  underlay
255
- @close=${s(e)}
329
+ @close=${handleClose(args)}
256
330
  size="s"
257
331
  >
258
332
  Content of the dialog
@@ -269,25 +343,33 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
269
343
  Toggle Dialog
270
344
  </sp-button>
271
345
  </div>
272
- `},wrapperButtons=(e={},i={})=>{const t=i.viewMode!=="docs";return a`
346
+ `;
347
+ };
348
+ export const wrapperButtons = (args = {}, context = {}) => {
349
+ const open = context.viewMode === "docs" ? false : true;
350
+ return html`
273
351
  <sp-dialog-wrapper
274
- ?open=${t}
352
+ ?open=${open}
275
353
  size="l"
276
354
  headline="Wrapped Dialog w/ Buttons"
277
355
  confirm-label="Keep Both"
278
356
  secondary-label="Replace"
279
357
  cancel-label="Cancel"
280
358
  footer="Content for footer"
281
- @close=${s(e)}
282
- @confirm=${l(e)}
283
- @secondary=${n(e)}
284
- @cancel=${u(e)}
359
+ @close=${handleClose(args)}
360
+ @confirm=${handleConfirm(args)}
361
+ @secondary=${handleSecondary(args)}
362
+ @cancel=${handleCancel(args)}
285
363
  >
286
364
  Content of the dialog
287
365
  </sp-dialog-wrapper>
288
- `},wrapperButtonsUnderlay=(e={},i={})=>{const t=i.viewMode!=="docs";return a`
366
+ `;
367
+ };
368
+ export const wrapperButtonsUnderlay = (args = {}, context = {}) => {
369
+ const open = context.viewMode === "docs" ? false : true;
370
+ return html`
289
371
  <sp-dialog-wrapper
290
- ?open=${t}
372
+ ?open=${open}
291
373
  underlay
292
374
  size="l"
293
375
  headline="Wrapped Dialog w/ Buttons"
@@ -295,27 +377,68 @@ import{html as a}from"@spectrum-web-components/base";import{ifDefined as p}from"
295
377
  secondary-label="Replace"
296
378
  cancel-label="Cancel"
297
379
  footer="Content for footer"
298
- @close=${s(e)}
299
- @confirm=${l(e)}
300
- @secondary=${n(e)}
301
- @cancel=${u(e)}
380
+ @close=${handleClose(args)}
381
+ @confirm=${handleConfirm(args)}
382
+ @secondary=${handleSecondary(args)}
383
+ @cancel=${handleCancel(args)}
302
384
  >
303
385
  Content of the dialog
304
386
  </sp-dialog-wrapper>
305
- `},wrapperFullscreen=(e={},i={})=>{const t=i.viewMode!=="docs";return a`
387
+ `;
388
+ };
389
+ export const wrapperFullscreen = (args = {}, context = {}) => {
390
+ const open = context.viewMode === "docs" ? false : true;
391
+ return html`
306
392
  <sp-dialog-wrapper
307
- ?open=${t}
393
+ ?open=${open}
308
394
  headline="Wrapped Dialog - Fullscreen"
309
395
  mode="fullscreen"
310
396
  confirm-label="Keep Both"
311
397
  secondary-label="Replace"
312
398
  cancel-label="Cancel"
313
- @close=${s(e)}
314
- @confirm=${l(e)}
315
- @secondary=${n(e)}
316
- @cancel=${u(e)}
399
+ @close=${handleClose(args)}
400
+ @confirm=${handleConfirm(args)}
401
+ @secondary=${handleSecondary(args)}
402
+ @cancel=${handleCancel(args)}
317
403
  >
318
404
  Content of the dialog
319
405
  </sp-dialog-wrapper>
320
- `};
406
+ `;
407
+ };
408
+ export const tooltips = (args = {}, context = {}) => {
409
+ const open = context.viewMode === "docs" ? void 0 : "click";
410
+ return html`
411
+ <overlay-trigger
412
+ type="modal"
413
+ placement="none"
414
+ @close=${handleClose(args)}
415
+ open=${ifDefined(open)}
416
+ >
417
+ <sp-button slot="trigger" variant="primary">
418
+ Toggle Dialog
419
+ </sp-button>
420
+ <sp-dialog-wrapper
421
+ slot="click-content"
422
+ headline="Dialog title"
423
+ dismissable
424
+ underlay
425
+ size="s"
426
+ >
427
+ ${[1, 2, 3, 4].map(
428
+ (index) => html`
429
+ <overlay-trigger>
430
+ <sp-button slot="trigger">
431
+ Button with Tooltip ${index}
432
+ </sp-button>
433
+ <sp-tooltip slot="hover-content">
434
+ Tooltip ${index}
435
+ </sp-tooltip>
436
+ </overlay-trigger>
437
+ `
438
+ )}
439
+ </sp-dialog-wrapper>
440
+ </overlay-trigger>
441
+ `;
442
+ };
443
+ tooltips.decorators = [overlayTriggerDecorator];
321
444
  //# sourceMappingURL=dialog-wrapper.stories.js.map