@esri/calcite-components 5.1.0-next.26 → 5.1.0-next.27

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.
Files changed (153) hide show
  1. package/dist/cdn/{P54SS6QP.js → 2DHM2AXA.js} +1 -1
  2. package/dist/cdn/{35A2JWYN.js → 2GKBBM7Q.js} +1 -1
  3. package/dist/cdn/{NSPEKGY3.js → 2HB7KOBP.js} +1 -1
  4. package/dist/cdn/{2ZJL6VLF.js → 2HIJ2TKK.js} +1 -1
  5. package/dist/cdn/{XG3KX423.js → 2ULDBE64.js} +1 -1
  6. package/dist/cdn/{UM7ABEPP.js → 2WFS3POS.js} +1 -1
  7. package/dist/cdn/{GUOSNPAU.js → 2YLO3Z4A.js} +1 -1
  8. package/dist/cdn/{FULAAFER.js → 34VGNW3O.js} +1 -1
  9. package/dist/cdn/{QHG4UVN7.js → 37DOLJ2M.js} +1 -1
  10. package/dist/cdn/{24UVSZOE.js → 3GGV4N3M.js} +1 -1
  11. package/dist/cdn/{MOQRGDBX.js → 3VLZZDOB.js} +1 -1
  12. package/dist/cdn/{V2MNT2SI.js → 472WFEW2.js} +1 -1
  13. package/dist/cdn/{L3QXLZZH.js → 4LMKMVAS.js} +1 -1
  14. package/dist/cdn/{IQZVCTFW.js → 4TSSRGCA.js} +1 -1
  15. package/dist/cdn/{F7QQUXJL.js → 535HZX2R.js} +1 -1
  16. package/dist/cdn/{MEQVQ22B.js → 54PL5YYE.js} +1 -1
  17. package/dist/cdn/{6ISWKJVP.js → 5E5L2Y3U.js} +1 -1
  18. package/dist/cdn/{2DPUDJQI.js → 5GNMO3F5.js} +1 -1
  19. package/dist/cdn/{SMKTVIG3.js → 5JO6WSQD.js} +1 -1
  20. package/dist/cdn/{WZF7PAWT.js → 5OTQBJDU.js} +1 -1
  21. package/dist/cdn/{GTLHPFUV.js → 62N5UZMU.js} +1 -1
  22. package/dist/cdn/{BNBJDKHP.js → 63LQ3N2L.js} +1 -1
  23. package/dist/cdn/{ZTSGKD2X.js → 65MGRH7E.js} +1 -1
  24. package/dist/cdn/{QN5DWY5J.js → 6DNE3XJM.js} +1 -1
  25. package/dist/cdn/{I2PT3UPN.js → 6EODEWKH.js} +1 -1
  26. package/dist/cdn/{M5WQDFOK.js → 6KOREZVO.js} +1 -1
  27. package/dist/cdn/{F4GCWY3F.js → 6R6JIMH7.js} +1 -1
  28. package/dist/cdn/{KPT5PXJP.js → 6V5DMSM2.js} +1 -1
  29. package/dist/cdn/{TQRVWHPS.js → 6XSDKI2N.js} +1 -1
  30. package/dist/cdn/{CZGH2P5R.js → 72U2CFXQ.js} +1 -1
  31. package/dist/cdn/{RYLTUWGS.js → 75BCQ3LD.js} +1 -1
  32. package/dist/cdn/{KPREHL4V.js → 7IKOVEYM.js} +1 -1
  33. package/dist/cdn/{PDBGWRDU.js → 7IRIGYHH.js} +1 -1
  34. package/dist/cdn/{S4QXLRJT.js → 7KQ3RZM7.js} +1 -1
  35. package/dist/cdn/{5YNF2CQY.js → 7URVEN3S.js} +1 -1
  36. package/dist/cdn/{32SZ6MKP.js → A4EVSHBV.js} +1 -1
  37. package/dist/cdn/{74MAIRJS.js → A5TNVJG6.js} +1 -1
  38. package/dist/cdn/{NDSQ4CFN.js → A6UIXWA4.js} +1 -1
  39. package/dist/cdn/{7TFLXBND.js → AE2F4BUK.js} +1 -1
  40. package/dist/cdn/{AE3UBVD4.js → ASLYOLBT.js} +1 -1
  41. package/dist/cdn/{JAWBEMIK.js → ATU3KAMI.js} +1 -1
  42. package/dist/cdn/{NK6ELXJB.js → AUAQWL4A.js} +1 -1
  43. package/dist/cdn/{PGRW53WB.js → AYYC7TQI.js} +1 -1
  44. package/dist/cdn/{S2N3EAWR.js → BBABEQAO.js} +1 -1
  45. package/dist/cdn/{65XPD5PJ.js → BOSTYDGV.js} +1 -1
  46. package/dist/cdn/{C4ZX7VYR.js → CA3ULZR2.js} +1 -1
  47. package/dist/cdn/{X5FERJLS.js → CAEHJMTO.js} +1 -1
  48. package/dist/cdn/{XWQOS7OO.js → CMCOQ2ZQ.js} +1 -1
  49. package/dist/cdn/{IPPVAW62.js → DGHSYXZ2.js} +1 -1
  50. package/dist/cdn/{WAX64AMV.js → DSVF3SUP.js} +1 -1
  51. package/dist/cdn/DZQNDNRL.js +2 -0
  52. package/dist/cdn/{I3D4XCLD.js → EGS6U2LM.js} +1 -1
  53. package/dist/cdn/{3EFK33T5.js → EJL6F2Z5.js} +1 -1
  54. package/dist/cdn/{S5D4KC2T.js → EW664ACU.js} +1 -1
  55. package/dist/cdn/{SGYKV7MJ.js → EXJYOXYB.js} +1 -1
  56. package/dist/cdn/{GRDNG5EU.js → FAR73AUB.js} +1 -1
  57. package/dist/cdn/{EWMBDFVU.js → FMVAQBXX.js} +1 -1
  58. package/dist/cdn/{FMP6OQ7D.js → FUW4XX3M.js} +1 -1
  59. package/dist/cdn/{W7Y7PLEA.js → FXVVCB4J.js} +1 -1
  60. package/dist/cdn/{WPHKI6II.js → GLDDZIVB.js} +1 -1
  61. package/dist/cdn/{T53FCHAR.js → GPLPESRJ.js} +1 -1
  62. package/dist/cdn/{Y7XT2XH3.js → H3U2HAMG.js} +1 -1
  63. package/dist/cdn/{JVKSFUKV.js → HEVPYY2V.js} +1 -1
  64. package/dist/cdn/{IJ3XVWSG.js → HHXKVWKF.js} +1 -1
  65. package/dist/cdn/{ESIG7SRN.js → HJHCTNLQ.js} +1 -1
  66. package/dist/cdn/{KOW5NTJQ.js → HNX5XQV2.js} +1 -1
  67. package/dist/cdn/{BKVED5K4.js → I3AADXFM.js} +1 -1
  68. package/dist/cdn/{QMHN63LJ.js → IGCKKA2J.js} +1 -1
  69. package/dist/cdn/{D7Q3AXKP.js → IPY6VPUR.js} +1 -1
  70. package/dist/cdn/{3SWWI6IT.js → J33LV53D.js} +1 -1
  71. package/dist/cdn/{PS3Y5JIN.js → J65GFHTP.js} +1 -1
  72. package/dist/cdn/{FIBHCK3H.js → JESVG6N3.js} +1 -1
  73. package/dist/cdn/{EPC7QGCY.js → JYWTNXTR.js} +1 -1
  74. package/dist/cdn/{SAG5PN6V.js → K3G2WW5H.js} +1 -1
  75. package/dist/cdn/{XLYUKQVS.js → KAYQ6NVM.js} +1 -1
  76. package/dist/cdn/{34RZGOUB.js → KKJF2A4I.js} +1 -1
  77. package/dist/cdn/{PYG7GNQ7.js → KQ3QKB3J.js} +1 -1
  78. package/dist/cdn/{IRWU2TR6.js → KR37VVWJ.js} +1 -1
  79. package/dist/cdn/{T2DDJ3UZ.js → L2QH3NOK.js} +1 -1
  80. package/dist/cdn/{GU4S3ZKG.js → L5DQE5BE.js} +1 -1
  81. package/dist/cdn/{DHPVZMKK.js → LF6RR4P6.js} +1 -1
  82. package/dist/cdn/{6DMT6SBE.js → LI6VB7Z4.js} +1 -1
  83. package/dist/cdn/{4DBLFLPE.js → M74RGHFF.js} +1 -1
  84. package/dist/cdn/{WTUALX4S.js → M7JUD3UL.js} +1 -1
  85. package/dist/cdn/{MW7AGGL3.js → MA7DHKWF.js} +1 -1
  86. package/dist/cdn/{XFUK6FWO.js → MBMA3BC2.js} +1 -1
  87. package/dist/cdn/{5KJCBGYY.js → MH6TPLXN.js} +1 -1
  88. package/dist/cdn/{3GV45XL7.js → MYDCGCGV.js} +1 -1
  89. package/dist/cdn/{ULHLMMN4.js → NIYU7VI2.js} +1 -1
  90. package/dist/cdn/{266QPYGH.js → NM5OHTOQ.js} +1 -1
  91. package/dist/cdn/{53ZCK7UM.js → NRHYZ6VT.js} +1 -1
  92. package/dist/cdn/{AM3KA6XI.js → O5TFES37.js} +1 -1
  93. package/dist/cdn/{2COONMVV.js → O5WYTBAC.js} +1 -1
  94. package/dist/cdn/{DNXGXZPK.js → OARZXAME.js} +1 -1
  95. package/dist/cdn/{F2QZDZIO.js → OB6367SJ.js} +1 -1
  96. package/dist/cdn/{FG5FW5ZE.js → OJ43R3W5.js} +1 -1
  97. package/dist/cdn/{HGGO3AHT.js → OZNJ3QF7.js} +1 -1
  98. package/dist/cdn/{QH4IVVZX.js → PBAB3HRR.js} +1 -1
  99. package/dist/cdn/{VL5W6R2P.js → PEKJ55HR.js} +1 -1
  100. package/dist/cdn/{3Z6IQA5N.js → QMBMILIO.js} +1 -1
  101. package/dist/cdn/{XUCO6AFQ.js → QRYPA4IV.js} +1 -1
  102. package/dist/cdn/{265A6AOM.js → QSKYLKVG.js} +1 -1
  103. package/dist/cdn/{HUQJ333U.js → R3G44EXT.js} +1 -1
  104. package/dist/cdn/{D26KXFR4.js → R4MDFTLA.js} +1 -1
  105. package/dist/cdn/{YQ2FBYJF.js → RAFI6A4X.js} +1 -1
  106. package/dist/cdn/{G3EBHETV.js → REBQK6OW.js} +1 -1
  107. package/dist/cdn/{LEBRWA4E.js → RH7VDBAU.js} +1 -1
  108. package/dist/cdn/{GAR2IMZ3.js → RIDZUBJV.js} +1 -1
  109. package/dist/cdn/{MTU6D47Y.js → RLGEEUUF.js} +1 -1
  110. package/dist/cdn/{L6WB4227.js → RZ4GWURO.js} +1 -1
  111. package/dist/cdn/{UFRNO43Y.js → S2QAJ6UR.js} +1 -1
  112. package/dist/cdn/{EVSREOVQ.js → SMPCLTYK.js} +1 -1
  113. package/dist/cdn/{3WIYPWAH.js → T27R25B3.js} +1 -1
  114. package/dist/cdn/{H5BLSEZ3.js → T4YCPPXN.js} +1 -1
  115. package/dist/cdn/{2N2EIOZQ.js → T7KI335M.js} +1 -1
  116. package/dist/cdn/{5G5VTRTL.js → TGNFTCWX.js} +1 -1
  117. package/dist/cdn/{QNLMV3T5.js → TRH4ZJKL.js} +1 -1
  118. package/dist/cdn/{HGBMCFOD.js → TX2ZCNO3.js} +1 -1
  119. package/dist/cdn/{YJF4NBEX.js → U3CDEKCV.js} +1 -1
  120. package/dist/cdn/{UIUDRBYG.js → UBOEFTP3.js} +1 -1
  121. package/dist/cdn/{7GXPYZ67.js → UL2LROO7.js} +1 -1
  122. package/dist/cdn/{JHT4F2RJ.js → UM2MFHK5.js} +1 -1
  123. package/dist/cdn/{IGZX5AHV.js → USE5GH2O.js} +1 -1
  124. package/dist/cdn/{ZAXSD5VD.js → UTJXHCBA.js} +1 -1
  125. package/dist/cdn/{LHBACKJ5.js → UV2FZ7AS.js} +1 -1
  126. package/dist/cdn/{HMOQULJD.js → UVNB2GNS.js} +1 -1
  127. package/dist/cdn/{BGQMFO4B.js → UVX4FZFF.js} +1 -1
  128. package/dist/cdn/{HCNEPLF5.js → UYVL7EZJ.js} +1 -1
  129. package/dist/cdn/{DPPYTPUN.js → VCIM3T4Q.js} +1 -1
  130. package/dist/cdn/{XJHIIAS4.js → VH4YUC3H.js} +1 -1
  131. package/dist/cdn/{KDWR7M23.js → VPK3K5DJ.js} +1 -1
  132. package/dist/cdn/{SR2U4UYC.js → VQZQG7W6.js} +1 -1
  133. package/dist/cdn/{NAP62AX7.js → VSMV7HZ7.js} +1 -1
  134. package/dist/cdn/{JZIOWDZS.js → WM6RPT5D.js} +1 -1
  135. package/dist/cdn/{KR5QASPF.js → WRQWMRHR.js} +1 -1
  136. package/dist/cdn/{R2VQNT5E.js → WSEJYHVG.js} +1 -1
  137. package/dist/cdn/{EWTR65YA.js → X2YX7QA7.js} +1 -1
  138. package/dist/cdn/{4UTZIEIH.js → XDR673RG.js} +1 -1
  139. package/dist/cdn/{DCQRXTMY.js → XRVLOAEF.js} +1 -1
  140. package/dist/cdn/{QVE3GWZX.js → XTSWGDOV.js} +1 -1
  141. package/dist/cdn/{MCUIYFPY.js → Y74RG63Y.js} +1 -1
  142. package/dist/cdn/{LGATM33J.js → YKCXM6YK.js} +1 -1
  143. package/dist/cdn/{UWDGNSRK.js → YYVB3KET.js} +1 -1
  144. package/dist/cdn/index.js +1 -1
  145. package/dist/chunks/resources5.js +2 -1
  146. package/dist/chunks/runtime.js +4 -4
  147. package/dist/components/calcite-combobox/customElement.js +133 -33
  148. package/dist/components/calcite-swatch/customElement.d.ts +1 -1
  149. package/dist/docs/api.json +1 -1
  150. package/dist/docs/docs.json +1 -1
  151. package/dist/docs/web-types.json +1 -1
  152. package/package.json +2 -2
  153. package/dist/cdn/2JM24U42.js +0 -2
@@ -37,7 +37,7 @@ const XButton = ({ disabled, focusable, key, label, onClick, ref: ref$1, round =
37
37
  [CSS.button]: true,
38
38
  [CSS.buttonRound]: round
39
39
  })} .disabled=${disabled} @click=${onClick} .tabIndex=${focusable ? 0 : -1} title=${title ?? nothing} type=button ${ref(ref$1)}><calcite-icon icon=x .scale=${getIconScale(scale)}></calcite-icon></button>`);
40
- const styles = css`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:block}:host([scale=s]){font-size:var(--calcite-font-size-relative-sm);--calcite-internal-combobox-spacing-unit-l: .5rem;--calcite-internal-combobox-spacing-unit-s: .25rem;--calcite-internal-combobox-no-matches-spacing-unit-s: .25rem;--calcite-combobox-input-height: 1rem;--calcite-internal-combobox-input-margin-block: calc(.25rem - 1px) ;--calcite-internal-close-size: 1rem}:host([scale=s]) .x-button{margin-inline:.5rem}:host([scale=m]){font-size:var(--calcite-font-size-relative-base);--calcite-internal-combobox-spacing-unit-l: .75rem;--calcite-internal-combobox-spacing-unit-s: .5rem;--calcite-internal-combobox-no-matches-spacing-unit-s: .375rem;--calcite-combobox-input-height: 1rem;--calcite-internal-combobox-input-margin-block: calc(.5rem - 1px) ;--calcite-internal-close-size: 1.5rem}:host([scale=m]) .x-button{margin-inline-end:.75rem}:host([scale=l]){font-size:var(--calcite-font-size-relative-md);--calcite-internal-combobox-spacing-unit-l: 1rem;--calcite-internal-combobox-spacing-unit-s: .75rem;--calcite-internal-combobox-no-matches-spacing-unit-s: var(--calcite-space-sm-plus);--calcite-combobox-input-height: 1.5rem;--calcite-internal-combobox-input-margin-block: calc(var(--calcite-space-sm-plus) - 1px);--calcite-internal-close-size: 2rem}:host([scale=l]) .x-button{margin-inline-end:1rem}.x-button{align-self:center}.wrapper{display:flex;border-width:1px;border-style:solid;outline-color:transparent;padding-block:calc(var(--calcite-internal-combobox-spacing-unit-s) / 4);padding-inline:var(--calcite-internal-combobox-spacing-unit-l);background-color:var(--calcite-combobox-input-background-color, var(--calcite-color-foreground-1));color:var(--calcite-combobox-input-text-color, var(--calcite-color-text-1));border-color:var(--calcite-combobox-input-border-color, var(--calcite-color-border-input))}.wrapper:hover .icon{color:var(--calcite-combobox-icon-color-hover, var(--calcite-color-text-1))}:host(:focus-within) .wrapper,.wrapper--active{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host([read-only]) .wrapper{background-color:var(--calcite-color-background)}:host([read-only]) .label{font-weight:var(--calcite-font-weight-medium)}:host([status=invalid]) .wrapper{border-color:var(--calcite-color-status-danger)}:host([status=invalid]:focus-within) .wrapper{outline:var(--calcite-border-width-md) solid var(--calcite-color-status-danger);outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.wrapper--single{padding-block:0;padding-inline:var(--calcite-internal-combobox-spacing-unit-l);cursor:pointer;flex-wrap:nowrap}.grid-input{position:relative;display:flex;flex-grow:1;flex-wrap:wrap;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;gap:var(--calcite-internal-combobox-spacing-unit-s);margin-inline-end:var(--calcite-internal-combobox-spacing-unit-s)}.grid-input.selection-display--fit,.grid-input.selection-display--single{flex-wrap:nowrap;overflow:hidden}.input{flex-grow:1;appearance:none;overflow:hidden;text-overflow:ellipsis;border-style:none;background-color:transparent;padding:0;font-family:inherit;color:var(--calcite-color-text-1);font-size:inherit;block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height);inline-size:100%;margin-block-end:var(--calcite-internal-combobox-spacing-unit-s);min-inline-size:4.8125rem}.input:focus{outline:2px solid transparent;outline-offset:2px}.input:placeholder-shown{text-overflow:ellipsis}.input--single{padding:0;margin-block:var(--calcite-internal-combobox-input-margin-block)}.wrapper--active .input-single{cursor:text}.input--hidden{pointer-events:none;width:0px;min-width:0px;opacity:0}.input--icon{padding-block:0;padding-inline:var(--calcite-internal-combobox-spacing-unit-l)}.placeholder-icon{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3))}.input-wrap{display:flex;flex-grow:1;align-items:center}.input-wrap--single{flex:1 1 0%;overflow:hidden}.label{pointer-events:none;max-width:100%;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;font-weight:var(--calcite-font-weight-normal);block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height)}.label--icon{padding-inline:var(--calcite-internal-combobox-spacing-unit-l)}.icon-end,.icon-start{display:flex;cursor:pointer;align-items:center}.icon-end{flex:none}.icon-end .icon{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3))}.floating-ui-container{inline-size:max-content;display:none;max-inline-size:100vw;max-block-size:100vh;inset-block-start:0;left:0;z-index:var(--calcite-floating-ui-z-index)}@starting-style{.floating-ui-container{opacity:0;inset-block-start:0;left:0}}:host([top-layer-disabled]) .floating-ui-container{--calcite-floating-ui-z-index: var(--calcite-z-index-dropdown)}.floating-ui-container[popover]{padding:0;margin:0;border:none;background-color:transparent;overflow:visible;display:none}.floating-ui-container:popover-open{display:block}.floating-ui-container .calcite-floating-ui-anim{position:relative;transition-duration:var(--calcite-floating-ui-transition);transition-property:inset-block-start,left,opacity,display;transition-behavior:allow-discrete;opacity:0;box-shadow:0 0 16px #00000029;z-index:var(--calcite-z-index);border-radius:.25rem}.floating-ui-container[data-placement^=bottom] .calcite-floating-ui-anim{inset-block-start:-5px}.floating-ui-container[data-placement^=top] .calcite-floating-ui-anim{inset-block-start:5px}.floating-ui-container[data-placement^=left] .calcite-floating-ui-anim{left:5px}.floating-ui-container[data-placement^=right] .calcite-floating-ui-anim{left:-5px}.floating-ui-container[data-placement] .calcite-floating-ui-anim--active{opacity:1;inset-block-start:0;left:0}@starting-style{.floating-ui-container[data-placement] .calcite-floating-ui-anim--active{opacity:0}}@media(forced-colors:active){.wrapper,.floating-ui-container{border:1px solid canvasText}}.screen-readers-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.list-container{max-height:45vh;overflow-y:auto;inline-size:var(--calcite-dropdown-width, 100%);background-color:var(--calcite-combobox-background-color, var(--calcite-color-foreground-1))}.list{margin:0;display:block;padding:0}.list--hide{height:0px;overflow:hidden}calcite-chip{--calcite-animation-timing: 0}.chip{margin-block:calc(var(--calcite-internal-combobox-spacing-unit-s) / 4);max-inline-size:100%}.chip--invisible{visibility:hidden;position:absolute}.item{display:block}.select-all{background-color:var(--calcite-combobox-item-background-color-active, var(--calcite-color-foreground-1));border-block-end-color:var(--calcite-combobox-divider-color, var(--calcite-combobox-item-border-color, var(--calcite-color-border-3)));border-block-end-style:solid;border-block-end-width:var(--calcite-border-width-sm);inset-block-start:0;position:sticky;z-index:var(--calcite-z-index-sticky)}.no-matches{padding-block:var(--calcite-internal-combobox-no-matches-spacing-unit-s);padding-inline:var(--calcite-internal-combobox-spacing-unit-l);color:var(--calcite-combobox-input-text-color, var(--calcite-color-text-1));background:var(--calcite-combobox-background-color, var(--calcite-color-foreground-1));cursor:pointer}.no-matches-placeholder{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3));cursor:default}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.x-button{transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out;border-style:none;cursor:pointer;outline-color:transparent;align-items:center;margin:0;background-color:var(--calcite-close-background-color, var(--calcite-color-foreground-2));-webkit-appearance:none;display:flex;align-content:center;justify-content:center;color:var(--calcite-close-icon-color, var(--calcite-color-text-3));block-size:var(--calcite-internal-close-size, 1.5rem);inline-size:var(--calcite-internal-close-size, 1.5rem);min-block-size:var(--calcite-internal-close-size, 1.5rem);min-inline-size:var(--calcite-internal-close-size, 1.5rem);padding:0}.x-button:hover,.x-button:focus{background-color:var(--calcite-close-background-color-hover, var(--calcite-color-foreground-3))}.x-button:focus{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.x-button:active{background-color:var(--calcite-close-background-color-press, var(--calcite-color-transparent-press))}.x-button calcite-icon{color:inherit}.x-button--round{border-radius:9999px}.validation-container{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}:host([scale=m]) .validation-container,:host([scale=l]) .validation-container{padding-block-start:.5rem}:host([scale=s]) .validation-container{padding-block-start:.25rem}::slotted(input[slot=hidden-form-input]){margin:0!important;opacity:0!important;outline:none!important;padding:0!important;position:absolute!important;inset:0!important;transform:none!important;-webkit-appearance:none!important;z-index:-1!important}:host([hidden]){display:none}[hidden]{display:none}.text-match{background-color:transparent;color:inherit;font-weight:var(--calcite-font-weight-bold)}.internal-label-alignment--center{align-items:center}.internal-label-alignment--end{align-items:end}.internal-label--container{display:flex;justify-content:space-between;color:var(--calcite-color-text-1)}.internal-label-required--indicator{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-status-danger);padding-inline:var(--calcite-spacing-base)}.internal-label-required--indicator:hover{cursor:help}.internal-label--text{line-height:1}:host([scale=s]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-xxs)}:host([scale=s]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label--text{font-size:var(--calcite-font-size--2)}:host([scale=m]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label--text{font-size:var(--calcite-font-size--1)}:host([scale=l]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=l]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-md)}:host([scale=l]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-md)}:host([scale=l]) .internal-label--text{font-size:var(--calcite-font-size-0)}::placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-input-placeholder-text-color, var(--calcite-color-text-3))}`;
40
+ const styles = css`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:block}:host([scale=s]){font-size:var(--calcite-font-size-relative-sm);--calcite-internal-combobox-spacing-unit-l: .5rem;--calcite-internal-combobox-spacing-unit-s: .25rem;--calcite-internal-combobox-no-matches-spacing-unit-s: .25rem;--calcite-combobox-input-height: 1rem;--calcite-internal-combobox-input-margin-block: calc(.25rem - 1px) ;--calcite-internal-close-size: 1rem}:host([scale=s]) .x-button{margin-inline:.5rem}:host([scale=m]){font-size:var(--calcite-font-size-relative-base);--calcite-internal-combobox-spacing-unit-l: .75rem;--calcite-internal-combobox-spacing-unit-s: .5rem;--calcite-internal-combobox-no-matches-spacing-unit-s: .375rem;--calcite-combobox-input-height: 1rem;--calcite-internal-combobox-input-margin-block: calc(.5rem - 1px) ;--calcite-internal-close-size: 1.5rem}:host([scale=m]) .x-button{margin-inline-end:.75rem}:host([scale=l]){font-size:var(--calcite-font-size-relative-md);--calcite-internal-combobox-spacing-unit-l: 1rem;--calcite-internal-combobox-spacing-unit-s: .75rem;--calcite-internal-combobox-no-matches-spacing-unit-s: var(--calcite-space-sm-plus);--calcite-combobox-input-height: 1.5rem;--calcite-internal-combobox-input-margin-block: calc(var(--calcite-space-sm-plus) - 1px);--calcite-internal-close-size: 2rem}:host([scale=l]) .x-button{margin-inline-end:1rem}.x-button{align-self:center}.wrapper{display:flex;border-width:1px;border-style:solid;outline-color:transparent;padding-block:calc(var(--calcite-internal-combobox-spacing-unit-s) / 4);padding-inline:var(--calcite-internal-combobox-spacing-unit-l);background-color:var(--calcite-combobox-input-background-color, var(--calcite-color-foreground-1));color:var(--calcite-combobox-input-text-color, var(--calcite-color-text-1));border-color:var(--calcite-combobox-input-border-color, var(--calcite-color-border-input))}.wrapper:hover .icon{color:var(--calcite-combobox-icon-color-hover, var(--calcite-color-text-1))}:host(:focus-within) .wrapper,.wrapper--active{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host([read-only]) .wrapper{background-color:var(--calcite-color-background)}:host([read-only]) .label{font-weight:var(--calcite-font-weight-medium)}:host([status=invalid]) .wrapper{border-color:var(--calcite-color-status-danger)}:host([status=invalid]:focus-within) .wrapper{outline:var(--calcite-border-width-md) solid var(--calcite-color-status-danger);outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.wrapper--single{padding-block:0;padding-inline:var(--calcite-internal-combobox-spacing-unit-l);cursor:pointer;flex-wrap:nowrap}.grid-input{position:relative;display:flex;flex-grow:1;flex-wrap:wrap;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;gap:var(--calcite-internal-combobox-spacing-unit-s);margin-inline-end:var(--calcite-internal-combobox-spacing-unit-s)}.grid-input.selection-display--fit,.grid-input.selection-display--single{flex-wrap:nowrap;overflow:hidden}.input{flex-grow:1;appearance:none;overflow:hidden;text-overflow:ellipsis;border-style:none;background-color:transparent;padding:0;font-family:inherit;color:var(--calcite-color-text-1);font-size:inherit;block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height);inline-size:100%;margin-block-end:var(--calcite-internal-combobox-spacing-unit-s);min-inline-size:4.8125rem}.input:focus{outline:2px solid transparent;outline-offset:2px}.input:placeholder-shown{text-overflow:ellipsis}.input--single{padding:0;margin-block:var(--calcite-internal-combobox-input-margin-block)}.wrapper--active .input-single{cursor:text}.input--hidden{pointer-events:none;width:0px;min-width:0px;opacity:0}.input--icon{padding-block:0;padding-inline:var(--calcite-internal-combobox-spacing-unit-l)}.placeholder-icon{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3))}.input-wrap{display:flex;flex-grow:1;align-items:center}.input-wrap--single{flex:1 1 0%;overflow:hidden}.label{pointer-events:none;max-width:100%;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;font-weight:var(--calcite-font-weight-normal);block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height)}.label--icon{padding-inline:var(--calcite-internal-combobox-spacing-unit-l)}.icon-end,.icon-start{display:flex;cursor:pointer;align-items:center}.icon-end{flex:none}.icon-end .icon{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3))}.floating-ui-container{inline-size:max-content;display:none;max-inline-size:100vw;max-block-size:100vh;inset-block-start:0;left:0;z-index:var(--calcite-floating-ui-z-index)}@starting-style{.floating-ui-container{opacity:0;inset-block-start:0;left:0}}:host([top-layer-disabled]) .floating-ui-container{--calcite-floating-ui-z-index: var(--calcite-z-index-dropdown)}.floating-ui-container[popover]{padding:0;margin:0;border:none;background-color:transparent;overflow:visible;display:none}.floating-ui-container:popover-open{display:block}.floating-ui-container .calcite-floating-ui-anim{position:relative;transition-duration:var(--calcite-floating-ui-transition);transition-property:inset-block-start,left,opacity,display;transition-behavior:allow-discrete;opacity:0;box-shadow:0 0 16px #00000029;z-index:var(--calcite-z-index);border-radius:.25rem}.floating-ui-container[data-placement^=bottom] .calcite-floating-ui-anim{inset-block-start:-5px}.floating-ui-container[data-placement^=top] .calcite-floating-ui-anim{inset-block-start:5px}.floating-ui-container[data-placement^=left] .calcite-floating-ui-anim{left:5px}.floating-ui-container[data-placement^=right] .calcite-floating-ui-anim{left:-5px}.floating-ui-container[data-placement] .calcite-floating-ui-anim--active{opacity:1;inset-block-start:0;left:0}@starting-style{.floating-ui-container[data-placement] .calcite-floating-ui-anim--active{opacity:0}}@media(forced-colors:active){.wrapper,.floating-ui-container{border:1px solid canvasText}}.screen-readers-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.list-container{max-height:45vh;overflow-y:auto;inline-size:var(--calcite-dropdown-width, 100%);background-color:var(--calcite-combobox-background-color, var(--calcite-color-foreground-1))}.list{margin:0;display:block;padding:0}.list--hide{height:0px;overflow:hidden}calcite-chip{--calcite-animation-timing: 0}.chip{margin-block:calc(var(--calcite-internal-combobox-spacing-unit-s) / 4);max-inline-size:100%}.chip--invisible{visibility:hidden;position:absolute}.item{display:block}.select-all{background-color:var(--calcite-combobox-item-background-color-active, var(--calcite-color-foreground-1));border-block-end-color:var(--calcite-combobox-divider-color, var(--calcite-combobox-item-border-color, var(--calcite-color-border-3)));border-block-end-style:solid;border-block-end-width:var(--calcite-border-width-sm);inset-block-start:0;position:sticky;z-index:var(--calcite-z-index-sticky)}.no-matches{padding-block:var(--calcite-internal-combobox-no-matches-spacing-unit-s);padding-inline:var(--calcite-internal-combobox-spacing-unit-l);color:var(--calcite-combobox-input-text-color, var(--calcite-color-text-1));background:var(--calcite-combobox-background-color, var(--calcite-color-foreground-1));cursor:pointer}.no-matches-placeholder{color:var(--calcite-combobox-icon-color, var(--calcite-color-text-3));cursor:default}.disabled{opacity:.5}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.x-button{transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out;border-style:none;cursor:pointer;outline-color:transparent;align-items:center;margin:0;background-color:var(--calcite-close-background-color, var(--calcite-color-foreground-2));-webkit-appearance:none;display:flex;align-content:center;justify-content:center;color:var(--calcite-close-icon-color, var(--calcite-color-text-3));block-size:var(--calcite-internal-close-size, 1.5rem);inline-size:var(--calcite-internal-close-size, 1.5rem);min-block-size:var(--calcite-internal-close-size, 1.5rem);min-inline-size:var(--calcite-internal-close-size, 1.5rem);padding:0}.x-button:hover,.x-button:focus{background-color:var(--calcite-close-background-color-hover, var(--calcite-color-foreground-3))}.x-button:focus{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.x-button:active{background-color:var(--calcite-close-background-color-press, var(--calcite-color-transparent-press))}.x-button calcite-icon{color:inherit}.x-button--round{border-radius:9999px}.validation-container{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}:host([scale=m]) .validation-container,:host([scale=l]) .validation-container{padding-block-start:.5rem}:host([scale=s]) .validation-container{padding-block-start:.25rem}::slotted(input[slot=hidden-form-input]){margin:0!important;opacity:0!important;outline:none!important;padding:0!important;position:absolute!important;inset:0!important;transform:none!important;-webkit-appearance:none!important;z-index:-1!important}:host([hidden]){display:none}[hidden]{display:none}.text-match{background-color:transparent;color:inherit;font-weight:var(--calcite-font-weight-bold)}.internal-label-alignment--center{align-items:center}.internal-label-alignment--end{align-items:end}.internal-label--container{display:flex;justify-content:space-between;color:var(--calcite-color-text-1)}.internal-label-required--indicator{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-status-danger);padding-inline:var(--calcite-spacing-base)}.internal-label-required--indicator:hover{cursor:help}.internal-label--text{line-height:1}:host([scale=s]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-xxs)}:host([scale=s]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label--text{font-size:var(--calcite-font-size--2)}:host([scale=m]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label--text{font-size:var(--calcite-font-size--1)}:host([scale=l]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=l]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-md)}:host([scale=l]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-md)}:host([scale=l]) .internal-label--text{font-size:var(--calcite-font-size-0)}::placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-input-placeholder-text-color, var(--calcite-color-text-3))}`;
41
41
  class Combobox extends LitElement {
42
42
  constructor() {
43
43
  super();
@@ -130,6 +130,7 @@ class Combobox extends LitElement {
130
130
  this.compactSelectionDisplay = false;
131
131
  this.selectedHiddenChipsCount = 0;
132
132
  this.selectedVisibleChipsCount = 0;
133
+ this.allItems = [];
133
134
  this.items = [];
134
135
  this.clearDisabled = false;
135
136
  this.disabled = false;
@@ -173,7 +174,7 @@ class Combobox extends LitElement {
173
174
  this.listen("click", this.comboboxFocusHandler);
174
175
  }
175
176
  static {
176
- this.properties = { activeChipIndex: [16, {}, { state: true }], activeDescendant: [16, {}, { state: true }], activeItemIndex: [16, {}, { state: true }], compactSelectionDisplay: [16, {}, { state: true }], selectedHiddenChipsCount: [16, {}, { state: true }], selectedVisibleChipsCount: [16, {}, { state: true }], items: [16, {}, { state: true }], noMatchesFound: [16, {}, { state: true }], allowCustomValues: [7, {}, { reflect: true, type: Boolean }], clearDisabled: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], filterText: [3, {}, { reflect: true }], filterProps: [0, {}, { attribute: false }], filteredItems: [32, {}, { attribute: false, readOnly: true }], flipPlacements: [0, {}, { attribute: false }], form: [3, {}, { reflect: true }], label: 1, labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], name: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placeholder: 1, placeholderIcon: [3, { type: String }, { reflect: true }], placeholderIconFlipRtl: [7, {}, { reflect: true, type: Boolean }], placement: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], selectAllEnabled: [7, {}, { reflect: true, type: Boolean }], selectedItems: [0, {}, { attribute: false }], selectionDisplay: [3, {}, { reflect: true }], selectionAppearance: [3, {}, { reflect: true }], selectionMode: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [0, {}, { attribute: false }], value: 1 };
177
+ this.properties = { activeChipIndex: [16, {}, { state: true }], activeDescendant: [16, {}, { state: true }], activeItemIndex: [16, {}, { state: true }], compactSelectionDisplay: [16, {}, { state: true }], selectedHiddenChipsCount: [16, {}, { state: true }], selectedVisibleChipsCount: [16, {}, { state: true }], allItems: [16, {}, { state: true }], items: [16, {}, { state: true }], noMatchesFound: [16, {}, { state: true }], allowCustomValues: [7, {}, { reflect: true, type: Boolean }], clearDisabled: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], filterText: [3, {}, { reflect: true }], filterProps: [0, {}, { attribute: false }], filteredItems: [32, {}, { attribute: false, readOnly: true }], flipPlacements: [0, {}, { attribute: false }], form: [3, {}, { reflect: true }], label: 1, labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], name: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placeholder: 1, placeholderIcon: [3, { type: String }, { reflect: true }], placeholderIconFlipRtl: [7, {}, { reflect: true, type: Boolean }], placement: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], selectAllEnabled: [7, {}, { reflect: true, type: Boolean }], selectedItems: [0, {}, { attribute: false }], selectionDisplay: [3, {}, { reflect: true }], selectionAppearance: [3, {}, { reflect: true }], selectionMode: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [0, {}, { attribute: false }], value: 1 };
177
178
  }
178
179
  static {
179
180
  this.formAssociated = true;
@@ -195,10 +196,21 @@ class Combobox extends LitElement {
195
196
  return !open && selectedItem ? !!selectedIcon && singleSelectionMode : !!placeholderIcon && (!selectedItem || singleSelectionMode);
196
197
  }
197
198
  get allSelected() {
198
- return this.selectedItems.length === this.items.length;
199
+ const enabledItems = this.allItems.filter((item) => !item.disabled);
200
+ return enabledItems.length > 0 && enabledItems.every((item) => item.selected);
201
+ }
202
+ get hasDisabledItems() {
203
+ return this.allItems.some((item) => item.disabled);
204
+ }
205
+ get hasDisabledSelected() {
206
+ return this.allItems.some((item) => item.disabled && item.selected);
199
207
  }
200
208
  get indeterminate() {
201
- return this.selectedItems.length > 0 && !this.allSelected;
209
+ const hasAnySelected = this.selectedItems.length > 0 || this.hasDisabledSelected;
210
+ if (!this.selectAllEnabled) {
211
+ return this.selectedItems.length > 0 && !this.allSelected;
212
+ }
213
+ return !this.allSelected && hasAnySelected;
202
214
  }
203
215
  get keyboardNavItems() {
204
216
  const { selectAllComboboxItemRef } = this;
@@ -323,7 +335,7 @@ class Combobox extends LitElement {
323
335
  }
324
336
  valueHandler(value) {
325
337
  if (!this.internalValueChangeFlag) {
326
- this.getItems().forEach((item) => {
338
+ this.items.forEach((item) => {
327
339
  item.selected = Array.isArray(value) ? value.includes(item.value) : value === item.value;
328
340
  });
329
341
  this.updateItems();
@@ -337,6 +349,9 @@ class Combobox extends LitElement {
337
349
  this.internalValueChangeFlag = true;
338
350
  this.value = this.getValue();
339
351
  this.internalValueChangeFlag = false;
352
+ if (this.selectionDisplay === "fit" && this.isMulti()) {
353
+ this.refreshSelectionDisplay();
354
+ }
340
355
  }
341
356
  async documentClickHandler(event) {
342
357
  if (this.disabled || event.composedPath().includes(this.el)) {
@@ -357,7 +372,7 @@ class Combobox extends LitElement {
357
372
  if (isSelectAllTarget) {
358
373
  this.toggleSelectAll();
359
374
  }
360
- if (this.allSelected) {
375
+ if (this.allSelected && (!this.hasDisabledItems || this.hasDisabledSelected)) {
361
376
  this.selectedItems.forEach((item) => {
362
377
  const chipEl = this.referenceEl.querySelector(`#${IDS.chip(item.guid)}`);
363
378
  if (chipEl) {
@@ -418,8 +433,13 @@ class Combobox extends LitElement {
418
433
  }
419
434
  toggleSelectAll() {
420
435
  const toggledValue = !this.allSelected;
421
- this.items.forEach((item) => item.selected = toggledValue);
422
- this.selectedItems = toggledValue ? this.items : [];
436
+ this.allItems.forEach((item) => {
437
+ if (item.disabled) {
438
+ return;
439
+ }
440
+ item.selected = toggledValue;
441
+ });
442
+ this.selectedItems = this.getSelectedItems();
423
443
  this.emitComboboxChange();
424
444
  }
425
445
  keyDownHandler(event) {
@@ -655,7 +675,7 @@ class Combobox extends LitElement {
655
675
  inputWidth,
656
676
  largestSelectedIndicatorChipWidth
657
677
  });
658
- if (this.allSelected && this.selectAllEnabled) {
678
+ if (this.allSelected && this.selectAllEnabled && (!this.hasDisabledItems || this.hasDisabledSelected)) {
659
679
  this.selectedItems.forEach((item) => {
660
680
  const chipEl = this.referenceEl.querySelector(`#${IDS.chip(item.guid)}`);
661
681
  if (chipEl) {
@@ -712,7 +732,7 @@ class Combobox extends LitElement {
712
732
  if (newSelectedVisibleChipsCount !== this.selectedVisibleChipsCount) {
713
733
  this.selectedVisibleChipsCount = newSelectedVisibleChipsCount;
714
734
  }
715
- const newSelectedHiddenChipsCount = this.getSelectedItems().length - newSelectedVisibleChipsCount;
735
+ const newSelectedHiddenChipsCount = Math.max(0, this.getSelectedItems().length - newSelectedVisibleChipsCount);
716
736
  if (newSelectedHiddenChipsCount !== this.selectedHiddenChipsCount) {
717
737
  this.selectedHiddenChipsCount = newSelectedHiddenChipsCount;
718
738
  }
@@ -796,7 +816,12 @@ class Combobox extends LitElement {
796
816
  el.selected = true;
797
817
  });
798
818
  } else {
799
- children.forEach((el) => el.selected = false);
819
+ children.forEach((el) => {
820
+ if (el.disabled) {
821
+ return;
822
+ }
823
+ el.selected = false;
824
+ });
800
825
  [...ancestors].forEach((el) => {
801
826
  if (!hasActiveChildren(el)) {
802
827
  el.selected = false;
@@ -805,7 +830,8 @@ class Combobox extends LitElement {
805
830
  }
806
831
  }
807
832
  updateItems() {
808
- this.items = this.getItems();
833
+ this.allItems = this.getItems(true);
834
+ this.items = this.allItems.filter((item) => !item.disabled);
809
835
  this.groupItems = this.getGroupItems();
810
836
  this.data = this.getData();
811
837
  this.groupData = this.getGroupData();
@@ -813,7 +839,7 @@ class Combobox extends LitElement {
813
839
  this.selectedItems = this.getSelectedItems();
814
840
  }
815
841
  updateItemProps() {
816
- this.getItems(true).forEach((item) => {
842
+ this.allItems.forEach((item) => {
817
843
  item.selectionMode = this.selectionMode;
818
844
  item.selectionAppearance = this.selectionAppearance;
819
845
  item.scale = this.scale;
@@ -975,40 +1001,111 @@ class Combobox extends LitElement {
975
1001
  const value = Array.isArray(this.value) ? this.value.join(", ") : this.value;
976
1002
  return this.readOnly ? this.messages.nonEditable?.replace("{value}", `${value}`) : value;
977
1003
  }
1004
+ getChipLabel(item, isAncestors) {
1005
+ if (!isAncestors) {
1006
+ return getLabel(item);
1007
+ }
1008
+ const ancestors = [...getItemAncestors(item)].reverse();
1009
+ return [...ancestors, item].map((el) => getLabel(el)).join(" / ");
1010
+ }
1011
+ renderChip({ activeChipIndex, disabled, index, item, messages, readOnly, scale, isAncestors }) {
1012
+ const label = this.getChipLabel(item, isAncestors);
1013
+ return keyed(item.guid || item.value || label, html`<calcite-chip .appearance=${readOnly ? "outline" : "solid"} class=${safeClassMap({
1014
+ [CSS$1.chip]: true,
1015
+ [CSS$1.disabled]: disabled
1016
+ })} .closable=${!disabled && !readOnly} .disabled=${disabled} .icon=${item.icon} .iconFlipRtl=${item.iconFlipRtl} id=${(!disabled && item.guid ? `${IDS.chip(item.guid)}` : null) ?? nothing} .label=${label} .messageOverrides=${!disabled ? { dismissLabel: messages.removeTag } : null} @focusin=${!disabled ? () => this.activeChipIndex = index : null} @calciteChipClose=${!disabled ? () => this.calciteChipCloseHandler(item) : null} .scale=${scale} .selected=${item.selected} .tabIndex=${!disabled && activeChipIndex === index ? 0 : -1} title=${label ?? nothing} .value=${item.value}>${label}</calcite-chip>`);
1017
+ }
1018
+ renderChipCount(count, scale) {
1019
+ const label = this.messages.disabledSelectedCount?.replace("{count}", `${count}`) ?? `+${count}`;
1020
+ return html`<calcite-chip appearance=solid class=${safeClassMap({
1021
+ [CSS$1.chip]: true
1022
+ })} .label=${label} .scale=${scale} tabindex=-1 title=${label ?? nothing}>${label}</calcite-chip>`;
1023
+ }
978
1024
  renderChips() {
979
- const { activeChipIndex, readOnly, scale, selectionMode, messages } = this;
980
- if (this.selectAllEnabled && this.allSelected) {
1025
+ const { activeChipIndex, readOnly, scale, selectionDisplay, selectionMode, messages } = this;
1026
+ const chips = [];
1027
+ const isAncestors = selectionMode === "ancestors";
1028
+ const allSelectedNoDisabled = this.allSelected && !this.hasDisabledItems;
1029
+ const allSelectedWithDisabledSelected = this.allSelected && this.hasDisabledSelected;
1030
+ const disabledItems = this.allItems.filter((item) => item.disabled && item.selected && (!isAncestors || !hasActiveChildren(item)));
1031
+ const preserveOrder = selectionDisplay === "all";
1032
+ if (selectionDisplay === "fit" && (allSelectedNoDisabled || allSelectedWithDisabledSelected) || selectionDisplay === "all" && this.selectAllEnabled && allSelectedWithDisabledSelected || this.selectAllEnabled && this.allSelected && !this.hasDisabledItems) {
981
1033
  return null;
982
1034
  }
983
- return this.selectedItems.map((item, i) => {
984
- const chipClasses = {
985
- [CSS$1.chip]: true
986
- };
987
- const ancestors = [...getItemAncestors(item)].reverse();
988
- const itemLabel = getLabel(item);
989
- const pathLabel = [...ancestors, item].map((el) => getLabel(el));
990
- const label = selectionMode !== "ancestors" ? itemLabel : pathLabel.join(" / ");
991
- return keyed(itemLabel, html`<calcite-chip .appearance=${readOnly ? "outline" : "solid"} class=${safeClassMap(chipClasses)} .closable=${!readOnly} .icon=${item.icon} .iconFlipRtl=${item.iconFlipRtl} id=${(item.guid ? `${IDS.chip(item.guid)}` : null) ?? nothing} .label=${label} .messageOverrides=${{ dismissLabel: messages.removeTag }} @focusin=${() => this.activeChipIndex = i} @calciteChipClose=${() => this.calciteChipCloseHandler(item)} .scale=${scale} .selected=${item.selected} .tabIndex=${activeChipIndex === i ? 0 : -1} title=${label ?? nothing} .value=${item.value}>${label}</calcite-chip>`);
992
- });
1035
+ let selectedIndex = 0;
1036
+ let disabledIndex = 0;
1037
+ if (preserveOrder) {
1038
+ this.allItems.forEach((item) => {
1039
+ if (item.disabled) {
1040
+ if (item.selected && (!isAncestors || !hasActiveChildren(item))) {
1041
+ chips.push(this.renderChip({
1042
+ activeChipIndex,
1043
+ disabled: true,
1044
+ index: disabledIndex++,
1045
+ item,
1046
+ messages,
1047
+ readOnly,
1048
+ scale,
1049
+ isAncestors
1050
+ }));
1051
+ }
1052
+ return;
1053
+ }
1054
+ if (!this.selectAllEnabled || !this.allSelected || this.hasDisabledItems) {
1055
+ if (item.selected && (!isAncestors || !hasActiveChildren(item))) {
1056
+ chips.push(this.renderChip({
1057
+ activeChipIndex,
1058
+ disabled: false,
1059
+ index: selectedIndex++,
1060
+ item,
1061
+ messages,
1062
+ readOnly,
1063
+ scale,
1064
+ isAncestors
1065
+ }));
1066
+ }
1067
+ }
1068
+ });
1069
+ } else if (!this.selectAllEnabled || !this.allSelected || this.hasDisabledItems) {
1070
+ this.selectedItems.forEach((item) => {
1071
+ chips.push(this.renderChip({
1072
+ activeChipIndex,
1073
+ disabled: false,
1074
+ index: selectedIndex++,
1075
+ item,
1076
+ messages,
1077
+ readOnly,
1078
+ scale,
1079
+ isAncestors
1080
+ }));
1081
+ });
1082
+ }
1083
+ if (selectionDisplay === "fit" && disabledItems.length) {
1084
+ chips.push(this.renderChipCount(disabledItems.length, scale));
1085
+ }
1086
+ return chips.length ? chips : null;
993
1087
  }
994
1088
  renderAllSelectedIndicatorChip() {
995
1089
  const { allSelectedIndicatorChipRef, compactSelectionDisplay, scale, selectedVisibleChipsCount } = this;
996
1090
  const label = compactSelectionDisplay ? this.messages.all : this.messages.allSelected;
1091
+ const showAllSelectedChip = this.allSelected && (this.selectionDisplay === "single" || !selectedVisibleChipsCount || this.selectionDisplay === "fit" && this.hasDisabledSelected || this.selectionDisplay === "all" && this.hasDisabledSelected);
997
1092
  return html`<calcite-chip class=${safeClassMap({
998
1093
  [CSS$1.chip]: true,
999
- [CSS$1.chipInvisible]: !(this.allSelected && !selectedVisibleChipsCount),
1094
+ [CSS$1.chipInvisible]: !showAllSelectedChip,
1000
1095
  [CSS$1.allSelected]: true
1001
1096
  })} .label=${label} .scale=${scale} title=${label ?? nothing} value ${ref(allSelectedIndicatorChipRef)}>${label}</calcite-chip>`;
1002
1097
  }
1003
1098
  renderSelectedIndicatorChip() {
1004
- const { compactSelectionDisplay, selectionDisplay, getSelectedItems, scale, selectedHiddenChipsCount, selectedVisibleChipsCount, selectedIndicatorChipRef } = this;
1099
+ const { compactSelectionDisplay, selectionDisplay, scale, selectedHiddenChipsCount, selectedVisibleChipsCount, selectedIndicatorChipRef } = this;
1100
+ const allSelectedNoDisabled = this.allSelected && !this.hasDisabledItems;
1101
+ const allSelectedWithDisabledSelected = this.allSelected && this.hasDisabledSelected;
1005
1102
  let chipInvisible;
1006
1103
  let label;
1007
1104
  if (compactSelectionDisplay) {
1008
1105
  chipInvisible = true;
1009
1106
  } else {
1010
1107
  if (selectionDisplay === "single") {
1011
- const selectedItemsCount = getSelectedItems().length;
1108
+ const selectedItemsCount = this.allItems.filter((item) => item.selected && (this.selectionMode !== "ancestors" || !hasActiveChildren(item))).length;
1012
1109
  if (this.allSelected) {
1013
1110
  chipInvisible = true;
1014
1111
  } else if (selectedItemsCount > 0) {
@@ -1018,7 +1115,7 @@ class Combobox extends LitElement {
1018
1115
  }
1019
1116
  label = `${selectedItemsCount} ${this.messages.selected}`;
1020
1117
  } else if (selectionDisplay === "fit") {
1021
- chipInvisible = !!(this.allSelected && selectedVisibleChipsCount === 0 || selectedHiddenChipsCount === 0);
1118
+ chipInvisible = !!((allSelectedNoDisabled || allSelectedWithDisabledSelected) && selectedVisibleChipsCount === 0 || selectedHiddenChipsCount === 0);
1022
1119
  label = selectedVisibleChipsCount > 0 ? `+${selectedHiddenChipsCount}` : `${selectedHiddenChipsCount} ${this.messages.selected}`;
1023
1120
  }
1024
1121
  }
@@ -1028,12 +1125,14 @@ class Combobox extends LitElement {
1028
1125
  })} .label=${label} .scale=${scale} title=${label ?? nothing} value ${ref(selectedIndicatorChipRef)}>${label}</calcite-chip>`;
1029
1126
  }
1030
1127
  renderSelectedIndicatorChipCompact() {
1031
- const { compactSelectionDisplay, selectionDisplay, getSelectedItems, scale, selectedHiddenChipsCount } = this;
1128
+ const { compactSelectionDisplay, selectionDisplay, scale, selectedHiddenChipsCount } = this;
1129
+ const allSelectedNoDisabled = this.allSelected && !this.hasDisabledItems;
1130
+ const allSelectedWithDisabledSelected = this.allSelected && this.hasDisabledSelected;
1032
1131
  let chipInvisible;
1033
1132
  let label;
1034
1133
  if (compactSelectionDisplay) {
1035
- const selectedItemsCount = getSelectedItems().length;
1036
- if (this.allSelected) {
1134
+ const selectedItemsCount = this.allItems.filter((item) => item.selected && (this.selectionMode !== "ancestors" || !hasActiveChildren(item))).length;
1135
+ if (allSelectedNoDisabled || allSelectedWithDisabledSelected || selectionDisplay === "single" && this.allSelected) {
1037
1136
  chipInvisible = true;
1038
1137
  } else if (selectionDisplay === "fit") {
1039
1138
  chipInvisible = !(selectedHiddenChipsCount > 0);
@@ -1121,6 +1220,7 @@ class Combobox extends LitElement {
1121
1220
  const singleSelectionDisplay = selectionDisplay === "single";
1122
1221
  const fitSelectionDisplay = !singleSelectionMode && selectionDisplay === "fit";
1123
1222
  const isClearable = !this.clearDisabled && this.selectionMode !== "single-persist" && !!this.value?.length;
1223
+ const hasDisabledItems = this.hasDisabledItems;
1124
1224
  return this.interactiveContainer({ disabled: this.disabled, children: html`${this.labelText && InternalLabel({ labelText: this.labelText, onClick: this.onLabelClick, required: this.required, tooltipText: this.messages.required }) || ""}<div aria-live=polite class=${safeClassMap({
1125
1225
  [CSS$1.wrapper]: true,
1126
1226
  [CSS$1.wrapperSingle]: singleSelectionMode || !this.selectedItems.length,
@@ -1129,7 +1229,7 @@ class Combobox extends LitElement {
1129
1229
  [CSS$1.gridInput]: true,
1130
1230
  [CSS$1.selectionDisplayFit]: fitSelectionDisplay,
1131
1231
  [CSS$1.selectionDisplaySingle]: singleSelectionDisplay
1132
- })} ${ref(this.setChipContainerEl)}>${!singleSelectionMode && !singleSelectionDisplay && this.renderChips() || ""}${!singleSelectionMode && !singleSelectionDisplay && this.selectAllEnabled && this.renderAllSelectedIndicatorChip() || ""}${!singleSelectionMode && !allSelectionDisplay && [
1232
+ })} ${ref(this.setChipContainerEl)}>${!singleSelectionMode && !singleSelectionDisplay && this.renderChips() || ""}${!singleSelectionMode && !singleSelectionDisplay && this.selectAllEnabled && allSelectionDisplay && (!hasDisabledItems || this.hasDisabledSelected) && this.renderAllSelectedIndicatorChip() || ""}${!singleSelectionMode && !allSelectionDisplay && [
1133
1233
  this.renderSelectedIndicatorChip(),
1134
1234
  this.renderSelectedIndicatorChipCompact(),
1135
1235
  this.renderAllSelectedIndicatorChip()
@@ -10,7 +10,7 @@ export abstract class Swatch extends LitElement {
10
10
  /**
11
11
  * Specifies the component's color
12
12
  *
13
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value
13
+ * @mdn [Mozilla - CSS color value](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)
14
14
  */
15
15
  accessor color: string;
16
16
  /**