@kyndryl-design-system/shidoka-applications 2.65.2 → 2.65.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/scss/menu-item.scss +37 -27
- package/components/reusable/dropdown/dropdownOption.js +46 -15
- package/components/reusable/dropdown/dropdownOption.js.map +1 -1
- package/components/reusable/dropdown/enhancedDropdownOption.js +44 -13
- package/components/reusable/dropdown/enhancedDropdownOption.js.map +1 -1
- package/components/reusable/overflowMenu/overflowMenuItem.js +37 -6
- package/components/reusable/overflowMenu/overflowMenuItem.js.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
color: var(--kd-color-text-level-disabled);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
&[selected] .menu-item-inner-el {
|
|
29
|
+
color: var(--kd-color-text-level-disabled);
|
|
30
|
+
}
|
|
31
|
+
|
|
28
32
|
&,
|
|
29
33
|
& * {
|
|
30
34
|
cursor: not-allowed;
|
|
@@ -32,6 +36,14 @@
|
|
|
32
36
|
|
|
33
37
|
&:hover {
|
|
34
38
|
background-color: $bg-default;
|
|
39
|
+
|
|
40
|
+
.menu-item-inner-el {
|
|
41
|
+
color: var(--kd-color-text-level-disabled);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
slot[name='icon']::slotted(span) {
|
|
45
|
+
color: var(--kd-color-icon-disabled);
|
|
46
|
+
}
|
|
35
47
|
}
|
|
36
48
|
}
|
|
37
49
|
|
|
@@ -44,15 +56,36 @@
|
|
|
44
56
|
}
|
|
45
57
|
|
|
46
58
|
&:hover {
|
|
47
|
-
background-color: var(--kd-color-status-error-
|
|
59
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
60
|
+
|
|
61
|
+
.menu-item-inner-el {
|
|
62
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&:active {
|
|
67
|
+
background-color: var(
|
|
68
|
+
--kd-color-background-button-primary-destructive-pressed
|
|
69
|
+
) !important;
|
|
70
|
+
outline: none;
|
|
71
|
+
|
|
72
|
+
.menu-item-inner-el {
|
|
73
|
+
color: var(--kd-color-text-button-dark-destructive) !important;
|
|
74
|
+
}
|
|
48
75
|
}
|
|
49
76
|
|
|
50
77
|
&:focus-visible {
|
|
51
|
-
outline: 2px solid var(--kd-color-border-button-primary-destructive-default);
|
|
52
|
-
background-color: var(--kd-color-status-error-
|
|
78
|
+
outline: 2px solid var(--kd-color-border-button-primary-destructive-default) !important;
|
|
79
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
53
80
|
|
|
54
81
|
.menu-item-inner-el {
|
|
55
|
-
color: var(--kd-color-text-level-primary);
|
|
82
|
+
color: var(--kd-color-text-level-primary) !important;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&:hover {
|
|
86
|
+
.menu-item-inner-el {
|
|
87
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
88
|
+
}
|
|
56
89
|
}
|
|
57
90
|
}
|
|
58
91
|
}
|
|
@@ -185,13 +218,6 @@
|
|
|
185
218
|
var(--kd-color-icon-light)
|
|
186
219
|
);
|
|
187
220
|
}
|
|
188
|
-
// cancel hover when readonly/disabled/ai-connected/destructive
|
|
189
|
-
// &[disabled]:hover,
|
|
190
|
-
// &[readonly]:hover,
|
|
191
|
-
// &.ai-connected:hover,
|
|
192
|
-
// &.destructive:hover {
|
|
193
|
-
|
|
194
|
-
// }
|
|
195
221
|
|
|
196
222
|
// 5) selected (non-disabled)
|
|
197
223
|
&[selected] {
|
|
@@ -207,28 +233,12 @@
|
|
|
207
233
|
);
|
|
208
234
|
}
|
|
209
235
|
|
|
210
|
-
// leave commented out for now as it causes issues with keyboard nav
|
|
211
|
-
// 6) highlighted (non-disabled)
|
|
212
|
-
// &[highlighted] {
|
|
213
|
-
// @include state-colors(
|
|
214
|
-
// var(--kd-color-background-menu-state-hover),
|
|
215
|
-
// var(--kd-color-text-level-light)
|
|
216
|
-
// );
|
|
217
|
-
// // default (non-AI) focus ring
|
|
218
|
-
// outline: 1px solid var(--kd-color-border-variants-focus);
|
|
219
|
-
// }
|
|
220
|
-
|
|
221
236
|
// ----- AI variant -----
|
|
222
237
|
&.ai-connected {
|
|
223
238
|
background-color: var(--kd-color-background-menu-state-ai-default);
|
|
224
239
|
color: var(--kd-color-text-level-primary);
|
|
225
240
|
}
|
|
226
241
|
|
|
227
|
-
// &.ai-connected:focus,
|
|
228
|
-
// &.ai-connected:focus-within,
|
|
229
|
-
// &.ai-connected:focus-visible {
|
|
230
|
-
// }
|
|
231
|
-
|
|
232
242
|
&.ai-connected:hover {
|
|
233
243
|
background-color: var(--kd-color-background-menu-state-ai-hover);
|
|
234
244
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as o,c as i,d as n}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as a,x as
|
|
1
|
+
import{_ as e,a as t,b as o,c as i,d as n}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as a,x as r,o as s}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as l,a as d,t as c,r as m,n as h}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as u}from"../../../vendor/lit-element-DxLLCKb1.js";import"../checkbox/checkbox.js";import"../checkbox/checkboxGroup.js";import"../checkbox/checkboxSubgroup.js";import"../button/button.js";import{i as v,c as p}from"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";import"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../../../common/mixins/form-input.js";import"../textInput/textInput.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var k=l`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -102,12 +102,21 @@ dialog.ai-connected.gradient-bkg {
|
|
|
102
102
|
:host .menu-item[disabled] .menu-item-inner-el {
|
|
103
103
|
color: var(--kd-color-text-level-disabled);
|
|
104
104
|
}
|
|
105
|
+
:host .menu-item[disabled][selected] .menu-item-inner-el {
|
|
106
|
+
color: var(--kd-color-text-level-disabled);
|
|
107
|
+
}
|
|
105
108
|
:host .menu-item[disabled], :host .menu-item[disabled] * {
|
|
106
109
|
cursor: not-allowed;
|
|
107
110
|
}
|
|
108
111
|
:host .menu-item[disabled]:hover {
|
|
109
112
|
background-color: var(--kd-color-background-menu-state-default);
|
|
110
113
|
}
|
|
114
|
+
:host .menu-item[disabled]:hover .menu-item-inner-el {
|
|
115
|
+
color: var(--kd-color-text-level-disabled);
|
|
116
|
+
}
|
|
117
|
+
:host .menu-item[disabled]:hover slot[name=icon]::slotted(span) {
|
|
118
|
+
color: var(--kd-color-icon-disabled);
|
|
119
|
+
}
|
|
111
120
|
:host .menu-item[disabled]:focus, :host .menu-item[disabled]:focus-within, :host .menu-item[disabled]:focus-visible {
|
|
112
121
|
outline: none;
|
|
113
122
|
border: none;
|
|
@@ -206,12 +215,21 @@ dialog.ai-connected.gradient-bkg {
|
|
|
206
215
|
:host .menu-item.ai-connected[disabled] .menu-item-inner-el {
|
|
207
216
|
color: var(--kd-color-text-level-disabled);
|
|
208
217
|
}
|
|
218
|
+
:host .menu-item.ai-connected[disabled][selected] .menu-item-inner-el {
|
|
219
|
+
color: var(--kd-color-text-level-disabled);
|
|
220
|
+
}
|
|
209
221
|
:host .menu-item.ai-connected[disabled], :host .menu-item.ai-connected[disabled] * {
|
|
210
222
|
cursor: not-allowed;
|
|
211
223
|
}
|
|
212
224
|
:host .menu-item.ai-connected[disabled]:hover {
|
|
213
225
|
background-color: var(--kd-color-background-menu-state-ai-default);
|
|
214
226
|
}
|
|
227
|
+
:host .menu-item.ai-connected[disabled]:hover .menu-item-inner-el {
|
|
228
|
+
color: var(--kd-color-text-level-disabled);
|
|
229
|
+
}
|
|
230
|
+
:host .menu-item.ai-connected[disabled]:hover slot[name=icon]::slotted(span) {
|
|
231
|
+
color: var(--kd-color-icon-disabled);
|
|
232
|
+
}
|
|
215
233
|
:host .menu-item.destructive {
|
|
216
234
|
color: var(--kd-color-text-variant-destructive);
|
|
217
235
|
border-top: 1px solid var(--kd-color-border-level-tertiary);
|
|
@@ -220,14 +238,27 @@ dialog.ai-connected.gradient-bkg {
|
|
|
220
238
|
color: var(--kd-color-text-variant-destructive);
|
|
221
239
|
}
|
|
222
240
|
:host .menu-item.destructive:hover {
|
|
223
|
-
background-color: var(--kd-color-status-error-
|
|
241
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
242
|
+
}
|
|
243
|
+
:host .menu-item.destructive:hover .menu-item-inner-el {
|
|
244
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
245
|
+
}
|
|
246
|
+
:host .menu-item.destructive:active {
|
|
247
|
+
background-color: var(--kd-color-background-button-primary-destructive-pressed) !important;
|
|
248
|
+
outline: none;
|
|
249
|
+
}
|
|
250
|
+
:host .menu-item.destructive:active .menu-item-inner-el {
|
|
251
|
+
color: var(--kd-color-text-button-dark-destructive) !important;
|
|
224
252
|
}
|
|
225
253
|
:host .menu-item.destructive:focus-visible {
|
|
226
|
-
outline: 2px solid var(--kd-color-border-button-primary-destructive-default);
|
|
227
|
-
background-color: var(--kd-color-status-error-
|
|
254
|
+
outline: 2px solid var(--kd-color-border-button-primary-destructive-default) !important;
|
|
255
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
228
256
|
}
|
|
229
257
|
:host .menu-item.destructive:focus-visible .menu-item-inner-el {
|
|
230
|
-
color: var(--kd-color-text-level-primary);
|
|
258
|
+
color: var(--kd-color-text-level-primary) !important;
|
|
259
|
+
}
|
|
260
|
+
:host .menu-item.destructive:focus-visible:hover .menu-item-inner-el {
|
|
261
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
231
262
|
}
|
|
232
263
|
|
|
233
264
|
:host .menu-item:active,
|
|
@@ -315,7 +346,7 @@ kyn-checkbox {
|
|
|
315
346
|
}
|
|
316
347
|
.remove-option .clear-icon {
|
|
317
348
|
padding-top: 0.25rem;
|
|
318
|
-
}`;let
|
|
349
|
+
}`;let b=(()=>{var l,b,g,f,y,x,w,$,S,E,j,C,I,M;let W,D,A,O,B,z,P,R,q,F,N,T,U,K,L,G,H=[c("kyn-dropdown-option")],_=[],J=u,Q=[],V=[],X=[],Y=[],Z=[],ee=[],te=[],oe=[],ie=[],ne=[],ae=[],re=[],se=[],le=[],de=[],ce=[],me=[],he=[],ue=[],ve=[],pe=[],ke=[],be=[],ge=[],fe=[],ye=[],xe=[],we=[];return D=class extends J{get value(){return i(this,l,"f")}set value(e){n(this,l,e,"f")}get selected(){return i(this,b,"f")}set selected(e){n(this,b,e,"f")}get disabled(){return i(this,g,"f")}set disabled(e){n(this,g,e,"f")}get allowAddOption(){return i(this,f,"f")}set allowAddOption(e){n(this,f,e,"f")}get highlighted(){return i(this,y,"f")}set highlighted(e){n(this,y,e,"f")}get multiple(){return i(this,x,"f")}set multiple(e){n(this,x,e,"f")}get removable(){return i(this,w,"f")}set removable(e){n(this,w,e,"f")}get text(){return i(this,$,"f")}set text(e){n(this,$,e,"f")}get indeterminate(){return i(this,S,"f")}set indeterminate(e){n(this,S,e,"f")}get readonly(){return i(this,E,"f")}set readonly(e){n(this,E,e,"f")}get kind(){return i(this,j,"f")}set kind(e){n(this,j,e,"f")}get hasIcon(){return i(this,C,"f")}set hasIcon(e){n(this,C,e,"f")}get role(){return i(this,I,"f")}set role(e){n(this,I,e,"f")}get ariaSelected(){return i(this,M,"f")}set ariaSelected(e){n(this,M,e,"f")}render(){const e={option:!0,"menu-item":!0,"option-is-readonly":this.readonly,"ai-connected":"ai"===this.kind};return r`
|
|
319
350
|
<div
|
|
320
351
|
class=${a(e)}
|
|
321
352
|
role="option"
|
|
@@ -333,7 +364,7 @@ kyn-checkbox {
|
|
|
333
364
|
@keydown=${e=>this.handleKeyDown(e)}
|
|
334
365
|
>
|
|
335
366
|
<span class="menu-item-inner-el text">
|
|
336
|
-
${this.multiple?
|
|
367
|
+
${this.multiple?r`
|
|
337
368
|
<kyn-checkbox
|
|
338
369
|
type="checkbox"
|
|
339
370
|
value=${this.value}
|
|
@@ -347,23 +378,23 @@ kyn-checkbox {
|
|
|
347
378
|
<slot
|
|
348
379
|
@slotchange=${e=>this.handleSlotChange(e)}
|
|
349
380
|
></slot>
|
|
350
|
-
`:
|
|
381
|
+
`:r`<slot
|
|
351
382
|
@slotchange=${e=>this.handleSlotChange(e)}
|
|
352
383
|
></slot>`}
|
|
353
384
|
</span>
|
|
354
385
|
|
|
355
|
-
${this.hasIcon?
|
|
386
|
+
${this.hasIcon?r`<slot
|
|
356
387
|
name="icon"
|
|
357
388
|
style="display:flex"
|
|
358
389
|
@slotchange=${e=>this.handleIconSlotChange(e)}
|
|
359
|
-
></slot>`:
|
|
390
|
+
></slot>`:r`<slot
|
|
360
391
|
name="icon"
|
|
361
392
|
style="display:none"
|
|
362
393
|
@slotchange=${e=>this.handleIconSlotChange(e)}
|
|
363
394
|
></slot>`}
|
|
364
|
-
${this.selected&&!this.multiple?
|
|
365
|
-
>${
|
|
366
|
-
>`:this.allowAddOption&&this.removable?
|
|
395
|
+
${this.selected&&!this.multiple?r`<span class="menu-item-inner-el check-icon"
|
|
396
|
+
>${s(v)}</span
|
|
397
|
+
>`:this.allowAddOption&&this.removable?r`
|
|
367
398
|
<kyn-button
|
|
368
399
|
class="remove-option"
|
|
369
400
|
kind=${"ai"===this.kind?"ghost-ai":"ghost"}
|
|
@@ -377,10 +408,10 @@ kyn-checkbox {
|
|
|
377
408
|
@focus=${e=>e.stopPropagation()}
|
|
378
409
|
>
|
|
379
410
|
<span slot="icon" class="clear-icon"
|
|
380
|
-
>${
|
|
411
|
+
>${s(p)}</span
|
|
381
412
|
>
|
|
382
413
|
</kyn-button>
|
|
383
414
|
`:null}
|
|
384
415
|
</div>
|
|
385
|
-
`}firstUpdated(){const e=this.closest("kyn-dropdown");e&&(this.kind=e.kind,e.addEventListener("kind-changed",(e=>{this.kind=e.detail})))}willUpdate(e){var t;if(e.has("selected")&&(this.ariaSelected=this.selected.toString()),e.has("disabled")||e.has("readonly")){const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector(".menu-item");e&&(e.tabIndex=this.disabled||this.readonly?-1:0)}}handleKeyDown(e){if(!this.disabled&&!this.readonly)switch(e.key){case"Enter":case" ":e.preventDefault(),this.handleClick(e);break;case"ArrowDown":e.preventDefault(),this.moveFocus(1);break;case"ArrowUp":e.preventDefault(),this.moveFocus(-1);break;case"Home":e.preventDefault(),this.moveToEdge("start");break;case"End":e.preventDefault(),this.moveToEdge("end")}}moveFocus(e){var t;let o=e>0?this.nextElementSibling:this.previousElementSibling;for(;o;){if("kyn-dropdown-option"===o.tagName.toLowerCase()){const e=o;if(!e.disabled&&!e.readonly){const o=null===(t=e.shadowRoot)||void 0===t?void 0:t.querySelector(".menu-item");null==o||o.focus();break}}o=e>0?o.nextElementSibling:o.previousElementSibling}}moveToEdge(e){var t,o,i;const n=null!==(o=null===(t=this.parentElement)||void 0===t?void 0:t.querySelectorAll("kyn-dropdown-option"))&&void 0!==o?o:[],a=Array.from(n),
|
|
416
|
+
`}firstUpdated(){const e=this.closest("kyn-dropdown");e&&(this.kind=e.kind,e.addEventListener("kind-changed",(e=>{this.kind=e.detail})))}willUpdate(e){var t;if(e.has("selected")&&(this.ariaSelected=this.selected.toString()),e.has("disabled")||e.has("readonly")){const e=null===(t=this.shadowRoot)||void 0===t?void 0:t.querySelector(".menu-item");e&&(e.tabIndex=this.disabled||this.readonly?-1:0)}}handleKeyDown(e){if(!this.disabled&&!this.readonly)switch(e.key){case"Enter":case" ":e.preventDefault(),this.handleClick(e);break;case"ArrowDown":e.preventDefault(),this.moveFocus(1);break;case"ArrowUp":e.preventDefault(),this.moveFocus(-1);break;case"Home":e.preventDefault(),this.moveToEdge("start");break;case"End":e.preventDefault(),this.moveToEdge("end")}}moveFocus(e){var t;let o=e>0?this.nextElementSibling:this.previousElementSibling;for(;o;){if("kyn-dropdown-option"===o.tagName.toLowerCase()){const e=o;if(!e.disabled&&!e.readonly){const o=null===(t=e.shadowRoot)||void 0===t?void 0:t.querySelector(".menu-item");null==o||o.focus();break}}o=e>0?o.nextElementSibling:o.previousElementSibling}}moveToEdge(e){var t,o,i;const n=null!==(o=null===(t=this.parentElement)||void 0===t?void 0:t.querySelectorAll("kyn-dropdown-option"))&&void 0!==o?o:[],a=Array.from(n),r="start"===e?a[0]:a[a.length-1];if(r&&!r.disabled&&!r.readonly){const e=null===(i=r.shadowRoot)||void 0===i?void 0:i.querySelector(".menu-item");null==e||e.focus()}}handleRemoveClick(e){e.stopPropagation();const t=new CustomEvent("on-remove-option",{bubbles:!0,composed:!0,detail:{value:this.value}});this.dispatchEvent(t)}handleSlotChange(e){const t=e.target.assignedNodes({flatten:!0});let o="";for(let e=0;e<t.length;e++)o+=t[e].textContent.trim();this.text=o}handleClick(e){this.disabled||this.readonly?e.stopPropagation():(this.multiple?this.selected=!this.selected:this.selected=!0,this.dispatchEvent(new CustomEvent("on-click",{bubbles:!0,composed:!0,detail:{selected:this.selected,value:this.value,origEvent:e}})))}handleBlur(e){const t=new CustomEvent("on-blur",{bubbles:!0,composed:!0,detail:{origEvent:e}});this.dispatchEvent(t)}handleIconSlotChange(e){const t=e.target.assignedNodes({flatten:!0});this.hasIcon=t.length>0}constructor(){super(...arguments),l.set(this,o(this,Q,"")),b.set(this,(o(this,V),o(this,X,!1))),g.set(this,(o(this,Y),o(this,Z,!1))),f.set(this,(o(this,ee),o(this,te,!1))),y.set(this,(o(this,oe),o(this,ie,!1))),x.set(this,(o(this,ne),o(this,ae,!1))),w.set(this,(o(this,re),o(this,se,!1))),$.set(this,(o(this,le),o(this,de,""))),S.set(this,(o(this,ce),o(this,me,!1))),E.set(this,(o(this,he),o(this,ue,!1))),j.set(this,(o(this,ve),o(this,pe,"default"))),C.set(this,(o(this,ke),o(this,be,!1))),I.set(this,(o(this,ge),o(this,fe,"option"))),M.set(this,(o(this,ye),o(this,xe,"false"))),o(this,we)}},l=new WeakMap,b=new WeakMap,g=new WeakMap,f=new WeakMap,y=new WeakMap,x=new WeakMap,w=new WeakMap,$=new WeakMap,S=new WeakMap,E=new WeakMap,j=new WeakMap,C=new WeakMap,I=new WeakMap,M=new WeakMap,e(D,"DropdownOption"),(()=>{var e;const o="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=J[Symbol.metadata])&&void 0!==e?e:null):void 0;A=[h({type:String})],O=[h({type:Boolean})],B=[h({type:Boolean})],z=[h({type:Boolean})],P=[d()],R=[h({type:Boolean})],q=[h({type:Boolean})],F=[d()],N=[h({type:Boolean,reflect:!0})],T=[h({type:Boolean,reflect:!0})],U=[d()],K=[d()],L=[h({type:String,reflect:!0})],G=[h({type:String,reflect:!0,attribute:"aria-selected"})],t(D,null,A,{kind:"accessor",name:"value",static:!1,private:!1,access:{has:e=>"value"in e,get:e=>e.value,set:(e,t)=>{e.value=t}},metadata:o},Q,V),t(D,null,O,{kind:"accessor",name:"selected",static:!1,private:!1,access:{has:e=>"selected"in e,get:e=>e.selected,set:(e,t)=>{e.selected=t}},metadata:o},X,Y),t(D,null,B,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:e=>"disabled"in e,get:e=>e.disabled,set:(e,t)=>{e.disabled=t}},metadata:o},Z,ee),t(D,null,z,{kind:"accessor",name:"allowAddOption",static:!1,private:!1,access:{has:e=>"allowAddOption"in e,get:e=>e.allowAddOption,set:(e,t)=>{e.allowAddOption=t}},metadata:o},te,oe),t(D,null,P,{kind:"accessor",name:"highlighted",static:!1,private:!1,access:{has:e=>"highlighted"in e,get:e=>e.highlighted,set:(e,t)=>{e.highlighted=t}},metadata:o},ie,ne),t(D,null,R,{kind:"accessor",name:"multiple",static:!1,private:!1,access:{has:e=>"multiple"in e,get:e=>e.multiple,set:(e,t)=>{e.multiple=t}},metadata:o},ae,re),t(D,null,q,{kind:"accessor",name:"removable",static:!1,private:!1,access:{has:e=>"removable"in e,get:e=>e.removable,set:(e,t)=>{e.removable=t}},metadata:o},se,le),t(D,null,F,{kind:"accessor",name:"text",static:!1,private:!1,access:{has:e=>"text"in e,get:e=>e.text,set:(e,t)=>{e.text=t}},metadata:o},de,ce),t(D,null,N,{kind:"accessor",name:"indeterminate",static:!1,private:!1,access:{has:e=>"indeterminate"in e,get:e=>e.indeterminate,set:(e,t)=>{e.indeterminate=t}},metadata:o},me,he),t(D,null,T,{kind:"accessor",name:"readonly",static:!1,private:!1,access:{has:e=>"readonly"in e,get:e=>e.readonly,set:(e,t)=>{e.readonly=t}},metadata:o},ue,ve),t(D,null,U,{kind:"accessor",name:"kind",static:!1,private:!1,access:{has:e=>"kind"in e,get:e=>e.kind,set:(e,t)=>{e.kind=t}},metadata:o},pe,ke),t(D,null,K,{kind:"accessor",name:"hasIcon",static:!1,private:!1,access:{has:e=>"hasIcon"in e,get:e=>e.hasIcon,set:(e,t)=>{e.hasIcon=t}},metadata:o},be,ge),t(D,null,L,{kind:"accessor",name:"role",static:!1,private:!1,access:{has:e=>"role"in e,get:e=>e.role,set:(e,t)=>{e.role=t}},metadata:o},fe,ye),t(D,null,G,{kind:"accessor",name:"ariaSelected",static:!1,private:!1,access:{has:e=>"ariaSelected"in e,get:e=>e.ariaSelected,set:(e,t)=>{e.ariaSelected=t}},metadata:o},xe,we),t(null,W={value:D},H,{kind:"class",name:D.name,metadata:o},null,_),D=W.value,o&&Object.defineProperty(D,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})})(),D.styles=m(k),o(D,_),D})();export{b as DropdownOption};
|
|
386
417
|
//# sourceMappingURL=dropdownOption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdownOption.js","sources":["../../../../src/components/reusable/dropdown/dropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport DropdownOptionScss from './dropdownOption.scss?inline';\n\n/**\n * Dropdown option.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ value: string }`\n * @slot unnamed - Slot for option text.\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n */\n@customElement('kyn-dropdown-option')\nexport class DropdownOption extends LitElement {\n static override styles = unsafeCSS(DropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** Readonly state (from parent). Option stays focusable but not selectable. */\n @property({ type: Boolean, reflect: true })\n accessor readonly = false;\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n /** slotted icon added state.\n * @ignore\n */\n @state()\n accessor hasIcon = false;\n\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'false';\n\n override render() {\n const classes = {\n option: true,\n 'menu-item': true,\n 'option-is-readonly': this.readonly,\n 'ai-connected': this.kind === 'ai',\n };\n\n return html`\n <div\n class=${classMap(classes)}\n role=\"option\"\n aria-selected=${this.selected ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n title=${this.text}\n tabindex=${this.disabled || this.readonly ? -1 : 0}\n @mousedown=${(e: MouseEvent) => {\n if (this.readonly) e.preventDefault();\n }}\n @pointerup=${(e: any) => this.handleClick(e)}\n @blur=${(e: any) => this.handleBlur(e)}\n @keydown=${(e: KeyboardEvent) => this.handleKeyDown(e)}\n >\n <span class=\"menu-item-inner-el text\">\n ${this.multiple\n ? html`\n <kyn-checkbox\n type=\"checkbox\"\n value=${this.value}\n .checked=${this.selected}\n ?checked=${this.selected}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n notFocusable\n .indeterminate=${this.indeterminate}\n ></kyn-checkbox>\n <slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>\n `\n : html`<slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>`}\n </span>\n\n ${this.hasIcon\n ? html`<slot\n name=\"icon\"\n style=\"display:flex\"\n @slotchange=${(e: any) => this.handleIconSlotChange(e)}\n ></slot>`\n : html`<slot\n name=\"icon\"\n style=\"display:none\"\n @slotchange=${(e: any) => this.handleIconSlotChange(e)}\n ></slot>`}\n ${this.selected && !this.multiple\n ? html`<span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >`\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n class=\"remove-option\"\n kind=${this.kind === 'ai' ? 'ghost-ai' : 'ghost'}\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n description=\"Delete ${this.value}\"\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleRemoveClick(e)}\n @mousedown=${(e: Event) => e.stopPropagation()}\n @keydown=${(e: KeyboardEvent) => e.stopPropagation()}\n @focus=${(e: KeyboardEvent) => e.stopPropagation()}\n >\n <span slot=\"icon\" class=\"clear-icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : null}\n </div>\n `;\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n if (changed.has('disabled') || changed.has('readonly')) {\n const el = this.shadowRoot?.querySelector(\n '.menu-item'\n ) as HTMLElement | null;\n if (el) el.tabIndex = this.disabled || this.readonly ? -1 : 0;\n }\n }\n\n private handleKeyDown(e: KeyboardEvent) {\n if (this.disabled || this.readonly) return;\n\n switch (e.key) {\n case 'Enter':\n case ' ': {\n e.preventDefault();\n this.handleClick(e);\n break;\n }\n case 'ArrowDown': {\n e.preventDefault();\n this.moveFocus(1);\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n this.moveFocus(-1);\n break;\n }\n case 'Home': {\n e.preventDefault();\n this.moveToEdge('start');\n break;\n }\n case 'End': {\n e.preventDefault();\n this.moveToEdge('end');\n break;\n }\n }\n }\n\n private moveFocus(delta: number) {\n let node: Element | null =\n delta > 0 ? this.nextElementSibling : this.previousElementSibling;\n while (node) {\n if (node.tagName.toLowerCase() === 'kyn-dropdown-option') {\n const opt = node as DropdownOption;\n if (!opt.disabled && !opt.readonly) {\n const target = opt.shadowRoot?.querySelector(\n '.menu-item'\n ) as HTMLElement | null;\n target?.focus();\n break;\n }\n }\n node = delta > 0 ? node.nextElementSibling : node.previousElementSibling;\n }\n }\n\n private moveToEdge(where: 'start' | 'end') {\n const all =\n this.parentElement?.querySelectorAll('kyn-dropdown-option') ?? [];\n const list = Array.from(all) as DropdownOption[];\n const candidate = where === 'start' ? list[0] : list[list.length - 1];\n if (candidate && !candidate.disabled && !candidate.readonly) {\n const target = candidate.shadowRoot?.querySelector(\n '.menu-item'\n ) as HTMLElement | null;\n target?.focus();\n }\n }\n\n private handleRemoveClick(e: Event) {\n e.stopPropagation();\n const event = new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleSlotChange(e: any) {\n // set text prop from slotted text, for ease of access\n const nodes = e.target.assignedNodes({ flatten: true });\n let text = '';\n\n for (let i = 0; i < nodes.length; i++) {\n text += nodes[i].textContent.trim();\n }\n\n this.text = text;\n }\n\n private handleClick(e: Event) {\n // block interaction when disabled or readonly\n if (this.disabled || this.readonly) {\n e.stopPropagation();\n return;\n }\n\n if (this.multiple) {\n this.selected = !this.selected;\n } else {\n this.selected = true;\n }\n\n this.dispatchEvent(\n new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: { selected: this.selected, value: this.value, origEvent: e },\n })\n );\n }\n\n private handleBlur(e: any) {\n // emit blur event, bubble so it can be captured by the parent dropdown\n const event = new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: {\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleIconSlotChange(e: any) {\n const nodes = e.target.assignedNodes({ flatten: true });\n this.hasIcon = nodes.length > 0;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown-option': DropdownOption;\n }\n}\n"],"names":["DropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_DropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_DropdownOption_selected_accessor_storage","disabled","_DropdownOption_disabled_accessor_storage","allowAddOption","_DropdownOption_allowAddOption_accessor_storage","highlighted","_DropdownOption_highlighted_accessor_storage","multiple","_DropdownOption_multiple_accessor_storage","removable","_DropdownOption_removable_accessor_storage","text","_DropdownOption_text_accessor_storage","indeterminate","_DropdownOption_indeterminate_accessor_storage","readonly","_DropdownOption_readonly_accessor_storage","kind","_DropdownOption_kind_accessor_storage","hasIcon","_DropdownOption_hasIcon_accessor_storage","role","_DropdownOption_role_accessor_storage","ariaSelected","_DropdownOption_ariaSelected_accessor_storage","render","classes","option","html","classMap","e","preventDefault","handleClick","handleBlur","handleKeyDown","handleSlotChange","handleIconSlotChange","unsafeSVG","checkIcon","handleRemoveClick","stopPropagation","clearIcon","firstUpdated","parent","closest","addEventListener","detail","willUpdate","changed","has","toString","el","_a","shadowRoot","querySelector","tabIndex","key","moveFocus","moveToEdge","delta","node","nextElementSibling","previousElementSibling","tagName","toLowerCase","opt","target","focus","where","all","_b","parentElement","querySelectorAll","list","Array","from","candidate","length","_c","event","CustomEvent","bubbles","composed","dispatchEvent","nodes","assignedNodes","flatten","i","textContent","trim","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_text_initializers","_text_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_readonly_initializers","_readonly_extraInitializers","_kind_initializers","_kind_extraInitializers","_hasIcon_initializers","_hasIcon_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_value_decorators","property","type","String","_selected_decorators","Boolean","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_text_decorators","reflect","_kind_decorators","_hasIcon_decorators","_ariaSelected_decorators","attribute","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_indeterminate_decorators","_readonly_decorators","_role_decorators","_ariaSelected_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownOptionScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdownOption.js","sources":["../../../../src/components/reusable/dropdown/dropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport DropdownOptionScss from './dropdownOption.scss?inline';\n\n/**\n * Dropdown option.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ value: string }`\n * @slot unnamed - Slot for option text.\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n */\n@customElement('kyn-dropdown-option')\nexport class DropdownOption extends LitElement {\n static override styles = unsafeCSS(DropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** Readonly state (from parent). Option stays focusable but not selectable. */\n @property({ type: Boolean, reflect: true })\n accessor readonly = false;\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n /** slotted icon added state.\n * @ignore\n */\n @state()\n accessor hasIcon = false;\n\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'false';\n\n override render() {\n const classes = {\n option: true,\n 'menu-item': true,\n 'option-is-readonly': this.readonly,\n 'ai-connected': this.kind === 'ai',\n };\n\n return html`\n <div\n class=${classMap(classes)}\n role=\"option\"\n aria-selected=${this.selected ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n title=${this.text}\n tabindex=${this.disabled || this.readonly ? -1 : 0}\n @mousedown=${(e: MouseEvent) => {\n if (this.readonly) e.preventDefault();\n }}\n @pointerup=${(e: any) => this.handleClick(e)}\n @blur=${(e: any) => this.handleBlur(e)}\n @keydown=${(e: KeyboardEvent) => this.handleKeyDown(e)}\n >\n <span class=\"menu-item-inner-el text\">\n ${this.multiple\n ? html`\n <kyn-checkbox\n type=\"checkbox\"\n value=${this.value}\n .checked=${this.selected}\n ?checked=${this.selected}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n notFocusable\n .indeterminate=${this.indeterminate}\n ></kyn-checkbox>\n <slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>\n `\n : html`<slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>`}\n </span>\n\n ${this.hasIcon\n ? html`<slot\n name=\"icon\"\n style=\"display:flex\"\n @slotchange=${(e: any) => this.handleIconSlotChange(e)}\n ></slot>`\n : html`<slot\n name=\"icon\"\n style=\"display:none\"\n @slotchange=${(e: any) => this.handleIconSlotChange(e)}\n ></slot>`}\n ${this.selected && !this.multiple\n ? html`<span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >`\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n class=\"remove-option\"\n kind=${this.kind === 'ai' ? 'ghost-ai' : 'ghost'}\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n description=\"Delete ${this.value}\"\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleRemoveClick(e)}\n @mousedown=${(e: Event) => e.stopPropagation()}\n @keydown=${(e: KeyboardEvent) => e.stopPropagation()}\n @focus=${(e: KeyboardEvent) => e.stopPropagation()}\n >\n <span slot=\"icon\" class=\"clear-icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : null}\n </div>\n `;\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n if (changed.has('disabled') || changed.has('readonly')) {\n const el = this.shadowRoot?.querySelector(\n '.menu-item'\n ) as HTMLElement | null;\n if (el) el.tabIndex = this.disabled || this.readonly ? -1 : 0;\n }\n }\n\n private handleKeyDown(e: KeyboardEvent) {\n if (this.disabled || this.readonly) return;\n\n switch (e.key) {\n case 'Enter':\n case ' ': {\n e.preventDefault();\n this.handleClick(e);\n break;\n }\n case 'ArrowDown': {\n e.preventDefault();\n this.moveFocus(1);\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n this.moveFocus(-1);\n break;\n }\n case 'Home': {\n e.preventDefault();\n this.moveToEdge('start');\n break;\n }\n case 'End': {\n e.preventDefault();\n this.moveToEdge('end');\n break;\n }\n }\n }\n\n private moveFocus(delta: number) {\n let node: Element | null =\n delta > 0 ? this.nextElementSibling : this.previousElementSibling;\n while (node) {\n if (node.tagName.toLowerCase() === 'kyn-dropdown-option') {\n const opt = node as DropdownOption;\n if (!opt.disabled && !opt.readonly) {\n const target = opt.shadowRoot?.querySelector(\n '.menu-item'\n ) as HTMLElement | null;\n target?.focus();\n break;\n }\n }\n node = delta > 0 ? node.nextElementSibling : node.previousElementSibling;\n }\n }\n\n private moveToEdge(where: 'start' | 'end') {\n const all =\n this.parentElement?.querySelectorAll('kyn-dropdown-option') ?? [];\n const list = Array.from(all) as DropdownOption[];\n const candidate = where === 'start' ? list[0] : list[list.length - 1];\n if (candidate && !candidate.disabled && !candidate.readonly) {\n const target = candidate.shadowRoot?.querySelector(\n '.menu-item'\n ) as HTMLElement | null;\n target?.focus();\n }\n }\n\n private handleRemoveClick(e: Event) {\n e.stopPropagation();\n const event = new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleSlotChange(e: any) {\n // set text prop from slotted text, for ease of access\n const nodes = e.target.assignedNodes({ flatten: true });\n let text = '';\n\n for (let i = 0; i < nodes.length; i++) {\n text += nodes[i].textContent.trim();\n }\n\n this.text = text;\n }\n\n private handleClick(e: Event) {\n // block interaction when disabled or readonly\n if (this.disabled || this.readonly) {\n e.stopPropagation();\n return;\n }\n\n if (this.multiple) {\n this.selected = !this.selected;\n } else {\n this.selected = true;\n }\n\n this.dispatchEvent(\n new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: { selected: this.selected, value: this.value, origEvent: e },\n })\n );\n }\n\n private handleBlur(e: any) {\n // emit blur event, bubble so it can be captured by the parent dropdown\n const event = new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: {\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleIconSlotChange(e: any) {\n const nodes = e.target.assignedNodes({ flatten: true });\n this.hasIcon = nodes.length > 0;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown-option': DropdownOption;\n }\n}\n"],"names":["DropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_DropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_DropdownOption_selected_accessor_storage","disabled","_DropdownOption_disabled_accessor_storage","allowAddOption","_DropdownOption_allowAddOption_accessor_storage","highlighted","_DropdownOption_highlighted_accessor_storage","multiple","_DropdownOption_multiple_accessor_storage","removable","_DropdownOption_removable_accessor_storage","text","_DropdownOption_text_accessor_storage","indeterminate","_DropdownOption_indeterminate_accessor_storage","readonly","_DropdownOption_readonly_accessor_storage","kind","_DropdownOption_kind_accessor_storage","hasIcon","_DropdownOption_hasIcon_accessor_storage","role","_DropdownOption_role_accessor_storage","ariaSelected","_DropdownOption_ariaSelected_accessor_storage","render","classes","option","html","classMap","e","preventDefault","handleClick","handleBlur","handleKeyDown","handleSlotChange","handleIconSlotChange","unsafeSVG","checkIcon","handleRemoveClick","stopPropagation","clearIcon","firstUpdated","parent","closest","addEventListener","detail","willUpdate","changed","has","toString","el","_a","shadowRoot","querySelector","tabIndex","key","moveFocus","moveToEdge","delta","node","nextElementSibling","previousElementSibling","tagName","toLowerCase","opt","target","focus","where","all","_b","parentElement","querySelectorAll","list","Array","from","candidate","length","_c","event","CustomEvent","bubbles","composed","dispatchEvent","nodes","assignedNodes","flatten","i","textContent","trim","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_text_initializers","_text_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_readonly_initializers","_readonly_extraInitializers","_kind_initializers","_kind_extraInitializers","_hasIcon_initializers","_hasIcon_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_value_decorators","property","type","String","_selected_decorators","Boolean","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_text_decorators","reflect","_kind_decorators","_hasIcon_decorators","_ariaSelected_decorators","attribute","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_indeterminate_decorators","_readonly_decorators","_role_decorators","_ariaSelected_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownOptionScss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqBaA,EAAc,6EAD1BC,EAAc,+BACqBC,4KAARC,EAAA,cAAQC,EAKlC,SAASC,GAAK,OAAAC,EAAAC,KAAAC,EAAA,IAAA,CAAd,SAASH,CAAKA,GAAAI,EAAAF,KAAAC,EAAAH,EAAA,IAAA,CAMd,YAASK,GAAQ,OAAAJ,EAAAC,KAAAI,EAAA,IAAA,CAAjB,YAASD,CAAQL,GAAAI,EAAAF,KAAAI,EAAAN,EAAA,IAAA,CAIjB,YAASO,GAAQ,OAAAN,EAAAC,KAAAM,EAAA,IAAA,CAAjB,YAASD,CAAQP,GAAAI,EAAAF,KAAAM,EAAAR,EAAA,IAAA,CAIjB,kBAASS,GAAc,OAAAR,EAAAC,KAAAQ,EAAA,IAAA,CAAvB,kBAASD,CAAcT,GAAAI,EAAAF,KAAAQ,EAAAV,EAAA,IAAA,CAOvB,eAASW,GAAW,OAAAV,EAAAC,KAAAU,EAAA,IAAA,CAApB,eAASD,CAAWX,GAAAI,EAAAF,KAAAU,EAAAZ,EAAA,IAAA,CAMpB,YAASa,GAAQ,OAAAZ,EAAAC,KAAAY,EAAA,IAAA,CAAjB,YAASD,CAAQb,GAAAI,EAAAF,KAAAY,EAAAd,EAAA,IAAA,CAIjB,aAASe,GAAS,OAAAd,EAAAC,KAAAc,EAAA,IAAA,CAAlB,aAASD,CAASf,GAAAI,EAAAF,KAAAc,EAAAhB,EAAA,IAAA,CAOlB,QAASiB,GAAI,OAAAhB,EAAAC,KAAAgB,EAAA,IAAA,CAAb,QAASD,CAAIjB,GAAAI,EAAAF,KAAAgB,EAAAlB,EAAA,IAAA,CAIb,iBAASmB,GAAa,OAAAlB,EAAAC,KAAAkB,EAAA,IAAA,CAAtB,iBAASD,CAAanB,GAAAI,EAAAF,KAAAkB,EAAApB,EAAA,IAAA,CAItB,YAASqB,GAAQ,OAAApB,EAAAC,KAAAoB,EAAA,IAAA,CAAjB,YAASD,CAAQrB,GAAAI,EAAAF,KAAAoB,EAAAtB,EAAA,IAAA,CAMjB,QAASuB,GAAI,OAAAtB,EAAAC,KAAAsB,EAAA,IAAA,CAAb,QAASD,CAAIvB,GAAAI,EAAAF,KAAAsB,EAAAxB,EAAA,IAAA,CAMb,WAASyB,GAAO,OAAAxB,EAAAC,KAAAwB,EAAA,IAAA,CAAhB,WAASD,CAAOzB,GAAAI,EAAAF,KAAAwB,EAAA1B,EAAA,IAAA,CAGhB,QAAkB2B,GAAI,OAAA1B,EAAAC,KAAA0B,EAAA,IAAA,CAAtB,QAAkBD,CAAI3B,GAAAI,EAAAF,KAAA0B,EAAA5B,EAAA,IAAA,CAGtB,gBAAkB6B,GAAY,OAAA5B,EAAAC,KAAA4B,EAAA,IAAA,CAA9B,gBAAkBD,CAAY7B,GAAAI,EAAAF,KAAA4B,EAAA9B,EAAA,IAAA,CAErB,MAAA+B,GACP,MAAMC,EAAU,CACdC,QAAQ,EACR,aAAa,EACb,qBAAsB/B,KAAKmB,SAC3B,eAA8B,OAAdnB,KAAKqB,MAGvB,OAAOW,CAAI;;gBAECC,EAASH;;wBAED9B,KAAKG,SAAW,OAAS;wBACzBH,KAAKK,SAAW,OAAS;uBAC1BL,KAAKS;oBACRT,KAAKG;oBACLH,KAAKK;qBACJL,KAAKK,UAAYL,KAAKmB;gBAC3BnB,KAAKe;mBACFf,KAAKK,UAAYL,KAAKmB,UAAW,EAAK;qBACnCe,IACRlC,KAAKmB,UAAUe,EAAEC,gBAAgB;qBAEzBD,GAAWlC,KAAKoC,YAAYF;gBACjCA,GAAWlC,KAAKqC,WAAWH;mBACxBA,GAAqBlC,KAAKsC,cAAcJ;;;YAGhDlC,KAAKW,SACHqB,CAAI;;;0BAGQhC,KAAKF;6BACFE,KAAKG;6BACLH,KAAKG;8BACJH,KAAKK;+BACJL,KAAKK,UAAYL,KAAKmB;;mCAElBnB,KAAKiB;;;gCAGPiB,GAAWlC,KAAKuC,iBAAiBL;;gBAGpDF,CAAI;8BACaE,GAAWlC,KAAKuC,iBAAiBL;;;;UAItDlC,KAAKuB,QACHS,CAAI;;;4BAGaE,GAAWlC,KAAKwC,qBAAqBN;sBAEtDF,CAAI;;;4BAGaE,GAAWlC,KAAKwC,qBAAqBN;;UAExDlC,KAAKG,WAAaH,KAAKW,SACrBqB,CAAI;iBACCS,EAAUC;eAEf1C,KAAKO,gBAAkBP,KAAKa,UAC5BmB,CAAI;;;uBAGqB,OAAdhC,KAAKqB,KAAgB,WAAa;;qCAEpBrB,KAAKF;sCACJE,KAAKF;4BACfE,KAAKK;yBACP6B,GAAalC,KAAK2C,kBAAkBT;6BAChCA,GAAaA,EAAEU;2BACjBV,GAAqBA,EAAEU;yBACzBV,GAAqBA,EAAEU;;;qBAG5BH,EAAUI;;;cAInB;;MAKD,YAAAC,GACP,MAAMC,EAAS/C,KAAKgD,QAAQ,gBACxBD,IACF/C,KAAKqB,KAAO0B,EAAO1B,KAEnB0B,EAAOE,iBAAiB,gBAAiBf,IACvClC,KAAKqB,KAAQa,EAAoCgB,MAAM,KAKpD,UAAAC,CAAWC,SAIlB,GAHIA,EAAQC,IAAI,cACdrD,KAAK2B,aAAe3B,KAAKG,SAASmD,YAEhCF,EAAQC,IAAI,aAAeD,EAAQC,IAAI,YAAa,CACtD,MAAME,EAAoB,QAAfC,EAAAxD,KAAKyD,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,cAC1B,cAEEH,IAAIA,EAAGI,SAAW3D,KAAKK,UAAYL,KAAKmB,UAAW,EAAK,IAIxD,aAAAmB,CAAcJ,GACpB,IAAIlC,KAAKK,WAAYL,KAAKmB,SAE1B,OAAQe,EAAE0B,KACR,IAAK,QACL,IAAK,IACH1B,EAAEC,iBACFnC,KAAKoC,YAAYF,GACjB,MAEF,IAAK,YACHA,EAAEC,iBACFnC,KAAK6D,UAAU,GACf,MAEF,IAAK,UACH3B,EAAEC,iBACFnC,KAAK6D,cACL,MAEF,IAAK,OACH3B,EAAEC,iBACFnC,KAAK8D,WAAW,SAChB,MAEF,IAAK,MACH5B,EAAEC,iBACFnC,KAAK8D,WAAW,QAMd,SAAAD,CAAUE,SAChB,IAAIC,EACFD,EAAQ,EAAI/D,KAAKiE,mBAAqBjE,KAAKkE,uBAC7C,KAAOF,GAAM,CACX,GAAmC,wBAA/BA,EAAKG,QAAQC,cAAyC,CACxD,MAAMC,EAAML,EACZ,IAAKK,EAAIhE,WAAagE,EAAIlD,SAAU,CAClC,MAAMmD,EAAuB,QAAdd,EAAAa,EAAIZ,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,cAC7B,cAEFY,SAAAA,EAAQC,QACR,OAGJP,EAAOD,EAAQ,EAAIC,EAAKC,mBAAqBD,EAAKE,wBAI9C,UAAAJ,CAAWU,aACjB,MAAMC,EACuD,QAA3DC,EAAkB,QAAlBlB,EAAAxD,KAAK2E,qBAAa,IAAAnB,OAAA,EAAAA,EAAEoB,iBAAiB,8BAAsB,IAAAF,EAAAA,EAAI,GAC3DG,EAAOC,MAAMC,KAAKN,GAClBO,EAAsB,UAAVR,EAAoBK,EAAK,GAAKA,EAAKA,EAAKI,OAAS,GACnE,GAAID,IAAcA,EAAU3E,WAAa2E,EAAU7D,SAAU,CAC3D,MAAMmD,EAA6B,QAApBY,EAAAF,EAAUvB,kBAAU,IAAAyB,OAAA,EAAAA,EAAExB,cACnC,cAEFY,SAAAA,EAAQC,SAIJ,iBAAA5B,CAAkBT,GACxBA,EAAEU,kBACF,MAAMuC,EAAQ,IAAIC,YAAY,mBAAoB,CAChDC,SAAS,EACTC,UAAU,EACVpC,OAAQ,CACNpD,MAAOE,KAAKF,SAGhBE,KAAKuF,cAAcJ,GAGb,gBAAA5C,CAAiBL,GAEvB,MAAMsD,EAAQtD,EAAEoC,OAAOmB,cAAc,CAAEC,SAAS,IAChD,IAAI3E,EAAO,GAEX,IAAK,IAAI4E,EAAI,EAAGA,EAAIH,EAAMP,OAAQU,IAChC5E,GAAQyE,EAAMG,GAAGC,YAAYC,OAG/B7F,KAAKe,KAAOA,EAGN,WAAAqB,CAAYF,GAEdlC,KAAKK,UAAYL,KAAKmB,SACxBe,EAAEU,mBAIA5C,KAAKW,SACPX,KAAKG,UAAYH,KAAKG,SAEtBH,KAAKG,UAAW,EAGlBH,KAAKuF,cACH,IAAIH,YAAY,WAAY,CAC1BC,SAAS,EACTC,UAAU,EACVpC,OAAQ,CAAE/C,SAAUH,KAAKG,SAAUL,MAAOE,KAAKF,MAAOgG,UAAW5D,OAK/D,UAAAG,CAAWH,GAEjB,MAAMiD,EAAQ,IAAIC,YAAY,UAAW,CACvCC,SAAS,EACTC,UAAU,EACVpC,OAAQ,CACN4C,UAAW5D,KAGflC,KAAKuF,cAAcJ,GAGb,oBAAA3C,CAAqBN,GAC3B,MAAMsD,EAAQtD,EAAEoC,OAAOmB,cAAc,CAAEC,SAAS,IAChD1F,KAAKuB,QAAUiE,EAAMP,OAAS,oCA7SvBhF,EAAA8F,IAAA/F,KAAAgG,EAAAhG,KAAAiG,EAAQ,KAMR7F,EAAA2F,IAAA/F,MAAAgG,EAAAhG,KAAAkG,GAAAF,EAAAhG,KAAAmG,GAAW,KAIX7F,EAAAyF,IAAA/F,MAAAgG,EAAAhG,KAAAoG,GAAAJ,EAAAhG,KAAAqG,GAAW,KAIX7F,EAAAuF,IAAA/F,MAAAgG,EAAAhG,KAAAsG,IAAAN,EAAAhG,KAAAuG,IAAiB,KAOjB7F,EAAAqF,IAAA/F,MAAAgG,EAAAhG,KAAAwG,IAAAR,EAAAhG,KAAAyG,IAAc,KAMd7F,EAAAmF,IAAA/F,MAAAgG,EAAAhG,KAAA0G,IAAAV,EAAAhG,KAAA2G,IAAW,KAIX7F,EAAAiF,IAAA/F,MAAAgG,EAAAhG,KAAA4G,IAAAZ,EAAAhG,KAAA6G,IAAY,KAOZ7F,EAAA+E,IAAA/F,MAAAgG,EAAAhG,KAAA8G,IAAAd,EAAAhG,KAAA+G,GAAY,MAIZ7F,EAAA6E,IAAA/F,MAAAgG,EAAAhG,KAAAgH,IAAAhB,EAAAhG,KAAAiH,IAAgB,KAIhB7F,EAAA2E,IAAA/F,MAAAgG,EAAAhG,KAAAkH,IAAAlB,EAAAhG,KAAAmH,IAAW,KAMX7F,EAAAyE,IAAA/F,MAAAgG,EAAAhG,KAAAoH,IAAApB,EAAAhG,KAAAqH,GAAyB,aAMzB7F,EAAAuE,IAAA/F,MAAAgG,EAAAhG,KAAAsH,IAAAtB,EAAAhG,KAAAuH,IAAU,KAGD7F,EAAAqE,IAAA/F,MAAAgG,EAAAhG,KAAAwH,IAAAxB,EAAAhG,KAAAyH,GAAO,YAGP7F,EAAAmE,IAAA/F,MAAAgG,EAAAhG,KAAA0H,IAAA1B,EAAAhG,KAAA2H,GAAe,wXAjEhCC,EAAA,CAAAC,EAAS,CAAEC,KAAMC,UAMjBC,EAAA,CAAAH,EAAS,CAAEC,KAAMG,WAIjBC,EAAA,CAAAL,EAAS,CAAEC,KAAMG,WAIjBE,EAAA,CAAAN,EAAS,CAAEC,KAAMG,WAOjBG,EAAA,CAAAC,KAMAC,EAAA,CAAAT,EAAS,CAAEC,KAAMG,WAIjBM,EAAA,CAAAV,EAAS,CAAEC,KAAMG,WAOjBO,EAAA,CAAAH,QAIAR,EAAS,CAAEC,KAAMG,QAASQ,SAAS,QAInCZ,EAAS,CAAEC,KAAMG,QAASQ,SAAS,KAMnCC,EAAA,CAAAL,KAMAM,EAAA,CAAAN,QAGAR,EAAS,CAAEC,KAAMC,OAAQU,SAAS,KAGlCG,EAAA,CAAAf,EAAS,CAAEC,KAAMC,OAAQU,SAAS,EAAMI,UAAW,mBA/DpDC,EAAAlJ,EAAA,KAAAgI,EAAA,CAAAvG,KAAA,WAAA0H,KAAA,QAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,UAAAA,EAAAC,IAAAD,GAAAA,EAASrJ,MAAKiG,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAALrJ,MAAKA,CAAA,GAAAuJ,SAAAC,GAAArD,EAAAC,GAMd4C,EAAAlJ,EAAA,KAAAoI,EAAA,CAAA3G,KAAA,WAAA0H,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAAShJ,SAAQ4F,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAARhJ,SAAQL,CAAA,GAAAuJ,SAAAC,GAAAnD,EAAAC,GAIjB0C,EAAAlJ,EAAA,KAAAsI,EAAA,CAAA7G,KAAA,WAAA0H,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAAS9I,SAAQ0F,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAR9I,SAAQP,CAAA,GAAAuJ,SAAAC,GAAAjD,EAAAC,IAIjBwC,EAAAlJ,EAAA,KAAAuI,EAAA,CAAA9G,KAAA,WAAA0H,KAAA,iBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAAS5I,eAAcwF,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAd5I,eAAcT,CAAA,GAAAuJ,SAAAC,GAAA/C,GAAAC,IAOvBsC,EAAAlJ,EAAA,KAAAwI,EAAA,CAAA/G,KAAA,WAAA0H,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAAS1I,YAAWsF,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAX1I,YAAWX,CAAA,GAAAuJ,SAAAC,GAAA7C,GAAAC,IAMpBoC,EAAAlJ,EAAA,KAAA0I,EAAA,CAAAjH,KAAA,WAAA0H,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASxI,SAAQoF,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAARxI,SAAQb,CAAA,GAAAuJ,SAAAC,GAAA3C,GAAAC,IAIjBkC,EAAAlJ,EAAA,KAAA2I,EAAA,CAAAlH,KAAA,WAAA0H,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAAStI,UAASkF,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAATtI,UAASf,CAAA,GAAAuJ,SAAAC,GAAAzC,GAAAC,IAOlBgC,EAAAlJ,EAAA,KAAA4I,EAAA,CAAAnH,KAAA,WAAA0H,KAAA,OAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAASpI,KAAIgF,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAJpI,KAAIjB,CAAA,GAAAuJ,SAAAC,GAAAvC,GAAAC,IAIb8B,EAAAlJ,EAAA,KAAA2J,EAAA,CAAAlI,KAAA,WAAA0H,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAASlI,cAAa8E,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAblI,cAAanB,CAAA,GAAAuJ,SAAAC,GAAArC,GAAAC,IAItB4B,EAAAlJ,EAAA,KAAA4J,EAAA,CAAAnI,KAAA,WAAA0H,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAAShI,SAAQ4E,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAARhI,SAAQrB,CAAA,GAAAuJ,SAAAC,GAAAnC,GAAAC,IAMjB0B,EAAAlJ,EAAA,KAAA8I,EAAA,CAAArH,KAAA,WAAA0H,KAAA,OAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAAS9H,KAAI0E,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAJ9H,KAAIvB,CAAA,GAAAuJ,SAAAC,GAAAjC,GAAAC,IAMbwB,EAAAlJ,EAAA,KAAA+I,EAAA,CAAAtH,KAAA,WAAA0H,KAAA,UAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAAS5H,QAAOwE,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAP5H,QAAOzB,CAAA,GAAAuJ,SAAAC,GAAA/B,GAAAC,IAGhBsB,EAAAlJ,EAAA,KAAA6J,EAAA,CAAApI,KAAA,WAAA0H,KAAA,OAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAAkB1H,KAAIsE,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAJ1H,KAAI3B,CAAA,GAAAuJ,SAAAC,GAAA7B,GAAAC,IAGtBoB,EAAAlJ,EAAA,KAAAgJ,EAAA,CAAAvH,KAAA,WAAA0H,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA7F,IAAA8F,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAkBxH,aAAYoE,IAAA,CAAAoD,EAAArJ,KAAAqJ,EAAZxH,aAAY7B,CAAA,GAAAuJ,SAAAC,GAAA3B,GAAA+B,IArEhCZ,EAAA,KAAAa,EAAA,CAAA7J,MAAAF,GAAAgK,EAAA,CAAAvI,KAAA,QAAA0H,KAAAnJ,EAAAmJ,KAAAM,SAAAC,GAAA,KAAAO,iHACkBjK,EAAAkK,OAASC,EAAUC,GADxBhE,EAAApG,EAAAiK,MAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as i,c as
|
|
1
|
+
import{_ as e,a as t,b as i,c as o,d as n}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as a,x as r,o as s}from"../../../vendor/lit-html-fDTfWwFR.js";import{i as d,a as l,t as c,r as m,n as h}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as u}from"../../../vendor/lit-element-DxLLCKb1.js";import"../checkbox/checkbox.js";import"../checkbox/checkboxGroup.js";import"../checkbox/checkboxSubgroup.js";import"../button/button.js";import{i as p,c as v}from"../../../vendor/@kyndryl-design-system/shidoka-icons-DALQfz_R.js";import"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../../../common/mixins/form-input.js";import"../textInput/textInput.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var g=d`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -102,12 +102,21 @@ dialog.ai-connected.gradient-bkg {
|
|
|
102
102
|
:host .menu-item[disabled] .menu-item-inner-el {
|
|
103
103
|
color: var(--kd-color-text-level-disabled);
|
|
104
104
|
}
|
|
105
|
+
:host .menu-item[disabled][selected] .menu-item-inner-el {
|
|
106
|
+
color: var(--kd-color-text-level-disabled);
|
|
107
|
+
}
|
|
105
108
|
:host .menu-item[disabled], :host .menu-item[disabled] * {
|
|
106
109
|
cursor: not-allowed;
|
|
107
110
|
}
|
|
108
111
|
:host .menu-item[disabled]:hover {
|
|
109
112
|
background-color: var(--kd-color-background-menu-state-default);
|
|
110
113
|
}
|
|
114
|
+
:host .menu-item[disabled]:hover .menu-item-inner-el {
|
|
115
|
+
color: var(--kd-color-text-level-disabled);
|
|
116
|
+
}
|
|
117
|
+
:host .menu-item[disabled]:hover slot[name=icon]::slotted(span) {
|
|
118
|
+
color: var(--kd-color-icon-disabled);
|
|
119
|
+
}
|
|
111
120
|
:host .menu-item[disabled]:focus, :host .menu-item[disabled]:focus-within, :host .menu-item[disabled]:focus-visible {
|
|
112
121
|
outline: none;
|
|
113
122
|
border: none;
|
|
@@ -206,12 +215,21 @@ dialog.ai-connected.gradient-bkg {
|
|
|
206
215
|
:host .menu-item.ai-connected[disabled] .menu-item-inner-el {
|
|
207
216
|
color: var(--kd-color-text-level-disabled);
|
|
208
217
|
}
|
|
218
|
+
:host .menu-item.ai-connected[disabled][selected] .menu-item-inner-el {
|
|
219
|
+
color: var(--kd-color-text-level-disabled);
|
|
220
|
+
}
|
|
209
221
|
:host .menu-item.ai-connected[disabled], :host .menu-item.ai-connected[disabled] * {
|
|
210
222
|
cursor: not-allowed;
|
|
211
223
|
}
|
|
212
224
|
:host .menu-item.ai-connected[disabled]:hover {
|
|
213
225
|
background-color: var(--kd-color-background-menu-state-ai-default);
|
|
214
226
|
}
|
|
227
|
+
:host .menu-item.ai-connected[disabled]:hover .menu-item-inner-el {
|
|
228
|
+
color: var(--kd-color-text-level-disabled);
|
|
229
|
+
}
|
|
230
|
+
:host .menu-item.ai-connected[disabled]:hover slot[name=icon]::slotted(span) {
|
|
231
|
+
color: var(--kd-color-icon-disabled);
|
|
232
|
+
}
|
|
215
233
|
:host .menu-item.destructive {
|
|
216
234
|
color: var(--kd-color-text-variant-destructive);
|
|
217
235
|
border-top: 1px solid var(--kd-color-border-level-tertiary);
|
|
@@ -220,14 +238,27 @@ dialog.ai-connected.gradient-bkg {
|
|
|
220
238
|
color: var(--kd-color-text-variant-destructive);
|
|
221
239
|
}
|
|
222
240
|
:host .menu-item.destructive:hover {
|
|
223
|
-
background-color: var(--kd-color-status-error-
|
|
241
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
242
|
+
}
|
|
243
|
+
:host .menu-item.destructive:hover .menu-item-inner-el {
|
|
244
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
245
|
+
}
|
|
246
|
+
:host .menu-item.destructive:active {
|
|
247
|
+
background-color: var(--kd-color-background-button-primary-destructive-pressed) !important;
|
|
248
|
+
outline: none;
|
|
249
|
+
}
|
|
250
|
+
:host .menu-item.destructive:active .menu-item-inner-el {
|
|
251
|
+
color: var(--kd-color-text-button-dark-destructive) !important;
|
|
224
252
|
}
|
|
225
253
|
:host .menu-item.destructive:focus-visible {
|
|
226
|
-
outline: 2px solid var(--kd-color-border-button-primary-destructive-default);
|
|
227
|
-
background-color: var(--kd-color-status-error-
|
|
254
|
+
outline: 2px solid var(--kd-color-border-button-primary-destructive-default) !important;
|
|
255
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
228
256
|
}
|
|
229
257
|
:host .menu-item.destructive:focus-visible .menu-item-inner-el {
|
|
230
|
-
color: var(--kd-color-text-level-primary);
|
|
258
|
+
color: var(--kd-color-text-level-primary) !important;
|
|
259
|
+
}
|
|
260
|
+
:host .menu-item.destructive:focus-visible:hover .menu-item-inner-el {
|
|
261
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
231
262
|
}
|
|
232
263
|
|
|
233
264
|
:host .menu-item:active,
|
|
@@ -472,7 +503,7 @@ dialog.ai-connected.gradient-bkg {
|
|
|
472
503
|
|
|
473
504
|
.enhanced-option[multiple] .content {
|
|
474
505
|
align-items: flex-start;
|
|
475
|
-
}`;let k=(()=>{var d,k,b,f,y,x,w,z,$,S,j,M,W,I,C;let E,O,T,B,A,P,N,R,D,U,q,F,G,L,_,H,J,K=[c("kyn-enhanced-dropdown-option")],Q=[],V=u,X=[],Y=[],Z=[],ee=[],te=[],ie=[],
|
|
506
|
+
}`;let k=(()=>{var d,k,b,f,y,x,w,z,$,S,j,M,W,I,C;let E,O,T,B,A,P,N,R,D,U,q,F,G,L,_,H,J,K=[c("kyn-enhanced-dropdown-option")],Q=[],V=u,X=[],Y=[],Z=[],ee=[],te=[],ie=[],oe=[],ne=[],ae=[],re=[],se=[],de=[],le=[],ce=[],me=[],he=[],ue=[],pe=[],ve=[],ge=[],ke=[],be=[],fe=[],ye=[],xe=[],we=[],ze=[],$e=[],Se=[],je=[];return O=class extends V{get value(){return o(this,d,"f")}set value(e){n(this,d,e,"f")}get selected(){return o(this,k,"f")}set selected(e){n(this,k,e,"f")}get disabled(){return o(this,b,"f")}set disabled(e){n(this,b,e,"f")}get readonly(){return o(this,f,"f")}set readonly(e){n(this,f,e,"f")}get allowAddOption(){return o(this,y,"f")}set allowAddOption(e){n(this,y,e,"f")}get highlighted(){return o(this,x,"f")}set highlighted(e){n(this,x,e,"f")}get multiple(){return o(this,w,"f")}set multiple(e){n(this,w,e,"f")}get removable(){return o(this,z,"f")}set removable(e){n(this,z,e,"f")}get indeterminate(){return o(this,$,"f")}set indeterminate(e){n(this,$,e,"f")}get role(){return o(this,S,"f")}set role(e){n(this,S,e,"f")}get ariaSelected(){return o(this,j,"f")}set ariaSelected(e){n(this,j,e,"f")}get text(){return o(this,M,"f")}set text(e){n(this,M,e,"f")}get displayText(){return o(this,W,"f")}set displayText(e){n(this,W,e,"f")}get hasIcon(){return o(this,I,"f")}set hasIcon(e){n(this,I,e,"f")}get kind(){return o(this,C,"f")}set kind(e){n(this,C,e,"f")}render(){const e={"enhanced-option":!0,"menu-item":!0,"option-is-readonly":this.readonly,"ai-connected":"ai"===this.kind};return r`
|
|
476
507
|
<div
|
|
477
508
|
class=${a(e)}
|
|
478
509
|
?highlighted=${this.highlighted}
|
|
@@ -484,7 +515,7 @@ dialog.ai-connected.gradient-bkg {
|
|
|
484
515
|
@pointerup=${this.onClick}
|
|
485
516
|
@blur=${this.onBlur}
|
|
486
517
|
>
|
|
487
|
-
${this.multiple?
|
|
518
|
+
${this.multiple?r`
|
|
488
519
|
<kyn-checkbox
|
|
489
520
|
.checked=${this.selected}
|
|
490
521
|
.indeterminate=${this.indeterminate}
|
|
@@ -505,7 +536,7 @@ dialog.ai-connected.gradient-bkg {
|
|
|
505
536
|
<div class="menu-item-inner-el text">
|
|
506
537
|
<div class="title-content">
|
|
507
538
|
<slot name="title" @slotchange=${this.onTitleSlotChange}></slot>
|
|
508
|
-
${this.selected?null:
|
|
539
|
+
${this.selected?null:r`<span class="tag-container"
|
|
509
540
|
><slot name="tag"></slot
|
|
510
541
|
></span>`}
|
|
511
542
|
</div>
|
|
@@ -519,9 +550,9 @@ dialog.ai-connected.gradient-bkg {
|
|
|
519
550
|
</div>
|
|
520
551
|
|
|
521
552
|
<div class="status-icons">
|
|
522
|
-
${!this.multiple&&this.selected?
|
|
523
|
-
>${
|
|
524
|
-
>`:this.allowAddOption&&this.removable?
|
|
553
|
+
${!this.multiple&&this.selected?r`<span class="menu-item-inner-el check-icon"
|
|
554
|
+
>${s(p)}</span
|
|
555
|
+
>`:this.allowAddOption&&this.removable?r`
|
|
525
556
|
<kyn-button
|
|
526
557
|
kind=${"ai"===this.kind?"ghost-ai":"ghost"}
|
|
527
558
|
size="small"
|
|
@@ -530,10 +561,10 @@ dialog.ai-connected.gradient-bkg {
|
|
|
530
561
|
@click=${this.onRemove}
|
|
531
562
|
@mousedown=${e=>e.stopPropagation()}
|
|
532
563
|
>
|
|
533
|
-
<span slot="icon">${
|
|
564
|
+
<span slot="icon">${s(v)}</span>
|
|
534
565
|
</kyn-button>
|
|
535
566
|
`:null}
|
|
536
567
|
</div>
|
|
537
568
|
</div>
|
|
538
|
-
`}firstUpdated(){this.hasIcon=this.iconSlot.assignedNodes({flatten:!0}).length>0;const e=this.closest("kyn-dropdown");e&&(this.kind=e.kind,e.addEventListener("kind-changed",(e=>{this.kind=e.detail})))}onIconSlotChange(){this.hasIcon=this.iconSlot.assignedNodes({flatten:!0}).length>0}willUpdate(e){e.has("selected")&&(this.ariaSelected=this.selected.toString())}get iconSlot(){return this.shadowRoot.querySelector('slot[name="icon"]')}onTitleSlotChange(e){const t=e.target.assignedNodes({flatten:!0}).map((e=>{var t,i;return null!==(i=null===(t=e.textContent)||void 0===t?void 0:t.trim())&&void 0!==i?i:""})).join(" ");this.displayText=t,this.text=t}onClick(e){this.disabled||this.readonly?e.stopPropagation():(this.selected=!this.multiple||!this.selected,this.dispatchEvent(new CustomEvent("on-click",{bubbles:!0,composed:!0,detail:{selected:this.selected,value:this.value,origEvent:e}})))}onRemove(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("on-remove-option",{bubbles:!0,composed:!0,detail:{value:this.value}}))}onBlur(e){this.dispatchEvent(new CustomEvent("on-blur",{bubbles:!0,composed:!0,detail:{origEvent:e}}))}constructor(){super(...arguments),d.set(this,i(this,X,"")),k.set(this,(i(this,Y),i(this,Z,!1))),b.set(this,(i(this,ee),i(this,te,!1))),f.set(this,(i(this,ie),i(this,
|
|
569
|
+
`}firstUpdated(){this.hasIcon=this.iconSlot.assignedNodes({flatten:!0}).length>0;const e=this.closest("kyn-dropdown");e&&(this.kind=e.kind,e.addEventListener("kind-changed",(e=>{this.kind=e.detail})))}onIconSlotChange(){this.hasIcon=this.iconSlot.assignedNodes({flatten:!0}).length>0}willUpdate(e){e.has("selected")&&(this.ariaSelected=this.selected.toString())}get iconSlot(){return this.shadowRoot.querySelector('slot[name="icon"]')}onTitleSlotChange(e){const t=e.target.assignedNodes({flatten:!0}).map((e=>{var t,i;return null!==(i=null===(t=e.textContent)||void 0===t?void 0:t.trim())&&void 0!==i?i:""})).join(" ");this.displayText=t,this.text=t}onClick(e){this.disabled||this.readonly?e.stopPropagation():(this.selected=!this.multiple||!this.selected,this.dispatchEvent(new CustomEvent("on-click",{bubbles:!0,composed:!0,detail:{selected:this.selected,value:this.value,origEvent:e}})))}onRemove(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("on-remove-option",{bubbles:!0,composed:!0,detail:{value:this.value}}))}onBlur(e){this.dispatchEvent(new CustomEvent("on-blur",{bubbles:!0,composed:!0,detail:{origEvent:e}}))}constructor(){super(...arguments),d.set(this,i(this,X,"")),k.set(this,(i(this,Y),i(this,Z,!1))),b.set(this,(i(this,ee),i(this,te,!1))),f.set(this,(i(this,ie),i(this,oe,!1))),y.set(this,(i(this,ne),i(this,ae,!1))),x.set(this,(i(this,re),i(this,se,!1))),w.set(this,(i(this,de),i(this,le,!1))),z.set(this,(i(this,ce),i(this,me,!1))),$.set(this,(i(this,he),i(this,ue,!1))),S.set(this,(i(this,pe),i(this,ve,"option"))),j.set(this,(i(this,ge),i(this,ke,"option"))),M.set(this,(i(this,be),i(this,fe,""))),W.set(this,(i(this,ye),i(this,xe,""))),I.set(this,(i(this,we),i(this,ze,!1))),C.set(this,(i(this,$e),i(this,Se,"default"))),i(this,je)}},d=new WeakMap,k=new WeakMap,b=new WeakMap,f=new WeakMap,y=new WeakMap,x=new WeakMap,w=new WeakMap,z=new WeakMap,$=new WeakMap,S=new WeakMap,j=new WeakMap,M=new WeakMap,W=new WeakMap,I=new WeakMap,C=new WeakMap,e(O,"EnhancedDropdownOption"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=V[Symbol.metadata])&&void 0!==e?e:null):void 0;T=[h({type:String})],B=[h({type:Boolean,reflect:!0})],A=[h({type:Boolean})],P=[h({type:Boolean,reflect:!0})],N=[h({type:Boolean})],R=[l()],D=[h({type:Boolean})],U=[h({type:Boolean})],q=[h({type:Boolean,reflect:!0})],F=[h({type:String,reflect:!0})],G=[h({type:String,reflect:!0,attribute:"aria-selected"})],L=[l()],_=[l()],H=[l()],J=[l()],t(O,null,T,{kind:"accessor",name:"value",static:!1,private:!1,access:{has:e=>"value"in e,get:e=>e.value,set:(e,t)=>{e.value=t}},metadata:i},X,Y),t(O,null,B,{kind:"accessor",name:"selected",static:!1,private:!1,access:{has:e=>"selected"in e,get:e=>e.selected,set:(e,t)=>{e.selected=t}},metadata:i},Z,ee),t(O,null,A,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:e=>"disabled"in e,get:e=>e.disabled,set:(e,t)=>{e.disabled=t}},metadata:i},te,ie),t(O,null,P,{kind:"accessor",name:"readonly",static:!1,private:!1,access:{has:e=>"readonly"in e,get:e=>e.readonly,set:(e,t)=>{e.readonly=t}},metadata:i},oe,ne),t(O,null,N,{kind:"accessor",name:"allowAddOption",static:!1,private:!1,access:{has:e=>"allowAddOption"in e,get:e=>e.allowAddOption,set:(e,t)=>{e.allowAddOption=t}},metadata:i},ae,re),t(O,null,R,{kind:"accessor",name:"highlighted",static:!1,private:!1,access:{has:e=>"highlighted"in e,get:e=>e.highlighted,set:(e,t)=>{e.highlighted=t}},metadata:i},se,de),t(O,null,D,{kind:"accessor",name:"multiple",static:!1,private:!1,access:{has:e=>"multiple"in e,get:e=>e.multiple,set:(e,t)=>{e.multiple=t}},metadata:i},le,ce),t(O,null,U,{kind:"accessor",name:"removable",static:!1,private:!1,access:{has:e=>"removable"in e,get:e=>e.removable,set:(e,t)=>{e.removable=t}},metadata:i},me,he),t(O,null,q,{kind:"accessor",name:"indeterminate",static:!1,private:!1,access:{has:e=>"indeterminate"in e,get:e=>e.indeterminate,set:(e,t)=>{e.indeterminate=t}},metadata:i},ue,pe),t(O,null,F,{kind:"accessor",name:"role",static:!1,private:!1,access:{has:e=>"role"in e,get:e=>e.role,set:(e,t)=>{e.role=t}},metadata:i},ve,ge),t(O,null,G,{kind:"accessor",name:"ariaSelected",static:!1,private:!1,access:{has:e=>"ariaSelected"in e,get:e=>e.ariaSelected,set:(e,t)=>{e.ariaSelected=t}},metadata:i},ke,be),t(O,null,L,{kind:"accessor",name:"text",static:!1,private:!1,access:{has:e=>"text"in e,get:e=>e.text,set:(e,t)=>{e.text=t}},metadata:i},fe,ye),t(O,null,_,{kind:"accessor",name:"displayText",static:!1,private:!1,access:{has:e=>"displayText"in e,get:e=>e.displayText,set:(e,t)=>{e.displayText=t}},metadata:i},xe,we),t(O,null,H,{kind:"accessor",name:"hasIcon",static:!1,private:!1,access:{has:e=>"hasIcon"in e,get:e=>e.hasIcon,set:(e,t)=>{e.hasIcon=t}},metadata:i},ze,$e),t(O,null,J,{kind:"accessor",name:"kind",static:!1,private:!1,access:{has:e=>"kind"in e,get:e=>e.kind,set:(e,t)=>{e.kind=t}},metadata:i},Se,je),t(null,E={value:O},K,{kind:"class",name:O.name,metadata:i},null,Q),O=E.value,i&&Object.defineProperty(O,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),O.styles=m(g),i(O,Q),O})();export{k as EnhancedDropdownOption};
|
|
539
570
|
//# sourceMappingURL=enhancedDropdownOption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancedDropdownOption.js","sources":["../../../../src/components/reusable/dropdown/enhancedDropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport EnhancedDropdownOptionScss from './enhancedDropdownOption.scss?inline';\n\n/**\n * Enhanced Dropdown option with rich content support.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n * @slot title - Slot for option title text.\n * @slot tag - Slot for inline tag appended to title.\n * @slot description - Slot for option description text.\n * @slot optionType - Slot for option type label.\n * @slot unnamed - Fallback slot for simple text content.\n */\n@customElement('kyn-enhanced-dropdown-option')\nexport class EnhancedDropdownOption extends LitElement {\n static override styles = unsafeCSS(EnhancedDropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean, reflect: true })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Readonly state (from parent). Option stays focusable but not selectable. */\n @property({ type: Boolean, reflect: true })\n accessor readonly = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** ARIA role for the option, defaults to 'option'. */\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n /** ARIA selected must mirror `selected`. */\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'option';\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /**\n * Title text for display purposes, automatically derived.\n * @ignore\n */\n @state()\n accessor displayText: any = '';\n\n /**\n * Whether the icon slot has content.\n * @ignore\n */\n @state()\n accessor hasIcon = false;\n\n /** Kind of the item, derived from parent. */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n override render() {\n const classes = {\n 'enhanced-option': true,\n 'menu-item': true,\n 'option-is-readonly': this.readonly,\n 'ai-connected': this.kind === 'ai',\n };\n\n return html`\n <div\n class=${classMap(classes)}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n aria-disabled=${this.disabled || this.readonly ? 'true' : 'false'}\n title=${this.text}\n @pointerup=${this.onClick}\n @blur=${this.onBlur}\n >\n ${this.multiple\n ? html`\n <kyn-checkbox\n .checked=${this.selected}\n .indeterminate=${this.indeterminate}\n ?disabled=${this.disabled}\n notFocusable\n value=${this.value}\n ></kyn-checkbox>\n `\n : null}\n\n <div class=\"content\">\n <div\n class=\"menu-item-inner-el icon-container\"\n style=${this.hasIcon ? '' : 'display:none'}\n >\n <slot name=\"icon\" @slotchange=${this.onIconSlotChange}></slot>\n </div>\n\n <div class=\"menu-item-inner-el text\">\n <div class=\"title-content\">\n <slot name=\"title\" @slotchange=${this.onTitleSlotChange}></slot>\n ${!this.selected\n ? html`<span class=\"tag-container\"\n ><slot name=\"tag\"></slot\n ></span>`\n : null}\n </div>\n <div class=\"description-container\">\n <slot name=\"description\"></slot>\n </div>\n <div class=\"option-type-container\">\n <slot name=\"optionType\"></slot>\n </div>\n </div>\n </div>\n\n <div class=\"status-icons\">\n ${!this.multiple && this.selected\n ? html`<span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >`\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n kind=${this.kind === 'ai' ? 'ghost-ai' : 'ghost'}\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n ?disabled=${this.disabled}\n @click=${this.onRemove}\n @mousedown=${(e: Event) => e.stopPropagation()}\n >\n <span slot=\"icon\">${unsafeSVG(clearIcon)}</span>\n </kyn-button>\n `\n : null}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // derive whether icon slot has content\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n\n // sync kind from parent and listen for changes\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n private onIconSlotChange() {\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n }\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n }\n\n private get iconSlot(): HTMLSlotElement {\n return this.shadowRoot!.querySelector(\n 'slot[name=\"icon\"]'\n )! as HTMLSlotElement;\n }\n\n private onTitleSlotChange(e: Event) {\n const titleText = (e.target as HTMLSlotElement)\n .assignedNodes({ flatten: true })\n .map((n) => n.textContent?.trim() ?? '')\n .join(' ');\n this.displayText = titleText;\n this.text = titleText;\n }\n\n private onClick(e: PointerEvent) {\n if (this.disabled || this.readonly) {\n e.stopPropagation();\n return;\n }\n this.selected = this.multiple ? !this.selected : true;\n this.dispatchEvent(\n new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: { selected: this.selected, value: this.value, origEvent: e },\n })\n );\n }\n\n private onRemove(e: Event) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n })\n );\n }\n\n private onBlur(e: FocusEvent) {\n this.dispatchEvent(\n new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: { origEvent: e },\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-enhanced-dropdown-option': EnhancedDropdownOption;\n }\n}\n"],"names":["EnhancedDropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_EnhancedDropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_EnhancedDropdownOption_selected_accessor_storage","disabled","_EnhancedDropdownOption_disabled_accessor_storage","readonly","_EnhancedDropdownOption_readonly_accessor_storage","allowAddOption","_EnhancedDropdownOption_allowAddOption_accessor_storage","highlighted","_EnhancedDropdownOption_highlighted_accessor_storage","multiple","_EnhancedDropdownOption_multiple_accessor_storage","removable","_EnhancedDropdownOption_removable_accessor_storage","indeterminate","_EnhancedDropdownOption_indeterminate_accessor_storage","role","_EnhancedDropdownOption_role_accessor_storage","ariaSelected","_EnhancedDropdownOption_ariaSelected_accessor_storage","text","_EnhancedDropdownOption_text_accessor_storage","displayText","_EnhancedDropdownOption_displayText_accessor_storage","hasIcon","_EnhancedDropdownOption_hasIcon_accessor_storage","kind","_EnhancedDropdownOption_kind_accessor_storage","render","classes","html","classMap","onClick","onBlur","onIconSlotChange","onTitleSlotChange","unsafeSVG","checkIcon","onRemove","e","stopPropagation","clearIcon","firstUpdated","iconSlot","assignedNodes","flatten","length","parent","closest","addEventListener","detail","willUpdate","changed","has","toString","shadowRoot","querySelector","titleText","target","map","n","_a","_b","textContent","trim","join","dispatchEvent","CustomEvent","bubbles","composed","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_readonly_initializers","_readonly_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_ariaSelected_extraInitializers","_text_initializers","_text_extraInitializers","_displayText_initializers","_displayText_extraInitializers","_hasIcon_initializers","_hasIcon_extraInitializers","_kind_initializers","_value_decorators","property","type","String","Boolean","reflect","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_ariaSelected_decorators","attribute","_text_decorators","_displayText_decorators","_hasIcon_decorators","_kind_decorators","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_selected_decorators","_readonly_decorators","_indeterminate_decorators","_role_decorators","_kind_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","EnhancedDropdownOptionScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enhancedDropdownOption.js","sources":["../../../../src/components/reusable/dropdown/enhancedDropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport EnhancedDropdownOptionScss from './enhancedDropdownOption.scss?inline';\n\n/**\n * Enhanced Dropdown option with rich content support.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n * @slot title - Slot for option title text.\n * @slot tag - Slot for inline tag appended to title.\n * @slot description - Slot for option description text.\n * @slot optionType - Slot for option type label.\n * @slot unnamed - Fallback slot for simple text content.\n */\n@customElement('kyn-enhanced-dropdown-option')\nexport class EnhancedDropdownOption extends LitElement {\n static override styles = unsafeCSS(EnhancedDropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean, reflect: true })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Readonly state (from parent). Option stays focusable but not selectable. */\n @property({ type: Boolean, reflect: true })\n accessor readonly = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** ARIA role for the option, defaults to 'option'. */\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n /** ARIA selected must mirror `selected`. */\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'option';\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /**\n * Title text for display purposes, automatically derived.\n * @ignore\n */\n @state()\n accessor displayText: any = '';\n\n /**\n * Whether the icon slot has content.\n * @ignore\n */\n @state()\n accessor hasIcon = false;\n\n /** Kind of the item, derived from parent. */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n override render() {\n const classes = {\n 'enhanced-option': true,\n 'menu-item': true,\n 'option-is-readonly': this.readonly,\n 'ai-connected': this.kind === 'ai',\n };\n\n return html`\n <div\n class=${classMap(classes)}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n ?readonly=${!this.disabled && this.readonly}\n aria-disabled=${this.disabled || this.readonly ? 'true' : 'false'}\n title=${this.text}\n @pointerup=${this.onClick}\n @blur=${this.onBlur}\n >\n ${this.multiple\n ? html`\n <kyn-checkbox\n .checked=${this.selected}\n .indeterminate=${this.indeterminate}\n ?disabled=${this.disabled}\n notFocusable\n value=${this.value}\n ></kyn-checkbox>\n `\n : null}\n\n <div class=\"content\">\n <div\n class=\"menu-item-inner-el icon-container\"\n style=${this.hasIcon ? '' : 'display:none'}\n >\n <slot name=\"icon\" @slotchange=${this.onIconSlotChange}></slot>\n </div>\n\n <div class=\"menu-item-inner-el text\">\n <div class=\"title-content\">\n <slot name=\"title\" @slotchange=${this.onTitleSlotChange}></slot>\n ${!this.selected\n ? html`<span class=\"tag-container\"\n ><slot name=\"tag\"></slot\n ></span>`\n : null}\n </div>\n <div class=\"description-container\">\n <slot name=\"description\"></slot>\n </div>\n <div class=\"option-type-container\">\n <slot name=\"optionType\"></slot>\n </div>\n </div>\n </div>\n\n <div class=\"status-icons\">\n ${!this.multiple && this.selected\n ? html`<span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >`\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n kind=${this.kind === 'ai' ? 'ghost-ai' : 'ghost'}\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n ?disabled=${this.disabled}\n @click=${this.onRemove}\n @mousedown=${(e: Event) => e.stopPropagation()}\n >\n <span slot=\"icon\">${unsafeSVG(clearIcon)}</span>\n </kyn-button>\n `\n : null}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // derive whether icon slot has content\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n\n // sync kind from parent and listen for changes\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n private onIconSlotChange() {\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n }\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n }\n\n private get iconSlot(): HTMLSlotElement {\n return this.shadowRoot!.querySelector(\n 'slot[name=\"icon\"]'\n )! as HTMLSlotElement;\n }\n\n private onTitleSlotChange(e: Event) {\n const titleText = (e.target as HTMLSlotElement)\n .assignedNodes({ flatten: true })\n .map((n) => n.textContent?.trim() ?? '')\n .join(' ');\n this.displayText = titleText;\n this.text = titleText;\n }\n\n private onClick(e: PointerEvent) {\n if (this.disabled || this.readonly) {\n e.stopPropagation();\n return;\n }\n this.selected = this.multiple ? !this.selected : true;\n this.dispatchEvent(\n new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: { selected: this.selected, value: this.value, origEvent: e },\n })\n );\n }\n\n private onRemove(e: Event) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n })\n );\n }\n\n private onBlur(e: FocusEvent) {\n this.dispatchEvent(\n new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: { origEvent: e },\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-enhanced-dropdown-option': EnhancedDropdownOption;\n }\n}\n"],"names":["EnhancedDropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_EnhancedDropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_EnhancedDropdownOption_selected_accessor_storage","disabled","_EnhancedDropdownOption_disabled_accessor_storage","readonly","_EnhancedDropdownOption_readonly_accessor_storage","allowAddOption","_EnhancedDropdownOption_allowAddOption_accessor_storage","highlighted","_EnhancedDropdownOption_highlighted_accessor_storage","multiple","_EnhancedDropdownOption_multiple_accessor_storage","removable","_EnhancedDropdownOption_removable_accessor_storage","indeterminate","_EnhancedDropdownOption_indeterminate_accessor_storage","role","_EnhancedDropdownOption_role_accessor_storage","ariaSelected","_EnhancedDropdownOption_ariaSelected_accessor_storage","text","_EnhancedDropdownOption_text_accessor_storage","displayText","_EnhancedDropdownOption_displayText_accessor_storage","hasIcon","_EnhancedDropdownOption_hasIcon_accessor_storage","kind","_EnhancedDropdownOption_kind_accessor_storage","render","classes","html","classMap","onClick","onBlur","onIconSlotChange","onTitleSlotChange","unsafeSVG","checkIcon","onRemove","e","stopPropagation","clearIcon","firstUpdated","iconSlot","assignedNodes","flatten","length","parent","closest","addEventListener","detail","willUpdate","changed","has","toString","shadowRoot","querySelector","titleText","target","map","n","_a","_b","textContent","trim","join","dispatchEvent","CustomEvent","bubbles","composed","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_readonly_initializers","_readonly_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_ariaSelected_extraInitializers","_text_initializers","_text_extraInitializers","_displayText_initializers","_displayText_extraInitializers","_hasIcon_initializers","_hasIcon_extraInitializers","_kind_initializers","_value_decorators","property","type","String","Boolean","reflect","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_ariaSelected_decorators","attribute","_text_decorators","_displayText_decorators","_hasIcon_decorators","_kind_decorators","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_selected_decorators","_readonly_decorators","_indeterminate_decorators","_role_decorators","_kind_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","EnhancedDropdownOptionScss"],"mappings":"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"}
|
|
@@ -102,12 +102,21 @@ dialog.ai-connected.gradient-bkg {
|
|
|
102
102
|
:host .menu-item[disabled] .menu-item-inner-el {
|
|
103
103
|
color: var(--kd-color-text-level-disabled);
|
|
104
104
|
}
|
|
105
|
+
:host .menu-item[disabled][selected] .menu-item-inner-el {
|
|
106
|
+
color: var(--kd-color-text-level-disabled);
|
|
107
|
+
}
|
|
105
108
|
:host .menu-item[disabled], :host .menu-item[disabled] * {
|
|
106
109
|
cursor: not-allowed;
|
|
107
110
|
}
|
|
108
111
|
:host .menu-item[disabled]:hover {
|
|
109
112
|
background-color: var(--kd-color-background-menu-state-default);
|
|
110
113
|
}
|
|
114
|
+
:host .menu-item[disabled]:hover .menu-item-inner-el {
|
|
115
|
+
color: var(--kd-color-text-level-disabled);
|
|
116
|
+
}
|
|
117
|
+
:host .menu-item[disabled]:hover slot[name=icon]::slotted(span) {
|
|
118
|
+
color: var(--kd-color-icon-disabled);
|
|
119
|
+
}
|
|
111
120
|
:host .menu-item[disabled]:focus, :host .menu-item[disabled]:focus-within, :host .menu-item[disabled]:focus-visible {
|
|
112
121
|
outline: none;
|
|
113
122
|
border: none;
|
|
@@ -206,12 +215,21 @@ dialog.ai-connected.gradient-bkg {
|
|
|
206
215
|
:host .menu-item.ai-connected[disabled] .menu-item-inner-el {
|
|
207
216
|
color: var(--kd-color-text-level-disabled);
|
|
208
217
|
}
|
|
218
|
+
:host .menu-item.ai-connected[disabled][selected] .menu-item-inner-el {
|
|
219
|
+
color: var(--kd-color-text-level-disabled);
|
|
220
|
+
}
|
|
209
221
|
:host .menu-item.ai-connected[disabled], :host .menu-item.ai-connected[disabled] * {
|
|
210
222
|
cursor: not-allowed;
|
|
211
223
|
}
|
|
212
224
|
:host .menu-item.ai-connected[disabled]:hover {
|
|
213
225
|
background-color: var(--kd-color-background-menu-state-ai-default);
|
|
214
226
|
}
|
|
227
|
+
:host .menu-item.ai-connected[disabled]:hover .menu-item-inner-el {
|
|
228
|
+
color: var(--kd-color-text-level-disabled);
|
|
229
|
+
}
|
|
230
|
+
:host .menu-item.ai-connected[disabled]:hover slot[name=icon]::slotted(span) {
|
|
231
|
+
color: var(--kd-color-icon-disabled);
|
|
232
|
+
}
|
|
215
233
|
:host .menu-item.destructive {
|
|
216
234
|
color: var(--kd-color-text-variant-destructive);
|
|
217
235
|
border-top: 1px solid var(--kd-color-border-level-tertiary);
|
|
@@ -220,14 +238,27 @@ dialog.ai-connected.gradient-bkg {
|
|
|
220
238
|
color: var(--kd-color-text-variant-destructive);
|
|
221
239
|
}
|
|
222
240
|
:host .menu-item.destructive:hover {
|
|
223
|
-
background-color: var(--kd-color-status-error-
|
|
241
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
242
|
+
}
|
|
243
|
+
:host .menu-item.destructive:hover .menu-item-inner-el {
|
|
244
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
245
|
+
}
|
|
246
|
+
:host .menu-item.destructive:active {
|
|
247
|
+
background-color: var(--kd-color-background-button-primary-destructive-pressed) !important;
|
|
248
|
+
outline: none;
|
|
249
|
+
}
|
|
250
|
+
:host .menu-item.destructive:active .menu-item-inner-el {
|
|
251
|
+
color: var(--kd-color-text-button-dark-destructive) !important;
|
|
224
252
|
}
|
|
225
253
|
:host .menu-item.destructive:focus-visible {
|
|
226
|
-
outline: 2px solid var(--kd-color-border-button-primary-destructive-default);
|
|
227
|
-
background-color: var(--kd-color-status-error-
|
|
254
|
+
outline: 2px solid var(--kd-color-border-button-primary-destructive-default) !important;
|
|
255
|
+
background-color: var(--kd-color-status-error-accent) !important;
|
|
228
256
|
}
|
|
229
257
|
:host .menu-item.destructive:focus-visible .menu-item-inner-el {
|
|
230
|
-
color: var(--kd-color-text-level-primary);
|
|
258
|
+
color: var(--kd-color-text-level-primary) !important;
|
|
259
|
+
}
|
|
260
|
+
:host .menu-item.destructive:focus-visible:hover .menu-item-inner-el {
|
|
261
|
+
color: var(--kd-color-status-error-foreground) !important;
|
|
231
262
|
}
|
|
232
263
|
|
|
233
264
|
:host .menu-item:active,
|
|
@@ -308,7 +339,7 @@ dialog.ai-connected.gradient-bkg {
|
|
|
308
339
|
width: 16px;
|
|
309
340
|
height: 16px;
|
|
310
341
|
pointer-events: none;
|
|
311
|
-
}`;let k=(()=>{var r,k,b,g,f,y,
|
|
342
|
+
}`;let k=(()=>{var r,k,b,g,f,x,y,w,_,T;let S,$,M,I,O,W,q,C,j,E,R,z,A=[s("kyn-overflow-menu-item")],L=[],D=h,K=[],B=[],F=[],H=[],P=[],U=[],N=[],Y=[],G=[],J=[],Q=[],V=[],X=[],Z=[],ee=[],te=[],oe=[],ne=[],ie=[],re=[];return $=class extends D{constructor(){super(...arguments),r.set(this,o(this,K,"")),k.set(this,(o(this,B),o(this,F,!1))),b.set(this,(o(this,H),o(this,P,!1))),g.set(this,(o(this,U),o(this,N,""))),f.set(this,(o(this,Y),o(this,G,[]))),x.set(this,(o(this,J),o(this,Q,null))),y.set(this,(o(this,V),o(this,X,!1))),w.set(this,(o(this,Z),o(this,ee,""))),_.set(this,(o(this,te),o(this,oe,"default"))),T.set(this,(o(this,ne),o(this,ie,void 0))),this._mo=(o(this,re),null)}get href(){return n(this,r,"f")}set href(e){i(this,r,e,"f")}get destructive(){return n(this,k,"f")}set destructive(e){i(this,k,e,"f")}get disabled(){return n(this,b,"f")}set disabled(e){i(this,b,e,"f")}get description(){return n(this,g,"f")}set description(e){i(this,g,e,"f")}get _menuItems(){return n(this,f,"f")}set _menuItems(e){i(this,f,e,"f")}get _menu(){return n(this,x,"f")}set _menu(e){i(this,x,e,"f")}get isTruncated(){return n(this,y,"f")}set isTruncated(e){i(this,y,e,"f")}get tooltipText(){return n(this,w,"f")}set tooltipText(e){i(this,w,e,"f")}get kind(){return n(this,_,"f")}set kind(e){i(this,_,e,"f")}get _submenuOpenTimer(){return n(this,T,"f")}set _submenuOpenTimer(e){i(this,T,e,"f")}get submenuEls(){return Array.from(this.querySelectorAll(':scope > [slot="submenu"]'))}get hasSubmenu(){return this.submenuEls.length>0}connectedCallback(){super.connectedCallback(),this._mo=new MutationObserver((()=>this.requestUpdate())),this._mo.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["slot"]})}disconnectedCallback(){var e;null===(e=this._mo)||void 0===e||e.disconnect(),this._mo=null,super.disconnectedCallback()}render(){const e={"overflow-menu-item":!0,"menu-item":!0,"ai-connected":"ai"===this.kind,destructive:this.destructive},t=this.isTruncated?this.tooltipText:"";return""!==this.href?m`
|
|
312
343
|
<a
|
|
313
344
|
class=${l(e)}
|
|
314
345
|
href=${this.href}
|
|
@@ -343,5 +374,5 @@ dialog.ai-connected.gradient-bkg {
|
|
|
343
374
|
${u(v)}
|
|
344
375
|
</span>`:null}
|
|
345
376
|
</button>
|
|
346
|
-
`}firstUpdated(){const e=this.closest("kyn-overflow-menu");e&&(this._menuItems=e.getMenuItems?e.getMenuItems():[],this._menu=e.getMenu?e.getMenu():null,"string"==typeof e.kind&&(this.kind=e.kind),e.addEventListener("kind-changed",(e=>{const t=e;requestAnimationFrame((()=>{this.kind=t.detail}))}))),this.checkOverflow()}handleClick(e){var t;const o=this.querySelector(':scope > [slot="submenu"]:not(kyn-overflow-menu-item)'),n=Array.from(this.querySelectorAll(':scope > kyn-overflow-menu-item[slot="submenu"]'));if(this.hasSubmenu){e.stopPropagation();const i=null!==(t=null==o?void 0:o.innerHTML)&&void 0!==t?t:n.map((e=>e.outerHTML)).join("");this.dispatchEvent(new CustomEvent("open-submenu",{detail:{html:i},bubbles:!0,composed:!0}))}else this.dispatchEvent(new CustomEvent("on-click",{detail:{origEvent:e},bubbles:!0,composed:!0}))}handleKeyDown(e){var t,o,n,i,r,a,s,d;const c=this._menuItems,l=this.getRootNode().activeElement,m=c.findIndex((e=>{if(e===l)return!0;const t=e.shadowRoot;return!!(t&&l&&t.contains(l))}));switch(e.keyCode){case 40:if(m<c.length-1&&m>=0){const e=c[m+1],i=null===(t=e.shadowRoot)||void 0===t?void 0:t.querySelector("button"),r=null===(o=e.shadowRoot)||void 0===o?void 0:o.querySelector("a");null===(n=null!=i?i:r)||void 0===n||n.focus()}return;case 38:if(m>0){const e=c[m-1],t=null===(i=e.shadowRoot)||void 0===i?void 0:i.querySelector("button"),o=null===(r=e.shadowRoot)||void 0===r?void 0:r.querySelector("a");null===(a=null!=t?t:o)||void 0===a||a.focus()}else 0===m&&(null===(d=null===(s=this._menu)||void 0===s?void 0:s.querySelector("button"))||void 0===d||d.focus());return;default:return}}checkOverflow(){var e,t;const o=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("button, a");o&&(this.isTruncated=o.scrollWidth>o.offsetWidth,this.isTruncated&&(this.tooltipText=(null!==(t=this.textContent)&&void 0!==t?t:"").trim()))}},r=new WeakMap,k=new WeakMap,b=new WeakMap,g=new WeakMap,f=new WeakMap,
|
|
377
|
+
`}firstUpdated(){const e=this.closest("kyn-overflow-menu");e&&(this._menuItems=e.getMenuItems?e.getMenuItems():[],this._menu=e.getMenu?e.getMenu():null,"string"==typeof e.kind&&(this.kind=e.kind),e.addEventListener("kind-changed",(e=>{const t=e;requestAnimationFrame((()=>{this.kind=t.detail}))}))),this.checkOverflow()}handleClick(e){var t;const o=this.querySelector(':scope > [slot="submenu"]:not(kyn-overflow-menu-item)'),n=Array.from(this.querySelectorAll(':scope > kyn-overflow-menu-item[slot="submenu"]'));if(this.hasSubmenu){e.stopPropagation();const i=null!==(t=null==o?void 0:o.innerHTML)&&void 0!==t?t:n.map((e=>e.outerHTML)).join("");this.dispatchEvent(new CustomEvent("open-submenu",{detail:{html:i},bubbles:!0,composed:!0}))}else this.dispatchEvent(new CustomEvent("on-click",{detail:{origEvent:e},bubbles:!0,composed:!0}))}handleKeyDown(e){var t,o,n,i,r,a,s,d;const c=this._menuItems,l=this.getRootNode().activeElement,m=c.findIndex((e=>{if(e===l)return!0;const t=e.shadowRoot;return!!(t&&l&&t.contains(l))}));switch(e.keyCode){case 40:if(m<c.length-1&&m>=0){const e=c[m+1],i=null===(t=e.shadowRoot)||void 0===t?void 0:t.querySelector("button"),r=null===(o=e.shadowRoot)||void 0===o?void 0:o.querySelector("a");null===(n=null!=i?i:r)||void 0===n||n.focus()}return;case 38:if(m>0){const e=c[m-1],t=null===(i=e.shadowRoot)||void 0===i?void 0:i.querySelector("button"),o=null===(r=e.shadowRoot)||void 0===r?void 0:r.querySelector("a");null===(a=null!=t?t:o)||void 0===a||a.focus()}else 0===m&&(null===(d=null===(s=this._menu)||void 0===s?void 0:s.querySelector("button"))||void 0===d||d.focus());return;default:return}}checkOverflow(){var e,t;const o=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("button, a");o&&(this.isTruncated=o.scrollWidth>o.offsetWidth,this.isTruncated&&(this.tooltipText=(null!==(t=this.textContent)&&void 0!==t?t:"").trim()))}},r=new WeakMap,k=new WeakMap,b=new WeakMap,g=new WeakMap,f=new WeakMap,x=new WeakMap,y=new WeakMap,w=new WeakMap,_=new WeakMap,T=new WeakMap,e($,"OverflowMenuItem"),(()=>{var e;const o="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=D[Symbol.metadata])&&void 0!==e?e:null):void 0;M=[c({type:String})],I=[c({type:Boolean})],O=[c({type:Boolean})],W=[c({type:String})],q=[a()],C=[a()],j=[a()],E=[a()],R=[c({type:String,reflect:!0})],z=[a()],t($,null,M,{kind:"accessor",name:"href",static:!1,private:!1,access:{has:e=>"href"in e,get:e=>e.href,set:(e,t)=>{e.href=t}},metadata:o},K,B),t($,null,I,{kind:"accessor",name:"destructive",static:!1,private:!1,access:{has:e=>"destructive"in e,get:e=>e.destructive,set:(e,t)=>{e.destructive=t}},metadata:o},F,H),t($,null,O,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:e=>"disabled"in e,get:e=>e.disabled,set:(e,t)=>{e.disabled=t}},metadata:o},P,U),t($,null,W,{kind:"accessor",name:"description",static:!1,private:!1,access:{has:e=>"description"in e,get:e=>e.description,set:(e,t)=>{e.description=t}},metadata:o},N,Y),t($,null,q,{kind:"accessor",name:"_menuItems",static:!1,private:!1,access:{has:e=>"_menuItems"in e,get:e=>e._menuItems,set:(e,t)=>{e._menuItems=t}},metadata:o},G,J),t($,null,C,{kind:"accessor",name:"_menu",static:!1,private:!1,access:{has:e=>"_menu"in e,get:e=>e._menu,set:(e,t)=>{e._menu=t}},metadata:o},Q,V),t($,null,j,{kind:"accessor",name:"isTruncated",static:!1,private:!1,access:{has:e=>"isTruncated"in e,get:e=>e.isTruncated,set:(e,t)=>{e.isTruncated=t}},metadata:o},X,Z),t($,null,E,{kind:"accessor",name:"tooltipText",static:!1,private:!1,access:{has:e=>"tooltipText"in e,get:e=>e.tooltipText,set:(e,t)=>{e.tooltipText=t}},metadata:o},ee,te),t($,null,R,{kind:"accessor",name:"kind",static:!1,private:!1,access:{has:e=>"kind"in e,get:e=>e.kind,set:(e,t)=>{e.kind=t}},metadata:o},oe,ne),t($,null,z,{kind:"accessor",name:"_submenuOpenTimer",static:!1,private:!1,access:{has:e=>"_submenuOpenTimer"in e,get:e=>e._submenuOpenTimer,set:(e,t)=>{e._submenuOpenTimer=t}},metadata:o},ie,re),t(null,S={value:$},A,{kind:"class",name:$.name,metadata:o},null,L),$=S.value,o&&Object.defineProperty($,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})})(),$.styles=d(p),o($,L),$})();export{k as OverflowMenuItem};
|
|
347
378
|
//# sourceMappingURL=overflowMenuItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflowMenuItem.js","sources":["../../../../src/components/reusable/overflowMenu/overflowMenuItem.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport SCSS from './overflowMenuItem.scss?inline';\nimport '../tooltip';\nimport chevronRightIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\n\n/**\n * Overflow Menu Item.\n * @fires on-click - Captures the click event and emits the original event details.`detail:{ origEvent: PointerEvent }`\n * @slot unnamed - Slot for menu item text.\n * @slot submenu - Provide a nested submenu's markup here (light DOM). Presence auto-detects nesting.\n * @prop {'ai'|'default'|string} kind - Visual variant inherited from parent menu.\n */\n@customElement('kyn-overflow-menu-item')\nexport class OverflowMenuItem extends LitElement {\n static override styles = unsafeCSS(SCSS);\n\n /** Makes the item a link. */\n @property({ type: String })\n accessor href = '';\n\n /** Adds destructive styles. */\n @property({ type: Boolean })\n accessor destructive = false;\n\n /** Item disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Item description text for screen readers. */\n @property({ type: String })\n accessor description = '';\n\n /**\n * Has the menu items in the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menuItems: HTMLElement[] = [];\n\n /**\n * Has the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menu: HTMLElement | null = null;\n\n /**\n * Tracks if the item content is overflowing and needs a tooltip.\n * @ignore\n */\n @state()\n accessor isTruncated = false;\n\n /** Holds the text content for the title tooltip.\n * @ignore\n */\n @state()\n accessor tooltipText = '';\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @property({ type: String, reflect: true })\n accessor kind: 'ai' | 'default' | (string & {}) = 'default';\n\n /**\n * Timer id used to debounce opening of nested submenu on hover/focus.\n * @ignore\n */\n @state()\n accessor _submenuOpenTimer: number | undefined;\n\n private _mo: MutationObserver | null = null;\n\n /** True when a light-DOM submenu exists. */\n private get submenuEls(): HTMLElement[] {\n return Array.from(\n this.querySelectorAll<HTMLElement>(':scope > [slot=\"submenu\"]')\n );\n }\n private get hasSubmenu(): boolean {\n return this.submenuEls.length > 0;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Observe for submenu add/remove or slot attr changes and re-render.\n this._mo = new MutationObserver(() => this.requestUpdate());\n this._mo.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n override disconnectedCallback(): void {\n this._mo?.disconnect();\n this._mo = null;\n super.disconnectedCallback();\n }\n\n override render() {\n const classes = {\n 'overflow-menu-item': true,\n 'menu-item': true,\n 'ai-connected': this.kind === 'ai',\n destructive: this.destructive,\n };\n\n const itemText = this.isTruncated ? this.tooltipText : '';\n\n if (this.href !== '') {\n return html`\n <a\n class=${classMap(classes)}\n href=${this.href}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: KeyboardEvent) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n ${this.hasSubmenu\n ? html`<span\n class=\"menu-item-inner-el submenu-arrow\"\n aria-hidden=\"true\"\n >\n ${unsafeSVG(chevronRightIcon)}\n </span>`\n : null}\n </a>\n `;\n }\n\n return html`\n <button\n class=${classMap(classes)}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: KeyboardEvent) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n ${this.hasSubmenu\n ? html`<span\n class=\"menu-item-inner-el submenu-arrow\"\n aria-hidden=\"true\"\n >\n ${unsafeSVG(chevronRightIcon)}\n </span>`\n : null}\n </button>\n `;\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-overflow-menu') as\n | (HTMLElement & {\n getMenuItems?: () => HTMLElement[];\n getMenu?: () => HTMLElement;\n kind?: string;\n })\n | null;\n\n if (parent) {\n this._menuItems = parent.getMenuItems ? parent.getMenuItems() : [];\n this._menu = parent.getMenu ? parent.getMenu() : null;\n if (typeof parent.kind === 'string') this.kind = parent.kind as any;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n const customEvent = e as CustomEvent<'ai' | 'default' | (string & {})>;\n requestAnimationFrame(() => {\n this.kind = customEvent.detail;\n });\n });\n }\n\n this.checkOverflow();\n }\n\n private handleClick(e: Event) {\n const wrapper = this.querySelector<HTMLElement>(\n ':scope > [slot=\"submenu\"]:not(kyn-overflow-menu-item)'\n );\n const directItems = Array.from(\n this.querySelectorAll<HTMLElement>(\n ':scope > kyn-overflow-menu-item[slot=\"submenu\"]'\n )\n );\n\n if (this.hasSubmenu) {\n e.stopPropagation();\n const html =\n wrapper?.innerHTML ?? directItems.map((el) => el.outerHTML).join('');\n this.dispatchEvent(\n new CustomEvent('open-submenu', {\n detail: { html },\n bubbles: true,\n composed: true,\n })\n );\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('on-click', {\n detail: { origEvent: e },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleKeyDown(e: KeyboardEvent) {\n const DOWN = 40;\n const UP = 38;\n\n const items = this._menuItems;\n const activeEl = (this.getRootNode() as Document | ShadowRoot)\n .activeElement as Element | null;\n\n const idx = items.findIndex((item) => {\n if (item === activeEl) return true;\n const sr = (item as HTMLElement).shadowRoot;\n return !!(sr && activeEl && sr.contains(activeEl));\n });\n\n switch (e.keyCode) {\n case DOWN: {\n if (idx < items.length - 1 && idx >= 0) {\n const next = items[idx + 1];\n const btn =\n next.shadowRoot?.querySelector<HTMLButtonElement>('button');\n const anchor = next.shadowRoot?.querySelector<HTMLAnchorElement>('a');\n (btn ?? anchor)?.focus();\n }\n return;\n }\n case UP: {\n if (idx > 0) {\n const prev = items[idx - 1];\n const btn =\n prev.shadowRoot?.querySelector<HTMLButtonElement>('button');\n const anchor = prev.shadowRoot?.querySelector<HTMLAnchorElement>('a');\n (btn ?? anchor)?.focus();\n } else if (idx === 0) {\n this._menu?.querySelector<HTMLButtonElement>('button')?.focus();\n }\n return;\n }\n default:\n return;\n }\n }\n\n private checkOverflow() {\n const contentElement =\n this.shadowRoot?.querySelector<HTMLElement>('button, a');\n if (contentElement) {\n this.isTruncated =\n contentElement.scrollWidth > contentElement.offsetWidth;\n if (this.isTruncated) {\n this.tooltipText = (this.textContent ?? '').trim();\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-overflow-menu-item': OverflowMenuItem;\n }\n}\n"],"names":["OverflowMenuItem","customElement","LitElement","_classThis","_classSuper","_OverflowMenuItem_href_accessor_storage","set","this","__runInitializers","_href_initializers","_OverflowMenuItem_destructive_accessor_storage","_href_extraInitializers","_destructive_initializers","_OverflowMenuItem_disabled_accessor_storage","_destructive_extraInitializers","_disabled_initializers","_OverflowMenuItem_description_accessor_storage","_disabled_extraInitializers","_description_initializers","_OverflowMenuItem__menuItems_accessor_storage","_description_extraInitializers","__menuItems_initializers","_OverflowMenuItem__menu_accessor_storage","__menuItems_extraInitializers","__menu_initializers","_OverflowMenuItem_isTruncated_accessor_storage","__menu_extraInitializers","_isTruncated_initializers","_OverflowMenuItem_tooltipText_accessor_storage","_isTruncated_extraInitializers","_tooltipText_initializers","_OverflowMenuItem_kind_accessor_storage","_tooltipText_extraInitializers","_kind_initializers","_OverflowMenuItem__submenuOpenTimer_accessor_storage","_kind_extraInitializers","__submenuOpenTimer_initializers","_mo","__submenuOpenTimer_extraInitializers","href","__classPrivateFieldGet","value","__classPrivateFieldSet","destructive","disabled","description","_menuItems","_menu","isTruncated","tooltipText","kind","_submenuOpenTimer","submenuEls","Array","from","querySelectorAll","hasSubmenu","length","connectedCallback","super","MutationObserver","requestUpdate","observe","childList","subtree","attributes","attributeFilter","disconnectedCallback","_a","disconnect","render","classes","itemText","html","classMap","e","handleClick","handleKeyDown","unsafeSVG","chevronRightIcon","firstUpdated","parent","closest","getMenuItems","getMenu","addEventListener","customEvent","requestAnimationFrame","detail","checkOverflow","wrapper","querySelector","directItems","stopPropagation","innerHTML","map","el","outerHTML","join","dispatchEvent","CustomEvent","bubbles","composed","origEvent","items","activeEl","getRootNode","activeElement","idx","findIndex","item","sr","shadowRoot","contains","keyCode","next","btn","anchor","_b","_c","focus","prev","_d","_e","_f","_h","_g","contentElement","scrollWidth","offsetWidth","textContent","trim","_href_decorators","property","type","String","_destructive_decorators","Boolean","_disabled_decorators","_description_decorators","__menuItems_decorators","state","__menu_decorators","_isTruncated_decorators","_tooltipText_decorators","reflect","__submenuOpenTimer_decorators","__esDecorate","name","static","private","access","has","obj","get","metadata","_metadata","_kind_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SCSS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"overflowMenuItem.js","sources":["../../../../src/components/reusable/overflowMenu/overflowMenuItem.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport SCSS from './overflowMenuItem.scss?inline';\nimport '../tooltip';\nimport chevronRightIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\n\n/**\n * Overflow Menu Item.\n * @fires on-click - Captures the click event and emits the original event details.`detail:{ origEvent: PointerEvent }`\n * @slot unnamed - Slot for menu item text.\n * @slot submenu - Provide a nested submenu's markup here (light DOM). Presence auto-detects nesting.\n * @prop {'ai'|'default'|string} kind - Visual variant inherited from parent menu.\n */\n@customElement('kyn-overflow-menu-item')\nexport class OverflowMenuItem extends LitElement {\n static override styles = unsafeCSS(SCSS);\n\n /** Makes the item a link. */\n @property({ type: String })\n accessor href = '';\n\n /** Adds destructive styles. */\n @property({ type: Boolean })\n accessor destructive = false;\n\n /** Item disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Item description text for screen readers. */\n @property({ type: String })\n accessor description = '';\n\n /**\n * Has the menu items in the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menuItems: HTMLElement[] = [];\n\n /**\n * Has the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menu: HTMLElement | null = null;\n\n /**\n * Tracks if the item content is overflowing and needs a tooltip.\n * @ignore\n */\n @state()\n accessor isTruncated = false;\n\n /** Holds the text content for the title tooltip.\n * @ignore\n */\n @state()\n accessor tooltipText = '';\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @property({ type: String, reflect: true })\n accessor kind: 'ai' | 'default' | (string & {}) = 'default';\n\n /**\n * Timer id used to debounce opening of nested submenu on hover/focus.\n * @ignore\n */\n @state()\n accessor _submenuOpenTimer: number | undefined;\n\n private _mo: MutationObserver | null = null;\n\n /** True when a light-DOM submenu exists. */\n private get submenuEls(): HTMLElement[] {\n return Array.from(\n this.querySelectorAll<HTMLElement>(':scope > [slot=\"submenu\"]')\n );\n }\n private get hasSubmenu(): boolean {\n return this.submenuEls.length > 0;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Observe for submenu add/remove or slot attr changes and re-render.\n this._mo = new MutationObserver(() => this.requestUpdate());\n this._mo.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n override disconnectedCallback(): void {\n this._mo?.disconnect();\n this._mo = null;\n super.disconnectedCallback();\n }\n\n override render() {\n const classes = {\n 'overflow-menu-item': true,\n 'menu-item': true,\n 'ai-connected': this.kind === 'ai',\n destructive: this.destructive,\n };\n\n const itemText = this.isTruncated ? this.tooltipText : '';\n\n if (this.href !== '') {\n return html`\n <a\n class=${classMap(classes)}\n href=${this.href}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: KeyboardEvent) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n ${this.hasSubmenu\n ? html`<span\n class=\"menu-item-inner-el submenu-arrow\"\n aria-hidden=\"true\"\n >\n ${unsafeSVG(chevronRightIcon)}\n </span>`\n : null}\n </a>\n `;\n }\n\n return html`\n <button\n class=${classMap(classes)}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: KeyboardEvent) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n ${this.hasSubmenu\n ? html`<span\n class=\"menu-item-inner-el submenu-arrow\"\n aria-hidden=\"true\"\n >\n ${unsafeSVG(chevronRightIcon)}\n </span>`\n : null}\n </button>\n `;\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-overflow-menu') as\n | (HTMLElement & {\n getMenuItems?: () => HTMLElement[];\n getMenu?: () => HTMLElement;\n kind?: string;\n })\n | null;\n\n if (parent) {\n this._menuItems = parent.getMenuItems ? parent.getMenuItems() : [];\n this._menu = parent.getMenu ? parent.getMenu() : null;\n if (typeof parent.kind === 'string') this.kind = parent.kind as any;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n const customEvent = e as CustomEvent<'ai' | 'default' | (string & {})>;\n requestAnimationFrame(() => {\n this.kind = customEvent.detail;\n });\n });\n }\n\n this.checkOverflow();\n }\n\n private handleClick(e: Event) {\n const wrapper = this.querySelector<HTMLElement>(\n ':scope > [slot=\"submenu\"]:not(kyn-overflow-menu-item)'\n );\n const directItems = Array.from(\n this.querySelectorAll<HTMLElement>(\n ':scope > kyn-overflow-menu-item[slot=\"submenu\"]'\n )\n );\n\n if (this.hasSubmenu) {\n e.stopPropagation();\n const html =\n wrapper?.innerHTML ?? directItems.map((el) => el.outerHTML).join('');\n this.dispatchEvent(\n new CustomEvent('open-submenu', {\n detail: { html },\n bubbles: true,\n composed: true,\n })\n );\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('on-click', {\n detail: { origEvent: e },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleKeyDown(e: KeyboardEvent) {\n const DOWN = 40;\n const UP = 38;\n\n const items = this._menuItems;\n const activeEl = (this.getRootNode() as Document | ShadowRoot)\n .activeElement as Element | null;\n\n const idx = items.findIndex((item) => {\n if (item === activeEl) return true;\n const sr = (item as HTMLElement).shadowRoot;\n return !!(sr && activeEl && sr.contains(activeEl));\n });\n\n switch (e.keyCode) {\n case DOWN: {\n if (idx < items.length - 1 && idx >= 0) {\n const next = items[idx + 1];\n const btn =\n next.shadowRoot?.querySelector<HTMLButtonElement>('button');\n const anchor = next.shadowRoot?.querySelector<HTMLAnchorElement>('a');\n (btn ?? anchor)?.focus();\n }\n return;\n }\n case UP: {\n if (idx > 0) {\n const prev = items[idx - 1];\n const btn =\n prev.shadowRoot?.querySelector<HTMLButtonElement>('button');\n const anchor = prev.shadowRoot?.querySelector<HTMLAnchorElement>('a');\n (btn ?? anchor)?.focus();\n } else if (idx === 0) {\n this._menu?.querySelector<HTMLButtonElement>('button')?.focus();\n }\n return;\n }\n default:\n return;\n }\n }\n\n private checkOverflow() {\n const contentElement =\n this.shadowRoot?.querySelector<HTMLElement>('button, a');\n if (contentElement) {\n this.isTruncated =\n contentElement.scrollWidth > contentElement.offsetWidth;\n if (this.isTruncated) {\n this.tooltipText = (this.textContent ?? '').trim();\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-overflow-menu-item': OverflowMenuItem;\n }\n}\n"],"names":["OverflowMenuItem","customElement","LitElement","_classThis","_classSuper","_OverflowMenuItem_href_accessor_storage","set","this","__runInitializers","_href_initializers","_OverflowMenuItem_destructive_accessor_storage","_href_extraInitializers","_destructive_initializers","_OverflowMenuItem_disabled_accessor_storage","_destructive_extraInitializers","_disabled_initializers","_OverflowMenuItem_description_accessor_storage","_disabled_extraInitializers","_description_initializers","_OverflowMenuItem__menuItems_accessor_storage","_description_extraInitializers","__menuItems_initializers","_OverflowMenuItem__menu_accessor_storage","__menuItems_extraInitializers","__menu_initializers","_OverflowMenuItem_isTruncated_accessor_storage","__menu_extraInitializers","_isTruncated_initializers","_OverflowMenuItem_tooltipText_accessor_storage","_isTruncated_extraInitializers","_tooltipText_initializers","_OverflowMenuItem_kind_accessor_storage","_tooltipText_extraInitializers","_kind_initializers","_OverflowMenuItem__submenuOpenTimer_accessor_storage","_kind_extraInitializers","__submenuOpenTimer_initializers","_mo","__submenuOpenTimer_extraInitializers","href","__classPrivateFieldGet","value","__classPrivateFieldSet","destructive","disabled","description","_menuItems","_menu","isTruncated","tooltipText","kind","_submenuOpenTimer","submenuEls","Array","from","querySelectorAll","hasSubmenu","length","connectedCallback","super","MutationObserver","requestUpdate","observe","childList","subtree","attributes","attributeFilter","disconnectedCallback","_a","disconnect","render","classes","itemText","html","classMap","e","handleClick","handleKeyDown","unsafeSVG","chevronRightIcon","firstUpdated","parent","closest","getMenuItems","getMenu","addEventListener","customEvent","requestAnimationFrame","detail","checkOverflow","wrapper","querySelector","directItems","stopPropagation","innerHTML","map","el","outerHTML","join","dispatchEvent","CustomEvent","bubbles","composed","origEvent","items","activeEl","getRootNode","activeElement","idx","findIndex","item","sr","shadowRoot","contains","keyCode","next","btn","anchor","_b","_c","focus","prev","_d","_e","_f","_h","_g","contentElement","scrollWidth","offsetWidth","textContent","trim","_href_decorators","property","type","String","_destructive_decorators","Boolean","_disabled_decorators","_description_decorators","__menuItems_decorators","state","__menu_decorators","_isTruncated_decorators","_tooltipText_decorators","reflect","__submenuOpenTimer_decorators","__esDecorate","name","static","private","access","has","obj","get","metadata","_metadata","_kind_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SCSS"],"mappings":"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"}
|