@kodaris/krubble-components 1.0.20 → 1.0.23

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.bundled.min.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","style/base.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/query.js","../../../node_modules/@lit/reactive-element/decorators/base.js","accordion/accordion.js","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directives/class-map.js","alert/alert.js","button/button.js","../../../node_modules/lit-html/directives/unsafe-html.js","code-demo/code-demo.js","context-menu/context-menu.js","dialog/dialog.js","snackbar/snackbar.js","../../../node_modules/lit-html/directives/style-map.js","tabs/tabs.js","tabs/tab.js","table/table.js","../../../node_modules/lit-html/directives/if-defined.js","../../../node_modules/lit-html/directive-helpers.js","../../../node_modules/lit-html/directives/live.js","form/text-field/text-field.js","form/select-field/select-field.js","form/select-field/select-option.js","form/textarea-field/textarea-field.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","import { css } from 'lit';\n/**\n * Base theme styles with CSS custom properties.\n * Import into components: static styles = [krBaseCSS, css`...`]\n */\nexport const krBaseCSS = css `\n :host,\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n /* Primary */\n --kr-primary: rgb(22, 48, 82);\n --kr-primary-hover: rgb(16, 36, 62);\n --kr-primary-text: #ffffff;\n\n /* Accent */\n --kr-accent: #BEEA4E;\n --kr-accent-hover: #a8d43a;\n --kr-accent-text: #000000;\n\n /* Text */\n --kr-text: #000000;\n --kr-text-muted: #4b5563;\n --kr-text-disabled: #9ca3af;\n \n /* Borders */\n --kr-border: #e5e7eb;\n }\n`;\n//# sourceMappingURL=base.js.map","/**\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","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 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","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 * Accordion component for collapsible content sections.\n *\n * ## Usage\n * ```html\n * <kr-accordion header=\"Basic Information\" expanded>\n * <div>Content here</div>\n * </kr-accordion>\n * ```\n *\n * @slot - The collapsible content\n *\n * @property {string} header - Section header text\n * @property {boolean} expanded - Whether the accordion is expanded\n */\nlet KRAccordion = class KRAccordion extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Section header text\n */\n this.header = '';\n /**\n * Whether the accordion is expanded\n */\n this.expanded = false;\n }\n toggle() {\n this.expanded = !this.expanded;\n }\n render() {\n return html `\n <div class=\"header\" @click=${this.toggle}>\n <span class=\"header__title\">${this.header}</span>\n <svg class=\"header__icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M6 9l6 6 6-6\"/>\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"content__inner\">\n <div class=\"content__body\">\n <slot></slot>\n </div>\n </div>\n </div>\n `;\n }\n};\nKRAccordion.styles = css `\n :host {\n display: block;\n margin-bottom: 16px;\n }\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: #f7f8f9;\n border-radius: 8px;\n cursor: pointer;\n user-select: none;\n }\n\n .header__title {\n font-size: 15px;\n font-weight: 600;\n color: #111827;\n }\n\n .header__icon {\n width: 20px;\n height: 20px;\n color: #9ca3af;\n transition: transform 0.2s ease;\n flex-shrink: 0;\n }\n\n :host([expanded]) .header__icon {\n transform: rotate(180deg);\n }\n\n .content {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.2s ease;\n }\n\n :host([expanded]) .content {\n grid-template-rows: 1fr;\n }\n\n .content__inner {\n overflow: hidden;\n }\n\n .content__body {\n padding: 16px 16px 8px 16px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRAccordion.prototype, \"header\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], KRAccordion.prototype, \"expanded\", void 0);\nKRAccordion = __decorate([\n customElement('kr-accordion')\n], KRAccordion);\nexport { KRAccordion };\n//# sourceMappingURL=accordion.js.map","/**\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{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, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * A customizable alert component for displaying important information to users.\n *\n * @slot - The alert message content\n * @fires dismiss - Fired when the dismiss button is clicked\n */\nlet KRAlert = class KRAlert extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * The alert type/severity\n */\n this.type = 'info';\n /**\n * Whether the alert can be dismissed\n */\n this.dismissible = false;\n /**\n * Whether the alert is visible\n */\n this.visible = true;\n }\n /** Handles dismiss button click */\n _handleDismiss() {\n this.visible = false;\n this.dispatchEvent(new CustomEvent('dismiss', { bubbles: true, composed: true }));\n }\n render() {\n const icons = {\n info: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clip-rule=\"evenodd\"/></svg>`,\n success: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\"/></svg>`,\n warning: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\"/></svg>`,\n error: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\"/></svg>`,\n };\n return html `\n <div\n class=${classMap({\n 'alert': true,\n ['alert--' + this.type]: true,\n 'alert--hidden': !this.visible\n })}\n role=\"alert\"\n >\n ${icons[this.type]}\n <div class=\"content\">\n ${this.header\n ? html `<h4 class=\"header\">${this.header}</h4>`\n : nothing}\n <div class=\"message\">\n <slot></slot>\n </div>\n </div>\n ${this.dismissible\n ? html `\n <button\n class=\"dismiss\"\n type=\"button\"\n aria-label=\"Dismiss alert\"\n @click=${this._handleDismiss}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\"/>\n </svg>\n </button>\n `\n : nothing}\n </div>\n `;\n }\n};\nKRAlert.styles = css `\n :host {\n display: block;\n }\n\n .alert {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n border-left: 4px solid;\n }\n\n .alert--hidden {\n display: none;\n }\n \n /* Variants */\n .alert--info {\n background-color: #eff6ff;\n border-left-color: #3b82f6;\n }\n\n .alert--info .icon {\n color: #2563eb;\n }\n\n .alert--success {\n background-color: #f0fdf4;\n border-left-color: #22c55e;\n }\n\n .alert--success .icon {\n color: #16a34a;\n }\n\n .alert--warning {\n background-color: #fffbeb;\n border-left-color: #f59e0b;\n }\n\n .alert--warning .icon {\n color: #d97706;\n }\n\n .alert--error {\n background-color: #fef2f2;\n border-left-color: #ef4444;\n }\n\n .alert--error .icon {\n color: #dc2626;\n }\n\n .icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .header {\n font-size: 14px;\n font-weight: 600;\n color: #111827;\n margin: 0;\n }\n\n .message {\n font-size: 14px;\n color: #374151;\n margin: 0;\n }\n\n .dismiss {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n background: none;\n border: none;\n border-radius: 4px;\n color: #6b7280;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n }\n\n .dismiss:hover {\n background-color: rgba(0, 0, 0, 0.05);\n color: #374151;\n }\n\n .dismiss:focus-visible {\n outline: 2px solid #3b82f6;\n outline-offset: 2px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRAlert.prototype, \"type\", void 0);\n__decorate([\n property({ type: String })\n], KRAlert.prototype, \"header\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRAlert.prototype, \"dismissible\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRAlert.prototype, \"visible\", void 0);\nKRAlert = __decorate([\n customElement('kr-alert')\n], KRAlert);\nexport { KRAlert };\n//# sourceMappingURL=alert.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';\n/**\n * A customizable button component.\n *\n * @slot - The button content\n * @fires click - Fired when the button is clicked\n * @fires option-select - Fired when a dropdown option is selected\n */\nlet KRButton = class KRButton extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * The button variant (shape)\n */\n this.variant = 'flat';\n /**\n * The button color\n */\n this.color = 'primary';\n /**\n * The button size\n */\n this.size = 'medium';\n /**\n * Whether the button is disabled\n */\n this.disabled = false;\n /**\n * Dropdown options - when provided, button becomes a dropdown\n */\n this.options = [];\n this._state = 'idle';\n this._stateText = '';\n this._dropdownOpened = false;\n this._dropdownAlignRight = false;\n this._handleHostClick = (e) => {\n if (this.options.length) {\n e.stopPropagation();\n this._toggleDropdown();\n }\n };\n this._handleKeydown = (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (this.options.length) {\n this._toggleDropdown();\n }\n else {\n this.click();\n }\n }\n if (e.key === 'Escape' && this._dropdownOpened) {\n this._dropdownOpened = false;\n }\n };\n this._handleClickOutside = (e) => {\n if (this._dropdownOpened && !this.contains(e.target)) {\n this._dropdownOpened = false;\n }\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', this.href ? 'link' : 'button');\n this.setAttribute('tabindex', '0');\n this.addEventListener('keydown', this._handleKeydown);\n this.addEventListener('click', this._handleHostClick);\n document.addEventListener('click', this._handleClickOutside);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleKeydown);\n this.removeEventListener('click', this._handleHostClick);\n document.removeEventListener('click', this._handleClickOutside);\n }\n _toggleDropdown() {\n this._dropdownOpened = !this._dropdownOpened;\n if (this._dropdownOpened) {\n // Check if dropdown would overflow viewport after render\n requestAnimationFrame(() => {\n const dropdown = this.shadowRoot?.querySelector('.dropdown');\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n this._dropdownAlignRight = rect.right > window.innerWidth;\n }\n });\n }\n }\n _handleOptionClick(option, e) {\n e.stopPropagation();\n this._dropdownOpened = false;\n this.dispatchEvent(new CustomEvent('option-select', {\n detail: { id: option.id, label: option.label },\n bubbles: true,\n composed: true\n }));\n }\n /**\n * Shows a loading spinner and disables the button.\n */\n showLoading() {\n this._clearStateTimeout();\n this._state = 'loading';\n this._stateText = '';\n }\n /**\n * Shows a success state with optional custom text.\n * @param text - Text to display (default: \"Saved\")\n * @param duration - Duration in ms before auto-reset (default: 2000)\n */\n showSuccess(text = 'Success', duration = 2000) {\n this._clearStateTimeout();\n this._state = 'success';\n this._stateText = text;\n this._stateTimeout = window.setTimeout(() => this.reset(), duration);\n }\n /**\n * Shows an error state with optional custom text.\n * @param text - Text to display (default: \"Error\")\n * @param duration - Duration in ms before auto-reset (default: 2000)\n */\n showError(text = 'Error', duration = 2000) {\n this._clearStateTimeout();\n this._state = 'error';\n this._stateText = text;\n this._stateTimeout = window.setTimeout(() => this.reset(), duration);\n }\n /**\n * Resets the button to its idle state.\n */\n reset() {\n this._clearStateTimeout();\n this._state = 'idle';\n this._stateText = '';\n }\n _clearStateTimeout() {\n if (this._stateTimeout) {\n clearTimeout(this._stateTimeout);\n this._stateTimeout = undefined;\n }\n }\n updated(changedProperties) {\n // Reflect state classes to host\n this.classList.toggle('kr-button--loading', this._state === 'loading');\n this.classList.toggle('kr-button--success', this._state === 'success');\n this.classList.toggle('kr-button--error', this._state === 'error');\n this.classList.toggle(`kr-button--${this.variant}`, true);\n this.classList.toggle(`kr-button--${this.color}`, true);\n this.classList.toggle('kr-button--small', this.size === 'small');\n this.classList.toggle('kr-button--large', this.size === 'large');\n }\n render() {\n const content = html `\n <slot></slot>\n ${this.options.length ? html `<svg class=\"caret\" xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>` : nothing}\n ${this._state !== 'idle'\n ? html `<span class=\"state-overlay\">\n ${this._state === 'loading'\n ? html `<span class=\"spinner\"></span>`\n : this._stateText}\n </span>`\n : nothing}\n ${this.options.length ? html `\n <div class=\"dropdown ${this._dropdownOpened ? 'dropdown--opened' : ''} ${this._dropdownAlignRight ? 'dropdown--align-right' : ''}\">\n ${this.options.map(option => html `\n <button\n class=\"dropdown-item\"\n @click=${(e) => this._handleOptionClick(option, e)}\n >${option.label}</button>\n `)}\n </div>\n ` : nothing}\n `;\n return this.href\n ? html `<a class=\"link\" href=${this.href} target=${this.target || nothing}>${content}</a>`\n : content;\n }\n};\nKRButton.styles = css `\n :host {\n display: inline-flex;\n position: relative;\n align-items: center;\n justify-content: center;\n font-family: inherit;\n font-size: 14px;\n font-weight: 400;\n letter-spacing: 0.01em;\n padding: 0 22px;\n height: 36px;\n border: none;\n border-radius: 20px;\n cursor: pointer;\n transition: background 0.15s ease;\n user-select: none;\n box-sizing: border-box;\n }\n\n :host([disabled]),\n :host(.kr-button--loading),\n :host(.kr-button--success),\n :host(.kr-button--error) {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]:not(.kr-button--loading):not(.kr-button--success):not(.kr-button--error)) {\n opacity: 0.5;\n }\n\n /* Flat + Primary (default) */\n :host,\n :host(.kr-button--flat.kr-button--primary) {\n background: #163052;\n color: white;\n }\n\n :host(:hover:not([disabled])),\n :host(.kr-button--flat.kr-button--primary:hover:not([disabled])) {\n background: #0e1f35;\n }\n\n /* Flat + Secondary */\n :host(.kr-button--flat.kr-button--secondary) {\n background: #f3f4f6;\n color: #374151;\n }\n\n :host(.kr-button--flat.kr-button--secondary:hover:not([disabled])) {\n background: #e5e7eb;\n }\n\n /* Outline + Primary */\n :host(.kr-button--outline.kr-button--primary) {\n background: transparent;\n border: 1px solid #163052;\n color: #163052;\n }\n\n :host(.kr-button--outline.kr-button--primary:hover:not([disabled])) {\n background: rgba(22, 48, 82, 0.05);\n }\n\n /* Outline + Secondary */\n :host(.kr-button--outline.kr-button--secondary) {\n background: transparent;\n border: 1px solid #d1d5db;\n color: #374151;\n }\n\n :host(.kr-button--outline.kr-button--secondary:hover:not([disabled])) {\n background: #f9fafb;\n border-color: #9ca3af;\n }\n\n /* Flat + Danger */\n :host(.kr-button--flat.kr-button--danger) {\n background: #dc2626;\n color: white;\n }\n\n :host(.kr-button--flat.kr-button--danger:hover:not([disabled])) {\n background: #b91c1c;\n }\n\n /* Outline + Danger */\n :host(.kr-button--outline.kr-button--danger) {\n background: transparent;\n border: 1px solid rgb(219, 38, 39);\n color: rgb(219, 38, 39);\n }\n\n :host(.kr-button--outline.kr-button--danger:hover:not([disabled])) {\n background: rgba(219, 38, 39, 0.05);\n }\n\n /* Sizes */\n :host(.kr-button--small) {\n font-size: 13px;\n height: 26px;\n padding: 0 16px;\n }\n\n :host(.kr-button--large) {\n font-size: 16px;\n height: 44px;\n padding: 0 24px;\n border-radius: 30px;\n }\n\n /* State colors */\n :host(.kr-button--success) {\n background: #198754 !important;\n color: white !important;\n }\n\n :host(.kr-button--error) {\n background: rgb(220, 53, 69) !important;\n color: white !important;\n }\n\n /* Content */\n :host(.kr-button--loading) slot,\n :host(.kr-button--success) slot,\n :host(.kr-button--error) slot {\n visibility: hidden;\n }\n\n /* State overlay */\n .state-overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Spinner */\n @keyframes kr-spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .spinner {\n width: 12px;\n height: 12px;\n border: 2.5px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: kr-spin 0.6s linear infinite;\n }\n\n :host(.kr-button--small) .spinner {\n width: 10px;\n height: 10px;\n border-width: 2px;\n }\n\n :host(.kr-button--large) .spinner {\n width: 16px;\n height: 16px;\n border-width: 3px;\n }\n\n /* Dropdown */\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n min-width: 100%;\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 padding: 8px 0;\n z-index: 100;\n display: none;\n transform-origin: top;\n }\n\n .dropdown--opened {\n display: block;\n animation: dropdown-fade-in 150ms ease-out;\n }\n\n .dropdown--align-right {\n left: auto;\n right: 0;\n }\n\n @keyframes dropdown-fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .dropdown-item {\n display: block;\n width: 100%;\n padding: 8px 16px;\n text-align: left;\n background: none;\n border: none;\n font-size: 14px;\n color: #374151;\n cursor: pointer;\n font-family: inherit;\n white-space: nowrap;\n }\n\n .dropdown-item:hover {\n background: #f3f4f6;\n }\n\n /* Caret for dropdown button */\n .caret {\n margin-left: 4px;\n margin-right: -6px;\n display: flex;\n }\n\n /* Link wrapper */\n .link {\n color: inherit;\n text-decoration: none;\n }\n `;\n__decorate([\n property({ type: String, reflect: true })\n], KRButton.prototype, \"variant\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], KRButton.prototype, \"color\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], KRButton.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], KRButton.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: String })\n], KRButton.prototype, \"href\", void 0);\n__decorate([\n property({ type: String })\n], KRButton.prototype, \"target\", void 0);\n__decorate([\n property({ type: Array })\n], KRButton.prototype, \"options\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_state\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_stateText\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_dropdownOpened\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_dropdownAlignRight\", void 0);\nKRButton = __decorate([\n customElement('kr-button')\n], KRButton);\nexport { KRButton };\n//# sourceMappingURL=button.js.map","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","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, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\n/**\n * Code demo component with Preview/Code tabs and syntax highlighting.\n *\n * Usage:\n * ```html\n * <kr-code-demo language=\"html\">\n * <div slot=\"preview\">\n * <kr-button>Click me</kr-button>\n * </div>\n * <script slot=\"code\" type=\"text/plain\">\n * <kr-button>Click me</kr-button>\n * </script>\n * </kr-code-demo>\n * ```\n *\n * Requires Prism.js to be loaded globally for syntax highlighting.\n */\nlet KRCodeDemo = class KRCodeDemo extends LitElement {\n constructor() {\n super(...arguments);\n this.language = 'html';\n this.code = '';\n this.activeTab = 'preview';\n this.copied = false;\n }\n setTab(tab) {\n this.activeTab = tab;\n }\n getHighlightedCode() {\n if (!this.code)\n return '';\n if (window.Prism && window.Prism.languages[this.language]) {\n return window.Prism.highlight(this.code, window.Prism.languages[this.language], this.language);\n }\n // Fallback: escape HTML and return plain text\n return this.escapeHtml(this.code);\n }\n escapeHtml(text) {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n async copyCode() {\n if (!this.code)\n return;\n try {\n await navigator.clipboard.writeText(this.code);\n this.copied = true;\n setTimeout(() => {\n this.copied = false;\n }, 2000);\n }\n catch (err) {\n console.error('Failed to copy code:', err);\n }\n }\n render() {\n return html `\n <div class=\"tabs\">\n <button\n class=${classMap({ tab: true, 'tab--active': this.activeTab === 'preview' })}\n @click=${() => this.setTab('preview')}\n >\n Preview\n </button>\n <button\n class=${classMap({ tab: true, 'tab--active': this.activeTab === 'code' })}\n @click=${() => this.setTab('code')}\n >\n Code\n </button>\n </div>\n\n <div class=${classMap({ panel: true, 'panel--active': this.activeTab === 'preview', preview: true })}>\n <slot name=\"preview\"></slot>\n </div>\n\n <div class=${classMap({ panel: true, 'panel--active': this.activeTab === 'code', 'code-container': true })}>\n <button\n class=${classMap({ 'copy-btn': true, 'copy-btn--copied': this.copied })}\n @click=${this.copyCode}\n >\n ${this.copied ? 'Copied!' : 'Copy'}\n </button>\n <pre class=\"code\"><code>${unsafeHTML(this.getHighlightedCode())}</code></pre>\n </div>\n\n `;\n }\n};\nKRCodeDemo.styles = css `\n :host {\n display: block;\n border: 1px solid #e9ecef;\n border-radius: 8px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .tabs {\n display: flex;\n background: #f8f9fa;\n border-bottom: 1px solid #e9ecef;\n border-radius: 8px 8px 0 0;\n }\n\n .tab {\n padding: 10px 20px;\n background: none;\n border: none;\n color: #6c757d;\n font-size: 14px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n position: relative;\n transition: color 0.15s;\n }\n\n .tab:hover {\n color: #495057;\n }\n\n .tab--active {\n color: #1a1a2e;\n }\n\n .tab--active::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n height: 2px;\n background: #4f46e5;\n }\n\n .panel {\n display: none;\n }\n\n .panel--active {\n display: block;\n }\n\n .preview {\n padding: 24px;\n background: #ffffff;\n }\n\n .code-container {\n position: relative;\n }\n\n .code {\n margin: 0;\n padding: 20px;\n background: #1e1e2e;\n overflow-x: auto;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: #cdd6f4;\n border-radius: 0 0 8px 8px;\n }\n\n .code code {\n font-family: inherit;\n }\n\n .copy-btn {\n position: absolute;\n top: 12px;\n right: 12px;\n padding: 6px 12px;\n background: rgba(255, 255, 255, 0.1);\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 6px;\n color: rgba(255, 255, 255, 0.7);\n font-size: 12px;\n font-family: inherit;\n cursor: pointer;\n transition: background 0.15s, color 0.15s;\n }\n\n .copy-btn:hover {\n background: rgba(255, 255, 255, 0.15);\n color: white;\n }\n\n .copy-btn--copied {\n background: rgba(34, 197, 94, 0.2);\n border-color: rgba(34, 197, 94, 0.3);\n color: #4ade80;\n }\n\n /* Prism.js theme overrides for dark mode */\n .code .token.comment,\n .code .token.prolog,\n .code .token.doctype,\n .code .token.cdata {\n color: #6c7086;\n }\n\n .code .token.punctuation {\n color: #9399b2;\n }\n\n .code .token.property,\n .code .token.tag,\n .code .token.boolean,\n .code .token.number,\n .code .token.constant,\n .code .token.symbol,\n .code .token.deleted {\n color: #f38ba8;\n }\n\n .code .token.selector,\n .code .token.attr-name,\n .code .token.string,\n .code .token.char,\n .code .token.builtin,\n .code .token.inserted {\n color: #a6e3a1;\n }\n\n .code .token.operator,\n .code .token.entity,\n .code .token.url,\n .code .language-css .token.string,\n .code .style .token.string {\n color: #94e2d5;\n }\n\n .code .token.atrule,\n .code .token.attr-value,\n .code .token.keyword {\n color: #cba6f7;\n }\n\n .code .token.function,\n .code .token.class-name {\n color: #89b4fa;\n }\n\n .code .token.regex,\n .code .token.important,\n .code .token.variable {\n color: #fab387;\n }\n `;\n__decorate([\n property({ type: String })\n], KRCodeDemo.prototype, \"language\", void 0);\n__decorate([\n property({ type: String })\n], KRCodeDemo.prototype, \"code\", void 0);\n__decorate([\n state()\n], KRCodeDemo.prototype, \"activeTab\", void 0);\n__decorate([\n state()\n], KRCodeDemo.prototype, \"copied\", void 0);\nKRCodeDemo = __decorate([\n customElement('kr-code-demo')\n], KRCodeDemo);\nexport { KRCodeDemo };\n//# sourceMappingURL=code-demo.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, state } from 'lit/decorators.js';\n/**\n * Context menu component that can be opened programmatically.\n *\n * Usage:\n * ```ts\n * const result = await ContextMenu.open({\n * x: event.clientX,\n * y: event.clientY,\n * items: [\n * { id: 'edit', label: 'Edit Item' },\n * { id: 'divider', label: '', divider: true },\n * { id: 'add-above', label: 'Add Item Above' },\n * { id: 'add-below', label: 'Add Item Below' },\n * ]\n * });\n *\n * if (result) {\n * console.log('Selected:', result.id);\n * }\n * ```\n */\nlet KRContextMenu = class KRContextMenu extends LitElement {\n constructor() {\n super(...arguments);\n this.items = [];\n this.resolvePromise = null;\n this.boundHandleOutsideClick = this.handleOutsideClick.bind(this);\n this.boundHandleKeyDown = this.handleKeyDown.bind(this);\n }\n static async open(options) {\n // Remove any existing context menu\n const existing = document.querySelector('kr-context-menu');\n if (existing) {\n existing.remove();\n }\n // Create and position the menu\n const menu = document.createElement('kr-context-menu');\n document.body.appendChild(menu);\n return menu.show(options);\n }\n async show(options) {\n this.items = options.items;\n this.style.left = `${options.x}px`;\n this.style.top = `${options.y}px`;\n // Adjust position if menu would go off screen\n await this.updateComplete;\n const rect = this.getBoundingClientRect();\n if (rect.right > window.innerWidth) {\n this.style.left = `${options.x - rect.width}px`;\n }\n if (rect.bottom > window.innerHeight) {\n this.style.top = `${options.y - rect.height}px`;\n }\n // Add event listeners after a microtask to avoid the current event triggering close\n requestAnimationFrame(() => {\n document.addEventListener('click', this.boundHandleOutsideClick);\n document.addEventListener('contextmenu', this.boundHandleOutsideClick);\n document.addEventListener('keydown', this.boundHandleKeyDown);\n });\n return new Promise((resolve) => {\n this.resolvePromise = resolve;\n });\n }\n handleOutsideClick(e) {\n if (!this.contains(e.target)) {\n this.close(null);\n }\n }\n handleKeyDown(e) {\n if (e.key === 'Escape') {\n this.close(null);\n }\n }\n handleItemClick(item) {\n if (!item.disabled && !item.divider) {\n this.close(item);\n }\n }\n close(result) {\n document.removeEventListener('click', this.boundHandleOutsideClick);\n document.removeEventListener('contextmenu', this.boundHandleOutsideClick);\n document.removeEventListener('keydown', this.boundHandleKeyDown);\n if (this.resolvePromise) {\n this.resolvePromise(result);\n this.resolvePromise = null;\n }\n this.remove();\n }\n render() {\n return html `\n <div class=\"menu\">\n ${this.items.map(item => item.divider\n ? html `<div class=\"menu__divider\"></div>`\n : html `\n <button\n class=\"menu__item\"\n ?disabled=${item.disabled}\n @click=${() => this.handleItemClick(item)}\n >\n ${item.icon ? html `<span class=\"menu__item-icon\">${item.icon}</span>` : null}\n ${item.label}\n </button>\n `)}\n </div>\n `;\n }\n};\nKRContextMenu.styles = css `\n :host {\n position: fixed;\n z-index: 10000;\n }\n\n .menu {\n background: #1a1a2e;\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n padding: 4px;\n min-width: 180px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);\n }\n\n .menu__item {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n padding: 10px 12px;\n background: none;\n border: none;\n color: rgba(255, 255, 255, 0.8);\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 .menu__item:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.05);\n color: #ffffff;\n }\n\n .menu__item:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .menu__item-icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .menu__divider {\n height: 1px;\n background: rgba(255, 255, 255, 0.1);\n margin: 4px 0;\n }\n `;\n__decorate([\n state()\n], KRContextMenu.prototype, \"items\", void 0);\nKRContextMenu = __decorate([\n customElement('kr-context-menu')\n], KRContextMenu);\nexport { KRContextMenu };\n//# sourceMappingURL=context-menu.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, state } from 'lit/decorators.js';\nexport class DialogRef {\n constructor() {\n this.resolvePromise = null;\n this.dialogElement = null;\n this.promise = new Promise((resolve) => {\n this.resolvePromise = resolve;\n });\n }\n /** @internal */\n setDialogElement(el) {\n this.dialogElement = el;\n }\n close(result) {\n if (this.resolvePromise) {\n this.resolvePromise(result);\n this.resolvePromise = null;\n }\n this.dialogElement?.remove();\n }\n afterClosed() {\n return this.promise;\n }\n}\n/**\n * Generic dialog component that renders a Lit component inside a dialog shell.\n *\n * Usage:\n * ```ts\n * // Define your dialog content component\n * class EditItemDialog extends LitElement {\n * // Injected by KRDialog\n * dialogRef: DialogRef<{ label: string }>;\n * data: { label: string };\n *\n * save() {\n * this.dialogRef.close({ label: this.label });\n * }\n * }\n *\n * // Open the dialog\n * const dialogRef = KRDialog.open(EditItemDialog, {\n * data: { label: 'Dashboard' }\n * });\n *\n * const result = await dialogRef.afterClosed();\n * if (result) {\n * console.log('Saved:', result.label);\n * }\n * ```\n */\nlet KRDialog = class KRDialog extends LitElement {\n constructor() {\n super(...arguments);\n this.contentElement = null;\n this.dialogRef = null;\n this.boundHandleKeyDown = this.handleKeyDown.bind(this);\n }\n static open(component, config) {\n const existing = document.querySelector('kr-dialog');\n if (existing) {\n existing.remove();\n }\n const dialogRef = new DialogRef();\n const dialog = document.createElement('kr-dialog');\n dialogRef.setDialogElement(dialog);\n dialog.dialogRef = dialogRef;\n // Create the content component\n const content = new component();\n content.dialogRef = dialogRef;\n if (config?.data) {\n content.data = config.data;\n }\n dialog.contentElement = content;\n document.body.appendChild(dialog);\n document.addEventListener('keydown', dialog.boundHandleKeyDown);\n return dialogRef;\n }\n handleKeyDown(e) {\n if (e.key === 'Escape') {\n this.dialogRef?.close(undefined);\n }\n }\n handleBackdropClick(e) {\n if (e.target.classList.contains('backdrop')) {\n this.dialogRef?.close(undefined);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this.boundHandleKeyDown);\n }\n render() {\n return html `\n <div class=\"backdrop\" @click=${this.handleBackdropClick}></div>\n <div class=\"dialog\">\n ${this.contentElement}\n </div>\n `;\n }\n};\nKRDialog.styles = css `\n :host {\n position: fixed;\n inset: 0;\n z-index: 10000;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .backdrop {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n }\n\n .dialog {\n position: relative;\n background: #1a1a2e;\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 12px;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);\n max-height: 90vh;\n overflow: auto;\n }\n `;\n__decorate([\n state()\n], KRDialog.prototype, \"contentElement\", void 0);\nKRDialog = __decorate([\n customElement('kr-dialog')\n], KRDialog);\nexport { KRDialog };\n//# sourceMappingURL=dialog.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};\nvar KRSnackbar_1;\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n/**\n * A snackbar component for displaying brief notification messages.\n *\n * Snackbars appear at the bottom-left of the screen and automatically\n * dismiss after a configurable duration. Multiple snackbars stack vertically.\n *\n * @fires dismiss - Fired when the snackbar is dismissed (manually or automatically)\n *\n * @example\n * ```ts\n * // Show a success message\n * KRSnackbar.show({ message: 'Item saved successfully', type: 'success' });\n *\n * // Show a message with title\n * KRSnackbar.show({ title: 'Upload Complete', message: 'Your file has been uploaded.', type: 'success' });\n *\n * // Show an error that stays until manually dismissed\n * KRSnackbar.show({ message: 'Failed to save', type: 'error', duration: 0 });\n * ```\n */\nlet KRSnackbar = KRSnackbar_1 = class KRSnackbar extends LitElement {\n constructor() {\n super(...arguments);\n this.dismissTimeout = null;\n /**\n * The snackbar type/severity. Controls the color scheme and icon.\n */\n this.type = 'info';\n /**\n * Optional title to display above the message.\n */\n this.title = '';\n /**\n * The message to display in the snackbar.\n */\n this.message = '';\n /**\n * Duration in milliseconds before auto-dismiss. Set to 0 to disable auto-dismiss.\n * @default 5000\n */\n this.duration = 5000;\n }\n /**\n * Show a snackbar with the given options.\n * @param options - Configuration including message, optional title, type, and duration\n * @returns The created snackbar element\n */\n static show(options) {\n const snackbar = document.createElement('kr-snackbar');\n snackbar.message = options.message;\n snackbar.title = options.title ?? '';\n snackbar.type = options.type ?? 'info';\n if (options.duration !== undefined) {\n snackbar.duration = options.duration;\n }\n else if (snackbar.type === 'error') {\n snackbar.duration = 0;\n }\n else {\n snackbar.duration = 5000;\n }\n document.body.appendChild(snackbar);\n return snackbar;\n }\n connectedCallback() {\n super.connectedCallback();\n // Set role and type class on host\n this.setAttribute('role', 'alert');\n this.classList.add(`kr-snackbar--${this.type}`);\n if (this.title) {\n this.classList.add('kr-snackbar--has-title');\n }\n // Add to active snackbars and update positions\n KRSnackbar_1.activeSnackbars.push(this);\n this.updatePositions();\n // Set up auto-dismiss\n if (this.duration > 0) {\n this.dismissTimeout = window.setTimeout(() => {\n this.dismiss();\n }, this.duration);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n // Remove from active snackbars\n const index = KRSnackbar_1.activeSnackbars.indexOf(this);\n if (index > -1) {\n KRSnackbar_1.activeSnackbars.splice(index, 1);\n }\n // Update positions of remaining snackbars\n this.updatePositions();\n // Clear timeout\n if (this.dismissTimeout) {\n clearTimeout(this.dismissTimeout);\n }\n }\n updatePositions() {\n let bottomOffset = 24;\n for (const snackbar of KRSnackbar_1.activeSnackbars) {\n snackbar.style.bottom = `${bottomOffset}px`;\n bottomOffset += snackbar.offsetHeight + 8;\n }\n }\n dismiss() {\n if (this.dismissTimeout) {\n clearTimeout(this.dismissTimeout);\n this.dismissTimeout = null;\n }\n this.classList.add('kr-snackbar--closing');\n this.addEventListener('animationend', () => {\n this.dispatchEvent(new CustomEvent('dismiss', { bubbles: true, composed: true }));\n this.remove();\n }, { once: true });\n }\n render() {\n const icons = {\n info: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clip-rule=\"evenodd\"/></svg>`,\n success: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\"/></svg>`,\n warning: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\"/></svg>`,\n error: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\"/></svg>`,\n };\n return html `\n ${icons[this.type]}\n <div class=\"content\">\n ${this.title ? html `<div class=\"title\">${this.title}</div>` : ''}\n <div class=\"message\">${this.message}</div>\n </div>\n <button\n class=\"dismiss\"\n type=\"button\"\n aria-label=\"Dismiss\"\n @click=${this.dismiss}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\"/>\n </svg>\n </button>\n `;\n }\n};\nKRSnackbar.styles = css `\n :host,\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n position: fixed;\n left: 16px;\n z-index: 10000;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 14px 12px 14px 16px;\n border-radius: 8px;\n border: 1px solid;\n border-left: 4px solid;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 280px;\n max-width: 400px;\n min-height: 48px;\n animation: slideIn 0.2s ease-out;\n }\n\n :host(.kr-snackbar--has-title) {\n align-items: flex-start;\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n @keyframes slideOut {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(-100%);\n }\n }\n\n :host(.kr-snackbar--closing) {\n animation: slideOut 0.15s ease-in forwards;\n }\n\n /* Variants */\n :host(.kr-snackbar--info) {\n background-color: #eff6ff;\n border-color: #bfdbfe;\n border-left-color: #3b82f6;\n }\n\n :host(.kr-snackbar--info) .icon {\n color: #2563eb;\n }\n\n :host(.kr-snackbar--success) {\n background-color: #f0fdf4;\n border-color: #bbf7d0;\n border-left-color: #22c55e;\n }\n\n :host(.kr-snackbar--success) .icon {\n color: #16a34a;\n }\n\n :host(.kr-snackbar--warning) {\n background-color: #fffbeb;\n border-color: #fde68a;\n border-left-color: #f59e0b;\n }\n\n :host(.kr-snackbar--warning) .icon {\n color: #d97706;\n }\n\n :host(.kr-snackbar--error) {\n background-color: #fef2f2;\n border-color: #fecaca;\n border-left-color: #ef4444;\n }\n\n :host(.kr-snackbar--error) .icon {\n color: #dc2626;\n }\n\n .icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n margin-top: 1px;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n }\n\n .title {\n font-size: 14px;\n font-weight: 600;\n color: #000000;\n margin: 0 0 2px 0;\n }\n\n .message {\n font-size: 14px;\n color: #000000;\n margin: 0;\n }\n\n .dismiss {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n background: none;\n border: none;\n border-radius: 4px;\n color: #6b7280;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n }\n\n .dismiss:hover {\n background-color: rgba(0, 0, 0, 0.05);\n color: #374151;\n }\n\n .dismiss:focus-visible {\n outline: 2px solid #3b82f6;\n outline-offset: 2px;\n }\n `;\n/** Track active snackbars for stacking */\nKRSnackbar.activeSnackbars = [];\n__decorate([\n property({ type: String })\n], KRSnackbar.prototype, \"type\", void 0);\n__decorate([\n property({ type: String })\n], KRSnackbar.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], KRSnackbar.prototype, \"message\", void 0);\n__decorate([\n property({ type: Number })\n], KRSnackbar.prototype, \"duration\", void 0);\nKRSnackbar = KRSnackbar_1 = __decorate([\n customElement('kr-snackbar')\n], KRSnackbar);\nexport { KRSnackbar };\n//# sourceMappingURL=snackbar.js.map","import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-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, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { krBaseCSS } from '../style/base.js';\n/**\n * A tabbed navigation component for switching between content sections.\n *\n * @element kr-tab-group\n *\n * @slot - Default slot for kr-tab children\n *\n * @fires tab-change - Fired when the active tab changes, detail: { activeTabId: string }\n * @fires tab-dismiss - Fired when a dismissible tab is closed, detail: { tabId: string }\n *\n * @example\n * ```html\n * <kr-tab-group active-tab-id=\"settings\">\n * <kr-tab id=\"home\" title=\"Home\">\n * <svg slot=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">...</svg>\n * <p>Home content here</p>\n * </kr-tab>\n * <kr-tab id=\"settings\" title=\"Settings\" badge=\"3\">\n * <svg slot=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">...</svg>\n * <p>Settings content here</p>\n * </kr-tab>\n * </kr-tab-group>\n * ```\n */\nlet KRTabGroup = class KRTabGroup extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Whether tabs should stretch to fill the full width evenly\n */\n this.justified = false;\n /**\n * Size of the tabs: 'small' | 'medium' | 'large'\n */\n this.size = 'medium';\n }\n updated(changes) {\n if (changes.has('activeTabId')) {\n this._updateActiveTab();\n }\n }\n firstUpdated() {\n this._updateActiveTab();\n }\n _getTabs() {\n return Array.from(this.querySelectorAll('kr-tab'));\n }\n _updateActiveTab() {\n const tabs = this._getTabs();\n if (tabs.length === 0)\n return;\n if (!this.activeTabId) {\n this.activeTabId = tabs[0]?.id;\n }\n tabs.forEach((tab) => {\n tab.active = tab.id === this.activeTabId;\n });\n this.requestUpdate();\n }\n _handleTabClick(tab) {\n if (tab.disabled)\n return;\n this.activeTabId = tab.id;\n this.dispatchEvent(new CustomEvent('tab-change', {\n detail: { activeTabId: tab.id },\n bubbles: true,\n composed: true,\n }));\n }\n _handleTabDismiss(tab, e) {\n e.stopPropagation();\n this.dispatchEvent(new CustomEvent('tab-dismiss', {\n detail: { tabId: tab.id },\n bubbles: true,\n composed: true,\n }));\n }\n _handleKeyDown(e) {\n const enabledTabs = this._getTabs().filter((t) => !t.disabled);\n const currentIndex = enabledTabs.findIndex((t) => t.id === this.activeTabId);\n let newIndex = -1;\n switch (e.key) {\n case 'ArrowLeft':\n newIndex = currentIndex > 0 ? currentIndex - 1 : enabledTabs.length - 1;\n break;\n case 'ArrowRight':\n newIndex = currentIndex < enabledTabs.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = enabledTabs.length - 1;\n break;\n }\n if (newIndex >= 0) {\n e.preventDefault();\n const newTab = enabledTabs[newIndex];\n this.activeTabId = newTab.id;\n this.dispatchEvent(new CustomEvent('tab-change', {\n detail: { activeTabId: newTab.id },\n bubbles: true,\n composed: true,\n }));\n const tabButtons = this.shadowRoot?.querySelectorAll('.label');\n const targetButton = Array.from(tabButtons || []).find((btn) => btn.getAttribute('data-tab-id') === newTab.id);\n targetButton?.focus();\n }\n }\n _renderTabIcon(tab) {\n const iconElement = tab.getIconElement();\n if (!iconElement)\n return nothing;\n // Clone the icon element to render in the header\n const clonedIcon = iconElement.cloneNode(true);\n clonedIcon.removeAttribute('slot');\n return html `<span class=\"label-icon\">${clonedIcon}</span>`;\n }\n render() {\n return html `\n <div class=\"header\" role=\"tablist\" @keydown=${this._handleKeyDown}>\n ${this._getTabs().map((tab) => html `\n <button\n class=${classMap({\n label: true,\n 'label--active': tab.id === this.activeTabId,\n 'label--justified': this.justified,\n })}\n role=\"tab\"\n data-tab-id=${tab.id}\n aria-selected=${tab.id === this.activeTabId}\n aria-controls=${`panel-${tab.id}`}\n tabindex=${tab.id === this.activeTabId ? 0 : -1}\n ?disabled=${tab.disabled}\n @click=${() => this._handleTabClick(tab)}\n >\n ${this._renderTabIcon(tab)}\n <span>${tab.title}</span>\n ${tab.badge ? html `<span class=\"label-badge\" style=${styleMap({ backgroundColor: tab.badgeBackground, color: tab.badgeColor })}>${tab.badge}</span>` : nothing}\n ${tab.dismissible\n ? html `\n <button\n class=\"label-dismiss\"\n type=\"button\"\n aria-label=\"Close tab\"\n @click=${(e) => this._handleTabDismiss(tab, e)}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"12\" height=\"12\"><path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\"/></svg>\n </button>\n `\n : nothing}\n </button>\n `)}\n </div>\n <div class=\"content\" role=\"tabpanel\" aria-labelledby=${this.activeTabId || ''}>\n <slot @slotchange=${this._updateActiveTab}></slot>\n </div>\n `;\n }\n};\nKRTabGroup.styles = [\n krBaseCSS,\n css `\n :host {\n display: flex;\n flex-direction: column;\n }\n\n .header {\n height: 44px;\n display: flex;\n flex-shrink: 0;\n align-items: stretch;\n border-bottom: 1px solid #e5e7eb;\n overflow-x: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .header::-webkit-scrollbar {\n display: none;\n }\n\n .label {\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n font-family: inherit;\n font-size: 14px;\n font-weight: 400;\n color: var(--kr-text-muted);\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;\n white-space: nowrap;\n }\n\n .label:hover:not(:disabled) {\n color: var(--kr-text);\n }\n\n .label:focus-visible {\n outline: 2px solid var(--kr-focus);\n outline-offset: -2px;\n }\n\n .label--active {\n color: var(--kr-primary);\n border-bottom-color: var(--kr-primary);\n }\n\n .label:disabled {\n color: var(--kr-text-disabled);\n cursor: not-allowed;\n }\n\n .label--justified {\n flex: 1;\n justify-content: center;\n }\n\n :host([size=\"small\"]) .label {\n padding: 8px 16px;\n font-size: 13px;\n gap: 6px;\n }\n\n :host([size=\"large\"]) .label {\n padding: 16px 20px;\n font-size: 16px;\n gap: 10px;\n }\n\n .label-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .label-badge {\n font-size: 11px;\n font-weight: 500;\n color: var(--kr-primary-text);\n background-color: var(--kr-primary);\n padding: 2px 8px;\n border-radius: 10px;\n margin-left: 4px;\n }\n\n .label-dismiss {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 4px;\n padding: 0;\n background: none;\n border: none;\n border-radius: 2px;\n color: var(--kr-text-muted);\n cursor: pointer;\n transition: background-color 0.15s ease, color 0.15s ease;\n }\n\n .label-dismiss:hover {\n background-color: var(--kr-border);\n color: var(--kr-text);\n }\n\n .label-dismiss:focus-visible {\n outline: 2px solid var(--kr-focus);\n outline-offset: 2px;\n }\n\n\n .content {\n flex: 1;\n overflow: auto;\n }\n\n /* Default slot styles - kr-tab children show/hide via their own active attribute */\n ::slotted(kr-tab) {\n display: none;\n }\n\n ::slotted(kr-tab[active]) {\n display: block;\n }\n `,\n];\n__decorate([\n property({ type: String, attribute: 'active-tab-id' })\n], KRTabGroup.prototype, \"activeTabId\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTabGroup.prototype, \"justified\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], KRTabGroup.prototype, \"size\", void 0);\nKRTabGroup = __decorate([\n customElement('kr-tab-group')\n], KRTabGroup);\nexport { KRTabGroup };\n//# sourceMappingURL=tabs.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';\nimport { krBaseCSS } from '../style/base.js';\n/**\n * A tab for the kr-tab-group component.\n *\n * @element kr-tab\n * @slot - The tab panel content\n * @slot icon - Optional icon to display in the tab header\n */\nlet KRTab = class KRTab extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Unique identifier for the tab\n */\n this.id = '';\n /**\n * Display title for the tab\n */\n this.title = '';\n /**\n * Badge text displayed next to title (e.g. notification count)\n */\n this.badge = '';\n /**\n * Badge background color\n */\n this.badgeBackground = '';\n /**\n * Badge text color\n */\n this.badgeColor = '';\n /**\n * Whether the tab is disabled\n */\n this.disabled = false;\n /**\n * Whether the tab can be dismissed/closed\n */\n this.dismissible = false;\n /**\n * Whether this tab is currently active (set by parent)\n */\n this.active = false;\n }\n /**\n * Gets the icon element from the icon slot (if any)\n */\n getIconElement() {\n return this.querySelector('[slot=\"icon\"]');\n }\n render() {\n return html `<slot></slot>`;\n }\n};\nKRTab.styles = [\n krBaseCSS,\n css `\n :host {\n display: none;\n }\n\n :host([active]) {\n display: block;\n }\n `,\n];\n__decorate([\n property({ type: String, reflect: true })\n], KRTab.prototype, \"id\", void 0);\n__decorate([\n property({ type: String })\n], KRTab.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], KRTab.prototype, \"badge\", void 0);\n__decorate([\n property({ type: String, attribute: 'badge-background' })\n], KRTab.prototype, \"badgeBackground\", void 0);\n__decorate([\n property({ type: String, attribute: 'badge-color' })\n], KRTab.prototype, \"badgeColor\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTab.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTab.prototype, \"dismissible\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], KRTab.prototype, \"active\", void 0);\nKRTab = __decorate([\n customElement('kr-tab')\n], KRTab);\nexport { KRTab };\n//# sourceMappingURL=tab.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 { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { krBaseCSS } from '../style/base.js';\nimport '../button/button.js';\nimport { KRSnackbar } from '../snackbar/snackbar.js';\n// === Solr Utilities ===\nconst SOLR_RESERVED_CHARS = [\n '\"', '+', '-', '&&', '||', '!', '(', ')', '{',\n '}', '[', ']', '^', '~', '*', '?', ':'\n];\nconst SOLR_RESERVED_CHARS_REPLACEMENT = [\n '\\\\\"', '\\\\+', '\\\\-', '\\\\&\\\\&', '\\\\|\\\\|', '\\\\!', '\\\\(', '\\\\)', '\\\\{',\n '\\\\}', '\\\\[', '\\\\]', '\\\\^', '\\\\~', '\\\\*', '\\\\?', '\\\\:'\n];\nfunction escapeSolrQuery(query) {\n let escaped = query;\n for (let i = 0; i < SOLR_RESERVED_CHARS.length; i++) {\n escaped = escaped.split(SOLR_RESERVED_CHARS[i]).join(SOLR_RESERVED_CHARS_REPLACEMENT[i]);\n }\n return escaped;\n}\nlet KRTable = class KRTable extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Internal flag to switch between scroll edge modes:\n * - 'overlay': Fixed padding with overlay elements that hide content at edges (scrollbar at viewport edge)\n * - 'edge': Padding scrolls with content, allowing table to reach edges when scrolling\n */\n this._scrollStyle = 'overlay';\n this._data = [];\n this._dataState = 'idle';\n this._page = 1;\n this._pageSize = 50;\n this._totalItems = 0;\n this._totalPages = 0;\n this._searchQuery = '';\n this._canScrollLeft = false;\n this._canScrollRight = false;\n this._canScrollHorizontal = false;\n this._columnPickerOpen = false;\n this._displayedColumns = [];\n this._resizing = null;\n this._resizeObserver = null;\n this._searchPositionLocked = false;\n this._def = { columns: [] };\n this.def = { columns: [] };\n this._handleClickOutsideColumnPicker = (e) => {\n if (!this._columnPickerOpen)\n return;\n const path = e.composedPath();\n const picker = this.shadowRoot?.querySelector('.column-picker-wrapper');\n if (picker && !path.includes(picker)) {\n this._columnPickerOpen = false;\n }\n };\n this._handleResizeMove = (e) => {\n if (!this._resizing)\n return;\n const col = this._def.columns.find(c => c.id === this._resizing.columnId);\n if (col) {\n const newWidth = this._resizing.startWidth + (e.clientX - this._resizing.startX);\n col.width = `${Math.min(900, Math.max(50, newWidth))}px`;\n this.requestUpdate();\n }\n };\n this._handleResizeEnd = () => {\n this._resizing = null;\n document.removeEventListener('mousemove', this._handleResizeMove);\n document.removeEventListener('mouseup', this._handleResizeEnd);\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.classList.toggle('kr-table--scroll-overlay', this._scrollStyle === 'overlay');\n this.classList.toggle('kr-table--scroll-edge', this._scrollStyle === 'edge');\n this._fetch();\n this._initRefresh();\n document.addEventListener('click', this._handleClickOutsideColumnPicker);\n this._resizeObserver = new ResizeObserver(() => {\n // Unlock and recalculate on resize since layout changes\n this._searchPositionLocked = false;\n this._updateSearchPosition();\n });\n this._resizeObserver.observe(this);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n clearInterval(this._refreshTimer);\n document.removeEventListener('click', this._handleClickOutsideColumnPicker);\n this._resizeObserver?.disconnect();\n }\n willUpdate(changedProperties) {\n if (changedProperties.has('def')) {\n // Copy user's def and normalize action columns\n this._def = {\n ...this.def,\n columns: this.def.columns.map(col => {\n if (col.type === 'actions') {\n return { ...col, label: col.label ?? '', sticky: 'right', resizable: false };\n }\n return { ...col };\n })\n };\n this._displayedColumns = this._def.displayedColumns || this._def.columns.map(c => c.id);\n this._fetch();\n this._initRefresh();\n }\n }\n updated(changedProperties) {\n this._updateScrollFlags();\n this._syncSlottedContent();\n }\n /** Syncs light DOM content for cells with custom render functions */\n _syncSlottedContent() {\n const columns = this.getDisplayedColumns().filter(col => col.render);\n if (!columns.length)\n return;\n // Clear old slotted content\n this.querySelectorAll('[slot^=\"cell-\"]').forEach(el => el.remove());\n // Create new slotted content\n this._data.forEach((row, rowIndex) => {\n columns.forEach(col => {\n const result = col.render(row);\n const content = typeof result === 'string' ? result : '';\n if (content) {\n const el = document.createElement('span');\n el.slot = `cell-${rowIndex}-${col.id}`;\n if (col.type === 'actions') {\n el.style.display = 'flex';\n el.style.gap = '8px';\n }\n el.innerHTML = content;\n this.appendChild(el);\n }\n });\n });\n }\n // ----------------------------------------------------------------------------\n // Public Interface\n // ----------------------------------------------------------------------------\n refresh() {\n this._fetch();\n }\n goToPrevPage() {\n if (this._page > 1) {\n this._page--;\n this._fetch();\n }\n }\n goToNextPage() {\n if (this._page < this._totalPages) {\n this._page++;\n this._fetch();\n }\n }\n goToPage(page) {\n if (page >= 1 && page <= this._totalPages) {\n this._page = page;\n this._fetch();\n }\n }\n // ----------------------------------------------------------------------------\n // Data Fetching\n // ----------------------------------------------------------------------------\n /**\n * Fetches data from the API and updates the table.\n * Shows a loading spinner while fetching, then displays rows on success\n * or an error snackbar on failure.\n * Request/response format depends on dataSource.mode (solr, opensearch, db).\n */\n _fetch() {\n if (!this._def.dataSource)\n return;\n this._dataState = 'loading';\n // Build request based on mode\n let request;\n switch (this._def.dataSource.mode) {\n case 'opensearch':\n throw Error('Opensearch not supported yet');\n case 'db':\n request = {\n page: this._page - 1,\n size: this._pageSize,\n sorts: [],\n filterFields: [],\n queryFields: [],\n facetFields: []\n };\n if (this._searchQuery?.trim().length) {\n this._def.columns.filter(col => col.searchable).forEach(col => {\n request.queryFields.push({\n name: col.id,\n operation: 'CONTAINS',\n value: this._searchQuery,\n and: false\n });\n });\n }\n break;\n default: // solr\n request = {\n page: this._page - 1,\n size: this._pageSize,\n sorts: [],\n filterFields: [],\n queryFields: [],\n facetFields: []\n };\n if (this._searchQuery?.trim().length) {\n request.queryFields.push({\n name: '_text_',\n operation: 'IS',\n value: escapeSolrQuery(this._searchQuery)\n });\n }\n }\n this._def.dataSource.fetch(request)\n .then(response => {\n // Parse response based on mode\n switch (this._def.dataSource?.mode) {\n case 'opensearch': {\n throw Error('Opensearch not supported yet');\n break;\n }\n case 'db': {\n const res = response;\n this._data = res.data.content;\n this._totalItems = res.data.totalElements;\n this._totalPages = res.data.totalPages;\n this._pageSize = res.data.size;\n break;\n }\n default: { // solr\n const res = response;\n this._data = res.data.content;\n this._totalItems = res.data.totalElements;\n this._totalPages = res.data.totalPages;\n this._pageSize = res.data.size;\n }\n }\n this._dataState = 'success';\n this._updateSearchPosition();\n })\n .catch(err => {\n this._dataState = 'error';\n KRSnackbar.show({\n message: err instanceof Error ? err.message : 'Failed to load data',\n type: 'error'\n });\n });\n }\n /**\n * Sets up auto-refresh so the table automatically fetches fresh data\n * at a regular interval (useful for dashboards, monitoring views).\n * Configured via def.refreshInterval in milliseconds.\n */\n _initRefresh() {\n clearInterval(this._refreshTimer);\n if (this._def.refreshInterval && this._def.refreshInterval > 0) {\n this._refreshTimer = window.setInterval(() => {\n this._fetch();\n }, this._def.refreshInterval);\n }\n }\n _handleSearch(e) {\n const input = e.target;\n this._searchQuery = input.value;\n this._page = 1;\n this._fetch();\n }\n _getGridTemplateColumns() {\n const cols = this.getDisplayedColumns();\n return cols.map((col) => {\n // If column has explicit width, use it\n if (col.width) {\n return col.width;\n }\n // Actions columns: fit content without minimum\n if (col.type === 'actions') {\n return 'max-content';\n }\n // No width specified - use content-based sizing with minimum\n return 'minmax(80px, auto)';\n }).join(' ');\n }\n /**\n * Updates search position to be centered with equal gaps from title and tools.\n * On first call: resets to flex centering, measures position, then locks with fixed margin.\n * Subsequent calls are ignored unless _searchPositionLocked is reset (e.g., on resize).\n */\n _updateSearchPosition() {\n // Skip if already locked (prevents shifts on pagination changes)\n if (this._searchPositionLocked)\n return;\n const search = this.shadowRoot?.querySelector('.search');\n const searchField = search?.querySelector('.search-field');\n if (!search || !searchField)\n return;\n // Reset to flex centering\n search.style.justifyContent = 'center';\n searchField.style.marginLeft = '';\n requestAnimationFrame(() => {\n const searchRect = search.getBoundingClientRect();\n const fieldRect = searchField.getBoundingClientRect();\n // Calculate how far from the left of search container the field currently is\n const currentOffset = fieldRect.left - searchRect.left;\n // Lock position: switch to flex-start and use fixed margin\n search.style.justifyContent = 'flex-start';\n searchField.style.marginLeft = `${currentOffset}px`;\n // Mark as locked so pagination changes don't shift the search\n this._searchPositionLocked = true;\n });\n }\n // ----------------------------------------------------------------------------\n // Columns\n // ----------------------------------------------------------------------------\n _toggleColumnPicker() {\n this._columnPickerOpen = !this._columnPickerOpen;\n }\n _toggleColumn(columnId) {\n if (this._displayedColumns.includes(columnId)) {\n this._displayedColumns = this._displayedColumns.filter(id => id !== columnId);\n }\n else {\n this._displayedColumns = [...this._displayedColumns, columnId];\n }\n }\n // When a user toggles a column on via the column picker, it gets appended\n // to _displayedColumns. By mapping over _displayedColumns (not def.columns),\n // the new column appears at the right edge of the table instead of jumping\n // back to its original position in the column definition.\n // Actions columns are always moved to the end.\n getDisplayedColumns() {\n return this._displayedColumns\n .map(id => this._def.columns.find(col => col.id === id))\n .sort((a, b) => {\n if (a.type === 'actions' && b.type !== 'actions')\n return 1;\n if (a.type !== 'actions' && b.type === 'actions')\n return -1;\n return 0;\n });\n }\n // ----------------------------------------------------------------------------\n // Scrolling\n // ----------------------------------------------------------------------------\n /**\n * Scroll event handler that updates scroll flags in real-time as user scrolls.\n * Updates shadow indicators to show if more content exists left/right.\n */\n _handleScroll(e) {\n const container = e.target;\n this._canScrollLeft = container.scrollLeft > 0;\n this._canScrollRight = container.scrollLeft < container.scrollWidth - container.clientWidth - 1;\n }\n /**\n * Updates scroll state flags for the table content container.\n * - _canScrollLeft: true if scrolled right (can scroll back left)\n * - _canScrollRight: true if more content exists to the right\n * - _canScrollHorizontal: true if content is wider than container\n * These flags control scroll shadow indicators and CSS classes.\n */\n _updateScrollFlags() {\n const container = this.shadowRoot?.querySelector('.content');\n if (container) {\n this._canScrollLeft = container.scrollLeft > 0;\n this._canScrollRight = container.scrollWidth > container.clientWidth && container.scrollLeft < container.scrollWidth - container.clientWidth - 1;\n this._canScrollHorizontal = container.scrollWidth > container.clientWidth;\n }\n this.classList.toggle('kr-table--scroll-left-available', this._canScrollLeft);\n this.classList.toggle('kr-table--scroll-right-available', this._canScrollRight);\n this.classList.toggle('kr-table--scroll-horizontal-available', this._canScrollHorizontal);\n this.classList.toggle('kr-table--sticky-left', this.getDisplayedColumns().some(c => c.sticky === 'left'));\n this.classList.toggle('kr-table--sticky-right', this.getDisplayedColumns().some(c => c.sticky === 'right'));\n }\n // ----------------------------------------------------------------------------\n // Column Resizing\n // ----------------------------------------------------------------------------\n _handleResizeStart(e, columnId) {\n e.preventDefault();\n const headerCell = this.shadowRoot?.querySelector(`.header-cell[data-column-id=\"${columnId}\"]`);\n this._resizing = {\n columnId,\n startX: e.clientX,\n startWidth: headerCell?.offsetWidth || 200\n };\n document.addEventListener('mousemove', this._handleResizeMove);\n document.addEventListener('mouseup', this._handleResizeEnd);\n }\n // ----------------------------------------------------------------------------\n // Header\n // ----------------------------------------------------------------------------\n _handleAction(action) {\n if (action.href) {\n return;\n }\n this.dispatchEvent(new CustomEvent('action', {\n detail: { action: action.id },\n bubbles: true,\n composed: true\n }));\n }\n // ----------------------------------------------------------------------------\n // Rendering\n // ----------------------------------------------------------------------------\n _renderCellContent(column, row, rowIndex) {\n const value = row[column.id];\n if (column.render) {\n // Use slot to project content from light DOM so external styles apply\n return html `<slot name=\"cell-${rowIndex}-${column.id}\"></slot>`;\n }\n if (value === null || value === undefined) {\n return '';\n }\n switch (column.type) {\n case 'number':\n return typeof value === 'number' ? value.toLocaleString() : String(value);\n case 'currency':\n return typeof value === 'number'\n ? value.toLocaleString('en-US', { style: 'currency', currency: 'USD' })\n : String(value);\n case 'date': {\n let date;\n if (value instanceof Date) {\n date = value;\n }\n else if (typeof value === 'string' && /^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}/.test(value)) {\n // MySQL datetime format (UTC): \"2026-01-28 01:33:44:517\"\n // Replace last colon before ms with dot, append Z for UTC\n const isoString = value.replace(/(\\d{2}:\\d{2}:\\d{2}):(\\d+)$/, '$1.$2').replace(' ', 'T') + 'Z';\n date = new Date(isoString);\n }\n else {\n date = new Date(value);\n }\n // Show date and time for datetime values\n return date.toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: 'numeric', minute: '2-digit'\n });\n }\n case 'boolean':\n if (value === true)\n return 'Yes';\n if (value === false)\n return 'No';\n return '';\n default:\n return String(value);\n }\n }\n /**\n * Returns CSS classes for a header cell based on column config.\n */\n _getHeaderCellClasses(column, index) {\n return {\n 'header-cell': true,\n 'header-cell--align-center': column.align === 'center',\n 'header-cell--align-right': column.align === 'right',\n 'header-cell--sticky-left': column.sticky === 'left',\n 'header-cell--sticky-left-last': column.sticky === 'left' &&\n !this.getDisplayedColumns().slice(index + 1).some(c => c.sticky === 'left'),\n 'header-cell--sticky-right': column.sticky === 'right',\n 'header-cell--sticky-right-first': column.sticky === 'right' &&\n !this.getDisplayedColumns().slice(0, index).some(c => c.sticky === 'right')\n };\n }\n /**\n * Returns CSS classes for a table cell based on column config:\n * - Alignment (center, right)\n * - Sticky positioning (left, right)\n * - Border classes for the last left-sticky or first right-sticky column\n */\n _getCellClasses(column, index) {\n return {\n 'cell': true,\n 'cell--actions': column.type === 'actions',\n 'cell--align-center': column.align === 'center',\n 'cell--align-right': column.align === 'right',\n 'cell--sticky-left': column.sticky === 'left',\n 'cell--sticky-left-last': column.sticky === 'left' &&\n !this.getDisplayedColumns().slice(index + 1).some(c => c.sticky === 'left'),\n 'cell--sticky-right': column.sticky === 'right',\n 'cell--sticky-right-first': column.sticky === 'right' &&\n !this.getDisplayedColumns().slice(0, index).some(c => c.sticky === 'right')\n };\n }\n /**\n * Returns inline styles for a table cell:\n * - Width (from column config or default 150px)\n * - Min-width (if specified)\n * - Left/right offset for sticky columns (calculated from widths of preceding sticky columns)\n */\n _getCellStyle(column, index) {\n const styles = {};\n if (column.sticky === 'left') {\n let leftOffset = 0;\n for (let i = 0; i < index; i++) {\n const col = this.getDisplayedColumns()[i];\n if (col.sticky === 'left') {\n leftOffset += parseInt(col.width || '0', 10);\n }\n }\n styles.left = `${leftOffset}px`;\n }\n if (column.sticky === 'right') {\n let rightOffset = 0;\n for (let i = index + 1; i < this.getDisplayedColumns().length; i++) {\n const col = this.getDisplayedColumns()[i];\n if (col.sticky === 'right') {\n rightOffset += parseInt(col.width || '0', 10);\n }\n }\n styles.right = `${rightOffset}px`;\n }\n return styles;\n }\n /**\n * Renders the pagination controls:\n * - Previous page arrow (disabled on first page)\n * - Range text showing \"1-50 of 150\" format\n * - Next page arrow (disabled on last page)\n *\n * Hidden when there's no data or all data fits on one page.\n */\n _renderPagination() {\n const start = (this._page - 1) * this._pageSize + 1;\n const end = Math.min(this._page * this._pageSize, this._totalItems);\n return html `\n <div class=\"pagination\">\n <span\n class=\"pagination-icon ${this._page === 1 ? 'pagination-icon--disabled' : ''}\"\n @click=${this.goToPrevPage}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"/></svg>\n </span>\n <span class=\"pagination-info\">${start}-${end} of ${this._totalItems}</span>\n <span\n class=\"pagination-icon ${this._page === this._totalPages ? 'pagination-icon--disabled' : ''}\"\n @click=${this.goToNextPage}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n </span>\n </div>\n `;\n }\n /**\n * Renders the header toolbar containing:\n * - Title (left)\n * - Search bar with view selector dropdown (center)\n * - Tools (right): page navigation, refresh button, column visibility picker, actions dropdown\n *\n * Hidden when there's no title, no actions, and data fits on one page.\n */\n _renderHeader() {\n if (!this._def.title && !this._def.actions?.length && this._totalPages <= 1) {\n return nothing;\n }\n return html `\n <div class=\"header\">\n <div class=\"title\">${this._def.title ?? ''}</div>\n ${this._def.dataSource?.mode === 'db' && !this._def.columns.some(col => col.searchable) ? html `<div class=\"search\"></div>` : html `\n <div class=\"search\">\n <!-- TODO: Saved views dropdown\n <div class=\"views\">\n <span>Default View</span>\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>\n </div>\n -->\n <div class=\"search-field\">\n <svg class=\"search-icon\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\"/></svg>\n <input\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Search...\"\n .value=${this._searchQuery}\n @input=${this._handleSearch}\n />\n </div>\n </div>\n `}\n <div class=\"tools\">\n ${this._renderPagination()}\n <span class=\"refresh\" title=\"Refresh\" @click=${() => this.refresh()}>\n <svg viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z\"/></svg>\n </span>\n <div class=\"column-picker-wrapper\">\n <span class=\"header-icon\" title=\"Columns\" @click=${this._toggleColumnPicker}>\n <svg viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M121-280v-400q0-33 23.5-56.5T201-760h559q33 0 56.5 23.5T840-680v400q0 33-23.5 56.5T760-200H201q-33 0-56.5-23.5T121-280Zm79 0h133v-400H200v400Zm213 0h133v-400H413v400Zm213 0h133v-400H626v400Z\"/></svg>\n </span>\n <div class=\"column-picker ${this._columnPickerOpen ? 'open' : ''}\">\n ${[...this._def.columns].filter(col => col.type !== 'actions').sort((a, b) => (a.label ?? a.id).localeCompare(b.label ?? b.id)).map(col => html `\n <div class=\"column-picker-item\" @click=${() => this._toggleColumn(col.id)}>\n <div class=\"column-picker-checkbox ${this._displayedColumns.includes(col.id) ? 'checked' : ''}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/></svg>\n </div>\n <span class=\"column-picker-label\">${col.label ?? col.id}</span>\n </div>\n `)}\n </div>\n </div>\n ${this._def.actions?.length === 1 ? html `\n <kr-button\n class=\"actions\"\n .href=${this._def.actions[0].href}\n .target=${this._def.actions[0].target}\n @click=${() => this._handleAction(this._def.actions[0])}\n >\n ${this._def.actions[0].label}\n </kr-button>\n ` : this._def.actions?.length ? html `\n <kr-button\n class=\"actions\"\n .options=${this._def.actions.map(a => ({ id: a.id, label: a.label }))}\n @option-select=${(e) => this._handleAction({ id: e.detail.id, label: e.detail.label })}\n >\n Actions\n </kr-button>\n ` : nothing}\n </div>\n </div>\n `;\n }\n /** Renders status message (loading, error, empty) */\n _renderStatus() {\n if (this._dataState === 'loading' && this._data.length === 0) {\n return html `<div class=\"status\">Loading...</div>`;\n }\n if (this._dataState === 'error' && this._data.length === 0) {\n return html `<div class=\"status status--error\">Error loading data</div>`;\n }\n if (this._data.length === 0) {\n return html `<div class=\"status\">No data available</div>`;\n }\n return nothing;\n }\n /** Renders the scrollable data grid with column headers and rows. */\n _renderTable() {\n return html `\n <div class=\"wrapper\">\n <div class=\"overlay-left\"></div>\n <div class=\"overlay-right\"></div>\n ${this._renderStatus()}\n <div class=\"content\" @scroll=${this._handleScroll}>\n <div class=\"table\" style=\"grid-template-columns: ${this._getGridTemplateColumns()}\">\n <div class=\"header-row\">\n ${this.getDisplayedColumns().map((col, i) => html `\n <div\n class=${classMap(this._getHeaderCellClasses(col, i))}\n style=${styleMap(this._getCellStyle(col, i))}\n data-column-id=${col.id}\n >${col.label ?? col.id}${col.resizable !== false ? html `<div\n class=\"header-cell__resize\"\n @mousedown=${(e) => this._handleResizeStart(e, col.id)}\n ></div>` : nothing}</div>\n `)}\n </div>\n ${this._data.map((row, rowIndex) => html `\n <div class=\"row\">\n ${this.getDisplayedColumns().map((col, i) => html `\n <div\n class=${classMap(this._getCellClasses(col, i))}\n style=${styleMap(this._getCellStyle(col, i))}\n data-column-id=${col.id}\n >\n ${this._renderCellContent(col, row, rowIndex)}\n </div>\n `)}\n </div>\n `)}\n </div>\n </div>\n </div>\n `;\n }\n /**\n * Renders a data table with:\n * - Header bar with title, search input with view selector, and tools (pagination, refresh, column visibility, actions dropdown)\n * - Scrollable grid with sticky header row and optional sticky left/right columns\n * - Loading, error message, or empty state when no data\n */\n render() {\n if (!this._def.columns.length) {\n return html `<slot></slot>`;\n }\n return html `\n ${this._renderHeader()}\n ${this._renderTable()}\n `;\n }\n};\nKRTable.styles = [krBaseCSS, css `\n /* -------------------------------------------------------------------------\n * Host\n * ----------------------------------------------------------------------- */\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n container-type: inline-size;\n }\n\n /* -------------------------------------------------------------------------\n * Header\n * ----------------------------------------------------------------------- */\n .header {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 16px;\n margin: 0 24px;\n padding: 0 4px;\n height: 64px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n }\n\n :host(.kr-table--scroll-edge) .header {\n border-bottom: none;\n }\n\n .title {\n font-size: 18px;\n font-weight: 600;\n color: #000;\n }\n\n /* -------------------------------------------------------------------------\n * Content\n * ----------------------------------------------------------------------- */\n .wrapper {\n flex: 1;\n position: relative;\n overflow: hidden;\n }\n\n .content {\n height: 100%;\n overflow: auto;\n padding-bottom: 24px;\n }\n\n /* -------------------------------------------------------------------------\n * Search\n * ----------------------------------------------------------------------- */\n .search {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n }\n\n .search-field {\n width: 100%;\n max-width: 400px;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid #00000038;\n border-radius: 18px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-field:focus-within {\n border-color: #163052;\n box-shadow: 0 0 0 3px rgba(22, 48, 82, 0.1);\n }\n\n /* TODO: Uncomment when views dropdown is added\n .search-field:focus-within .views {\n border-color: #163052;\n }\n */\n\n .search-icon {\n position: absolute;\n left: 16px;\n width: 20px;\n height: 20px;\n color: #656871;\n pointer-events: none;\n }\n\n .search-input {\n height: 36px;\n padding: 0 16px 0 42px;\n border: none;\n border-radius: 16px;\n font-size: 14px;\n font-weight: 400;\n font-family: inherit;\n color: #163052;\n background: transparent;\n outline: none;\n flex: 1;\n min-width: 0;\n width: 100%;\n }\n\n .search-input::placeholder {\n color: #656871;\n font-weight: 400;\n }\n\n .search-input:focus {\n outline: none;\n }\n\n @container (max-width: 800px) {\n .search-field {\n max-width: 250px;\n }\n }\n\n .views {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 36px;\n padding: 0 16px;\n border: 1px solid #00000038;\n border-right: none;\n border-radius: 16px 0 0 16px;\n font-size: 14px;\n font-family: inherit;\n color: #163052;\n background: transparent;\n cursor: pointer;\n white-space: nowrap;\n transition: border-color 0.2s;\n }\n\n .views:hover {\n background: #e8f0f8;\n }\n\n .views svg {\n width: 16px;\n height: 16px;\n color: #163052;\n }\n\n /* -------------------------------------------------------------------------\n * Pagination\n * ----------------------------------------------------------------------- */\n .tools {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .pagination {\n display: flex;\n align-items: center;\n gap: 2px;\n }\n\n .pagination-info {\n font-size: 13px;\n color: var(--kr-primary);\n white-space: nowrap;\n }\n\n .pagination-icon {\n display: flex;\n color: var(--kr-primary);\n cursor: pointer;\n }\n\n .pagination-icon--disabled {\n opacity: 0.3;\n pointer-events: none;\n }\n\n .pagination-icon svg {\n width: 24px;\n height: 24px;\n }\n\n /* -------------------------------------------------------------------------\n * Header Icons\n * ----------------------------------------------------------------------- */\n .refresh,\n .header-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--kr-primary);\n background: #EBF1FA;\n cursor: pointer;\n padding: 6px;\n border-radius: 50%;\n transition: background 0.15s;\n }\n\n .refresh:hover,\n .header-icon:hover {\n background: #e8f0f8;\n }\n\n .refresh svg,\n .header-icon svg {\n width: 24px;\n height: 24px;\n }\n\n /* -------------------------------------------------------------------------\n * Column Picker\n * ----------------------------------------------------------------------- */\n .column-picker-wrapper {\n position: relative;\n }\n\n .column-picker {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 200px;\n max-height: calc(100vh - 120px);\n overflow-y: auto;\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 padding: 8px 0;\n z-index: 100;\n display: none;\n transform-origin: top;\n }\n\n .column-picker.open {\n display: block;\n animation: column-picker-fade-in 150ms ease-out;\n }\n\n @keyframes column-picker-fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .column-picker-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .column-picker-item:hover {\n background: #f3f4f6;\n }\n\n .column-picker-checkbox {\n width: 16px;\n height: 16px;\n border: 1.5px solid #9ca3af;\n border-radius: 3px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .column-picker-checkbox.checked {\n background: var(--kr-primary);\n border-color: var(--kr-primary);\n }\n\n .column-picker-checkbox svg {\n width: 12px;\n height: 12px;\n color: white;\n opacity: 0;\n }\n\n .column-picker-checkbox.checked svg {\n opacity: 1;\n }\n\n .column-picker-label {\n font-size: 14px;\n color: #374151;\n }\n\n /* -------------------------------------------------------------------------\n * Table Structure\n * ----------------------------------------------------------------------- */\n .table {\n display: grid;\n width: max-content;\n min-width: 100%;\n font-size: 14px;\n }\n\n .row {\n display: contents;\n }\n\n .row:hover .cell {\n background: #f9fafb;\n }\n\n .header-row {\n display: contents;\n }\n\n .cell {\n height: 48px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n box-sizing: border-box;\n }\n\n .cell--actions {\n gap: 8px;\n }\n\n .header-cell {\n position: sticky;\n top: 0;\n z-index: 2;\n height: 48px;\n line-height: 48px;\n padding: 0 16px;\n white-space: nowrap;\n box-sizing: border-box;\n background: #f9fafb;\n border-bottom: 2px solid #e5e7eb;\n font-weight: 600;\n color: #374151;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .header-cell__resize {\n position: absolute;\n right: -7px;\n top: 0;\n bottom: 0;\n width: 14px;\n cursor: col-resize;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n }\n\n .header-cell__resize::after {\n content: '';\n width: 2px;\n height: 20px;\n background: #c6c6cd;\n }\n\n .header-cell:last-child .header-cell__resize::after {\n display: none;\n }\n\n .cell {\n background: #fff;\n border-bottom: 1px solid #e5e7eb;\n color: #1f2937;\n }\n\n .cell--align-center {\n text-align: center;\n }\n\n .cell--align-right {\n text-align: right;\n }\n\n .cell--sticky-left,\n .cell--sticky-right {\n position: sticky;\n z-index: 1;\n }\n\n .header-cell--sticky-left,\n .header-cell--sticky-right {\n position: sticky;\n z-index: 3;\n }\n\n .header-cell--align-center {\n text-align: center;\n }\n\n .header-cell--align-right {\n text-align: right;\n }\n\n .header-cell--sticky-left-last,\n .cell--sticky-left-last {\n border-right: 1px solid #d1d5db;\n }\n\n .header-cell--sticky-right-first,\n .cell--sticky-right-first {\n border-left: 1px solid #d1d5db;\n }\n\n /* -------------------------------------------------------------------------\n * Scroll Mode: Edge\n * Padding scrolls with content, table can reach edges when scrolling\n * ----------------------------------------------------------------------- */\n :host(.kr-table--scroll-edge) .table {\n padding-left: 24px;\n }\n\n /* Only add right padding when no horizontal scroll is needed */\n :host(.kr-table--scroll-edge):not(.kr-table--scroll-horizontal-available) .table {\n padding-right: 24px;\n }\n\n :host(.kr-table--scroll-edge) .header-row .header-cell {\n border-top: 1px solid #e5e7eb;\n }\n\n /* -------------------------------------------------------------------------\n * Scroll Mode: Overlay\n * Fixed padding with overlay elements that hide content at edges\n * ----------------------------------------------------------------------- */\n :host(.kr-table--scroll-overlay) .content {\n padding-left: 24px;\n padding-right: 24px;\n }\n\n .overlay-left,\n .overlay-right {\n display: none;\n position: absolute;\n top: 0;\n bottom: 0;\n width: 24px;\n z-index: 5;\n pointer-events: none;\n transition: box-shadow 0.15s ease;\n }\n\n :host(.kr-table--scroll-overlay) .overlay-left,\n :host(.kr-table--scroll-overlay) .overlay-right {\n display: block;\n }\n\n .overlay-left {\n left: 0;\n background: #fff;\n }\n\n .overlay-right {\n right: 0;\n background: #fff;\n }\n\n :host(.kr-table--scroll-overlay.kr-table--scroll-left-available:not(.kr-table--sticky-left)) .overlay-left {\n border-right: 1px solid #d1d5db54;\n }\n\n :host(.kr-table--scroll-overlay.kr-table--scroll-right-available:not(.kr-table--sticky-right)) .overlay-right {\n border-left: 1px solid #d1d5db54;\n }\n\n /* -------------------------------------------------------------------------\n * Status (Loading, Error, Empty)\n * ----------------------------------------------------------------------- */\n .status {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 400;\n color: #5f6368;\n pointer-events: none;\n }\n\n .status--error {\n color: #dc2626;\n }\n `];\n__decorate([\n state()\n], KRTable.prototype, \"_data\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_dataState\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_page\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_pageSize\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_totalItems\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_totalPages\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_searchQuery\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_canScrollLeft\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_canScrollRight\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_canScrollHorizontal\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_columnPickerOpen\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_displayedColumns\", void 0);\n__decorate([\n property({ type: Object })\n], KRTable.prototype, \"def\", void 0);\nKRTable = __decorate([\n customElement('kr-table')\n], KRTable);\nexport { KRTable };\n//# sourceMappingURL=table.js.map","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","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 r,nothing as e}from\"../lit-html.js\";import{directive as i,Directive as t,PartType as n}from\"../directive.js\";import{isSingleExpression as o,setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=i(class extends t{constructor(r){if(super(r),r.type!==n.PROPERTY&&r.type!==n.ATTRIBUTE&&r.type!==n.BOOLEAN_ATTRIBUTE)throw Error(\"The `live` directive is not allowed on child or event bindings\");if(!o(r))throw Error(\"`live` bindings can only contain a single expression\")}render(r){return r}update(i,[t]){if(t===r||t===e)return t;const o=i.element,l=i.name;if(i.type===n.PROPERTY){if(t===o[l])return r}else if(i.type===n.BOOLEAN_ATTRIBUTE){if(!!t===o.hasAttribute(l))return r}else if(i.type===n.ATTRIBUTE&&o.getAttribute(l)===t+\"\")return r;return s(i),t}});export{l as live};\n//# sourceMappingURL=live.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, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n/**\n * A text field component that works with native browser forms.\n *\n * Uses ElementInternals for form association, allowing the component\n * to participate in form submission, validation, and reset.\n *\n * Native input and change events bubble up from the inner input element.\n */\nlet KRTextField = class KRTextField extends LitElement {\n constructor() {\n super();\n /**\n * The input label text\n */\n this.label = '';\n /**\n * The input name for form submission\n */\n this.name = '';\n /**\n * The current value\n */\n this.value = '';\n /**\n * Placeholder text\n */\n this.placeholder = '';\n /**\n * Input type (text, email, password, tel, url, search)\n */\n this.type = 'text';\n /**\n * Whether the field is required\n */\n this.required = false;\n /**\n * Whether the field is disabled\n */\n this.disabled = false;\n /**\n * Whether the field is readonly\n */\n this.readonly = false;\n /**\n * Autocomplete attribute value\n */\n this.autocomplete = '';\n /**\n * Helper text shown below the input\n */\n this.hint = '';\n this._touched = false;\n this._dirty = false;\n this._handleInvalid = (e) => {\n e.preventDefault();\n this._touched = true;\n };\n this._internals = this.attachInternals();\n }\n // Form-associated custom element callbacks\n get form() {\n return this._internals.form;\n }\n get validity() {\n return this._internals.validity;\n }\n get validationMessage() {\n return this._internals.validationMessage;\n }\n get willValidate() {\n return this._internals.willValidate;\n }\n checkValidity() {\n return this._internals.checkValidity();\n }\n reportValidity() {\n return this._internals.reportValidity();\n }\n formResetCallback() {\n this.value = '';\n this._touched = false;\n this._dirty = false;\n this._internals.setFormValue('');\n this._internals.setValidity({});\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('invalid', this._handleInvalid);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('invalid', this._handleInvalid);\n }\n firstUpdated() {\n this._updateValidity();\n }\n updated(changedProperties) {\n if (changedProperties.has('required') || changedProperties.has('value')) {\n this._updateValidity();\n }\n }\n _updateValidity() {\n if (this._input) {\n this._internals.setValidity(this._input.validity, this._input.validationMessage);\n }\n }\n _handleInput(e) {\n this.value = e.target.value;\n this._dirty = true;\n this._internals.setFormValue(this.value);\n this._internals.setValidity(this._input.validity, this._input.validationMessage);\n }\n _handleChange(e) {\n this.value = e.target.value;\n this._internals.setFormValue(this.value);\n }\n _handleBlur() {\n this._touched = true;\n this._internals.setValidity(this._input.validity, this._input.validationMessage);\n }\n render() {\n let validationMessage = '';\n if (this._touched && this._input && !this._input.validity.valid) {\n validationMessage = this._input.validationMessage;\n }\n return html `\n <div class=\"wrapper\">\n ${this.label\n ? html `\n <label for=\"input\">\n ${this.label}\n ${this.required ? html `<span class=\"required\" aria-hidden=\"true\">*</span>` : ''}\n </label>\n `\n : ''}\n <input\n id=\"input\"\n class=${classMap({\n 'input--invalid': this._touched && this._input && !this._input.validity.valid\n })}\n type=${this.type}\n name=${this.name}\n .value=${live(this.value)}\n placeholder=${this.placeholder}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n pattern=${ifDefined(this.pattern)}\n autocomplete=${ifDefined(this.autocomplete || undefined)}\n @input=${this._handleInput}\n @change=${this._handleChange}\n @blur=${this._handleBlur}\n />\n ${validationMessage\n ? html `<div class=\"validation-message\">${validationMessage}</div>`\n : this.hint\n ? html `<div class=\"hint\">${this.hint}</div>`\n : ''}\n </div>\n `;\n }\n // Public methods for programmatic control\n focus() {\n this._input?.focus();\n }\n blur() {\n this._input?.blur();\n }\n select() {\n this._input?.select();\n }\n};\nKRTextField.styles = css `\n :host {\n display: block;\n font-family: inherit;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n label {\n font-size: 13px;\n font-weight: 500;\n color: var(--kr-text-field-label-color, #374151);\n }\n\n .required {\n color: var(--kr-text-field-required-color, #ef4444);\n margin-left: 0.125rem;\n }\n\n input {\n font-family: inherit;\n font-size: 14px;\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--kr-text-field-border-color, #d1d5db);\n border-radius: 4px;\n background-color: var(--kr-text-field-bg, #fff);\n color: var(--kr-text-field-color, #111827);\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n input:focus {\n outline: none;\n border-color: var(--kr-text-field-focus-border-color, #163052);\n box-shadow: 0 0 0 3px var(--kr-text-field-focus-ring-color, rgba(22, 48, 82, 0.1));\n }\n\n input:disabled {\n background-color: var(--kr-text-field-disabled-bg, #f3f4f6);\n color: var(--kr-text-field-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n input::placeholder {\n color: var(--kr-text-field-placeholder-color, #9ca3af);\n }\n\n input.input--invalid {\n border-color: var(--kr-text-field-error-border-color, #ef4444);\n }\n\n input.input--invalid:focus {\n box-shadow: 0 0 0 3px var(--kr-text-field-error-ring-color, rgba(239, 68, 68, 0.1));\n }\n\n .validation-message {\n font-size: 0.75rem;\n color: var(--kr-text-field-error-color, #ef4444);\n }\n\n .hint {\n font-size: 0.75rem;\n color: var(--kr-text-field-helper-color, #6b7280);\n }\n `;\n// Enable form association\nKRTextField.formAssociated = true;\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"name\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"value\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"type\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextField.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextField.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextField.prototype, \"readonly\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextField.prototype, \"minlength\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextField.prototype, \"maxlength\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"pattern\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"autocomplete\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"hint\", void 0);\n__decorate([\n query('input')\n], KRTextField.prototype, \"_input\", void 0);\n__decorate([\n state()\n], KRTextField.prototype, \"_touched\", void 0);\n__decorate([\n state()\n], KRTextField.prototype, \"_dirty\", void 0);\nKRTextField = __decorate([\n customElement('kr-text-field')\n], KRTextField);\nexport { KRTextField };\n//# sourceMappingURL=text-field.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, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * A select dropdown component that works with native browser forms.\n *\n * Uses ElementInternals for form association, allowing the component\n * to participate in form submission, validation, and reset.\n *\n * @element kr-select-field\n * @slot - The kr-select-option elements\n */\nlet KRSelectField = class KRSelectField extends LitElement {\n constructor() {\n super();\n /**\n * The select label text\n */\n this.label = '';\n /**\n * The input name for form submission\n */\n this.name = '';\n /**\n * The currently selected value\n */\n this.value = '';\n /**\n * Placeholder text when no option is selected\n */\n this.placeholder = 'Select an option';\n /**\n * Whether the select is disabled\n */\n this.disabled = false;\n /**\n * Whether the field is required\n */\n this.required = false;\n /**\n * Whether the field is readonly\n */\n this.readonly = false;\n /**\n * Helper text shown below the select\n */\n this.hint = '';\n this._isOpen = false;\n this._highlightedIndex = -1;\n this._touched = false;\n this._handleInvalid = (e) => {\n e.preventDefault();\n this._touched = true;\n };\n this._handleOutsideClick = (e) => {\n if (!e.composedPath().includes(this)) {\n this._close();\n }\n };\n this._handleKeyDown = (e) => {\n if (!this._isOpen)\n return;\n const options = Array.from(this.querySelectorAll('kr-select-option'));\n switch (e.key) {\n case 'Escape':\n this._close();\n this._triggerElement?.focus();\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (options.some(o => !o.disabled)) {\n let newIndex = this._highlightedIndex + 1;\n while (newIndex < options.length && options[newIndex]?.disabled)\n newIndex++;\n if (newIndex < options.length)\n this._highlightedIndex = newIndex;\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n {\n let newIndex = this._highlightedIndex - 1;\n while (newIndex >= 0 && options[newIndex]?.disabled)\n newIndex--;\n if (newIndex >= 0)\n this._highlightedIndex = newIndex;\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (this._highlightedIndex >= 0 && this._highlightedIndex < options.length) {\n this._selectOption(options[this._highlightedIndex]);\n }\n break;\n }\n };\n this._internals = this.attachInternals();\n }\n // Form-associated custom element callbacks\n get form() {\n return this._internals.form;\n }\n get validity() {\n return this._internals.validity;\n }\n get validationMessage() {\n return this._internals.validationMessage;\n }\n get willValidate() {\n return this._internals.willValidate;\n }\n checkValidity() {\n return this._internals.checkValidity();\n }\n reportValidity() {\n return this._internals.reportValidity();\n }\n formResetCallback() {\n this.value = '';\n this._touched = false;\n this._internals.setFormValue('');\n this._internals.setValidity({});\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n document.addEventListener('keydown', this._handleKeyDown);\n this.addEventListener('invalid', this._handleInvalid);\n }\n firstUpdated() {\n this._updateValidity();\n }\n updated(changedProperties) {\n if (changedProperties.has('required') || changedProperties.has('value')) {\n this._updateValidity();\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n document.removeEventListener('keydown', this._handleKeyDown);\n this.removeEventListener('invalid', this._handleInvalid);\n }\n _toggle() {\n if (this.disabled || this.readonly)\n return;\n if (this._isOpen) {\n this._close();\n }\n else {\n this._isOpen = true;\n const options = Array.from(this.querySelectorAll('kr-select-option'));\n this._highlightedIndex = options.findIndex(o => o.value === this.value);\n }\n }\n _close() {\n this._isOpen = false;\n this._highlightedIndex = -1;\n }\n _selectOption(option) {\n if (option.disabled)\n return;\n this.value = option.value;\n this._internals.setFormValue(this.value);\n this._updateValidity();\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n this._close();\n this._triggerElement?.focus();\n }\n _handleBlur() {\n this._touched = true;\n this._updateValidity();\n }\n _updateValidity() {\n if (this.required && !this.value) {\n this._internals.setValidity({ valueMissing: true }, 'Please select an option', this._triggerElement);\n }\n else {\n this._internals.setValidity({});\n }\n }\n render() {\n const options = Array.from(this.querySelectorAll('kr-select-option'));\n const selectedLabel = options.find(o => o.value === this.value)?.label;\n return html `\n <div class=\"wrapper\">\n ${this.label\n ? html `\n <label>\n ${this.label}\n ${this.required ? html `<span class=\"required\" aria-hidden=\"true\">*</span>` : ''}\n </label>\n `\n : nothing}\n <div class=\"select-wrapper\">\n <button\n class=${classMap({\n 'select-trigger': true,\n 'select-trigger--open': this._isOpen,\n 'select-trigger--invalid': this._touched && this.required && !this.value,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n aria-haspopup=\"listbox\"\n aria-expanded=${this._isOpen}\n @click=${this._toggle}\n @blur=${this._handleBlur}\n >\n <span class=${classMap({\n 'select-value': true,\n 'select-placeholder': !selectedLabel\n })}>\n ${selectedLabel || this.placeholder}\n </span>\n <svg\n class=${classMap({\n 'chevron-icon': true,\n 'select-icon': true,\n 'select-icon--open': this._isOpen\n })}\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n <div class=${classMap({\n 'select-dropdown': true,\n 'hidden': !this._isOpen\n })} role=\"listbox\">\n <div class=\"select-options\">\n ${options.length === 0\n ? html `<div class=\"select-empty\">No options available</div>`\n : options.map((option, idx) => {\n const isSelected = option.value === this.value;\n return html `\n <div\n class=${classMap({\n 'select-option': true,\n 'select-option--selected': isSelected,\n 'select-option--disabled': option.disabled,\n 'select-option--highlighted': idx === this._highlightedIndex,\n })}\n role=\"option\"\n aria-selected=${isSelected}\n @click=${() => this._selectOption(option)}\n @mouseenter=${() => (this._highlightedIndex = idx)}\n >\n ${option.label}\n ${isSelected\n ? html `<svg class=\"chevron-icon select-check\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>`\n : nothing}\n </div>\n `;\n })}\n </div>\n </div>\n </div>\n ${this._touched && this.required && !this.value\n ? html `<div class=\"validation-message\">Please select an option</div>`\n : this.hint\n ? html `<div class=\"hint\">${this.hint}</div>`\n : ''}\n </div>\n <div class=\"options-slot\">\n <slot @slotchange=${() => this.requestUpdate()}></slot>\n </div>\n `;\n }\n // Public methods for programmatic control\n focus() {\n this._triggerElement?.focus();\n }\n blur() {\n this._triggerElement?.blur();\n }\n};\nKRSelectField.styles = css `\n :host {\n display: block;\n font-family: inherit;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n label {\n font-size: 13px;\n font-weight: 500;\n color: var(--kr-select-label-color, #374151);\n }\n\n .required {\n color: var(--kr-select-required-color, #ef4444);\n margin-left: 0.125rem;\n }\n\n .select-wrapper {\n position: relative;\n }\n\n .select-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 0.5rem 0.75rem;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n color: var(--kr-select-color, #111827);\n background-color: var(--kr-select-bg, #fff);\n border: 1px solid var(--kr-select-border-color, #d1d5db);\n border-radius: 4px;\n cursor: pointer;\n transition: border-color 0.2s, box-shadow 0.2s;\n text-align: left;\n }\n\n .select-trigger:hover:not(:disabled) {\n border-color: var(--kr-select-hover-border-color, #9ca3af);\n }\n\n .select-trigger:focus {\n outline: none;\n border-color: var(--kr-select-focus-border-color, #2563eb);\n box-shadow: 0 0 0 3px var(--kr-select-focus-ring-color, rgba(37, 99, 235, 0.1));\n }\n\n .select-trigger:disabled {\n background-color: var(--kr-select-disabled-bg, #f3f4f6);\n color: var(--kr-select-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n .select-trigger--invalid {\n border-color: var(--kr-select-error-border-color, #ef4444);\n }\n\n .select-trigger--invalid:focus {\n border-color: var(--kr-select-error-border-color, #ef4444);\n box-shadow: 0 0 0 3px var(--kr-select-error-ring-color, rgba(239, 68, 68, 0.1));\n }\n\n .select-trigger--open {\n border-color: var(--kr-select-focus-border-color, #2563eb);\n box-shadow: 0 0 0 3px var(--kr-select-focus-ring-color, rgba(37, 99, 235, 0.1));\n }\n\n .select-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .select-placeholder {\n color: var(--kr-select-placeholder-color, #9ca3af);\n }\n\n .select-icon {\n flex-shrink: 0;\n margin-left: 0.5rem;\n color: var(--kr-select-icon-color, #6b7280);\n transition: transform 0.2s;\n }\n\n .select-icon--open {\n transform: rotate(180deg);\n }\n\n .select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 50;\n margin-top: 0.25rem;\n background-color: var(--kr-select-dropdown-bg, #fff);\n border: 1px solid var(--kr-select-dropdown-border-color, #e5e7eb);\n border-radius: 4px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n max-height: 300px;\n overflow-y: auto;\n }\n\n .select-options {\n padding: 0.25rem;\n }\n\n .select-option {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n font-size: 14px;\n color: var(--kr-select-option-color, #111827);\n cursor: pointer;\n border-radius: 4px;\n transition: background-color 0.15s;\n }\n\n .select-option:hover:not(.select-option--disabled) {\n background-color: var(--kr-select-option-hover-bg, #f3f4f6);\n }\n\n .select-option--selected {\n background-color: var(--kr-select-option-selected-bg, #eff6ff);\n color: var(--kr-select-option-selected-color, #1d4ed8);\n }\n\n .select-option--selected:hover {\n background-color: var(--kr-select-option-selected-hover-bg, #dbeafe);\n }\n\n .select-option--disabled {\n color: var(--kr-select-option-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n .select-option--highlighted {\n background-color: var(--kr-select-option-hover-bg, #f3f4f6);\n }\n\n .select-empty {\n padding: 1rem;\n text-align: center;\n color: var(--kr-select-empty-color, #6b7280);\n font-size: 14px;\n }\n\n .select-check {\n color: var(--kr-select-check-color, #2563eb);\n flex-shrink: 0;\n margin-left: auto;\n }\n\n .hint {\n font-size: 0.75rem;\n color: var(--kr-select-helper-color, #6b7280);\n }\n\n .validation-message {\n font-size: 0.75rem;\n color: var(--kr-select-error-color, #ef4444);\n }\n\n .hidden {\n display: none;\n }\n\n .chevron-icon {\n width: 16px;\n height: 16px;\n }\n\n /* Hide the slot - options are rendered in dropdown */\n .options-slot {\n display: none;\n }\n `;\n// Enable form association\nKRSelectField.formAssociated = true;\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"name\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"value\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectField.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectField.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectField.prototype, \"readonly\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"hint\", void 0);\n__decorate([\n state()\n], KRSelectField.prototype, \"_isOpen\", void 0);\n__decorate([\n state()\n], KRSelectField.prototype, \"_highlightedIndex\", void 0);\n__decorate([\n state()\n], KRSelectField.prototype, \"_touched\", void 0);\n__decorate([\n query('.select-trigger')\n], KRSelectField.prototype, \"_triggerElement\", void 0);\nKRSelectField = __decorate([\n customElement('kr-select-field')\n], KRSelectField);\nexport { KRSelectField };\n//# sourceMappingURL=select-field.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 * An option for the kr-select-field component.\n *\n * @element kr-select-option\n * @slot - The option label content\n */\nlet KRSelectOption = class KRSelectOption extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * The option value\n */\n this.value = '';\n /**\n * Whether the option is disabled\n */\n this.disabled = false;\n }\n /** Gets the label text from the slot */\n get label() {\n return this.textContent?.trim() || '';\n }\n render() {\n return html `<slot></slot>`;\n }\n};\nKRSelectOption.styles = css `\n :host {\n display: none;\n }\n `;\n__decorate([\n property({ type: String })\n], KRSelectOption.prototype, \"value\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectOption.prototype, \"disabled\", void 0);\nKRSelectOption = __decorate([\n customElement('kr-select-option')\n], KRSelectOption);\nexport { KRSelectOption };\n//# sourceMappingURL=select-option.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, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n/**\n * A textarea component that works with native browser forms.\n *\n * Uses ElementInternals for form association, allowing the component\n * to participate in form submission, validation, and reset.\n *\n * Native input and change events bubble up from the inner textarea element.\n *\n * @element kr-textarea-field\n */\nlet KRTextareaField = class KRTextareaField extends LitElement {\n constructor() {\n super();\n /**\n * The textarea label text\n */\n this.label = '';\n /**\n * The textarea name for form submission\n */\n this.name = '';\n /**\n * The current value\n */\n this.value = '';\n /**\n * Placeholder text\n */\n this.placeholder = '';\n /**\n * Whether the field is required\n */\n this.required = false;\n /**\n * Whether the field is disabled\n */\n this.disabled = false;\n /**\n * Whether the field is readonly\n */\n this.readonly = false;\n /**\n * Number of visible text lines\n */\n this.rows = 3;\n /**\n * Autocomplete attribute value\n */\n this.autocomplete = '';\n /**\n * Helper text shown below the textarea\n */\n this.hint = '';\n this._touched = false;\n this._dirty = false;\n this._handleInvalid = (e) => {\n e.preventDefault();\n this._touched = true;\n };\n this._internals = this.attachInternals();\n }\n // Form-associated custom element callbacks\n get form() {\n return this._internals.form;\n }\n get validity() {\n return this._internals.validity;\n }\n get validationMessage() {\n return this._internals.validationMessage;\n }\n get willValidate() {\n return this._internals.willValidate;\n }\n checkValidity() {\n return this._internals.checkValidity();\n }\n reportValidity() {\n return this._internals.reportValidity();\n }\n formResetCallback() {\n this.value = '';\n this._touched = false;\n this._dirty = false;\n this._internals.setFormValue('');\n this._internals.setValidity({});\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('invalid', this._handleInvalid);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('invalid', this._handleInvalid);\n }\n firstUpdated() {\n this._updateValidity();\n }\n updated(changedProperties) {\n if (changedProperties.has('required') || changedProperties.has('value')) {\n this._updateValidity();\n }\n }\n _updateValidity() {\n if (this._textarea) {\n this._internals.setValidity(this._textarea.validity, this._textarea.validationMessage);\n }\n }\n _handleInput(e) {\n this.value = e.target.value;\n this._dirty = true;\n this._internals.setFormValue(this.value);\n this._internals.setValidity(this._textarea.validity, this._textarea.validationMessage);\n }\n _handleChange(e) {\n this.value = e.target.value;\n this._internals.setFormValue(this.value);\n }\n _handleBlur() {\n this._touched = true;\n this._internals.setValidity(this._textarea.validity, this._textarea.validationMessage);\n }\n render() {\n let validationMessage = '';\n if (this._touched && this._textarea && !this._textarea.validity.valid) {\n validationMessage = this._textarea.validationMessage;\n }\n return html `\n <div class=\"wrapper\">\n ${this.label\n ? html `\n <label for=\"textarea\">\n ${this.label}\n ${this.required ? html `<span class=\"required\" aria-hidden=\"true\">*</span>` : nothing}\n </label>\n `\n : nothing}\n <textarea\n id=\"textarea\"\n class=${classMap({\n 'textarea--invalid': this._touched && this._textarea && !this._textarea.validity.valid\n })}\n name=${this.name}\n .value=${live(this.value)}\n placeholder=${this.placeholder}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n rows=${this.rows}\n cols=${ifDefined(this.cols)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n autocomplete=${ifDefined(this.autocomplete || undefined)}\n @input=${this._handleInput}\n @change=${this._handleChange}\n @blur=${this._handleBlur}\n ></textarea>\n ${validationMessage\n ? html `<div class=\"validation-message\">${validationMessage}</div>`\n : this.hint\n ? html `<div class=\"hint\">${this.hint}</div>`\n : nothing}\n </div>\n `;\n }\n // Public methods for programmatic control\n focus() {\n this._textarea?.focus();\n }\n blur() {\n this._textarea?.blur();\n }\n select() {\n this._textarea?.select();\n }\n};\nKRTextareaField.styles = css `\n :host {\n display: block;\n font-family: inherit;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n label {\n font-size: 13px;\n font-weight: 500;\n color: var(--kr-textarea-field-label-color, #374151);\n }\n\n .required {\n color: var(--kr-textarea-field-required-color, #ef4444);\n margin-left: 0.125rem;\n }\n\n textarea {\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--kr-textarea-field-border-color, #d1d5db);\n border-radius: 4px;\n background-color: var(--kr-textarea-field-bg, #fff);\n color: var(--kr-textarea-field-color, #111827);\n transition: border-color 0.2s, box-shadow 0.2s;\n min-height: 2.5rem;\n resize: vertical;\n }\n\n textarea:focus {\n outline: none;\n border-color: var(--kr-textarea-field-focus-border-color, #163052);\n box-shadow: 0 0 0 3px var(--kr-textarea-field-focus-ring-color, rgba(22, 48, 82, 0.1));\n }\n\n textarea:disabled {\n background-color: var(--kr-textarea-field-disabled-bg, #f3f4f6);\n color: var(--kr-textarea-field-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n textarea::placeholder {\n color: var(--kr-textarea-field-placeholder-color, #9ca3af);\n }\n\n textarea.textarea--invalid {\n border-color: var(--kr-textarea-field-error-border-color, #ef4444);\n }\n\n textarea.textarea--invalid:focus {\n box-shadow: 0 0 0 3px var(--kr-textarea-field-error-ring-color, rgba(239, 68, 68, 0.1));\n }\n\n .validation-message {\n font-size: 0.75rem;\n color: var(--kr-textarea-field-error-color, #ef4444);\n }\n\n .hint {\n font-size: 0.75rem;\n color: var(--kr-textarea-field-helper-color, #6b7280);\n }\n `;\n// Enable form association\nKRTextareaField.formAssociated = true;\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"name\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"value\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextareaField.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextareaField.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextareaField.prototype, \"readonly\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"rows\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"cols\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"minlength\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"maxlength\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"autocomplete\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"hint\", void 0);\n__decorate([\n query('textarea')\n], KRTextareaField.prototype, \"_textarea\", void 0);\n__decorate([\n state()\n], KRTextareaField.prototype, \"_touched\", void 0);\n__decorate([\n state()\n], KRTextareaField.prototype, \"_dirty\", void 0);\nKRTextareaField = __decorate([\n customElement('kr-textarea-field')\n], KRTextareaField);\nexport { KRTextareaField };\n//# sourceMappingURL=textarea-field.js.map"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$4","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","n","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y$1","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","y","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","_$litType$","strings","values","x","E","for","A","P","createTreeWalker","V","N","lastIndex","exec","test","startsWith","S","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","I","L","z","H","tagName","append","data","indexOf","innerHTML","M","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","R","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","k","nextSibling","Z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","T","iterator","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","B","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","krBaseCSS","css","customElements","define","kind","init","Reflect","decorate","querySelector","__decorate","decorators","target","key","desc","KRAccordion","header","expanded","toggle","html","property","customElement","i$1","_$Ct","_$Ci","filter","join","st","nt","classList","KRAlert","dismissible","visible","_handleDismiss","dispatchEvent","CustomEvent","bubbles","composed","icons","info","success","warning","error","classMap","alert","nothing","KRButton","variant","color","disabled","_state","_stateText","_dropdownOpened","_dropdownAlignRight","_handleHostClick","stopPropagation","_toggleDropdown","_handleKeydown","preventDefault","click","_handleClickOutside","contains","href","requestAnimationFrame","dropdown","rect","getBoundingClientRect","right","window","innerWidth","_handleOptionClick","option","detail","id","label","showLoading","_clearStateTimeout","showSuccess","text","duration","_stateTimeout","setTimeout","reset","showError","clearTimeout","undefined","changedProperties","it","directiveName","_t","raw","resultType","KRCodeDemo","language","code","activeTab","copied","setTab","tab","getHighlightedCode","Prism","languages","highlight","escapeHtml","div","copyCode","navigator","clipboard","writeText","err","console","panel","preview","unsafeHTML","KRContextMenu","items","resolvePromise","boundHandleOutsideClick","handleOutsideClick","bind","boundHandleKeyDown","handleKeyDown","open","existing","menu","body","show","style","left","top","width","bottom","innerHeight","height","resolve","close","handleItemClick","item","divider","result","icon","DialogRef","dialogElement","promise","setDialogElement","afterClosed","KRDialog","contentElement","dialogRef","component","config","dialog","handleBackdropClick","KRSnackbar_1","KRSnackbar","dismissTimeout","title","message","snackbar","activeSnackbars","updatePositions","dismiss","splice","bottomOffset","offsetHeight","includes","replace","ft","removeProperty","setProperty","KRTabGroup","justified","changes","_updateActiveTab","_getTabs","from","querySelectorAll","tabs","activeTabId","active","_handleTabClick","_handleTabDismiss","tabId","_handleKeyDown","enabledTabs","currentIndex","findIndex","newIndex","newTab","tabButtons","targetButton","find","btn","focus","_renderTabIcon","iconElement","getIconElement","clonedIcon","cloneNode","badge","styleMap","backgroundColor","badgeBackground","badgeColor","KRTab","SOLR_RESERVED_CHARS","SOLR_RESERVED_CHARS_REPLACEMENT","escapeSolrQuery","query","escaped","KRTable","_scrollStyle","_data","_dataState","_page","_pageSize","_totalItems","_totalPages","_searchQuery","_canScrollLeft","_canScrollRight","_canScrollHorizontal","_columnPickerOpen","_displayedColumns","_resizing","_resizeObserver","_searchPositionLocked","_def","columns","def","_handleClickOutsideColumnPicker","path","composedPath","picker","_handleResizeMove","col","columnId","newWidth","startWidth","clientX","startX","min","max","_handleResizeEnd","_fetch","_initRefresh","ResizeObserver","_updateSearchPosition","observe","clearInterval","_refreshTimer","disconnect","sticky","resizable","displayedColumns","_updateScrollFlags","_syncSlottedContent","getDisplayedColumns","row","rowIndex","slot","display","gap","refresh","goToPrevPage","goToNextPage","goToPage","page","dataSource","request","sorts","filterFields","queryFields","facetFields","trim","searchable","operation","value","and","fetch","then","response","res","totalElements","totalPages","catch","refreshInterval","setInterval","_handleSearch","input","_getGridTemplateColumns","search","searchField","justifyContent","marginLeft","searchRect","currentOffset","_toggleColumnPicker","_toggleColumn","sort","_handleScroll","container","scrollLeft","scrollWidth","clientWidth","some","_handleResizeStart","headerCell","offsetWidth","_handleAction","action","_renderCellContent","column","toLocaleString","currency","date","Date","isoString","year","month","day","hour","minute","_getHeaderCellClasses","align","_getCellClasses","cell","_getCellStyle","leftOffset","parseInt","rightOffset","_renderPagination","start","end","_renderHeader","actions","localeCompare","_renderStatus","_renderTable","KRTextField","placeholder","required","readonly","autocomplete","hint","_touched","_dirty","_handleInvalid","_internals","attachInternals","form","validity","validationMessage","willValidate","checkValidity","reportValidity","formResetCallback","setFormValue","setValidity","formStateRestoreCallback","_updateValidity","_input","_handleInput","_handleChange","_handleBlur","valid","live","ifDefined","minlength","maxlength","pattern","blur","select","formAssociated","KRSelectField","_isOpen","_highlightedIndex","_handleOutsideClick","_close","_triggerElement","_selectOption","_toggle","Event","valueMissing","selectedLabel","hidden","idx","isSelected","KRSelectOption","KRTextareaField","rows","_textarea","cols"],"mappings":"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","x_google_ignoreList":[0,1,2,3,5,6,7,8,9,11,12,15,20,24,25,26]}
1
+ {"version":3,"file":"krubble.bundled.min.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","style/base.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/query.js","../../../node_modules/@lit/reactive-element/decorators/base.js","accordion/accordion.js","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directives/class-map.js","alert/alert.js","button/button.js","../../../node_modules/lit-html/directives/unsafe-html.js","code-demo/code-demo.js","context-menu/context-menu.js","dialog/dialog.js","snackbar/snackbar.js","../../../node_modules/lit-html/directives/style-map.js","tabs/tabs.js","tabs/tab.js","table/table.js","../../../node_modules/lit-html/directives/if-defined.js","../../../node_modules/lit-html/directive-helpers.js","../../../node_modules/lit-html/directives/live.js","form/text-field/text-field.js","form/select-field/select-field.js","form/select-field/select-option.js","form/textarea-field/textarea-field.js","form/detail-field/detail-field.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","import { css } from 'lit';\n/**\n * Base theme styles with CSS custom properties.\n * Import into components: static styles = [krBaseCSS, css`...`]\n */\nexport const krBaseCSS = css `\n :host,\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n /* Primary */\n --kr-primary: rgb(22, 48, 82);\n --kr-primary-hover: rgb(16, 36, 62);\n --kr-primary-text: #ffffff;\n\n /* Accent */\n --kr-accent: #BEEA4E;\n --kr-accent-hover: #a8d43a;\n --kr-accent-text: #000000;\n\n /* Text */\n --kr-text: #000000;\n --kr-text-muted: #4b5563;\n --kr-text-disabled: #9ca3af;\n \n /* Borders */\n --kr-border: #e5e7eb;\n }\n`;\n//# sourceMappingURL=base.js.map","/**\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","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 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","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 * Accordion component for collapsible content sections.\n *\n * ## Usage\n * ```html\n * <kr-accordion header=\"Basic Information\" expanded>\n * <div>Content here</div>\n * </kr-accordion>\n * ```\n *\n * @slot - The collapsible content\n *\n * @property {string} header - Section header text\n * @property {boolean} expanded - Whether the accordion is expanded\n */\nlet KRAccordion = class KRAccordion extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Section header text\n */\n this.header = '';\n /**\n * Whether the accordion is expanded\n */\n this.expanded = false;\n }\n toggle() {\n this.expanded = !this.expanded;\n }\n render() {\n return html `\n <div class=\"header\" @click=${this.toggle}>\n <span class=\"header__title\">${this.header}</span>\n <svg class=\"header__icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M6 9l6 6 6-6\"/>\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"content__inner\">\n <div class=\"content__body\">\n <slot></slot>\n </div>\n </div>\n </div>\n `;\n }\n};\nKRAccordion.styles = css `\n :host {\n display: block;\n margin-bottom: 16px;\n }\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: #f7f8f9;\n border-radius: 8px;\n cursor: pointer;\n user-select: none;\n }\n\n .header__title {\n font-size: 15px;\n font-weight: 600;\n color: #111827;\n }\n\n .header__icon {\n width: 20px;\n height: 20px;\n color: #9ca3af;\n transition: transform 0.2s ease;\n flex-shrink: 0;\n }\n\n :host([expanded]) .header__icon {\n transform: rotate(180deg);\n }\n\n .content {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.2s ease;\n }\n\n :host([expanded]) .content {\n grid-template-rows: 1fr;\n }\n\n .content__inner {\n overflow: hidden;\n }\n\n .content__body {\n padding: 16px 16px 8px 16px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRAccordion.prototype, \"header\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], KRAccordion.prototype, \"expanded\", void 0);\nKRAccordion = __decorate([\n customElement('kr-accordion')\n], KRAccordion);\nexport { KRAccordion };\n//# sourceMappingURL=accordion.js.map","/**\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{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, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * A customizable alert component for displaying important information to users.\n *\n * @slot - The alert message content\n * @fires dismiss - Fired when the dismiss button is clicked\n */\nlet KRAlert = class KRAlert extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * The alert type/severity\n */\n this.type = 'info';\n /**\n * Whether the alert can be dismissed\n */\n this.dismissible = false;\n /**\n * Whether the alert is visible\n */\n this.visible = true;\n }\n /** Handles dismiss button click */\n _handleDismiss() {\n this.visible = false;\n this.dispatchEvent(new CustomEvent('dismiss', { bubbles: true, composed: true }));\n }\n render() {\n const icons = {\n info: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clip-rule=\"evenodd\"/></svg>`,\n success: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\"/></svg>`,\n warning: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\"/></svg>`,\n error: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\"/></svg>`,\n };\n return html `\n <div\n class=${classMap({\n 'alert': true,\n ['alert--' + this.type]: true,\n 'alert--hidden': !this.visible\n })}\n role=\"alert\"\n >\n ${icons[this.type]}\n <div class=\"content\">\n ${this.header\n ? html `<h4 class=\"header\">${this.header}</h4>`\n : nothing}\n <div class=\"message\">\n <slot></slot>\n </div>\n </div>\n ${this.dismissible\n ? html `\n <button\n class=\"dismiss\"\n type=\"button\"\n aria-label=\"Dismiss alert\"\n @click=${this._handleDismiss}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\"/>\n </svg>\n </button>\n `\n : nothing}\n </div>\n `;\n }\n};\nKRAlert.styles = css `\n :host {\n display: block;\n }\n\n .alert {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n border-left: 4px solid;\n }\n\n .alert--hidden {\n display: none;\n }\n \n /* Variants */\n .alert--info {\n background-color: #eff6ff;\n border-left-color: #3b82f6;\n }\n\n .alert--info .icon {\n color: #2563eb;\n }\n\n .alert--success {\n background-color: #f0fdf4;\n border-left-color: #22c55e;\n }\n\n .alert--success .icon {\n color: #16a34a;\n }\n\n .alert--warning {\n background-color: #fffbeb;\n border-left-color: #f59e0b;\n }\n\n .alert--warning .icon {\n color: #d97706;\n }\n\n .alert--error {\n background-color: #fef2f2;\n border-left-color: #ef4444;\n }\n\n .alert--error .icon {\n color: #dc2626;\n }\n\n .icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .header {\n font-size: 14px;\n font-weight: 600;\n color: #111827;\n margin: 0;\n }\n\n .message {\n font-size: 14px;\n color: #374151;\n margin: 0;\n }\n\n .dismiss {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n background: none;\n border: none;\n border-radius: 4px;\n color: #6b7280;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n }\n\n .dismiss:hover {\n background-color: rgba(0, 0, 0, 0.05);\n color: #374151;\n }\n\n .dismiss:focus-visible {\n outline: 2px solid #3b82f6;\n outline-offset: 2px;\n }\n `;\n__decorate([\n property({ type: String })\n], KRAlert.prototype, \"type\", void 0);\n__decorate([\n property({ type: String })\n], KRAlert.prototype, \"header\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRAlert.prototype, \"dismissible\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRAlert.prototype, \"visible\", void 0);\nKRAlert = __decorate([\n customElement('kr-alert')\n], KRAlert);\nexport { KRAlert };\n//# sourceMappingURL=alert.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';\n/**\n * A customizable button component.\n *\n * @slot - The button content\n * @fires click - Fired when the button is clicked\n * @fires option-select - Fired when a dropdown option is selected\n */\nlet KRButton = class KRButton extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * The button variant (shape)\n */\n this.variant = 'flat';\n /**\n * The button color\n */\n this.color = 'primary';\n /**\n * The button size\n */\n this.size = 'medium';\n /**\n * Whether the button is disabled\n */\n this.disabled = false;\n /**\n * Dropdown options - when provided, button becomes a dropdown\n */\n this.options = [];\n this._state = 'idle';\n this._stateText = '';\n this._dropdownOpened = false;\n this._dropdownAlignRight = false;\n this._handleHostClick = (e) => {\n if (this.options.length) {\n e.stopPropagation();\n this._toggleDropdown();\n }\n };\n this._handleKeydown = (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (this.options.length) {\n this._toggleDropdown();\n }\n else {\n this.click();\n }\n }\n if (e.key === 'Escape' && this._dropdownOpened) {\n this._dropdownOpened = false;\n }\n };\n this._handleClickOutside = (e) => {\n if (this._dropdownOpened && !this.contains(e.target)) {\n this._dropdownOpened = false;\n }\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', this.href ? 'link' : 'button');\n this.setAttribute('tabindex', '0');\n this.addEventListener('keydown', this._handleKeydown);\n this.addEventListener('click', this._handleHostClick);\n document.addEventListener('click', this._handleClickOutside);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleKeydown);\n this.removeEventListener('click', this._handleHostClick);\n document.removeEventListener('click', this._handleClickOutside);\n }\n _toggleDropdown() {\n this._dropdownOpened = !this._dropdownOpened;\n if (this._dropdownOpened) {\n // Check if dropdown would overflow viewport after render\n requestAnimationFrame(() => {\n const dropdown = this.shadowRoot?.querySelector('.dropdown');\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n this._dropdownAlignRight = rect.right > window.innerWidth;\n }\n });\n }\n }\n _handleOptionClick(option, e) {\n e.stopPropagation();\n this._dropdownOpened = false;\n this.dispatchEvent(new CustomEvent('option-select', {\n detail: { id: option.id, label: option.label },\n bubbles: true,\n composed: true\n }));\n }\n /**\n * Shows a loading spinner and disables the button.\n */\n showLoading() {\n this._clearStateTimeout();\n this._state = 'loading';\n this._stateText = '';\n }\n /**\n * Shows a success state with optional custom text.\n * @param text - Text to display (default: \"Saved\")\n * @param duration - Duration in ms before auto-reset (default: 2000)\n */\n showSuccess(text = 'Success', duration = 2000) {\n this._clearStateTimeout();\n this._state = 'success';\n this._stateText = text;\n this._stateTimeout = window.setTimeout(() => this.reset(), duration);\n }\n /**\n * Shows an error state with optional custom text.\n * @param text - Text to display (default: \"Error\")\n * @param duration - Duration in ms before auto-reset (default: 2000)\n */\n showError(text = 'Error', duration = 2000) {\n this._clearStateTimeout();\n this._state = 'error';\n this._stateText = text;\n this._stateTimeout = window.setTimeout(() => this.reset(), duration);\n }\n /**\n * Resets the button to its idle state.\n */\n reset() {\n this._clearStateTimeout();\n this._state = 'idle';\n this._stateText = '';\n }\n _clearStateTimeout() {\n if (this._stateTimeout) {\n clearTimeout(this._stateTimeout);\n this._stateTimeout = undefined;\n }\n }\n updated(changedProperties) {\n // Reflect state classes to host\n this.classList.toggle('kr-button--loading', this._state === 'loading');\n this.classList.toggle('kr-button--success', this._state === 'success');\n this.classList.toggle('kr-button--error', this._state === 'error');\n this.classList.toggle(`kr-button--${this.variant}`, true);\n this.classList.toggle(`kr-button--${this.color}`, true);\n this.classList.toggle('kr-button--small', this.size === 'small');\n this.classList.toggle('kr-button--large', this.size === 'large');\n }\n render() {\n const content = html `\n <slot></slot>\n ${this.options.length ? html `<svg class=\"caret\" xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>` : nothing}\n ${this._state !== 'idle'\n ? html `<span class=\"state-overlay\">\n ${this._state === 'loading'\n ? html `<span class=\"spinner\"></span>`\n : this._stateText}\n </span>`\n : nothing}\n ${this.options.length ? html `\n <div class=\"dropdown ${this._dropdownOpened ? 'dropdown--opened' : ''} ${this._dropdownAlignRight ? 'dropdown--align-right' : ''}\">\n ${this.options.map(option => html `\n <button\n class=\"dropdown-item\"\n @click=${(e) => this._handleOptionClick(option, e)}\n >${option.label}</button>\n `)}\n </div>\n ` : nothing}\n `;\n return this.href\n ? html `<a class=\"link\" href=${this.href} target=${this.target || nothing}>${content}</a>`\n : content;\n }\n};\nKRButton.styles = css `\n :host {\n display: inline-flex;\n position: relative;\n align-items: center;\n justify-content: center;\n font-family: inherit;\n font-size: 14px;\n font-weight: 400;\n letter-spacing: 0.01em;\n padding: 0 22px;\n height: 36px;\n border: none;\n border-radius: 20px;\n cursor: pointer;\n transition: background 0.15s ease;\n user-select: none;\n box-sizing: border-box;\n }\n\n :host([disabled]),\n :host(.kr-button--loading),\n :host(.kr-button--success),\n :host(.kr-button--error) {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]:not(.kr-button--loading):not(.kr-button--success):not(.kr-button--error)) {\n opacity: 0.5;\n }\n\n /* Flat + Primary (default) */\n :host,\n :host(.kr-button--flat.kr-button--primary) {\n background: #163052;\n color: white;\n }\n\n :host(:hover:not([disabled])),\n :host(.kr-button--flat.kr-button--primary:hover:not([disabled])) {\n background: #0e1f35;\n }\n\n /* Flat + Secondary */\n :host(.kr-button--flat.kr-button--secondary) {\n background: #f3f4f6;\n color: #374151;\n }\n\n :host(.kr-button--flat.kr-button--secondary:hover:not([disabled])) {\n background: #e5e7eb;\n }\n\n /* Outline + Primary */\n :host(.kr-button--outline.kr-button--primary) {\n background: transparent;\n border: 1px solid #163052;\n color: #163052;\n }\n\n :host(.kr-button--outline.kr-button--primary:hover:not([disabled])) {\n background: rgba(22, 48, 82, 0.05);\n }\n\n /* Outline + Secondary */\n :host(.kr-button--outline.kr-button--secondary) {\n background: transparent;\n border: 1px solid #d1d5db;\n color: #374151;\n }\n\n :host(.kr-button--outline.kr-button--secondary:hover:not([disabled])) {\n background: #f9fafb;\n border-color: #9ca3af;\n }\n\n /* Flat + Danger */\n :host(.kr-button--flat.kr-button--danger) {\n background: #dc2626;\n color: white;\n }\n\n :host(.kr-button--flat.kr-button--danger:hover:not([disabled])) {\n background: #b91c1c;\n }\n\n /* Outline + Danger */\n :host(.kr-button--outline.kr-button--danger) {\n background: transparent;\n border: 1px solid rgb(219, 38, 39);\n color: rgb(219, 38, 39);\n }\n\n :host(.kr-button--outline.kr-button--danger:hover:not([disabled])) {\n background: rgba(219, 38, 39, 0.05);\n }\n\n /* Sizes */\n :host(.kr-button--small) {\n font-size: 13px;\n height: 26px;\n padding: 0 16px;\n }\n\n :host(.kr-button--large) {\n font-size: 16px;\n height: 44px;\n padding: 0 24px;\n border-radius: 30px;\n }\n\n /* State colors */\n :host(.kr-button--success) {\n background: #198754 !important;\n color: white !important;\n }\n\n :host(.kr-button--error) {\n background: rgb(220, 53, 69) !important;\n color: white !important;\n }\n\n /* Content */\n :host(.kr-button--loading) slot,\n :host(.kr-button--success) slot,\n :host(.kr-button--error) slot {\n visibility: hidden;\n }\n\n /* State overlay */\n .state-overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Spinner */\n @keyframes kr-spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .spinner {\n width: 12px;\n height: 12px;\n border: 2.5px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: kr-spin 0.6s linear infinite;\n }\n\n :host(.kr-button--small) .spinner {\n width: 10px;\n height: 10px;\n border-width: 2px;\n }\n\n :host(.kr-button--large) .spinner {\n width: 16px;\n height: 16px;\n border-width: 3px;\n }\n\n /* Dropdown */\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n min-width: 100%;\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 padding: 8px 0;\n z-index: 100;\n display: none;\n transform-origin: top;\n }\n\n .dropdown--opened {\n display: block;\n animation: dropdown-fade-in 150ms ease-out;\n }\n\n .dropdown--align-right {\n left: auto;\n right: 0;\n }\n\n @keyframes dropdown-fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .dropdown-item {\n display: block;\n width: 100%;\n padding: 8px 16px;\n text-align: left;\n background: none;\n border: none;\n font-size: 14px;\n color: #374151;\n cursor: pointer;\n font-family: inherit;\n white-space: nowrap;\n }\n\n .dropdown-item:hover {\n background: #f3f4f6;\n }\n\n /* Caret for dropdown button */\n .caret {\n margin-left: 4px;\n margin-right: -6px;\n display: flex;\n }\n\n /* Link wrapper */\n .link {\n color: inherit;\n text-decoration: none;\n }\n `;\n__decorate([\n property({ type: String, reflect: true })\n], KRButton.prototype, \"variant\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], KRButton.prototype, \"color\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], KRButton.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], KRButton.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: String })\n], KRButton.prototype, \"href\", void 0);\n__decorate([\n property({ type: String })\n], KRButton.prototype, \"target\", void 0);\n__decorate([\n property({ type: Array })\n], KRButton.prototype, \"options\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_state\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_stateText\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_dropdownOpened\", void 0);\n__decorate([\n state()\n], KRButton.prototype, \"_dropdownAlignRight\", void 0);\nKRButton = __decorate([\n customElement('kr-button')\n], KRButton);\nexport { KRButton };\n//# sourceMappingURL=button.js.map","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","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, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\n/**\n * Code demo component with Preview/Code tabs and syntax highlighting.\n *\n * Usage:\n * ```html\n * <kr-code-demo language=\"html\">\n * <div slot=\"preview\">\n * <kr-button>Click me</kr-button>\n * </div>\n * <script slot=\"code\" type=\"text/plain\">\n * <kr-button>Click me</kr-button>\n * </script>\n * </kr-code-demo>\n * ```\n *\n * Requires Prism.js to be loaded globally for syntax highlighting.\n */\nlet KRCodeDemo = class KRCodeDemo extends LitElement {\n constructor() {\n super(...arguments);\n this.language = 'html';\n this.code = '';\n this.activeTab = 'preview';\n this.copied = false;\n }\n setTab(tab) {\n this.activeTab = tab;\n }\n getHighlightedCode() {\n if (!this.code)\n return '';\n if (window.Prism && window.Prism.languages[this.language]) {\n return window.Prism.highlight(this.code, window.Prism.languages[this.language], this.language);\n }\n // Fallback: escape HTML and return plain text\n return this.escapeHtml(this.code);\n }\n escapeHtml(text) {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n async copyCode() {\n if (!this.code)\n return;\n try {\n await navigator.clipboard.writeText(this.code);\n this.copied = true;\n setTimeout(() => {\n this.copied = false;\n }, 2000);\n }\n catch (err) {\n console.error('Failed to copy code:', err);\n }\n }\n render() {\n return html `\n <div class=\"tabs\">\n <button\n class=${classMap({ tab: true, 'tab--active': this.activeTab === 'preview' })}\n @click=${() => this.setTab('preview')}\n >\n Preview\n </button>\n <button\n class=${classMap({ tab: true, 'tab--active': this.activeTab === 'code' })}\n @click=${() => this.setTab('code')}\n >\n Code\n </button>\n </div>\n\n <div class=${classMap({ panel: true, 'panel--active': this.activeTab === 'preview', preview: true })}>\n <slot name=\"preview\"></slot>\n </div>\n\n <div class=${classMap({ panel: true, 'panel--active': this.activeTab === 'code', 'code-container': true })}>\n <button\n class=${classMap({ 'copy-btn': true, 'copy-btn--copied': this.copied })}\n @click=${this.copyCode}\n >\n ${this.copied ? 'Copied!' : 'Copy'}\n </button>\n <pre class=\"code\"><code>${unsafeHTML(this.getHighlightedCode())}</code></pre>\n </div>\n\n `;\n }\n};\nKRCodeDemo.styles = css `\n :host {\n display: block;\n border: 1px solid #e9ecef;\n border-radius: 8px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .tabs {\n display: flex;\n background: #f8f9fa;\n border-bottom: 1px solid #e9ecef;\n border-radius: 8px 8px 0 0;\n }\n\n .tab {\n padding: 10px 20px;\n background: none;\n border: none;\n color: #6c757d;\n font-size: 14px;\n font-weight: 500;\n font-family: inherit;\n cursor: pointer;\n position: relative;\n transition: color 0.15s;\n }\n\n .tab:hover {\n color: #495057;\n }\n\n .tab--active {\n color: #1a1a2e;\n }\n\n .tab--active::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n height: 2px;\n background: #4f46e5;\n }\n\n .panel {\n display: none;\n }\n\n .panel--active {\n display: block;\n }\n\n .preview {\n padding: 24px;\n background: #ffffff;\n }\n\n .code-container {\n position: relative;\n }\n\n .code {\n margin: 0;\n padding: 20px;\n background: #1e1e2e;\n overflow-x: auto;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: #cdd6f4;\n border-radius: 0 0 8px 8px;\n }\n\n .code code {\n font-family: inherit;\n }\n\n .copy-btn {\n position: absolute;\n top: 12px;\n right: 12px;\n padding: 6px 12px;\n background: rgba(255, 255, 255, 0.1);\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 6px;\n color: rgba(255, 255, 255, 0.7);\n font-size: 12px;\n font-family: inherit;\n cursor: pointer;\n transition: background 0.15s, color 0.15s;\n }\n\n .copy-btn:hover {\n background: rgba(255, 255, 255, 0.15);\n color: white;\n }\n\n .copy-btn--copied {\n background: rgba(34, 197, 94, 0.2);\n border-color: rgba(34, 197, 94, 0.3);\n color: #4ade80;\n }\n\n /* Prism.js theme overrides for dark mode */\n .code .token.comment,\n .code .token.prolog,\n .code .token.doctype,\n .code .token.cdata {\n color: #6c7086;\n }\n\n .code .token.punctuation {\n color: #9399b2;\n }\n\n .code .token.property,\n .code .token.tag,\n .code .token.boolean,\n .code .token.number,\n .code .token.constant,\n .code .token.symbol,\n .code .token.deleted {\n color: #f38ba8;\n }\n\n .code .token.selector,\n .code .token.attr-name,\n .code .token.string,\n .code .token.char,\n .code .token.builtin,\n .code .token.inserted {\n color: #a6e3a1;\n }\n\n .code .token.operator,\n .code .token.entity,\n .code .token.url,\n .code .language-css .token.string,\n .code .style .token.string {\n color: #94e2d5;\n }\n\n .code .token.atrule,\n .code .token.attr-value,\n .code .token.keyword {\n color: #cba6f7;\n }\n\n .code .token.function,\n .code .token.class-name {\n color: #89b4fa;\n }\n\n .code .token.regex,\n .code .token.important,\n .code .token.variable {\n color: #fab387;\n }\n `;\n__decorate([\n property({ type: String })\n], KRCodeDemo.prototype, \"language\", void 0);\n__decorate([\n property({ type: String })\n], KRCodeDemo.prototype, \"code\", void 0);\n__decorate([\n state()\n], KRCodeDemo.prototype, \"activeTab\", void 0);\n__decorate([\n state()\n], KRCodeDemo.prototype, \"copied\", void 0);\nKRCodeDemo = __decorate([\n customElement('kr-code-demo')\n], KRCodeDemo);\nexport { KRCodeDemo };\n//# sourceMappingURL=code-demo.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, state } from 'lit/decorators.js';\n/**\n * Context menu component that can be opened programmatically.\n *\n * Usage:\n * ```ts\n * const result = await ContextMenu.open({\n * x: event.clientX,\n * y: event.clientY,\n * items: [\n * { id: 'edit', label: 'Edit Item' },\n * { id: 'divider', label: '', divider: true },\n * { id: 'add-above', label: 'Add Item Above' },\n * { id: 'add-below', label: 'Add Item Below' },\n * ]\n * });\n *\n * if (result) {\n * console.log('Selected:', result.id);\n * }\n * ```\n */\nlet KRContextMenu = class KRContextMenu extends LitElement {\n constructor() {\n super(...arguments);\n this.items = [];\n this.resolvePromise = null;\n this.boundHandleOutsideClick = this.handleOutsideClick.bind(this);\n this.boundHandleKeyDown = this.handleKeyDown.bind(this);\n }\n static async open(options) {\n // Remove any existing context menu\n const existing = document.querySelector('kr-context-menu');\n if (existing) {\n existing.remove();\n }\n // Create and position the menu\n const menu = document.createElement('kr-context-menu');\n document.body.appendChild(menu);\n return menu.show(options);\n }\n async show(options) {\n this.items = options.items;\n this.style.left = `${options.x}px`;\n this.style.top = `${options.y}px`;\n // Adjust position if menu would go off screen\n await this.updateComplete;\n const rect = this.getBoundingClientRect();\n if (rect.right > window.innerWidth) {\n this.style.left = `${options.x - rect.width}px`;\n }\n if (rect.bottom > window.innerHeight) {\n this.style.top = `${options.y - rect.height}px`;\n }\n // Add event listeners after a microtask to avoid the current event triggering close\n requestAnimationFrame(() => {\n document.addEventListener('click', this.boundHandleOutsideClick);\n document.addEventListener('contextmenu', this.boundHandleOutsideClick);\n document.addEventListener('keydown', this.boundHandleKeyDown);\n });\n return new Promise((resolve) => {\n this.resolvePromise = resolve;\n });\n }\n handleOutsideClick(e) {\n if (!this.contains(e.target)) {\n this.close(null);\n }\n }\n handleKeyDown(e) {\n if (e.key === 'Escape') {\n this.close(null);\n }\n }\n handleItemClick(item) {\n if (!item.disabled && !item.divider) {\n this.close(item);\n }\n }\n close(result) {\n document.removeEventListener('click', this.boundHandleOutsideClick);\n document.removeEventListener('contextmenu', this.boundHandleOutsideClick);\n document.removeEventListener('keydown', this.boundHandleKeyDown);\n if (this.resolvePromise) {\n this.resolvePromise(result);\n this.resolvePromise = null;\n }\n this.remove();\n }\n render() {\n return html `\n <div class=\"menu\">\n ${this.items.map(item => item.divider\n ? html `<div class=\"menu__divider\"></div>`\n : html `\n <button\n class=\"menu__item\"\n ?disabled=${item.disabled}\n @click=${() => this.handleItemClick(item)}\n >\n ${item.icon ? html `<span class=\"menu__item-icon\">${item.icon}</span>` : null}\n ${item.label}\n </button>\n `)}\n </div>\n `;\n }\n};\nKRContextMenu.styles = css `\n :host {\n position: fixed;\n z-index: 10000;\n }\n\n .menu {\n background: #1a1a2e;\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n padding: 4px;\n min-width: 180px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);\n }\n\n .menu__item {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n padding: 10px 12px;\n background: none;\n border: none;\n color: rgba(255, 255, 255, 0.8);\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 .menu__item:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.05);\n color: #ffffff;\n }\n\n .menu__item:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .menu__item-icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .menu__divider {\n height: 1px;\n background: rgba(255, 255, 255, 0.1);\n margin: 4px 0;\n }\n `;\n__decorate([\n state()\n], KRContextMenu.prototype, \"items\", void 0);\nKRContextMenu = __decorate([\n customElement('kr-context-menu')\n], KRContextMenu);\nexport { KRContextMenu };\n//# sourceMappingURL=context-menu.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, state } from 'lit/decorators.js';\nexport class DialogRef {\n constructor() {\n this.resolvePromise = null;\n this.dialogElement = null;\n this.promise = new Promise((resolve) => {\n this.resolvePromise = resolve;\n });\n }\n /** @internal */\n setDialogElement(el) {\n this.dialogElement = el;\n }\n close(result) {\n if (this.resolvePromise) {\n this.resolvePromise(result);\n this.resolvePromise = null;\n }\n this.dialogElement?.remove();\n }\n afterClosed() {\n return this.promise;\n }\n}\n/**\n * Generic dialog component that renders a Lit component inside a dialog shell.\n *\n * Usage:\n * ```ts\n * // Define your dialog content component\n * class EditItemDialog extends LitElement {\n * // Injected by KRDialog\n * dialogRef: DialogRef<{ label: string }>;\n * data: { label: string };\n *\n * save() {\n * this.dialogRef.close({ label: this.label });\n * }\n * }\n *\n * // Open the dialog\n * const dialogRef = KRDialog.open(EditItemDialog, {\n * data: { label: 'Dashboard' }\n * });\n *\n * const result = await dialogRef.afterClosed();\n * if (result) {\n * console.log('Saved:', result.label);\n * }\n * ```\n */\nlet KRDialog = class KRDialog extends LitElement {\n constructor() {\n super(...arguments);\n this.contentElement = null;\n this.dialogRef = null;\n this.boundHandleKeyDown = this.handleKeyDown.bind(this);\n }\n static open(component, config) {\n const existing = document.querySelector('kr-dialog');\n if (existing) {\n existing.remove();\n }\n const dialogRef = new DialogRef();\n const dialog = document.createElement('kr-dialog');\n dialogRef.setDialogElement(dialog);\n dialog.dialogRef = dialogRef;\n // Create the content component\n const content = new component();\n content.dialogRef = dialogRef;\n if (config?.data) {\n content.data = config.data;\n }\n dialog.contentElement = content;\n document.body.appendChild(dialog);\n document.addEventListener('keydown', dialog.boundHandleKeyDown);\n return dialogRef;\n }\n handleKeyDown(e) {\n if (e.key === 'Escape') {\n this.dialogRef?.close(undefined);\n }\n }\n handleBackdropClick(e) {\n if (e.target.classList.contains('backdrop')) {\n this.dialogRef?.close(undefined);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this.boundHandleKeyDown);\n }\n render() {\n return html `\n <div class=\"backdrop\" @click=${this.handleBackdropClick}></div>\n <div class=\"dialog\">\n ${this.contentElement}\n </div>\n `;\n }\n};\nKRDialog.styles = css `\n :host {\n position: fixed;\n inset: 0;\n z-index: 10000;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .backdrop {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n }\n\n .dialog {\n position: relative;\n background: #1a1a2e;\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 12px;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);\n max-height: 90vh;\n overflow: auto;\n }\n `;\n__decorate([\n state()\n], KRDialog.prototype, \"contentElement\", void 0);\nKRDialog = __decorate([\n customElement('kr-dialog')\n], KRDialog);\nexport { KRDialog };\n//# sourceMappingURL=dialog.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};\nvar KRSnackbar_1;\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n/**\n * A snackbar component for displaying brief notification messages.\n *\n * Snackbars appear at the bottom-left of the screen and automatically\n * dismiss after a configurable duration. Multiple snackbars stack vertically.\n *\n * @fires dismiss - Fired when the snackbar is dismissed (manually or automatically)\n *\n * @example\n * ```ts\n * // Show a success message\n * KRSnackbar.show({ message: 'Item saved successfully', type: 'success' });\n *\n * // Show a message with title\n * KRSnackbar.show({ title: 'Upload Complete', message: 'Your file has been uploaded.', type: 'success' });\n *\n * // Show an error that stays until manually dismissed\n * KRSnackbar.show({ message: 'Failed to save', type: 'error', duration: 0 });\n * ```\n */\nlet KRSnackbar = KRSnackbar_1 = class KRSnackbar extends LitElement {\n constructor() {\n super(...arguments);\n this.dismissTimeout = null;\n /**\n * The snackbar type/severity. Controls the color scheme and icon.\n */\n this.type = 'info';\n /**\n * Optional title to display above the message.\n */\n this.title = '';\n /**\n * The message to display in the snackbar.\n */\n this.message = '';\n /**\n * Duration in milliseconds before auto-dismiss. Set to 0 to disable auto-dismiss.\n * @default 5000\n */\n this.duration = 5000;\n }\n /**\n * Show a snackbar with the given options.\n * @param options - Configuration including message, optional title, type, and duration\n * @returns The created snackbar element\n */\n static show(options) {\n const snackbar = document.createElement('kr-snackbar');\n snackbar.message = options.message;\n snackbar.title = options.title ?? '';\n snackbar.type = options.type ?? 'info';\n if (options.duration !== undefined) {\n snackbar.duration = options.duration;\n }\n else if (snackbar.type === 'error') {\n snackbar.duration = 0;\n }\n else {\n snackbar.duration = 5000;\n }\n document.body.appendChild(snackbar);\n return snackbar;\n }\n connectedCallback() {\n super.connectedCallback();\n // Set role and type class on host\n this.setAttribute('role', 'alert');\n this.classList.add(`kr-snackbar--${this.type}`);\n if (this.title) {\n this.classList.add('kr-snackbar--has-title');\n }\n // Add to active snackbars and update positions\n KRSnackbar_1.activeSnackbars.push(this);\n this.updatePositions();\n // Set up auto-dismiss\n if (this.duration > 0) {\n this.dismissTimeout = window.setTimeout(() => {\n this.dismiss();\n }, this.duration);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n // Remove from active snackbars\n const index = KRSnackbar_1.activeSnackbars.indexOf(this);\n if (index > -1) {\n KRSnackbar_1.activeSnackbars.splice(index, 1);\n }\n // Update positions of remaining snackbars\n this.updatePositions();\n // Clear timeout\n if (this.dismissTimeout) {\n clearTimeout(this.dismissTimeout);\n }\n }\n updatePositions() {\n let bottomOffset = 24;\n for (const snackbar of KRSnackbar_1.activeSnackbars) {\n snackbar.style.bottom = `${bottomOffset}px`;\n bottomOffset += snackbar.offsetHeight + 8;\n }\n }\n dismiss() {\n if (this.dismissTimeout) {\n clearTimeout(this.dismissTimeout);\n this.dismissTimeout = null;\n }\n this.classList.add('kr-snackbar--closing');\n this.addEventListener('animationend', () => {\n this.dispatchEvent(new CustomEvent('dismiss', { bubbles: true, composed: true }));\n this.remove();\n }, { once: true });\n }\n render() {\n const icons = {\n info: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clip-rule=\"evenodd\"/></svg>`,\n success: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\"/></svg>`,\n warning: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\"/></svg>`,\n error: html `<svg class=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\"/></svg>`,\n };\n return html `\n ${icons[this.type]}\n <div class=\"content\">\n ${this.title ? html `<div class=\"title\">${this.title}</div>` : ''}\n <div class=\"message\">${this.message}</div>\n </div>\n <button\n class=\"dismiss\"\n type=\"button\"\n aria-label=\"Dismiss\"\n @click=${this.dismiss}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\"/>\n </svg>\n </button>\n `;\n }\n};\nKRSnackbar.styles = css `\n :host,\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n position: fixed;\n left: 16px;\n z-index: 10000;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 14px 12px 14px 16px;\n border-radius: 8px;\n border: 1px solid;\n border-left: 4px solid;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 280px;\n max-width: 400px;\n min-height: 48px;\n animation: slideIn 0.2s ease-out;\n }\n\n :host(.kr-snackbar--has-title) {\n align-items: flex-start;\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n @keyframes slideOut {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(-100%);\n }\n }\n\n :host(.kr-snackbar--closing) {\n animation: slideOut 0.15s ease-in forwards;\n }\n\n /* Variants */\n :host(.kr-snackbar--info) {\n background-color: #eff6ff;\n border-color: #bfdbfe;\n border-left-color: #3b82f6;\n }\n\n :host(.kr-snackbar--info) .icon {\n color: #2563eb;\n }\n\n :host(.kr-snackbar--success) {\n background-color: #f0fdf4;\n border-color: #bbf7d0;\n border-left-color: #22c55e;\n }\n\n :host(.kr-snackbar--success) .icon {\n color: #16a34a;\n }\n\n :host(.kr-snackbar--warning) {\n background-color: #fffbeb;\n border-color: #fde68a;\n border-left-color: #f59e0b;\n }\n\n :host(.kr-snackbar--warning) .icon {\n color: #d97706;\n }\n\n :host(.kr-snackbar--error) {\n background-color: #fef2f2;\n border-color: #fecaca;\n border-left-color: #ef4444;\n }\n\n :host(.kr-snackbar--error) .icon {\n color: #dc2626;\n }\n\n .icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n margin-top: 1px;\n }\n\n .content {\n flex: 1;\n min-width: 0;\n }\n\n .title {\n font-size: 14px;\n font-weight: 600;\n color: #000000;\n margin: 0 0 2px 0;\n }\n\n .message {\n font-size: 14px;\n color: #000000;\n margin: 0;\n }\n\n .dismiss {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n background: none;\n border: none;\n border-radius: 4px;\n color: #6b7280;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n }\n\n .dismiss:hover {\n background-color: rgba(0, 0, 0, 0.05);\n color: #374151;\n }\n\n .dismiss:focus-visible {\n outline: 2px solid #3b82f6;\n outline-offset: 2px;\n }\n `;\n/** Track active snackbars for stacking */\nKRSnackbar.activeSnackbars = [];\n__decorate([\n property({ type: String })\n], KRSnackbar.prototype, \"type\", void 0);\n__decorate([\n property({ type: String })\n], KRSnackbar.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], KRSnackbar.prototype, \"message\", void 0);\n__decorate([\n property({ type: Number })\n], KRSnackbar.prototype, \"duration\", void 0);\nKRSnackbar = KRSnackbar_1 = __decorate([\n customElement('kr-snackbar')\n], KRSnackbar);\nexport { KRSnackbar };\n//# sourceMappingURL=snackbar.js.map","import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-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, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { krBaseCSS } from '../style/base.js';\n/**\n * A tabbed navigation component for switching between content sections.\n *\n * @element kr-tab-group\n *\n * @slot - Default slot for kr-tab children\n *\n * @fires tab-change - Fired when the active tab changes, detail: { activeTabId: string }\n * @fires tab-dismiss - Fired when a dismissible tab is closed, detail: { tabId: string }\n *\n * @example\n * ```html\n * <kr-tab-group active-tab-id=\"settings\">\n * <kr-tab id=\"home\" title=\"Home\">\n * <svg slot=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">...</svg>\n * <p>Home content here</p>\n * </kr-tab>\n * <kr-tab id=\"settings\" title=\"Settings\" badge=\"3\">\n * <svg slot=\"icon\" viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"16\" height=\"16\">...</svg>\n * <p>Settings content here</p>\n * </kr-tab>\n * </kr-tab-group>\n * ```\n */\nlet KRTabGroup = class KRTabGroup extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Whether tabs should stretch to fill the full width evenly\n */\n this.justified = false;\n /**\n * Size of the tabs: 'small' | 'medium' | 'large'\n */\n this.size = 'medium';\n }\n updated(changes) {\n if (changes.has('activeTabId')) {\n this._updateActiveTab();\n }\n }\n firstUpdated() {\n this._updateActiveTab();\n }\n _getTabs() {\n return Array.from(this.querySelectorAll('kr-tab'));\n }\n _updateActiveTab() {\n const tabs = this._getTabs();\n if (tabs.length === 0)\n return;\n if (!this.activeTabId) {\n this.activeTabId = tabs[0]?.id;\n }\n tabs.forEach((tab) => {\n tab.active = tab.id === this.activeTabId;\n });\n this.requestUpdate();\n }\n _handleTabClick(tab) {\n if (tab.disabled)\n return;\n this.activeTabId = tab.id;\n this.dispatchEvent(new CustomEvent('tab-change', {\n detail: { activeTabId: tab.id },\n bubbles: true,\n composed: true,\n }));\n }\n _handleTabDismiss(tab, e) {\n e.stopPropagation();\n this.dispatchEvent(new CustomEvent('tab-dismiss', {\n detail: { tabId: tab.id },\n bubbles: true,\n composed: true,\n }));\n }\n _handleKeyDown(e) {\n const enabledTabs = this._getTabs().filter((t) => !t.disabled);\n const currentIndex = enabledTabs.findIndex((t) => t.id === this.activeTabId);\n let newIndex = -1;\n switch (e.key) {\n case 'ArrowLeft':\n newIndex = currentIndex > 0 ? currentIndex - 1 : enabledTabs.length - 1;\n break;\n case 'ArrowRight':\n newIndex = currentIndex < enabledTabs.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = enabledTabs.length - 1;\n break;\n }\n if (newIndex >= 0) {\n e.preventDefault();\n const newTab = enabledTabs[newIndex];\n this.activeTabId = newTab.id;\n this.dispatchEvent(new CustomEvent('tab-change', {\n detail: { activeTabId: newTab.id },\n bubbles: true,\n composed: true,\n }));\n const tabButtons = this.shadowRoot?.querySelectorAll('.label');\n const targetButton = Array.from(tabButtons || []).find((btn) => btn.getAttribute('data-tab-id') === newTab.id);\n targetButton?.focus();\n }\n }\n _renderTabIcon(tab) {\n const iconElement = tab.getIconElement();\n if (!iconElement)\n return nothing;\n // Clone the icon element to render in the header\n const clonedIcon = iconElement.cloneNode(true);\n clonedIcon.removeAttribute('slot');\n return html `<span class=\"label-icon\">${clonedIcon}</span>`;\n }\n render() {\n return html `\n <div class=\"header\" role=\"tablist\" @keydown=${this._handleKeyDown}>\n ${this._getTabs().map((tab) => html `\n <button\n class=${classMap({\n label: true,\n 'label--active': tab.id === this.activeTabId,\n 'label--justified': this.justified,\n })}\n role=\"tab\"\n data-tab-id=${tab.id}\n aria-selected=${tab.id === this.activeTabId}\n aria-controls=${`panel-${tab.id}`}\n tabindex=${tab.id === this.activeTabId ? 0 : -1}\n ?disabled=${tab.disabled}\n @click=${() => this._handleTabClick(tab)}\n >\n ${this._renderTabIcon(tab)}\n <span>${tab.title}</span>\n ${tab.badge ? html `<span class=\"label-badge\" style=${styleMap({ backgroundColor: tab.badgeBackground, color: tab.badgeColor })}>${tab.badge}</span>` : nothing}\n ${tab.dismissible\n ? html `\n <button\n class=\"label-dismiss\"\n type=\"button\"\n aria-label=\"Close tab\"\n @click=${(e) => this._handleTabDismiss(tab, e)}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"12\" height=\"12\"><path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\"/></svg>\n </button>\n `\n : nothing}\n </button>\n `)}\n </div>\n <div class=\"content\" role=\"tabpanel\" aria-labelledby=${this.activeTabId || ''}>\n <slot @slotchange=${this._updateActiveTab}></slot>\n </div>\n `;\n }\n};\nKRTabGroup.styles = [\n krBaseCSS,\n css `\n :host {\n display: flex;\n flex-direction: column;\n }\n\n .header {\n height: 44px;\n display: flex;\n flex-shrink: 0;\n align-items: stretch;\n border-bottom: 1px solid #e5e7eb;\n overflow-x: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .header::-webkit-scrollbar {\n display: none;\n }\n\n .label {\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n font-family: inherit;\n font-size: 14px;\n font-weight: 400;\n color: var(--kr-text-muted);\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;\n white-space: nowrap;\n }\n\n .label:hover:not(:disabled) {\n color: var(--kr-text);\n }\n\n .label:focus-visible {\n outline: 2px solid var(--kr-focus);\n outline-offset: -2px;\n }\n\n .label--active {\n color: var(--kr-primary);\n border-bottom-color: var(--kr-primary);\n }\n\n .label:disabled {\n color: var(--kr-text-disabled);\n cursor: not-allowed;\n }\n\n .label--justified {\n flex: 1;\n justify-content: center;\n }\n\n :host([size=\"small\"]) .label {\n padding: 8px 16px;\n font-size: 13px;\n gap: 6px;\n }\n\n :host([size=\"large\"]) .label {\n padding: 16px 20px;\n font-size: 16px;\n gap: 10px;\n }\n\n .label-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .label-badge {\n font-size: 11px;\n font-weight: 500;\n color: var(--kr-primary-text);\n background-color: var(--kr-primary);\n padding: 2px 8px;\n border-radius: 10px;\n margin-left: 4px;\n }\n\n .label-dismiss {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 4px;\n padding: 0;\n background: none;\n border: none;\n border-radius: 2px;\n color: var(--kr-text-muted);\n cursor: pointer;\n transition: background-color 0.15s ease, color 0.15s ease;\n }\n\n .label-dismiss:hover {\n background-color: var(--kr-border);\n color: var(--kr-text);\n }\n\n .label-dismiss:focus-visible {\n outline: 2px solid var(--kr-focus);\n outline-offset: 2px;\n }\n\n\n .content {\n flex: 1;\n overflow: auto;\n }\n\n /* Default slot styles - kr-tab children show/hide via their own active attribute */\n ::slotted(kr-tab) {\n display: none;\n }\n\n ::slotted(kr-tab[active]) {\n display: block;\n }\n `,\n];\n__decorate([\n property({ type: String, attribute: 'active-tab-id' })\n], KRTabGroup.prototype, \"activeTabId\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTabGroup.prototype, \"justified\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], KRTabGroup.prototype, \"size\", void 0);\nKRTabGroup = __decorate([\n customElement('kr-tab-group')\n], KRTabGroup);\nexport { KRTabGroup };\n//# sourceMappingURL=tabs.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';\nimport { krBaseCSS } from '../style/base.js';\n/**\n * A tab for the kr-tab-group component.\n *\n * @element kr-tab\n * @slot - The tab panel content\n * @slot icon - Optional icon to display in the tab header\n */\nlet KRTab = class KRTab extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Unique identifier for the tab\n */\n this.id = '';\n /**\n * Display title for the tab\n */\n this.title = '';\n /**\n * Badge text displayed next to title (e.g. notification count)\n */\n this.badge = '';\n /**\n * Badge background color\n */\n this.badgeBackground = '';\n /**\n * Badge text color\n */\n this.badgeColor = '';\n /**\n * Whether the tab is disabled\n */\n this.disabled = false;\n /**\n * Whether the tab can be dismissed/closed\n */\n this.dismissible = false;\n /**\n * Whether this tab is currently active (set by parent)\n */\n this.active = false;\n }\n /**\n * Gets the icon element from the icon slot (if any)\n */\n getIconElement() {\n return this.querySelector('[slot=\"icon\"]');\n }\n render() {\n return html `<slot></slot>`;\n }\n};\nKRTab.styles = [\n krBaseCSS,\n css `\n :host {\n display: none;\n }\n\n :host([active]) {\n display: block;\n }\n `,\n];\n__decorate([\n property({ type: String, reflect: true })\n], KRTab.prototype, \"id\", void 0);\n__decorate([\n property({ type: String })\n], KRTab.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], KRTab.prototype, \"badge\", void 0);\n__decorate([\n property({ type: String, attribute: 'badge-background' })\n], KRTab.prototype, \"badgeBackground\", void 0);\n__decorate([\n property({ type: String, attribute: 'badge-color' })\n], KRTab.prototype, \"badgeColor\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTab.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTab.prototype, \"dismissible\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], KRTab.prototype, \"active\", void 0);\nKRTab = __decorate([\n customElement('kr-tab')\n], KRTab);\nexport { KRTab };\n//# sourceMappingURL=tab.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 { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { krBaseCSS } from '../style/base.js';\nimport '../button/button.js';\nimport { KRSnackbar } from '../snackbar/snackbar.js';\n// === Solr Utilities ===\nconst SOLR_RESERVED_CHARS = [\n '\"', '+', '-', '&&', '||', '!', '(', ')', '{',\n '}', '[', ']', '^', '~', '*', '?', ':'\n];\nconst SOLR_RESERVED_CHARS_REPLACEMENT = [\n '\\\\\"', '\\\\+', '\\\\-', '\\\\&\\\\&', '\\\\|\\\\|', '\\\\!', '\\\\(', '\\\\)', '\\\\{',\n '\\\\}', '\\\\[', '\\\\]', '\\\\^', '\\\\~', '\\\\*', '\\\\?', '\\\\:'\n];\nfunction escapeSolrQuery(query) {\n let escaped = query;\n for (let i = 0; i < SOLR_RESERVED_CHARS.length; i++) {\n escaped = escaped.split(SOLR_RESERVED_CHARS[i]).join(SOLR_RESERVED_CHARS_REPLACEMENT[i]);\n }\n return escaped;\n}\nlet KRTable = class KRTable extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * Internal flag to switch between scroll edge modes:\n * - 'overlay': Fixed padding with overlay elements that hide content at edges (scrollbar at viewport edge)\n * - 'edge': Padding scrolls with content, allowing table to reach edges when scrolling\n */\n this._scrollStyle = 'overlay';\n this._data = [];\n this._dataState = 'idle';\n this._page = 1;\n this._pageSize = 50;\n this._totalItems = 0;\n this._totalPages = 0;\n this._searchQuery = '';\n this._canScrollLeft = false;\n this._canScrollRight = false;\n this._canScrollHorizontal = false;\n this._columnPickerOpen = false;\n this._displayedColumns = [];\n this._resizing = null;\n this._resizeObserver = null;\n this._searchPositionLocked = false;\n this._def = { columns: [] };\n this.def = { columns: [] };\n this._handleClickOutsideColumnPicker = (e) => {\n if (!this._columnPickerOpen)\n return;\n const path = e.composedPath();\n const picker = this.shadowRoot?.querySelector('.column-picker-wrapper');\n if (picker && !path.includes(picker)) {\n this._columnPickerOpen = false;\n }\n };\n this._handleResizeMove = (e) => {\n if (!this._resizing)\n return;\n const col = this._def.columns.find(c => c.id === this._resizing.columnId);\n if (col) {\n const newWidth = this._resizing.startWidth + (e.clientX - this._resizing.startX);\n col.width = `${Math.min(900, Math.max(50, newWidth))}px`;\n this.requestUpdate();\n }\n };\n this._handleResizeEnd = () => {\n this._resizing = null;\n document.removeEventListener('mousemove', this._handleResizeMove);\n document.removeEventListener('mouseup', this._handleResizeEnd);\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.classList.toggle('kr-table--scroll-overlay', this._scrollStyle === 'overlay');\n this.classList.toggle('kr-table--scroll-edge', this._scrollStyle === 'edge');\n this._fetch();\n this._initRefresh();\n document.addEventListener('click', this._handleClickOutsideColumnPicker);\n this._resizeObserver = new ResizeObserver(() => {\n // Unlock and recalculate on resize since layout changes\n this._searchPositionLocked = false;\n this._updateSearchPosition();\n });\n this._resizeObserver.observe(this);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n clearInterval(this._refreshTimer);\n document.removeEventListener('click', this._handleClickOutsideColumnPicker);\n this._resizeObserver?.disconnect();\n }\n willUpdate(changedProperties) {\n if (changedProperties.has('def')) {\n // Copy user's def and normalize action columns\n this._def = {\n ...this.def,\n columns: this.def.columns.map(col => {\n if (col.type === 'actions') {\n return { ...col, label: col.label ?? '', sticky: 'right', resizable: false };\n }\n return { ...col };\n })\n };\n this._displayedColumns = this._def.displayedColumns || this._def.columns.map(c => c.id);\n this._fetch();\n this._initRefresh();\n }\n }\n updated(changedProperties) {\n this._updateScrollFlags();\n this._syncSlottedContent();\n }\n /** Syncs light DOM content for cells with custom render functions */\n _syncSlottedContent() {\n const columns = this.getDisplayedColumns().filter(col => col.render);\n if (!columns.length)\n return;\n // Clear old slotted content\n this.querySelectorAll('[slot^=\"cell-\"]').forEach(el => el.remove());\n // Create new slotted content\n this._data.forEach((row, rowIndex) => {\n columns.forEach(col => {\n const result = col.render(row);\n const content = typeof result === 'string' ? result : '';\n if (content) {\n const el = document.createElement('span');\n el.slot = `cell-${rowIndex}-${col.id}`;\n if (col.type === 'actions') {\n el.style.display = 'flex';\n el.style.gap = '8px';\n }\n el.innerHTML = content;\n this.appendChild(el);\n }\n });\n });\n }\n // ----------------------------------------------------------------------------\n // Public Interface\n // ----------------------------------------------------------------------------\n refresh() {\n this._fetch();\n }\n goToPrevPage() {\n if (this._page > 1) {\n this._page--;\n this._fetch();\n }\n }\n goToNextPage() {\n if (this._page < this._totalPages) {\n this._page++;\n this._fetch();\n }\n }\n goToPage(page) {\n if (page >= 1 && page <= this._totalPages) {\n this._page = page;\n this._fetch();\n }\n }\n // ----------------------------------------------------------------------------\n // Data Fetching\n // ----------------------------------------------------------------------------\n /**\n * Fetches data from the API and updates the table.\n * Shows a loading spinner while fetching, then displays rows on success\n * or an error snackbar on failure.\n * Request/response format depends on dataSource.mode (solr, opensearch, db).\n */\n _fetch() {\n if (!this._def.dataSource)\n return;\n this._dataState = 'loading';\n // Build request based on mode\n let request;\n switch (this._def.dataSource.mode) {\n case 'opensearch':\n throw Error('Opensearch not supported yet');\n case 'db':\n request = {\n page: this._page - 1,\n size: this._pageSize,\n sorts: [],\n filterFields: [],\n queryFields: [],\n facetFields: []\n };\n if (this._searchQuery?.trim().length) {\n this._def.columns.filter(col => col.searchable).forEach(col => {\n request.queryFields.push({\n name: col.id,\n operation: 'CONTAINS',\n value: this._searchQuery,\n and: false\n });\n });\n }\n break;\n default: // solr\n request = {\n page: this._page - 1,\n size: this._pageSize,\n sorts: [],\n filterFields: [],\n queryFields: [],\n facetFields: []\n };\n if (this._searchQuery?.trim().length) {\n request.queryFields.push({\n name: '_text_',\n operation: 'IS',\n value: escapeSolrQuery(this._searchQuery)\n });\n }\n }\n this._def.dataSource.fetch(request)\n .then(response => {\n // Parse response based on mode\n switch (this._def.dataSource?.mode) {\n case 'opensearch': {\n throw Error('Opensearch not supported yet');\n break;\n }\n case 'db': {\n const res = response;\n this._data = res.data.content;\n this._totalItems = res.data.totalElements;\n this._totalPages = res.data.totalPages;\n this._pageSize = res.data.size;\n break;\n }\n default: { // solr\n const res = response;\n this._data = res.data.content;\n this._totalItems = res.data.totalElements;\n this._totalPages = res.data.totalPages;\n this._pageSize = res.data.size;\n }\n }\n this._dataState = 'success';\n this._updateSearchPosition();\n })\n .catch(err => {\n this._dataState = 'error';\n KRSnackbar.show({\n message: err instanceof Error ? err.message : 'Failed to load data',\n type: 'error'\n });\n });\n }\n /**\n * Sets up auto-refresh so the table automatically fetches fresh data\n * at a regular interval (useful for dashboards, monitoring views).\n * Configured via def.refreshInterval in milliseconds.\n */\n _initRefresh() {\n clearInterval(this._refreshTimer);\n if (this._def.refreshInterval && this._def.refreshInterval > 0) {\n this._refreshTimer = window.setInterval(() => {\n this._fetch();\n }, this._def.refreshInterval);\n }\n }\n _handleSearch(e) {\n const input = e.target;\n this._searchQuery = input.value;\n this._page = 1;\n this._fetch();\n }\n _getGridTemplateColumns() {\n const cols = this.getDisplayedColumns();\n return cols.map((col) => {\n // If column has explicit width, use it\n if (col.width) {\n return col.width;\n }\n // Actions columns: fit content without minimum\n if (col.type === 'actions') {\n return 'max-content';\n }\n // No width specified - use content-based sizing with minimum\n return 'minmax(80px, auto)';\n }).join(' ');\n }\n /**\n * Updates search position to be centered with equal gaps from title and tools.\n * On first call: resets to flex centering, measures position, then locks with fixed margin.\n * Subsequent calls are ignored unless _searchPositionLocked is reset (e.g., on resize).\n */\n _updateSearchPosition() {\n // Skip if already locked (prevents shifts on pagination changes)\n if (this._searchPositionLocked)\n return;\n const search = this.shadowRoot?.querySelector('.search');\n const searchField = search?.querySelector('.search-field');\n if (!search || !searchField)\n return;\n // Reset to flex centering\n search.style.justifyContent = 'center';\n searchField.style.marginLeft = '';\n requestAnimationFrame(() => {\n const searchRect = search.getBoundingClientRect();\n const fieldRect = searchField.getBoundingClientRect();\n // Calculate how far from the left of search container the field currently is\n const currentOffset = fieldRect.left - searchRect.left;\n // Lock position: switch to flex-start and use fixed margin\n search.style.justifyContent = 'flex-start';\n searchField.style.marginLeft = `${currentOffset}px`;\n // Mark as locked so pagination changes don't shift the search\n this._searchPositionLocked = true;\n });\n }\n // ----------------------------------------------------------------------------\n // Columns\n // ----------------------------------------------------------------------------\n _toggleColumnPicker() {\n this._columnPickerOpen = !this._columnPickerOpen;\n }\n _toggleColumn(columnId) {\n if (this._displayedColumns.includes(columnId)) {\n this._displayedColumns = this._displayedColumns.filter(id => id !== columnId);\n }\n else {\n this._displayedColumns = [...this._displayedColumns, columnId];\n }\n }\n // When a user toggles a column on via the column picker, it gets appended\n // to _displayedColumns. By mapping over _displayedColumns (not def.columns),\n // the new column appears at the right edge of the table instead of jumping\n // back to its original position in the column definition.\n // Actions columns are always moved to the end.\n getDisplayedColumns() {\n return this._displayedColumns\n .map(id => this._def.columns.find(col => col.id === id))\n .sort((a, b) => {\n if (a.type === 'actions' && b.type !== 'actions')\n return 1;\n if (a.type !== 'actions' && b.type === 'actions')\n return -1;\n return 0;\n });\n }\n // ----------------------------------------------------------------------------\n // Scrolling\n // ----------------------------------------------------------------------------\n /**\n * Scroll event handler that updates scroll flags in real-time as user scrolls.\n * Updates shadow indicators to show if more content exists left/right.\n */\n _handleScroll(e) {\n const container = e.target;\n this._canScrollLeft = container.scrollLeft > 0;\n this._canScrollRight = container.scrollLeft < container.scrollWidth - container.clientWidth - 1;\n }\n /**\n * Updates scroll state flags for the table content container.\n * - _canScrollLeft: true if scrolled right (can scroll back left)\n * - _canScrollRight: true if more content exists to the right\n * - _canScrollHorizontal: true if content is wider than container\n * These flags control scroll shadow indicators and CSS classes.\n */\n _updateScrollFlags() {\n const container = this.shadowRoot?.querySelector('.content');\n if (container) {\n this._canScrollLeft = container.scrollLeft > 0;\n this._canScrollRight = container.scrollWidth > container.clientWidth && container.scrollLeft < container.scrollWidth - container.clientWidth - 1;\n this._canScrollHorizontal = container.scrollWidth > container.clientWidth;\n }\n this.classList.toggle('kr-table--scroll-left-available', this._canScrollLeft);\n this.classList.toggle('kr-table--scroll-right-available', this._canScrollRight);\n this.classList.toggle('kr-table--scroll-horizontal-available', this._canScrollHorizontal);\n this.classList.toggle('kr-table--sticky-left', this.getDisplayedColumns().some(c => c.sticky === 'left'));\n this.classList.toggle('kr-table--sticky-right', this.getDisplayedColumns().some(c => c.sticky === 'right'));\n }\n // ----------------------------------------------------------------------------\n // Column Resizing\n // ----------------------------------------------------------------------------\n _handleResizeStart(e, columnId) {\n e.preventDefault();\n const headerCell = this.shadowRoot?.querySelector(`.header-cell[data-column-id=\"${columnId}\"]`);\n this._resizing = {\n columnId,\n startX: e.clientX,\n startWidth: headerCell?.offsetWidth || 200\n };\n document.addEventListener('mousemove', this._handleResizeMove);\n document.addEventListener('mouseup', this._handleResizeEnd);\n }\n // ----------------------------------------------------------------------------\n // Header\n // ----------------------------------------------------------------------------\n _handleAction(action) {\n if (action.href) {\n return;\n }\n this.dispatchEvent(new CustomEvent('action', {\n detail: { action: action.id },\n bubbles: true,\n composed: true\n }));\n }\n // ----------------------------------------------------------------------------\n // Rendering\n // ----------------------------------------------------------------------------\n _renderCellContent(column, row, rowIndex) {\n const value = row[column.id];\n if (column.render) {\n // Use slot to project content from light DOM so external styles apply\n return html `<slot name=\"cell-${rowIndex}-${column.id}\"></slot>`;\n }\n if (value === null || value === undefined) {\n return '';\n }\n switch (column.type) {\n case 'number':\n return typeof value === 'number' ? value.toLocaleString() : String(value);\n case 'currency':\n return typeof value === 'number'\n ? value.toLocaleString('en-US', { style: 'currency', currency: 'USD' })\n : String(value);\n case 'date': {\n let date;\n if (value instanceof Date) {\n date = value;\n }\n else if (typeof value === 'string' && /^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}/.test(value)) {\n // MySQL datetime format (UTC): \"2026-01-28 01:33:44:517\"\n // Replace last colon before ms with dot, append Z for UTC\n const isoString = value.replace(/(\\d{2}:\\d{2}:\\d{2}):(\\d+)$/, '$1.$2').replace(' ', 'T') + 'Z';\n date = new Date(isoString);\n }\n else {\n date = new Date(value);\n }\n // Show date and time for datetime values\n return date.toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: 'numeric', minute: '2-digit'\n });\n }\n case 'boolean':\n if (value === true)\n return 'Yes';\n if (value === false)\n return 'No';\n return '';\n default:\n return String(value);\n }\n }\n /**\n * Returns CSS classes for a header cell based on column config.\n */\n _getHeaderCellClasses(column, index) {\n return {\n 'header-cell': true,\n 'header-cell--align-center': column.align === 'center',\n 'header-cell--align-right': column.align === 'right',\n 'header-cell--sticky-left': column.sticky === 'left',\n 'header-cell--sticky-left-last': column.sticky === 'left' &&\n !this.getDisplayedColumns().slice(index + 1).some(c => c.sticky === 'left'),\n 'header-cell--sticky-right': column.sticky === 'right',\n 'header-cell--sticky-right-first': column.sticky === 'right' &&\n !this.getDisplayedColumns().slice(0, index).some(c => c.sticky === 'right')\n };\n }\n /**\n * Returns CSS classes for a table cell based on column config:\n * - Alignment (center, right)\n * - Sticky positioning (left, right)\n * - Border classes for the last left-sticky or first right-sticky column\n */\n _getCellClasses(column, index) {\n return {\n 'cell': true,\n 'cell--actions': column.type === 'actions',\n 'cell--align-center': column.align === 'center',\n 'cell--align-right': column.align === 'right',\n 'cell--sticky-left': column.sticky === 'left',\n 'cell--sticky-left-last': column.sticky === 'left' &&\n !this.getDisplayedColumns().slice(index + 1).some(c => c.sticky === 'left'),\n 'cell--sticky-right': column.sticky === 'right',\n 'cell--sticky-right-first': column.sticky === 'right' &&\n !this.getDisplayedColumns().slice(0, index).some(c => c.sticky === 'right')\n };\n }\n /**\n * Returns inline styles for a table cell:\n * - Width (from column config or default 150px)\n * - Min-width (if specified)\n * - Left/right offset for sticky columns (calculated from widths of preceding sticky columns)\n */\n _getCellStyle(column, index) {\n const styles = {};\n if (column.sticky === 'left') {\n let leftOffset = 0;\n for (let i = 0; i < index; i++) {\n const col = this.getDisplayedColumns()[i];\n if (col.sticky === 'left') {\n leftOffset += parseInt(col.width || '0', 10);\n }\n }\n styles.left = `${leftOffset}px`;\n }\n if (column.sticky === 'right') {\n let rightOffset = 0;\n for (let i = index + 1; i < this.getDisplayedColumns().length; i++) {\n const col = this.getDisplayedColumns()[i];\n if (col.sticky === 'right') {\n rightOffset += parseInt(col.width || '0', 10);\n }\n }\n styles.right = `${rightOffset}px`;\n }\n return styles;\n }\n /**\n * Renders the pagination controls:\n * - Previous page arrow (disabled on first page)\n * - Range text showing \"1-50 of 150\" format\n * - Next page arrow (disabled on last page)\n *\n * Hidden when there's no data or all data fits on one page.\n */\n _renderPagination() {\n const start = (this._page - 1) * this._pageSize + 1;\n const end = Math.min(this._page * this._pageSize, this._totalItems);\n return html `\n <div class=\"pagination\">\n <span\n class=\"pagination-icon ${this._page === 1 ? 'pagination-icon--disabled' : ''}\"\n @click=${this.goToPrevPage}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"/></svg>\n </span>\n <span class=\"pagination-info\">${start}-${end} of ${this._totalItems}</span>\n <span\n class=\"pagination-icon ${this._page === this._totalPages ? 'pagination-icon--disabled' : ''}\"\n @click=${this.goToNextPage}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/></svg>\n </span>\n </div>\n `;\n }\n /**\n * Renders the header toolbar containing:\n * - Title (left)\n * - Search bar with view selector dropdown (center)\n * - Tools (right): page navigation, refresh button, column visibility picker, actions dropdown\n *\n * Hidden when there's no title, no actions, and data fits on one page.\n */\n _renderHeader() {\n if (!this._def.title && !this._def.actions?.length && this._totalPages <= 1) {\n return nothing;\n }\n return html `\n <div class=\"header\">\n <div class=\"title\">${this._def.title ?? ''}</div>\n ${this._def.dataSource?.mode === 'db' && !this._def.columns.some(col => col.searchable) ? html `<div class=\"search\"></div>` : html `\n <div class=\"search\">\n <!-- TODO: Saved views dropdown\n <div class=\"views\">\n <span>Default View</span>\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>\n </div>\n -->\n <div class=\"search-field\">\n <svg class=\"search-icon\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\"/></svg>\n <input\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Search...\"\n .value=${this._searchQuery}\n @input=${this._handleSearch}\n />\n </div>\n </div>\n `}\n <div class=\"tools\">\n ${this._renderPagination()}\n <span class=\"refresh\" title=\"Refresh\" @click=${() => this.refresh()}>\n <svg viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z\"/></svg>\n </span>\n <div class=\"column-picker-wrapper\">\n <span class=\"header-icon\" title=\"Columns\" @click=${this._toggleColumnPicker}>\n <svg viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M121-280v-400q0-33 23.5-56.5T201-760h559q33 0 56.5 23.5T840-680v400q0 33-23.5 56.5T760-200H201q-33 0-56.5-23.5T121-280Zm79 0h133v-400H200v400Zm213 0h133v-400H413v400Zm213 0h133v-400H626v400Z\"/></svg>\n </span>\n <div class=\"column-picker ${this._columnPickerOpen ? 'open' : ''}\">\n ${[...this._def.columns].filter(col => col.type !== 'actions').sort((a, b) => (a.label ?? a.id).localeCompare(b.label ?? b.id)).map(col => html `\n <div class=\"column-picker-item\" @click=${() => this._toggleColumn(col.id)}>\n <div class=\"column-picker-checkbox ${this._displayedColumns.includes(col.id) ? 'checked' : ''}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/></svg>\n </div>\n <span class=\"column-picker-label\">${col.label ?? col.id}</span>\n </div>\n `)}\n </div>\n </div>\n ${this._def.actions?.length === 1 ? html `\n <kr-button\n class=\"actions\"\n .href=${this._def.actions[0].href}\n .target=${this._def.actions[0].target}\n @click=${() => this._handleAction(this._def.actions[0])}\n >\n ${this._def.actions[0].label}\n </kr-button>\n ` : this._def.actions?.length ? html `\n <kr-button\n class=\"actions\"\n .options=${this._def.actions.map(a => ({ id: a.id, label: a.label }))}\n @option-select=${(e) => this._handleAction({ id: e.detail.id, label: e.detail.label })}\n >\n Actions\n </kr-button>\n ` : nothing}\n </div>\n </div>\n `;\n }\n /** Renders status message (loading, error, empty) */\n _renderStatus() {\n if (this._dataState === 'loading' && this._data.length === 0) {\n return html `<div class=\"status\">Loading...</div>`;\n }\n if (this._dataState === 'error' && this._data.length === 0) {\n return html `<div class=\"status status--error\">Error loading data</div>`;\n }\n if (this._data.length === 0) {\n return html `<div class=\"status\">No data available</div>`;\n }\n return nothing;\n }\n /** Renders the scrollable data grid with column headers and rows. */\n _renderTable() {\n return html `\n <div class=\"wrapper\">\n <div class=\"overlay-left\"></div>\n <div class=\"overlay-right\"></div>\n ${this._renderStatus()}\n <div class=\"content\" @scroll=${this._handleScroll}>\n <div class=\"table\" style=\"grid-template-columns: ${this._getGridTemplateColumns()}\">\n <div class=\"header-row\">\n ${this.getDisplayedColumns().map((col, i) => html `\n <div\n class=${classMap(this._getHeaderCellClasses(col, i))}\n style=${styleMap(this._getCellStyle(col, i))}\n data-column-id=${col.id}\n >${col.label ?? col.id}${col.resizable !== false ? html `<div\n class=\"header-cell__resize\"\n @mousedown=${(e) => this._handleResizeStart(e, col.id)}\n ></div>` : nothing}</div>\n `)}\n </div>\n ${this._data.map((row, rowIndex) => html `\n <div class=\"row\">\n ${this.getDisplayedColumns().map((col, i) => html `\n <div\n class=${classMap(this._getCellClasses(col, i))}\n style=${styleMap(this._getCellStyle(col, i))}\n data-column-id=${col.id}\n >\n ${this._renderCellContent(col, row, rowIndex)}\n </div>\n `)}\n </div>\n `)}\n </div>\n </div>\n </div>\n `;\n }\n /**\n * Renders a data table with:\n * - Header bar with title, search input with view selector, and tools (pagination, refresh, column visibility, actions dropdown)\n * - Scrollable grid with sticky header row and optional sticky left/right columns\n * - Loading, error message, or empty state when no data\n */\n render() {\n if (!this._def.columns.length) {\n return html `<slot></slot>`;\n }\n return html `\n ${this._renderHeader()}\n ${this._renderTable()}\n `;\n }\n};\nKRTable.styles = [krBaseCSS, css `\n /* -------------------------------------------------------------------------\n * Host\n * ----------------------------------------------------------------------- */\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n container-type: inline-size;\n }\n\n /* -------------------------------------------------------------------------\n * Header\n * ----------------------------------------------------------------------- */\n .header {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 16px;\n margin: 0 24px;\n padding: 0 4px;\n height: 64px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n }\n\n :host(.kr-table--scroll-edge) .header {\n border-bottom: none;\n }\n\n .title {\n font-size: 18px;\n font-weight: 600;\n color: #000;\n }\n\n /* -------------------------------------------------------------------------\n * Content\n * ----------------------------------------------------------------------- */\n .wrapper {\n flex: 1;\n position: relative;\n overflow: hidden;\n }\n\n .content {\n height: 100%;\n overflow: auto;\n padding-bottom: 24px;\n }\n\n /* -------------------------------------------------------------------------\n * Search\n * ----------------------------------------------------------------------- */\n .search {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n }\n\n .search-field {\n width: 100%;\n max-width: 400px;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid #00000038;\n border-radius: 18px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-field:focus-within {\n border-color: #163052;\n box-shadow: 0 0 0 3px rgba(22, 48, 82, 0.1);\n }\n\n /* TODO: Uncomment when views dropdown is added\n .search-field:focus-within .views {\n border-color: #163052;\n }\n */\n\n .search-icon {\n position: absolute;\n left: 16px;\n width: 20px;\n height: 20px;\n color: #656871;\n pointer-events: none;\n }\n\n .search-input {\n height: 36px;\n padding: 0 16px 0 42px;\n border: none;\n border-radius: 16px;\n font-size: 14px;\n font-weight: 400;\n font-family: inherit;\n color: #163052;\n background: transparent;\n outline: none;\n flex: 1;\n min-width: 0;\n width: 100%;\n }\n\n .search-input::placeholder {\n color: #656871;\n font-weight: 400;\n }\n\n .search-input:focus {\n outline: none;\n }\n\n @container (max-width: 800px) {\n .search-field {\n max-width: 250px;\n }\n }\n\n .views {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 36px;\n padding: 0 16px;\n border: 1px solid #00000038;\n border-right: none;\n border-radius: 16px 0 0 16px;\n font-size: 14px;\n font-family: inherit;\n color: #163052;\n background: transparent;\n cursor: pointer;\n white-space: nowrap;\n transition: border-color 0.2s;\n }\n\n .views:hover {\n background: #e8f0f8;\n }\n\n .views svg {\n width: 16px;\n height: 16px;\n color: #163052;\n }\n\n /* -------------------------------------------------------------------------\n * Pagination\n * ----------------------------------------------------------------------- */\n .tools {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .pagination {\n display: flex;\n align-items: center;\n gap: 2px;\n }\n\n .pagination-info {\n font-size: 13px;\n color: var(--kr-primary);\n white-space: nowrap;\n }\n\n .pagination-icon {\n display: flex;\n color: var(--kr-primary);\n cursor: pointer;\n }\n\n .pagination-icon--disabled {\n opacity: 0.3;\n pointer-events: none;\n }\n\n .pagination-icon svg {\n width: 24px;\n height: 24px;\n }\n\n /* -------------------------------------------------------------------------\n * Header Icons\n * ----------------------------------------------------------------------- */\n .refresh,\n .header-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--kr-primary);\n background: #EBF1FA;\n cursor: pointer;\n padding: 6px;\n border-radius: 50%;\n transition: background 0.15s;\n }\n\n .refresh:hover,\n .header-icon:hover {\n background: #e8f0f8;\n }\n\n .refresh svg,\n .header-icon svg {\n width: 24px;\n height: 24px;\n }\n\n /* -------------------------------------------------------------------------\n * Column Picker\n * ----------------------------------------------------------------------- */\n .column-picker-wrapper {\n position: relative;\n }\n\n .column-picker {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 200px;\n max-height: calc(100vh - 120px);\n overflow-y: auto;\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 padding: 8px 0;\n z-index: 100;\n display: none;\n transform-origin: top;\n }\n\n .column-picker.open {\n display: block;\n animation: column-picker-fade-in 150ms ease-out;\n }\n\n @keyframes column-picker-fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .column-picker-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .column-picker-item:hover {\n background: #f3f4f6;\n }\n\n .column-picker-checkbox {\n width: 16px;\n height: 16px;\n border: 1.5px solid #9ca3af;\n border-radius: 3px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.15s;\n }\n\n .column-picker-checkbox.checked {\n background: var(--kr-primary);\n border-color: var(--kr-primary);\n }\n\n .column-picker-checkbox svg {\n width: 12px;\n height: 12px;\n color: white;\n opacity: 0;\n }\n\n .column-picker-checkbox.checked svg {\n opacity: 1;\n }\n\n .column-picker-label {\n font-size: 14px;\n color: #374151;\n }\n\n /* -------------------------------------------------------------------------\n * Table Structure\n * ----------------------------------------------------------------------- */\n .table {\n display: grid;\n width: max-content;\n min-width: 100%;\n font-size: 14px;\n }\n\n .row {\n display: contents;\n }\n\n .row:hover .cell {\n background: #f9fafb;\n }\n\n .header-row {\n display: contents;\n }\n\n .cell {\n height: 48px;\n padding: 0 16px;\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n box-sizing: border-box;\n }\n\n .cell--actions {\n gap: 8px;\n }\n\n .header-cell {\n position: sticky;\n top: 0;\n z-index: 2;\n height: 48px;\n line-height: 48px;\n padding: 0 16px;\n white-space: nowrap;\n box-sizing: border-box;\n background: #f9fafb;\n border-bottom: 2px solid #e5e7eb;\n font-weight: 600;\n color: #374151;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .header-cell__resize {\n position: absolute;\n right: -7px;\n top: 0;\n bottom: 0;\n width: 14px;\n cursor: col-resize;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n }\n\n .header-cell__resize::after {\n content: '';\n width: 2px;\n height: 20px;\n background: #c6c6cd;\n }\n\n .header-cell:last-child .header-cell__resize::after {\n display: none;\n }\n\n .cell {\n background: #fff;\n border-bottom: 1px solid #e5e7eb;\n color: #1f2937;\n }\n\n .cell--align-center {\n text-align: center;\n }\n\n .cell--align-right {\n text-align: right;\n }\n\n .cell--sticky-left,\n .cell--sticky-right {\n position: sticky;\n z-index: 1;\n }\n\n .header-cell--sticky-left,\n .header-cell--sticky-right {\n position: sticky;\n z-index: 3;\n }\n\n .header-cell--align-center {\n text-align: center;\n }\n\n .header-cell--align-right {\n text-align: right;\n }\n\n .header-cell--sticky-left-last,\n .cell--sticky-left-last {\n border-right: 1px solid #d1d5db;\n }\n\n .header-cell--sticky-right-first,\n .cell--sticky-right-first {\n border-left: 1px solid #d1d5db;\n }\n\n /* -------------------------------------------------------------------------\n * Scroll Mode: Edge\n * Padding scrolls with content, table can reach edges when scrolling\n * ----------------------------------------------------------------------- */\n :host(.kr-table--scroll-edge) .table {\n padding-left: 24px;\n }\n\n /* Only add right padding when no horizontal scroll is needed */\n :host(.kr-table--scroll-edge):not(.kr-table--scroll-horizontal-available) .table {\n padding-right: 24px;\n }\n\n :host(.kr-table--scroll-edge) .header-row .header-cell {\n border-top: 1px solid #e5e7eb;\n }\n\n /* -------------------------------------------------------------------------\n * Scroll Mode: Overlay\n * Fixed padding with overlay elements that hide content at edges\n * ----------------------------------------------------------------------- */\n :host(.kr-table--scroll-overlay) .content {\n padding-left: 24px;\n padding-right: 24px;\n }\n\n .overlay-left,\n .overlay-right {\n display: none;\n position: absolute;\n top: 0;\n bottom: 0;\n width: 24px;\n z-index: 5;\n pointer-events: none;\n transition: box-shadow 0.15s ease;\n }\n\n :host(.kr-table--scroll-overlay) .overlay-left,\n :host(.kr-table--scroll-overlay) .overlay-right {\n display: block;\n }\n\n .overlay-left {\n left: 0;\n background: #fff;\n }\n\n .overlay-right {\n right: 0;\n background: #fff;\n }\n\n :host(.kr-table--scroll-overlay.kr-table--scroll-left-available:not(.kr-table--sticky-left)) .overlay-left {\n border-right: 1px solid #d1d5db54;\n }\n\n :host(.kr-table--scroll-overlay.kr-table--scroll-right-available:not(.kr-table--sticky-right)) .overlay-right {\n border-left: 1px solid #d1d5db54;\n }\n\n /* -------------------------------------------------------------------------\n * Status (Loading, Error, Empty)\n * ----------------------------------------------------------------------- */\n .status {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 400;\n color: #5f6368;\n pointer-events: none;\n }\n\n .status--error {\n color: #dc2626;\n }\n `];\n__decorate([\n state()\n], KRTable.prototype, \"_data\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_dataState\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_page\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_pageSize\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_totalItems\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_totalPages\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_searchQuery\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_canScrollLeft\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_canScrollRight\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_canScrollHorizontal\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_columnPickerOpen\", void 0);\n__decorate([\n state()\n], KRTable.prototype, \"_displayedColumns\", void 0);\n__decorate([\n property({ type: Object })\n], KRTable.prototype, \"def\", void 0);\nKRTable = __decorate([\n customElement('kr-table')\n], KRTable);\nexport { KRTable };\n//# sourceMappingURL=table.js.map","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","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 r,nothing as e}from\"../lit-html.js\";import{directive as i,Directive as t,PartType as n}from\"../directive.js\";import{isSingleExpression as o,setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=i(class extends t{constructor(r){if(super(r),r.type!==n.PROPERTY&&r.type!==n.ATTRIBUTE&&r.type!==n.BOOLEAN_ATTRIBUTE)throw Error(\"The `live` directive is not allowed on child or event bindings\");if(!o(r))throw Error(\"`live` bindings can only contain a single expression\")}render(r){return r}update(i,[t]){if(t===r||t===e)return t;const o=i.element,l=i.name;if(i.type===n.PROPERTY){if(t===o[l])return r}else if(i.type===n.BOOLEAN_ATTRIBUTE){if(!!t===o.hasAttribute(l))return r}else if(i.type===n.ATTRIBUTE&&o.getAttribute(l)===t+\"\")return r;return s(i),t}});export{l as live};\n//# sourceMappingURL=live.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, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n/**\n * A text field component that works with native browser forms.\n *\n * Uses ElementInternals for form association, allowing the component\n * to participate in form submission, validation, and reset.\n *\n * Native input and change events bubble up from the inner input element.\n */\nlet KRTextField = class KRTextField extends LitElement {\n constructor() {\n super();\n /**\n * The input label text\n */\n this.label = '';\n /**\n * The input name for form submission\n */\n this.name = '';\n /**\n * The current value\n */\n this.value = '';\n /**\n * Placeholder text\n */\n this.placeholder = '';\n /**\n * Input type (text, email, password, tel, url, search)\n */\n this.type = 'text';\n /**\n * Whether the field is required\n */\n this.required = false;\n /**\n * Whether the field is disabled\n */\n this.disabled = false;\n /**\n * Whether the field is readonly\n */\n this.readonly = false;\n /**\n * Autocomplete attribute value\n */\n this.autocomplete = '';\n /**\n * Helper text shown below the input\n */\n this.hint = '';\n this._touched = false;\n this._dirty = false;\n this._handleInvalid = (e) => {\n e.preventDefault();\n this._touched = true;\n };\n this._internals = this.attachInternals();\n }\n // Form-associated custom element callbacks\n get form() {\n return this._internals.form;\n }\n get validity() {\n return this._internals.validity;\n }\n get validationMessage() {\n return this._internals.validationMessage;\n }\n get willValidate() {\n return this._internals.willValidate;\n }\n checkValidity() {\n return this._internals.checkValidity();\n }\n reportValidity() {\n return this._internals.reportValidity();\n }\n formResetCallback() {\n this.value = '';\n this._touched = false;\n this._dirty = false;\n this._internals.setFormValue('');\n this._internals.setValidity({});\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('invalid', this._handleInvalid);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('invalid', this._handleInvalid);\n }\n firstUpdated() {\n this._updateValidity();\n }\n updated(changedProperties) {\n if (changedProperties.has('required') || changedProperties.has('value')) {\n this._updateValidity();\n }\n }\n _updateValidity() {\n if (this._input) {\n this._internals.setValidity(this._input.validity, this._input.validationMessage);\n }\n }\n _handleInput(e) {\n this.value = e.target.value;\n this._dirty = true;\n this._internals.setFormValue(this.value);\n this._internals.setValidity(this._input.validity, this._input.validationMessage);\n }\n _handleChange(e) {\n this.value = e.target.value;\n this._internals.setFormValue(this.value);\n }\n _handleBlur() {\n this._touched = true;\n this._internals.setValidity(this._input.validity, this._input.validationMessage);\n }\n render() {\n let validationMessage = '';\n if (this._touched && this._input && !this._input.validity.valid) {\n validationMessage = this._input.validationMessage;\n }\n return html `\n <div class=\"wrapper\">\n ${this.label\n ? html `\n <label for=\"input\">\n ${this.label}\n ${this.required ? html `<span class=\"required\" aria-hidden=\"true\">*</span>` : ''}\n </label>\n `\n : ''}\n <input\n id=\"input\"\n class=${classMap({\n 'input--invalid': this._touched && this._input && !this._input.validity.valid\n })}\n type=${this.type}\n name=${this.name}\n .value=${live(this.value)}\n placeholder=${this.placeholder}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n pattern=${ifDefined(this.pattern)}\n autocomplete=${ifDefined(this.autocomplete || undefined)}\n @input=${this._handleInput}\n @change=${this._handleChange}\n @blur=${this._handleBlur}\n />\n ${validationMessage\n ? html `<div class=\"validation-message\">${validationMessage}</div>`\n : this.hint\n ? html `<div class=\"hint\">${this.hint}</div>`\n : ''}\n </div>\n `;\n }\n // Public methods for programmatic control\n focus() {\n this._input?.focus();\n }\n blur() {\n this._input?.blur();\n }\n select() {\n this._input?.select();\n }\n};\nKRTextField.styles = css `\n :host {\n display: block;\n font-family: inherit;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n label {\n font-size: 14px;\n font-weight: 500;\n color: black;\n }\n\n .required {\n color: var(--kr-text-field-required-color, #ef4444);\n margin-left: 0.125rem;\n }\n\n input {\n font-family: inherit;\n font-size: 14px;\n padding: 10px 12px;\n border: 1px solid var(--kr-text-field-border-color, #0000003d);\n border-radius: 8px;\n background-color: var(--kr-text-field-bg, #fff);\n color: var(--kr-text-field-color, #111827);\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n input:focus {\n outline: none;\n border-color: var(--kr-text-field-focus-border-color, #163052);\n box-shadow: 0 0 0 3px var(--kr-text-field-focus-ring-color, rgba(22, 48, 82, 0.1));\n }\n\n input:disabled {\n background-color: var(--kr-text-field-disabled-bg, #f3f4f6);\n color: var(--kr-text-field-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n input::placeholder {\n color: var(--kr-text-field-placeholder-color, #9ca3af);\n }\n\n input.input--invalid {\n border-color: var(--kr-text-field-error-border-color, #ef4444);\n }\n\n input.input--invalid:focus {\n box-shadow: 0 0 0 3px var(--kr-text-field-error-ring-color, rgba(239, 68, 68, 0.1));\n }\n\n .validation-message {\n font-size: 0.75rem;\n color: var(--kr-text-field-error-color, #ef4444);\n }\n\n .hint {\n font-size: 0.75rem;\n color: var(--kr-text-field-helper-color, #6b7280);\n }\n `;\n// Enable form association\nKRTextField.formAssociated = true;\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"name\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"value\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"type\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextField.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextField.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextField.prototype, \"readonly\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextField.prototype, \"minlength\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextField.prototype, \"maxlength\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"pattern\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"autocomplete\", void 0);\n__decorate([\n property({ type: String })\n], KRTextField.prototype, \"hint\", void 0);\n__decorate([\n query('input')\n], KRTextField.prototype, \"_input\", void 0);\n__decorate([\n state()\n], KRTextField.prototype, \"_touched\", void 0);\n__decorate([\n state()\n], KRTextField.prototype, \"_dirty\", void 0);\nKRTextField = __decorate([\n customElement('kr-text-field')\n], KRTextField);\nexport { KRTextField };\n//# sourceMappingURL=text-field.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, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n/**\n * A select dropdown component that works with native browser forms.\n *\n * Uses ElementInternals for form association, allowing the component\n * to participate in form submission, validation, and reset.\n *\n * @element kr-select-field\n * @slot - The kr-select-option elements\n */\nlet KRSelectField = class KRSelectField extends LitElement {\n constructor() {\n super();\n /**\n * The select label text\n */\n this.label = '';\n /**\n * The input name for form submission\n */\n this.name = '';\n /**\n * The currently selected value\n */\n this.value = '';\n /**\n * Placeholder text when no option is selected\n */\n this.placeholder = 'Select an option';\n /**\n * Whether the select is disabled\n */\n this.disabled = false;\n /**\n * Whether the field is required\n */\n this.required = false;\n /**\n * Whether the field is readonly\n */\n this.readonly = false;\n /**\n * Helper text shown below the select\n */\n this.hint = '';\n this._isOpen = false;\n this._highlightedIndex = -1;\n this._touched = false;\n this._handleInvalid = (e) => {\n e.preventDefault();\n this._touched = true;\n };\n this._handleOutsideClick = (e) => {\n if (!e.composedPath().includes(this)) {\n this._close();\n }\n };\n this._handleKeyDown = (e) => {\n if (!this._isOpen)\n return;\n const options = Array.from(this.querySelectorAll('kr-select-option'));\n switch (e.key) {\n case 'Escape':\n this._close();\n this._triggerElement?.focus();\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (options.some(o => !o.disabled)) {\n let newIndex = this._highlightedIndex + 1;\n while (newIndex < options.length && options[newIndex]?.disabled)\n newIndex++;\n if (newIndex < options.length)\n this._highlightedIndex = newIndex;\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n {\n let newIndex = this._highlightedIndex - 1;\n while (newIndex >= 0 && options[newIndex]?.disabled)\n newIndex--;\n if (newIndex >= 0)\n this._highlightedIndex = newIndex;\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (this._highlightedIndex >= 0 && this._highlightedIndex < options.length) {\n this._selectOption(options[this._highlightedIndex]);\n }\n break;\n }\n };\n this._internals = this.attachInternals();\n }\n // Form-associated custom element callbacks\n get form() {\n return this._internals.form;\n }\n get validity() {\n return this._internals.validity;\n }\n get validationMessage() {\n return this._internals.validationMessage;\n }\n get willValidate() {\n return this._internals.willValidate;\n }\n checkValidity() {\n return this._internals.checkValidity();\n }\n reportValidity() {\n return this._internals.reportValidity();\n }\n formResetCallback() {\n this.value = '';\n this._touched = false;\n this._internals.setFormValue('');\n this._internals.setValidity({});\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n document.addEventListener('keydown', this._handleKeyDown);\n this.addEventListener('invalid', this._handleInvalid);\n }\n firstUpdated() {\n this._updateValidity();\n }\n updated(changedProperties) {\n if (changedProperties.has('required') || changedProperties.has('value')) {\n this._updateValidity();\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n document.removeEventListener('keydown', this._handleKeyDown);\n this.removeEventListener('invalid', this._handleInvalid);\n }\n _toggle() {\n if (this.disabled || this.readonly)\n return;\n if (this._isOpen) {\n this._close();\n }\n else {\n this._isOpen = true;\n const options = Array.from(this.querySelectorAll('kr-select-option'));\n this._highlightedIndex = options.findIndex(o => o.value === this.value);\n }\n }\n _close() {\n this._isOpen = false;\n this._highlightedIndex = -1;\n }\n _selectOption(option) {\n if (option.disabled)\n return;\n this.value = option.value;\n this._internals.setFormValue(this.value);\n this._updateValidity();\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n this._close();\n this._triggerElement?.focus();\n }\n _handleBlur() {\n this._touched = true;\n this._updateValidity();\n }\n _updateValidity() {\n if (this.required && !this.value) {\n this._internals.setValidity({ valueMissing: true }, 'Please select an option', this._triggerElement);\n }\n else {\n this._internals.setValidity({});\n }\n }\n render() {\n const options = Array.from(this.querySelectorAll('kr-select-option'));\n const selectedLabel = options.find(o => o.value === this.value)?.label;\n return html `\n <div class=\"wrapper\">\n ${this.label\n ? html `\n <label>\n ${this.label}\n ${this.required ? html `<span class=\"required\" aria-hidden=\"true\">*</span>` : ''}\n </label>\n `\n : nothing}\n <div class=\"select-wrapper\">\n <button\n class=${classMap({\n 'select-trigger': true,\n 'select-trigger--open': this._isOpen,\n 'select-trigger--invalid': this._touched && this.required && !this.value,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n aria-haspopup=\"listbox\"\n aria-expanded=${this._isOpen}\n @click=${this._toggle}\n @blur=${this._handleBlur}\n >\n <span class=${classMap({\n 'select-value': true,\n 'select-placeholder': !selectedLabel\n })}>\n ${selectedLabel || this.placeholder}\n </span>\n <svg\n class=${classMap({\n 'chevron-icon': true,\n 'select-icon': true,\n 'select-icon--open': this._isOpen\n })}\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n <div class=${classMap({\n 'select-dropdown': true,\n 'hidden': !this._isOpen\n })} role=\"listbox\">\n <div class=\"select-options\">\n ${options.length === 0\n ? html `<div class=\"select-empty\">No options available</div>`\n : options.map((option, idx) => {\n const isSelected = option.value === this.value;\n return html `\n <div\n class=${classMap({\n 'select-option': true,\n 'select-option--selected': isSelected,\n 'select-option--disabled': option.disabled,\n 'select-option--highlighted': idx === this._highlightedIndex,\n })}\n role=\"option\"\n aria-selected=${isSelected}\n @click=${() => this._selectOption(option)}\n @mouseenter=${() => (this._highlightedIndex = idx)}\n >\n ${option.label}\n ${isSelected\n ? html `<svg class=\"chevron-icon select-check\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>`\n : nothing}\n </div>\n `;\n })}\n </div>\n </div>\n </div>\n ${this._touched && this.required && !this.value\n ? html `<div class=\"validation-message\">Please select an option</div>`\n : this.hint\n ? html `<div class=\"hint\">${this.hint}</div>`\n : ''}\n </div>\n <div class=\"options-slot\">\n <slot @slotchange=${() => this.requestUpdate()}></slot>\n </div>\n `;\n }\n // Public methods for programmatic control\n focus() {\n this._triggerElement?.focus();\n }\n blur() {\n this._triggerElement?.blur();\n }\n};\nKRSelectField.styles = css `\n :host {\n display: block;\n font-family: inherit;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n label {\n font-size: 14px;\n font-weight: 500;\n color: black;\n }\n\n .required {\n color: var(--kr-select-required-color, #ef4444);\n margin-left: 0.125rem;\n }\n\n .select-wrapper {\n position: relative;\n }\n\n .select-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 12px;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n color: var(--kr-select-color, #111827);\n background-color: var(--kr-select-bg, #fff);\n border: 1px solid var(--kr-select-border-color, #0000003d);\n border-radius: 8px;\n cursor: pointer;\n transition: border-color 0.2s, box-shadow 0.2s;\n text-align: left;\n }\n\n .select-trigger:hover:not(:disabled) {\n border-color: var(--kr-select-hover-border-color, #9ca3af);\n }\n\n .select-trigger:focus {\n outline: none;\n border-color: var(--kr-select-focus-border-color, #2563eb);\n box-shadow: 0 0 0 3px var(--kr-select-focus-ring-color, rgba(37, 99, 235, 0.1));\n }\n\n .select-trigger:disabled {\n background-color: var(--kr-select-disabled-bg, #f3f4f6);\n color: var(--kr-select-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n .select-trigger--invalid {\n border-color: var(--kr-select-error-border-color, #ef4444);\n }\n\n .select-trigger--invalid:focus {\n border-color: var(--kr-select-error-border-color, #ef4444);\n box-shadow: 0 0 0 3px var(--kr-select-error-ring-color, rgba(239, 68, 68, 0.1));\n }\n\n .select-trigger--open {\n border-color: var(--kr-select-focus-border-color, #2563eb);\n box-shadow: 0 0 0 3px var(--kr-select-focus-ring-color, rgba(37, 99, 235, 0.1));\n }\n\n .select-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .select-placeholder {\n color: var(--kr-select-placeholder-color, #9ca3af);\n }\n\n .select-icon {\n flex-shrink: 0;\n margin-left: 0.5rem;\n color: var(--kr-select-icon-color, #6b7280);\n transition: transform 0.2s;\n }\n\n .select-icon--open {\n transform: rotate(180deg);\n }\n\n .select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 50;\n margin-top: 0.25rem;\n background-color: var(--kr-select-dropdown-bg, #fff);\n border: 1px solid var(--kr-select-dropdown-border-color, #e5e7eb);\n border-radius: 4px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n max-height: 300px;\n overflow-y: auto;\n }\n\n .select-options {\n padding: 0.25rem;\n }\n\n .select-option {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n font-size: 14px;\n color: var(--kr-select-option-color, #111827);\n cursor: pointer;\n border-radius: 4px;\n transition: background-color 0.15s;\n }\n\n .select-option:hover:not(.select-option--disabled) {\n background-color: var(--kr-select-option-hover-bg, #f3f4f6);\n }\n\n .select-option--selected {\n background-color: var(--kr-select-option-selected-bg, #eff6ff);\n color: var(--kr-select-option-selected-color, #1d4ed8);\n }\n\n .select-option--selected:hover {\n background-color: var(--kr-select-option-selected-hover-bg, #dbeafe);\n }\n\n .select-option--disabled {\n color: var(--kr-select-option-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n .select-option--highlighted {\n background-color: var(--kr-select-option-hover-bg, #f3f4f6);\n }\n\n .select-empty {\n padding: 1rem;\n text-align: center;\n color: var(--kr-select-empty-color, #6b7280);\n font-size: 14px;\n }\n\n .select-check {\n color: var(--kr-select-check-color, #2563eb);\n flex-shrink: 0;\n margin-left: auto;\n }\n\n .hint {\n font-size: 0.75rem;\n color: var(--kr-select-helper-color, #6b7280);\n }\n\n .validation-message {\n font-size: 0.75rem;\n color: var(--kr-select-error-color, #ef4444);\n }\n\n .hidden {\n display: none;\n }\n\n .chevron-icon {\n width: 16px;\n height: 16px;\n }\n\n /* Hide the slot - options are rendered in dropdown */\n .options-slot {\n display: none;\n }\n `;\n// Enable form association\nKRSelectField.formAssociated = true;\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"name\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"value\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectField.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectField.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectField.prototype, \"readonly\", void 0);\n__decorate([\n property({ type: String })\n], KRSelectField.prototype, \"hint\", void 0);\n__decorate([\n state()\n], KRSelectField.prototype, \"_isOpen\", void 0);\n__decorate([\n state()\n], KRSelectField.prototype, \"_highlightedIndex\", void 0);\n__decorate([\n state()\n], KRSelectField.prototype, \"_touched\", void 0);\n__decorate([\n query('.select-trigger')\n], KRSelectField.prototype, \"_triggerElement\", void 0);\nKRSelectField = __decorate([\n customElement('kr-select-field')\n], KRSelectField);\nexport { KRSelectField };\n//# sourceMappingURL=select-field.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 * An option for the kr-select-field component.\n *\n * @element kr-select-option\n * @slot - The option label content\n */\nlet KRSelectOption = class KRSelectOption extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * The option value\n */\n this.value = '';\n /**\n * Whether the option is disabled\n */\n this.disabled = false;\n }\n /** Gets the label text from the slot */\n get label() {\n return this.textContent?.trim() || '';\n }\n render() {\n return html `<slot></slot>`;\n }\n};\nKRSelectOption.styles = css `\n :host {\n display: none;\n }\n `;\n__decorate([\n property({ type: String })\n], KRSelectOption.prototype, \"value\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRSelectOption.prototype, \"disabled\", void 0);\nKRSelectOption = __decorate([\n customElement('kr-select-option')\n], KRSelectOption);\nexport { KRSelectOption };\n//# sourceMappingURL=select-option.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, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n/**\n * A textarea component that works with native browser forms.\n *\n * Uses ElementInternals for form association, allowing the component\n * to participate in form submission, validation, and reset.\n *\n * Native input and change events bubble up from the inner textarea element.\n *\n * @element kr-textarea-field\n */\nlet KRTextareaField = class KRTextareaField extends LitElement {\n constructor() {\n super();\n /**\n * The textarea label text\n */\n this.label = '';\n /**\n * The textarea name for form submission\n */\n this.name = '';\n /**\n * The current value\n */\n this.value = '';\n /**\n * Placeholder text\n */\n this.placeholder = '';\n /**\n * Whether the field is required\n */\n this.required = false;\n /**\n * Whether the field is disabled\n */\n this.disabled = false;\n /**\n * Whether the field is readonly\n */\n this.readonly = false;\n /**\n * Number of visible text lines\n */\n this.rows = 3;\n /**\n * Autocomplete attribute value\n */\n this.autocomplete = '';\n /**\n * Helper text shown below the textarea\n */\n this.hint = '';\n this._touched = false;\n this._dirty = false;\n this._handleInvalid = (e) => {\n e.preventDefault();\n this._touched = true;\n };\n this._internals = this.attachInternals();\n }\n // Form-associated custom element callbacks\n get form() {\n return this._internals.form;\n }\n get validity() {\n return this._internals.validity;\n }\n get validationMessage() {\n return this._internals.validationMessage;\n }\n get willValidate() {\n return this._internals.willValidate;\n }\n checkValidity() {\n return this._internals.checkValidity();\n }\n reportValidity() {\n return this._internals.reportValidity();\n }\n formResetCallback() {\n this.value = '';\n this._touched = false;\n this._dirty = false;\n this._internals.setFormValue('');\n this._internals.setValidity({});\n }\n formStateRestoreCallback(state) {\n this.value = state;\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('invalid', this._handleInvalid);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('invalid', this._handleInvalid);\n }\n firstUpdated() {\n this._updateValidity();\n }\n updated(changedProperties) {\n if (changedProperties.has('required') || changedProperties.has('value')) {\n this._updateValidity();\n }\n }\n _updateValidity() {\n if (this._textarea) {\n this._internals.setValidity(this._textarea.validity, this._textarea.validationMessage);\n }\n }\n _handleInput(e) {\n this.value = e.target.value;\n this._dirty = true;\n this._internals.setFormValue(this.value);\n this._internals.setValidity(this._textarea.validity, this._textarea.validationMessage);\n }\n _handleChange(e) {\n this.value = e.target.value;\n this._internals.setFormValue(this.value);\n }\n _handleBlur() {\n this._touched = true;\n this._internals.setValidity(this._textarea.validity, this._textarea.validationMessage);\n }\n render() {\n let validationMessage = '';\n if (this._touched && this._textarea && !this._textarea.validity.valid) {\n validationMessage = this._textarea.validationMessage;\n }\n return html `\n <div class=\"wrapper\">\n ${this.label\n ? html `\n <label for=\"textarea\">\n ${this.label}\n ${this.required ? html `<span class=\"required\" aria-hidden=\"true\">*</span>` : nothing}\n </label>\n `\n : nothing}\n <textarea\n id=\"textarea\"\n class=${classMap({\n 'textarea--invalid': this._touched && this._textarea && !this._textarea.validity.valid\n })}\n name=${this.name}\n .value=${live(this.value)}\n placeholder=${this.placeholder}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n rows=${this.rows}\n cols=${ifDefined(this.cols)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n autocomplete=${ifDefined(this.autocomplete || undefined)}\n @input=${this._handleInput}\n @change=${this._handleChange}\n @blur=${this._handleBlur}\n ></textarea>\n ${validationMessage\n ? html `<div class=\"validation-message\">${validationMessage}</div>`\n : this.hint\n ? html `<div class=\"hint\">${this.hint}</div>`\n : nothing}\n </div>\n `;\n }\n // Public methods for programmatic control\n focus() {\n this._textarea?.focus();\n }\n blur() {\n this._textarea?.blur();\n }\n select() {\n this._textarea?.select();\n }\n};\nKRTextareaField.styles = css `\n :host {\n display: block;\n font-family: inherit;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n label {\n font-size: 14px;\n font-weight: 500;\n color: black;\n }\n\n .required {\n color: var(--kr-textarea-field-required-color, #ef4444);\n margin-left: 0.125rem;\n }\n\n textarea {\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n padding: 10px 12px;\n border: 1px solid var(--kr-textarea-field-border-color, #0000003d);\n border-radius: 8px;\n background-color: var(--kr-textarea-field-bg, #fff);\n color: var(--kr-textarea-field-color, #111827);\n transition: border-color 0.2s, box-shadow 0.2s;\n min-height: 2.5rem;\n resize: vertical;\n }\n\n textarea:focus {\n outline: none;\n border-color: var(--kr-textarea-field-focus-border-color, #163052);\n box-shadow: 0 0 0 3px var(--kr-textarea-field-focus-ring-color, rgba(22, 48, 82, 0.1));\n }\n\n textarea:disabled {\n background-color: var(--kr-textarea-field-disabled-bg, #f3f4f6);\n color: var(--kr-textarea-field-disabled-color, #9ca3af);\n cursor: not-allowed;\n }\n\n textarea::placeholder {\n color: var(--kr-textarea-field-placeholder-color, #9ca3af);\n }\n\n textarea.textarea--invalid {\n border-color: var(--kr-textarea-field-error-border-color, #ef4444);\n }\n\n textarea.textarea--invalid:focus {\n box-shadow: 0 0 0 3px var(--kr-textarea-field-error-ring-color, rgba(239, 68, 68, 0.1));\n }\n\n .validation-message {\n font-size: 0.75rem;\n color: var(--kr-textarea-field-error-color, #ef4444);\n }\n\n .hint {\n font-size: 0.75rem;\n color: var(--kr-textarea-field-helper-color, #6b7280);\n }\n `;\n// Enable form association\nKRTextareaField.formAssociated = true;\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"name\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"value\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextareaField.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextareaField.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], KRTextareaField.prototype, \"readonly\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"rows\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"cols\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"minlength\", void 0);\n__decorate([\n property({ type: Number })\n], KRTextareaField.prototype, \"maxlength\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"autocomplete\", void 0);\n__decorate([\n property({ type: String })\n], KRTextareaField.prototype, \"hint\", void 0);\n__decorate([\n query('textarea')\n], KRTextareaField.prototype, \"_textarea\", void 0);\n__decorate([\n state()\n], KRTextareaField.prototype, \"_touched\", void 0);\n__decorate([\n state()\n], KRTextareaField.prototype, \"_dirty\", void 0);\nKRTextareaField = __decorate([\n customElement('kr-textarea-field')\n], KRTextareaField);\nexport { KRTextareaField };\n//# sourceMappingURL=textarea-field.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';\n/**\n * A read-only field component that displays a label and value.\n *\n * @element kr-detail-field\n */\nlet KRDetailField = class KRDetailField extends LitElement {\n constructor() {\n super(...arguments);\n /**\n * The field label text\n */\n this.label = '';\n /**\n * The value to display\n */\n this.value = '';\n }\n render() {\n return html `\n <div class=\"wrapper\">\n ${this.label\n ? html `<label>${this.label}</label>`\n : nothing}\n <div class=\"value\">${this.value}</div>\n </div>\n `;\n }\n};\nKRDetailField.styles = css `\n :host {\n display: block;\n font-family: inherit;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n label {\n font-size: 14px;\n font-weight: 500;\n color: black;\n }\n\n .value {\n font-size: 14px;\n color: black;\n }\n `;\n__decorate([\n property({ type: String })\n], KRDetailField.prototype, \"label\", void 0);\n__decorate([\n property({ type: String })\n], KRDetailField.prototype, \"value\", void 0);\nKRDetailField = __decorate([\n customElement('kr-detail-field')\n], KRDetailField);\nexport { KRDetailField };\n//# sourceMappingURL=detail-field.js.map"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$4","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","n","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y$1","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","y","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","_$litType$","strings","values","x","E","for","A","P","createTreeWalker","V","N","lastIndex","exec","test","startsWith","S","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","I","L","z","H","tagName","append","data","indexOf","innerHTML","M","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","R","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","k","nextSibling","Z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","T","iterator","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","B","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","krBaseCSS","css","customElements","define","kind","init","Reflect","decorate","querySelector","__decorate","decorators","target","key","desc","KRAccordion","header","expanded","toggle","html","property","customElement","i$1","_$Ct","_$Ci","filter","join","st","nt","classList","KRAlert","dismissible","visible","_handleDismiss","dispatchEvent","CustomEvent","bubbles","composed","icons","info","success","warning","error","classMap","alert","nothing","KRButton","variant","color","disabled","_state","_stateText","_dropdownOpened","_dropdownAlignRight","_handleHostClick","stopPropagation","_toggleDropdown","_handleKeydown","preventDefault","click","_handleClickOutside","contains","href","requestAnimationFrame","dropdown","rect","getBoundingClientRect","right","window","innerWidth","_handleOptionClick","option","detail","id","label","showLoading","_clearStateTimeout","showSuccess","text","duration","_stateTimeout","setTimeout","reset","showError","clearTimeout","undefined","changedProperties","it","directiveName","_t","raw","resultType","KRCodeDemo","language","code","activeTab","copied","setTab","tab","getHighlightedCode","Prism","languages","highlight","escapeHtml","div","copyCode","navigator","clipboard","writeText","err","console","panel","preview","unsafeHTML","KRContextMenu","items","resolvePromise","boundHandleOutsideClick","handleOutsideClick","bind","boundHandleKeyDown","handleKeyDown","open","existing","menu","body","show","style","left","top","width","bottom","innerHeight","height","resolve","close","handleItemClick","item","divider","result","icon","DialogRef","dialogElement","promise","setDialogElement","afterClosed","KRDialog","contentElement","dialogRef","component","config","dialog","handleBackdropClick","KRSnackbar_1","KRSnackbar","dismissTimeout","title","message","snackbar","activeSnackbars","updatePositions","dismiss","splice","bottomOffset","offsetHeight","includes","replace","ft","removeProperty","setProperty","KRTabGroup","justified","changes","_updateActiveTab","_getTabs","from","querySelectorAll","tabs","activeTabId","active","_handleTabClick","_handleTabDismiss","tabId","_handleKeyDown","enabledTabs","currentIndex","findIndex","newIndex","newTab","tabButtons","targetButton","find","btn","focus","_renderTabIcon","iconElement","getIconElement","clonedIcon","cloneNode","badge","styleMap","backgroundColor","badgeBackground","badgeColor","KRTab","SOLR_RESERVED_CHARS","SOLR_RESERVED_CHARS_REPLACEMENT","escapeSolrQuery","query","escaped","KRTable","_scrollStyle","_data","_dataState","_page","_pageSize","_totalItems","_totalPages","_searchQuery","_canScrollLeft","_canScrollRight","_canScrollHorizontal","_columnPickerOpen","_displayedColumns","_resizing","_resizeObserver","_searchPositionLocked","_def","columns","def","_handleClickOutsideColumnPicker","path","composedPath","picker","_handleResizeMove","col","columnId","newWidth","startWidth","clientX","startX","min","max","_handleResizeEnd","_fetch","_initRefresh","ResizeObserver","_updateSearchPosition","observe","clearInterval","_refreshTimer","disconnect","sticky","resizable","displayedColumns","_updateScrollFlags","_syncSlottedContent","getDisplayedColumns","row","rowIndex","slot","display","gap","refresh","goToPrevPage","goToNextPage","goToPage","page","dataSource","request","sorts","filterFields","queryFields","facetFields","trim","searchable","operation","value","and","fetch","then","response","res","totalElements","totalPages","catch","refreshInterval","setInterval","_handleSearch","input","_getGridTemplateColumns","search","searchField","justifyContent","marginLeft","searchRect","currentOffset","_toggleColumnPicker","_toggleColumn","sort","_handleScroll","container","scrollLeft","scrollWidth","clientWidth","some","_handleResizeStart","headerCell","offsetWidth","_handleAction","action","_renderCellContent","column","toLocaleString","currency","date","Date","isoString","year","month","day","hour","minute","_getHeaderCellClasses","align","_getCellClasses","cell","_getCellStyle","leftOffset","parseInt","rightOffset","_renderPagination","start","end","_renderHeader","actions","localeCompare","_renderStatus","_renderTable","KRTextField","placeholder","required","readonly","autocomplete","hint","_touched","_dirty","_handleInvalid","_internals","attachInternals","form","validity","validationMessage","willValidate","checkValidity","reportValidity","formResetCallback","setFormValue","setValidity","formStateRestoreCallback","_updateValidity","_input","_handleInput","_handleChange","_handleBlur","valid","live","ifDefined","minlength","maxlength","pattern","blur","select","formAssociated","KRSelectField","_isOpen","_highlightedIndex","_handleOutsideClick","_close","_triggerElement","_selectOption","_toggle","Event","valueMissing","selectedLabel","hidden","idx","isSelected","KRSelectOption","KRTextareaField","rows","_textarea","cols","KRDetailField"],"mappings":"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","x_google_ignoreList":[0,1,2,3,5,6,7,8,9,11,12,15,20,24,25,26]}