@esri/calcite-components 5.2.0-next.44 → 5.2.0-next.46

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 (200) hide show
  1. package/dist/cdn/{LIMDFPEA.js → 226KKOLI.js} +1 -1
  2. package/dist/cdn/{7M3DCP3P.js → 25A2OD4Q.js} +1 -1
  3. package/dist/cdn/{TFCXTMPD.js → 25FUNB3N.js} +1 -1
  4. package/dist/cdn/{DEMWKUSV.js → 2GDZJOI4.js} +1 -1
  5. package/dist/cdn/2JEYJH4Y.js +2 -0
  6. package/dist/cdn/{323SXKZ6.js → 2NY6ASOG.js} +1 -1
  7. package/dist/cdn/{LOKIUSDE.js → 2SBMVDIR.js} +1 -1
  8. package/dist/cdn/{OEHSNBOP.js → 2YZ2X4JM.js} +1 -1
  9. package/dist/cdn/{5WBOA7YI.js → 35YW53NW.js} +1 -1
  10. package/dist/cdn/{QJIGBVLX.js → 3I3YLA2A.js} +1 -1
  11. package/dist/cdn/{6EK67Q77.js → 3LHAOM3N.js} +1 -1
  12. package/dist/cdn/{3VVCKLMD.js → 3NI4ZI7F.js} +1 -1
  13. package/dist/cdn/{VNYCTNXM.js → 3P455YMD.js} +1 -1
  14. package/dist/cdn/{7OKZFXOI.js → 3RAC7VGH.js} +1 -1
  15. package/dist/cdn/{MQNRZDDZ.js → 3RZYIFZJ.js} +1 -1
  16. package/dist/cdn/{G27D3SZT.js → 4NAG76F3.js} +1 -1
  17. package/dist/cdn/{TE5JYRP5.js → 4ZBDKCZG.js} +1 -1
  18. package/dist/cdn/{FA553F4H.js → 546U6MTF.js} +1 -1
  19. package/dist/cdn/{KXV644DB.js → 5B6RFTNV.js} +1 -1
  20. package/dist/cdn/{KSCXISUY.js → 5CAGXC5B.js} +1 -1
  21. package/dist/cdn/{QF4HG7SZ.js → 5EGK6SBN.js} +1 -1
  22. package/dist/cdn/{IJMQOY62.js → 5M7Y7XWX.js} +1 -1
  23. package/dist/cdn/{SJCHPTN7.js → 5SPJVLDO.js} +1 -1
  24. package/dist/cdn/{5HPWFFAC.js → 5SRNUKFE.js} +1 -1
  25. package/dist/cdn/{4YBBM46Y.js → 6CTLVVAM.js} +1 -1
  26. package/dist/cdn/{ZSXJBBAT.js → 6E3EU3HO.js} +1 -1
  27. package/dist/cdn/{3BNA6FWR.js → 6FSX3PZX.js} +1 -1
  28. package/dist/cdn/{N4JMX3TC.js → 6QDAPAQ4.js} +1 -1
  29. package/dist/cdn/{GXQQN75F.js → 6UZW4BEP.js} +1 -1
  30. package/dist/cdn/{7KIBU5Z4.js → 6Y5MLZ75.js} +1 -1
  31. package/dist/cdn/{GNGC5N7C.js → 7JXCR356.js} +1 -1
  32. package/dist/cdn/{JRLYYEZZ.js → 7KCTSYUG.js} +1 -1
  33. package/dist/cdn/{45TZVR5L.js → 7NEXHWAB.js} +1 -1
  34. package/dist/cdn/{LEKTTV7F.js → 7PYADY7K.js} +1 -1
  35. package/dist/cdn/{2CTMJVC3.js → 7VFLK4TX.js} +1 -1
  36. package/dist/cdn/{WKUUJPMB.js → AHSC4STK.js} +1 -1
  37. package/dist/cdn/{ZNNX3HMN.js → BCRSRWAC.js} +1 -1
  38. package/dist/cdn/{FO24BWKT.js → BOEPTYVS.js} +1 -1
  39. package/dist/cdn/{YTMG336H.js → BVCCAIMF.js} +1 -1
  40. package/dist/cdn/{ZDX6E2ID.js → C6OAUR2A.js} +1 -1
  41. package/dist/cdn/{E3WTHMHU.js → C6WEMG7F.js} +1 -1
  42. package/dist/cdn/{66UMQAVF.js → CRXRE2L5.js} +1 -1
  43. package/dist/cdn/{ELEHM6SM.js → CV4CRDNO.js} +1 -1
  44. package/dist/cdn/{R6CCGOTQ.js → CYUJ7MY4.js} +1 -1
  45. package/dist/cdn/{N2AHP4TE.js → D3XIFVAQ.js} +1 -1
  46. package/dist/cdn/{QYWWPZRM.js → DDDUPUIN.js} +1 -1
  47. package/dist/cdn/{7YNWVNM5.js → DRBAM76V.js} +1 -1
  48. package/dist/cdn/{FX2LLI3Q.js → DUHVPJ52.js} +1 -1
  49. package/dist/cdn/{HXCRR6BA.js → E7CYI4QG.js} +1 -1
  50. package/dist/cdn/{6FEIEUZZ.js → EDZUPAIF.js} +1 -1
  51. package/dist/cdn/{APUUVZU3.js → EEUXXN5A.js} +1 -1
  52. package/dist/cdn/{BVDJOIHQ.js → ERC3MLM5.js} +1 -1
  53. package/dist/cdn/{LWNISVMS.js → EYWBUP3V.js} +1 -1
  54. package/dist/cdn/{E7L6YLEY.js → FBKESU6N.js} +1 -1
  55. package/dist/cdn/{V6MNRNTP.js → FFMZ6LR6.js} +1 -1
  56. package/dist/cdn/{AEIZCYV4.js → FIBESEEH.js} +1 -1
  57. package/dist/cdn/{PVDBGCSF.js → FWZ3WXYK.js} +1 -1
  58. package/dist/cdn/{7MZHM4NI.js → FYLMXKBF.js} +1 -1
  59. package/dist/cdn/{AZG62CMV.js → GHWMFXRY.js} +1 -1
  60. package/dist/cdn/{VQAOL77U.js → GPK6HZZG.js} +1 -1
  61. package/dist/cdn/{IZ2JDBZ5.js → GPSS6NJU.js} +1 -1
  62. package/dist/cdn/{IB77HFOJ.js → GQ7ARGRJ.js} +1 -1
  63. package/dist/cdn/{6VHRHSIJ.js → HAFM5JZY.js} +1 -1
  64. package/dist/cdn/{DQPQBE44.js → HIZLE5X3.js} +1 -1
  65. package/dist/cdn/{6FUEQ6XE.js → HQTFUYBM.js} +1 -1
  66. package/dist/cdn/{CW4PYCUD.js → IEC6MRLK.js} +1 -1
  67. package/dist/cdn/{LJYFEISA.js → JBLINVGN.js} +1 -1
  68. package/dist/cdn/{5L3BDPLE.js → JBR5OSLO.js} +1 -1
  69. package/dist/cdn/{XHG2PRXC.js → JEFK35LR.js} +1 -1
  70. package/dist/cdn/{3HCDZGRJ.js → JLCEH4GK.js} +1 -1
  71. package/dist/cdn/{T4Y6NUI3.js → JQQQGQQP.js} +1 -1
  72. package/dist/cdn/{RTQ5QAEN.js → JU2GMSTY.js} +1 -1
  73. package/dist/cdn/{W7NEBG3P.js → K7U76LK2.js} +1 -1
  74. package/dist/cdn/{MFNARHZV.js → KKN5BZS6.js} +1 -1
  75. package/dist/cdn/{XL4QINLT.js → KMGPQKDX.js} +1 -1
  76. package/dist/cdn/{2PWOBQBE.js → KRLGWL3U.js} +1 -1
  77. package/dist/cdn/{ENY437DL.js → KXXK4WRX.js} +1 -1
  78. package/dist/cdn/{XZEYC2EZ.js → LHQX4MQ6.js} +1 -1
  79. package/dist/cdn/{WGIIJKTS.js → LKGIEDA2.js} +1 -1
  80. package/dist/cdn/{PLVAIZEG.js → LNXNHTKW.js} +1 -1
  81. package/dist/cdn/{WY5EGJUC.js → LU27UXVI.js} +1 -1
  82. package/dist/cdn/{MT7BKXNU.js → LVMCAJNX.js} +1 -1
  83. package/dist/cdn/{A5KNFFW5.js → MVPRQTKE.js} +1 -1
  84. package/dist/cdn/{QNVVRIKY.js → N3MTFGCC.js} +1 -1
  85. package/dist/cdn/{H4RYLWQ3.js → NOKGBAY3.js} +1 -1
  86. package/dist/cdn/{FIVBJX3T.js → NYKUMSIX.js} +1 -1
  87. package/dist/cdn/{XGKHKGLI.js → NZYH7K23.js} +1 -1
  88. package/dist/cdn/{UML462S6.js → O3VIBFMR.js} +1 -1
  89. package/dist/cdn/{D23MDHHB.js → O55VSTUP.js} +1 -1
  90. package/dist/cdn/{NHZUT5FA.js → OBEGRPZ3.js} +1 -1
  91. package/dist/cdn/{33QZ2NJJ.js → OFK5WWZ3.js} +1 -1
  92. package/dist/cdn/{KIC6NKAK.js → OLRYEKNG.js} +1 -1
  93. package/dist/cdn/{CDGFDRAM.js → OTQ7OS47.js} +1 -1
  94. package/dist/cdn/{NDAZA3HY.js → P2CN2WP3.js} +1 -1
  95. package/dist/cdn/{OWWZVFUV.js → P735NILA.js} +1 -1
  96. package/dist/cdn/{SMXHRTT2.js → P7N6ZDL4.js} +1 -1
  97. package/dist/cdn/{T6WNXMDO.js → PHIXSE5M.js} +1 -1
  98. package/dist/cdn/{NSPN72PP.js → PJQNCFKT.js} +1 -1
  99. package/dist/cdn/{HHL3MK6T.js → PJRHWNM7.js} +1 -1
  100. package/dist/cdn/{APO5A3X6.js → PL3WMJTV.js} +1 -1
  101. package/dist/cdn/{Y7EHAR6C.js → QYOEZIPC.js} +1 -1
  102. package/dist/cdn/{NFJJDSZY.js → R5JUFHUG.js} +1 -1
  103. package/dist/cdn/{KY2WU6KT.js → RGIW45X4.js} +1 -1
  104. package/dist/cdn/{XCBRE2B6.js → RGJY4RDZ.js} +1 -1
  105. package/dist/cdn/{IPLWZAVT.js → RHB7AMVZ.js} +1 -1
  106. package/dist/cdn/{WQDBKWBJ.js → RKP5NE6V.js} +1 -1
  107. package/dist/cdn/{NUEE3RC5.js → SEUKQSQS.js} +1 -1
  108. package/dist/cdn/{USPQQI22.js → SNR3633R.js} +1 -1
  109. package/dist/cdn/{A3DB45ZW.js → SOGCG5BH.js} +1 -1
  110. package/dist/cdn/{ORV44K64.js → SPSP6CHU.js} +1 -1
  111. package/dist/cdn/{KPYK6ZCA.js → SYDWADHD.js} +1 -1
  112. package/dist/cdn/{N2I62PPK.js → TBHXNN4K.js} +1 -1
  113. package/dist/cdn/{XBHFE6H2.js → TFHQNWN6.js} +1 -1
  114. package/dist/cdn/{BVOYTTRM.js → TRPHLGJS.js} +1 -1
  115. package/dist/cdn/{OB2XFFOT.js → U3XZFYMP.js} +1 -1
  116. package/dist/cdn/{UXIOETP4.js → U4OOXZBA.js} +1 -1
  117. package/dist/cdn/{5N3T7BFJ.js → UKX6ZBXL.js} +1 -1
  118. package/dist/cdn/{Z554GNVA.js → UOEX32EZ.js} +1 -1
  119. package/dist/cdn/{2LEAGXRC.js → V24WHK5E.js} +1 -1
  120. package/dist/cdn/{6NPSWFX2.js → VBDSAYJ7.js} +1 -1
  121. package/dist/cdn/{JXLRG6VX.js → VHIMNAN5.js} +1 -1
  122. package/dist/cdn/{OQMJUBOQ.js → VSRTZPRB.js} +1 -1
  123. package/dist/cdn/{SCJTB5QR.js → VTTEP3YA.js} +1 -1
  124. package/dist/cdn/{5Z6C2X5M.js → VY2Z3YF6.js} +1 -1
  125. package/dist/cdn/{LCH3W2SZ.js → WA3K65G5.js} +1 -1
  126. package/dist/cdn/{F3NS7FCQ.js → WJZUSCCM.js} +1 -1
  127. package/dist/cdn/{DCT743JJ.js → WMEUKATJ.js} +1 -1
  128. package/dist/cdn/{UW542TEF.js → WN7354LH.js} +1 -1
  129. package/dist/cdn/{INMGPFUF.js → WQH5NZ5Y.js} +1 -1
  130. package/dist/cdn/{TP5N2U4E.js → WZUEBXP6.js} +1 -1
  131. package/dist/cdn/XENUSU4C.js +2 -0
  132. package/dist/cdn/{UMVDSDG6.js → XJ4J4H3L.js} +1 -1
  133. package/dist/cdn/{2JB4VHGU.js → YEYALEVF.js} +1 -1
  134. package/dist/cdn/YPHI2RT6.js +2 -0
  135. package/dist/cdn/{DFWIL2EW.js → YQT5OTHV.js} +1 -1
  136. package/dist/cdn/{XYHKUDZF.js → YZQKBBJ7.js} +1 -1
  137. package/dist/cdn/{M3OX67AP.js → ZBD2S6DX.js} +1 -1
  138. package/dist/cdn/{VEZVYJSA.js → ZL3CIOKD.js} +1 -1
  139. package/dist/cdn/{FZPOPPES.js → ZQ6MOYDC.js} +1 -1
  140. package/dist/cdn/{XTIDUHCQ.js → ZUEJ7FEV.js} +1 -1
  141. package/dist/cdn/{HKUZYLLE.js → ZWBWVLZQ.js} +1 -1
  142. package/dist/cdn/index.js +1 -1
  143. package/dist/chunks/dom.js +23 -23
  144. package/dist/chunks/manager.js +1 -1
  145. package/dist/chunks/openCloseComponent.js +1 -1
  146. package/dist/chunks/runtime.js +4 -4
  147. package/dist/chunks/useFocusTrap.js +1 -1
  148. package/dist/chunks/useForm.js +1 -1
  149. package/dist/chunks/useLabel.js +1 -1
  150. package/dist/chunks/useSetFocus.js +1 -1
  151. package/dist/chunks/utils2.js +1 -1
  152. package/dist/components/calcite-action-bar/customElement.js +19 -9
  153. package/dist/components/calcite-action-pad/customElement.js +1 -1
  154. package/dist/components/calcite-alert/customElement.js +1 -1
  155. package/dist/components/calcite-avatar/customElement.js +1 -1
  156. package/dist/components/calcite-block-group/customElement.js +1 -1
  157. package/dist/components/calcite-button/customElement.js +1 -1
  158. package/dist/components/calcite-card-group/customElement.js +1 -1
  159. package/dist/components/calcite-carousel/customElement.js +1 -1
  160. package/dist/components/calcite-chip/customElement.js +1 -1
  161. package/dist/components/calcite-chip-group/customElement.js +1 -1
  162. package/dist/components/calcite-color-picker/customElement.js +1 -1
  163. package/dist/components/calcite-color-picker-swatch/customElement.js +1 -1
  164. package/dist/components/calcite-combobox/customElement.js +1 -1
  165. package/dist/components/calcite-combobox-item/customElement.js +1 -1
  166. package/dist/components/calcite-date-picker-month-header/customElement.js +1 -1
  167. package/dist/components/calcite-dropdown/customElement.js +36 -3
  168. package/dist/components/calcite-dropdown-group/customElement.js +43 -1
  169. package/dist/components/calcite-input/customElement.js +1 -1
  170. package/dist/components/calcite-input-message/customElement.js +1 -1
  171. package/dist/components/calcite-input-number/customElement.js +1 -1
  172. package/dist/components/calcite-input-text/customElement.js +1 -1
  173. package/dist/components/calcite-list/customElement.js +1 -1
  174. package/dist/components/calcite-list-item/customElement.js +1 -1
  175. package/dist/components/calcite-menu/customElement.js +1 -1
  176. package/dist/components/calcite-meter/customElement.js +1 -1
  177. package/dist/components/calcite-notice/customElement.js +1 -1
  178. package/dist/components/calcite-panel/customElement.js +1 -1
  179. package/dist/components/calcite-scrim/customElement.js +1 -1
  180. package/dist/components/calcite-segmented-control-item/customElement.js +1 -1
  181. package/dist/components/calcite-slider/customElement.js +1 -1
  182. package/dist/components/calcite-sortable-list/customElement.js +1 -1
  183. package/dist/components/calcite-stepper/customElement.js +1 -1
  184. package/dist/components/calcite-stepper-item/customElement.js +1 -1
  185. package/dist/components/calcite-swatch-group/customElement.js +1 -1
  186. package/dist/components/calcite-tab/customElement.js +1 -1
  187. package/dist/components/calcite-tab-nav/customElement.js +1 -1
  188. package/dist/components/calcite-tab-title/customElement.js +1 -1
  189. package/dist/components/calcite-table-row/customElement.js +1 -1
  190. package/dist/components/calcite-tile-group/customElement.js +1 -1
  191. package/dist/components/calcite-tree/customElement.js +1 -1
  192. package/dist/components/calcite-tree-item/customElement.js +1 -1
  193. package/dist/docs/api.json +1 -1
  194. package/dist/docs/docs.json +1 -1
  195. package/dist/docs/supported-browsers.json +1 -1
  196. package/dist/docs/web-types.json +1 -1
  197. package/package.json +2 -2
  198. package/dist/cdn/2PHCANX2.js +0 -2
  199. package/dist/cdn/CBV5UE76.js +0 -2
  200. package/dist/cdn/K47LAICX.js +0 -2
@@ -231,33 +231,33 @@ function viewportUnitToPixel(value, viewportSize) {
231
231
  return value * viewportSize / 100;
232
232
  }
233
233
  export {
234
- intersects as A,
235
- slotChangeHasTextContent as B,
236
- filterDirectChildren as C,
234
+ getFirstTabbable as A,
235
+ intersects as B,
236
+ slotChangeHasTextContent as C,
237
237
  slotChangeGetAssignedElements as a,
238
238
  getSlotAssignedElements as b,
239
239
  closestElementCrossShadowBoundary as c,
240
- setRequestedIcon as d,
241
- getModeName as e,
242
- focusElementInGroup as f,
240
+ focusElementInGroup as d,
241
+ setRequestedIcon as e,
242
+ filterDirectChildren as f,
243
243
  getStylePixelValue as g,
244
- getRootNode as h,
245
- hasVisibleContent as i,
246
- focusElement as j,
247
- isPrimaryPointerButton as k,
248
- getElementWidth as l,
249
- getTextWidth as m,
250
- slotChangeHasContent as n,
251
- nodeListToArray as o,
252
- whenTransitionDone as p,
253
- isCalciteFocusable as q,
254
- queryElementRoots as r,
244
+ getModeName as h,
245
+ getRootNode as i,
246
+ hasVisibleContent as j,
247
+ focusElement as k,
248
+ isPrimaryPointerButton as l,
249
+ getElementWidth as m,
250
+ getTextWidth as n,
251
+ slotChangeHasContent as o,
252
+ nodeListToArray as p,
253
+ whenTransitionDone as q,
254
+ isCalciteFocusable as r,
255
255
  slotChangeHasAssignedElement as s,
256
- isBefore as t,
257
- tabbableOptions as u,
258
- nextFrame as v,
256
+ queryElementRoots as t,
257
+ isBefore as u,
258
+ tabbableOptions as v,
259
259
  whenAnimationDone as w,
260
- getShadowRootNode as x,
261
- isKeyboardTriggeredClick as y,
262
- getFirstTabbable as z
260
+ nextFrame as x,
261
+ getShadowRootNode as y,
262
+ isKeyboardTriggeredClick as z
263
263
  };
@@ -1,6 +1,6 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { makeGenericController } from "@arcgis/lumina/controllers";
3
- import { r as queryElementRoots, x as getShadowRootNode, k as isPrimaryPointerButton, y as isKeyboardTriggeredClick } from "./dom.js";
3
+ import { t as queryElementRoots, y as getShadowRootNode, l as isPrimaryPointerButton, z as isKeyboardTriggeredClick } from "./dom.js";
4
4
  import { l as logger } from "./runtime.js";
5
5
  import { i as isActivationKey } from "./key.js";
6
6
  import { t as toAriaBoolean } from "./aria.js";
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { p as whenTransitionDone } from "./dom.js";
2
+ import { q as whenTransitionDone } from "./dom.js";
3
3
  function isOpen(component) {
4
4
  return component[component.openProp || "open"];
5
5
  }
@@ -106,9 +106,9 @@ function getConfig() {
106
106
  }
107
107
  return effectiveConfig;
108
108
  }
109
- const version = "5.2.0-next.44";
110
- const buildDate = "2026-08-11";
111
- const revision = "22641a9c9";
109
+ const version = "5.2.0-next.46";
110
+ const buildDate = "2026-08-12";
111
+ const revision = "90b48177d";
112
112
  function stampVersion() {
113
113
  const config = getConfig();
114
114
  if (config && config.version) {
@@ -131,7 +131,7 @@ if (!isServer) {
131
131
  if (process.env.NODE_ENV !== "test") {
132
132
  queueMicrotask(stampVersion);
133
133
  }
134
- const runtime = makeRuntime({ defaultAssetPath: "https://cdn.jsdelivr.net/npm/@esri/calcite-components@5.2.0-next.44/dist/cdn/", hydratedAttribute: "calcite-hydrated" });
134
+ const runtime = makeRuntime({ defaultAssetPath: "https://cdn.jsdelivr.net/npm/@esri/calcite-components@5.2.0-next.46/dist/cdn/", hydratedAttribute: "calcite-hydrated" });
135
135
  const { customElement, getAssetPath, setAssetPath } = runtime;
136
136
  export {
137
137
  CSS_UTILITY as C,
@@ -1,7 +1,7 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { makeGenericController } from "@arcgis/lumina/controllers";
3
3
  import { createFocusTrap } from "focus-trap";
4
- import { u as tabbableOptions, j as focusElement } from "./dom.js";
4
+ import { v as tabbableOptions, k as focusElement } from "./dom.js";
5
5
  import { b as getConfig } from "./runtime.js";
6
6
  function getEffectiveContainerElements(targetEl, { focusTrapOptions }, extraContainers) {
7
7
  if (!focusTrapOptions?.extraContainers && !extraContainers) {
@@ -1,7 +1,7 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { makeGenericController, bypassReadOnly } from "@arcgis/lumina/controllers";
3
3
  import { uncapitalize, kebabToPascal } from "@arcgis/toolkit/string";
4
- import { q as isCalciteFocusable } from "./dom.js";
4
+ import { r as isCalciteFocusable } from "./dom.js";
5
5
  import "lit";
6
6
  const minMaxStepTypes = ["date", "datetime-local", "month", "number", "range", "time", "week"];
7
7
  const patternTypes = ["email", "password", "search", "tel", "text", "url"];
@@ -1,6 +1,6 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { makeGenericController } from "@arcgis/lumina/controllers";
3
- import { r as queryElementRoots, c as closestElementCrossShadowBoundary, t as isBefore } from "./dom.js";
3
+ import { t as queryElementRoots, c as closestElementCrossShadowBoundary, u as isBefore } from "./dom.js";
4
4
  const useLabel = makeGenericController((component, controller) => {
5
5
  controller.onConnected(() => {
6
6
  connectLabel(component);
@@ -1,7 +1,7 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { makeGenericController } from "@arcgis/lumina/controllers";
3
3
  import { c as componentFocusable } from "./component.js";
4
- import { h as getRootNode, j as focusElement } from "./dom.js";
4
+ import { i as getRootNode, k as focusElement } from "./dom.js";
5
5
  const useSetFocus = () => {
6
6
  return makeGenericController((component, controller) => {
7
7
  let abortController;
@@ -1,6 +1,6 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { isServer } from "lit";
3
- import { o as nodeListToArray } from "./dom.js";
3
+ import { p as nodeListToArray } from "./dom.js";
4
4
  import { A as AllComboboxChildrenSelector, a as ComboboxItemSelector, b as ComboboxItemGroupSelector } from "./resources7.js";
5
5
  function getAncestors(element) {
6
6
  const parent = element.parentElement?.closest(AllComboboxChildrenSelector);
@@ -5,7 +5,7 @@ import { css, html, nothing } from "lit";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
7
  import { useDirection } from "@arcgis/lumina/controllers";
8
- import { g as getStylePixelValue, a as slotChangeGetAssignedElements, b as getSlotAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
8
+ import { g as getStylePixelValue, f as filterDirectChildren, a as slotChangeGetAssignedElements, b as getSlotAssignedElements, d as focusElementInGroup } from "../../chunks/dom.js";
9
9
  import { c as createObserver } from "../../chunks/observers.js";
10
10
  import { t as toggleActionBarChildActionText, E as ExpandToggle } from "../../chunks/ExpandToggle.js";
11
11
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -159,9 +159,7 @@ class ActionBar extends LitElement {
159
159
  slottedActionGroups.forEach((actionGroup, index) => {
160
160
  const actionGroupStyle = getComputedStyle(actionGroup);
161
161
  const actionGroupGap = getStylePixelValue(actionGroupStyle.gap);
162
- const defaultActionsCount = actionGroup.actions.filter((action) => action.slot !== SLOTS$1.menuActions).length;
163
- const hasMenuActions = actionGroup.actions.some((action) => action.slot === SLOTS$1.menuActions);
164
- const actionGroupItemCount = defaultActionsCount + (hasMenuActions ? 1 : 0);
162
+ const actionGroupItemCount = this.getVisibleActionGroupItemCount(actionGroup);
165
163
  const actionGroupGapQuantity = Math.max(actionGroupItemCount - 1, 0);
166
164
  bufferSize += actionGroupGap * actionGroupGapQuantity;
167
165
  if (index !== lastSlottedActionGroupIndex) {
@@ -340,13 +338,25 @@ class ActionBar extends LitElement {
340
338
  }
341
339
  getItemSizes() {
342
340
  const { layout, expandToggleEl } = this;
343
- const actions = [...this.actions];
341
+ const clientSize = layout === "horizontal" ? "clientWidth" : "clientHeight";
342
+ const itemSizes = this.actions.map((action) => action[clientSize] || 0);
343
+ const slottedActionGroupMenus = this.getTrackedActionGroups().flatMap((group) => filterDirectChildren(group, "calcite-action-menu"));
344
+ slottedActionGroupMenus.forEach((menu) => {
345
+ const triggerAction = menu.actions.find((action) => action.slot === SLOTS$2.trigger);
346
+ itemSizes.push((triggerAction ?? menu)[clientSize] || 0);
347
+ });
344
348
  if (expandToggleEl) {
345
- actions.push(expandToggleEl);
349
+ itemSizes.push(expandToggleEl[clientSize] || 0);
346
350
  }
347
- const clientSize = layout === "horizontal" ? "clientWidth" : "clientHeight";
348
- const fallbackSize = Math.max(...actions.map((action) => action[clientSize] || 0));
349
- return actions.map((action) => action[clientSize] || fallbackSize);
351
+ const fallbackSize = Math.max(...itemSizes, 0);
352
+ return itemSizes.map((size) => size || fallbackSize);
353
+ }
354
+ getVisibleActionGroupItemCount(actionGroup) {
355
+ const directActionGroupActions = actionGroup.actions.filter((action) => action.parentElement === actionGroup);
356
+ const directActionMenusCount = filterDirectChildren(actionGroup, "calcite-action-menu").length;
357
+ const defaultActionsCount = directActionGroupActions.filter((action) => action.slot !== SLOTS$1.menuActions).length + directActionMenusCount;
358
+ const hasMenuActions = directActionGroupActions.some((action) => action.slot === SLOTS$1.menuActions);
359
+ return defaultActionsCount + (hasMenuActions ? 1 : 0);
350
360
  }
351
361
  expandedHandler() {
352
362
  this.syncActionsState(true);
@@ -3,7 +3,7 @@ import { l as logger, c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
4
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
5
5
  import { useDirection } from "@arcgis/lumina/controllers";
6
- import { a as slotChangeGetAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
6
+ import { a as slotChangeGetAssignedElements, d as focusElementInGroup } from "../../chunks/dom.js";
7
7
  import { l as legacyToggleChildActionText, E as ExpandToggle } from "../../chunks/ExpandToggle.js";
8
8
  import { c as createObserver } from "../../chunks/observers.js";
9
9
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -4,7 +4,7 @@ import { keyed } from "lit/directives/keyed.js";
4
4
  import { css, html } from "lit";
5
5
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
- import { s as slotChangeHasAssignedElement, d as setRequestedIcon } from "../../chunks/dom.js";
7
+ import { s as slotChangeHasAssignedElement, e as setRequestedIcon } from "../../chunks/dom.js";
8
8
  import { g as getIconScale } from "../../chunks/component.js";
9
9
  import { N as NumberStringFormat } from "../../chunks/locale.js";
10
10
  import { t as toggleOpenClose } from "../../chunks/openCloseComponent.js";
@@ -2,7 +2,7 @@
2
2
  import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
4
  import { LitElement, nothing, safeClassMap, safeStyleMap } from "@arcgis/lumina";
5
- import { e as getModeName } from "../../chunks/dom.js";
5
+ import { h as getModeName } from "../../chunks/dom.js";
6
6
  import { h as hexToRGB, i as isValidHex } from "../../chunks/utils.js";
7
7
  const CSS = {
8
8
  thumbnail: "thumbnail",
@@ -4,7 +4,7 @@ import { debounce } from "es-toolkit";
4
4
  import { css, html } from "lit";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
6
  import { c as createObserver } from "../../chunks/observers.js";
7
- import { h as getRootNode, a as slotChangeGetAssignedElements } from "../../chunks/dom.js";
7
+ import { i as getRootNode, a as slotChangeGetAssignedElements } from "../../chunks/dom.js";
8
8
  import { g as guid } from "../../chunks/guid.js";
9
9
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
10
10
  import { u as useCancelable } from "../../chunks/useCancelable.js";
@@ -10,7 +10,7 @@ import { u as useLabel } from "../../chunks/useLabel.js";
10
10
  import { c as createObserver, u as updateRefObserver } from "../../chunks/observers.js";
11
11
  import { g as getIconScale } from "../../chunks/component.js";
12
12
  import { u as useT9n } from "../../chunks/useT9n.js";
13
- import { i as hasVisibleContent } from "../../chunks/dom.js";
13
+ import { j as hasVisibleContent } from "../../chunks/dom.js";
14
14
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
15
15
  import { u as useInteractive } from "../../chunks/useInteractive.js";
16
16
  import { u as useFormTrigger } from "../../chunks/useFormTrigger.js";
@@ -3,7 +3,7 @@ import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
4
  import { createRef, ref } from "lit/directives/ref.js";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
- import { f as focusElementInGroup } from "../../chunks/dom.js";
6
+ import { d as focusElementInGroup } from "../../chunks/dom.js";
7
7
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
8
8
  import { u as useInteractive } from "../../chunks/useInteractive.js";
9
9
  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{display:block}.container{display:flex;flex-wrap:wrap;gap:var(--calcite-card-group-space, var(--calcite-card-group-gap, var(--calcite-spacing-md)))}:host([hidden]){display:none}[hidden]{display:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}`;
@@ -5,7 +5,7 @@ import { css, nothing, html } from "lit";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
7
  import { useDirection } from "@arcgis/lumina/controllers";
8
- import { w as whenAnimationDone, a as slotChangeGetAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
8
+ import { w as whenAnimationDone, a as slotChangeGetAssignedElements, d as focusElementInGroup } from "../../chunks/dom.js";
9
9
  import { g as guid } from "../../chunks/guid.js";
10
10
  import { c as createObserver } from "../../chunks/observers.js";
11
11
  import { b as breakpoints } from "../../chunks/responsive.js";
@@ -3,7 +3,7 @@ import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, isServer, html } from "lit";
4
4
  import { createRef, ref } from "lit/directives/ref.js";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
- import { j as focusElement, s as slotChangeHasAssignedElement } from "../../chunks/dom.js";
6
+ import { k as focusElement, s as slotChangeHasAssignedElement } from "../../chunks/dom.js";
7
7
  import { i as isActivationKey } from "../../chunks/key.js";
8
8
  import { g as getIconScale } from "../../chunks/component.js";
9
9
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -3,7 +3,7 @@ import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
4
  import { createRef, ref } from "lit/directives/ref.js";
5
5
  import { LitElement, createEvent } from "@arcgis/lumina";
6
- import { f as focusElementInGroup, a as slotChangeGetAssignedElements } from "../../chunks/dom.js";
6
+ import { d as focusElementInGroup, a as slotChangeGetAssignedElements } from "../../chunks/dom.js";
7
7
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
8
8
  import { u as useInteractive } from "../../chunks/useInteractive.js";
9
9
  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{display:flex}.container{display:flex;inline-size:100%;flex-wrap:wrap;gap:.5rem}::slotted(calcite-chip){flex:none}:host([scale=s]) .container{gap:.25rem}:host([scale=l]) .container{gap:.75rem}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}:host([hidden]){display:none}[hidden]{display:none}`;
@@ -8,7 +8,7 @@ import { css, html, nothing } from "lit";
8
8
  import { LitElement, createEvent, safeClassMap, safeStyleMap } from "@arcgis/lumina";
9
9
  import { createRef, ref } from "lit/directives/ref.js";
10
10
  import { useDirection } from "@arcgis/lumina/controllers";
11
- import { k as isPrimaryPointerButton } from "../../chunks/dom.js";
11
+ import { l as isPrimaryPointerButton } from "../../chunks/dom.js";
12
12
  import { i as isActivationKey } from "../../chunks/key.js";
13
13
  import { r as remap, c as clamp, a as closeToRangeEdge } from "../../chunks/math.js";
14
14
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -4,7 +4,7 @@ import { keyed } from "lit/directives/keyed.js";
4
4
  import Color from "color";
5
5
  import { css, html, nothing, svg } from "lit";
6
6
  import { LitElement, safeClassMap } from "@arcgis/lumina";
7
- import { e as getModeName } from "../../chunks/dom.js";
7
+ import { h as getModeName } from "../../chunks/dom.js";
8
8
  import { b as hexify } from "../../chunks/utils.js";
9
9
  const CSS = {
10
10
  swatch: "swatch",
@@ -10,7 +10,7 @@ import { createRef, ref } from "lit/directives/ref.js";
10
10
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
11
11
  import { useDirection } from "@arcgis/lumina/controllers";
12
12
  import { f as filter } from "../../chunks/filter.js";
13
- import { l as getElementWidth, m as getTextWidth, j as focusElement } from "../../chunks/dom.js";
13
+ import { m as getElementWidth, n as getTextWidth, k as focusElement } from "../../chunks/dom.js";
14
14
  import { d as defaultMenuPlacement, r as reposition, c as connectFloatingUI, a as disconnectFloatingUI, f as filterValidFlipPlacements, h as hideFloatingUI, F as FloatingCSS } from "../../chunks/floating-ui.js";
15
15
  import { g as guid } from "../../chunks/guid.js";
16
16
  import { g as getLabelText } from "../../chunks/label.js";
@@ -6,7 +6,7 @@ import { LitElement, createEvent, safeClassMap, safeStyleMap } from "@arcgis/lum
6
6
  import { g as guid } from "../../chunks/guid.js";
7
7
  import { d as getAncestors, i as isSingleLike, e as getDepth } from "../../chunks/utils2.js";
8
8
  import { g as getIconScale } from "../../chunks/component.js";
9
- import { n as slotChangeHasContent } from "../../chunks/dom.js";
9
+ import { o as slotChangeHasContent } from "../../chunks/dom.js";
10
10
  import { h as highlightText } from "../../chunks/text.js";
11
11
  import { u as useInteractive } from "../../chunks/useInteractive.js";
12
12
  const CSS = {
@@ -6,7 +6,7 @@ import { css, html, nothing } from "lit";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
7
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
8
8
  import { b as dateFromRange, n as nextMonth, p as prevMonth, f as formatCalendarYear, e as parseCalendarYear, j as getDateInMonth, i as inRange, h as hasSameMonthAndYear, k as getOrder } from "../../chunks/date.js";
9
- import { c as closestElementCrossShadowBoundary, m as getTextWidth } from "../../chunks/dom.js";
9
+ import { c as closestElementCrossShadowBoundary, n as getTextWidth } from "../../chunks/dom.js";
10
10
  import { i as isActivationKey } from "../../chunks/key.js";
11
11
  import { n as numberStringFormatter } from "../../chunks/locale.js";
12
12
  const styles = css`:host{display:block}.header{display:flex;block-size:100%;align-items:center;justify-content:space-between}.chevron-container{display:flex;align-items:center}:host([scale=s]){block-size:24px;margin:var(--calcite-spacing-xs);margin-inline-start:var(--calcite-spacing-sm)}:host([scale=s]) .chevron-container,:host([scale=s]) .chevron{min-inline-size:24px;block-size:24px}:host([scale=m]){block-size:32px;margin:var(--calcite-spacing-sm);margin-inline-start:var(--calcite-spacing-sm-plus)}:host([scale=m]) .chevron-container,:host([scale=m]) .chevron{min-inline-size:32px;block-size:32px;--calcite-internal-action-padding-block: var(--calcite-spacing-xxs)}:host([scale=l]){block-size:44px;margin:var(--calcite-spacing-xs);margin-inline-start:var(--calcite-spacing-sm)}:host([scale=l]) .chevron-container,:host([scale=l]) .chevron{min-inline-size:44px;block-size:44px;--calcite-internal-action-padding-block: var(--calcite-spacing-sm-plus)}.chevron{box-sizing:content-box;display:flex;block-size:100%;inline-size:100%;flex-grow:0;cursor:pointer;align-items:center;justify-content:center;border-style:none;outline-color:transparent;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;--calcite-internal-action-padding-block: 0;--calcite-action-background-color: var(--calcite-date-picker-header-action-background-color);--calcite-action-background-color-hover: var(--calcite-date-picker-header-action-background-color-hover);--calcite-action-background-color-press: var(--calcite-date-picker-header-action-background-color-press);--calcite-action-text-color: var(--calcite-date-picker-header-action-text-color);--calcite-action-text-color-press: var(--calcite-date-picker-header-action-text-color-press)}.chevron: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))))}.chevron[aria-disabled=true]{pointer-events:none}.month-year-container{display:flex;block-size:100%;inline-size:100%;flex:1 1 auto;align-items:center;justify-content:flex-start;text-align:center;line-height:1;gap:var(--calcite-spacing-xxs)}.month-year-container.range-calendar{justify-content:center}.year-container{position:relative;display:flex;block-size:100%}.suffix{display:flex;align-items:center}.year,.suffix{margin-inline:var(--calcite-spacing-xxs);font-weight:var(--calcite-font-weight-medium);color:var(--calcite-date-picker-year-text-color, var(--calcite-color-text-1));font-size:var(--calcite-font-size-md);line-height:var(--calcite-font-line-height-fixed-lg)}.year{position:relative;display:inline-block;border-style:none;background-color:transparent;text-align:center;font-family:inherit;outline-color:transparent;inline-size:44px}.year:hover{transition-timing-function:cubic-bezier(.4,0,.2,1);transition-property:outline-color;outline:2px solid var(--calcite-color-border-2);outline-offset:-2px}.year: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))))}.month-select{--calcite-select-internal-border-width: 0;--calcite-select-internal-icon-border-inline-end-width: 0;--calcite-internal-select-spacing-inline: var(--calcite-spacing-xxs);--calcite-select-font-size: var(--calcite-date-picker-month-select-font-size, var(--calcite-font-size-md));--calcite-select-text-color: var(--calcite-date-picker-month-select-text-color, var(--calcite-color-text-1));--calcite-select-icon-color: var(--calcite-date-picker-month-select-icon-color);--calcite-select-icon-color-hover: var(--calcite-date-picker-month-select-icon-color-hover);--calcite-internal-select-spacing-block: var(--calcite-spacing-xxs);--calcite-internal-select-icon-container-padding-inline: var(--calcite-spacing-xxs);--calcite-internal-select-line-height: var(--calcite-font-line-height-fixed-lg);--calcite-internal-select-font-weight: var(--calcite-font-weight-medium)}:host([scale=s]) .month-year-container .month-select{--calcite-internal-select-spacing-inline: var(--calcite-spacing-base);--calcite-select-font-size: var(--calcite-date-picker-month-select-font-size, var(--calcite-font-size));--calcite-internal-select-spacing-block: var(--calcite-spacing-base);--calcite-internal-select-icon-container-padding-inline: var(--calcite-spacing-base);--calcite-internal-select-block-size: 24px;--calcite-internal-select-line-height: var(--calcite-font-line-height-fixed-base)}:host([scale=s]) .month-year-container .year{inline-size:40px}:host([scale=s]) .month-year-container .year,:host([scale=s]) .month-year-container .suffix{font-size:var(--calcite-font-size);line-height:var(--calcite-font-line-height-fixed-base)}:host([scale=l]) .month-year-container .month-select{--calcite-internal-select-spacing-inline: var(--calcite-spacing-sm);--calcite-select-font-size: var(--calcite-date-picker-month-select-font-size, var(--calcite-font-size-lg));--calcite-internal-select-spacing-block: var(--calcite-spacing-sm);--calcite-internal-select-icon-container-padding-inline: var(--calcite-spacing-sm);--calcite-internal-select-block-size: 44px;--calcite-internal-select-line-height: var(--calcite-font-line-height-fixed-xl)}:host([scale=l]) .month-year-container .year{inline-size:48px}:host([scale=l]) .month-year-container .year,:host([scale=l]) .month-year-container .suffix{font-size:var(--calcite-font-size-lg);line-height:var(--calcite-font-line-height-fixed-xl)}:host([hidden]){display:none}[hidden]{display:none}`;
@@ -1,10 +1,10 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { c as customElement } from "../../chunks/runtime.js";
3
- import { ref } from "lit/directives/ref.js";
4
3
  import { css, html } from "lit";
4
+ import { createRef, ref } from "lit/directives/ref.js";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
6
  import { useDirection } from "@arcgis/lumina/controllers";
7
- import { v as nextFrame } from "../../chunks/dom.js";
7
+ import { x as nextFrame } from "../../chunks/dom.js";
8
8
  import { d as defaultMenuPlacement, r as reposition, c as connectFloatingUI, a as disconnectFloatingUI, f as filterValidFlipPlacements, h as hideFloatingUI, F as FloatingCSS } from "../../chunks/floating-ui.js";
9
9
  import { i as isActivationKey } from "../../chunks/key.js";
10
10
  import { c as createObserver, u as updateRefObserver } from "../../chunks/observers.js";
@@ -36,6 +36,7 @@ class Dropdown extends LitElement {
36
36
  this.mutationObserver = createObserver("mutation", () => this.updateItems());
37
37
  this.transitionProp = "opacity";
38
38
  this.resizeObserver = createObserver("resize", (entries) => this.resizeObserverCallback(entries));
39
+ this.triggerSlotRef = createRef();
39
40
  this.onReferenceElementKeyDown = (event) => this.keyDownHandler(event);
40
41
  this.focusSetter = useSetFocus()(this);
41
42
  this.interactiveContainer = useInteractive(this);
@@ -126,6 +127,11 @@ class Dropdown extends LitElement {
126
127
  }
127
128
  updated(changes) {
128
129
  if (changes.has("referenceEl") && this.referenceElementType) {
130
+ const previousReferenceEl = changes.get("referenceEl");
131
+ if (previousReferenceEl instanceof HTMLElement) {
132
+ previousReferenceEl.ariaActiveDescendantElement = null;
133
+ }
134
+ this.syncActiveDescendantOwnerElement();
129
135
  connectFloatingUI(this);
130
136
  }
131
137
  }
@@ -135,6 +141,13 @@ class Dropdown extends LitElement {
135
141
  }
136
142
  disconnectedCallback() {
137
143
  super.disconnectedCallback();
144
+ const triggerSlotEl = this.triggerSlotRef.value;
145
+ if (triggerSlotEl) {
146
+ triggerSlotEl.ariaActiveDescendantElement = null;
147
+ }
148
+ if (this.referenceEl instanceof HTMLElement) {
149
+ this.referenceEl.ariaActiveDescendantElement = null;
150
+ }
138
151
  this.mutationObserver?.disconnect();
139
152
  this.resizeObserver?.disconnect();
140
153
  disconnectFloatingUI(this);
@@ -262,6 +275,7 @@ class Dropdown extends LitElement {
262
275
  }
263
276
  onClose() {
264
277
  this.calciteDropdownClose.emit();
278
+ this.syncActiveDescendantOwnerElement();
265
279
  hideFloatingUI(this);
266
280
  this.topLayer.hide();
267
281
  }
@@ -273,12 +287,16 @@ class Dropdown extends LitElement {
273
287
  return;
274
288
  }
275
289
  this.referenceEl = el;
290
+ this.syncActiveDescendantOwnerElement();
276
291
  connectFloatingUI(this);
277
292
  }
278
293
  setFloatingEl(el) {
279
294
  this.floatingEl = el;
280
295
  connectFloatingUI(this);
281
296
  }
297
+ handleTriggerSlotChange() {
298
+ this.syncActiveDescendantOwnerElement();
299
+ }
282
300
  keyDownHandler(event) {
283
301
  if (!(this.referenceEl instanceof HTMLElement) || !event.composedPath().includes(this.referenceEl)) {
284
302
  return;
@@ -384,6 +402,21 @@ class Dropdown extends LitElement {
384
402
  item.activeDescendant = item === activeItem;
385
403
  });
386
404
  this.activeDescendantElement = activeItem ?? void 0;
405
+ this.syncActiveDescendantOwnerElement();
406
+ }
407
+ syncActiveDescendantOwnerElement() {
408
+ const { referenceEl, referenceElementType } = this;
409
+ const triggerSlotEl = this.triggerSlotRef.value;
410
+ const activeDescendantEl = this.open ? this.activeDescendantElement ?? null : null;
411
+ const referenceOwnerEl = referenceEl instanceof HTMLElement ? referenceEl : null;
412
+ const isReferenceMode = Boolean(referenceElementType);
413
+ if (triggerSlotEl) {
414
+ triggerSlotEl.ariaActiveDescendantElement = isReferenceMode ? null : activeDescendantEl;
415
+ }
416
+ if (!referenceOwnerEl) {
417
+ return;
418
+ }
419
+ referenceOwnerEl.ariaActiveDescendantElement = isReferenceMode ? activeDescendantEl : null;
387
420
  }
388
421
  navigateActiveItem(direction) {
389
422
  const traversableItems = this.getTraversableItems();
@@ -449,7 +482,7 @@ class Dropdown extends LitElement {
449
482
  }
450
483
  render() {
451
484
  const { open } = this;
452
- return this.interactiveContainer({ disabled: this.disabled, children: html`${!this.referenceElementType ? html`<div class=${safeClassMap(CSS.triggerContainer)} @click=${this.toggleClickDropdown} @focusin=${this.openHoverDropdown} @focusout=${this.closeHoverDropdown} @keydown=${this.keyDownHandler} ${ref(this.setReferenceEl)}><slot .ariaActiveDescendantElement=${this.activeDescendantElement ?? void 0} .ariaControlsElements=${this.scrollerEl ? [this.scrollerEl] : void 0} .ariaExpanded=${open} aria-haspopup=menu name=${SLOTS.trigger}></slot></div>` : null}<div class=${safeClassMap({
485
+ return this.interactiveContainer({ disabled: this.disabled, children: html`${!this.referenceElementType ? html`<div class=${safeClassMap(CSS.triggerContainer)} @click=${this.toggleClickDropdown} @focusin=${this.openHoverDropdown} @focusout=${this.closeHoverDropdown} @keydown=${this.keyDownHandler} ${ref(this.setReferenceEl)}><slot .ariaControlsElements=${this.scrollerEl ? [this.scrollerEl] : void 0} .ariaExpanded=${open} aria-haspopup=menu name=${SLOTS.trigger} @slotchange=${this.handleTriggerSlotChange} ${ref(this.triggerSlotRef)}></slot></div>` : null}<div class=${safeClassMap({
453
486
  [CSS.wrapper]: true,
454
487
  [getDimensionClass("width", this.width, this.widthScale)]: !!(this.width || this.widthScale)
455
488
  })} .inert=${!open} popover=manual ${ref(this.setFloatingEl)}><div .ariaLabelledByElements=${this.referenceEl instanceof HTMLElement ? [this.referenceEl] : void 0} class=${safeClassMap({
@@ -14,6 +14,9 @@ class DropdownGroup extends LitElement {
14
14
  constructor() {
15
15
  super();
16
16
  this.mutationObserver = createObserver("mutation", () => this.updateItems());
17
+ this.items = [];
18
+ this.describedItems = /* @__PURE__ */ new Set();
19
+ this.currentItems = /* @__PURE__ */ new Set();
17
20
  this.position = -1;
18
21
  this.scale = "m";
19
22
  this.selectionMode = "single";
@@ -39,9 +42,20 @@ class DropdownGroup extends LitElement {
39
42
  this.updateItems();
40
43
  }
41
44
  }
45
+ updated(changes) {
46
+ if (changes.has("groupTitle")) {
47
+ this.syncItemGroupDescriptions(this.getItems());
48
+ }
49
+ }
42
50
  disconnectedCallback() {
43
51
  super.disconnectedCallback();
44
52
  this.mutationObserver?.disconnect();
53
+ this.describedItems.forEach((item) => {
54
+ item.ariaDescribedByElements = item.ariaDescribedByElements?.filter((el) => el !== this.el) ?? null;
55
+ });
56
+ this.describedItems.clear();
57
+ this.currentItems.clear();
58
+ this.items = [];
45
59
  }
46
60
  updateActiveItemOnChange(event) {
47
61
  this.requestedDropdownGroup = event.detail.requestedDropdownGroup;
@@ -52,7 +66,35 @@ class DropdownGroup extends LitElement {
52
66
  });
53
67
  }
54
68
  updateItems() {
55
- Array.from(this.el.querySelectorAll("calcite-dropdown-item")).forEach((item) => item.selectionMode = this.selectionMode);
69
+ const items = this.getItems();
70
+ this.items = items;
71
+ items.forEach((item) => {
72
+ item.selectionMode = this.selectionMode;
73
+ });
74
+ this.syncItemGroupDescriptions(items);
75
+ }
76
+ getItems() {
77
+ return Array.from(this.el.querySelectorAll("calcite-dropdown-item"));
78
+ }
79
+ syncItemGroupDescriptions(items = this.items) {
80
+ const descriptionEl = this.groupTitle ? this.el : null;
81
+ const currentItems = this.currentItems;
82
+ currentItems.clear();
83
+ items.forEach((item) => currentItems.add(item));
84
+ const staleItems = [];
85
+ this.describedItems.forEach((item) => {
86
+ if (!currentItems.has(item)) {
87
+ item.ariaDescribedByElements = item.ariaDescribedByElements?.filter((el) => el !== this.el) ?? null;
88
+ staleItems.push(item);
89
+ }
90
+ });
91
+ staleItems.forEach((item) => this.describedItems.delete(item));
92
+ currentItems.forEach((item) => {
93
+ const currentDescriptions = item.ariaDescribedByElements?.filter((el) => el !== this.el) ?? [];
94
+ item.ariaDescribedByElements = descriptionEl ? [...currentDescriptions, descriptionEl] : currentDescriptions;
95
+ this.describedItems.add(item);
96
+ });
97
+ this.items = items;
56
98
  }
57
99
  render() {
58
100
  const groupTitle = this.groupTitle ? html`<span aria-hidden=true class=${safeClassMap({ [CSS.title]: true, [CSS.firstTitle]: this.position === 0 })}>${this.groupTitle}</span>` : null;
@@ -6,7 +6,7 @@ import { css, html, nothing } from "lit";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
7
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
8
8
  import { useWatchAttributes, useDirection } from "@arcgis/lumina/controllers";
9
- import { d as setRequestedIcon, k as isPrimaryPointerButton } from "../../chunks/dom.js";
9
+ import { e as setRequestedIcon, l as isPrimaryPointerButton } from "../../chunks/dom.js";
10
10
  import { n as numberKeys } from "../../chunks/key.js";
11
11
  import { g as getLabelText } from "../../chunks/label.js";
12
12
  import { i as isValidNumber, B as BigDecimal, n as numberStringFormatter, p as parseNumberString, s as sanitizeNumberString, a as addLocalizedTrailingDecimalZeros } from "../../chunks/locale.js";
@@ -2,7 +2,7 @@
2
2
  import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
4
  import { LitElement, stringOrBoolean, setAttribute, safeClassMap } from "@arcgis/lumina";
5
- import { d as setRequestedIcon } from "../../chunks/dom.js";
5
+ import { e as setRequestedIcon } from "../../chunks/dom.js";
6
6
  const CSS = {
7
7
  inputMessageIcon: "calcite-input-message-icon"
8
8
  };
@@ -6,7 +6,7 @@ import { css, html, nothing } from "lit";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
7
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
8
8
  import { useWatchAttributes, useDirection } from "@arcgis/lumina/controllers";
9
- import { d as setRequestedIcon, k as isPrimaryPointerButton } from "../../chunks/dom.js";
9
+ import { e as setRequestedIcon, l as isPrimaryPointerButton } from "../../chunks/dom.js";
10
10
  import { n as numberKeys } from "../../chunks/key.js";
11
11
  import { g as getLabelText } from "../../chunks/label.js";
12
12
  import { u as useLabel } from "../../chunks/useLabel.js";
@@ -5,7 +5,7 @@ import { css, html, nothing } from "lit";
5
5
  import { createRef, ref } from "lit/directives/ref.js";
6
6
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
7
7
  import { useWatchAttributes, useDirection } from "@arcgis/lumina/controllers";
8
- import { d as setRequestedIcon } from "../../chunks/dom.js";
8
+ import { e as setRequestedIcon } from "../../chunks/dom.js";
9
9
  import { u as useForm } from "../../chunks/useForm.js";
10
10
  import { g as getLabelText } from "../../chunks/label.js";
11
11
  import { u as useLabel } from "../../chunks/useLabel.js";
@@ -5,7 +5,7 @@ import { keyed } from "lit/directives/keyed.js";
5
5
  import { debounce } from "es-toolkit";
6
6
  import { css, html } from "lit";
7
7
  import { LitElement, createEvent, safeClassMap, safeStyleMap } from "@arcgis/lumina";
8
- import { n as slotChangeHasContent, s as slotChangeHasAssignedElement, h as getRootNode } from "../../chunks/dom.js";
8
+ import { o as slotChangeHasContent, s as slotChangeHasAssignedElement, i as getRootNode } from "../../chunks/dom.js";
9
9
  import { c as createObserver } from "../../chunks/observers.js";
10
10
  import { l as listItemSelector, i as isListItem, a as listSelector, u as updateListItemChildren, b as listItemGroupSelector, e as expandedAncestors } from "../../chunks/utils4.js";
11
11
  import { S as SLOTS$1 } from "../../chunks/resources10.js";
@@ -6,7 +6,7 @@ import { css, html, nothing } from "lit";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
7
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
8
8
  import { useDirection } from "@arcgis/lumina/controllers";
9
- import { s as slotChangeHasAssignedElement, z as getFirstTabbable } from "../../chunks/dom.js";
9
+ import { s as slotChangeHasAssignedElement, A as getFirstTabbable } from "../../chunks/dom.js";
10
10
  import { u as useT9n } from "../../chunks/useT9n.js";
11
11
  import { g as getIconScale } from "../../chunks/component.js";
12
12
  import { s as styles$1 } from "../../chunks/sortable.js";
@@ -3,7 +3,7 @@ import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
4
  import { LitElement } from "@arcgis/lumina";
5
5
  import { useWatchAttributes } from "@arcgis/lumina/controllers";
6
- import { f as focusElementInGroup, a as slotChangeGetAssignedElements, j as focusElement } from "../../chunks/dom.js";
6
+ import { d as focusElementInGroup, a as slotChangeGetAssignedElements, k as focusElement } from "../../chunks/dom.js";
7
7
  import { u as useT9n } from "../../chunks/useT9n.js";
8
8
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
9
9
  const styles = css`:host{display:flex;line-height:var(--calcite-font-line-height-fixed-lg)}ul{margin:0;display:inline-flex;block-size:100%;align-items:center;padding:0}:host([layout=vertical]) ul{display:flex;inline-size:100%;flex-direction:column}:host([hidden]){display:none}[hidden]{display:none}`;
@@ -5,7 +5,7 @@ import { css, html } from "lit";
5
5
  import { createRef, ref } from "lit/directives/ref.js";
6
6
  import { LitElement, safeClassMap, safeStyleMap } from "@arcgis/lumina";
7
7
  import { n as numberStringFormatter } from "../../chunks/locale.js";
8
- import { A as intersects } from "../../chunks/dom.js";
8
+ import { B as intersects } from "../../chunks/dom.js";
9
9
  import { c as createObserver } from "../../chunks/observers.js";
10
10
  import { u as useT9n } from "../../chunks/useT9n.js";
11
11
  const CSS = {