- From: Westbrook Johnson <notifications@github.com>
- Date: Fri, 03 May 2024 12:09:07 -0700
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/issues/1050/2093610922@github.com>
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