@kodaris/krubble-app-components 1.0.70 → 1.0.72

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.
@@ -1 +1 @@
1
- {"version":3,"file":"krubble-app.bundled.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-element/lit-element.js","../../../node_modules/@lit/reactive-element/decorators/custom-element.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/@lit/reactive-element/decorators/base.js","../../../node_modules/@lit/reactive-element/decorators/query.js","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directives/unsafe-html.js","../../../node_modules/lit-html/directives/class-map.js","scaffold/nav-item-edit.js","scaffold.js","screen-nav.js","screen-detail.js","subbar.js","router.js","../../../node_modules/lit-html/directive-helpers.js","../../../node_modules/lit-html/directives/repeat.js","../../../node_modules/marked/lib/marked.esm.js","chatbot.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)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&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===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(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=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),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;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?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-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)){const i=v[a++],s=r.getAttribute(t).split(o),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)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(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?.(!1),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(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,!0);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??!0}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(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(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()),this.O(c()),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?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(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=!1;if(void 0===h)t=M(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(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(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(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.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(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{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=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{directive as r,Directive as s,PartType as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends s{constructor(i){if(super(i),this.it=t,i.type!==n.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=r(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.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 t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport '@kodaris/krubble-components';\nlet KRNavItemEdit = class KRNavItemEdit extends LitElement {\n constructor() {\n super(...arguments);\n this.label = '';\n this.icon = '';\n this.url = '';\n this.active = true;\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.data) {\n this.label = this.data.label || '';\n this.icon = this.data.icon || '';\n this.url = this.data.url || '';\n this.active = this.data.active !== false;\n }\n }\n handleLabelInput(e) {\n const textField = e.target;\n this.label = textField.value;\n }\n handleIconInput(e) {\n const textField = e.target;\n this.icon = textField.value;\n }\n handleUrlInput(e) {\n const textField = e.target;\n this.url = textField.value;\n }\n handleActiveChange(e) {\n this.active = e.target.checked;\n }\n handleCancel() {\n this.dialogRef.close(undefined);\n }\n handleSave() {\n this.dialogRef.close({\n label: this.label,\n icon: this.icon || undefined,\n url: this.url || undefined,\n active: this.active,\n });\n }\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n this.handleSave();\n }\n }\n render() {\n return html `\n <h2>Edit Navigation Item</h2>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Label\"\n name=\"label\"\n .value=${this.label}\n @input=${this.handleLabelInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"Enter label\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Icon (emoji or SVG)\"\n name=\"icon\"\n .value=${this.icon}\n @input=${this.handleIconInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. 📊 or <svg>...</svg>\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"URL\"\n name=\"url\"\n .value=${this.url}\n @input=${this.handleUrlInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. /ci/my-page or https://...\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <div class=\"checkbox-group\">\n <input\n type=\"checkbox\"\n id=\"active\"\n .checked=${this.active}\n @change=${this.handleActiveChange}\n />\n <label class=\"checkbox-label\" for=\"active\">Visible in navigation</label>\n </div>\n </div>\n\n <div class=\"actions\">\n <button class=\"btn-cancel\" @click=${this.handleCancel}>Cancel</button>\n <button class=\"btn-save\" @click=${this.handleSave}>Save</button>\n </div>\n `;\n }\n};\nKRNavItemEdit.styles = css `\n :host {\n display: block;\n width: 360px;\n padding: 24px;\n color: rgba(255, 255, 255, 0.9);\n\n /* Dark theme for kr-text-field */\n --kr-text-field-label-color: rgba(255, 255, 255, 0.7);\n --kr-text-field-border-color: rgba(255, 255, 255, 0.1);\n --kr-text-field-bg: rgba(255, 255, 255, 0.05);\n --kr-text-field-color: #ffffff;\n --kr-text-field-focus-border-color: #beea4e;\n --kr-text-field-focus-ring-color: rgba(190, 234, 78, 0.1);\n --kr-text-field-placeholder-color: rgba(255, 255, 255, 0.3);\n --kr-text-field-helper-color: rgba(255, 255, 255, 0.5);\n }\n\n h2 {\n margin: 0 0 24px 0;\n font-size: 18px;\n font-weight: 600;\n color: #ffffff;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .checkbox-group {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n accent-color: #beea4e;\n cursor: pointer;\n }\n\n .checkbox-label {\n font-size: 14px;\n color: rgba(255, 255, 255, 0.9);\n cursor: pointer;\n }\n\n .actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n margin-top: 28px;\n }\n\n button {\n padding: 10px 20px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .btn-cancel {\n background: rgba(255, 255, 255, 0.05);\n border: 1px solid rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n }\n\n .btn-cancel:hover {\n background: rgba(255, 255, 255, 0.1);\n color: #ffffff;\n }\n\n .btn-save {\n background: #beea4e;\n border: none;\n color: #10172a;\n }\n\n .btn-save:hover {\n background: #d4f472;\n }\n `;\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"label\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"icon\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"url\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"active\", void 0);\nKRNavItemEdit = __decorate([\n customElement('kr-nav-item-edit')\n], KRNavItemEdit);\nexport { KRNavItemEdit };\n//# sourceMappingURL=nav-item-edit.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { KRContextMenu, KRDialog } from '@kodaris/krubble-components';\nimport { KRHttp } from '@kodaris/krubble-http';\nimport { KRNavItemEdit } from './scaffold/nav-item-edit.js';\n/**\n * Application shell component with nav drawer and main content area.\n *\n * ## Features\n * - Collapsible navigation drawer with hierarchical items (groups and items)\n * - User profile display in footer with customization menu\n * - Edit mode for customizing navigation (rename, reorder, hide items, add custom items)\n * - Drag and drop reordering in edit mode\n * - Persistence of customizations via preference API (global/organization level)\n *\n * ## Nav Customization\n * Users can customize the navigation by clicking their profile and selecting\n * \"Customize Navigation\". This enters edit mode where users can:\n * - Right-click items to edit label, icon, or visibility\n * - Right-click to add new items above/below existing items\n * - Drag and drop to reorder items or move them between groups\n *\n * Customizations are stored globally and apply to all users.\n *\n * ## Preference Storage\n * Preferences are stored as JSON with the following structure:\n * ```json\n * {\n * \"nav\": {\n * \"itemId\": { \"label\": \"Custom Label\", \"icon\": \"...\", \"active\": true, \"order\": 0 },\n * \"custom-123\": { \"type\": \"item\", \"label\": \"New Item\", \"url\": \"/path\", ... }\n * }\n * }\n * ```\n *\n * The `nav` object is a delta - it only contains overrides for existing items\n * or definitions for custom items (prefixed with \"custom-\").\n *\n * ## API Endpoints Used\n * - GET `/api/system/preference/json/scaffold?global=true` - load preferences\n * - POST `/api/system/preference/json/scaffold?global=true` - create new preference\n * - PUT `/api/system/preference/json/scaffold/{uuid}?global=true` - update existing preference\n *\n * @slot - The main content\n *\n * @property {string} logo - URL for the logo image\n * @property {string} label - Title text to display instead of logo\n * @property {'light'|'dark'} scheme - Color scheme: 'light' (default) or 'dark'\n * @property {KRNavItem[]} nav - Navigation items as JSON array\n * @property {KRUser} user - User profile data\n * @property {boolean} navEnabled - Whether to show the nav drawer (menu toggle remains visible when false)\n * @property {'employee'|'customer'} user-type - User type. Customers skip all `/api/system` calls since that endpoint is employee-only. Defaults to 'employee'.\n *\n *\n * TODO\n * - Don't hardcode breadcrumbs\n * - Look at renderNormalFooter and renderEditFooter and see if that is what we want to do\n */\nlet KRScaffold = class KRScaffold extends LitElement {\n constructor() {\n super();\n /**\n * Default icon for nav items without an icon (shown at top level)\n */\n this.defaultNavItemIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><circle cx=\"12\" cy=\"12\" r=\"10\"/></svg>';\n this.originalFetch = null;\n this.originalXhrOpen = null;\n this.navItemDragPreview = null;\n this.navItemDragStartY = 0;\n this.isNavItemDragging = false;\n this.navItemDragExpandTimeout = null;\n this.navInitialized = false;\n this.logo = '';\n this.label = '';\n /**\n * URL to navigate to when clicking the logo/title. Defaults to '/'.\n */\n this.homeUrl = '/';\n this.scheme = 'light';\n this.nav = [];\n this.navIconsDisplayed = false;\n this.navExpanded = false;\n this.user = null;\n /**\n * Whether to show the subbar with menu toggle\n */\n this.subbar = false;\n /**\n * Whether to hide the navigation drawer.\n * Menu toggle button remains visible and emits menu-click events.\n */\n this.navEnabled = true;\n /**\n * User type. Set to 'customer' to skip all /api/system calls — customers don't have access to that endpoint.\n */\n this.userType = 'employee';\n /**\n * Breadcrumbs to display in the subbar\n */\n this.breadcrumbs = [];\n this.navItemsExpanded = new Set();\n this.navQuery = '';\n this.activeNavItemId = null;\n this.isNavScrolled = false;\n this.isNavOpened = localStorage.getItem('kr-scaffold-nav-opened') !== 'false';\n this.isEditing = false;\n this.isUserMenuOpen = false;\n this.pref = { nav: {} };\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.navItemDropPosition = 'above';\n this.pendingRequests = 0;\n this.boundHandleMouseMove = this.handleMouseMove.bind(this);\n this.boundHandleMouseUp = this.handleMouseUp.bind(this);\n }\n connectedCallback() {\n super.connectedCallback();\n this.installFetchInterceptor();\n }\n // Attributes are not reflected into properties until after the first update,\n // so loadPref() must run here (not connectedCallback) for user-type to be set.\n firstUpdated() {\n this.loadPref();\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('nav') && this.nav.length > 0) {\n this.updateActiveNavItem();\n if (this.navExpanded && !this.navInitialized) {\n this.navInitialized = true;\n this.getComputedNav()\n .filter(item => item.type === 'group')\n .forEach(group => this.navItemsExpanded.add(group.id));\n }\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.uninstallFetchInterceptor();\n }\n /**\n * Installs global interceptors for fetch and XMLHttpRequest to track pending HTTP requests.\n * Updates `pendingRequests` state when requests start/complete.\n */\n installFetchInterceptor() {\n if (this.originalFetch) {\n return;\n }\n const scaffold = this;\n // Intercept fetch\n this.originalFetch = window.fetch.bind(window);\n const originalFetch = this.originalFetch; // Capture in local scope to avoid null reference after uninstall\n window.fetch = function (...args) {\n scaffold.pendingRequests++;\n return originalFetch(...args).finally(() => {\n scaffold.pendingRequests--;\n });\n };\n // Intercept XMLHttpRequest\n this.originalXhrOpen = XMLHttpRequest.prototype.open;\n const originalXhrOpen = this.originalXhrOpen; // Capture in local scope to avoid null reference after uninstall\n XMLHttpRequest.prototype.open = function (method, url, async = true, username, password) {\n scaffold.pendingRequests++;\n this.addEventListener('loadend', () => {\n scaffold.pendingRequests--;\n }, { once: true });\n return originalXhrOpen.call(this, method, url, async, username, password);\n };\n }\n /**\n * Restores the original fetch and XMLHttpRequest functions.\n */\n uninstallFetchInterceptor() {\n if (this.originalFetch) {\n window.fetch = this.originalFetch;\n this.originalFetch = null;\n }\n if (this.originalXhrOpen) {\n XMLHttpRequest.prototype.open = this.originalXhrOpen;\n this.originalXhrOpen = null;\n }\n }\n /**\n * Resolves a navigation URL by prepending the base href.\n *\n * This method is used for:\n * 1. Setting href attributes on anchor elements (so Cmd/Ctrl+click opens correct URL in new tab)\n * 2. Comparing URLs with window.location.pathname in updateActiveNavItem()\n *\n * The original item.url is kept intact (without base href) and passed to Angular\n * via the nav-item-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - item.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(item) = \"/operations/settings\" (used for href and URL comparison)\n */\n resolveUrl(item) {\n if (!item.url) {\n return '#';\n }\n // External URLs - return as-is\n if (item.external) {\n return item.url;\n }\n // Remove leading slash from url if present, then combine with base\n let path = item.url;\n if (item.url.startsWith('/')) {\n path = item.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n // =========================================================================\n // Navigation Data\n // =========================================================================\n /**\n * Returns the computed navigation as a flat array with preferences applied.\n *\n * Transforms the hierarchical `nav` property into a flat list where each item\n * has a `parentId` reference instead of nested `children`. Merges user\n * preference overrides (label, icon, url, active, order, parentId) and\n * includes any custom items added via the edit dialog.\n *\n * @returns Flat array of nav items with preferences applied\n */\n getComputedNav() {\n const result = [];\n this.nav.forEach((item, index) => {\n const override = this.pref.nav[item.id];\n result.push({\n ...item,\n ...override,\n order: override?.order ?? item.order ?? index,\n parentId: override?.parentId ?? null,\n });\n // Add children if group\n if (item.type === 'group' && item.children) {\n item.children.forEach((child, childIndex) => {\n const childOverride = this.pref.nav[child.id];\n let parentId = item.id;\n if (childOverride?.parentId !== undefined) {\n parentId = childOverride.parentId;\n }\n result.push({\n ...child,\n ...childOverride,\n order: childOverride?.order ?? child.order ?? childIndex,\n parentId,\n });\n });\n }\n });\n // Add custom items from pref\n Object.entries(this.pref.nav).forEach(([id, item]) => {\n if (id.startsWith('custom') && item.type && item.label) {\n result.push({\n id,\n type: item.type,\n label: item.label,\n icon: item.icon,\n url: item.url,\n active: item.active,\n order: item.order ?? result.length,\n parentId: item.parentId ?? null,\n });\n }\n });\n return result;\n }\n /**\n * Returns nav items for a given parent, filtered and sorted for rendering.\n *\n * Filters the computed nav to items matching the parentId, sorts by order,\n * hides inactive items in normal mode, and applies the search query filter.\n * Groups are shown if their label matches or if they have matching children.\n *\n * @param parentId - The parent ID to filter by (null for top-level items)\n * @returns Filtered and sorted nav items ready for rendering\n */\n getNavItemChildren(parentId) {\n let items = this.getComputedNav()\n .filter(item => item.parentId === parentId)\n .sort((a, b) => a.order - b.order);\n // In normal mode, filter out hidden items\n if (!this.isEditing) {\n items = items.filter(item => item.active !== false);\n }\n // Apply search filter\n if (this.navQuery) {\n const query = this.navQuery.toLowerCase();\n const allItems = this.getComputedNav();\n // If we're getting children of a group, check if parent group name matches query\n // If so, show all children without filtering\n if (parentId !== null) {\n const parentGroup = allItems.find(item => item.id === parentId);\n if (parentGroup?.label.toLowerCase().includes(query)) {\n return items; // Show all children when group name matches\n }\n }\n items = items.filter(item => {\n if (item.type === 'group') {\n // Show group if its label matches OR if it has matching children\n return item.label.toLowerCase().includes(query) || allItems.some(child => child.parentId === item.id &&\n child.active !== false &&\n child.label.toLowerCase().includes(query));\n }\n // Show item if its label matches\n return item.label.toLowerCase().includes(query);\n });\n }\n return items;\n }\n // =========================================================================\n // Navigation Search\n // =========================================================================\n /**\n * Handles search input changes for filtering nav items.\n *\n * When a search query is entered, automatically expands any groups that\n * contain matching children so users can see the results. When the search\n * is cleared, collapses all groups back to their default state.\n *\n * @param e - The input event from the search field\n */\n handleNavQueryChange(e) {\n this.navQuery = e.target.value;\n // Expand all groups when searching so matching children are visible\n // (groups without matching children won't be rendered anyway)\n if (this.navQuery) {\n this.getComputedNav().forEach(item => {\n if (item.type === 'group') {\n this.navItemsExpanded.add(item.id);\n }\n });\n }\n else {\n // Collapse all when search is cleared\n this.navItemsExpanded.clear();\n }\n }\n /**\n * Clears the search query.\n */\n handleNavQueryClear() {\n this.navQuery = '';\n this.navItemsExpanded.clear();\n }\n // =========================================================================\n // Navigation Interaction\n // =========================================================================\n handleMenuClick() {\n this.isNavOpened = !this.isNavOpened;\n localStorage.setItem('kr-scaffold-nav-opened', String(this.isNavOpened));\n }\n /**\n * Handles click on the nav header (logo/title) to navigate home.\n * Dispatches a nav-item-click event so Angular can intercept and route.\n */\n handleNavHeaderClick() {\n // Clear active state since we're going home\n this.activeNavItemId = null;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item: { url: this.homeUrl } },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If no listener prevented default, navigate natively\n if (!navEvent.defaultPrevented) {\n window.location.href = this.homeUrl;\n }\n }\n /**\n * Handles scroll on nav content to show/hide header shadow.\n */\n handleNavScroll(e) {\n this.isNavScrolled = e.target.scrollTop > 0;\n }\n /**\n * Toggles the expanded/collapsed state of a nav group with animation.\n * Uses the Web Animations API to animate height transitions.\n * When collapsing, the `nav-group--expanded` class is removed after animation completes.\n * When expanding, the class is added immediately before animation starts.\n *\n * @param itemId - The unique identifier of the nav group to toggle\n */\n toggleNavItem(itemId) {\n const navItem = this.shadowRoot?.querySelector(`.nav-item[data-id=\"${itemId}\"]`);\n const groupEl = navItem?.nextElementSibling;\n if (!groupEl) {\n return;\n }\n if (this.navItemsExpanded.has(itemId)) {\n this.navItemsExpanded.delete(itemId);\n groupEl.animate([\n { height: `${groupEl.scrollHeight}px` },\n { height: '0px' }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n }).onfinish = () => {\n groupEl.classList.remove('nav-group--expanded');\n };\n }\n else {\n this.navItemsExpanded.add(itemId);\n groupEl.classList.add('nav-group--expanded');\n groupEl.animate([\n { height: '0px' },\n { height: `${groupEl.scrollHeight}px` }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n });\n }\n this.requestUpdate();\n }\n /**\n * Handles click events on navigation items.\n *\n * For groups, toggles the expanded/collapsed state.\n * For items, dispatches a cancelable `nav-item-click` custom event.\n *\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScaffoldDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router. Import `KrubbleModule` in your Angular app to enable\n * SPA navigation without page reloads.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n if (item.type === 'group') {\n this.toggleNavItem(item.id);\n }\n else {\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n // Set active item immediately on click for instant visual feedback\n this.activeNavItemId = item.id;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n // (e.g., SPA router handles navigation)\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n }\n /**\n * Updates the active nav item highlight based on the current URL.\n *\n * Compares the first path segment of `window.location.pathname` with each\n * nav item's URL to find a match. When found, highlights that item and\n * expands its parent group if nested.\n *\n * Called automatically by `KRScaffoldDirective` on Angular route changes.\n */\n updateActiveNavItem() {\n const currentPath = window.location.pathname;\n const allItems = this.getComputedNav().filter(item => item.type === 'item' && item.url);\n // Find the best match - prefer longer/more specific URL matches\n let activeItem = null;\n let longestMatch = 0;\n for (const item of allItems) {\n // Use resolveUrl because currentPath includes base href\n const url = this.resolveUrl(item);\n if (currentPath.startsWith(url) && url.length > longestMatch) {\n activeItem = item;\n longestMatch = url.length;\n }\n }\n if (activeItem) {\n this.activeNavItemId = activeItem.id;\n if (activeItem.parentId) {\n this.navItemsExpanded.add(activeItem.parentId);\n }\n }\n else {\n this.activeNavItemId = null;\n }\n }\n // =========================================================================\n // Navigation Customization\n // =========================================================================\n startEditing() {\n this.isEditing = true;\n }\n cancelEditing() {\n this.isEditing = false;\n // Reload to revert changes\n this.loadPref();\n }\n resetPref() {\n this.pref.nav = {};\n }\n savePref() {\n if (this.userType === 'customer') {\n return;\n }\n let url = '/api/system/preference/json/scaffold?global=true';\n let method = 'POST';\n if (this.pref.uuid) {\n url = `/api/system/preference/json/scaffold/${this.pref.uuid}?global=true`;\n method = 'PUT';\n }\n KRHttp.fetch({\n url,\n method,\n body: JSON.stringify({ nav: this.pref.nav }),\n })\n .then((response) => response.json())\n .then((data) => {\n this.pref = data.data;\n this.isEditing = false;\n })\n .catch((error) => {\n console.error('Failed to save nav customizations:', error);\n });\n }\n loadPref() {\n if (this.userType === 'customer') {\n return;\n }\n KRHttp.fetch({\n url: '/api/system/preference/json/scaffold?global=true',\n method: 'GET',\n })\n .then((response) => response.json())\n .then((data) => {\n const pref = data?.data?.[0];\n if (pref) {\n this.pref = pref;\n }\n })\n .catch(() => {\n // No preferences saved yet\n });\n }\n handleNavItemContextMenu(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n KRContextMenu.open({\n x: e.clientX,\n y: e.clientY,\n items: [\n {\n id: 'edit',\n label: 'Edit Item'\n },\n {\n id: 'divider-1',\n label: '',\n divider: true\n },\n {\n id: 'add-above',\n label: 'Add Item Above'\n },\n {\n id: 'add-below',\n label: 'Add Item Below'\n },\n ],\n }).then((result) => {\n if (!result) {\n return;\n }\n switch (result.id) {\n case 'edit':\n this.openNavItemEdit(item);\n break;\n case 'add-above':\n this.addNavItem(item, 'above');\n break;\n case 'add-below':\n this.addNavItem(item, 'below');\n break;\n }\n });\n }\n /**\n * Opens the nav item edit dialog for customizing an item's properties.\n *\n * Opens `KRNavItemEdit` dialog pre-populated with the item's current values.\n * When the user saves, merges the result into the nav delta to persist\n * customizations like label, icon, URL, and visibility.\n *\n * @param item - The nav item to edit\n */\n openNavItemEdit(item) {\n KRDialog.open(KRNavItemEdit, { data: item }).afterClosed().then((res) => {\n const result = res;\n if (!result) {\n return;\n }\n if (!this.pref.nav[item.id]) {\n this.pref.nav[item.id] = {};\n }\n this.pref.nav[item.id] = {\n ...this.pref.nav[item.id],\n ...result\n };\n this.requestUpdate();\n });\n }\n /**\n * Adds a new custom nav item relative to an existing item.\n *\n * Creates a placeholder item in the nav delta, shifts existing siblings\n * to make room, then opens the edit dialog so the user can configure\n * the new item's label, icon, and URL.\n *\n * @param targetItem - The existing item to position relative to\n * @param position - Whether to insert 'above' or 'below' the target item\n */\n addNavItem(targetItem, position) {\n const customId = `custom-${Date.now()}`;\n const siblings = this.getComputedNav()\n .filter(i => i.parentId === targetItem.parentId)\n .sort((a, b) => a.order - b.order);\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n let newOrder;\n if (position === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing items to make room for the new item\n siblings.forEach((sibling, index) => {\n if (index >= newOrder) {\n if (!this.pref.nav[sibling.id]) {\n this.pref.nav[sibling.id] = {};\n }\n this.pref.nav[sibling.id].order = index + 1;\n }\n });\n // Add the new item and open edit dialog\n const newItem = {\n id: customId,\n type: 'item',\n label: 'New Item',\n order: newOrder,\n parentId: targetItem.parentId,\n active: true,\n };\n this.pref.nav[customId] = newItem;\n this.requestUpdate();\n this.openNavItemEdit(newItem);\n }\n // =========================================================================\n // Navigation Drag & Drop\n // =========================================================================\n /**\n * Initiates a potential drag operation when mouse is pressed on a nav item.\n *\n * Only active in edit mode. Records the starting position and sets up\n * document-level listeners for mouse move and mouse up events. The actual\n * drag doesn't start until the mouse moves more than 5 pixels.\n *\n * @param e - The mouse event\n * @param item - The nav item being pressed\n */\n handleNavItemMouseDown(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n this.draggedNavItemId = item.id;\n this.navItemDragStartY = e.clientY;\n this.isNavItemDragging = false;\n document.addEventListener('mousemove', this.boundHandleMouseMove);\n document.addEventListener('mouseup', this.boundHandleMouseUp);\n }\n /**\n * Handles mouse movement during a nav item drag operation.\n *\n * Initiates dragging after the mouse moves more than 5 pixels (to distinguish\n * from clicks), creates a floating preview element that follows the cursor,\n * and updates the drop target indicator based on mouse position.\n *\n * @param e - The mouse event\n */\n handleMouseMove(e) {\n if (!this.draggedNavItemId) {\n return;\n }\n // Start dragging after moving a few pixels (to distinguish from clicks)\n if (!this.isNavItemDragging && Math.abs(e.clientY - this.navItemDragStartY) > 5) {\n this.isNavItemDragging = true;\n this.classList.add('kr-scaffold--dragging');\n // Create drag preview\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n if (draggedItem) {\n this.navItemDragPreview = document.createElement('div');\n this.navItemDragPreview.className = 'nav-item-drag-preview';\n this.navItemDragPreview.textContent = draggedItem.label;\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n this.shadowRoot?.appendChild(this.navItemDragPreview);\n }\n }\n if (!this.isNavItemDragging) {\n return;\n }\n // Update preview position\n if (this.navItemDragPreview) {\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n }\n // Find drop target based on mouse position\n this.updateNavItemDropTarget(e);\n }\n /**\n * Handles the end of a nav item drag operation.\n *\n * Removes document-level mouse listeners, executes the drop if there's a valid\n * target, and cleans up all drag-related state.\n */\n handleMouseUp() {\n document.removeEventListener('mousemove', this.boundHandleMouseMove);\n document.removeEventListener('mouseup', this.boundHandleMouseUp);\n if (this.isNavItemDragging && this.navItemDropTargetId) {\n this.executeNavItemDrop();\n }\n // Reset all drag state\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.isNavItemDragging = false;\n this.classList.remove('kr-scaffold--dragging');\n if (this.navItemDragPreview) {\n this.navItemDragPreview.remove();\n this.navItemDragPreview = null;\n }\n this.clearNavItemDragExpandTimeout();\n this.requestUpdate();\n }\n /**\n * Determines where a dragged nav item would be dropped based on mouse position.\n *\n * Loops through all nav items and checks if the mouse is hovering over one.\n * For groups, the item is divided into thirds (above/center/below) where\n * \"center\" means drop into the group. For regular items, it's halves (above/below).\n *\n * Also handles auto-expanding collapsed groups when hovering over their center,\n * and validates drops (e.g., prevents dropping a group into another group).\n *\n * Updates `navItemDropTargetId` and `navItemDropPosition` state which are used to render\n * visual drop indicators in the UI.\n *\n * @param e - The mouse event from dragging\n */\n updateNavItemDropTarget(e) {\n // Get all nav items in shadow DOM\n const navItems = this.shadowRoot?.querySelectorAll('.nav-item[data-id]');\n if (!navItems) {\n return;\n }\n let foundTarget = false;\n navItems.forEach((el) => {\n const rect = el.getBoundingClientRect();\n const itemId = el.getAttribute('data-id');\n if (!itemId || itemId === this.draggedNavItemId) {\n return;\n }\n // Skip if mouse is outside this element\n if (e.clientX < rect.left || e.clientX > rect.right ||\n e.clientY < rect.top || e.clientY > rect.bottom) {\n return;\n }\n const item = this.getComputedNav().find(i => i.id === itemId);\n if (!item) {\n return;\n }\n const y = e.clientY - rect.top;\n let position;\n // Determine drop position based on mouse Y position within the item.\n // Groups are divided into thirds: top=above, middle=center (drop into), bottom=below.\n // Regular items are divided in half: top=above, bottom=below.\n if (item.type === 'group') {\n if (y < rect.height / 3) {\n // Top third - drop above the group\n position = 'above';\n this.clearNavItemDragExpandTimeout();\n }\n else if (y > (rect.height * 2) / 3) {\n // Bottom third - drop below the group\n position = 'below';\n this.clearNavItemDragExpandTimeout();\n }\n else {\n // Middle third - drop into the group (as a child)\n position = 'center';\n // Auto-expand collapsed groups after a delay\n if (!this.navItemsExpanded.has(item.id) && !this.navItemDragExpandTimeout) {\n this.expandNavGroupOnDrag(item.id);\n }\n }\n }\n else {\n // Regular items only support above/below, not center\n if (y < rect.height / 2) {\n position = 'above';\n }\n else {\n position = 'below';\n }\n this.clearNavItemDragExpandTimeout();\n }\n // Determine what the new parent would be\n let newParentId;\n if (position === 'center') {\n newParentId = item.id;\n }\n else {\n newParentId = item.parentId;\n }\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n // Don't show drop indicator if invalid drop:\n // 1. Can't drop an item into itself (newParentId === draggedNavItemId)\n // 2. Groups can only exist at the top level, so prevent dropping a group into another group (newParentId !== null means it would be nested)\n if (newParentId === this.draggedNavItemId || (draggedItem?.type === 'group' && newParentId !== null)) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n return;\n }\n // Valid drop target found - store the target item and position (above/below/center)\n // so the UI can render the drop indicator in the correct location\n this.navItemDropTargetId = item.id;\n this.navItemDropPosition = position;\n foundTarget = true;\n });\n // Mouse is not over any valid nav item - clear the drop indicator\n // (e.g., user dragged outside the nav area or over empty space)\n if (!foundTarget) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n }\n this.requestUpdate();\n }\n /**\n * Cancels the pending auto-expand timeout for nav groups during drag.\n * Called when the user moves away from a group's center or stops dragging.\n */\n clearNavItemDragExpandTimeout() {\n if (this.navItemDragExpandTimeout) {\n clearTimeout(this.navItemDragExpandTimeout);\n this.navItemDragExpandTimeout = null;\n }\n }\n /**\n * Auto-expands a collapsed nav group after a delay while dragging over it.\n *\n * Uses a 500ms timeout to prevent groups from expanding too eagerly when the\n * user is just passing over them. Only expands if the user is still hovering\n * over the group's center when the timeout fires.\n *\n * @param itemId - The ID of the group to expand\n */\n expandNavGroupOnDrag(itemId) {\n this.navItemDragExpandTimeout = window.setTimeout(() => {\n if (this.navItemDropTargetId === itemId && this.navItemDropPosition === 'center') {\n this.navItemsExpanded.add(itemId);\n this.requestUpdate();\n }\n this.navItemDragExpandTimeout = null;\n }, 500);\n }\n /**\n * Executes the drop operation after a nav item drag completes.\n *\n * Calculates the new position and parent for the dragged item based on\n * the drop target and position (above/below/center). Updates the navDelta\n * with new order values for the dragged item and shifts siblings as needed.\n */\n executeNavItemDrop() {\n if (!this.draggedNavItemId || !this.navItemDropTargetId) {\n return;\n }\n const allItems = this.getComputedNav();\n const draggedItem = allItems.find(i => i.id === this.draggedNavItemId);\n const targetItem = allItems.find(i => i.id === this.navItemDropTargetId);\n if (!draggedItem || !targetItem) {\n return;\n }\n // Determine the new parentId for the dragged item\n let newParentId;\n if (this.navItemDropPosition === 'center' && targetItem.type === 'group') {\n if (targetItem.id === this.draggedNavItemId) {\n return;\n }\n newParentId = targetItem.id;\n }\n else {\n newParentId = targetItem.parentId;\n }\n if (newParentId === this.draggedNavItemId) {\n return;\n }\n // Get siblings in the destination parent\n const siblings = allItems\n .filter(i => i.parentId === newParentId && i.id !== this.draggedNavItemId)\n .sort((a, b) => a.order - b.order);\n const navDelta = this.pref.nav;\n // Calculate the new order\n let newOrder;\n if (this.navItemDropPosition === 'center') {\n // Dropping into a group - place at the end of its children\n if (siblings.length > 0) {\n newOrder = Math.max(...siblings.map(s => s.order)) + 1;\n }\n else {\n newOrder = 0;\n }\n }\n else {\n // Find where the target item is in the sorted siblings list\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n // Determine insert position based on drop position (above/below target)\n if (targetIndex === -1) {\n newOrder = 0;\n }\n else if (this.navItemDropPosition === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing siblings to make room for the dropped item.\n // Items at or after the insert position get their order bumped up by 1.\n siblings.forEach((sibling, index) => {\n if (!navDelta[sibling.id]) {\n navDelta[sibling.id] = {};\n }\n if (index >= newOrder) {\n navDelta[sibling.id].order = index + 1;\n }\n else {\n navDelta[sibling.id].order = index;\n }\n });\n }\n // Update the dragged item's position and parent in the delta\n if (!navDelta[this.draggedNavItemId]) {\n navDelta[this.draggedNavItemId] = {};\n }\n navDelta[this.draggedNavItemId].order = newOrder;\n navDelta[this.draggedNavItemId].parentId = newParentId;\n // Persist changes and trigger re-render\n this.pref.nav = navDelta;\n this.requestUpdate();\n }\n // =========================================================================\n // User Menu\n // =========================================================================\n toggleUserMenu() {\n this.isUserMenuOpen = !this.isUserMenuOpen;\n }\n closeUserMenu() {\n this.isUserMenuOpen = false;\n }\n handleCustomize() {\n this.closeUserMenu();\n this.startEditing();\n }\n // =========================================================================\n // Rendering\n // =========================================================================\n renderNormalFooter() {\n if (!this.user) {\n return nothing;\n }\n const initials = this.user.name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n // todo - use a reusable menu component\n return html `\n <div class=\"user-menu-container\">\n ${this.isUserMenuOpen ? html `\n <div class=\"user-menu\">\n <button class=\"user-menu__item\" @click=${this.handleCustomize}>\n Customize Navigation\n </button>\n </div>\n ` : nothing}\n <div class=\"user\" @click=${this.toggleUserMenu}>\n <div class=\"user__avatar\">\n ${this.user.avatar\n ? html `<img src=${this.user.avatar} alt=${this.user.name} />`\n : initials}\n </div>\n <div class=\"user__info\">\n <div class=\"user__name\">${this.user.name}</div>\n ${this.user.email ? html `<div class=\"user__email\">${this.user.email}</div>` : nothing}\n </div>\n </div>\n </div>\n `;\n }\n // todo - review\n renderEditFooter() {\n return html `\n <div class=\"edit-actions\">\n <button class=\"edit-actions__btn edit-actions__btn--primary\" @click=${this.savePref}>\n Save\n </button>\n <div class=\"edit-actions__secondary\">\n <button class=\"edit-actions__btn\" @click=${this.resetPref}>\n Reset\n </button>\n <button class=\"edit-actions__btn\" @click=${this.cancelEditing}>\n Cancel\n </button>\n </div>\n </div>\n `;\n }\n /**\n * Renders a navigation item as either a group or a link.\n *\n * Groups render as expandable `<button>` elements with a chevron indicator and\n * nested children. Items render as `<a>` anchor links with href navigation.\n *\n * Both types support drag-and-drop reordering in edit mode, context menus for\n * customization, and visual indicators for active/hidden/drop-target states.\n *\n * Icons use SVG strings and fall back to `defaultNavItemIcon` when not provided.\n * Icons are only rendered for top-level items, not for children nested within groups.\n *\n * @param item - The flat nav item data to render\n * @param isChild - Whether this item is nested within a group (affects icon rendering)\n * @returns Lit HTML template for the nav item\n */\n renderNavItem(item, isChild = false) {\n if (item.type === 'section') {\n return html `\n <div class=\"nav-section\">${item.label}</div>\n `;\n }\n if (item.type === 'group') {\n const children = this.getNavItemChildren(item.id);\n return html `\n <button\n class=${classMap({\n 'nav-item': true,\n 'nav-item--expanded': this.navItemsExpanded.has(item.id),\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n 'nav-item--drop-center': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'center',\n })}\n data-id=\"${item.id}\"\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n <svg\n class=\"nav-item__chevron\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path\n d=\"M6 9l6 6 6-6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n <div class=${classMap({\n 'nav-group': true,\n 'nav-group--expanded': this.navItemsExpanded.has(item.id),\n })}>\n ${children.map((child) => this.renderNavItem(child, true))}\n </div>\n `;\n }\n return html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': this.activeNavItemId === item.id,\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n })}\n data-id=\"${item.id}\"\n href=${this.resolveUrl(item)}\n target=${item.external ? '_blank' : nothing}\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed && !isChild ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n </a>\n `;\n }\n // todo - don't hardcode breadcrumbs\n render() {\n const topLevelItems = this.getNavItemChildren(null);\n // Use unfiltered count to determine if search should show (so it doesn't disappear while typing)\n const totalTopLevelItems = this.getComputedNav().filter(item => item.parentId === null).length;\n return html `\n <div class=${classMap({\n 'progress': true,\n 'progress--loading': this.pendingRequests > 0,\n })}>\n <div class=\"progress__track\"></div>\n <div class=\"progress__bar progress__bar--primary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n <div class=\"progress__bar progress__bar--secondary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n </div>\n \n ${this.subbar ? html `\n <kr-subbar\n menu\n .breadcrumbs=${this.breadcrumbs}\n @menu-click=${this.handleMenuClick}\n >\n <slot name=\"subbar\"></slot>\n </kr-subbar>\n ` : nothing}\n\n <div class=\"wrapper\">\n ${this.navEnabled ? html `\n <nav class=${classMap({\n 'nav': true,\n 'nav--scrolled': this.isNavScrolled,\n 'nav--opened': !this.subbar || this.isNavOpened,\n })}>\n <div class=\"nav-header\" @click=${this.handleNavHeaderClick}>\n ${this.label\n ? html `<span class=\"nav-title\">${this.label}</span>`\n : this.logo\n ? html `<img\n class=\"nav-logo\"\n src=${this.logo}\n alt=\"Logo\"\n />`\n : nothing}\n </div>\n <div class=\"nav-content\" @scroll=${this.handleNavScroll}>\n ${totalTopLevelItems > 20 ? html `\n <div class=\"nav-search\">\n <div class=\"nav-search__wrapper\">\n <span class=\"nav-search__icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/>\n </svg>\n </span>\n <input\n class=\"nav-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n .value=${this.navQuery}\n @input=${this.handleNavQueryChange}\n />\n ${this.navQuery ? html `\n <button class=\"nav-search__clear\" @click=${this.handleNavQueryClear}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/>\n </svg>\n </button>\n ` : nothing}\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-items\">\n ${topLevelItems.map((item) => this.renderNavItem(item))}\n </div>\n </div>\n <!-- <div class=\"nav-footer\">\n ${this.isEditing ? this.renderEditFooter() : this.renderNormalFooter()}\n </div> -->\n </nav>\n ` : nothing}\n\n <main class=\"main\">\n <slot></slot>\n </main>\n </div>\n \n `;\n }\n};\nKRScaffold.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n font-size: 14px;\n --kr-scaffold-nav-width: 250px;\n\n /* Default to light scheme */\n --kr-scaffold-nav-bg: #F3F7FC;\n --kr-scaffold-nav-text: #000000;\n --kr-scaffold-nav-text-active: #000000;\n --kr-scaffold-nav-hover: #f3f4f6;\n --kr-scaffold-nav-active-bg: #e5e7eb;\n --kr-scaffold-nav-border: rgb(229, 229, 228);\n --kr-scaffold-nav-divider: #e5e7eb;\n --kr-scaffold-nav-search-bg: #ffffff;\n --kr-scaffold-nav-search-border: #d1d5db;\n }\n\n /* Dark scheme */\n :host([scheme=\"dark\"]) {\n --kr-scaffold-nav-bg: #10172a;\n --kr-scaffold-nav-text: rgb(255 255 255 / 80%);\n --kr-scaffold-nav-text-active: #ffffff;\n --kr-scaffold-nav-hover: rgba(255, 255, 255, 0.05);\n --kr-scaffold-nav-active-bg: rgb(255 255 255 / 12%);\n --kr-scaffold-nav-border: transparent;\n --kr-scaffold-nav-divider: rgba(255, 255, 255, 0.06);\n --kr-scaffold-nav-search-bg: rgba(255, 255, 255, 0.15);\n --kr-scaffold-nav-search-border: rgba(255, 255, 255, 0.3);\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Nav */\n .nav {\n width: var(--kr-scaffold-nav-width);\n background: var(--kr-scaffold-nav-bg);\n color: var(--kr-scaffold-nav-text);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n border-right: 1px solid var(--kr-scaffold-nav-border);\n transition: margin-left 0.3s ease;\n margin-left: calc(-1 * var(--kr-scaffold-nav-width));\n flex: 1;\n max-width: var(--kr-scaffold-nav-width);\n }\n\n .nav--opened {\n margin-left: 0;\n }\n\n .wrapper {\n display: flex;\n flex: 1;\n min-height: 0;\n max-height: 100%;\n height: 100%;\n }\n\n .nav-header {\n padding: 20px;\n display: flex;\n align-items: center;\n position: relative;\n z-index: 1;\n transition: box-shadow 0.2s ease;\n cursor: pointer;\n }\n\n .nav--scrolled .nav-header {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n }\n\n .nav-logo {\n max-width: 100%;\n height: 32px;\n }\n\n .nav-title {\n font-size: 20px;\n font-weight: 600;\n color: var(--kr-scaffold-nav-text-active);\n letter-spacing: .2px;\n }\n\n .nav-search {\n padding: 4px 0 8px;\n }\n\n .nav-search__wrapper {\n display: flex;\n align-items: center;\n background: var(--kr-scaffold-nav-search-bg);\n border-radius: 8px;\n padding: 0 12px;\n height: 40px;\n gap: 8px;\n border: 1px solid var(--kr-scaffold-nav-search-border);\n transition: all 0.15s ease;\n }\n\n .nav-search__icon {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n opacity: 0.6;\n }\n\n .nav-search__icon svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-search__input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-family: inherit;\n min-width: 0;\n }\n\n .nav-search__input::placeholder {\n color: var(--kr-scaffold-nav-text);\n opacity: 0.7;\n }\n\n .nav-search__clear {\n width: 18px;\n height: 18px;\n padding: 0;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n }\n\n .nav-search__clear:hover {\n opacity: 1;\n }\n\n .nav-search__clear svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 9px 12px 8px;\n }\n\n .nav-footer {\n padding: 12px;\n border-top: 1px solid var(--kr-scaffold-nav-divider);\n }\n\n .user {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .user:hover {\n background: var(--kr-scaffold-nav-hover);\n }\n\n .user__avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--kr-scaffold-avatar-bg, #beea4e);\n color: var(--kr-scaffold-avatar-text, #10172a);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user__info {\n flex: 1;\n min-width: 0;\n }\n\n .user__name {\n font-size: 13px;\n font-weight: 500;\n color: var(--kr-scaffold-nav-text-active);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user__email {\n font-size: 12px;\n color: var(--kr-scaffold-nav-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-menu-container {\n position: relative;\n }\n\n .user-menu {\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n margin-bottom: 8px;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n padding: 4px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n }\n\n .user-menu__item {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-family: inherit;\n text-align: left;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .user-menu__item:hover {\n background: var(--kr-scaffold-nav-hover);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .user-menu__divider {\n height: 1px;\n background: var(--kr-scaffold-nav-divider);\n margin: 4px 0;\n }\n\n /* Main */\n .main {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n background: transparent;\n display: flex;\n flex-direction: column;\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n color: #6b7280;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n .main__content {\n flex: 1;\n overflow-y: auto;\n }\n\n /* Nav Items */\n .nav-items {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 0 12px;\n height: 32px;\n border-radius: 8px;\n color: var(--kr-scaffold-nav-text);\n text-decoration: none;\n cursor: pointer;\n border: none;\n background: none;\n width: 100%;\n text-align: left;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: #F3F7FC;\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .nav-item--active,\n .nav-item--active:hover {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .nav-item__icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .nav-item__icon svg {\n width: 16px;\n height: 16px;\n fill: currentColor;\n }\n\n .nav-item__label {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n letter-spacing: 0.14px;\n }\n\n .nav-item__chevron {\n width: 16px;\n height: 16px;\n transition: transform 0.2s ease;\n transform: rotate(-90deg);\n stroke: currentColor;\n }\n\n .nav-item--expanded .nav-item__chevron {\n transform: rotate(0deg);\n }\n\n .nav-group {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 0;\n }\n\n .nav-group--expanded {\n height: auto;\n }\n\n .nav-group .nav-item {\n padding: 0 12px 0 44px;\n height: 32px;\n font-size: 13px;\n font-weight: 400;\n margin-top: 2px;\n flex-shrink: 0;\n }\n\n .nav-group .nav-item--active,\n .nav-group .nav-item--active:hover {\n font-weight: 700;\n }\n\n .nav-group .nav-item:first-child {\n margin-top: 0;\n }\n\n /* Nav items in groups when icons are hidden */\n :host(:not([nav-icons-displayed])) .nav-group .nav-item {\n padding-left: 24px;\n }\n\n /* Sections */\n .nav-section {\n padding: 16px 12px 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.55px;\n color: var(--kr-scaffold-nav-text);\n opacity: 0.6;\n }\n\n .nav-section:first-child {\n padding-top: 0;\n }\n\n /* Edit mode actions */\n .edit-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .edit-actions__btn {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: var(--kr-scaffold-nav-hover);\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .edit-actions__btn:hover {\n background: var(--kr-scaffold-nav-active-bg);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .edit-actions__btn--primary {\n background: #beea4e;\n color: #10172a;\n }\n\n .edit-actions__btn--primary:hover {\n background: #d4f472;\n color: #10172a;\n }\n\n .edit-actions__secondary {\n display: flex;\n gap: 8px;\n }\n\n .edit-actions__secondary .edit-actions__btn {\n flex: 1;\n }\n\n /* Hidden/inactive items in edit mode */\n .nav-item--hidden {\n opacity: 0.4;\n font-style: italic;\n }\n\n .nav-item--hidden:hover {\n opacity: 0.6;\n }\n\n /* Dragging state */\n :host(.kr-scaffold--dragging),\n :host(.kr-scaffold--dragging) * {\n cursor: grabbing;\n user-select: none;\n }\n\n .nav-item-drag-preview {\n position: fixed;\n pointer-events: none;\n z-index: 1000;\n opacity: 0.9;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);\n padding: 0 12px;\n height: 40px;\n min-width: 200px;\n display: flex;\n align-items: center;\n gap: 16px;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-weight: 500;\n }\n\n /* Drop indicator */\n .nav-item--drop-above,\n .nav-item--drop-below,\n .nav-item--drop-center {\n position: relative;\n }\n\n .nav-item--drop-above::before,\n .nav-item--drop-below::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 2px;\n background: #beea4e;\n }\n\n .nav-item--drop-above::before {\n top: 0;\n }\n\n .nav-item--drop-below::after {\n bottom: 0;\n }\n\n .nav-item--drop-center {\n background: var(--kr-scaffold-nav-active-bg);\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n //background: #f9fafb;\n background: #beea4e;\n border-top: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n //color: #6b7280;\n color: #10172a;\n font-size: 13px;\n font-weight: 600;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n /* Progress bar */\n .progress {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n overflow-x: hidden;\n z-index: 1000;\n display: none;\n }\n\n .progress--loading {\n display: block;\n }\n\n .progress__track {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n background: rgba(190, 234, 78, 0.3);\n }\n\n .progress__bar {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n transform-origin: left center;\n }\n\n .progress__bar-inner {\n display: inline-block;\n position: absolute;\n width: 100%;\n height: 100%;\n background: #beea4e;\n }\n\n .progress__bar--primary {\n left: -145.166611%;\n }\n\n .progress--loading .progress__bar--primary {\n animation: progress-primary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--primary .progress__bar-inner {\n animation: progress-primary-scale 2s infinite linear;\n }\n\n .progress__bar--secondary {\n left: -54.888891%;\n }\n\n .progress--loading .progress__bar--secondary {\n animation: progress-secondary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--secondary .progress__bar-inner {\n animation: progress-secondary-scale 2s infinite linear;\n }\n\n @keyframes progress-primary-translate {\n 0% {\n transform: translateX(0);\n }\n 20% {\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n transform: translateX(0);\n }\n 59.15% {\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n transform: translateX(83.67142%);\n }\n 100% {\n transform: translateX(200.611057%);\n }\n }\n\n @keyframes progress-primary-scale {\n 0% {\n transform: scaleX(0.08);\n }\n 36.65% {\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n transform: scaleX(0.08);\n }\n 69.15% {\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n transform: scaleX(0.661479);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n\n @keyframes progress-secondary-translate {\n 0% {\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n transform: translateX(0);\n }\n 25% {\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n transform: translateX(37.651913%);\n }\n 48.35% {\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n transform: translateX(84.386165%);\n }\n 100% {\n transform: translateX(160.277782%);\n }\n }\n\n @keyframes progress-secondary-scale {\n 0% {\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n transform: scaleX(0.08);\n }\n 19.15% {\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n transform: scaleX(0.457104);\n }\n 44.15% {\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n transform: scaleX(0.72796);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n `;\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"logo\", void 0);\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"label\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'home-url'\n })\n], KRScaffold.prototype, \"homeUrl\", void 0);\n__decorate([\n property({\n type: String,\n reflect: true\n })\n], KRScaffold.prototype, \"scheme\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"nav\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-icons-displayed',\n reflect: true\n })\n], KRScaffold.prototype, \"navIconsDisplayed\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-expanded'\n })\n], KRScaffold.prototype, \"navExpanded\", void 0);\n__decorate([\n property({ type: Object })\n], KRScaffold.prototype, \"user\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRScaffold.prototype, \"subbar\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-enabled'\n })\n], KRScaffold.prototype, \"navEnabled\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'user-type'\n })\n], KRScaffold.prototype, \"userType\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"breadcrumbs\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemsExpanded\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navQuery\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"activeNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavScrolled\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavOpened\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isEditing\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isUserMenuOpen\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pref\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"draggedNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropTargetId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropPosition\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pendingRequests\", void 0);\nKRScaffold = __decorate([\n customElement('kr-scaffold')\n], KRScaffold);\nexport { KRScaffold };\n//# sourceMappingURL=scaffold.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary navigation component for screens within the scaffold.\n * Provides a simple nav drawer for sub-navigation within a page/screen.\n * Typically used when viewing details of a specific entity (e.g., Company, Contact).\n *\n * ## Usage\n * ```html\n * <kr-screen-nav\n * label=\"Acme Corporation\"\n * subLabel=\"Company\"\n * .items=${[\n * { id: 'overview', label: 'Overview', url: '/companies/123/overview' },\n * { id: 'contacts', label: 'Contacts', url: '/companies/123/contacts' },\n * { id: 'activity', label: 'Activity', url: '/companies/123/activity' },\n * ]}\n * activeId=\"overview\"\n * >\n * <div>Screen content here</div>\n * </kr-screen-nav>\n * ```\n *\n * @slot - The main screen content\n *\n * @property {string} label - Main label (e.g., entity name like \"Acme Corporation\")\n * @property {string} subLabel - Sub label (e.g., entity type like \"Company\")\n * @property {KRScreenNavItem[]} items - Navigation items as JSON array\n * @property {string} activeId - Currently active item ID\n */\nlet KRScreenNav = class KRScreenNav extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Main label (e.g., entity name like \"Acme Corporation\")\n */\n this.label = '';\n /**\n * Sub label (e.g., entity type like \"Company\")\n */\n this.subLabel = '';\n /**\n * Navigation items\n */\n this.items = [];\n /**\n * Currently active item ID. Auto-detected from the URL by default.\n * Can be set explicitly by the parent to override.\n */\n this.activeId = '';\n this.handlePopstate = () => {\n this.syncActiveFromUrl();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n // Defer so property bindings (.items) have been applied\n requestAnimationFrame(() => this.syncActiveFromUrl());\n window.addEventListener('popstate', this.handlePopstate);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopstate);\n }\n /**\n * Handles click events on navigation items.\n *\n * Dispatches a cancelable `nav-item-click` custom event.\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScreenNavDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n this.activeId = item.id;\n }\n syncActiveFromUrl() {\n const pathname = window.location.pathname;\n const match = this.items.find((item) => {\n if (!item.url) {\n return false;\n }\n // Absolute URL — exact match\n if (item.url.startsWith('/')) {\n return pathname === item.url;\n }\n // Relative URL — match against the end of the pathname\n return pathname.endsWith('/' + item.url);\n });\n if (match) {\n this.activeId = match.id;\n }\n }\n render() {\n return html `\n <nav class=\"nav\">\n ${this.label ? html `\n <div class=\"nav-header\">\n <div class=\"nav-header__text\">\n ${this.subLabel ? html `<div class=\"nav-header__subtitle\">${this.subLabel}</div>` : nothing}\n <div class=\"nav-header__title\">${this.label}</div>\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-content\">\n <div class=\"nav-items\">\n ${this.items.map((item) => html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': item.id === this.activeId\n })}\n href=${item.url || '#'}\n @click=${(e) => this.handleNavItemClick(e, item)}\n >\n ${item.label}\n </a>\n `)}\n </div>\n </div>\n </nav>\n <main class=\"content\">\n <div class=\"content__main\">\n <slot></slot>\n </div>\n </main>\n `;\n }\n};\nKRScreenNav.styles = css `\n :host {\n display: flex;\n height: 100%;\n }\n\n .nav {\n width: 200px;\n background: white;\n border-right: 1px solid #e5e7eb;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n }\n\n .nav-header {\n padding: 20px 16px 16px;\n }\n\n .nav-header__text {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .nav-header__title {\n font-size: 20px;\n font-weight: 600;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.3;\n }\n\n .nav-header__subtitle {\n font-size: 12px;\n font-weight: 400;\n color: rgb(0 0 0 / 70%);\n line-height: 1;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 0 12px;\n }\n\n .nav-items {\n display: flex;\n flex-direction: column;\n padding: 0 8px;\n }\n\n .nav-item {\n display: block;\n padding: 0 12px;\n height: 32px;\n line-height: 32px;\n letter-spacing: 0.13px;\n color: rgb(32, 33, 36);\n text-decoration: none;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n border-radius: 8px;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: rgba(0, 0, 0, 0.04);\n color: #163052;\n }\n\n .nav-item--active {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .content__main {\n flex: 1;\n overflow-y: auto;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"subLabel\", void 0);\n__decorate([\n property({ type: Array })\n], KRScreenNav.prototype, \"items\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"activeId\", void 0);\nKRScreenNav = __decorate([\n customElement('kr-screen-nav')\n], KRScreenNav);\nexport { KRScreenNav };\n//# sourceMappingURL=screen-nav.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n/**\n * Detail screen component for viewing/editing entity details.\n * Displays a form-like layout with labeled fields centered in a single column.\n *\n * ## Usage\n * ```html\n * <kr-screen-detail title=\"Company Details\">\n * <kr-button slot=\"actions\">Save</kr-button>\n * <kr-text-field label=\"Company Name\" value=\"Acme Corporation\"></kr-text-field>\n * <kr-text-field label=\"Industry\" value=\"Technology\"></kr-text-field>\n * <kr-text-field label=\"Website\" value=\"https://acme.com\"></kr-text-field>\n * </kr-screen-detail>\n * ```\n *\n * @slot - Form fields and content (centered, max-width 480px)\n * @slot actions - Action buttons displayed in the header on the right\n *\n * @property {string} title - Section title (e.g., \"Company Details\")\n */\nlet KRScreenDetail = class KRScreenDetail extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Section title\n */\n this.title = '';\n }\n render() {\n return html `\n <div class=\"header\">\n <h2 class=\"header__title\">${this.title}</h2>\n <div class=\"header__actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"content__inner\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n};\nKRScreenDetail.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .header {\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px;\n background: #ffffff;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .header__title {\n font-size: 18px;\n font-weight: 600;\n color: #111827;\n margin: 0;\n }\n\n .header__actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n display: flex;\n justify-content: center;\n }\n\n .content__inner {\n width: 100%;\n max-width: 700px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenDetail.prototype, \"title\", void 0);\nKRScreenDetail = __decorate([\n customElement('kr-screen-detail')\n], KRScreenDetail);\nexport { KRScreenDetail };\n//# sourceMappingURL=screen-detail.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary bar component that sits below the main app bar.\n *\n * @slot - Content to display in the subbar (right side)\n */\nlet KRSubbar = class KRSubbar extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Array of breadcrumb items to display\n */\n this.breadcrumbs = [];\n /**\n * Whether to show the menu icon\n */\n this.menu = false;\n }\n _handleMenuClick() {\n this.dispatchEvent(new CustomEvent('menu-click', {\n bubbles: true,\n composed: true\n }));\n }\n /**\n * Resolves a breadcrumb URL by prepending the base href.\n *\n * This method is used for setting href attributes on anchor elements\n * (so Cmd/Ctrl+click opens correct URL in new tab).\n *\n * The original crumb.url is kept intact (without base href) and passed to Angular\n * via the breadcrumb-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - crumb.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(crumb) = \"/operations/settings\" (used for href)\n */\n resolveUrl(crumb) {\n if (!crumb.url) {\n return '#';\n }\n // Remove leading slash from url if present, then combine with base\n let path = crumb.url;\n if (crumb.url.startsWith('/')) {\n path = crumb.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n /**\n * Handles click on a breadcrumb link.\n * Dispatches a cancelable event so SPA routers can intercept.\n */\n _handleBreadcrumbClick(e, crumb, isCurrent) {\n // Don't navigate if it's the current/last breadcrumb\n if (isCurrent || !crumb.url) {\n e.preventDefault();\n return;\n }\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n const breadcrumbEvent = new CustomEvent('breadcrumb-click', {\n detail: { breadcrumb: crumb },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(breadcrumbEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (breadcrumbEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n render() {\n return html `\n ${this.menu ? html `\n <div class=\"menu\" @click=${this._handleMenuClick}>\n <svg\n class=\"menu__icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <line\n x1=\"3\"\n y1=\"6\"\n x2=\"21\"\n y2=\"6\"\n ></line>\n <line\n x1=\"3\"\n y1=\"12\"\n x2=\"21\"\n y2=\"12\"\n ></line>\n <line\n x1=\"3\"\n y1=\"18\"\n x2=\"21\"\n y2=\"18\"\n ></line>\n </svg>\n </div>\n ` : nothing}\n <div class=\"breadcrumbs\">\n ${this.breadcrumbs.map((crumb, index) => {\n const isCurrent = index === this.breadcrumbs.length - 1;\n return html `\n ${index > 0 ? html `<span class=\"breadcrumb-separator\">/</span>` : ''}\n <a\n class=${classMap({\n 'breadcrumb': true,\n 'breadcrumb--current': isCurrent\n })}\n href=${this.resolveUrl(crumb)}\n @click=${(e) => this._handleBreadcrumbClick(e, crumb, isCurrent)}\n >${crumb.label}</a>\n `;\n })}\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n\n `;\n }\n};\nKRSubbar.styles = css `\n :host {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n height: 40px;\n background: #E2E9F6;\n border-bottom: 1px solid rgb(229, 229, 228);\n align-items: center;\n padding: 0 16px;\n width: 100%;\n flex-shrink: 0;\n }\n\n .breadcrumbs {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 13px;\n flex: 1;\n }\n\n .breadcrumb {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n font-size: 13px;\n }\n\n .breadcrumb:hover {\n text-decoration: underline;\n }\n\n .breadcrumb--current {\n cursor: default;\n }\n\n .breadcrumb--current:hover {\n text-decoration: none;\n }\n\n .breadcrumb-separator {\n color: #9ca3af;\n font-size: 12px;\n }\n\n .content {\n display: flex;\n align-items: center;\n margin-left: auto;\n }\n\n .menu {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n cursor: pointer;\n }\n\n .menu__icon {\n width: 18px;\n height: 18px;\n }\n `;\n__decorate([\n property({ type: Array })\n], KRSubbar.prototype, \"breadcrumbs\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSubbar.prototype, \"menu\", void 0);\nKRSubbar = __decorate([\n customElement('kr-subbar')\n], KRSubbar);\nexport { KRSubbar };\n//# sourceMappingURL=subbar.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nexport class KRRouter {\n static configure(config) {\n KRRouter.base = config.base;\n KRRouter.routes = config.routes;\n // Intercept <a> clicks for client-side navigation\n window.addEventListener('click', (e) => {\n const anchor = e.composedPath().find(el => el instanceof HTMLAnchorElement);\n if (!anchor) {\n return;\n }\n if (anchor.origin !== window.location.origin) {\n return;\n }\n if (!anchor.pathname.startsWith(KRRouter.base)) {\n return;\n }\n e.preventDefault();\n KRRouter.navigate(anchor.pathname);\n });\n }\n static navigate(path) {\n let fullPath = path;\n if (!path.startsWith('/')) {\n fullPath = KRRouter.base + '/' + path;\n }\n window.history.pushState({}, '', fullPath);\n window.dispatchEvent(new PopStateEvent('popstate'));\n }\n static getParams() {\n const matched = KRRouter.matchAll();\n const params = {};\n for (const match of matched) {\n for (const key in match.params) {\n params[key] = decodeURIComponent(match.params[key]);\n }\n }\n return params;\n }\n static outlet(level) {\n const matched = KRRouter.matchAll();\n if (level >= matched.length) {\n return null;\n }\n const match = matched[level];\n const tag = match.route.component;\n const cached = KRRouter.elementCache.get(level + ':' + tag);\n if (cached) {\n return cached;\n }\n // Clear old cache entry for this level\n for (const key of KRRouter.elementCache.keys()) {\n if (key.startsWith(level + ':')) {\n KRRouter.elementCache.delete(key);\n }\n }\n const el = document.createElement(tag);\n KRRouter.elementCache.set(level + ':' + tag, el);\n return el;\n }\n static matchAll() {\n const path = window.location.pathname;\n let relative = path;\n if (path.startsWith(KRRouter.base)) {\n relative = path.slice(KRRouter.base.length);\n }\n const segments = relative.split('/').filter(s => s);\n return KRRouter.matchRoutes(KRRouter.routes, segments);\n }\n static matchRoutes(routes, segments) {\n for (const route of routes) {\n const routeSegments = route.path.split('/').filter(s => s);\n if (routeSegments.length === 0 && segments.length === 0) {\n return [{\n route,\n params: {}\n }];\n }\n if (routeSegments.length === 0) {\n continue;\n }\n if (segments.length < routeSegments.length) {\n continue;\n }\n const params = {};\n let matched = true;\n for (let i = 0; i < routeSegments.length; i++) {\n if (routeSegments[i].startsWith(':')) {\n params[routeSegments[i].slice(1)] = segments[i];\n }\n else if (routeSegments[i] !== segments[i]) {\n matched = false;\n break;\n }\n }\n if (!matched) {\n continue;\n }\n const remaining = segments.slice(routeSegments.length);\n // If there are remaining segments but no children, this route doesn't fully match — try next route\n if (remaining.length > 0 && !route.children) {\n continue;\n }\n const result = [{\n route,\n params\n }];\n if (route.children && remaining.length > 0) {\n const childMatches = KRRouter.matchRoutes(route.children, remaining);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n // No remaining segments + default child — redirect\n if (route.children && remaining.length === 0 && route.default) {\n window.history.replaceState({}, '', window.location.pathname + '/' + route.default);\n const childMatches = KRRouter.matchRoutes(route.children, [route.default]);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n return result;\n }\n return [];\n }\n}\nKRRouter.base = '';\nKRRouter.routes = [];\nKRRouter.elementCache = new Map();\nlet KRRouterOutlet = class KRRouterOutlet extends LitElement {\n constructor() {\n super(...arguments);\n this.level = -1;\n this.handlePopState = () => {\n this.requestUpdate();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.level = this.detectLevel();\n window.addEventListener('popstate', this.handlePopState);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopState);\n }\n detectLevel() {\n let level = 0;\n let node = this;\n while (node) {\n if (node instanceof ShadowRoot) {\n node = node.host;\n continue;\n }\n if (node instanceof HTMLElement && node.tagName === 'KR-ROUTER-OUTLET' && node !== this) {\n level++;\n }\n if (node instanceof HTMLElement) {\n node = node.parentNode;\n }\n else {\n node = null;\n }\n }\n return level;\n }\n render() {\n const el = KRRouter.outlet(this.level);\n if (!el) {\n return html ``;\n }\n return html `${el}`;\n }\n};\nKRRouterOutlet.styles = css `\n :host {\n display: block;\n height: 100%;\n }\n `;\nKRRouterOutlet = __decorate([\n customElement('kr-router-outlet')\n], KRRouterOutlet);\nexport { KRRouterOutlet };\n//# sourceMappingURL=router.js.map","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","/**\n * marked v12.0.2 - a markdown parser\n * Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$1(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch (e) {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$1(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$1(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n // precede setext continuation with 4 spaces so it isn't a setext\n let text = cap[0].replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, '\\n $1');\n text = rtrim(text.replace(/^ *>[ \\t]?/gm, ''), '\\n');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n (list.items[list.items.length - 1]).text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (const header of headers) {\n item.header.push({\n text: header,\n tokens: this.lexer.inline(header)\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map(cell => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell)\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$1(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n }\n else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$1(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape$1(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape$1(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape$1(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex()\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex()\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = '\\\\p{P}\\\\p{S}';\nconst punctuation = edit(/^((?![*_])[\\spunctuation])/, 'u')\n .replace(/punctuation/g, _punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex()\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\n/**\n * GFM + Line Breaks Inline Grammar\n */\nconst inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n};\n/**\n * exports\n */\nconst block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nconst inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n/**\n * Block Lexer\n */\nclass _Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options) {\n // TokenList cannot be created in one go\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n }\n else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n }\n else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n }\n else {\n src = src.replace(/^( *)(\\t+)/gm, (_, leading, tabs) => {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n return '<pre><code class=\"language-'\n + escape$1(lang)\n + '\">'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n blockquote(quote) {\n return `<blockquote>\\n${quote}</blockquote>\\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `<h${level}>${text}</h${level}>\\n`;\n }\n hr() {\n return '<hr>\\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n }\n listitem(text, task, checked) {\n return `<li>${text}</li>\\n`;\n }\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph(text) {\n return `<p>${text}</p>\\n`;\n }\n table(header, body) {\n if (body)\n body = `<tbody>${body}</tbody>`;\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n tablerow(content) {\n return `<tr>\\n${content}</tr>\\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `<strong>${text}</strong>`;\n }\n em(text) {\n return `<em>${text}</em>`;\n }\n codespan(text) {\n return `<code>${text}</code>`;\n }\n br() {\n return '<br>';\n }\n del(text) {\n return `<del>${text}</del>`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${title}\"`;\n }\n out += '>';\n return out;\n }\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass _TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n em(text) {\n return text;\n }\n codespan(text) {\n return text;\n }\n del(text) {\n return text;\n }\n html(text) {\n return text;\n }\n text(text) {\n return text;\n }\n link(href, title, text) {\n return '' + text;\n }\n image(href, title, text) {\n return '' + text;\n }\n br() {\n return '';\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass _Parser {\n options;\n renderer;\n textRenderer;\n constructor(options) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const genericToken = token;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n const headingToken = token;\n out += this.renderer.heading(this.parseInline(headingToken.tokens), headingToken.depth, unescape(this.parseInline(headingToken.tokens, this.textRenderer)));\n continue;\n }\n case 'code': {\n const codeToken = token;\n out += this.renderer.code(codeToken.text, codeToken.lang, !!codeToken.escaped);\n continue;\n }\n case 'table': {\n const tableToken = token;\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < tableToken.header.length; j++) {\n cell += this.renderer.tablecell(this.parseInline(tableToken.header[j].tokens), { header: true, align: tableToken.align[j] });\n }\n header += this.renderer.tablerow(cell);\n let body = '';\n for (let j = 0; j < tableToken.rows.length; j++) {\n const row = tableToken.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), { header: false, align: tableToken.align[k] });\n }\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n const blockquoteToken = token;\n const body = this.parse(blockquoteToken.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n const listToken = token;\n const ordered = listToken.ordered;\n const start = listToken.start;\n const loose = listToken.loose;\n let body = '';\n for (let j = 0; j < listToken.items.length; j++) {\n const item = listToken.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.renderer.checkbox(!!checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph': {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape': {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html': {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link': {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image': {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong': {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em': {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan': {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text': {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens'\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escape$1(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { marked } from 'marked';\nimport { KRFilePreview } from '@kodaris/krubble-components';\n/** Image MIME types the chatbot accepts (matches what Bedrock can ingest). */\nconst ACCEPTED_IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];\n/**\n * AI chatbot component with SSE streaming.\n *\n * Accepts a `send` callback that returns a streaming Response (SSE format).\n * Parses the stream for text tokens, status updates, and errors.\n * Dispatches a `stream-event` custom event for every SSE message so consumers can react.\n *\n * ## SSE Stream Format\n * The component expects `data:` lines with JSON payloads containing a `type` field:\n * - `STATUS` — `{ type: \"STATUS\", message: \"Thinking...\" }`\n * - `RESPONSE_PART` — `{ type: \"RESPONSE_PART\", message: \"token text\" }`\n * - `TOOL_RESULT` — `{ type: \"TOOL_RESULT\", message: \"tool_name\", data: {...} }`\n * - `ERROR` — `{ type: \"ERROR\", message: \"Something went wrong\" }`\n * - `HEARTBEAT` — `{ type: \"HEARTBEAT\" }` (ignored)\n *\n * The final event should include `finished: true` to signal stream completion.\n *\n * ## Usage\n * ```html\n * <kr-chatbot\n * title=\"AI Assistant\"\n * .send=${(params) => {\n * return fetch('/api/ai/chat/stream', {\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json', 'Accept': 'text/event-stream' },\n * credentials: 'include',\n * body: JSON.stringify({ userText: params.message })\n * });\n * }}\n * ></kr-chatbot>\n * ```\n *\n * @slot - Optional slot content displayed above the messages area\n *\n * @fires message-submit - When the user sends a message. Cancelable. Detail: `{ message: string }`\n * @fires stream-event - Dispatched for every SSE message received. Detail contains the parsed event data.\n */\nlet KRChatbot = class KRChatbot extends LitElement {\n constructor() {\n super(...arguments);\n // --- Private properties ---\n this._reader = null;\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._userHasScrolledUp = false;\n this._isDragging = false;\n this._isResizing = false;\n this._overlay = null;\n this._resizeDir = '';\n this._dragStartX = 0;\n this._dragStartY = 0;\n this._dragStartLeft = 0;\n this._dragStartTop = 0;\n this._resizeStartW = 0;\n this._resizeStartH = 0;\n /** Counter for depth-aware dragenter/dragleave tracking. */\n this._dragDepth = 0;\n /** Monotonic id source for pending attachments. */\n this._pendingSeq = 0;\n // --- @property (public API) ---\n /**\n * Callback function for sending messages. Receives the user's message and\n * current conversation history. Must return a Response with a streaming SSE body.\n */\n this.send = null;\n /**\n * Callback function called when the user clears the conversation.\n * Must return a Promise — messages are only cleared if it resolves.\n */\n this.clear = null;\n /**\n * Callback function called on init to load existing conversation messages.\n * Must return a Promise that resolves with an array of KRChatbotMessage.\n */\n this.load = null;\n /**\n * Conversation messages. Can be set externally for initial messages.\n * Updated internally as the conversation progresses.\n */\n this.messages = [];\n /**\n * Header title text.\n */\n this.title = 'Kat';\n /**\n * Header subtitle text (shown below title with a green status dot).\n */\n this.subtitle = '';\n /**\n * Input placeholder text.\n */\n this.placeholder = 'Type a message...';\n /**\n * Whether the chat panel is open. Only relevant in floating mode.\n */\n this.opened = false;\n /**\n * Hide the built-in floating toggle button. Use this when an external\n * control (e.g. the site-editor bar) owns opening the chat — the panel is\n * then driven via the `open()` / `close()` / `toggle()` methods.\n */\n this.hideToggle = false;\n // --- @state (internal) ---\n this._inputValue = '';\n this._isStreaming = false;\n this._statusText = '';\n this._error = '';\n /** Images staged in the composer, before the message is sent. */\n this._pendingAttachments = [];\n /** True while a file is being dragged over the panel (shows the drop overlay). */\n this._isDraggingFile = false;\n this._handleMouseMove = (e) => {\n if (this._isDragging) {\n let newLeft = this._dragStartLeft + (e.clientX - this._dragStartX);\n let newTop = this._dragStartTop + (e.clientY - this._dragStartY);\n const w = this._panelEl.offsetWidth;\n newLeft = Math.max(-w + 48, Math.min(newLeft, window.innerWidth - 48));\n newTop = Math.max(0, Math.min(newTop, window.innerHeight - 48));\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n else if (this._isResizing) {\n const dx = e.clientX - this._dragStartX;\n const dy = e.clientY - this._dragStartY;\n const minW = 340;\n const minH = 380;\n const maxW = window.innerWidth * 0.9;\n const maxH = window.innerHeight - 72;\n let newW = this._resizeStartW;\n let newH = this._resizeStartH;\n let newLeft = this._dragStartLeft;\n let newTop = this._dragStartTop;\n if (this._resizeDir.includes('e')) {\n newW = Math.max(minW, Math.min(this._resizeStartW + dx, maxW));\n }\n if (this._resizeDir.includes('w')) {\n newW = Math.max(minW, Math.min(this._resizeStartW - dx, maxW));\n newLeft = this._dragStartLeft + (this._resizeStartW - newW);\n }\n if (this._resizeDir.includes('s')) {\n newH = Math.max(minH, Math.min(this._resizeStartH + dy, maxH));\n }\n if (this._resizeDir.includes('n')) {\n newH = Math.max(minH, Math.min(this._resizeStartH - dy, maxH));\n newTop = this._dragStartTop + (this._resizeStartH - newH);\n }\n newLeft = Math.max(0, newLeft);\n newTop = Math.max(0, newTop);\n this._panelEl.style.width = newW + 'px';\n this._panelEl.style.height = newH + 'px';\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n };\n this._handleMouseUp = () => {\n if (this._isDragging) {\n this._isDragging = false;\n this._panelEl.classList.remove('panel--dragging');\n }\n if (this._isResizing) {\n this._isResizing = false;\n this._panelEl.classList.remove('panel--resizing');\n }\n this._hideOverlay();\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n this._saveState();\n };\n }\n // --- Lifecycle ---\n connectedCallback() {\n super.connectedCallback();\n if (this.load) {\n this.load().then((messages) => {\n if (messages && messages.length) {\n this.messages = messages;\n }\n }).catch(() => { });\n }\n this._restoreState();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n // Release any object URLs still held by staged attachments.\n this._pendingAttachments.forEach((p) => URL.revokeObjectURL(p.previewUrl));\n }\n updated(changed) {\n if (changed.has('messages') || changed.has('_statusText')) {\n if (!this._userHasScrolledUp && !this._isStreaming && this._messagesEl) {\n requestAnimationFrame(() => {\n if (this._messagesEl) {\n this._messagesEl.scrollTop = this._messagesEl.scrollHeight;\n }\n });\n }\n }\n if (changed.has('opened') && this.opened && this._inputEl) {\n setTimeout(() => {\n if (this._inputEl) {\n this._inputEl.focus();\n }\n }, 200);\n }\n }\n // --- Public methods ---\n /**\n * Stops the current stream without clearing the conversation.\n */\n stop() {\n this._handleStop();\n }\n /** Open the chat panel. */\n open() {\n if (!this.opened) {\n this._handleToggle();\n }\n }\n /** Close the chat panel. */\n close() {\n if (this.opened) {\n this._handleToggle();\n }\n }\n /** Toggle the chat panel open/closed. */\n toggle() {\n this._handleToggle();\n }\n // --- Private methods ---\n /**\n * Shows a full-viewport transparent overlay during drag/resize operations.\n *\n * This overlay solves a critical rendering issue when the chatbot is used inside\n * a page that contains iframes (e.g., the AI editor shell where the page content\n * is rendered in an iframe and the chatbot floats on top).\n *\n * Without the overlay, modifying the iframe's `pointer-events` style during drag\n * (to prevent it from swallowing mousemove events) causes Chrome to recalculate\n * compositing layers. This layer recalculation blocks the browser from repainting\n * the chatbot panel's style changes (width/height/position) even though they are\n * correctly applied to the DOM. The result is that the panel appears frozen while\n * the user drags, despite the inline styles updating on every mousemove.\n *\n * The overlay approach avoids this entirely: instead of touching the iframe's styles,\n * we place a transparent div (z-index 9999) above the iframe but below the chatbot\n * (z-index 10000). This div intercepts all mouse events that would otherwise hit the\n * iframe, without triggering any compositing layer changes on the iframe itself.\n */\n _showOverlay() {\n if (!this._overlay) {\n this._overlay = document.createElement('div');\n this._overlay.style.cssText = 'position:fixed; inset:0; z-index:9999; display:none;';\n document.body.appendChild(this._overlay);\n }\n this._overlay.style.display = 'block';\n }\n _hideOverlay() {\n if (this._overlay) {\n this._overlay.style.display = 'none';\n }\n }\n _handleHeaderMouseDown(e) {\n // Ignore clicks on buttons inside the header\n if (e.target.closest('button')) {\n return;\n }\n if (!this._panelEl) {\n return;\n }\n this._isDragging = true;\n this._panelEl.classList.add('panel--dragging');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n e.preventDefault();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleResizeMouseDown(e) {\n if (!this._panelEl) {\n return;\n }\n this._isResizing = true;\n this._resizeDir = e.currentTarget.dataset.dir || '';\n this._panelEl.classList.add('panel--resizing');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n this._resizeStartW = rect.width;\n this._resizeStartH = rect.height;\n e.preventDefault();\n e.stopPropagation();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleToggle() {\n this.opened = !this.opened;\n if (this.opened && this._panelEl) {\n this._applyStoredLayout();\n }\n this._saveState();\n }\n _saveState() {\n try {\n const state = { opened: String(this.opened) };\n if (this._panelEl) {\n const s = this._panelEl.style;\n if (s.left) {\n state.left = s.left;\n }\n if (s.top) {\n state.top = s.top;\n }\n if (s.width) {\n state.width = s.width;\n }\n if (s.height) {\n state.height = s.height;\n }\n if (s.position) {\n state.position = s.position;\n }\n }\n localStorage.setItem('kr-chatbot-state', JSON.stringify(state));\n }\n catch { /* localStorage not available */ }\n }\n _restoreState() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.opened === 'true') {\n this.opened = true;\n // Apply layout after first render\n this.updateComplete.then(() => this._applyStoredLayout());\n }\n }\n catch { /* localStorage not available */ }\n }\n _applyStoredLayout() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw || !this._panelEl) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.position) {\n this._panelEl.style.position = state.position;\n }\n if (state.left) {\n this._panelEl.style.left = state.left;\n }\n if (state.top) {\n this._panelEl.style.top = state.top;\n }\n if (state.width) {\n this._panelEl.style.width = state.width;\n }\n if (state.height) {\n this._panelEl.style.height = state.height;\n }\n }\n catch { /* localStorage not available */ }\n }\n _handleInputChange(e) {\n this._inputValue = e.target.value;\n // Auto-resize textarea\n const textarea = e.target;\n textarea.style.height = 'auto';\n textarea.style.height = Math.min(textarea.scrollHeight, 120) + 'px';\n }\n _handleKeyDown(e) {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n this._handleSubmit();\n }\n }\n // --- Attachments ---\n _openFilePicker() {\n this._fileInputEl?.click();\n }\n _handleFileInputChange(e) {\n const input = e.target;\n if (input.files) {\n this._addFiles(input.files);\n }\n // Reset so picking the same file again re-fires change.\n input.value = '';\n }\n _handlePaste(e) {\n const items = e.clipboardData?.items;\n if (!items) {\n return;\n }\n const files = [];\n for (let i = 0; i < items.length; i++) {\n if (items[i].kind === 'file') {\n const file = items[i].getAsFile();\n if (file) {\n files.push(file);\n }\n }\n }\n if (files.length) {\n e.preventDefault();\n this._addFiles(files);\n }\n }\n _handleDragEnter(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n e.preventDefault();\n this._dragDepth++;\n this._isDraggingFile = true;\n }\n _handleDragOver(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n // Required so the drop event fires.\n e.preventDefault();\n }\n _handleDragLeave(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n this._dragDepth--;\n if (this._dragDepth <= 0) {\n this._dragDepth = 0;\n this._isDraggingFile = false;\n }\n }\n _handleDrop(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n e.preventDefault();\n this._dragDepth = 0;\n this._isDraggingFile = false;\n if (e.dataTransfer?.files) {\n this._addFiles(e.dataTransfer.files);\n }\n }\n _hasFiles(e) {\n return Array.from(e.dataTransfer?.types || []).includes('Files');\n }\n /** Stage a set of image files in the composer (held locally until send). */\n _addFiles(fileList) {\n const files = Array.from(fileList).filter((f) => ACCEPTED_IMAGE_TYPES.includes(f.type));\n if (!files.length) {\n return;\n }\n files.forEach((file) => {\n const pending = {\n localId: 'att-' + this._pendingSeq++,\n file,\n name: file.name,\n previewUrl: URL.createObjectURL(file),\n };\n this._pendingAttachments = [...this._pendingAttachments, pending];\n });\n }\n _removePending(localId) {\n const target = this._pendingAttachments.find((p) => p.localId === localId);\n if (target) {\n URL.revokeObjectURL(target.previewUrl);\n }\n this._pendingAttachments = this._pendingAttachments.filter((p) => p.localId !== localId);\n }\n _clearPending() {\n this._pendingAttachments.forEach((p) => URL.revokeObjectURL(p.previewUrl));\n this._pendingAttachments = [];\n }\n /** Open the shared full-screen previewer for an attachment. */\n _openAttachment(att) {\n KRFilePreview.open({\n src: att.url,\n name: att.name || 'image',\n });\n }\n /** Whether the send button is active: needs text or at least one image. */\n _canSend() {\n return Boolean(this._inputValue.trim()) || this._pendingAttachments.length > 0;\n }\n _handleSubmit() {\n if (!this.send || this._isStreaming) {\n return;\n }\n const messageText = this._inputValue.trim();\n const pending = this._pendingAttachments;\n // Allow sending an image with no text, but require at least one of them.\n if (!messageText && !pending.length) {\n return;\n }\n // The raw files sent to the backend, and the display attachments for the\n // sent message. The message reuses each preview object URL, so ownership of\n // those URLs transfers to the message (we don't revoke them here).\n const files = pending.map((p) => p.file);\n const attachments = pending.map((p) => ({\n url: p.previewUrl,\n name: p.name,\n mimeType: p.file.type,\n }));\n const submitEvent = new CustomEvent('message-submit', {\n detail: {\n message: messageText,\n files,\n },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(submitEvent);\n if (submitEvent.defaultPrevented) {\n return;\n }\n const userMessage = {\n role: 'user',\n content: messageText,\n };\n if (attachments.length) {\n userMessage.attachments = attachments;\n }\n this.messages = [...this.messages, userMessage];\n this._inputValue = '';\n this._error = '';\n this._userHasScrolledUp = false;\n // Clear the composer without revoking the object URLs — the sent message now\n // owns them for display.\n this._pendingAttachments = [];\n // Reset textarea height\n if (this._inputEl) {\n this._inputEl.style.height = 'auto';\n }\n // Add empty assistant message to stream into\n this.messages = [...this.messages, {\n role: 'assistant',\n content: '',\n }];\n this._isStreaming = true;\n this._statusText = '';\n // Scroll user's message to the top (Gemini-style).\n // Set min-height on the assistant message = container height so there's enough\n // scroll room below the user message to push it to the top.\n this.updateComplete.then(() => {\n if (!this._messagesEl) {\n return;\n }\n // Clear min-height from previous responses\n this._messagesEl.querySelectorAll('.message--assistant').forEach((el) => {\n el.style.minHeight = '';\n });\n const allMsgEls = this._messagesEl.querySelectorAll('.message');\n const userMsgEl = allMsgEls[this.messages.length - 2];\n const assistantMsgEl = allMsgEls[this.messages.length - 1];\n if (assistantMsgEl) {\n assistantMsgEl.style.minHeight = this._messagesEl.clientHeight + 'px';\n }\n if (userMsgEl) {\n this._messagesEl.scrollTop = userMsgEl.offsetTop - this._messagesEl.offsetTop - 24;\n }\n });\n this.send({\n message: messageText,\n messages: this.messages.slice(0, -1),\n files,\n }).then((response) => {\n if (!response.ok) {\n this._handleStreamError('Request failed: ' + response.status);\n return;\n }\n if (!response.body) {\n this._handleStreamError('No response body');\n return;\n }\n this._reader = response.body.getReader();\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStop() {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this._isStreaming = false;\n this._statusText = '';\n }\n _handleClear() {\n if (!this.clear) {\n return;\n }\n this.clear().then(() => {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this.messages = [];\n this._isStreaming = false;\n this._statusText = '';\n this._error = '';\n this._inputValue = '';\n this._userHasScrolledUp = false;\n });\n }\n _handleMessagesScroll(e) {\n const container = e.target;\n const distanceFromBottom = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (distanceFromBottom > 50) {\n this._userHasScrolledUp = true;\n }\n else {\n this._userHasScrolledUp = false;\n }\n }\n _handleErrorDismiss() {\n this._error = '';\n }\n _readStreamChunk() {\n if (!this._reader) {\n return;\n }\n this._reader.read().then((result) => {\n if (result.done) {\n this._isStreaming = false;\n this._statusText = '';\n this._reader = null;\n return;\n }\n this._buffer = this._buffer + this._decoder.decode(result.value, { stream: true });\n const events = this._buffer.split('\\n\\n');\n this._buffer = events.pop() || '';\n for (let i = 0; i < events.length; i++) {\n if (!events[i].trim()) {\n continue;\n }\n const lines = events[i].split('\\n');\n for (let j = 0; j < lines.length; j++) {\n if (!lines[j].startsWith('data:')) {\n continue;\n }\n const raw = lines[j].slice(5).trim();\n if (!raw) {\n continue;\n }\n let data;\n try {\n data = JSON.parse(raw);\n }\n catch {\n continue;\n }\n // Dispatch a generic event for every SSE message so consumers can listen and react\n this.dispatchEvent(new CustomEvent('stream-event', {\n detail: data,\n bubbles: true,\n composed: true,\n }));\n if (data.type === 'STATUS') {\n if (data.message) {\n this._statusText = String(data.message);\n }\n }\n else if (data.type === 'REASONING_PART') {\n if (data.message) {\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].role === 'assistant') {\n if (!this.messages[lastIndex].reasoning) {\n this.messages[lastIndex].reasoning = '';\n }\n this.messages[lastIndex].reasoning += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'RESPONSE_PART') {\n if (data.message) {\n this._statusText = '';\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].role === 'assistant') {\n this.messages[lastIndex].content += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'ERROR') {\n this._handleStreamError(String(data.message || 'Unknown error'));\n }\n if (data.finished) {\n this._isStreaming = false;\n this._statusText = '';\n this._reader = null;\n }\n }\n }\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStreamError(message) {\n this._isStreaming = false;\n this._statusText = '';\n this._error = message;\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n // Remove the empty assistant message if it has no content\n if (this.messages.length > 0) {\n const lastMessage = this.messages[this.messages.length - 1];\n if (lastMessage.role === 'assistant' && !lastMessage.content) {\n this.messages = this.messages.slice(0, -1);\n }\n }\n }\n // --- Render ---\n render() {\n return html `\n ${this.hideToggle ? nothing : html `\n <button\n class=${classMap({\n 'toggle': true,\n 'toggle--hidden': this.opened,\n })}\n @click=${this._handleToggle}\n title=\"Open chat\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n class=\"toggle-icon\"\n >\n <path d=\"M12 2C6.48 2 2 6.03 2 11c0 2.61 1.19 4.94 3.05 6.55L4 22l4.8-2.4C9.82 19.85 10.88 20 12 20c5.52 0 10-4.03 10-9S17.52 2 12 2z\"/>\n <path d=\"M8 11h.01M12 11h.01M16 11h.01\" stroke-width=\"2.5\"/>\n </svg>\n </button>\n `}\n\n <div\n class=${classMap({\n 'panel': true,\n 'panel--opened': this.opened,\n })}\n @dragenter=${this._handleDragEnter}\n @dragover=${this._handleDragOver}\n @dragleave=${this._handleDragLeave}\n @drop=${this._handleDrop}\n >\n ${this._isDraggingFile ? html `\n <div class=\"drop-overlay\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5\"\n />\n </svg>\n <span>Drop images to attach</span>\n </div>\n ` : nothing}\n <div\n class=\"resize resize--n\"\n data-dir=\"n\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--s\"\n data-dir=\"s\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--w\"\n data-dir=\"w\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--e\"\n data-dir=\"e\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--nw\"\n data-dir=\"nw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--ne\"\n data-dir=\"ne\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--sw\"\n data-dir=\"sw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--se\"\n data-dir=\"se\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div class=\"header\" @mousedown=${this._handleHeaderMouseDown}>\n <div class=\"header-left\">\n <div class=\"header-info\">\n <span class=\"header-title\">${this.title}</span>\n ${this.subtitle ? html `\n <span class=\"header-subtitle\">${this.subtitle}</span>\n ` : nothing}\n </div>\n </div>\n <div class=\"header-actions\">\n ${this.messages.length > 0 ? html `\n <button\n class=\"header-action\"\n @click=${this._handleClear}\n title=\"Clear conversation\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"\n />\n </svg>\n </button>\n ` : nothing}\n <button\n class=\"header-action\"\n @click=${this._handleToggle}\n title=\"Close\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"messages\" @scroll=${this._handleMessagesScroll}>\n ${this.messages.length === 0 ? html `\n <div class=\"empty\">\n <span class=\"empty-text\">What can I help you with?</span>\n </div>\n ` : nothing}\n ${this.messages.map((msg) => html `\n <div class=${classMap({\n 'message': true,\n 'message--user': msg.role === 'user',\n 'message--assistant': msg.role === 'assistant',\n })}>\n ${msg.reasoning ? html `\n <details class=\"reasoning\">\n <summary>Thinking</summary>\n <div class=\"reasoning-content\">${msg.reasoning}</div>\n </details>\n ` : nothing}\n ${msg.attachments && msg.attachments.length ? html `\n <div class=\"attachments\">\n ${msg.attachments.map((att) => html `\n <button\n class=\"attachment\"\n type=\"button\"\n title=${att.name || 'View image'}\n @click=${() => this._openAttachment(att)}\n >\n <img src=${att.url} alt=${att.name || ''} />\n </button>\n `)}\n </div>\n ` : nothing}\n ${msg.content ? html `\n <div class=\"message-content\">\n ${msg.role === 'user'\n ? msg.content\n : unsafeHTML(marked.parse(msg.content, { breaks: true }))}\n </div>\n ` : nothing}\n ${msg.role === 'assistant' && this._isStreaming && msg === this.messages[this.messages.length - 1] ? html `\n <div class=\"typing\">\n <span></span>\n <span></span>\n <span></span>\n </div>\n ` : nothing}\n </div>\n `)}\n </div>\n\n ${this._error ? html `\n <div class=\"error\">\n <span>${this._error}</span>\n <button class=\"error-dismiss\" @click=${this._handleErrorDismiss}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"error-dismiss-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ` : nothing}\n\n <div class=\"footer\">\n ${this._pendingAttachments.length ? html `\n <div class=\"composer-attachments\">\n ${repeat(this._pendingAttachments, (p) => p.localId, (p) => html `\n <div class=\"chip\">\n <img src=${p.previewUrl} alt=${p.name} />\n <button\n class=\"chip-remove\"\n title=\"Remove\"\n @click=${() => this._removePending(p.localId)}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"3\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n `)}\n </div>\n ` : nothing}\n <input\n class=\"file-input\"\n type=\"file\"\n accept=\"image/png,image/jpeg,image/gif,image/webp\"\n multiple\n hidden\n @change=${this._handleFileInputChange}\n />\n <div class=\"input-wrapper\">\n <button\n class=\"input-plus\"\n title=\"Attach image\"\n @click=${this._openFilePicker}\n >+</button>\n <textarea\n class=\"input\"\n .value=${this._inputValue}\n placeholder=${this.placeholder}\n rows=\"1\"\n @input=${this._handleInputChange}\n @keydown=${this._handleKeyDown}\n @paste=${this._handlePaste}\n ></textarea>\n ${this._isStreaming ? html `\n <button\n class=\"stop\"\n @click=${this._handleStop}\n title=\"Stop generating\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n class=\"stop-icon\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"12\"\n height=\"12\"\n rx=\"2\"\n />\n </svg>\n </button>\n ` : html `\n <button\n class=${classMap({\n 'send': true,\n 'send--disabled': !this._canSend(),\n })}\n @click=${this._handleSubmit}\n title=\"Send message\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n class=\"send-icon\"\n >\n <path d=\"M12 19V5M5 12l7-7 7 7\"/>\n </svg>\n </button>\n `}\n </div>\n </div>\n </div>\n `;\n }\n};\nKRChatbot.styles = css `\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n display: block;\n font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 14px;\n line-height: 1.6;\n\n --kr-chatbot-primary: #163052;\n --kr-chatbot-primary-hover: #1e4068;\n --kr-chatbot-bg: #ffffff;\n --kr-chatbot-border: #d9d9d9;\n --kr-chatbot-text: #1a1a2e;\n --kr-chatbot-text-secondary: #64668b;\n --kr-chatbot-user-bg: #e9e9e980;\n --kr-chatbot-error-bg: #fef2f2;\n --kr-chatbot-error-text: #dc2626;\n --kr-chatbot-success: #00b894;\n --kr-chatbot-toggle-size: 56px;\n --kr-chatbot-panel-width: 440px;\n --kr-chatbot-panel-height: 620px;\n }\n\n :host {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 10000;\n }\n\n /* Toggle button */\n .toggle {\n width: var(--kr-chatbot-toggle-size);\n height: var(--kr-chatbot-toggle-size);\n border-radius: 18px;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 24px rgba(22, 48, 82, 0.4);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .toggle:hover {\n transform: scale(1.05);\n box-shadow: 0 6px 32px rgba(22, 48, 82, 0.5);\n }\n\n .toggle--hidden {\n transform: scale(0);\n opacity: 0;\n pointer-events: none;\n }\n\n .toggle-icon {\n width: 26px;\n height: 26px;\n }\n\n /* Panel */\n .panel {\n display: none;\n flex-direction: column;\n background: var(--kr-chatbot-bg);\n overflow: hidden;\n position: absolute;\n bottom: 0;\n right: 0;\n width: var(--kr-chatbot-panel-width);\n height: var(--kr-chatbot-panel-height);\n max-height: calc(100vh - 72px);\n border-radius: 16px;\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08), 0 2px 12px rgba(0, 0, 0, 0.04);\n border: 1px solid rgba(0, 0, 0, 0.08);\n animation: chatbot-panel-in 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n transform-origin: bottom right;\n }\n\n .panel--opened {\n display: flex;\n }\n\n @keyframes chatbot-panel-in {\n from {\n opacity: 0;\n transform: scale(0.92) translateY(20px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n /* Header */\n .header {\n padding: 0 16px 0 24px;\n height: 64px;\n background: #ffffff;\n color: #000000;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n.header-info {\n display: flex;\n flex-direction: column;\n }\n\n .header-title {\n font-size: 16px;\n font-weight: 600;\n }\n\n .header-subtitle {\n color: rgba(255, 255, 255, 0.5);\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .header-subtitle::before {\n content: '';\n width: 5px;\n height: 5px;\n background: var(--kr-chatbot-success);\n border-radius: 50%;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .header-action {\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n color: rgb(0 0 0 / 70%);\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s;\n }\n\n .header-action:hover {\n background: rgba(0, 0, 0, 0.05);\n color: #000000;\n }\n\n .header-action-icon {\n width: 20px;\n height: 20px;\n }\n\n /* Messages */\n .messages {\n flex: 1;\n overflow-y: auto;\n padding: 32px;\n display: flex;\n flex-direction: column;\n gap: 24px;\n scroll-behavior: smooth;\n background: white;\n }\n\n .messages::-webkit-scrollbar {\n width: 4px;\n }\n\n .messages::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .messages::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.08);\n border-radius: 2px;\n }\n\n .empty {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: var(--kr-chatbot-text-secondary);\n gap: 8px;\n }\n\n.empty-text {\n font-size: 14px;\n color: rgb(0 0 0 / 80%);\n }\n\n .message {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n animation: chatbot-msg-in 0.3s ease-out;\n }\n\n @keyframes chatbot-msg-in {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .message--user {\n align-self: flex-end;\n align-items: flex-end;\n max-width: 85%;\n }\n\n .message--assistant {\n align-self: flex-start;\n gap: 24px;\n }\n\n .message-content {\n line-height: 1.7;\n word-wrap: break-word;\n overflow-wrap: break-word;\n }\n\n .message--user .message-content {\n display: inline-block;\n background: var(--kr-chatbot-user-bg);\n color: #000000;\n padding: 10px 16px;\n border-radius: 20px;\n border-bottom-right-radius: 6px;\n font-size: 14px;\n }\n\n .message--assistant .message-content {\n background: transparent;\n color: #000000;\n padding: 0;\n font-size: 14px;\n }\n\n .message--assistant .message-content pre {\n background: #1e1e1e;\n color: #d4d4d4;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.4;\n }\n\n .message--assistant .message-content code {\n font-family: 'SF Mono', 'Fira Code', Monaco, monospace;\n font-size: 13px;\n }\n\n .message--assistant .message-content :not(pre) > code {\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 5px;\n border-radius: 3px;\n }\n\n .message--assistant .message-content strong {\n font-weight: 600;\n }\n\n .message--assistant .message-content p {\n margin: 0 0 8px 0;\n }\n\n .message--assistant .message-content p:last-child {\n margin-bottom: 0;\n }\n\n /* Reasoning */\n .reasoning {\n border-radius: 6px;\n background: rgb(244 244 244 / 80%);\n font-size: 12px;\n }\n\n .reasoning summary {\n cursor: pointer;\n padding: 6px 10px 6px 10px;\n color: black;\n user-select: none;\n }\n\n .reasoning-content {\n padding: 6px 10px 10px;\n color: black;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n\n.typing {\n display: flex;\n gap: 4px;\n padding: 4px 0;\n }\n\n .typing span {\n width: 6px;\n height: 6px;\n background: var(--kr-chatbot-text-secondary);\n border-radius: 50%;\n animation: chatbot-typing 1.4s infinite;\n opacity: 0.4;\n }\n\n .typing span:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .typing span:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes chatbot-typing {\n 0%, 60%, 100% {\n opacity: 0.4;\n transform: translateY(0);\n }\n 30% {\n opacity: 1;\n transform: translateY(-4px);\n }\n }\n\n /* Error */\n .error {\n padding: 8px 16px;\n background: var(--kr-chatbot-error-bg);\n color: var(--kr-chatbot-error-text);\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .error-dismiss {\n background: none;\n border: none;\n color: var(--kr-chatbot-error-text);\n cursor: pointer;\n padding: 2px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n .error-dismiss-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Footer / Input */\n .footer {\n padding: 16px 16px 16px;\n flex-shrink: 0;\n background: white;\n }\n\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 4px;\n background: white;\n border: 1px solid var(--kr-chatbot-border);\n border-radius: 26px;\n padding: 6px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .input-wrapper:focus-within {\n border-color: #b0b0b0;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);\n }\n\n .input-plus {\n width: 34px;\n height: 34px;\n border: none;\n background: transparent;\n color: var(--kr-chatbot-text);\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: 20px;\n font-weight: 300;\n transition: background 0.15s;\n }\n\n .input-plus:hover {\n background: #f8f9fc;\n }\n\n .input {\n flex: 1;\n border: none;\n outline: none;\n resize: none;\n font-family: inherit;\n font-size: 15px;\n line-height: 1.5;\n padding: 4px 0;\n min-height: 26px;\n max-height: 120px;\n background: transparent;\n color: black;\n }\n\n .input::placeholder {\n color: #b0b0b0;\n }\n\n .send {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .send:hover {\n background: var(--kr-chatbot-primary-hover);\n }\n\n .send--disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n .send--disabled:hover {\n background: var(--kr-chatbot-primary);\n }\n\n .send-icon {\n width: 16px;\n height: 16px;\n }\n\n .stop {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-error-text);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .stop:hover {\n background: #b91c1c;\n }\n\n .stop-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Header drag cursor */\n .header {\n cursor: grab;\n user-select: none;\n }\n\n .header:active {\n cursor: grabbing;\n }\n\n /* Drag / Resize states */\n .panel--dragging,\n .panel--resizing {\n transition: none;\n user-select: none;\n }\n\n .panel--dragging {\n box-shadow: 0 32px 96px rgba(0, 0, 0, 0.18), 0 12px 40px rgba(0, 0, 0, 0.1);\n }\n\n /* Resize handles */\n .resize {\n position: absolute;\n z-index: 10;\n }\n\n .resize--n { top: -4px; left: 12px; right: 12px; height: 8px; cursor: n-resize; }\n .resize--s { bottom: -4px; left: 12px; right: 12px; height: 8px; cursor: s-resize; }\n .resize--w { left: -4px; top: 12px; bottom: 12px; width: 8px; cursor: w-resize; }\n .resize--e { right: -4px; top: 12px; bottom: 12px; width: 8px; cursor: e-resize; }\n .resize--nw { top: -4px; left: -4px; width: 16px; height: 16px; cursor: nw-resize; }\n .resize--ne { top: -4px; right: -4px; width: 16px; height: 16px; cursor: ne-resize; }\n .resize--sw { bottom: -4px; left: -4px; width: 16px; height: 16px; cursor: sw-resize; }\n .resize--se { bottom: -4px; right: -4px; width: 16px; height: 16px; cursor: se-resize; }\n\n /* Attachment thumbnails inside a sent message bubble */\n .attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .message--user .attachments {\n justify-content: flex-end;\n }\n\n .attachment {\n width: 120px;\n height: 120px;\n border-radius: 12px;\n overflow: hidden;\n background: #f2f2f4;\n border: 1px solid rgba(0, 0, 0, 0.08);\n cursor: zoom-in;\n flex-shrink: 0;\n padding: 0;\n }\n\n .attachment img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n /* Composer attachment chips (pre-send) */\n .composer-attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 0 6px 10px;\n }\n\n .chip {\n position: relative;\n width: 56px;\n height: 56px;\n border-radius: 10px;\n overflow: hidden;\n background: #f2f2f4;\n border: 1px solid var(--kr-chatbot-border);\n flex-shrink: 0;\n }\n\n .chip img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .chip-remove {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n border: none;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n line-height: 1;\n }\n\n .chip-remove:hover {\n background: rgba(0, 0, 0, 0.8);\n }\n\n .chip-remove svg {\n width: 10px;\n height: 10px;\n }\n\n /* Drag-and-drop overlay */\n .drop-overlay {\n position: absolute;\n inset: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 10px;\n /* Frosted, mostly-opaque surface so the chat content behind is masked\n and doesn't clash with the overlay label. */\n background: rgba(255, 255, 255, 0.92);\n backdrop-filter: blur(3px);\n border: 2px dashed var(--kr-chatbot-primary);\n border-radius: 16px;\n color: var(--kr-chatbot-primary);\n font-weight: 600;\n font-size: 15px;\n pointer-events: none;\n }\n\n .drop-overlay svg {\n width: 32px;\n height: 32px;\n }\n\n `;\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"send\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"clear\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"load\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"messages\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"subtitle\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"placeholder\", void 0);\n__decorate([\n property({\n type: Boolean,\n reflect: true\n })\n], KRChatbot.prototype, \"opened\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'hide-toggle',\n reflect: true\n })\n], KRChatbot.prototype, \"hideToggle\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_inputValue\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_isStreaming\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_statusText\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_error\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_pendingAttachments\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_isDraggingFile\", void 0);\n__decorate([\n query('.panel')\n], KRChatbot.prototype, \"_panelEl\", void 0);\n__decorate([\n query('.messages')\n], KRChatbot.prototype, \"_messagesEl\", void 0);\n__decorate([\n query('.input')\n], KRChatbot.prototype, \"_inputEl\", void 0);\n__decorate([\n query('.file-input')\n], KRChatbot.prototype, \"_fileInputEl\", void 0);\nKRChatbot = __decorate([\n customElement('kr-chatbot')\n], KRChatbot);\nexport { KRChatbot };\n//# sourceMappingURL=chatbot.js.map"],"names":["t","e","s","o","r","n","i","S","c","h","a","l","p","d","u","f","b","y","v","m","M","__decorate","this","LitElement","html","css","state","customElement","nothing","classMap","unsafeHTML","property","repeat","query"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA,MAAMA,GAAC,CAAC,UAAU,CAACC,GAAC,CAACD,GAAC,CAAC,UAAU,GAAG,MAAM,GAAGA,GAAC,CAAC,QAAQ,EAAEA,GAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,CAAC,SAAS,CAACE,GAAC,CAAC,MAAM,EAAE,CAACC,GAAC,CAAC,IAAI,OAAO,WAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,GAAGD,GAAC,CAAC,MAAM,KAAK,CAAC,mEAAmE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAGD,GAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAACE,GAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAEA,GAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAC,MAAMC,GAAC,CAAC,CAAC,EAAE,IAAIC,GAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAACH,GAAC,CAAC,CAACI,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAE,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC,sFAAsF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAID,GAAC,CAAC,CAAC,CAAC,CAAC,CAACH,GAAC,CAAC,CAAC,CAACK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGN,GAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAACD,GAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,CAACQ,GAAC,CAACP,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAOG,GAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;ACJxzC;AACA;AACA;AACA;AACA,GAAG,KAAK,CAAC,EAAE,CAACE,GAAC,CAAC,cAAc,CAACL,GAAC,CAAC,wBAAwB,CAACQ,GAAC,CAAC,mBAAmB,CAACL,GAAC,CAAC,qBAAqB,CAACD,GAAC,CAAC,cAAc,CAACE,GAAC,CAAC,CAAC,MAAM,CAACK,GAAC,CAAC,UAAU,CAACF,GAAC,CAACE,GAAC,CAAC,YAAY,CAACC,GAAC,CAACH,GAAC,CAACA,GAAC,CAAC,WAAW,CAAC,EAAE,CAACI,GAAC,CAACF,GAAC,CAAC,8BAA8B,CAACG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAACC,GAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAACH,GAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAACI,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAACT,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACU,GAAC,CAAC,CAAC,SAAS,CAAC,IAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAACF,GAAC,CAAC,OAAO,CAAC,KAAE,CAAC,UAAU,CAAC,KAAE,CAAC,UAAU,CAACC,GAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAACL,GAAC,CAAC,mBAAmB,GAAG,IAAI,OAAO,WAAC,MAAM,CAAC,SAAS,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,EAAC,CAAC,WAAW,kBAAkB,EAAE,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAACM,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,KAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAEf,GAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAACQ,GAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,OAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,UAAU,CAAC,IAAE,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAEO,GAAC,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAACH,GAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAACR,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAC,CAAC,OAAO,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAACQ,GAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAACA,GAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAGT,GAAC,CAAC,CAAC,CAAC,CAAC,GAAGD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAACH,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAM,MAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa,KAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAOE,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,IAAI,EAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,IAAI,EAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,IAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAACY,GAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAACA,GAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAEC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAE,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAE,CAAC,IAAI,cAAc,EAAE,CAAC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAM,KAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAACE,GAAC,CAAC,aAAa,CAAC,EAAE,CAACA,GAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAACA,GAAC,CAACJ,GAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,GAAG,CAACI,GAAC,CAACJ,GAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,CAACD,GAAC,GAAG,CAAC,eAAe,CAACK,GAAC,CAAC,CAAC,CAAC,CAACP,GAAC,CAAC,uBAAuB,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;;ACLjyL;AACA;AACA;AACA;AACA;AACK,MAACV,GAAC,CAAC,UAAU,CAACM,GAAC,CAAC,CAAC,EAAE,CAAC,CAACJ,GAAC,CAACF,GAAC,CAAC,YAAY,CAACC,GAAC,CAACC,GAAC,CAACA,GAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAACO,GAAC,CAAC,OAAO,CAACN,GAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,GAAC,CAAC,GAAG,CAACF,GAAC,CAACC,GAAC,CAAC,CAAC,CAAC,EAAEC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAACG,GAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAACM,GAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAACI,GAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,MAAM,CAACC,GAAC,CAAC,IAAI,CAACP,GAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAACE,GAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,gCAAgC,CAAC,CAAC,OAAO,MAAM,GAAGb,GAAC,CAACA,GAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAACiB,GAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAGA,GAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,GAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACP,GAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,GAAGA,GAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEM,GAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAACN,GAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAGO,GAAC,CAAC,CAAC,CAACD,GAAC,EAAE,CAAC,CAACN,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAGA,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAGM,GAAC,CAAC,CAAC,CAACd,GAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAACK,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAACN,GAAC,CAAC,CAAC,EAAE,CAAC,CAACA,GAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAACM,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAACN,GAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAACA,GAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAACD,GAAC,CAACA,GAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAACM,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,GAAC,EAAE,EAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,GAAGH,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAACF,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAE,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASiB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,IAAI,UAAU,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,KAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACN,GAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAACN,GAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAACA,GAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,KAAE,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAACF,GAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAACc,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAA+B,CAAC,CAAC,CAAmB,CAAC,CAAC,CAAC,CAACpB,GAAC,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,eAAe,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAACQ,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;ACJp7N;AACA;AACA;AACA;AACA,GAAG,MAAMN,GAAC,CAAC,UAAU,WAAC,MAAM,CAAC,SAASF,GAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAACC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAC,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAE,EAAC,CAAC,oBAAoB,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,KAAE,EAAC,CAAC,MAAM,EAAE,CAAC,OAAOG,CAAC,CAAC,EAACE,GAAC,CAAC,aAAa,CAAC,IAAE,CAACA,GAAC,CAAC,WAAW,CAAC,CAAC,IAAE,CAACJ,GAAC,CAAC,wBAAwB,GAAG,CAAC,UAAU,CAACI,GAAC,CAAC,CAAC,CAAC,MAAMH,GAAC,CAACD,GAAC,CAAC,yBAAyB,CAACC,GAAC,GAAG,CAAC,UAAU,CAACG,GAAC,CAAC,CAAC,CAAsD,CAACJ,GAAC,CAAC,kBAAkB,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;;ACLhyB;AACA;AACA;AACA;AACA;AACA,MAAMF,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;;ACJ5G;AACA;AACA;AACA;AACA,GAAG,MAAMG,GAAC,CAAC,CAAC,SAAS,CAAC,IAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAACF,GAAC,CAAC,OAAO,CAAC,KAAE,CAAC,UAAU,CAACD,GAAC,CAAC,CAACI,GAAC,CAAC,CAAC,CAAC,CAACD,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAACC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;ACJ/yB;AACA;AACA;AACA;AACA,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOJ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAE,CAAC,SAAS,CAAC,KAAE,CAAC,CAAC;;ACLvD;AACA;AACA;AACA;AACA;AACA,MAAMC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;ACJzH;AACA;AACA;AACA;AACA,GAAG,SAASA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAoP,OAAOD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;ACL5W;AACA;AACA;AACA;AACA;AACA,MAAMA,GAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAkD,CAAC,CAACC,GAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;;ACJ3S;AACA;AACA;AACA;AACA,aAAG,MAAM,CAAC,SAASC,GAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAACF,CAAC,CAAC,CAAC,CAAC,IAAI,GAAGK,GAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGL,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAACL,GAAC,CAAC,aAAa,CAAC,YAAY,CAACA,GAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAACG,GAAC,CAACH,GAAC,CAAC;;ACJphB;AACA;AACA;AACA;AACA,GAAG,MAAM,CAAC,CAACC,GAAC,CAAC,cAAcI,GAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAGF,GAAC,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,oGAAoG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAOJ,CAAC,CAAC,CAAC,CAAC;;ACL3uB,IAAIqB,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;AAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;AAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;AACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAID,IAAI,aAAa,GAAG,MAAM,aAAa,SAASC,GAAU,CAAC;AAC3D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE;AACrB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,KAAK,CAAC,iBAAiB,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AAC9C,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;AAC5C,YAAY,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1C,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK;AACpD,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,CAAC,EAAE;AACxB,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;AAClC,QAAQ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;AACpC,IAAI;AACJ,IAAI,eAAe,CAAC,CAAC,EAAE;AACvB,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;AAClC,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK;AACnC,IAAI;AACJ,IAAI,cAAc,CAAC,CAAC,EAAE;AACtB,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;AAClC,QAAQ,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,KAAK;AAClC,IAAI;AACJ,IAAI,kBAAkB,CAAC,CAAC,EAAE;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;AACtC,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;AACvC,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;AACxC,YAAY,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,SAAS;AACtC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,CAAC,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;AAC/B,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,OAAOC,CAAI,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,IAAI,CAAC,KAAK;AAC7B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;AACxC,mBAAmB,EAAE,IAAI,CAAC,aAAa;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,IAAI,CAAC,IAAI;AAC5B,iBAAiB,EAAE,IAAI,CAAC,eAAe;AACvC,mBAAmB,EAAE,IAAI,CAAC,aAAa;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,IAAI,CAAC,GAAG;AAC3B,iBAAiB,EAAE,IAAI,CAAC,cAAc;AACtC,mBAAmB,EAAE,IAAI,CAAC,aAAa;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,MAAM;AAClC,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,EAAE,IAAI,CAAC,YAAY,CAAC;AAC9D,wCAAwC,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1D;AACA,IAAI,CAAC;AACL,IAAI;AACJ,CAAC;AACD,aAAa,CAAC,MAAM,GAAGC,GAAG,CAAC;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,CAAC;AACHJ,YAAU,CAAC;AACX,IAAIK,CAAK;AACT,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAC5CL,YAAU,CAAC;AACX,IAAIK,CAAK;AACT,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3CL,YAAU,CAAC;AACX,IAAIK,CAAK;AACT,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC;AAC1CL,YAAU,CAAC;AACX,IAAIK,CAAK;AACT,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC7C,aAAa,GAAGL,YAAU,CAAC;AAC3B,IAAIM,GAAa,CAAC,kBAAkB;AACpC,CAAC,EAAE,aAAa,CAAC;;ACrNjB,IAAIN,YAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;AAChI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;AAClI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;AACrJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAQD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,UAAU,GAAG,MAAM,UAAU,SAASC,GAAU,CAAC;AACrD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf;AACA;AACA;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,wHAAwH;AAC1J,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI;AACtC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC;AAClC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI;AAC5C,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK;AACnC,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO;AAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE;AACrB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI;AAC9B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,UAAU;AAClC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACzC,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,OAAO;AACrF,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK;AACnC,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;AAC/B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACpC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,OAAO;AAC1C,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC;AAChC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACnE,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/D,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,KAAK,CAAC,iBAAiB,EAAE;AACjC,QAAQ,IAAI,CAAC,uBAAuB,EAAE;AACtC,IAAI;AACJ;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,IAAI;AACJ,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC/B,QAAQ,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACxC,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,YAAY,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC1D,gBAAgB,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1C,gBAAgB,IAAI,CAAC,cAAc;AACnC,qBAAqB,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;AACzD,qBAAqB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1E,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,KAAK,CAAC,oBAAoB,EAAE;AACpC,QAAQ,IAAI,CAAC,yBAAyB,EAAE;AACxC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI;AAC7B;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACtD,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AACjD,QAAQ,MAAM,CAAC,KAAK,GAAG,UAAU,GAAG,IAAI,EAAE;AAC1C,YAAY,QAAQ,CAAC,eAAe,EAAE;AACtC,YAAY,OAAO,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM;AACxD,gBAAgB,QAAQ,CAAC,eAAe,EAAE;AAC1C,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC;AACT;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI;AAC5D,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACrD,QAAQ,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACjG,YAAY,QAAQ,CAAC,eAAe,EAAE;AACtC,YAAY,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM;AACnD,gBAAgB,QAAQ,CAAC,eAAe,EAAE;AAC1C,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,YAAY,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACrF,QAAQ,CAAC;AACT,IAAI;AACJ;AACA;AACA;AACA,IAAI,yBAAyB,GAAG;AAChC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;AAC7C,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI;AACrC,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe;AAChE,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI;AACvC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,OAAO,IAAI,CAAC,GAAG;AAC3B,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtC,YAAY,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,GAAG;AACpF,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACpC,YAAY,OAAO,QAAQ,GAAG,IAAI;AAClC,QAAQ;AACR,QAAQ,OAAO,QAAQ,GAAG,GAAG,GAAG,IAAI;AACpC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;AAC1C,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACnD,YAAY,MAAM,CAAC,IAAI,CAAC;AACxB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,GAAG,QAAQ;AAC3B,gBAAgB,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;AAC7D,gBAAgB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI;AACpD,aAAa,CAAC;AACd;AACA,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACxD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK;AAC7D,oBAAoB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AACjE,oBAAoB,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE;AAC1C,oBAAoB,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,EAAE;AAC/D,wBAAwB,QAAQ,GAAG,aAAa,CAAC,QAAQ;AACzD,oBAAoB;AACpB,oBAAoB,MAAM,CAAC,IAAI,CAAC;AAChC,wBAAwB,GAAG,KAAK;AAChC,wBAAwB,GAAG,aAAa;AACxC,wBAAwB,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU;AAChF,wBAAwB,QAAQ;AAChC,qBAAqB,CAAC;AACtB,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK;AAC9D,YAAY,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpE,gBAAgB,MAAM,CAAC,IAAI,CAAC;AAC5B,oBAAoB,EAAE;AACtB,oBAAoB,IAAI,EAAE,IAAI,CAAC,IAAI;AACnC,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK;AACrC,oBAAoB,IAAI,EAAE,IAAI,CAAC,IAAI;AACnC,oBAAoB,GAAG,EAAE,IAAI,CAAC,GAAG;AACjC,oBAAoB,MAAM,EAAE,IAAI,CAAC,MAAM;AACvC,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM;AACtD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;AACnD,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;AACjC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc;AACvC,aAAa,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;AACtD,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAY,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;AAC/D,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACrD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE;AAClD;AACA;AACA,YAAY,IAAI,QAAQ,KAAK,IAAI,EAAE;AACnC,gBAAgB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;AAC/E,gBAAgB,IAAI,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtE,oBAAoB,OAAO,KAAK,CAAC;AACjC,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI;AACzC,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3C;AACA,oBAAoB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE;AACxH,wBAAwB,KAAK,CAAC,MAAM,KAAK,KAAK;AAC9C,wBAAwB,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClE,gBAAgB;AAChB;AACA,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/D,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AACtC;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI;AAClD,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AAC3C,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACtD,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,aAAa;AACb;AACA,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACzC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrC,IAAI;AACJ;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AAC5C,QAAQ,YAAY,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChF,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG;AAC3B;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,gBAAgB,EAAE;AAC3D,YAAY,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;AACnD,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,UAAU,EAAE,IAAI;AAC5B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AACpC;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AACxC,YAAY,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO;AAC/C,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,eAAe,CAAC,CAAC,EAAE;AACvB,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;AACnD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACxF,QAAQ,MAAM,OAAO,GAAG,OAAO,EAAE,kBAAkB;AACnD,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC/C,YAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;AAChD,YAAY,OAAO,CAAC,OAAO,CAAC;AAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;AACvD,gBAAgB,EAAE,MAAM,EAAE,KAAK;AAC/B,aAAa,EAAE;AACf,gBAAgB,QAAQ,EAAE,GAAG;AAC7B,gBAAgB,MAAM,EAAE;AACxB,aAAa,CAAC,CAAC,QAAQ,GAAG,MAAM;AAChC,gBAAgB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC;AAC/D,YAAY,CAAC;AACb,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,YAAY,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC;AACxD,YAAY,OAAO,CAAC,OAAO,CAAC;AAC5B,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE;AACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;AACrD,aAAa,EAAE;AACf,gBAAgB,QAAQ,EAAE,GAAG;AAC7B,gBAAgB,MAAM,EAAE;AACxB,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE;AAChC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AACvC,QAAQ;AACR,aAAa;AACb;AACA,YAAY,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1D,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE;AAC1C,YAAY,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,gBAAgB,EAAE;AAC/D,gBAAgB,MAAM,EAAE,EAAE,IAAI,EAAE;AAChC,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,UAAU,EAAE,IAAI;AAChC,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AACxC;AACA;AACA,YAAY,IAAI,QAAQ,CAAC,gBAAgB,EAAE;AAC3C,gBAAgB,CAAC,CAAC,cAAc,EAAE;AAClC,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;AACpD,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC;AAC/F;AACA,QAAQ,IAAI,UAAU,GAAG,IAAI;AAC7B,QAAQ,IAAI,YAAY,GAAG,CAAC;AAC5B,QAAQ,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACrC;AACA,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7C,YAAY,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,YAAY,EAAE;AAC1E,gBAAgB,UAAU,GAAG,IAAI;AACjC,gBAAgB,YAAY,GAAG,GAAG,CAAC,MAAM;AACzC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE;AAChD,YAAY,IAAI,UAAU,CAAC,QAAQ,EAAE;AACrC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC9D,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI;AACvC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B;AACA,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AAC1B,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,GAAG,GAAG,kDAAkD;AACpE,QAAQ,IAAI,MAAM,GAAG,MAAM;AAC3B,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAY,GAAG,GAAG,CAAC,qCAAqC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACtF,YAAY,MAAM,GAAG,KAAK;AAC1B,QAAQ;AACR,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,YAAY,GAAG;AACf,YAAY,MAAM;AAClB,YAAY,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACxD,SAAS;AACT,aAAa,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC/C,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK;AAC5B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACjC,YAAY,IAAI,CAAC,SAAS,GAAG,KAAK;AAClC,QAAQ,CAAC;AACT,aAAa,KAAK,CAAC,CAAC,KAAK,KAAK;AAC9B,YAAY,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC;AACtE,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,CAAC,KAAK,CAAC;AACrB,YAAY,GAAG,EAAE,kDAAkD;AACnE,YAAY,MAAM,EAAE,KAAK;AACzB,SAAS;AACT,aAAa,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC/C,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK;AAC5B,YAAY,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AACxC,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI;AAChC,YAAY;AACZ,QAAQ,CAAC;AACT,aAAa,KAAK,CAAC,MAAM;AACzB;AACA,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE;AACtC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAY;AACZ,QAAQ;AACR,QAAQ,CAAC,CAAC,cAAc,EAAE;AAC1B,QAAQ,aAAa,CAAC,IAAI,CAAC;AAC3B,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO;AACxB,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO;AACxB,YAAY,KAAK,EAAE;AACnB,gBAAgB;AAChB,oBAAoB,EAAE,EAAE,MAAM;AAC9B,oBAAoB,KAAK,EAAE;AAC3B,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,EAAE,EAAE,WAAW;AACnC,oBAAoB,KAAK,EAAE,EAAE;AAC7B,oBAAoB,OAAO,EAAE;AAC7B,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,EAAE,EAAE,WAAW;AACnC,oBAAoB,KAAK,EAAE;AAC3B,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,EAAE,EAAE,WAAW;AACnC,oBAAoB,KAAK,EAAE;AAC3B,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC5B,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB;AAChB,YAAY;AACZ,YAAY,QAAQ,MAAM,CAAC,EAAE;AAC7B,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC9C,oBAAoB;AACpB,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;AAClD,oBAAoB;AACpB,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;AAClD,oBAAoB;AACpB;AACA,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;AACjF,YAAY,MAAM,MAAM,GAAG,GAAG;AAC9B,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AAC3C,YAAY;AACZ,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;AACrC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACzC,gBAAgB,GAAG;AACnB,aAAa;AACb,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE;AACrC,QAAQ,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/C,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc;AAC5C,aAAa,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ;AAC3D,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAC3E,QAAQ,IAAI,QAAQ;AACpB,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE;AAClC,YAAY,QAAQ,GAAG,WAAW;AAClC,QAAQ;AACR,aAAa;AACb,YAAY,QAAQ,GAAG,WAAW,GAAG,CAAC;AACtC,QAAQ;AACR;AACA,QAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK;AAC7C,YAAY,IAAI,KAAK,IAAI,QAAQ,EAAE;AACnC,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAChD,oBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;AAClD,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC;AAC3D,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,EAAE,EAAE,QAAQ;AACxB,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,KAAK,EAAE,UAAU;AAC7B,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,QAAQ,EAAE,UAAU,CAAC,QAAQ;AACzC,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO;AACzC,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;AACrC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE;AACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAY;AACZ,QAAQ;AACR,QAAQ,CAAC,CAAC,cAAc,EAAE;AAC1B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC;AACzE,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC;AACrE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,CAAC,EAAE;AACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;AACzF,YAAY,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACzC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC;AACvD;AACA,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC;AAC/F,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACvE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,uBAAuB;AAC3E,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,WAAW,CAAC,KAAK;AACvE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;AAC1E,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;AACzE,gBAAgB,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACrE,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACrC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAY,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;AACtE,YAAY,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;AACrE,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACvC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAC5E,QAAQ,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC;AACxE,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAChE,YAAY,IAAI,CAAC,kBAAkB,EAAE;AACrC,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACpC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC;AACtD,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAY,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAC5C,YAAY,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC1C,QAAQ;AACR,QAAQ,IAAI,CAAC,6BAA6B,EAAE;AAC5C,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,CAAC,EAAE;AAC/B;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;AAChF,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,WAAW,GAAG,KAAK;AAC/B,QAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AACjC,YAAY,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;AACnD,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;AACrD,YAAY,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,gBAAgB,EAAE;AAC7D,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK;AAC/D,gBAAgB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACjE,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;AACzE,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG;AAC1C,YAAY,IAAI,QAAQ;AACxB;AACA;AACA;AACA,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACvC,gBAAgB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC;AACA,oBAAoB,QAAQ,GAAG,OAAO;AACtC,oBAAoB,IAAI,CAAC,6BAA6B,EAAE;AACxD,gBAAgB;AAChB,qBAAqB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE;AACpD;AACA,oBAAoB,QAAQ,GAAG,OAAO;AACtC,oBAAoB,IAAI,CAAC,6BAA6B,EAAE;AACxD,gBAAgB;AAChB,qBAAqB;AACrB;AACA,oBAAoB,QAAQ,GAAG,QAAQ;AACvC;AACA,oBAAoB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAC/F,wBAAwB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1D,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,oBAAoB,QAAQ,GAAG,OAAO;AACtC,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,QAAQ,GAAG,OAAO;AACtC,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,6BAA6B,EAAE;AACpD,YAAY;AACZ;AACA,YAAY,IAAI,WAAW;AAC3B,YAAY,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACvC,gBAAgB,WAAW,GAAG,IAAI,CAAC,EAAE;AACrC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,WAAW,GAAG,IAAI,CAAC,QAAQ;AAC3C,YAAY;AACZ,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC;AAC/F;AACA;AACA;AACA,YAAY,IAAI,WAAW,KAAK,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE,IAAI,KAAK,OAAO,IAAI,WAAW,KAAK,IAAI,CAAC,EAAE;AAClH,gBAAgB,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/C,gBAAgB,IAAI,CAAC,6BAA6B,EAAE;AACpD,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA,YAAY,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE;AAC9C,YAAY,IAAI,CAAC,mBAAmB,GAAG,QAAQ;AAC/C,YAAY,WAAW,GAAG,IAAI;AAC9B,QAAQ,CAAC,CAAC;AACV;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC3C,YAAY,IAAI,CAAC,6BAA6B,EAAE;AAChD,QAAQ;AACR,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,6BAA6B,GAAG;AACpC,QAAQ,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC3C,YAAY,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC;AACvD,YAAY,IAAI,CAAC,wBAAwB,GAAG,IAAI;AAChD,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AAChE,YAAY,IAAI,IAAI,CAAC,mBAAmB,KAAK,MAAM,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;AAC9F,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;AACjD,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,YAAY;AACZ,YAAY,IAAI,CAAC,wBAAwB,GAAG,IAAI;AAChD,QAAQ,CAAC,EAAE,GAAG,CAAC;AACf,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACjE,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE;AAC9C,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC;AAC9E,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC;AAChF,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE;AACzC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;AAClF,YAAY,IAAI,UAAU,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,EAAE;AACzD,gBAAgB;AAChB,YAAY;AACZ,YAAY,WAAW,GAAG,UAAU,CAAC,EAAE;AACvC,QAAQ;AACR,aAAa;AACb,YAAY,WAAW,GAAG,UAAU,CAAC,QAAQ;AAC7C,QAAQ;AACR,QAAQ,IAAI,WAAW,KAAK,IAAI,CAAC,gBAAgB,EAAE;AACnD,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,MAAM,QAAQ,GAAG;AACzB,aAAa,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB;AACrF,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACtC;AACA,QAAQ,IAAI,QAAQ;AACpB,QAAQ,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;AACnD;AACA,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,gBAAgB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AACtE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,QAAQ,GAAG,CAAC;AAC5B,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAC/E;AACA,YAAY,IAAI,WAAW,KAAK,EAAE,EAAE;AACpC,gBAAgB,QAAQ,GAAG,CAAC;AAC5B,YAAY;AACZ,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO,EAAE;AAC3D,gBAAgB,QAAQ,GAAG,WAAW;AACtC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,QAAQ,GAAG,WAAW,GAAG,CAAC;AAC1C,YAAY;AACZ;AACA;AACA,YAAY,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK;AACjD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAC3C,oBAAoB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;AAC7C,gBAAgB;AAChB,gBAAgB,IAAI,KAAK,IAAI,QAAQ,EAAE;AACvC,oBAAoB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC;AAC1D,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK;AACtD,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC9C,YAAY,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;AAChD,QAAQ;AACR,QAAQ,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,GAAG,QAAQ;AACxD,QAAQ,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,GAAG,WAAW;AAC9D;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ;AACA;AACA;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc;AAClD,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK;AACnC,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,IAAI;AACJ;AACA;AACA;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACxB,YAAY,OAAOK,CAAO;AAC1B,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AACnC,aAAa,KAAK,CAAC,GAAG;AACtB,aAAa,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAClC,aAAa,IAAI,CAAC,EAAE;AACpB,aAAa,WAAW;AACxB,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB;AACA,QAAQ,OAAOJ,CAAI,CAAC;AACpB;AACA,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAGA,CAAI,CAAC;AACrC;AACA,mDAAmD,EAAE,IAAI,CAAC,eAAe,CAAC;AAC1E;AACA;AACA;AACA,QAAQ,CAAC,GAAGI,CAAO;AACnB,iCAAiC,EAAE,IAAI,CAAC,cAAc,CAAC;AACvD;AACA,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC;AACxB,cAAcJ,CAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACzE,cAAc,QAAQ;AACtB;AACA;AACA,oCAAoC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACrD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAGA,CAAI,CAAC,CAAC,yBAAyB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAGI,CAAO;AAClG;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAOJ,CAAI,CAAC;AACpB;AACA,4EAA4E,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC5F;AACA;AACA;AACA,mDAAmD,EAAE,IAAI,CAAC,SAAS,CAAC;AACpE;AACA;AACA,mDAAmD,EAAE,IAAI,CAAC,aAAa,CAAC;AACxE;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE;AACzC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AACrC,YAAY,OAAOA,CAAI,CAAC;AACxB,iCAAiC,EAAE,IAAI,CAAC,KAAK,CAAC;AAC9C,MAAM,CAAC;AACP,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACnC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7D,YAAY,OAAOA,CAAI,CAAC;AACxB;AACA,gBAAgB,EAAEK,CAAQ,CAAC;AAC3B,gBAAgB,UAAU,EAAE,IAAI;AAChC,gBAAgB,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACxE,gBAAgB,kBAAkB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;AAC3E,gBAAgB,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO;AACpH,gBAAgB,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO;AACpH,gBAAgB,uBAAuB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ;AACtH,aAAa,CAAC;AACd,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC;AAC7B,qBAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC;AAClE,iBAAiB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC;AAC1D,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC;AACtE;AACA,UAAU,EAAE,IAAI,CAAC,iBAAiB,GAAGL,CAAI,CAAC,CAAC,6BAA6B,EAAEM,CAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,GAAGF,CAAO;AAC7I,wCAAwC,EAAE,IAAI,CAAC,KAAK,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAEC,CAAQ,CAAC;AAC9B,gBAAgB,WAAW,EAAE,IAAI;AACjC,gBAAgB,qBAAqB,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACzE,aAAa,CAAC,CAAC;AACf,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE;AACA,MAAM,CAAC;AACP,QAAQ;AACR,QAAQ,OAAOL,CAAI,CAAC;AACpB;AACA,cAAc,EAAEK,CAAQ,CAAC;AACzB,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,kBAAkB,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,EAAE;AAChE,YAAY,kBAAkB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;AACvE,YAAY,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO;AAChH,YAAY,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO;AAChH,SAAS,CAAC;AACV,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC;AAC3B,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,eAAe,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAGD,CAAO;AACnD,mBAAmB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC;AAChE,eAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC;AACxD,qBAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC;AACpE;AACA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,GAAGJ,CAAI,CAAC,CAAC,6BAA6B,EAAEM,CAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,GAAGF,CAAO;AACvJ,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC;AACnD;AACA,IAAI,CAAC;AACL,IAAI;AACJ;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3D;AACA,QAAQ,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM;AACtG,QAAQ,OAAOJ,CAAI,CAAC;AACpB,iBAAiB,EAAEK,CAAQ,CAAC;AAC5B,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,mBAAmB,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC;AACzD,SAAS,CAAC,CAAC;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE,IAAI,CAAC,MAAM,GAAGL,CAAI,CAAC;AAC3B;AACA;AACA,uBAAuB,EAAE,IAAI,CAAC,WAAW;AACzC,sBAAsB,EAAE,IAAI,CAAC,eAAe;AAC5C;AACA;AACA;AACA,MAAM,CAAC,GAAGI,CAAO;;AAEjB;AACA,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAGJ,CAAI,CAAC;AACjC,qBAAqB,EAAEK,CAAQ,CAAC;AAChC,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,eAAe,EAAE,IAAI,CAAC,aAAa;AAC/C,YAAY,aAAa,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW;AAC3D,SAAS,CAAC,CAAC;AACX,2CAA2C,EAAE,IAAI,CAAC,oBAAoB,CAAC;AACvE,cAAc,EAAE,IAAI,CAAC;AACrB,cAAcL,CAAI,CAAC,CAAC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;AAChE,cAAc,IAAI,CAAC;AACnB,kBAAkBA,CAAI,CAAC,CAAC;AACxB;AACA,wBAAwB,EAAE,IAAI,CAAC,IAAI;AACnC;AACA,oBAAoB;AACpB,kBAAkBI,CAAO;AACzB;AACA,6CAA6C,EAAE,IAAI,CAAC,eAAe,CAAC;AACpE,cAAc,EAAE,kBAAkB,GAAG,EAAE,GAAGJ,CAAI,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE,IAAI,CAAC,QAAQ;AAC5C,6BAA6B,EAAE,IAAI,CAAC,oBAAoB;AACxD;AACA,oBAAoB,EAAE,IAAI,CAAC,QAAQ,GAAGA,CAAI,CAAC;AAC3C,+DAA+D,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,CAAC,GAAGI,CAAO;AAC/B;AACA;AACA,cAAc,CAAC,GAAGA,CAAO;AACzB;AACA,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvE;AACA;AACA;AACA,cAAc,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpF;AACA;AACA,QAAQ,CAAC,GAAGA,CAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ;AACA,UAAU,CAAC,MAAM,GAAGH,GAAG,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA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;AACxD;AACA;AACA;AACA,2BAA2B,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,CAAC,CAAC;AAChB;AACA,UAAU,CAAC,GAAGI,CAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,eAAe;AAC3C;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,WAAW;AACvC,0BAA0B,EAAE,IAAI,CAAC,WAAW;AAC5C;AACA,qBAAqB,EAAE,IAAI,CAAC,kBAAkB;AAC9C,uBAAuB,EAAE,IAAI,CAAC,cAAc;AAC5C,qBAAqB,EAAE,IAAI,CAAC,YAAY;AACxC;AACA,YAAY,EAAE,IAAI,CAAC,YAAY,GAAGJ,CAAI,CAAC;AACvC;AACA;AACA,uBAAuB,EAAE,IAAI,CAAC,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,GAAGA,CAAI,CAAC;AACrB;AACA,sBAAsB,EAAEK,CAAQ,CAAC;AACjC,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,SAAS,CAAC;AACV,uBAAuB,EAAE,IAAI,CAAC,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC;AACb;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ;AACA,SAAS,CAAC,MAAM,GAAGJ,GAAG,CAAC;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,18,19,20]}
1
+ {"version":3,"file":"krubble-app.bundled.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-element/lit-element.js","../../../node_modules/@lit/reactive-element/decorators/custom-element.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/@lit/reactive-element/decorators/base.js","../../../node_modules/@lit/reactive-element/decorators/query.js","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directives/unsafe-html.js","../../../node_modules/lit-html/directives/class-map.js","scaffold/nav-item-edit.js","scaffold.js","screen-nav.js","screen-detail.js","subbar.js","router.js","../../../node_modules/lit-html/directive-helpers.js","../../../node_modules/lit-html/directives/repeat.js","../../../node_modules/marked/lib/marked.esm.js","chatbot.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)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&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===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(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=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),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;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?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-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)){const i=v[a++],s=r.getAttribute(t).split(o),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)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(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?.(!1),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(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,!0);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??!0}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(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(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()),this.O(c()),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?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(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=!1;if(void 0===h)t=M(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(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(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(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.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(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{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=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{directive as r,Directive as s,PartType as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends s{constructor(i){if(super(i),this.it=t,i.type!==n.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=r(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.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 t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport '@kodaris/krubble-components';\nlet KRNavItemEdit = class KRNavItemEdit extends LitElement {\n constructor() {\n super(...arguments);\n this.label = '';\n this.icon = '';\n this.url = '';\n this.active = true;\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.data) {\n this.label = this.data.label || '';\n this.icon = this.data.icon || '';\n this.url = this.data.url || '';\n this.active = this.data.active !== false;\n }\n }\n handleLabelInput(e) {\n const textField = e.target;\n this.label = textField.value;\n }\n handleIconInput(e) {\n const textField = e.target;\n this.icon = textField.value;\n }\n handleUrlInput(e) {\n const textField = e.target;\n this.url = textField.value;\n }\n handleActiveChange(e) {\n this.active = e.target.checked;\n }\n handleCancel() {\n this.dialogRef.close(undefined);\n }\n handleSave() {\n this.dialogRef.close({\n label: this.label,\n icon: this.icon || undefined,\n url: this.url || undefined,\n active: this.active,\n });\n }\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n this.handleSave();\n }\n }\n render() {\n return html `\n <h2>Edit Navigation Item</h2>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Label\"\n name=\"label\"\n .value=${this.label}\n @input=${this.handleLabelInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"Enter label\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"Icon (emoji or SVG)\"\n name=\"icon\"\n .value=${this.icon}\n @input=${this.handleIconInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. 📊 or <svg>...</svg>\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <kr-text-field\n label=\"URL\"\n name=\"url\"\n .value=${this.url}\n @input=${this.handleUrlInput}\n @keydown=${this.handleKeyDown}\n placeholder=\"e.g. /ci/my-page or https://...\"\n ></kr-text-field>\n </div>\n\n <div class=\"form-group\">\n <div class=\"checkbox-group\">\n <input\n type=\"checkbox\"\n id=\"active\"\n .checked=${this.active}\n @change=${this.handleActiveChange}\n />\n <label class=\"checkbox-label\" for=\"active\">Visible in navigation</label>\n </div>\n </div>\n\n <div class=\"actions\">\n <button class=\"btn-cancel\" @click=${this.handleCancel}>Cancel</button>\n <button class=\"btn-save\" @click=${this.handleSave}>Save</button>\n </div>\n `;\n }\n};\nKRNavItemEdit.styles = css `\n :host {\n display: block;\n width: 360px;\n padding: 24px;\n color: rgba(255, 255, 255, 0.9);\n\n /* Dark theme for kr-text-field */\n --kr-text-field-label-color: rgba(255, 255, 255, 0.7);\n --kr-text-field-border-color: rgba(255, 255, 255, 0.1);\n --kr-text-field-bg: rgba(255, 255, 255, 0.05);\n --kr-text-field-color: #ffffff;\n --kr-text-field-focus-border-color: #beea4e;\n --kr-text-field-focus-ring-color: rgba(190, 234, 78, 0.1);\n --kr-text-field-placeholder-color: rgba(255, 255, 255, 0.3);\n --kr-text-field-helper-color: rgba(255, 255, 255, 0.5);\n }\n\n h2 {\n margin: 0 0 24px 0;\n font-size: 18px;\n font-weight: 600;\n color: #ffffff;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .checkbox-group {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n accent-color: #beea4e;\n cursor: pointer;\n }\n\n .checkbox-label {\n font-size: 14px;\n color: rgba(255, 255, 255, 0.9);\n cursor: pointer;\n }\n\n .actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n margin-top: 28px;\n }\n\n button {\n padding: 10px 20px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .btn-cancel {\n background: rgba(255, 255, 255, 0.05);\n border: 1px solid rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n }\n\n .btn-cancel:hover {\n background: rgba(255, 255, 255, 0.1);\n color: #ffffff;\n }\n\n .btn-save {\n background: #beea4e;\n border: none;\n color: #10172a;\n }\n\n .btn-save:hover {\n background: #d4f472;\n }\n `;\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"label\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"icon\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"url\", void 0);\n__decorate([\n state()\n], KRNavItemEdit.prototype, \"active\", void 0);\nKRNavItemEdit = __decorate([\n customElement('kr-nav-item-edit')\n], KRNavItemEdit);\nexport { KRNavItemEdit };\n//# sourceMappingURL=nav-item-edit.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { KRContextMenu, KRDialog } from '@kodaris/krubble-components';\nimport { KRHttp } from '@kodaris/krubble-http';\nimport { KRNavItemEdit } from './scaffold/nav-item-edit.js';\n/**\n * Application shell component with nav drawer and main content area.\n *\n * ## Features\n * - Collapsible navigation drawer with hierarchical items (groups and items)\n * - User profile display in footer with customization menu\n * - Edit mode for customizing navigation (rename, reorder, hide items, add custom items)\n * - Drag and drop reordering in edit mode\n * - Persistence of customizations via preference API (global/organization level)\n *\n * ## Nav Customization\n * Users can customize the navigation by clicking their profile and selecting\n * \"Customize Navigation\". This enters edit mode where users can:\n * - Right-click items to edit label, icon, or visibility\n * - Right-click to add new items above/below existing items\n * - Drag and drop to reorder items or move them between groups\n *\n * Customizations are stored globally and apply to all users.\n *\n * ## Preference Storage\n * Preferences are stored as JSON with the following structure:\n * ```json\n * {\n * \"nav\": {\n * \"itemId\": { \"label\": \"Custom Label\", \"icon\": \"...\", \"active\": true, \"order\": 0 },\n * \"custom-123\": { \"type\": \"item\", \"label\": \"New Item\", \"url\": \"/path\", ... }\n * }\n * }\n * ```\n *\n * The `nav` object is a delta - it only contains overrides for existing items\n * or definitions for custom items (prefixed with \"custom-\").\n *\n * ## API Endpoints Used\n * - GET `/api/system/preference/json/scaffold?global=true` - load preferences\n * - POST `/api/system/preference/json/scaffold?global=true` - create new preference\n * - PUT `/api/system/preference/json/scaffold/{uuid}?global=true` - update existing preference\n *\n * @slot - The main content\n *\n * @property {string} logo - URL for the logo image\n * @property {string} label - Title text to display instead of logo\n * @property {'light'|'dark'} scheme - Color scheme: 'light' (default) or 'dark'\n * @property {KRNavItem[]} nav - Navigation items as JSON array\n * @property {KRUser} user - User profile data\n * @property {boolean} navEnabled - Whether to show the nav drawer (menu toggle remains visible when false)\n * @property {'employee'|'customer'} user-type - User type. Customers skip all `/api/system` calls since that endpoint is employee-only. Defaults to 'employee'.\n *\n *\n * TODO\n * - Don't hardcode breadcrumbs\n * - Look at renderNormalFooter and renderEditFooter and see if that is what we want to do\n */\nlet KRScaffold = class KRScaffold extends LitElement {\n constructor() {\n super();\n /**\n * Default icon for nav items without an icon (shown at top level)\n */\n this.defaultNavItemIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><circle cx=\"12\" cy=\"12\" r=\"10\"/></svg>';\n this.originalFetch = null;\n this.originalXhrOpen = null;\n this.navItemDragPreview = null;\n this.navItemDragStartY = 0;\n this.isNavItemDragging = false;\n this.navItemDragExpandTimeout = null;\n this.navInitialized = false;\n this.logo = '';\n this.label = '';\n /**\n * URL to navigate to when clicking the logo/title. Defaults to '/'.\n */\n this.homeUrl = '/';\n this.scheme = 'light';\n this.nav = [];\n this.navIconsDisplayed = false;\n this.navExpanded = false;\n this.user = null;\n /**\n * Whether to show the subbar with menu toggle\n */\n this.subbar = false;\n /**\n * Whether to hide the navigation drawer.\n * Menu toggle button remains visible and emits menu-click events.\n */\n this.navEnabled = true;\n /**\n * User type. Set to 'customer' to skip all /api/system calls — customers don't have access to that endpoint.\n */\n this.userType = 'employee';\n /**\n * Breadcrumbs to display in the subbar\n */\n this.breadcrumbs = [];\n this.navItemsExpanded = new Set();\n this.navQuery = '';\n this.activeNavItemId = null;\n this.isNavScrolled = false;\n this.isNavOpened = localStorage.getItem('kr-scaffold-nav-opened') !== 'false';\n this.isEditing = false;\n this.isUserMenuOpen = false;\n this.pref = { nav: {} };\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.navItemDropPosition = 'above';\n this.pendingRequests = 0;\n this.boundHandleMouseMove = this.handleMouseMove.bind(this);\n this.boundHandleMouseUp = this.handleMouseUp.bind(this);\n }\n connectedCallback() {\n super.connectedCallback();\n this.installFetchInterceptor();\n }\n // Attributes are not reflected into properties until after the first update,\n // so loadPref() must run here (not connectedCallback) for user-type to be set.\n firstUpdated() {\n this.loadPref();\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('nav') && this.nav.length > 0) {\n this.updateActiveNavItem();\n if (this.navExpanded && !this.navInitialized) {\n this.navInitialized = true;\n this.getComputedNav()\n .filter(item => item.type === 'group')\n .forEach(group => this.navItemsExpanded.add(group.id));\n }\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.uninstallFetchInterceptor();\n }\n /**\n * Installs global interceptors for fetch and XMLHttpRequest to track pending HTTP requests.\n * Updates `pendingRequests` state when requests start/complete.\n */\n installFetchInterceptor() {\n if (this.originalFetch) {\n return;\n }\n const scaffold = this;\n // Intercept fetch\n this.originalFetch = window.fetch.bind(window);\n const originalFetch = this.originalFetch; // Capture in local scope to avoid null reference after uninstall\n window.fetch = function (...args) {\n scaffold.pendingRequests++;\n return originalFetch(...args).finally(() => {\n scaffold.pendingRequests--;\n });\n };\n // Intercept XMLHttpRequest\n this.originalXhrOpen = XMLHttpRequest.prototype.open;\n const originalXhrOpen = this.originalXhrOpen; // Capture in local scope to avoid null reference after uninstall\n XMLHttpRequest.prototype.open = function (method, url, async = true, username, password) {\n scaffold.pendingRequests++;\n this.addEventListener('loadend', () => {\n scaffold.pendingRequests--;\n }, { once: true });\n return originalXhrOpen.call(this, method, url, async, username, password);\n };\n }\n /**\n * Restores the original fetch and XMLHttpRequest functions.\n */\n uninstallFetchInterceptor() {\n if (this.originalFetch) {\n window.fetch = this.originalFetch;\n this.originalFetch = null;\n }\n if (this.originalXhrOpen) {\n XMLHttpRequest.prototype.open = this.originalXhrOpen;\n this.originalXhrOpen = null;\n }\n }\n /**\n * Resolves a navigation URL by prepending the base href.\n *\n * This method is used for:\n * 1. Setting href attributes on anchor elements (so Cmd/Ctrl+click opens correct URL in new tab)\n * 2. Comparing URLs with window.location.pathname in updateActiveNavItem()\n *\n * The original item.url is kept intact (without base href) and passed to Angular\n * via the nav-item-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - item.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(item) = \"/operations/settings\" (used for href and URL comparison)\n */\n resolveUrl(item) {\n if (!item.url) {\n return '#';\n }\n // External URLs - return as-is\n if (item.external) {\n return item.url;\n }\n // Remove leading slash from url if present, then combine with base\n let path = item.url;\n if (item.url.startsWith('/')) {\n path = item.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n // =========================================================================\n // Navigation Data\n // =========================================================================\n /**\n * Returns the computed navigation as a flat array with preferences applied.\n *\n * Transforms the hierarchical `nav` property into a flat list where each item\n * has a `parentId` reference instead of nested `children`. Merges user\n * preference overrides (label, icon, url, active, order, parentId) and\n * includes any custom items added via the edit dialog.\n *\n * @returns Flat array of nav items with preferences applied\n */\n getComputedNav() {\n const result = [];\n this.nav.forEach((item, index) => {\n const override = this.pref.nav[item.id];\n result.push({\n ...item,\n ...override,\n order: override?.order ?? item.order ?? index,\n parentId: override?.parentId ?? null,\n });\n // Add children if group\n if (item.type === 'group' && item.children) {\n item.children.forEach((child, childIndex) => {\n const childOverride = this.pref.nav[child.id];\n let parentId = item.id;\n if (childOverride?.parentId !== undefined) {\n parentId = childOverride.parentId;\n }\n result.push({\n ...child,\n ...childOverride,\n order: childOverride?.order ?? child.order ?? childIndex,\n parentId,\n });\n });\n }\n });\n // Add custom items from pref\n Object.entries(this.pref.nav).forEach(([id, item]) => {\n if (id.startsWith('custom') && item.type && item.label) {\n result.push({\n id,\n type: item.type,\n label: item.label,\n icon: item.icon,\n url: item.url,\n active: item.active,\n order: item.order ?? result.length,\n parentId: item.parentId ?? null,\n });\n }\n });\n return result;\n }\n /**\n * Returns nav items for a given parent, filtered and sorted for rendering.\n *\n * Filters the computed nav to items matching the parentId, sorts by order,\n * hides inactive items in normal mode, and applies the search query filter.\n * Groups are shown if their label matches or if they have matching children.\n *\n * @param parentId - The parent ID to filter by (null for top-level items)\n * @returns Filtered and sorted nav items ready for rendering\n */\n getNavItemChildren(parentId) {\n let items = this.getComputedNav()\n .filter(item => item.parentId === parentId)\n .sort((a, b) => a.order - b.order);\n // In normal mode, filter out hidden items\n if (!this.isEditing) {\n items = items.filter(item => item.active !== false);\n }\n // Apply search filter\n if (this.navQuery) {\n const query = this.navQuery.toLowerCase();\n const allItems = this.getComputedNav();\n // If we're getting children of a group, check if parent group name matches query\n // If so, show all children without filtering\n if (parentId !== null) {\n const parentGroup = allItems.find(item => item.id === parentId);\n if (parentGroup?.label.toLowerCase().includes(query)) {\n return items; // Show all children when group name matches\n }\n }\n items = items.filter(item => {\n if (item.type === 'group') {\n // Show group if its label matches OR if it has matching children\n return item.label.toLowerCase().includes(query) || allItems.some(child => child.parentId === item.id &&\n child.active !== false &&\n child.label.toLowerCase().includes(query));\n }\n // Show item if its label matches\n return item.label.toLowerCase().includes(query);\n });\n }\n return items;\n }\n // =========================================================================\n // Navigation Search\n // =========================================================================\n /**\n * Handles search input changes for filtering nav items.\n *\n * When a search query is entered, automatically expands any groups that\n * contain matching children so users can see the results. When the search\n * is cleared, collapses all groups back to their default state.\n *\n * @param e - The input event from the search field\n */\n handleNavQueryChange(e) {\n this.navQuery = e.target.value;\n // Expand all groups when searching so matching children are visible\n // (groups without matching children won't be rendered anyway)\n if (this.navQuery) {\n this.getComputedNav().forEach(item => {\n if (item.type === 'group') {\n this.navItemsExpanded.add(item.id);\n }\n });\n }\n else {\n // Collapse all when search is cleared\n this.navItemsExpanded.clear();\n }\n }\n /**\n * Clears the search query.\n */\n handleNavQueryClear() {\n this.navQuery = '';\n this.navItemsExpanded.clear();\n }\n // =========================================================================\n // Navigation Interaction\n // =========================================================================\n handleMenuClick() {\n this.isNavOpened = !this.isNavOpened;\n localStorage.setItem('kr-scaffold-nav-opened', String(this.isNavOpened));\n }\n /**\n * Handles click on the nav header (logo/title) to navigate home.\n * Dispatches a nav-item-click event so Angular can intercept and route.\n */\n handleNavHeaderClick() {\n // Clear active state since we're going home\n this.activeNavItemId = null;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item: { url: this.homeUrl } },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If no listener prevented default, navigate natively\n if (!navEvent.defaultPrevented) {\n window.location.href = this.homeUrl;\n }\n }\n /**\n * Handles scroll on nav content to show/hide header shadow.\n */\n handleNavScroll(e) {\n this.isNavScrolled = e.target.scrollTop > 0;\n }\n /**\n * Toggles the expanded/collapsed state of a nav group with animation.\n * Uses the Web Animations API to animate height transitions.\n * When collapsing, the `nav-group--expanded` class is removed after animation completes.\n * When expanding, the class is added immediately before animation starts.\n *\n * @param itemId - The unique identifier of the nav group to toggle\n */\n toggleNavItem(itemId) {\n const navItem = this.shadowRoot?.querySelector(`.nav-item[data-id=\"${itemId}\"]`);\n const groupEl = navItem?.nextElementSibling;\n if (!groupEl) {\n return;\n }\n if (this.navItemsExpanded.has(itemId)) {\n this.navItemsExpanded.delete(itemId);\n groupEl.animate([\n { height: `${groupEl.scrollHeight}px` },\n { height: '0px' }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n }).onfinish = () => {\n groupEl.classList.remove('nav-group--expanded');\n };\n }\n else {\n this.navItemsExpanded.add(itemId);\n groupEl.classList.add('nav-group--expanded');\n groupEl.animate([\n { height: '0px' },\n { height: `${groupEl.scrollHeight}px` }\n ], {\n duration: 300,\n easing: 'ease-in-out'\n });\n }\n this.requestUpdate();\n }\n /**\n * Handles click events on navigation items.\n *\n * For groups, toggles the expanded/collapsed state.\n * For items, dispatches a cancelable `nav-item-click` custom event.\n *\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScaffoldDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router. Import `KrubbleModule` in your Angular app to enable\n * SPA navigation without page reloads.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n if (item.type === 'group') {\n this.toggleNavItem(item.id);\n }\n else {\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n // Set active item immediately on click for instant visual feedback\n this.activeNavItemId = item.id;\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n // (e.g., SPA router handles navigation)\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n }\n /**\n * Updates the active nav item highlight based on the current URL.\n *\n * Compares the first path segment of `window.location.pathname` with each\n * nav item's URL to find a match. When found, highlights that item and\n * expands its parent group if nested.\n *\n * Called automatically by `KRScaffoldDirective` on Angular route changes.\n */\n updateActiveNavItem() {\n const currentPath = window.location.pathname;\n const allItems = this.getComputedNav().filter(item => item.type === 'item' && item.url);\n // Find the best match - prefer longer/more specific URL matches\n let activeItem = null;\n let longestMatch = 0;\n for (const item of allItems) {\n // Use resolveUrl because currentPath includes base href\n const url = this.resolveUrl(item);\n if (currentPath.startsWith(url) && url.length > longestMatch) {\n activeItem = item;\n longestMatch = url.length;\n }\n }\n if (activeItem) {\n this.activeNavItemId = activeItem.id;\n if (activeItem.parentId) {\n this.navItemsExpanded.add(activeItem.parentId);\n }\n }\n else {\n this.activeNavItemId = null;\n }\n }\n // =========================================================================\n // Navigation Customization\n // =========================================================================\n startEditing() {\n this.isEditing = true;\n }\n cancelEditing() {\n this.isEditing = false;\n // Reload to revert changes\n this.loadPref();\n }\n resetPref() {\n this.pref.nav = {};\n }\n savePref() {\n if (this.userType === 'customer') {\n return;\n }\n let url = '/api/system/preference/json/scaffold?global=true';\n let method = 'POST';\n if (this.pref.uuid) {\n url = `/api/system/preference/json/scaffold/${this.pref.uuid}?global=true`;\n method = 'PUT';\n }\n KRHttp.fetch({\n url,\n method,\n body: JSON.stringify({ nav: this.pref.nav }),\n })\n .then((response) => response.json())\n .then((data) => {\n this.pref = data.data;\n this.isEditing = false;\n })\n .catch((error) => {\n console.error('Failed to save nav customizations:', error);\n });\n }\n loadPref() {\n if (this.userType === 'customer') {\n return;\n }\n KRHttp.fetch({\n url: '/api/system/preference/json/scaffold?global=true',\n method: 'GET',\n })\n .then((response) => response.json())\n .then((data) => {\n const pref = data?.data?.[0];\n if (pref) {\n this.pref = pref;\n }\n })\n .catch(() => {\n // No preferences saved yet\n });\n }\n handleNavItemContextMenu(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n KRContextMenu.open({\n x: e.clientX,\n y: e.clientY,\n items: [\n {\n id: 'edit',\n label: 'Edit Item'\n },\n {\n id: 'divider-1',\n label: '',\n divider: true\n },\n {\n id: 'add-above',\n label: 'Add Item Above'\n },\n {\n id: 'add-below',\n label: 'Add Item Below'\n },\n ],\n }).then((result) => {\n if (!result) {\n return;\n }\n switch (result.id) {\n case 'edit':\n this.openNavItemEdit(item);\n break;\n case 'add-above':\n this.addNavItem(item, 'above');\n break;\n case 'add-below':\n this.addNavItem(item, 'below');\n break;\n }\n });\n }\n /**\n * Opens the nav item edit dialog for customizing an item's properties.\n *\n * Opens `KRNavItemEdit` dialog pre-populated with the item's current values.\n * When the user saves, merges the result into the nav delta to persist\n * customizations like label, icon, URL, and visibility.\n *\n * @param item - The nav item to edit\n */\n openNavItemEdit(item) {\n KRDialog.open(KRNavItemEdit, { data: item }).afterClosed().then((res) => {\n const result = res;\n if (!result) {\n return;\n }\n if (!this.pref.nav[item.id]) {\n this.pref.nav[item.id] = {};\n }\n this.pref.nav[item.id] = {\n ...this.pref.nav[item.id],\n ...result\n };\n this.requestUpdate();\n });\n }\n /**\n * Adds a new custom nav item relative to an existing item.\n *\n * Creates a placeholder item in the nav delta, shifts existing siblings\n * to make room, then opens the edit dialog so the user can configure\n * the new item's label, icon, and URL.\n *\n * @param targetItem - The existing item to position relative to\n * @param position - Whether to insert 'above' or 'below' the target item\n */\n addNavItem(targetItem, position) {\n const customId = `custom-${Date.now()}`;\n const siblings = this.getComputedNav()\n .filter(i => i.parentId === targetItem.parentId)\n .sort((a, b) => a.order - b.order);\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n let newOrder;\n if (position === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing items to make room for the new item\n siblings.forEach((sibling, index) => {\n if (index >= newOrder) {\n if (!this.pref.nav[sibling.id]) {\n this.pref.nav[sibling.id] = {};\n }\n this.pref.nav[sibling.id].order = index + 1;\n }\n });\n // Add the new item and open edit dialog\n const newItem = {\n id: customId,\n type: 'item',\n label: 'New Item',\n order: newOrder,\n parentId: targetItem.parentId,\n active: true,\n };\n this.pref.nav[customId] = newItem;\n this.requestUpdate();\n this.openNavItemEdit(newItem);\n }\n // =========================================================================\n // Navigation Drag & Drop\n // =========================================================================\n /**\n * Initiates a potential drag operation when mouse is pressed on a nav item.\n *\n * Only active in edit mode. Records the starting position and sets up\n * document-level listeners for mouse move and mouse up events. The actual\n * drag doesn't start until the mouse moves more than 5 pixels.\n *\n * @param e - The mouse event\n * @param item - The nav item being pressed\n */\n handleNavItemMouseDown(e, item) {\n if (!this.isEditing) {\n return;\n }\n e.preventDefault();\n this.draggedNavItemId = item.id;\n this.navItemDragStartY = e.clientY;\n this.isNavItemDragging = false;\n document.addEventListener('mousemove', this.boundHandleMouseMove);\n document.addEventListener('mouseup', this.boundHandleMouseUp);\n }\n /**\n * Handles mouse movement during a nav item drag operation.\n *\n * Initiates dragging after the mouse moves more than 5 pixels (to distinguish\n * from clicks), creates a floating preview element that follows the cursor,\n * and updates the drop target indicator based on mouse position.\n *\n * @param e - The mouse event\n */\n handleMouseMove(e) {\n if (!this.draggedNavItemId) {\n return;\n }\n // Start dragging after moving a few pixels (to distinguish from clicks)\n if (!this.isNavItemDragging && Math.abs(e.clientY - this.navItemDragStartY) > 5) {\n this.isNavItemDragging = true;\n this.classList.add('kr-scaffold--dragging');\n // Create drag preview\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n if (draggedItem) {\n this.navItemDragPreview = document.createElement('div');\n this.navItemDragPreview.className = 'nav-item-drag-preview';\n this.navItemDragPreview.textContent = draggedItem.label;\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n this.shadowRoot?.appendChild(this.navItemDragPreview);\n }\n }\n if (!this.isNavItemDragging) {\n return;\n }\n // Update preview position\n if (this.navItemDragPreview) {\n this.navItemDragPreview.style.left = `${e.clientX + 10}px`;\n this.navItemDragPreview.style.top = `${e.clientY - 20}px`;\n }\n // Find drop target based on mouse position\n this.updateNavItemDropTarget(e);\n }\n /**\n * Handles the end of a nav item drag operation.\n *\n * Removes document-level mouse listeners, executes the drop if there's a valid\n * target, and cleans up all drag-related state.\n */\n handleMouseUp() {\n document.removeEventListener('mousemove', this.boundHandleMouseMove);\n document.removeEventListener('mouseup', this.boundHandleMouseUp);\n if (this.isNavItemDragging && this.navItemDropTargetId) {\n this.executeNavItemDrop();\n }\n // Reset all drag state\n this.draggedNavItemId = null;\n this.navItemDropTargetId = null;\n this.isNavItemDragging = false;\n this.classList.remove('kr-scaffold--dragging');\n if (this.navItemDragPreview) {\n this.navItemDragPreview.remove();\n this.navItemDragPreview = null;\n }\n this.clearNavItemDragExpandTimeout();\n this.requestUpdate();\n }\n /**\n * Determines where a dragged nav item would be dropped based on mouse position.\n *\n * Loops through all nav items and checks if the mouse is hovering over one.\n * For groups, the item is divided into thirds (above/center/below) where\n * \"center\" means drop into the group. For regular items, it's halves (above/below).\n *\n * Also handles auto-expanding collapsed groups when hovering over their center,\n * and validates drops (e.g., prevents dropping a group into another group).\n *\n * Updates `navItemDropTargetId` and `navItemDropPosition` state which are used to render\n * visual drop indicators in the UI.\n *\n * @param e - The mouse event from dragging\n */\n updateNavItemDropTarget(e) {\n // Get all nav items in shadow DOM\n const navItems = this.shadowRoot?.querySelectorAll('.nav-item[data-id]');\n if (!navItems) {\n return;\n }\n let foundTarget = false;\n navItems.forEach((el) => {\n const rect = el.getBoundingClientRect();\n const itemId = el.getAttribute('data-id');\n if (!itemId || itemId === this.draggedNavItemId) {\n return;\n }\n // Skip if mouse is outside this element\n if (e.clientX < rect.left || e.clientX > rect.right ||\n e.clientY < rect.top || e.clientY > rect.bottom) {\n return;\n }\n const item = this.getComputedNav().find(i => i.id === itemId);\n if (!item) {\n return;\n }\n const y = e.clientY - rect.top;\n let position;\n // Determine drop position based on mouse Y position within the item.\n // Groups are divided into thirds: top=above, middle=center (drop into), bottom=below.\n // Regular items are divided in half: top=above, bottom=below.\n if (item.type === 'group') {\n if (y < rect.height / 3) {\n // Top third - drop above the group\n position = 'above';\n this.clearNavItemDragExpandTimeout();\n }\n else if (y > (rect.height * 2) / 3) {\n // Bottom third - drop below the group\n position = 'below';\n this.clearNavItemDragExpandTimeout();\n }\n else {\n // Middle third - drop into the group (as a child)\n position = 'center';\n // Auto-expand collapsed groups after a delay\n if (!this.navItemsExpanded.has(item.id) && !this.navItemDragExpandTimeout) {\n this.expandNavGroupOnDrag(item.id);\n }\n }\n }\n else {\n // Regular items only support above/below, not center\n if (y < rect.height / 2) {\n position = 'above';\n }\n else {\n position = 'below';\n }\n this.clearNavItemDragExpandTimeout();\n }\n // Determine what the new parent would be\n let newParentId;\n if (position === 'center') {\n newParentId = item.id;\n }\n else {\n newParentId = item.parentId;\n }\n const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);\n // Don't show drop indicator if invalid drop:\n // 1. Can't drop an item into itself (newParentId === draggedNavItemId)\n // 2. Groups can only exist at the top level, so prevent dropping a group into another group (newParentId !== null means it would be nested)\n if (newParentId === this.draggedNavItemId || (draggedItem?.type === 'group' && newParentId !== null)) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n return;\n }\n // Valid drop target found - store the target item and position (above/below/center)\n // so the UI can render the drop indicator in the correct location\n this.navItemDropTargetId = item.id;\n this.navItemDropPosition = position;\n foundTarget = true;\n });\n // Mouse is not over any valid nav item - clear the drop indicator\n // (e.g., user dragged outside the nav area or over empty space)\n if (!foundTarget) {\n this.navItemDropTargetId = null;\n this.clearNavItemDragExpandTimeout();\n }\n this.requestUpdate();\n }\n /**\n * Cancels the pending auto-expand timeout for nav groups during drag.\n * Called when the user moves away from a group's center or stops dragging.\n */\n clearNavItemDragExpandTimeout() {\n if (this.navItemDragExpandTimeout) {\n clearTimeout(this.navItemDragExpandTimeout);\n this.navItemDragExpandTimeout = null;\n }\n }\n /**\n * Auto-expands a collapsed nav group after a delay while dragging over it.\n *\n * Uses a 500ms timeout to prevent groups from expanding too eagerly when the\n * user is just passing over them. Only expands if the user is still hovering\n * over the group's center when the timeout fires.\n *\n * @param itemId - The ID of the group to expand\n */\n expandNavGroupOnDrag(itemId) {\n this.navItemDragExpandTimeout = window.setTimeout(() => {\n if (this.navItemDropTargetId === itemId && this.navItemDropPosition === 'center') {\n this.navItemsExpanded.add(itemId);\n this.requestUpdate();\n }\n this.navItemDragExpandTimeout = null;\n }, 500);\n }\n /**\n * Executes the drop operation after a nav item drag completes.\n *\n * Calculates the new position and parent for the dragged item based on\n * the drop target and position (above/below/center). Updates the navDelta\n * with new order values for the dragged item and shifts siblings as needed.\n */\n executeNavItemDrop() {\n if (!this.draggedNavItemId || !this.navItemDropTargetId) {\n return;\n }\n const allItems = this.getComputedNav();\n const draggedItem = allItems.find(i => i.id === this.draggedNavItemId);\n const targetItem = allItems.find(i => i.id === this.navItemDropTargetId);\n if (!draggedItem || !targetItem) {\n return;\n }\n // Determine the new parentId for the dragged item\n let newParentId;\n if (this.navItemDropPosition === 'center' && targetItem.type === 'group') {\n if (targetItem.id === this.draggedNavItemId) {\n return;\n }\n newParentId = targetItem.id;\n }\n else {\n newParentId = targetItem.parentId;\n }\n if (newParentId === this.draggedNavItemId) {\n return;\n }\n // Get siblings in the destination parent\n const siblings = allItems\n .filter(i => i.parentId === newParentId && i.id !== this.draggedNavItemId)\n .sort((a, b) => a.order - b.order);\n const navDelta = this.pref.nav;\n // Calculate the new order\n let newOrder;\n if (this.navItemDropPosition === 'center') {\n // Dropping into a group - place at the end of its children\n if (siblings.length > 0) {\n newOrder = Math.max(...siblings.map(s => s.order)) + 1;\n }\n else {\n newOrder = 0;\n }\n }\n else {\n // Find where the target item is in the sorted siblings list\n const targetIndex = siblings.findIndex(i => i.id === targetItem.id);\n // Determine insert position based on drop position (above/below target)\n if (targetIndex === -1) {\n newOrder = 0;\n }\n else if (this.navItemDropPosition === 'above') {\n newOrder = targetIndex;\n }\n else {\n newOrder = targetIndex + 1;\n }\n // Shift existing siblings to make room for the dropped item.\n // Items at or after the insert position get their order bumped up by 1.\n siblings.forEach((sibling, index) => {\n if (!navDelta[sibling.id]) {\n navDelta[sibling.id] = {};\n }\n if (index >= newOrder) {\n navDelta[sibling.id].order = index + 1;\n }\n else {\n navDelta[sibling.id].order = index;\n }\n });\n }\n // Update the dragged item's position and parent in the delta\n if (!navDelta[this.draggedNavItemId]) {\n navDelta[this.draggedNavItemId] = {};\n }\n navDelta[this.draggedNavItemId].order = newOrder;\n navDelta[this.draggedNavItemId].parentId = newParentId;\n // Persist changes and trigger re-render\n this.pref.nav = navDelta;\n this.requestUpdate();\n }\n // =========================================================================\n // User Menu\n // =========================================================================\n toggleUserMenu() {\n this.isUserMenuOpen = !this.isUserMenuOpen;\n }\n closeUserMenu() {\n this.isUserMenuOpen = false;\n }\n handleCustomize() {\n this.closeUserMenu();\n this.startEditing();\n }\n // =========================================================================\n // Rendering\n // =========================================================================\n renderNormalFooter() {\n if (!this.user) {\n return nothing;\n }\n const initials = this.user.name\n .split(' ')\n .map((part) => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n // todo - use a reusable menu component\n return html `\n <div class=\"user-menu-container\">\n ${this.isUserMenuOpen ? html `\n <div class=\"user-menu\">\n <button class=\"user-menu__item\" @click=${this.handleCustomize}>\n Customize Navigation\n </button>\n </div>\n ` : nothing}\n <div class=\"user\" @click=${this.toggleUserMenu}>\n <div class=\"user__avatar\">\n ${this.user.avatar\n ? html `<img src=${this.user.avatar} alt=${this.user.name} />`\n : initials}\n </div>\n <div class=\"user__info\">\n <div class=\"user__name\">${this.user.name}</div>\n ${this.user.email ? html `<div class=\"user__email\">${this.user.email}</div>` : nothing}\n </div>\n </div>\n </div>\n `;\n }\n // todo - review\n renderEditFooter() {\n return html `\n <div class=\"edit-actions\">\n <button class=\"edit-actions__btn edit-actions__btn--primary\" @click=${this.savePref}>\n Save\n </button>\n <div class=\"edit-actions__secondary\">\n <button class=\"edit-actions__btn\" @click=${this.resetPref}>\n Reset\n </button>\n <button class=\"edit-actions__btn\" @click=${this.cancelEditing}>\n Cancel\n </button>\n </div>\n </div>\n `;\n }\n /**\n * Renders a navigation item as either a group or a link.\n *\n * Groups render as expandable `<button>` elements with a chevron indicator and\n * nested children. Items render as `<a>` anchor links with href navigation.\n *\n * Both types support drag-and-drop reordering in edit mode, context menus for\n * customization, and visual indicators for active/hidden/drop-target states.\n *\n * Icons use SVG strings and fall back to `defaultNavItemIcon` when not provided.\n * Icons are only rendered for top-level items, not for children nested within groups.\n *\n * @param item - The flat nav item data to render\n * @param isChild - Whether this item is nested within a group (affects icon rendering)\n * @returns Lit HTML template for the nav item\n */\n renderNavItem(item, isChild = false) {\n if (item.type === 'section') {\n return html `\n <div class=\"nav-section\">${item.label}</div>\n `;\n }\n if (item.type === 'group') {\n const children = this.getNavItemChildren(item.id);\n return html `\n <button\n class=${classMap({\n 'nav-item': true,\n 'nav-item--expanded': this.navItemsExpanded.has(item.id),\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n 'nav-item--drop-center': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'center',\n })}\n data-id=\"${item.id}\"\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n <svg\n class=\"nav-item__chevron\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path\n d=\"M6 9l6 6 6-6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n <div class=${classMap({\n 'nav-group': true,\n 'nav-group--expanded': this.navItemsExpanded.has(item.id),\n })}>\n ${children.map((child) => this.renderNavItem(child, true))}\n </div>\n `;\n }\n return html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': this.activeNavItemId === item.id,\n 'nav-item--hidden': this.isEditing && item.active === false,\n 'nav-item--drop-above': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'above',\n 'nav-item--drop-below': this.navItemDropTargetId === item.id && this.navItemDropPosition === 'below',\n })}\n data-id=\"${item.id}\"\n href=${this.resolveUrl(item)}\n target=${item.external ? '_blank' : nothing}\n @mousedown=${(e) => this.handleNavItemMouseDown(e, item)}\n @click=${(e) => this.handleNavItemClick(e, item)}\n @contextmenu=${(e) => this.handleNavItemContextMenu(e, item)}\n >\n ${this.navIconsDisplayed && !isChild ? html `<span class=\"nav-item__icon\">${unsafeHTML(item.icon || this.defaultNavItemIcon)}</span>` : nothing}\n <span class=\"nav-item__label\">${item.label}</span>\n </a>\n `;\n }\n // todo - don't hardcode breadcrumbs\n render() {\n const topLevelItems = this.getNavItemChildren(null);\n // Use unfiltered count to determine if search should show (so it doesn't disappear while typing)\n const totalTopLevelItems = this.getComputedNav().filter(item => item.parentId === null).length;\n return html `\n <div class=${classMap({\n 'progress': true,\n 'progress--loading': this.pendingRequests > 0,\n })}>\n <div class=\"progress__track\"></div>\n <div class=\"progress__bar progress__bar--primary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n <div class=\"progress__bar progress__bar--secondary\">\n <span class=\"progress__bar-inner\"></span>\n </div>\n </div>\n \n ${this.subbar ? html `\n <kr-subbar\n menu\n .breadcrumbs=${this.breadcrumbs}\n @menu-click=${this.handleMenuClick}\n >\n <slot name=\"subbar\"></slot>\n </kr-subbar>\n ` : nothing}\n\n <div class=\"wrapper\">\n ${this.navEnabled ? html `\n <nav class=${classMap({\n 'nav': true,\n 'nav--scrolled': this.isNavScrolled,\n 'nav--opened': !this.subbar || this.isNavOpened,\n })}>\n <div class=\"nav-header\" @click=${this.handleNavHeaderClick}>\n ${this.label\n ? html `<span class=\"nav-title\">${this.label}</span>`\n : this.logo\n ? html `<img\n class=\"nav-logo\"\n src=${this.logo}\n alt=\"Logo\"\n />`\n : nothing}\n </div>\n <div class=\"nav-content\" @scroll=${this.handleNavScroll}>\n ${totalTopLevelItems > 20 ? html `\n <div class=\"nav-search\">\n <div class=\"nav-search__wrapper\">\n <span class=\"nav-search__icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/>\n </svg>\n </span>\n <input\n class=\"nav-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n .value=${this.navQuery}\n @input=${this.handleNavQueryChange}\n />\n ${this.navQuery ? html `\n <button class=\"nav-search__clear\" @click=${this.handleNavQueryClear}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/>\n </svg>\n </button>\n ` : nothing}\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-items\">\n ${topLevelItems.map((item) => this.renderNavItem(item))}\n </div>\n </div>\n <!-- <div class=\"nav-footer\">\n ${this.isEditing ? this.renderEditFooter() : this.renderNormalFooter()}\n </div> -->\n </nav>\n ` : nothing}\n\n <main class=\"main\">\n <slot></slot>\n </main>\n </div>\n \n `;\n }\n};\nKRScaffold.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n font-size: 14px;\n --kr-scaffold-nav-width: 250px;\n\n /* Default to light scheme */\n --kr-scaffold-nav-bg: #F3F7FC;\n --kr-scaffold-nav-text: #000000;\n --kr-scaffold-nav-text-active: #000000;\n --kr-scaffold-nav-hover: #f3f4f6;\n --kr-scaffold-nav-active-bg: #e5e7eb;\n --kr-scaffold-nav-border: rgb(229, 229, 228);\n --kr-scaffold-nav-divider: #e5e7eb;\n --kr-scaffold-nav-search-bg: #ffffff;\n --kr-scaffold-nav-search-border: #d1d5db;\n }\n\n /* Dark scheme */\n :host([scheme=\"dark\"]) {\n --kr-scaffold-nav-bg: #10172a;\n --kr-scaffold-nav-text: rgb(255 255 255 / 80%);\n --kr-scaffold-nav-text-active: #ffffff;\n --kr-scaffold-nav-hover: rgba(255, 255, 255, 0.05);\n --kr-scaffold-nav-active-bg: rgb(255 255 255 / 12%);\n --kr-scaffold-nav-border: transparent;\n --kr-scaffold-nav-divider: rgba(255, 255, 255, 0.06);\n --kr-scaffold-nav-search-bg: rgba(255, 255, 255, 0.15);\n --kr-scaffold-nav-search-border: rgba(255, 255, 255, 0.3);\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Nav */\n .nav {\n width: var(--kr-scaffold-nav-width);\n background: var(--kr-scaffold-nav-bg);\n color: var(--kr-scaffold-nav-text);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n border-right: 1px solid var(--kr-scaffold-nav-border);\n transition: margin-left 0.3s ease;\n margin-left: calc(-1 * var(--kr-scaffold-nav-width));\n flex: 1;\n max-width: var(--kr-scaffold-nav-width);\n }\n\n .nav--opened {\n margin-left: 0;\n }\n\n .wrapper {\n display: flex;\n flex: 1;\n min-height: 0;\n max-height: 100%;\n height: 100%;\n }\n\n .nav-header {\n padding: 20px;\n display: flex;\n align-items: center;\n position: relative;\n z-index: 1;\n transition: box-shadow 0.2s ease;\n cursor: pointer;\n }\n\n .nav--scrolled .nav-header {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n }\n\n .nav-logo {\n max-width: 100%;\n height: 32px;\n }\n\n .nav-title {\n font-size: 20px;\n font-weight: 600;\n color: var(--kr-scaffold-nav-text-active);\n letter-spacing: .2px;\n }\n\n .nav-search {\n padding: 4px 0 8px;\n }\n\n .nav-search__wrapper {\n display: flex;\n align-items: center;\n background: var(--kr-scaffold-nav-search-bg);\n border-radius: 8px;\n padding: 0 12px;\n height: 40px;\n gap: 8px;\n border: 1px solid var(--kr-scaffold-nav-search-border);\n transition: all 0.15s ease;\n }\n\n .nav-search__icon {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n opacity: 0.6;\n }\n\n .nav-search__icon svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-search__input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-family: inherit;\n min-width: 0;\n }\n\n .nav-search__input::placeholder {\n color: var(--kr-scaffold-nav-text);\n opacity: 0.7;\n }\n\n .nav-search__clear {\n width: 18px;\n height: 18px;\n padding: 0;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n }\n\n .nav-search__clear:hover {\n opacity: 1;\n }\n\n .nav-search__clear svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 9px 12px 8px;\n }\n\n .nav-footer {\n padding: 12px;\n border-top: 1px solid var(--kr-scaffold-nav-divider);\n }\n\n .user {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .user:hover {\n background: var(--kr-scaffold-nav-hover);\n }\n\n .user__avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--kr-scaffold-avatar-bg, #beea4e);\n color: var(--kr-scaffold-avatar-text, #10172a);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user__info {\n flex: 1;\n min-width: 0;\n }\n\n .user__name {\n font-size: 13px;\n font-weight: 500;\n color: var(--kr-scaffold-nav-text-active);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user__email {\n font-size: 12px;\n color: var(--kr-scaffold-nav-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-menu-container {\n position: relative;\n }\n\n .user-menu {\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n margin-bottom: 8px;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n padding: 4px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n }\n\n .user-menu__item {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: none;\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-family: inherit;\n text-align: left;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .user-menu__item:hover {\n background: var(--kr-scaffold-nav-hover);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .user-menu__divider {\n height: 1px;\n background: var(--kr-scaffold-nav-divider);\n margin: 4px 0;\n }\n\n /* Main */\n .main {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n background: transparent;\n display: flex;\n flex-direction: column;\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n color: #6b7280;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n .main__content {\n flex: 1;\n overflow-y: auto;\n }\n\n /* Nav Items */\n .nav-items {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 0 12px;\n height: 32px;\n border-radius: 8px;\n color: var(--kr-scaffold-nav-text);\n text-decoration: none;\n cursor: pointer;\n border: none;\n background: none;\n width: 100%;\n text-align: left;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: #F3F7FC;\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .nav-item--active,\n .nav-item--active:hover {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .nav-item__icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .nav-item__icon svg {\n width: 16px;\n height: 16px;\n fill: currentColor;\n }\n\n .nav-item__label {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n letter-spacing: 0.14px;\n }\n\n .nav-item__chevron {\n width: 16px;\n height: 16px;\n transition: transform 0.2s ease;\n transform: rotate(-90deg);\n stroke: currentColor;\n }\n\n .nav-item--expanded .nav-item__chevron {\n transform: rotate(0deg);\n }\n\n .nav-group {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 0;\n }\n\n .nav-group--expanded {\n height: auto;\n }\n\n .nav-group .nav-item {\n padding: 0 12px 0 44px;\n height: 32px;\n font-size: 13px;\n font-weight: 400;\n margin-top: 2px;\n flex-shrink: 0;\n }\n\n .nav-group .nav-item--active,\n .nav-group .nav-item--active:hover {\n font-weight: 700;\n }\n\n .nav-group .nav-item:first-child {\n margin-top: 0;\n }\n\n /* Nav items in groups when icons are hidden */\n :host(:not([nav-icons-displayed])) .nav-group .nav-item {\n padding-left: 24px;\n }\n\n /* Sections */\n .nav-section {\n padding: 16px 12px 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.55px;\n color: var(--kr-scaffold-nav-text);\n opacity: 0.6;\n }\n\n .nav-section:first-child {\n padding-top: 0;\n }\n\n /* Edit mode actions */\n .edit-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .edit-actions__btn {\n display: block;\n width: 100%;\n padding: 10px 12px;\n background: var(--kr-scaffold-nav-hover);\n border: none;\n color: var(--kr-scaffold-nav-text);\n font-size: 13px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n\n .edit-actions__btn:hover {\n background: var(--kr-scaffold-nav-active-bg);\n color: var(--kr-scaffold-nav-text-active);\n }\n\n .edit-actions__btn--primary {\n background: #beea4e;\n color: #10172a;\n }\n\n .edit-actions__btn--primary:hover {\n background: #d4f472;\n color: #10172a;\n }\n\n .edit-actions__secondary {\n display: flex;\n gap: 8px;\n }\n\n .edit-actions__secondary .edit-actions__btn {\n flex: 1;\n }\n\n /* Hidden/inactive items in edit mode */\n .nav-item--hidden {\n opacity: 0.4;\n font-style: italic;\n }\n\n .nav-item--hidden:hover {\n opacity: 0.6;\n }\n\n /* Dragging state */\n :host(.kr-scaffold--dragging),\n :host(.kr-scaffold--dragging) * {\n cursor: grabbing;\n user-select: none;\n }\n\n .nav-item-drag-preview {\n position: fixed;\n pointer-events: none;\n z-index: 1000;\n opacity: 0.9;\n background: var(--kr-scaffold-nav-bg);\n border: 1px solid var(--kr-scaffold-nav-divider);\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);\n padding: 0 12px;\n height: 40px;\n min-width: 200px;\n display: flex;\n align-items: center;\n gap: 16px;\n color: var(--kr-scaffold-nav-text-active);\n font-size: 13px;\n font-weight: 500;\n }\n\n /* Drop indicator */\n .nav-item--drop-above,\n .nav-item--drop-below,\n .nav-item--drop-center {\n position: relative;\n }\n\n .nav-item--drop-above::before,\n .nav-item--drop-below::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 2px;\n background: #beea4e;\n }\n\n .nav-item--drop-above::before {\n top: 0;\n }\n\n .nav-item--drop-below::after {\n bottom: 0;\n }\n\n .nav-item--drop-center {\n background: var(--kr-scaffold-nav-active-bg);\n }\n\n .breadcrumbs {\n height: 32px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n //background: #f9fafb;\n background: #beea4e;\n border-top: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .breadcrumbs a {\n //color: #6b7280;\n color: #10172a;\n font-size: 13px;\n font-weight: 600;\n text-decoration: none;\n }\n\n .breadcrumbs a:hover {\n color: #111827;\n text-decoration: underline;\n }\n\n .breadcrumbs__separator {\n color: #d1d5db;\n }\n\n .breadcrumbs__current {\n color: #111827;\n font-weight: 500;\n }\n\n /* Progress bar */\n .progress {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n overflow-x: hidden;\n z-index: 1000;\n display: none;\n }\n\n .progress--loading {\n display: block;\n }\n\n .progress__track {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n background: rgba(190, 234, 78, 0.3);\n }\n\n .progress__bar {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n transform-origin: left center;\n }\n\n .progress__bar-inner {\n display: inline-block;\n position: absolute;\n width: 100%;\n height: 100%;\n background: #beea4e;\n }\n\n .progress__bar--primary {\n left: -145.166611%;\n }\n\n .progress--loading .progress__bar--primary {\n animation: progress-primary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--primary .progress__bar-inner {\n animation: progress-primary-scale 2s infinite linear;\n }\n\n .progress__bar--secondary {\n left: -54.888891%;\n }\n\n .progress--loading .progress__bar--secondary {\n animation: progress-secondary-translate 2s infinite linear;\n }\n\n .progress--loading .progress__bar--secondary .progress__bar-inner {\n animation: progress-secondary-scale 2s infinite linear;\n }\n\n @keyframes progress-primary-translate {\n 0% {\n transform: translateX(0);\n }\n 20% {\n animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);\n transform: translateX(0);\n }\n 59.15% {\n animation-timing-function: cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);\n transform: translateX(83.67142%);\n }\n 100% {\n transform: translateX(200.611057%);\n }\n }\n\n @keyframes progress-primary-scale {\n 0% {\n transform: scaleX(0.08);\n }\n 36.65% {\n animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);\n transform: scaleX(0.08);\n }\n 69.15% {\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\n transform: scaleX(0.661479);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n\n @keyframes progress-secondary-translate {\n 0% {\n animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);\n transform: translateX(0);\n }\n 25% {\n animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);\n transform: translateX(37.651913%);\n }\n 48.35% {\n animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);\n transform: translateX(84.386165%);\n }\n 100% {\n transform: translateX(160.277782%);\n }\n }\n\n @keyframes progress-secondary-scale {\n 0% {\n animation-timing-function: cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);\n transform: scaleX(0.08);\n }\n 19.15% {\n animation-timing-function: cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);\n transform: scaleX(0.457104);\n }\n 44.15% {\n animation-timing-function: cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);\n transform: scaleX(0.72796);\n }\n 100% {\n transform: scaleX(0.08);\n }\n }\n `;\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"logo\", void 0);\n__decorate([\n property({ type: String })\n], KRScaffold.prototype, \"label\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'home-url'\n })\n], KRScaffold.prototype, \"homeUrl\", void 0);\n__decorate([\n property({\n type: String,\n reflect: true\n })\n], KRScaffold.prototype, \"scheme\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"nav\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-icons-displayed',\n reflect: true\n })\n], KRScaffold.prototype, \"navIconsDisplayed\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-expanded'\n })\n], KRScaffold.prototype, \"navExpanded\", void 0);\n__decorate([\n property({ type: Object })\n], KRScaffold.prototype, \"user\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRScaffold.prototype, \"subbar\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'nav-enabled'\n })\n], KRScaffold.prototype, \"navEnabled\", void 0);\n__decorate([\n property({\n type: String,\n attribute: 'user-type'\n })\n], KRScaffold.prototype, \"userType\", void 0);\n__decorate([\n property({ type: Array })\n], KRScaffold.prototype, \"breadcrumbs\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemsExpanded\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navQuery\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"activeNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavScrolled\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isNavOpened\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isEditing\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"isUserMenuOpen\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pref\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"draggedNavItemId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropTargetId\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"navItemDropPosition\", void 0);\n__decorate([\n state()\n], KRScaffold.prototype, \"pendingRequests\", void 0);\nKRScaffold = __decorate([\n customElement('kr-scaffold')\n], KRScaffold);\nexport { KRScaffold };\n//# sourceMappingURL=scaffold.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary navigation component for screens within the scaffold.\n * Provides a simple nav drawer for sub-navigation within a page/screen.\n * Typically used when viewing details of a specific entity (e.g., Company, Contact).\n *\n * ## Usage\n * ```html\n * <kr-screen-nav\n * label=\"Acme Corporation\"\n * subLabel=\"Company\"\n * .items=${[\n * { id: 'overview', label: 'Overview', url: '/companies/123/overview' },\n * { id: 'contacts', label: 'Contacts', url: '/companies/123/contacts' },\n * { id: 'activity', label: 'Activity', url: '/companies/123/activity' },\n * ]}\n * activeId=\"overview\"\n * >\n * <div>Screen content here</div>\n * </kr-screen-nav>\n * ```\n *\n * @slot - The main screen content\n *\n * @property {string} label - Main label (e.g., entity name like \"Acme Corporation\")\n * @property {string} subLabel - Sub label (e.g., entity type like \"Company\")\n * @property {KRScreenNavItem[]} items - Navigation items as JSON array\n * @property {string} activeId - Currently active item ID\n */\nlet KRScreenNav = class KRScreenNav extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Main label (e.g., entity name like \"Acme Corporation\")\n */\n this.label = '';\n /**\n * Sub label (e.g., entity type like \"Company\")\n */\n this.subLabel = '';\n /**\n * Navigation items\n */\n this.items = [];\n /**\n * Currently active item ID. Auto-detected from the URL by default.\n * Can be set explicitly by the parent to override.\n */\n this.activeId = '';\n this.handlePopstate = () => {\n this.syncActiveFromUrl();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n // Defer so property bindings (.items) have been applied\n requestAnimationFrame(() => this.syncActiveFromUrl());\n window.addEventListener('popstate', this.handlePopstate);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopstate);\n }\n /**\n * Handles click events on navigation items.\n *\n * Dispatches a cancelable `nav-item-click` custom event.\n * If a listener calls `preventDefault()` on the custom event, native browser\n * navigation is prevented. Otherwise, the default `<a href>` navigation\n * proceeds normally.\n *\n * The `@krubble/angular` package provides `KRScreenNavDirective` which\n * automatically listens for this event and handles navigation using\n * Angular's router.\n *\n * @param e - The original click event\n * @param item - The nav item that was clicked\n */\n handleNavItemClick(e, item) {\n const navEvent = new CustomEvent('nav-item-click', {\n detail: { item },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(navEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (navEvent.defaultPrevented) {\n e.preventDefault();\n }\n this.activeId = item.id;\n }\n syncActiveFromUrl() {\n const pathname = window.location.pathname;\n const match = this.items.find((item) => {\n if (!item.url) {\n return false;\n }\n // Absolute URL — exact match\n if (item.url.startsWith('/')) {\n return pathname === item.url;\n }\n // Relative URL — match against the end of the pathname\n return pathname.endsWith('/' + item.url);\n });\n if (match) {\n this.activeId = match.id;\n }\n }\n render() {\n return html `\n <nav class=\"nav\">\n ${this.label ? html `\n <div class=\"nav-header\">\n <div class=\"nav-header__text\">\n ${this.subLabel ? html `<div class=\"nav-header__subtitle\">${this.subLabel}</div>` : nothing}\n <div class=\"nav-header__title\">${this.label}</div>\n </div>\n </div>\n ` : nothing}\n <div class=\"nav-content\">\n <div class=\"nav-items\">\n ${this.items.map((item) => html `\n <a\n class=${classMap({\n 'nav-item': true,\n 'nav-item--active': item.id === this.activeId\n })}\n href=${item.url || '#'}\n @click=${(e) => this.handleNavItemClick(e, item)}\n >\n ${item.label}\n </a>\n `)}\n </div>\n </div>\n </nav>\n <main class=\"content\">\n <div class=\"content__main\">\n <slot></slot>\n </div>\n </main>\n `;\n }\n};\nKRScreenNav.styles = css `\n :host {\n display: flex;\n height: 100%;\n }\n\n .nav {\n width: 200px;\n background: white;\n border-right: 1px solid #e5e7eb;\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n }\n\n .nav-header {\n padding: 20px 16px 16px;\n }\n\n .nav-header__text {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .nav-header__title {\n font-size: 20px;\n font-weight: 600;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.3;\n }\n\n .nav-header__subtitle {\n font-size: 12px;\n font-weight: 400;\n color: rgb(0 0 0 / 70%);\n line-height: 1;\n }\n\n .nav-content {\n flex: 1;\n overflow-y: auto;\n padding: 0 0 12px;\n }\n\n .nav-items {\n display: flex;\n flex-direction: column;\n padding: 0 8px;\n }\n\n .nav-item {\n display: block;\n padding: 0 12px;\n height: 32px;\n line-height: 32px;\n letter-spacing: 0.13px;\n color: rgb(32, 33, 36);\n text-decoration: none;\n font-size: 13px;\n font-weight: 400;\n font-family: inherit;\n border-radius: 8px;\n transition: all 0.15s ease;\n }\n\n .nav-item:hover {\n background: rgba(0, 0, 0, 0.04);\n color: #163052;\n }\n\n .nav-item--active {\n background: #e1e9f6;\n color: #1a2332;\n font-weight: 700;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .content__main {\n flex: 1;\n overflow-y: auto;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"subLabel\", void 0);\n__decorate([\n property({ type: Array })\n], KRScreenNav.prototype, \"items\", void 0);\n__decorate([\n property({ type: String })\n], KRScreenNav.prototype, \"activeId\", void 0);\nKRScreenNav = __decorate([\n customElement('kr-screen-nav')\n], KRScreenNav);\nexport { KRScreenNav };\n//# sourceMappingURL=screen-nav.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n/**\n * Detail screen component for viewing/editing entity details.\n * Displays a form-like layout with labeled fields centered in a single column.\n *\n * ## Usage\n * ```html\n * <kr-screen-detail title=\"Company Details\">\n * <kr-button slot=\"actions\">Save</kr-button>\n * <kr-text-field label=\"Company Name\" value=\"Acme Corporation\"></kr-text-field>\n * <kr-text-field label=\"Industry\" value=\"Technology\"></kr-text-field>\n * <kr-text-field label=\"Website\" value=\"https://acme.com\"></kr-text-field>\n * </kr-screen-detail>\n * ```\n *\n * @slot - Form fields and content (centered, max-width 480px)\n * @slot actions - Action buttons displayed in the header on the right\n *\n * @property {string} title - Section title (e.g., \"Company Details\")\n */\nlet KRScreenDetail = class KRScreenDetail extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Section title\n */\n this.title = '';\n }\n render() {\n return html `\n <div class=\"header\">\n <h2 class=\"header__title\">${this.title}</h2>\n <div class=\"header__actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"content__inner\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n};\nKRScreenDetail.styles = css `\n :host {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .header {\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px;\n background: #ffffff;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n }\n\n .header__title {\n font-size: 18px;\n font-weight: 600;\n color: #111827;\n margin: 0;\n }\n\n .header__actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n display: flex;\n justify-content: center;\n }\n\n .content__inner {\n width: 100%;\n max-width: 700px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRScreenDetail.prototype, \"title\", void 0);\nKRScreenDetail = __decorate([\n customElement('kr-screen-detail')\n], KRScreenDetail);\nexport { KRScreenDetail };\n//# sourceMappingURL=screen-detail.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * Secondary bar component that sits below the main app bar.\n *\n * @slot - Content to display in the subbar (right side)\n */\nlet KRSubbar = class KRSubbar extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Array of breadcrumb items to display\n */\n this.breadcrumbs = [];\n /**\n * Whether to show the menu icon\n */\n this.menu = false;\n }\n _handleMenuClick() {\n this.dispatchEvent(new CustomEvent('menu-click', {\n bubbles: true,\n composed: true\n }));\n }\n /**\n * Resolves a breadcrumb URL by prepending the base href.\n *\n * This method is used for setting href attributes on anchor elements\n * (so Cmd/Ctrl+click opens correct URL in new tab).\n *\n * The original crumb.url is kept intact (without base href) and passed to Angular\n * via the breadcrumb-click event. Angular Router expects paths relative to base,\n * so it handles the base href internally.\n *\n * Example with base href \"/operations/\":\n * - crumb.url = \"/settings\" (used for Angular routing)\n * - resolveUrl(crumb) = \"/operations/settings\" (used for href)\n */\n resolveUrl(crumb) {\n if (!crumb.url) {\n return '#';\n }\n // Remove leading slash from url if present, then combine with base\n let path = crumb.url;\n if (crumb.url.startsWith('/')) {\n path = crumb.url.slice(1);\n }\n const baseHref = document.querySelector('base')?.getAttribute('href') || '/';\n if (baseHref.endsWith('/')) {\n return baseHref + path;\n }\n return baseHref + '/' + path;\n }\n /**\n * Handles click on a breadcrumb link.\n * Dispatches a cancelable event so SPA routers can intercept.\n */\n _handleBreadcrumbClick(e, crumb, isCurrent) {\n // Don't navigate if it's the current/last breadcrumb\n if (isCurrent || !crumb.url) {\n e.preventDefault();\n return;\n }\n // Allow Ctrl/Cmd+click and middle-click to open in new tab without SPA navigation\n if (e.ctrlKey || e.metaKey || e.button === 1) {\n return;\n }\n const breadcrumbEvent = new CustomEvent('breadcrumb-click', {\n detail: { breadcrumb: crumb },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(breadcrumbEvent);\n // If a listener called preventDefault(), prevent the native navigation\n if (breadcrumbEvent.defaultPrevented) {\n e.preventDefault();\n }\n }\n render() {\n return html `\n ${this.menu ? html `\n <div class=\"menu\" @click=${this._handleMenuClick}>\n <svg\n class=\"menu__icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <line\n x1=\"3\"\n y1=\"6\"\n x2=\"21\"\n y2=\"6\"\n ></line>\n <line\n x1=\"3\"\n y1=\"12\"\n x2=\"21\"\n y2=\"12\"\n ></line>\n <line\n x1=\"3\"\n y1=\"18\"\n x2=\"21\"\n y2=\"18\"\n ></line>\n </svg>\n </div>\n ` : nothing}\n <div class=\"breadcrumbs\">\n ${this.breadcrumbs.map((crumb, index) => {\n const isCurrent = index === this.breadcrumbs.length - 1;\n return html `\n ${index > 0 ? html `<span class=\"breadcrumb-separator\">/</span>` : ''}\n <a\n class=${classMap({\n 'breadcrumb': true,\n 'breadcrumb--current': isCurrent\n })}\n href=${this.resolveUrl(crumb)}\n @click=${(e) => this._handleBreadcrumbClick(e, crumb, isCurrent)}\n >${crumb.label}</a>\n `;\n })}\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n\n `;\n }\n};\nKRSubbar.styles = css `\n :host {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n height: 40px;\n background: #E2E9F6;\n border-bottom: 1px solid rgb(229, 229, 228);\n align-items: center;\n padding: 0 16px;\n width: 100%;\n flex-shrink: 0;\n }\n\n .breadcrumbs {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 13px;\n flex: 1;\n }\n\n .breadcrumb {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n font-size: 13px;\n }\n\n .breadcrumb:hover {\n text-decoration: underline;\n }\n\n .breadcrumb--current {\n cursor: default;\n }\n\n .breadcrumb--current:hover {\n text-decoration: none;\n }\n\n .breadcrumb-separator {\n color: #9ca3af;\n font-size: 12px;\n }\n\n .content {\n display: flex;\n align-items: center;\n margin-left: auto;\n }\n\n .menu {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n cursor: pointer;\n }\n\n .menu__icon {\n width: 18px;\n height: 18px;\n }\n `;\n__decorate([\n property({ type: Array })\n], KRSubbar.prototype, \"breadcrumbs\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSubbar.prototype, \"menu\", void 0);\nKRSubbar = __decorate([\n customElement('kr-subbar')\n], KRSubbar);\nexport { KRSubbar };\n//# sourceMappingURL=subbar.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nexport class KRRouter {\n static configure(config) {\n KRRouter.base = config.base;\n KRRouter.routes = config.routes;\n // Intercept <a> clicks for client-side navigation\n window.addEventListener('click', (e) => {\n const anchor = e.composedPath().find(el => el instanceof HTMLAnchorElement);\n if (!anchor) {\n return;\n }\n if (anchor.origin !== window.location.origin) {\n return;\n }\n if (!anchor.pathname.startsWith(KRRouter.base)) {\n return;\n }\n e.preventDefault();\n KRRouter.navigate(anchor.pathname);\n });\n }\n static navigate(path) {\n let fullPath = path;\n if (!path.startsWith('/')) {\n fullPath = KRRouter.base + '/' + path;\n }\n window.history.pushState({}, '', fullPath);\n window.dispatchEvent(new PopStateEvent('popstate'));\n }\n static getParams() {\n const matched = KRRouter.matchAll();\n const params = {};\n for (const match of matched) {\n for (const key in match.params) {\n params[key] = decodeURIComponent(match.params[key]);\n }\n }\n return params;\n }\n static outlet(level) {\n const matched = KRRouter.matchAll();\n if (level >= matched.length) {\n return null;\n }\n const match = matched[level];\n const tag = match.route.component;\n const cached = KRRouter.elementCache.get(level + ':' + tag);\n if (cached) {\n return cached;\n }\n // Clear old cache entry for this level\n for (const key of KRRouter.elementCache.keys()) {\n if (key.startsWith(level + ':')) {\n KRRouter.elementCache.delete(key);\n }\n }\n const el = document.createElement(tag);\n KRRouter.elementCache.set(level + ':' + tag, el);\n return el;\n }\n static matchAll() {\n const path = window.location.pathname;\n let relative = path;\n if (path.startsWith(KRRouter.base)) {\n relative = path.slice(KRRouter.base.length);\n }\n const segments = relative.split('/').filter(s => s);\n return KRRouter.matchRoutes(KRRouter.routes, segments);\n }\n static matchRoutes(routes, segments) {\n for (const route of routes) {\n const routeSegments = route.path.split('/').filter(s => s);\n if (routeSegments.length === 0 && segments.length === 0) {\n return [{\n route,\n params: {}\n }];\n }\n if (routeSegments.length === 0) {\n continue;\n }\n if (segments.length < routeSegments.length) {\n continue;\n }\n const params = {};\n let matched = true;\n for (let i = 0; i < routeSegments.length; i++) {\n if (routeSegments[i].startsWith(':')) {\n params[routeSegments[i].slice(1)] = segments[i];\n }\n else if (routeSegments[i] !== segments[i]) {\n matched = false;\n break;\n }\n }\n if (!matched) {\n continue;\n }\n const remaining = segments.slice(routeSegments.length);\n // If there are remaining segments but no children, this route doesn't fully match — try next route\n if (remaining.length > 0 && !route.children) {\n continue;\n }\n const result = [{\n route,\n params\n }];\n if (route.children && remaining.length > 0) {\n const childMatches = KRRouter.matchRoutes(route.children, remaining);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n // No remaining segments + default child — redirect\n if (route.children && remaining.length === 0 && route.default) {\n window.history.replaceState({}, '', window.location.pathname + '/' + route.default);\n const childMatches = KRRouter.matchRoutes(route.children, [route.default]);\n if (childMatches.length > 0) {\n result.push(...childMatches);\n return result;\n }\n }\n return result;\n }\n return [];\n }\n}\nKRRouter.base = '';\nKRRouter.routes = [];\nKRRouter.elementCache = new Map();\nlet KRRouterOutlet = class KRRouterOutlet extends LitElement {\n constructor() {\n super(...arguments);\n this.level = -1;\n this.handlePopState = () => {\n this.requestUpdate();\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.level = this.detectLevel();\n window.addEventListener('popstate', this.handlePopState);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('popstate', this.handlePopState);\n }\n detectLevel() {\n let level = 0;\n let node = this;\n while (node) {\n if (node instanceof ShadowRoot) {\n node = node.host;\n continue;\n }\n if (node instanceof HTMLElement && node.tagName === 'KR-ROUTER-OUTLET' && node !== this) {\n level++;\n }\n if (node instanceof HTMLElement) {\n node = node.parentNode;\n }\n else {\n node = null;\n }\n }\n return level;\n }\n render() {\n const el = KRRouter.outlet(this.level);\n if (!el) {\n return html ``;\n }\n return html `${el}`;\n }\n};\nKRRouterOutlet.styles = css `\n :host {\n display: block;\n height: 100%;\n }\n `;\nKRRouterOutlet = __decorate([\n customElement('kr-router-outlet')\n], KRRouterOutlet);\nexport { KRRouterOutlet };\n//# sourceMappingURL=router.js.map","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","/**\n * marked v12.0.2 - a markdown parser\n * Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$1(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch (e) {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$1(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$1(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n // precede setext continuation with 4 spaces so it isn't a setext\n let text = cap[0].replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, '\\n $1');\n text = rtrim(text.replace(/^ *>[ \\t]?/gm, ''), '\\n');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n (list.items[list.items.length - 1]).text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (const header of headers) {\n item.header.push({\n text: header,\n tokens: this.lexer.inline(header)\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map(cell => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell)\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$1(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n }\n else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$1(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape$1(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape$1(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape$1(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex()\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex()\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = '\\\\p{P}\\\\p{S}';\nconst punctuation = edit(/^((?![*_])[\\spunctuation])/, 'u')\n .replace(/punctuation/g, _punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex()\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\n/**\n * GFM + Line Breaks Inline Grammar\n */\nconst inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n};\n/**\n * exports\n */\nconst block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nconst inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n/**\n * Block Lexer\n */\nclass _Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options) {\n // TokenList cannot be created in one go\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n }\n else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n }\n else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n }\n else {\n src = src.replace(/^( *)(\\t+)/gm, (_, leading, tabs) => {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n return '<pre><code class=\"language-'\n + escape$1(lang)\n + '\">'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n blockquote(quote) {\n return `<blockquote>\\n${quote}</blockquote>\\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `<h${level}>${text}</h${level}>\\n`;\n }\n hr() {\n return '<hr>\\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n }\n listitem(text, task, checked) {\n return `<li>${text}</li>\\n`;\n }\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph(text) {\n return `<p>${text}</p>\\n`;\n }\n table(header, body) {\n if (body)\n body = `<tbody>${body}</tbody>`;\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n tablerow(content) {\n return `<tr>\\n${content}</tr>\\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? `<${type} align=\"${flags.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `<strong>${text}</strong>`;\n }\n em(text) {\n return `<em>${text}</em>`;\n }\n codespan(text) {\n return `<code>${text}</code>`;\n }\n br() {\n return '<br>';\n }\n del(text) {\n return `<del>${text}</del>`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${title}\"`;\n }\n out += '>';\n return out;\n }\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass _TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n em(text) {\n return text;\n }\n codespan(text) {\n return text;\n }\n del(text) {\n return text;\n }\n html(text) {\n return text;\n }\n text(text) {\n return text;\n }\n link(href, title, text) {\n return '' + text;\n }\n image(href, title, text) {\n return '' + text;\n }\n br() {\n return '';\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass _Parser {\n options;\n renderer;\n textRenderer;\n constructor(options) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const genericToken = token;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n const headingToken = token;\n out += this.renderer.heading(this.parseInline(headingToken.tokens), headingToken.depth, unescape(this.parseInline(headingToken.tokens, this.textRenderer)));\n continue;\n }\n case 'code': {\n const codeToken = token;\n out += this.renderer.code(codeToken.text, codeToken.lang, !!codeToken.escaped);\n continue;\n }\n case 'table': {\n const tableToken = token;\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < tableToken.header.length; j++) {\n cell += this.renderer.tablecell(this.parseInline(tableToken.header[j].tokens), { header: true, align: tableToken.align[j] });\n }\n header += this.renderer.tablerow(cell);\n let body = '';\n for (let j = 0; j < tableToken.rows.length; j++) {\n const row = tableToken.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), { header: false, align: tableToken.align[k] });\n }\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n const blockquoteToken = token;\n const body = this.parse(blockquoteToken.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n const listToken = token;\n const ordered = listToken.ordered;\n const start = listToken.start;\n const loose = listToken.loose;\n let body = '';\n for (let j = 0; j < listToken.items.length; j++) {\n const item = listToken.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.renderer.checkbox(!!checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph': {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape': {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html': {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link': {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image': {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong': {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em': {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan': {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text': {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens'\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escape$1(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { marked } from 'marked';\n// Importing these named exports also registers their custom elements\n// (kr-dialog, kr-tab-group, kr-tab, kr-text-field) used by the browse dialog.\nimport { KRFilePreview } from '@kodaris/krubble-components';\nimport { KRHttp } from '@kodaris/krubble-http';\n/** Image MIME types the chatbot accepts (matches what Bedrock can ingest). */\nconst ACCEPTED_IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];\n/**\n * AI chatbot component with SSE streaming.\n *\n * Accepts a `send` callback that returns a streaming Response (SSE format).\n * Parses the stream for text tokens, status updates, and errors.\n * Dispatches a `stream-event` custom event for every SSE message so consumers can react.\n *\n * ## SSE Stream Format\n * The component expects `data:` lines with JSON payloads containing a `type` field:\n * - `STATUS` — `{ type: \"STATUS\", message: \"Thinking...\" }`\n * - `RESPONSE_PART` — `{ type: \"RESPONSE_PART\", message: \"token text\" }`\n * - `TOOL_RESULT` — `{ type: \"TOOL_RESULT\", message: \"tool_name\", data: {...} }`\n * - `ERROR` — `{ type: \"ERROR\", message: \"Something went wrong\" }`\n * - `HEARTBEAT` — `{ type: \"HEARTBEAT\" }` (ignored)\n *\n * The final event should include `finished: true` to signal stream completion.\n *\n * ## Usage\n * ```html\n * <kr-chatbot\n * label=\"AI Assistant\"\n * .send=${(params) => {\n * return fetch('/api/ai/chat/stream', {\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json', 'Accept': 'text/event-stream' },\n * credentials: 'include',\n * body: JSON.stringify({ userText: params.message })\n * });\n * }}\n * ></kr-chatbot>\n * ```\n *\n * @slot - Optional slot content displayed above the messages area\n *\n * @fires message-submit - When the user sends a message. Cancelable. Detail: `{ message: string }`\n * @fires stream-event - Dispatched for every SSE message received. Detail contains the parsed event data.\n */\nlet KRChatbot = class KRChatbot extends LitElement {\n constructor() {\n super(...arguments);\n // --- Private properties ---\n this._reader = null;\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._userHasScrolledUp = false;\n this._isDragging = false;\n this._isResizing = false;\n this._overlay = null;\n this._resizeDir = '';\n this._dragStartX = 0;\n this._dragStartY = 0;\n this._dragStartLeft = 0;\n this._dragStartTop = 0;\n this._resizeStartW = 0;\n this._resizeStartH = 0;\n /** Counter for depth-aware dragenter/dragleave tracking. */\n this._dragDepth = 0;\n /** Monotonic id source for pending attachments. */\n this._pendingSeq = 0;\n // --- @property (public API) ---\n /**\n * Callback function for sending messages. Receives the user's message and\n * current conversation history. Must return a Response with a streaming SSE body.\n *\n * Optional — when not set, the chatbot uses its built-in default that streams\n * from the Kodaris Bedrock conversation endpoints. Set this to override.\n */\n this.send = null;\n /**\n * Callback function called when the user clears the conversation.\n * Must return a Promise — messages are only cleared if it resolves.\n *\n * Optional — when not set, the chatbot uses its built-in default that clears\n * the Kodaris Bedrock conversation state. Set this to override.\n */\n this.clear = null;\n /**\n * Callback function called on init to load existing conversation messages.\n * Must return a Promise that resolves with an array of KRChatbotMessage.\n *\n * Optional — when not set, the chatbot uses its built-in default that loads\n * existing messages from the Kodaris Bedrock conversation. Set this to override.\n */\n this.load = null;\n /**\n * Conversation messages. Can be set externally for initial messages.\n * Updated internally as the conversation progresses.\n */\n this.messages = [];\n /**\n * Header label text.\n */\n this.label = 'Kat';\n /**\n * Input placeholder text.\n */\n this.placeholder = 'Type a message...';\n /**\n * Skills the user can invoke by typing `/` in the composer. Selecting one\n * inserts `/name ` into the message. The `/` menu shows the first 15 (filtered\n * as the user types); \"Browse all skills\" opens a dialog with the full list.\n */\n this.skills = [];\n /**\n * Whether the chat panel is open. Only relevant in floating mode.\n */\n this.opened = false;\n /**\n * Hide the built-in floating toggle button. Use this when an external\n * control (e.g. the site-editor bar) owns opening the chat — the panel is\n * then driven via the `open()` / `close()` / `toggle()` methods.\n */\n this.hideToggle = false;\n /**\n * Layout mode.\n * - `'floating'` (default): the chatbot is a fixed bottom-right widget with a\n * toggle button, and the panel can be dragged and resized. This is the\n * traditional chat-widget appearance.\n * - `'inline'`: the chatbot drops its fixed positioning and fills its parent\n * container (100% width/height, no border radius/shadow, no toggle, no\n * drag/resize). The panel is always open. Use this to embed the chat as a\n * full page or panel region.\n */\n this.variant = 'floating';\n // --- @state (internal) ---\n this._inputValue = '';\n this._isStreaming = false;\n this._error = '';\n /** Images staged in the composer, before the message is sent. */\n this._pendingInternalFiles = [];\n /** True while a file is being dragged over the panel (shows the drop overlay). */\n this._isDraggingFile = false;\n /** Whether the `/` skill menu is open above the composer. */\n this._skillMenuOpened = false;\n /** Current `/` query (text after the slash), used to filter the skill menu. */\n this._skillQuery = '';\n /** Highlighted item in the skill menu for keyboard navigation (-1 = none). */\n this._skillHighlighted = 0;\n /** Index of the message whose copy button just flashed \"Copied\" (-1 = none). */\n this._copiedIndex = -1;\n /** Whether the \"Browse all skills\" dialog is open. */\n this._skillBrowseOpened = false;\n /** Active tab in the browse dialog. */\n this._skillBrowseSource = 'org';\n /** Search text in the browse dialog. */\n this._skillBrowseQuery = '';\n this._handleMouseMove = (e) => {\n if (this._isDragging) {\n let newLeft = this._dragStartLeft + (e.clientX - this._dragStartX);\n let newTop = this._dragStartTop + (e.clientY - this._dragStartY);\n const w = this._panelEl.offsetWidth;\n newLeft = Math.max(-w + 48, Math.min(newLeft, window.innerWidth - 48));\n newTop = Math.max(0, Math.min(newTop, window.innerHeight - 48));\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n else if (this._isResizing) {\n const dx = e.clientX - this._dragStartX;\n const dy = e.clientY - this._dragStartY;\n const minW = 340;\n const minH = 380;\n const maxW = window.innerWidth * 0.9;\n const maxH = window.innerHeight - 72;\n let newW = this._resizeStartW;\n let newH = this._resizeStartH;\n let newLeft = this._dragStartLeft;\n let newTop = this._dragStartTop;\n if (this._resizeDir.includes('e')) {\n newW = Math.max(minW, Math.min(this._resizeStartW + dx, maxW));\n }\n if (this._resizeDir.includes('w')) {\n newW = Math.max(minW, Math.min(this._resizeStartW - dx, maxW));\n newLeft = this._dragStartLeft + (this._resizeStartW - newW);\n }\n if (this._resizeDir.includes('s')) {\n newH = Math.max(minH, Math.min(this._resizeStartH + dy, maxH));\n }\n if (this._resizeDir.includes('n')) {\n newH = Math.max(minH, Math.min(this._resizeStartH - dy, maxH));\n newTop = this._dragStartTop + (this._resizeStartH - newH);\n }\n newLeft = Math.max(0, newLeft);\n newTop = Math.max(0, newTop);\n this._panelEl.style.width = newW + 'px';\n this._panelEl.style.height = newH + 'px';\n this._panelEl.style.left = newLeft + 'px';\n this._panelEl.style.top = newTop + 'px';\n }\n };\n this._handleMouseUp = () => {\n if (this._isDragging) {\n this._isDragging = false;\n this._panelEl.classList.remove('panel--dragging');\n }\n if (this._isResizing) {\n this._isResizing = false;\n this._panelEl.classList.remove('panel--resizing');\n }\n this._hideOverlay();\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n this._saveState();\n };\n }\n // --- Lifecycle ---\n connectedCallback() {\n super.connectedCallback();\n // Default to loading existing messages from the Kodaris Bedrock conversation\n // when the consumer hasn't provided their own `load`. The endpoint returns\n // messages already in KRChatbotMessage shape ({ type, content, images }), so\n // they pass straight through.\n if (!this.load) {\n this.load = () => KRHttp.fetch({\n url: '/api/system/integration/aws/bedrock/getConversationMessages',\n })\n .then((r) => r.json())\n .then((res) => res.data || []);\n }\n this.load().then((messages) => {\n if (messages && messages.length) {\n this.messages = messages;\n }\n }).catch(() => { });\n // Inline mode fills its container and is always open — the floating widget's\n // toggle/drag/resize state (including any persisted layout) doesn't apply.\n if (this.variant === 'inline') {\n this.opened = true;\n return;\n }\n this._restoreState();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n document.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n // Release any object URLs still held by staged attachments.\n this._pendingInternalFiles.forEach((p) => URL.revokeObjectURL(p.previewUrl));\n }\n updated(changed) {\n if (changed.has('messages')) {\n if (!this._userHasScrolledUp && !this._isStreaming && this._messagesEl) {\n requestAnimationFrame(() => {\n if (this._messagesEl) {\n this._messagesEl.scrollTop = this._messagesEl.scrollHeight;\n }\n });\n }\n }\n if (changed.has('opened') && this.opened && this._inputEl) {\n setTimeout(() => {\n if (this._inputEl) {\n this._inputEl.focus();\n }\n }, 200);\n }\n // Position the fixed skill menu above the composer, following the krubble\n // select-field pattern (fixed element positioned from the trigger's rect).\n if (this._skillMenuOpened) {\n this._positionSkillMenu();\n }\n // Keep the keyboard-highlighted skill scrolled into view.\n if (changed.has('_skillHighlighted') && this._skillMenuOpened) {\n this._skillMenuEl\n ?.querySelector('.skill-menu__item--highlighted')\n ?.scrollIntoView({ block: 'nearest' });\n }\n }\n /** Anchor the fixed skill menu to the composer, opening upward above it. */\n _positionSkillMenu() {\n requestAnimationFrame(() => {\n if (!this._skillMenuEl || !this._inputWrapperEl) {\n return;\n }\n const inputRect = this._inputWrapperEl.getBoundingClientRect();\n this._skillMenuEl.style.left = inputRect.left + 'px';\n this._skillMenuEl.style.width = inputRect.width + 'px';\n // Bound the menu by the chat panel's own top edge so it stays within the\n // widget. In floating mode that keeps it inside the card; in inline mode the\n // panel top sits just below the app header/breadcrumb, so it stays clear of\n // those too. An 8px gap keeps it off both edges.\n const topLimit = this._panelEl.getBoundingClientRect().top + 8;\n const spaceAbove = inputRect.top - 8 - topLimit;\n this._skillMenuEl.style.maxHeight = spaceAbove + 'px';\n // Measure after the cap is applied so the upward anchor uses the real\n // height, then clamp the top edge to the panel bound.\n const menuRect = this._skillMenuEl.getBoundingClientRect();\n const top = Math.max(topLimit, inputRect.top - menuRect.height - 8);\n this._skillMenuEl.style.top = top + 'px';\n });\n }\n // --- Public methods ---\n /**\n * Stops the current stream without clearing the conversation.\n */\n stop() {\n this._handleStop();\n }\n /** Open the chat panel. */\n open() {\n if (!this.opened) {\n this._handleToggle();\n }\n }\n /** Close the chat panel. */\n close() {\n if (this.opened) {\n this._handleToggle();\n }\n }\n /** Toggle the chat panel open/closed. */\n toggle() {\n this._handleToggle();\n }\n // --- Private methods ---\n /**\n * Shows a full-viewport transparent overlay during drag/resize operations.\n *\n * This overlay solves a critical rendering issue when the chatbot is used inside\n * a page that contains iframes (e.g., the AI editor shell where the page content\n * is rendered in an iframe and the chatbot floats on top).\n *\n * Without the overlay, modifying the iframe's `pointer-events` style during drag\n * (to prevent it from swallowing mousemove events) causes Chrome to recalculate\n * compositing layers. This layer recalculation blocks the browser from repainting\n * the chatbot panel's style changes (width/height/position) even though they are\n * correctly applied to the DOM. The result is that the panel appears frozen while\n * the user drags, despite the inline styles updating on every mousemove.\n *\n * The overlay approach avoids this entirely: instead of touching the iframe's styles,\n * we place a transparent div (z-index 9999) above the iframe but below the chatbot\n * (z-index 10000). This div intercepts all mouse events that would otherwise hit the\n * iframe, without triggering any compositing layer changes on the iframe itself.\n */\n _showOverlay() {\n if (!this._overlay) {\n this._overlay = document.createElement('div');\n this._overlay.style.cssText = 'position:fixed; inset:0; z-index:9999; display:none;';\n document.body.appendChild(this._overlay);\n }\n this._overlay.style.display = 'block';\n }\n _hideOverlay() {\n if (this._overlay) {\n this._overlay.style.display = 'none';\n }\n }\n _handleHeaderMouseDown(e) {\n // Inline mode fills its parent — dragging the panel doesn't apply.\n if (this.variant === 'inline') {\n return;\n }\n // Ignore clicks on buttons inside the header\n if (e.target.closest('button')) {\n return;\n }\n if (!this._panelEl) {\n return;\n }\n this._isDragging = true;\n this._panelEl.classList.add('panel--dragging');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n e.preventDefault();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleResizeMouseDown(e) {\n // Inline mode fills its parent — resizing the panel doesn't apply.\n if (this.variant === 'inline') {\n return;\n }\n if (!this._panelEl) {\n return;\n }\n this._isResizing = true;\n this._resizeDir = e.currentTarget.dataset.dir || '';\n this._panelEl.classList.add('panel--resizing');\n this._showOverlay();\n const rect = this._panelEl.getBoundingClientRect();\n this._panelEl.style.left = rect.left + 'px';\n this._panelEl.style.top = rect.top + 'px';\n this._panelEl.style.right = 'auto';\n this._panelEl.style.bottom = 'auto';\n this._panelEl.style.position = 'fixed';\n this._dragStartX = e.clientX;\n this._dragStartY = e.clientY;\n this._dragStartLeft = rect.left;\n this._dragStartTop = rect.top;\n this._resizeStartW = rect.width;\n this._resizeStartH = rect.height;\n e.preventDefault();\n e.stopPropagation();\n document.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n }\n _handleToggle() {\n this.opened = !this.opened;\n if (this.opened && this._panelEl) {\n this._applyStoredLayout();\n }\n this._saveState();\n }\n _saveState() {\n try {\n const state = { opened: String(this.opened) };\n if (this._panelEl) {\n const s = this._panelEl.style;\n if (s.left) {\n state.left = s.left;\n }\n if (s.top) {\n state.top = s.top;\n }\n if (s.width) {\n state.width = s.width;\n }\n if (s.height) {\n state.height = s.height;\n }\n if (s.position) {\n state.position = s.position;\n }\n }\n localStorage.setItem('kr-chatbot-state', JSON.stringify(state));\n }\n catch { /* localStorage not available */ }\n }\n _restoreState() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.opened === 'true') {\n this.opened = true;\n // Apply layout after first render\n this.updateComplete.then(() => this._applyStoredLayout());\n }\n }\n catch { /* localStorage not available */ }\n }\n _applyStoredLayout() {\n try {\n const raw = localStorage.getItem('kr-chatbot-state');\n if (!raw || !this._panelEl) {\n return;\n }\n const state = JSON.parse(raw);\n if (state.position) {\n this._panelEl.style.position = state.position;\n }\n if (state.left) {\n this._panelEl.style.left = state.left;\n }\n if (state.top) {\n this._panelEl.style.top = state.top;\n }\n if (state.width) {\n this._panelEl.style.width = state.width;\n }\n if (state.height) {\n this._panelEl.style.height = state.height;\n }\n }\n catch { /* localStorage not available */ }\n }\n _handleInputChange(e) {\n this._inputValue = e.target.value;\n // Auto-resize textarea\n const textarea = e.target;\n textarea.style.height = 'auto';\n textarea.style.height = Math.min(textarea.scrollHeight, 120) + 'px';\n // Open the skill menu while the message is a `/` command being typed (a\n // leading slash with no space yet). The text after the slash filters it.\n const slashMatch = this._inputValue.match(/^\\/(\\S*)$/);\n if (slashMatch && this.skills.length) {\n this._skillMenuOpened = true;\n this._skillQuery = slashMatch[1];\n this._skillHighlighted = 0;\n }\n else {\n this._skillMenuOpened = false;\n }\n }\n _handleKeyDown(e) {\n // When the skill menu is open, arrow keys / Enter / Escape drive it. The two\n // top actions (Attach Files, Browse All Skills) are index 0 and 1, then the\n // filtered skills follow — all navigable as one list.\n if (this._skillMenuOpened) {\n const count = 2 + this._filteredSkills().length;\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this._skillHighlighted = (this._skillHighlighted + 1) % count;\n return;\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n this._skillHighlighted = (this._skillHighlighted - 1 + count) % count;\n return;\n }\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n this._activateSkillMenuItem(this._skillHighlighted);\n return;\n }\n if (e.key === 'Escape') {\n e.preventDefault();\n this._skillMenuOpened = false;\n return;\n }\n }\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n this._handleSubmit();\n }\n }\n /** Run the skill-menu item at the given flat index (0/1 = actions, then skills). */\n _activateSkillMenuItem(index) {\n if (index === 0) {\n this._openFilePicker();\n return;\n }\n if (index === 1) {\n this._handleSkillBrowseOpen();\n return;\n }\n const skill = this._filteredSkills()[index - 2];\n if (skill) {\n this._handleSkillSelect(skill);\n }\n }\n // --- Skills ---\n /** Skills matching the current `/` query, capped at the first 15. */\n _filteredSkills() {\n const query = this._skillQuery.toLowerCase();\n return this.skills\n .filter((skill) => skill.name.toLowerCase().includes(query) ||\n skill.label.toLowerCase().includes(query))\n .slice(0, 15);\n }\n /** The `+` button toggles the skill/attachment menu open (showing all skills). */\n _handlePlusClick() {\n if (this._skillMenuOpened) {\n this._skillMenuOpened = false;\n return;\n }\n this._skillQuery = '';\n this._skillHighlighted = 0;\n this._skillMenuOpened = true;\n }\n /** Insert `/name ` into the composer and focus it, ready for the message. */\n _handleSkillSelect(skill) {\n this._inputValue = `/${skill.name} `;\n this._skillMenuOpened = false;\n this._skillBrowseOpened = false;\n this._inputEl?.focus();\n }\n /** Copy a message's text to the clipboard and briefly flash \"Copied\". */\n _handleCopyMessage(content, index) {\n navigator.clipboard.writeText(content).then(() => {\n this._copiedIndex = index;\n setTimeout(() => {\n if (this._copiedIndex === index) {\n this._copiedIndex = -1;\n }\n }, 2000);\n }).catch(() => { });\n }\n _handleSkillBrowseOpen() {\n this._skillMenuOpened = false;\n this._skillBrowseQuery = '';\n this._skillBrowseOpened = true;\n }\n _handleSkillBrowseClose() {\n this._skillBrowseOpened = false;\n }\n _handleSkillBrowseSearch(e) {\n this._skillBrowseQuery = e.target.value;\n }\n _handleSkillBrowseTabChange(e) {\n this._skillBrowseSource = e.detail.activeTabId;\n }\n /** Skills for the browse dialog's active tab, filtered by its search box. */\n _browseSkills() {\n const query = this._skillBrowseQuery.toLowerCase();\n return this.skills.filter((skill) => {\n const source = skill.source || 'org';\n if (source !== this._skillBrowseSource) {\n return false;\n }\n return skill.name.toLowerCase().includes(query) ||\n skill.label.toLowerCase().includes(query) ||\n (skill.description || '').toLowerCase().includes(query);\n });\n }\n // --- Attachments ---\n _openFilePicker() {\n this._fileInputEl?.click();\n }\n _handleFileInputChange(e) {\n const input = e.target;\n if (input.files) {\n this._addFiles(input.files);\n }\n // Reset so picking the same file again re-fires change.\n input.value = '';\n }\n _handlePaste(e) {\n const items = e.clipboardData?.items;\n if (!items) {\n return;\n }\n const files = [];\n for (let i = 0; i < items.length; i++) {\n if (items[i].kind === 'file') {\n const file = items[i].getAsFile();\n if (file) {\n files.push(file);\n }\n }\n }\n if (files.length) {\n e.preventDefault();\n this._addFiles(files);\n }\n }\n _handleDragEnter(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n e.preventDefault();\n this._dragDepth++;\n this._isDraggingFile = true;\n }\n _handleDragOver(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n // Required so the drop event fires.\n e.preventDefault();\n }\n _handleDragLeave(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n this._dragDepth--;\n if (this._dragDepth <= 0) {\n this._dragDepth = 0;\n this._isDraggingFile = false;\n }\n }\n _handleDrop(e) {\n if (!this._hasFiles(e)) {\n return;\n }\n e.preventDefault();\n this._dragDepth = 0;\n this._isDraggingFile = false;\n if (e.dataTransfer?.files) {\n this._addFiles(e.dataTransfer.files);\n }\n }\n _hasFiles(e) {\n return Array.from(e.dataTransfer?.types || []).includes('Files');\n }\n /** Stage a set of image files in the composer (held locally until send). */\n _addFiles(fileList) {\n const files = Array.from(fileList).filter((f) => ACCEPTED_IMAGE_TYPES.includes(f.type));\n if (!files.length) {\n return;\n }\n files.forEach((file) => {\n const pending = {\n localId: 'att-' + this._pendingSeq++,\n file,\n name: file.name,\n previewUrl: URL.createObjectURL(file),\n };\n this._pendingInternalFiles = [...this._pendingInternalFiles, pending];\n });\n }\n _removePending(localId) {\n const target = this._pendingInternalFiles.find((p) => p.localId === localId);\n if (target) {\n URL.revokeObjectURL(target.previewUrl);\n }\n this._pendingInternalFiles = this._pendingInternalFiles.filter((p) => p.localId !== localId);\n }\n _clearPending() {\n this._pendingInternalFiles.forEach((p) => URL.revokeObjectURL(p.previewUrl));\n this._pendingInternalFiles = [];\n }\n /** Open the shared full-screen previewer for a message image. */\n _openImage(img) {\n KRFilePreview.open({\n src: `/api/system/integration/aws/bedrock/conversationImage/${img.internalFileID}/view`,\n name: img.niceName || 'image',\n });\n }\n /** Whether the send button is active: needs text or at least one image. */\n _canSend() {\n return Boolean(this._inputValue.trim()) || this._pendingInternalFiles.length > 0;\n }\n _handleSubmit() {\n if (this._isStreaming) {\n return;\n }\n const messageText = this._inputValue.trim();\n const pending = this._pendingInternalFiles;\n // Allow sending an image with no text, but require at least one of them.\n if (!messageText && !pending.length) {\n return;\n }\n // The raw files sent to the backend. Sent images are shown once the\n // conversation reloads and they come back as stored internal files; the\n // just-sent message itself carries text only.\n const internalFiles = pending.map((p) => p.file);\n const submitEvent = new CustomEvent('message-submit', {\n detail: {\n message: messageText,\n internalFiles,\n },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(submitEvent);\n if (submitEvent.defaultPrevented) {\n return;\n }\n const userMessage = {\n type: 'user',\n content: messageText,\n };\n this.messages = [...this.messages, userMessage];\n this._inputValue = '';\n this._error = '';\n this._userHasScrolledUp = false;\n // Clear the composer and release its preview object URLs.\n this._pendingInternalFiles.forEach((p) => URL.revokeObjectURL(p.previewUrl));\n this._pendingInternalFiles = [];\n // Reset textarea height\n if (this._inputEl) {\n this._inputEl.style.height = 'auto';\n }\n // Add empty assistant message to stream into\n this.messages = [...this.messages, {\n type: 'assistant',\n content: '',\n }];\n this._isStreaming = true;\n // Scroll user's message to the top (Gemini-style).\n // Set min-height on the assistant message = container height so there's enough\n // scroll room below the user message to push it to the top.\n this.updateComplete.then(() => {\n if (!this._messagesEl) {\n return;\n }\n // Clear min-height from previous responses\n this._messagesEl.querySelectorAll('.message--assistant').forEach((el) => {\n el.style.minHeight = '';\n });\n const allMsgEls = this._messagesEl.querySelectorAll('.message');\n const userMsgEl = allMsgEls[this.messages.length - 2];\n const assistantMsgEl = allMsgEls[this.messages.length - 1];\n if (assistantMsgEl) {\n assistantMsgEl.style.minHeight = this._messagesEl.clientHeight + 'px';\n }\n if (userMsgEl) {\n this._messagesEl.scrollTop = userMsgEl.offsetTop - this._messagesEl.offsetTop - 24;\n }\n });\n // Default to streaming from the Kodaris Bedrock conversation endpoints when\n // the consumer hasn't provided their own `send`.\n if (!this.send) {\n this.send = (params) => {\n // With images, post text + files as multipart; without, post plain JSON.\n if (params.internalFiles.length) {\n const form = new FormData();\n form.append('userText', params.message);\n params.internalFiles.forEach((file) => form.append('images', file));\n return KRHttp.fetch({\n url: '/api/system/integration/aws/bedrock/stream/invokeModelForConversationWithImages',\n method: 'POST',\n headers: { Accept: 'text/event-stream' },\n body: form,\n });\n }\n return KRHttp.fetch({\n url: '/api/system/integration/aws/bedrock/stream/invokeModelForConversationWithState',\n method: 'POST',\n headers: { Accept: 'text/event-stream' },\n body: { userText: params.message },\n });\n };\n }\n this.send({\n message: messageText,\n messages: this.messages.slice(0, -1),\n internalFiles,\n }).then((response) => {\n if (!response.ok) {\n this._handleStreamError('Request failed: ' + response.status);\n return;\n }\n if (!response.body) {\n this._handleStreamError('No response body');\n return;\n }\n this._reader = response.body.getReader();\n this._decoder = new TextDecoder();\n this._buffer = '';\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStop() {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this._isStreaming = false;\n }\n _handleClear() {\n // Default to clearing the Kodaris Bedrock conversation state when the consumer\n // hasn't provided their own `clear`.\n if (!this.clear) {\n this.clear = () => KRHttp.fetch({\n url: '/api/system/integration/aws/bedrock/clearConversationWithState',\n method: 'POST',\n });\n }\n this.clear().then(() => {\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n this.messages = [];\n this._isStreaming = false;\n this._error = '';\n this._inputValue = '';\n this._userHasScrolledUp = false;\n });\n }\n _handleMessagesScroll(e) {\n const container = e.target;\n const distanceFromBottom = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (distanceFromBottom > 50) {\n this._userHasScrolledUp = true;\n }\n else {\n this._userHasScrolledUp = false;\n }\n }\n _handleErrorDismiss() {\n this._error = '';\n }\n _readStreamChunk() {\n if (!this._reader) {\n return;\n }\n this._reader.read().then((result) => {\n if (result.done) {\n this._isStreaming = false;\n this._reader = null;\n return;\n }\n this._buffer = this._buffer + this._decoder.decode(result.value, { stream: true });\n const events = this._buffer.split('\\n\\n');\n this._buffer = events.pop() || '';\n for (let i = 0; i < events.length; i++) {\n if (!events[i].trim()) {\n continue;\n }\n const lines = events[i].split('\\n');\n for (let j = 0; j < lines.length; j++) {\n if (!lines[j].startsWith('data:')) {\n continue;\n }\n const raw = lines[j].slice(5).trim();\n if (!raw) {\n continue;\n }\n let data;\n try {\n data = JSON.parse(raw);\n }\n catch {\n continue;\n }\n // Dispatch a generic event for every SSE message so consumers can listen and react\n this.dispatchEvent(new CustomEvent('stream-event', {\n detail: data,\n bubbles: true,\n composed: true,\n }));\n if (data.type === 'REASONING_PART') {\n if (data.message) {\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].type === 'assistant') {\n if (!this.messages[lastIndex].reasoning) {\n this.messages[lastIndex].reasoning = '';\n }\n this.messages[lastIndex].reasoning += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'RESPONSE_PART') {\n if (data.message) {\n const lastIndex = this.messages.length - 1;\n if (lastIndex >= 0 && this.messages[lastIndex].type === 'assistant') {\n this.messages[lastIndex].content += String(data.message);\n this.requestUpdate();\n }\n }\n }\n else if (data.type === 'ERROR') {\n this._handleStreamError(String(data.message || 'Unknown error'));\n }\n if (data.finished) {\n this._isStreaming = false;\n this._reader = null;\n }\n }\n }\n this._readStreamChunk();\n }).catch((err) => {\n if (err.name !== 'AbortError') {\n this._handleStreamError(err.message);\n }\n });\n }\n _handleStreamError(message) {\n this._isStreaming = false;\n this._error = message;\n if (this._reader) {\n this._reader.cancel();\n this._reader = null;\n }\n // Remove the empty assistant message if it has no content\n if (this.messages.length > 0) {\n const lastMessage = this.messages[this.messages.length - 1];\n if (lastMessage.type === 'assistant' && !lastMessage.content) {\n this.messages = this.messages.slice(0, -1);\n }\n }\n }\n // --- Render ---\n /** The `/` skill menu shown above the composer while typing a slash command. */\n _renderSkillMenu() {\n const skills = this._filteredSkills();\n return html `\n <div class=\"skill-menu\">\n <div class=\"skill-menu__actions\">\n <button\n class=${classMap({\n 'skill-menu__action': true,\n 'skill-menu__item--highlighted': this._skillHighlighted === 0,\n })}\n @click=${this._openFilePicker}\n >\n Attach Files\n </button>\n <button\n class=${classMap({\n 'skill-menu__action': true,\n 'skill-menu__item--highlighted': this._skillHighlighted === 1,\n })}\n @click=${this._handleSkillBrowseOpen}\n >\n Browse All Skills\n </button>\n </div>\n ${skills.length ? html `\n <ul class=\"skill-menu__list\">\n ${skills.map((skill, index) => html `\n <li>\n <button\n class=${classMap({\n 'skill-menu__item': true,\n 'skill-menu__item--highlighted': index + 2 === this._skillHighlighted,\n })}\n @click=${() => this._handleSkillSelect(skill)}\n >\n <span class=\"skill-menu__name\">${skill.label}</span>\n ${skill.description ? html `\n <span class=\"skill-menu__desc\">${skill.description}</span>\n ` : nothing}\n </button>\n </li>\n `)}\n </ul>\n ` : html `\n <div class=\"skill-menu__empty\">No matching skills</div>\n `}\n </div>\n `;\n }\n /** The \"Browse all skills\" dialog — a searchable grid of Org / Kodaris cards. */\n _renderSkillBrowse() {\n return html `\n <kr-dialog\n opened\n label=\"Browse Skills\"\n width=\"720px\"\n @close=${this._handleSkillBrowseClose}\n >\n <div class=\"skill-browse\">\n <kr-text-field\n placeholder=\"Search skills...\"\n .value=${this._skillBrowseQuery}\n @input=${this._handleSkillBrowseSearch}\n ></kr-text-field>\n <kr-tab-group\n active-tab-id=${this._skillBrowseSource}\n @tab-change=${this._handleSkillBrowseTabChange}\n >\n <kr-tab id=\"org\" label=\"Your Org\">\n ${this._renderSkillGrid()}\n </kr-tab>\n <kr-tab id=\"kodaris\" label=\"Kodaris\">\n ${this._renderSkillGrid()}\n </kr-tab>\n </kr-tab-group>\n </div>\n </kr-dialog>\n `;\n }\n /** The card grid for the browse dialog's active tab. */\n _renderSkillGrid() {\n const skills = this._browseSkills();\n if (!skills.length) {\n return html `<div class=\"skill-browse__empty\">No matching skills</div>`;\n }\n return html `\n <div class=\"skill-browse__grid\">\n ${skills.map((skill) => html `\n <button\n class=\"skill-card\"\n @click=${() => this._handleSkillSelect(skill)}\n >\n <span class=\"skill-card__name\">${skill.label}</span>\n ${skill.description ? html `\n <span class=\"skill-card__desc\">${skill.description}</span>\n ` : nothing}\n </button>\n `)}\n </div>\n `;\n }\n /**\n * Render a user message, highlighting a leading `/skill-name` token when it\n * matches a known skill (like the way Claude highlights slash commands).\n */\n _renderUserContent(content) {\n const match = content.match(/^\\/(\\S+)(\\s[\\s\\S]*)?$/);\n if (match && this.skills.some((skill) => skill.name === match[1])) {\n return html `<span class=\"message-skill\">/${match[1]}</span>${match[2] || ''}`;\n }\n return content;\n }\n render() {\n return html `\n ${(this.hideToggle || this.variant === 'inline') ? nothing : html `\n <button\n class=${classMap({\n 'toggle': true,\n 'toggle--hidden': this.opened,\n })}\n @click=${this._handleToggle}\n title=\"Open chat\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n class=\"toggle-icon\"\n >\n <path d=\"M12 2C6.48 2 2 6.03 2 11c0 2.61 1.19 4.94 3.05 6.55L4 22l4.8-2.4C9.82 19.85 10.88 20 12 20c5.52 0 10-4.03 10-9S17.52 2 12 2z\"/>\n <path d=\"M8 11h.01M12 11h.01M16 11h.01\" stroke-width=\"2.5\"/>\n </svg>\n </button>\n `}\n\n <div\n class=${classMap({\n 'panel': true,\n 'panel--opened': this.opened,\n })}\n @dragenter=${this._handleDragEnter}\n @dragover=${this._handleDragOver}\n @dragleave=${this._handleDragLeave}\n @drop=${this._handleDrop}\n >\n ${this._isDraggingFile ? html `\n <div class=\"drop-overlay\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5\"\n />\n </svg>\n <span>Drop images to attach</span>\n </div>\n ` : nothing}\n ${this.variant === 'inline' ? nothing : html `\n <div\n class=\"resize resize--n\"\n data-dir=\"n\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--s\"\n data-dir=\"s\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--w\"\n data-dir=\"w\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--e\"\n data-dir=\"e\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--nw\"\n data-dir=\"nw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--ne\"\n data-dir=\"ne\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--sw\"\n data-dir=\"sw\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n <div\n class=\"resize resize--se\"\n data-dir=\"se\"\n @mousedown=${this._handleResizeMouseDown}\n ></div>\n `}\n <div class=\"header\" @mousedown=${this._handleHeaderMouseDown}>\n <div class=\"header-left\">\n <div class=\"header-info\">\n <span class=\"header-title\">${this.label}</span>\n </div>\n </div>\n <div class=\"header-actions\">\n ${this.messages.length > 0 ? html `\n <button\n class=\"header-action\"\n @click=${this._handleClear}\n title=\"Clear conversation\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"\n />\n </svg>\n </button>\n ` : nothing}\n ${this.variant === 'inline' ? nothing : html `\n <button\n class=\"header-action\"\n @click=${this._handleToggle}\n title=\"Close\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"header-action-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n `}\n </div>\n </div>\n\n <div class=\"messages\" @scroll=${this._handleMessagesScroll}>\n <div class=\"messages-inner\">\n ${this.messages.length === 0 ? html `\n <div class=\"empty\">\n <span class=\"empty-text\">What can I help you with?</span>\n </div>\n ` : nothing}\n ${this.messages.map((msg, index) => html `\n <div class=${classMap({\n 'message': true,\n 'message--user': msg.type === 'user',\n 'message--assistant': msg.type === 'assistant',\n })}>\n ${msg.reasoning ? html `\n <details class=\"reasoning\">\n <summary>Thinking</summary>\n <div class=\"reasoning-content\">${msg.reasoning}</div>\n </details>\n ` : nothing}\n ${msg.internalFiles && msg.internalFiles.length ? html `\n <div class=\"attachments\">\n ${msg.internalFiles.map((img) => html `\n <button\n class=\"attachment\"\n type=\"button\"\n title=${img.niceName || 'View image'}\n @click=${() => this._openImage(img)}\n >\n <img\n src=\"/api/system/integration/aws/bedrock/conversationImage/${img.internalFileID}/view\"\n alt=${img.niceName || ''}\n />\n </button>\n `)}\n </div>\n ` : nothing}\n ${msg.content ? html `\n <div class=\"message-content\">\n ${msg.type === 'user'\n ? this._renderUserContent(msg.content)\n : unsafeHTML(marked.parse(msg.content, { breaks: true }))}\n </div>\n ` : nothing}\n ${msg.type === 'assistant' && this._isStreaming && msg === this.messages[this.messages.length - 1] ? html `\n <div class=\"typing\">\n <span></span>\n <span></span>\n <span></span>\n </div>\n ` : nothing}\n ${msg.content ? html `\n <button\n class=\"message-copy\"\n title=\"Copy\"\n @click=${() => this._handleCopyMessage(msg.content, index)}\n >\n ${this._copiedIndex === index ? html `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n Copied\n ` : html `\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <rect\n x=\"9\"\n y=\"9\"\n width=\"13\"\n height=\"13\"\n rx=\"2\"\n />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n Copy\n `}\n </button>\n ` : nothing}\n </div>\n `)}\n </div>\n </div>\n\n ${this._error ? html `\n <div class=\"error\">\n <span>${this._error}</span>\n <button class=\"error-dismiss\" @click=${this._handleErrorDismiss}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n class=\"error-dismiss-icon\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ` : nothing}\n\n <div class=\"footer\">\n ${this._pendingInternalFiles.length ? html `\n <div class=\"composer-attachments\">\n ${repeat(this._pendingInternalFiles, (p) => p.localId, (p) => html `\n <div class=\"chip\">\n <img src=${p.previewUrl} alt=${p.name} />\n <button\n class=\"chip-remove\"\n title=\"Remove\"\n @click=${() => this._removePending(p.localId)}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"3\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M6 18 18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n `)}\n </div>\n ` : nothing}\n <input\n class=\"file-input\"\n type=\"file\"\n accept=\"image/png,image/jpeg,image/gif,image/webp\"\n multiple\n hidden\n @change=${this._handleFileInputChange}\n />\n ${this._skillMenuOpened ? this._renderSkillMenu() : nothing}\n <div class=\"input-wrapper\">\n <button\n class=\"input-plus\"\n @click=${this._handlePlusClick}\n >+</button>\n <textarea\n class=\"input\"\n .value=${this._inputValue}\n placeholder=${this.placeholder}\n rows=\"1\"\n @input=${this._handleInputChange}\n @keydown=${this._handleKeyDown}\n @paste=${this._handlePaste}\n ></textarea>\n ${this._isStreaming ? html `\n <button\n class=\"stop\"\n @click=${this._handleStop}\n title=\"Stop generating\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n class=\"stop-icon\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"12\"\n height=\"12\"\n rx=\"2\"\n />\n </svg>\n </button>\n ` : html `\n <button\n class=${classMap({\n 'send': true,\n 'send--disabled': !this._canSend(),\n })}\n @click=${this._handleSubmit}\n title=\"Send message\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n class=\"send-icon\"\n >\n <path d=\"M12 19V5M5 12l7-7 7 7\"/>\n </svg>\n </button>\n `}\n </div>\n </div>\n ${this._skillBrowseOpened ? this._renderSkillBrowse() : nothing}\n </div>\n `;\n }\n};\nKRChatbot.styles = css `\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n display: block;\n font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 14px;\n line-height: 1.6;\n\n --kr-chatbot-primary: #163052;\n --kr-chatbot-primary-hover: #1e4068;\n --kr-chatbot-bg: #ffffff;\n --kr-chatbot-border: #d9d9d9;\n --kr-chatbot-text: #1a1a2e;\n --kr-chatbot-text-secondary: #64668b;\n --kr-chatbot-user-bg: #e9e9e980;\n --kr-chatbot-error-bg: #fef2f2;\n --kr-chatbot-error-text: #dc2626;\n --kr-chatbot-success: #00b894;\n --kr-chatbot-toggle-size: 56px;\n --kr-chatbot-panel-width: 440px;\n --kr-chatbot-panel-height: 620px;\n }\n\n :host {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 10000;\n }\n\n /* Toggle button */\n .toggle {\n width: var(--kr-chatbot-toggle-size);\n height: var(--kr-chatbot-toggle-size);\n border-radius: 18px;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 24px rgba(22, 48, 82, 0.4);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .toggle:hover {\n transform: scale(1.05);\n box-shadow: 0 6px 32px rgba(22, 48, 82, 0.5);\n }\n\n .toggle--hidden {\n transform: scale(0);\n opacity: 0;\n pointer-events: none;\n }\n\n .toggle-icon {\n width: 26px;\n height: 26px;\n }\n\n /* Panel */\n .panel {\n display: none;\n flex-direction: column;\n background: var(--kr-chatbot-bg);\n overflow: hidden;\n position: absolute;\n bottom: 0;\n right: 0;\n width: var(--kr-chatbot-panel-width);\n height: var(--kr-chatbot-panel-height);\n max-height: calc(100vh - 72px);\n border-radius: 16px;\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08), 0 2px 12px rgba(0, 0, 0, 0.04);\n border: 1px solid rgba(0, 0, 0, 0.08);\n animation: chatbot-panel-in 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n transform-origin: bottom right;\n }\n\n .panel--opened {\n display: flex;\n }\n\n /* Inline mode: fill the parent container instead of floating bottom-right. */\n :host([variant='inline']) {\n position: static;\n bottom: auto;\n right: auto;\n z-index: auto;\n height: 100%;\n }\n\n :host([variant='inline']) .panel {\n position: relative;\n bottom: auto;\n right: auto;\n width: 100%;\n height: 100%;\n max-height: none;\n border-radius: 0;\n box-shadow: none;\n border: none;\n animation: none;\n }\n\n @keyframes chatbot-panel-in {\n from {\n opacity: 0;\n transform: scale(0.92) translateY(20px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n /* Header */\n .header {\n padding: 0 16px 0 24px;\n height: 64px;\n background: #ffffff;\n color: #000000;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .header-info {\n display: flex;\n flex-direction: column;\n }\n\n .header-title {\n font-size: 16px;\n font-weight: 600;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .header-action {\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n color: rgb(0 0 0 / 70%);\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s;\n }\n\n .header-action:hover {\n background: rgba(0, 0, 0, 0.05);\n color: #000000;\n }\n\n .header-action-icon {\n width: 20px;\n height: 20px;\n }\n\n /* Messages */\n /* Full-width scroll container — keeps the scrollbar at the panel edge. */\n .messages {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n scroll-behavior: smooth;\n background: white;\n }\n\n /* Centered, width-capped column that actually holds the messages. */\n .messages-inner {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 32px;\n width: 100%;\n max-width: 768px;\n margin-left: auto;\n margin-right: auto;\n }\n\n .messages::-webkit-scrollbar {\n width: 4px;\n }\n\n .messages::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .messages::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.08);\n border-radius: 2px;\n }\n\n .empty {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: var(--kr-chatbot-text-secondary);\n gap: 8px;\n }\n\n .empty-text {\n font-size: 14px;\n color: rgb(0 0 0 / 80%);\n }\n\n .message {\n position: relative;\n display: flex;\n flex-direction: column;\n max-width: 100%;\n animation: chatbot-msg-in 0.3s ease-out;\n }\n\n @keyframes chatbot-msg-in {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .message--user {\n align-self: flex-end;\n align-items: flex-end;\n max-width: 85%;\n }\n\n .message--assistant {\n align-self: flex-start;\n gap: 24px;\n }\n\n .message-content {\n line-height: 1.7;\n word-wrap: break-word;\n overflow-wrap: break-word;\n }\n\n .message--user .message-content {\n display: inline-block;\n background: var(--kr-chatbot-user-bg);\n color: #000000;\n padding: 10px 16px;\n border-radius: 20px;\n border-bottom-right-radius: 6px;\n font-size: 14px;\n }\n\n /* Highlighted leading /skill token in a sent user message. Monospace + a\n stronger color makes it read as a distinct command without a pill. */\n .message-skill {\n font-family: 'SF Mono', SFMono-Regular, ui-monospace, Menlo, Consolas, monospace;\n font-weight: 600;\n color: #b45309;\n }\n\n /* Per-message copy button. Kept in flow with a fixed height that is always\n reserved (via a negative bottom margin that cancels it) so message spacing\n is identical whether or not it's shown; only its opacity toggles on hover. */\n .message-copy {\n align-self: flex-start;\n margin-top: 4px;\n margin-bottom: -27px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n height: 23px;\n padding: 4px 8px;\n background: none;\n border: none;\n border-radius: 6px;\n font: inherit;\n font-size: 12px;\n color: #64668b;\n cursor: pointer;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s, background-color 0.15s, color 0.15s;\n }\n\n .message--user .message-copy {\n align-self: flex-end;\n }\n\n .message:hover .message-copy,\n .message-copy:focus-visible {\n opacity: 1;\n pointer-events: auto;\n }\n\n .message-copy:hover {\n background: rgba(0, 0, 0, 0.06);\n color: #1a1a2e;\n }\n\n .message-copy svg {\n width: 14px;\n height: 14px;\n }\n\n .message--assistant .message-content {\n background: transparent;\n color: #000000;\n padding: 0;\n font-size: 14px;\n }\n\n .message--assistant .message-content pre {\n background: #1e1e1e;\n color: #d4d4d4;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.4;\n }\n\n .message--assistant .message-content code {\n font-family: 'SF Mono', 'Fira Code', Monaco, monospace;\n font-size: 13px;\n }\n\n .message--assistant .message-content :not(pre) > code {\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 5px;\n border-radius: 3px;\n }\n\n .message--assistant .message-content strong {\n font-weight: 600;\n }\n\n .message--assistant .message-content p {\n margin: 0 0 8px 0;\n }\n\n .message--assistant .message-content p:last-child {\n margin-bottom: 0;\n }\n\n /* Reasoning */\n .reasoning {\n border-radius: 6px;\n background: rgb(244 244 244 / 80%);\n font-size: 12px;\n }\n\n .reasoning summary {\n cursor: pointer;\n padding: 6px 10px 6px 10px;\n color: black;\n user-select: none;\n }\n\n .reasoning-content {\n padding: 6px 10px 10px;\n color: black;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n\n .typing {\n display: flex;\n gap: 4px;\n padding: 4px 0;\n }\n\n .typing span {\n width: 6px;\n height: 6px;\n background: var(--kr-chatbot-text-secondary);\n border-radius: 50%;\n animation: chatbot-typing 1.4s infinite;\n opacity: 0.4;\n }\n\n .typing span:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .typing span:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes chatbot-typing {\n 0%, 60%, 100% {\n opacity: 0.4;\n transform: translateY(0);\n }\n 30% {\n opacity: 1;\n transform: translateY(-4px);\n }\n }\n\n /* Error */\n .error {\n padding: 8px 16px;\n background: var(--kr-chatbot-error-bg);\n color: var(--kr-chatbot-error-text);\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .error-dismiss {\n background: none;\n border: none;\n color: var(--kr-chatbot-error-text);\n cursor: pointer;\n padding: 2px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n .error-dismiss-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Footer / Input */\n .footer {\n padding: 16px 16px 16px;\n flex-shrink: 0;\n background: white;\n width: 100%;\n max-width: 768px;\n margin-left: auto;\n margin-right: auto;\n }\n\n /* Inline mode: keep the composer clear of the bottom edge. */\n :host([variant='inline']) .footer {\n padding-bottom: 40px;\n }\n\n .input-wrapper {\n display: flex;\n align-items: center;\n gap: 4px;\n background: white;\n border: 1px solid var(--kr-chatbot-border);\n border-radius: 26px;\n padding: 6px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .input-wrapper:focus-within {\n border-color: #b0b0b0;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);\n }\n\n /* Inline mode: keep the border and add a soft floating shadow (ChatGPT/Gemini style). */\n :host([variant='inline']) .input-wrapper {\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.1);\n }\n\n :host([variant='inline']) .input-wrapper:focus-within {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 12px 32px rgba(0, 0, 0, 0.14);\n }\n\n .input-plus {\n width: 34px;\n height: 34px;\n border: none;\n background: transparent;\n color: var(--kr-chatbot-text);\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: 20px;\n font-weight: 300;\n transition: background 0.15s;\n }\n\n .input-plus:hover {\n background: #f8f9fc;\n }\n\n .input {\n flex: 1;\n border: none;\n outline: none;\n resize: none;\n font-family: inherit;\n font-size: 15px;\n line-height: 1.5;\n padding: 4px 0;\n min-height: 26px;\n max-height: 120px;\n background: transparent;\n color: black;\n }\n\n .input::placeholder {\n color: #b0b0b0;\n }\n\n .send {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .send:hover {\n background: var(--kr-chatbot-primary-hover);\n }\n\n .send--disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n .send--disabled:hover {\n background: var(--kr-chatbot-primary);\n }\n\n .send-icon {\n width: 16px;\n height: 16px;\n }\n\n .stop {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n background: var(--kr-chatbot-error-text);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .stop:hover {\n background: #b91c1c;\n }\n\n .stop-icon {\n width: 14px;\n height: 14px;\n }\n\n /* Header drag cursor */\n .header {\n cursor: grab;\n user-select: none;\n }\n\n .header:active {\n cursor: grabbing;\n }\n\n /* Inline mode isn't draggable — don't show the grab/hand cursor. */\n :host([variant='inline']) .header,\n :host([variant='inline']) .header:active {\n cursor: default;\n }\n\n /* Drag / Resize states */\n .panel--dragging,\n .panel--resizing {\n transition: none;\n user-select: none;\n }\n\n .panel--dragging {\n box-shadow: 0 32px 96px rgba(0, 0, 0, 0.18), 0 12px 40px rgba(0, 0, 0, 0.1);\n }\n\n /* Resize handles */\n .resize {\n position: absolute;\n z-index: 10;\n }\n\n .resize--n { top: -4px; left: 12px; right: 12px; height: 8px; cursor: n-resize; }\n .resize--s { bottom: -4px; left: 12px; right: 12px; height: 8px; cursor: s-resize; }\n .resize--w { left: -4px; top: 12px; bottom: 12px; width: 8px; cursor: w-resize; }\n .resize--e { right: -4px; top: 12px; bottom: 12px; width: 8px; cursor: e-resize; }\n .resize--nw { top: -4px; left: -4px; width: 16px; height: 16px; cursor: nw-resize; }\n .resize--ne { top: -4px; right: -4px; width: 16px; height: 16px; cursor: ne-resize; }\n .resize--sw { bottom: -4px; left: -4px; width: 16px; height: 16px; cursor: sw-resize; }\n .resize--se { bottom: -4px; right: -4px; width: 16px; height: 16px; cursor: se-resize; }\n\n /* Attachment thumbnails inside a sent message bubble */\n .attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .message--user .attachments {\n justify-content: flex-end;\n }\n\n .attachment {\n width: 120px;\n height: 120px;\n border-radius: 12px;\n overflow: hidden;\n background: #f2f2f4;\n border: 1px solid rgba(0, 0, 0, 0.08);\n cursor: zoom-in;\n flex-shrink: 0;\n padding: 0;\n }\n\n .attachment img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n /* Skill menu (opened by typing '/'). Fixed + JS-positioned above the\n composer, following the krubble select-field dropdown pattern. */\n .skill-menu {\n position: fixed;\n z-index: 10000;\n background: white;\n border: 1px solid #9ba7b6;\n border-radius: 8px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n /* max-height is set dynamically to the space above the composer. */\n }\n\n /* Floating mode is a compact card — use a lighter shadow and softer border. */\n :host(:not([variant='inline'])) .skill-menu {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n border-color: #b0b0b0;\n }\n\n .skill-menu__list {\n list-style: none;\n margin: 0;\n padding: 8px 0;\n overflow-y: auto;\n }\n\n .skill-menu__item {\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 100%;\n padding: 8px 16px;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font: inherit;\n color: #000000;\n }\n\n\n /* Floating mode is a compact card — tighten name/description spacing. */\n :host(:not([variant='inline'])) .skill-menu__item {\n gap: 1px;\n }\n\n .skill-menu__name {\n font-weight: 500;\n }\n\n /* Floating mode is a compact card — shrink the skill name a touch. */\n :host(:not([variant='inline'])) .skill-menu__name {\n font-size: 13px;\n }\n\n .skill-menu__desc {\n font-size: 12px;\n color: #000000;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .skill-menu__empty {\n padding: 16px;\n text-align: center;\n color: #000000;\n }\n\n .skill-menu__actions {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n border-bottom: 1px solid #eee;\n flex-shrink: 0;\n }\n\n .skill-menu__action {\n width: 100%;\n padding: 6px 16px;\n background: transparent;\n border: none;\n text-align: left;\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n color: var(--kr-chatbot-primary);\n font-weight: 500;\n }\n\n /* Highlight (keyboard) and hover (mouse) are independent — either shades the\n row. Declared after the base rules so it wins the cascade for both the\n action buttons and the skill items. */\n .skill-menu__action.skill-menu__item--highlighted,\n .skill-menu__item.skill-menu__item--highlighted,\n .skill-menu__action:hover,\n .skill-menu__item:hover {\n background: #f3f4f6;\n }\n\n /* Browse-all dialog body. Owns the height so the dialog is the same size on\n every tab; the search is fixed and the card grid flexes/scrolls to fill. */\n .skill-browse {\n display: flex;\n flex-direction: column;\n height: 70vh;\n }\n\n .skill-browse kr-text-field {\n display: block;\n margin: 20px 20px 16px;\n flex-shrink: 0;\n }\n\n .skill-browse kr-tab-group {\n flex: 1;\n min-height: 0;\n }\n\n /* The grid is the scroller and spans the full width, so its scrollbar sits\n flush against the dialog edge; padding-right insets the cards from it. */\n .skill-browse__grid {\n height: 100%;\n overflow-y: auto;\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-auto-rows: min-content;\n align-content: start;\n gap: 12px;\n padding: 16px 20px 20px;\n }\n\n .skill-card {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n text-align: left;\n cursor: pointer;\n font: inherit;\n color: #000000;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n }\n\n .skill-card:hover {\n border-color: var(--kr-chatbot-primary);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n }\n\n .skill-card__name {\n font-weight: 600;\n }\n\n .skill-card__desc {\n font-size: 12px;\n color: #000000;\n }\n\n .skill-browse__empty {\n height: 100%;\n padding: 32px;\n text-align: center;\n color: #000000;\n }\n\n /* Composer attachment chips (pre-send) */\n .composer-attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 0 6px 10px;\n }\n\n .chip {\n position: relative;\n width: 56px;\n height: 56px;\n border-radius: 10px;\n overflow: hidden;\n background: #f2f2f4;\n border: 1px solid var(--kr-chatbot-border);\n flex-shrink: 0;\n }\n\n .chip img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .chip-remove {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 18px;\n height: 18px;\n border-radius: 50%;\n border: none;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n line-height: 1;\n }\n\n .chip-remove:hover {\n background: rgba(0, 0, 0, 0.8);\n }\n\n .chip-remove svg {\n width: 10px;\n height: 10px;\n }\n\n /* Drag-and-drop overlay */\n .drop-overlay {\n position: absolute;\n inset: 0;\n z-index: 20;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 10px;\n /* Frosted, mostly-opaque surface so the chat content behind is masked\n and doesn't clash with the overlay label. */\n background: rgba(255, 255, 255, 0.92);\n backdrop-filter: blur(3px);\n border: 2px dashed var(--kr-chatbot-primary);\n border-radius: 16px;\n color: var(--kr-chatbot-primary);\n font-weight: 600;\n font-size: 15px;\n pointer-events: none;\n }\n\n .drop-overlay svg {\n width: 32px;\n height: 32px;\n }\n\n `;\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"send\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"clear\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"load\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"messages\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRChatbot.prototype, \"placeholder\", void 0);\n__decorate([\n property({ attribute: false })\n], KRChatbot.prototype, \"skills\", void 0);\n__decorate([\n property({\n type: Boolean,\n reflect: true\n })\n], KRChatbot.prototype, \"opened\", void 0);\n__decorate([\n property({\n type: Boolean,\n attribute: 'hide-toggle',\n reflect: true\n })\n], KRChatbot.prototype, \"hideToggle\", void 0);\n__decorate([\n property({\n type: String,\n reflect: true\n })\n], KRChatbot.prototype, \"variant\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_inputValue\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_isStreaming\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_error\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_pendingInternalFiles\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_isDraggingFile\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_skillMenuOpened\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_skillQuery\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_skillHighlighted\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_copiedIndex\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_skillBrowseOpened\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_skillBrowseSource\", void 0);\n__decorate([\n state()\n], KRChatbot.prototype, \"_skillBrowseQuery\", void 0);\n__decorate([\n query('.panel')\n], KRChatbot.prototype, \"_panelEl\", void 0);\n__decorate([\n query('.messages')\n], KRChatbot.prototype, \"_messagesEl\", void 0);\n__decorate([\n query('.input')\n], KRChatbot.prototype, \"_inputEl\", void 0);\n__decorate([\n query('.file-input')\n], KRChatbot.prototype, \"_fileInputEl\", void 0);\n__decorate([\n query('.input-wrapper')\n], KRChatbot.prototype, \"_inputWrapperEl\", void 0);\n__decorate([\n query('.skill-menu')\n], KRChatbot.prototype, \"_skillMenuEl\", void 0);\nKRChatbot = __decorate([\n customElement('kr-chatbot')\n], KRChatbot);\nexport { KRChatbot };\n//# sourceMappingURL=chatbot.js.map"],"names":["t","e","s","o","r","n","i","S","c","h","a","l","p","d","u","f","b","y","v","m","M","__decorate","this","LitElement","html","css","state","customElement","nothing","classMap","unsafeHTML","property","repeat","query"],"mappings":"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ACA;AACA;AACA,6BAA6B,EAAE,IAAI,CAAC,QAAQ;AAC5C,6BAA6B,EAAE,IAAI,CAAC,oBAAoB;AACxD;AACA,oBAAoB,EAAE,IAAI,CAAC,QAAQ,GAAGA,CAAI,CAAC;AAC3C,+DAA+D,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,CAAC,GAAGI,CAAO;AAC/B;AACA;AACA,cAAc,CAAC,GAAGA,CAAO;AACzB;AACA,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvE;AACA;AACA;AACA,cAAc,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpF;AACA;AACA,QAAQ,CAAC,GAAGA,CAAO;;AAEnB;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ;AACA,UAAU,CAAC,MAAM,GAAGH,GAAG,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA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,YAAY,EAAE,IAAI,CAAC,YAAY,GAAGJ,CAAI,CAAC;AACvC;AACA;AACA,uBAAuB,EAAE,IAAI,CAAC,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,GAAGA,CAAI,CAAC;AACrB;AACA,sBAAsB,EAAEK,CAAQ,CAAC;AACjC,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,SAAS,CAAC;AACV,uBAAuB,EAAE,IAAI,CAAC,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC;AACb;AACA;AACA,QAAQ,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAGD,CAAO;AACvE;AACA,IAAI,CAAC;AACL,IAAI;AACJ;AACA,SAAS,CAAC,MAAM,GAAGH,GAAG,CAAC;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAE,CAAC;AACH,UAAU,CAAC;AACX,IAAIM,CAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;AACjC,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;AACjC,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AACxC,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;AACjC,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;AACjC,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AAC3C,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC7B,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AACxC,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC7B,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC9C,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;AACjC,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AACzC,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC;AACb,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,OAAO,EAAE;AACjB,KAAK;AACL,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AACzC,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC;AACb,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,SAAS,EAAE,aAAa;AAChC,QAAQ,OAAO,EAAE;AACjB,KAAK;AACL,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC;AAC7C,UAAU,CAAC;AACX,IAAIA,CAAQ,CAAC;AACb,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,OAAO,EAAE;AACjB,KAAK;AACL,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;AAC1C,UAAU,CAAC;AACX,IAAIL,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC9C,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC;AAC/C,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;AACzC,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,uBAAuB,EAAE,MAAM,CAAC;AACxD,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC;AAClD,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC;AACnD,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC9C,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC;AACpD,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC;AAC/C,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,oBAAoB,EAAE,MAAM,CAAC;AACrD,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,oBAAoB,EAAE,MAAM,CAAC;AACrD,UAAU,CAAC;AACX,IAAIA,CAAK;AACT,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC;AACpD,UAAU,CAAC;AACX,IAAIO,GAAK,CAAC,QAAQ;AAClB,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AAC3C,UAAU,CAAC;AACX,IAAIA,GAAK,CAAC,WAAW;AACrB,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC9C,UAAU,CAAC;AACX,IAAIA,GAAK,CAAC,QAAQ;AAClB,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;AAC3C,UAAU,CAAC;AACX,IAAIA,GAAK,CAAC,aAAa;AACvB,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC;AAC/C,UAAU,CAAC;AACX,IAAIA,GAAK,CAAC,gBAAgB;AAC1B,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC;AAClD,UAAU,CAAC;AACX,IAAIA,GAAK,CAAC,aAAa;AACvB,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC;AAC/C,SAAS,GAAG,UAAU,CAAC;AACvB,IAAIN,GAAa,CAAC,YAAY;AAC9B,CAAC,EAAE,SAAS,CAAC;;;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,18,19,20]}