@kyndryl-design-system/shidoka-applications 2.68.4 → 2.68.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.
@@ -1,2 +1,2 @@
1
- export{LocalNav}from"./localNav.js";export{LocalNavLink}from"./localNavLink.js";export{LocalNavDivider}from"./localNavDivider.js";import"../../../vendor/tslib-Ac8XvvSX.js";import"../../../vendor/lit-html-fDTfWwFR.js";import"../../../vendor/@lit/reactive-element-f91Vet7N.js";import"../../../vendor/lit-element-DxLLCKb1.js";import"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../../reusable/button/button.js";import"../../../common/helpers/helpers.js";import"../../reusable/button/defs.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";
1
+ export{LocalNav}from"./localNav.js";export{LocalNavLink}from"./localNavLink.js";export{LocalNavDivider}from"./localNavDivider.js";import"../../../vendor/tslib-Ac8XvvSX.js";import"../../../vendor/lit-html-fDTfWwFR.js";import"../../../vendor/@lit/reactive-element-f91Vet7N.js";import"../../../vendor/lit-element-DxLLCKb1.js";import"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../../../common/helpers/helpers.js";import"../../reusable/button/button.js";import"../../reusable/button/defs.js";import"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -56,6 +56,8 @@ export declare class LocalNav extends LitElement {
56
56
  * @internal
57
57
  */
58
58
  accessor _leaveTimer: number | null;
59
+ /** @internal */
60
+ accessor _navEl: HTMLElement;
59
61
  private _onDocumentClick;
60
62
  private _onLinkActive;
61
63
  render(): import("lit-html").TemplateResult<1>;
@@ -68,6 +70,12 @@ export declare class LocalNav extends LitElement {
68
70
  private _handleLinkActive;
69
71
  willUpdate(changedProps: Map<string | number | symbol, unknown>): void;
70
72
  private _handleClickOut;
73
+ /** Morph header on scroll.
74
+ * @internal */
75
+ private _handleScroll;
76
+ /** @internal */
77
+ private _debounceScroll;
78
+ firstUpdated(): void;
71
79
  connectedCallback(): void;
72
80
  disconnectedCallback(): void;
73
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localNav.d.ts","sourceRoot":"","sources":["../../../../src/components/global/localNav/localNav.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAUlD,OAAO,uBAAuB,CAAC;AAe/B;;;;;GAKG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,0BAA2B;IAEjD,8BAA8B;IAE9B,QAAQ,CAAC,MAAM,UAAS;IAExB,iCAAiC;IAEjC,QAAQ,CAAC,WAAW;;;;;;MAAuB;IAE3C;;OAEG;IAEH,QAAQ,CAAC,YAAY;;;;;;MAAuB;IAE5C;;OAEG;IAEH,QAAQ,CAAC,SAAS,UAAS;IAE3B;;OAEG;IAEH,QAAQ,CAAC,eAAe,UAAS;IAEjC;;OAEG;IAEH,QAAQ,CAAC,eAAe,EAAG,MAAM,CAAC;IAElC;;OAEG;IAEH,QAAQ,CAAC,SAAS,EAAG,WAAW,EAAE,CAAC;IAEnC;;OAEG;IAEH,QAAQ,CAAC,SAAS,EAAG,WAAW,EAAE,CAAC;IAEnC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAuB;IAE1C;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,aAAa,CACwC;IAEpD,MAAM;IAiDf,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAIhB,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAcxE,OAAO,CAAC,eAAe;IAMd,iBAAiB;IAMjB,oBAAoB;CAK9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,QAAQ,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"localNav.d.ts","sourceRoot":"","sources":["../../../../src/components/global/localNav/localNav.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAYlD,OAAO,uBAAuB,CAAC;AAe/B;;;;;GAKG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,0BAA2B;IAEjD,8BAA8B;IAE9B,QAAQ,CAAC,MAAM,UAAS;IAExB,iCAAiC;IAEjC,QAAQ,CAAC,WAAW;;;;;;MAAuB;IAE3C;;OAEG;IAEH,QAAQ,CAAC,YAAY;;;;;;MAAuB;IAE5C;;OAEG;IAEH,QAAQ,CAAC,SAAS,UAAS;IAE3B;;OAEG;IAEH,QAAQ,CAAC,eAAe,UAAS;IAEjC;;OAEG;IAEH,QAAQ,CAAC,eAAe,EAAG,MAAM,CAAC;IAElC;;OAEG;IAEH,QAAQ,CAAC,SAAS,EAAG,WAAW,EAAE,CAAC;IAEnC;;OAEG;IAEH,QAAQ,CAAC,SAAS,EAAG,WAAW,EAAE,CAAC;IAEnC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAuB;IAE1C;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C,gBAAgB;IAEhB,QAAQ,CAAC,MAAM,EAAG,WAAW,CAAC;IAE9B,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,aAAa,CACwC;IAEpD,MAAM;IAiDf,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAIhB,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAcxE,OAAO,CAAC,eAAe;IAMvB;mBACe;IACf,OAAO,CAAC,aAAa;IAQrB,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAEpB;IAEM,YAAY;IAIZ,iBAAiB;IAQjB,oBAAoB;CAO9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,QAAQ,CAAC;KAC3B;CACF"}
@@ -1,4 +1,4 @@
1
- import{_ as e,a as t,b as i,c as n,d as a}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as s,o,x as d}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as r,a as l,t as h,r as c,n as p,o as m}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as v}from"../../../vendor/lit-element-DxLLCKb1.js";import{d as g}from"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../../reusable/button/button.js";import{h as u,p as k}from"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";import"../../../common/helpers/helpers.js";import"../../reusable/button/defs.js";var x=r`*,
1
+ import{_ as e,a as t,b as i,c as n,d as a}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as s,o,x as d}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as l,a as r,t as c,r as h,n as p,o as v,e as m}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as g}from"../../../vendor/lit-element-DxLLCKb1.js";import{d as u}from"../../../vendor/deepmerge-ts-OFb5ej8y.js";import{debounce as k}from"../../../common/helpers/helpers.js";import"../../reusable/button/button.js";import{h as x,p as b}from"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";import"../../reusable/button/defs.js";var _=l`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -68,9 +68,12 @@ nav {
68
68
  bottom: 8px;
69
69
  padding-top: 8px;
70
70
  border-radius: 8px;
71
- transition: width 300ms ease-in-out, border-color 300ms ease-out;
71
+ transition: width 300ms ease-in-out, border-color 300ms ease-out, inset 150ms ease-out;
72
72
  width: var(--kd-local-nav-width);
73
73
  }
74
+ nav.scrolled {
75
+ top: calc(var(--kd-local-nav-offset-top) - 8px);
76
+ }
74
77
  nav.pinned {
75
78
  box-shadow: none;
76
79
  }
@@ -240,7 +243,7 @@ slot[name=search]::slotted(*) {
240
243
  }
241
244
  .pinned .pin-icon {
242
245
  transform: rotate(180deg);
243
- }`;const b={pin:"Pin",unpin:"Unpin",toggleMenu:"Toggle Menu",collapse:"Collapse",menu:"Menu"};let _=(()=>{var r,_,f,y,w,T,E,L,S;let z,M,C,j,$,W,P,A,N,O,D,U=[h("kyn-local-nav")],q=[],B=v,F=[],G=[],H=[],I=[],J=[],K=[],Q=[],R=[],V=[],X=[],Y=[],Z=[],ee=[],te=[],ie=[],ne=[],ae=[],se=[];return M=class extends B{constructor(){super(...arguments),r.set(this,i(this,F,!1)),_.set(this,(i(this,G),i(this,H,b))),f.set(this,(i(this,I),i(this,J,b))),y.set(this,(i(this,K),i(this,Q,!1))),w.set(this,(i(this,R),i(this,V,!1))),T.set(this,(i(this,X),i(this,Y,void 0))),E.set(this,(i(this,Z),i(this,ee,void 0))),L.set(this,(i(this,te),i(this,ie,void 0))),this._enterTimer=(i(this,ne),null),S.set(this,i(this,ae,null)),this._onDocumentClick=(i(this,se),e=>this._handleClickOut(e)),this._onLinkActive=e=>this._handleLinkActive(e)}get pinned(){return n(this,r,"f")}set pinned(e){a(this,r,e,"f")}get textStrings(){return n(this,_,"f")}set textStrings(e){a(this,_,e,"f")}get _textStrings(){return n(this,f,"f")}set _textStrings(e){a(this,f,e,"f")}get _expanded(){return n(this,y,"f")}set _expanded(e){a(this,y,e,"f")}get _mobileExpanded(){return n(this,w,"f")}set _mobileExpanded(e){a(this,w,e,"f")}get _activeLinkText(){return n(this,T,"f")}set _activeLinkText(e){a(this,T,e,"f")}get _navLinks(){return n(this,E,"f")}set _navLinks(e){a(this,E,e,"f")}get _dividers(){return n(this,L,"f")}set _dividers(e){a(this,L,e,"f")}get _leaveTimer(){return n(this,S,"f")}set _leaveTimer(e){a(this,S,e,"f")}render(){return d`
246
+ }`;const f={pin:"Pin",unpin:"Unpin",toggleMenu:"Toggle Menu",collapse:"Collapse",menu:"Menu"};let y=(()=>{var l,y,w,E,S,T,L,z,M,C;let j,$,W,P,A,N,O,U,D,q,B,Y,F=[c("kyn-local-nav")],G=[],H=g,I=[],J=[],K=[],Q=[],R=[],V=[],X=[],Z=[],ee=[],te=[],ie=[],ne=[],ae=[],se=[],oe=[],de=[],le=[],re=[],ce=[],he=[];return $=class extends H{constructor(){super(...arguments),l.set(this,i(this,I,!1)),y.set(this,(i(this,J),i(this,K,f))),w.set(this,(i(this,Q),i(this,R,f))),E.set(this,(i(this,V),i(this,X,!1))),S.set(this,(i(this,Z),i(this,ee,!1))),T.set(this,(i(this,te),i(this,ie,void 0))),L.set(this,(i(this,ne),i(this,ae,void 0))),z.set(this,(i(this,se),i(this,oe,void 0))),this._enterTimer=(i(this,de),null),M.set(this,i(this,le,null)),C.set(this,(i(this,re),i(this,ce,void 0))),this._onDocumentClick=(i(this,he),e=>this._handleClickOut(e)),this._onLinkActive=e=>this._handleLinkActive(e),this._debounceScroll=k((()=>{this._handleScroll()}))}get pinned(){return n(this,l,"f")}set pinned(e){a(this,l,e,"f")}get textStrings(){return n(this,y,"f")}set textStrings(e){a(this,y,e,"f")}get _textStrings(){return n(this,w,"f")}set _textStrings(e){a(this,w,e,"f")}get _expanded(){return n(this,E,"f")}set _expanded(e){a(this,E,e,"f")}get _mobileExpanded(){return n(this,S,"f")}set _mobileExpanded(e){a(this,S,e,"f")}get _activeLinkText(){return n(this,T,"f")}set _activeLinkText(e){a(this,T,e,"f")}get _navLinks(){return n(this,L,"f")}set _navLinks(e){a(this,L,e,"f")}get _dividers(){return n(this,z,"f")}set _dividers(e){a(this,z,e,"f")}get _leaveTimer(){return n(this,M,"f")}set _leaveTimer(e){a(this,M,e,"f")}get _navEl(){return n(this,C,"f")}set _navEl(e){a(this,C,e,"f")}render(){return d`
244
247
  <nav
245
248
  class=${s({"nav--expanded":this._expanded||this.pinned,"nav--expanded-mobile":this._mobileExpanded,pinned:this.pinned})}
246
249
  @pointerleave=${e=>this.handlePointerLeave(e)}
@@ -253,7 +256,7 @@ slot[name=search]::slotted(*) {
253
256
  @click=${this._handleMobileNavToggle}
254
257
  >
255
258
  ${this._mobileExpanded?this._textStrings.collapse:this._activeLinkText||this._textStrings.menu}
256
- ${o(u)}
259
+ ${o(x)}
257
260
  </button>
258
261
 
259
262
  <div class="search">
@@ -271,11 +274,11 @@ slot[name=search]::slotted(*) {
271
274
  description=${this.pinned?this._textStrings.unpin:this._textStrings.pin}
272
275
  @on-click=${e=>this._handleNavToggle(e)}
273
276
  >
274
- <span class="pin-icon" slot="icon"> ${o(k)} </span>
277
+ <span class="pin-icon" slot="icon"> ${o(b)} </span>
275
278
  </kyn-button>
276
279
  </div>
277
280
  </nav>
278
281
 
279
282
  <div class="overlay ${this.pinned?"pinned":""}"></div>
280
- `}_handleNavToggle(e){this.pinned=!this.pinned;const t=new CustomEvent("on-toggle",{detail:{pinned:this.pinned,origEvent:e}});this.dispatchEvent(t)}_handleMobileNavToggle(){this._mobileExpanded=!this._mobileExpanded}handlePointerEnter(e){"mouse"===e.pointerType&&(null!==this._leaveTimer&&clearTimeout(this._leaveTimer),this._enterTimer=window.setTimeout((()=>{this._expanded=!0}),150))}handlePointerLeave(e){"mouse"===e.pointerType&&(null!==this._enterTimer&&clearTimeout(this._enterTimer),this._leaveTimer=window.setTimeout((()=>{this._expanded=!1}),150))}_updateChildren(){var e,t;(null!==(e=this._navLinks)&&void 0!==e?e:[]).forEach((e=>{e._navExpanded=this._expanded||this.pinned,e._navExpandedMobile=this._mobileExpanded})),(null!==(t=this._dividers)&&void 0!==t?t:[]).forEach((e=>{e._navExpanded=this._expanded||this.pinned||this._mobileExpanded}))}handleSlotChange(){this._updateChildren(),this.requestUpdate()}_handleLinkActive(e){this._activeLinkText=e.detail.text}willUpdate(e){(e.has("_expanded")||e.has("pinned")||e.has("_mobileExpanded"))&&this._updateChildren(),e.has("textStrings")&&(this._textStrings=g(b,this.textStrings))}_handleClickOut(e){e.composedPath().includes(this)||(this._expanded=!1)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this._onDocumentClick),this.addEventListener("on-link-active",this._onLinkActive)}disconnectedCallback(){document.removeEventListener("click",this._onDocumentClick),this.removeEventListener("on-link-active",this._onLinkActive),super.disconnectedCallback()}},r=new WeakMap,_=new WeakMap,f=new WeakMap,y=new WeakMap,w=new WeakMap,T=new WeakMap,E=new WeakMap,L=new WeakMap,S=new WeakMap,e(M,"LocalNav"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=B[Symbol.metadata])&&void 0!==e?e:null):void 0;C=[p({type:Boolean})],j=[p({type:Object})],$=[l()],W=[l()],P=[l()],A=[l()],N=[m({selector:"kyn-local-nav-link"})],O=[m({selector:"kyn-local-nav-divider"})],D=[l()],t(M,null,C,{kind:"accessor",name:"pinned",static:!1,private:!1,access:{has:e=>"pinned"in e,get:e=>e.pinned,set:(e,t)=>{e.pinned=t}},metadata:i},F,G),t(M,null,j,{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},H,I),t(M,null,$,{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},J,K),t(M,null,W,{kind:"accessor",name:"_expanded",static:!1,private:!1,access:{has:e=>"_expanded"in e,get:e=>e._expanded,set:(e,t)=>{e._expanded=t}},metadata:i},Q,R),t(M,null,P,{kind:"accessor",name:"_mobileExpanded",static:!1,private:!1,access:{has:e=>"_mobileExpanded"in e,get:e=>e._mobileExpanded,set:(e,t)=>{e._mobileExpanded=t}},metadata:i},V,X),t(M,null,A,{kind:"accessor",name:"_activeLinkText",static:!1,private:!1,access:{has:e=>"_activeLinkText"in e,get:e=>e._activeLinkText,set:(e,t)=>{e._activeLinkText=t}},metadata:i},Y,Z),t(M,null,N,{kind:"accessor",name:"_navLinks",static:!1,private:!1,access:{has:e=>"_navLinks"in e,get:e=>e._navLinks,set:(e,t)=>{e._navLinks=t}},metadata:i},ee,te),t(M,null,O,{kind:"accessor",name:"_dividers",static:!1,private:!1,access:{has:e=>"_dividers"in e,get:e=>e._dividers,set:(e,t)=>{e._dividers=t}},metadata:i},ie,ne),t(M,null,D,{kind:"accessor",name:"_leaveTimer",static:!1,private:!1,access:{has:e=>"_leaveTimer"in e,get:e=>e._leaveTimer,set:(e,t)=>{e._leaveTimer=t}},metadata:i},ae,se),t(null,z={value:M},U,{kind:"class",name:M.name,metadata:i},null,q),M=z.value,i&&Object.defineProperty(M,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),M.styles=c(x),i(M,q),M})();export{_ as LocalNav};
283
+ `}_handleNavToggle(e){this.pinned=!this.pinned;const t=new CustomEvent("on-toggle",{detail:{pinned:this.pinned,origEvent:e}});this.dispatchEvent(t)}_handleMobileNavToggle(){this._mobileExpanded=!this._mobileExpanded}handlePointerEnter(e){"mouse"===e.pointerType&&(null!==this._leaveTimer&&clearTimeout(this._leaveTimer),this._enterTimer=window.setTimeout((()=>{this._expanded=!0}),150))}handlePointerLeave(e){"mouse"===e.pointerType&&(null!==this._enterTimer&&clearTimeout(this._enterTimer),this._leaveTimer=window.setTimeout((()=>{this._expanded=!1}),150))}_updateChildren(){var e,t;(null!==(e=this._navLinks)&&void 0!==e?e:[]).forEach((e=>{e._navExpanded=this._expanded||this.pinned,e._navExpandedMobile=this._mobileExpanded})),(null!==(t=this._dividers)&&void 0!==t?t:[]).forEach((e=>{e._navExpanded=this._expanded||this.pinned||this._mobileExpanded}))}handleSlotChange(){this._updateChildren(),this.requestUpdate()}_handleLinkActive(e){this._activeLinkText=e.detail.text}willUpdate(e){(e.has("_expanded")||e.has("pinned")||e.has("_mobileExpanded"))&&this._updateChildren(),e.has("textStrings")&&(this._textStrings=u(f,this.textStrings))}_handleClickOut(e){e.composedPath().includes(this)||(this._expanded=!1)}_handleScroll(){window.scrollY>0?this._navEl.classList.add("scrolled"):this._navEl.classList.remove("scrolled")}firstUpdated(){this._handleScroll()}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this._onDocumentClick),this.addEventListener("on-link-active",this._onLinkActive),window.addEventListener("scroll",this._debounceScroll)}disconnectedCallback(){document.removeEventListener("click",this._onDocumentClick),this.removeEventListener("on-link-active",this._onLinkActive),window.removeEventListener("scroll",this._debounceScroll),super.disconnectedCallback()}},l=new WeakMap,y=new WeakMap,w=new WeakMap,E=new WeakMap,S=new WeakMap,T=new WeakMap,L=new WeakMap,z=new WeakMap,M=new WeakMap,C=new WeakMap,e($,"LocalNav"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=H[Symbol.metadata])&&void 0!==e?e:null):void 0;W=[p({type:Boolean})],P=[p({type:Object})],A=[r()],N=[r()],O=[r()],U=[r()],D=[v({selector:"kyn-local-nav-link"})],q=[v({selector:"kyn-local-nav-divider"})],B=[r()],Y=[m("nav")],t($,null,W,{kind:"accessor",name:"pinned",static:!1,private:!1,access:{has:e=>"pinned"in e,get:e=>e.pinned,set:(e,t)=>{e.pinned=t}},metadata:i},I,J),t($,null,P,{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},K,Q),t($,null,A,{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},R,V),t($,null,N,{kind:"accessor",name:"_expanded",static:!1,private:!1,access:{has:e=>"_expanded"in e,get:e=>e._expanded,set:(e,t)=>{e._expanded=t}},metadata:i},X,Z),t($,null,O,{kind:"accessor",name:"_mobileExpanded",static:!1,private:!1,access:{has:e=>"_mobileExpanded"in e,get:e=>e._mobileExpanded,set:(e,t)=>{e._mobileExpanded=t}},metadata:i},ee,te),t($,null,U,{kind:"accessor",name:"_activeLinkText",static:!1,private:!1,access:{has:e=>"_activeLinkText"in e,get:e=>e._activeLinkText,set:(e,t)=>{e._activeLinkText=t}},metadata:i},ie,ne),t($,null,D,{kind:"accessor",name:"_navLinks",static:!1,private:!1,access:{has:e=>"_navLinks"in e,get:e=>e._navLinks,set:(e,t)=>{e._navLinks=t}},metadata:i},ae,se),t($,null,q,{kind:"accessor",name:"_dividers",static:!1,private:!1,access:{has:e=>"_dividers"in e,get:e=>e._dividers,set:(e,t)=>{e._dividers=t}},metadata:i},oe,de),t($,null,B,{kind:"accessor",name:"_leaveTimer",static:!1,private:!1,access:{has:e=>"_leaveTimer"in e,get:e=>e._leaveTimer,set:(e,t)=>{e._leaveTimer=t}},metadata:i},le,re),t($,null,Y,{kind:"accessor",name:"_navEl",static:!1,private:!1,access:{has:e=>"_navEl"in e,get:e=>e._navEl,set:(e,t)=>{e._navEl=t}},metadata:i},ce,he),t(null,j={value:$},F,{kind:"class",name:$.name,metadata:i},null,G),$=j.value,i&&Object.defineProperty($,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),$.styles=h(_),i($,G),$})();export{y as LocalNav};
281
284
  //# sourceMappingURL=localNav.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localNav.js","sources":["../../../../src/components/global/localNav/localNav.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport '../../reusable/button';\n\nimport LocalNavScss from './localNav.scss?inline';\n\nimport arrowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport pinIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/side-drawer-out.svg';\n\nconst _defaultTextStrings = {\n pin: 'Pin',\n unpin: 'Unpin',\n toggleMenu: 'Toggle Menu',\n collapse: 'Collapse',\n menu: 'Menu',\n};\n\n/**\n * The global Side Navigation component.\n * @slot unnamed - The default slot, for local nav links.\n * @slot search - Slot for a search input\n * @fires on-toggle - Captures the click event and emits the pinned state and original event details. `detail:{ pinned: boolean, origEvent: Event }`\n */\n@customElement('kyn-local-nav')\nexport class LocalNav extends LitElement {\n static override styles = unsafeCSS(LocalNavScss);\n\n /** Local nav pinned state. */\n @property({ type: Boolean })\n accessor pinned = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /** Local nav desktop expanded state.\n * @internal\n */\n @state()\n accessor _expanded = false;\n\n /** Local nav mobile expanded state.\n * @internal\n */\n @state()\n accessor _mobileExpanded = false;\n\n /** Active Link text.\n * @internal\n */\n @state()\n accessor _activeLinkText!: string;\n\n /** Queries top-level slotted links.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-link' })\n accessor _navLinks!: HTMLElement[];\n\n /** Queries top-level slotted dividers.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-divider' })\n accessor _dividers!: HTMLElement[];\n\n /** Timeout function to delay flyout open.\n * @internal\n */\n private _enterTimer: number | null = null;\n\n /** Timeout function to delay flyout close.\n * @internal\n */\n @state()\n accessor _leaveTimer: number | null = null;\n\n private _onDocumentClick = (e: Event) => this._handleClickOut(e);\n private _onLinkActive = (e: Event) =>\n this._handleLinkActive(e as CustomEvent<{ text: string }>);\n\n override render() {\n return html`\n <nav\n class=${classMap({\n 'nav--expanded': this._expanded || this.pinned,\n 'nav--expanded-mobile': this._mobileExpanded,\n pinned: this.pinned,\n })}\n @pointerleave=${(e: PointerEvent) => this.handlePointerLeave(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <button\n class=\"mobile-toggle\"\n title=${this._textStrings.toggleMenu}\n aria-label=${this._textStrings.toggleMenu}\n @click=${this._handleMobileNavToggle}\n >\n ${this._mobileExpanded\n ? this._textStrings.collapse\n : this._activeLinkText || this._textStrings.menu}\n ${unsafeSVG(arrowIcon)}\n </button>\n\n <div class=\"search\">\n <slot name=\"search\"></slot>\n </div>\n\n <div class=\"links\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n\n <div class=\"toggle-container\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n description=${this.pinned\n ? this._textStrings.unpin\n : this._textStrings.pin}\n @on-click=${(e: Event) => this._handleNavToggle(e)}\n >\n <span class=\"pin-icon\" slot=\"icon\"> ${unsafeSVG(pinIcon)} </span>\n </kyn-button>\n </div>\n </nav>\n\n <div class=\"overlay ${this.pinned ? 'pinned' : ''}\"></div>\n `;\n }\n\n private _handleNavToggle(e: Event) {\n this.pinned = !this.pinned;\n\n const event = new CustomEvent('on-toggle', {\n detail: { pinned: this.pinned, origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _handleMobileNavToggle() {\n this._mobileExpanded = !this._mobileExpanded;\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n if (this._leaveTimer !== null) clearTimeout(this._leaveTimer);\n\n this._enterTimer = window.setTimeout(() => {\n this._expanded = true;\n }, 150);\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n if (this._enterTimer !== null) clearTimeout(this._enterTimer);\n\n this._leaveTimer = window.setTimeout(() => {\n this._expanded = false;\n }, 150);\n }\n }\n\n private _updateChildren() {\n (this._navLinks ?? []).forEach((link: HTMLElement) => {\n (link as any)._navExpanded = this._expanded || this.pinned;\n (link as any)._navExpandedMobile = this._mobileExpanded;\n });\n\n (this._dividers ?? []).forEach((divider: HTMLElement) => {\n (divider as any)._navExpanded =\n this._expanded || this.pinned || this._mobileExpanded;\n });\n }\n\n private handleSlotChange() {\n this._updateChildren();\n this.requestUpdate();\n }\n\n private _handleLinkActive(e: CustomEvent<{ text: string }>) {\n this._activeLinkText = e.detail.text;\n }\n\n override willUpdate(changedProps: Map<string | number | symbol, unknown>) {\n if (\n changedProps.has('_expanded') ||\n changedProps.has('pinned') ||\n changedProps.has('_mobileExpanded')\n ) {\n this._updateChildren();\n }\n\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this._expanded = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._onDocumentClick);\n this.addEventListener('on-link-active', this._onLinkActive);\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', this._onDocumentClick);\n this.removeEventListener('on-link-active', this._onLinkActive);\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-local-nav': LocalNav;\n }\n}\n"],"names":["_defaultTextStrings","pin","unpin","toggleMenu","collapse","menu","LocalNav","customElement","LitElement","_classThis","_classSuper","_LocalNav_pinned_accessor_storage","set","this","__runInitializers","_pinned_initializers","_LocalNav_textStrings_accessor_storage","_pinned_extraInitializers","_textStrings_initializers","_LocalNav__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_LocalNav__expanded_accessor_storage","__textStrings_extraInitializers","__expanded_initializers","_LocalNav__mobileExpanded_accessor_storage","__expanded_extraInitializers","__mobileExpanded_initializers","_LocalNav__activeLinkText_accessor_storage","__mobileExpanded_extraInitializers","__activeLinkText_initializers","_LocalNav__navLinks_accessor_storage","__activeLinkText_extraInitializers","__navLinks_initializers","_LocalNav__dividers_accessor_storage","__navLinks_extraInitializers","__dividers_initializers","_enterTimer","__dividers_extraInitializers","_LocalNav__leaveTimer_accessor_storage","__leaveTimer_initializers","_onDocumentClick","__leaveTimer_extraInitializers","e","_handleClickOut","_onLinkActive","_handleLinkActive","pinned","__classPrivateFieldGet","value","__classPrivateFieldSet","textStrings","_textStrings","_expanded","_mobileExpanded","_activeLinkText","_navLinks","_dividers","_leaveTimer","render","html","classMap","handlePointerLeave","handlePointerEnter","_handleMobileNavToggle","unsafeSVG","arrowIcon","handleSlotChange","_handleNavToggle","pinIcon","event","CustomEvent","detail","origEvent","dispatchEvent","pointerType","clearTimeout","window","setTimeout","_updateChildren","_a","forEach","link","_navExpanded","_navExpandedMobile","_b","divider","requestUpdate","text","willUpdate","changedProps","has","deepmerge","composedPath","includes","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_pinned_decorators","property","type","Boolean","_textStrings_decorators","Object","__textStrings_decorators","state","__expanded_decorators","__mobileExpanded_decorators","__activeLinkText_decorators","__navLinks_decorators","queryAssignedElements","selector","__dividers_decorators","__leaveTimer_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","LocalNavScss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkBA,MAAMA,EAAsB,CAC1BC,IAAK,MACLC,MAAO,QACPC,WAAY,cACZC,SAAU,WACVC,KAAM,YAUKC,EAAQ,yDADpBC,EAAc,yBACeC,yGAARC,EAAA,cAAQC,oCAKnBC,EAAAC,IAAAC,KAAAC,EAAAD,KAAAE,GAAS,IAITC,EAAAJ,IAAAC,MAAAC,EAAAD,KAAAI,GAAAH,EAAAD,KAAAK,EAAclB,KAMdmB,EAAAP,IAAAC,MAAAC,EAAAD,KAAAO,GAAAN,EAAAD,KAAAQ,EAAerB,KAMfsB,EAAAV,IAAAC,MAAAC,EAAAD,KAAAU,GAAAT,EAAAD,KAAAW,GAAY,KAMZC,EAAAb,IAAAC,MAAAC,EAAAD,KAAAa,GAAAZ,EAAAD,KAAAc,GAAkB,KAMlBC,EAAAhB,IAAAC,MAAAC,EAAAD,KAAAgB,GAAAf,EAAAD,KAAAiB,OAAA,KAMAC,EAAAnB,IAAAC,MAAAC,EAAAD,KAAAmB,GAAAlB,EAAAD,KAAAoB,QAAA,KAMAC,EAAAtB,IAAAC,MAAAC,EAAAD,KAAAsB,IAAArB,EAAAD,KAAAuB,QAAA,KAKDvB,KAAAwB,aAAWvB,EAAAD,KAAAyB,IAAkB,MAM5BC,EAAA3B,IAAAC,KAAAC,EAAAD,KAAA2B,GAA6B,OAE9B3B,KAAA4B,kBAAgB3B,EAAAD,KAAA6B,IAAIC,GAAa9B,KAAK+B,gBAAgBD,IACtD9B,KAAAgC,cAAiBF,GACvB9B,KAAKiC,kBAAkBH,GAvDzB,UAASI,GAAM,OAAAC,EAAAnC,KAAAF,EAAA,IAAA,CAAf,UAASoC,CAAME,GAAAC,EAAArC,KAAAF,EAAAsC,EAAA,IAAA,CAIf,eAASE,GAAW,OAAAH,EAAAnC,KAAAG,EAAA,IAAA,CAApB,eAASmC,CAAWF,GAAAC,EAAArC,KAAAG,EAAAiC,EAAA,IAAA,CAMpB,gBAASG,GAAY,OAAAJ,EAAAnC,KAAAM,EAAA,IAAA,CAArB,gBAASiC,CAAYH,GAAAC,EAAArC,KAAAM,EAAA8B,EAAA,IAAA,CAMrB,aAASI,GAAS,OAAAL,EAAAnC,KAAAS,EAAA,IAAA,CAAlB,aAAS+B,CAASJ,GAAAC,EAAArC,KAAAS,EAAA2B,EAAA,IAAA,CAMlB,mBAASK,GAAe,OAAAN,EAAAnC,KAAAY,EAAA,IAAA,CAAxB,mBAAS6B,CAAeL,GAAAC,EAAArC,KAAAY,EAAAwB,EAAA,IAAA,CAMxB,mBAASM,GAAe,OAAAP,EAAAnC,KAAAe,EAAA,IAAA,CAAxB,mBAAS2B,CAAeN,GAAAC,EAAArC,KAAAe,EAAAqB,EAAA,IAAA,CAMxB,aAASO,GAAS,OAAAR,EAAAnC,KAAAkB,EAAA,IAAA,CAAlB,aAASyB,CAASP,GAAAC,EAAArC,KAAAkB,EAAAkB,EAAA,IAAA,CAMlB,aAASQ,GAAS,OAAAT,EAAAnC,KAAAqB,EAAA,IAAA,CAAlB,aAASuB,CAASR,GAAAC,EAAArC,KAAAqB,EAAAe,EAAA,IAAA,CAWlB,eAASS,GAAW,OAAAV,EAAAnC,KAAA0B,EAAA,IAAA,CAApB,eAASmB,CAAWT,GAAAC,EAAArC,KAAA0B,EAAAU,EAAA,IAAA,CAMX,MAAAU,GACP,OAAOC,CAAI;;gBAECC,EAAS,CACf,gBAAiBhD,KAAKwC,WAAaxC,KAAKkC,OACxC,uBAAwBlC,KAAKyC,gBAC7BP,OAAQlC,KAAKkC;wBAEEJ,GAAoB9B,KAAKiD,mBAAmBnB;wBAC5CA,GAAoB9B,KAAKkD,mBAAmBpB;;;;kBAInD9B,KAAKuC,aAAajD;uBACbU,KAAKuC,aAAajD;mBACtBU,KAAKmD;;YAEZnD,KAAKyC,gBACHzC,KAAKuC,aAAahD,SAClBS,KAAK0C,iBAAmB1C,KAAKuC,aAAa/C;YAC5C4D,EAAUC;;;;;;;;8BAQQrD,KAAKsD;;;;;;;0BAOTtD,KAAKkC,OACflC,KAAKuC,aAAalD,MAClBW,KAAKuC,aAAanD;wBACT0C,GAAa9B,KAAKuD,iBAAiBzB;;kDAEVsB,EAAUI;;;;;4BAKhCxD,KAAKkC,OAAS,SAAW;MAI3C,gBAAAqB,CAAiBzB,GACvB9B,KAAKkC,QAAUlC,KAAKkC,OAEpB,MAAMuB,EAAQ,IAAIC,YAAY,YAAa,CACzCC,OAAQ,CAAEzB,OAAQlC,KAAKkC,OAAQ0B,UAAW9B,KAE5C9B,KAAK6D,cAAcJ,GAGb,sBAAAN,GACNnD,KAAKyC,iBAAmBzC,KAAKyC,gBAGvB,kBAAAS,CAAmBpB,GACH,UAAlBA,EAAEgC,cACqB,OAArB9D,KAAK6C,aAAsBkB,aAAa/D,KAAK6C,aAEjD7C,KAAKwB,YAAcwC,OAAOC,YAAW,KACnCjE,KAAKwC,WAAY,CAAI,GACpB,MAIC,kBAAAS,CAAmBnB,GACH,UAAlBA,EAAEgC,cACqB,OAArB9D,KAAKwB,aAAsBuC,aAAa/D,KAAKwB,aAEjDxB,KAAK6C,YAAcmB,OAAOC,YAAW,KACnCjE,KAAKwC,WAAY,CAAK,GACrB,MAIC,eAAA0B,YACS,QAAdC,EAAAnE,KAAK2C,iBAAS,IAAAwB,EAAAA,EAAI,IAAIC,SAASC,IAC7BA,EAAaC,aAAetE,KAAKwC,WAAaxC,KAAKkC,OACnDmC,EAAaE,mBAAqBvE,KAAKyC,eAAe,KAG1C,QAAd+B,EAAAxE,KAAK4C,iBAAS,IAAA4B,EAAAA,EAAI,IAAIJ,SAASK,IAC7BA,EAAgBH,aACftE,KAAKwC,WAAaxC,KAAKkC,QAAUlC,KAAKyC,eAAe,IAInD,gBAAAa,GACNtD,KAAKkE,kBACLlE,KAAK0E,gBAGC,iBAAAzC,CAAkBH,GACxB9B,KAAK0C,gBAAkBZ,EAAE6B,OAAOgB,KAGzB,UAAAC,CAAWC,IAEhBA,EAAaC,IAAI,cACjBD,EAAaC,IAAI,WACjBD,EAAaC,IAAI,qBAEjB9E,KAAKkE,kBAGHW,EAAaC,IAAI,iBACnB9E,KAAKuC,aAAewC,EAAU5F,EAAqBa,KAAKsC,cAIpD,eAAAP,CAAgBD,GACjBA,EAAEkD,eAAeC,SAASjF,QAC7BA,KAAKwC,WAAY,GAIZ,iBAAA0C,GACPC,MAAMD,oBACNE,SAASC,iBAAiB,QAASrF,KAAK4B,kBACxC5B,KAAKqF,iBAAiB,iBAAkBrF,KAAKgC,eAGtC,oBAAAsD,GACPF,SAASG,oBAAoB,QAASvF,KAAK4B,kBAC3C5B,KAAKuF,oBAAoB,iBAAkBvF,KAAKgC,eAChDmD,MAAMG,6SA9LPE,EAAA,CAAAC,EAAS,CAAEC,KAAMC,WAIjBC,EAAA,CAAAH,EAAS,CAAEC,KAAMG,UAMjBC,EAAA,CAAAC,KAMAC,EAAA,CAAAD,KAMAE,EAAA,CAAAF,KAMAG,EAAA,CAAAH,KAMAI,EAAA,CAAAC,EAAsB,CAAEC,SAAU,wBAMlCC,EAAA,CAAAF,EAAsB,CAAEC,SAAU,2BAWlCE,EAAA,CAAAR,KAlDDS,EAAA5G,EAAA,KAAA4F,EAAA,CAAAiB,KAAA,WAAAC,KAAA,SAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,WAAAA,EAAAC,IAAAD,GAAAA,EAAS5E,OAAMnC,IAAA,CAAA+G,EAAA1E,KAAA0E,EAAN5E,OAAME,CAAA,GAAA4E,SAAAC,GAAA/G,EAAAE,GAIfoG,EAAA5G,EAAA,KAAAgG,EAAA,CAAAa,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASxE,YAAWvC,IAAA,CAAA+G,EAAA1E,KAAA0E,EAAXxE,YAAWF,CAAA,GAAA4E,SAAAC,GAAA5G,EAAAE,GAMpBiG,EAAA5G,EAAA,KAAAkG,EAAA,CAAAW,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAASvE,aAAYxC,IAAA,CAAA+G,EAAA1E,KAAA0E,EAAZvE,aAAYH,CAAA,GAAA4E,SAAAC,GAAAzG,EAAAE,GAMrB8F,EAAA5G,EAAA,KAAAoG,EAAA,CAAAS,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAAStE,UAASzC,IAAA,CAAA+G,EAAA1E,KAAA0E,EAATtE,UAASJ,CAAA,GAAA4E,SAAAC,GAAAtG,EAAAE,GAMlB2F,EAAA5G,EAAA,KAAAqG,EAAA,CAAAQ,KAAA,WAAAC,KAAA,kBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,oBAAAA,EAAAC,IAAAD,GAAAA,EAASrE,gBAAe1C,IAAA,CAAA+G,EAAA1E,KAAA0E,EAAfrE,gBAAeL,CAAA,GAAA4E,SAAAC,GAAAnG,EAAAE,GAMxBwF,EAAA5G,EAAA,KAAAsG,EAAA,CAAAO,KAAA,WAAAC,KAAA,kBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,oBAAAA,EAAAC,IAAAD,GAAAA,EAASpE,gBAAe3C,IAAA,CAAA+G,EAAA1E,KAAA0E,EAAfpE,gBAAeN,CAAA,GAAA4E,SAAAC,GAAAhG,EAAAE,GAMxBqF,EAAA5G,EAAA,KAAAuG,EAAA,CAAAM,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAASnE,UAAS5C,IAAA,CAAA+G,EAAA1E,KAAA0E,EAATnE,UAASP,CAAA,GAAA4E,SAAAC,GAAA7F,GAAAE,IAMlBkF,EAAA5G,EAAA,KAAA0G,EAAA,CAAAG,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAASlE,UAAS7C,IAAA,CAAA+G,EAAA1E,KAAA0E,EAATlE,UAASR,CAAA,GAAA4E,SAAAC,GAAA1F,GAAAE,IAWlB+E,EAAA5G,EAAA,KAAA2G,EAAA,CAAAE,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA/B,IAAAgC,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASjE,YAAW9C,IAAA,CAAA+G,EAAA1E,KAAA0E,EAAXjE,YAAWT,CAAA,GAAA4E,SAAAC,GAAAtF,GAAAE,IAxDtB2E,EAAA,KAAAU,EAAA,CAAA9E,MAAAxC,GAAAuH,EAAA,CAAAV,KAAA,QAAAC,KAAA9G,EAAA8G,KAAAM,SAAAC,GAAA,KAAAG,iHACkBxH,EAAAyH,OAASC,EAAUC,GADxBtH,EAAAL,EAAAwH,MAAQ"}
1
+ {"version":3,"file":"localNav.js","sources":["../../../../src/components/global/localNav/localNav.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { deepmerge } from 'deepmerge-ts';\nimport { debounce } from '../../../common/helpers/helpers';\n\nimport '../../reusable/button';\n\nimport LocalNavScss from './localNav.scss?inline';\n\nimport arrowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport pinIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/side-drawer-out.svg';\n\nconst _defaultTextStrings = {\n pin: 'Pin',\n unpin: 'Unpin',\n toggleMenu: 'Toggle Menu',\n collapse: 'Collapse',\n menu: 'Menu',\n};\n\n/**\n * The global Side Navigation component.\n * @slot unnamed - The default slot, for local nav links.\n * @slot search - Slot for a search input\n * @fires on-toggle - Captures the click event and emits the pinned state and original event details. `detail:{ pinned: boolean, origEvent: Event }`\n */\n@customElement('kyn-local-nav')\nexport class LocalNav extends LitElement {\n static override styles = unsafeCSS(LocalNavScss);\n\n /** Local nav pinned state. */\n @property({ type: Boolean })\n accessor pinned = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /** Local nav desktop expanded state.\n * @internal\n */\n @state()\n accessor _expanded = false;\n\n /** Local nav mobile expanded state.\n * @internal\n */\n @state()\n accessor _mobileExpanded = false;\n\n /** Active Link text.\n * @internal\n */\n @state()\n accessor _activeLinkText!: string;\n\n /** Queries top-level slotted links.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-link' })\n accessor _navLinks!: HTMLElement[];\n\n /** Queries top-level slotted dividers.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-divider' })\n accessor _dividers!: HTMLElement[];\n\n /** Timeout function to delay flyout open.\n * @internal\n */\n private _enterTimer: number | null = null;\n\n /** Timeout function to delay flyout close.\n * @internal\n */\n @state()\n accessor _leaveTimer: number | null = null;\n\n /** @internal */\n @query('nav')\n accessor _navEl!: HTMLElement;\n\n private _onDocumentClick = (e: Event) => this._handleClickOut(e);\n private _onLinkActive = (e: Event) =>\n this._handleLinkActive(e as CustomEvent<{ text: string }>);\n\n override render() {\n return html`\n <nav\n class=${classMap({\n 'nav--expanded': this._expanded || this.pinned,\n 'nav--expanded-mobile': this._mobileExpanded,\n pinned: this.pinned,\n })}\n @pointerleave=${(e: PointerEvent) => this.handlePointerLeave(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <button\n class=\"mobile-toggle\"\n title=${this._textStrings.toggleMenu}\n aria-label=${this._textStrings.toggleMenu}\n @click=${this._handleMobileNavToggle}\n >\n ${this._mobileExpanded\n ? this._textStrings.collapse\n : this._activeLinkText || this._textStrings.menu}\n ${unsafeSVG(arrowIcon)}\n </button>\n\n <div class=\"search\">\n <slot name=\"search\"></slot>\n </div>\n\n <div class=\"links\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n\n <div class=\"toggle-container\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n description=${this.pinned\n ? this._textStrings.unpin\n : this._textStrings.pin}\n @on-click=${(e: Event) => this._handleNavToggle(e)}\n >\n <span class=\"pin-icon\" slot=\"icon\"> ${unsafeSVG(pinIcon)} </span>\n </kyn-button>\n </div>\n </nav>\n\n <div class=\"overlay ${this.pinned ? 'pinned' : ''}\"></div>\n `;\n }\n\n private _handleNavToggle(e: Event) {\n this.pinned = !this.pinned;\n\n const event = new CustomEvent('on-toggle', {\n detail: { pinned: this.pinned, origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _handleMobileNavToggle() {\n this._mobileExpanded = !this._mobileExpanded;\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n if (this._leaveTimer !== null) clearTimeout(this._leaveTimer);\n\n this._enterTimer = window.setTimeout(() => {\n this._expanded = true;\n }, 150);\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n if (this._enterTimer !== null) clearTimeout(this._enterTimer);\n\n this._leaveTimer = window.setTimeout(() => {\n this._expanded = false;\n }, 150);\n }\n }\n\n private _updateChildren() {\n (this._navLinks ?? []).forEach((link: HTMLElement) => {\n (link as any)._navExpanded = this._expanded || this.pinned;\n (link as any)._navExpandedMobile = this._mobileExpanded;\n });\n\n (this._dividers ?? []).forEach((divider: HTMLElement) => {\n (divider as any)._navExpanded =\n this._expanded || this.pinned || this._mobileExpanded;\n });\n }\n\n private handleSlotChange() {\n this._updateChildren();\n this.requestUpdate();\n }\n\n private _handleLinkActive(e: CustomEvent<{ text: string }>) {\n this._activeLinkText = e.detail.text;\n }\n\n override willUpdate(changedProps: Map<string | number | symbol, unknown>) {\n if (\n changedProps.has('_expanded') ||\n changedProps.has('pinned') ||\n changedProps.has('_mobileExpanded')\n ) {\n this._updateChildren();\n }\n\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this._expanded = false;\n }\n }\n\n /** Morph header on scroll.\n * @internal */\n private _handleScroll() {\n if (window.scrollY > 0) {\n this._navEl.classList.add('scrolled');\n } else {\n this._navEl.classList.remove('scrolled');\n }\n }\n\n /** @internal */\n private _debounceScroll = debounce(() => {\n this._handleScroll();\n });\n\n override firstUpdated() {\n this._handleScroll();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', this._onDocumentClick);\n this.addEventListener('on-link-active', this._onLinkActive);\n window.addEventListener('scroll', this._debounceScroll);\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', this._onDocumentClick);\n this.removeEventListener('on-link-active', this._onLinkActive);\n window.removeEventListener('scroll', this._debounceScroll);\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-local-nav': LocalNav;\n }\n}\n"],"names":["_defaultTextStrings","pin","unpin","toggleMenu","collapse","menu","LocalNav","customElement","LitElement","_classThis","_classSuper","_LocalNav_pinned_accessor_storage","set","this","__runInitializers","_pinned_initializers","_LocalNav_textStrings_accessor_storage","_pinned_extraInitializers","_textStrings_initializers","_LocalNav__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_LocalNav__expanded_accessor_storage","__textStrings_extraInitializers","__expanded_initializers","_LocalNav__mobileExpanded_accessor_storage","__expanded_extraInitializers","__mobileExpanded_initializers","_LocalNav__activeLinkText_accessor_storage","__mobileExpanded_extraInitializers","__activeLinkText_initializers","_LocalNav__navLinks_accessor_storage","__activeLinkText_extraInitializers","__navLinks_initializers","_LocalNav__dividers_accessor_storage","__navLinks_extraInitializers","__dividers_initializers","_enterTimer","__dividers_extraInitializers","_LocalNav__leaveTimer_accessor_storage","__leaveTimer_initializers","_LocalNav__navEl_accessor_storage","__leaveTimer_extraInitializers","__navEl_initializers","_onDocumentClick","__navEl_extraInitializers","e","_handleClickOut","_onLinkActive","_handleLinkActive","_debounceScroll","debounce","_handleScroll","pinned","__classPrivateFieldGet","value","__classPrivateFieldSet","textStrings","_textStrings","_expanded","_mobileExpanded","_activeLinkText","_navLinks","_dividers","_leaveTimer","_navEl","render","html","classMap","handlePointerLeave","handlePointerEnter","_handleMobileNavToggle","unsafeSVG","arrowIcon","handleSlotChange","_handleNavToggle","pinIcon","event","CustomEvent","detail","origEvent","dispatchEvent","pointerType","clearTimeout","window","setTimeout","_updateChildren","_a","forEach","link","_navExpanded","_navExpandedMobile","_b","divider","requestUpdate","text","willUpdate","changedProps","has","deepmerge","composedPath","includes","scrollY","classList","add","remove","firstUpdated","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_pinned_decorators","property","type","Boolean","_textStrings_decorators","Object","__textStrings_decorators","state","__expanded_decorators","__mobileExpanded_decorators","__activeLinkText_decorators","__navLinks_decorators","queryAssignedElements","selector","__dividers_decorators","__leaveTimer_decorators","query","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","__navEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","LocalNavScss"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{_ as t,a as e,b as i,c as n,d as s}from"../../../vendor/tslib-Ac8XvvSX.js";import{i as o,a as r,t as a,r as l,n as d,o as p,e as c}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{e as b,b as h,o as u,x as k}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as y}from"../../../vendor/lit-element-DxLLCKb1.js";import{h as m}from"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";import{SPLIT_BTN_KINDS as v,SPLIT_BTN_SIZES as g,SPLIIT_BTN_ICON_POSITION as f}from"./defs.js";import"./splitButtonOption.js";var w=o`*,
1
+ import{_ as t,a as e,b as i,c as n,d as s}from"../../../vendor/tslib-Ac8XvvSX.js";import{i as o,a as r,t as a,r as l,n as d,o as p,e as c}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{e as b,b as u,o as h,x as y}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as k}from"../../../vendor/lit-element-DxLLCKb1.js";import{h as m}from"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";import{SPLIT_BTN_KINDS as v,SPLIT_BTN_SIZES as g,SPLIIT_BTN_ICON_POSITION as f}from"./defs.js";import"./splitButtonOption.js";var w=o`*,
2
2
  *::before,
3
3
  *::after {
4
4
  box-sizing: border-box;
@@ -60,10 +60,11 @@ import{_ as t,a as e,b as i,c as n,d as s}from"../../../vendor/tslib-Ac8XvvSX.js
60
60
  align-items: center;
61
61
  justify-content: center;
62
62
  font-family: var(--kd-font-family-secondary);
63
- font-size: var(--kd-font-size-body-2-sm);
64
- line-height: var(--kd-line-height-body-2-sm);
63
+ font-size: var(--kd-font-size-utility-2-sm);
64
+ line-height: var(--kd-line-height-utility-2-sm);
65
65
  font-weight: var(--kd-font-weight-regular);
66
- letter-spacing: var(--kd-letter-spacing-4);
66
+ letter-spacing: var(--kd-letter-spacing-5);
67
+ font-weight: var(--kd-font-weight-medium);
67
68
  }
68
69
  .kyn-split-btn-label {
69
70
  border-radius: 4px 0px 0px 4px;
@@ -74,6 +75,9 @@ import{_ as t,a as e,b as i,c as n,d as s}from"../../../vendor/tslib-Ac8XvvSX.js
74
75
  .kyn-split-btn-margin-overlapped {
75
76
  margin-left: -3px;
76
77
  }
78
+ .kyn-split-btn-margin-overlapped.select {
79
+ border-left: 1px solid transparent !important;
80
+ }
77
81
  .kyn-split-btn--small {
78
82
  padding: 4px 16px;
79
83
  height: 32px;
@@ -102,32 +106,32 @@ import{_ as t,a as e,b as i,c as n,d as s}from"../../../vendor/tslib-Ac8XvvSX.js
102
106
  .kyn-split-btn, .kyn-split-btn--secondary-destructive, .kyn-split-btn--secondary, .kyn-split-btn--primary-app-destructive,
103
107
  .kyn-split-btn--primary-web-destructive, .kyn-split-btn--primary-web,
104
108
  .kyn-split-btn--primary-app {
105
- font-size: var(--kd-font-size-body-2-md);
106
- line-height: var(--kd-line-height-body-2-md);
109
+ font-size: var(--kd-font-size-utility-2-md);
110
+ line-height: var(--kd-line-height-utility-2-md);
107
111
  }
108
112
  }
109
113
  @media (min-width: 74rem) {
110
114
  .kyn-split-btn, .kyn-split-btn--secondary-destructive, .kyn-split-btn--secondary, .kyn-split-btn--primary-app-destructive,
111
115
  .kyn-split-btn--primary-web-destructive, .kyn-split-btn--primary-web,
112
116
  .kyn-split-btn--primary-app {
113
- font-size: var(--kd-font-size-body-2-lg);
114
- line-height: var(--kd-line-height-body-2-lg);
117
+ font-size: var(--kd-font-size-utility-2-lg);
118
+ line-height: var(--kd-line-height-utility-2-lg);
115
119
  }
116
120
  }
117
121
  @media (min-width: 82rem) {
118
122
  .kyn-split-btn, .kyn-split-btn--secondary-destructive, .kyn-split-btn--secondary, .kyn-split-btn--primary-app-destructive,
119
123
  .kyn-split-btn--primary-web-destructive, .kyn-split-btn--primary-web,
120
124
  .kyn-split-btn--primary-app {
121
- font-size: var(--kd-font-size-body-2-xlg);
122
- line-height: var(--kd-line-height-body-2-xlg);
125
+ font-size: var(--kd-font-size-utility-2-xlg);
126
+ line-height: var(--kd-line-height-utility-2-xlg);
123
127
  }
124
128
  }
125
129
  @media (min-width: 99rem) {
126
130
  .kyn-split-btn, .kyn-split-btn--secondary-destructive, .kyn-split-btn--secondary, .kyn-split-btn--primary-app-destructive,
127
131
  .kyn-split-btn--primary-web-destructive, .kyn-split-btn--primary-web,
128
132
  .kyn-split-btn--primary-app {
129
- font-size: var(--kd-font-size-body-2-max);
130
- line-height: var(--kd-line-height-body-2-max);
133
+ font-size: var(--kd-font-size-utility-2-max);
134
+ line-height: var(--kd-line-height-utility-2-max);
131
135
  }
132
136
  }
133
137
 
@@ -178,7 +182,7 @@ span {
178
182
  }
179
183
  .kyn-split-btn--primary-web:disabled,
180
184
  .kyn-split-btn--primary-app:disabled {
181
- color: var(--kd-color-text-link-level-disabled);
185
+ color: var(--kd-color-text-level-disabled);
182
186
  border: none;
183
187
  cursor: not-allowed;
184
188
  pointer-events: none;
@@ -235,17 +239,19 @@ span {
235
239
  }
236
240
  .kyn-split-btn--primary-app-destructive:disabled,
237
241
  .kyn-split-btn--primary-web-destructive:disabled {
238
- color: var(--kd-color-text-link-level-disabled);
239
- border: none;
242
+ background-color: transparent;
243
+ color: var(--kd-color-text-level-disabled);
244
+ border: 1px solid var(--kd-color-border-ui-disabled);
240
245
  cursor: not-allowed;
241
246
  pointer-events: none;
242
- background-color: var(--kd-color-background-ui-default-disabled);
243
247
  }
244
248
 
245
249
  .kyn-split-btn--secondary {
246
- background-color: transparent;
247
- color: var(--kd-color-text-button-light-secondary);
248
- border: 1px solid var(--kd-color-border-button-primary-state-default);
250
+ background-color: var(--kd-color-background-button-secondary-state-default);
251
+ color: var(--kd-color-text-button-light-primary);
252
+ border: 1px solid var(--kd-color-border-button-secondary-state-default);
253
+ position: relative;
254
+ overflow: hidden;
249
255
  }
250
256
  .kyn-split-btn--secondary-icon {
251
257
  border-width: 1px 1px 1px 0.5px;
@@ -253,22 +259,39 @@ span {
253
259
  .kyn-split-btn--secondary-label {
254
260
  border-width: 1px 0.5px 1px 1px;
255
261
  }
256
- .kyn-split-btn--secondary:hover {
257
- border-color: var(--kd-color-border-button-secondary-state-hover);
262
+ .kyn-split-btn--secondary:before {
263
+ content: "";
264
+ position: absolute;
265
+ top: 0;
266
+ right: 0;
267
+ bottom: 0;
268
+ left: 0;
269
+ background-color: var(--kd-color-background-button-secondary-state-hover);
270
+ transition: transform 300ms ease-out, opacity 200ms ease-out, background-color 150ms ease-in-out;
271
+ transform: scaleX(0);
272
+ transform-origin: left;
273
+ opacity: 0;
274
+ }
275
+ .kyn-split-btn--secondary:hover:before {
276
+ transform: scaleX(1);
277
+ opacity: 1;
258
278
  }
259
- .kyn-split-btn--secondary:active {
279
+ .kyn-split-btn--secondary:active, .kyn-split-btn--secondary:hover:active {
280
+ color: var(--kd-color-text-button-dark-secondary);
260
281
  border-color: var(--kd-color-border-button-secondary-state-pressed);
261
282
  }
283
+ .kyn-split-btn--secondary:active:before, .kyn-split-btn--secondary:hover:active:before {
284
+ background-color: var(--kd-color-background-button-secondary-state-pressed);
285
+ }
262
286
  .kyn-split-btn--secondary:focus-visible {
263
- border-width: 2px;
264
- border-color: var(--kd-color-border-button-secondary-state-focused);
287
+ outline-color: var(--kd-color-border-button-secondary-state-focused);
265
288
  }
266
289
  .kyn-split-btn--secondary:disabled {
267
- background-color: transparent;
268
- color: var(--kd-color-text-link-level-disabled);
269
- border: 1px solid var(--kd-color-border-ui-disabled);
290
+ color: var(--kd-color-text-level-disabled);
291
+ border: none;
270
292
  cursor: not-allowed;
271
293
  pointer-events: none;
294
+ background-color: var(--kd-color-background-ui-default-disabled);
272
295
  }
273
296
 
274
297
  .kyn-split-btn--secondary-destructive {
@@ -279,6 +302,10 @@ span {
279
302
  .kyn-split-btn--secondary-destructive:hover {
280
303
  border-color: var(--kd-color-border-button-secondary-destructive-hover);
281
304
  }
305
+ .kyn-split-btn--secondary-destructive:hover:before {
306
+ transform: scaleX(1);
307
+ opacity: 1;
308
+ }
282
309
  .kyn-split-btn--secondary-destructive:active {
283
310
  border-color: var(--kd-color-border-button-secondary-destructive-pressed);
284
311
  }
@@ -288,11 +315,10 @@ span {
288
315
  }
289
316
  .kyn-split-btn--secondary-destructive:disabled {
290
317
  background-color: transparent;
291
- color: var(--kd-color-text-link-level-disabled);
318
+ color: var(--kd-color-text-level-disabled);
292
319
  border: 1px solid var(--kd-color-border-ui-disabled);
293
320
  cursor: not-allowed;
294
321
  pointer-events: none;
295
- color: var(--kd-color-text-button-dark-destructive);
296
322
  }
297
323
 
298
324
  .kyn-split-btn--icon-left span {
@@ -345,7 +371,7 @@ span {
345
371
  }
346
372
  .open .arrow-icon {
347
373
  transform: rotate(180deg);
348
- }`;let x=(()=>{var o,x,E,M,$,z,_,C,S,W,P,B,T,L;let O,R,U,A,I,j,D,Y,K,N,V,X,F,G,H,q,J=[a("kyn-split-btn")],Q=[],Z=y,tt=[],et=[],it=[],nt=[],st=[],ot=[],rt=[],at=[],lt=[],dt=[],pt=[],ct=[],bt=[],ht=[],ut=[],kt=[],yt=[],mt=[],vt=[],gt=[],ft=[],wt=[],xt=[],Et=[],Mt=[],$t=[],zt=[],_t=[];return R=class extends Z{constructor(){super(...arguments),o.set(this,i(this,tt,"")),x.set(this,(i(this,et),i(this,it,""))),E.set(this,(i(this,nt),i(this,st,v.PRIMARY_APP))),M.set(this,(i(this,ot),i(this,rt,g.MEDIUM))),$.set(this,(i(this,at),i(this,lt,f.LEFT))),z.set(this,(i(this,dt),i(this,pt,""))),_.set(this,(i(this,ct),i(this,bt,!1))),C.set(this,(i(this,ht),i(this,ut,!1))),S.set(this,(i(this,kt),i(this,yt,"initial"))),W.set(this,(i(this,mt),i(this,vt,!1))),P.set(this,(i(this,gt),i(this,ft,void 0))),B.set(this,(i(this,wt),i(this,xt,!1))),T.set(this,(i(this,Et),i(this,Mt,void 0))),L.set(this,(i(this,$t),i(this,zt,"Split button menu options."))),this.toggleDropdown=(i(this,_t),()=>{this.open=!this.open})}get description(){return n(this,o,"f")}set description(t){s(this,o,t,"f")}get name(){return n(this,x,"f")}set name(t){s(this,x,t,"f")}get kind(){return n(this,E,"f")}set kind(t){s(this,E,t,"f")}get size(){return n(this,M,"f")}set size(t){s(this,M,t,"f")}get iconPosition(){return n(this,$,"f")}set iconPosition(t){s(this,$,t,"f")}get label(){return n(this,z,"f")}set label(t){s(this,z,t,"f")}get disabled(){return n(this,_,"f")}set disabled(t){s(this,_,t,"f")}get destructive(){return n(this,C,"f")}set destructive(t){s(this,C,t,"f")}get menuMinWidth(){return n(this,S,"f")}set menuMinWidth(t){s(this,S,t,"f")}get open(){return n(this,W,"f")}set open(t){s(this,W,t,"f")}get options(){return n(this,P,"f")}set options(t){s(this,P,t,"f")}get _openUpwards(){return n(this,B,"f")}set _openUpwards(t){s(this,B,t,"f")}get buttonEl(){return n(this,T,"f")}set buttonEl(t){s(this,T,t,"f")}get assistiveText(){return n(this,L,"f")}set assistiveText(t){s(this,L,t,"f")}render(){const t={[v.PRIMARY_APP]:"primary-app",[v.PRIMARY_WEB]:"primary-web",[v.SECONDARY]:"secondary"}[this.kind],e=this.destructive?"-destructive":"",i={button:!0,[`kyn-split-btn--${t}${e}`]:!0,[`kyn-split-btn--${t}`]:!this.destructive,"kyn-split-btn--large":this.size===g.LARGE,"kyn-split-btn--small":this.size===g.SMALL,"kyn-split-btn--medium":this.size===g.MEDIUM,[`kyn-split-btn--icon-${this.iconPosition}`]:!!this.iconPosition};return k`
374
+ }`;let x=(()=>{var o,x,E,M,$,z,_,C,S,W,P,B,T,L;let O,R,U,A,I,j,D,Y,K,N,X,V,F,G,H,q,J=[a("kyn-split-btn")],Q=[],Z=k,tt=[],et=[],it=[],nt=[],st=[],ot=[],rt=[],at=[],lt=[],dt=[],pt=[],ct=[],bt=[],ut=[],ht=[],yt=[],kt=[],mt=[],vt=[],gt=[],ft=[],wt=[],xt=[],Et=[],Mt=[],$t=[],zt=[],_t=[];return R=class extends Z{constructor(){super(...arguments),o.set(this,i(this,tt,"")),x.set(this,(i(this,et),i(this,it,""))),E.set(this,(i(this,nt),i(this,st,v.PRIMARY_APP))),M.set(this,(i(this,ot),i(this,rt,g.MEDIUM))),$.set(this,(i(this,at),i(this,lt,f.LEFT))),z.set(this,(i(this,dt),i(this,pt,""))),_.set(this,(i(this,ct),i(this,bt,!1))),C.set(this,(i(this,ut),i(this,ht,!1))),S.set(this,(i(this,yt),i(this,kt,"initial"))),W.set(this,(i(this,mt),i(this,vt,!1))),P.set(this,(i(this,gt),i(this,ft,void 0))),B.set(this,(i(this,wt),i(this,xt,!1))),T.set(this,(i(this,Et),i(this,Mt,void 0))),L.set(this,(i(this,$t),i(this,zt,"Split button menu options."))),this.toggleDropdown=(i(this,_t),()=>{this.open=!this.open})}get description(){return n(this,o,"f")}set description(t){s(this,o,t,"f")}get name(){return n(this,x,"f")}set name(t){s(this,x,t,"f")}get kind(){return n(this,E,"f")}set kind(t){s(this,E,t,"f")}get size(){return n(this,M,"f")}set size(t){s(this,M,t,"f")}get iconPosition(){return n(this,$,"f")}set iconPosition(t){s(this,$,t,"f")}get label(){return n(this,z,"f")}set label(t){s(this,z,t,"f")}get disabled(){return n(this,_,"f")}set disabled(t){s(this,_,t,"f")}get destructive(){return n(this,C,"f")}set destructive(t){s(this,C,t,"f")}get menuMinWidth(){return n(this,S,"f")}set menuMinWidth(t){s(this,S,t,"f")}get open(){return n(this,W,"f")}set open(t){s(this,W,t,"f")}get options(){return n(this,P,"f")}set options(t){s(this,P,t,"f")}get _openUpwards(){return n(this,B,"f")}set _openUpwards(t){s(this,B,t,"f")}get buttonEl(){return n(this,T,"f")}set buttonEl(t){s(this,T,t,"f")}get assistiveText(){return n(this,L,"f")}set assistiveText(t){s(this,L,t,"f")}render(){const t={[v.PRIMARY_APP]:"primary-app",[v.PRIMARY_WEB]:"primary-web",[v.SECONDARY]:"secondary"}[this.kind],e=this.destructive?"-destructive":"",i={button:!0,[`kyn-split-btn--${t}${e}`]:!0,[`kyn-split-btn--${t}`]:!this.destructive,"kyn-split-btn--large":this.size===g.LARGE,"kyn-split-btn--small":this.size===g.SMALL,"kyn-split-btn--medium":this.size===g.MEDIUM,[`kyn-split-btn--icon-${this.iconPosition}`]:!!this.iconPosition,"kyn-split-btn-margin-overlapped":this.kind===v.SECONDARY&&this.destructive};return y`
349
375
  <div
350
376
  class="split-btn-wrapper ${this.open?"open":""}"
351
377
  id="label-${this.name}"
@@ -355,7 +381,7 @@ span {
355
381
  class=${b({...i,"kyn-split-btn-label":!0,"kyn-split-btn--secondary-label":this.kind===v.SECONDARY})}
356
382
  type="button"
357
383
  ?disabled=${this.disabled}
358
- name=${h(this.name)}
384
+ name=${u(this.name)}
359
385
  @click=${t=>this._handlePrimaryClick(t)}
360
386
  >
361
387
  <span>
@@ -365,17 +391,17 @@ span {
365
391
  </button>
366
392
  <!-- menu button UI -->
367
393
  <button
368
- class=${b({...i,select:!0,[`kyn-split-btn--${this.size}-arrow-btn`]:!0,"kyn-split-btn-icon":!0,"kyn-split-btn--secondary-icon":this.kind===v.SECONDARY,"kyn-split-btn-margin-overlapped":this.kind===v.SECONDARY})}
394
+ class=${b({...i,select:!0,[`kyn-split-btn--${this.size}-arrow-btn`]:!0,"kyn-split-btn-icon":!0,"kyn-split-btn--secondary-icon":this.kind===v.SECONDARY})}
369
395
  type="button"
370
396
  ?disabled=${this.disabled}
371
- aria-label=${h(this.description)}
372
- title=${h(this.description)}
397
+ aria-label=${u(this.description)}
398
+ title=${u(this.description)}
373
399
  aria-haspopup="true"
374
400
  aria-expanded="false"
375
401
  @click=${this.toggleDropdown}
376
402
  @keydown=${t=>this.handleButtonKeydown(t)}
377
403
  >
378
- <span class="arrow-icon">${u(m)}</span>
404
+ <span class="arrow-icon">${h(m)}</span>
379
405
  </button>
380
406
  <!-- Split Button Menu UI -->
381
407
  <ul
@@ -394,5 +420,5 @@ span {
394
420
  <slot id="children"></slot>
395
421
  </ul>
396
422
  </div>
397
- `}updated(t){var e;if(t.has("open")&&this.open){null===(e=this.options.find((t=>t.selected)))||void 0===e||e.scrollIntoView({block:"nearest"});const t=.6;this.buttonEl.getBoundingClientRect().top>window.innerHeight*t?this._openUpwards=!0:this._openUpwards=!1}}handleListBlur(t){this.options.forEach((t=>t.highlighted=!1)),t.relatedTarget&&"kyn-splitbutton-option"!==t.relatedTarget.localName&&(this.open=!1),this.assistiveText="Split button menu options."}handleButtonKeydown(t){this.handleKeyboard(t,t.keyCode,"button")}handleListKeydown(t){9!==t.keyCode&&t.preventDefault(),this.handleKeyboard(t,t.keyCode,"list")}handleKeyboard(t,e,i){const n=[0,32],s=this.options.find((t=>t.highlighted));console.log(s);const o=this.options.find((t=>t.selected)),r=s?this.options.indexOf(s):this.options.find((t=>t.selected))?this.options.indexOf(o):0;if(n.includes(e)&&t.preventDefault(),"button"===i){(n.includes(e)||13===e||40==e||38==e)&&(this.open=!0,this.options[r].highlighted=!0)}switch(e){case 13:return void(this.assistiveText="Selected an item.");case 40:{let t=s||o?r===this.options.length-1?0:r+1:0;return this.options[t].disabled&&(t=t===this.options.length-1?0:t+1),this.options[r].highlighted=!1,this.options[t].highlighted=!0,this.options[t].scrollIntoView({block:"nearest"}),void(this.assistiveText=this.options[t].text)}case 38:{let t=0===r?this.options.length-1:r-1;return this.options[t].disabled&&(t=0===t?this.options.length-1:t-1),this.options[r].highlighted=!1,this.options[t].highlighted=!0,this.options[t].scrollIntoView({block:"nearest"}),void(this.assistiveText=this.options[t].text)}case 27:return this.open=!1,this.buttonEl.focus(),void(this.assistiveText="Split button menu options.");default:return}}_handleClickOut(t){t.composedPath().includes(this)||(this.open=!1)}_handleBlur(t){const e=t.detail.origEvent.relatedTarget;(!e||"kyn-splitbutton-option"!==e.localName&&"kyn-split-btn"!==e.localName)&&(this.open=!1)}_handlePrimaryClick(t){this.open=!1;const e=new CustomEvent("on-click",{detail:{origEvent:t,value:1}});this.dispatchEvent(e)}_handleClick(t){this.open=!1,this.emitValue(t)}emitValue(t){const e=new CustomEvent("on-click",{detail:{value:t.detail.value,text:t.detail.text}});this.dispatchEvent(e)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",(t=>this._handleClickOut(t))),this.addEventListener("on-action-click",(t=>this._handleClick(t))),this.addEventListener("on-blur",(t=>this._handleBlur(t)))}disconnectedCallback(){document.removeEventListener("click",(t=>this._handleClickOut(t))),this.addEventListener("on-action-click",(t=>this._handleClick(t))),this.addEventListener("on-blur",(t=>this._handleBlur(t))),super.disconnectedCallback()}},o=new WeakMap,x=new WeakMap,E=new WeakMap,M=new WeakMap,$=new WeakMap,z=new WeakMap,_=new WeakMap,C=new WeakMap,S=new WeakMap,W=new WeakMap,P=new WeakMap,B=new WeakMap,T=new WeakMap,L=new WeakMap,t(R,"SplitButton"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Z[Symbol.metadata])&&void 0!==t?t:null):void 0;U=[d({type:String})],A=[d({type:String})],I=[d({type:String})],j=[d({type:String})],D=[d({type:String})],Y=[d({type:String})],K=[d({type:Boolean,reflect:!0})],N=[d({type:Boolean,reflect:!0})],V=[d({type:String})],X=[d({type:Boolean})],F=[p({selector:"kyn-splitbutton-option"})],G=[r()],H=[c(".select")],q=[r()],e(R,null,U,{kind:"accessor",name:"description",static:!1,private:!1,access:{has:t=>"description"in t,get:t=>t.description,set:(t,e)=>{t.description=e}},metadata:i},tt,et),e(R,null,A,{kind:"accessor",name:"name",static:!1,private:!1,access:{has:t=>"name"in t,get:t=>t.name,set:(t,e)=>{t.name=e}},metadata:i},it,nt),e(R,null,I,{kind:"accessor",name:"kind",static:!1,private:!1,access:{has:t=>"kind"in t,get:t=>t.kind,set:(t,e)=>{t.kind=e}},metadata:i},st,ot),e(R,null,j,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:i},rt,at),e(R,null,D,{kind:"accessor",name:"iconPosition",static:!1,private:!1,access:{has:t=>"iconPosition"in t,get:t=>t.iconPosition,set:(t,e)=>{t.iconPosition=e}},metadata:i},lt,dt),e(R,null,Y,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:t=>"label"in t,get:t=>t.label,set:(t,e)=>{t.label=e}},metadata:i},pt,ct),e(R,null,K,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:t=>"disabled"in t,get:t=>t.disabled,set:(t,e)=>{t.disabled=e}},metadata:i},bt,ht),e(R,null,N,{kind:"accessor",name:"destructive",static:!1,private:!1,access:{has:t=>"destructive"in t,get:t=>t.destructive,set:(t,e)=>{t.destructive=e}},metadata:i},ut,kt),e(R,null,V,{kind:"accessor",name:"menuMinWidth",static:!1,private:!1,access:{has:t=>"menuMinWidth"in t,get:t=>t.menuMinWidth,set:(t,e)=>{t.menuMinWidth=e}},metadata:i},yt,mt),e(R,null,X,{kind:"accessor",name:"open",static:!1,private:!1,access:{has:t=>"open"in t,get:t=>t.open,set:(t,e)=>{t.open=e}},metadata:i},vt,gt),e(R,null,F,{kind:"accessor",name:"options",static:!1,private:!1,access:{has:t=>"options"in t,get:t=>t.options,set:(t,e)=>{t.options=e}},metadata:i},ft,wt),e(R,null,G,{kind:"accessor",name:"_openUpwards",static:!1,private:!1,access:{has:t=>"_openUpwards"in t,get:t=>t._openUpwards,set:(t,e)=>{t._openUpwards=e}},metadata:i},xt,Et),e(R,null,H,{kind:"accessor",name:"buttonEl",static:!1,private:!1,access:{has:t=>"buttonEl"in t,get:t=>t.buttonEl,set:(t,e)=>{t.buttonEl=e}},metadata:i},Mt,$t),e(R,null,q,{kind:"accessor",name:"assistiveText",static:!1,private:!1,access:{has:t=>"assistiveText"in t,get:t=>t.assistiveText,set:(t,e)=>{t.assistiveText=e}},metadata:i},zt,_t),e(null,O={value:R},J,{kind:"class",name:R.name,metadata:i},null,Q),R=O.value,i&&Object.defineProperty(R,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),R.styles=l(w),R.shadowRootOptions={...y.shadowRootOptions,delegatesFocus:!0},i(R,Q),R})();export{x as SplitButton};
423
+ `}updated(t){var e;if(t.has("open")&&this.open){null===(e=this.options.find((t=>t.selected)))||void 0===e||e.scrollIntoView({block:"nearest"});const t=.6;this.buttonEl.getBoundingClientRect().top>window.innerHeight*t?this._openUpwards=!0:this._openUpwards=!1}}handleListBlur(t){this.options.forEach((t=>t.highlighted=!1)),t.relatedTarget&&"kyn-splitbutton-option"!==t.relatedTarget.localName&&(this.open=!1),this.assistiveText="Split button menu options."}handleButtonKeydown(t){this.handleKeyboard(t,t.keyCode,"button")}handleListKeydown(t){9!==t.keyCode&&t.preventDefault(),this.handleKeyboard(t,t.keyCode,"list")}handleKeyboard(t,e,i){const n=[0,32],s=this.options.find((t=>t.highlighted));console.log(s);const o=this.options.find((t=>t.selected)),r=s?this.options.indexOf(s):this.options.find((t=>t.selected))?this.options.indexOf(o):0;if(n.includes(e)&&t.preventDefault(),"button"===i){(n.includes(e)||13===e||40==e||38==e)&&(this.open=!0,this.options[r].highlighted=!0)}switch(e){case 13:return void(this.assistiveText="Selected an item.");case 40:{let t=s||o?r===this.options.length-1?0:r+1:0;return this.options[t].disabled&&(t=t===this.options.length-1?0:t+1),this.options[r].highlighted=!1,this.options[t].highlighted=!0,this.options[t].scrollIntoView({block:"nearest"}),void(this.assistiveText=this.options[t].text)}case 38:{let t=0===r?this.options.length-1:r-1;return this.options[t].disabled&&(t=0===t?this.options.length-1:t-1),this.options[r].highlighted=!1,this.options[t].highlighted=!0,this.options[t].scrollIntoView({block:"nearest"}),void(this.assistiveText=this.options[t].text)}case 27:return this.open=!1,this.buttonEl.focus(),void(this.assistiveText="Split button menu options.");default:return}}_handleClickOut(t){t.composedPath().includes(this)||(this.open=!1)}_handleBlur(t){const e=t.detail.origEvent.relatedTarget;(!e||"kyn-splitbutton-option"!==e.localName&&"kyn-split-btn"!==e.localName)&&(this.open=!1)}_handlePrimaryClick(t){this.open=!1;const e=new CustomEvent("on-click",{detail:{origEvent:t,value:1}});this.dispatchEvent(e)}_handleClick(t){this.open=!1,this.emitValue(t)}emitValue(t){const e=new CustomEvent("on-click",{detail:{value:t.detail.value,text:t.detail.text}});this.dispatchEvent(e)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",(t=>this._handleClickOut(t))),this.addEventListener("on-action-click",(t=>this._handleClick(t))),this.addEventListener("on-blur",(t=>this._handleBlur(t)))}disconnectedCallback(){document.removeEventListener("click",(t=>this._handleClickOut(t))),this.addEventListener("on-action-click",(t=>this._handleClick(t))),this.addEventListener("on-blur",(t=>this._handleBlur(t))),super.disconnectedCallback()}},o=new WeakMap,x=new WeakMap,E=new WeakMap,M=new WeakMap,$=new WeakMap,z=new WeakMap,_=new WeakMap,C=new WeakMap,S=new WeakMap,W=new WeakMap,P=new WeakMap,B=new WeakMap,T=new WeakMap,L=new WeakMap,t(R,"SplitButton"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Z[Symbol.metadata])&&void 0!==t?t:null):void 0;U=[d({type:String})],A=[d({type:String})],I=[d({type:String})],j=[d({type:String})],D=[d({type:String})],Y=[d({type:String})],K=[d({type:Boolean,reflect:!0})],N=[d({type:Boolean,reflect:!0})],X=[d({type:String})],V=[d({type:Boolean})],F=[p({selector:"kyn-splitbutton-option"})],G=[r()],H=[c(".select")],q=[r()],e(R,null,U,{kind:"accessor",name:"description",static:!1,private:!1,access:{has:t=>"description"in t,get:t=>t.description,set:(t,e)=>{t.description=e}},metadata:i},tt,et),e(R,null,A,{kind:"accessor",name:"name",static:!1,private:!1,access:{has:t=>"name"in t,get:t=>t.name,set:(t,e)=>{t.name=e}},metadata:i},it,nt),e(R,null,I,{kind:"accessor",name:"kind",static:!1,private:!1,access:{has:t=>"kind"in t,get:t=>t.kind,set:(t,e)=>{t.kind=e}},metadata:i},st,ot),e(R,null,j,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:i},rt,at),e(R,null,D,{kind:"accessor",name:"iconPosition",static:!1,private:!1,access:{has:t=>"iconPosition"in t,get:t=>t.iconPosition,set:(t,e)=>{t.iconPosition=e}},metadata:i},lt,dt),e(R,null,Y,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:t=>"label"in t,get:t=>t.label,set:(t,e)=>{t.label=e}},metadata:i},pt,ct),e(R,null,K,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:t=>"disabled"in t,get:t=>t.disabled,set:(t,e)=>{t.disabled=e}},metadata:i},bt,ut),e(R,null,N,{kind:"accessor",name:"destructive",static:!1,private:!1,access:{has:t=>"destructive"in t,get:t=>t.destructive,set:(t,e)=>{t.destructive=e}},metadata:i},ht,yt),e(R,null,X,{kind:"accessor",name:"menuMinWidth",static:!1,private:!1,access:{has:t=>"menuMinWidth"in t,get:t=>t.menuMinWidth,set:(t,e)=>{t.menuMinWidth=e}},metadata:i},kt,mt),e(R,null,V,{kind:"accessor",name:"open",static:!1,private:!1,access:{has:t=>"open"in t,get:t=>t.open,set:(t,e)=>{t.open=e}},metadata:i},vt,gt),e(R,null,F,{kind:"accessor",name:"options",static:!1,private:!1,access:{has:t=>"options"in t,get:t=>t.options,set:(t,e)=>{t.options=e}},metadata:i},ft,wt),e(R,null,G,{kind:"accessor",name:"_openUpwards",static:!1,private:!1,access:{has:t=>"_openUpwards"in t,get:t=>t._openUpwards,set:(t,e)=>{t._openUpwards=e}},metadata:i},xt,Et),e(R,null,H,{kind:"accessor",name:"buttonEl",static:!1,private:!1,access:{has:t=>"buttonEl"in t,get:t=>t.buttonEl,set:(t,e)=>{t.buttonEl=e}},metadata:i},Mt,$t),e(R,null,q,{kind:"accessor",name:"assistiveText",static:!1,private:!1,access:{has:t=>"assistiveText"in t,get:t=>t.assistiveText,set:(t,e)=>{t.assistiveText=e}},metadata:i},zt,_t),e(null,O={value:R},J,{kind:"class",name:R.name,metadata:i},null,Q),R=O.value,i&&Object.defineProperty(R,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),R.styles=l(w),R.shadowRootOptions={...k.shadowRootOptions,delegatesFocus:!0},i(R,Q),R})();export{x as SplitButton};
398
424
  //# sourceMappingURL=splitButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"splitButton.js","sources":["../../../../src/components/reusable/splitButton/splitButton.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport {\n SPLIT_BTN_KINDS,\n SPLIT_BTN_SIZES,\n SPLIIT_BTN_ICON_POSITION,\n} from './defs';\nimport './splitButtonOption';\nimport SplitButtonScss from './splitButton.scss?inline';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\n/**\n * Split Button\n * @slot unnamed - Slot for split button options.\n * @slot icon - Slot for an icon (optional).\n * @fires on-click - Captures the event and emits the selected value and original event details.\n */\n\n@customElement('kyn-split-btn')\nexport class SplitButton extends LitElement {\n static override styles = unsafeCSS(SplitButtonScss);\n\n /** @ignore */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** ARIA label for the buttons for accessibility. */\n @property({ type: String })\n accessor description = '';\n\n /** Split button name. */\n @property({ type: String })\n accessor name = '';\n\n /** Specifies the visual appearance/kind of the split button. */\n @property({ type: String })\n accessor kind: SPLIT_BTN_KINDS = SPLIT_BTN_KINDS.PRIMARY_APP;\n\n /** Specifies the size of the split button. */\n @property({ type: String })\n accessor size: SPLIT_BTN_SIZES = SPLIT_BTN_SIZES.MEDIUM;\n\n /** Specifies the position of the icon relative to any split button text. Default `'left'`. This is optional and work with icon slot.*/\n @property({ type: String })\n accessor iconPosition: SPLIIT_BTN_ICON_POSITION =\n SPLIIT_BTN_ICON_POSITION.LEFT;\n\n /** Split button text (required) */\n @property({ type: String })\n accessor label = '';\n\n /** Determines if the split button is disabled. */\n @property({ type: Boolean, reflect: true })\n accessor disabled = false;\n\n /** Determines if the split button indicates a destructive action. */\n @property({ type: Boolean, reflect: true })\n accessor destructive = false;\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = 'initial';\n\n /** Listbox/menu open state. */\n @property({ type: Boolean })\n accessor open = false;\n\n /**\n * Queries any slotted options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-splitbutton-option' })\n accessor options!: Array<any>;\n\n /**\n * Open menu upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Split button menu options.';\n\n override render() {\n const typeClassMap = {\n [SPLIT_BTN_KINDS.PRIMARY_APP]: 'primary-app',\n [SPLIT_BTN_KINDS.PRIMARY_WEB]: 'primary-web',\n [SPLIT_BTN_KINDS.SECONDARY]: 'secondary',\n };\n\n const baseTypeClass = typeClassMap[this.kind];\n const destructModifier = this.destructive ? '-destructive' : '';\n\n const classes = {\n button: true,\n [`kyn-split-btn--${baseTypeClass}${destructModifier}`]: true,\n [`kyn-split-btn--${baseTypeClass}`]: !this.destructive,\n 'kyn-split-btn--large': this.size === SPLIT_BTN_SIZES.LARGE,\n 'kyn-split-btn--small': this.size === SPLIT_BTN_SIZES.SMALL,\n 'kyn-split-btn--medium': this.size === SPLIT_BTN_SIZES.MEDIUM,\n [`kyn-split-btn--icon-${this.iconPosition}`]: !!this.iconPosition,\n };\n\n return html`\n <div\n class=\"split-btn-wrapper ${this.open ? 'open' : ''}\"\n id=\"label-${this.name}\"\n >\n <!-- label button UI -->\n <button\n class=${classMap({\n ...classes,\n 'kyn-split-btn-label': true,\n 'kyn-split-btn--secondary-label':\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n name=${ifDefined(this.name)}\n @click=${(e: any) => this._handlePrimaryClick(e)}\n >\n <span>\n ${this.label}\n <slot name=\"icon\"></slot>\n </span>\n </button>\n <!-- menu button UI -->\n <button\n class=${classMap({\n ...classes,\n select: true,\n [`kyn-split-btn--${this.size}-arrow-btn`]: true,\n 'kyn-split-btn-icon': true,\n ['kyn-split-btn--secondary-icon']:\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n 'kyn-split-btn-margin-overlapped':\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n @click=${this.toggleDropdown}\n @keydown=${(e: any) => this.handleButtonKeydown(e)}\n >\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </button>\n <!-- Split Button Menu UI -->\n <ul\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n name=${this.name}\n aria-labelledby=\"label-${this.name}\"\n role=\"listbox\"\n tabindex=\"0\"\n aria-expanded=${this.open}\n aria-hidden=${!this.open}\n @keydown=${(e: any) => this.handleListKeydown(e)}\n @blur=${(e: any) => this.handleListBlur(e)}\n >\n <!-- Can put <kyn-splitbutton-option> component here for each option -->\n <slot id=\"children\"></slot>\n </ul>\n </div>\n `;\n }\n\n override updated(changedProps: any) {\n if (changedProps.has('open')) {\n if (this.open) {\n // scroll to selected option\n this.options\n .find((option) => option.selected)\n ?.scrollIntoView({ block: 'nearest' });\n // open menu upwards if closer to bottom of viewport\n const Threshold = 0.6;\n if (\n this.buttonEl.getBoundingClientRect().top >\n window.innerHeight * Threshold\n ) {\n this._openUpwards = true;\n } else {\n this._openUpwards = false;\n }\n }\n }\n }\n\n private handleListBlur(e: any) {\n this.options.forEach((option) => (option.highlighted = false));\n // don't blur if clicking an option inside\n if (\n e.relatedTarget &&\n e.relatedTarget.localName !== 'kyn-splitbutton-option'\n ) {\n this.open = false;\n }\n this.assistiveText = 'Split button menu options.';\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const highlightedEl = this.options.find(\n (option: any) => option.highlighted\n );\n console.log(highlightedEl);\n const selectedEl = this.options.find((option: any) => option.selected);\n const highlightedIndex = highlightedEl\n ? this.options.indexOf(highlightedEl)\n : this.options.find((option: any) => option.selected)\n ? this.options.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n // open the listbox\n if (target === 'button') {\n const openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (openDropdown) {\n this.open = true;\n this.options[highlightedIndex].highlighted = true;\n\n // scroll to highlighted option\n // if (!this.multiple && this.value !== '') {\n // this.options[highlightedIndex].scrollIntoView({ block: 'nearest' });\n // }\n }\n }\n switch (keyCode) {\n case ENTER_KEY_CODE: {\n this.assistiveText = 'Selected an item.';\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === this.options.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === this.options.length - 1 ? 0 : nextIndex + 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? this.options.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === 0 ? this.options.length - 1 : nextIndex - 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n this.buttonEl.focus();\n this.assistiveText = 'Split button menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private toggleDropdown = () => {\n this.open = !this.open;\n };\n\n // When click outside, then menu close\n private _handleClickOut(e: Event): void {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n // handle child blur event\n private _handleBlur(e: any): void {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget.localName !== 'kyn-splitbutton-option' &&\n relatedTarget.localName !== 'kyn-split-btn')\n ) {\n this.open = false;\n }\n }\n\n private _handlePrimaryClick(e: any) {\n this.open = false;\n const event = new CustomEvent('on-click', {\n detail: {\n origEvent: e,\n value: 1,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _handleClick(e: any) {\n this.open = false;\n // emit selected value\n this.emitValue(e);\n }\n\n private emitValue(e: any) {\n const event = new CustomEvent('on-click', {\n detail: {\n value: e.detail.value,\n text: e.detail.text,\n },\n });\n this.dispatchEvent(event);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', (e) => this._handleClickOut(e));\n // capture split button options click event\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n // capture split button options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-split-btn': SplitButton;\n }\n}\n"],"names":["SplitButton","customElement","LitElement","_classThis","_classSuper","_SplitButton_description_accessor_storage","set","this","__runInitializers","_description_initializers","_SplitButton_name_accessor_storage","_description_extraInitializers","_name_initializers","_SplitButton_kind_accessor_storage","_name_extraInitializers","_kind_initializers","SPLIT_BTN_KINDS","PRIMARY_APP","_SplitButton_size_accessor_storage","_kind_extraInitializers","_size_initializers","SPLIT_BTN_SIZES","MEDIUM","_SplitButton_iconPosition_accessor_storage","_size_extraInitializers","_iconPosition_initializers","SPLIIT_BTN_ICON_POSITION","LEFT","_SplitButton_label_accessor_storage","_iconPosition_extraInitializers","_label_initializers","_SplitButton_disabled_accessor_storage","_label_extraInitializers","_disabled_initializers","_SplitButton_destructive_accessor_storage","_disabled_extraInitializers","_destructive_initializers","_SplitButton_menuMinWidth_accessor_storage","_destructive_extraInitializers","_menuMinWidth_initializers","_SplitButton_open_accessor_storage","_menuMinWidth_extraInitializers","_open_initializers","_SplitButton_options_accessor_storage","_open_extraInitializers","_options_initializers","_SplitButton__openUpwards_accessor_storage","_options_extraInitializers","__openUpwards_initializers","_SplitButton_buttonEl_accessor_storage","__openUpwards_extraInitializers","_buttonEl_initializers","_SplitButton_assistiveText_accessor_storage","_buttonEl_extraInitializers","_assistiveText_initializers","toggleDropdown","_assistiveText_extraInitializers","open","description","__classPrivateFieldGet","value","__classPrivateFieldSet","name","kind","size","iconPosition","label","disabled","destructive","menuMinWidth","options","_openUpwards","buttonEl","assistiveText","render","baseTypeClass","PRIMARY_WEB","SECONDARY","destructModifier","classes","button","LARGE","SMALL","html","classMap","ifDefined","e","_handlePrimaryClick","select","handleButtonKeydown","unsafeSVG","downIcon","upwards","handleListKeydown","handleListBlur","updated","changedProps","has","_a","find","option","selected","scrollIntoView","block","Threshold","getBoundingClientRect","top","window","innerHeight","forEach","highlighted","relatedTarget","localName","handleKeyboard","keyCode","preventDefault","target","SPACEBAR_KEY_CODE","highlightedEl","console","log","selectedEl","highlightedIndex","indexOf","includes","nextIndex","length","text","focus","_handleClickOut","composedPath","_handleBlur","detail","origEvent","event","CustomEvent","dispatchEvent","_handleClick","emitValue","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_description_decorators","property","type","String","_name_decorators","_kind_decorators","_size_decorators","_iconPosition_decorators","_label_decorators","Boolean","reflect","_menuMinWidth_decorators","_open_decorators","_options_decorators","queryAssignedElements","selector","__openUpwards_decorators","state","query","_assistiveText_decorators","__esDecorate","static","private","access","obj","get","metadata","_metadata","_disabled_decorators","_destructive_decorators","_buttonEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SplitButtonScss","shadowRootOptions","delegatesFocus"],"mappings":"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"}
1
+ {"version":3,"file":"splitButton.js","sources":["../../../../src/components/reusable/splitButton/splitButton.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport {\n SPLIT_BTN_KINDS,\n SPLIT_BTN_SIZES,\n SPLIIT_BTN_ICON_POSITION,\n} from './defs';\nimport './splitButtonOption';\nimport SplitButtonScss from './splitButton.scss?inline';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\n/**\n * Split Button\n * @slot unnamed - Slot for split button options.\n * @slot icon - Slot for an icon (optional).\n * @fires on-click - Captures the event and emits the selected value and original event details.\n */\n\n@customElement('kyn-split-btn')\nexport class SplitButton extends LitElement {\n static override styles = unsafeCSS(SplitButtonScss);\n\n /** @ignore */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** ARIA label for the buttons for accessibility. */\n @property({ type: String })\n accessor description = '';\n\n /** Split button name. */\n @property({ type: String })\n accessor name = '';\n\n /** Specifies the visual appearance/kind of the split button. */\n @property({ type: String })\n accessor kind: SPLIT_BTN_KINDS = SPLIT_BTN_KINDS.PRIMARY_APP;\n\n /** Specifies the size of the split button. */\n @property({ type: String })\n accessor size: SPLIT_BTN_SIZES = SPLIT_BTN_SIZES.MEDIUM;\n\n /** Specifies the position of the icon relative to any split button text. Default `'left'`. This is optional and work with icon slot.*/\n @property({ type: String })\n accessor iconPosition: SPLIIT_BTN_ICON_POSITION =\n SPLIIT_BTN_ICON_POSITION.LEFT;\n\n /** Split button text (required) */\n @property({ type: String })\n accessor label = '';\n\n /** Determines if the split button is disabled. */\n @property({ type: Boolean, reflect: true })\n accessor disabled = false;\n\n /** Determines if the split button indicates a destructive action. */\n @property({ type: Boolean, reflect: true })\n accessor destructive = false;\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = 'initial';\n\n /** Listbox/menu open state. */\n @property({ type: Boolean })\n accessor open = false;\n\n /**\n * Queries any slotted options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-splitbutton-option' })\n accessor options!: Array<any>;\n\n /**\n * Open menu upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Split button menu options.';\n\n override render() {\n const typeClassMap = {\n [SPLIT_BTN_KINDS.PRIMARY_APP]: 'primary-app',\n [SPLIT_BTN_KINDS.PRIMARY_WEB]: 'primary-web',\n [SPLIT_BTN_KINDS.SECONDARY]: 'secondary',\n };\n\n const baseTypeClass = typeClassMap[this.kind];\n const destructModifier = this.destructive ? '-destructive' : '';\n\n const classes = {\n button: true,\n [`kyn-split-btn--${baseTypeClass}${destructModifier}`]: true,\n [`kyn-split-btn--${baseTypeClass}`]: !this.destructive,\n 'kyn-split-btn--large': this.size === SPLIT_BTN_SIZES.LARGE,\n 'kyn-split-btn--small': this.size === SPLIT_BTN_SIZES.SMALL,\n 'kyn-split-btn--medium': this.size === SPLIT_BTN_SIZES.MEDIUM,\n [`kyn-split-btn--icon-${this.iconPosition}`]: !!this.iconPosition,\n 'kyn-split-btn-margin-overlapped':\n this.kind === SPLIT_BTN_KINDS.SECONDARY && this.destructive,\n };\n\n return html`\n <div\n class=\"split-btn-wrapper ${this.open ? 'open' : ''}\"\n id=\"label-${this.name}\"\n >\n <!-- label button UI -->\n <button\n class=${classMap({\n ...classes,\n 'kyn-split-btn-label': true,\n 'kyn-split-btn--secondary-label':\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n name=${ifDefined(this.name)}\n @click=${(e: any) => this._handlePrimaryClick(e)}\n >\n <span>\n ${this.label}\n <slot name=\"icon\"></slot>\n </span>\n </button>\n <!-- menu button UI -->\n <button\n class=${classMap({\n ...classes,\n select: true,\n [`kyn-split-btn--${this.size}-arrow-btn`]: true,\n 'kyn-split-btn-icon': true,\n ['kyn-split-btn--secondary-icon']:\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n @click=${this.toggleDropdown}\n @keydown=${(e: any) => this.handleButtonKeydown(e)}\n >\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </button>\n <!-- Split Button Menu UI -->\n <ul\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n name=${this.name}\n aria-labelledby=\"label-${this.name}\"\n role=\"listbox\"\n tabindex=\"0\"\n aria-expanded=${this.open}\n aria-hidden=${!this.open}\n @keydown=${(e: any) => this.handleListKeydown(e)}\n @blur=${(e: any) => this.handleListBlur(e)}\n >\n <!-- Can put <kyn-splitbutton-option> component here for each option -->\n <slot id=\"children\"></slot>\n </ul>\n </div>\n `;\n }\n\n override updated(changedProps: any) {\n if (changedProps.has('open')) {\n if (this.open) {\n // scroll to selected option\n this.options\n .find((option) => option.selected)\n ?.scrollIntoView({ block: 'nearest' });\n // open menu upwards if closer to bottom of viewport\n const Threshold = 0.6;\n if (\n this.buttonEl.getBoundingClientRect().top >\n window.innerHeight * Threshold\n ) {\n this._openUpwards = true;\n } else {\n this._openUpwards = false;\n }\n }\n }\n }\n\n private handleListBlur(e: any) {\n this.options.forEach((option) => (option.highlighted = false));\n // don't blur if clicking an option inside\n if (\n e.relatedTarget &&\n e.relatedTarget.localName !== 'kyn-splitbutton-option'\n ) {\n this.open = false;\n }\n this.assistiveText = 'Split button menu options.';\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const highlightedEl = this.options.find(\n (option: any) => option.highlighted\n );\n console.log(highlightedEl);\n const selectedEl = this.options.find((option: any) => option.selected);\n const highlightedIndex = highlightedEl\n ? this.options.indexOf(highlightedEl)\n : this.options.find((option: any) => option.selected)\n ? this.options.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n // open the listbox\n if (target === 'button') {\n const openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (openDropdown) {\n this.open = true;\n this.options[highlightedIndex].highlighted = true;\n\n // scroll to highlighted option\n // if (!this.multiple && this.value !== '') {\n // this.options[highlightedIndex].scrollIntoView({ block: 'nearest' });\n // }\n }\n }\n switch (keyCode) {\n case ENTER_KEY_CODE: {\n this.assistiveText = 'Selected an item.';\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === this.options.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === this.options.length - 1 ? 0 : nextIndex + 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? this.options.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === 0 ? this.options.length - 1 : nextIndex - 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n this.buttonEl.focus();\n this.assistiveText = 'Split button menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private toggleDropdown = () => {\n this.open = !this.open;\n };\n\n // When click outside, then menu close\n private _handleClickOut(e: Event): void {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n // handle child blur event\n private _handleBlur(e: any): void {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget.localName !== 'kyn-splitbutton-option' &&\n relatedTarget.localName !== 'kyn-split-btn')\n ) {\n this.open = false;\n }\n }\n\n private _handlePrimaryClick(e: any) {\n this.open = false;\n const event = new CustomEvent('on-click', {\n detail: {\n origEvent: e,\n value: 1,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _handleClick(e: any) {\n this.open = false;\n // emit selected value\n this.emitValue(e);\n }\n\n private emitValue(e: any) {\n const event = new CustomEvent('on-click', {\n detail: {\n value: e.detail.value,\n text: e.detail.text,\n },\n });\n this.dispatchEvent(event);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', (e) => this._handleClickOut(e));\n // capture split button options click event\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n // capture split button options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-split-btn': SplitButton;\n }\n}\n"],"names":["SplitButton","customElement","LitElement","_classThis","_classSuper","_SplitButton_description_accessor_storage","set","this","__runInitializers","_description_initializers","_SplitButton_name_accessor_storage","_description_extraInitializers","_name_initializers","_SplitButton_kind_accessor_storage","_name_extraInitializers","_kind_initializers","SPLIT_BTN_KINDS","PRIMARY_APP","_SplitButton_size_accessor_storage","_kind_extraInitializers","_size_initializers","SPLIT_BTN_SIZES","MEDIUM","_SplitButton_iconPosition_accessor_storage","_size_extraInitializers","_iconPosition_initializers","SPLIIT_BTN_ICON_POSITION","LEFT","_SplitButton_label_accessor_storage","_iconPosition_extraInitializers","_label_initializers","_SplitButton_disabled_accessor_storage","_label_extraInitializers","_disabled_initializers","_SplitButton_destructive_accessor_storage","_disabled_extraInitializers","_destructive_initializers","_SplitButton_menuMinWidth_accessor_storage","_destructive_extraInitializers","_menuMinWidth_initializers","_SplitButton_open_accessor_storage","_menuMinWidth_extraInitializers","_open_initializers","_SplitButton_options_accessor_storage","_open_extraInitializers","_options_initializers","_SplitButton__openUpwards_accessor_storage","_options_extraInitializers","__openUpwards_initializers","_SplitButton_buttonEl_accessor_storage","__openUpwards_extraInitializers","_buttonEl_initializers","_SplitButton_assistiveText_accessor_storage","_buttonEl_extraInitializers","_assistiveText_initializers","toggleDropdown","_assistiveText_extraInitializers","open","description","__classPrivateFieldGet","value","__classPrivateFieldSet","name","kind","size","iconPosition","label","disabled","destructive","menuMinWidth","options","_openUpwards","buttonEl","assistiveText","render","baseTypeClass","PRIMARY_WEB","SECONDARY","destructModifier","classes","button","LARGE","SMALL","html","classMap","ifDefined","e","_handlePrimaryClick","select","handleButtonKeydown","unsafeSVG","downIcon","upwards","handleListKeydown","handleListBlur","updated","changedProps","has","_a","find","option","selected","scrollIntoView","block","Threshold","getBoundingClientRect","top","window","innerHeight","forEach","highlighted","relatedTarget","localName","handleKeyboard","keyCode","preventDefault","target","SPACEBAR_KEY_CODE","highlightedEl","console","log","selectedEl","highlightedIndex","indexOf","includes","nextIndex","length","text","focus","_handleClickOut","composedPath","_handleBlur","detail","origEvent","event","CustomEvent","dispatchEvent","_handleClick","emitValue","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_description_decorators","property","type","String","_name_decorators","_kind_decorators","_size_decorators","_iconPosition_decorators","_label_decorators","Boolean","reflect","_menuMinWidth_decorators","_open_decorators","_options_decorators","queryAssignedElements","selector","__openUpwards_decorators","state","query","_assistiveText_decorators","__esDecorate","static","private","access","obj","get","metadata","_metadata","_disabled_decorators","_destructive_decorators","_buttonEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SplitButtonScss","shadowRootOptions","delegatesFocus"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-applications",
3
- "version": "2.68.4",
3
+ "version": "2.68.6",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "license": "MIT",
6
6
  "main": "index.js",