@kyndryl-design-system/shidoka-applications 2.58.4 → 2.58.6
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.
- package/components/reusable/blockCodeView/blockCodeView.js +37 -5
- package/components/reusable/blockCodeView/blockCodeView.js.map +1 -1
- package/components/reusable/card/card.d.ts.map +1 -1
- package/components/reusable/card/card.js +5 -5
- package/components/reusable/card/card.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as i,c as
|
|
1
|
+
import{_ as e,a as t,b as i,c as o,d as a}from"../../../vendor/tslib-Ac8XvvSX.js";import{b as n,x as s,e as r,o as l}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as c,a as d,t as h,r as p,n as g}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as m}from"../../../vendor/lit-element-m-OqzV5s.js";import{d as u}from"../../../vendor/deepmerge-ts-OFb5ej8y.js";import{P as k}from"../../../vendor/prismjs-1mvJofm2.js";import{N as v,O as b,f as y}from"../../../vendor/@kyndryl-design-system/shidoka-icons-bi0_OAYf.js";import"../button/button.js";import"../../../vendor/flatpickr-D1_FkiHZ.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var x=c`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -217,8 +217,8 @@ pre.line-numbers .line-numbers-rows > span:before {
|
|
|
217
217
|
overflow: -moz-scrollbars-vertical;
|
|
218
218
|
}
|
|
219
219
|
.code-view__container.multi-line .code-view__copy-button {
|
|
220
|
-
top:
|
|
221
|
-
right:
|
|
220
|
+
top: 8px;
|
|
221
|
+
right: 8px;
|
|
222
222
|
}
|
|
223
223
|
.code-view__container.multi-line .code-snippet-wrapper {
|
|
224
224
|
position: relative;
|
|
@@ -257,6 +257,38 @@ pre.line-numbers .line-numbers-rows > span:before {
|
|
|
257
257
|
transform: rotate(180deg);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
+
.code-view__container:hover .code-view__copy-button {
|
|
261
|
+
opacity: 1;
|
|
262
|
+
visibility: visible;
|
|
263
|
+
pointer-events: auto;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.code-view__copy-button {
|
|
267
|
+
opacity: 0;
|
|
268
|
+
visibility: hidden;
|
|
269
|
+
pointer-events: none;
|
|
270
|
+
transition: opacity 0.4s ease-in-out, visibility 0.4s ease-in-out;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.code-view__copy-button .copy-text {
|
|
274
|
+
opacity: 0;
|
|
275
|
+
visibility: visible;
|
|
276
|
+
display: inline-block;
|
|
277
|
+
white-space: nowrap;
|
|
278
|
+
transform: scaleX(1);
|
|
279
|
+
margin-left: 6px;
|
|
280
|
+
transition: opacity 0.4s ease-in-out;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.code-view__container:hover .code-view__copy-button .copy-text {
|
|
284
|
+
opacity: 1;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.code-view__copy-button.icon-only {
|
|
288
|
+
width: auto;
|
|
289
|
+
min-width: 0;
|
|
290
|
+
}
|
|
291
|
+
|
|
260
292
|
code.language-bash:before {
|
|
261
293
|
content: "$";
|
|
262
294
|
opacity: 0.7;
|
|
@@ -593,7 +625,7 @@ code.language-git:before {
|
|
|
593
625
|
.shidoka-syntax-theme .code-snippet-wrapper pre *::-moz-selection {
|
|
594
626
|
background-color: light-dark(rgba(0, 0, 0, 0.3), rgba(255, 255, 255, 0.3));
|
|
595
627
|
color: inherit;
|
|
596
|
-
}`;k.plugins.autoloader.languages_path="node_modules/prismjs/components/";const f={collapsed:"Collapsed",expanded:"Expanded"},_={markup:["<",">","/","div","span","class","id"],html:["<",">","/","div","span","class","id"],css:["{","}",":",";","#","."],javascript:["function","const","let","var","=>"],typescript:["interface","type",":","as"],python:["def","import","from","class"],java:["public","private","class","void"]};let S=(()=>{var c,S,L,z,T,C,O,H,N,E,j,B,M,$,V,W,A,q,R,D;let F,U,P,K,I,J,G,Q,
|
|
628
|
+
}`;k.plugins.autoloader.languages_path="node_modules/prismjs/components/";const f={collapsed:"Collapsed",expanded:"Expanded"},_={markup:["<",">","/","div","span","class","id"],html:["<",">","/","div","span","class","id"],css:["{","}",":",";","#","."],javascript:["function","const","let","var","=>"],typescript:["interface","type",":","as"],python:["def","import","from","class"],java:["public","private","class","void"]};let S=(()=>{var c,S,L,z,T,C,O,H,N,E,j,B,M,$,V,W,A,q,R,D;let F,U,P,K,I,J,X,G,Q,Y,Z,ee,te,ie,oe,ae,ne,se,re,le,ce,de,he=[h("kyn-block-code-view")],pe=[],ge=m,me=[],ue=[],ke=[],ve=[],be=[],ye=[],xe=[],we=[],fe=[],_e=[],Se=[],Le=[],ze=[],Te=[],Ce=[],Oe=[],He=[],Ne=[],Ee=[],je=[],Be=[],Me=[],$e=[],Ve=[],We=[],Ae=[],qe=[],Re=[],De=[],Fe=[],Ue=[],Pe=[],Ke=[],Ie=[],Je=[],Xe=[],Ge=[],Qe=[],Ye=[],Ze=[];return U=class extends ge{get darkTheme(){return o(this,c,"f")}set darkTheme(e){a(this,c,e,"f")}get language(){return o(this,S,"f")}set language(e){a(this,S,e,"f")}get lineNumbers(){return o(this,L,"f")}set lineNumbers(e){a(this,L,e,"f")}get startLineNumber(){return o(this,z,"f")}set startLineNumber(e){a(this,z,e,"f")}get maxHeight(){return o(this,T,"f")}set maxHeight(e){a(this,T,e,"f")}get codeViewLabel(){return o(this,C,"f")}set codeViewLabel(e){a(this,C,e,"f")}get copyOptionVisible(){return o(this,O,"f")}set copyOptionVisible(e){a(this,O,e,"f")}get codeViewExpandable(){return o(this,H,"f")}set codeViewExpandable(e){a(this,H,e,"f")}get copyButtonText(){return o(this,N,"f")}set copyButtonText(e){a(this,N,e,"f")}get copyButtonDescriptionAttr(){return o(this,E,"f")}set copyButtonDescriptionAttr(e){a(this,E,e,"f")}get codeSnippet(){return o(this,j,"f")}set codeSnippet(e){a(this,j,e,"f")}get textStrings(){return o(this,B,"f")}set textStrings(e){a(this,B,e,"f")}get _textStrings(){return o(this,M,"f")}set _textStrings(e){a(this,M,e,"f")}get _isSingleLine(){return o(this,$,"f")}set _isSingleLine(e){a(this,$,e,"f")}get hasOverflow(){return o(this,V,"f")}set hasOverflow(e){a(this,V,e,"f")}get codeExpanded(){return o(this,W,"f")}set codeExpanded(e){a(this,W,e,"f")}get _copyState(){return o(this,A,"f")}set _copyState(e){a(this,A,e,"f")}get _effectiveLanguage(){return o(this,q,"f")}set _effectiveLanguage(e){a(this,q,e,"f")}get _codeFitsContainerOnLoad(){return o(this,R,"f")}set _codeFitsContainerOnLoad(e){a(this,R,e,"f")}get _expandedHeight(){return o(this,D,"f")}set _expandedHeight(e){a(this,D,e,"f")}updated(e){e.has("darkTheme")&&this.requestUpdate();const t=e.has("codeSnippet")||e.has("language")||e.has("maxHeight");e.has("lineNumbers")?setTimeout((()=>{this.highlightCode(),this.checkOverflow()}),0):t&&(this.highlightCode(),this.checkOverflow()),e.has("copyButtonText")&&(this._copyState={...this._copyState,text:this.copyButtonText}),e.has("startLineNumber")&&(this.startLineNumber<1&&(this.startLineNumber=1),this.highlightCode()),super.updated(e)}render(){const e=`${this.getContainerStyle()};`;return s`
|
|
597
629
|
${this.codeViewLabel?s`<div class="code-view__label">
|
|
598
630
|
<label>${this.codeViewLabel}</label>
|
|
599
631
|
</div>`:null}
|
|
@@ -637,5 +669,5 @@ code.language-git:before {
|
|
|
637
669
|
>
|
|
638
670
|
<span slot="icon" class="expand-icon">${l(y)}</span>
|
|
639
671
|
</kyn-button>
|
|
640
|
-
`}willUpdate(e){e.has("codeExpanded")&&(this._textStrings=u(f,this.textStrings))}highlightCode(){var e;const t=this.removeLeadingWhitespace(this.codeSnippet);this._isSingleLine=1===t.trim().split("\n").length,this._effectiveLanguage=this.language||this.detectLanguage(t);const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre"),a=null==i?void 0:i.querySelector("code");if(!a||!i)return;const o=i.querySelector(".line-numbers-rows");o&&o.remove(),a.className=`language-${this._effectiveLanguage}`,a.textContent=t,this.lineNumbers&&!this._isSingleLine?(i.classList.add("line-numbers"),i.setAttribute("data-start",String(this.startLineNumber))):(i.classList.remove("line-numbers"),i.removeAttribute("data-start")),setTimeout((()=>{k.highlightElement(a),setTimeout((()=>{var e;if(this.lineNumbers)try{(null===(e=k.plugins)||void 0===e?void 0:e.lineNumbers)&&(i.querySelector(".line-numbers-rows")||(k.hooks.run("complete",{element:a}),k.plugins.lineNumbers.resize(i))),i.querySelector(".line-numbers-rows")||this.addLineNumbers(i,a)}catch(e){console.warn("Line numbers initialization error:",e),this.addLineNumbers(i,a)}this.checkOverflow()}),50)}),0)}addLineNumbers(e,t){if(e.querySelector(".line-numbers-rows"))return;const i=(t.textContent||"").split("\n").length,a=Math.max(1,parseInt(e.getAttribute("data-start")||"1",10)),o=document.createElement("span");o.className="line-numbers-rows";const n=Array(i).fill("<span></span>").join("");o.innerHTML=n,e.appendChild(o),e.style.counterReset="linenumber "+(a-1)}detectLanguage(e){if(!e.trim())return"plaintext";const t=["markup","html","xml","svg","mathml","css","javascript","typescript","python","java","c","cpp"];let i={language:"plaintext",relevance:0};for(const a of t)if(k.languages[a]){const t=k.tokenize(e,k.languages[a]),o=this.calculateRelevance(t,a);o>i.relevance&&(i={language:a,relevance:o})}return"markup"===i.language?this.determineMarkupLanguage(e):i.language}calculateRelevance(e,t){return e.reduce(((e,i)=>("string"!=typeof i&&(e+=this.getTokenRelevance(i,t)),e)),0)}getTokenRelevance(e,t){let i=1+(e.alias?Array.isArray(e.alias)?e.alias.length:1:0);return this.isLanguageSpecificToken(e,t)&&(i+=2),e.content&&(Array.isArray(e.content)?i+=e.content.reduce(((e,i)=>e+("string"==typeof i?0:this.getTokenRelevance(i,t))),0):"string"!=typeof e.content&&(i+=this.getTokenRelevance(e.content,t))),i}isLanguageSpecificToken(e,t){return(_[t]||[]).some((t=>e.content.toString().includes(t)))}determineMarkupLanguage(e){return/<\/?[a-z][\s\S]*>/i.test(e)?"html":/<\?xml/i.test(e)?"xml":/<svg/i.test(e)?"svg":/<math/i.test(e)?"mathml":"markup"}checkOverflow(){setTimeout((()=>{requestAnimationFrame((()=>{var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".code-snippet-wrapper"),i=null==t?void 0:t.querySelector("pre");if(i&&t){const e=i.scrollHeight,a=this.codeExpanded?this._expandedHeight||t.clientHeight:null!==this.maxHeight?this.maxHeight:t.clientHeight;this.hasOverflow=e>a,this._codeFitsContainerOnLoad=e<=(this.maxHeight||t.clientHeight)}}))}),100)}removeLeadingWhitespace(e){if(!e)return"";const t=e.split("\n"),i=t.reduce(((e,t)=>{const i=t.match(/^[ \t]*/),a=i?i[0].length:0;return t.trim().length?Math.min(e,a):e}),1/0);return t.map((e=>e.slice(i))).join("\n").trim()}formatExampleCode(e){return{code:e}}copyCode(e){const t=this._copyState.text;navigator.clipboard.writeText(this.codeSnippet).then((()=>{this._copyState={copied:!0,text:t.length>1?"Copied!":""},this.requestUpdate(),this.dispatchEvent(new CustomEvent("on-copy",{detail:{origEvent:e,fullSnippet:this.formatExampleCode(this.codeSnippet)}})),setTimeout((()=>{this._copyState={copied:!1,text:t},this.requestUpdate()}),5e3)})).catch((e=>console.error("Failed to copy code:",e)))}getContainerStyle(){return this.codeExpanded?this._expandedHeight?`max-height: ${this._expandedHeight}px`:"":null!==this.maxHeight?`max-height: ${this.maxHeight}px`:""}expandCodeView(){var e;if(this.codeExpanded=!this.codeExpanded,this.codeExpanded){const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre");this._expandedHeight=(null==t?void 0:t.scrollHeight)||null}else this._expandedHeight=null;this.requestUpdate(),setTimeout((()=>this.checkOverflow()),0)}handleKeypress(e){const t=e.currentTarget,i=t.scrollHeight>t.clientHeight,a=t.scrollWidth>t.clientWidth;"ArrowDown"===e.key||"ArrowUp"===e.key?i&&(t.scrollTop+="ArrowDown"===e.key?40:-40,e.preventDefault()):"ArrowRight"!==e.key&&"ArrowLeft"!==e.key||a&&(t.scrollLeft+="ArrowRight"===e.key?40:-40,e.preventDefault())}constructor(){super(...arguments),c.set(this,i(this,me,"default")),S.set(this,(i(this,ue),i(this,ke,""))),L.set(this,(i(this,ve),i(this,be,!1))),z.set(this,(i(this,ye),i(this,xe,1))),T.set(this,(i(this,we),i(this,fe,null))),C.set(this,(i(this,_e),i(this,Se,""))),O.set(this,(i(this,Le),i(this,ze,!1))),H.set(this,(i(this,Te),i(this,Ce,!1))),N.set(this,(i(this,Oe),i(this,He,""))),E.set(this,(i(this,Ne),i(this,Ee,""))),j.set(this,(i(this,je),i(this,Be,""))),B.set(this,(i(this,Me),i(this,$e,f))),M.set(this,(i(this,Ve),i(this,We,f))),$.set(this,(i(this,Ae),i(this,qe,!1))),V.set(this,(i(this,Re),i(this,De,!1))),W.set(this,(i(this,Fe),i(this,Ue,!1))),A.set(this,(i(this,Pe),i(this,Ke,{copied:!1,text:""}))),q.set(this,(i(this,Ie),i(this,Je,""))),R.set(this,(i(this,Ge),i(this,Qe,!0))),D.set(this,(i(this,Xe),i(this,Ye,null))),i(this,Ze)}},c=new WeakMap,S=new WeakMap,L=new WeakMap,z=new WeakMap,T=new WeakMap,C=new WeakMap,O=new WeakMap,H=new WeakMap,N=new WeakMap,E=new WeakMap,j=new WeakMap,B=new WeakMap,M=new WeakMap,$=new WeakMap,V=new WeakMap,W=new WeakMap,A=new WeakMap,q=new WeakMap,R=new WeakMap,D=new WeakMap,e(U,"BlockCodeView"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=ge[Symbol.metadata])&&void 0!==e?e:null):void 0;P=[g({type:String})],K=[g({type:String})],I=[g({type:Boolean})],J=[g({type:Number})],G=[g({type:Number})],Q=[g({type:String})],X=[g({type:Boolean})],Y=[g({type:Boolean})],Z=[g({type:String})],ee=[g({type:String})],te=[g({type:String})],ie=[g({type:Object})],ae=[d()],oe=[d()],ne=[d()],se=[d()],re=[d()],le=[d()],ce=[d()],de=[d()],t(U,null,P,{kind:"accessor",name:"darkTheme",static:!1,private:!1,access:{has:e=>"darkTheme"in e,get:e=>e.darkTheme,set:(e,t)=>{e.darkTheme=t}},metadata:i},me,ue),t(U,null,K,{kind:"accessor",name:"language",static:!1,private:!1,access:{has:e=>"language"in e,get:e=>e.language,set:(e,t)=>{e.language=t}},metadata:i},ke,ve),t(U,null,I,{kind:"accessor",name:"lineNumbers",static:!1,private:!1,access:{has:e=>"lineNumbers"in e,get:e=>e.lineNumbers,set:(e,t)=>{e.lineNumbers=t}},metadata:i},be,ye),t(U,null,J,{kind:"accessor",name:"startLineNumber",static:!1,private:!1,access:{has:e=>"startLineNumber"in e,get:e=>e.startLineNumber,set:(e,t)=>{e.startLineNumber=t}},metadata:i},xe,we),t(U,null,G,{kind:"accessor",name:"maxHeight",static:!1,private:!1,access:{has:e=>"maxHeight"in e,get:e=>e.maxHeight,set:(e,t)=>{e.maxHeight=t}},metadata:i},fe,_e),t(U,null,Q,{kind:"accessor",name:"codeViewLabel",static:!1,private:!1,access:{has:e=>"codeViewLabel"in e,get:e=>e.codeViewLabel,set:(e,t)=>{e.codeViewLabel=t}},metadata:i},Se,Le),t(U,null,X,{kind:"accessor",name:"copyOptionVisible",static:!1,private:!1,access:{has:e=>"copyOptionVisible"in e,get:e=>e.copyOptionVisible,set:(e,t)=>{e.copyOptionVisible=t}},metadata:i},ze,Te),t(U,null,Y,{kind:"accessor",name:"codeViewExpandable",static:!1,private:!1,access:{has:e=>"codeViewExpandable"in e,get:e=>e.codeViewExpandable,set:(e,t)=>{e.codeViewExpandable=t}},metadata:i},Ce,Oe),t(U,null,Z,{kind:"accessor",name:"copyButtonText",static:!1,private:!1,access:{has:e=>"copyButtonText"in e,get:e=>e.copyButtonText,set:(e,t)=>{e.copyButtonText=t}},metadata:i},He,Ne),t(U,null,ee,{kind:"accessor",name:"copyButtonDescriptionAttr",static:!1,private:!1,access:{has:e=>"copyButtonDescriptionAttr"in e,get:e=>e.copyButtonDescriptionAttr,set:(e,t)=>{e.copyButtonDescriptionAttr=t}},metadata:i},Ee,je),t(U,null,te,{kind:"accessor",name:"codeSnippet",static:!1,private:!1,access:{has:e=>"codeSnippet"in e,get:e=>e.codeSnippet,set:(e,t)=>{e.codeSnippet=t}},metadata:i},Be,Me),t(U,null,ie,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},$e,Ve),t(U,null,ae,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},We,Ae),t(U,null,oe,{kind:"accessor",name:"_isSingleLine",static:!1,private:!1,access:{has:e=>"_isSingleLine"in e,get:e=>e._isSingleLine,set:(e,t)=>{e._isSingleLine=t}},metadata:i},qe,Re),t(U,null,ne,{kind:"accessor",name:"hasOverflow",static:!1,private:!1,access:{has:e=>"hasOverflow"in e,get:e=>e.hasOverflow,set:(e,t)=>{e.hasOverflow=t}},metadata:i},De,Fe),t(U,null,se,{kind:"accessor",name:"codeExpanded",static:!1,private:!1,access:{has:e=>"codeExpanded"in e,get:e=>e.codeExpanded,set:(e,t)=>{e.codeExpanded=t}},metadata:i},Ue,Pe),t(U,null,re,{kind:"accessor",name:"_copyState",static:!1,private:!1,access:{has:e=>"_copyState"in e,get:e=>e._copyState,set:(e,t)=>{e._copyState=t}},metadata:i},Ke,Ie),t(U,null,le,{kind:"accessor",name:"_effectiveLanguage",static:!1,private:!1,access:{has:e=>"_effectiveLanguage"in e,get:e=>e._effectiveLanguage,set:(e,t)=>{e._effectiveLanguage=t}},metadata:i},Je,Ge),t(U,null,ce,{kind:"accessor",name:"_codeFitsContainerOnLoad",static:!1,private:!1,access:{has:e=>"_codeFitsContainerOnLoad"in e,get:e=>e._codeFitsContainerOnLoad,set:(e,t)=>{e._codeFitsContainerOnLoad=t}},metadata:i},Qe,Xe),t(U,null,de,{kind:"accessor",name:"_expandedHeight",static:!1,private:!1,access:{has:e=>"_expandedHeight"in e,get:e=>e._expandedHeight,set:(e,t)=>{e._expandedHeight=t}},metadata:i},Ye,Ze),t(null,F={value:U},he,{kind:"class",name:U.name,metadata:i},null,pe),U=F.value,i&&Object.defineProperty(U,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),U.styles=[p(x),p(w)],i(U,pe),U})();export{S as BlockCodeView};
|
|
672
|
+
`}willUpdate(e){e.has("codeExpanded")&&(this._textStrings=u(f,this.textStrings))}highlightCode(){var e;const t=this.removeLeadingWhitespace(this.codeSnippet);this._isSingleLine=1===t.trim().split("\n").length,this._effectiveLanguage=this.language||this.detectLanguage(t);const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre"),o=null==i?void 0:i.querySelector("code");if(!o||!i)return;const a=i.querySelector(".line-numbers-rows");a&&a.remove(),o.className=`language-${this._effectiveLanguage}`,o.textContent=t,this.lineNumbers&&!this._isSingleLine?(i.classList.add("line-numbers"),i.setAttribute("data-start",String(this.startLineNumber))):(i.classList.remove("line-numbers"),i.removeAttribute("data-start")),setTimeout((()=>{k.highlightElement(o),setTimeout((()=>{var e;if(this.lineNumbers)try{(null===(e=k.plugins)||void 0===e?void 0:e.lineNumbers)&&(i.querySelector(".line-numbers-rows")||(k.hooks.run("complete",{element:o}),k.plugins.lineNumbers.resize(i))),i.querySelector(".line-numbers-rows")||this.addLineNumbers(i,o)}catch(e){console.warn("Line numbers initialization error:",e),this.addLineNumbers(i,o)}this.checkOverflow()}),50)}),0)}addLineNumbers(e,t){if(e.querySelector(".line-numbers-rows"))return;const i=(t.textContent||"").split("\n").length,o=Math.max(1,parseInt(e.getAttribute("data-start")||"1",10)),a=document.createElement("span");a.className="line-numbers-rows";const n=Array(i).fill("<span></span>").join("");a.innerHTML=n,e.appendChild(a),e.style.counterReset="linenumber "+(o-1)}detectLanguage(e){if(!e.trim())return"plaintext";const t=["markup","html","xml","svg","mathml","css","javascript","typescript","python","java","c","cpp"];let i={language:"plaintext",relevance:0};for(const o of t)if(k.languages[o]){const t=k.tokenize(e,k.languages[o]),a=this.calculateRelevance(t,o);a>i.relevance&&(i={language:o,relevance:a})}return"markup"===i.language?this.determineMarkupLanguage(e):i.language}calculateRelevance(e,t){return e.reduce(((e,i)=>("string"!=typeof i&&(e+=this.getTokenRelevance(i,t)),e)),0)}getTokenRelevance(e,t){let i=1+(e.alias?Array.isArray(e.alias)?e.alias.length:1:0);return this.isLanguageSpecificToken(e,t)&&(i+=2),e.content&&(Array.isArray(e.content)?i+=e.content.reduce(((e,i)=>e+("string"==typeof i?0:this.getTokenRelevance(i,t))),0):"string"!=typeof e.content&&(i+=this.getTokenRelevance(e.content,t))),i}isLanguageSpecificToken(e,t){return(_[t]||[]).some((t=>e.content.toString().includes(t)))}determineMarkupLanguage(e){return/<\/?[a-z][\s\S]*>/i.test(e)?"html":/<\?xml/i.test(e)?"xml":/<svg/i.test(e)?"svg":/<math/i.test(e)?"mathml":"markup"}checkOverflow(){setTimeout((()=>{requestAnimationFrame((()=>{var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".code-snippet-wrapper"),i=null==t?void 0:t.querySelector("pre");if(i&&t){const e=i.scrollHeight,o=this.codeExpanded?this._expandedHeight||t.clientHeight:null!==this.maxHeight?this.maxHeight:t.clientHeight;this.hasOverflow=e>o,this._codeFitsContainerOnLoad=e<=(this.maxHeight||t.clientHeight)}}))}),100)}removeLeadingWhitespace(e){if(!e)return"";const t=e.split("\n"),i=t.reduce(((e,t)=>{const i=t.match(/^[ \t]*/),o=i?i[0].length:0;return t.trim().length?Math.min(e,o):e}),1/0);return t.map((e=>e.slice(i))).join("\n").trim()}formatExampleCode(e){return{code:e}}copyCode(e){const t=this._copyState.text;navigator.clipboard.writeText(this.codeSnippet).then((()=>{this._copyState={copied:!0,text:t.length>1?"Copied!":""},this.requestUpdate(),this.dispatchEvent(new CustomEvent("on-copy",{detail:{origEvent:e,fullSnippet:this.formatExampleCode(this.codeSnippet)}})),setTimeout((()=>{this._copyState={copied:!1,text:t},this.requestUpdate()}),5e3)})).catch((e=>console.error("Failed to copy code:",e)))}getContainerStyle(){return this.codeExpanded?this._expandedHeight?`max-height: ${this._expandedHeight}px`:"":null!==this.maxHeight?`max-height: ${this.maxHeight}px`:""}expandCodeView(){var e;if(this.codeExpanded=!this.codeExpanded,this.codeExpanded){const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre");this._expandedHeight=(null==t?void 0:t.scrollHeight)||null}else this._expandedHeight=null;this.requestUpdate(),setTimeout((()=>this.checkOverflow()),0)}handleKeypress(e){const t=e.currentTarget,i=t.scrollHeight>t.clientHeight,o=t.scrollWidth>t.clientWidth;"ArrowDown"===e.key||"ArrowUp"===e.key?i&&(t.scrollTop+="ArrowDown"===e.key?40:-40,e.preventDefault()):"ArrowRight"!==e.key&&"ArrowLeft"!==e.key||o&&(t.scrollLeft+="ArrowRight"===e.key?40:-40,e.preventDefault())}constructor(){super(...arguments),c.set(this,i(this,me,"default")),S.set(this,(i(this,ue),i(this,ke,""))),L.set(this,(i(this,ve),i(this,be,!1))),z.set(this,(i(this,ye),i(this,xe,1))),T.set(this,(i(this,we),i(this,fe,null))),C.set(this,(i(this,_e),i(this,Se,""))),O.set(this,(i(this,Le),i(this,ze,!1))),H.set(this,(i(this,Te),i(this,Ce,!1))),N.set(this,(i(this,Oe),i(this,He,""))),E.set(this,(i(this,Ne),i(this,Ee,""))),j.set(this,(i(this,je),i(this,Be,""))),B.set(this,(i(this,Me),i(this,$e,f))),M.set(this,(i(this,Ve),i(this,We,f))),$.set(this,(i(this,Ae),i(this,qe,!1))),V.set(this,(i(this,Re),i(this,De,!1))),W.set(this,(i(this,Fe),i(this,Ue,!1))),A.set(this,(i(this,Pe),i(this,Ke,{copied:!1,text:""}))),q.set(this,(i(this,Ie),i(this,Je,""))),R.set(this,(i(this,Xe),i(this,Ge,!0))),D.set(this,(i(this,Qe),i(this,Ye,null))),i(this,Ze)}},c=new WeakMap,S=new WeakMap,L=new WeakMap,z=new WeakMap,T=new WeakMap,C=new WeakMap,O=new WeakMap,H=new WeakMap,N=new WeakMap,E=new WeakMap,j=new WeakMap,B=new WeakMap,M=new WeakMap,$=new WeakMap,V=new WeakMap,W=new WeakMap,A=new WeakMap,q=new WeakMap,R=new WeakMap,D=new WeakMap,e(U,"BlockCodeView"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=ge[Symbol.metadata])&&void 0!==e?e:null):void 0;P=[g({type:String})],K=[g({type:String})],I=[g({type:Boolean})],J=[g({type:Number})],X=[g({type:Number})],G=[g({type:String})],Q=[g({type:Boolean})],Y=[g({type:Boolean})],Z=[g({type:String})],ee=[g({type:String})],te=[g({type:String})],ie=[g({type:Object})],oe=[d()],ae=[d()],ne=[d()],se=[d()],re=[d()],le=[d()],ce=[d()],de=[d()],t(U,null,P,{kind:"accessor",name:"darkTheme",static:!1,private:!1,access:{has:e=>"darkTheme"in e,get:e=>e.darkTheme,set:(e,t)=>{e.darkTheme=t}},metadata:i},me,ue),t(U,null,K,{kind:"accessor",name:"language",static:!1,private:!1,access:{has:e=>"language"in e,get:e=>e.language,set:(e,t)=>{e.language=t}},metadata:i},ke,ve),t(U,null,I,{kind:"accessor",name:"lineNumbers",static:!1,private:!1,access:{has:e=>"lineNumbers"in e,get:e=>e.lineNumbers,set:(e,t)=>{e.lineNumbers=t}},metadata:i},be,ye),t(U,null,J,{kind:"accessor",name:"startLineNumber",static:!1,private:!1,access:{has:e=>"startLineNumber"in e,get:e=>e.startLineNumber,set:(e,t)=>{e.startLineNumber=t}},metadata:i},xe,we),t(U,null,X,{kind:"accessor",name:"maxHeight",static:!1,private:!1,access:{has:e=>"maxHeight"in e,get:e=>e.maxHeight,set:(e,t)=>{e.maxHeight=t}},metadata:i},fe,_e),t(U,null,G,{kind:"accessor",name:"codeViewLabel",static:!1,private:!1,access:{has:e=>"codeViewLabel"in e,get:e=>e.codeViewLabel,set:(e,t)=>{e.codeViewLabel=t}},metadata:i},Se,Le),t(U,null,Q,{kind:"accessor",name:"copyOptionVisible",static:!1,private:!1,access:{has:e=>"copyOptionVisible"in e,get:e=>e.copyOptionVisible,set:(e,t)=>{e.copyOptionVisible=t}},metadata:i},ze,Te),t(U,null,Y,{kind:"accessor",name:"codeViewExpandable",static:!1,private:!1,access:{has:e=>"codeViewExpandable"in e,get:e=>e.codeViewExpandable,set:(e,t)=>{e.codeViewExpandable=t}},metadata:i},Ce,Oe),t(U,null,Z,{kind:"accessor",name:"copyButtonText",static:!1,private:!1,access:{has:e=>"copyButtonText"in e,get:e=>e.copyButtonText,set:(e,t)=>{e.copyButtonText=t}},metadata:i},He,Ne),t(U,null,ee,{kind:"accessor",name:"copyButtonDescriptionAttr",static:!1,private:!1,access:{has:e=>"copyButtonDescriptionAttr"in e,get:e=>e.copyButtonDescriptionAttr,set:(e,t)=>{e.copyButtonDescriptionAttr=t}},metadata:i},Ee,je),t(U,null,te,{kind:"accessor",name:"codeSnippet",static:!1,private:!1,access:{has:e=>"codeSnippet"in e,get:e=>e.codeSnippet,set:(e,t)=>{e.codeSnippet=t}},metadata:i},Be,Me),t(U,null,ie,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},$e,Ve),t(U,null,oe,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},We,Ae),t(U,null,ae,{kind:"accessor",name:"_isSingleLine",static:!1,private:!1,access:{has:e=>"_isSingleLine"in e,get:e=>e._isSingleLine,set:(e,t)=>{e._isSingleLine=t}},metadata:i},qe,Re),t(U,null,ne,{kind:"accessor",name:"hasOverflow",static:!1,private:!1,access:{has:e=>"hasOverflow"in e,get:e=>e.hasOverflow,set:(e,t)=>{e.hasOverflow=t}},metadata:i},De,Fe),t(U,null,se,{kind:"accessor",name:"codeExpanded",static:!1,private:!1,access:{has:e=>"codeExpanded"in e,get:e=>e.codeExpanded,set:(e,t)=>{e.codeExpanded=t}},metadata:i},Ue,Pe),t(U,null,re,{kind:"accessor",name:"_copyState",static:!1,private:!1,access:{has:e=>"_copyState"in e,get:e=>e._copyState,set:(e,t)=>{e._copyState=t}},metadata:i},Ke,Ie),t(U,null,le,{kind:"accessor",name:"_effectiveLanguage",static:!1,private:!1,access:{has:e=>"_effectiveLanguage"in e,get:e=>e._effectiveLanguage,set:(e,t)=>{e._effectiveLanguage=t}},metadata:i},Je,Xe),t(U,null,ce,{kind:"accessor",name:"_codeFitsContainerOnLoad",static:!1,private:!1,access:{has:e=>"_codeFitsContainerOnLoad"in e,get:e=>e._codeFitsContainerOnLoad,set:(e,t)=>{e._codeFitsContainerOnLoad=t}},metadata:i},Ge,Qe),t(U,null,de,{kind:"accessor",name:"_expandedHeight",static:!1,private:!1,access:{has:e=>"_expandedHeight"in e,get:e=>e._expandedHeight,set:(e,t)=>{e._expandedHeight=t}},metadata:i},Ye,Ze),t(null,F={value:U},he,{kind:"class",name:U.name,metadata:i},null,pe),U=F.value,i&&Object.defineProperty(U,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),U.styles=[p(x),p(w)],i(U,pe),U})();export{S as BlockCodeView};
|
|
641
673
|
//# sourceMappingURL=blockCodeView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockCodeView.js","sources":["../../../../src/components/reusable/blockCodeView/blockCodeView.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { html, LitElement, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport Prism from 'prismjs';\nimport 'prismjs/plugins/autoloader/prism-autoloader';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\nimport 'prismjs-components-importer';\nPrism.plugins.autoloader.languages_path = 'node_modules/prismjs/components/';\n\nimport copyIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/copy.svg';\nimport checkmarkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/checkmark.svg';\nimport chevronDown from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport '../button';\n\nimport BlockCodeViewStyles from './blockCodeView.scss?inline';\nimport ShidokaSyntaxTheme from '../../../common/scss/shidoka-syntax-theme.scss?inline';\n\ninterface LanguageMatch {\n language: string;\n relevance: number;\n}\n\nconst _defaultTextStrings = {\n collapsed: 'Collapsed',\n expanded: 'Expanded',\n};\n\nconst LANGUAGE_SPECIFIC_TOKENS: Record<string, string[]> = {\n markup: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n html: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n css: ['{', '}', ':', ';', '#', '.'],\n javascript: ['function', 'const', 'let', 'var', '=>'],\n typescript: ['interface', 'type', ':', 'as'],\n python: ['def', 'import', 'from', 'class'],\n java: ['public', 'private', 'class', 'void'],\n};\n\n/**\n * `<kyn-block-code-view>` component to display `<code>` snippets as standalone single-/multi-line block elements.\n * @fires on-copy - Emits when the copy button is clicked.\n */\n@customElement('kyn-block-code-view')\nexport class BlockCodeView extends LitElement {\n static override styles = [\n unsafeCSS(BlockCodeViewStyles),\n unsafeCSS(ShidokaSyntaxTheme),\n ];\n\n /** Sets background and text theming. */\n @property({ type: String })\n accessor darkTheme: 'light' | 'dark' | 'default' = 'default';\n\n /** If empty string, attempt language syntax auto-detection. Setting a value will override auto-detection and manually configure desired language. */\n @property({ type: String })\n accessor language = '';\n\n /** Optionally display line numbers. */\n @property({ type: Boolean })\n accessor lineNumbers = false;\n\n /** Sets the starting line number when lineNumbers is true. Must be a positive integer. */\n @property({ type: Number })\n accessor startLineNumber = 1;\n\n /** Customizable max-height setting for code snippet container. */\n @property({ type: Number })\n accessor maxHeight: number | null = null;\n\n /** Optionally displayed label above code snippet container. */\n @property({ type: String })\n accessor codeViewLabel = '';\n\n /** Optionally display button to copy code snippet. */\n @property({ type: Boolean })\n accessor copyOptionVisible = false;\n\n /** Optionally display button to expand code snippet container. */\n @property({ type: Boolean })\n accessor codeViewExpandable = false;\n\n /** Sets copy code button text (optional). */\n @property({ type: String })\n accessor copyButtonText = '';\n\n /** Sets copy button description attr value. */\n @property({ type: String })\n accessor copyButtonDescriptionAttr = '';\n\n /** Sets code snippet for display -- NOTE: original formatting is preserved. */\n @property({ type: String })\n accessor codeSnippet = '';\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n private accessor _textStrings = _defaultTextStrings;\n\n /** Auto-detect whether code snippet is single line (boolean) -- styled accordingly (boolean).\n * @internal\n */\n @state()\n private accessor _isSingleLine = false;\n\n /** Auto-detect whether code snippet exceeds the max-height allowance (boolean).\n * @internal\n */\n @state()\n private accessor hasOverflow = false;\n\n /** Value indicating whether overflow code sample is expanded (boolean).\n * @internal\n */\n @state()\n private accessor codeExpanded = false;\n\n /** Copy key-values to communicate copy button styling and state.\n * @internal\n */\n @state()\n private accessor _copyState = { copied: false, text: '' };\n\n /** Detected language for the code snippet.\n * @internal\n */\n @state()\n private accessor _effectiveLanguage = '';\n\n /** Code snippet fits into the height of the container -- no expansion needed.\n * @internal\n */\n @state()\n private accessor _codeFitsContainerOnLoad = true;\n\n /** If expandable -- height of the container when fully expanded.\n * @internal\n */\n @state()\n private accessor _expandedHeight: number | null = null;\n\n override updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('darkTheme')) this.requestUpdate();\n\n const codeChanged =\n changedProperties.has('codeSnippet') ||\n changedProperties.has('language') ||\n changedProperties.has('maxHeight');\n\n // race condition guard: force complete re-highlighting when line numbers toggle\n if (changedProperties.has('lineNumbers')) {\n setTimeout(() => {\n this.highlightCode();\n this.checkOverflow();\n }, 0);\n } else if (codeChanged) {\n this.highlightCode();\n this.checkOverflow();\n }\n\n if (changedProperties.has('copyButtonText')) {\n this._copyState = { ...this._copyState, text: this.copyButtonText };\n }\n\n if (changedProperties.has('startLineNumber')) {\n // Ensure startLineNumber is at least 1\n if (this.startLineNumber < 1) {\n this.startLineNumber = 1;\n }\n this.highlightCode();\n }\n\n super.updated(changedProperties);\n }\n\n override render() {\n const containerStyle = `${this.getContainerStyle()};`;\n return html`\n ${this.codeViewLabel\n ? html`<div class=\"code-view__label\">\n <label>${this.codeViewLabel}</label>\n </div>`\n : null}\n <div class=\"${this.getContainerClasses()}\" style=\"${containerStyle}\">\n <div class=\"code-snippet-wrapper\">\n <pre\n @keydown=${this.handleKeypress}\n role=\"region\"\n class=${this.lineNumbers && !this._isSingleLine\n ? 'line-numbers'\n : 'no-line-numbers'}\n data-start=${ifDefined(\n this.lineNumbers ? Math.max(1, this.startLineNumber) : undefined\n )}\n >\n <code tabindex=\"0\" class=\"language-${this\n ._effectiveLanguage}\"></code>\n </pre>\n </div>\n ${this.renderCopyButton()} ${this.renderExpandButton()}\n </div>\n `;\n }\n\n private getContainerClasses() {\n return classMap({\n 'code-view__container': true,\n 'single-line': this._isSingleLine,\n 'multi-line': !this._isSingleLine,\n 'copy-button-text-true':\n this.copyButtonText && this.copyButtonText.length > 0,\n 'copy-button-text-false': !this.copyButtonText,\n 'shidoka-syntax-theme': true,\n 'shidoka-syntax-theme--dark': this.darkTheme === 'dark',\n 'shidoka-syntax-theme--light': this.darkTheme === 'light',\n 'expanded-code-view': this.codeExpanded,\n 'has-overflow': this.hasOverflow,\n });\n }\n\n private renderCopyButton() {\n if (!this.copyOptionVisible) return null;\n return html`\n <kyn-button\n class=\"code-view__copy-button\"\n kind=\"secondary\"\n size=\"small\"\n iconPosition=\"left\"\n ?disabled=${this._copyState.copied}\n description=${ifDefined(this.copyButtonDescriptionAttr)}\n @click=${this.copyCode}\n >\n <span slot=\"icon\" class=\"copy-icon\">\n ${this._copyState.copied\n ? unsafeSVG(checkmarkIcon)\n : unsafeSVG(copyIcon)}\n </span>\n ${this._copyState.text\n ? html`<span class=\"copy-text\">${this._copyState.text}</span>`\n : null}\n </kyn-button>\n `;\n }\n\n private renderExpandButton() {\n if (\n !this.codeViewExpandable ||\n (!this.hasOverflow && this._codeFitsContainerOnLoad)\n )\n return null;\n return html`\n <kyn-button\n class=\"code-view__expand-button\"\n kind=\"ghost\"\n size=\"small\"\n iconPosition=\"left\"\n outlineOnly\n description=${this.codeExpanded\n ? this._textStrings.collapsed\n : this._textStrings.expanded}\n @click=${this.expandCodeView}\n >\n <span slot=\"icon\" class=\"expand-icon\">${unsafeSVG(chevronDown)}</span>\n </kyn-button>\n `;\n }\n\n override willUpdate(changedProps: Map<string, unknown>) {\n if (changedProps.has('codeExpanded')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private highlightCode() {\n const processedCode = this.removeLeadingWhitespace(this.codeSnippet);\n this._isSingleLine = processedCode.trim().split('\\n').length === 1;\n this._effectiveLanguage =\n this.language || this.detectLanguage(processedCode);\n\n const preEl = this.shadowRoot?.querySelector('pre');\n const codeEl = preEl?.querySelector('code');\n\n if (!codeEl || !preEl) return;\n\n const existingLineNumbers = preEl.querySelector('.line-numbers-rows');\n if (existingLineNumbers) {\n existingLineNumbers.remove();\n }\n\n codeEl.className = `language-${this._effectiveLanguage}`;\n codeEl.textContent = processedCode;\n\n if (this.lineNumbers && !this._isSingleLine) {\n preEl.classList.add('line-numbers');\n preEl.setAttribute('data-start', String(this.startLineNumber));\n } else {\n preEl.classList.remove('line-numbers');\n preEl.removeAttribute('data-start');\n }\n\n setTimeout(() => {\n Prism.highlightElement(codeEl);\n\n setTimeout(() => {\n if (this.lineNumbers) {\n try {\n if ((Prism as any).plugins?.lineNumbers) {\n if (!preEl.querySelector('.line-numbers-rows')) {\n (Prism as any).hooks.run('complete', { element: codeEl });\n (Prism as any).plugins.lineNumbers.resize(preEl);\n }\n }\n\n if (!preEl.querySelector('.line-numbers-rows')) {\n this.addLineNumbers(preEl, codeEl);\n }\n } catch (e) {\n console.warn('Line numbers initialization error:', e);\n this.addLineNumbers(preEl, codeEl);\n }\n }\n\n this.checkOverflow();\n }, 50);\n }, 0);\n }\n\n private addLineNumbers(preEl: HTMLElement, codeEl: HTMLElement) {\n if (preEl.querySelector('.line-numbers-rows')) return;\n\n const linesCount = (codeEl.textContent || '').split('\\n').length;\n const startLineNumber = Math.max(\n 1,\n parseInt(preEl.getAttribute('data-start') || '1', 10)\n );\n\n const lineNumbersWrapper = document.createElement('span');\n lineNumbersWrapper.className = 'line-numbers-rows';\n\n const spans = Array(linesCount).fill('<span></span>').join('');\n lineNumbersWrapper.innerHTML = spans;\n\n preEl.appendChild(lineNumbersWrapper);\n preEl.style.counterReset = `linenumber ${startLineNumber - 1}`;\n }\n\n private detectLanguage(code: string): string {\n if (!code.trim()) return 'plaintext';\n\n const languages = [\n 'markup',\n 'html',\n 'xml',\n 'svg',\n 'mathml',\n 'css',\n 'javascript',\n 'typescript',\n 'python',\n 'java',\n 'c',\n 'cpp',\n ];\n let bestMatch: LanguageMatch = { language: 'plaintext', relevance: 0 };\n\n for (const lang of languages) {\n if (Prism.languages[lang]) {\n const tokens = Prism.tokenize(code, Prism.languages[lang]);\n const relevance = this.calculateRelevance(tokens, lang);\n if (relevance > bestMatch.relevance) {\n bestMatch = { language: lang, relevance };\n }\n }\n }\n\n return bestMatch.language === 'markup'\n ? this.determineMarkupLanguage(code)\n : bestMatch.language;\n }\n\n private calculateRelevance(\n tokens: (string | Prism.Token)[],\n language: string\n ): number {\n return tokens.reduce((relevance, token) => {\n if (typeof token !== 'string') {\n relevance += this.getTokenRelevance(token, language);\n }\n return relevance;\n }, 0);\n }\n\n private getTokenRelevance(token: Prism.Token, language: string): number {\n let relevance =\n 1 +\n (token.alias ? (Array.isArray(token.alias) ? token.alias.length : 1) : 0);\n if (this.isLanguageSpecificToken(token, language)) relevance += 2;\n if (token.content) {\n if (Array.isArray(token.content)) {\n relevance += token.content.reduce(\n (acc, t) =>\n acc +\n (typeof t === 'string' ? 0 : this.getTokenRelevance(t, language)),\n 0\n );\n } else if (typeof token.content !== 'string') {\n relevance += this.getTokenRelevance(token.content, language);\n }\n }\n return relevance;\n }\n\n private isLanguageSpecificToken(\n token: Prism.Token,\n language: string\n ): boolean {\n const specificTokens = LANGUAGE_SPECIFIC_TOKENS[language] || [];\n return specificTokens.some((t) => token.content.toString().includes(t));\n }\n\n private determineMarkupLanguage(code: string): string {\n if (/<\\/?[a-z][\\s\\S]*>/i.test(code)) return 'html';\n if (/<\\?xml/i.test(code)) return 'xml';\n if (/<svg/i.test(code)) return 'svg';\n if (/<math/i.test(code)) return 'mathml';\n return 'markup';\n }\n\n private checkOverflow() {\n setTimeout(() => {\n requestAnimationFrame(() => {\n const container = this.shadowRoot?.querySelector(\n '.code-snippet-wrapper'\n ) as HTMLElement;\n const pre = container?.querySelector('pre') as HTMLElement;\n if (pre && container) {\n const naturalHeight = pre.scrollHeight;\n const calcHeight = this.codeExpanded\n ? this._expandedHeight || container.clientHeight\n : this.maxHeight !== null\n ? this.maxHeight\n : container.clientHeight;\n\n this.hasOverflow = naturalHeight > calcHeight;\n this._codeFitsContainerOnLoad =\n naturalHeight <= (this.maxHeight || container.clientHeight);\n }\n });\n }, 100);\n }\n\n private removeLeadingWhitespace(code: string): string {\n if (!code) return '';\n const lines = code.split('\\n');\n const minIndent = lines.reduce((min, line) => {\n const match = line.match(/^[ \\t]*/);\n const indent = match ? match[0].length : 0;\n return line.trim().length ? Math.min(min, indent) : min;\n }, Infinity);\n return lines\n .map((line) => line.slice(minIndent))\n .join('\\n')\n .trim();\n }\n\n private formatExampleCode(code: string) {\n return { code };\n }\n\n private copyCode(e: Event) {\n const originalText = this._copyState.text;\n navigator.clipboard\n .writeText(this.codeSnippet)\n .then(() => {\n this._copyState = {\n copied: true,\n text: originalText.length > 1 ? 'Copied!' : '',\n };\n this.requestUpdate();\n this.dispatchEvent(\n new CustomEvent('on-copy', {\n detail: {\n origEvent: e,\n fullSnippet: this.formatExampleCode(this.codeSnippet),\n },\n })\n );\n setTimeout(() => {\n this._copyState = { copied: false, text: originalText };\n this.requestUpdate();\n }, 5000);\n })\n .catch((err) => console.error('Failed to copy code:', err));\n }\n\n private getContainerStyle(): string {\n if (this.codeExpanded) {\n return this._expandedHeight\n ? `max-height: ${this._expandedHeight}px`\n : '';\n }\n return this.maxHeight !== null ? `max-height: ${this.maxHeight}px` : '';\n }\n\n private expandCodeView() {\n this.codeExpanded = !this.codeExpanded;\n\n if (this.codeExpanded) {\n const pre = this.shadowRoot?.querySelector('pre') as HTMLElement;\n this._expandedHeight = pre?.scrollHeight || null;\n } else {\n this._expandedHeight = null;\n }\n\n this.requestUpdate();\n setTimeout(() => this.checkOverflow(), 0);\n }\n\n private handleKeypress(e: KeyboardEvent) {\n const pre = e.currentTarget as HTMLPreElement;\n const scrollAmount = 40;\n\n const isVerticallyScrollable = pre.scrollHeight > pre.clientHeight;\n const isHorizontallyScrollable = pre.scrollWidth > pre.clientWidth;\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n if (isVerticallyScrollable) {\n pre.scrollTop += e.key === 'ArrowDown' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n if (isHorizontallyScrollable) {\n pre.scrollLeft += e.key === 'ArrowRight' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-block-code-view': BlockCodeView;\n }\n}\n"],"names":["Prism","plugins","autoloader","languages_path","_defaultTextStrings","collapsed","expanded","LANGUAGE_SPECIFIC_TOKENS","markup","html","css","javascript","typescript","python","java","BlockCodeView","customElement","LitElement","_classThis","_classSuper","darkTheme","__classPrivateFieldGet","this","_BlockCodeView_darkTheme_accessor_storage","value","__classPrivateFieldSet","language","_BlockCodeView_language_accessor_storage","lineNumbers","_BlockCodeView_lineNumbers_accessor_storage","startLineNumber","_BlockCodeView_startLineNumber_accessor_storage","maxHeight","_BlockCodeView_maxHeight_accessor_storage","codeViewLabel","_BlockCodeView_codeViewLabel_accessor_storage","copyOptionVisible","_BlockCodeView_copyOptionVisible_accessor_storage","codeViewExpandable","_BlockCodeView_codeViewExpandable_accessor_storage","copyButtonText","_BlockCodeView_copyButtonText_accessor_storage","copyButtonDescriptionAttr","_BlockCodeView_copyButtonDescriptionAttr_accessor_storage","codeSnippet","_BlockCodeView_codeSnippet_accessor_storage","textStrings","_BlockCodeView_textStrings_accessor_storage","_textStrings","_BlockCodeView__textStrings_accessor_storage","_isSingleLine","_BlockCodeView__isSingleLine_accessor_storage","hasOverflow","_BlockCodeView_hasOverflow_accessor_storage","codeExpanded","_BlockCodeView_codeExpanded_accessor_storage","_copyState","_BlockCodeView__copyState_accessor_storage","_effectiveLanguage","_BlockCodeView__effectiveLanguage_accessor_storage","_codeFitsContainerOnLoad","_BlockCodeView__codeFitsContainerOnLoad_accessor_storage","_expandedHeight","_BlockCodeView__expandedHeight_accessor_storage","updated","changedProperties","has","requestUpdate","codeChanged","setTimeout","highlightCode","checkOverflow","text","super","render","containerStyle","getContainerStyle","getContainerClasses","handleKeypress","ifDefined","Math","max","undefined","renderCopyButton","renderExpandButton","classMap","length","copied","copyCode","unsafeSVG","checkmarkIcon","copyIcon","expandCodeView","chevronDown","willUpdate","changedProps","deepmerge","processedCode","removeLeadingWhitespace","trim","split","detectLanguage","preEl","_a","shadowRoot","querySelector","codeEl","existingLineNumbers","remove","className","textContent","classList","add","setAttribute","String","removeAttribute","highlightElement","hooks","run","element","resize","addLineNumbers","e","console","warn","linesCount","parseInt","getAttribute","lineNumbersWrapper","document","createElement","spans","Array","fill","join","innerHTML","appendChild","style","counterReset","code","languages","bestMatch","relevance","lang","tokens","tokenize","calculateRelevance","determineMarkupLanguage","reduce","token","getTokenRelevance","alias","isArray","isLanguageSpecificToken","content","acc","t","some","toString","includes","test","requestAnimationFrame","container","pre","naturalHeight","scrollHeight","calcHeight","clientHeight","lines","minIndent","min","line","match","indent","Infinity","map","slice","formatExampleCode","originalText","navigator","clipboard","writeText","then","dispatchEvent","CustomEvent","detail","origEvent","fullSnippet","catch","err","error","currentTarget","isVerticallyScrollable","isHorizontallyScrollable","scrollWidth","clientWidth","key","scrollTop","preventDefault","scrollLeft","set","__runInitializers","_darkTheme_initializers","_darkTheme_extraInitializers","_language_initializers","_language_extraInitializers","_lineNumbers_initializers","_lineNumbers_extraInitializers","_startLineNumber_initializers","_startLineNumber_extraInitializers","_maxHeight_initializers","_maxHeight_extraInitializers","_codeViewLabel_initializers","_codeViewLabel_extraInitializers","_copyOptionVisible_initializers","_copyOptionVisible_extraInitializers","_codeViewExpandable_initializers","_codeViewExpandable_extraInitializers","_copyButtonText_initializers","_copyButtonText_extraInitializers","_copyButtonDescriptionAttr_initializers","_copyButtonDescriptionAttr_extraInitializers","_codeSnippet_initializers","_codeSnippet_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","__textStrings_initializers","__textStrings_extraInitializers","__isSingleLine_initializers","__isSingleLine_extraInitializers","_hasOverflow_initializers","_hasOverflow_extraInitializers","_codeExpanded_initializers","_codeExpanded_extraInitializers","__copyState_initializers","__copyState_extraInitializers","__effectiveLanguage_initializers","__effectiveLanguage_extraInitializers","__codeFitsContainerOnLoad_initializers","__codeFitsContainerOnLoad_extraInitializers","__expandedHeight_initializers","_darkTheme_decorators","property","type","_language_decorators","_lineNumbers_decorators","Boolean","_startLineNumber_decorators","Number","_maxHeight_decorators","_codeViewLabel_decorators","_copyOptionVisible_decorators","_codeViewExpandable_decorators","_copyButtonText_decorators","_copyButtonDescriptionAttr_decorators","_codeSnippet_decorators","_textStrings_decorators","Object","__textStrings_decorators","state","__isSingleLine_decorators","_hasOverflow_decorators","_codeExpanded_decorators","__copyState_decorators","__effectiveLanguage_decorators","__codeFitsContainerOnLoad_decorators","__expandedHeight_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","__expandedHeight_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","BlockCodeViewStyles","ShidokaSyntaxTheme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blockCodeView.js","sources":["../../../../src/components/reusable/blockCodeView/blockCodeView.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { html, LitElement, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport Prism from 'prismjs';\nimport 'prismjs/plugins/autoloader/prism-autoloader';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\nimport 'prismjs-components-importer';\nPrism.plugins.autoloader.languages_path = 'node_modules/prismjs/components/';\n\nimport copyIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/copy.svg';\nimport checkmarkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/checkmark.svg';\nimport chevronDown from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport '../button';\n\nimport BlockCodeViewStyles from './blockCodeView.scss?inline';\nimport ShidokaSyntaxTheme from '../../../common/scss/shidoka-syntax-theme.scss?inline';\n\ninterface LanguageMatch {\n language: string;\n relevance: number;\n}\n\nconst _defaultTextStrings = {\n collapsed: 'Collapsed',\n expanded: 'Expanded',\n};\n\nconst LANGUAGE_SPECIFIC_TOKENS: Record<string, string[]> = {\n markup: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n html: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n css: ['{', '}', ':', ';', '#', '.'],\n javascript: ['function', 'const', 'let', 'var', '=>'],\n typescript: ['interface', 'type', ':', 'as'],\n python: ['def', 'import', 'from', 'class'],\n java: ['public', 'private', 'class', 'void'],\n};\n\n/**\n * `<kyn-block-code-view>` component to display `<code>` snippets as standalone single-/multi-line block elements.\n * @fires on-copy - Emits when the copy button is clicked.\n */\n@customElement('kyn-block-code-view')\nexport class BlockCodeView extends LitElement {\n static override styles = [\n unsafeCSS(BlockCodeViewStyles),\n unsafeCSS(ShidokaSyntaxTheme),\n ];\n\n /** Sets background and text theming. */\n @property({ type: String })\n accessor darkTheme: 'light' | 'dark' | 'default' = 'default';\n\n /** If empty string, attempt language syntax auto-detection. Setting a value will override auto-detection and manually configure desired language. */\n @property({ type: String })\n accessor language = '';\n\n /** Optionally display line numbers. */\n @property({ type: Boolean })\n accessor lineNumbers = false;\n\n /** Sets the starting line number when lineNumbers is true. Must be a positive integer. */\n @property({ type: Number })\n accessor startLineNumber = 1;\n\n /** Customizable max-height setting for code snippet container. */\n @property({ type: Number })\n accessor maxHeight: number | null = null;\n\n /** Optionally displayed label above code snippet container. */\n @property({ type: String })\n accessor codeViewLabel = '';\n\n /** Optionally display button to copy code snippet. */\n @property({ type: Boolean })\n accessor copyOptionVisible = false;\n\n /** Optionally display button to expand code snippet container. */\n @property({ type: Boolean })\n accessor codeViewExpandable = false;\n\n /** Sets copy code button text (optional). */\n @property({ type: String })\n accessor copyButtonText = '';\n\n /** Sets copy button description attr value. */\n @property({ type: String })\n accessor copyButtonDescriptionAttr = '';\n\n /** Sets code snippet for display -- NOTE: original formatting is preserved. */\n @property({ type: String })\n accessor codeSnippet = '';\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n private accessor _textStrings = _defaultTextStrings;\n\n /** Auto-detect whether code snippet is single line (boolean) -- styled accordingly (boolean).\n * @internal\n */\n @state()\n private accessor _isSingleLine = false;\n\n /** Auto-detect whether code snippet exceeds the max-height allowance (boolean).\n * @internal\n */\n @state()\n private accessor hasOverflow = false;\n\n /** Value indicating whether overflow code sample is expanded (boolean).\n * @internal\n */\n @state()\n private accessor codeExpanded = false;\n\n /** Copy key-values to communicate copy button styling and state.\n * @internal\n */\n @state()\n private accessor _copyState = { copied: false, text: '' };\n\n /** Detected language for the code snippet.\n * @internal\n */\n @state()\n private accessor _effectiveLanguage = '';\n\n /** Code snippet fits into the height of the container -- no expansion needed.\n * @internal\n */\n @state()\n private accessor _codeFitsContainerOnLoad = true;\n\n /** If expandable -- height of the container when fully expanded.\n * @internal\n */\n @state()\n private accessor _expandedHeight: number | null = null;\n\n override updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('darkTheme')) this.requestUpdate();\n\n const codeChanged =\n changedProperties.has('codeSnippet') ||\n changedProperties.has('language') ||\n changedProperties.has('maxHeight');\n\n // race condition guard: force complete re-highlighting when line numbers toggle\n if (changedProperties.has('lineNumbers')) {\n setTimeout(() => {\n this.highlightCode();\n this.checkOverflow();\n }, 0);\n } else if (codeChanged) {\n this.highlightCode();\n this.checkOverflow();\n }\n\n if (changedProperties.has('copyButtonText')) {\n this._copyState = { ...this._copyState, text: this.copyButtonText };\n }\n\n if (changedProperties.has('startLineNumber')) {\n // Ensure startLineNumber is at least 1\n if (this.startLineNumber < 1) {\n this.startLineNumber = 1;\n }\n this.highlightCode();\n }\n\n super.updated(changedProperties);\n }\n\n override render() {\n const containerStyle = `${this.getContainerStyle()};`;\n return html`\n ${this.codeViewLabel\n ? html`<div class=\"code-view__label\">\n <label>${this.codeViewLabel}</label>\n </div>`\n : null}\n <div class=\"${this.getContainerClasses()}\" style=\"${containerStyle}\">\n <div class=\"code-snippet-wrapper\">\n <pre\n @keydown=${this.handleKeypress}\n role=\"region\"\n class=${this.lineNumbers && !this._isSingleLine\n ? 'line-numbers'\n : 'no-line-numbers'}\n data-start=${ifDefined(\n this.lineNumbers ? Math.max(1, this.startLineNumber) : undefined\n )}\n >\n <code tabindex=\"0\" class=\"language-${this\n ._effectiveLanguage}\"></code>\n </pre>\n </div>\n ${this.renderCopyButton()} ${this.renderExpandButton()}\n </div>\n `;\n }\n\n private getContainerClasses() {\n return classMap({\n 'code-view__container': true,\n 'single-line': this._isSingleLine,\n 'multi-line': !this._isSingleLine,\n 'copy-button-text-true':\n this.copyButtonText && this.copyButtonText.length > 0,\n 'copy-button-text-false': !this.copyButtonText,\n 'shidoka-syntax-theme': true,\n 'shidoka-syntax-theme--dark': this.darkTheme === 'dark',\n 'shidoka-syntax-theme--light': this.darkTheme === 'light',\n 'expanded-code-view': this.codeExpanded,\n 'has-overflow': this.hasOverflow,\n });\n }\n\n private renderCopyButton() {\n if (!this.copyOptionVisible) return null;\n return html`\n <kyn-button\n class=\"code-view__copy-button\"\n kind=\"secondary\"\n size=\"small\"\n iconPosition=\"left\"\n ?disabled=${this._copyState.copied}\n description=${ifDefined(this.copyButtonDescriptionAttr)}\n @click=${this.copyCode}\n >\n <span slot=\"icon\" class=\"copy-icon\">\n ${this._copyState.copied\n ? unsafeSVG(checkmarkIcon)\n : unsafeSVG(copyIcon)}\n </span>\n ${this._copyState.text\n ? html`<span class=\"copy-text\">${this._copyState.text}</span>`\n : null}\n </kyn-button>\n `;\n }\n\n private renderExpandButton() {\n if (\n !this.codeViewExpandable ||\n (!this.hasOverflow && this._codeFitsContainerOnLoad)\n )\n return null;\n return html`\n <kyn-button\n class=\"code-view__expand-button\"\n kind=\"ghost\"\n size=\"small\"\n iconPosition=\"left\"\n outlineOnly\n description=${this.codeExpanded\n ? this._textStrings.collapsed\n : this._textStrings.expanded}\n @click=${this.expandCodeView}\n >\n <span slot=\"icon\" class=\"expand-icon\">${unsafeSVG(chevronDown)}</span>\n </kyn-button>\n `;\n }\n\n override willUpdate(changedProps: Map<string, unknown>) {\n if (changedProps.has('codeExpanded')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private highlightCode() {\n const processedCode = this.removeLeadingWhitespace(this.codeSnippet);\n this._isSingleLine = processedCode.trim().split('\\n').length === 1;\n this._effectiveLanguage =\n this.language || this.detectLanguage(processedCode);\n\n const preEl = this.shadowRoot?.querySelector('pre');\n const codeEl = preEl?.querySelector('code');\n\n if (!codeEl || !preEl) return;\n\n const existingLineNumbers = preEl.querySelector('.line-numbers-rows');\n if (existingLineNumbers) {\n existingLineNumbers.remove();\n }\n\n codeEl.className = `language-${this._effectiveLanguage}`;\n codeEl.textContent = processedCode;\n\n if (this.lineNumbers && !this._isSingleLine) {\n preEl.classList.add('line-numbers');\n preEl.setAttribute('data-start', String(this.startLineNumber));\n } else {\n preEl.classList.remove('line-numbers');\n preEl.removeAttribute('data-start');\n }\n\n setTimeout(() => {\n Prism.highlightElement(codeEl);\n\n setTimeout(() => {\n if (this.lineNumbers) {\n try {\n if ((Prism as any).plugins?.lineNumbers) {\n if (!preEl.querySelector('.line-numbers-rows')) {\n (Prism as any).hooks.run('complete', { element: codeEl });\n (Prism as any).plugins.lineNumbers.resize(preEl);\n }\n }\n\n if (!preEl.querySelector('.line-numbers-rows')) {\n this.addLineNumbers(preEl, codeEl);\n }\n } catch (e) {\n console.warn('Line numbers initialization error:', e);\n this.addLineNumbers(preEl, codeEl);\n }\n }\n\n this.checkOverflow();\n }, 50);\n }, 0);\n }\n\n private addLineNumbers(preEl: HTMLElement, codeEl: HTMLElement) {\n if (preEl.querySelector('.line-numbers-rows')) return;\n\n const linesCount = (codeEl.textContent || '').split('\\n').length;\n const startLineNumber = Math.max(\n 1,\n parseInt(preEl.getAttribute('data-start') || '1', 10)\n );\n\n const lineNumbersWrapper = document.createElement('span');\n lineNumbersWrapper.className = 'line-numbers-rows';\n\n const spans = Array(linesCount).fill('<span></span>').join('');\n lineNumbersWrapper.innerHTML = spans;\n\n preEl.appendChild(lineNumbersWrapper);\n preEl.style.counterReset = `linenumber ${startLineNumber - 1}`;\n }\n\n private detectLanguage(code: string): string {\n if (!code.trim()) return 'plaintext';\n\n const languages = [\n 'markup',\n 'html',\n 'xml',\n 'svg',\n 'mathml',\n 'css',\n 'javascript',\n 'typescript',\n 'python',\n 'java',\n 'c',\n 'cpp',\n ];\n let bestMatch: LanguageMatch = { language: 'plaintext', relevance: 0 };\n\n for (const lang of languages) {\n if (Prism.languages[lang]) {\n const tokens = Prism.tokenize(code, Prism.languages[lang]);\n const relevance = this.calculateRelevance(tokens, lang);\n if (relevance > bestMatch.relevance) {\n bestMatch = { language: lang, relevance };\n }\n }\n }\n\n return bestMatch.language === 'markup'\n ? this.determineMarkupLanguage(code)\n : bestMatch.language;\n }\n\n private calculateRelevance(\n tokens: (string | Prism.Token)[],\n language: string\n ): number {\n return tokens.reduce((relevance, token) => {\n if (typeof token !== 'string') {\n relevance += this.getTokenRelevance(token, language);\n }\n return relevance;\n }, 0);\n }\n\n private getTokenRelevance(token: Prism.Token, language: string): number {\n let relevance =\n 1 +\n (token.alias ? (Array.isArray(token.alias) ? token.alias.length : 1) : 0);\n if (this.isLanguageSpecificToken(token, language)) relevance += 2;\n if (token.content) {\n if (Array.isArray(token.content)) {\n relevance += token.content.reduce(\n (acc, t) =>\n acc +\n (typeof t === 'string' ? 0 : this.getTokenRelevance(t, language)),\n 0\n );\n } else if (typeof token.content !== 'string') {\n relevance += this.getTokenRelevance(token.content, language);\n }\n }\n return relevance;\n }\n\n private isLanguageSpecificToken(\n token: Prism.Token,\n language: string\n ): boolean {\n const specificTokens = LANGUAGE_SPECIFIC_TOKENS[language] || [];\n return specificTokens.some((t) => token.content.toString().includes(t));\n }\n\n private determineMarkupLanguage(code: string): string {\n if (/<\\/?[a-z][\\s\\S]*>/i.test(code)) return 'html';\n if (/<\\?xml/i.test(code)) return 'xml';\n if (/<svg/i.test(code)) return 'svg';\n if (/<math/i.test(code)) return 'mathml';\n return 'markup';\n }\n\n private checkOverflow() {\n setTimeout(() => {\n requestAnimationFrame(() => {\n const container = this.shadowRoot?.querySelector(\n '.code-snippet-wrapper'\n ) as HTMLElement;\n const pre = container?.querySelector('pre') as HTMLElement;\n if (pre && container) {\n const naturalHeight = pre.scrollHeight;\n const calcHeight = this.codeExpanded\n ? this._expandedHeight || container.clientHeight\n : this.maxHeight !== null\n ? this.maxHeight\n : container.clientHeight;\n\n this.hasOverflow = naturalHeight > calcHeight;\n this._codeFitsContainerOnLoad =\n naturalHeight <= (this.maxHeight || container.clientHeight);\n }\n });\n }, 100);\n }\n\n private removeLeadingWhitespace(code: string): string {\n if (!code) return '';\n const lines = code.split('\\n');\n const minIndent = lines.reduce((min, line) => {\n const match = line.match(/^[ \\t]*/);\n const indent = match ? match[0].length : 0;\n return line.trim().length ? Math.min(min, indent) : min;\n }, Infinity);\n return lines\n .map((line) => line.slice(minIndent))\n .join('\\n')\n .trim();\n }\n\n private formatExampleCode(code: string) {\n return { code };\n }\n\n private copyCode(e: Event) {\n const originalText = this._copyState.text;\n navigator.clipboard\n .writeText(this.codeSnippet)\n .then(() => {\n this._copyState = {\n copied: true,\n text: originalText.length > 1 ? 'Copied!' : '',\n };\n this.requestUpdate();\n this.dispatchEvent(\n new CustomEvent('on-copy', {\n detail: {\n origEvent: e,\n fullSnippet: this.formatExampleCode(this.codeSnippet),\n },\n })\n );\n setTimeout(() => {\n this._copyState = { copied: false, text: originalText };\n this.requestUpdate();\n }, 5000);\n })\n .catch((err) => console.error('Failed to copy code:', err));\n }\n\n private getContainerStyle(): string {\n if (this.codeExpanded) {\n return this._expandedHeight\n ? `max-height: ${this._expandedHeight}px`\n : '';\n }\n return this.maxHeight !== null ? `max-height: ${this.maxHeight}px` : '';\n }\n\n private expandCodeView() {\n this.codeExpanded = !this.codeExpanded;\n\n if (this.codeExpanded) {\n const pre = this.shadowRoot?.querySelector('pre') as HTMLElement;\n this._expandedHeight = pre?.scrollHeight || null;\n } else {\n this._expandedHeight = null;\n }\n\n this.requestUpdate();\n setTimeout(() => this.checkOverflow(), 0);\n }\n\n private handleKeypress(e: KeyboardEvent) {\n const pre = e.currentTarget as HTMLPreElement;\n const scrollAmount = 40;\n\n const isVerticallyScrollable = pre.scrollHeight > pre.clientHeight;\n const isHorizontallyScrollable = pre.scrollWidth > pre.clientWidth;\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n if (isVerticallyScrollable) {\n pre.scrollTop += e.key === 'ArrowDown' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n if (isHorizontallyScrollable) {\n pre.scrollLeft += e.key === 'ArrowRight' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-block-code-view': BlockCodeView;\n }\n}\n"],"names":["Prism","plugins","autoloader","languages_path","_defaultTextStrings","collapsed","expanded","LANGUAGE_SPECIFIC_TOKENS","markup","html","css","javascript","typescript","python","java","BlockCodeView","customElement","LitElement","_classThis","_classSuper","darkTheme","__classPrivateFieldGet","this","_BlockCodeView_darkTheme_accessor_storage","value","__classPrivateFieldSet","language","_BlockCodeView_language_accessor_storage","lineNumbers","_BlockCodeView_lineNumbers_accessor_storage","startLineNumber","_BlockCodeView_startLineNumber_accessor_storage","maxHeight","_BlockCodeView_maxHeight_accessor_storage","codeViewLabel","_BlockCodeView_codeViewLabel_accessor_storage","copyOptionVisible","_BlockCodeView_copyOptionVisible_accessor_storage","codeViewExpandable","_BlockCodeView_codeViewExpandable_accessor_storage","copyButtonText","_BlockCodeView_copyButtonText_accessor_storage","copyButtonDescriptionAttr","_BlockCodeView_copyButtonDescriptionAttr_accessor_storage","codeSnippet","_BlockCodeView_codeSnippet_accessor_storage","textStrings","_BlockCodeView_textStrings_accessor_storage","_textStrings","_BlockCodeView__textStrings_accessor_storage","_isSingleLine","_BlockCodeView__isSingleLine_accessor_storage","hasOverflow","_BlockCodeView_hasOverflow_accessor_storage","codeExpanded","_BlockCodeView_codeExpanded_accessor_storage","_copyState","_BlockCodeView__copyState_accessor_storage","_effectiveLanguage","_BlockCodeView__effectiveLanguage_accessor_storage","_codeFitsContainerOnLoad","_BlockCodeView__codeFitsContainerOnLoad_accessor_storage","_expandedHeight","_BlockCodeView__expandedHeight_accessor_storage","updated","changedProperties","has","requestUpdate","codeChanged","setTimeout","highlightCode","checkOverflow","text","super","render","containerStyle","getContainerStyle","getContainerClasses","handleKeypress","ifDefined","Math","max","undefined","renderCopyButton","renderExpandButton","classMap","length","copied","copyCode","unsafeSVG","checkmarkIcon","copyIcon","expandCodeView","chevronDown","willUpdate","changedProps","deepmerge","processedCode","removeLeadingWhitespace","trim","split","detectLanguage","preEl","_a","shadowRoot","querySelector","codeEl","existingLineNumbers","remove","className","textContent","classList","add","setAttribute","String","removeAttribute","highlightElement","hooks","run","element","resize","addLineNumbers","e","console","warn","linesCount","parseInt","getAttribute","lineNumbersWrapper","document","createElement","spans","Array","fill","join","innerHTML","appendChild","style","counterReset","code","languages","bestMatch","relevance","lang","tokens","tokenize","calculateRelevance","determineMarkupLanguage","reduce","token","getTokenRelevance","alias","isArray","isLanguageSpecificToken","content","acc","t","some","toString","includes","test","requestAnimationFrame","container","pre","naturalHeight","scrollHeight","calcHeight","clientHeight","lines","minIndent","min","line","match","indent","Infinity","map","slice","formatExampleCode","originalText","navigator","clipboard","writeText","then","dispatchEvent","CustomEvent","detail","origEvent","fullSnippet","catch","err","error","currentTarget","isVerticallyScrollable","isHorizontallyScrollable","scrollWidth","clientWidth","key","scrollTop","preventDefault","scrollLeft","set","__runInitializers","_darkTheme_initializers","_darkTheme_extraInitializers","_language_initializers","_language_extraInitializers","_lineNumbers_initializers","_lineNumbers_extraInitializers","_startLineNumber_initializers","_startLineNumber_extraInitializers","_maxHeight_initializers","_maxHeight_extraInitializers","_codeViewLabel_initializers","_codeViewLabel_extraInitializers","_copyOptionVisible_initializers","_copyOptionVisible_extraInitializers","_codeViewExpandable_initializers","_codeViewExpandable_extraInitializers","_copyButtonText_initializers","_copyButtonText_extraInitializers","_copyButtonDescriptionAttr_initializers","_copyButtonDescriptionAttr_extraInitializers","_codeSnippet_initializers","_codeSnippet_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","__textStrings_initializers","__textStrings_extraInitializers","__isSingleLine_initializers","__isSingleLine_extraInitializers","_hasOverflow_initializers","_hasOverflow_extraInitializers","_codeExpanded_initializers","_codeExpanded_extraInitializers","__copyState_initializers","__copyState_extraInitializers","__effectiveLanguage_initializers","__effectiveLanguage_extraInitializers","__codeFitsContainerOnLoad_initializers","__codeFitsContainerOnLoad_extraInitializers","__expandedHeight_initializers","_darkTheme_decorators","property","type","_language_decorators","_lineNumbers_decorators","Boolean","_startLineNumber_decorators","Number","_maxHeight_decorators","_codeViewLabel_decorators","_copyOptionVisible_decorators","_codeViewExpandable_decorators","_copyButtonText_decorators","_copyButtonDescriptionAttr_decorators","_codeSnippet_decorators","_textStrings_decorators","Object","__textStrings_decorators","state","__isSingleLine_decorators","_hasOverflow_decorators","_codeExpanded_decorators","__copyState_decorators","__effectiveLanguage_decorators","__codeFitsContainerOnLoad_decorators","__expandedHeight_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","__expandedHeight_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","BlockCodeViewStyles","ShidokaSyntaxTheme"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAWAA,EAAMC,QAAQC,WAAWC,eAAiB,mCAgB1C,MAAMC,EAAsB,CAC1BC,UAAW,YACXC,SAAU,YAGNC,EAAqD,CACzDC,OAAQ,CAAC,IAAK,IAAK,IAAK,MAAO,OAAQ,QAAS,MAChDC,KAAM,CAAC,IAAK,IAAK,IAAK,MAAO,OAAQ,QAAS,MAC9CC,IAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/BC,WAAY,CAAC,WAAY,QAAS,MAAO,MAAO,MAChDC,WAAY,CAAC,YAAa,OAAQ,IAAK,MACvCC,OAAQ,CAAC,MAAO,SAAU,OAAQ,SAClCC,KAAM,CAAC,SAAU,UAAW,QAAS,aAQ1BC,EAAa,iHADzBC,EAAc,iCACoBC,yPAARC,EAAA,cAAQC,GAQjC,aAASC,GAAS,OAAAC,EAAAC,KAAAC,EAAA,IAAA,CAAlB,aAASH,CAASI,GAAAC,EAAAH,KAAAC,EAAAC,EAAA,IAAA,CAIlB,YAASE,GAAQ,OAAAL,EAAAC,KAAAK,EAAA,IAAA,CAAjB,YAASD,CAAQF,GAAAC,EAAAH,KAAAK,EAAAH,EAAA,IAAA,CAIjB,eAASI,GAAW,OAAAP,EAAAC,KAAAO,EAAA,IAAA,CAApB,eAASD,CAAWJ,GAAAC,EAAAH,KAAAO,EAAAL,EAAA,IAAA,CAIpB,mBAASM,GAAe,OAAAT,EAAAC,KAAAS,EAAA,IAAA,CAAxB,mBAASD,CAAeN,GAAAC,EAAAH,KAAAS,EAAAP,EAAA,IAAA,CAIxB,aAASQ,GAAS,OAAAX,EAAAC,KAAAW,EAAA,IAAA,CAAlB,aAASD,CAASR,GAAAC,EAAAH,KAAAW,EAAAT,EAAA,IAAA,CAIlB,iBAASU,GAAa,OAAAb,EAAAC,KAAAa,EAAA,IAAA,CAAtB,iBAASD,CAAaV,GAAAC,EAAAH,KAAAa,EAAAX,EAAA,IAAA,CAItB,qBAASY,GAAiB,OAAAf,EAAAC,KAAAe,EAAA,IAAA,CAA1B,qBAASD,CAAiBZ,GAAAC,EAAAH,KAAAe,EAAAb,EAAA,IAAA,CAI1B,sBAASc,GAAkB,OAAAjB,EAAAC,KAAAiB,EAAA,IAAA,CAA3B,sBAASD,CAAkBd,GAAAC,EAAAH,KAAAiB,EAAAf,EAAA,IAAA,CAI3B,kBAASgB,GAAc,OAAAnB,EAAAC,KAAAmB,EAAA,IAAA,CAAvB,kBAASD,CAAchB,GAAAC,EAAAH,KAAAmB,EAAAjB,EAAA,IAAA,CAIvB,6BAASkB,GAAyB,OAAArB,EAAAC,KAAAqB,EAAA,IAAA,CAAlC,6BAASD,CAAyBlB,GAAAC,EAAAH,KAAAqB,EAAAnB,EAAA,IAAA,CAIlC,eAASoB,GAAW,OAAAvB,EAAAC,KAAAuB,EAAA,IAAA,CAApB,eAASD,CAAWpB,GAAAC,EAAAH,KAAAuB,EAAArB,EAAA,IAAA,CAIpB,eAASsB,GAAW,OAAAzB,EAAAC,KAAAyB,EAAA,IAAA,CAApB,eAASD,CAAWtB,GAAAC,EAAAH,KAAAyB,EAAAvB,EAAA,IAAA,CAMpB,gBAAiBwB,GAAY,OAAA3B,EAAAC,KAAA2B,EAAA,IAAA,CAA7B,gBAAiBD,CAAYxB,GAAAC,EAAAH,KAAA2B,EAAAzB,EAAA,IAAA,CAM7B,iBAAiB0B,GAAa,OAAA7B,EAAAC,KAAA6B,EAAA,IAAA,CAA9B,iBAAiBD,CAAa1B,GAAAC,EAAAH,KAAA6B,EAAA3B,EAAA,IAAA,CAM9B,eAAiB4B,GAAW,OAAA/B,EAAAC,KAAA+B,EAAA,IAAA,CAA5B,eAAiBD,CAAW5B,GAAAC,EAAAH,KAAA+B,EAAA7B,EAAA,IAAA,CAM5B,gBAAiB8B,GAAY,OAAAjC,EAAAC,KAAAiC,EAAA,IAAA,CAA7B,gBAAiBD,CAAY9B,GAAAC,EAAAH,KAAAiC,EAAA/B,EAAA,IAAA,CAM7B,cAAiBgC,GAAU,OAAAnC,EAAAC,KAAAmC,EAAA,IAAA,CAA3B,cAAiBD,CAAUhC,GAAAC,EAAAH,KAAAmC,EAAAjC,EAAA,IAAA,CAM3B,sBAAiBkC,GAAkB,OAAArC,EAAAC,KAAAqC,EAAA,IAAA,CAAnC,sBAAiBD,CAAkBlC,GAAAC,EAAAH,KAAAqC,EAAAnC,EAAA,IAAA,CAMnC,4BAAiBoC,GAAwB,OAAAvC,EAAAC,KAAAuC,EAAA,IAAA,CAAzC,4BAAiBD,CAAwBpC,GAAAC,EAAAH,KAAAuC,EAAArC,EAAA,IAAA,CAMzC,mBAAiBsC,GAAe,OAAAzC,EAAAC,KAAAyC,EAAA,IAAA,CAAhC,mBAAiBD,CAAetC,GAAAC,EAAAH,KAAAyC,EAAAvC,EAAA,IAAA,CAEvB,OAAAwC,CAAQC,GACXA,EAAkBC,IAAI,cAAc5C,KAAK6C,gBAE7C,MAAMC,EACJH,EAAkBC,IAAI,gBACtBD,EAAkBC,IAAI,aACtBD,EAAkBC,IAAI,aAGpBD,EAAkBC,IAAI,eACxBG,YAAW,KACT/C,KAAKgD,gBACLhD,KAAKiD,eAAe,GACnB,GACMH,IACT9C,KAAKgD,gBACLhD,KAAKiD,iBAGHN,EAAkBC,IAAI,oBACxB5C,KAAKkC,WAAa,IAAKlC,KAAKkC,WAAYgB,KAAMlD,KAAKkB,iBAGjDyB,EAAkBC,IAAI,qBAEpB5C,KAAKQ,gBAAkB,IACzBR,KAAKQ,gBAAkB,GAEzBR,KAAKgD,iBAGPG,MAAMT,QAAQC,GAGP,MAAAS,GACP,MAAMC,EAAiB,GAAGrD,KAAKsD,uBAC/B,OAAOnE,CAAI;QACPa,KAAKY,cACHzB,CAAI;qBACOa,KAAKY;kBAEhB;oBACUZ,KAAKuD,iCAAiCF;;;uBAGnCrD,KAAKwD;;oBAERxD,KAAKM,cAAgBN,KAAK4B,cAC9B,eACA;yBACS6B,EACXzD,KAAKM,YAAcoD,KAAKC,IAAI,EAAG3D,KAAKQ,sBAAmBoD;;iDAGpB5D,KACpCoC;;;UAGHpC,KAAK6D,sBAAsB7D,KAAK8D;;MAKhC,mBAAAP,GACN,OAAOQ,EAAS,CACd,wBAAwB,EACxB,cAAe/D,KAAK4B,cACpB,cAAe5B,KAAK4B,cACpB,wBACE5B,KAAKkB,gBAAkBlB,KAAKkB,eAAe8C,OAAS,EACtD,0BAA2BhE,KAAKkB,eAChC,wBAAwB,EACxB,6BAAiD,SAAnBlB,KAAKF,UACnC,8BAAkD,UAAnBE,KAAKF,UACpC,qBAAsBE,KAAKgC,aAC3B,eAAgBhC,KAAK8B,cAIjB,gBAAA+B,GACN,OAAK7D,KAAKc,kBACH3B,CAAI;;;;;;oBAMKa,KAAKkC,WAAW+B;sBACdR,EAAUzD,KAAKoB;iBACpBpB,KAAKkE;;;YAGVlE,KAAKkC,WAAW+B,OACdE,EAAUC,GACVD,EAAUE;;UAEdrE,KAAKkC,WAAWgB,KACd/D,CAAI,2BAA2Ba,KAAKkC,WAAWgB,cAC/C;;MAlB4B,KAuB9B,kBAAAY,GACN,OACG9D,KAAKgB,qBACJhB,KAAK8B,aAAe9B,KAAKsC,yBAEpB,KACFnD,CAAI;;;;;;;sBAOOa,KAAKgC,aACfhC,KAAK0B,aAAa3C,UAClBiB,KAAK0B,aAAa1C;iBACbgB,KAAKsE;;gDAE0BH,EAAUI;;MAK/C,UAAAC,CAAWC,GACdA,EAAa7B,IAAI,kBACnB5C,KAAK0B,aAAegD,EAAU5F,EAAqBkB,KAAKwB,cAIpD,aAAAwB,SACN,MAAM2B,EAAgB3E,KAAK4E,wBAAwB5E,KAAKsB,aACxDtB,KAAK4B,cAA4D,IAA5C+C,EAAcE,OAAOC,MAAM,MAAMd,OACtDhE,KAAKoC,mBACHpC,KAAKI,UAAYJ,KAAK+E,eAAeJ,GAEvC,MAAMK,EAAuB,QAAfC,EAAAjF,KAAKkF,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,cAAc,OACvCC,EAASJ,aAAK,EAALA,EAAOG,cAAc,QAEpC,IAAKC,IAAWJ,EAAO,OAEvB,MAAMK,EAAsBL,EAAMG,cAAc,sBAC5CE,GACFA,EAAoBC,SAGtBF,EAAOG,UAAY,YAAYvF,KAAKoC,qBACpCgD,EAAOI,YAAcb,EAEjB3E,KAAKM,cAAgBN,KAAK4B,eAC5BoD,EAAMS,UAAUC,IAAI,gBACpBV,EAAMW,aAAa,aAAcC,OAAO5F,KAAKQ,oBAE7CwE,EAAMS,UAAUH,OAAO,gBACvBN,EAAMa,gBAAgB,eAGxB9C,YAAW,KACTrE,EAAMoH,iBAAiBV,GAEvBrC,YAAW,WACT,GAAI/C,KAAKM,YACP,KAC4B,UAArB5B,EAAcC,eAAO,IAAAsG,OAAA,EAAAA,EAAE3E,eACrB0E,EAAMG,cAAc,wBACtBzG,EAAcqH,MAAMC,IAAI,WAAY,CAAEC,QAASb,IAC/C1G,EAAcC,QAAQ2B,YAAY4F,OAAOlB,KAIzCA,EAAMG,cAAc,uBACvBnF,KAAKmG,eAAenB,EAAOI,GAE7B,MAAOgB,GACPC,QAAQC,KAAK,qCAAsCF,GACnDpG,KAAKmG,eAAenB,EAAOI,GAI/BpF,KAAKiD,eAAe,GACnB,GAAG,GACL,GAGG,cAAAkD,CAAenB,EAAoBI,GACzC,GAAIJ,EAAMG,cAAc,sBAAuB,OAE/C,MAAMoB,GAAcnB,EAAOI,aAAe,IAAIV,MAAM,MAAMd,OACpDxD,EAAkBkD,KAAKC,IAC3B,EACA6C,SAASxB,EAAMyB,aAAa,eAAiB,IAAK,KAG9CC,EAAqBC,SAASC,cAAc,QAClDF,EAAmBnB,UAAY,oBAE/B,MAAMsB,EAAQC,MAAMP,GAAYQ,KAAK,iBAAiBC,KAAK,IAC3DN,EAAmBO,UAAYJ,EAE/B7B,EAAMkC,YAAYR,GAClB1B,EAAMmC,MAAMC,aAAe,eAAc5G,EAAkB,GAGrD,cAAAuE,CAAesC,GACrB,IAAKA,EAAKxC,OAAQ,MAAO,YAEzB,MAAMyC,EAAY,CAChB,SACA,OACA,MACA,MACA,SACA,MACA,aACA,aACA,SACA,OACA,IACA,OAEF,IAAIC,EAA2B,CAAEnH,SAAU,YAAaoH,UAAW,GAEnE,IAAK,MAAMC,KAAQH,EACjB,GAAI5I,EAAM4I,UAAUG,GAAO,CACzB,MAAMC,EAAShJ,EAAMiJ,SAASN,EAAM3I,EAAM4I,UAAUG,IAC9CD,EAAYxH,KAAK4H,mBAAmBF,EAAQD,GAC9CD,EAAYD,EAAUC,YACxBD,EAAY,CAAEnH,SAAUqH,EAAMD,cAKpC,MAA8B,WAAvBD,EAAUnH,SACbJ,KAAK6H,wBAAwBR,GAC7BE,EAAUnH,SAGR,kBAAAwH,CACNF,EACAtH,GAEA,OAAOsH,EAAOI,QAAO,CAACN,EAAWO,KACV,iBAAVA,IACTP,GAAaxH,KAAKgI,kBAAkBD,EAAO3H,IAEtCoH,IACN,GAGG,iBAAAQ,CAAkBD,EAAoB3H,GAC5C,IAAIoH,EACF,GACCO,EAAME,MAASnB,MAAMoB,QAAQH,EAAME,OAASF,EAAME,MAAMjE,OAAS,EAAK,GAczE,OAbIhE,KAAKmI,wBAAwBJ,EAAO3H,KAAWoH,GAAa,GAC5DO,EAAMK,UACJtB,MAAMoB,QAAQH,EAAMK,SACtBZ,GAAaO,EAAMK,QAAQN,QACzB,CAACO,EAAKC,IACJD,GACc,iBAANC,EAAiB,EAAItI,KAAKgI,kBAAkBM,EAAGlI,KACzD,GAEgC,iBAAlB2H,EAAMK,UACtBZ,GAAaxH,KAAKgI,kBAAkBD,EAAMK,QAAShI,KAGhDoH,EAGD,uBAAAW,CACNJ,EACA3H,GAGA,OADuBnB,EAAyBmB,IAAa,IACvCmI,MAAMD,GAAMP,EAAMK,QAAQI,WAAWC,SAASH,KAG9D,uBAAAT,CAAwBR,GAC9B,MAAI,qBAAqBqB,KAAKrB,GAAc,OACxC,UAAUqB,KAAKrB,GAAc,MAC7B,QAAQqB,KAAKrB,GAAc,MAC3B,SAASqB,KAAKrB,GAAc,SACzB,SAGD,aAAApE,GACNF,YAAW,KACT4F,uBAAsB,WACpB,MAAMC,EAA2B,QAAf3D,EAAAjF,KAAKkF,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,cACjC,yBAEI0D,EAAMD,aAAS,EAATA,EAAWzD,cAAc,OACrC,GAAI0D,GAAOD,EAAW,CACpB,MAAME,EAAgBD,EAAIE,aACpBC,EAAahJ,KAAKgC,aACpBhC,KAAKwC,iBAAmBoG,EAAUK,aACf,OAAnBjJ,KAAKU,UACLV,KAAKU,UACLkI,EAAUK,aAEdjJ,KAAK8B,YAAcgH,EAAgBE,EACnChJ,KAAKsC,yBACHwG,IAAkB9I,KAAKU,WAAakI,EAAUK,iBAElD,GACD,KAGG,uBAAArE,CAAwByC,GAC9B,IAAKA,EAAM,MAAO,GAClB,MAAM6B,EAAQ7B,EAAKvC,MAAM,MACnBqE,EAAYD,EAAMpB,QAAO,CAACsB,EAAKC,KACnC,MAAMC,EAAQD,EAAKC,MAAM,WACnBC,EAASD,EAAQA,EAAM,GAAGtF,OAAS,EACzC,OAAOqF,EAAKxE,OAAOb,OAASN,KAAK0F,IAAIA,EAAKG,GAAUH,CAAG,GACtDI,KACH,OAAON,EACJO,KAAKJ,GAASA,EAAKK,MAAMP,KACzBnC,KAAK,MACLnC,OAGG,iBAAA8E,CAAkBtC,GACxB,MAAO,CAAEA,QAGH,QAAAnD,CAASkC,GACf,MAAMwD,EAAe5J,KAAKkC,WAAWgB,KACrC2G,UAAUC,UACPC,UAAU/J,KAAKsB,aACf0I,MAAK,KACJhK,KAAKkC,WAAa,CAChB+B,QAAQ,EACRf,KAAM0G,EAAa5F,OAAS,EAAI,UAAY,IAE9ChE,KAAK6C,gBACL7C,KAAKiK,cACH,IAAIC,YAAY,UAAW,CACzBC,OAAQ,CACNC,UAAWhE,EACXiE,YAAarK,KAAK2J,kBAAkB3J,KAAKsB,iBAI/CyB,YAAW,KACT/C,KAAKkC,WAAa,CAAE+B,QAAQ,EAAOf,KAAM0G,GACzC5J,KAAK6C,eAAe,GACnB,IAAK,IAETyH,OAAOC,GAAQlE,QAAQmE,MAAM,uBAAwBD,KAGlD,iBAAAjH,GACN,OAAItD,KAAKgC,aACAhC,KAAKwC,gBACR,eAAexC,KAAKwC,oBACpB,GAEoB,OAAnBxC,KAAKU,UAAqB,eAAeV,KAAKU,cAAgB,GAG/D,cAAA4D,SAGN,GAFAtE,KAAKgC,cAAgBhC,KAAKgC,aAEtBhC,KAAKgC,aAAc,CACrB,MAAM6G,EAAqB,QAAf5D,EAAAjF,KAAKkF,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,cAAc,OAC3CnF,KAAKwC,iBAAkBqG,aAAG,EAAHA,EAAKE,eAAgB,UAE5C/I,KAAKwC,gBAAkB,KAGzBxC,KAAK6C,gBACLE,YAAW,IAAM/C,KAAKiD,iBAAiB,GAGjC,cAAAO,CAAe4C,GACrB,MAAMyC,EAAMzC,EAAEqE,cAGRC,EAAyB7B,EAAIE,aAAeF,EAAII,aAChD0B,EAA2B9B,EAAI+B,YAAc/B,EAAIgC,YAEzC,cAAVzE,EAAE0E,KAAiC,YAAV1E,EAAE0E,IACzBJ,IACF7B,EAAIkC,WAAuB,cAAV3E,EAAE0E,IAPF,OAQjB1E,EAAE4E,kBAEe,eAAV5E,EAAE0E,KAAkC,cAAV1E,EAAE0E,KACjCH,IACF9B,EAAIoC,YAAwB,eAAV7E,EAAE0E,IAZH,OAajB1E,EAAE4E,oDAteC/K,EAAAiL,IAAAlL,KAAAmL,EAAAnL,KAAAoL,GAA0C,YAI1C/K,EAAA6K,IAAAlL,MAAAmL,EAAAnL,KAAAqL,IAAAF,EAAAnL,KAAAsL,GAAW,MAIX/K,EAAA2K,IAAAlL,MAAAmL,EAAAnL,KAAAuL,IAAAJ,EAAAnL,KAAAwL,IAAc,KAId/K,EAAAyK,IAAAlL,MAAAmL,EAAAnL,KAAAyL,IAAAN,EAAAnL,KAAA0L,GAAkB,KAIlB/K,EAAAuK,IAAAlL,MAAAmL,EAAAnL,KAAA2L,IAAAR,EAAAnL,KAAA4L,GAA2B,QAI3B/K,EAAAqK,IAAAlL,MAAAmL,EAAAnL,KAAA6L,IAAAV,EAAAnL,KAAA8L,GAAgB,MAIhB/K,EAAAmK,IAAAlL,MAAAmL,EAAAnL,KAAA+L,IAAAZ,EAAAnL,KAAAgM,IAAoB,KAIpB/K,EAAAiK,IAAAlL,MAAAmL,EAAAnL,KAAAiM,IAAAd,EAAAnL,KAAAkM,IAAqB,KAIrB/K,EAAA+J,IAAAlL,MAAAmL,EAAAnL,KAAAmM,IAAAhB,EAAAnL,KAAAoM,GAAiB,MAIjB/K,EAAA6J,IAAAlL,MAAAmL,EAAAnL,KAAAqM,IAAAlB,EAAAnL,KAAAsM,GAA4B,MAI5B/K,EAAA2J,IAAAlL,MAAAmL,EAAAnL,KAAAuM,IAAApB,EAAAnL,KAAAwM,GAAc,MAId/K,EAAAyJ,IAAAlL,MAAAmL,EAAAnL,KAAAyM,IAAAtB,EAAAnL,KAAA0M,GAAc5N,KAMN6C,EAAAuJ,IAAAlL,MAAAmL,EAAAnL,KAAA2M,IAAAxB,EAAAnL,KAAA4M,GAAe9N,KAMf+C,EAAAqJ,IAAAlL,MAAAmL,EAAAnL,KAAA6M,IAAA1B,EAAAnL,KAAA8M,IAAgB,KAMhB/K,EAAAmJ,IAAAlL,MAAAmL,EAAAnL,KAAA+M,IAAA5B,EAAAnL,KAAAgN,IAAc,KAMd/K,EAAAiJ,IAAAlL,MAAAmL,EAAAnL,KAAAiN,IAAA9B,EAAAnL,KAAAkN,IAAe,KAMf/K,EAAA+I,IAAAlL,MAAAmL,EAAAnL,KAAAmN,IAAAhC,EAAAnL,KAAAoN,GAAa,CAAEnJ,QAAQ,EAAOf,KAAM,OAMpCb,EAAA6I,IAAAlL,MAAAmL,EAAAnL,KAAAqN,IAAAlC,EAAAnL,KAAAsN,GAAqB,MAMrB/K,EAAA2I,IAAAlL,MAAAmL,EAAAnL,KAAAuN,IAAApC,EAAAnL,KAAAwN,IAA2B,KAM3B/K,EAAAyI,IAAAlL,MAAAmL,EAAAnL,KAAAyN,IAAAtC,EAAAnL,KAAA0N,GAAiC,ycA7FjDC,EAAA,CAAAC,EAAS,CAAEC,KAAMjI,UAIjBkI,EAAA,CAAAF,EAAS,CAAEC,KAAMjI,UAIjBmI,EAAA,CAAAH,EAAS,CAAEC,KAAMG,WAIjBC,EAAA,CAAAL,EAAS,CAAEC,KAAMK,UAIjBC,EAAA,CAAAP,EAAS,CAAEC,KAAMK,UAIjBE,EAAA,CAAAR,EAAS,CAAEC,KAAMjI,UAIjByI,EAAA,CAAAT,EAAS,CAAEC,KAAMG,WAIjBM,EAAA,CAAAV,EAAS,CAAEC,KAAMG,WAIjBO,EAAA,CAAAX,EAAS,CAAEC,KAAMjI,UAIjB4I,GAAA,CAAAZ,EAAS,CAAEC,KAAMjI,UAIjB6I,GAAA,CAAAb,EAAS,CAAEC,KAAMjI,UAIjB8I,GAAA,CAAAd,EAAS,CAAEC,KAAMc,UAMjBC,GAAA,CAAAC,KAMAC,GAAA,CAAAD,KAMAE,GAAA,CAAAF,KAMAG,GAAA,CAAAH,KAMAI,GAAA,CAAAJ,KAMAK,GAAA,CAAAL,KAMAM,GAAA,CAAAN,KAMAO,GAAA,CAAAP,KA3FDQ,EAAAzP,EAAA,KAAA+N,EAAA,CAAA2B,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAAS7P,UAASoL,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAT7P,UAASI,CAAA,GAAA2P,SAAAC,GAAA1E,GAAAC,IAIlBgE,EAAAzP,EAAA,KAAAkO,EAAA,CAAAwB,KAAA,WAAAC,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASvP,SAAQ8K,IAAA,CAAAyE,EAAAzP,KAAAyP,EAARvP,SAAQF,CAAA,GAAA2P,SAAAC,GAAAxE,GAAAC,IAIjB8D,EAAAzP,EAAA,KAAAmO,EAAA,CAAAuB,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASrP,YAAW4K,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAXrP,YAAWJ,CAAA,GAAA2P,SAAAC,GAAAtE,GAAAC,IAIpB4D,EAAAzP,EAAA,KAAAqO,EAAA,CAAAqB,KAAA,WAAAC,KAAA,kBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,oBAAAA,EAAAC,IAAAD,GAAAA,EAASnP,gBAAe0K,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAfnP,gBAAeN,CAAA,GAAA2P,SAAAC,GAAApE,GAAAC,IAIxB0D,EAAAzP,EAAA,KAAAuO,EAAA,CAAAmB,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAASjP,UAASwK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAATjP,UAASR,CAAA,GAAA2P,SAAAC,GAAAlE,GAAAC,IAIlBwD,EAAAzP,EAAA,KAAAwO,EAAA,CAAAkB,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAAS/O,cAAasK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAb/O,cAAaV,CAAA,GAAA2P,SAAAC,GAAAhE,GAAAC,IAItBsD,EAAAzP,EAAA,KAAAyO,EAAA,CAAAiB,KAAA,WAAAC,KAAA,oBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,sBAAAA,EAAAC,IAAAD,GAAAA,EAAS7O,kBAAiBoK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAjB7O,kBAAiBZ,CAAA,GAAA2P,SAAAC,GAAA9D,GAAAC,IAI1BoD,EAAAzP,EAAA,KAAA0O,EAAA,CAAAgB,KAAA,WAAAC,KAAA,qBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,uBAAAA,EAAAC,IAAAD,GAAAA,EAAS3O,mBAAkBkK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAlB3O,mBAAkBd,CAAA,GAAA2P,SAAAC,GAAA5D,GAAAC,IAI3BkD,EAAAzP,EAAA,KAAA2O,EAAA,CAAAe,KAAA,WAAAC,KAAA,iBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAASzO,eAAcgK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAdzO,eAAchB,CAAA,GAAA2P,SAAAC,GAAA1D,GAAAC,IAIvBgD,EAAAzP,EAAA,KAAA4O,GAAA,CAAAc,KAAA,WAAAC,KAAA,4BAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,8BAAAA,EAAAC,IAAAD,GAAAA,EAASvO,0BAAyB8J,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAzBvO,0BAAyBlB,CAAA,GAAA2P,SAAAC,GAAAxD,GAAAC,IAIlC8C,EAAAzP,EAAA,KAAA6O,GAAA,CAAAa,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASrO,YAAW4J,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAXrO,YAAWpB,CAAA,GAAA2P,SAAAC,GAAAtD,GAAAC,IAIpB4C,EAAAzP,EAAA,KAAA8O,GAAA,CAAAY,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASnO,YAAW0J,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAXnO,YAAWtB,CAAA,GAAA2P,SAAAC,GAAApD,GAAAC,IAMpB0C,EAAAzP,EAAA,KAAAgP,GAAA,CAAAU,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAiBjO,aAAYwJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAZjO,aAAYxB,CAAA,GAAA2P,SAAAC,GAAAlD,GAAAC,IAM7BwC,EAAAzP,EAAA,KAAAkP,GAAA,CAAAQ,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAAiB/N,cAAasJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAb/N,cAAa1B,CAAA,GAAA2P,SAAAC,GAAAhD,GAAAC,IAM9BsC,EAAAzP,EAAA,KAAAmP,GAAA,CAAAO,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAAiB7N,YAAWoJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAX7N,YAAW5B,CAAA,GAAA2P,SAAAC,GAAA9C,GAAAC,IAM5BoC,EAAAzP,EAAA,KAAAoP,GAAA,CAAAM,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAiB3N,aAAYkJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAZ3N,aAAY9B,CAAA,GAAA2P,SAAAC,GAAA5C,GAAAC,IAM7BkC,EAAAzP,EAAA,KAAAqP,GAAA,CAAAK,KAAA,WAAAC,KAAA,aAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,eAAAA,EAAAC,IAAAD,GAAAA,EAAiBzN,WAAUgJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAVzN,WAAUhC,CAAA,GAAA2P,SAAAC,GAAA1C,GAAAC,IAM3BgC,EAAAzP,EAAA,KAAAsP,GAAA,CAAAI,KAAA,WAAAC,KAAA,qBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,uBAAAA,EAAAC,IAAAD,GAAAA,EAAiBvN,mBAAkB8I,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAlBvN,mBAAkBlC,CAAA,GAAA2P,SAAAC,GAAAxC,GAAAC,IAMnC8B,EAAAzP,EAAA,KAAAuP,GAAA,CAAAG,KAAA,WAAAC,KAAA,2BAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,6BAAAA,EAAAC,IAAAD,GAAAA,EAAiBrN,yBAAwB4I,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAxBrN,yBAAwBpC,CAAA,GAAA2P,SAAAC,GAAAtC,GAAAC,IAMzC4B,EAAAzP,EAAA,KAAAwP,GAAA,CAAAE,KAAA,WAAAC,KAAA,kBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,oBAAAA,EAAAC,IAAAD,GAAAA,EAAiBnN,gBAAe0I,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAfnN,gBAAetC,CAAA,GAAA2P,SAAAC,GAAApC,GAAAqC,IApGlCV,EAAA,KAAAW,EAAA,CAAA9P,MAAAN,GAAAqQ,GAAA,CAAAX,KAAA,QAAAC,KAAA3P,EAAA2P,KAAAM,SAAAC,GAAA,KAAAI,kHACkBtQ,EAAAuQ,OAAS,CACvBC,EAAUC,GACVD,EAAUE,IAHDnF,EAAAvL,EAAAsQ,OAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/card/card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAMlD;;;;;;GAMG;AAEH,qBACa,IAAK,SAAQ,UAAU;IAClC,OAAgB,MAAM,0BAAuB;IAE7C,4CAA4C;IAE5C,QAAQ,CAAC,IAAI,SAAY;IAEzB,yCAAyC;IAEzC,QAAQ,CAAC,IAAI,SAAM;IAEnB,sKAAsK;IAEtK,QAAQ,CAAC,GAAG,SAAM;IAElB,sKAAsK;IAEtK,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAW;IAE/B,8FAA8F;IAE9F,QAAQ,CAAC,UAAU,UAAS;IAE5B,uCAAuC;IAEvC,QAAQ,CAAC,WAAW,UAAS;IAC7B,uCAAuC;IAEvC,QAAQ,CAAC,SAAS,UAAS;IAElB,MAAM;IAmCf,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/card/card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAMlD;;;;;;GAMG;AAEH,qBACa,IAAK,SAAQ,UAAU;IAClC,OAAgB,MAAM,0BAAuB;IAE7C,4CAA4C;IAE5C,QAAQ,CAAC,IAAI,SAAY;IAEzB,yCAAyC;IAEzC,QAAQ,CAAC,IAAI,SAAM;IAEnB,sKAAsK;IAEtK,QAAQ,CAAC,GAAG,SAAM;IAElB,sKAAsK;IAEtK,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAW;IAE/B,8FAA8F;IAE9F,QAAQ,CAAC,UAAU,UAAS;IAE5B,uCAAuC;IAEvC,QAAQ,CAAC,WAAW,UAAS;IAC7B,uCAAuC;IAEvC,QAAQ,CAAC,SAAS,UAAS;IAElB,MAAM;IAmCf,OAAO,CAAC,WAAW;CAYpB;AACD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,IAAI,CAAC;KAClB;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as r,b as t,c as a,d as i}from"../../../vendor/tslib-Ac8XvvSX.js";import{i as o,t as d,r as l,n as
|
|
1
|
+
import{_ as e,a as r,b as t,c as a,d as i}from"../../../vendor/tslib-Ac8XvvSX.js";import{i as o,t as d,r as l,n as c}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{e as s,x as n}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as h}from"../../../vendor/lit-element-m-OqzV5s.js";var p=o`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -109,9 +109,9 @@ import{_ as e,a as r,b as t,c as a,d as i}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
109
109
|
.card-highlight {
|
|
110
110
|
background: var(--kd-color-background-highlight-fill);
|
|
111
111
|
color: var(--kd-color-text-level-primary);
|
|
112
|
-
}`;let
|
|
112
|
+
}`;let b=(()=>{var o,b,g,k,u,v,m;let f,w,x,y,C,B,S,M,W,$=[d("kyn-card")],j=[],E=h,O=[],P=[],_=[],z=[],D=[],q=[],A=[],F=[],G=[],H=[],I=[],J=[],K=[],L=[];return w=class extends E{get type(){return a(this,o,"f")}set type(e){i(this,o,e,"f")}get href(){return a(this,b,"f")}set href(e){i(this,b,e,"f")}get rel(){return a(this,g,"f")}set rel(e){i(this,g,e,"f")}get target(){return a(this,k,"f")}set target(e){i(this,k,e,"f")}get hideBorder(){return a(this,u,"f")}set hideBorder(e){i(this,u,e,"f")}get aiConnected(){return a(this,v,"f")}set aiConnected(e){i(this,v,e,"f")}get highlight(){return a(this,m,"f")}set highlight(e){i(this,m,e,"f")}render(){const e={"card-wrapper-clickable":!0,"card-border":!1===this.hideBorder,"ai-Connected":this.aiConnected,"card-highlight":this.highlight,"ai-highlight":this.aiConnected&&this.highlight},r={"card-wrapper":!0,"ai-Connected":this.aiConnected,"card-highlight":this.highlight,"ai-highlight":this.aiConnected&&this.highlight};return n`${"clickable"===this.type?n`<a
|
|
113
113
|
part="card-wrapper"
|
|
114
|
-
class="${
|
|
114
|
+
class="${s(e)}"
|
|
115
115
|
href=${this.href}
|
|
116
116
|
target=${this.target}
|
|
117
117
|
rel=${this.rel}
|
|
@@ -120,8 +120,8 @@ import{_ as e,a as r,b as t,c as a,d as i}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
120
120
|
<slot></slot>
|
|
121
121
|
</a>`:n`<div
|
|
122
122
|
part="card-wrapper"
|
|
123
|
-
class="${
|
|
123
|
+
class="${s(r)}"
|
|
124
124
|
>
|
|
125
125
|
<slot></slot>
|
|
126
|
-
</div>`} `}handleClick(e){const r=new CustomEvent("on-card-click",{detail:{origEvent:e}});this.dispatchEvent(r)}constructor(){super(...arguments),o.set(this,t(this,O,"normal")),
|
|
126
|
+
</div>`} `}handleClick(e){const r=new CustomEvent("on-card-click",{detail:{origEvent:e},bubbles:!0,composed:!0,cancelable:!0});this.dispatchEvent(r)&&!r.defaultPrevented||e.preventDefault()}constructor(){super(...arguments),o.set(this,t(this,O,"normal")),b.set(this,(t(this,P),t(this,_,""))),g.set(this,(t(this,z),t(this,D,""))),k.set(this,(t(this,q),t(this,A,"_self"))),u.set(this,(t(this,F),t(this,G,!1))),v.set(this,(t(this,H),t(this,I,!1))),m.set(this,(t(this,J),t(this,K,!1))),t(this,L)}},o=new WeakMap,b=new WeakMap,g=new WeakMap,k=new WeakMap,u=new WeakMap,v=new WeakMap,m=new WeakMap,e(w,"Card"),(()=>{var e;const t="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=E[Symbol.metadata])&&void 0!==e?e:null):void 0;x=[c({type:String})],y=[c({type:String})],C=[c({type:String})],B=[c({type:String})],S=[c({type:Boolean})],M=[c({type:Boolean})],W=[c({type:Boolean})],r(w,null,x,{kind:"accessor",name:"type",static:!1,private:!1,access:{has:e=>"type"in e,get:e=>e.type,set:(e,r)=>{e.type=r}},metadata:t},O,P),r(w,null,y,{kind:"accessor",name:"href",static:!1,private:!1,access:{has:e=>"href"in e,get:e=>e.href,set:(e,r)=>{e.href=r}},metadata:t},_,z),r(w,null,C,{kind:"accessor",name:"rel",static:!1,private:!1,access:{has:e=>"rel"in e,get:e=>e.rel,set:(e,r)=>{e.rel=r}},metadata:t},D,q),r(w,null,B,{kind:"accessor",name:"target",static:!1,private:!1,access:{has:e=>"target"in e,get:e=>e.target,set:(e,r)=>{e.target=r}},metadata:t},A,F),r(w,null,S,{kind:"accessor",name:"hideBorder",static:!1,private:!1,access:{has:e=>"hideBorder"in e,get:e=>e.hideBorder,set:(e,r)=>{e.hideBorder=r}},metadata:t},G,H),r(w,null,M,{kind:"accessor",name:"aiConnected",static:!1,private:!1,access:{has:e=>"aiConnected"in e,get:e=>e.aiConnected,set:(e,r)=>{e.aiConnected=r}},metadata:t},I,J),r(w,null,W,{kind:"accessor",name:"highlight",static:!1,private:!1,access:{has:e=>"highlight"in e,get:e=>e.highlight,set:(e,r)=>{e.highlight=r}},metadata:t},K,L),r(null,f={value:w},$,{kind:"class",name:w.name,metadata:t},null,j),w=f.value,t&&Object.defineProperty(w,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})})(),w.styles=l(p),t(w,j),w})();export{b as Card};
|
|
127
127
|
//# sourceMappingURL=card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sources":["../../../../src/components/reusable/card/card.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport CardScss from './card.scss?inline';\n\n/**\n * Card.\n * @fires on-card-click - Captures the click event of clickable card and emits the original event details. Use `e.stopPropogation()` / `e.preventDefault()` for any internal clickable elements when card type is `'clickable'` to stop bubbling / prevent event. `detail:{ origEvent: PointerEvent }`\n * @slot unnamed - Slot for card contents.\n * @part card-wrapper - The wrapper element of the card. Use this part to customize its styles such as padding . Ex: kyn-card::part(card-wrapper)\n\n */\n\n@customElement('kyn-card')\nexport class Card extends LitElement {\n static override styles = unsafeCSS(CardScss);\n\n /** Card Type. `'normal'` & `'clickable'` */\n @property({ type: String })\n accessor type = 'normal';\n\n /** Card link url for clickable cards. */\n @property({ type: String })\n accessor href = '';\n\n /** Use for Card type `'clickable'`. Defines a relationship between a linked resource and the document. An empty string (default) means no particular relationship. */\n @property({ type: String })\n accessor rel = '';\n\n /** Defines a target attribute for where to load the URL in case of clickable card. Possible options include `'_self'` (deafult), `'_blank'`, `'_parent`', `'_top'` */\n @property({ type: String })\n accessor target: any = '_self';\n\n /** Hide card border. Useful when clickable card use inside `<kyn-notification>` component. */\n @property({ type: Boolean })\n accessor hideBorder = false;\n\n /** Set this to `true` for AI theme. */\n @property({ type: Boolean })\n accessor aiConnected = false;\n /** Set this to `true` for highlight */\n @property({ type: Boolean })\n accessor highlight = false;\n\n override render() {\n const cardWrapperClasses = {\n 'card-wrapper-clickable': true,\n 'card-border': this.hideBorder === false,\n 'ai-Connected': this.aiConnected,\n 'card-highlight': this.highlight,\n 'ai-highlight': this.aiConnected && this.highlight,\n };\n\n const cardWrapperDefaultClasses = {\n 'card-wrapper': true,\n 'ai-Connected': this.aiConnected,\n 'card-highlight': this.highlight,\n 'ai-highlight': this.aiConnected && this.highlight,\n };\n\n return html`${this.type === 'clickable'\n ? html`<a\n part=\"card-wrapper\"\n class=\"${classMap(cardWrapperClasses)}\"\n href=${this.href}\n target=${this.target}\n rel=${this.rel}\n @click=${(e: Event) => this.handleClick(e)}\n >\n <slot></slot>\n </a>`\n : html`<div\n part=\"card-wrapper\"\n class=\"${classMap(cardWrapperDefaultClasses)}\"\n >\n <slot></slot>\n </div>`} `;\n }\n\n private handleClick(e: Event) {\n const event = new CustomEvent('on-card-click', {\n detail: { origEvent: e },\n });\n this.dispatchEvent(event);\n }\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-card': Card;\n }\n}\n"],"names":["Card","customElement","LitElement","_classThis","_classSuper","type","__classPrivateFieldGet","this","_Card_type_accessor_storage","value","__classPrivateFieldSet","href","_Card_href_accessor_storage","rel","_Card_rel_accessor_storage","target","_Card_target_accessor_storage","hideBorder","_Card_hideBorder_accessor_storage","aiConnected","_Card_aiConnected_accessor_storage","highlight","_Card_highlight_accessor_storage","render","cardWrapperClasses","cardWrapperDefaultClasses","html","classMap","e","handleClick","event","CustomEvent","detail","origEvent","dispatchEvent","set","__runInitializers","_type_initializers","_type_extraInitializers","_href_initializers","_href_extraInitializers","_rel_initializers","_rel_extraInitializers","_target_initializers","_target_extraInitializers","_hideBorder_initializers","_hideBorder_extraInitializers","_aiConnected_initializers","_aiConnected_extraInitializers","_highlight_initializers","_type_decorators","property","String","_href_decorators","_rel_decorators","_target_decorators","_hideBorder_decorators","Boolean","_aiConnected_decorators","_highlight_decorators","__esDecorate","kind","name","static","private","access","has","obj","get","metadata","_metadata","_highlight_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","CardScss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAeaA,EAAI,iDADhBC,EAAc,oBACWC,+EAARC,EAAA,cAAQC,EAKxB,QAASC,GAAI,OAAAC,EAAAC,KAAAC,EAAA,IAAA,CAAb,QAASH,CAAII,GAAAC,EAAAH,KAAAC,EAAAC,EAAA,IAAA,CAIb,QAASE,GAAI,OAAAL,EAAAC,KAAAK,EAAA,IAAA,CAAb,QAASD,CAAIF,GAAAC,EAAAH,KAAAK,EAAAH,EAAA,IAAA,CAIb,OAASI,GAAG,OAAAP,EAAAC,KAAAO,EAAA,IAAA,CAAZ,OAASD,CAAGJ,GAAAC,EAAAH,KAAAO,EAAAL,EAAA,IAAA,CAIZ,UAASM,GAAM,OAAAT,EAAAC,KAAAS,EAAA,IAAA,CAAf,UAASD,CAAMN,GAAAC,EAAAH,KAAAS,EAAAP,EAAA,IAAA,CAIf,cAASQ,GAAU,OAAAX,EAAAC,KAAAW,EAAA,IAAA,CAAnB,cAASD,CAAUR,GAAAC,EAAAH,KAAAW,EAAAT,EAAA,IAAA,CAInB,eAASU,GAAW,OAAAb,EAAAC,KAAAa,EAAA,IAAA,CAApB,eAASD,CAAWV,GAAAC,EAAAH,KAAAa,EAAAX,EAAA,IAAA,CAGpB,aAASY,GAAS,OAAAf,EAAAC,KAAAe,EAAA,IAAA,CAAlB,aAASD,CAASZ,GAAAC,EAAAH,KAAAe,EAAAb,EAAA,IAAA,CAET,MAAAc,GACP,MAAMC,EAAqB,CACzB,0BAA0B,EAC1B,eAAmC,IAApBjB,KAAKU,WACpB,eAAgBV,KAAKY,YACrB,iBAAkBZ,KAAKc,UACvB,eAAgBd,KAAKY,aAAeZ,KAAKc,WAGrCI,EAA4B,CAChC,gBAAgB,EAChB,eAAgBlB,KAAKY,YACrB,iBAAkBZ,KAAKc,UACvB,eAAgBd,KAAKY,aAAeZ,KAAKc,WAG3C,OAAOK,CAAI,GAAiB,cAAdnB,KAAKF,KACfqB,CAAI;;mBAEOC,EAASH;iBACXjB,KAAKI;mBACHJ,KAAKQ;gBACRR,KAAKM;mBACDe,GAAarB,KAAKsB,YAAYD;;;cAI1CF,CAAI;;mBAEOC,EAASF;;;mBAMlB,WAAAI,CAAYD,GAClB,MAAME,EAAQ,IAAIC,YAAY,gBAAiB,CAC7CC,OAAQ,CAAEC,UAAWL,
|
|
1
|
+
{"version":3,"file":"card.js","sources":["../../../../src/components/reusable/card/card.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport CardScss from './card.scss?inline';\n\n/**\n * Card.\n * @fires on-card-click - Captures the click event of clickable card and emits the original event details. Use `e.stopPropogation()` / `e.preventDefault()` for any internal clickable elements when card type is `'clickable'` to stop bubbling / prevent event. `detail:{ origEvent: PointerEvent }`\n * @slot unnamed - Slot for card contents.\n * @part card-wrapper - The wrapper element of the card. Use this part to customize its styles such as padding . Ex: kyn-card::part(card-wrapper)\n\n */\n\n@customElement('kyn-card')\nexport class Card extends LitElement {\n static override styles = unsafeCSS(CardScss);\n\n /** Card Type. `'normal'` & `'clickable'` */\n @property({ type: String })\n accessor type = 'normal';\n\n /** Card link url for clickable cards. */\n @property({ type: String })\n accessor href = '';\n\n /** Use for Card type `'clickable'`. Defines a relationship between a linked resource and the document. An empty string (default) means no particular relationship. */\n @property({ type: String })\n accessor rel = '';\n\n /** Defines a target attribute for where to load the URL in case of clickable card. Possible options include `'_self'` (deafult), `'_blank'`, `'_parent`', `'_top'` */\n @property({ type: String })\n accessor target: any = '_self';\n\n /** Hide card border. Useful when clickable card use inside `<kyn-notification>` component. */\n @property({ type: Boolean })\n accessor hideBorder = false;\n\n /** Set this to `true` for AI theme. */\n @property({ type: Boolean })\n accessor aiConnected = false;\n /** Set this to `true` for highlight */\n @property({ type: Boolean })\n accessor highlight = false;\n\n override render() {\n const cardWrapperClasses = {\n 'card-wrapper-clickable': true,\n 'card-border': this.hideBorder === false,\n 'ai-Connected': this.aiConnected,\n 'card-highlight': this.highlight,\n 'ai-highlight': this.aiConnected && this.highlight,\n };\n\n const cardWrapperDefaultClasses = {\n 'card-wrapper': true,\n 'ai-Connected': this.aiConnected,\n 'card-highlight': this.highlight,\n 'ai-highlight': this.aiConnected && this.highlight,\n };\n\n return html`${this.type === 'clickable'\n ? html`<a\n part=\"card-wrapper\"\n class=\"${classMap(cardWrapperClasses)}\"\n href=${this.href}\n target=${this.target}\n rel=${this.rel}\n @click=${(e: Event) => this.handleClick(e)}\n >\n <slot></slot>\n </a>`\n : html`<div\n part=\"card-wrapper\"\n class=\"${classMap(cardWrapperDefaultClasses)}\"\n >\n <slot></slot>\n </div>`} `;\n }\n\n private handleClick(e: Event) {\n const event = new CustomEvent('on-card-click', {\n detail: { origEvent: e },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n const dispatchResult = this.dispatchEvent(event);\n if (!dispatchResult || event.defaultPrevented) {\n e.preventDefault();\n }\n }\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-card': Card;\n }\n}\n"],"names":["Card","customElement","LitElement","_classThis","_classSuper","type","__classPrivateFieldGet","this","_Card_type_accessor_storage","value","__classPrivateFieldSet","href","_Card_href_accessor_storage","rel","_Card_rel_accessor_storage","target","_Card_target_accessor_storage","hideBorder","_Card_hideBorder_accessor_storage","aiConnected","_Card_aiConnected_accessor_storage","highlight","_Card_highlight_accessor_storage","render","cardWrapperClasses","cardWrapperDefaultClasses","html","classMap","e","handleClick","event","CustomEvent","detail","origEvent","bubbles","composed","cancelable","dispatchEvent","defaultPrevented","preventDefault","set","__runInitializers","_type_initializers","_type_extraInitializers","_href_initializers","_href_extraInitializers","_rel_initializers","_rel_extraInitializers","_target_initializers","_target_extraInitializers","_hideBorder_initializers","_hideBorder_extraInitializers","_aiConnected_initializers","_aiConnected_extraInitializers","_highlight_initializers","_type_decorators","property","String","_href_decorators","_rel_decorators","_target_decorators","_hideBorder_decorators","Boolean","_aiConnected_decorators","_highlight_decorators","__esDecorate","kind","name","static","private","access","has","obj","get","metadata","_metadata","_highlight_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","CardScss"],"mappings":"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"}
|