@kodaris/krubble-app-components 1.0.137 → 1.0.138

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ import { KRHttp } from '@kodaris/krubble-http';
6
6
  * Copyright 2019 Google LLC
7
7
  * SPDX-License-Identifier: BSD-3-Clause
8
8
  */
9
- const t$3=globalThis,e$7=t$3.ShadowRoot&&(void 0===t$3.ShadyCSS||t$3.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s$3=Symbol(),o$6=new WeakMap;let n$4 = class n{constructor(t,e,o){if(this._$cssResult$=true,o!==s$3)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e;}get styleSheet(){let t=this.o;const s=this.t;if(e$7&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o$6.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o$6.set(s,t));}return t}toString(){return this.cssText}};const r$4=t=>new n$4("string"==typeof t?t:t+"",void 0,s$3),i$6=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(true===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[o+1],t[0]);return new n$4(o,t,s$3)},S$1=(s,o)=>{if(e$7)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement("style"),n=t$3.litNonce;void 0!==n&&o.setAttribute("nonce",n),o.textContent=e.cssText,s.appendChild(o);}},c$3=e$7?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return r$4(e)})(t):t;
9
+ const t$4=globalThis,e$7=t$4.ShadowRoot&&(void 0===t$4.ShadyCSS||t$4.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s$3=Symbol(),o$6=new WeakMap;let n$4 = class n{constructor(t,e,o){if(this._$cssResult$=true,o!==s$3)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e;}get styleSheet(){let t=this.o;const s=this.t;if(e$7&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o$6.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o$6.set(s,t));}return t}toString(){return this.cssText}};const r$4=t=>new n$4("string"==typeof t?t:t+"",void 0,s$3),i$6=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(true===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[o+1],t[0]);return new n$4(o,t,s$3)},S$1=(s,o)=>{if(e$7)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement("style"),n=t$4.litNonce;void 0!==n&&o.setAttribute("nonce",n),o.textContent=e.cssText,s.appendChild(o);}},c$3=e$7?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return r$4(e)})(t):t;
10
10
 
11
11
  /**
12
12
  * @license
@@ -19,7 +19,7 @@ const t$3=globalThis,e$7=t$3.ShadowRoot&&(void 0===t$3.ShadyCSS||t$3.ShadyCSS.na
19
19
  * Copyright 2017 Google LLC
20
20
  * SPDX-License-Identifier: BSD-3-Clause
21
21
  */
22
- const t$2=globalThis,i$4=t=>t,s$2=t$2.trustedTypes,e$5=s$2?s$2.createPolicy("lit-html",{createHTML:t=>t}):void 0,h$1="$lit$",o$4=`lit$${Math.random().toFixed(9).slice(2)}$`,n$2="?"+o$4,r$2=`<${n$2}>`,l=document,c$1=()=>l.createComment(""),a=t=>null===t||"object"!=typeof t&&"function"!=typeof t,u$2=Array.isArray,d=t=>u$2(t)||"function"==typeof t?.[Symbol.iterator],f="[ \t\n\f\r]",v$1=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_=/-->/g,m$1=/>/g,p$1=RegExp(`>|${f}(?:([^\\s"'>=/]+)(${f}*=${f}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,$=/"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),E=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u$2(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==e$5?e$5.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?"<svg>":3===i?"<math>":"",c=v$1;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v$1?"!--"===u[1]?c=_:void 0!==u[1]?c=m$1:void 0!==u[2]?(y.test(u[2])&&(n=RegExp("</"+u[2],"g")),c=p$1):void 0!==u[3]&&(c=p$1):c===p$1?">"===u[0]?(c=n??v$1,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p$1:'"'===u[3]?$:g):c===$||c===g?c=p$1:c===_||c===m$1?c=v$1:(c=p$1,n=void 0);const x=c===p$1&&t[i+1].startsWith("/>")?" ":"";l+=c===v$1?s+r$2:d>=0?(e.push(a),s.slice(0,d)+h$1+s.slice(d)+o$4+x):s+o$4+(-2===d?i:x);}return [V(t,l+(t[s]||"<?>")+(2===i?"</svg>":3===i?"</math>":"")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes);}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h$1)){const i=v[a++],s=r.getAttribute(t).split(o$4),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:"."===e[1]?I:"?"===e[1]?L:"@"===e[1]?z:H}),r.removeAttribute(t);}else t.startsWith(o$4)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o$4),i=t.length-1;if(i>0){r.textContent=s$2?s$2.emptyScript:"";for(let s=0;s<i;s++)r.append(t[s],c$1()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c$1());}}}else if(8===r.nodeType)if(r.data===n$2)d.push({type:2,index:l});else {let t=-1;for(;-1!==(t=r.data.indexOf(o$4,t+1));)d.push({type:7,index:l}),t+=o$4.length-1;}l++;}}static createElement(t,i){const s=l.createElement("template");return s.innerHTML=t,s}}function M$1(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(false),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M$1(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i;}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,true);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n];}o!==r?.index&&(h=P.nextNode(),o++);}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV) void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++;}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??true;}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M$1(this,t,i),a(t)?t===A||null==t||""===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t);}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t));}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t;}$(t){const{values:i,_$litType$:s}=t,e="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else {const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t;}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u$2(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c$1()),this.O(c$1()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e);}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(false,true,s);t!==this._$AB;){const s=i$4(t).nextSibling;i$4(t).remove(),t=s;}}setConnected(t){ void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t));}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A;}_$AI(t,i=this,s,e){const h=this.strings;let o=false;if(void 0===h)t=M$1(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else {const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M$1(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??"")+h[n+1]),this._$AH[n]=r;}o&&!e&&this.j(t);}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"");}}class I extends H{constructor(){super(...arguments),this.type=3;}j(t){this.element[this.name]=t===A?void 0:t;}}class L extends H{constructor(){super(...arguments),this.type=4;}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A);}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5;}_$AI(t,i=this){if((t=M$1(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t;}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t);}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s;}get _$AU(){return this._$AM._$AU}_$AI(t){M$1(this,t);}}const j={I:k},B=t$2.litHtmlPolyfillSupport;B?.(S,k),(t$2.litHtmlVersions??=[]).push("3.3.2");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c$1(),t),t,void 0,s??{});}return h._$AI(t),h};
22
+ const t$3=globalThis,i$4=t=>t,s$2=t$3.trustedTypes,e$5=s$2?s$2.createPolicy("lit-html",{createHTML:t=>t}):void 0,h$1="$lit$",o$4=`lit$${Math.random().toFixed(9).slice(2)}$`,n$2="?"+o$4,r$2=`<${n$2}>`,l=document,c$1=()=>l.createComment(""),a=t=>null===t||"object"!=typeof t&&"function"!=typeof t,u$2=Array.isArray,d=t=>u$2(t)||"function"==typeof t?.[Symbol.iterator],f="[ \t\n\f\r]",v$1=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_=/-->/g,m$1=/>/g,p$1=RegExp(`>|${f}(?:([^\\s"'>=/]+)(${f}*=${f}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,$=/"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),E=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u$2(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==e$5?e$5.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?"<svg>":3===i?"<math>":"",c=v$1;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v$1?"!--"===u[1]?c=_:void 0!==u[1]?c=m$1:void 0!==u[2]?(y.test(u[2])&&(n=RegExp("</"+u[2],"g")),c=p$1):void 0!==u[3]&&(c=p$1):c===p$1?">"===u[0]?(c=n??v$1,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p$1:'"'===u[3]?$:g):c===$||c===g?c=p$1:c===_||c===m$1?c=v$1:(c=p$1,n=void 0);const x=c===p$1&&t[i+1].startsWith("/>")?" ":"";l+=c===v$1?s+r$2:d>=0?(e.push(a),s.slice(0,d)+h$1+s.slice(d)+o$4+x):s+o$4+(-2===d?i:x);}return [V(t,l+(t[s]||"<?>")+(2===i?"</svg>":3===i?"</math>":"")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes);}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h$1)){const i=v[a++],s=r.getAttribute(t).split(o$4),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:"."===e[1]?I:"?"===e[1]?L:"@"===e[1]?z:H}),r.removeAttribute(t);}else t.startsWith(o$4)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o$4),i=t.length-1;if(i>0){r.textContent=s$2?s$2.emptyScript:"";for(let s=0;s<i;s++)r.append(t[s],c$1()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c$1());}}}else if(8===r.nodeType)if(r.data===n$2)d.push({type:2,index:l});else {let t=-1;for(;-1!==(t=r.data.indexOf(o$4,t+1));)d.push({type:7,index:l}),t+=o$4.length-1;}l++;}}static createElement(t,i){const s=l.createElement("template");return s.innerHTML=t,s}}function M$1(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(false),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M$1(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i;}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,true);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n];}o!==r?.index&&(h=P.nextNode(),o++);}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV) void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++;}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??true;}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M$1(this,t,i),a(t)?t===A||null==t||""===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t);}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t));}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t;}$(t){const{values:i,_$litType$:s}=t,e="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else {const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t;}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u$2(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c$1()),this.O(c$1()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e);}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(false,true,s);t!==this._$AB;){const s=i$4(t).nextSibling;i$4(t).remove(),t=s;}}setConnected(t){ void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t));}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A;}_$AI(t,i=this,s,e){const h=this.strings;let o=false;if(void 0===h)t=M$1(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else {const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M$1(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??"")+h[n+1]),this._$AH[n]=r;}o&&!e&&this.j(t);}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"");}}class I extends H{constructor(){super(...arguments),this.type=3;}j(t){this.element[this.name]=t===A?void 0:t;}}class L extends H{constructor(){super(...arguments),this.type=4;}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A);}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5;}_$AI(t,i=this){if((t=M$1(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t;}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t);}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s;}get _$AU(){return this._$AM._$AU}_$AI(t){M$1(this,t);}}const j={I:k},B=t$3.litHtmlPolyfillSupport;B?.(S,k),(t$3.litHtmlVersions??=[]).push("3.3.2");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c$1(),t),t,void 0,s??{});}return h._$AI(t),h};
23
23
 
24
24
  /**
25
25
  * @license
@@ -27,6 +27,13 @@ const t$2=globalThis,i$4=t=>t,s$2=t$2.trustedTypes,e$5=s$2?s$2.createPolicy("lit
27
27
  * SPDX-License-Identifier: BSD-3-Clause
28
28
  */const s$1=globalThis;let i$3 = class i extends y$1{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0;}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=D(r,this.renderRoot,this.renderOptions);}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(true);}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(false);}render(){return E}};i$3._$litElement$=true,i$3["finalized"]=true,s$1.litElementHydrateSupport?.({LitElement:i$3});const o$3=s$1.litElementPolyfillSupport;o$3?.({LitElement:i$3});(s$1.litElementVersions??=[]).push("4.2.2");
29
29
 
30
+ /**
31
+ * @license
32
+ * Copyright 2017 Google LLC
33
+ * SPDX-License-Identifier: BSD-3-Clause
34
+ */
35
+ const t$2=t=>(e,o)=>{ void 0!==o?o.addInitializer(()=>{customElements.define(t,e);}):customElements.define(t,e);};
36
+
30
37
  /**
31
38
  * @license
32
39
  * Copyright 2017 Google LLC
@@ -71,7 +78,7 @@ const t$1={ATTRIBUTE:1,CHILD:2},e$2=t=>(...e)=>({_$litDirective$:t,values:e});le
71
78
  * SPDX-License-Identifier: BSD-3-Clause
72
79
  */const e=e$2(class extends i$2{constructor(t){if(super(t),t.type!==t$1.ATTRIBUTE||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return " "+Object.keys(t).filter(s=>t[s]).join(" ")+" "}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter(t=>""!==t)));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)));}return E}});
73
80
 
74
- var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
81
+ var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
75
82
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
76
83
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
77
84
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -267,16 +274,16 @@ KRNavItemEdit.styles = i$6 `
267
274
  background: #d4f472;
268
275
  }
269
276
  `;
270
- __decorate$5([
277
+ __decorate$6([
271
278
  r()
272
279
  ], KRNavItemEdit.prototype, "label", void 0);
273
- __decorate$5([
280
+ __decorate$6([
274
281
  r()
275
282
  ], KRNavItemEdit.prototype, "icon", void 0);
276
- __decorate$5([
283
+ __decorate$6([
277
284
  r()
278
285
  ], KRNavItemEdit.prototype, "url", void 0);
279
- __decorate$5([
286
+ __decorate$6([
280
287
  r()
281
288
  ], KRNavItemEdit.prototype, "active", void 0);
282
289
  // Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
@@ -2731,7 +2738,7 @@ marked.parseInline;
2731
2738
  _Parser.parse;
2732
2739
  _Lexer.lex;
2733
2740
 
2734
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2741
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2735
2742
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2736
2743
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2737
2744
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -9157,195 +9164,195 @@ KRChatbot.styles = i$6 `
9157
9164
  }
9158
9165
 
9159
9166
  `;
9160
- __decorate$4([
9167
+ __decorate$5([
9161
9168
  n$1({ attribute: false })
9162
9169
  ], KRChatbot.prototype, "send", void 0);
9163
- __decorate$4([
9170
+ __decorate$5([
9164
9171
  n$1({ attribute: false })
9165
9172
  ], KRChatbot.prototype, "load", void 0);
9166
- __decorate$4([
9173
+ __decorate$5([
9167
9174
  n$1({ attribute: false })
9168
9175
  ], KRChatbot.prototype, "messages", void 0);
9169
- __decorate$4([
9176
+ __decorate$5([
9170
9177
  n$1({ type: String })
9171
9178
  ], KRChatbot.prototype, "label", void 0);
9172
- __decorate$4([
9179
+ __decorate$5([
9173
9180
  n$1({ type: String })
9174
9181
  ], KRChatbot.prototype, "placeholder", void 0);
9175
- __decorate$4([
9182
+ __decorate$5([
9176
9183
  n$1({
9177
9184
  type: Boolean,
9178
9185
  reflect: true
9179
9186
  })
9180
9187
  ], KRChatbot.prototype, "opened", void 0);
9181
- __decorate$4([
9188
+ __decorate$5([
9182
9189
  n$1({
9183
9190
  type: Boolean,
9184
9191
  attribute: 'hide-toggle',
9185
9192
  reflect: true
9186
9193
  })
9187
9194
  ], KRChatbot.prototype, "hideToggle", void 0);
9188
- __decorate$4([
9195
+ __decorate$5([
9189
9196
  n$1({
9190
9197
  type: String,
9191
9198
  reflect: true
9192
9199
  })
9193
9200
  ], KRChatbot.prototype, "variant", void 0);
9194
- __decorate$4([
9201
+ __decorate$5([
9195
9202
  n$1({
9196
9203
  type: Number,
9197
9204
  attribute: 'conversation-id',
9198
9205
  reflect: true
9199
9206
  })
9200
9207
  ], KRChatbot.prototype, "conversationId", void 0);
9201
- __decorate$4([
9208
+ __decorate$5([
9202
9209
  r()
9203
9210
  ], KRChatbot.prototype, "_inputValue", void 0);
9204
- __decorate$4([
9211
+ __decorate$5([
9205
9212
  r()
9206
9213
  ], KRChatbot.prototype, "_isStreaming", void 0);
9207
- __decorate$4([
9214
+ __decorate$5([
9208
9215
  r()
9209
9216
  ], KRChatbot.prototype, "_error", void 0);
9210
- __decorate$4([
9217
+ __decorate$5([
9211
9218
  r()
9212
9219
  ], KRChatbot.prototype, "_conversationTitle", void 0);
9213
- __decorate$4([
9220
+ __decorate$5([
9214
9221
  r()
9215
9222
  ], KRChatbot.prototype, "_contextWarning", void 0);
9216
- __decorate$4([
9223
+ __decorate$5([
9217
9224
  r()
9218
9225
  ], KRChatbot.prototype, "_contextLimitReached", void 0);
9219
- __decorate$4([
9226
+ __decorate$5([
9220
9227
  r()
9221
9228
  ], KRChatbot.prototype, "_contextLimitMessage", void 0);
9222
- __decorate$4([
9229
+ __decorate$5([
9223
9230
  r()
9224
9231
  ], KRChatbot.prototype, "_pendingActions", void 0);
9225
- __decorate$4([
9232
+ __decorate$5([
9226
9233
  r()
9227
9234
  ], KRChatbot.prototype, "_confirmationHighlighted", void 0);
9228
- __decorate$4([
9235
+ __decorate$5([
9229
9236
  r()
9230
9237
  ], KRChatbot.prototype, "_confirmationInFlight", void 0);
9231
- __decorate$4([
9238
+ __decorate$5([
9232
9239
  r()
9233
9240
  ], KRChatbot.prototype, "_telemetry", void 0);
9234
- __decorate$4([
9241
+ __decorate$5([
9235
9242
  r()
9236
9243
  ], KRChatbot.prototype, "_iterationLog", void 0);
9237
- __decorate$4([
9244
+ __decorate$5([
9238
9245
  r()
9239
9246
  ], KRChatbot.prototype, "_cacheCheckpoints", void 0);
9240
- __decorate$4([
9247
+ __decorate$5([
9241
9248
  r()
9242
9249
  ], KRChatbot.prototype, "_drawerOpen", void 0);
9243
- __decorate$4([
9250
+ __decorate$5([
9244
9251
  r()
9245
9252
  ], KRChatbot.prototype, "_drawerView", void 0);
9246
- __decorate$4([
9253
+ __decorate$5([
9247
9254
  r()
9248
9255
  ], KRChatbot.prototype, "_conversations", void 0);
9249
- __decorate$4([
9256
+ __decorate$5([
9250
9257
  r()
9251
9258
  ], KRChatbot.prototype, "_conversationsLoading", void 0);
9252
- __decorate$4([
9259
+ __decorate$5([
9253
9260
  r()
9254
9261
  ], KRChatbot.prototype, "_toolDetail", void 0);
9255
- __decorate$4([
9262
+ __decorate$5([
9256
9263
  r()
9257
9264
  ], KRChatbot.prototype, "_toolDetailCopied", void 0);
9258
- __decorate$4([
9265
+ __decorate$5([
9259
9266
  r()
9260
9267
  ], KRChatbot.prototype, "_toolDetailInputOpen", void 0);
9261
- __decorate$4([
9268
+ __decorate$5([
9262
9269
  r()
9263
9270
  ], KRChatbot.prototype, "_toolDetailOutputOpen", void 0);
9264
- __decorate$4([
9271
+ __decorate$5([
9265
9272
  r()
9266
9273
  ], KRChatbot.prototype, "_drawerWidth", void 0);
9267
- __decorate$4([
9274
+ __decorate$5([
9268
9275
  r()
9269
9276
  ], KRChatbot.prototype, "_isDrawerResizing", void 0);
9270
- __decorate$4([
9277
+ __decorate$5([
9271
9278
  r()
9272
9279
  ], KRChatbot.prototype, "_pendingConversationFiles", void 0);
9273
- __decorate$4([
9280
+ __decorate$5([
9274
9281
  r()
9275
9282
  ], KRChatbot.prototype, "_isDraggingFile", void 0);
9276
- __decorate$4([
9283
+ __decorate$5([
9277
9284
  r()
9278
9285
  ], KRChatbot.prototype, "_skillMenuOpened", void 0);
9279
- __decorate$4([
9286
+ __decorate$5([
9280
9287
  r()
9281
9288
  ], KRChatbot.prototype, "_skillQuery", void 0);
9282
- __decorate$4([
9289
+ __decorate$5([
9283
9290
  r()
9284
9291
  ], KRChatbot.prototype, "_orgSkills", void 0);
9285
- __decorate$4([
9292
+ __decorate$5([
9286
9293
  r()
9287
9294
  ], KRChatbot.prototype, "_globalSkills", void 0);
9288
- __decorate$4([
9295
+ __decorate$5([
9289
9296
  r()
9290
9297
  ], KRChatbot.prototype, "_invocableSkills", void 0);
9291
- __decorate$4([
9298
+ __decorate$5([
9292
9299
  r()
9293
9300
  ], KRChatbot.prototype, "_suggestedActions", void 0);
9294
- __decorate$4([
9301
+ __decorate$5([
9295
9302
  r()
9296
9303
  ], KRChatbot.prototype, "_aiFrameworkConfig", void 0);
9297
- __decorate$4([
9304
+ __decorate$5([
9298
9305
  r()
9299
9306
  ], KRChatbot.prototype, "_skillHighlighted", void 0);
9300
- __decorate$4([
9307
+ __decorate$5([
9301
9308
  r()
9302
9309
  ], KRChatbot.prototype, "_copiedIndex", void 0);
9303
- __decorate$4([
9310
+ __decorate$5([
9304
9311
  r()
9305
9312
  ], KRChatbot.prototype, "_skillBrowseOpened", void 0);
9306
- __decorate$4([
9313
+ __decorate$5([
9307
9314
  r()
9308
9315
  ], KRChatbot.prototype, "_skillBrowseSource", void 0);
9309
- __decorate$4([
9316
+ __decorate$5([
9310
9317
  r()
9311
9318
  ], KRChatbot.prototype, "_skillBrowseQuery", void 0);
9312
- __decorate$4([
9319
+ __decorate$5([
9313
9320
  r()
9314
9321
  ], KRChatbot.prototype, "_isDictating", void 0);
9315
- __decorate$4([
9322
+ __decorate$5([
9316
9323
  r()
9317
9324
  ], KRChatbot.prototype, "_mode", void 0);
9318
- __decorate$4([
9325
+ __decorate$5([
9319
9326
  r()
9320
9327
  ], KRChatbot.prototype, "_modeMenuOpened", void 0);
9321
- __decorate$4([
9328
+ __decorate$5([
9322
9329
  r()
9323
9330
  ], KRChatbot.prototype, "_showTools", void 0);
9324
- __decorate$4([
9331
+ __decorate$5([
9325
9332
  r()
9326
9333
  ], KRChatbot.prototype, "_showToolInputs", void 0);
9327
- __decorate$4([
9334
+ __decorate$5([
9328
9335
  r()
9329
9336
  ], KRChatbot.prototype, "_showConfirmationInput", void 0);
9330
- __decorate$4([
9337
+ __decorate$5([
9331
9338
  e$3('.panel')
9332
9339
  ], KRChatbot.prototype, "_panelEl", void 0);
9333
- __decorate$4([
9340
+ __decorate$5([
9334
9341
  e$3('.messages')
9335
9342
  ], KRChatbot.prototype, "_messagesEl", void 0);
9336
- __decorate$4([
9343
+ __decorate$5([
9337
9344
  e$3('.input')
9338
9345
  ], KRChatbot.prototype, "_inputEl", void 0);
9339
- __decorate$4([
9346
+ __decorate$5([
9340
9347
  e$3('.file-input')
9341
9348
  ], KRChatbot.prototype, "_fileInputEl", void 0);
9342
- __decorate$4([
9349
+ __decorate$5([
9343
9350
  e$3('.input-wrapper')
9344
9351
  ], KRChatbot.prototype, "_inputWrapperEl", void 0);
9345
- __decorate$4([
9352
+ __decorate$5([
9346
9353
  e$3('.skill-menu')
9347
9354
  ], KRChatbot.prototype, "_skillMenuEl", void 0);
9348
- __decorate$4([
9355
+ __decorate$5([
9349
9356
  e$3('.drawer__body')
9350
9357
  ], KRChatbot.prototype, "_drawerBodyEl", void 0);
9351
9358
  // Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
@@ -9355,7 +9362,7 @@ if (!customElements.get('kr-chatbot')) {
9355
9362
  customElements.define('kr-chatbot', KRChatbot);
9356
9363
  }
9357
9364
 
9358
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9365
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9359
9366
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9360
9367
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9361
9368
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -11385,98 +11392,98 @@ KRScaffold.styles = i$6 `
11385
11392
  }
11386
11393
  }
11387
11394
  `;
11388
- __decorate$3([
11395
+ __decorate$4([
11389
11396
  n$1({ type: String })
11390
11397
  ], KRScaffold.prototype, "logo", void 0);
11391
- __decorate$3([
11398
+ __decorate$4([
11392
11399
  n$1({ type: String })
11393
11400
  ], KRScaffold.prototype, "label", void 0);
11394
- __decorate$3([
11401
+ __decorate$4([
11395
11402
  n$1({
11396
11403
  type: String,
11397
11404
  attribute: 'home-url'
11398
11405
  })
11399
11406
  ], KRScaffold.prototype, "homeUrl", void 0);
11400
- __decorate$3([
11407
+ __decorate$4([
11401
11408
  n$1({
11402
11409
  type: String,
11403
11410
  reflect: true
11404
11411
  })
11405
11412
  ], KRScaffold.prototype, "scheme", void 0);
11406
- __decorate$3([
11413
+ __decorate$4([
11407
11414
  n$1({ type: Array })
11408
11415
  ], KRScaffold.prototype, "nav", void 0);
11409
- __decorate$3([
11416
+ __decorate$4([
11410
11417
  n$1({
11411
11418
  type: Boolean,
11412
11419
  attribute: 'nav-icons-displayed',
11413
11420
  reflect: true
11414
11421
  })
11415
11422
  ], KRScaffold.prototype, "navIconsDisplayed", void 0);
11416
- __decorate$3([
11423
+ __decorate$4([
11417
11424
  n$1({
11418
11425
  type: Boolean,
11419
11426
  attribute: 'nav-expanded'
11420
11427
  })
11421
11428
  ], KRScaffold.prototype, "navExpanded", void 0);
11422
- __decorate$3([
11429
+ __decorate$4([
11423
11430
  n$1({ type: Object })
11424
11431
  ], KRScaffold.prototype, "user", void 0);
11425
- __decorate$3([
11432
+ __decorate$4([
11426
11433
  n$1({ type: Boolean })
11427
11434
  ], KRScaffold.prototype, "subbar", void 0);
11428
- __decorate$3([
11435
+ __decorate$4([
11429
11436
  n$1({
11430
11437
  type: Boolean,
11431
11438
  attribute: 'nav-enabled'
11432
11439
  })
11433
11440
  ], KRScaffold.prototype, "navEnabled", void 0);
11434
- __decorate$3([
11441
+ __decorate$4([
11435
11442
  n$1({
11436
11443
  type: String,
11437
11444
  attribute: 'user-type'
11438
11445
  })
11439
11446
  ], KRScaffold.prototype, "userType", void 0);
11440
- __decorate$3([
11447
+ __decorate$4([
11441
11448
  n$1({ type: Array })
11442
11449
  ], KRScaffold.prototype, "breadcrumbs", void 0);
11443
- __decorate$3([
11450
+ __decorate$4([
11444
11451
  r()
11445
11452
  ], KRScaffold.prototype, "isDev", void 0);
11446
- __decorate$3([
11453
+ __decorate$4([
11447
11454
  r()
11448
11455
  ], KRScaffold.prototype, "navItemsExpanded", void 0);
11449
- __decorate$3([
11456
+ __decorate$4([
11450
11457
  r()
11451
11458
  ], KRScaffold.prototype, "navQuery", void 0);
11452
- __decorate$3([
11459
+ __decorate$4([
11453
11460
  r()
11454
11461
  ], KRScaffold.prototype, "activeNavItemId", void 0);
11455
- __decorate$3([
11462
+ __decorate$4([
11456
11463
  r()
11457
11464
  ], KRScaffold.prototype, "isNavScrolled", void 0);
11458
- __decorate$3([
11465
+ __decorate$4([
11459
11466
  r()
11460
11467
  ], KRScaffold.prototype, "isNavOpened", void 0);
11461
- __decorate$3([
11468
+ __decorate$4([
11462
11469
  r()
11463
11470
  ], KRScaffold.prototype, "isEditing", void 0);
11464
- __decorate$3([
11471
+ __decorate$4([
11465
11472
  r()
11466
11473
  ], KRScaffold.prototype, "isUserMenuOpen", void 0);
11467
- __decorate$3([
11474
+ __decorate$4([
11468
11475
  r()
11469
11476
  ], KRScaffold.prototype, "pref", void 0);
11470
- __decorate$3([
11477
+ __decorate$4([
11471
11478
  r()
11472
11479
  ], KRScaffold.prototype, "draggedNavItemId", void 0);
11473
- __decorate$3([
11480
+ __decorate$4([
11474
11481
  r()
11475
11482
  ], KRScaffold.prototype, "navItemDropTargetId", void 0);
11476
- __decorate$3([
11483
+ __decorate$4([
11477
11484
  r()
11478
11485
  ], KRScaffold.prototype, "navItemDropPosition", void 0);
11479
- __decorate$3([
11486
+ __decorate$4([
11480
11487
  r()
11481
11488
  ], KRScaffold.prototype, "pendingRequests", void 0);
11482
11489
  // Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
@@ -11486,7 +11493,7 @@ if (!customElements.get('kr-scaffold')) {
11486
11493
  customElements.define('kr-scaffold', KRScaffold);
11487
11494
  }
11488
11495
 
11489
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11496
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11490
11497
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11491
11498
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11492
11499
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -11520,7 +11527,7 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
11520
11527
  * ```
11521
11528
  *
11522
11529
  * Actions render in a footer at the bottom of the nav column. With more than
11523
- * `maxVisibleActions` (default 3), the overflow collapses into a "More" dropdown.
11530
+ * `maxVisibleActions` (default 5), the overflow collapses into a "More" dropdown.
11524
11531
  * Listen for `action-click` to handle a click: `e.detail.action` is the action id.
11525
11532
  *
11526
11533
  * @slot - The main screen content
@@ -11530,7 +11537,7 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
11530
11537
  * @property {KRScreenNavItem[]} items - Navigation items as JSON array
11531
11538
  * @property {string} activeId - Currently active item ID
11532
11539
  * @property {KRScreenNavAction[]} actions - Action buttons rendered in the nav footer
11533
- * @property {number} maxVisibleActions - Max inline actions before collapsing into a "More" dropdown (default 3)
11540
+ * @property {number} maxVisibleActions - Max inline actions before collapsing into a "More" dropdown (default 5)
11534
11541
  *
11535
11542
  * @fires action-click - When an action button (inline or overflow) is clicked; detail is `{ action: id }`
11536
11543
  */
@@ -11564,7 +11571,7 @@ class KRScreenNav extends i$3 {
11564
11571
  * used for the "More" button so the total footer button count never exceeds
11565
11572
  * this value.
11566
11573
  */
11567
- this.maxVisibleActions = 3;
11574
+ this.maxVisibleActions = 5;
11568
11575
  this.handlePopstate = () => {
11569
11576
  this.syncActiveFromUrl();
11570
11577
  };
@@ -11818,22 +11825,22 @@ KRScreenNav.styles = i$6 `
11818
11825
  overflow-y: auto;
11819
11826
  }
11820
11827
  `;
11821
- __decorate$2([
11828
+ __decorate$3([
11822
11829
  n$1({ type: String })
11823
11830
  ], KRScreenNav.prototype, "label", void 0);
11824
- __decorate$2([
11831
+ __decorate$3([
11825
11832
  n$1({ type: String })
11826
11833
  ], KRScreenNav.prototype, "subLabel", void 0);
11827
- __decorate$2([
11834
+ __decorate$3([
11828
11835
  n$1({ type: Array })
11829
11836
  ], KRScreenNav.prototype, "items", void 0);
11830
- __decorate$2([
11837
+ __decorate$3([
11831
11838
  n$1({ type: String })
11832
11839
  ], KRScreenNav.prototype, "activeId", void 0);
11833
- __decorate$2([
11840
+ __decorate$3([
11834
11841
  n$1({ type: Array })
11835
11842
  ], KRScreenNav.prototype, "actions", void 0);
11836
- __decorate$2([
11843
+ __decorate$3([
11837
11844
  n$1({ type: Number })
11838
11845
  ], KRScreenNav.prototype, "maxVisibleActions", void 0);
11839
11846
  // Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
@@ -11843,7 +11850,7 @@ if (!customElements.get('kr-screen-nav')) {
11843
11850
  customElements.define('kr-screen-nav', KRScreenNav);
11844
11851
  }
11845
11852
 
11846
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11853
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11847
11854
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11848
11855
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11849
11856
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -11937,7 +11944,7 @@ KRScreenDetail.styles = i$6 `
11937
11944
  max-width: 700px;
11938
11945
  }
11939
11946
  `;
11940
- __decorate$1([
11947
+ __decorate$2([
11941
11948
  n$1({ type: String })
11942
11949
  ], KRScreenDetail.prototype, "title", void 0);
11943
11950
  // Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
@@ -11947,7 +11954,7 @@ if (!customElements.get('kr-screen-detail')) {
11947
11954
  customElements.define('kr-screen-detail', KRScreenDetail);
11948
11955
  }
11949
11956
 
11950
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11957
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11951
11958
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11952
11959
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11953
11960
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -12141,10 +12148,10 @@ KRSubbar.styles = i$6 `
12141
12148
  height: 18px;
12142
12149
  }
12143
12150
  `;
12144
- __decorate([
12151
+ __decorate$1([
12145
12152
  n$1({ type: Array })
12146
12153
  ], KRSubbar.prototype, "breadcrumbs", void 0);
12147
- __decorate([
12154
+ __decorate$1([
12148
12155
  n$1({ type: Boolean })
12149
12156
  ], KRSubbar.prototype, "menu", void 0);
12150
12157
  // Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
@@ -12154,6 +12161,12 @@ if (!customElements.get('kr-subbar')) {
12154
12161
  customElements.define('kr-subbar', KRSubbar);
12155
12162
  }
12156
12163
 
12164
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12165
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12166
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12167
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12168
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12169
+ };
12157
12170
  class KRRouter {
12158
12171
  static configure(config) {
12159
12172
  KRRouter.base = config.base;
@@ -12170,9 +12183,171 @@ class KRRouter {
12170
12183
  if (!anchor.pathname.startsWith(KRRouter.base)) {
12171
12184
  return;
12172
12185
  }
12186
+ if (anchor.target === '_blank') {
12187
+ return;
12188
+ }
12173
12189
  e.preventDefault();
12174
12190
  KRRouter.navigate(anchor.pathname);
12175
12191
  });
12192
+ // Process each navigation. popstate covers every source — a link click, a KRRouter.navigate()
12193
+ // call (which dispatches one itself), and the browser's back/forward buttons.
12194
+ window.addEventListener('popstate', () => {
12195
+ KRRouter.handleNavigation();
12196
+ });
12197
+ // The initial page load fires no popstate, so process the URL the app booted on. Deferred to a
12198
+ // microtask rather than run synchronously: configure() is called while app.js is being evaluated
12199
+ // as an import, which happens BEFORE the importing module's body. Navigating synchronously here
12200
+ // would fire the first resolve() fetches before main.ts had run KRHttp.configure(), so they'd go
12201
+ // to the dev server's own origin (localhost:4201/api/...) instead of devUrl and 404.
12202
+ Promise.resolve().then(() => {
12203
+ KRRouter.handleNavigation();
12204
+ });
12205
+ }
12206
+ static handleNavigation() {
12207
+ const matched = KRRouter.matchRoutes();
12208
+ // Nothing matched (a stale or mistyped link). An unrecognized URL
12209
+ // shouldn't destroy the state of the screen the user is on.
12210
+ if (!matched.routes.length) {
12211
+ return;
12212
+ }
12213
+ // A route with children but no child segment in the URL resolves to its `default` child, so the
12214
+ // resolved url is longer than what's in the address bar (/pages/42 resolves pages/42/details).
12215
+ // Rewrite it so the URL reflects what's actually on screen.
12216
+ let resolvedPath = KRRouter.base;
12217
+ if (matched.url) {
12218
+ resolvedPath = KRRouter.base + '/' + matched.url;
12219
+ }
12220
+ if (window.location.pathname !== resolvedPath) {
12221
+ window.history.replaceState({}, '', resolvedPath);
12222
+ }
12223
+ // Drop cached entries for routes DEEPER than the URL we're navigating to — if the user navigates
12224
+ // up a level we assume they're moving on to a different task. This is what keeps the cache from
12225
+ // growing without bound.
12226
+ for (const key of KRRouter.routeCache.keys()) {
12227
+ if (matched.url.split('/').filter(s => s).length < key.split('/').filter(s => s).length) {
12228
+ KRRouter.routeCache.delete(key);
12229
+ }
12230
+ }
12231
+ const token = ++KRRouter.navToken;
12232
+ // Resolve every route's matching component (screen).
12233
+ Promise.all(matched.routes.map(match => {
12234
+ // Reuse the cached element for this url if we have one
12235
+ const cached = KRRouter.routeCache.get(match.url);
12236
+ if (cached) {
12237
+ return Promise.resolve(cached.el);
12238
+ }
12239
+ // Create and cache the screen element
12240
+ const el = document.createElement(match.route.component);
12241
+ KRRouter.routeCache.set(match.url, {
12242
+ el,
12243
+ scrolls: [],
12244
+ });
12245
+ // If the component class defines a static resolve(params), await it and hand the result to the
12246
+ // element as `routeSnapshot` = { params, data } before it mounts, so it paints with data instead
12247
+ // of flashing empty
12248
+ const constructor = customElements.get(match.route.component);
12249
+ if (constructor && typeof constructor.resolve === 'function') {
12250
+ return Promise.resolve(constructor.resolve(KRRouter.getParams())).then(data => {
12251
+ el.routeSnapshot = {
12252
+ params: match.params,
12253
+ data,
12254
+ };
12255
+ return el;
12256
+ });
12257
+ }
12258
+ return Promise.resolve(el);
12259
+ }))
12260
+ .then(elements => {
12261
+ // A newer navigation started while we were resolving — its elements are the current truth.
12262
+ if (token !== KRRouter.navToken) {
12263
+ return;
12264
+ }
12265
+ // ---- PASS 1: deactivate, deepest level first ----
12266
+ // Remove screen elements that no longer apply to the new current routes for the current url
12267
+ const levels = Array.from(KRRouter.outletContexts.keys()).sort((a, b) => b - a);
12268
+ for (const level of levels) {
12269
+ const context = KRRouter.outletContexts.get(level);
12270
+ if (!context?.outlet?.el || context.outlet.el === elements[level]) {
12271
+ continue;
12272
+ }
12273
+ // Capture the outgoing element's scroll positions into its cache entry, then unmount it.
12274
+ const outgoing = KRRouter.routeCache.get(context.url);
12275
+ if (outgoing) {
12276
+ outgoing.scrolls = KRRouter.getScrollableElements(context.outlet.el).map(scrollable => scrollable.scrollTop);
12277
+ }
12278
+ context.outlet.deactivate();
12279
+ context.element = null;
12280
+ context.url = '';
12281
+ }
12282
+ // Put each screen element into the appropriate router outlet
12283
+ elements.forEach((el, level) => {
12284
+ // First navigation to reach this depth has no context yet.
12285
+ let context = KRRouter.outletContexts.get(level);
12286
+ if (!context) {
12287
+ context = {
12288
+ outlet: null,
12289
+ element: null,
12290
+ url: '',
12291
+ };
12292
+ KRRouter.outletContexts.set(level, context);
12293
+ }
12294
+ context.element = el;
12295
+ context.url = matched.routes[level].url;
12296
+ if (context.outlet && context.outlet.el !== el) {
12297
+ context.outlet.activate(el);
12298
+ // Put back the scroll positions captured when the user last left this element.
12299
+ const cached = KRRouter.routeCache.get(context.url);
12300
+ if (cached?.scrolls.length) {
12301
+ setTimeout(() => {
12302
+ const scrollables = KRRouter.getScrollableElements(cached.el);
12303
+ cached.scrolls.forEach((top, index) => {
12304
+ if (scrollables[index]) {
12305
+ scrollables[index].scrollTop = top;
12306
+ }
12307
+ });
12308
+ }, 0);
12309
+ }
12310
+ }
12311
+ });
12312
+ });
12313
+ }
12314
+ // An outlet announces itself here when it connects and takes whatever element its context holds.
12315
+ static registerOutlet(level, outlet) {
12316
+ // No context yet when an outlet connects before a navigation
12317
+ let context = KRRouter.outletContexts.get(level);
12318
+ if (!context) {
12319
+ context = {
12320
+ outlet: null,
12321
+ element: null,
12322
+ url: '',
12323
+ };
12324
+ KRRouter.outletContexts.set(level, context);
12325
+ }
12326
+ context.outlet = outlet;
12327
+ // An outlet re-attached with its element already mounted (a cached parent coming back) must not
12328
+ // restore scroll again — that would overwrite the live position with a stale one.
12329
+ if (context.element && outlet.el !== context.element) {
12330
+ outlet.activate(context.element);
12331
+ // Same scroll restore as the activation pass in handleNavigation — this is the path taken when
12332
+ // the outlet didn't exist yet at navigation time, which for us is the common case.
12333
+ const cached = KRRouter.routeCache.get(context.url);
12334
+ if (cached?.scrolls.length) {
12335
+ setTimeout(() => {
12336
+ const scrollables = KRRouter.getScrollableElements(cached.el);
12337
+ cached.scrolls.forEach((top, index) => {
12338
+ if (scrollables[index]) {
12339
+ scrollables[index].scrollTop = top;
12340
+ }
12341
+ });
12342
+ }, 0);
12343
+ }
12344
+ }
12345
+ }
12346
+ static unregisterOutlet(level, outlet) {
12347
+ const context = KRRouter.outletContexts.get(level);
12348
+ if (context && context.outlet === outlet) {
12349
+ context.outlet = null;
12350
+ }
12176
12351
  }
12177
12352
  static navigate(path) {
12178
12353
  let fullPath = path;
@@ -12183,53 +12358,92 @@ class KRRouter {
12183
12358
  window.dispatchEvent(new PopStateEvent('popstate'));
12184
12359
  }
12185
12360
  static getParams() {
12186
- const matched = KRRouter.matchAll();
12361
+ const matched = KRRouter.matchRoutes();
12187
12362
  const params = {};
12188
- for (const match of matched) {
12363
+ for (const match of matched.routes) {
12189
12364
  for (const key in match.params) {
12190
12365
  params[key] = decodeURIComponent(match.params[key]);
12191
12366
  }
12192
12367
  }
12193
12368
  return params;
12194
12369
  }
12195
- static outlet(level) {
12196
- const matched = KRRouter.matchAll();
12197
- if (level >= matched.length) {
12198
- return null;
12199
- }
12200
- const match = matched[level];
12201
- const tag = match.route.component;
12202
- const cached = KRRouter.elementCache.get(level + ':' + tag);
12203
- if (cached) {
12204
- return cached;
12205
- }
12206
- // Clear old cache entry for this level
12207
- for (const key of KRRouter.elementCache.keys()) {
12208
- if (key.startsWith(level + ':')) {
12209
- KRRouter.elementCache.delete(key);
12210
- }
12211
- }
12212
- const el = document.createElement(tag);
12213
- KRRouter.elementCache.set(level + ':' + tag, el);
12214
- return el;
12215
- }
12216
- static matchAll() {
12217
- const path = window.location.pathname;
12218
- let relative = path;
12219
- if (path.startsWith(KRRouter.base)) {
12220
- relative = path.slice(KRRouter.base.length);
12370
+ // Every scrollable element in and under `root`, in document order — piercing shadow roots.
12371
+ static getScrollableElements(root) {
12372
+ const scrollables = [];
12373
+ // Depth-first pre-order, each node's shadow root before its light children. An explicit stack
12374
+ // rather than recursion; pushing children in reverse makes them pop in document order, which keeps
12375
+ // the sequence identical to the recursive walk this replaces. The ORDER is load-bearing: capture
12376
+ // and restore index into the returned list positionally, so both passes must enumerate the same
12377
+ // nodes in the same sequence.
12378
+ const stack = [root];
12379
+ while (stack.length) {
12380
+ const node = stack.pop();
12381
+ if (!node) {
12382
+ break;
12383
+ }
12384
+ const style = getComputedStyle(node);
12385
+ if (style.overflow === 'auto'
12386
+ || style.overflow === 'scroll'
12387
+ || style.overflowY === 'auto'
12388
+ || style.overflowY === 'scroll') {
12389
+ scrollables.push(node);
12390
+ }
12391
+ // Shadow children first so they occupy the same positions the recursion gave them.
12392
+ const children = [];
12393
+ if (node.shadowRoot) {
12394
+ children.push(...Array.from(node.shadowRoot.children));
12395
+ }
12396
+ children.push(...Array.from(node.children));
12397
+ for (let index = children.length - 1; index >= 0; index--) {
12398
+ stack.push(children[index]);
12399
+ }
12400
+ }
12401
+ return scrollables;
12402
+ }
12403
+ // Match the CURRENT browser URL against the route defs.
12404
+ //
12405
+ // Example, with base '/operations/app/ai-cms' and the routes configured in app.ts:
12406
+ //
12407
+ // URL /operations/app/ai-cms/pages/42/seo
12408
+ // segments ['pages', '42', 'seo'] (base stripped, split on '/')
12409
+ // returns {
12410
+ // routes: [
12411
+ // { route: { path: 'pages/:contentPageID', component: 'kt-page' }, params: { contentPageID: '42' }, url: 'pages/42' },
12412
+ // { route: { path: 'seo', component: 'kt-page-seo' }, params: {}, url: 'pages/42/seo' },
12413
+ // ],
12414
+ // url: 'pages/42/seo',
12415
+ // }
12416
+ //
12417
+ // Three other shapes worth knowing:
12418
+ //
12419
+ // .../pages/42 a route with children but no child segment resolves its `default` child, so this
12420
+ // returns BOTH levels and a url of 'pages/42/details' — longer than the address
12421
+ // bar. handleNavigation() is what syncs the URL to it; this function is pure and
12422
+ // never touches history.
12423
+ // .../ (no segments) matches the path:'' route, returning a single entry for kt-home.
12424
+ // .../nope no route matches, returning no routes and an empty url.
12425
+ static matchRoutes(routes = KRRouter.routes, segments) {
12426
+ // An empty array is a legitimate "nothing left to match" from a recursive call and stays as-is —
12427
+ // only a genuinely absent argument (the entry call) reaches for the browser URL.
12428
+ if (!segments) {
12429
+ let relative = window.location.pathname;
12430
+ if (relative.startsWith(KRRouter.base)) {
12431
+ relative = relative.slice(KRRouter.base.length);
12432
+ }
12433
+ segments = relative.split('/').filter(s => s);
12221
12434
  }
12222
- const segments = relative.split('/').filter(s => s);
12223
- return KRRouter.matchRoutes(KRRouter.routes, segments);
12224
- }
12225
- static matchRoutes(routes, segments) {
12226
12435
  for (const route of routes) {
12227
12436
  const routeSegments = route.path.split('/').filter(s => s);
12437
+ // index route {path: '', component: kt-home}
12228
12438
  if (routeSegments.length === 0 && segments.length === 0) {
12229
- return [{
12230
- route,
12231
- params: {}
12232
- }];
12439
+ return {
12440
+ routes: [{
12441
+ route,
12442
+ params: {},
12443
+ url: ''
12444
+ }],
12445
+ url: ''
12446
+ };
12233
12447
  }
12234
12448
  if (routeSegments.length === 0) {
12235
12449
  continue;
@@ -12252,56 +12466,86 @@ class KRRouter {
12252
12466
  continue;
12253
12467
  }
12254
12468
  const remaining = segments.slice(routeSegments.length);
12255
- // If there are remaining segments but no children, this route doesn't fully match — try next route
12256
- if (remaining.length > 0 && !route.children) {
12257
- continue;
12258
- }
12259
- const result = [{
12469
+ // This level's own resolved URL: the segments it consumed, with :params swapped for their real
12470
+ // values. Children come back from the recursion holding only THEIR portion, so we prefix each
12471
+ // with this as the recursion unwinds — every entry ends up with the full path from the root.
12472
+ const url = segments.slice(0, routeSegments.length).join('/');
12473
+ const matchedRoutes = [{
12260
12474
  route,
12261
- params
12475
+ params,
12476
+ url
12262
12477
  }];
12263
- if (route.children && remaining.length > 0) {
12264
- const childMatches = KRRouter.matchRoutes(route.children, remaining);
12265
- if (childMatches.length > 0) {
12266
- result.push(...childMatches);
12267
- return result;
12478
+ if (remaining.length > 0) {
12479
+ // Segments left over and nowhere to put them — this route doesn't fully match the URL, so try
12480
+ // the next one. Without this, a route would be accepted having consumed only part of the URL:
12481
+ // /pages/42/seo would match {path: 'pages'} and render the Pages list. It also narrows
12482
+ // route.children for the call below, which matters because matchRoutes' first parameter has a
12483
+ // DEFAULT — passing undefined would silently re-match from the top-level routes rather than
12484
+ // failing.
12485
+ if (!route.children) {
12486
+ continue;
12487
+ }
12488
+ const childMatch = KRRouter.matchRoutes(route.children, remaining);
12489
+ if (childMatch.routes.length > 0) {
12490
+ for (const child of childMatch.routes) {
12491
+ child.url = url + '/' + child.url;
12492
+ }
12493
+ matchedRoutes.push(...childMatch.routes);
12494
+ return {
12495
+ routes: matchedRoutes,
12496
+ url: url + '/' + childMatch.url
12497
+ };
12268
12498
  }
12269
12499
  }
12270
- // No remaining segments + default child — redirect
12500
+ // No remaining segments + a default child — resolve as though that child's segment were in the
12501
+ // URL. We do NOT rewrite the address bar here; matching stays pure. handleNavigation() syncs the
12502
+ // URL to the resolved `url` this returns.
12271
12503
  if (route.children && remaining.length === 0 && route.default) {
12272
- window.history.replaceState({}, '', window.location.pathname + '/' + route.default);
12273
- const childMatches = KRRouter.matchRoutes(route.children, [route.default]);
12274
- if (childMatches.length > 0) {
12275
- result.push(...childMatches);
12276
- return result;
12504
+ const childMatch = KRRouter.matchRoutes(route.children, [route.default]);
12505
+ if (childMatch.routes.length > 0) {
12506
+ for (const child of childMatch.routes) {
12507
+ child.url = url + '/' + child.url;
12508
+ }
12509
+ matchedRoutes.push(...childMatch.routes);
12510
+ return {
12511
+ routes: matchedRoutes,
12512
+ url: url + '/' + childMatch.url
12513
+ };
12277
12514
  }
12278
12515
  }
12279
- return result;
12516
+ return {
12517
+ routes: matchedRoutes,
12518
+ url
12519
+ };
12280
12520
  }
12281
- return [];
12521
+ return {
12522
+ routes: [],
12523
+ url: ''
12524
+ };
12282
12525
  }
12283
12526
  }
12284
12527
  KRRouter.base = '';
12285
12528
  KRRouter.routes = [];
12286
- KRRouter.elementCache = new Map();
12287
- class KRRouterOutlet extends i$3 {
12529
+ KRRouter.routeCache = new Map();
12530
+ // One context per nesting level — Angular's ChildrenOutletContexts, keyed by level rather than by
12531
+ // outlet name since we only have one (primary) outlet per level. Outlets are DRIVEN through these;
12532
+ // they never ask the router for anything.
12533
+ KRRouter.outletContexts = new Map();
12534
+ // One token per navigation. A slower navigation that has been superseded must not activate its
12535
+ // (stale) elements, so it checks the token before committing anything.
12536
+ KRRouter.navToken = 0;
12537
+ let KRRouterOutlet = class KRRouterOutlet extends i$3 {
12288
12538
  constructor() {
12289
12539
  super(...arguments);
12290
12540
  this.level = -1;
12291
- this.handlePopState = () => {
12292
- this.requestUpdate();
12293
- };
12541
+ // The element the router has told this outlet to show.
12542
+ this.el = null;
12294
12543
  }
12295
12544
  connectedCallback() {
12296
12545
  super.connectedCallback();
12297
- this.level = this.detectLevel();
12298
- window.addEventListener('popstate', this.handlePopState);
12299
- }
12300
- disconnectedCallback() {
12301
- super.disconnectedCallback();
12302
- window.removeEventListener('popstate', this.handlePopState);
12303
- }
12304
- detectLevel() {
12546
+ // This outlet's nesting depth = how many kr-router-outlet ancestors it has, which is only
12547
+ // knowable once attached. Walk up through shadow boundaries too (via ShadowRoot.host), since a
12548
+ // nested outlet lives inside its parent element's shadow root and parentNode stops at the root.
12305
12549
  let level = 0;
12306
12550
  let node = this;
12307
12551
  while (node) {
@@ -12319,28 +12563,38 @@ class KRRouterOutlet extends i$3 {
12319
12563
  node = null;
12320
12564
  }
12321
12565
  }
12322
- return level;
12566
+ this.level = level;
12567
+ KRRouter.registerOutlet(this.level, this);
12568
+ }
12569
+ disconnectedCallback() {
12570
+ super.disconnectedCallback();
12571
+ KRRouter.unregisterOutlet(this.level, this);
12572
+ }
12573
+ activate(el) {
12574
+ this.el = el;
12575
+ }
12576
+ deactivate() {
12577
+ this.el = null;
12323
12578
  }
12324
12579
  render() {
12325
- const el = KRRouter.outlet(this.level);
12326
- if (!el) {
12580
+ if (!this.el) {
12327
12581
  return b ``;
12328
12582
  }
12329
- return b `${el}`;
12583
+ return b `${this.el}`;
12330
12584
  }
12331
- }
12585
+ };
12332
12586
  KRRouterOutlet.styles = i$6 `
12333
12587
  :host {
12334
12588
  display: block;
12335
12589
  height: 100%;
12336
12590
  }
12337
12591
  `;
12338
- // Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
12339
- // the page (e.g. the Operations shell loads krubble globally while an embedded app bundled its
12340
- // own copy) doesn't throw. First definition wins.
12341
- if (!customElements.get('kr-router-outlet')) {
12342
- customElements.define('kr-router-outlet', KRRouterOutlet);
12343
- }
12592
+ __decorate([
12593
+ r()
12594
+ ], KRRouterOutlet.prototype, "el", void 0);
12595
+ KRRouterOutlet = __decorate([
12596
+ t$2('kr-router-outlet')
12597
+ ], KRRouterOutlet);
12344
12598
 
12345
12599
  export { KRChatbot, KRRouter, KRRouterOutlet, KRScaffold, KRScreenDetail, KRScreenNav, KRSubbar };
12346
12600
  //# sourceMappingURL=krubble-app.bundled.js.map