- From: Ryosuke Niwa <notifications@github.com>
- Date: Mon, 18 Jul 2022 16:40:42 -0700
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/issues/716/1188441389@github.com>
If we get rid of inheritance & scope, the proposal simplifies to the following. In my view, this is a lot more approachable & tenable proposal. ## API Changes ### `CustomElementRegistry` * `CustomElementRegistry()` `CustomElementRegistry` is constructable. New definitions added to a registry are not visible in the global registry. ### `ShadowRoot` `ShadowRoot`s are already the scoping boundary for DOM and CSS, so it's natural to be the scope for custom elements. `ShadowRoot` needs a `CustomElementRegistry` and the DOM creation APIs that current exist on document. * `customElements: CustomElementRegistry` The `CustomElementRegistry` the `ShadowRoot` uses, set on `attachShadowRoot()`. * `createElement()`, `createElementNS()` These methods create new elements using the `CustomElementRegistry` of the `ShadowRoot`. * `importNode()` Imports a node into the document that owns the `ShadowRoot`, using the `CustomElementRegistry` of the `ShadowRoot`. This enables cloning a template into multiple scopes to use different custom element definitions. ### `Element` New properties: * `Element.prototype.attachShadow(init: ShadowRootInit)` `ShadowRootInit` adds a new property, `customElements`, in its options argument which is a `CustomElementRegistry`. -- Reply to this email directly or view it on GitHub: https://github.com/WICG/webcomponents/issues/716#issuecomment-1188441389 You are receiving this because you are subscribed to this thread. Message ID: <WICG/webcomponents/issues/716/1188441389@github.com>
Received on Monday, 18 July 2022 23:40:54 UTC