const HTMLLinkElement=function(e){const t={},n=document.querySelector("link[href*="+e+"][rel=import]"),r=(e,t)=>HTMLImports&&!HTMLImports.useNative?HTMLImports.whenReady(e=>t({target:n})):n.addEventListener(e,t);return Object.defineProperties(t,{addEventListener:{writable:!1,value:function(e,s){n?r(e,s):s({target:t})}}}),t};class TokenList{constructor(e){this.sift(e).map(this.tokenize,this)}tokenize(e){(e.text=e.textContent).match(/([^{]*?)(\w|#)(?=\})/g).map((e=>t=>(this[t]=this[t]||[]).push(e))(e))}sift(e){const t=[],n=/{(\w+|#)}/,r=e=>n.test(e.textContent)&&t.push(e),s=e=>Array.from(e).map(e=>n.test(e.value)&&t.push(e)),o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,e=>e.nodeType===Node.TEXT_NODE?r(e):s(e.attributes)&&NodeFilter.FILTER_REJECT);for(;o.nextNode(););return t}bind(e){Object.keys(this).map(e=>this[e].map(t=>(t.textContent=t.text)&&e));for(let t in this)this[t].map(((t,n="{"+t+"}")=>r=>r.textContent=r.textContent.replace(n,e[t]))(t))}}const HTMLTemplateElement=Template=function(e){return Object.assign(document.querySelector("template[name="+e+"]"),{bind:function(e){contexts=[].concat(...[e]);let t,n=this.cloneNode(!1);return n.innerHTML=contexts.map(e=>e).map((e,n)=>(e="object"==typeof e?e:{self:e},e["#"]=n,t=this.cloneNode(!0),new TokenList(t.content).bind(e),t.innerHTML)).join(""),(this.dependents||[]).map(e=>e.remove()),this.dependents=Array.from(n.content.childNodes),this.after(n.content),this}})},EventTarget=e=>class extends e{on(e,t){this.addEventListener(e,this.renderable(t))}renderable(e){return(t,n=!0)=>(t.prevent=(e=>(n=!1)&&t.preventDefault()))&&!1!==e.call(this,t)&&n&&this.render()}},ParentNode=e=>class extends e{selectAll(e,...t){e=[].concat(...[e]);return this.querySelectorAll(t.reduce((t,n)=>t+n+e.shift(),e.shift()))}select(...e){return this.selectAll(...e)[0]}},GlobalEventHandlers=e=>class extends e{onconnect(e,t){(t=e.target.import)&&this.mirror(t.querySelector("template")),super.onconnect&&super.onconnect(),this.tokens=new TokenList(this),this.render()}reflect(e,t){(t=(e.match(/^on(.+)$/)||[])[1])&&Object.keys(HTMLElement.prototype).includes(e)&&this.on(t,this[e])}register(e){Array.from(e.attributes).map(e=>e.name).filter(e=>/^on/.test(e)).map((t,n)=>(n=/{\s*(\w+)\s*}/.exec(e[t]))&&(n=this[(n||[])[1]])&&(e[t]=this.renderable(n)))}},Component=e=>class extends(EventTarget(ParentNode(GlobalEventHandlers(e)))){constructor(){super();let t=Object.getOwnPropertyDescriptors(e.prototype);Object.keys(t).map(e=>"function"==typeof t[e].value&&(this[e]=this[e].bind(this))),Object.getOwnPropertyNames(e.prototype).map(this.reflect,this),this.context={},this.initialize&&this.initialize()}connectedCallback(){super.connectedCallback&&super.connectedCallback(),HTMLLinkElement(this.tagName.toLowerCase()).addEventListener("load",this.onconnect.bind(this))}render(){this.tokens.bind(this),Array.from(this.selectAll("template[name]")).map(e=>e.getAttribute("name")).map(e=>new Template(e).bind(this[e])),Array.from(this.selectAll("*")).concat([this]).map(this.register,this),super.onidle&&super.onidle()}mirror(e,t){e=e.cloneNode(!0),t=((t,n,r)=>(n=t.getAttribute("slot"))&&(r=e.content.querySelector("slot[name="+n+"]")).parentNode.replaceChild(t,r));for(let e of this.selectAll("[slot]"))t(e);Array.from(e.attributes).filter(e=>!this.attributes[e.name]).map(e=>this.setAttribute(e.name,e.value)),this.innerHTML=e.innerHTML}},ElementPrototype=window.Element.prototype,Element=e=>t=>window.customElements.define(...e,Component(t));(e=>t=>window.customElements.define(...e,Component(t))).prototype=ElementPrototype;
@@ -988,24 +988,33 @@
 (t))%7D%7Dconst 
+Template=
 HTMLTemplate
@@ -1021,25 +1021,16 @@
 Element=
-Template=
 function
@@ -1123,111 +1123,242 @@
 (e)%7B
-contexts=%5B%5D.concat(...%5Be%5D);let t,n=this
+let t=%22%22,n=this.innerHTML,r=%5B%5D.concat(...%5Be%5D),s=Object.keys(r%5B0%5D)
 .c
-l
 on
-eNode(!1);return n.innerHTML=contexts.map(e=%3Ee).map((e,n)=%3E
+cat(%5B%22#%22,%22self%22%5D),o=s.map(e=%3E%22%7B%22+e+%22%7D%22),i=document.createElement(%22template%22);(this.dependents%7C%7C%5B%5D).map(e=%3Ee.remove());for(let e=0;e%3Cr.length;e++)t+=((e,t)=%3E%7Blet r=n;
 (e=%22
@@ -1389,135 +1389,106 @@
 f:e%7D
-,e
+)
 %5B%22#%22%5D=
-n,t=this.cloneNode(!0),new TokenList(t.content).bind(e),t.innerHTML)).join(%22%22),(this.dependents%7C%7C%5B%5D).map(e=%3Ee.remove())
+t;for(let t=0;t%3Co.length;t++)r=r.split(o%5Bt%5D).join(e%5Bs%5Bt%5D%5D);return r%7D)(r%5Be%5D,e);i.innerHTML=t
 ,thi
@@ -1511,17 +1511,17 @@
 ay.from(
-n
+i
 .content
@@ -1548,23 +1548,27 @@
 ter(
-n.content),this
+...this.dependents)
 %7D%7D)%7D

bump ??? distribution dist/snuggsi.min.es.js