-
Notifications
You must be signed in to change notification settings - Fork 209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feat]: Abstract Overlay API Review #2086
Comments
What do you think of two ergonomic overlay ideas?
For example: <foo-app>
<bar-context>
<overlay-surface>
<!-- ... -->
<overlay-projector ?open=${this.selectedFile == null}>
<choose-file-dialog></choose-file-dialog>
</overlay-projector>
<!-- ... -->
<active-overlay>
<!-- choose-file-dialog is reparented here when open -->
</active-overlay>
</overlay-surface>
</bar-context>
</foo-app>
<!-- today, this is where choose-file-dialog would be reparented --> Motivations:
|
Re: #2, funny that you ask. We have been looking into an |
That looks exactly like the API I was hoping for re: 2! 🔥 |
Copying from #1783 Description of issueClarify usage documentation and/or API surface of the Overlay API around the support of multiple "overlay roots". This comes into play when two sibling overlay triggers exist and one of the triggers have a complex trail of overlays open without using Context:
Questions:
|
|
Consider this when rewriting the API. #1831 |
Code of conduct
Impacted component(s)
overlay
Description of the requested feature
openOverlay currently accepts:
A content element managed for overlay looks like:
Important question
If we created a new API could we smooth transition by wrapping it with the old API for the initial term?
Things we might want instead:
content
is required buttrigger
is nottabOrder: 'none' | 'inline' | 'replace' | 'trap'
aria-*
based content relationsThis should absolve the need for
receivedFocus
as all overlays need focus for the screen reader to step into them whenaria-*
attributes are not managing the content relations.interaction:
tabOrder
islongpress
which really only manages the first click event.backdrop management:
stack management:
tabOrder='none'
content should dismiss all preceedingtabOrder='none'
content on the stackoverlay management:
Does
abortPromise
belong on the overlay lifecycle? Does making the stack syncronous prevent needing to maintain this code path.Configurable and re-configurable overlays:
sp-picker
should be able to surface more options around the overlay they throw, see coment and issueThe text was updated successfully, but these errors were encountered: