Description
Writing down the stuff we talked about with @rniwa, @hayatoito, et al yesterday:
We should add a slotElement.reassign(...nodes)
which reassigns the nodes.
How does this interact with the existing declarative distribution API? Maybe it just throws if the name=""
attribute is specified at all; that seems nice and simple.
This API is not "perfect" because authors don't have enough hooks to call it as often as you might want. E.g. if you are trying to emulate details/summary, you will use a MutationObserver to watch for child node changes and do slotEl.reassign(theDetailsIFound)
. This happens at microtask timing, which is later than is done for the browser's native details/summary (people tell me that happens at style recalc timing).
But, it's pretty darn good!! I'm really excited about not putting slot=""
attributes everywhere.
Any further thoughts?