xt-f is a web component. The f stands for "fragment". The xt can stand for "external", "existential", "XmlStream" -- whatever makes it easier to remember.
It provides an api, so that fragments can be passed in and managed, keeping things flat.
Combined with sceadu-fæx, it can behave similarly (but certainly not identically) to the slot element within shadow DOM, though its scope may be more limited.
<!-- Petalia Notation -->
<xt-f -piped-chunk -start-anew></xt-f>
Property pipedChunk can either be a DocumentFragment, an Element, or an HTMLTemplateElement, or an array of elements. In the case of a template, it is first cloned into a DocumentFragment.
When the property is set (or changed), the externally provided content is appended to a flat range of siblings after the xt-f element.
If xt-f is removed from the live DOM tree, the content it manages follows the same fate.
NB: This component might not play well with other rendering libraries. For a rendering library to be compatible with this component, it must use the following API:
- If the contents "grouped" by xt-f need to be moved to a new location in the DOM tree, this should be done via newDestination.appendChild($0.extractContents()) where $0 is the instance of xt-f.
- The rendering library may need to skip over the grouped siblings when updating the DOM, via $0.nextUngroupedSibling, where $0 is the instance of xt-f.
Property startAnew is a boolean (that can be repeatedly set to true), that clears the contents.
Attribute "name" is reserved for slot-simulation use.