@esri/calcite-components 5.1.0-next.3 → 5.1.0-next.5

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 (269) hide show
  1. package/dist/cdn/{WUW46I4S.js → 22IPJDDL.js} +1 -1
  2. package/dist/cdn/25CWB6HX.js +2 -0
  3. package/dist/cdn/25YVFVC7.js +2 -0
  4. package/dist/cdn/{HJ45IHRA.js → 2GS6R2BX.js} +1 -1
  5. package/dist/cdn/2QARK4VJ.js +2 -0
  6. package/dist/cdn/{NPTVRXRO.js → 2Z4Z3NMS.js} +1 -1
  7. package/dist/cdn/{2SXQFDOQ.js → 3KLZFJXW.js} +1 -1
  8. package/dist/cdn/3L2WKJUB.js +2 -0
  9. package/dist/cdn/{DKD23HP3.js → 3LOKHBAB.js} +1 -1
  10. package/dist/cdn/3NNVHOGK.js +2 -0
  11. package/dist/cdn/{32TBZZTY.js → 3WLFK4RW.js} +1 -1
  12. package/dist/cdn/{A26SXPLB.js → 42NQN6DY.js} +1 -1
  13. package/dist/cdn/462JN5WF.js +2 -0
  14. package/dist/cdn/{XSMU7S2O.js → 464S36UH.js} +1 -1
  15. package/dist/cdn/{QHUMJCWK.js → 4ALKCXNH.js} +1 -1
  16. package/dist/cdn/4GQPJFUJ.js +2 -0
  17. package/dist/cdn/{FH7GL6DM.js → 4GVH7HTQ.js} +1 -1
  18. package/dist/cdn/{C7TED56N.js → 4J6YW6EK.js} +1 -1
  19. package/dist/cdn/{DADGP3DW.js → 52ZOO5HQ.js} +1 -1
  20. package/dist/cdn/5HTRQR7F.js +2 -0
  21. package/dist/cdn/{LDLJRK76.js → 5J2UYJYX.js} +1 -1
  22. package/dist/cdn/{LJIHBKNI.js → 5L7CGWWD.js} +1 -1
  23. package/dist/cdn/{XRVUSKBQ.js → 5SU52VYR.js} +1 -1
  24. package/dist/cdn/5TCLHXAD.js +2 -0
  25. package/dist/cdn/{UMLQ6PVE.js → 6NEHFZMJ.js} +1 -1
  26. package/dist/cdn/{I5LZP3DC.js → 6VRXKEA7.js} +1 -1
  27. package/dist/cdn/{2HPKL5UL.js → 6XJYCX76.js} +1 -1
  28. package/dist/cdn/{RBGGE65K.js → 752PQ7IA.js} +1 -1
  29. package/dist/cdn/{I6XABN6A.js → 7RSGSW76.js} +1 -1
  30. package/dist/cdn/7UOYXJ3K.js +2 -0
  31. package/dist/cdn/{IQ23RSWK.js → A2UZRUUF.js} +1 -1
  32. package/dist/cdn/{EQ4Z4LBA.js → A7IQIXR3.js} +1 -1
  33. package/dist/cdn/{X6LSQXQT.js → AEUCGVU4.js} +1 -1
  34. package/dist/cdn/{VZDUTHQS.js → AJKEEG2Z.js} +1 -1
  35. package/dist/cdn/{QQYOGIVS.js → ALC6PGDZ.js} +1 -1
  36. package/dist/cdn/{WTL6TTVY.js → B55VO4LW.js} +1 -1
  37. package/dist/cdn/{QJ2FRJRU.js → BIEIKUB2.js} +1 -1
  38. package/dist/cdn/{D3ZA3ZSE.js → BPSXK66S.js} +1 -1
  39. package/dist/cdn/BS22M3WT.js +2 -0
  40. package/dist/cdn/{46F46R3T.js → BWDCDFXW.js} +1 -1
  41. package/dist/cdn/C25VFIND.js +2 -0
  42. package/dist/cdn/{3ZYN3227.js → CWQZDXHH.js} +1 -1
  43. package/dist/cdn/CXVISA7Y.js +2 -0
  44. package/dist/cdn/{N234JPQQ.js → D7UER3G6.js} +1 -1
  45. package/dist/cdn/{4ILCK5CI.js → DR7JKZAI.js} +1 -1
  46. package/dist/cdn/{UG6FM2IU.js → DY6SXW3X.js} +1 -1
  47. package/dist/cdn/{RHJW4CXA.js → ED7SQQHM.js} +1 -1
  48. package/dist/cdn/EFNE45MK.js +2 -0
  49. package/dist/cdn/{4DX77VVY.js → EGK4PSW5.js} +1 -1
  50. package/dist/cdn/{4ZGFXXYL.js → EJCQCHH7.js} +1 -1
  51. package/dist/cdn/{XLOC3L55.js → ENCYKNKN.js} +1 -1
  52. package/dist/cdn/EY4MG3NU.js +2 -0
  53. package/dist/cdn/{UQBN3Z6H.js → EZW5GK73.js} +1 -1
  54. package/dist/cdn/{N5SFF63Q.js → FWEFFYYZ.js} +1 -1
  55. package/dist/cdn/{MTIRRGHA.js → G4QI7VSJ.js} +1 -1
  56. package/dist/cdn/{TDDLSMO5.js → GEQ3EBJO.js} +1 -1
  57. package/dist/cdn/GLJVCFQW.js +2 -0
  58. package/dist/cdn/GNDNKP2Q.js +2 -0
  59. package/dist/cdn/H77SNVVI.js +2 -0
  60. package/dist/cdn/{5XFHSV4Z.js → HAUWZRL4.js} +1 -1
  61. package/dist/cdn/{UODBUSON.js → HBUNMGZ3.js} +1 -1
  62. package/dist/cdn/{GY6M2LPM.js → HFGDCX3I.js} +1 -1
  63. package/dist/cdn/{ZJ34LWXC.js → HGRVTRR3.js} +1 -1
  64. package/dist/cdn/{ECURCDZ2.js → HHOMMC4H.js} +1 -1
  65. package/dist/cdn/{Z2R5VRT7.js → HUNZU2OF.js} +1 -1
  66. package/dist/cdn/{YKP66AQ5.js → IFLPCKYL.js} +1 -1
  67. package/dist/cdn/{SK7CWKMU.js → IJP6ZKHZ.js} +1 -1
  68. package/dist/cdn/{RRN6YM7F.js → IU4TJIME.js} +1 -1
  69. package/dist/cdn/J42TNDHM.js +2 -0
  70. package/dist/cdn/J4J65DN5.js +2 -0
  71. package/dist/cdn/{732QLUKT.js → K4R3HUW3.js} +1 -1
  72. package/dist/cdn/KBHLSIAR.js +2 -0
  73. package/dist/cdn/{REAIBS67.js → KKMGV3S6.js} +1 -1
  74. package/dist/cdn/{SDDDIVHA.js → KUC6KV4R.js} +1 -1
  75. package/dist/cdn/{LCPYWUGK.js → KVPLQQ75.js} +1 -1
  76. package/dist/cdn/{GJ5VSZCN.js → KVRUYI63.js} +1 -1
  77. package/dist/cdn/MLQDQZZR.js +2 -0
  78. package/dist/cdn/{YQST67WD.js → MM6LZCYO.js} +1 -1
  79. package/dist/cdn/{ILHS3TD7.js → MQMNX7AM.js} +1 -1
  80. package/dist/cdn/N47CSPB7.js +2 -0
  81. package/dist/cdn/{RTSHUMUI.js → NAFJ5ZYO.js} +1 -1
  82. package/dist/cdn/{HFPBP7XA.js → NIBBUVHR.js} +1 -1
  83. package/dist/cdn/NMIBGEIB.js +2 -0
  84. package/dist/cdn/{ULGKAMEK.js → NNSUCRNU.js} +1 -1
  85. package/dist/cdn/{QOXTJ7PA.js → NT6RQTF7.js} +1 -1
  86. package/dist/cdn/O6ZRTXVO.js +2 -0
  87. package/dist/cdn/{XGISY6QA.js → O75ZRZLS.js} +1 -1
  88. package/dist/cdn/{YUZXLNNW.js → OCFKSX5L.js} +1 -1
  89. package/dist/cdn/{FUL4JV2P.js → ODOOWGRW.js} +1 -1
  90. package/dist/cdn/{IZBELXZC.js → OGOI7JTF.js} +1 -1
  91. package/dist/cdn/{MTQHRNJW.js → OO556Q5A.js} +1 -1
  92. package/dist/cdn/PGUOVY7V.js +2 -0
  93. package/dist/cdn/{EPKWV7TT.js → PJ3GHZ7T.js} +1 -1
  94. package/dist/cdn/PNXNTD3R.js +2 -0
  95. package/dist/cdn/{IF5AIFNS.js → PYD5GHXA.js} +1 -1
  96. package/dist/cdn/{ETXIJA2R.js → Q4EG6G7W.js} +1 -1
  97. package/dist/cdn/{SQLDNSI6.js → Q52IY7SS.js} +1 -1
  98. package/dist/cdn/{U63GYZ74.js → QEPJF6TC.js} +2 -2
  99. package/dist/cdn/{3TLJ5JOP.js → QHZAKDI7.js} +1 -1
  100. package/dist/cdn/{7J3JDTWK.js → QIUVPLV2.js} +1 -1
  101. package/dist/cdn/{RMERVJA5.js → QVTLP2LK.js} +1 -1
  102. package/dist/cdn/R3DLH5BB.js +2 -0
  103. package/dist/cdn/R5DGN3O6.js +2 -0
  104. package/dist/cdn/{MSGQMPT6.js → RGKOGN5W.js} +1 -1
  105. package/dist/cdn/{TG6MK4QD.js → RRNEZXM4.js} +1 -1
  106. package/dist/cdn/{7PFEVHWG.js → RU3YCR42.js} +1 -1
  107. package/dist/cdn/{7CVLFVE5.js → SF7SFEKA.js} +1 -1
  108. package/dist/cdn/SKOYS4HM.js +2 -0
  109. package/dist/cdn/{6KLHDA5V.js → SP22KLIK.js} +1 -1
  110. package/dist/cdn/{YX5LYAIV.js → SVHI2LRC.js} +1 -1
  111. package/dist/cdn/{LKHFQ3U6.js → T2MUZ4UN.js} +1 -1
  112. package/dist/cdn/{N6YVNJ3O.js → TAS3P2HU.js} +1 -1
  113. package/dist/cdn/{MHSIIKU2.js → TBA5ATIB.js} +1 -1
  114. package/dist/cdn/{EYR3DX5M.js → TW2SRS2O.js} +1 -1
  115. package/dist/cdn/{PNBC2B77.js → TZFOTRCX.js} +1 -1
  116. package/dist/cdn/{QGBPRJIT.js → UUHRTJGO.js} +1 -1
  117. package/dist/cdn/{KHE57SV3.js → UVJ3XYK5.js} +1 -1
  118. package/dist/cdn/{R265ZYQR.js → UYYGQ6AY.js} +1 -1
  119. package/dist/cdn/V2PPBU7J.js +2 -0
  120. package/dist/cdn/{2EN543JD.js → VB7GHJWK.js} +1 -1
  121. package/dist/cdn/VIMF6KPF.js +2 -0
  122. package/dist/cdn/{YT6UJRLT.js → VYSJFEY6.js} +1 -1
  123. package/dist/cdn/WI7KEIGV.js +2 -0
  124. package/dist/cdn/WOJJ53FN.js +2 -0
  125. package/dist/cdn/WSRLM2TQ.js +2 -0
  126. package/dist/cdn/{4NDBPQOW.js → X53XDNBL.js} +1 -1
  127. package/dist/cdn/{QUJE6MIQ.js → XPXJW5E3.js} +1 -1
  128. package/dist/cdn/XXVIE4SD.js +2 -0
  129. package/dist/cdn/{B4VMCAZI.js → Y5FMVLYP.js} +1 -1
  130. package/dist/cdn/{NB3LG2PS.js → YBZVV5BN.js} +1 -1
  131. package/dist/cdn/{GIV3RH7X.js → YQOYGBGD.js} +1 -1
  132. package/dist/cdn/{4I67VFAN.js → Z3B276DZ.js} +1 -1
  133. package/dist/cdn/Z6LSD6MR.js +2 -0
  134. package/dist/cdn/ZDZGWD2Y.js +2 -0
  135. package/dist/cdn/{JC2AVKOO.js → ZIKLLQSU.js} +1 -1
  136. package/dist/cdn/{KBSNJSUL.js → ZKCFISUX.js} +1 -1
  137. package/dist/cdn/{6C5JMRKM.js → ZKPCUAN2.js} +1 -1
  138. package/dist/cdn/{FXFRKJEJ.js → ZPJ4FGXO.js} +1 -1
  139. package/dist/cdn/{4PZDI5YW.js → ZVFZSDLX.js} +1 -1
  140. package/dist/cdn/ZZ746O36.js +2 -0
  141. package/dist/cdn/index.js +1 -1
  142. package/dist/chunks/ExpandToggle.js +2 -3
  143. package/dist/chunks/dom.js +22 -29
  144. package/dist/chunks/floating-ui.js +2 -2
  145. package/dist/chunks/input.js +17 -7
  146. package/dist/chunks/label.js +1 -1
  147. package/dist/chunks/openCloseComponent.js +1 -1
  148. package/dist/chunks/runtime.js +4 -4
  149. package/dist/chunks/useFocusTrap.js +1 -1
  150. package/dist/chunks/useSetFocus.js +1 -1
  151. package/dist/chunks/utils2.js +1 -1
  152. package/dist/components/calcite-accordion-item/customElement.js +4 -3
  153. package/dist/components/calcite-action-bar/customElement.d.ts +8 -1
  154. package/dist/components/calcite-action-bar/customElement.js +4 -2
  155. package/dist/components/calcite-action-pad/customElement.js +4 -2
  156. package/dist/components/calcite-alert/customElement.js +1 -1
  157. package/dist/components/calcite-autocomplete/customElement.js +3 -1
  158. package/dist/components/calcite-avatar/customElement.js +1 -1
  159. package/dist/components/calcite-block/customElement.js +1 -1
  160. package/dist/components/calcite-block-group/customElement.js +1 -1
  161. package/dist/components/calcite-button/customElement.js +1 -1
  162. package/dist/components/calcite-carousel/customElement.js +27 -25
  163. package/dist/components/calcite-checkbox/customElement.js +3 -2
  164. package/dist/components/calcite-chip/customElement.js +1 -1
  165. package/dist/components/calcite-chip-group/customElement.js +1 -1
  166. package/dist/components/calcite-color-picker/customElement.js +4 -2
  167. package/dist/components/calcite-color-picker-swatch/customElement.js +1 -1
  168. package/dist/components/calcite-combobox/customElement.d.ts +11 -1
  169. package/dist/components/calcite-combobox/customElement.js +8 -3
  170. package/dist/components/calcite-combobox-item/customElement.js +10 -4
  171. package/dist/components/calcite-date-picker-month-header/customElement.js +1 -1
  172. package/dist/components/calcite-dialog/customElement.d.ts +2 -0
  173. package/dist/components/calcite-dialog/customElement.js +2 -2
  174. package/dist/components/calcite-dropdown/customElement.js +4 -1
  175. package/dist/components/calcite-flow-item/customElement.d.ts +3 -1
  176. package/dist/components/calcite-flow-item/customElement.js +4 -4
  177. package/dist/components/calcite-icon/customElement.js +4 -3
  178. package/dist/components/calcite-inline-editable/customElement.js +1 -1
  179. package/dist/components/calcite-input/customElement.js +4 -3
  180. package/dist/components/calcite-input-date-picker/customElement.js +3 -0
  181. package/dist/components/calcite-input-message/customElement.js +1 -1
  182. package/dist/components/calcite-input-number/customElement.js +4 -3
  183. package/dist/components/calcite-input-text/customElement.d.ts +1 -1
  184. package/dist/components/calcite-input-text/customElement.js +174 -27
  185. package/dist/components/calcite-input-time-picker/customElement.js +3 -2
  186. package/dist/components/calcite-link/customElement.js +4 -3
  187. package/dist/components/calcite-list/customElement.js +1 -1
  188. package/dist/components/calcite-list-item/customElement.js +5 -3
  189. package/dist/components/calcite-menu/customElement.js +1 -1
  190. package/dist/components/calcite-menu-item/customElement.js +4 -2
  191. package/dist/components/calcite-meter/customElement.js +1 -1
  192. package/dist/components/calcite-notice/customElement.js +1 -1
  193. package/dist/components/calcite-panel/customElement.d.ts +4 -2
  194. package/dist/components/calcite-panel/customElement.js +2 -2
  195. package/dist/components/calcite-popover/customElement.js +4 -1
  196. package/dist/components/calcite-progress/customElement.js +3 -2
  197. package/dist/components/calcite-radio-button/customElement.js +3 -3
  198. package/dist/components/calcite-scrim/customElement.js +1 -1
  199. package/dist/components/calcite-segmented-control/customElement.js +5 -3
  200. package/dist/components/calcite-segmented-control-item/customElement.js +1 -1
  201. package/dist/components/calcite-sheet/customElement.js +8 -5
  202. package/dist/components/calcite-shell/customElement.js +1 -1
  203. package/dist/components/calcite-shell-panel/customElement.js +7 -5
  204. package/dist/components/calcite-slider/customElement.js +1 -1
  205. package/dist/components/calcite-sortable-list/customElement.js +1 -1
  206. package/dist/components/calcite-stepper/customElement.js +1 -1
  207. package/dist/components/calcite-stepper-item/customElement.js +2 -2
  208. package/dist/components/calcite-swatch-group/customElement.js +1 -1
  209. package/dist/components/calcite-tab/customElement.js +1 -1
  210. package/dist/components/calcite-tab-nav/customElement.js +4 -2
  211. package/dist/components/calcite-tab-title/customElement.js +5 -3
  212. package/dist/components/calcite-table-cell/customElement.js +3 -2
  213. package/dist/components/calcite-tabs/customElement.js +1 -1
  214. package/dist/components/calcite-time-picker/customElement.js +3 -2
  215. package/dist/components/calcite-tooltip/customElement.js +4 -1
  216. package/dist/components/calcite-tree/customElement.js +1 -1
  217. package/dist/components/calcite-tree-item/customElement.js +4 -2
  218. package/dist/controllers/useForm.d.ts +3 -0
  219. package/dist/docs/api.json +1 -1
  220. package/dist/docs/docs.json +1 -1
  221. package/dist/docs/supported-browsers.json +1 -1
  222. package/dist/docs/vscode.css-custom-data.json +1 -1
  223. package/dist/docs/vscode.html-custom-data.json +1 -1
  224. package/dist/docs/web-types.json +1 -1
  225. package/dist/loader.js +3 -3
  226. package/dist/types/lumina.d.ts +1 -1
  227. package/dist/types/preact.d.ts +1 -1
  228. package/dist/types/react.d.ts +1 -1
  229. package/dist/types/stencil.d.ts +1 -1
  230. package/package.json +6 -6
  231. package/dist/cdn/2CCRLQOV.js +0 -2
  232. package/dist/cdn/2UXQ7FQU.js +0 -2
  233. package/dist/cdn/3KAMTN22.js +0 -2
  234. package/dist/cdn/4ET37OQN.js +0 -2
  235. package/dist/cdn/66NDMEG2.js +0 -2
  236. package/dist/cdn/76VE6QGI.js +0 -2
  237. package/dist/cdn/7AJLMSNL.js +0 -2
  238. package/dist/cdn/ALRQOPMQ.js +0 -2
  239. package/dist/cdn/AO7ZTAVY.js +0 -2
  240. package/dist/cdn/BEHKDUR6.js +0 -2
  241. package/dist/cdn/BKAZFAPN.js +0 -2
  242. package/dist/cdn/CSRCARFW.js +0 -2
  243. package/dist/cdn/EC3GCET5.js +0 -2
  244. package/dist/cdn/EREDWMAC.js +0 -2
  245. package/dist/cdn/EVZEXLBF.js +0 -2
  246. package/dist/cdn/GETIWK4G.js +0 -2
  247. package/dist/cdn/HSNJW6OM.js +0 -2
  248. package/dist/cdn/JLJULYTE.js +0 -2
  249. package/dist/cdn/JRAIIHMU.js +0 -2
  250. package/dist/cdn/JZWQZ5BO.js +0 -2
  251. package/dist/cdn/KFPRUCQK.js +0 -2
  252. package/dist/cdn/LFGU3E4X.js +0 -2
  253. package/dist/cdn/LGDOYO5J.js +0 -2
  254. package/dist/cdn/MOZ5AAJM.js +0 -2
  255. package/dist/cdn/NNVU3JV4.js +0 -2
  256. package/dist/cdn/O5XHZCXZ.js +0 -2
  257. package/dist/cdn/OXJIN4W5.js +0 -2
  258. package/dist/cdn/OXZJMSLQ.js +0 -2
  259. package/dist/cdn/P2745LUP.js +0 -2
  260. package/dist/cdn/RKSFMXT4.js +0 -2
  261. package/dist/cdn/RMKYCARB.js +0 -2
  262. package/dist/cdn/S5KQDAMG.js +0 -2
  263. package/dist/cdn/SUIJIBLR.js +0 -2
  264. package/dist/cdn/TQQTV5HV.js +0 -2
  265. package/dist/cdn/X2HWVZ5U.js +0 -2
  266. package/dist/cdn/XPGAQQQC.js +0 -2
  267. package/dist/cdn/YZ4W6DFR.js +0 -2
  268. package/dist/cdn/Z2BYWKFB.js +0 -2
  269. package/dist/cdn/ZCBRPKAV.js +0 -2
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { q as queryElementRoots, c as closestElementCrossShadowBoundary, r as isBefore } from "./dom.js";
2
+ import { q as queryElementRoots, c as closestElementCrossShadowBoundary, p as isBefore } from "./dom.js";
3
3
  const labelClickEvent = "calciteInternalLabelClick";
4
4
  const labelConnectedEvent = "calciteInternalLabelConnected";
5
5
  const labelDisconnectedEvent = "calciteInternalLabelDisconnected";
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { p as whenTransitionDone } from "./dom.js";
2
+ import { o as whenTransitionDone } from "./dom.js";
3
3
  function isOpen(component) {
4
4
  return component[component.openProp || "open"];
5
5
  }
@@ -60,9 +60,9 @@ function getConfig() {
60
60
  }
61
61
  return effectiveConfig;
62
62
  }
63
- const version = "5.1.0-next.3";
64
- const buildDate = "2026-03-03";
65
- const revision = "1fc02c2ca";
63
+ const version = "5.1.0-next.5";
64
+ const buildDate = "2026-03-10";
65
+ const revision = "599b2441e";
66
66
  function stampVersion() {
67
67
  const config = getConfig();
68
68
  if (config && config.version) {
@@ -85,7 +85,7 @@ if (!isServer) {
85
85
  if (process.env.NODE_ENV !== "test") {
86
86
  queueMicrotask(stampVersion);
87
87
  }
88
- const runtime = makeRuntime({ defaultAssetPath: "https://cdn.jsdelivr.net/npm/@esri/calcite-components@5.1.0-next.3/dist/cdn/", hydratedAttribute: "calcite-hydrated" });
88
+ const runtime = makeRuntime({ defaultAssetPath: "https://cdn.jsdelivr.net/npm/@esri/calcite-components@5.1.0-next.5/dist/cdn/", hydratedAttribute: "calcite-hydrated" });
89
89
  const { customElement, getAssetPath, setAssetPath } = runtime;
90
90
  export {
91
91
  CSS_UTILITY as C,
@@ -1,7 +1,7 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
2
  import { makeGenericController } from "@arcgis/lumina/controllers";
3
3
  import { createFocusTrap } from "focus-trap";
4
- import { t as tabbableOptions, j as focusElement } from "./dom.js";
4
+ import { t as tabbableOptions, i as focusElement } from "./dom.js";
5
5
  import { a 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.1/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 { e as getRootNode, i 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.1/LICENSE.txt */
2
2
  import { isServer } from "lit";
3
- import { o as nodeListToArray } from "./dom.js";
3
+ import { n as nodeListToArray } from "./dom.js";
4
4
  import { A as AllComboboxChildrenSelector, a as ComboboxItemSelector, b as ComboboxItemGroupSelector } from "./resources5.js";
5
5
  function getAncestors(element) {
6
6
  const parent = element.parentElement?.closest(AllComboboxChildrenSelector);
@@ -3,8 +3,9 @@ import { C as CSS_UTILITY, c as customElement } from "../../chunks/runtime.js";
3
3
  import { keyed } from "lit/directives/keyed.js";
4
4
  import { css, html, nothing } from "lit";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
+ import { useDirection } from "@arcgis/lumina/controllers";
6
7
  import { createRef, ref } from "lit/directives/ref.js";
7
- import { c as closestElementCrossShadowBoundary, s as slotChangeHasAssignedElement, g as getElementDir } from "../../chunks/dom.js";
8
+ import { c as closestElementCrossShadowBoundary, s as slotChangeHasAssignedElement } from "../../chunks/dom.js";
8
9
  import { g as getIconScale } from "../../chunks/component.js";
9
10
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
10
11
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -51,6 +52,7 @@ const styles = css`.icon-position--end,.icon-position--start{--calcite-internal-
51
52
  class AccordionItem extends LitElement {
52
53
  constructor() {
53
54
  super();
55
+ this.direction = useDirection();
54
56
  this.headerRef = createRef();
55
57
  this.focusSetter = useSetFocus()(this);
56
58
  this.messages = useT9n();
@@ -173,7 +175,6 @@ class AccordionItem extends LitElement {
173
175
  }
174
176
  render() {
175
177
  const { iconFlipRtl, heading, headingLevel, messages, expanded } = this;
176
- const dir = getElementDir(this.el);
177
178
  const expandIconTitle = expanded ? messages.collapse : messages.expand;
178
179
  const iconStartEl = this.iconStart ? keyed("icon-start", html`<calcite-icon class=${safeClassMap({ [CSS.icon]: true, [CSS.iconStart]: true })} .flipRtl=${iconFlipRtl === "both" || iconFlipRtl === "start"} .icon=${this.iconStart} .scale=${getIconScale(this.scale)}></calcite-icon>`) : null;
179
180
  const iconEndEl = this.iconEnd ? keyed("icon-end", html`<calcite-icon class=${safeClassMap({ [CSS.iconEnd]: true, [CSS.icon]: true })} .flipRtl=${iconFlipRtl === "both" || iconFlipRtl === "end"} .icon=${this.iconEnd} .scale=${getIconScale(this.scale)}></calcite-icon>`) : null;
@@ -183,7 +184,7 @@ class AccordionItem extends LitElement {
183
184
  [CSS.iconType(this.iconType)]: true
184
185
  })}><div class=${safeClassMap({
185
186
  [CSS.header]: true,
186
- [CSS_UTILITY.rtl]: dir === "rtl",
187
+ [CSS_UTILITY.rtl]: this.direction === "rtl",
187
188
  [CSS.headerAppearance(this.appearance)]: true
188
189
  })}>${this.renderActionsStart()}<button aria-controls=${IDS.section} .ariaExpanded=${expanded} class=${safeClassMap(CSS.headerContent)} id=${IDS.sectionToggle} @click=${this.itemHeaderClickHandler} type=button ${ref(this.headerRef)}><div class=${safeClassMap(CSS.headerContainer)}>${this.renderContentStart()}${iconStartEl}<div class=${safeClassMap(CSS.headerText)}>${Heading({ class: CSS.heading, level: headingLevel, children: heading })}${description ? html`<span class=${safeClassMap(CSS.description)}>${description}</span>` : null}</div>${iconEndEl}${this.renderContentEnd()}</div><calcite-icon class=${safeClassMap(CSS.expandIcon)} .icon=${this.iconType === "chevron" ? ICONS.chevronDown : this.iconType === "caret" ? ICONS.caretDown : expanded ? ICONS.minus : ICONS.plus} .scale=${getIconScale(this.scale)} title=${expandIconTitle ?? nothing}></calcite-icon></button>${this.renderActionsEnd()}</div><section aria-labelledby=${IDS.sectionToggle} class=${safeClassMap(CSS.content)} id=${IDS.section}><slot></slot></section></div>`;
189
190
  }
@@ -64,7 +64,14 @@ export abstract class ActionBar extends LitElement {
64
64
  * @default "absolute"
65
65
  */
66
66
  accessor overlayPositioning: OverlayPositioning;
67
- /** Specifies the position of the component depending on the element's `dir` property. */
67
+ /**
68
+ * When `expandDisabled` is `false`, specifies the expand toggle's chevron direction, where:
69
+ *
70
+ * `"start"` positions the expand toggle's chevron away from the start of the component when `expanded` is `false`, and
71
+ * `"end"` positions the expand toggle's chevron away from the end of the component when `expanded` is `false`.
72
+ *
73
+ * When `expanded` is `true`, the chevron direction is reversed.
74
+ */
68
75
  accessor position: Extract<"start" | "end", Position>;
69
76
  /**
70
77
  * Specifies the size of the expand `calcite-action`.
@@ -4,7 +4,8 @@ import { debounce } from "es-toolkit";
4
4
  import { css, html } from "lit";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
6
  import { createRef, ref } from "lit/directives/ref.js";
7
- import { a as getStylePixelValue, s as slotChangeHasAssignedElement, b as slotChangeGetAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
7
+ import { useDirection } from "@arcgis/lumina/controllers";
8
+ import { g as getStylePixelValue, s as slotChangeHasAssignedElement, a as slotChangeGetAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
8
9
  import { c as createObserver } from "../../chunks/observers.js";
9
10
  import { o as overflowActions, q as queryActions, t as toggleChildActionText, E as ExpandToggle } from "../../chunks/ExpandToggle.js";
10
11
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -51,6 +52,7 @@ class ActionBar extends LitElement {
51
52
  super();
52
53
  this.actions = [];
53
54
  this.containerRef = createRef();
55
+ this.direction = useDirection();
54
56
  this.mutationObserver = createObserver("mutation", () => this.mutationObserverHandler());
55
57
  this.cancelable = useCancelable()(this);
56
58
  this.resize = debounce(({ width, height }) => {
@@ -280,7 +282,7 @@ class ActionBar extends LitElement {
280
282
  }
281
283
  renderBottomActionGroup() {
282
284
  const { expanded, expandDisabled, el, position, toggleExpand, scale, layout, messages, actionsEndGroupLabel, overlayPositioning } = this;
283
- const expandToggleNode = !expandDisabled ? ExpandToggle({ collapseLabel: messages.collapseLabel, collapseText: messages.collapse, el, expandLabel: messages.expandLabel, expandText: messages.expand, expanded, position, ref: this.setExpandToggleEl, scale, toggle: toggleExpand, tooltip: this.expandTooltip }) : null;
285
+ const expandToggleNode = !expandDisabled ? ExpandToggle({ collapseLabel: messages.collapseLabel, collapseText: messages.collapse, direction: this.direction, el, expandLabel: messages.expandLabel, expandText: messages.expand, expanded, position, ref: this.setExpandToggleEl, scale, toggle: toggleExpand, tooltip: this.expandTooltip }) : null;
284
286
  return html`<calcite-action-group class=${safeClassMap(CSS.actionGroupEnd)} .hidden=${this.expandDisabled && !this.hasActionsEnd} .label=${actionsEndGroupLabel} .layout=${layout} .overlayPositioning=${overlayPositioning} .scale=${scale}><slot name=${SLOTS.actionsEnd} @slotchange=${this.handleActionsEndSlotChange}></slot><slot name=${SLOTS.expandTooltip} @slotchange=${this.handleTooltipSlotChange}></slot>${expandToggleNode}</calcite-action-group>`;
285
287
  }
286
288
  render() {
@@ -2,7 +2,8 @@
2
2
  import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
4
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
5
- import { b as slotChangeGetAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
5
+ import { useDirection } from "@arcgis/lumina/controllers";
6
+ import { a as slotChangeGetAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
6
7
  import { t as toggleChildActionText, E as ExpandToggle } from "../../chunks/ExpandToggle.js";
7
8
  import { c as createObserver } from "../../chunks/observers.js";
8
9
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -21,6 +22,7 @@ class ActionPad extends LitElement {
21
22
  constructor() {
22
23
  super();
23
24
  this.actions = [];
25
+ this.direction = useDirection();
24
26
  this.mutationObserver = createObserver("mutation", () => this.mutationObserverHandler());
25
27
  this.toggleExpand = () => {
26
28
  this.expanded = !this.expanded;
@@ -165,7 +167,7 @@ class ActionPad extends LitElement {
165
167
  }
166
168
  renderBottomActionGroup() {
167
169
  const { expanded, expandDisabled, messages, el, position, toggleExpand, scale, layout, actionsEndGroupLabel, overlayPositioning } = this;
168
- const expandToggleNode = !expandDisabled ? ExpandToggle({ collapseLabel: messages.collapseLabel, collapseText: messages.collapse, el, expandLabel: messages.expandLabel, expandText: messages.expand, expanded, position, scale, toggle: toggleExpand, tooltip: this.expandTooltip }) : null;
170
+ const expandToggleNode = !expandDisabled ? ExpandToggle({ collapseLabel: messages.collapseLabel, collapseText: messages.collapse, direction: this.direction, el, expandLabel: messages.expandLabel, expandText: messages.expand, expanded, position, scale, toggle: toggleExpand, tooltip: this.expandTooltip }) : null;
169
171
  return expandToggleNode ? html`<calcite-action-group class=${safeClassMap(CSS.actionGroupEnd)} .label=${actionsEndGroupLabel} .layout=${layout} .overlayPositioning=${overlayPositioning} .scale=${scale}><slot name=${SLOTS.expandTooltip} @slotchange=${this.handleTooltipSlotChange}></slot>${expandToggleNode}</calcite-action-group>` : null;
170
172
  }
171
173
  render() {
@@ -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, b 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";
@@ -3,7 +3,7 @@ import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { repeat } from "lit/directives/repeat.js";
4
4
  import { css, nothing, html } from "lit";
5
5
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
6
- import { useWatchAttributes } from "@arcgis/lumina/controllers";
6
+ import { useWatchAttributes, useDirection } from "@arcgis/lumina/controllers";
7
7
  import { debounce } from "es-toolkit";
8
8
  import { escapeRegExp } from "es-toolkit/compat";
9
9
  import { createRef, ref } from "lit/directives/ref.js";
@@ -50,6 +50,7 @@ class Autocomplete extends LitElement {
50
50
  super();
51
51
  this.guid = guid();
52
52
  this.attributeWatch = useWatchAttributes(["autofocus", "enterkeyhint", "inputmode"], this.handleGlobalAttributesChanged);
53
+ this.direction = useDirection();
53
54
  this.inputId = IDS.input(this.guid);
54
55
  this.listId = IDS.list(this.guid);
55
56
  this.messages = useT9n();
@@ -123,6 +124,7 @@ class Autocomplete extends LitElement {
123
124
  async reposition(delayed = false) {
124
125
  const { floatingEl, referenceEl, placement, overlayPositioning, flipPlacements } = this;
125
126
  return reposition(this, {
127
+ direction: this.direction,
126
128
  floatingEl,
127
129
  referenceEl,
128
130
  overlayPositioning,
@@ -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 { d 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 { keyed } from "lit/directives/keyed.js";
4
4
  import { ref } from "lit/directives/ref.js";
5
5
  import { css, html, nothing } from "lit";
6
6
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
7
- import { s as slotChangeHasAssignedElement, b as slotChangeGetAssignedElements } from "../../chunks/dom.js";
7
+ import { s as slotChangeHasAssignedElement, a as slotChangeGetAssignedElements } from "../../chunks/dom.js";
8
8
  import { H as Heading } from "../../chunks/Heading.js";
9
9
  import { g as getIconScale } from "../../chunks/component.js";
10
10
  import { t as toggleOpenClose } from "../../chunks/openCloseComponent.js";
@@ -5,7 +5,7 @@ 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
7
  import { d as disconnectSortableComponent, c as connectSortableComponent } from "../../chunks/sortableComponent.js";
8
- import { h as getRootNode, b as slotChangeGetAssignedElements } from "../../chunks/dom.js";
8
+ import { e as getRootNode, a as slotChangeGetAssignedElements } from "../../chunks/dom.js";
9
9
  import { g as guid } from "../../chunks/guid.js";
10
10
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
11
11
  import { u as useCancelable } from "../../chunks/useCancelable.js";
@@ -10,7 +10,7 @@ import { c as connectLabel, d as disconnectLabel, g as getLabelText } from "../.
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 { h 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
  const CSS = {
@@ -4,7 +4,8 @@ import { repeat } from "lit/directives/repeat.js";
4
4
  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
- import { w as whenAnimationDone, b as slotChangeGetAssignedElements, f as focusElementInGroup, g as getElementDir } from "../../chunks/dom.js";
7
+ import { useDirection } from "@arcgis/lumina/controllers";
8
+ import { w as whenAnimationDone, a as slotChangeGetAssignedElements, f as focusElementInGroup } from "../../chunks/dom.js";
8
9
  import { g as guid } from "../../chunks/guid.js";
9
10
  import { c as createObserver } from "../../chunks/observers.js";
10
11
  import { b as breakpoints } from "../../chunks/responsive.js";
@@ -63,6 +64,7 @@ class Carousel extends LitElement {
63
64
  };
64
65
  this.containerRef = createRef();
65
66
  this.containerId = IDS.host(guid());
67
+ this.direction = useDirection();
66
68
  this.itemContainerRef = createRef();
67
69
  this.resizeHandler = ({ contentRect: { width } }) => {
68
70
  this.setMaxItemsToBreakpoint(width);
@@ -77,7 +79,7 @@ class Carousel extends LitElement {
77
79
  if (notSuspended) {
78
80
  if (time <= 0.01) {
79
81
  time = 1;
80
- this.direction = "forward";
82
+ this.itemDirection = "forward";
81
83
  this.nextItem(false);
82
84
  } else {
83
85
  time = time - 0.01;
@@ -90,7 +92,7 @@ class Carousel extends LitElement {
90
92
  this.messages = useT9n();
91
93
  this.focusSetter = useSetFocus()(this);
92
94
  this.interactiveContainer = useInteractive(this);
93
- this.direction = "standby";
95
+ this.itemDirection = "standby";
94
96
  this.hasMultiple = false;
95
97
  this.items = [];
96
98
  this.maxItems = centerItemsByBreakpoint.xxsmall;
@@ -113,7 +115,7 @@ class Carousel extends LitElement {
113
115
  this.calciteCarouselStop = createEvent({ cancelable: false });
114
116
  }
115
117
  static {
116
- this.properties = { direction: [16, {}, { state: true }], hasMultiple: [16, {}, { state: true }], items: [16, {}, { state: true }], maxItems: [16, {}, { state: true }], playing: [16, {}, { state: true }], selectedIndex: [16, {}, { state: true }], slideDurationRemaining: [16, {}, { state: true }], suspendedDueToFocus: [16, {}, { state: true }], suspendedDueToHover: [16, {}, { state: true }], suspendedSlideDurationRemaining: [16, {}, { state: true }], userPreventsSuspend: [16, {}, { state: true }], arrowType: [3, {}, { reflect: true }], autoplay: [3, {}, { reflect: true }], autoplayDuration: [11, {}, { type: Number, reflect: true }], controlOverlay: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], label: 1, messageOverrides: [0, {}, { attribute: false }], paginationDisabled: [5, {}, { type: Boolean }], paused: [5, {}, { type: Boolean }], selectedItem: [0, {}, { attribute: false }] };
118
+ this.properties = { itemDirection: [16, {}, { state: true }], hasMultiple: [16, {}, { state: true }], items: [16, {}, { state: true }], maxItems: [16, {}, { state: true }], playing: [16, {}, { state: true }], selectedIndex: [16, {}, { state: true }], slideDurationRemaining: [16, {}, { state: true }], suspendedDueToFocus: [16, {}, { state: true }], suspendedDueToHover: [16, {}, { state: true }], suspendedSlideDurationRemaining: [16, {}, { state: true }], userPreventsSuspend: [16, {}, { state: true }], arrowType: [3, {}, { reflect: true }], autoplay: [3, {}, { reflect: true }], autoplayDuration: [11, {}, { type: Number, reflect: true }], controlOverlay: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], label: 1, messageOverrides: [0, {}, { attribute: false }], paginationDisabled: [5, {}, { type: Boolean }], paused: [5, {}, { type: Boolean }], selectedItem: [0, {}, { attribute: false }] };
117
119
  }
118
120
  static {
119
121
  this.styles = styles;
@@ -151,8 +153,8 @@ class Carousel extends LitElement {
151
153
  if (changes.has("autoplay") && this.hasUpdated) {
152
154
  this.autoplayWatcher(this.autoplay);
153
155
  }
154
- if (changes.has("direction") && (this.hasUpdated || this.direction !== "standby")) {
155
- this.directionWatcher(this.direction);
156
+ if (changes.has("itemDirection") && (this.hasUpdated || this.itemDirection !== "standby")) {
157
+ this.itemDirectionWatcher(this.itemDirection);
156
158
  }
157
159
  if (changes.has("playing") && (this.hasUpdated || this.playing !== false)) {
158
160
  this.paused = !this.playing;
@@ -171,12 +173,12 @@ class Carousel extends LitElement {
171
173
  this.handlePause(false);
172
174
  }
173
175
  }
174
- async directionWatcher(direction) {
175
- if (direction === "standby" || !this.itemContainerRef.value) {
176
+ async itemDirectionWatcher(itemDirection) {
177
+ if (itemDirection === "standby" || !this.itemContainerRef.value) {
176
178
  return;
177
179
  }
178
- await whenAnimationDone(this.itemContainerRef.value, direction === "forward" ? "item-forward" : "item-backward");
179
- this.direction = "standby";
180
+ await whenAnimationDone(this.itemContainerRef.value, itemDirection === "forward" ? "item-forward" : "item-backward");
181
+ this.itemDirection = "standby";
180
182
  }
181
183
  suspendWatcher() {
182
184
  if (!this.suspendedDueToFocus && !this.suspendedDueToHover) {
@@ -271,15 +273,15 @@ class Carousel extends LitElement {
271
273
  }
272
274
  }
273
275
  handleArrowClick(event) {
274
- const direction = event.target.dataset.direction;
276
+ const direction = event.target.dataset.itemDirection;
275
277
  if (this.playing) {
276
278
  this.handlePause(true);
277
279
  }
278
280
  if (direction === "next") {
279
- this.direction = "forward";
281
+ this.itemDirection = "forward";
280
282
  this.nextItem(true);
281
283
  } else if (direction === "previous") {
282
- this.direction = "backward";
284
+ this.itemDirection = "backward";
283
285
  this.previousItem();
284
286
  }
285
287
  }
@@ -292,7 +294,7 @@ class Carousel extends LitElement {
292
294
  if (this.playing) {
293
295
  this.handlePause(true);
294
296
  }
295
- this.direction = requestedPosition > this.selectedIndex ? "forward" : "backward";
297
+ this.itemDirection = requestedPosition > this.selectedIndex ? "forward" : "backward";
296
298
  this.setSelectedItem(requestedPosition, true);
297
299
  }
298
300
  toggleRotation() {
@@ -361,7 +363,7 @@ class Carousel extends LitElement {
361
363
  if (!this.hasMultiple) {
362
364
  return;
363
365
  }
364
- this.direction = "forward";
366
+ this.itemDirection = "forward";
365
367
  this.nextItem(true);
366
368
  break;
367
369
  case "ArrowLeft":
@@ -369,7 +371,7 @@ class Carousel extends LitElement {
369
371
  if (!this.hasMultiple) {
370
372
  return;
371
373
  }
372
- this.direction = "backward";
374
+ this.itemDirection = "backward";
373
375
  this.previousItem();
374
376
  break;
375
377
  case "Home":
@@ -377,7 +379,7 @@ class Carousel extends LitElement {
377
379
  if (this.selectedIndex === 0) {
378
380
  return;
379
381
  }
380
- this.direction = "backward";
382
+ this.itemDirection = "backward";
381
383
  this.setSelectedItem(0, true);
382
384
  break;
383
385
  case "End":
@@ -385,7 +387,7 @@ class Carousel extends LitElement {
385
387
  if (this.selectedIndex === lastItem) {
386
388
  return;
387
389
  }
388
- this.direction = "forward";
390
+ this.itemDirection = "forward";
389
391
  this.setSelectedItem(lastItem, true);
390
392
  break;
391
393
  }
@@ -462,25 +464,25 @@ class Carousel extends LitElement {
462
464
  };
463
465
  return html`<div aria-live=off class=${safeClassMap(CSS.paginationAriaLive)} role=status>${messages.paginationStatus.replace("{current}", numberStringFormatter.localize(`${selectedIndex + 1}`)).replace("{total}", numberStringFormatter.localize(`${items.length}`))}</div>`;
464
466
  }
465
- renderArrow(direction) {
466
- const isPrev = direction === "previous";
467
- const dir = getElementDir(this.el);
467
+ renderArrow(itemDirection) {
468
+ const isPrev = itemDirection === "previous";
469
+ const dir = this.direction;
468
470
  const scale = this.arrowType === "edge" ? "m" : "s";
469
471
  const css2 = isPrev ? CSS.pagePrevious : CSS.pageNext;
470
472
  const title = isPrev ? this.messages.previous : this.messages.next;
471
473
  const icon = isPrev ? ICONS.chevronLeft : ICONS.chevronRight;
472
- return html`<button aria-controls=${this.containerId ?? nothing} class=${safeClassMap({ [CSS.paginationItem]: true, [css2]: true })} data-direction=${direction ?? nothing} @click=${this.handleArrowClick} title=${title ?? nothing}><calcite-icon .flipRtl=${dir === "rtl"} .icon=${icon} .scale=${scale}></calcite-icon></button>`;
474
+ return html`<button aria-controls=${this.containerId ?? nothing} class=${safeClassMap({ [CSS.paginationItem]: true, [css2]: true })} data-item-direction=${itemDirection ?? nothing} @click=${this.handleArrowClick} title=${title ?? nothing}><calcite-icon .flipRtl=${dir === "rtl"} .icon=${icon} .scale=${scale}></calcite-icon></button>`;
473
475
  }
474
476
  render() {
475
- const { direction } = this;
477
+ const { itemDirection } = this;
476
478
  return this.interactiveContainer({ disabled: this.disabled, children: html`<div .ariaLabel=${this.label} .ariaLive=${this.playing ? "off" : "polite"} .ariaRoleDescription=${this.messages.carousel} class=${safeClassMap({
477
479
  [CSS.container]: true,
478
480
  [CSS.containerOverlaid]: this.controlOverlay,
479
481
  [CSS.containerEdged]: this.arrowType === "edge"
480
482
  })} @focusin=${this.handleFocusIn} @focusout=${this.handleFocusOut} @keydown=${this.containerKeyDownHandler} @mouseenter=${this.handleMouseIn} @mouseleave=${this.handleMouseOut} role=group tabindex=0 ${ref(this.containerRef)}><section class=${safeClassMap({
481
483
  [CSS.itemContainer]: true,
482
- [CSS.itemContainerForward]: direction === "forward",
483
- [CSS.itemContainerBackward]: direction === "backward"
484
+ [CSS.itemContainerForward]: itemDirection === "forward",
485
+ [CSS.itemContainerBackward]: itemDirection === "backward"
484
486
  })} id=${this.containerId ?? nothing} ${ref(this.itemContainerRef)}><slot @slotchange=${this.handleSlotChange}></slot></section>${this.renderPaginationArea()}${this.arrowType === "edge" && this.hasMultiple && this.renderArrow("previous") || ""}${this.arrowType === "edge" && this.hasMultiple && this.renderArrow("next") || ""}</div>` });
485
487
  }
486
488
  }
@@ -3,7 +3,7 @@ import { C as CSS_UTILITY, c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, svg, html } from "lit";
4
4
  import { createRef, ref } from "lit/directives/ref.js";
5
5
  import { LitElement, createEvent, safeClassMap, nothing } from "@arcgis/lumina";
6
- import { g as getElementDir } from "../../chunks/dom.js";
6
+ import { useDirection } from "@arcgis/lumina/controllers";
7
7
  import { c as connectForm, d as disconnectForm, H as HiddenFormInputSlot } from "../../chunks/form.js";
8
8
  import { i as isActivationKey } from "../../chunks/key.js";
9
9
  import { c as connectLabel, d as disconnectLabel, g as getLabelText } from "../../chunks/label.js";
@@ -20,6 +20,7 @@ class Checkbox extends LitElement {
20
20
  constructor() {
21
21
  super();
22
22
  this.checkedPath = "M5.5 12L2 8.689l.637-.636L5.5 10.727l8.022-7.87.637.637z";
23
+ this.direction = useDirection();
23
24
  this.indeterminatePath = "M13 8v1H3V8z";
24
25
  this.onLabelClick = () => {
25
26
  this.toggle();
@@ -103,7 +104,7 @@ class Checkbox extends LitElement {
103
104
  this.calciteInternalCheckboxFocus.emit(true);
104
105
  }
105
106
  render() {
106
- const rtl = getElementDir(this.el) === "rtl";
107
+ const rtl = this.direction === "rtl";
107
108
  return this.interactiveContainer({ disabled: this.disabled, children: html`<div .ariaChecked=${this.checked} .ariaLabel=${getLabelText(this)} .ariaRequired=${this.required} class=${safeClassMap({
108
109
  [CSS.toggle]: true,
109
110
  [CSS_UTILITY.rtl]: rtl
@@ -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 { i 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, b as slotChangeGetAssignedElements } from "../../chunks/dom.js";
6
+ import { f 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}`;
@@ -7,7 +7,8 @@ import { throttle } from "es-toolkit";
7
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
- import { k as isPrimaryPointerButton, g as getElementDir } from "../../chunks/dom.js";
10
+ import { useDirection } from "@arcgis/lumina/controllers";
11
+ import { j as isPrimaryPointerButton } from "../../chunks/dom.js";
11
12
  import { i as isActivationKey } from "../../chunks/key.js";
12
13
  import { c as clamp, r as remap, a as closeToRangeEdge } from "../../chunks/math.js";
13
14
  import { u as useT9n } from "../../chunks/useT9n.js";
@@ -23,6 +24,7 @@ class ColorPicker extends LitElement {
23
24
  super();
24
25
  this._color = DEFAULT_COLOR;
25
26
  this.colorFieldScopeRef = createRef();
27
+ this.direction = useDirection();
26
28
  this.hueScopeRef = createRef();
27
29
  this.internalColorUpdateContext = null;
28
30
  this.isActiveChannelInputEmpty = false;
@@ -866,7 +868,7 @@ class ColorPicker extends LitElement {
866
868
  const selected = channelMode === activeChannelMode;
867
869
  const isRgb = channelMode === "rgb";
868
870
  const channelAriaLabels = isRgb ? [messages.red, messages.green, messages.blue] : [messages.hue, messages.saturation, messages.value];
869
- const direction = getElementDir(this.el);
871
+ const direction = this.direction;
870
872
  const channelsToRender = alphaChannel ? channels : channels.slice(0, 3);
871
873
  return keyed(channelMode, html`<calcite-tab class=${safeClassMap(CSS.control)} .selected=${selected}><div class=${safeClassMap(CSS.channels)} dir=ltr>${channelsToRender.map((channelValue, index) => {
872
874
  const isAlphaChannel = index === 3;
@@ -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 { d as getModeName } from "../../chunks/dom.js";
8
8
  import { b as hexify } from "../../chunks/utils.js";
9
9
  const CSS = {
10
10
  swatch: "swatch",
@@ -2,7 +2,7 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { FlipPlacement, LogicalPlacement, OverlayPositioning } from "../../utils/floating-ui.js";
4
4
  import type { MutableValidityState } from "../../utils/form.js";
5
- import type { Scale, SelectionMode, Status } from "../interfaces.js";
5
+ import type { Scale, SelectionAppearance, SelectionMode, Status } from "../interfaces.js";
6
6
  import type { IconName } from "../calcite-icon/interfaces.js";
7
7
  import type { ComboboxItem as HTMLCalciteComboboxItemElement } from "../calcite-combobox-item/customElement.js";
8
8
  import type { SelectionDisplay } from "./interfaces.js";
@@ -140,6 +140,16 @@ export abstract class Combobox extends LitElement {
140
140
  accessor selectAllEnabled: boolean;
141
141
  /** The component's selected items. */
142
142
  get selectedItems(): HTMLCalciteComboboxItemElement[];
143
+ /**
144
+ * Specifies the selection appearance, where
145
+ *
146
+ * `"icon"` displays a checkmark or dot, and
147
+ *
148
+ * `"highlight"` displays a background highlight.
149
+ *
150
+ * @default "icon"
151
+ */
152
+ accessor selectionAppearance: Extract<"icon" | "highlight", SelectionAppearance>;
143
153
  /**
144
154
  * When `selectionMode` is `"ancestors"` or `"multiple"`, specifies the display of multiple `calcite-combobox-item` selections, where:
145
155
  *
@@ -8,8 +8,9 @@ import { c as calciteSize48 } from "../../chunks/core.js";
8
8
  import { nothing, html, css } from "lit";
9
9
  import { ref, createRef } from "lit/directives/ref.js";
10
10
  import { safeClassMap, LitElement, createEvent, stringOrBoolean } from "@arcgis/lumina";
11
+ import { useDirection } from "@arcgis/lumina/controllers";
11
12
  import { f as filter } from "../../chunks/filter.js";
12
- import { l as getElementWidth, m as getTextWidth, j as focusElement } from "../../chunks/dom.js";
13
+ import { k as getElementWidth, l as getTextWidth, i as focusElement } from "../../chunks/dom.js";
13
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";
14
15
  import { c as connectForm, a as afterConnectDefaultValueSet, d as disconnectForm, s as submitForm, H as HiddenFormInputSlot } from "../../chunks/form.js";
15
16
  import { g as guid } from "../../chunks/guid.js";
@@ -41,6 +42,7 @@ class Combobox extends LitElement {
41
42
  constructor() {
42
43
  super();
43
44
  this.closeButtonRef = createRef();
45
+ this.direction = useDirection();
44
46
  this.selectAllComboboxItemRef = createRef();
45
47
  this.allSelectedIndicatorChipRef = createRef();
46
48
  this.cancelable = useCancelable()(this);
@@ -138,6 +140,7 @@ class Combobox extends LitElement {
138
140
  this.scale = "m";
139
141
  this.selectAllEnabled = false;
140
142
  this.selectionDisplay = "all";
143
+ this.selectionAppearance = "icon";
141
144
  this.selectionMode = "multiple";
142
145
  this.status = "idle";
143
146
  this.topLayerDisabled = false;
@@ -167,7 +170,7 @@ class Combobox extends LitElement {
167
170
  this.listen("click", this.comboboxFocusHandler);
168
171
  }
169
172
  static {
170
- 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 }], 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 };
173
+ 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 };
171
174
  }
172
175
  static {
173
176
  this.styles = styles;
@@ -235,6 +238,7 @@ class Combobox extends LitElement {
235
238
  async reposition(delayed = false) {
236
239
  const { floatingEl, referenceEl, placement, overlayPositioning, filteredFlipPlacements } = this;
237
240
  return reposition(this, {
241
+ direction: this.direction,
238
242
  floatingEl,
239
243
  referenceEl,
240
244
  overlayPositioning,
@@ -278,7 +282,7 @@ class Combobox extends LitElement {
278
282
  if (changes.has("overlayPositioning") && (this.hasUpdated || this.overlayPositioning !== "absolute") || changes.has("placement") && (this.hasUpdated || this.placement !== defaultMenuPlacement)) {
279
283
  this.reposition(true);
280
284
  }
281
- if (changes.has("selectionMode") || changes.has("scale")) {
285
+ if (changes.has("selectionMode") || changes.has("scale") || changes.has("selectionAppearance")) {
282
286
  this.updateItems();
283
287
  }
284
288
  if (changes.has("flipPlacements")) {
@@ -812,6 +816,7 @@ class Combobox extends LitElement {
812
816
  updateItemProps() {
813
817
  this.getItems(true).forEach((item) => {
814
818
  item.selectionMode = this.selectionMode;
819
+ item.selectionAppearance = this.selectionAppearance;
815
820
  item.scale = this.scale;
816
821
  });
817
822
  this.groupItems.forEach((groupItem, index) => (groupItem.scale = this.scale, groupItem.position = index));