@spectrum-web-components/overlay 0.35.1-rc.43 → 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.
- package/README.md +41 -11
- package/custom-elements.json +2340 -0
- package/package.json +7 -7
- package/src/AbstractOverlay.d.ts +2 -0
- package/src/AbstractOverlay.dev.js +9 -0
- package/src/AbstractOverlay.dev.js.map +2 -2
- package/src/AbstractOverlay.js +1 -1
- package/src/AbstractOverlay.js.map +2 -2
- package/src/Overlay.d.ts +17 -1
- package/src/Overlay.dev.js +57 -42
- package/src/Overlay.dev.js.map +3 -3
- package/src/Overlay.js +8 -8
- package/src/Overlay.js.map +3 -3
- package/src/OverlayDialog.dev.js.map +2 -2
- package/src/OverlayDialog.js.map +2 -2
- package/src/OverlayNoPopover.dev.js +2 -3
- package/src/OverlayNoPopover.dev.js.map +2 -2
- package/src/OverlayNoPopover.js +1 -1
- package/src/OverlayNoPopover.js.map +3 -3
- package/src/OverlayTrigger.d.ts +9 -8
- package/src/OverlayTrigger.dev.js +100 -62
- package/src/OverlayTrigger.dev.js.map +2 -2
- package/src/OverlayTrigger.js +48 -54
- package/src/OverlayTrigger.js.map +3 -3
- package/src/overlay-trigger.css.dev.js +1 -1
- package/src/overlay-trigger.css.dev.js.map +1 -1
- package/src/overlay-trigger.css.js +3 -3
- package/src/overlay-trigger.css.js.map +1 -1
- package/src/overlay.css.dev.js +1 -1
- package/src/overlay.css.dev.js.map +1 -1
- package/src/overlay.css.js +1 -1
- package/src/overlay.css.js.map +1 -1
- package/src/topLayerOverTransforms.dev.js +4 -4
- package/src/topLayerOverTransforms.dev.js.map +2 -2
- package/src/topLayerOverTransforms.js +1 -1
- package/src/topLayerOverTransforms.js.map +3 -3
- package/stories/overlay-element.stories.js +19 -6
- package/stories/overlay-element.stories.js.map +2 -2
- package/stories/overlay.stories.js +25 -9
- package/stories/overlay.stories.js.map +2 -2
- package/sync/overlay-trigger.d.ts +1 -0
- package/sync/overlay-trigger.dev.js +1 -0
- package/sync/overlay-trigger.dev.js.map +2 -2
- package/sync/overlay-trigger.js +1 -1
- package/sync/overlay-trigger.js.map +2 -2
- package/test/benchmark/basic-test.js +1 -1
- package/test/benchmark/basic-test.js.map +1 -1
- package/test/index.js +6 -0
- package/test/index.js.map +2 -2
- package/test/overlay-element.test.js +2 -1
- package/test/overlay-element.test.js.map +2 -2
- package/test/overlay-lifecycle.test.js +2 -0
- package/test/overlay-lifecycle.test.js.map +2 -2
- package/test/overlay-trigger-extended.test.js +4 -0
- package/test/overlay-trigger-extended.test.js.map +2 -2
- package/test/overlay-trigger-hover-click.test.js +11 -1
- package/test/overlay-trigger-hover-click.test.js.map +2 -2
- package/test/overlay-trigger-longpress.test.js +18 -14
- package/test/overlay-trigger-longpress.test.js.map +2 -2
- package/test/overlay-update.test.js +2 -2
- package/test/overlay-update.test.js.map +2 -2
- package/test/overlay-v1.test.js +2 -106
- package/test/overlay-v1.test.js.map +2 -2
- package/test/overlay.test.js +5 -7
- package/test/overlay.test.js.map +2 -2
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ By leveraging the `trigger` attribute to pass an ID reference to another element
|
|
|
68
68
|
<sp-icon-rect-select slot="icon"></sp-icon-rect-select>
|
|
69
69
|
</sp-action-button>
|
|
70
70
|
</sp-action-group>
|
|
71
|
-
<sp-overlay trigger="trigger-1@hover">
|
|
71
|
+
<sp-overlay trigger="trigger-1@hover" type="hint">
|
|
72
72
|
<sp-tooltip>Hover</sp-tooltip>
|
|
73
73
|
</sp-overlay>
|
|
74
74
|
<sp-overlay
|
|
@@ -92,7 +92,7 @@ By leveraging the `trigger` attribute to pass an ID reference to another element
|
|
|
92
92
|
</sp-action-group>
|
|
93
93
|
</sp-popover>
|
|
94
94
|
</sp-overlay>
|
|
95
|
-
<sp-overlay trigger="trigger-2@hover">
|
|
95
|
+
<sp-overlay trigger="trigger-2@hover" type="hint">
|
|
96
96
|
<sp-tooltip>Hover</sp-tooltip>
|
|
97
97
|
</sp-overlay>
|
|
98
98
|
<sp-overlay
|
|
@@ -116,7 +116,7 @@ By leveraging the `trigger` attribute to pass an ID reference to another element
|
|
|
116
116
|
</sp-action-group>
|
|
117
117
|
</sp-popover>
|
|
118
118
|
</sp-overlay>
|
|
119
|
-
<sp-overlay trigger="trigger-3@hover">
|
|
119
|
+
<sp-overlay trigger="trigger-3@hover" type="hint">
|
|
120
120
|
<sp-tooltip>Hover</sp-tooltip>
|
|
121
121
|
</sp-overlay>
|
|
122
122
|
<sp-overlay
|
|
@@ -159,19 +159,33 @@ By leveraging the `trigger` attribute to pass an ID reference to another element
|
|
|
159
159
|
></sp-overlay>
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
### API value interactions
|
|
163
163
|
|
|
164
|
-
When
|
|
164
|
+
When a `triggerElement` is present, either through an ID reference established via the `trigger` attribute or by directly setting the `triggerElement` property, a chain on configuration begins:
|
|
165
|
+
|
|
166
|
+
- **if a `triggerInteraction` is available**, either through the `id@interaction` IDL on the `trigger` attribute or directly setting the `triggerInteraction` property, the `<sp-overlay>` will be bound to the resolved `triggerElement` via the `triggerInteraction` provided
|
|
167
|
+
- **if a `placement` is available** when the `<sp-overlay>` is `open` and displaying its contents, those contents will be positioned relative to the `triggerElement` as per that `placement`
|
|
168
|
+
- **if an `offset` is also available** the `<sp-overlay>` will distance itself from the `triggerElement` in accordance with the value of the `offset`
|
|
169
|
+
- **if you have a `placement` but not a `triggerElement`** the `<sp-overlay>` will not be positioned due to their being nothing for the `plaement` to reference when so doing
|
|
170
|
+
- **if no `placement` is available** the content will not be placed with the expectation that the content itself or the consuming application will handle placement of the overlaid content. This is commonly what will happen for `type="modal"` and `type="page"` overlays as they are likely meant to cover the entire screen, whether visibly (via an `<sp-underlay>`, an element that includes one, or similar) or figuratively (as when modal content is not delivered with a backdrop or scrim).
|
|
171
|
+
|
|
172
|
+
### Events
|
|
173
|
+
|
|
174
|
+
When fully open the `<sp-overlay>` element will dispatch the `sp-opened` event, and when fully closed the `sp-closed` event will be dispatched. "Fully" in this context means that all CSS transitions that have dispatched `transitionrun` events on the direct children of the `<sp-overlay>` element have successfully dispatched their `transitionend` or `transitioncancel` event. Keep in mind the following:
|
|
165
175
|
|
|
166
176
|
- `transition*` events bubble; this means that while transition events on light DOM content of those direct children will be heard, those events will not be taken into account
|
|
167
177
|
- `transition*` events are not composed; this means that transition events on shadow DOM content of the direct children will not propagate to a level in the DOM where they can be heard
|
|
168
178
|
|
|
169
|
-
This means that in both cases, if the transition is meant to be a part of the opening or closing of the overlay in question you will need to redispatch the `transitionrun` and `
|
|
179
|
+
This means that in both cases, if the transition is meant to be a part of the opening or closing of the overlay in question you will need to redispatch the `transitionrun`, `transitionend`, and `transitioncancel` events from that transition from the closest direct child of the `<sp-overlay>`.
|
|
170
180
|
|
|
171
181
|
## Styling
|
|
172
182
|
|
|
173
183
|
`<sp-overlay>` element will use the `<dialog>` element or `popover` attribute to project your content onto the top-layer of the browser, without being moved in the DOM tree. That means that you can style your overlay content with whatever techniques you are already leveraging to style the content that doesn't get overlaid. This means standard CSS selectors, CSS Custom Properties, and CSS Parts applied in your parent context will always apply to your overlaid content.
|
|
174
184
|
|
|
185
|
+
## Top Layer over Complex CSS
|
|
186
|
+
|
|
187
|
+
There are some complex CSS values that have not yet been covered by the positioning API that the `<sp-overlay>` element leverages to associate overlaid content with their trigger elements. In specific, properties like `filter`, when applied to a trigger element within which lives the related content to be overlaid, are not currently supported by the relationship created herein. If support for this is something that you and the work you are addressing would require, we'd love to hear from you in [an issue](https://github.com/adobe/spectrum-web-components/issues). We'd be particularly interested in speaking with you if you were interested in contributing support/testing to ensure this capability for all consumers of the library.
|
|
188
|
+
|
|
175
189
|
## Fallback support
|
|
176
190
|
|
|
177
191
|
While the [`<dialog>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) is widely supported by browsers, the [`popover` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/popover) is still quite new. When leveraged in browsers that do not yet support the `popover` attribute, there may be additional intervention required to ensure your content is delivered to your visitors as expected.
|
|
@@ -184,7 +198,11 @@ When an overlay is placed within a page with complex layering, the content there
|
|
|
184
198
|
<div class="complex-layered-demo">
|
|
185
199
|
<div class="complex-layered-holder">
|
|
186
200
|
<sp-action-button id="complex-layered">Trigger</sp-action-button>
|
|
187
|
-
<sp-overlay
|
|
201
|
+
<sp-overlay
|
|
202
|
+
trigger="complex-layered@hover"
|
|
203
|
+
type="hint"
|
|
204
|
+
placement="bottom-start"
|
|
205
|
+
>
|
|
188
206
|
<sp-tooltip>
|
|
189
207
|
I can be partially blocked when [popover] is not available
|
|
190
208
|
</sp-tooltip>
|
|
@@ -219,7 +237,7 @@ Properly managed `z-index` values will support working around this issue while b
|
|
|
219
237
|
```html
|
|
220
238
|
<div class="contained-demo">
|
|
221
239
|
<sp-action-button id="contained">Trigger</sp-action-button>
|
|
222
|
-
<sp-overlay trigger="contained@hover" placement="bottom-start">
|
|
240
|
+
<sp-overlay trigger="contained@hover" type="hint" placement="bottom-start">
|
|
223
241
|
<sp-tooltip>
|
|
224
242
|
I can be blocked when [popover] is not available
|
|
225
243
|
</sp-tooltip>
|
|
@@ -238,7 +256,11 @@ You could just _remove_ the `contain` rule. But, if you are not OK with simply r
|
|
|
238
256
|
<div class="contained-demo">
|
|
239
257
|
<sp-action-button id="contained-working">Trigger</sp-action-button>
|
|
240
258
|
</div>
|
|
241
|
-
<sp-overlay
|
|
259
|
+
<sp-overlay
|
|
260
|
+
trigger="contained-working@hover"
|
|
261
|
+
type="hint"
|
|
262
|
+
placement="bottom-start"
|
|
263
|
+
>
|
|
242
264
|
<sp-tooltip>I can be blocked when [popover] is not available</sp-tooltip>
|
|
243
265
|
</sp-overlay>
|
|
244
266
|
<style>
|
|
@@ -257,7 +279,11 @@ You could just _remove_ the `contain` rule. But, if you are not OK with simply r
|
|
|
257
279
|
```html
|
|
258
280
|
<div class="clip-pathed-demo">
|
|
259
281
|
<sp-action-button id="clip-pathed">Trigger</sp-action-button>
|
|
260
|
-
<sp-overlay
|
|
282
|
+
<sp-overlay
|
|
283
|
+
trigger="clip-pathed@hover"
|
|
284
|
+
type="hint"
|
|
285
|
+
placement="bottom-start"
|
|
286
|
+
>
|
|
261
287
|
<sp-tooltip>
|
|
262
288
|
I can be blocked when [popover] is not available
|
|
263
289
|
</sp-tooltip>
|
|
@@ -276,7 +302,11 @@ Here, again, working with your content needs (whether or not you want to leverag
|
|
|
276
302
|
<div class="clip-pathed-demo">
|
|
277
303
|
<sp-action-button id="clip-pathed-working">Trigger</sp-action-button>
|
|
278
304
|
</div>
|
|
279
|
-
<sp-overlay
|
|
305
|
+
<sp-overlay
|
|
306
|
+
trigger="clip-pathed-working@hover"
|
|
307
|
+
type="hint"
|
|
308
|
+
placement="bottom-start"
|
|
309
|
+
>
|
|
280
310
|
<sp-tooltip>I can be blocked when [popover] is not available</sp-tooltip>
|
|
281
311
|
</sp-overlay>
|
|
282
312
|
<style>
|