@spectrum-web-components/overlay 0.36.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +266 -149
  2. package/custom-elements.json +1678 -553
  3. package/package.json +49 -22
  4. package/sp-overlay.d.ts +6 -0
  5. package/sp-overlay.dev.js +5 -0
  6. package/{active-overlay.dev.js.map → sp-overlay.dev.js.map} +3 -3
  7. package/sp-overlay.js +2 -0
  8. package/{active-overlay.js.map → sp-overlay.js.map} +4 -4
  9. package/src/AbstractOverlay.d.ts +58 -0
  10. package/src/AbstractOverlay.dev.js +211 -0
  11. package/src/AbstractOverlay.dev.js.map +7 -0
  12. package/src/AbstractOverlay.js +2 -0
  13. package/src/AbstractOverlay.js.map +7 -0
  14. package/src/Overlay.d.ts +163 -0
  15. package/src/Overlay.dev.js +792 -0
  16. package/src/Overlay.dev.js.map +7 -0
  17. package/src/Overlay.js +33 -0
  18. package/src/Overlay.js.map +7 -0
  19. package/src/OverlayDialog.d.ts +4 -0
  20. package/src/OverlayDialog.dev.js +135 -0
  21. package/src/OverlayDialog.dev.js.map +7 -0
  22. package/src/OverlayDialog.js +2 -0
  23. package/src/OverlayDialog.js.map +7 -0
  24. package/src/OverlayNoPopover.d.ts +4 -0
  25. package/src/OverlayNoPopover.dev.js +109 -0
  26. package/src/OverlayNoPopover.dev.js.map +7 -0
  27. package/src/OverlayNoPopover.js +2 -0
  28. package/src/OverlayNoPopover.js.map +7 -0
  29. package/src/OverlayPopover.d.ts +4 -0
  30. package/src/OverlayPopover.dev.js +169 -0
  31. package/src/OverlayPopover.dev.js.map +7 -0
  32. package/src/OverlayPopover.js +2 -0
  33. package/src/OverlayPopover.js.map +7 -0
  34. package/src/OverlayStack.d.ts +43 -0
  35. package/src/OverlayStack.dev.js +150 -0
  36. package/src/OverlayStack.dev.js.map +7 -0
  37. package/src/OverlayStack.js +2 -0
  38. package/src/OverlayStack.js.map +7 -0
  39. package/src/OverlayTrigger.d.ts +26 -42
  40. package/src/OverlayTrigger.dev.js +172 -296
  41. package/src/OverlayTrigger.dev.js.map +3 -3
  42. package/src/OverlayTrigger.js +49 -25
  43. package/src/OverlayTrigger.js.map +3 -3
  44. package/src/PlacementController.d.ts +38 -0
  45. package/src/PlacementController.dev.js +199 -0
  46. package/src/PlacementController.dev.js.map +7 -0
  47. package/src/PlacementController.js +2 -0
  48. package/src/PlacementController.js.map +7 -0
  49. package/src/VirtualTrigger.dev.js +2 -1
  50. package/src/VirtualTrigger.dev.js.map +2 -2
  51. package/src/VirtualTrigger.js +1 -1
  52. package/src/VirtualTrigger.js.map +2 -2
  53. package/src/fullSizePlugin.d.ts +12 -0
  54. package/src/fullSizePlugin.dev.js +39 -0
  55. package/src/fullSizePlugin.dev.js.map +7 -0
  56. package/src/fullSizePlugin.js +2 -0
  57. package/src/fullSizePlugin.js.map +7 -0
  58. package/src/index.d.ts +2 -3
  59. package/src/index.dev.js +2 -3
  60. package/src/index.dev.js.map +2 -2
  61. package/src/index.js +1 -1
  62. package/src/index.js.map +2 -2
  63. package/src/loader.d.ts +1 -2
  64. package/src/loader.dev.js +2 -19
  65. package/src/loader.dev.js.map +2 -2
  66. package/src/loader.js +1 -1
  67. package/src/loader.js.map +3 -3
  68. package/src/overlay-timer.dev.js.map +2 -2
  69. package/src/overlay-timer.js.map +2 -2
  70. package/src/overlay-trigger.css.dev.js +1 -1
  71. package/src/overlay-trigger.css.dev.js.map +1 -1
  72. package/src/overlay-trigger.css.js +3 -3
  73. package/src/overlay-trigger.css.js.map +1 -1
  74. package/src/overlay-types.d.ts +25 -31
  75. package/src/overlay-types.dev.js +1 -0
  76. package/src/overlay-types.dev.js.map +3 -3
  77. package/src/overlay-types.js +1 -1
  78. package/src/overlay-types.js.map +3 -3
  79. package/src/overlay.css.dev.js +9 -0
  80. package/src/overlay.css.dev.js.map +7 -0
  81. package/src/overlay.css.js +6 -0
  82. package/src/overlay.css.js.map +7 -0
  83. package/src/topLayerOverTransforms.d.ts +2 -0
  84. package/src/topLayerOverTransforms.dev.js +91 -0
  85. package/src/topLayerOverTransforms.dev.js.map +7 -0
  86. package/src/topLayerOverTransforms.js +2 -0
  87. package/src/topLayerOverTransforms.js.map +7 -0
  88. package/stories/overlay-element.stories.js +476 -0
  89. package/stories/overlay-element.stories.js.map +7 -0
  90. package/stories/overlay-story-components.js +9 -8
  91. package/stories/overlay-story-components.js.map +2 -2
  92. package/stories/overlay.stories.js +824 -680
  93. package/stories/overlay.stories.js.map +2 -2
  94. package/sync/overlay-trigger.d.ts +5 -0
  95. package/sync/overlay-trigger.dev.js +2 -4
  96. package/sync/overlay-trigger.dev.js.map +2 -2
  97. package/sync/overlay-trigger.js +1 -1
  98. package/sync/overlay-trigger.js.map +3 -3
  99. package/test/benchmark/basic-test.js +2 -2
  100. package/test/benchmark/basic-test.js.map +1 -1
  101. package/test/index.js +414 -377
  102. package/test/index.js.map +3 -3
  103. package/test/overlay-element.test-vrt.js +5 -0
  104. package/test/overlay-element.test-vrt.js.map +7 -0
  105. package/test/overlay-element.test.js +682 -0
  106. package/test/overlay-element.test.js.map +7 -0
  107. package/test/overlay-lifecycle.test.js +36 -106
  108. package/test/overlay-lifecycle.test.js.map +2 -2
  109. package/test/overlay-trigger-click.test.js +11 -5
  110. package/test/overlay-trigger-click.test.js.map +2 -2
  111. package/test/overlay-trigger-extended.test.js +46 -36
  112. package/test/overlay-trigger-extended.test.js.map +2 -2
  113. package/test/overlay-trigger-hover-click.test.js +38 -25
  114. package/test/overlay-trigger-hover-click.test.js.map +2 -2
  115. package/test/overlay-trigger-hover.test.js +41 -35
  116. package/test/overlay-trigger-hover.test.js.map +2 -2
  117. package/test/overlay-trigger-longpress.test.js +211 -82
  118. package/test/overlay-trigger-longpress.test.js.map +2 -2
  119. package/test/overlay-trigger-sync.test.js +1 -1
  120. package/test/overlay-trigger-sync.test.js.map +2 -2
  121. package/test/overlay-trigger.test.js +1 -1
  122. package/test/overlay-trigger.test.js.map +2 -2
  123. package/test/overlay-update.test.js +5 -5
  124. package/test/overlay-update.test.js.map +2 -2
  125. package/test/overlay-v1.test.js +547 -0
  126. package/test/overlay-v1.test.js.map +7 -0
  127. package/test/overlay.test.js +385 -269
  128. package/test/overlay.test.js.map +3 -3
  129. package/active-overlay.d.ts +0 -6
  130. package/active-overlay.dev.js +0 -5
  131. package/active-overlay.js +0 -2
  132. package/src/ActiveOverlay.d.ts +0 -84
  133. package/src/ActiveOverlay.dev.js +0 -517
  134. package/src/ActiveOverlay.dev.js.map +0 -7
  135. package/src/ActiveOverlay.js +0 -16
  136. package/src/ActiveOverlay.js.map +0 -7
  137. package/src/active-overlay.css.dev.js +0 -13
  138. package/src/active-overlay.css.dev.js.map +0 -7
  139. package/src/active-overlay.css.js +0 -10
  140. package/src/active-overlay.css.js.map +0 -7
  141. package/src/overlay-stack.d.ts +0 -50
  142. package/src/overlay-stack.dev.js +0 -515
  143. package/src/overlay-stack.dev.js.map +0 -7
  144. package/src/overlay-stack.js +0 -34
  145. package/src/overlay-stack.js.map +0 -7
  146. package/src/overlay-utils.d.ts +0 -3
  147. package/src/overlay-utils.dev.js +0 -31
  148. package/src/overlay-utils.dev.js.map +0 -7
  149. package/src/overlay-utils.js +0 -2
  150. package/src/overlay-utils.js.map +0 -7
  151. package/src/overlay.d.ts +0 -59
  152. package/src/overlay.dev.js +0 -127
  153. package/src/overlay.dev.js.map +0 -7
  154. package/src/overlay.js +0 -2
  155. package/src/overlay.js.map +0 -7
  156. /package/src/{active-overlay.css.d.ts → overlay.css.d.ts} +0 -0
@@ -2,6 +2,21 @@
2
2
  "schemaVersion": "1.0.0",
3
3
  "readme": "",
4
4
  "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "sp-overlay.js",
8
+ "declarations": [],
9
+ "exports": [
10
+ {
11
+ "kind": "custom-element-definition",
12
+ "name": "sp-overlay",
13
+ "declaration": {
14
+ "name": "Overlay",
15
+ "module": "/src/Overlay.js"
16
+ }
17
+ }
18
+ ]
19
+ },
5
20
  {
6
21
  "kind": "javascript-module",
7
22
  "path": "overlay-trigger.js",
@@ -21,165 +36,269 @@
21
36
  "kind": "javascript-module",
22
37
  "path": "sync/overlay-trigger.js",
23
38
  "declarations": [],
24
- "exports": []
39
+ "exports": [
40
+ {
41
+ "kind": "js",
42
+ "name": "OverlayTrigger",
43
+ "declaration": {
44
+ "name": "OverlayTrigger",
45
+ "module": "sync/overlay-trigger.js"
46
+ }
47
+ },
48
+ {
49
+ "kind": "js",
50
+ "name": "OverlayOptionsV1",
51
+ "declaration": {
52
+ "name": "OverlayOptionsV1",
53
+ "module": "sync/overlay-trigger.js"
54
+ }
55
+ },
56
+ {
57
+ "kind": "js",
58
+ "name": "TriggerInteractions",
59
+ "declaration": {
60
+ "name": "TriggerInteractions",
61
+ "module": "sync/overlay-trigger.js"
62
+ }
63
+ }
64
+ ]
25
65
  },
26
66
  {
27
67
  "kind": "javascript-module",
28
- "path": "src/ActiveOverlay.js",
68
+ "path": "src/AbstractOverlay.js",
29
69
  "declarations": [
70
+ {
71
+ "kind": "variable",
72
+ "name": "overlayTimer",
73
+ "default": "new OverlayTimer()"
74
+ },
75
+ {
76
+ "kind": "function",
77
+ "name": "noop",
78
+ "return": {
79
+ "type": {
80
+ "text": "void"
81
+ }
82
+ }
83
+ },
30
84
  {
31
85
  "kind": "class",
32
86
  "description": "",
33
- "name": "ActiveOverlay",
34
- "slots": [
35
- {
36
- "description": "content to display in the overlay",
37
- "name": ""
38
- }
39
- ],
87
+ "name": "BeforetoggleClosedEvent",
40
88
  "members": [
41
89
  {
42
90
  "kind": "field",
43
- "name": "overlayContent",
91
+ "name": "currentState",
44
92
  "type": {
45
- "text": "HTMLElement"
93
+ "text": "string"
46
94
  },
47
- "privacy": "public"
95
+ "default": "'open'"
48
96
  },
49
97
  {
50
98
  "kind": "field",
51
- "name": "overlayContentTip",
99
+ "name": "newState",
52
100
  "type": {
53
- "text": "HTMLElement | undefined"
101
+ "text": "string"
54
102
  },
55
- "privacy": "public"
56
- },
103
+ "default": "'closed'"
104
+ }
105
+ ],
106
+ "superclass": {
107
+ "name": "Event",
108
+ "module": "src/AbstractOverlay.ts"
109
+ }
110
+ },
111
+ {
112
+ "kind": "class",
113
+ "description": "",
114
+ "name": "BeforetoggleOpenEvent",
115
+ "members": [
57
116
  {
58
117
  "kind": "field",
59
- "name": "trigger",
118
+ "name": "currentState",
60
119
  "type": {
61
- "text": "HTMLElement"
120
+ "text": "string"
62
121
  },
63
- "privacy": "public"
122
+ "default": "'closed'"
64
123
  },
65
124
  {
66
125
  "kind": "field",
67
- "name": "root",
126
+ "name": "newState",
68
127
  "type": {
69
- "text": "HTMLElement | undefined"
128
+ "text": "string"
70
129
  },
71
- "privacy": "public"
72
- },
130
+ "default": "'open'"
131
+ }
132
+ ],
133
+ "superclass": {
134
+ "name": "Event",
135
+ "module": "src/AbstractOverlay.ts"
136
+ }
137
+ },
138
+ {
139
+ "kind": "function",
140
+ "name": "guaranteedAllTransitionend",
141
+ "return": {
142
+ "type": {
143
+ "text": "void"
144
+ }
145
+ },
146
+ "parameters": [
73
147
  {
74
- "kind": "field",
75
- "name": "virtualTrigger",
148
+ "name": "el",
76
149
  "type": {
77
- "text": "VirtualTrigger | undefined"
150
+ "text": "HTMLElement"
78
151
  },
79
- "privacy": "public"
152
+ "description": "Target of the \"transition\" listeners."
80
153
  },
81
154
  {
82
- "kind": "field",
83
- "name": "cleanup",
155
+ "name": "action",
84
156
  "type": {
85
- "text": "() => void | undefined"
157
+ "text": "Function"
86
158
  },
87
- "privacy": "private"
159
+ "description": "Method to trigger the \"transition\"."
88
160
  },
89
161
  {
90
- "kind": "field",
91
- "name": "contentAnimationPromise",
162
+ "name": "cb",
92
163
  "type": {
93
- "text": "Promise<boolean>"
164
+ "text": "Function"
94
165
  },
95
- "privacy": "protected"
96
- },
97
- {
98
- "kind": "field",
99
- "name": "resolveContentAnimationPromise",
100
- "privacy": "protected"
101
- },
102
- {
103
- "kind": "field",
104
- "name": "_state",
105
- "privacy": "public",
106
- "attribute": "_state"
107
- },
166
+ "description": "Callback to trigger when the \"transition\" has ended."
167
+ }
168
+ ],
169
+ "description": "Apply a \"transitionend\" listener to an element that may not transition but\nguarantee the callback will be fired either way."
170
+ },
171
+ {
172
+ "kind": "function",
173
+ "name": "nextFrame",
174
+ "return": {
175
+ "type": {
176
+ "text": "Promise<void>"
177
+ }
178
+ }
179
+ },
180
+ {
181
+ "kind": "function",
182
+ "name": "forcePaint",
183
+ "return": {
184
+ "type": {
185
+ "text": "void"
186
+ }
187
+ }
188
+ },
189
+ {
190
+ "kind": "class",
191
+ "description": "",
192
+ "name": "AbstractOverlay",
193
+ "members": [
108
194
  {
109
- "kind": "field",
110
- "name": "state",
111
- "type": {
112
- "text": "OverlayStateType"
195
+ "kind": "method",
196
+ "name": "applyFocus",
197
+ "privacy": "protected",
198
+ "return": {
199
+ "type": {
200
+ "text": "Promise<void>"
201
+ }
113
202
  },
114
- "privacy": "public"
203
+ "parameters": [
204
+ {
205
+ "name": "_targetOpenState",
206
+ "type": {
207
+ "text": "boolean"
208
+ }
209
+ },
210
+ {
211
+ "name": "_focusEl",
212
+ "type": {
213
+ "text": "HTMLElement | null"
214
+ }
215
+ }
216
+ ]
115
217
  },
116
218
  {
117
219
  "kind": "field",
118
- "name": "animating",
220
+ "name": "delayed",
119
221
  "type": {
120
222
  "text": "boolean"
121
- },
122
- "privacy": "public",
123
- "default": "false",
124
- "attribute": "animating",
125
- "reflects": true
223
+ }
126
224
  },
127
225
  {
128
226
  "kind": "field",
129
- "name": "placement",
227
+ "name": "dialogEl",
130
228
  "type": {
131
- "text": "Placement | undefined"
132
- },
133
- "privacy": "public",
134
- "attribute": "placement",
135
- "reflects": true
229
+ "text": "HTMLDialogElement & {\n showPopover(): void;\n hidePopover(): void;\n }"
230
+ }
136
231
  },
137
232
  {
138
233
  "kind": "field",
139
- "name": "theme",
140
- "type": {
141
- "text": "{\n color?: Color;\n scale?: Scale;\n lang?: string;\n theme?: ThemeVariant;\n }"
142
- },
143
- "privacy": "public",
144
- "default": "{}"
234
+ "name": "dispose",
235
+ "default": "noop"
145
236
  },
146
237
  {
147
- "kind": "field",
148
- "name": "receivesFocus",
149
- "type": {
150
- "text": "'auto' | undefined"
238
+ "kind": "method",
239
+ "name": "ensureOnDOM",
240
+ "privacy": "protected",
241
+ "return": {
242
+ "type": {
243
+ "text": "Promise<void>"
244
+ }
151
245
  },
152
- "privacy": "public"
246
+ "parameters": [
247
+ {
248
+ "name": "_targetOpenState",
249
+ "type": {
250
+ "text": "boolean"
251
+ }
252
+ }
253
+ ]
153
254
  },
154
255
  {
155
256
  "kind": "field",
156
- "name": "tabbingAway",
257
+ "name": "elements",
157
258
  "type": {
158
- "text": "boolean"
159
- },
160
- "privacy": "public",
161
- "default": "false"
259
+ "text": "OpenableElement[]"
260
+ }
162
261
  },
163
262
  {
164
- "kind": "field",
165
- "name": "originalPlacement",
166
- "type": {
167
- "text": "Placement | undefined"
263
+ "kind": "method",
264
+ "name": "makeTransition",
265
+ "privacy": "protected",
266
+ "return": {
267
+ "type": {
268
+ "text": "Promise<HTMLElement | null>"
269
+ }
168
270
  },
169
- "privacy": "private"
271
+ "parameters": [
272
+ {
273
+ "name": "_targetOpenState",
274
+ "type": {
275
+ "text": "boolean"
276
+ }
277
+ }
278
+ ]
170
279
  },
171
280
  {
172
- "kind": "field",
173
- "name": "restoreContent",
174
- "type": {
175
- "text": "() => Element[] | undefined"
281
+ "kind": "method",
282
+ "name": "manageDelay",
283
+ "privacy": "protected",
284
+ "return": {
285
+ "type": {
286
+ "text": "Promise<void>"
287
+ }
176
288
  },
177
- "privacy": "private"
289
+ "parameters": [
290
+ {
291
+ "name": "_targetOpenState",
292
+ "type": {
293
+ "text": "boolean"
294
+ }
295
+ }
296
+ ]
178
297
  },
179
298
  {
180
299
  "kind": "method",
181
- "name": "focus",
182
- "privacy": "public",
300
+ "name": "manageDialogOpen",
301
+ "privacy": "protected",
183
302
  "return": {
184
303
  "type": {
185
304
  "text": "Promise<void>"
@@ -187,78 +306,79 @@
187
306
  }
188
307
  },
189
308
  {
190
- "kind": "field",
191
- "name": "hasTheme",
192
- "type": {
193
- "text": "boolean"
194
- },
195
- "privacy": "private",
196
- "readonly": true
309
+ "kind": "method",
310
+ "name": "managePopoverOpen",
311
+ "privacy": "protected",
312
+ "return": {
313
+ "type": {
314
+ "text": "Promise<void>"
315
+ }
316
+ }
317
+ },
318
+ {
319
+ "kind": "method",
320
+ "name": "managePosition",
321
+ "privacy": "protected",
322
+ "return": {
323
+ "type": {
324
+ "text": "void"
325
+ }
326
+ }
197
327
  },
198
328
  {
199
329
  "kind": "field",
200
- "name": "offset",
330
+ "name": "open",
201
331
  "type": {
202
- "text": "number"
203
- },
204
- "privacy": "public",
205
- "default": "6"
332
+ "text": "boolean"
333
+ }
206
334
  },
207
335
  {
208
336
  "kind": "field",
209
- "name": "skidding",
337
+ "name": "placementController",
210
338
  "type": {
211
- "text": "number"
339
+ "text": "PlacementController"
212
340
  },
213
- "privacy": "public",
214
- "default": "0"
341
+ "privacy": "protected"
215
342
  },
216
343
  {
217
344
  "kind": "field",
218
- "name": "interaction",
345
+ "name": "receivesFocus",
219
346
  "type": {
220
- "text": "TriggerInteractions"
221
- },
222
- "privacy": "public",
223
- "default": "'hover'"
347
+ "text": "'true' | 'false' | 'auto'"
348
+ }
224
349
  },
225
350
  {
226
351
  "kind": "field",
227
- "name": "positionAnimationFrame",
352
+ "name": "state",
228
353
  "type": {
229
- "text": "number"
230
- },
231
- "privacy": "private",
232
- "default": "0"
354
+ "text": "OverlayState"
355
+ }
233
356
  },
234
357
  {
235
358
  "kind": "field",
236
- "name": "timeout",
359
+ "name": "_state",
237
360
  "type": {
238
- "text": "number | undefined"
361
+ "text": "OverlayState"
239
362
  },
240
- "privacy": "private"
363
+ "privacy": "protected"
241
364
  },
242
365
  {
243
366
  "kind": "field",
244
- "name": "_modalRoot",
367
+ "name": "triggerElement",
245
368
  "type": {
246
- "text": "ActiveOverlay | undefined"
247
- },
248
- "privacy": "private"
369
+ "text": "HTMLElement | VirtualTrigger | null"
370
+ }
249
371
  },
250
372
  {
251
373
  "kind": "field",
252
- "name": "hasModalRoot",
374
+ "name": "type",
253
375
  "type": {
254
- "text": "boolean"
255
- },
256
- "privacy": "public",
257
- "readonly": true
376
+ "text": "OverlayTypes"
377
+ }
258
378
  },
259
379
  {
260
380
  "kind": "method",
261
- "name": "feature",
381
+ "name": "manuallyKeepOpen",
262
382
  "privacy": "public",
263
383
  "return": {
264
384
  "type": {
@@ -268,36 +388,37 @@
268
388
  },
269
389
  {
270
390
  "kind": "method",
271
- "name": "obscure",
391
+ "name": "open",
272
392
  "privacy": "public",
393
+ "static": true,
273
394
  "return": {
274
395
  "type": {
275
- "text": "ActiveOverlay | undefined"
396
+ "text": "Promise<() => void>"
276
397
  }
277
398
  },
278
399
  "parameters": [
279
400
  {
280
- "name": "nextOverlayInteraction",
401
+ "name": "trigger",
281
402
  "type": {
282
- "text": "TriggerInteractions"
403
+ "text": "HTMLElement"
283
404
  }
284
- }
285
- ]
286
- },
287
- {
288
- "kind": "method",
289
- "name": "openCallback",
290
- "privacy": "public",
291
- "return": {
292
- "type": {
293
- "text": "Promise<void>"
294
- }
295
- },
296
- "parameters": [
405
+ },
406
+ {
407
+ "name": "interaction",
408
+ "type": {
409
+ "text": "TriggerInteractionsV1"
410
+ }
411
+ },
412
+ {
413
+ "name": "content",
414
+ "type": {
415
+ "text": "HTMLElement"
416
+ }
417
+ },
297
418
  {
298
- "name": "lifecycleCallback",
419
+ "name": "optionsV1",
299
420
  "type": {
300
- "text": "() => Promise<void> | void"
421
+ "text": "OverlayOptionsV1"
301
422
  }
302
423
  }
303
424
  ]
@@ -305,70 +426,195 @@
305
426
  {
306
427
  "kind": "method",
307
428
  "name": "open",
308
- "privacy": "private",
429
+ "privacy": "public",
430
+ "static": true,
309
431
  "return": {
310
432
  "type": {
311
- "text": "void"
433
+ "text": "Promise<Overlay>"
312
434
  }
313
435
  },
314
436
  "parameters": [
315
437
  {
316
- "name": "openDetail",
438
+ "name": "content",
439
+ "type": {
440
+ "text": "HTMLElement"
441
+ }
442
+ },
443
+ {
444
+ "name": "options",
445
+ "optional": true,
317
446
  "type": {
318
- "text": "OverlayOpenDetail"
447
+ "text": "OverlayOptions"
319
448
  }
320
449
  }
321
450
  ]
322
451
  },
323
452
  {
324
453
  "kind": "method",
325
- "name": "extractDetail",
326
- "privacy": "private",
454
+ "name": "open",
455
+ "privacy": "public",
456
+ "static": true,
327
457
  "return": {
328
458
  "type": {
329
- "text": "void"
459
+ "text": "Promise<Overlay | (() => void)>"
330
460
  }
331
461
  },
332
462
  "parameters": [
333
463
  {
334
- "name": "detail",
464
+ "name": "triggerOrContent",
465
+ "type": {
466
+ "text": "HTMLElement"
467
+ }
468
+ },
469
+ {
470
+ "name": "interactionOrOptions",
471
+ "type": {
472
+ "text": "| TriggerInteractionsV1\n | OverlayOptions\n | undefined"
473
+ }
474
+ },
475
+ {
476
+ "name": "content",
477
+ "optional": true,
478
+ "type": {
479
+ "text": "HTMLElement"
480
+ }
481
+ },
482
+ {
483
+ "name": "optionsV1",
484
+ "optional": true,
335
485
  "type": {
336
- "text": "OverlayOpenDetail"
486
+ "text": "OverlayOptionsV1"
337
487
  }
338
488
  }
339
489
  ]
490
+ }
491
+ ],
492
+ "superclass": {
493
+ "name": "SpectrumElement",
494
+ "package": "@spectrum-web-components/base"
495
+ }
496
+ }
497
+ ],
498
+ "exports": [
499
+ {
500
+ "kind": "js",
501
+ "name": "overlayTimer",
502
+ "declaration": {
503
+ "name": "overlayTimer",
504
+ "module": "src/AbstractOverlay.js"
505
+ }
506
+ },
507
+ {
508
+ "kind": "js",
509
+ "name": "noop",
510
+ "declaration": {
511
+ "name": "noop",
512
+ "module": "src/AbstractOverlay.js"
513
+ }
514
+ },
515
+ {
516
+ "kind": "js",
517
+ "name": "BeforetoggleClosedEvent",
518
+ "declaration": {
519
+ "name": "BeforetoggleClosedEvent",
520
+ "module": "src/AbstractOverlay.js"
521
+ }
522
+ },
523
+ {
524
+ "kind": "js",
525
+ "name": "BeforetoggleOpenEvent",
526
+ "declaration": {
527
+ "name": "BeforetoggleOpenEvent",
528
+ "module": "src/AbstractOverlay.js"
529
+ }
530
+ },
531
+ {
532
+ "kind": "js",
533
+ "name": "guaranteedAllTransitionend",
534
+ "declaration": {
535
+ "name": "guaranteedAllTransitionend",
536
+ "module": "src/AbstractOverlay.js"
537
+ }
538
+ },
539
+ {
540
+ "kind": "js",
541
+ "name": "nextFrame",
542
+ "declaration": {
543
+ "name": "nextFrame",
544
+ "module": "src/AbstractOverlay.js"
545
+ }
546
+ },
547
+ {
548
+ "kind": "js",
549
+ "name": "forcePaint",
550
+ "declaration": {
551
+ "name": "forcePaint",
552
+ "module": "src/AbstractOverlay.js"
553
+ }
554
+ },
555
+ {
556
+ "kind": "js",
557
+ "name": "AbstractOverlay",
558
+ "declaration": {
559
+ "name": "AbstractOverlay",
560
+ "module": "src/AbstractOverlay.js"
561
+ }
562
+ }
563
+ ]
564
+ },
565
+ {
566
+ "kind": "javascript-module",
567
+ "path": "src/Overlay.js",
568
+ "declarations": [
569
+ {
570
+ "kind": "variable",
571
+ "name": "LONGPRESS_INSTRUCTIONS",
572
+ "type": {
573
+ "text": "object"
574
+ },
575
+ "default": "{\n touch: 'Double tap and long press for additional options',\n keyboard: 'Press Space or Alt+Down Arrow for additional options',\n mouse: 'Click and hold for additional options',\n}"
576
+ },
577
+ {
578
+ "kind": "class",
579
+ "description": "",
580
+ "name": "Overlay",
581
+ "members": [
582
+ {
583
+ "kind": "field",
584
+ "name": "abortController",
585
+ "type": {
586
+ "text": "AbortController"
587
+ }
340
588
  },
341
589
  {
342
- "kind": "method",
343
- "name": "dispose",
344
- "privacy": "public",
345
- "return": {
346
- "type": {
347
- "text": "void"
348
- }
590
+ "kind": "field",
591
+ "name": "delayed",
592
+ "type": {
593
+ "text": "boolean"
594
+ },
595
+ "default": "false",
596
+ "description": "An Overlay that is `delayed` will wait until a warm-up period of 1000ms\nhas completed before opening. Once the warmup period has completed, all\nsubsequent Overlays will open immediately. When no Overlays are opened,\na cooldown period of 1000ms will begin. Once the cooldown has completed,\nthe next Overlay to be opened will be subject to the warm-up period if\nprovided that option.",
597
+ "attribute": "delayed"
598
+ },
599
+ {
600
+ "kind": "field",
601
+ "name": "dialogEl",
602
+ "type": {
603
+ "text": "HTMLDialogElement & {\n showPopover(): void;\n hidePopover(): void;\n }"
349
604
  }
350
605
  },
351
606
  {
352
- "kind": "method",
353
- "name": "stealOverlayContent",
354
- "privacy": "private",
355
- "return": {
356
- "type": {
357
- "text": "void"
358
- }
607
+ "kind": "field",
608
+ "name": "disabled",
609
+ "type": {
610
+ "text": "boolean"
359
611
  },
360
- "parameters": [
361
- {
362
- "name": "element",
363
- "type": {
364
- "text": "HTMLElement & { placement: Placement }"
365
- }
366
- }
367
- ]
612
+ "description": "Whether the overlay is currently functional or not",
613
+ "attribute": "disabled"
368
614
  },
369
615
  {
370
616
  "kind": "field",
371
- "name": "willNotifyClosed",
617
+ "name": "_disabled",
372
618
  "type": {
373
619
  "text": "boolean"
374
620
  },
@@ -376,26 +622,75 @@
376
622
  "default": "false"
377
623
  },
378
624
  {
379
- "kind": "method",
380
- "name": "returnOverlayContent",
381
- "privacy": "private",
382
- "return": {
383
- "type": {
384
- "text": "void"
385
- }
625
+ "kind": "field",
626
+ "name": "elements",
627
+ "type": {
628
+ "text": "OpenableElement[]"
386
629
  }
387
630
  },
388
631
  {
389
632
  "kind": "field",
390
- "name": "initialHeight",
633
+ "name": "parentOverlayToForceClose",
391
634
  "type": {
392
- "text": "number | undefined"
635
+ "text": "Overlay | undefined"
636
+ },
637
+ "privacy": "public"
638
+ },
639
+ {
640
+ "kind": "field",
641
+ "name": "hasNonVirtualTrigger",
642
+ "type": {
643
+ "text": "boolean"
644
+ },
645
+ "privacy": "private",
646
+ "readonly": true
647
+ },
648
+ {
649
+ "kind": "field",
650
+ "name": "longpressState",
651
+ "type": {
652
+ "text": "'null' | 'potential' | 'opening' | 'pressed'"
653
+ },
654
+ "privacy": "protected",
655
+ "default": "'null'"
656
+ },
657
+ {
658
+ "kind": "field",
659
+ "name": "longressTimeout",
660
+ "type": {
661
+ "text": "ReturnType<typeof setTimeout>"
393
662
  },
394
663
  "privacy": "private"
395
664
  },
396
665
  {
397
666
  "kind": "field",
398
- "name": "isConstrained",
667
+ "name": "offset",
668
+ "type": {
669
+ "text": "number | [number, number]"
670
+ },
671
+ "default": "6",
672
+ "description": "The `offset` property accepts either a single number, to\ndefine the offset of the Overlay along the main axis from\nthe trigger, or 2-tuple, to define the offset along the\nmain axis and the cross axis. This option has no effect\nwhen there is no trigger element.",
673
+ "attribute": "offset"
674
+ },
675
+ {
676
+ "kind": "field",
677
+ "name": "placementController",
678
+ "privacy": "protected",
679
+ "default": "new PlacementController(this)"
680
+ },
681
+ {
682
+ "kind": "field",
683
+ "name": "open",
684
+ "type": {
685
+ "text": "boolean"
686
+ },
687
+ "description": "Whether the Overlay is projected onto the \"top layer\" or not.",
688
+ "attribute": "open",
689
+ "reflects": true
690
+ },
691
+ {
692
+ "kind": "field",
693
+ "name": "_open",
399
694
  "type": {
400
695
  "text": "boolean"
401
696
  },
@@ -403,34 +698,885 @@
403
698
  "default": "false"
404
699
  },
405
700
  {
406
- "kind": "method",
407
- "name": "placeOverlay",
408
- "privacy": "public",
409
- "return": {
410
- "type": {
411
- "text": "Promise<void>"
412
- }
701
+ "kind": "field",
702
+ "name": "openCount",
703
+ "type": {
704
+ "text": "number"
705
+ },
706
+ "static": true,
707
+ "default": "1"
708
+ },
709
+ {
710
+ "kind": "field",
711
+ "name": "placement",
712
+ "type": {
713
+ "text": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\""
714
+ },
715
+ "description": "Instruct the Overlay where to place itself in\nrelationship to the trigger element.",
716
+ "attribute": "placement"
717
+ },
718
+ {
719
+ "kind": "field",
720
+ "name": "receivesFocus",
721
+ "type": {
722
+ "text": "'true' | 'false' | 'auto'"
723
+ },
724
+ "default": "'auto'",
725
+ "description": "Whether to pass focus to the overlay once opened, or\nto the appropriate value based on the \"type\" of the overlay\nwhen set to `\"auto\"`.",
726
+ "attribute": "receives-focus"
727
+ },
728
+ {
729
+ "kind": "field",
730
+ "name": "releaseAriaDescribedby",
731
+ "privacy": "private",
732
+ "default": "noop"
733
+ },
734
+ {
735
+ "kind": "field",
736
+ "name": "releaseLongpressDescribedby",
737
+ "privacy": "private",
738
+ "default": "noop"
739
+ },
740
+ {
741
+ "kind": "field",
742
+ "name": "slotEl",
743
+ "type": {
744
+ "text": "HTMLSlotElement"
413
745
  }
414
746
  },
415
747
  {
416
748
  "kind": "field",
417
- "name": "updateOverlayPosition",
418
- "privacy": "public"
749
+ "name": "state",
750
+ "type": {
751
+ "text": "OverlayState"
752
+ }
419
753
  },
420
754
  {
421
755
  "kind": "field",
422
- "name": "resetOverlayPosition",
423
- "privacy": "public"
756
+ "name": "_state",
757
+ "type": {
758
+ "text": "OverlayState"
759
+ },
760
+ "default": "'closed'"
424
761
  },
425
762
  {
426
763
  "kind": "field",
427
- "name": "setOverlayPosition",
428
- "privacy": "public"
764
+ "name": "tipPadding",
765
+ "type": {
766
+ "text": "number | undefined"
767
+ },
768
+ "attribute": "tip-padding"
429
769
  },
770
+ {
771
+ "kind": "field",
772
+ "name": "trigger",
773
+ "type": {
774
+ "text": "string | undefined"
775
+ },
776
+ "description": "An optional ID reference for the trigger element combined with the optional\ninteraction (click | hover | longpress) by which the overlay shold open\nthe overlay with an `@`: e.g. `trigger@click` opens the overlay when an\nelement with the ID \"trigger\" is clicked.",
777
+ "attribute": "trigger"
778
+ },
779
+ {
780
+ "kind": "field",
781
+ "name": "triggerElement",
782
+ "type": {
783
+ "text": "HTMLElement | VirtualTrigger | null"
784
+ },
785
+ "default": "null",
786
+ "description": "An element reference for the trigger element that the overlay should relate to."
787
+ },
788
+ {
789
+ "kind": "field",
790
+ "name": "triggerInteraction",
791
+ "type": {
792
+ "text": "'click' | 'longpress' | 'hover' | undefined"
793
+ },
794
+ "description": "The specific interaction to listen for on the `triggerElement` to open the overlay."
795
+ },
796
+ {
797
+ "kind": "field",
798
+ "name": "type",
799
+ "type": {
800
+ "text": "\"auto\" | \"hint\" | \"manual\" | \"modal\" | \"page\""
801
+ },
802
+ "default": "'auto'",
803
+ "description": "Configures the open/close heuristics of the Overlay.",
804
+ "attribute": "type"
805
+ },
806
+ {
807
+ "kind": "field",
808
+ "name": "wasOpen",
809
+ "type": {
810
+ "text": "boolean"
811
+ },
812
+ "privacy": "protected",
813
+ "default": "false"
814
+ },
815
+ {
816
+ "kind": "field",
817
+ "name": "elementResolver",
818
+ "privacy": "private",
819
+ "default": "new ElementResolutionController(this)"
820
+ },
821
+ {
822
+ "kind": "field",
823
+ "name": "usesDialog",
824
+ "type": {
825
+ "text": "boolean"
826
+ },
827
+ "privacy": "private",
828
+ "readonly": true
829
+ },
830
+ {
831
+ "kind": "field",
832
+ "name": "popoverValue",
833
+ "type": {
834
+ "text": "'auto' | 'manual' | undefined"
835
+ },
836
+ "privacy": "private",
837
+ "readonly": true
838
+ },
839
+ {
840
+ "kind": "field",
841
+ "name": "requiresPosition",
842
+ "type": {
843
+ "text": "boolean"
844
+ },
845
+ "privacy": "protected",
846
+ "readonly": true
847
+ },
848
+ {
849
+ "kind": "method",
850
+ "name": "managePosition",
851
+ "privacy": "protected",
852
+ "return": {
853
+ "type": {
854
+ "text": "void"
855
+ }
856
+ }
857
+ },
858
+ {
859
+ "kind": "method",
860
+ "name": "managePopoverOpen",
861
+ "privacy": "protected",
862
+ "return": {
863
+ "type": {
864
+ "text": "Promise<void>"
865
+ }
866
+ }
867
+ },
868
+ {
869
+ "kind": "method",
870
+ "name": "applyFocus",
871
+ "privacy": "protected",
872
+ "return": {
873
+ "type": {
874
+ "text": "Promise<void>"
875
+ }
876
+ },
877
+ "parameters": [
878
+ {
879
+ "name": "targetOpenState",
880
+ "type": {
881
+ "text": "boolean"
882
+ }
883
+ },
884
+ {
885
+ "name": "focusEl",
886
+ "type": {
887
+ "text": "HTMLElement | null"
888
+ }
889
+ }
890
+ ]
891
+ },
892
+ {
893
+ "kind": "field",
894
+ "name": "closeOnFocusOut",
895
+ "privacy": "private"
896
+ },
897
+ {
898
+ "kind": "method",
899
+ "name": "manageOpen",
900
+ "privacy": "protected",
901
+ "return": {
902
+ "type": {
903
+ "text": "Promise<void>"
904
+ }
905
+ },
906
+ "parameters": [
907
+ {
908
+ "name": "oldOpen",
909
+ "type": {
910
+ "text": "boolean"
911
+ }
912
+ }
913
+ ]
914
+ },
915
+ {
916
+ "kind": "method",
917
+ "name": "unbindEvents",
918
+ "privacy": "protected",
919
+ "return": {
920
+ "type": {
921
+ "text": "void"
922
+ }
923
+ }
924
+ },
925
+ {
926
+ "kind": "method",
927
+ "name": "bindEvents",
928
+ "privacy": "protected",
929
+ "return": {
930
+ "type": {
931
+ "text": "void"
932
+ }
933
+ }
934
+ },
935
+ {
936
+ "kind": "method",
937
+ "name": "bindClickEvents",
938
+ "privacy": "protected",
939
+ "return": {
940
+ "type": {
941
+ "text": "void"
942
+ }
943
+ },
944
+ "parameters": [
945
+ {
946
+ "name": "triggerElement",
947
+ "type": {
948
+ "text": "HTMLElement"
949
+ }
950
+ }
951
+ ]
952
+ },
953
+ {
954
+ "kind": "method",
955
+ "name": "bindLongpressEvents",
956
+ "privacy": "protected",
957
+ "return": {
958
+ "type": {
959
+ "text": "void"
960
+ }
961
+ },
962
+ "parameters": [
963
+ {
964
+ "name": "triggerElement",
965
+ "type": {
966
+ "text": "HTMLElement"
967
+ }
968
+ }
969
+ ]
970
+ },
971
+ {
972
+ "kind": "method",
973
+ "name": "bindHoverEvents",
974
+ "privacy": "protected",
975
+ "return": {
976
+ "type": {
977
+ "text": "void"
978
+ }
979
+ },
980
+ "parameters": [
981
+ {
982
+ "name": "triggerElement",
983
+ "type": {
984
+ "text": "HTMLElement"
985
+ }
986
+ }
987
+ ]
988
+ },
989
+ {
990
+ "kind": "method",
991
+ "name": "manageTriggerElement",
992
+ "privacy": "protected",
993
+ "return": {
994
+ "type": {
995
+ "text": "void"
996
+ }
997
+ },
998
+ "parameters": [
999
+ {
1000
+ "name": "triggerElement",
1001
+ "type": {
1002
+ "text": "HTMLElement | null"
1003
+ }
1004
+ }
1005
+ ]
1006
+ },
1007
+ {
1008
+ "kind": "field",
1009
+ "name": "elementIds",
1010
+ "type": {
1011
+ "text": "string[]"
1012
+ },
1013
+ "privacy": "private",
1014
+ "default": "[]"
1015
+ },
1016
+ {
1017
+ "kind": "method",
1018
+ "name": "prepareLongpressDescription",
1019
+ "privacy": "private",
1020
+ "return": {
1021
+ "type": {
1022
+ "text": "void"
1023
+ }
1024
+ },
1025
+ "parameters": [
1026
+ {
1027
+ "name": "trigger",
1028
+ "type": {
1029
+ "text": "HTMLElement"
1030
+ }
1031
+ }
1032
+ ]
1033
+ },
1034
+ {
1035
+ "kind": "method",
1036
+ "name": "prepareAriaDescribedby",
1037
+ "privacy": "private",
1038
+ "return": {
1039
+ "type": {
1040
+ "text": "void"
1041
+ }
1042
+ }
1043
+ },
1044
+ {
1045
+ "kind": "field",
1046
+ "name": "handlePointerdown",
1047
+ "privacy": "private"
1048
+ },
1049
+ {
1050
+ "kind": "field",
1051
+ "name": "handlePointerup",
1052
+ "privacy": "private"
1053
+ },
1054
+ {
1055
+ "kind": "field",
1056
+ "name": "handleKeydown",
1057
+ "privacy": "private"
1058
+ },
1059
+ {
1060
+ "kind": "field",
1061
+ "name": "handleKeyup",
1062
+ "privacy": "protected"
1063
+ },
1064
+ {
1065
+ "kind": "field",
1066
+ "name": "preventNextToggle",
1067
+ "type": {
1068
+ "text": "boolean"
1069
+ },
1070
+ "privacy": "private",
1071
+ "default": "false",
1072
+ "description": "An overlay with a `click` interaction should not close on click `triggerElement`.\nWhen a click is initiated (`pointerdown`), apply `preventNextToggle` when the\noverlay is `open` to prevent from toggling the overlay when the click event\npropagates later in the interaction."
1073
+ },
1074
+ {
1075
+ "kind": "field",
1076
+ "name": "handlePointerdownForClick",
1077
+ "privacy": "protected"
1078
+ },
1079
+ {
1080
+ "kind": "field",
1081
+ "name": "handleClick",
1082
+ "privacy": "protected"
1083
+ },
1084
+ {
1085
+ "kind": "field",
1086
+ "name": "focusedin",
1087
+ "type": {
1088
+ "text": "boolean"
1089
+ },
1090
+ "privacy": "private",
1091
+ "default": "false"
1092
+ },
1093
+ {
1094
+ "kind": "field",
1095
+ "name": "handleFocusin",
1096
+ "privacy": "protected"
1097
+ },
1098
+ {
1099
+ "kind": "field",
1100
+ "name": "handleFocusout",
1101
+ "privacy": "protected"
1102
+ },
1103
+ {
1104
+ "kind": "field",
1105
+ "name": "pointerentered",
1106
+ "type": {
1107
+ "text": "boolean"
1108
+ },
1109
+ "privacy": "private",
1110
+ "default": "false"
1111
+ },
1112
+ {
1113
+ "kind": "field",
1114
+ "name": "handlePointerenter",
1115
+ "privacy": "protected"
1116
+ },
1117
+ {
1118
+ "kind": "field",
1119
+ "name": "handlePointerleave",
1120
+ "privacy": "protected"
1121
+ },
1122
+ {
1123
+ "kind": "field",
1124
+ "name": "handleOverlayPointerleave",
1125
+ "privacy": "protected"
1126
+ },
1127
+ {
1128
+ "kind": "method",
1129
+ "name": "doPointerleave",
1130
+ "privacy": "protected",
1131
+ "return": {
1132
+ "type": {
1133
+ "text": "void"
1134
+ }
1135
+ }
1136
+ },
1137
+ {
1138
+ "kind": "field",
1139
+ "name": "handleLongpress",
1140
+ "privacy": "protected"
1141
+ },
1142
+ {
1143
+ "kind": "method",
1144
+ "name": "handleBeforetoggle",
1145
+ "privacy": "protected",
1146
+ "return": {
1147
+ "type": {
1148
+ "text": "void"
1149
+ }
1150
+ },
1151
+ "parameters": [
1152
+ {
1153
+ "name": "event",
1154
+ "type": {
1155
+ "text": "Event & { newState: string }"
1156
+ }
1157
+ }
1158
+ ]
1159
+ },
1160
+ {
1161
+ "kind": "method",
1162
+ "name": "handleBrowserClose",
1163
+ "privacy": "protected",
1164
+ "return": {
1165
+ "type": {
1166
+ "text": "void"
1167
+ }
1168
+ }
1169
+ },
1170
+ {
1171
+ "kind": "method",
1172
+ "name": "manuallyKeepOpen",
1173
+ "privacy": "public",
1174
+ "return": {
1175
+ "type": {
1176
+ "text": "void"
1177
+ }
1178
+ }
1179
+ },
1180
+ {
1181
+ "kind": "method",
1182
+ "name": "handleSlotchange",
1183
+ "privacy": "protected",
1184
+ "return": {
1185
+ "type": {
1186
+ "text": "void"
1187
+ }
1188
+ }
1189
+ },
1190
+ {
1191
+ "kind": "field",
1192
+ "name": "willPreventClose",
1193
+ "type": {
1194
+ "text": "boolean"
1195
+ },
1196
+ "privacy": "public",
1197
+ "default": "false"
1198
+ },
1199
+ {
1200
+ "kind": "method",
1201
+ "name": "shouldPreventClose",
1202
+ "privacy": "public",
1203
+ "return": {
1204
+ "type": {
1205
+ "text": "boolean"
1206
+ }
1207
+ }
1208
+ },
1209
+ {
1210
+ "kind": "method",
1211
+ "name": "renderContent",
1212
+ "privacy": "protected",
1213
+ "return": {
1214
+ "type": {
1215
+ "text": "TemplateResult"
1216
+ }
1217
+ }
1218
+ },
1219
+ {
1220
+ "kind": "field",
1221
+ "name": "dialogStyleMap",
1222
+ "type": {
1223
+ "text": "StyleInfo"
1224
+ },
1225
+ "privacy": "private",
1226
+ "readonly": true
1227
+ },
1228
+ {
1229
+ "kind": "method",
1230
+ "name": "renderDialog",
1231
+ "privacy": "protected",
1232
+ "return": {
1233
+ "type": {
1234
+ "text": "TemplateResult"
1235
+ }
1236
+ }
1237
+ },
1238
+ {
1239
+ "kind": "method",
1240
+ "name": "renderPopover",
1241
+ "privacy": "protected",
1242
+ "return": {
1243
+ "type": {
1244
+ "text": "TemplateResult"
1245
+ }
1246
+ }
1247
+ }
1248
+ ],
1249
+ "events": [
1250
+ {
1251
+ "description": "announces that an overlay has completed any entry animations",
1252
+ "name": "sp-opened"
1253
+ },
1254
+ {
1255
+ "description": "announce that an overlay has compelted any exit animations",
1256
+ "name": "sp-closed"
1257
+ }
1258
+ ],
1259
+ "attributes": [
1260
+ {
1261
+ "name": "delayed",
1262
+ "type": {
1263
+ "text": "boolean"
1264
+ },
1265
+ "default": "false",
1266
+ "description": "An Overlay that is `delayed` will wait until a warm-up period of 1000ms\nhas completed before opening. Once the warmup period has completed, all\nsubsequent Overlays will open immediately. When no Overlays are opened,\na cooldown period of 1000ms will begin. Once the cooldown has completed,\nthe next Overlay to be opened will be subject to the warm-up period if\nprovided that option.",
1267
+ "fieldName": "delayed"
1268
+ },
1269
+ {
1270
+ "name": "disabled",
1271
+ "type": {
1272
+ "text": "boolean"
1273
+ },
1274
+ "description": "Whether the overlay is currently functional or not",
1275
+ "fieldName": "disabled"
1276
+ },
1277
+ {
1278
+ "name": "offset",
1279
+ "type": {
1280
+ "text": "number | [number, number]"
1281
+ },
1282
+ "default": "6",
1283
+ "description": "The `offset` property accepts either a single number, to\ndefine the offset of the Overlay along the main axis from\nthe trigger, or 2-tuple, to define the offset along the\nmain axis and the cross axis. This option has no effect\nwhen there is no trigger element.",
1284
+ "fieldName": "offset"
1285
+ },
1286
+ {
1287
+ "name": "open",
1288
+ "type": {
1289
+ "text": "boolean"
1290
+ },
1291
+ "description": "Whether the Overlay is projected onto the \"top layer\" or not.",
1292
+ "fieldName": "open"
1293
+ },
1294
+ {
1295
+ "name": "placement",
1296
+ "type": {
1297
+ "text": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\""
1298
+ },
1299
+ "description": "Instruct the Overlay where to place itself in\nrelationship to the trigger element.",
1300
+ "fieldName": "placement"
1301
+ },
1302
+ {
1303
+ "name": "receives-focus",
1304
+ "type": {
1305
+ "text": "'true' | 'false' | 'auto'"
1306
+ },
1307
+ "default": "'auto'",
1308
+ "description": "Whether to pass focus to the overlay once opened, or\nto the appropriate value based on the \"type\" of the overlay\nwhen set to `\"auto\"`.",
1309
+ "fieldName": "receivesFocus"
1310
+ },
1311
+ {
1312
+ "name": "tip-padding",
1313
+ "type": {
1314
+ "text": "number | undefined"
1315
+ },
1316
+ "fieldName": "tipPadding"
1317
+ },
1318
+ {
1319
+ "name": "trigger",
1320
+ "type": {
1321
+ "text": "string | undefined"
1322
+ },
1323
+ "description": "An optional ID reference for the trigger element combined with the optional\ninteraction (click | hover | longpress) by which the overlay shold open\nthe overlay with an `@`: e.g. `trigger@click` opens the overlay when an\nelement with the ID \"trigger\" is clicked.",
1324
+ "fieldName": "trigger"
1325
+ },
1326
+ {
1327
+ "name": "type",
1328
+ "type": {
1329
+ "text": "\"auto\" | \"hint\" | \"manual\" | \"modal\" | \"page\""
1330
+ },
1331
+ "default": "'auto'",
1332
+ "description": "Configures the open/close heuristics of the Overlay.",
1333
+ "fieldName": "type"
1334
+ }
1335
+ ],
1336
+ "superclass": {
1337
+ "name": "OverlayFeatures",
1338
+ "module": "src/Overlay.ts"
1339
+ },
1340
+ "tagName": "sp-overlay",
1341
+ "customElement": true
1342
+ }
1343
+ ],
1344
+ "exports": [
1345
+ {
1346
+ "kind": "js",
1347
+ "name": "LONGPRESS_INSTRUCTIONS",
1348
+ "declaration": {
1349
+ "name": "LONGPRESS_INSTRUCTIONS",
1350
+ "module": "src/Overlay.js"
1351
+ }
1352
+ },
1353
+ {
1354
+ "kind": "js",
1355
+ "name": "Overlay",
1356
+ "declaration": {
1357
+ "name": "Overlay",
1358
+ "module": "src/Overlay.js"
1359
+ }
1360
+ }
1361
+ ]
1362
+ },
1363
+ {
1364
+ "kind": "javascript-module",
1365
+ "path": "src/OverlayDialog.js",
1366
+ "declarations": [
1367
+ {
1368
+ "kind": "mixin",
1369
+ "description": "",
1370
+ "name": "OverlayDialog",
1371
+ "members": [
1372
+ {
1373
+ "kind": "method",
1374
+ "name": "manageDialogOpen",
1375
+ "privacy": "protected",
1376
+ "return": {
1377
+ "type": {
1378
+ "text": "Promise<void>"
1379
+ }
1380
+ }
1381
+ },
1382
+ {
1383
+ "kind": "method",
1384
+ "name": "dialogMakeTransition",
1385
+ "privacy": "protected",
1386
+ "return": {
1387
+ "type": {
1388
+ "text": "Promise<HTMLElement | null>"
1389
+ }
1390
+ },
1391
+ "parameters": [
1392
+ {
1393
+ "name": "targetOpenState",
1394
+ "type": {
1395
+ "text": "boolean"
1396
+ }
1397
+ }
1398
+ ]
1399
+ },
1400
+ {
1401
+ "kind": "method",
1402
+ "name": "dialogApplyFocus",
1403
+ "privacy": "protected",
1404
+ "return": {
1405
+ "type": {
1406
+ "text": "Promise<void>"
1407
+ }
1408
+ },
1409
+ "parameters": [
1410
+ {
1411
+ "name": "targetOpenState",
1412
+ "type": {
1413
+ "text": "boolean"
1414
+ }
1415
+ },
1416
+ {
1417
+ "name": "focusEl",
1418
+ "type": {
1419
+ "text": "HTMLElement | null"
1420
+ }
1421
+ }
1422
+ ]
1423
+ }
1424
+ ],
1425
+ "events": [
1426
+ {
1427
+ "type": {
1428
+ "text": "event"
1429
+ }
1430
+ },
1431
+ {
1432
+ "name": "eventName",
1433
+ "type": {
1434
+ "text": "Event"
1435
+ }
1436
+ }
1437
+ ],
1438
+ "parameters": [
1439
+ {
1440
+ "name": "constructor",
1441
+ "type": {
1442
+ "text": "T"
1443
+ }
1444
+ }
1445
+ ]
1446
+ }
1447
+ ],
1448
+ "exports": [
1449
+ {
1450
+ "kind": "js",
1451
+ "name": "OverlayDialog",
1452
+ "declaration": {
1453
+ "name": "OverlayDialog",
1454
+ "module": "src/OverlayDialog.js"
1455
+ }
1456
+ }
1457
+ ]
1458
+ },
1459
+ {
1460
+ "kind": "javascript-module",
1461
+ "path": "src/OverlayNoPopover.js",
1462
+ "declarations": [
1463
+ {
1464
+ "kind": "mixin",
1465
+ "description": "",
1466
+ "name": "OverlayNoPopover",
1467
+ "members": [
1468
+ {
1469
+ "kind": "method",
1470
+ "name": "managePopoverOpen",
1471
+ "privacy": "protected",
1472
+ "return": {
1473
+ "type": {
1474
+ "text": "Promise<void>"
1475
+ }
1476
+ }
1477
+ },
1478
+ {
1479
+ "kind": "method",
1480
+ "name": "manageDelay",
1481
+ "privacy": "protected",
1482
+ "return": {
1483
+ "type": {
1484
+ "text": "Promise<void>"
1485
+ }
1486
+ },
1487
+ "parameters": [
1488
+ {
1489
+ "name": "targetOpenState",
1490
+ "type": {
1491
+ "text": "boolean"
1492
+ }
1493
+ }
1494
+ ]
1495
+ },
1496
+ {
1497
+ "kind": "method",
1498
+ "name": "ensureOnDOM",
1499
+ "privacy": "protected",
1500
+ "return": {
1501
+ "type": {
1502
+ "text": "Promise<void>"
1503
+ }
1504
+ },
1505
+ "parameters": [
1506
+ {
1507
+ "name": "_targetOpenState",
1508
+ "type": {
1509
+ "text": "boolean"
1510
+ }
1511
+ }
1512
+ ]
1513
+ },
1514
+ {
1515
+ "kind": "method",
1516
+ "name": "makeTransition",
1517
+ "privacy": "protected",
1518
+ "return": {
1519
+ "type": {
1520
+ "text": "Promise<HTMLElement | null>"
1521
+ }
1522
+ },
1523
+ "parameters": [
1524
+ {
1525
+ "name": "targetOpenState",
1526
+ "type": {
1527
+ "text": "boolean"
1528
+ }
1529
+ }
1530
+ ]
1531
+ }
1532
+ ],
1533
+ "events": [
1534
+ {
1535
+ "type": {
1536
+ "text": "event"
1537
+ }
1538
+ },
1539
+ {
1540
+ "name": "eventName",
1541
+ "type": {
1542
+ "text": "Event"
1543
+ }
1544
+ }
1545
+ ],
1546
+ "parameters": [
1547
+ {
1548
+ "name": "constructor",
1549
+ "type": {
1550
+ "text": "T"
1551
+ }
1552
+ }
1553
+ ]
1554
+ }
1555
+ ],
1556
+ "exports": [
1557
+ {
1558
+ "kind": "js",
1559
+ "name": "OverlayNoPopover",
1560
+ "declaration": {
1561
+ "name": "OverlayNoPopover",
1562
+ "module": "src/OverlayNoPopover.js"
1563
+ }
1564
+ }
1565
+ ]
1566
+ },
1567
+ {
1568
+ "kind": "javascript-module",
1569
+ "path": "src/OverlayPopover.js",
1570
+ "declarations": [
1571
+ {
1572
+ "kind": "mixin",
1573
+ "description": "",
1574
+ "name": "OverlayPopover",
1575
+ "members": [
430
1576
  {
431
1577
  "kind": "method",
432
- "name": "hide",
433
- "privacy": "public",
1578
+ "name": "manageDelay",
1579
+ "privacy": "protected",
434
1580
  "return": {
435
1581
  "type": {
436
1582
  "text": "Promise<void>"
@@ -438,168 +1584,145 @@
438
1584
  },
439
1585
  "parameters": [
440
1586
  {
441
- "name": "animated",
442
- "default": "true"
1587
+ "name": "targetOpenState",
1588
+ "type": {
1589
+ "text": "boolean"
1590
+ }
443
1591
  }
444
1592
  ]
445
1593
  },
446
1594
  {
447
1595
  "kind": "method",
448
- "name": "schedulePositionUpdate",
1596
+ "name": "shouldHidePopover",
449
1597
  "privacy": "private",
450
1598
  "return": {
451
1599
  "type": {
452
- "text": "void"
1600
+ "text": "Promise<void>"
453
1601
  }
454
- }
455
- },
456
- {
457
- "kind": "method",
458
- "name": "onSlotChange",
459
- "privacy": "private",
460
- "return": {
461
- "type": {
462
- "text": "void"
1602
+ },
1603
+ "parameters": [
1604
+ {
1605
+ "name": "targetOpenState",
1606
+ "type": {
1607
+ "text": "boolean"
1608
+ }
463
1609
  }
464
- }
465
- },
466
- {
467
- "kind": "field",
468
- "name": "handleInlineTriggerKeydown",
469
- "privacy": "public"
1610
+ ]
470
1611
  },
471
1612
  {
472
1613
  "kind": "method",
473
- "name": "applyContentAnimation",
474
- "privacy": "public",
1614
+ "name": "shouldShowPopover",
1615
+ "privacy": "private",
475
1616
  "return": {
476
1617
  "type": {
477
- "text": "Promise<boolean>"
1618
+ "text": "Promise<void>"
478
1619
  }
479
1620
  },
480
1621
  "parameters": [
481
1622
  {
482
- "name": "animation",
1623
+ "name": "targetOpenState",
483
1624
  "type": {
484
- "text": "ContentAnimation"
1625
+ "text": "boolean"
485
1626
  }
486
1627
  }
487
1628
  ]
488
1629
  },
489
1630
  {
490
1631
  "kind": "method",
491
- "name": "renderTheme",
492
- "privacy": "public",
1632
+ "name": "ensureOnDOM",
1633
+ "privacy": "protected",
493
1634
  "return": {
494
1635
  "type": {
495
- "text": "TemplateResult"
1636
+ "text": "Promise<void>"
496
1637
  }
497
1638
  },
498
1639
  "parameters": [
499
1640
  {
500
- "name": "content",
1641
+ "name": "targetOpenState",
501
1642
  "type": {
502
- "text": "TemplateResult"
1643
+ "text": "boolean"
503
1644
  }
504
1645
  }
505
1646
  ]
506
1647
  },
507
1648
  {
508
1649
  "kind": "method",
509
- "name": "create",
510
- "privacy": "public",
511
- "static": true,
1650
+ "name": "makeTransition",
1651
+ "privacy": "protected",
512
1652
  "return": {
513
1653
  "type": {
514
- "text": "ActiveOverlay"
1654
+ "text": "Promise<HTMLElement | null>"
515
1655
  }
516
1656
  },
517
1657
  "parameters": [
518
1658
  {
519
- "name": "details",
1659
+ "name": "targetOpenState",
520
1660
  "type": {
521
- "text": "OverlayOpenDetail"
1661
+ "text": "boolean"
522
1662
  }
523
1663
  }
524
1664
  ]
525
- },
526
- {
527
- "kind": "field",
528
- "name": "stealOverlayContentPromise",
529
- "privacy": "private",
530
- "default": "new Promise(\n (res) => (this.stealOverlayContentResolver = res)\n )"
531
- },
1665
+ }
1666
+ ],
1667
+ "events": [
532
1668
  {
533
- "kind": "field",
534
- "name": "stealOverlayContentResolver",
535
1669
  "type": {
536
- "text": "() => void"
537
- },
538
- "privacy": "private"
1670
+ "text": "event"
1671
+ }
539
1672
  },
540
1673
  {
541
- "kind": "method",
542
- "name": "getUpdateComplete",
543
- "privacy": "protected",
544
- "return": {
545
- "type": {
546
- "text": "Promise<boolean>"
547
- }
1674
+ "name": "eventName",
1675
+ "type": {
1676
+ "text": "Event"
548
1677
  }
549
1678
  }
550
1679
  ],
551
- "attributes": [
552
- {
553
- "name": "_state",
554
- "fieldName": "_state"
555
- },
556
- {
557
- "name": "animating",
558
- "type": {
559
- "text": "boolean"
560
- },
561
- "default": "false",
562
- "fieldName": "animating"
563
- },
1680
+ "parameters": [
564
1681
  {
565
- "name": "placement",
1682
+ "name": "constructor",
566
1683
  "type": {
567
- "text": "Placement | undefined"
568
- },
569
- "fieldName": "placement"
1684
+ "text": "T"
1685
+ }
570
1686
  }
571
- ],
572
- "superclass": {
573
- "name": "SpectrumElement",
574
- "package": "@spectrum-web-components/base"
575
- },
576
- "tagName": "active-overlay",
577
- "customElement": true
1687
+ ]
578
1688
  }
579
1689
  ],
580
1690
  "exports": [
581
1691
  {
582
1692
  "kind": "js",
583
- "name": "ActiveOverlay",
1693
+ "name": "OverlayPopover",
584
1694
  "declaration": {
585
- "name": "ActiveOverlay",
586
- "module": "src/ActiveOverlay.js"
1695
+ "name": "OverlayPopover",
1696
+ "module": "src/OverlayPopover.js"
587
1697
  }
588
1698
  }
589
1699
  ]
590
1700
  },
591
1701
  {
592
1702
  "kind": "javascript-module",
593
- "path": "src/OverlayTrigger.js",
1703
+ "path": "src/OverlayStack.js",
594
1704
  "declarations": [
595
1705
  {
596
1706
  "kind": "variable",
597
- "name": "LONGPRESS_INSTRUCTIONS",
598
- "type": {
599
- "text": "object"
600
- },
601
- "default": "{\n touch: 'Double tap and long press for additional options',\n keyboard: 'Press Space or Alt+Down Arrow for additional options',\n mouse: 'Click and hold for additional options',\n}"
602
- },
1707
+ "name": "overlayStack",
1708
+ "default": "new OverlayStack()"
1709
+ }
1710
+ ],
1711
+ "exports": [
1712
+ {
1713
+ "kind": "js",
1714
+ "name": "overlayStack",
1715
+ "declaration": {
1716
+ "name": "overlayStack",
1717
+ "module": "src/OverlayStack.js"
1718
+ }
1719
+ }
1720
+ ]
1721
+ },
1722
+ {
1723
+ "kind": "javascript-module",
1724
+ "path": "src/OverlayTrigger.js",
1725
+ "declarations": [
603
1726
  {
604
1727
  "kind": "class",
605
1728
  "description": "",
@@ -625,36 +1748,20 @@
625
1748
  "members": [
626
1749
  {
627
1750
  "kind": "field",
628
- "name": "closeClickOverlay",
629
- "type": {
630
- "text": "Promise<() => void> | undefined"
631
- },
632
- "privacy": "private"
633
- },
634
- {
635
- "kind": "field",
636
- "name": "closeLongpressOverlay",
637
- "type": {
638
- "text": "Promise<() => void> | undefined"
639
- },
640
- "privacy": "private"
641
- },
642
- {
643
- "kind": "field",
644
- "name": "closeHoverOverlay",
1751
+ "name": "content",
645
1752
  "type": {
646
- "text": "Promise<() => void> | undefined"
1753
+ "text": "string"
647
1754
  },
648
- "privacy": "private"
1755
+ "default": "'click hover longpress'",
1756
+ "attribute": "content"
649
1757
  },
650
1758
  {
651
1759
  "kind": "field",
652
1760
  "name": "placement",
653
1761
  "type": {
654
- "text": "\"auto\" | \"auto-start\" | \"auto-end\" | \"top\" | \"bottom\" | \"right\" | \"left\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"right-start\" | \"right-end\" | \"left-start\" | \"left-end\" | \"none\""
1762
+ "text": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\""
655
1763
  },
656
1764
  "privacy": "public",
657
- "default": "'bottom'",
658
1765
  "attribute": "placement",
659
1766
  "reflects": true
660
1767
  },
@@ -675,8 +1782,7 @@
675
1782
  },
676
1783
  "privacy": "public",
677
1784
  "default": "6",
678
- "attribute": "offset",
679
- "reflects": true
1785
+ "attribute": "offset"
680
1786
  },
681
1787
  {
682
1788
  "kind": "field",
@@ -699,272 +1805,108 @@
699
1805
  "attribute": "disabled",
700
1806
  "reflects": true
701
1807
  },
702
- {
703
- "kind": "field",
704
- "name": "hasLongpressContent",
705
- "type": {
706
- "text": "boolean"
707
- },
708
- "privacy": "public",
709
- "default": "false"
710
- },
711
- {
712
- "kind": "field",
713
- "name": "longpressDescriptor",
714
- "type": {
715
- "text": "HTMLElement | undefined"
716
- },
717
- "privacy": "private"
718
- },
719
1808
  {
720
1809
  "kind": "field",
721
1810
  "name": "clickContent",
722
1811
  "type": {
723
- "text": "HTMLElement | undefined"
724
- },
725
- "privacy": "private"
726
- },
727
- {
728
- "kind": "field",
729
- "name": "longpressContent",
730
- "type": {
731
- "text": "HTMLElement | undefined"
732
- },
733
- "privacy": "private"
734
- },
735
- {
736
- "kind": "field",
737
- "name": "hoverContent",
738
- "type": {
739
- "text": "HTMLElement | undefined"
740
- },
741
- "privacy": "private"
742
- },
743
- {
744
- "kind": "field",
745
- "name": "targetContent",
746
- "type": {
747
- "text": "HTMLElement | undefined"
748
- },
749
- "privacy": "private"
750
- },
751
- {
752
- "kind": "field",
753
- "name": "overlaidContent",
754
- "type": {
755
- "text": "HTMLElement | undefined"
756
- },
757
- "privacy": "private"
758
- },
759
- {
760
- "kind": "field",
761
- "name": "_longpressId",
762
- "privacy": "private",
763
- "default": "`longpress-describedby-descriptor`"
764
- },
765
- {
766
- "kind": "method",
767
- "name": "handleClose",
768
- "privacy": "private",
769
- "return": {
770
- "type": {
771
- "text": "void"
772
- }
1812
+ "text": "HTMLElement[]"
773
1813
  },
774
- "parameters": [
775
- {
776
- "name": "event",
777
- "optional": true,
778
- "type": {
779
- "text": "CustomEvent<OverlayOpenCloseDetail>"
780
- }
781
- }
782
- ]
783
- },
784
- {
785
- "kind": "method",
786
- "name": "manageLongpressDescriptor",
787
- "privacy": "protected",
788
- "return": {
789
- "type": {
790
- "text": "void"
791
- }
792
- }
793
- },
794
- {
795
- "kind": "method",
796
- "name": "closeAllOverlays",
797
- "privacy": "private",
798
- "return": {
799
- "type": {
800
- "text": "void"
801
- }
802
- }
803
- },
804
- {
805
- "kind": "method",
806
- "name": "manageOpen",
807
- "privacy": "private",
808
- "return": {
809
- "type": {
810
- "text": "void"
811
- }
812
- }
813
- },
814
- {
815
- "kind": "method",
816
- "name": "openOverlay",
817
1814
  "privacy": "private",
818
- "return": {
819
- "type": {
820
- "text": "Promise<() => void>"
821
- }
822
- },
823
- "parameters": [
824
- {
825
- "name": "target",
826
- "type": {
827
- "text": "HTMLElement"
828
- }
829
- },
830
- {
831
- "name": "interaction",
832
- "type": {
833
- "text": "TriggerInteractions"
834
- }
835
- },
836
- {
837
- "name": "content",
838
- "type": {
839
- "text": "HTMLElement"
840
- }
841
- },
842
- {
843
- "name": "options",
844
- "type": {
845
- "text": "OverlayOptions"
846
- }
847
- }
848
- ]
1815
+ "default": "[]"
849
1816
  },
850
1817
  {
851
1818
  "kind": "field",
852
- "name": "openOverlay",
853
- "privacy": "public",
854
- "static": true
1819
+ "name": "clickPlacement",
1820
+ "type": {
1821
+ "text": "Placement | undefined"
1822
+ },
1823
+ "privacy": "private"
855
1824
  },
856
1825
  {
857
1826
  "kind": "field",
858
- "name": "overlayOptions",
1827
+ "name": "longpressContent",
859
1828
  "type": {
860
- "text": "OverlayOptions"
1829
+ "text": "HTMLElement[]"
861
1830
  },
862
1831
  "privacy": "private",
863
- "readonly": true
1832
+ "default": "[]"
864
1833
  },
865
1834
  {
866
- "kind": "method",
867
- "name": "onTrigger",
868
- "privacy": "private",
869
- "return": {
870
- "type": {
871
- "text": "void"
872
- }
1835
+ "kind": "field",
1836
+ "name": "longpressPlacement",
1837
+ "type": {
1838
+ "text": "Placement | undefined"
873
1839
  },
874
- "parameters": [
875
- {
876
- "name": "event",
877
- "type": {
878
- "text": "CustomEvent<LongpressEvent>"
879
- }
880
- }
881
- ]
1840
+ "privacy": "private"
882
1841
  },
883
1842
  {
884
- "kind": "method",
885
- "name": "prepareToFocusOverlayContent",
886
- "privacy": "private",
887
- "return": {
888
- "type": {
889
- "text": "void"
890
- }
1843
+ "kind": "field",
1844
+ "name": "hoverContent",
1845
+ "type": {
1846
+ "text": "HTMLElement[]"
891
1847
  },
892
- "parameters": [
893
- {
894
- "name": "overlayContent",
895
- "type": {
896
- "text": "HTMLElement"
897
- }
898
- }
899
- ]
900
- },
901
- {
902
- "kind": "method",
903
- "name": "onTriggerClick",
904
- "privacy": "public",
905
- "return": {
906
- "type": {
907
- "text": "Promise<void>"
908
- }
909
- }
1848
+ "privacy": "private",
1849
+ "default": "[]"
910
1850
  },
911
1851
  {
912
1852
  "kind": "field",
913
- "name": "_longpressEvent",
1853
+ "name": "hoverPlacement",
914
1854
  "type": {
915
- "text": "CustomEvent<LongpressEvent> | undefined"
1855
+ "text": "Placement | undefined"
916
1856
  },
917
1857
  "privacy": "private"
918
1858
  },
919
1859
  {
920
- "kind": "method",
921
- "name": "onTriggerLongpress",
1860
+ "kind": "field",
1861
+ "name": "targetContent",
1862
+ "type": {
1863
+ "text": "HTMLElement[]"
1864
+ },
922
1865
  "privacy": "private",
923
- "return": {
924
- "type": {
925
- "text": "Promise<void>"
926
- }
1866
+ "default": "[]"
1867
+ },
1868
+ {
1869
+ "kind": "field",
1870
+ "name": "clickOverlayElement",
1871
+ "type": {
1872
+ "text": "Overlay"
927
1873
  }
928
1874
  },
929
1875
  {
930
1876
  "kind": "field",
931
- "name": "abortOverlay",
1877
+ "name": "longpressOverlayElement",
932
1878
  "type": {
933
- "text": "(cancelled: boolean) => void"
934
- },
935
- "privacy": "private"
1879
+ "text": "Overlay"
1880
+ }
936
1881
  },
937
1882
  {
938
- "kind": "method",
939
- "name": "onTriggerMouseEnter",
940
- "privacy": "public",
941
- "return": {
942
- "type": {
943
- "text": "Promise<void>"
944
- }
1883
+ "kind": "field",
1884
+ "name": "hoverOverlayElement",
1885
+ "type": {
1886
+ "text": "Overlay"
945
1887
  }
946
1888
  },
947
1889
  {
948
1890
  "kind": "method",
949
- "name": "onClickSlotChange",
1891
+ "name": "getAssignedElementsFromSlot",
950
1892
  "privacy": "private",
951
1893
  "return": {
952
1894
  "type": {
953
- "text": "void"
1895
+ "text": "HTMLElement[]"
954
1896
  }
955
1897
  },
956
1898
  "parameters": [
957
1899
  {
958
- "name": "event",
1900
+ "name": "slot",
959
1901
  "type": {
960
- "text": "Event & { target: HTMLSlotElement }"
1902
+ "text": "HTMLSlotElement"
961
1903
  }
962
1904
  }
963
1905
  ]
964
1906
  },
965
1907
  {
966
1908
  "kind": "method",
967
- "name": "onLongpressSlotChange",
1909
+ "name": "handleTriggerContent",
968
1910
  "privacy": "private",
969
1911
  "return": {
970
1912
  "type": {
@@ -982,7 +1924,7 @@
982
1924
  },
983
1925
  {
984
1926
  "kind": "method",
985
- "name": "onHoverSlotChange",
1927
+ "name": "handleSlotContent",
986
1928
  "privacy": "private",
987
1929
  "return": {
988
1930
  "type": {
@@ -1000,7 +1942,7 @@
1000
1942
  },
1001
1943
  {
1002
1944
  "kind": "method",
1003
- "name": "onTargetSlotChange",
1945
+ "name": "handleBeforetoggle",
1004
1946
  "privacy": "private",
1005
1947
  "return": {
1006
1948
  "type": {
@@ -1011,41 +1953,58 @@
1011
1953
  {
1012
1954
  "name": "event",
1013
1955
  "type": {
1014
- "text": "Event & { target: HTMLSlotElement }"
1956
+ "text": "BeforetoggleOpenEvent"
1015
1957
  }
1016
1958
  }
1017
1959
  ]
1018
1960
  },
1019
1961
  {
1020
1962
  "kind": "method",
1021
- "name": "extractSlotContentFromEvent",
1022
- "privacy": "private",
1963
+ "name": "renderSlot",
1964
+ "privacy": "protected",
1023
1965
  "return": {
1024
1966
  "type": {
1025
- "text": "HTMLElement | undefined"
1967
+ "text": "TemplateResult"
1026
1968
  }
1027
1969
  },
1028
1970
  "parameters": [
1029
1971
  {
1030
- "name": "event",
1972
+ "name": "name",
1031
1973
  "type": {
1032
- "text": "Event"
1974
+ "text": "string"
1033
1975
  }
1034
1976
  }
1035
1977
  ]
1036
1978
  },
1037
1979
  {
1038
- "kind": "field",
1039
- "name": "openStatePromise",
1040
- "privacy": "private"
1980
+ "kind": "method",
1981
+ "name": "renderClickOverlay",
1982
+ "privacy": "protected",
1983
+ "return": {
1984
+ "type": {
1985
+ "text": "TemplateResult"
1986
+ }
1987
+ }
1041
1988
  },
1042
1989
  {
1043
- "kind": "field",
1044
- "name": "openStateResolver",
1045
- "type": {
1046
- "text": "() => void"
1047
- },
1048
- "privacy": "private"
1990
+ "kind": "method",
1991
+ "name": "renderHoverOverlay",
1992
+ "privacy": "protected",
1993
+ "return": {
1994
+ "type": {
1995
+ "text": "TemplateResult"
1996
+ }
1997
+ }
1998
+ },
1999
+ {
2000
+ "kind": "method",
2001
+ "name": "renderLongpressOverlay",
2002
+ "privacy": "protected",
2003
+ "return": {
2004
+ "type": {
2005
+ "text": "TemplateResult"
2006
+ }
2007
+ }
1049
2008
  },
1050
2009
  {
1051
2010
  "kind": "method",
@@ -1072,12 +2031,19 @@
1072
2031
  {
1073
2032
  "name": "placement",
1074
2033
  "type": {
1075
- "text": "\"auto\" | \"auto-start\" | \"auto-end\" | \"top\" | \"bottom\" | \"right\" | \"left\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"right-start\" | \"right-end\" | \"left-start\" | \"left-end\" | \"none\""
2034
+ "text": "\"top\" | \"top-start\" | \"top-end\" | \"right\" | \"right-start\" | \"right-end\" | \"bottom\" | \"bottom-start\" | \"bottom-end\" | \"left\" | \"left-start\" | \"left-end\""
1076
2035
  },
1077
- "default": "'bottom'",
1078
2036
  "fieldName": "placement",
1079
2037
  "attribute": "placement"
1080
2038
  },
2039
+ {
2040
+ "name": "content",
2041
+ "type": {
2042
+ "text": "string"
2043
+ },
2044
+ "default": "'click hover longpress'",
2045
+ "fieldName": "content"
2046
+ },
1081
2047
  {
1082
2048
  "name": "type",
1083
2049
  "type": {
@@ -1120,18 +2086,177 @@
1120
2086
  "exports": [
1121
2087
  {
1122
2088
  "kind": "js",
1123
- "name": "LONGPRESS_INSTRUCTIONS",
2089
+ "name": "OverlayTrigger",
1124
2090
  "declaration": {
1125
- "name": "LONGPRESS_INSTRUCTIONS",
2091
+ "name": "OverlayTrigger",
1126
2092
  "module": "src/OverlayTrigger.js"
1127
2093
  }
2094
+ }
2095
+ ]
2096
+ },
2097
+ {
2098
+ "kind": "javascript-module",
2099
+ "path": "src/PlacementController.js",
2100
+ "declarations": [
2101
+ {
2102
+ "kind": "variable",
2103
+ "name": "placementUpdatedSymbol"
2104
+ },
2105
+ {
2106
+ "kind": "class",
2107
+ "description": "",
2108
+ "name": "PlacementController",
2109
+ "members": [
2110
+ {
2111
+ "kind": "field",
2112
+ "name": "cleanup",
2113
+ "type": {
2114
+ "text": "() => void | undefined"
2115
+ },
2116
+ "privacy": "private"
2117
+ },
2118
+ {
2119
+ "kind": "field",
2120
+ "name": "initialHeight",
2121
+ "type": {
2122
+ "text": "number | undefined"
2123
+ }
2124
+ },
2125
+ {
2126
+ "kind": "field",
2127
+ "name": "isConstrained",
2128
+ "type": {
2129
+ "text": "boolean | undefined"
2130
+ }
2131
+ },
2132
+ {
2133
+ "kind": "field",
2134
+ "name": "host",
2135
+ "type": {
2136
+ "text": "ReactiveElement & { elements: OpenableElement[] }"
2137
+ },
2138
+ "privacy": "private",
2139
+ "default": "host"
2140
+ },
2141
+ {
2142
+ "kind": "field",
2143
+ "name": "options",
2144
+ "type": {
2145
+ "text": "OverlayOptionsV1"
2146
+ },
2147
+ "privacy": "private"
2148
+ },
2149
+ {
2150
+ "kind": "field",
2151
+ "name": "originalPlacements",
2152
+ "privacy": "private",
2153
+ "default": "new WeakMap<HTMLElement, Placement>()"
2154
+ },
2155
+ {
2156
+ "kind": "field",
2157
+ "name": "target",
2158
+ "type": {
2159
+ "text": "HTMLElement"
2160
+ },
2161
+ "privacy": "private"
2162
+ },
2163
+ {
2164
+ "kind": "method",
2165
+ "name": "placeOverlay",
2166
+ "privacy": "public",
2167
+ "return": {
2168
+ "type": {
2169
+ "text": "Promise<void>"
2170
+ }
2171
+ },
2172
+ "parameters": [
2173
+ {
2174
+ "name": "target",
2175
+ "default": "this.target",
2176
+ "type": {
2177
+ "text": "HTMLElement"
2178
+ }
2179
+ },
2180
+ {
2181
+ "name": "options",
2182
+ "default": "this.options",
2183
+ "type": {
2184
+ "text": "OverlayOptionsV1"
2185
+ }
2186
+ }
2187
+ ]
2188
+ },
2189
+ {
2190
+ "kind": "field",
2191
+ "name": "allowPlacementUpdate",
2192
+ "type": {
2193
+ "text": "boolean"
2194
+ },
2195
+ "default": "false"
2196
+ },
2197
+ {
2198
+ "kind": "field",
2199
+ "name": "updatePlacement"
2200
+ },
2201
+ {
2202
+ "kind": "method",
2203
+ "name": "computePlacement",
2204
+ "return": {
2205
+ "type": {
2206
+ "text": "Promise<void>"
2207
+ }
2208
+ }
2209
+ },
2210
+ {
2211
+ "kind": "field",
2212
+ "name": "resetOverlayPosition",
2213
+ "privacy": "public"
2214
+ },
2215
+ {
2216
+ "kind": "method",
2217
+ "name": "hostConnected",
2218
+ "return": {
2219
+ "type": {
2220
+ "text": "void"
2221
+ }
2222
+ }
2223
+ },
2224
+ {
2225
+ "kind": "method",
2226
+ "name": "hostUpdated",
2227
+ "return": {
2228
+ "type": {
2229
+ "text": "void"
2230
+ }
2231
+ }
2232
+ },
2233
+ {
2234
+ "kind": "method",
2235
+ "name": "hostDisconnected",
2236
+ "return": {
2237
+ "type": {
2238
+ "text": "void"
2239
+ }
2240
+ }
2241
+ }
2242
+ ]
2243
+ }
2244
+ ],
2245
+ "exports": [
2246
+ {
2247
+ "kind": "js",
2248
+ "name": "placementUpdatedSymbol",
2249
+ "declaration": {
2250
+ "name": "placementUpdatedSymbol",
2251
+ "module": "src/PlacementController.js"
2252
+ }
1128
2253
  },
1129
2254
  {
1130
2255
  "kind": "js",
1131
- "name": "OverlayTrigger",
2256
+ "name": "PlacementController",
1132
2257
  "declaration": {
1133
- "name": "OverlayTrigger",
1134
- "module": "src/OverlayTrigger.js"
2258
+ "name": "PlacementController",
2259
+ "module": "src/PlacementController.js"
1135
2260
  }
1136
2261
  }
1137
2262
  ]