Re: [WICG/webcomponents] April Face-to-face Scheduling/Agenda (Issue #1050)

Thanks, everyone for joining in the conversation today! Whether you actively participated, or just listened along, having you all as part of the ongoing work is a valuable part of making the world of web components better for everyone.

Notes from today's conversation are available [here](https://docs.google.com/document/d/1RtGdU0DAiIKGY0p-IGgni3waaE_4UYU-PLfb-rW2lnU/edit). I'll close editing shortly, so if there are any further notes you'd like to add, please be sure to do so ASAP.

***Action Items:***
- [x] Create an issue to discuss use cases around iterating registries and/or importing one registry into another. (Rob Eisenberg)
  - [Use Cases: Iterating and Combining Custom Element Registries · Issue #1057 · WICG/webcomponents (github.com)](https://github.com/WICG/webcomponents/issues/1057)
- [ ] Spec PR for the Scoped Custom Element Registry API
- [ ] WPTs for the Scoped Custom Element Registry API
- [ ] More discussion on [[scoped-registries] Finding a definition for disconnected elements · Issue #1040 · 
  - WICG/webcomponents (github.com)](https://github.com/WICG/webcomponents/issues/1040). 
  - Implementers please give feedback on [#1040](https://github.com/WICG/webcomponents/issues/1040) specifically on the idea of the feasibility of auto-tracking the registry on disconnected elements.
  - Add to the issue the idea of including a registry flag on setHTML
- [x] Make a new issue for `runWithScope()/runWithoutScope()`  as a possible path forward for scope management. (Rob Eisenberg)
  - [Idea: Alternative Ways to Control Registry Scoping · Issue #1058 · WICG/webcomponents (github.com)](https://github.com/WICG/webcomponents/issues/1058)
- [ ] Focus Theming APIs (ne: Open Style Shadow Roots) on a (or two) top priority issues to begin pointing towards a solution.
- [ ] Take a potential Theming API solution to the new OpenUI/WHATWG/CSSWG task force for addressing cross cutting concepts.
- [ ] Keith to bring the following issues to the CSSWG
  - [[selectors] Pseudo class to indicated when a slot has content w3c/csswg-drafts#6867](https://github.com/w3c/csswg-drafts/issues/6867)
  - [Multiple stylesheets per file w3c/csswg-drafts#5629](https://github.com/w3c/csswg-drafts/issues/5629)
  - [[cssom] Can we lift the restriction on constructed flag for adoptedStylesheets? w3c/csswg-drafts#10013](https://github.com/w3c/csswg-drafts/issues/10013)
- [ ] Justin to gather a broader collection of stakeholders to continue the conversation around DOM Scheduling.
- [ ] Open an issue on the various ways by which you can import HTML Modules into other HTML (in association with DCE) (Rob Eisenberg)
- [ ] Conceptualize a HTML => HTML Module w/ Custom Registry => HTML Module child element for a full thread connector of the proposal
- [ ] Review Selecting processing across shadow DOM boundaries

<details>
    <summary>Meeting chat hidden within...</summary>

You
12:05 PM
https://docs.google.com/document/d/1RtGdU0DAiIKGY0p-IGgni3waaE_4UYU-PLfb-rW2lnU/edit
keep
Pinned
Brian Kardell
12:17 PM
hmm
Sasha Firsov
12:20 PM
like mixin of registries?
Mason Freed
12:21 PM
myRegistry.define('x-foo',customElements.get('global-x-foo')) ?
Rob Eisenberg
12:23 PM
I wouldn't want to block on this personally. I just think it's speaks to some common scenarios that come up.
Sasha Firsov
12:23 PM
myRegistry.inherit(...otherRegistries)
Sasha Firsov
12:25 PM
otherRegistry can be a domNode | LocalRegistry
Michael Warren
12:25 PM
i agree with Rob on this not being a blocker to implementation of some scoping
Justin Fagnani
12:26 PM
https://github.com/WICG/webcomponents/issues/716#issuecomment-370615327
Michael Warren
12:26 PM
personally I've not seen a need for inherited registries in our WC design system and the MFE apps and such that need scoping today. imo the scoping is more about creating the encapsulation. I've not see a use case for sharing across registries
Rob Eisenberg
12:26 PM
I'll take an action item to create an issue for it.
We can explore use cases and then see if we need an api.
Keith Cirkel
12:27 PM
A small change to improve the ergonomics and discover use cases would be to propose iterable registries. A quick glance it seems doable (in lieu of implementer concerns).
Justin Fagnani
12:27 PM
^ that includes a mid point in the evolution of the discussion where we decided against registries having parents. There's another discussion where we nixed the tree-lookup idea
Rob Eisenberg
12:31 PM
How does all this work with templates and document fragments today? I haven't tried it. If I clone a fragment and then append it to a shadow root with a registry, does that work? or is the fragment already connected to the glogal registry?>
You
12:32 PM
For anyone making "Action items" in chat, please support the process moving forward by making sure we get those listed in the notes doc. Reposting for late joiners: https://docs.google.com/document/d/1RtGdU0DAiIKGY0p-IGgni3waaE_4UYU-PLfb-rW2lnU/edit
Rob Eisenberg
12:32 PM
On it.
Brian Kardell
12:36 PM
+1
down with innerHTML!
Nolan Lawson
12:38 PM
+1 to registry.run()
Sasha Firsov
12:39 PM
createElementNs is a scope kind of. Can be used for definig the scoped registry as NS :)
Justin Fagnani
12:41 PM
The change to enable scoping in React is pretty trivial
Keith Cirkel
12:42 PM
Whether or not they merge it is less trivial ;)
Sasha Firsov
12:48 PM
DCE should be implemented with namespace scoping in mind. API can follow
Pascal Vos
12:53 PM
vue is the same few lines of code
Brian Kardell
12:57 PM
i dont think that is why they do that though
You
12:59 PM
Luckily default tree shaking accidentally drops same file registrations anyways 🤪 and when not, the long-standing publishing best practices pointed away from same file registrations.
Ben Howell
1:08 PM
https://github.com/WICG/aom/blob/gh-pages/reference-target-explainer.md
Brian Kardell
1:12 PM
or to serialize I guess?
You
1:15 PM
Anne's issue here: https://github.com/WICG/aom/issues/209
Nolan Lawson
1:24 PM
accname spec addresses infinite loops already: https://w3c.github.io/accname/#:~:text=This%20is%20done%20to%20avoid%20infinite%20loops.
Keith Cirkel
1:24 PM
Thanks Nolan!
Nolan Lawson
1:27 PM
you can test the accessible name (label) now
Michael Warren
1:29 PM
https://github.com/WICG/webcomponents/issues/1052
Nathan Knowler
1:30 PM
I created a GitHub discussion for collecting the use cases as well (which might be a better format for asking questions to owners of different use cases): https://github.com/w3c/webcomponents-cg/discussions/92
Mayank
1:33 PM
i think Firefox does allow targeting shadow-roots; this might be about browser extensions in Chromium
Nathan Knowler
1:33 PM
From what I understand both Safari and Firefox’s user styles implementation will apply user stylesheets to shadow roots too.
Justin Fagnani
1:37 PM
Open Stylable pulls styles from the containing scope, not the document.
So that's already taken into account
Mayank
1:39 PM
re: DSD streaming, I think slots of body's shadow-root should work fine with page CSS?
Justin Fagnani
1:41 PM
yep
Brian Kardell
1:41 PM
yes
Justin Fagnani
1:41 PM
the shadow root would only contain slots
Brian Kardell
1:42 PM
I'm happy to try to defend that :) I realize you might not agree
Justin Fagnani
1:42 PM
Do like you do with breaking JS encapsulation: copy the component's source code
Steve Orvell
1:46 PM
It's been basically impossible to scope as initially proposed. I think that means we need to solve theming.
Mayank
1:47 PM
user stories are just user stories, it should be totally ok for them to be "out of scope" of certain solutions
Maxime Bétrisey
1:48 PM
Isn't it possible to handle many of these cases by injecting CSSStyleSheet?
Nathan Knowler
1:49 PM
I’ve been using "Open Styling", but maybe that’s too close to “Open Styl(e)able"
Justin Fagnani
1:49 PM
not for unknown page styles, which is the original motivation for the Open Stylable proposal
Mayank
1:49 PM
maybe "external styling"?
Rob Eisenberg
1:49 PM
Is there a group I can join?
Brian Kardell
1:52 PM
don't feel bad, we don't either :)
Justin Fagnani
1:53 PM
or worse.. some CSSWG people just say that don't care to make it work in SD
Mixins and functions, specifically... they said they won't well with SD
Mayank
2:01 PM
I've suggested a simple two-phase approach:
1. open-styleable = simple, backwards compatible.
2. @sheet = more powerful, granular control.

More details here: https://github.com/WICG/webcomponents/issues/909#issuecomment-2042059261

It would be nice to get implementor feedback on it.
Brian Kardell
2:02 PM
+1
Steve Orvell
2:05 PM
Would love to get some feedback or +1's on: https://github.com/WICG/webcomponents/issues/1051
Rob Eisenberg
2:06 PM
Here's the issue on registry iteration and combining for those that want to chime in: https://github.com/WICG/webcomponents/issues/1057
And here's the issue on alternative ways to control registry scoping:
https://github.com/WICG/webcomponents/issues/1058
Justin Fagnani
2:06 PM
I'm bummed we don't seem to be getting to DOM Scheduling
I would cut down the time on declarative custom elements... we could talk about that for years.
You
2:08 PM
If you think we could close in 5 minutes, it does fall inline with some of that. You did seem to be looking specifically for go/no go on having a larger discussion over time?
Justin Fagnani
2:09 PM
yeah, I'd like to introduce the idea
Justin Fagnani
2:14 PM
https://docs.google.com/presentation/d/1jhc1B1XC1BNPMJpCxlC3AkFwQ4EDUB_Hty5Aj2S-V5I/edit?usp=sharing
Rob Eisenberg
2:15 PM
For references on signals: https://github.com/tc39/proposal-signals
Steve Orvell
2:17 PM
The browser does this type of thing too... in a way that isn't exposed to custom elements...

e.g. 
this.style.width = `100px`;
this.style.height = "200px':
this.getBoundingClientRect();
Rob Eisenberg
2:20 PM
Also, imagine that D is very expensive to render, and that C determines whether or not to render it. If D runs first, it will potentially execute a bunch of expensive, completely unnecessary code.
Olli Pettay
2:26 PM
https://github.com/whatwg/dom/pull/1261
Brian Kardell
2:26 PM
was that shubie's thing?
Rob Eisenberg
2:27 PM
When the timing is right, we have a ton of folks involved with signals now. I'm sure they would all have feedback.
(Personally, I'd love something like this and use it immediately.)
Justin Fagnani
2:28 PM
https://docs.google.com/presentation/d/1QmeGJj1Xze_0yZ8ATJo5cLuQvEOUDDPrmDzb0eoU8zM/edit?usp=sharing
Sasha Firsov
2:33 PM
performance of DCE supperrior to js
Steve Orvell
2:37 PM
**IMO**, DCE is 1/1e6 as important to be implemented today as the other topics we've discussed: cross-root AOM, scoped registries, or styling improvements. Those things are existential for custom elements.

The key thing right now, IMO, s that implementers get a sense of the North Star, as a community, we want to work towards
Justin Fagnani
2:37 PM
+100
Rob Eisenberg
2:37 PM
Agree
Maxime Bétrisey
2:37 PM
+1
You
2:38 PM
https://github.com/w3ctag/design-reviews/issues/334
Rob Eisenberg
2:41 PM
I think I have all these pieces in my document.
Michael Warren
2:42 PM
+100
You
2:42 PM
100%
Michael Warren
2:42 PM
100%
You
2:43 PM
<link rel="htmlmodule">... 😉
Rob Eisenberg
2:44 PM
I have some thoughts on how to declaratively import individual elements from modules, including renaming/providing scoped tag names here: https://gist.github.com/EisenbergEffect/8ec5eaf93283fb5651196e0fdf304555
Justin Fagnani
2:44 PM
+1
Michael Warren
2:48 PM
+1 to importing svg...svgs are always tricky to deal with in design systems because we have an icon component but dont want to have 250+ icons in some app when they're not being used
Rob Eisenberg
2:52 PM
I have a proposal like this
<import from="./my-module.html#NamedElementTwo" tag="my-element">
Justin Fagnani
2:54 PM
<import from="./my-module.html#NamedElementTwo" names="my-element">
<custom-element-registry>
  <define tagname="x-foo" definition="my-element"></define>
</custom-element-registry>
Rob Eisenberg
2:54 PM
I've got something like that as well. Yep.
Olli Pettay
2:54 PM
That is definitely nicer than XBL1's: elementname { binding: url("url.xml#"elementname"); }
Rob Eisenberg
2:54 PM
It's a declarative registry.
Brian Kardell
2:58 PM
justin can I have the stampino link?
Justin Fagnani
2:58 PM
https://github.com/justinfagnani/stampino-element
Brian Kardell
2:58 PM
thx
Olli Pettay
2:59 PM
sounds good
Justin Fagnani
2:59 PM
yep. And the slides I presented: https://docs.google.com/presentation/d/13mIqxQJVlQZxBrtYAsTP-WjhSbFcWO5p4a-NCDFBdhc/edit?usp=sharing
Ryosuke Niwa
2:59 PM
yeah, july sounds good to me.
Steve Orvell
2:59 PM
Great discussions today. Thanks everyone!
Michael Warren
2:59 PM
thanks everyone!
Owen Buckley
3:01 PM
thanks!
Jesse Jurman
3:02 PM
Thank you Westbrook!
Maxime Bétrisey
3:02 PM
Thanks everyone

</details>

-- 
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/1050#issuecomment-2093610922
You are receiving this because you are subscribed to this thread.

Message ID: <WICG/webcomponents/issues/1050/2093610922@github.com>

Received on Friday, 3 May 2024 19:09:11 UTC