@esri/calcite-components 5.2.0-next.1 → 5.2.0-next.11

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 (495) hide show
  1. package/README.md +1 -1
  2. package/dist/cdn/{TX53ZOIB.js → 24X5JMHT.js} +1 -1
  3. package/dist/cdn/{MIR7TMZV.js → 2ELOLPNF.js} +1 -1
  4. package/dist/cdn/{54LRKMZS.js → 2JMH7LPC.js} +1 -1
  5. package/dist/cdn/2OKTIK5P.js +2 -0
  6. package/dist/cdn/{3IC622AE.js → 2XGJ3QNO.js} +1 -1
  7. package/dist/cdn/{TKWNZUZC.js → 3CRONO2H.js} +1 -1
  8. package/dist/cdn/3EZDLGBO.js +2 -0
  9. package/dist/cdn/{7MVJZ7CE.js → 3KCJ5OBV.js} +1 -1
  10. package/dist/cdn/3SETOU5V.js +2 -0
  11. package/dist/cdn/4RQ5ZGOF.js +2 -0
  12. package/dist/cdn/{PV5JONG7.js → 56KAPM6G.js} +1 -1
  13. package/dist/cdn/{AIWMELGE.js → 5CSHF46L.js} +1 -1
  14. package/dist/cdn/{PVLYFAFT.js → 5FLAJ7D2.js} +1 -1
  15. package/dist/cdn/5LW3L2G4.js +2 -0
  16. package/dist/cdn/{ACTWXLMU.js → 5LXXJ62H.js} +1 -1
  17. package/dist/cdn/{T64D27BK.js → 5PGOKPKX.js} +1 -1
  18. package/dist/cdn/{IMHBTKOK.js → 5U7ZVAAZ.js} +1 -1
  19. package/dist/cdn/{OMEUUIN3.js → 5XL7IT2K.js} +1 -1
  20. package/dist/cdn/{TUOZOBAX.js → 63DWPLOW.js} +1 -1
  21. package/dist/cdn/6AKAPCTR.js +2 -0
  22. package/dist/cdn/{GPZK2XCA.js → 6KINBEDD.js} +1 -1
  23. package/dist/cdn/6O3DEY2K.js +2 -0
  24. package/dist/cdn/{QJVQP6SA.js → 72B2PF6V.js} +1 -1
  25. package/dist/cdn/7LYEAGAV.js +2 -0
  26. package/dist/cdn/A7TDONQL.js +2 -0
  27. package/dist/cdn/{DOQVMLYE.js → ALEAEOVB.js} +1 -1
  28. package/dist/cdn/{H6TQ2ZT5.js → B2PYAAJV.js} +1 -1
  29. package/dist/cdn/BBQVPQKS.js +2 -0
  30. package/dist/cdn/BEE5ZZFY.js +2 -0
  31. package/dist/cdn/{XKLVTSH7.js → BEKZEU4I.js} +1 -1
  32. package/dist/cdn/BI6OUBR4.js +2 -0
  33. package/dist/cdn/{JFBAD4EH.js → BLRDFO6X.js} +1 -1
  34. package/dist/cdn/BPA5EXVV.js +2 -0
  35. package/dist/cdn/BYHIBMOX.js +2 -0
  36. package/dist/cdn/{F5S74A6J.js → C2UEEF3A.js} +1 -1
  37. package/dist/cdn/{3F6G62ML.js → CDIHWTXQ.js} +1 -1
  38. package/dist/cdn/{YLSRMNDL.js → CJD35UKW.js} +1 -1
  39. package/dist/cdn/{6SJDD32D.js → CJQSJSTS.js} +1 -1
  40. package/dist/cdn/{V4N6LLPL.js → CN3GE6PT.js} +1 -1
  41. package/dist/cdn/{XVA6JBXQ.js → D7RBRMCT.js} +1 -1
  42. package/dist/cdn/{5B3SU7K7.js → DA2XHTL4.js} +1 -1
  43. package/dist/cdn/DEFKYCLD.js +20 -0
  44. package/dist/cdn/DPGSR54A.js +2 -0
  45. package/dist/cdn/{ASL35FGE.js → DQWH6U7F.js} +1 -1
  46. package/dist/cdn/{AWONW44Y.js → DZQK7XAU.js} +1 -1
  47. package/dist/cdn/{4ETK64XH.js → EAFCYLPB.js} +1 -1
  48. package/dist/cdn/EC7ULGFR.js +2 -0
  49. package/dist/cdn/{3274MQBE.js → EJEEDORY.js} +1 -1
  50. package/dist/cdn/{2QRPMWMD.js → EJWFQHC3.js} +1 -1
  51. package/dist/cdn/EWSBPNQJ.js +2 -0
  52. package/dist/cdn/F6ACIE2U.js +2 -0
  53. package/dist/cdn/{UTYK5GN7.js → FB57TK7N.js} +1 -1
  54. package/dist/cdn/{NSSVAO6G.js → FGJZEQ7S.js} +1 -1
  55. package/dist/cdn/{6HQ7WHUL.js → FKY6KVFI.js} +1 -1
  56. package/dist/cdn/FUTBCFE5.js +2 -0
  57. package/dist/cdn/{V2ZQL3ON.js → FYDHPNCY.js} +1 -1
  58. package/dist/cdn/{JSEZIWE7.js → G6EVBNHW.js} +1 -1
  59. package/dist/cdn/{CWQ3PMYG.js → GB7SQRWY.js} +1 -1
  60. package/dist/cdn/{GHBTJCIE.js → GDUTBFTC.js} +1 -1
  61. package/dist/cdn/{4MGZ6ADZ.js → GHDKS4TD.js} +1 -1
  62. package/dist/cdn/GI5F5GIL.js +2 -0
  63. package/dist/cdn/{ERXINDJK.js → GL7AHGSG.js} +1 -1
  64. package/dist/cdn/{DOTGEOAD.js → GM26E4GK.js} +1 -1
  65. package/dist/cdn/{ESXXYY4U.js → H5UDZR5O.js} +1 -1
  66. package/dist/cdn/{IFGOL2KZ.js → HBUYVYXR.js} +1 -1
  67. package/dist/cdn/{OM2LRTKI.js → HSGC6FUA.js} +1 -1
  68. package/dist/cdn/{4XMK7RES.js → I2BHXDYX.js} +1 -1
  69. package/dist/cdn/{HI5BMWLV.js → I5F3FJAY.js} +1 -1
  70. package/dist/cdn/{CYL77NSA.js → IBIH72UK.js} +1 -1
  71. package/dist/cdn/IL4G7JFU.js +2 -0
  72. package/dist/cdn/{SVIZ25MX.js → ILDL4WCG.js} +1 -1
  73. package/dist/cdn/{AYIHFCPW.js → IOUHSWD2.js} +1 -1
  74. package/dist/cdn/{6WRZDS46.js → JBKYBEOG.js} +1 -1
  75. package/dist/cdn/{YOMDRGFX.js → JEOK7EMC.js} +1 -1
  76. package/dist/cdn/{7BAH3USN.js → JMT3PAOJ.js} +1 -1
  77. package/dist/cdn/{6P2QCONQ.js → JPUVW4BM.js} +1 -1
  78. package/dist/cdn/{DYTBN43V.js → JQWOF5HF.js} +1 -1
  79. package/dist/cdn/{FEGURFPP.js → JSIAJ7SW.js} +1 -1
  80. package/dist/cdn/{ES72YVWM.js → JYNUT5O6.js} +2 -2
  81. package/dist/cdn/{VOLQZMH5.js → K3U762E3.js} +1 -1
  82. package/dist/cdn/{6DUYQARM.js → KHZYS5PW.js} +1 -1
  83. package/dist/cdn/{CJ6HLMWM.js → KJ3MMRFP.js} +1 -1
  84. package/dist/cdn/KLDQUGLR.js +2 -0
  85. package/dist/cdn/KNTY5HWG.js +2 -0
  86. package/dist/cdn/{QUKECT32.js → KQT4OVOQ.js} +1 -1
  87. package/dist/cdn/KRZT7UVD.js +2 -0
  88. package/dist/cdn/{UWEY77AH.js → KW3PLEX7.js} +1 -1
  89. package/dist/cdn/L2E2NR2H.js +2 -0
  90. package/dist/cdn/{Y77IPFJ6.js → LFKTIMOZ.js} +1 -1
  91. package/dist/cdn/{TOW6FGVT.js → LHTO7FY4.js} +1 -1
  92. package/dist/cdn/{MM6ZG6HL.js → LOTSIKHS.js} +1 -1
  93. package/dist/cdn/{JQOYQOAO.js → LR455X6K.js} +1 -1
  94. package/dist/cdn/{NLG3XARE.js → LRZTFP3T.js} +1 -1
  95. package/dist/cdn/{O4JLFLGJ.js → MCIO7E44.js} +1 -1
  96. package/dist/cdn/{EYO37APD.js → MCRV5ZIG.js} +1 -1
  97. package/dist/cdn/MHXRVPMW.js +2 -0
  98. package/dist/cdn/{GIWBHPUL.js → MQ7UFMYF.js} +1 -1
  99. package/dist/cdn/{WMJFCYAQ.js → MRZOIDQQ.js} +1 -1
  100. package/dist/cdn/{JNIRX7D3.js → MTOH4QVT.js} +1 -1
  101. package/dist/cdn/{RX7YQTRT.js → MYZS7KFS.js} +1 -1
  102. package/dist/cdn/{SG43VAY2.js → N5VSPAE3.js} +1 -1
  103. package/dist/cdn/{W6FGHS7T.js → N6TVPJ75.js} +1 -1
  104. package/dist/cdn/{RL3BQHH7.js → NGAWCOAE.js} +1 -1
  105. package/dist/cdn/{WBEFTFTM.js → NN7V77MF.js} +1 -1
  106. package/dist/cdn/{VNHCZF5S.js → NNQ7SFRC.js} +1 -1
  107. package/dist/cdn/{EARL5L6Z.js → NURKCAEJ.js} +1 -1
  108. package/dist/cdn/{D2F4S4IN.js → OBIIMTPH.js} +1 -1
  109. package/dist/cdn/OIO5CL6R.js +2 -0
  110. package/dist/cdn/{25KULUYL.js → OQ2LTAWF.js} +1 -1
  111. package/dist/cdn/{YEOA76XG.js → OYT6TEB6.js} +1 -1
  112. package/dist/cdn/{PK24O5FM.js → P42BO7EU.js} +1 -1
  113. package/dist/cdn/P5E4K2YU.js +2 -0
  114. package/dist/cdn/{AHIMAWOG.js → PFED4DAQ.js} +1 -1
  115. package/dist/cdn/{6VJGFXTB.js → PGLPZTZP.js} +1 -1
  116. package/dist/cdn/{TBBD7RAC.js → PRMQOCUX.js} +1 -1
  117. package/dist/cdn/PTCA34C2.js +2 -0
  118. package/dist/cdn/QESRDF5I.js +2 -0
  119. package/dist/cdn/{YWSUGSZQ.js → QJMREFZB.js} +1 -1
  120. package/dist/cdn/{GX22FMPB.js → QLMVDHA2.js} +1 -1
  121. package/dist/cdn/{DOEPGWZO.js → QNAN26PB.js} +1 -1
  122. package/dist/cdn/{JYV5JY66.js → QNSRPIAF.js} +1 -1
  123. package/dist/cdn/QQDQTFWB.js +2 -0
  124. package/dist/cdn/QQMRGXT6.js +2 -0
  125. package/dist/cdn/{ZSURDLTS.js → R6VINUVM.js} +1 -1
  126. package/dist/cdn/R77ROGW2.js +2 -0
  127. package/dist/cdn/{XKZW6PMR.js → RAJYPSRB.js} +1 -1
  128. package/dist/cdn/{T6WFAXGK.js → RCFDK4P6.js} +1 -1
  129. package/dist/cdn/{A7VRJEQ7.js → RCRCHQMS.js} +1 -1
  130. package/dist/cdn/RJYU6IPS.js +2 -0
  131. package/dist/cdn/{MDH6YMD3.js → S6U2KSPS.js} +1 -1
  132. package/dist/cdn/{2WQCK6Z3.js → S7II3I5Q.js} +1 -1
  133. package/dist/cdn/{MZGWIJTE.js → T3DTWGCK.js} +1 -1
  134. package/dist/cdn/{MOVYXJPM.js → TB4K2SOD.js} +1 -1
  135. package/dist/cdn/TFQV64OA.js +2 -0
  136. package/dist/cdn/{7BPZSHP5.js → TGKWY4TT.js} +1 -1
  137. package/dist/cdn/{2DTD2NAQ.js → TQQODXRZ.js} +1 -1
  138. package/dist/cdn/UBV2M472.js +2 -0
  139. package/dist/cdn/UWAER5W3.js +2 -0
  140. package/dist/cdn/{DXKVNK72.js → V7AJFYEC.js} +1 -1
  141. package/dist/cdn/{N5V52FVE.js → VZRT26W2.js} +1 -1
  142. package/dist/cdn/{7T64APC5.js → W3GTJS5Q.js} +1 -1
  143. package/dist/cdn/{L4Z32DDI.js → W43X4BGF.js} +1 -1
  144. package/dist/cdn/{XRGFDJYN.js → WITBUCKH.js} +1 -1
  145. package/dist/cdn/{VOYNOWTM.js → WMWUSGWO.js} +2 -2
  146. package/dist/cdn/{RSDMKNTP.js → WNRAC2WY.js} +1 -1
  147. package/dist/cdn/WRI4WTGJ.js +2 -0
  148. package/dist/cdn/{LLBCU6W2.js → WUHL2RF4.js} +1 -1
  149. package/dist/cdn/WX3UVAG5.js +2 -0
  150. package/dist/cdn/{GQYGI42P.js → X5OTLCGH.js} +1 -1
  151. package/dist/cdn/{R66RRO3R.js → XGCFMOII.js} +1 -1
  152. package/dist/cdn/YJPIZ6DX.js +2 -0
  153. package/dist/cdn/Z5ZJ5N7G.js +2 -0
  154. package/dist/cdn/{DXJL2WZO.js → ZAUUAVGQ.js} +1 -1
  155. package/dist/cdn/{VINHY2BO.js → ZSDOYVMG.js} +1 -1
  156. package/dist/cdn/assets/combobox/t9n/messages.en.json +1 -1
  157. package/dist/cdn/assets/combobox/t9n/messages.json +1 -1
  158. package/dist/cdn/assets/icon/buildingIndex16.json +1 -0
  159. package/dist/cdn/assets/icon/buildingIndex24.json +1 -0
  160. package/dist/cdn/assets/icon/buildingIndex32.json +1 -0
  161. package/dist/cdn/assets/icon/fireIndex16.json +1 -0
  162. package/dist/cdn/assets/icon/fireIndex24.json +1 -0
  163. package/dist/cdn/assets/icon/fireIndex32.json +1 -0
  164. package/dist/cdn/assets/icon/geologyIndex16.json +1 -0
  165. package/dist/cdn/assets/icon/geologyIndex24.json +1 -0
  166. package/dist/cdn/assets/icon/geologyIndex32.json +1 -0
  167. package/dist/cdn/assets/icon/returnToDefault16.json +1 -1
  168. package/dist/cdn/assets/icon/returnToDefault32.json +1 -1
  169. package/dist/cdn/assets/icon/smartSearch16.json +1 -0
  170. package/dist/cdn/assets/icon/smartSearch24.json +1 -0
  171. package/dist/cdn/assets/icon/smartSearch32.json +1 -0
  172. package/dist/cdn/assets/icon/snowIndex16.json +1 -0
  173. package/dist/cdn/assets/icon/snowIndex24.json +1 -0
  174. package/dist/cdn/assets/icon/snowIndex32.json +1 -0
  175. package/dist/cdn/assets/icon/soilAdjustedVegetationIndex16.json +1 -0
  176. package/dist/cdn/assets/icon/soilAdjustedVegetationIndex24.json +1 -0
  177. package/dist/cdn/assets/icon/soilAdjustedVegetationIndex32.json +1 -0
  178. package/dist/cdn/assets/icon/userSave16.json +1 -0
  179. package/dist/cdn/assets/icon/userSave24.json +1 -0
  180. package/dist/cdn/assets/icon/userSave32.json +1 -0
  181. package/dist/cdn/assets/icon/vegetationIndex16.json +1 -0
  182. package/dist/cdn/assets/icon/vegetationIndex24.json +1 -0
  183. package/dist/cdn/assets/icon/vegetationIndex32.json +1 -0
  184. package/dist/cdn/assets/icon/weatherRadar16.json +1 -0
  185. package/dist/cdn/assets/icon/weatherRadar24.json +1 -0
  186. package/dist/cdn/assets/icon/weatherRadar32.json +1 -0
  187. package/dist/cdn/assets/input/t9n/messages.ar.json +1 -1
  188. package/dist/cdn/assets/input/t9n/messages.bg.json +1 -1
  189. package/dist/cdn/assets/input/t9n/messages.bs.json +1 -1
  190. package/dist/cdn/assets/input/t9n/messages.ca.json +1 -1
  191. package/dist/cdn/assets/input/t9n/messages.cs.json +1 -1
  192. package/dist/cdn/assets/input/t9n/messages.da.json +1 -1
  193. package/dist/cdn/assets/input/t9n/messages.de.json +1 -1
  194. package/dist/cdn/assets/input/t9n/messages.el.json +1 -1
  195. package/dist/cdn/assets/input/t9n/messages.en.json +1 -1
  196. package/dist/cdn/assets/input/t9n/messages.es.json +1 -1
  197. package/dist/cdn/assets/input/t9n/messages.et.json +1 -1
  198. package/dist/cdn/assets/input/t9n/messages.fi.json +1 -1
  199. package/dist/cdn/assets/input/t9n/messages.fr.json +1 -1
  200. package/dist/cdn/assets/input/t9n/messages.he.json +1 -1
  201. package/dist/cdn/assets/input/t9n/messages.hr.json +1 -1
  202. package/dist/cdn/assets/input/t9n/messages.hu.json +1 -1
  203. package/dist/cdn/assets/input/t9n/messages.id.json +1 -1
  204. package/dist/cdn/assets/input/t9n/messages.it.json +1 -1
  205. package/dist/cdn/assets/input/t9n/messages.ja.json +1 -1
  206. package/dist/cdn/assets/input/t9n/messages.json +1 -1
  207. package/dist/cdn/assets/input/t9n/messages.ko.json +1 -1
  208. package/dist/cdn/assets/input/t9n/messages.lt.json +1 -1
  209. package/dist/cdn/assets/input/t9n/messages.lv.json +1 -1
  210. package/dist/cdn/assets/input/t9n/messages.nl.json +1 -1
  211. package/dist/cdn/assets/input/t9n/messages.no.json +1 -1
  212. package/dist/cdn/assets/input/t9n/messages.pl.json +1 -1
  213. package/dist/cdn/assets/input/t9n/messages.pt-BR.json +1 -1
  214. package/dist/cdn/assets/input/t9n/messages.pt-PT.json +1 -1
  215. package/dist/cdn/assets/input/t9n/messages.ro.json +1 -1
  216. package/dist/cdn/assets/input/t9n/messages.ru.json +1 -1
  217. package/dist/cdn/assets/input/t9n/messages.sk.json +1 -1
  218. package/dist/cdn/assets/input/t9n/messages.sl.json +1 -1
  219. package/dist/cdn/assets/input/t9n/messages.sr.json +1 -1
  220. package/dist/cdn/assets/input/t9n/messages.sv.json +1 -1
  221. package/dist/cdn/assets/input/t9n/messages.th.json +1 -1
  222. package/dist/cdn/assets/input/t9n/messages.tr.json +1 -1
  223. package/dist/cdn/assets/input/t9n/messages.uk.json +1 -1
  224. package/dist/cdn/assets/input/t9n/messages.vi.json +1 -1
  225. package/dist/cdn/assets/input/t9n/messages.zh-CN.json +1 -1
  226. package/dist/cdn/assets/input/t9n/messages.zh-HK.json +1 -1
  227. package/dist/cdn/assets/input/t9n/messages.zh-TW.json +1 -1
  228. package/dist/cdn/assets/input-number/t9n/messages.ar.json +1 -1
  229. package/dist/cdn/assets/input-number/t9n/messages.bg.json +1 -1
  230. package/dist/cdn/assets/input-number/t9n/messages.bs.json +1 -1
  231. package/dist/cdn/assets/input-number/t9n/messages.ca.json +1 -1
  232. package/dist/cdn/assets/input-number/t9n/messages.cs.json +1 -1
  233. package/dist/cdn/assets/input-number/t9n/messages.da.json +1 -1
  234. package/dist/cdn/assets/input-number/t9n/messages.de.json +1 -1
  235. package/dist/cdn/assets/input-number/t9n/messages.el.json +1 -1
  236. package/dist/cdn/assets/input-number/t9n/messages.en.json +1 -1
  237. package/dist/cdn/assets/input-number/t9n/messages.es.json +1 -1
  238. package/dist/cdn/assets/input-number/t9n/messages.et.json +1 -1
  239. package/dist/cdn/assets/input-number/t9n/messages.fi.json +1 -1
  240. package/dist/cdn/assets/input-number/t9n/messages.fr.json +1 -1
  241. package/dist/cdn/assets/input-number/t9n/messages.he.json +1 -1
  242. package/dist/cdn/assets/input-number/t9n/messages.hr.json +1 -1
  243. package/dist/cdn/assets/input-number/t9n/messages.hu.json +1 -1
  244. package/dist/cdn/assets/input-number/t9n/messages.id.json +1 -1
  245. package/dist/cdn/assets/input-number/t9n/messages.it.json +1 -1
  246. package/dist/cdn/assets/input-number/t9n/messages.ja.json +1 -1
  247. package/dist/cdn/assets/input-number/t9n/messages.json +1 -1
  248. package/dist/cdn/assets/input-number/t9n/messages.ko.json +1 -1
  249. package/dist/cdn/assets/input-number/t9n/messages.lt.json +1 -1
  250. package/dist/cdn/assets/input-number/t9n/messages.lv.json +1 -1
  251. package/dist/cdn/assets/input-number/t9n/messages.nl.json +1 -1
  252. package/dist/cdn/assets/input-number/t9n/messages.no.json +1 -1
  253. package/dist/cdn/assets/input-number/t9n/messages.pl.json +1 -1
  254. package/dist/cdn/assets/input-number/t9n/messages.pt-BR.json +1 -1
  255. package/dist/cdn/assets/input-number/t9n/messages.pt-PT.json +1 -1
  256. package/dist/cdn/assets/input-number/t9n/messages.ro.json +1 -1
  257. package/dist/cdn/assets/input-number/t9n/messages.ru.json +1 -1
  258. package/dist/cdn/assets/input-number/t9n/messages.sk.json +1 -1
  259. package/dist/cdn/assets/input-number/t9n/messages.sl.json +1 -1
  260. package/dist/cdn/assets/input-number/t9n/messages.sr.json +1 -1
  261. package/dist/cdn/assets/input-number/t9n/messages.sv.json +1 -1
  262. package/dist/cdn/assets/input-number/t9n/messages.th.json +1 -1
  263. package/dist/cdn/assets/input-number/t9n/messages.tr.json +1 -1
  264. package/dist/cdn/assets/input-number/t9n/messages.uk.json +1 -1
  265. package/dist/cdn/assets/input-number/t9n/messages.vi.json +1 -1
  266. package/dist/cdn/assets/input-number/t9n/messages.zh-CN.json +1 -1
  267. package/dist/cdn/assets/input-number/t9n/messages.zh-HK.json +1 -1
  268. package/dist/cdn/assets/input-number/t9n/messages.zh-TW.json +1 -1
  269. package/dist/cdn/assets/input-text/t9n/messages.ar.json +1 -1
  270. package/dist/cdn/assets/input-text/t9n/messages.bg.json +1 -1
  271. package/dist/cdn/assets/input-text/t9n/messages.bs.json +1 -1
  272. package/dist/cdn/assets/input-text/t9n/messages.ca.json +1 -1
  273. package/dist/cdn/assets/input-text/t9n/messages.cs.json +1 -1
  274. package/dist/cdn/assets/input-text/t9n/messages.da.json +1 -1
  275. package/dist/cdn/assets/input-text/t9n/messages.de.json +1 -1
  276. package/dist/cdn/assets/input-text/t9n/messages.el.json +1 -1
  277. package/dist/cdn/assets/input-text/t9n/messages.en.json +1 -1
  278. package/dist/cdn/assets/input-text/t9n/messages.es.json +1 -1
  279. package/dist/cdn/assets/input-text/t9n/messages.et.json +1 -1
  280. package/dist/cdn/assets/input-text/t9n/messages.fi.json +1 -1
  281. package/dist/cdn/assets/input-text/t9n/messages.fr.json +1 -1
  282. package/dist/cdn/assets/input-text/t9n/messages.he.json +1 -1
  283. package/dist/cdn/assets/input-text/t9n/messages.hr.json +1 -1
  284. package/dist/cdn/assets/input-text/t9n/messages.hu.json +1 -1
  285. package/dist/cdn/assets/input-text/t9n/messages.id.json +1 -1
  286. package/dist/cdn/assets/input-text/t9n/messages.it.json +1 -1
  287. package/dist/cdn/assets/input-text/t9n/messages.ja.json +1 -1
  288. package/dist/cdn/assets/input-text/t9n/messages.json +1 -1
  289. package/dist/cdn/assets/input-text/t9n/messages.ko.json +1 -1
  290. package/dist/cdn/assets/input-text/t9n/messages.lt.json +1 -1
  291. package/dist/cdn/assets/input-text/t9n/messages.lv.json +1 -1
  292. package/dist/cdn/assets/input-text/t9n/messages.nl.json +1 -1
  293. package/dist/cdn/assets/input-text/t9n/messages.no.json +1 -1
  294. package/dist/cdn/assets/input-text/t9n/messages.pl.json +1 -1
  295. package/dist/cdn/assets/input-text/t9n/messages.pt-BR.json +1 -1
  296. package/dist/cdn/assets/input-text/t9n/messages.pt-PT.json +1 -1
  297. package/dist/cdn/assets/input-text/t9n/messages.ro.json +1 -1
  298. package/dist/cdn/assets/input-text/t9n/messages.ru.json +1 -1
  299. package/dist/cdn/assets/input-text/t9n/messages.sk.json +1 -1
  300. package/dist/cdn/assets/input-text/t9n/messages.sl.json +1 -1
  301. package/dist/cdn/assets/input-text/t9n/messages.sr.json +1 -1
  302. package/dist/cdn/assets/input-text/t9n/messages.sv.json +1 -1
  303. package/dist/cdn/assets/input-text/t9n/messages.th.json +1 -1
  304. package/dist/cdn/assets/input-text/t9n/messages.tr.json +1 -1
  305. package/dist/cdn/assets/input-text/t9n/messages.uk.json +1 -1
  306. package/dist/cdn/assets/input-text/t9n/messages.vi.json +1 -1
  307. package/dist/cdn/assets/input-text/t9n/messages.zh-CN.json +1 -1
  308. package/dist/cdn/assets/input-text/t9n/messages.zh-HK.json +1 -1
  309. package/dist/cdn/assets/input-text/t9n/messages.zh-TW.json +1 -1
  310. package/dist/cdn/index.js +1 -1
  311. package/dist/chunks/ClearButton.js +1 -1
  312. package/dist/chunks/date.js +9 -6
  313. package/dist/chunks/dom.js +3 -2
  314. package/dist/chunks/math.js +1 -1
  315. package/dist/chunks/openCloseComponent.js +1 -1
  316. package/dist/chunks/resources.js +0 -1
  317. package/dist/chunks/resources10.js +19 -0
  318. package/dist/chunks/resources11.js +63 -0
  319. package/dist/chunks/resources12.js +27 -0
  320. package/dist/chunks/resources5.js +40 -51
  321. package/dist/chunks/resources6.js +24 -46
  322. package/dist/chunks/resources7.js +53 -8
  323. package/dist/chunks/resources8.js +50 -10
  324. package/dist/chunks/resources9.js +7 -53
  325. package/dist/chunks/responsive.js +1 -1
  326. package/dist/chunks/runtime.js +6 -5
  327. package/dist/chunks/useSizeOverride.js +1 -1
  328. package/dist/chunks/useSortable.js +34 -4
  329. package/dist/chunks/useTime.js +27 -24
  330. package/dist/chunks/utils.js +12 -18
  331. package/dist/chunks/utils2.js +59 -6
  332. package/dist/chunks/utils3.js +1 -1
  333. package/dist/components/calcite-action/customElement.d.ts +1 -5
  334. package/dist/components/calcite-action/customElement.js +26 -10
  335. package/dist/components/calcite-action-group/customElement.d.ts +2 -4
  336. package/dist/components/calcite-action-menu/customElement.d.ts +2 -4
  337. package/dist/components/calcite-alert/customElement.d.ts +1 -3
  338. package/dist/components/calcite-autocomplete/customElement.d.ts +3 -9
  339. package/dist/components/calcite-autocomplete-item/customElement.d.ts +1 -1
  340. package/dist/components/calcite-block/customElement.d.ts +12 -14
  341. package/dist/components/calcite-block/customElement.js +8 -49
  342. package/dist/components/calcite-block-group/customElement.js +3 -5
  343. package/dist/components/calcite-block-section/customElement.d.ts +5 -5
  344. package/dist/components/calcite-block-section/customElement.js +1 -1
  345. package/dist/components/calcite-button/customElement.d.ts +9 -13
  346. package/dist/components/calcite-button/customElement.js +3 -3
  347. package/dist/components/calcite-carousel/customElement.js +2 -2
  348. package/dist/components/calcite-checkbox/customElement.d.ts +1 -5
  349. package/dist/components/calcite-chip/customElement.d.ts +1 -1
  350. package/dist/components/calcite-chip/customElement.js +3 -29
  351. package/dist/components/calcite-color-picker/customElement.d.ts +3 -3
  352. package/dist/components/calcite-color-picker/customElement.js +23 -20
  353. package/dist/components/calcite-color-picker-hex-input/customElement.d.ts +1 -1
  354. package/dist/components/calcite-color-picker-hex-input/customElement.js +4 -4
  355. package/dist/components/calcite-color-picker-swatch/customElement.d.ts +1 -1
  356. package/dist/components/calcite-color-picker-swatch/customElement.js +1 -1
  357. package/dist/components/calcite-combobox/customElement.d.ts +13 -19
  358. package/dist/components/calcite-combobox/customElement.js +310 -152
  359. package/dist/components/calcite-combobox-item/customElement.d.ts +6 -6
  360. package/dist/components/calcite-combobox-item/customElement.js +2 -1
  361. package/dist/components/calcite-combobox-item-group/customElement.d.ts +1 -1
  362. package/dist/components/calcite-combobox-item-group/customElement.js +1 -1
  363. package/dist/components/calcite-date-picker/customElement.d.ts +10 -10
  364. package/dist/components/calcite-date-picker/customElement.js +18 -18
  365. package/dist/components/calcite-date-picker-day/customElement.js +2 -2
  366. package/dist/components/calcite-date-picker-month/customElement.d.ts +4 -4
  367. package/dist/components/calcite-date-picker-month/customElement.js +19 -14
  368. package/dist/components/calcite-date-picker-month-header/customElement.js +14 -9
  369. package/dist/components/calcite-dialog/customElement.d.ts +9 -11
  370. package/dist/components/calcite-dialog/customElement.js +6 -7
  371. package/dist/components/calcite-dropdown/customElement.d.ts +6 -7
  372. package/dist/components/calcite-dropdown/customElement.js +10 -7
  373. package/dist/components/calcite-dropdown-group/customElement.d.ts +1 -1
  374. package/dist/components/calcite-dropdown-group/customElement.js +2 -2
  375. package/dist/components/calcite-dropdown-item/customElement.d.ts +7 -7
  376. package/dist/components/calcite-dropdown-item/customElement.js +4 -4
  377. package/dist/components/calcite-filter/customElement.js +1 -1
  378. package/dist/components/calcite-flow-item/customElement.d.ts +2 -4
  379. package/dist/components/calcite-flow-item/customElement.js +2 -2
  380. package/dist/components/calcite-graph/customElement.d.ts +3 -3
  381. package/dist/components/calcite-graph/customElement.js +11 -15
  382. package/dist/components/calcite-icon/customElement.d.ts +2 -2
  383. package/dist/components/calcite-icon/customElement.js +4 -4
  384. package/dist/components/calcite-icon/interfaces.d.ts +1 -1
  385. package/dist/components/calcite-inline-editable/customElement.d.ts +1 -1
  386. package/dist/components/calcite-inline-editable/customElement.js +4 -2
  387. package/dist/components/calcite-input/customElement.d.ts +23 -24
  388. package/dist/components/calcite-input/customElement.js +15 -13
  389. package/dist/components/calcite-input-date-picker/customElement.d.ts +17 -23
  390. package/dist/components/calcite-input-date-picker/customElement.js +19 -24
  391. package/dist/components/calcite-input-message/customElement.d.ts +1 -1
  392. package/dist/components/calcite-input-number/customElement.d.ts +22 -25
  393. package/dist/components/calcite-input-number/customElement.js +15 -13
  394. package/dist/components/calcite-input-text/customElement.d.ts +18 -19
  395. package/dist/components/calcite-input-text/customElement.js +3 -3
  396. package/dist/components/calcite-input-time-picker/customElement.d.ts +11 -13
  397. package/dist/components/calcite-input-time-picker/customElement.js +34 -10
  398. package/dist/components/calcite-input-time-zone/customElement.d.ts +9 -15
  399. package/dist/components/calcite-input-time-zone/customElement.js +14 -12
  400. package/dist/components/calcite-list/customElement.js +1 -1
  401. package/dist/components/calcite-list-item/customElement.d.ts +1 -3
  402. package/dist/components/calcite-list-item/customElement.js +1 -1
  403. package/dist/components/calcite-list-item-group/customElement.js +1 -1
  404. package/dist/components/calcite-meter/customElement.d.ts +1 -3
  405. package/dist/components/calcite-pagination/customElement.js +3 -3
  406. package/dist/components/calcite-panel/customElement.d.ts +4 -6
  407. package/dist/components/calcite-panel/customElement.js +1 -1
  408. package/dist/components/calcite-popover/customElement.d.ts +2 -4
  409. package/dist/components/calcite-radio-button/customElement.d.ts +1 -5
  410. package/dist/components/calcite-rating/customElement.d.ts +1 -5
  411. package/dist/components/calcite-rating/customElement.js +1 -1
  412. package/dist/components/calcite-segmented-control/customElement.d.ts +1 -5
  413. package/dist/components/calcite-select/customElement.d.ts +1 -5
  414. package/dist/components/calcite-sheet/customElement.d.ts +1 -3
  415. package/dist/components/calcite-slider/customElement.d.ts +13 -17
  416. package/dist/components/calcite-slider/customElement.js +19 -20
  417. package/dist/components/calcite-sort-handle/customElement.d.ts +2 -4
  418. package/dist/components/calcite-split-button/customElement.d.ts +12 -14
  419. package/dist/components/calcite-split-button/customElement.js +1 -1
  420. package/dist/components/calcite-stack/customElement.js +1 -1
  421. package/dist/components/calcite-stepper/customElement.d.ts +1 -1
  422. package/dist/components/calcite-stepper/customElement.js +10 -10
  423. package/dist/components/calcite-stepper-item/customElement.d.ts +3 -3
  424. package/dist/components/calcite-stepper-item/customElement.js +8 -24
  425. package/dist/components/calcite-swatch/customElement.d.ts +1 -1
  426. package/dist/components/calcite-swatch/customElement.js +2 -2
  427. package/dist/components/calcite-swatch-group/customElement.js +8 -6
  428. package/dist/components/calcite-switch/customElement.d.ts +6 -10
  429. package/dist/components/calcite-tab-nav/customElement.js +64 -26
  430. package/dist/components/calcite-tab-title/customElement.js +4 -0
  431. package/dist/components/calcite-table-header/customElement.d.ts +1 -1
  432. package/dist/components/calcite-tabs/customElement.d.ts +6 -0
  433. package/dist/components/calcite-tabs/customElement.js +13 -7
  434. package/dist/components/calcite-text-area/customElement.d.ts +1 -5
  435. package/dist/components/calcite-tile/customElement.d.ts +1 -1
  436. package/dist/components/calcite-time-picker/customElement.js +4 -4
  437. package/dist/components/calcite-tooltip/customElement.d.ts +1 -3
  438. package/dist/controllers/useTime.d.ts +3 -0
  439. package/dist/docs/api.json +1 -1
  440. package/dist/docs/docs.json +1 -1
  441. package/dist/docs/translations.json +1 -1
  442. package/dist/docs/vscode.css-custom-data.json +1 -1
  443. package/dist/docs/vscode.html-custom-data.json +1 -1
  444. package/dist/docs/web-types.json +1 -1
  445. package/dist/loader.js +3 -3
  446. package/dist/types/lumina.d.ts +2 -2
  447. package/dist/types/preact.d.ts +2 -2
  448. package/dist/types/react.d.ts +2 -2
  449. package/dist/types/stencil.d.ts +2 -2
  450. package/dist/utils/date.d.ts +2 -2
  451. package/package.json +13 -10
  452. package/dist/cdn/4DBDLDKL.js +0 -2
  453. package/dist/cdn/5BXJCRHG.js +0 -2
  454. package/dist/cdn/6I7CG5ZI.js +0 -2
  455. package/dist/cdn/6THNFXTV.js +0 -2
  456. package/dist/cdn/7LKWZYMO.js +0 -2
  457. package/dist/cdn/7RTTBZVL.js +0 -2
  458. package/dist/cdn/BXSBN734.js +0 -2
  459. package/dist/cdn/DCQW26QE.js +0 -2
  460. package/dist/cdn/DE6F4LEP.js +0 -2
  461. package/dist/cdn/DHXGSMMN.js +0 -2
  462. package/dist/cdn/DV6Z2ZUP.js +0 -2
  463. package/dist/cdn/EAMIHL5M.js +0 -2
  464. package/dist/cdn/FGBYK22Q.js +0 -2
  465. package/dist/cdn/GEQANJCK.js +0 -2
  466. package/dist/cdn/HPG25RGF.js +0 -20
  467. package/dist/cdn/IQC2I5QX.js +0 -2
  468. package/dist/cdn/JAMAODSH.js +0 -2
  469. package/dist/cdn/JLRS6GUS.js +0 -2
  470. package/dist/cdn/JWZRDSEQ.js +0 -2
  471. package/dist/cdn/LKEGNPWV.js +0 -2
  472. package/dist/cdn/NSFNE7JF.js +0 -2
  473. package/dist/cdn/OWVDY7XZ.js +0 -2
  474. package/dist/cdn/P7VFZYNM.js +0 -2
  475. package/dist/cdn/POCA3O3T.js +0 -2
  476. package/dist/cdn/RDJ3NPD2.js +0 -2
  477. package/dist/cdn/RJJY3IYM.js +0 -2
  478. package/dist/cdn/S2ACIYIJ.js +0 -2
  479. package/dist/cdn/SKBNA7MO.js +0 -2
  480. package/dist/cdn/SYWS7CRW.js +0 -2
  481. package/dist/cdn/T2B7YQBZ.js +0 -2
  482. package/dist/cdn/U2RL2HER.js +0 -2
  483. package/dist/cdn/UYY6Z6VK.js +0 -2
  484. package/dist/cdn/VWJDFV4M.js +0 -2
  485. package/dist/cdn/WBKHM7GQ.js +0 -2
  486. package/dist/cdn/WJ2DBVDY.js +0 -2
  487. package/dist/cdn/WWXFCBIC.js +0 -2
  488. package/dist/cdn/XRQ6ALBW.js +0 -2
  489. package/dist/cdn/ZALKF7AK.js +0 -2
  490. package/dist/cdn/ZOVBFLHG.js +0 -2
  491. /package/dist/cdn/{XJY76HZ5.js → 2QCI6TGY.js} +0 -0
  492. /package/dist/cdn/{O2A6CQZA.js → BLWTCPBG.js} +0 -0
  493. /package/dist/cdn/{5OPFL4DZ.js → KWIC32XQ.js} +0 -0
  494. /package/dist/cdn/{SG5FNFQO.js → Q24FQVQ4.js} +0 -0
  495. /package/dist/cdn/{DE7OTXX2.js → QBJZUEM2.js} +0 -0
@@ -33,12 +33,13 @@ class TabNav extends LitElement {
33
33
  this.resizeObserver = createObserver("resize", () => {
34
34
  this.updateScrollingState();
35
35
  });
36
- this.makeFirstVisibleTabClosable = false;
37
36
  this.messages = useT9n();
38
37
  this.hasOverflowingEndTabTitle = false;
39
38
  this.hasOverflowingStartTabTitle = false;
39
+ this.hasVisibleTabTitles = true;
40
40
  this.bordered = false;
41
41
  this.layout = "inline";
42
+ this.lastTabClosable = false;
42
43
  this.position = "bottom";
43
44
  this.scale = "m";
44
45
  this.selectedTitle = null;
@@ -49,13 +50,14 @@ class TabNav extends LitElement {
49
50
  this.listen("calciteInternalTabsFocusNext", this.focusNextTabHandler);
50
51
  this.listen("calciteInternalTabsFocusFirst", this.focusFirstTabHandler);
51
52
  this.listen("calciteInternalTabsFocusLast", this.focusLastTabHandler);
53
+ this.listen("calciteInternalTabTitleCloseChange", this.syncVisibleTabTitlesState);
52
54
  this.listen("calciteInternalTabTitleRegister", this.updateTabTitles);
53
55
  this.listen("calciteInternalTabsActivate", this.internalActivateTabHandler);
54
56
  this.listen("calciteInternalTabsClose", this.internalCloseTabHandler);
55
57
  this.listenOn(document.body, "calciteInternalTabChange", this.globalInternalTabChangeHandler);
56
58
  }
57
59
  static {
58
- this.properties = { hasOverflowingEndTabTitle: [16, {}, { state: true }], hasOverflowingStartTabTitle: [16, {}, { state: true }], selectedTabId: [16, {}, { state: true }], bordered: [7, {}, { reflect: true, type: Boolean }], layout: [3, {}, { reflect: true }], messageOverrides: [0, {}, { attribute: false }], position: 1, scale: 1, selectedTitle: [0, {}, { attribute: false }], storageId: [3, {}, { reflect: true }], syncId: [3, {}, { reflect: true }] };
60
+ this.properties = { hasOverflowingEndTabTitle: [16, {}, { state: true }], hasOverflowingStartTabTitle: [16, {}, { state: true }], hasVisibleTabTitles: [16, {}, { state: true }], selectedTabId: [16, {}, { state: true }], bordered: [7, {}, { reflect: true, type: Boolean }], layout: [3, {}, { reflect: true }], lastTabClosable: [5, {}, { type: Boolean }], messageOverrides: [0, {}, { attribute: false }], position: 1, scale: 1, selectedTitle: [0, {}, { attribute: false }], storageId: [3, {}, { reflect: true }], syncId: [3, {}, { reflect: true }] };
59
61
  }
60
62
  static {
61
63
  this.styles = styles;
@@ -76,7 +78,7 @@ class TabNav extends LitElement {
76
78
  }
77
79
  }
78
80
  willUpdate(changes) {
79
- if (changes.has("selectedTitle") && (this.hasUpdated || this.selectedTitle !== null)) {
81
+ if (changes.has("selectedTitle") && (this.hasUpdated || this.selectedTitle !== null) && this.selectedTabId !== void 0) {
80
82
  this.calciteInternalTabChange.emit({
81
83
  tab: this.selectedTabId
82
84
  });
@@ -84,6 +86,9 @@ class TabNav extends LitElement {
84
86
  if (changes.has("selectedTabId")) {
85
87
  this.selectedTabIdChanged();
86
88
  }
89
+ if (changes.has("lastTabClosable") && this.hasUpdated) {
90
+ this.updateLastVisibleTabClosable();
91
+ }
87
92
  const { parentTabsEl } = this;
88
93
  if (parentTabsEl) {
89
94
  this.layout = parentTabsEl.layout;
@@ -93,7 +98,7 @@ class TabNav extends LitElement {
93
98
  }
94
99
  loaded() {
95
100
  this.scrollTabTitleIntoView(this.selectedTitle, "instant");
96
- if (this.tabTitles.length && this.tabTitles.every((title) => !title.selected) && !this.selectedTabId) {
101
+ if (this.tabTitles.length && this.tabTitles.every((title) => !title.selected) && this.selectedTabId === void 0) {
97
102
  this.tabTitles[0].getTabIdentifier().then((tab) => {
98
103
  this.calciteInternalTabChange.emit({
99
104
  tab
@@ -110,7 +115,7 @@ class TabNav extends LitElement {
110
115
  }
111
116
  get scrollerButtonWidth() {
112
117
  const { scale } = this;
113
- return parseInt(scale === "s" ? calciteSize24 : scale === "m" ? calciteSize32 : calciteSize44);
118
+ return parseInt(scale === "s" ? calciteSize24 : scale === "m" ? calciteSize32 : calciteSize44, 10);
114
119
  }
115
120
  get tabTitles() {
116
121
  return filterDirectChildren(this.el, "calcite-tab-title");
@@ -169,6 +174,7 @@ class TabNav extends LitElement {
169
174
  this.selectedTabId = event.detail;
170
175
  this.selectedTitle = await this.getTabTitleById(this.selectedTabId);
171
176
  }
177
+ this.syncVisibleTabTitlesState();
172
178
  }
173
179
  globalInternalTabChangeHandler(event) {
174
180
  if (this.syncId && event.target !== this.el && event.target.syncId === this.syncId && this.selectedTabId !== event.detail.tab) {
@@ -178,7 +184,10 @@ class TabNav extends LitElement {
178
184
  }
179
185
  async selectedTabIdChanged() {
180
186
  await this.componentOnReady();
181
- if (localStorage && this.storageId && this.selectedTabId !== void 0 && this.selectedTabId !== null) {
187
+ if (this.selectedTabId === void 0) {
188
+ return;
189
+ }
190
+ if (localStorage && this.storageId) {
182
191
  localStorage.setItem(`calcite-tab-nav-${this.storageId}`, JSON.stringify(this.selectedTabId));
183
192
  }
184
193
  this.calciteInternalTabChange.emit({
@@ -209,13 +218,33 @@ class TabNav extends LitElement {
209
218
  tabTitles.forEach((child) => {
210
219
  this.intersectionObserver?.observe(child);
211
220
  });
221
+ this.syncVisibleTabTitlesState();
222
+ }
223
+ syncVisibleTabTitlesState() {
224
+ this.updateLastVisibleTabClosable();
225
+ this.hasVisibleTabTitles = this.getVisibleTabTitlesIndices(this.tabTitles).length > 0;
226
+ this.calciteInternalTabNavSlotChange.emit([...this.tabTitles]);
227
+ }
228
+ updateLastVisibleTabClosable() {
229
+ const { tabTitles } = this;
212
230
  const visibleTabTitlesIndices = this.getVisibleTabTitlesIndices(tabTitles);
213
231
  const totalVisibleTabTitles = visibleTabTitlesIndices.length;
214
- if (totalVisibleTabTitles > 1 && this.makeFirstVisibleTabClosable) {
215
- tabTitles[visibleTabTitlesIndices[0]].closable = true;
216
- this.makeFirstVisibleTabClosable = false;
232
+ if (totalVisibleTabTitles === 0) {
233
+ return;
234
+ }
235
+ const firstVisibleTabTitle = tabTitles[visibleTabTitlesIndices[0]];
236
+ const shouldDisableCloseButton = !this.lastTabClosable && totalVisibleTabTitles === 1;
237
+ if (shouldDisableCloseButton) {
238
+ if (firstVisibleTabTitle.closable) {
239
+ this.firstVisibleTabMadeNonClosable = firstVisibleTabTitle;
240
+ firstVisibleTabTitle.closable = false;
241
+ }
242
+ return;
243
+ }
244
+ if (this.firstVisibleTabMadeNonClosable && !this.firstVisibleTabMadeNonClosable.closed) {
245
+ this.firstVisibleTabMadeNonClosable.closable = true;
217
246
  }
218
- this.calciteInternalTabNavSlotChange.emit(tabTitles);
247
+ this.firstVisibleTabMadeNonClosable = void 0;
219
248
  }
220
249
  setTabTitleContainerEl(el) {
221
250
  this.tabTitleContainerEl = el;
@@ -334,26 +363,35 @@ class TabNav extends LitElement {
334
363
  }
335
364
  handleTabTitleClose(closedTabTitleEl) {
336
365
  const { tabTitles } = this;
366
+ const visibleTabTitles = tabTitles.filter((tabTitle) => !tabTitle.closed);
367
+ const enabledVisibleTabTitles = this.enabledTabTitles;
368
+ const totalVisibleTabTitles = visibleTabTitles.length;
337
369
  const selectionModified = closedTabTitleEl.selected;
338
- const visibleTabTitlesIndices = this.getVisibleTabTitlesIndices(tabTitles);
339
- const totalVisibleTabTitles = visibleTabTitlesIndices.length;
340
- if (totalVisibleTabTitles === 1 && tabTitles[visibleTabTitlesIndices[0]].closable) {
341
- this.makeFirstVisibleTabClosable = true;
342
- tabTitles[visibleTabTitlesIndices[0]].closable = false;
343
- this.selectedTabId = visibleTabTitlesIndices[0];
344
- if (selectionModified) {
345
- tabTitles[visibleTabTitlesIndices[0]].activateTab();
346
- }
347
- } else if (totalVisibleTabTitles > 1) {
370
+ this.hasVisibleTabTitles = totalVisibleTabTitles > 0;
371
+ this.calciteInternalTabNavSlotChange.emit([...tabTitles]);
372
+ if (totalVisibleTabTitles === 0) {
373
+ this.selectedTitle = null;
374
+ this.selectedTabId = void 0;
375
+ return;
376
+ }
377
+ if (selectionModified) {
348
378
  const closedTabTitleIndex = tabTitles.findIndex((el) => el === closedTabTitleEl);
349
- const nextTabTitleIndex = visibleTabTitlesIndices.find((value) => value > closedTabTitleIndex);
350
- if (this.selectedTabId === closedTabTitleIndex) {
351
- this.selectedTabId = nextTabTitleIndex ? nextTabTitleIndex : totalVisibleTabTitles - 1;
352
- tabTitles[this.selectedTabId].activateTab();
379
+ const nextVisibleTabTitle = enabledVisibleTabTitles.find((tabTitle) => tabTitles.indexOf(tabTitle) > closedTabTitleIndex) || enabledVisibleTabTitles.at(-1);
380
+ if (!nextVisibleTabTitle) {
381
+ this.selectedTitle = null;
382
+ this.selectedTabId = void 0;
383
+ this.updateLastVisibleTabClosable();
384
+ return;
353
385
  }
386
+ nextVisibleTabTitle.activateTab();
354
387
  }
388
+ this.updateLastVisibleTabClosable();
355
389
  requestAnimationFrame(() => {
356
- focusElement(tabTitles[this.selectedTabId]);
390
+ const selectedTitle = this.selectedTitle;
391
+ if (!selectedTitle) {
392
+ return;
393
+ }
394
+ focusElement(selectedTitle);
357
395
  });
358
396
  }
359
397
  render() {
@@ -363,7 +401,7 @@ class TabNav extends LitElement {
363
401
  [CSS.scale(this.scale)]: true,
364
402
  [CSS.position(this.position)]: true,
365
403
  [CSS_UTILITY.rtl]: this.effectiveDir === "rtl"
366
- })}><div class=${safeClassMap({
404
+ })} .hidden=${!this.hasVisibleTabTitles}><div class=${safeClassMap({
367
405
  [CSS.tabTitleSlotWrapper]: true
368
406
  })} @scroll=${this.onTabTitleScroll} @wheel=${this.onTabTitleWheel} ${ref(this.setTabTitleContainerEl)}><slot @slotchange=${this.onSlotChange}></slot></div><div class=${safeClassMap(CSS.scrollButtonContainer)} .hidden=${!this.hasOverflowingEndTabTitle && !this.hasOverflowingStartTabTitle}>${this.renderScrollButton("start")}${this.renderScrollButton("end")}</div></div>`;
369
407
  }
@@ -54,6 +54,7 @@ class TabTitle extends LitElement {
54
54
  this.selected = false;
55
55
  this.calciteInternalTabIconChanged = createEvent({ cancelable: false });
56
56
  this.calciteInternalTabTitleRegister = createEvent({ cancelable: false });
57
+ this.calciteInternalTabTitleCloseChange = createEvent({ cancelable: false });
57
58
  this.calciteInternalTabsActivate = createEvent({ cancelable: false });
58
59
  this.calciteInternalTabsClose = createEvent({ cancelable: false });
59
60
  this.calciteInternalTabsFocusFirst = createEvent({ cancelable: false });
@@ -108,6 +109,9 @@ class TabTitle extends LitElement {
108
109
  if (changes.has("selected") && (this.hasUpdated || this.selected !== false)) {
109
110
  this.selectedHandler();
110
111
  }
112
+ if (changes.has("closed") && this.hasUpdated) {
113
+ this.calciteInternalTabTitleCloseChange.emit();
114
+ }
111
115
  if (this.parentTabsEl) {
112
116
  this.layout = this.parentTabsEl.layout;
113
117
  this.bordered = this.parentTabsEl.bordered;
@@ -20,7 +20,7 @@ export abstract class TableHeader extends LitElement {
20
20
  accessor colSpan: number | undefined;
21
21
  /** Specifies a description for the component. Displays below the `heading`. */
22
22
  accessor description: string | undefined;
23
- /** Specifies the component's heading text. Displays above the `description`. */
23
+ /** Specifies the component's heading text. */
24
24
  accessor heading: string | undefined;
25
25
  /** Overrides individual strings used by the component. */
26
26
  accessor messageOverrides: {
@@ -16,6 +16,12 @@ export abstract class Tabs extends LitElement {
16
16
  * @default false
17
17
  */
18
18
  accessor bordered: boolean;
19
+ /**
20
+ * When `true`, allows the last visible closable tab to keep its close button.
21
+ *
22
+ * @default false
23
+ */
24
+ accessor lastTabClosable: boolean;
19
25
  /**
20
26
  * Specifies the layout of the `calcite-tab-nav`, justifying the `calcite-tab-title`s to the start (`"inline"`), or across and centered (`"center"`).
21
27
  *
@@ -17,14 +17,16 @@ class Tabs extends LitElement {
17
17
  this.slotRef = createRef();
18
18
  this.tabs = [];
19
19
  this.titles = [];
20
+ this.hasVisibleTitles = true;
20
21
  this.bordered = false;
21
22
  this.layout = "inline";
23
+ this.lastTabClosable = false;
22
24
  this.position = "top";
23
25
  this.scale = "m";
24
26
  this.listen("calciteInternalTabNavSlotChange", this.calciteInternalTabNavSlotChangeHandler);
25
27
  }
26
28
  static {
27
- this.properties = { tabs: [16, {}, { state: true }], titles: [16, {}, { state: true }], bordered: [5, {}, { type: Boolean }], layout: [3, {}, { reflect: true }], position: [3, {}, { reflect: true }], scale: [3, {}, { reflect: true }] };
29
+ this.properties = { tabs: [16, {}, { state: true }], titles: [16, {}, { state: true }], hasVisibleTitles: [16, {}, { state: true }], bordered: [5, {}, { type: Boolean }], layout: [3, {}, { reflect: true }], lastTabClosable: [7, {}, { reflect: true, type: Boolean }], position: [3, {}, { reflect: true }], scale: [3, {}, { reflect: true }] };
28
30
  }
29
31
  static {
30
32
  this.styles = styles;
@@ -37,19 +39,22 @@ class Tabs extends LitElement {
37
39
  this.updateItems();
38
40
  }
39
41
  willUpdate(changes) {
40
- if (changes.has("position") && (this.hasUpdated || this.position !== "top") || changes.has("scale") && (this.hasUpdated || this.scale !== "m")) {
42
+ if (changes.has("position") && (this.hasUpdated || this.position !== "top") || changes.has("scale") && (this.hasUpdated || this.scale !== "m") || changes.has("lastTabClosable") && (this.hasUpdated || this.lastTabClosable !== false)) {
41
43
  this.updateItems();
42
44
  }
43
- if ((changes.has("titles") || changes.has("tabs")) && this.hasUpdated && this.titles?.length > 0 && this.tabs?.length > 0) {
45
+ if ((changes.has("titles") || changes.has("tabs")) && this.hasUpdated && (this.lastTabClosable || this.titles?.length > 0) && (this.lastTabClosable || this.tabs?.length > 0)) {
44
46
  this.updateAriaSettings();
45
47
  this.updateItems();
46
48
  }
47
49
  }
48
50
  calciteInternalTabNavSlotChangeHandler(event) {
49
51
  event.stopPropagation();
50
- if (event.detail.length !== this.titles.length) {
51
- this.titles = event.detail;
52
+ const nextTitles = [...event.detail];
53
+ const titlesChanged = nextTitles.some((title, index) => this.titles[index] !== title);
54
+ if (titlesChanged) {
55
+ this.titles = nextTitles;
52
56
  }
57
+ this.hasVisibleTitles = nextTitles.some((title) => !title.closed);
53
58
  }
54
59
  defaultSlotChangeHandler(event) {
55
60
  this.tabs = slotChangeGetAssignedElements(event, "calcite-tab");
@@ -82,9 +87,10 @@ class Tabs extends LitElement {
82
87
  this.titles.forEach((el) => el._updateAriaInfo(tabIds, titleIds));
83
88
  }
84
89
  updateItems() {
85
- const { position, scale } = this;
90
+ const { lastTabClosable, position, scale } = this;
86
91
  const nav = this.el.querySelector("calcite-tab-nav");
87
92
  if (nav) {
93
+ nav.lastTabClosable = lastTabClosable;
88
94
  nav.position = position;
89
95
  nav.scale = scale;
90
96
  }
@@ -100,7 +106,7 @@ class Tabs extends LitElement {
100
106
  });
101
107
  }
102
108
  render() {
103
- return html`<slot name=${SLOTS.titleGroup}></slot><section class=${safeClassMap(CSS.section)}><slot @slotchange=${this.defaultSlotChangeHandler} ${ref(this.slotRef)}></slot></section>`;
109
+ return html`<slot name=${SLOTS.titleGroup}></slot><section class=${safeClassMap(CSS.section)} .hidden=${!this.hasVisibleTitles}><slot @slotchange=${this.defaultSlotChangeHandler} ${ref(this.slotRef)}></slot></section>`;
104
110
  }
105
111
  }
106
112
  customElement("calcite-tabs", Tabs);
@@ -38,11 +38,7 @@ export abstract class TextArea extends LitElement {
38
38
  * @see [MDN - disabled](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled)
39
39
  */
40
40
  accessor disabled: boolean;
41
- /**
42
- * Specifies the `id` of the component's associated form.
43
- *
44
- * When not set, the component is associated with its ancestor form element, if one exists.
45
- */
41
+ /** Specifies the `id` of the component's associated form. When not set, the component is associated with its ancestor form element, if one exists. */
46
42
  accessor form: string | undefined;
47
43
  /**
48
44
  * When `true`, number values are displayed with a group separator corresponding to the language and country format.
@@ -48,7 +48,7 @@ export abstract class Tile extends LitElement {
48
48
  * @default false
49
49
  */
50
50
  accessor embed: boolean;
51
- /** Specifies the component's heading text. displays between the `icon` and `description`. */
51
+ /** Specifies the component's heading text that displays between the `icon` and `description`. */
52
52
  accessor heading: string | undefined;
53
53
  /** Specifies the heading level number of the component's `heading` for proper document structure, without affecting visual styling. */
54
54
  accessor headingLevel: HeadingLevel | undefined;
@@ -299,7 +299,7 @@ class TimePicker extends LitElement {
299
299
  [CSS.button]: true,
300
300
  [CSS.buttonHourUp]: true,
301
301
  [CSS.buttonTopLeft]: true
302
- })} @click=${this.hourUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.hour} aria-valuemax=23 aria-valuemin=1 .ariaValueNow=${hourIsNumber && parseInt(hour) || "0"} .ariaValueText=${hour ?? void 0} class=${safeClassMap({
302
+ })} @click=${this.hourUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.hour} aria-valuemax=23 aria-valuemin=1 .ariaValueNow=${hourIsNumber && parseInt(hour, 10) || "0"} .ariaValueText=${hour ?? void 0} class=${safeClassMap({
303
303
  [CSS.input]: true,
304
304
  [CSS.hour]: true,
305
305
  [CSS.inputFocus]: activeEl && activeEl === this.hourRef.value
@@ -310,7 +310,7 @@ class TimePicker extends LitElement {
310
310
  })} @click=${this.hourDownClickHandler} role=button><calcite-icon .icon=${ICONS.chevronDown} .scale=${iconScale}></calcite-icon></span></div><span class=${safeClassMap({ [CSS.delimiter]: true, [CSS.hourSuffix]: true })}>${localizedHourSuffix}</span><div class=${safeClassMap(CSS.column)} role=group><span .ariaLabel=${messages.minuteUp} class=${safeClassMap({
311
311
  [CSS.button]: true,
312
312
  [CSS.buttonMinuteUp]: true
313
- })} @click=${this.minuteUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.minute} aria-valuemax=12 aria-valuemin=1 .ariaValueNow=${minuteIsNumber && parseInt(minute) || "0"} .ariaValueText=${minute ?? void 0} class=${safeClassMap({
313
+ })} @click=${this.minuteUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.minute} aria-valuemax=12 aria-valuemin=1 .ariaValueNow=${minuteIsNumber && parseInt(minute, 10) || "0"} .ariaValueText=${minute ?? void 0} class=${safeClassMap({
314
314
  [CSS.input]: true,
315
315
  [CSS.minute]: true,
316
316
  [CSS.inputFocus]: activeEl && activeEl === this.minuteRef.value
@@ -320,7 +320,7 @@ class TimePicker extends LitElement {
320
320
  })} @click=${this.minuteDownClickHandler} role=button><calcite-icon .icon=${ICONS.chevronDown} .scale=${iconScale}></calcite-icon></span></div>${this.showSecond && html`<span class=${safeClassMap({ [CSS.delimiter]: true, [CSS.minuteSuffix]: true })}>${localizedMinuteSuffix}</span>` || ""}${this.showSecond && html`<div class=${safeClassMap(CSS.column)} role=group><span .ariaLabel=${messages.secondUp} class=${safeClassMap({
321
321
  [CSS.button]: true,
322
322
  [CSS.buttonSecondUp]: true
323
- })} @click=${this.secondUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.second} aria-valuemax=59 aria-valuemin=0 .ariaValueNow=${secondIsNumber && parseInt(second) || "0"} .ariaValueText=${second ?? void 0} class=${safeClassMap({
323
+ })} @click=${this.secondUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.second} aria-valuemax=59 aria-valuemin=0 .ariaValueNow=${secondIsNumber && parseInt(second, 10) || "0"} .ariaValueText=${second ?? void 0} class=${safeClassMap({
324
324
  [CSS.input]: true,
325
325
  [CSS.second]: true,
326
326
  [CSS.inputFocus]: activeEl && activeEl === this.secondRef.value
@@ -330,7 +330,7 @@ class TimePicker extends LitElement {
330
330
  })} @click=${this.secondDownClickHandler} role=button><calcite-icon .icon=${ICONS.chevronDown} .scale=${iconScale}></calcite-icon></span></div>` || ""}${this.showFractionalSecond && html`<span class=${safeClassMap({ [CSS.delimiter]: true, [CSS.decimalSeparator]: true })}>${localizedDecimalSeparator}</span>` || ""}${this.showFractionalSecond && html`<div class=${safeClassMap(CSS.column)} role=group><span .ariaLabel=${messages.fractionalSecondUp} class=${safeClassMap({
331
331
  [CSS.button]: true,
332
332
  [CSS.buttonFractionalSecondUp]: true
333
- })} @click=${this.fractionalSecondUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.fractionalSecond} aria-valuemax=999 aria-valuemin=1 .ariaValueNow=${fractionalSecondIsNumber && parseInt(fractionalSecond) || "0"} .ariaValueText=${localizedFractionalSecond ?? void 0} class=${safeClassMap({
333
+ })} @click=${this.fractionalSecondUpClickHandler} role=button><calcite-icon .icon=${ICONS.chevronUp} .scale=${iconScale}></calcite-icon></span><span .ariaLabel=${messages.fractionalSecond} aria-valuemax=999 aria-valuemin=1 .ariaValueNow=${fractionalSecondIsNumber && parseInt(fractionalSecond, 10) || "0"} .ariaValueText=${localizedFractionalSecond ?? void 0} class=${safeClassMap({
334
334
  [CSS.input]: true,
335
335
  [CSS.fractionalSecond]: true,
336
336
  [CSS.inputFocus]: activeEl && activeEl === this.fractionalSecondRef.value
@@ -77,9 +77,7 @@ export abstract class Tooltip extends LitElement {
77
77
  */
78
78
  accessor scale: Scale;
79
79
  /**
80
- * When `true` and the component is `open`, disables top layer placement.
81
- *
82
- * Only set this if you need complex z-index control or if top layer placement causes conflicts with third-party components.
80
+ * When `true` and the component is `open`, disables top layer placement. Only set this if you need complex z-index control or if top layer placement causes conflicts with third-party components.
83
81
  *
84
82
  * @default false
85
83
  * @see [MDN - Top Layer](https://developer.mozilla.org/en-US/docs/Glossary/Top_layer)
@@ -38,6 +38,7 @@ export class TimeController extends GenericController<TimeProperties, TimeCompon
38
38
  handleMeridiemKeyDownEvent: (event: KeyboardEvent) => void;
39
39
  handleMinuteKeyDownEvent: (event: KeyboardEvent) => void;
40
40
  handleSecondKeyDownEvent: (event: KeyboardEvent) => void;
41
+ get hasValue(): boolean;
41
42
  hour?: string | null;
42
43
  hourFormat?: EffectiveHourFormat | null;
43
44
  locale?: Locale | null;
@@ -87,6 +88,8 @@ export type TimeProperties = {
87
88
  calciteTimeChange: CustomEvent<string>;
88
89
  /** The fractional second portion of the time value. */
89
90
  fractionalSecond: string;
91
+ /** Returns true if any portion of the time value is truthy. */
92
+ hasValue: boolean;
90
93
  /** The hour portion of the time value (in ISO 24-hour format). */
91
94
  hour?: string;
92
95
  /**