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

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 (481) hide show
  1. package/dist/cdn/2I23BJUK.js +2 -0
  2. package/dist/cdn/2MK42DZ4.js +2 -0
  3. package/dist/cdn/2RVF53XU.js +2 -0
  4. package/dist/cdn/{25YVFVC7.js → 2VEIQ62E.js} +1 -1
  5. package/dist/cdn/36JLOHBC.js +2 -0
  6. package/dist/cdn/{HHOMMC4H.js → 3B5PYTVX.js} +1 -1
  7. package/dist/cdn/3BZBBTUA.js +2 -0
  8. package/dist/cdn/3FXX3SBS.js +2 -0
  9. package/dist/cdn/3JTJC2PS.js +2 -0
  10. package/dist/cdn/3N3O22QG.js +2 -0
  11. package/dist/cdn/3ZXALV6G.js +2 -0
  12. package/dist/cdn/43E5QBXB.js +2 -0
  13. package/dist/cdn/{IJP6ZKHZ.js → 456IFPIW.js} +1 -1
  14. package/dist/cdn/{GNDNKP2Q.js → 4F5KQIRB.js} +1 -1
  15. package/dist/cdn/4HQ5QYH2.js +2 -0
  16. package/dist/cdn/{ZKPCUAN2.js → 4J3DARRE.js} +1 -1
  17. package/dist/cdn/4R54D2BX.js +2 -0
  18. package/dist/cdn/4RTJFM5B.js +2 -0
  19. package/dist/cdn/4TA4AAFT.js +2 -0
  20. package/dist/cdn/52IJCUEV.js +2 -0
  21. package/dist/cdn/5EOFDLJO.js +2 -0
  22. package/dist/cdn/{2QARK4VJ.js → 5M27WGKA.js} +1 -1
  23. package/dist/cdn/5WVRAQRW.js +2 -0
  24. package/dist/cdn/6BFJTIPA.js +2 -0
  25. package/dist/cdn/{5TCLHXAD.js → 6D5PCSHS.js} +1 -1
  26. package/dist/cdn/6TSA7FLB.js +2 -0
  27. package/dist/cdn/{HUNZU2OF.js → 73ORJJZS.js} +1 -1
  28. package/dist/cdn/{5SU52VYR.js → 75SY2WE4.js} +1 -1
  29. package/dist/cdn/{VB7GHJWK.js → 7ECSU3T3.js} +1 -1
  30. package/dist/cdn/{RGKOGN5W.js → 7GZ4RW44.js} +1 -1
  31. package/dist/cdn/{NAFJ5ZYO.js → 7NDXWX7R.js} +1 -1
  32. package/dist/cdn/{5L7CGWWD.js → 7RZYNANK.js} +1 -1
  33. package/dist/cdn/{DY6SXW3X.js → A2KNWLOL.js} +1 -1
  34. package/dist/cdn/{BPSXK66S.js → AEPM5SJO.js} +1 -1
  35. package/dist/cdn/{ZVFZSDLX.js → AEZOU5JE.js} +1 -1
  36. package/dist/cdn/{NIBBUVHR.js → AK66BMBC.js} +1 -1
  37. package/dist/cdn/{RRNEZXM4.js → AR7ZPQQG.js} +1 -1
  38. package/dist/cdn/B6R2YN2X.js +2 -0
  39. package/dist/cdn/{NNSUCRNU.js → BF7DR726.js} +1 -1
  40. package/dist/cdn/BHS72XYT.js +2 -0
  41. package/dist/cdn/{UUHRTJGO.js → C42SNF33.js} +1 -1
  42. package/dist/cdn/C53YAAVC.js +2 -0
  43. package/dist/cdn/CDSIG642.js +2 -0
  44. package/dist/cdn/CJGERVGF.js +4 -0
  45. package/dist/cdn/{3NNVHOGK.js → CRL6VQWS.js} +1 -1
  46. package/dist/cdn/{KVPLQQ75.js → DAQX6BT3.js} +1 -1
  47. package/dist/cdn/{EHIAXJAL.js → DCWL5FUH.js} +1 -1
  48. package/dist/cdn/{AJKEEG2Z.js → DUAPF33E.js} +1 -1
  49. package/dist/cdn/DWPX74WA.js +2 -0
  50. package/dist/cdn/{YQOYGBGD.js → EBGVT22W.js} +1 -1
  51. package/dist/cdn/EW3UPJT7.js +2 -0
  52. package/dist/cdn/FB545PKU.js +2 -0
  53. package/dist/cdn/GFPWU57X.js +2 -0
  54. package/dist/cdn/{O75ZRZLS.js → GTALENKO.js} +1 -1
  55. package/dist/cdn/H5UVCR64.js +2 -0
  56. package/dist/cdn/{ODOOWGRW.js → H6UBX3WZ.js} +1 -1
  57. package/dist/cdn/HGRS2NBC.js +2 -0
  58. package/dist/cdn/{QVTLP2LK.js → HM2E526S.js} +1 -1
  59. package/dist/cdn/HPVBLELP.js +2 -0
  60. package/dist/cdn/{FWEFFYYZ.js → HPWLGQL6.js} +1 -1
  61. package/dist/cdn/{752PQ7IA.js → HULUX4S6.js} +1 -1
  62. package/dist/cdn/{MQMNX7AM.js → I24CZVLP.js} +1 -1
  63. package/dist/cdn/{2GS6R2BX.js → IHLWJXZV.js} +1 -1
  64. package/dist/cdn/{NMIBGEIB.js → IIBZXYLU.js} +1 -1
  65. package/dist/cdn/{SVHI2LRC.js → IRVWWA2A.js} +1 -1
  66. package/dist/cdn/{DR7JKZAI.js → ISMO77VP.js} +1 -1
  67. package/dist/cdn/{2Z4Z3NMS.js → IZEFSP2C.js} +1 -1
  68. package/dist/cdn/JA5TE633.js +2 -0
  69. package/dist/cdn/JKAB4LS7.js +2 -0
  70. package/dist/cdn/{42NQN6DY.js → JLGDNYBI.js} +1 -1
  71. package/dist/cdn/{PNXNTD3R.js → JOTX7MS6.js} +1 -1
  72. package/dist/cdn/{3LOKHBAB.js → K43SJYRB.js} +1 -1
  73. package/dist/cdn/{ALC6PGDZ.js → K7UPFMP3.js} +1 -1
  74. package/dist/cdn/{X53XDNBL.js → KC5UAIPG.js} +1 -1
  75. package/dist/cdn/{6XJYCX76.js → KDMQ3W3P.js} +1 -1
  76. package/dist/cdn/{HGRVTRR3.js → KIIYDDSF.js} +1 -1
  77. package/dist/cdn/KJUZSP7X.js +2 -0
  78. package/dist/cdn/KVNTMFIR.js +2 -0
  79. package/dist/cdn/{OGOI7JTF.js → KWNGJXWC.js} +1 -1
  80. package/dist/cdn/{K4R3HUW3.js → KXSIX7V7.js} +1 -1
  81. package/dist/cdn/LA3AJSXV.js +2 -0
  82. package/dist/cdn/LSOSPUDS.js +2 -0
  83. package/dist/cdn/M4BORA6H.js +2 -0
  84. package/dist/cdn/{3L2WKJUB.js → M77EYDBR.js} +1 -1
  85. package/dist/cdn/{D7UER3G6.js → MAH7GW3L.js} +1 -1
  86. package/dist/cdn/{UYYGQ6AY.js → MFLXU5FA.js} +1 -1
  87. package/dist/cdn/{C25VFIND.js → MRXZATZZ.js} +1 -1
  88. package/dist/cdn/MU5LNKS7.js +2 -0
  89. package/dist/cdn/MUMG74E5.js +2 -0
  90. package/dist/cdn/MVK6LWK5.js +2 -0
  91. package/dist/cdn/{3GV45XL7.js → MYDCGCGV.js} +1 -1
  92. package/dist/cdn/MYKZPZDR.js +2 -0
  93. package/dist/cdn/{CWQZDXHH.js → NIASU3O6.js} +1 -1
  94. package/dist/cdn/{22IPJDDL.js → NKBT2QG4.js} +1 -1
  95. package/dist/cdn/NL6QGGPB.js +2 -0
  96. package/dist/cdn/NPKYZEEF.js +2 -0
  97. package/dist/cdn/{ZPJ4FGXO.js → OFR37WBK.js} +1 -1
  98. package/dist/cdn/{SP22KLIK.js → OL7ZYBX6.js} +1 -1
  99. package/dist/cdn/P6VMV62Z.js +2 -0
  100. package/dist/cdn/{B55VO4LW.js → PDXU6HPZ.js} +1 -1
  101. package/dist/cdn/PIKLS5KR.js +2 -0
  102. package/dist/cdn/PJ4SD5FY.js +2 -0
  103. package/dist/cdn/PLG6IIYK.js +3 -0
  104. package/dist/cdn/{NT6RQTF7.js → PPBHKZJI.js} +1 -1
  105. package/dist/cdn/{H77SNVVI.js → Q75PWKQ3.js} +1 -1
  106. package/dist/cdn/QJBPXLTP.js +2 -0
  107. package/dist/cdn/{Q52IY7SS.js → QLOR2RB5.js} +1 -1
  108. package/dist/cdn/QTHYRIFY.js +2 -0
  109. package/dist/cdn/QVXAQXDL.js +2 -0
  110. package/dist/cdn/R2ZRQO3L.js +2 -0
  111. package/dist/cdn/RGLUZ76B.js +2 -0
  112. package/dist/cdn/{EY4MG3NU.js → RPAL2ENA.js} +1 -1
  113. package/dist/cdn/{ZKCFISUX.js → RRJKRT7F.js} +1 -1
  114. package/dist/cdn/S7EIG7Q5.js +2 -0
  115. package/dist/cdn/{5J2UYJYX.js → SCXKWH7Z.js} +1 -1
  116. package/dist/cdn/{PYD5GHXA.js → SKAIHX6Z.js} +1 -1
  117. package/dist/cdn/{IU4TJIME.js → SXV7WCPS.js} +1 -1
  118. package/dist/cdn/T4Q6C4CT.js +2 -0
  119. package/dist/cdn/TGQJUML7.js +2 -0
  120. package/dist/cdn/TSNOYPVI.js +2 -0
  121. package/dist/cdn/{MM6LZCYO.js → TZ7BLX2N.js} +1 -1
  122. package/dist/cdn/{TZFOTRCX.js → U63LB523.js} +1 -1
  123. package/dist/cdn/U6HPCAAW.js +2 -0
  124. package/dist/cdn/{UVJ3XYK5.js → UPTGE4WC.js} +1 -1
  125. package/dist/cdn/USOHYTXD.js +2 -0
  126. package/dist/cdn/{T2MUZ4UN.js → UY7QVK74.js} +1 -1
  127. package/dist/cdn/VFLSIH3H.js +2 -0
  128. package/dist/cdn/{Y5FMVLYP.js → VHLCDJKY.js} +1 -1
  129. package/dist/cdn/{G4QI7VSJ.js → VRI5YMPE.js} +1 -1
  130. package/dist/cdn/{Z6LSD6MR.js → WBP7WHU4.js} +1 -1
  131. package/dist/cdn/WCTTX5WL.js +2 -0
  132. package/dist/cdn/{RH6ZIP65.js → WGGFNK4Z.js} +1 -1
  133. package/dist/cdn/WXDRYIO2.js +2 -0
  134. package/dist/cdn/WZ6F5SCK.js +2 -0
  135. package/dist/cdn/X2NBQO5I.js +2 -0
  136. package/dist/cdn/{IFLPCKYL.js → X44HUYME.js} +1 -1
  137. package/dist/cdn/XKYXT27V.js +2 -0
  138. package/dist/cdn/XUU2MRGP.js +2 -0
  139. package/dist/cdn/XUYLYALV.js +2 -0
  140. package/dist/cdn/XYFV7S74.js +2 -0
  141. package/dist/cdn/ZEUCKTPG.js +2 -0
  142. package/dist/cdn/ZKHWMGW5.js +2 -0
  143. package/dist/cdn/ZMX2MKUW.js +2 -0
  144. package/dist/cdn/ZOQOJDXL.js +2 -0
  145. package/dist/cdn/ZQCRV5XI.js +2 -0
  146. package/dist/cdn/ZRXGDZZT.js +4 -0
  147. package/dist/cdn/assets/combobox/t9n/messages.ar.json +1 -1
  148. package/dist/cdn/assets/combobox/t9n/messages.bg.json +1 -1
  149. package/dist/cdn/assets/combobox/t9n/messages.bs.json +1 -1
  150. package/dist/cdn/assets/combobox/t9n/messages.ca.json +1 -1
  151. package/dist/cdn/assets/combobox/t9n/messages.cs.json +1 -1
  152. package/dist/cdn/assets/combobox/t9n/messages.da.json +1 -1
  153. package/dist/cdn/assets/combobox/t9n/messages.de.json +1 -1
  154. package/dist/cdn/assets/combobox/t9n/messages.el.json +1 -1
  155. package/dist/cdn/assets/combobox/t9n/messages.en.json +1 -1
  156. package/dist/cdn/assets/combobox/t9n/messages.es.json +1 -1
  157. package/dist/cdn/assets/combobox/t9n/messages.et.json +1 -1
  158. package/dist/cdn/assets/combobox/t9n/messages.fi.json +1 -1
  159. package/dist/cdn/assets/combobox/t9n/messages.fr.json +1 -1
  160. package/dist/cdn/assets/combobox/t9n/messages.he.json +1 -1
  161. package/dist/cdn/assets/combobox/t9n/messages.hr.json +1 -1
  162. package/dist/cdn/assets/combobox/t9n/messages.hu.json +1 -1
  163. package/dist/cdn/assets/combobox/t9n/messages.id.json +1 -1
  164. package/dist/cdn/assets/combobox/t9n/messages.it.json +1 -1
  165. package/dist/cdn/assets/combobox/t9n/messages.ja.json +1 -1
  166. package/dist/cdn/assets/combobox/t9n/messages.json +1 -1
  167. package/dist/cdn/assets/combobox/t9n/messages.ko.json +1 -1
  168. package/dist/cdn/assets/combobox/t9n/messages.lt.json +1 -1
  169. package/dist/cdn/assets/combobox/t9n/messages.lv.json +1 -1
  170. package/dist/cdn/assets/combobox/t9n/messages.nl.json +1 -1
  171. package/dist/cdn/assets/combobox/t9n/messages.no.json +1 -1
  172. package/dist/cdn/assets/combobox/t9n/messages.pl.json +1 -1
  173. package/dist/cdn/assets/combobox/t9n/messages.pt-BR.json +1 -1
  174. package/dist/cdn/assets/combobox/t9n/messages.pt-PT.json +1 -1
  175. package/dist/cdn/assets/combobox/t9n/messages.ro.json +1 -1
  176. package/dist/cdn/assets/combobox/t9n/messages.ru.json +1 -1
  177. package/dist/cdn/assets/combobox/t9n/messages.sk.json +1 -1
  178. package/dist/cdn/assets/combobox/t9n/messages.sl.json +1 -1
  179. package/dist/cdn/assets/combobox/t9n/messages.sr.json +1 -1
  180. package/dist/cdn/assets/combobox/t9n/messages.sv.json +1 -1
  181. package/dist/cdn/assets/combobox/t9n/messages.th.json +1 -1
  182. package/dist/cdn/assets/combobox/t9n/messages.tr.json +1 -1
  183. package/dist/cdn/assets/combobox/t9n/messages.uk.json +1 -1
  184. package/dist/cdn/assets/combobox/t9n/messages.vi.json +1 -1
  185. package/dist/cdn/assets/combobox/t9n/messages.zh-CN.json +1 -1
  186. package/dist/cdn/assets/combobox/t9n/messages.zh-HK.json +1 -1
  187. package/dist/cdn/assets/combobox/t9n/messages.zh-TW.json +1 -1
  188. package/dist/cdn/assets/icon/arcgisQuickcapture16.json +1 -0
  189. package/dist/cdn/assets/icon/arcgisQuickcapture24.json +1 -0
  190. package/dist/cdn/assets/icon/arcgisQuickcapture32.json +1 -0
  191. package/dist/cdn/assets/icon/arcgisSurvey12316.json +1 -0
  192. package/dist/cdn/assets/icon/arcgisSurvey12324.json +1 -0
  193. package/dist/cdn/assets/icon/arcgisSurvey12332.json +1 -0
  194. package/dist/cdn/assets/icon/buttons16.json +1 -0
  195. package/dist/cdn/assets/icon/buttons24.json +1 -0
  196. package/dist/cdn/assets/icon/buttons32.json +1 -0
  197. package/dist/cdn/assets/icon/entityTypes16.json +1 -0
  198. package/dist/cdn/assets/icon/entityTypes24.json +1 -0
  199. package/dist/cdn/assets/icon/entityTypes32.json +1 -0
  200. package/dist/cdn/assets/icon/gpsReceiver16.json +1 -0
  201. package/dist/cdn/assets/icon/gpsReceiver24.json +1 -0
  202. package/dist/cdn/assets/icon/gpsReceiver32.json +1 -0
  203. package/dist/cdn/assets/icon/layerStreamSetting16.json +1 -0
  204. package/dist/cdn/assets/icon/layerStreamSetting24.json +1 -0
  205. package/dist/cdn/assets/icon/layerStreamSetting32.json +1 -0
  206. package/dist/cdn/assets/icon/publish16.json +1 -0
  207. package/dist/cdn/assets/icon/publish24.json +1 -0
  208. package/dist/cdn/assets/icon/publish32.json +1 -0
  209. package/dist/cdn/assets/icon/totalStation16.json +1 -0
  210. package/dist/cdn/assets/icon/totalStation24.json +1 -0
  211. package/dist/cdn/assets/icon/totalStation32.json +1 -0
  212. package/dist/cdn/assets/icon/velocityServer16.json +1 -0
  213. package/dist/cdn/assets/icon/velocityServer24.json +1 -0
  214. package/dist/cdn/assets/icon/velocityServer32.json +1 -0
  215. package/dist/cdn/index.js +2 -2
  216. package/dist/cdn/main.css +1 -1
  217. package/dist/chunks/ClearButton.js +16 -0
  218. package/dist/chunks/ExpandToggle.js +3 -3
  219. package/dist/chunks/Heading.js +3 -3
  220. package/dist/chunks/component.js +1 -1
  221. package/dist/chunks/dom.js +49 -28
  222. package/dist/chunks/floating-ui.js +2 -5
  223. package/dist/chunks/locale.js +29 -12
  224. package/dist/chunks/manager.js +505 -0
  225. package/dist/chunks/resources5.js +2 -1
  226. package/dist/chunks/resources6.js +2 -0
  227. package/dist/chunks/runtime.js +4 -4
  228. package/dist/chunks/useFocusTrap.js +25 -0
  229. package/dist/chunks/useForm.js +327 -0
  230. package/dist/chunks/useFormTrigger.js +25 -0
  231. package/dist/chunks/{sortableComponent.js → useSortable.js} +70 -44
  232. package/dist/chunks/utils.js +6 -6
  233. package/dist/chunks/utils3.js +18 -3
  234. package/dist/components/calcite-accordion-item/customElement.d.ts +6 -6
  235. package/dist/components/calcite-action/customElement.d.ts +14 -12
  236. package/dist/components/calcite-action/customElement.js +8 -14
  237. package/dist/components/calcite-action-bar/customElement.d.ts +12 -3
  238. package/dist/components/calcite-action-bar/customElement.js +47 -16
  239. package/dist/components/calcite-action-group/customElement.d.ts +12 -6
  240. package/dist/components/calcite-action-group/customElement.js +2 -1
  241. package/dist/components/calcite-action-menu/customElement.d.ts +2 -2
  242. package/dist/components/calcite-action-pad/customElement.d.ts +3 -3
  243. package/dist/components/calcite-action-pad/customElement.js +11 -6
  244. package/dist/components/calcite-alert/customElement.d.ts +2 -2
  245. package/dist/components/calcite-alert/customElement.js +1 -1
  246. package/dist/components/calcite-autocomplete/customElement.d.ts +16 -13
  247. package/dist/components/calcite-autocomplete/customElement.js +20 -31
  248. package/dist/components/calcite-autocomplete-item/customElement.d.ts +6 -0
  249. package/dist/components/calcite-autocomplete-item/customElement.js +9 -4
  250. package/dist/components/calcite-block/customElement.d.ts +5 -5
  251. package/dist/components/calcite-block/customElement.js +1 -1
  252. package/dist/components/calcite-block-group/customElement.d.ts +1 -1
  253. package/dist/components/calcite-block-group/customElement.js +4 -11
  254. package/dist/components/calcite-block-group/interfaces.d.ts +2 -6
  255. package/dist/components/calcite-block-section/customElement.d.ts +1 -1
  256. package/dist/components/calcite-button/customElement.d.ts +6 -6
  257. package/dist/components/calcite-button/customElement.js +10 -22
  258. package/dist/components/calcite-card/customElement.d.ts +11 -5
  259. package/dist/components/calcite-card/customElement.js +5 -3
  260. package/dist/components/calcite-card-group/customElement.d.ts +9 -3
  261. package/dist/components/calcite-card-group/customElement.js +11 -1
  262. package/dist/components/calcite-carousel/customElement.d.ts +1 -1
  263. package/dist/components/calcite-checkbox/customElement.d.ts +4 -5
  264. package/dist/components/calcite-checkbox/customElement.js +8 -22
  265. package/dist/components/calcite-chip/customElement.d.ts +2 -2
  266. package/dist/components/calcite-chip/customElement.js +1 -1
  267. package/dist/components/calcite-chip-group/customElement.d.ts +1 -1
  268. package/dist/components/calcite-color-picker/customElement.d.ts +2 -2
  269. package/dist/components/calcite-color-picker/customElement.js +2 -2
  270. package/dist/components/calcite-color-picker-hex-input/customElement.d.ts +1 -1
  271. package/dist/components/calcite-color-picker-hex-input/customElement.js +1 -1
  272. package/dist/components/calcite-color-picker-swatch/customElement.d.ts +1 -1
  273. package/dist/components/calcite-combobox/customElement.d.ts +5 -5
  274. package/dist/components/calcite-combobox/customElement.js +195 -108
  275. package/dist/components/calcite-combobox/index.js +2 -1
  276. package/dist/components/calcite-combobox-item/customElement.d.ts +1 -1
  277. package/dist/components/calcite-combobox-item/customElement.js +1 -1
  278. package/dist/components/calcite-date-picker/customElement.d.ts +1 -1
  279. package/dist/components/calcite-date-picker/customElement.js +4 -14
  280. package/dist/components/calcite-date-picker-day/customElement.d.ts +1 -1
  281. package/dist/components/calcite-date-picker-month/customElement.js +2 -2
  282. package/dist/components/calcite-date-picker-month-header/customElement.js +1 -1
  283. package/dist/components/calcite-dialog/customElement.d.ts +7 -5
  284. package/dist/components/calcite-dialog/customElement.js +4 -2
  285. package/dist/components/calcite-dropdown/customElement.d.ts +15 -5
  286. package/dist/components/calcite-dropdown/customElement.js +165 -90
  287. package/dist/components/calcite-dropdown-item/customElement.d.ts +2 -2
  288. package/dist/components/calcite-dropdown-item/customElement.js +14 -32
  289. package/dist/components/calcite-fab/customElement.d.ts +1 -1
  290. package/dist/components/calcite-fab/customElement.js +1 -1
  291. package/dist/components/calcite-filter/customElement.d.ts +1 -1
  292. package/dist/components/calcite-flow/customElement.d.ts +1 -1
  293. package/dist/components/calcite-flow-item/customElement.d.ts +8 -5
  294. package/dist/components/calcite-flow-item/customElement.js +4 -2
  295. package/dist/components/calcite-graph/customElement.js +1 -1
  296. package/dist/components/calcite-handle/customElement.d.ts +1 -1
  297. package/dist/components/calcite-icon/customElement.d.ts +1 -1
  298. package/dist/components/calcite-inline-editable/customElement.d.ts +2 -2
  299. package/dist/components/calcite-inline-editable/customElement.js +1 -1
  300. package/dist/components/calcite-input/customElement.d.ts +17 -18
  301. package/dist/components/calcite-input/customElement.js +26 -49
  302. package/dist/components/calcite-input/index.js +1 -0
  303. package/dist/components/calcite-input-date-picker/customElement.d.ts +6 -7
  304. package/dist/components/calcite-input-date-picker/customElement.js +66 -75
  305. package/dist/components/calcite-input-message/customElement.d.ts +1 -1
  306. package/dist/components/calcite-input-number/customElement.d.ts +13 -14
  307. package/dist/components/calcite-input-number/customElement.js +22 -48
  308. package/dist/components/calcite-input-number/index.js +1 -0
  309. package/dist/components/calcite-input-text/customElement.d.ts +11 -12
  310. package/dist/components/calcite-input-text/customElement.js +8 -179
  311. package/dist/components/calcite-input-text/index.js +1 -0
  312. package/dist/components/calcite-input-time-picker/customElement.d.ts +6 -7
  313. package/dist/components/calcite-input-time-picker/customElement.js +11 -23
  314. package/dist/components/calcite-input-time-zone/customElement.d.ts +5 -6
  315. package/dist/components/calcite-input-time-zone/customElement.js +21 -19
  316. package/dist/components/calcite-label/customElement.js +1 -1
  317. package/dist/components/calcite-link/customElement.d.ts +9 -9
  318. package/dist/components/calcite-link/customElement.js +28 -23
  319. package/dist/components/calcite-list/customElement.d.ts +1 -1
  320. package/dist/components/calcite-list/customElement.js +33 -14
  321. package/dist/components/calcite-list/interfaces.d.ts +2 -6
  322. package/dist/components/calcite-list-item/customElement.d.ts +2 -2
  323. package/dist/components/calcite-list-item/customElement.js +4 -4
  324. package/dist/components/calcite-list-item-group/customElement.js +1 -1
  325. package/dist/components/calcite-loader/customElement.d.ts +1 -1
  326. package/dist/components/calcite-menu/customElement.d.ts +1 -1
  327. package/dist/components/calcite-menu/customElement.js +1 -1
  328. package/dist/components/calcite-menu-item/customElement.d.ts +3 -3
  329. package/dist/components/calcite-meter/customElement.d.ts +7 -1
  330. package/dist/components/calcite-meter/customElement.js +4 -8
  331. package/dist/components/calcite-navigation/customElement.d.ts +9 -2
  332. package/dist/components/calcite-navigation/customElement.js +42 -3
  333. package/dist/components/calcite-navigation-logo/customElement.d.ts +3 -3
  334. package/dist/components/calcite-navigation-logo/customElement.js +4 -3
  335. package/dist/components/calcite-navigation-user/customElement.d.ts +2 -2
  336. package/dist/components/calcite-navigation-user/customElement.js +11 -6
  337. package/dist/components/calcite-notice/customElement.d.ts +3 -3
  338. package/dist/components/calcite-notice/customElement.js +1 -1
  339. package/dist/components/calcite-pagination/customElement.d.ts +1 -1
  340. package/dist/components/calcite-pagination/customElement.js +1 -1
  341. package/dist/components/calcite-panel/customElement.d.ts +7 -5
  342. package/dist/components/calcite-panel/customElement.js +20 -8
  343. package/dist/components/calcite-popover/customElement.d.ts +2 -2
  344. package/dist/components/calcite-popover/customElement.js +11 -175
  345. package/dist/components/calcite-radio-button/customElement.d.ts +16 -1
  346. package/dist/components/calcite-radio-button/customElement.js +10 -18
  347. package/dist/components/calcite-radio-button-group/customElement.d.ts +1 -1
  348. package/dist/components/calcite-rating/customElement.d.ts +3 -4
  349. package/dist/components/calcite-rating/customElement.js +12 -18
  350. package/dist/components/calcite-segmented-control/customElement.d.ts +3 -4
  351. package/dist/components/calcite-segmented-control/customElement.js +8 -19
  352. package/dist/components/calcite-segmented-control-item/customElement.js +1 -1
  353. package/dist/components/calcite-select/customElement.d.ts +3 -4
  354. package/dist/components/calcite-select/customElement.js +9 -20
  355. package/dist/components/calcite-sheet/customElement.d.ts +3 -3
  356. package/dist/components/calcite-sheet/customElement.js +3 -7
  357. package/dist/components/calcite-shell-panel/customElement.d.ts +3 -3
  358. package/dist/components/calcite-shell-panel/customElement.js +4 -0
  359. package/dist/components/calcite-slider/customElement.d.ts +3 -4
  360. package/dist/components/calcite-slider/customElement.js +12 -22
  361. package/dist/components/calcite-sort-handle/customElement.d.ts +4 -4
  362. package/dist/components/calcite-sort-handle/customElement.js +44 -17
  363. package/dist/components/calcite-sortable-list/customElement.d.ts +1 -1
  364. package/dist/components/calcite-sortable-list/customElement.js +3 -3
  365. package/dist/components/calcite-split-button/customElement.d.ts +8 -8
  366. package/dist/components/calcite-stepper/customElement.d.ts +2 -2
  367. package/dist/components/calcite-stepper/customElement.js +29 -42
  368. package/dist/components/calcite-stepper-item/customElement.d.ts +1 -1
  369. package/dist/components/calcite-stepper-item/customElement.js +2 -8
  370. package/dist/components/calcite-swatch/customElement.d.ts +1 -1
  371. package/dist/components/calcite-switch/customElement.d.ts +4 -4
  372. package/dist/components/calcite-switch/customElement.js +9 -8
  373. package/dist/components/calcite-tab/customElement.d.ts +1 -1
  374. package/dist/components/calcite-tab/customElement.js +1 -1
  375. package/dist/components/calcite-tab-nav/customElement.js +1 -1
  376. package/dist/components/calcite-tab-title/customElement.js +1 -1
  377. package/dist/components/calcite-table/customElement.js +1 -1
  378. package/dist/components/calcite-table-cell/customElement.d.ts +2 -2
  379. package/dist/components/calcite-table-header/customElement.d.ts +2 -2
  380. package/dist/components/calcite-table-row/customElement.d.ts +1 -1
  381. package/dist/components/calcite-tabs/customElement.js +1 -1
  382. package/dist/components/calcite-text-area/customElement.d.ts +13 -14
  383. package/dist/components/calcite-text-area/customElement.js +32 -37
  384. package/dist/components/calcite-tile/customElement.d.ts +1 -1
  385. package/dist/components/calcite-time-picker/customElement.d.ts +1 -1
  386. package/dist/components/calcite-time-picker/customElement.js +2 -2
  387. package/dist/components/calcite-tooltip/customElement.d.ts +15 -2
  388. package/dist/components/calcite-tooltip/customElement.js +24 -315
  389. package/dist/components/calcite-tree-item/customElement.js +2 -3
  390. package/dist/controllers/useSortable.d.ts +7 -0
  391. package/dist/docs/api.json +1 -1
  392. package/dist/docs/docs.json +1 -1
  393. package/dist/docs/supported-browsers.json +1 -1
  394. package/dist/docs/translations.json +1 -1
  395. package/dist/docs/vscode.css-custom-data.json +1 -1
  396. package/dist/docs/vscode.html-custom-data.json +1 -1
  397. package/dist/docs/web-types.json +1 -1
  398. package/dist/loader.js +28 -28
  399. package/dist/types/lumina.d.ts +8 -8
  400. package/dist/types/preact.d.ts +8 -8
  401. package/dist/types/react.d.ts +8 -8
  402. package/dist/types/stencil.d.ts +8 -8
  403. package/package.json +15 -16
  404. package/dist/cdn/25CWB6HX.js +0 -2
  405. package/dist/cdn/3KLZFJXW.js +0 -2
  406. package/dist/cdn/3WLFK4RW.js +0 -2
  407. package/dist/cdn/462JN5WF.js +0 -2
  408. package/dist/cdn/464S36UH.js +0 -2
  409. package/dist/cdn/4ALKCXNH.js +0 -2
  410. package/dist/cdn/4GQPJFUJ.js +0 -2
  411. package/dist/cdn/4GVH7HTQ.js +0 -2
  412. package/dist/cdn/4J6YW6EK.js +0 -2
  413. package/dist/cdn/52ZOO5HQ.js +0 -2
  414. package/dist/cdn/5HTRQR7F.js +0 -2
  415. package/dist/cdn/6NEHFZMJ.js +0 -2
  416. package/dist/cdn/6VRXKEA7.js +0 -2
  417. package/dist/cdn/7RSGSW76.js +0 -2
  418. package/dist/cdn/7UOYXJ3K.js +0 -2
  419. package/dist/cdn/A2UZRUUF.js +0 -2
  420. package/dist/cdn/A7IQIXR3.js +0 -2
  421. package/dist/cdn/AEUCGVU4.js +0 -2
  422. package/dist/cdn/BIEIKUB2.js +0 -2
  423. package/dist/cdn/BS22M3WT.js +0 -2
  424. package/dist/cdn/BWDCDFXW.js +0 -2
  425. package/dist/cdn/CXVISA7Y.js +0 -2
  426. package/dist/cdn/ED7SQQHM.js +0 -3
  427. package/dist/cdn/EFNE45MK.js +0 -2
  428. package/dist/cdn/EGK4PSW5.js +0 -2
  429. package/dist/cdn/EJCQCHH7.js +0 -2
  430. package/dist/cdn/ENCYKNKN.js +0 -4
  431. package/dist/cdn/EZW5GK73.js +0 -2
  432. package/dist/cdn/GEQ3EBJO.js +0 -2
  433. package/dist/cdn/GLJVCFQW.js +0 -2
  434. package/dist/cdn/HAUWZRL4.js +0 -2
  435. package/dist/cdn/HBUNMGZ3.js +0 -2
  436. package/dist/cdn/HFGDCX3I.js +0 -2
  437. package/dist/cdn/J42TNDHM.js +0 -2
  438. package/dist/cdn/J4J65DN5.js +0 -2
  439. package/dist/cdn/KBHLSIAR.js +0 -2
  440. package/dist/cdn/KKMGV3S6.js +0 -2
  441. package/dist/cdn/KUC6KV4R.js +0 -2
  442. package/dist/cdn/KVRUYI63.js +0 -2
  443. package/dist/cdn/MLQDQZZR.js +0 -2
  444. package/dist/cdn/N47CSPB7.js +0 -2
  445. package/dist/cdn/O6ZRTXVO.js +0 -2
  446. package/dist/cdn/OCFKSX5L.js +0 -2
  447. package/dist/cdn/OO556Q5A.js +0 -2
  448. package/dist/cdn/PGUOVY7V.js +0 -2
  449. package/dist/cdn/PJ3GHZ7T.js +0 -2
  450. package/dist/cdn/Q4EG6G7W.js +0 -2
  451. package/dist/cdn/QEPJF6TC.js +0 -3
  452. package/dist/cdn/QHZAKDI7.js +0 -2
  453. package/dist/cdn/QIUVPLV2.js +0 -2
  454. package/dist/cdn/R3DLH5BB.js +0 -2
  455. package/dist/cdn/R5DGN3O6.js +0 -2
  456. package/dist/cdn/RU3YCR42.js +0 -2
  457. package/dist/cdn/SF7SFEKA.js +0 -2
  458. package/dist/cdn/SKOYS4HM.js +0 -2
  459. package/dist/cdn/TAS3P2HU.js +0 -2
  460. package/dist/cdn/TBA5ATIB.js +0 -2
  461. package/dist/cdn/TW2SRS2O.js +0 -2
  462. package/dist/cdn/V2PPBU7J.js +0 -2
  463. package/dist/cdn/VIMF6KPF.js +0 -2
  464. package/dist/cdn/VYSJFEY6.js +0 -2
  465. package/dist/cdn/WI7KEIGV.js +0 -2
  466. package/dist/cdn/WJXZ7BPV.js +0 -2
  467. package/dist/cdn/WOJJ53FN.js +0 -2
  468. package/dist/cdn/WSRLM2TQ.js +0 -2
  469. package/dist/cdn/XPXJW5E3.js +0 -2
  470. package/dist/cdn/XXVIE4SD.js +0 -2
  471. package/dist/cdn/YBZVV5BN.js +0 -2
  472. package/dist/cdn/Z3B276DZ.js +0 -2
  473. package/dist/cdn/ZDZGWD2Y.js +0 -2
  474. package/dist/cdn/ZIKLLQSU.js +0 -2
  475. package/dist/cdn/ZQLGBHLZ.js +0 -2
  476. package/dist/cdn/ZZ746O36.js +0 -2
  477. package/dist/chunks/form.js +0 -268
  478. package/dist/chunks/input.js +0 -40
  479. package/dist/controllers/useForm.d.ts +0 -3
  480. package/dist/utils/form.d.ts +0 -3
  481. package/dist/utils/sortableComponent.d.ts +0 -7
@@ -1,13 +1,11 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
2
  import { c as customElement } from "../../chunks/runtime.js";
3
3
  import { ref } from "lit/directives/ref.js";
4
- import { css, nothing, html } from "lit";
4
+ import { css, html } from "lit";
5
5
  import { LitElement, createEvent, safeClassMap } from "@arcgis/lumina";
6
- import { queryAssignedElements } from "lit/decorators.js";
7
6
  import { useDirection } from "@arcgis/lumina/controllers";
8
- import { f as focusElementInGroup, i as focusElement, r as nextFrame } from "../../chunks/dom.js";
7
+ import { u as nextFrame } from "../../chunks/dom.js";
9
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";
10
- import { g as guid } from "../../chunks/guid.js";
11
9
  import { i as isActivationKey } from "../../chunks/key.js";
12
10
  import { c as createObserver, u as updateRefObserver } from "../../chunks/observers.js";
13
11
  import { t as toggleOpenClose } from "../../chunks/openCloseComponent.js";
@@ -15,6 +13,7 @@ import { g as getDimensionClass } from "../../chunks/dynamicClasses.js";
15
13
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
16
14
  import { u as useInteractive } from "../../chunks/useInteractive.js";
17
15
  import { u as useTopLayer } from "../../chunks/useTopLayer.js";
16
+ import { u as useReferenceElement, r as referenceElementManager } from "../../chunks/manager.js";
18
17
  const SLOTS = {
19
18
  trigger: "trigger"
20
19
  };
@@ -23,32 +22,21 @@ const CSS = {
23
22
  wrapper: "wrapper",
24
23
  triggerContainer: "trigger-container"
25
24
  };
26
- const idPrefix = "calcite-dropdown";
27
- const IDS = {
28
- menuButton: (id) => `${idPrefix}-${id}-menubutton`,
29
- menu: (id) => `${idPrefix}-${id}-menu`
30
- };
31
25
  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:inline-block}.wrapper{inline-size:max-content;display:none;max-inline-size:100vw;max-block-size:100vh;inset-block-start:0;left:0;z-index:var(--calcite-floating-ui-z-index)}@starting-style{.wrapper{opacity:0;inset-block-start:0;left:0}}:host([top-layer-disabled]) .wrapper{--calcite-floating-ui-z-index: var(--calcite-z-index-dropdown)}.wrapper[popover]{padding:0;margin:0;border:none;background-color:transparent;overflow:visible;display:none}.wrapper:popover-open{display:block}.wrapper .calcite-floating-ui-anim{position:relative;transition-duration:var(--calcite-floating-ui-transition);transition-property:inset-block-start,left,opacity,display;transition-behavior:allow-discrete;opacity:0;box-shadow:0 0 16px #00000029;z-index:var(--calcite-z-index);border-radius:.25rem}.wrapper[data-placement^=bottom] .calcite-floating-ui-anim{inset-block-start:-5px}.wrapper[data-placement^=top] .calcite-floating-ui-anim{inset-block-start:5px}.wrapper[data-placement^=left] .calcite-floating-ui-anim{left:5px}.wrapper[data-placement^=right] .calcite-floating-ui-anim{left:-5px}.wrapper[data-placement] .calcite-floating-ui-anim--active{opacity:1;inset-block-start:0;left:0}@starting-style{.wrapper[data-placement] .calcite-floating-ui-anim--active{opacity:0}}.content{max-height:45vh;width:auto;overflow-y:auto;overflow-x:hidden;inline-size:var(--calcite-dropdown-width, var(--calcite-internal-dropdown-width));background-color:var(--calcite-dropdown-background-color, var(--calcite-color-foreground-1))}.trigger-container{position:relative;display:flex;height:100%;flex:1 1 auto;word-wrap:break-word;word-break:break-word}.width-s{--calcite-internal-dropdown-width: 12rem}.width-m{--calcite-internal-dropdown-width: 14rem}.width-l{--calcite-internal-dropdown-width: 16rem}@media(forced-colors:active){:host([open]) .wrapper{border:var(--calcite-border-width-sm) solid canvasText}}:host([hidden]){display:none}[hidden]{display:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}`;
32
- var __defProp = Object.defineProperty;
33
- var __decorateClass = (decorators, target, key, kind) => {
34
- var result = void 0;
35
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
36
- if (decorator = decorators[i])
37
- result = decorator(target, key, result) || result;
38
- if (result) __defProp(target, key, result);
39
- return result;
40
- };
26
+ const manager = referenceElementManager({ click: true, hover: true });
41
27
  class Dropdown extends LitElement {
42
28
  constructor() {
43
29
  super();
30
+ this.referenceElementController = useReferenceElement({ manager })(this);
44
31
  this.direction = useDirection();
45
32
  this.focusLastDropdownItem = false;
33
+ this.activeItemIndex = -1;
46
34
  this.groups = [];
47
- this.guid = guid();
48
35
  this.items = [];
49
36
  this.mutationObserver = createObserver("mutation", () => this.updateItems());
50
37
  this.transitionProp = "opacity";
51
38
  this.resizeObserver = createObserver("resize", (entries) => this.resizeObserverCallback(entries));
39
+ this.onReferenceElementKeyDown = (event) => this.keyDownHandler(event);
52
40
  this.focusSetter = useSetFocus()(this);
53
41
  this.interactiveContainer = useInteractive(this);
54
42
  this.topLayer = useTopLayer({
@@ -72,15 +60,13 @@ class Dropdown extends LitElement {
72
60
  this.calciteDropdownOpen = createEvent({ cancelable: false });
73
61
  this.calciteDropdownSelect = createEvent({ cancelable: false });
74
62
  this.listenOn(window, "click", this.closeCalciteDropdownOnClick);
75
- this.listen("calciteInternalDropdownCloseRequest", this.closeCalciteDropdownOnEvent);
76
63
  this.listenOn(window, "calciteDropdownOpen", this.closeCalciteDropdownOnOpenEvent);
77
64
  this.listen("pointerenter", this.pointerEnterHandler);
78
65
  this.listen("pointerleave", this.pointerLeaveHandler);
79
- this.listen("calciteInternalDropdownItemKeyEvent", this.calciteInternalDropdownItemKeyEvent);
80
66
  this.listen("calciteInternalDropdownItemSelect", this.handleItemSelect);
81
67
  }
82
68
  static {
83
- this.properties = { closeOnSelectDisabled: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], flipPlacements: [0, {}, { attribute: false }], maxItems: [11, {}, { reflect: true, type: Number }], offsetDistance: [11, {}, { type: Number, reflect: true }], offsetSkidding: [11, {}, { reflect: true, type: Number }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placement: [3, {}, { reflect: true }], scale: [3, {}, { reflect: true }], selectedItems: [0, {}, { attribute: false }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], type: [3, {}, { reflect: true }], widthScale: [3, {}, { reflect: true }], width: [3, {}, { reflect: true }] };
69
+ this.properties = { activeDescendantElement: [16, {}, { state: true }], referenceEl: [16, {}, { state: true }], closeOnSelectDisabled: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], flipPlacements: [0, {}, { attribute: false }], maxItems: [11, {}, { reflect: true, type: Number }], offsetDistance: [11, {}, { type: Number, reflect: true }], offsetSkidding: [11, {}, { reflect: true, type: Number }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], placement: [3, {}, { reflect: true }], referenceElement: 1, scale: [3, {}, { reflect: true }], selectedItems: [0, {}, { attribute: false }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], type: [3, {}, { reflect: true }], widthScale: [3, {}, { reflect: true }], width: [3, {}, { reflect: true }] };
84
70
  }
85
71
  static {
86
72
  this.shadowRootOptions = { mode: "open", delegatesFocus: true };
@@ -88,6 +74,9 @@ class Dropdown extends LitElement {
88
74
  static {
89
75
  this.styles = styles;
90
76
  }
77
+ get referenceElementType() {
78
+ return this.referenceElement ? this.type : null;
79
+ }
91
80
  async reposition(delayed = false) {
92
81
  const { filteredFlipPlacements, floatingEl, offsetDistance, offsetSkidding, overlayPositioning, placement, referenceEl } = this;
93
82
  return reposition(this, {
@@ -103,7 +92,7 @@ class Dropdown extends LitElement {
103
92
  }, delayed);
104
93
  }
105
94
  async setFocus(options) {
106
- return this.focusSetter(() => this.referenceEl, options);
95
+ return this.focusSetter(() => this.referenceEl instanceof HTMLElement ? this.referenceEl : this.floatingEl, options);
107
96
  }
108
97
  connectedCallback() {
109
98
  super.connectedCallback();
@@ -131,6 +120,14 @@ class Dropdown extends LitElement {
131
120
  if (changes.has("scale") && (this.hasUpdated || this.scale !== "m")) {
132
121
  this.handlePropsChange();
133
122
  }
123
+ if (changes.has("referenceElement") && !this.referenceElement && this.open) {
124
+ this.topLayer.hide();
125
+ }
126
+ }
127
+ updated(changes) {
128
+ if (changes.has("referenceEl") && this.referenceElementType) {
129
+ connectFloatingUI(this);
130
+ }
134
131
  }
135
132
  loaded() {
136
133
  this.updateSelectedItems();
@@ -163,29 +160,25 @@ class Dropdown extends LitElement {
163
160
  this.updateGroupProps();
164
161
  }
165
162
  closeCalciteDropdownOnClick(event) {
166
- if (this.disabled || !this.open || event.composedPath().includes(this.el)) {
163
+ if (this.referenceElementType || this.disabled || !this.open || event.composedPath().includes(this.el)) {
167
164
  return;
168
165
  }
169
- this.closeCalciteDropdown(false);
170
- }
171
- closeCalciteDropdownOnEvent(event) {
172
166
  this.closeCalciteDropdown();
173
- event.stopPropagation();
174
167
  }
175
168
  closeCalciteDropdownOnOpenEvent(event) {
176
- if (event.composedPath().includes(this.el)) {
169
+ if (this.referenceElementType || event.composedPath().includes(this.el)) {
177
170
  return;
178
171
  }
179
- this.open = false;
172
+ this.closeCalciteDropdown();
180
173
  }
181
174
  pointerEnterHandler() {
182
- if (this.disabled || this.type !== "hover") {
175
+ if (this.referenceElementType || this.disabled || this.type !== "hover") {
183
176
  return;
184
177
  }
185
- this.toggleDropdown();
178
+ this.open = true;
186
179
  }
187
180
  pointerLeaveHandler() {
188
- if (this.disabled || this.type !== "hover") {
181
+ if (this.referenceElementType || this.disabled || this.type !== "hover") {
189
182
  return;
190
183
  }
191
184
  this.closeCalciteDropdown();
@@ -193,34 +186,12 @@ class Dropdown extends LitElement {
193
186
  getTraversableItems() {
194
187
  return this.items.filter((item) => !item.disabled && !item.hidden);
195
188
  }
196
- calciteInternalDropdownItemKeyEvent(event) {
197
- const { keyboardEvent } = event.detail;
198
- const target = keyboardEvent.target;
199
- const traversableItems = this.getTraversableItems();
200
- switch (keyboardEvent.key) {
201
- case "Tab":
202
- this.open = false;
203
- this.updateTabIndexOfItems(target);
204
- break;
205
- case "ArrowDown":
206
- focusElementInGroup(traversableItems, target, "next");
207
- break;
208
- case "ArrowUp":
209
- focusElementInGroup(traversableItems, target, "previous");
210
- break;
211
- case "Home":
212
- focusElementInGroup(traversableItems, target, "first");
213
- break;
214
- case "End":
215
- focusElementInGroup(traversableItems, target, "last");
216
- break;
217
- }
218
- event.stopPropagation();
219
- }
220
- handleItemSelect(event) {
189
+ async handleItemSelect(event) {
221
190
  this.updateSelectedItems();
191
+ this.syncActiveItemFromTraversableItems();
222
192
  event.stopPropagation();
223
193
  this.calciteDropdownSelect.emit();
194
+ await this.setFocus();
224
195
  if (!this.closeOnSelectDisabled) {
225
196
  this.closeCalciteDropdown();
226
197
  }
@@ -232,6 +203,7 @@ class Dropdown extends LitElement {
232
203
  updateItems() {
233
204
  this.items = this.groups.map((group) => Array.from(group?.querySelectorAll("calcite-dropdown-item"))).reduce((previousValue, currentValue) => [...previousValue, ...currentValue], []);
234
205
  this.updateSelectedItems();
206
+ this.syncActiveItemFromTraversableItems();
235
207
  this.reposition(true);
236
208
  this.items.forEach((item) => item.scale = this.scale);
237
209
  }
@@ -258,7 +230,7 @@ class Dropdown extends LitElement {
258
230
  }
259
231
  setDropdownWidth() {
260
232
  const { referenceEl, scrollerEl } = this;
261
- if (!scrollerEl || !referenceEl) {
233
+ if (!scrollerEl || !(referenceEl instanceof HTMLElement)) {
262
234
  return;
263
235
  }
264
236
  scrollerEl.style.minWidth = `${referenceEl.clientWidth}px`;
@@ -278,7 +250,7 @@ class Dropdown extends LitElement {
278
250
  this.transitionEl = el;
279
251
  }
280
252
  onBeforeOpen() {
281
- this.focusOnFirstActiveOrDefaultItem();
253
+ this.setInitialActiveItem();
282
254
  this.calciteDropdownBeforeOpen.emit();
283
255
  this.topLayer.show();
284
256
  }
@@ -294,7 +266,9 @@ class Dropdown extends LitElement {
294
266
  this.topLayer.hide();
295
267
  }
296
268
  setReferenceEl(el) {
297
- updateRefObserver(this.resizeObserver, this.referenceEl, el);
269
+ const previousReferenceEl = this.referenceEl instanceof HTMLElement ? this.referenceEl : null;
270
+ const nextReferenceEl = el instanceof HTMLElement ? el : null;
271
+ updateRefObserver(this.resizeObserver, previousReferenceEl, nextReferenceEl);
298
272
  this.referenceEl = el;
299
273
  connectFloatingUI(this);
300
274
  }
@@ -303,30 +277,59 @@ class Dropdown extends LitElement {
303
277
  connectFloatingUI(this);
304
278
  }
305
279
  keyDownHandler(event) {
306
- if (!event.composedPath().includes(this.referenceEl)) {
280
+ if (!(this.referenceEl instanceof HTMLElement) || !event.composedPath().includes(this.referenceEl)) {
307
281
  return;
308
282
  }
309
283
  const { defaultPrevented, key } = event;
310
284
  if (defaultPrevented) {
311
285
  return;
312
286
  }
313
- if (key === "Escape") {
287
+ if (this.open && key === "Escape") {
314
288
  this.closeCalciteDropdown();
315
289
  event.preventDefault();
316
290
  return;
317
291
  }
318
- if (this.open && event.shiftKey && key === "Tab") {
319
- this.closeCalciteDropdown();
292
+ if (!this.open && isActivationKey(key)) {
293
+ this.open = true;
320
294
  event.preventDefault();
321
295
  return;
322
296
  }
323
- if (isActivationKey(key)) {
324
- this.toggleDropdown();
325
- event.preventDefault();
326
- } else if (key === "ArrowDown" || key === "ArrowUp") {
297
+ if (!this.open && (key === "ArrowDown" || key === "ArrowUp")) {
327
298
  event.preventDefault();
328
299
  this.focusLastDropdownItem = key === "ArrowUp";
329
300
  this.open = true;
301
+ return;
302
+ }
303
+ if (!this.open) {
304
+ return;
305
+ }
306
+ if (key === "Tab") {
307
+ this.closeCalciteDropdown();
308
+ return;
309
+ }
310
+ if (key === "ArrowDown") {
311
+ event.preventDefault();
312
+ this.navigateActiveItem("next");
313
+ return;
314
+ }
315
+ if (key === "ArrowUp") {
316
+ event.preventDefault();
317
+ this.navigateActiveItem("previous");
318
+ return;
319
+ }
320
+ if (key === "Home") {
321
+ event.preventDefault();
322
+ this.navigateActiveItem("first");
323
+ return;
324
+ }
325
+ if (key === "End") {
326
+ event.preventDefault();
327
+ this.navigateActiveItem("last");
328
+ return;
329
+ }
330
+ if (isActivationKey(key)) {
331
+ event.preventDefault();
332
+ this.activateActiveItem();
330
333
  }
331
334
  }
332
335
  updateSelectedItems() {
@@ -336,48 +339,120 @@ class Dropdown extends LitElement {
336
339
  const style = last.getBoundingClientRect();
337
340
  return last.offsetTop + style.height;
338
341
  }
339
- closeCalciteDropdown(focusTrigger = true) {
342
+ closeCalciteDropdown() {
340
343
  this.open = false;
341
- if (focusTrigger) {
342
- focusElement(this.triggerEls[0]);
343
- }
344
+ this.setActiveItemByIndex(-1);
344
345
  }
345
- async focusOnFirstActiveOrDefaultItem() {
346
- const selectedItem = this.getTraversableItems().find((item) => item.selected);
347
- const target = selectedItem || (this.focusLastDropdownItem ? this.items.at(-1) : this.items[0]);
346
+ async setInitialActiveItem() {
347
+ const traversableItems = this.getTraversableItems();
348
+ const target = this.focusLastDropdownItem ? traversableItems.at(-1) : traversableItems[0];
348
349
  this.focusLastDropdownItem = false;
350
+ if (!target) {
351
+ this.setActiveItemByIndex(-1);
352
+ return;
353
+ }
354
+ const targetIndex = traversableItems.findIndex((item) => item === target);
355
+ this.setActiveItemByIndex(targetIndex);
356
+ await this.scrollActiveItemIntoView(target);
357
+ }
358
+ syncActiveItemFromTraversableItems() {
359
+ const traversableItems = this.getTraversableItems();
360
+ if (!traversableItems.length) {
361
+ this.setActiveItemByIndex(-1);
362
+ return;
363
+ }
364
+ if (this.activeItemIndex < 0 || this.activeItemIndex >= traversableItems.length) {
365
+ this.setActiveItemByIndex(0);
366
+ return;
367
+ }
368
+ this.updateActiveDescendantElement(traversableItems[this.activeItemIndex]);
369
+ }
370
+ setActiveItemByIndex(index) {
371
+ this.activeItemIndex = index;
372
+ const traversableItems = this.getTraversableItems();
373
+ const activeItem = index >= 0 ? traversableItems[index] : null;
374
+ this.updateActiveDescendantElement(activeItem);
375
+ }
376
+ updateActiveDescendantElement(activeItem) {
377
+ this.items.forEach((item) => {
378
+ item.activeDescendant = item === activeItem;
379
+ });
380
+ this.activeDescendantElement = activeItem ?? null;
381
+ }
382
+ navigateActiveItem(direction) {
383
+ const traversableItems = this.getTraversableItems();
384
+ if (!traversableItems.length) {
385
+ return;
386
+ }
387
+ const totalItems = traversableItems.length;
388
+ let index = this.activeItemIndex;
389
+ if (index < 0 || index >= totalItems) {
390
+ index = direction === "previous" || direction === "last" ? totalItems - 1 : 0;
391
+ } else if (direction === "next") {
392
+ index = (index + 1) % totalItems;
393
+ } else if (direction === "previous") {
394
+ index = (index - 1 + totalItems) % totalItems;
395
+ } else if (direction === "first") {
396
+ index = 0;
397
+ } else if (direction === "last") {
398
+ index = totalItems - 1;
399
+ }
400
+ const activeItem = traversableItems[index];
401
+ this.setActiveItemByIndex(index);
402
+ void this.scrollActiveItemIntoView(activeItem);
403
+ }
404
+ async scrollActiveItemIntoView(target) {
349
405
  if (!target) {
350
406
  return;
351
407
  }
352
408
  await this.updateComplete;
353
409
  await nextFrame();
354
410
  await nextFrame();
355
- await focusElement(target);
356
411
  target.scrollIntoView({ block: "nearest" });
357
412
  }
358
- toggleDropdown() {
359
- this.open = !this.open;
413
+ activateActiveItem() {
414
+ const traversableItems = this.getTraversableItems();
415
+ const activeItem = traversableItems[this.activeItemIndex] || traversableItems[0];
416
+ if (!activeItem) {
417
+ return;
418
+ }
419
+ this.setActiveItemByIndex(traversableItems.findIndex((item) => item === activeItem));
420
+ activeItem.activateItem();
360
421
  }
361
- updateTabIndexOfItems(target) {
362
- this.items.forEach((item) => {
363
- item.tabIndex = target !== item ? -1 : 0;
364
- });
422
+ openHoverDropdown() {
423
+ if (this.open || this.disabled || this.type !== "hover") {
424
+ return;
425
+ }
426
+ this.open = true;
427
+ }
428
+ closeHoverDropdown(event) {
429
+ if (!this.open || this.disabled || this.type !== "hover") {
430
+ return;
431
+ }
432
+ const relatedTarget = event.relatedTarget;
433
+ if (relatedTarget && (this.el.contains(relatedTarget) || this.referenceEl != null && this.referenceEl instanceof HTMLElement && this.referenceEl.contains(relatedTarget))) {
434
+ return;
435
+ }
436
+ this.closeCalciteDropdown();
437
+ }
438
+ toggleClickDropdown() {
439
+ if (this.disabled || this.type !== "click") {
440
+ return;
441
+ }
442
+ this.open = !this.open;
365
443
  }
366
444
  render() {
367
- const { open, guid: guid2 } = this;
368
- return this.interactiveContainer({ disabled: this.disabled, children: html`<div class=${safeClassMap(CSS.triggerContainer)} id=${IDS.menuButton(guid2) ?? nothing} @click=${this.toggleDropdown} @keydown=${this.keyDownHandler} ${ref(this.setReferenceEl)}><slot aria-controls=${IDS.menu(guid2) ?? nothing} .ariaExpanded=${open} aria-haspopup=menu name=${SLOTS.trigger}></slot></div><div .ariaHidden=${!open} class=${safeClassMap({
445
+ const { open } = this;
446
+ 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 ?? null} .ariaControlsElements=${this.scrollerEl ? [this.scrollerEl] : void 0} .ariaExpanded=${open} aria-haspopup=menu name=${SLOTS.trigger}></slot></div>` : null}<div class=${safeClassMap({
369
447
  [CSS.wrapper]: true,
370
448
  [getDimensionClass("width", this.width, this.widthScale)]: !!(this.width || this.widthScale)
371
- })} popover=manual ${ref(this.setFloatingEl)}><div aria-labelledby=${IDS.menuButton(guid2) ?? nothing} class=${safeClassMap({
449
+ })} .inert=${!open} popover=manual ${ref(this.setFloatingEl)}><div .ariaLabelledByElements=${this.referenceEl instanceof HTMLElement ? [this.referenceEl] : void 0} class=${safeClassMap({
372
450
  [CSS.content]: true,
373
451
  [FloatingCSS.animation]: true,
374
452
  [FloatingCSS.animationActive]: open
375
- })} id=${IDS.menu(guid2) ?? nothing} role=menu ${ref(this.setScrollerAndTransitionEl)}><slot @slotchange=${this.updateGroups}></slot></div></div>` });
453
+ })} role=menu ${ref(this.setScrollerAndTransitionEl)}><slot @slotchange=${this.updateGroups}></slot></div></div>` });
376
454
  }
377
455
  }
378
- __decorateClass([
379
- queryAssignedElements({ slot: SLOTS.trigger })
380
- ], Dropdown.prototype, "triggerEls");
381
456
  customElement("calcite-dropdown", Dropdown);
382
457
  export {
383
458
  Dropdown
@@ -6,7 +6,7 @@ import type { IconName } from "../calcite-icon/interfaces.js";
6
6
  /**
7
7
  * @cssproperty [--calcite-dropdown-item-background-color-hover] - Specifies the component's background color when hovered.
8
8
  * @cssproperty [--calcite-dropdown-item-background-color-press] - Specifies the component's background color when `selected` or active.
9
- * @cssproperty [--calcite-dropdown-item-icon-color-hover] - [Deprecated] Specifies the color of the component's selection icon when hovered.
9
+ * @cssproperty [--calcite-dropdown-item-icon-color-hover] - [Deprecated] in v5.0.0, removal target v6.0.0 - Specifies the color of the component's selection icon when hovered.
10
10
  * @cssproperty [--calcite-dropdown-item-icon-color-press] - Specifies the color of the component's selection icon when `selected` or active.
11
11
  * @cssproperty [--calcite-dropdown-item-text-color-press] - Specifies the component's text color when `selected` or active.
12
12
  * @cssproperty [--calcite-dropdown-item-text-color] - Specifies the component's text color.
@@ -47,7 +47,7 @@ export abstract class DropdownItem extends LitElement {
47
47
  * Sets focus on the component.
48
48
  *
49
49
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
50
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
50
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
51
51
  */
52
52
  setFocus(options?: FocusOptions): Promise<void>;
53
53
  /** Fires when the component is selected. */
@@ -8,7 +8,7 @@ import { g as getIconScale } from "../../chunks/component.js";
8
8
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
9
9
  import { u as useInteractive } from "../../chunks/useInteractive.js";
10
10
  import { C as CSS, I as ICONS } from "../../chunks/resources7.js";
11
- const styles = css`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:flex;flex-grow:1;align-items:center;outline:2px solid transparent;outline-offset:2px}.container{position:relative;display:flex;flex-grow:1;cursor:pointer;align-items:center;text-decoration-line:none;color:var(--calcite-dropdown-item-text-color, var(--calcite-color-text-1));text-align:start}.container a{outline:none;position:relative;display:flex;flex-grow:1;cursor:pointer;align-items:center;text-decoration-line:none;color:var(--calcite-dropdown-item-text-color, var(--calcite-color-text-1))}.content{flex:1 1 auto}.icon{position:relative;opacity:0;transition-timing-function:cubic-bezier(.4,0,.2,1);transform:scale(.9)}.icon--start,.icon--end{--calcite-icon-color: var(--calcite-dropdown-item-text-color, var(--calcite-color-text-3))}:host([scale=s]) .container{padding-block:.25rem;padding-inline:.5rem;font-size:var(--calcite-font-size-relative-sm);line-height:var(--calcite-font-line-height-sm)}:host([scale=s]) .icon,:host([scale=s]) .icon--start{padding-inline-end:var(--calcite-spacing-sm)}:host([scale=s]) .icon--end{padding-inline-start:var(--calcite-spacing-sm)}:host([scale=m]) .container{padding-block:.5rem;padding-inline:.75rem;font-size:var(--calcite-font-size-relative-base);line-height:var(--calcite-font-line-height-base)}:host([scale=m]) .icon,:host([scale=m]) .icon--start{padding-inline-end:var(--calcite-spacing-md)}:host([scale=m]) .icon--end{padding-inline-start:var(--calcite-spacing-md)}:host([scale=l]) .container{padding-block:.625rem;padding-inline:1rem;font-size:var(--calcite-font-size-relative-md);line-height:var(--calcite-font-line-height-md)}:host([scale=l]) .icon,:host([scale=l]) .icon--start{padding-inline-end:var(--calcite-spacing-lg)}:host([scale=l]) .icon--end{padding-inline-start:var(--calcite-spacing-lg)}:host(:focus) .container{text-decoration-line:none;outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host(:hover:not([disabled])) .container{background-color:var(--calcite-dropdown-item-background-color-hover, var(--calcite-color-foreground-2))}:host(:active:not([disabled])) .container{background-color:var(--calcite-dropdown-item-background-color-press, var(--calcite-color-foreground-3))}:host(:hover:not([disabled])) .container,:host(:active:not([disabled])) .container{text-decoration-line:none;color:var(--calcite-dropdown-item-text-color-press, var(--calcite-color-text-1))}:host(:hover:not([disabled])) .icon--start,:host(:hover:not([disabled])) .icon--end,:host(:active:not([disabled])) .icon--start,:host(:active:not([disabled])) .icon--end{--calcite-icon-color: var(--calcite-dropdown-item-text-color-press, var(--calcite-color-text-1))}:host(:hover:not([disabled])) .link,:host(:active:not([disabled])) .link{color:var(--calcite-dropdown-item-text-color-press, var(--calcite-color-text-1))}:host([selected]) .container:not(.container--none-selection),:host([selected]) .link{font-weight:var(--calcite-font-weight-medium);--calcite-internal-dropdown-item-text-color: var( --calcite-dropdown-item-text-color-press, var(--calcite-color-text-1) );color:var(--calcite-internal-dropdown-item-text-color)}:host([selected]) .container:not(.container--none-selection) .icon,:host([selected]) .link .icon{--calcite-icon-color: var(--calcite-dropdown-item-icon-color-press, var(--calcite-color-brand))}:host([selected]) .container:not(.container--none-selection) .icon--start,:host([selected]) .container:not(.container--none-selection) .icon--end,:host([selected]) .link .icon--start,:host([selected]) .link .icon--end{--calcite-icon-color: var(--calcite-internal-dropdown-item-text-color)}:host(:hover:not([disabled])) .icon{--calcite-icon-color: var(--calcite-dropdown-item-icon-color-hover)}:host([selected]) .icon{opacity:1}:host([hidden]){display:none}[hidden]{display:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}`;
11
+ const styles = css`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:flex;flex-grow:1;align-items:center;outline:2px solid transparent;outline-offset:2px}.container{position:relative;display:flex;flex-grow:1;cursor:pointer;align-items:center;text-decoration-line:none;color:var(--calcite-dropdown-item-text-color, var(--calcite-color-text-1));text-align:start}.container a{outline:none;position:relative;display:flex;flex-grow:1;cursor:pointer;align-items:center;text-decoration-line:none;color:var(--calcite-dropdown-item-text-color, var(--calcite-color-text-1))}.content{flex:1 1 auto}.icon{position:relative;opacity:0;transition-timing-function:cubic-bezier(.4,0,.2,1);transform:scale(.9)}.icon--start,.icon--end{--calcite-icon-color: var(--calcite-dropdown-item-text-color, var(--calcite-color-text-3))}:host([scale=s]) .container{padding-block:.25rem;padding-inline:.5rem;font-size:var(--calcite-font-size-relative-sm);line-height:var(--calcite-font-line-height-sm)}:host([scale=s]) .icon,:host([scale=s]) .icon--start{padding-inline-end:var(--calcite-spacing-sm)}:host([scale=s]) .icon--end{padding-inline-start:var(--calcite-spacing-sm)}:host([scale=m]) .container{padding-block:.5rem;padding-inline:.75rem;font-size:var(--calcite-font-size-relative-base);line-height:var(--calcite-font-line-height-base)}:host([scale=m]) .icon,:host([scale=m]) .icon--start{padding-inline-end:var(--calcite-spacing-md)}:host([scale=m]) .icon--end{padding-inline-start:var(--calcite-spacing-md)}:host([scale=l]) .container{padding-block:var(--calcite-space-sm-plus);padding-inline:1rem;font-size:var(--calcite-font-size-relative-md);line-height:var(--calcite-font-line-height-md)}:host([scale=l]) .icon,:host([scale=l]) .icon--start{padding-inline-end:var(--calcite-spacing-lg)}:host([scale=l]) .icon--end{padding-inline-start:var(--calcite-spacing-lg)}:host(:focus) .container,:host([active-descendant]) .container{text-decoration-line:none;outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host(:hover:not([disabled])) .container{background-color:var(--calcite-dropdown-item-background-color-hover, var(--calcite-color-foreground-2))}:host(:active:not([disabled])) .container{background-color:var(--calcite-dropdown-item-background-color-press, var(--calcite-color-foreground-3))}:host(:hover:not([disabled])) .container,:host(:active:not([disabled])) .container{text-decoration-line:none;color:var(--calcite-dropdown-item-text-color-press, var(--calcite-color-text-1))}:host(:hover:not([disabled])) .icon--start,:host(:hover:not([disabled])) .icon--end,:host(:active:not([disabled])) .icon--start,:host(:active:not([disabled])) .icon--end{--calcite-icon-color: var(--calcite-dropdown-item-text-color-press, var(--calcite-color-text-1))}:host(:hover:not([disabled])) .link,:host(:active:not([disabled])) .link{color:var(--calcite-dropdown-item-text-color-press, var(--calcite-color-text-1))}:host([selected]) .container:not(.container--none-selection),:host([selected]) .link{font-weight:var(--calcite-font-weight-medium);--calcite-internal-dropdown-item-text-color: var( --calcite-dropdown-item-text-color-press, var(--calcite-color-text-1) );color:var(--calcite-internal-dropdown-item-text-color)}:host([selected]) .container:not(.container--none-selection) .icon,:host([selected]) .link .icon{--calcite-icon-color: var(--calcite-dropdown-item-icon-color-press, var(--calcite-color-brand))}:host([selected]) .container:not(.container--none-selection) .icon--start,:host([selected]) .container:not(.container--none-selection) .icon--end,:host([selected]) .link .icon--start,:host([selected]) .link .icon--end{--calcite-icon-color: var(--calcite-internal-dropdown-item-text-color)}:host(:hover:not([disabled])) .icon{--calcite-icon-color: var(--calcite-dropdown-item-icon-color-hover)}:host([selected]) .icon{opacity:1}:host([hidden]){display:none}[hidden]{display:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}`;
12
12
  class DropdownItem extends LitElement {
13
13
  constructor() {
14
14
  super();
@@ -16,19 +16,17 @@ class DropdownItem extends LitElement {
16
16
  this.focusSetter = useSetFocus()(this);
17
17
  this.interactiveContainer = useInteractive(this);
18
18
  this.disabled = false;
19
+ this.activeDescendant = false;
19
20
  this.scale = "m";
20
21
  this.selected = false;
21
22
  this.selectionMode = "single";
22
23
  this.calciteDropdownItemSelect = createEvent({ cancelable: false });
23
- this.calciteInternalDropdownCloseRequest = createEvent({ cancelable: false });
24
- this.calciteInternalDropdownItemKeyEvent = createEvent({ cancelable: false });
25
24
  this.calciteInternalDropdownItemSelect = createEvent({ cancelable: false });
26
25
  this.listen("click", this.onClick);
27
- this.listen("keydown", this.keyDownHandler);
28
26
  this.listenOn(document.body, "calciteInternalDropdownItemChange", this.updateActiveItemOnChange);
29
27
  }
30
28
  static {
31
- this.properties = { disabled: [7, {}, { reflect: true, type: Boolean }], href: [3, {}, { reflect: true }], iconEnd: [3, { type: String }, { reflect: true }], iconFlipRtl: [3, {}, { reflect: true }], iconStart: [3, { type: String }, { reflect: true }], label: 1, rel: [3, {}, { reflect: true }], scale: [3, {}, { reflect: true }], selected: [7, {}, { reflect: true, type: Boolean }], selectionMode: 1, target: [3, {}, { reflect: true }] };
29
+ this.properties = { disabled: [7, {}, { reflect: true, type: Boolean }], activeDescendant: [7, {}, { reflect: true, type: Boolean }], href: [3, {}, { reflect: true }], iconEnd: [3, { type: String }, { reflect: true }], iconFlipRtl: [3, {}, { reflect: true }], iconStart: [3, { type: String }, { reflect: true }], label: 1, rel: [3, {}, { reflect: true }], scale: [3, {}, { reflect: true }], selected: [7, {}, { reflect: true, type: Boolean }], selectionMode: 1, target: [3, {}, { reflect: true }] };
32
30
  }
33
31
  static {
34
32
  this.styles = styles;
@@ -36,6 +34,16 @@ class DropdownItem extends LitElement {
36
34
  async setFocus(options) {
37
35
  return this.focusSetter(() => this.el, options);
38
36
  }
37
+ async activateItem() {
38
+ if (this.disabled) {
39
+ return;
40
+ }
41
+ if (this.href) {
42
+ this.childLinkRef.value?.click();
43
+ return;
44
+ }
45
+ this.emitRequestedItem();
46
+ }
39
47
  connectedCallback() {
40
48
  super.connectedCallback();
41
49
  this.initialize();
@@ -46,32 +54,6 @@ class DropdownItem extends LitElement {
46
54
  onClick() {
47
55
  this.emitRequestedItem();
48
56
  }
49
- keyDownHandler(event) {
50
- switch (event.key) {
51
- case " ":
52
- case "Enter":
53
- this.emitRequestedItem();
54
- if (this.href) {
55
- this.childLinkRef.value.click();
56
- }
57
- event.preventDefault();
58
- break;
59
- case "Escape":
60
- this.calciteInternalDropdownCloseRequest.emit();
61
- event.preventDefault();
62
- break;
63
- case "Tab":
64
- this.calciteInternalDropdownItemKeyEvent.emit({ keyboardEvent: event });
65
- break;
66
- case "ArrowUp":
67
- case "ArrowDown":
68
- case "Home":
69
- case "End":
70
- event.preventDefault();
71
- this.calciteInternalDropdownItemKeyEvent.emit({ keyboardEvent: event });
72
- break;
73
- }
74
- }
75
57
  updateActiveItemOnChange(event) {
76
58
  const parentEmittedChange = event.composedPath().includes(this.parentDropdownGroupEl);
77
59
  if (parentEmittedChange) {
@@ -126,7 +108,7 @@ class DropdownItem extends LitElement {
126
108
  this.el.ariaChecked = itemAria;
127
109
  this.el.ariaLabel = !href ? label : "";
128
110
  this.el.role = itemRole;
129
- setAttribute(this.el, "tabIndex", disabled ? -1 : 0);
111
+ setAttribute(this.el, "tabIndex", -1);
130
112
  return this.interactiveContainer({ disabled, children: html`<div class=${safeClassMap({
131
113
  [CSS.container]: true,
132
114
  [CSS.containerNone]: selectionMode === "none"
@@ -64,7 +64,7 @@ export abstract class Fab extends LitElement {
64
64
  * Sets focus on the component.
65
65
  *
66
66
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
67
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
67
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
68
68
  */
69
69
  setFocus(options?: FocusOptions): Promise<void>;
70
70
  }
@@ -2,7 +2,7 @@
2
2
  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
- import { LitElement, safeClassMap, nothing } from "@arcgis/lumina";
5
+ import { LitElement, nothing, safeClassMap } from "@arcgis/lumina";
6
6
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
7
7
  import { u as useInteractive } from "../../chunks/useInteractive.js";
8
8
  const CSS = {
@@ -66,7 +66,7 @@ export abstract class Filter extends LitElement {
66
66
  * Sets focus on the component.
67
67
  *
68
68
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
69
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
69
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
70
70
  */
71
71
  setFocus(options?: FocusOptions): Promise<void>;
72
72
  /** Fires when the filter text changes. */
@@ -19,7 +19,7 @@ export abstract class Flow extends LitElement {
19
19
  *
20
20
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
21
21
  * @returns Promise<void>
22
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
22
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
23
23
  */
24
24
  setFocus(options?: FocusOptions): Promise<void>;
25
25
  }
@@ -3,11 +3,12 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { HeadingLevel } from "../functional/Heading.js";
4
4
  import type { OverlayPositioning } from "../../utils/floating-ui.js";
5
5
  import type { Scale } from "../interfaces.js";
6
+ import type { Panel } from "../calcite-panel/customElement.js";
6
7
  import type { IconName } from "../calcite-icon/interfaces.js";
7
8
 
8
9
  /**
9
- * @cssproperty [--calcite-flow-item-footer-padding] - [Deprecated] Use `--calcite-flow-footer-space` instead. Specifies the padding of the component's footer.
10
- * @cssproperty [--calcite-flow-item-header-border-block-end] - [Deprecated] Use `--calcite-flow-border-color` instead. Specifies the component header's block end border.
10
+ * @cssproperty [--calcite-flow-item-footer-padding] - [Deprecated] in v3.0.0, removal target v6.0.0 - Use `--calcite-flow-footer-space` instead. Specifies the padding of the component's footer.
11
+ * @cssproperty [--calcite-flow-item-header-border-block-end] - [Deprecated] in v3.0.0, removal target v6.0.0 - Use `--calcite-flow-border-color` instead. Specifies the component header's block end border.
11
12
  * @cssproperty [--calcite-flow-corner-radius] - Specifies the component's corner radius.
12
13
  * @cssproperty [--calcite-flow-heading-text-color] - Specifies the text color of the component's `heading`.
13
14
  * @cssproperty [--calcite-flow-icon-color] - Specifies the color of the component's `icon`.
@@ -42,6 +43,8 @@ import type { IconName } from "../calcite-icon/interfaces.js";
42
43
  * @slot [header-actions-end] - A slot for adding `calcite-action`s or content to the end side of the component's header.
43
44
  * @slot [header-content] - A slot for adding custom content to the component's header.
44
45
  * @slot [header-menu-actions] - A slot for adding an overflow menu with `calcite-action`s inside a `calcite-dropdown`.
46
+ * @slot [heading] - A slot for adding content to the heading area of the default header. Takes precedence over the `heading` property.
47
+ * @slot [description] - A slot for adding content to the description area of the default header. Takes precedence over the `description` property.
45
48
  * @slot [fab] - A slot for adding a `calcite-fab` (floating action button) to perform an action.
46
49
  * @slot [footer] - A slot for adding custom content to the component's footer. Should not be used with the `footer-start` or `footer-end` slots.
47
50
  * @slot [footer-end] - A slot for adding a trailing footer custom content. Should not be used with the `footer` slot.
@@ -113,7 +116,7 @@ export abstract class FlowItem extends LitElement {
113
116
  back?: string;
114
117
  close?: string;
115
118
  options?: string;
116
- };
119
+ } & Panel["messageOverrides"];
117
120
  /**
118
121
  * Specifies the type of positioning to use for overlaid content, where:
119
122
  *
@@ -149,7 +152,7 @@ export abstract class FlowItem extends LitElement {
149
152
  * Only set this if you need complex z-index control or if top layer placement causes conflicts with third-party components.
150
153
  *
151
154
  * @default false
152
- * @mdn [Top Layer](https://developer.mozilla.org/en-US/docs/Glossary/Top_layer)
155
+ * @see [MDN - Top Layer](https://developer.mozilla.org/en-US/docs/Glossary/Top_layer)
153
156
  */
154
157
  accessor topLayerDisabled: boolean;
155
158
  /**
@@ -170,7 +173,7 @@ export abstract class FlowItem extends LitElement {
170
173
  *
171
174
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
172
175
  * @returns promise.
173
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
176
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
174
177
  */
175
178
  setFocus(options?: FocusOptions): Promise<void>;
176
179
  /** Fires when the component's back button is clicked. */