@esri/calcite-components 5.1.0-next.9 → 5.1.1-next.0

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 (512) hide show
  1. package/README.md +1 -1
  2. package/dist/cdn/2DXIZU6R.js +2 -0
  3. package/dist/cdn/2IWGUAWA.js +2 -0
  4. package/dist/cdn/{EB4M47KA.js → 2JARICGO.js} +1 -1
  5. package/dist/cdn/{34EJXQYF.js → 2KGEPRUF.js} +1 -1
  6. package/dist/cdn/3BPI3O6E.js +2 -0
  7. package/dist/cdn/3RBTYVUD.js +2 -0
  8. package/dist/cdn/{67QHQNZF.js → 3SYGBKWR.js} +1 -1
  9. package/dist/cdn/{U4MTAQRM.js → 4CB2O5QG.js} +1 -1
  10. package/dist/cdn/{VQHTMUYJ.js → 4ERCP6XO.js} +1 -1
  11. package/dist/cdn/4FUCDFGK.js +2 -0
  12. package/dist/cdn/4SJPPENI.js +2 -0
  13. package/dist/cdn/56VYPYFF.js +2 -0
  14. package/dist/cdn/5AMCYZ6W.js +2 -0
  15. package/dist/cdn/5BXGV5ZQ.js +2 -0
  16. package/dist/cdn/{CNR7IJIS.js → 5IISC3HD.js} +1 -1
  17. package/dist/cdn/5IYNIOCS.js +2 -0
  18. package/dist/cdn/5TNWLRB6.js +2 -0
  19. package/dist/cdn/{3GXLGKZV.js → 6BDNCIAA.js} +1 -1
  20. package/dist/cdn/{BG7CCT2Q.js → 6CEBXQSC.js} +1 -1
  21. package/dist/cdn/6H3CYBMZ.js +2 -0
  22. package/dist/cdn/6J6NDAUF.js +2 -0
  23. package/dist/cdn/{5TJGOI64.js → 6JKXCCTG.js} +1 -1
  24. package/dist/cdn/6RRQ22LO.js +2 -0
  25. package/dist/cdn/6SLXQWU4.js +2 -0
  26. package/dist/cdn/75I5SJ4X.js +2 -0
  27. package/dist/cdn/7RS475AK.js +2 -0
  28. package/dist/cdn/{6C76CPWO.js → 7TFO6D5F.js} +1 -1
  29. package/dist/cdn/{MVA4NE6I.js → A7U6OOWG.js} +1 -1
  30. package/dist/cdn/AA3NSH3U.js +2 -0
  31. package/dist/cdn/ACAPEXIF.js +2 -0
  32. package/dist/cdn/ADCXSL56.js +2 -0
  33. package/dist/cdn/{XW3UC4FN.js → AGRNONET.js} +1 -1
  34. package/dist/cdn/ALDJUEQ6.js +2 -0
  35. package/dist/cdn/{BPIG37CO.js → AVN7GDNI.js} +1 -1
  36. package/dist/cdn/AZHDD5QW.js +2 -0
  37. package/dist/cdn/B5SIF6E3.js +2 -0
  38. package/dist/cdn/BAMXLXKZ.js +2 -0
  39. package/dist/cdn/{UKC7JB7P.js → BXRNRAM4.js} +1 -1
  40. package/dist/cdn/BZVESTLV.js +2 -0
  41. package/dist/cdn/CAU3D7O6.js +2 -0
  42. package/dist/cdn/CQMZOIYT.js +3 -0
  43. package/dist/cdn/D2IHG7U6.js +2 -0
  44. package/dist/cdn/D36FINW3.js +2 -0
  45. package/dist/cdn/DBKOSP2J.js +2 -0
  46. package/dist/cdn/DCLKVSQL.js +2 -0
  47. package/dist/cdn/{EHIAXJAL.js → DCWL5FUH.js} +1 -1
  48. package/dist/cdn/DEUPIV3Z.js +2 -0
  49. package/dist/cdn/DPVKTTT4.js +2 -0
  50. package/dist/cdn/E4DM4ZJR.js +2 -0
  51. package/dist/cdn/{RPT5BJMD.js → EBCHRNQU.js} +1 -1
  52. package/dist/cdn/EGJCIQXC.js +2 -0
  53. package/dist/cdn/FAMRE5HY.js +2 -0
  54. package/dist/cdn/{TKH5LW5O.js → FDZMMKDF.js} +1 -1
  55. package/dist/cdn/{AS2M2ZWD.js → FFQ7TM4J.js} +1 -1
  56. package/dist/cdn/FHT56RXI.js +2 -0
  57. package/dist/cdn/{EIXE62NK.js → FSIXQSOF.js} +1 -1
  58. package/dist/cdn/{S7XHDLIF.js → FVT27KQD.js} +1 -1
  59. package/dist/cdn/G456YVPG.js +2 -0
  60. package/dist/cdn/G4W7YKDH.js +2 -0
  61. package/dist/cdn/GQ7DKFA5.js +2 -0
  62. package/dist/cdn/GQDKVK3D.js +2 -0
  63. package/dist/cdn/GURB6TIJ.js +2 -0
  64. package/dist/cdn/{WBJUAZ65.js → H2UXQDON.js} +1 -1
  65. package/dist/cdn/{CMVTCAFL.js → HEIK7T3T.js} +1 -1
  66. package/dist/cdn/{JVAE3MLA.js → HLF26T4C.js} +1 -1
  67. package/dist/cdn/HP3ZLN4B.js +2 -0
  68. package/dist/cdn/{YMHR4PKM.js → HVGZLEM5.js} +1 -1
  69. package/dist/cdn/HVO2U7ZI.js +2 -0
  70. package/dist/cdn/{ZGJRTQBX.js → HZZHIGHG.js} +1 -1
  71. package/dist/cdn/{PIU3YYLU.js → I3XG7K6C.js} +1 -1
  72. package/dist/cdn/{LQD663MA.js → I4VNM5NL.js} +1 -1
  73. package/dist/cdn/{HQDFIE2B.js → IEF6JYBC.js} +1 -1
  74. package/dist/cdn/{TXRFE5GH.js → ILQX7Y7Q.js} +1 -1
  75. package/dist/cdn/INTGSZ5Z.js +2 -0
  76. package/dist/cdn/{NJRKH5Q7.js → IPPMCVC6.js} +1 -1
  77. package/dist/cdn/{VOTW2RMD.js → IVWQJUEE.js} +1 -1
  78. package/dist/cdn/JHTPQLAI.js +2 -0
  79. package/dist/cdn/JHXH6UZJ.js +2 -0
  80. package/dist/cdn/{OQ2UCUQP.js → JOCO4XI3.js} +1 -1
  81. package/dist/cdn/{WEAILY72.js → KLCLUDIS.js} +1 -1
  82. package/dist/cdn/{7XBTO6NQ.js → KQCAFH4L.js} +1 -1
  83. package/dist/cdn/KTBY2CGR.js +2 -0
  84. package/dist/cdn/KUL73QJV.js +2 -0
  85. package/dist/cdn/{SHD6TE4R.js → KZ3LUSU2.js} +1 -1
  86. package/dist/cdn/{HZGU4N3I.js → L4A2ANF6.js} +1 -1
  87. package/dist/cdn/LJ4KTE6Y.js +2 -0
  88. package/dist/cdn/{BZGE52YU.js → LRZTZSHC.js} +1 -1
  89. package/dist/cdn/{IWG7JAQJ.js → LT4BKZ77.js} +1 -1
  90. package/dist/cdn/LZRGGTLJ.js +2 -0
  91. package/dist/cdn/{O7BFREIB.js → LZRUNHQB.js} +1 -1
  92. package/dist/cdn/{PFKFYB45.js → M4FJ2QZO.js} +1 -1
  93. package/dist/cdn/{JRWW665Q.js → MBFZ33SM.js} +1 -1
  94. package/dist/cdn/{CSOE3CJR.js → MJEQO4QJ.js} +1 -1
  95. package/dist/cdn/MLSILTYB.js +4 -0
  96. package/dist/cdn/MOOXNG3K.js +2 -0
  97. package/dist/cdn/MREXPRS4.js +2 -0
  98. package/dist/cdn/MUOYIJVV.js +2 -0
  99. package/dist/cdn/N5GIKXDL.js +2 -0
  100. package/dist/cdn/N7F4APVB.js +2 -0
  101. package/dist/cdn/{XUSE3II4.js → NIOQGKNW.js} +1 -1
  102. package/dist/cdn/O7YMPQUI.js +2 -0
  103. package/dist/cdn/{XJZLGVT6.js → PBNKEMBL.js} +1 -1
  104. package/dist/cdn/{6LA4PLL2.js → POYAO7CJ.js} +1 -1
  105. package/dist/cdn/QAASRSQZ.js +2 -0
  106. package/dist/cdn/{YM6QAFEQ.js → QGKI3OMJ.js} +1 -1
  107. package/dist/cdn/QO5UB5D4.js +2 -0
  108. package/dist/cdn/QXQDUUO7.js +2 -0
  109. package/dist/cdn/R7KZTTEV.js +2 -0
  110. package/dist/cdn/{QCDS2TXE.js → RF73TS72.js} +1 -1
  111. package/dist/cdn/{TTFCVVON.js → RMTFO2LM.js} +1 -1
  112. package/dist/cdn/{IZLDBAPA.js → S6DQQTW3.js} +1 -1
  113. package/dist/cdn/{YJHXVSEP.js → SFJW4TZX.js} +1 -1
  114. package/dist/cdn/{DYBHFMG7.js → SIAFDW7Y.js} +1 -1
  115. package/dist/cdn/SRXPPFYE.js +2 -0
  116. package/dist/cdn/{QULVDSNJ.js → SZD4HZMW.js} +1 -1
  117. package/dist/cdn/SZSMPM6E.js +2 -0
  118. package/dist/cdn/TOEE2LYN.js +2 -0
  119. package/dist/cdn/{BAMCFG7H.js → TZI723KV.js} +1 -1
  120. package/dist/cdn/U3EXF4ZG.js +2 -0
  121. package/dist/cdn/{E6EGKXUX.js → UDMEFBNA.js} +1 -1
  122. package/dist/cdn/UFURWY36.js +2 -0
  123. package/dist/cdn/UH5QPC23.js +2 -0
  124. package/dist/cdn/{L24DVRWE.js → UQ4U2WKO.js} +1 -1
  125. package/dist/cdn/URRCLJJL.js +2 -0
  126. package/dist/cdn/{BMRN6G4T.js → US2R5SI2.js} +1 -1
  127. package/dist/cdn/UZ6A3EVC.js +2 -0
  128. package/dist/cdn/V2R55PMZ.js +2 -0
  129. package/dist/cdn/VZDAEJEF.js +4 -0
  130. package/dist/cdn/{OPHJLVOH.js → W3AYPD7P.js} +1 -1
  131. package/dist/cdn/{RH6ZIP65.js → WGGFNK4Z.js} +1 -1
  132. package/dist/cdn/X3P7R4XF.js +2 -0
  133. package/dist/cdn/{3IHT5FIP.js → X7CHFMN5.js} +1 -1
  134. package/dist/cdn/XHP4ORWZ.js +2 -0
  135. package/dist/cdn/XLD2OUA2.js +2 -0
  136. package/dist/cdn/XM4MM6Q2.js +2 -0
  137. package/dist/cdn/{IJ7V345Q.js → XSAUQUSM.js} +1 -1
  138. package/dist/cdn/Y4RJBGTN.js +2 -0
  139. package/dist/cdn/{GGGN54CY.js → YK5IMHQT.js} +1 -1
  140. package/dist/cdn/YX2QYEVF.js +2 -0
  141. package/dist/cdn/Z3AYOD3V.js +2 -0
  142. package/dist/cdn/{C25ETLQX.js → ZHTE4PVO.js} +1 -1
  143. package/dist/cdn/{43FMFYKZ.js → ZJBIXCJU.js} +1 -1
  144. package/dist/cdn/ZLL3IOQH.js +2 -0
  145. package/dist/cdn/{I7BWPAOF.js → ZQRR6YTB.js} +1 -1
  146. package/dist/cdn/ZWHKM56M.js +2 -0
  147. package/dist/cdn/{7JGWCRII.js → ZX5NT7BW.js} +1 -1
  148. package/dist/cdn/assets/combobox/t9n/messages.ar.json +1 -1
  149. package/dist/cdn/assets/combobox/t9n/messages.bg.json +1 -1
  150. package/dist/cdn/assets/combobox/t9n/messages.bs.json +1 -1
  151. package/dist/cdn/assets/combobox/t9n/messages.ca.json +1 -1
  152. package/dist/cdn/assets/combobox/t9n/messages.cs.json +1 -1
  153. package/dist/cdn/assets/combobox/t9n/messages.da.json +1 -1
  154. package/dist/cdn/assets/combobox/t9n/messages.de.json +1 -1
  155. package/dist/cdn/assets/combobox/t9n/messages.el.json +1 -1
  156. package/dist/cdn/assets/combobox/t9n/messages.en.json +1 -1
  157. package/dist/cdn/assets/combobox/t9n/messages.es.json +1 -1
  158. package/dist/cdn/assets/combobox/t9n/messages.et.json +1 -1
  159. package/dist/cdn/assets/combobox/t9n/messages.fi.json +1 -1
  160. package/dist/cdn/assets/combobox/t9n/messages.fr.json +1 -1
  161. package/dist/cdn/assets/combobox/t9n/messages.he.json +1 -1
  162. package/dist/cdn/assets/combobox/t9n/messages.hr.json +1 -1
  163. package/dist/cdn/assets/combobox/t9n/messages.hu.json +1 -1
  164. package/dist/cdn/assets/combobox/t9n/messages.id.json +1 -1
  165. package/dist/cdn/assets/combobox/t9n/messages.it.json +1 -1
  166. package/dist/cdn/assets/combobox/t9n/messages.ja.json +1 -1
  167. package/dist/cdn/assets/combobox/t9n/messages.json +1 -1
  168. package/dist/cdn/assets/combobox/t9n/messages.ko.json +1 -1
  169. package/dist/cdn/assets/combobox/t9n/messages.lt.json +1 -1
  170. package/dist/cdn/assets/combobox/t9n/messages.lv.json +1 -1
  171. package/dist/cdn/assets/combobox/t9n/messages.nl.json +1 -1
  172. package/dist/cdn/assets/combobox/t9n/messages.no.json +1 -1
  173. package/dist/cdn/assets/combobox/t9n/messages.pl.json +1 -1
  174. package/dist/cdn/assets/combobox/t9n/messages.pt-BR.json +1 -1
  175. package/dist/cdn/assets/combobox/t9n/messages.pt-PT.json +1 -1
  176. package/dist/cdn/assets/combobox/t9n/messages.ro.json +1 -1
  177. package/dist/cdn/assets/combobox/t9n/messages.ru.json +1 -1
  178. package/dist/cdn/assets/combobox/t9n/messages.sk.json +1 -1
  179. package/dist/cdn/assets/combobox/t9n/messages.sl.json +1 -1
  180. package/dist/cdn/assets/combobox/t9n/messages.sr.json +1 -1
  181. package/dist/cdn/assets/combobox/t9n/messages.sv.json +1 -1
  182. package/dist/cdn/assets/combobox/t9n/messages.th.json +1 -1
  183. package/dist/cdn/assets/combobox/t9n/messages.tr.json +1 -1
  184. package/dist/cdn/assets/combobox/t9n/messages.uk.json +1 -1
  185. package/dist/cdn/assets/combobox/t9n/messages.vi.json +1 -1
  186. package/dist/cdn/assets/combobox/t9n/messages.zh-CN.json +1 -1
  187. package/dist/cdn/assets/combobox/t9n/messages.zh-HK.json +1 -1
  188. package/dist/cdn/assets/combobox/t9n/messages.zh-TW.json +1 -1
  189. package/dist/cdn/assets/icon/arcgisQuickcapture16.json +1 -0
  190. package/dist/cdn/assets/icon/arcgisQuickcapture24.json +1 -0
  191. package/dist/cdn/assets/icon/arcgisQuickcapture32.json +1 -0
  192. package/dist/cdn/assets/icon/arcgisSurvey12316.json +1 -0
  193. package/dist/cdn/assets/icon/arcgisSurvey12324.json +1 -0
  194. package/dist/cdn/assets/icon/arcgisSurvey12332.json +1 -0
  195. package/dist/cdn/assets/icon/buttons16.json +1 -0
  196. package/dist/cdn/assets/icon/buttons24.json +1 -0
  197. package/dist/cdn/assets/icon/buttons32.json +1 -0
  198. package/dist/cdn/assets/icon/entityTypes16.json +1 -0
  199. package/dist/cdn/assets/icon/entityTypes24.json +1 -0
  200. package/dist/cdn/assets/icon/entityTypes32.json +1 -0
  201. package/dist/cdn/assets/icon/gpsReceiver16.json +1 -0
  202. package/dist/cdn/assets/icon/gpsReceiver24.json +1 -0
  203. package/dist/cdn/assets/icon/gpsReceiver32.json +1 -0
  204. package/dist/cdn/assets/icon/layerStreamSetting16.json +1 -0
  205. package/dist/cdn/assets/icon/layerStreamSetting24.json +1 -0
  206. package/dist/cdn/assets/icon/layerStreamSetting32.json +1 -0
  207. package/dist/cdn/assets/icon/orientedImageryFullSuperimpose16.json +1 -0
  208. package/dist/cdn/assets/icon/orientedImageryFullSuperimpose24.json +1 -0
  209. package/dist/cdn/assets/icon/orientedImageryFullSuperimpose32.json +1 -0
  210. package/dist/cdn/assets/icon/orientedImageryHalfSuperimpose16.json +1 -0
  211. package/dist/cdn/assets/icon/orientedImageryHalfSuperimpose24.json +1 -0
  212. package/dist/cdn/assets/icon/orientedImageryHalfSuperimpose32.json +1 -0
  213. package/dist/cdn/assets/icon/orientedImagerySceneOnly16.json +1 -0
  214. package/dist/cdn/assets/icon/orientedImagerySceneOnly24.json +1 -0
  215. package/dist/cdn/assets/icon/orientedImagerySceneOnly32.json +1 -0
  216. package/dist/cdn/assets/icon/returnToDefault16.json +1 -0
  217. package/dist/cdn/assets/icon/returnToDefault24.json +1 -0
  218. package/dist/cdn/assets/icon/returnToDefault32.json +1 -0
  219. package/dist/cdn/assets/icon/reviewMap16.json +1 -0
  220. package/dist/cdn/assets/icon/reviewMap24.json +1 -0
  221. package/dist/cdn/assets/icon/reviewMap32.json +1 -0
  222. package/dist/cdn/assets/icon/totalStation16.json +1 -0
  223. package/dist/cdn/assets/icon/totalStation24.json +1 -0
  224. package/dist/cdn/assets/icon/totalStation32.json +1 -0
  225. package/dist/cdn/assets/icon/velocityServer16.json +1 -0
  226. package/dist/cdn/assets/icon/velocityServer24.json +1 -0
  227. package/dist/cdn/assets/icon/velocityServer32.json +1 -0
  228. package/dist/cdn/index.js +2 -2
  229. package/dist/cdn/main.css +2 -2
  230. package/dist/chunks/ClearButton.js +16 -0
  231. package/dist/chunks/ExpandToggle.js +2 -2
  232. package/dist/chunks/FloatingArrow.js +24 -0
  233. package/dist/chunks/Heading.js +3 -3
  234. package/dist/chunks/component.js +1 -1
  235. package/dist/chunks/dom.js +50 -29
  236. package/dist/chunks/floating-ui.js +1 -1
  237. package/dist/chunks/locale.js +29 -12
  238. package/dist/chunks/{useReferenceElement.js → manager.js} +114 -114
  239. package/dist/chunks/resources6.js +2 -0
  240. package/dist/chunks/runtime.js +4 -4
  241. package/dist/chunks/useFocusTrap.js +70 -28
  242. package/dist/chunks/useForm.js +225 -44
  243. package/dist/chunks/useFormTrigger.js +25 -0
  244. package/dist/chunks/{sortableComponent.js → useSortable.js} +70 -44
  245. package/dist/chunks/utils.js +6 -6
  246. package/dist/chunks/utils3.js +18 -3
  247. package/dist/components/calcite-accordion-item/customElement.d.ts +6 -6
  248. package/dist/components/calcite-action/customElement.d.ts +20 -12
  249. package/dist/components/calcite-action/customElement.js +10 -15
  250. package/dist/components/calcite-action-bar/customElement.d.ts +4 -4
  251. package/dist/components/calcite-action-bar/customElement.js +12 -6
  252. package/dist/components/calcite-action-group/customElement.d.ts +12 -6
  253. package/dist/components/calcite-action-group/customElement.js +2 -1
  254. package/dist/components/calcite-action-menu/customElement.d.ts +2 -2
  255. package/dist/components/calcite-action-pad/customElement.d.ts +3 -3
  256. package/dist/components/calcite-action-pad/customElement.js +12 -7
  257. package/dist/components/calcite-alert/customElement.d.ts +2 -2
  258. package/dist/components/calcite-alert/customElement.js +1 -1
  259. package/dist/components/calcite-autocomplete/customElement.d.ts +16 -13
  260. package/dist/components/calcite-autocomplete/customElement.js +21 -32
  261. package/dist/components/calcite-autocomplete-item/customElement.d.ts +6 -0
  262. package/dist/components/calcite-autocomplete-item/customElement.js +9 -4
  263. package/dist/components/calcite-block/customElement.d.ts +11 -7
  264. package/dist/components/calcite-block/customElement.js +1 -1
  265. package/dist/components/calcite-block-group/customElement.d.ts +1 -1
  266. package/dist/components/calcite-block-group/customElement.js +4 -11
  267. package/dist/components/calcite-block-group/interfaces.d.ts +2 -6
  268. package/dist/components/calcite-block-section/customElement.d.ts +1 -1
  269. package/dist/components/calcite-button/customElement.d.ts +6 -6
  270. package/dist/components/calcite-button/customElement.js +10 -22
  271. package/dist/components/calcite-card/customElement.d.ts +11 -5
  272. package/dist/components/calcite-card/customElement.js +5 -3
  273. package/dist/components/calcite-card-group/customElement.d.ts +9 -3
  274. package/dist/components/calcite-card-group/customElement.js +11 -1
  275. package/dist/components/calcite-carousel/customElement.d.ts +8 -2
  276. package/dist/components/calcite-carousel/customElement.js +11 -8
  277. package/dist/components/calcite-carousel/interfaces.d.ts +3 -1
  278. package/dist/components/calcite-checkbox/customElement.d.ts +4 -5
  279. package/dist/components/calcite-checkbox/customElement.js +2 -15
  280. package/dist/components/calcite-chip/customElement.d.ts +2 -2
  281. package/dist/components/calcite-chip/customElement.js +1 -1
  282. package/dist/components/calcite-chip-group/customElement.d.ts +1 -1
  283. package/dist/components/calcite-color-picker/customElement.d.ts +2 -2
  284. package/dist/components/calcite-color-picker/customElement.js +2 -2
  285. package/dist/components/calcite-color-picker-hex-input/customElement.d.ts +1 -1
  286. package/dist/components/calcite-color-picker-hex-input/customElement.js +1 -1
  287. package/dist/components/calcite-color-picker-swatch/customElement.d.ts +1 -1
  288. package/dist/components/calcite-combobox/customElement.d.ts +5 -5
  289. package/dist/components/calcite-combobox/customElement.js +57 -69
  290. package/dist/components/calcite-combobox/index.js +2 -1
  291. package/dist/components/calcite-combobox-item/customElement.d.ts +1 -1
  292. package/dist/components/calcite-combobox-item/customElement.js +1 -1
  293. package/dist/components/calcite-date-picker/customElement.d.ts +1 -1
  294. package/dist/components/calcite-date-picker/customElement.js +4 -14
  295. package/dist/components/calcite-date-picker-day/customElement.d.ts +1 -1
  296. package/dist/components/calcite-date-picker-day/customElement.js +1 -1
  297. package/dist/components/calcite-date-picker-month/customElement.js +2 -2
  298. package/dist/components/calcite-date-picker-month-header/customElement.js +1 -1
  299. package/dist/components/calcite-dialog/customElement.d.ts +7 -5
  300. package/dist/components/calcite-dialog/customElement.js +4 -2
  301. package/dist/components/calcite-dropdown/customElement.d.ts +15 -5
  302. package/dist/components/calcite-dropdown/customElement.js +166 -91
  303. package/dist/components/calcite-dropdown-item/customElement.d.ts +2 -2
  304. package/dist/components/calcite-dropdown-item/customElement.js +14 -32
  305. package/dist/components/calcite-fab/customElement.d.ts +1 -1
  306. package/dist/components/calcite-fab/customElement.js +2 -2
  307. package/dist/components/calcite-filter/customElement.d.ts +1 -1
  308. package/dist/components/calcite-flow/customElement.d.ts +1 -1
  309. package/dist/components/calcite-flow-item/customElement.d.ts +8 -5
  310. package/dist/components/calcite-flow-item/customElement.js +4 -2
  311. package/dist/components/calcite-focus-trap/customElement.d.ts +46 -0
  312. package/dist/components/calcite-focus-trap/customElement.js +56 -0
  313. package/dist/components/calcite-focus-trap/index.d.ts +1 -0
  314. package/dist/components/calcite-focus-trap/index.js +1 -0
  315. package/dist/components/calcite-graph/customElement.js +1 -1
  316. package/dist/components/calcite-handle/customElement.d.ts +1 -1
  317. package/dist/components/calcite-icon/customElement.d.ts +1 -1
  318. package/dist/components/calcite-inline-editable/customElement.d.ts +2 -2
  319. package/dist/components/calcite-inline-editable/customElement.js +1 -1
  320. package/dist/components/calcite-input/customElement.d.ts +17 -18
  321. package/dist/components/calcite-input/customElement.js +26 -49
  322. package/dist/components/calcite-input/index.js +1 -0
  323. package/dist/components/calcite-input-date-picker/customElement.d.ts +6 -7
  324. package/dist/components/calcite-input-date-picker/customElement.js +67 -76
  325. package/dist/components/calcite-input-message/customElement.d.ts +1 -1
  326. package/dist/components/calcite-input-number/customElement.d.ts +13 -14
  327. package/dist/components/calcite-input-number/customElement.js +22 -48
  328. package/dist/components/calcite-input-number/index.js +1 -0
  329. package/dist/components/calcite-input-text/customElement.d.ts +11 -12
  330. package/dist/components/calcite-input-text/customElement.js +6 -18
  331. package/dist/components/calcite-input-text/index.js +1 -0
  332. package/dist/components/calcite-input-time-picker/customElement.d.ts +6 -7
  333. package/dist/components/calcite-input-time-picker/customElement.js +11 -23
  334. package/dist/components/calcite-input-time-zone/customElement.d.ts +5 -6
  335. package/dist/components/calcite-input-time-zone/customElement.js +21 -19
  336. package/dist/components/calcite-label/customElement.js +1 -1
  337. package/dist/components/calcite-link/customElement.d.ts +9 -9
  338. package/dist/components/calcite-link/customElement.js +28 -23
  339. package/dist/components/calcite-list/customElement.d.ts +1 -1
  340. package/dist/components/calcite-list/customElement.js +18 -15
  341. package/dist/components/calcite-list/interfaces.d.ts +2 -6
  342. package/dist/components/calcite-list-item/customElement.d.ts +2 -2
  343. package/dist/components/calcite-list-item/customElement.js +7 -4
  344. package/dist/components/calcite-list-item-group/customElement.js +6 -0
  345. package/dist/components/calcite-loader/customElement.d.ts +1 -1
  346. package/dist/components/calcite-menu/customElement.d.ts +1 -1
  347. package/dist/components/calcite-menu/customElement.js +1 -1
  348. package/dist/components/calcite-menu-item/customElement.d.ts +3 -3
  349. package/dist/components/calcite-menu-item/customElement.js +1 -1
  350. package/dist/components/calcite-meter/customElement.js +4 -4
  351. package/dist/components/calcite-navigation/customElement.d.ts +9 -2
  352. package/dist/components/calcite-navigation/customElement.js +56 -3
  353. package/dist/components/calcite-navigation-logo/customElement.d.ts +3 -3
  354. package/dist/components/calcite-navigation-logo/customElement.js +4 -3
  355. package/dist/components/calcite-navigation-user/customElement.d.ts +2 -2
  356. package/dist/components/calcite-navigation-user/customElement.js +11 -6
  357. package/dist/components/calcite-notice/customElement.d.ts +3 -3
  358. package/dist/components/calcite-notice/customElement.js +1 -1
  359. package/dist/components/calcite-pagination/customElement.d.ts +1 -1
  360. package/dist/components/calcite-pagination/customElement.js +1 -1
  361. package/dist/components/calcite-panel/customElement.d.ts +7 -5
  362. package/dist/components/calcite-panel/customElement.js +20 -8
  363. package/dist/components/calcite-popover/customElement.d.ts +2 -2
  364. package/dist/components/calcite-popover/customElement.js +3 -2
  365. package/dist/components/calcite-radio-button/customElement.d.ts +30 -2
  366. package/dist/components/calcite-radio-button/customElement.js +12 -19
  367. package/dist/components/calcite-radio-button-group/customElement.d.ts +1 -1
  368. package/dist/components/calcite-radio-button-group/customElement.js +20 -1
  369. package/dist/components/calcite-rating/customElement.d.ts +3 -4
  370. package/dist/components/calcite-rating/customElement.js +12 -18
  371. package/dist/components/calcite-segmented-control/customElement.d.ts +3 -4
  372. package/dist/components/calcite-segmented-control/customElement.js +8 -19
  373. package/dist/components/calcite-segmented-control-item/customElement.d.ts +0 -1
  374. package/dist/components/calcite-segmented-control-item/customElement.js +1 -1
  375. package/dist/components/calcite-select/customElement.d.ts +3 -4
  376. package/dist/components/calcite-select/customElement.js +9 -20
  377. package/dist/components/calcite-sheet/customElement.d.ts +3 -3
  378. package/dist/components/calcite-sheet/customElement.js +3 -7
  379. package/dist/components/calcite-shell-panel/customElement.d.ts +4 -4
  380. package/dist/components/calcite-shell-panel/customElement.js +59 -30
  381. package/dist/components/calcite-slider/customElement.d.ts +3 -4
  382. package/dist/components/calcite-slider/customElement.js +12 -22
  383. package/dist/components/calcite-sort-handle/customElement.d.ts +4 -4
  384. package/dist/components/calcite-sort-handle/customElement.js +44 -17
  385. package/dist/components/calcite-sortable-list/customElement.d.ts +1 -1
  386. package/dist/components/calcite-sortable-list/customElement.js +3 -3
  387. package/dist/components/calcite-split-button/customElement.d.ts +8 -8
  388. package/dist/components/calcite-stepper/customElement.d.ts +2 -2
  389. package/dist/components/calcite-stepper/customElement.js +29 -42
  390. package/dist/components/calcite-stepper-item/customElement.d.ts +1 -1
  391. package/dist/components/calcite-stepper-item/customElement.js +2 -8
  392. package/dist/components/calcite-swatch/customElement.d.ts +1 -1
  393. package/dist/components/calcite-switch/customElement.d.ts +4 -4
  394. package/dist/components/calcite-switch/customElement.js +9 -8
  395. package/dist/components/calcite-tab/customElement.d.ts +1 -1
  396. package/dist/components/calcite-tab/customElement.js +1 -1
  397. package/dist/components/calcite-tab-nav/customElement.js +1 -1
  398. package/dist/components/calcite-tab-title/customElement.js +1 -1
  399. package/dist/components/calcite-table/customElement.js +1 -1
  400. package/dist/components/calcite-table-cell/customElement.d.ts +2 -2
  401. package/dist/components/calcite-table-header/customElement.d.ts +2 -2
  402. package/dist/components/calcite-table-row/customElement.d.ts +1 -1
  403. package/dist/components/calcite-tabs/customElement.js +2 -1
  404. package/dist/components/calcite-text-area/customElement.d.ts +13 -14
  405. package/dist/components/calcite-text-area/customElement.js +32 -37
  406. package/dist/components/calcite-tile/customElement.d.ts +1 -1
  407. package/dist/components/calcite-time-picker/customElement.d.ts +1 -1
  408. package/dist/components/calcite-time-picker/customElement.js +2 -2
  409. package/dist/components/calcite-tooltip/customElement.d.ts +15 -2
  410. package/dist/components/calcite-tooltip/customElement.js +16 -8
  411. package/dist/components/calcite-tree/customElement.js +1 -1
  412. package/dist/components/calcite-tree-item/customElement.js +2 -3
  413. package/dist/controllers/useSortable.d.ts +7 -0
  414. package/dist/docs/api.json +1 -1
  415. package/dist/docs/docs.json +1 -1
  416. package/dist/docs/supported-browsers.json +1 -1
  417. package/dist/docs/translations.json +1 -1
  418. package/dist/docs/vscode.css-custom-data.json +1 -1
  419. package/dist/docs/vscode.html-custom-data.json +1 -1
  420. package/dist/docs/web-types.json +1 -1
  421. package/dist/index.d.ts +10 -0
  422. package/dist/loader.js +27 -26
  423. package/dist/types/lumina.d.ts +16 -10
  424. package/dist/types/preact.d.ts +17 -10
  425. package/dist/types/react.d.ts +18 -10
  426. package/dist/types/stencil.d.ts +16 -10
  427. package/package.json +22 -23
  428. package/dist/cdn/24BVOJIY.js +0 -2
  429. package/dist/cdn/3O7NXGXJ.js +0 -3
  430. package/dist/cdn/43SP7K3P.js +0 -2
  431. package/dist/cdn/45Z5R6GR.js +0 -2
  432. package/dist/cdn/47RTCYTX.js +0 -2
  433. package/dist/cdn/4AQ3DQDN.js +0 -2
  434. package/dist/cdn/4DJKUEBQ.js +0 -2
  435. package/dist/cdn/4IBKGKIH.js +0 -2
  436. package/dist/cdn/4JVVYRDW.js +0 -2
  437. package/dist/cdn/4U633XVG.js +0 -2
  438. package/dist/cdn/55GOZN42.js +0 -2
  439. package/dist/cdn/575ZYV35.js +0 -2
  440. package/dist/cdn/5LUEFKD3.js +0 -2
  441. package/dist/cdn/5RDU2ZNH.js +0 -2
  442. package/dist/cdn/6OKASMD7.js +0 -2
  443. package/dist/cdn/7ECYZZBW.js +0 -2
  444. package/dist/cdn/7UOYXJ3K.js +0 -2
  445. package/dist/cdn/A6XPQQWN.js +0 -2
  446. package/dist/cdn/ANQRSTGE.js +0 -2
  447. package/dist/cdn/BDQCESE7.js +0 -2
  448. package/dist/cdn/CKMZY3H7.js +0 -2
  449. package/dist/cdn/DRQCOAQ4.js +0 -2
  450. package/dist/cdn/DTUD5FAT.js +0 -2
  451. package/dist/cdn/EQZPTVS3.js +0 -2
  452. package/dist/cdn/ESATITDD.js +0 -2
  453. package/dist/cdn/ETIO6SPJ.js +0 -2
  454. package/dist/cdn/EY7FPNVS.js +0 -2
  455. package/dist/cdn/FIEDEHAP.js +0 -2
  456. package/dist/cdn/FZ6ZUHKQ.js +0 -2
  457. package/dist/cdn/GH34TDLL.js +0 -2
  458. package/dist/cdn/HG2EYXWI.js +0 -2
  459. package/dist/cdn/I5G3H4D4.js +0 -2
  460. package/dist/cdn/IBQYZCFQ.js +0 -2
  461. package/dist/cdn/IQ4VNR4Q.js +0 -2
  462. package/dist/cdn/J2OGE3DI.js +0 -2
  463. package/dist/cdn/JPWQ44GC.js +0 -2
  464. package/dist/cdn/JRF656V5.js +0 -2
  465. package/dist/cdn/K2H2TINH.js +0 -2
  466. package/dist/cdn/KDZRPYFR.js +0 -2
  467. package/dist/cdn/KHIMNKVO.js +0 -2
  468. package/dist/cdn/KMOFSKZF.js +0 -2
  469. package/dist/cdn/KQNOWW4C.js +0 -2
  470. package/dist/cdn/KYKC2CK2.js +0 -2
  471. package/dist/cdn/L5LBH4FP.js +0 -2
  472. package/dist/cdn/LKRLVAVK.js +0 -2
  473. package/dist/cdn/M6MHKAA5.js +0 -2
  474. package/dist/cdn/MMEADS6E.js +0 -2
  475. package/dist/cdn/NGXAYCAR.js +0 -2
  476. package/dist/cdn/NVHH3XZJ.js +0 -2
  477. package/dist/cdn/NVSO6GLT.js +0 -2
  478. package/dist/cdn/NY7A5LKZ.js +0 -2
  479. package/dist/cdn/OLYLT2L5.js +0 -2
  480. package/dist/cdn/OXCJDMGQ.js +0 -2
  481. package/dist/cdn/P4JFMLKY.js +0 -2
  482. package/dist/cdn/PCTQTX5N.js +0 -2
  483. package/dist/cdn/PHGT3YNE.js +0 -2
  484. package/dist/cdn/QR4JRFEP.js +0 -4
  485. package/dist/cdn/QWALXRY6.js +0 -2
  486. package/dist/cdn/RCUNETDY.js +0 -2
  487. package/dist/cdn/SAQAAU52.js +0 -2
  488. package/dist/cdn/SG24GAXY.js +0 -2
  489. package/dist/cdn/SIMNCT4V.js +0 -2
  490. package/dist/cdn/SJSCENKK.js +0 -2
  491. package/dist/cdn/SLVFP6JA.js +0 -2
  492. package/dist/cdn/TMOOTRK4.js +0 -2
  493. package/dist/cdn/TXYWJHYI.js +0 -2
  494. package/dist/cdn/UHQ454NG.js +0 -2
  495. package/dist/cdn/UTQKB5CS.js +0 -2
  496. package/dist/cdn/V2EVNXUV.js +0 -2
  497. package/dist/cdn/WITGQRKF.js +0 -2
  498. package/dist/cdn/WJXZ7BPV.js +0 -2
  499. package/dist/cdn/WM4NZNNA.js +0 -2
  500. package/dist/cdn/YANXY6FO.js +0 -2
  501. package/dist/cdn/YMSZKTCN.js +0 -2
  502. package/dist/cdn/YYDYHAP7.js +0 -2
  503. package/dist/cdn/ZEASFJJQ.js +0 -2
  504. package/dist/cdn/ZGCRVGEK.js +0 -2
  505. package/dist/cdn/ZPZI63EH.js +0 -3
  506. package/dist/cdn/ZQLGBHLZ.js +0 -2
  507. package/dist/cdn/ZTV4V5SF.js +0 -2
  508. package/dist/chunks/form.js +0 -268
  509. package/dist/chunks/input.js +0 -40
  510. package/dist/controllers/useForm.d.ts +0 -3
  511. package/dist/utils/form.d.ts +0 -3
  512. package/dist/utils/sortableComponent.d.ts +0 -7
@@ -4,18 +4,17 @@ import { css, nothing, html } from "lit";
4
4
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
5
5
  import { createRef, ref } from "lit/directives/ref.js";
6
6
  import { useDirection } from "@arcgis/lumina/controllers";
7
- import { c as connectForm, d as disconnectForm, s as submitForm, H as HiddenFormInputSlot } from "../../chunks/form.js";
8
7
  import { c as connectLabel, d as disconnectLabel, g as getLabelText } from "../../chunks/label.js";
9
8
  import { d as decimalPlaces } from "../../chunks/math.js";
10
9
  import { g as getIconScale } from "../../chunks/component.js";
11
10
  import { I as InternalLabel } from "../../chunks/InternalLabel.js";
12
11
  import { V as Validation } from "../../chunks/Validation.js";
13
- import { a as syncHiddenFormInput } from "../../chunks/input.js";
14
12
  import { u as useT9n } from "../../chunks/useT9n.js";
15
13
  import { i as isValidNumber } from "../../chunks/locale.js";
16
14
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
17
15
  import { u as useTime } from "../../chunks/useTime.js";
18
16
  import { u as useInteractive } from "../../chunks/useInteractive.js";
17
+ import { u as useForm } from "../../chunks/useForm.js";
19
18
  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}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}::slotted(input[slot=hidden-form-input]){margin:0!important;opacity:0!important;outline:none!important;padding:0!important;position:absolute!important;inset:0!important;transform:none!important;-webkit-appearance:none!important;z-index:-1!important}calcite-time-picker{--calcite-time-picker-color: var(--calcite-input-time-picker-digit-text-color);--calcite-time-picker-icon-color: var(--calcite-input-time-picker-digit-icon-color);--calcite-time-picker-border-color: var(--calcite-input-time-picker-border-color);--calcite-time-picker-button-background-color-hover: var(--calcite-input-time-picker-action-background-color-hover);--calcite-time-picker-button-background-color-press: var(--calcite-input-time-picker-action-background-color-press);--calcite-time-picker-input-border-color-hover: var(--calcite-input-time-picker-digit-border-color-hover);--calcite-time-picker-input-border-color-press: var(--calcite-input-time-picker-digit-border-color-press)}.container{--calcite-icon-color: var( --calcite-input-time-picker-icon-color, var(--calcite-ui-icon-color, var(--calcite-color-text-3)) );align-items:center;background-color:var(--calcite-input-time-picker-input-background-color, var(--calcite-color-foreground-1));border:1px solid var(--calcite-input-time-picker-input-border-color, var(--calcite-color-border-input));border-radius:var(--calcite-input-time-picker-input-corner-radius, var(--calcite-corner-radius-none));box-shadow:var(--calcite-input-time-picker-input-shadow, var(--calcite-shadow-none));box-sizing:border-box;display:flex;color:var(--calcite-input-time-picker-input-text-color, var(--calcite-color-text-1));flex-wrap:nowrap;font-weight:var(--calcite-font-weight-normal);inline-size:100%;padding-block:var(--calcite-spacing-base);-webkit-user-select:none;user-select:none}.container:focus-within{border-color:var(--calcite-color-brand);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))))}.container.read-only{background-color:var(--calcite-color-background);font-weight:var(--calcite-font-weight-medium)}.clock-icon{--calcite-icon-color: var( --calcite-input-time-picker-icon-color, var(--calcite-ui-icon-color, var(--calcite-color-text-3)) )}.hour-suffix,.minute-suffix,.second-suffix{white-space:pre}.input-container{display:flex;flex-grow:1}.input{align-items:center;display:flex;block-size:100%;justify-content:center;min-inline-size:max-content}.input.empty{inline-size:var(--calcite-spacing-xl)}.input:focus,.input:hover:focus{background-color:Highlight;color:HighlightText;outline:2px solid transparent;outline-offset:2px}.toggle-icon{--calcite-icon-color: var(--calcite-input-time-picker-icon-color, var(--calcite-color-text-3));align-items:center;block-size:24px;cursor:pointer;display:flex;inline-size:24px;justify-content:center}.toggle-icon:hover{--calcite-icon-color: var(--calcite-input-time-picker-icon-color-hover, var(--calcite-color-text-1))}:host([scale=s]) .container{block-size:1.5rem;font-size:var(--calcite-font-size-sm);gap:var(--calcite-spacing-sm);padding-inline-start:var(--calcite-spacing-sm);padding-inline-end:var(--calcite-spacing-xxs)}:host([scale=s]) .input-container{line-height:1rem}:host([scale=m]) .container{block-size:2rem;font-size:var(--calcite-font-size);gap:var(--calcite-spacing-md);padding-inline-start:var(--calcite-spacing-md);padding-inline-end:var(--calcite-spacing-sm)}:host([scale=m]) .input-container{line-height:1.5rem}:host([scale=l]) .container{block-size:2.75rem;font-size:var(--calcite-font-size-md);gap:var(--calcite-spacing-lg);padding-inline:var(--calcite-spacing-lg)}:host([scale=l]) .input-container{line-height:2.25rem}:host([status=invalid]) .container{border-color:var(--calcite-color-status-danger)}:host([status=invalid]) .container:focus-within{outline:var(--calcite-border-width-md) solid var(--calcite-color-status-danger);outline-offset:calc(calc(-1 * var(--calcite-spacing-base)) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}calcite-time-picker{--calcite-time-picker-background-color: var(--calcite-input-time-picker-background-color);--calcite-time-picker-border-color: var(--calcite-input-time-picker-border-color, transparent);--calcite-time-picker-corner-radius: var( --calcite-input-time-picker-corner-radius, var(--calcite-corner-radius-round) )}calcite-popover{--calcite-popover-corner-radius: var(--calcite-input-time-picker-corner-radius, var(--calcite-corner-radius-round))}.internal-label-alignment--center{align-items:center}.internal-label-alignment--end{align-items:end}.internal-label--container{display:flex;justify-content:space-between;color:var(--calcite-color-text-1)}.internal-label-required--indicator{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-status-danger);padding-inline:var(--calcite-spacing-base)}.internal-label-required--indicator:hover{cursor:help}.internal-label--text{line-height:1}:host([scale=s]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-xxs)}:host([scale=s]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=s]) .internal-label--text{font-size:var(--calcite-font-size--2)}:host([scale=m]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-sm)}:host([scale=m]) .internal-label--text{font-size:var(--calcite-font-size--1)}:host([scale=l]) .internal-label-spacing--bottom{margin-block-end:var(--calcite-spacing-sm)}:host([scale=l]) .internal-label-spacing-inline--end{margin-inline-end:var(--calcite-spacing-md)}:host([scale=l]) .internal-label-spacing-inline--start{margin-inline-start:var(--calcite-spacing-md)}:host([scale=l]) .internal-label--text{font-size:var(--calcite-font-size-0)}.validation-container{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}:host([scale=m]) .validation-container,:host([scale=l]) .validation-container{padding-block-start:.5rem}:host([scale=s]) .validation-container{padding-block-start:.25rem}:host([hidden]){display:none}[hidden]{display:none}`;
20
19
  const CSS = {
21
20
  clockIcon: "clock-icon",
@@ -51,6 +50,9 @@ class InputTimePicker extends LitElement {
51
50
  this.containerRef = createRef();
52
51
  this.direction = useDirection();
53
52
  this.focusSetter = useSetFocus()(this);
53
+ this.formSupport = useForm({
54
+ inputType: "time"
55
+ })(this);
54
56
  this.fractionalSecondRef = createRef();
55
57
  this.hourRef = createRef();
56
58
  this.meridiemRef = createRef();
@@ -70,19 +72,6 @@ class InputTimePicker extends LitElement {
70
72
  this.scale = "m";
71
73
  this.status = "idle";
72
74
  this.step = 60;
73
- this.validity = {
74
- valid: false,
75
- badInput: false,
76
- customError: false,
77
- patternMismatch: false,
78
- rangeOverflow: false,
79
- rangeUnderflow: false,
80
- stepMismatch: false,
81
- tooLong: false,
82
- tooShort: false,
83
- typeMismatch: false,
84
- valueMissing: false
85
- };
86
75
  this.calciteInputTimePickerBeforeClose = createEvent({ cancelable: false });
87
76
  this.calciteInputTimePickerBeforeOpen = createEvent({ cancelable: false });
88
77
  this.calciteInputTimePickerChange = createEvent();
@@ -93,7 +82,10 @@ class InputTimePicker extends LitElement {
93
82
  this.listen("calciteTimeChange", this.timeChangeHandler);
94
83
  }
95
84
  static {
96
- this.properties = { disabled: [7, {}, { reflect: true, type: Boolean }], focusTrapDisabled: [7, {}, { reflect: true, type: Boolean }], form: [3, {}, { reflect: true }], hourFormat: [3, {}, { reflect: true }], label: 1, labelText: 1, max: [3, {}, { reflect: true }], messageOverrides: [0, {}, { attribute: false }], min: [3, {}, { reflect: true }], name: 1, numberingSystem: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: 1, placement: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], step: [11, {}, { reflect: true, type: Number }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [0, {}, { attribute: false }], value: 1 };
85
+ this.properties = { disabled: [7, {}, { reflect: true, type: Boolean }], focusTrapDisabled: [7, {}, { reflect: true, type: Boolean }], form: [3, {}, { reflect: true }], hourFormat: [3, {}, { reflect: true }], label: 1, labelText: 1, max: [3, {}, { reflect: true }], messageOverrides: [0, {}, { attribute: false }], min: [3, {}, { reflect: true }], name: 1, numberingSystem: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: 1, placement: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], step: [11, {}, { reflect: true, type: Number }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [32, {}, { readOnly: true, attribute: false }], value: 1 };
86
+ }
87
+ static {
88
+ this.formAssociated = true;
97
89
  }
98
90
  static {
99
91
  this.shadowRootOptions = { mode: "open", delegatesFocus: true };
@@ -110,7 +102,6 @@ class InputTimePicker extends LitElement {
110
102
  connectedCallback() {
111
103
  super.connectedCallback();
112
104
  connectLabel(this);
113
- connectForm(this);
114
105
  }
115
106
  willUpdate(changes) {
116
107
  if (changes.has("open") && (this.hasUpdated || this.open !== false)) {
@@ -141,7 +132,6 @@ class InputTimePicker extends LitElement {
141
132
  disconnectedCallback() {
142
133
  super.disconnectedCallback();
143
134
  disconnectLabel(this);
144
- disconnectForm(this);
145
135
  }
146
136
  blurHandler() {
147
137
  this.changeEventHandler();
@@ -164,7 +154,8 @@ class InputTimePicker extends LitElement {
164
154
  return;
165
155
  }
166
156
  if (key === "Enter") {
167
- if (submitForm(this)) {
157
+ if (this.formSupport.active) {
158
+ this.formSupport.requestSubmit();
168
159
  event.preventDefault();
169
160
  }
170
161
  this.changeEventHandler();
@@ -277,9 +268,6 @@ class InputTimePicker extends LitElement {
277
268
  const ref2 = target === "hour" ? this.hourRef : target === "minute" ? this.minuteRef : target === "second" ? this.secondRef : target === "fractionalSecond" ? this.fractionalSecondRef : this.meridiemRef;
278
269
  ref2.value?.focus();
279
270
  }
280
- syncHiddenFormInput(input) {
281
- syncHiddenFormInput("time", this, input);
282
- }
283
271
  timeChangeHandler(event) {
284
272
  event.stopPropagation();
285
273
  if (this.disabled) {
@@ -333,7 +321,7 @@ class InputTimePicker extends LitElement {
333
321
  [CSS.empty]: !localizedFractionalSecond,
334
322
  [CSS.fractionalSecond]: true,
335
323
  [CSS.input]: true
336
- })} @focus=${this.timePartFocusHandler} @keydown=${isInteractive ? handleFractionalSecondKeyDownEvent : void 0} role=spinbutton tabindex=0 ${ref(this.fractionalSecondRef)}>${localizedFractionalSecond || "".padStart(decimalPlaces(this.step), "-")}</span>` || ""}${localizedSecondSuffix && html`<span class=${safeClassMap(CSS.secondSuffix)}>${localizedSecondSuffix}</span>` || ""}${showMeridiem && !meridiemStart && this.renderMeridiem() || ""}</div>${!this.readOnly && this.renderToggleIcon(this.open) || ""}</div><calcite-popover auto-close .focusTrapDisabled=${this.focusTrapDisabled} .focusTrapOptions=${{ initialFocus: false }} .label=${messages.chooseTime} lang=${this.messages._lang ?? nothing} offset-distance=0 @calcitePopoverBeforeClose=${this.popoverBeforeCloseHandler} @calcitePopoverBeforeOpen=${this.popoverBeforeOpenHandler} @calcitePopoverClose=${this.popoverCloseHandler} @calcitePopoverOpen=${this.popoverOpenHandler} .overlayPositioning=${this.overlayPositioning} .placement=${this.placement} pointer-disabled .referenceElement=${this.containerRef.value} trigger-disabled ${ref(this.setCalcitePopoverEl)}><calcite-time-picker .hourFormat=${this.time.hourFormat} lang=${this.messages._lang ?? nothing} .messageOverrides=${this.messageOverrides} .numberingSystem=${this.numberingSystem} @calciteTimePickerChange=${this.timePickerChangeHandler} .scale=${this.scale} .step=${this.step} tabindex=${(this.open ? void 0 : -1) ?? nothing} .time=${this.time} .value=${this.value} ${ref(this.timePickerRef)}></calcite-time-picker></calcite-popover>${HiddenFormInputSlot({ component: this })}${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
324
+ })} @focus=${this.timePartFocusHandler} @keydown=${isInteractive ? handleFractionalSecondKeyDownEvent : void 0} role=spinbutton tabindex=0 ${ref(this.fractionalSecondRef)}>${localizedFractionalSecond || "".padStart(decimalPlaces(this.step), "-")}</span>` || ""}${localizedSecondSuffix && html`<span class=${safeClassMap(CSS.secondSuffix)}>${localizedSecondSuffix}</span>` || ""}${showMeridiem && !meridiemStart && this.renderMeridiem() || ""}</div>${!this.readOnly && this.renderToggleIcon(this.open) || ""}</div><calcite-popover auto-close .focusTrapDisabled=${this.focusTrapDisabled} .focusTrapOptions=${{ initialFocus: false }} .label=${messages.chooseTime} lang=${this.messages._lang ?? nothing} offset-distance=0 @calcitePopoverBeforeClose=${this.popoverBeforeCloseHandler} @calcitePopoverBeforeOpen=${this.popoverBeforeOpenHandler} @calcitePopoverClose=${this.popoverCloseHandler} @calcitePopoverOpen=${this.popoverOpenHandler} .overlayPositioning=${this.overlayPositioning} .placement=${this.placement} pointer-disabled .referenceElement=${this.containerRef.value} trigger-disabled ${ref(this.setCalcitePopoverEl)}><calcite-time-picker .hourFormat=${this.time.hourFormat} lang=${this.messages._lang ?? nothing} .messageOverrides=${this.messageOverrides} .numberingSystem=${this.numberingSystem} @calciteTimePickerChange=${this.timePickerChangeHandler} .scale=${this.scale} .step=${this.step} tabindex=${(this.open ? void 0 : -1) ?? nothing} .time=${this.time} .value=${this.value} ${ref(this.timePickerRef)}></calcite-time-picker></calcite-popover>${this.validationMessage && this.status === "invalid" ? Validation({ icon: this.validationIcon, id: IDS.validationMessage, message: this.validationMessage, scale: this.scale, status: this.status }) : null}` });
337
325
  }
338
326
  renderMeridiem() {
339
327
  const { handleMeridiemKeyDownEvent, localizedMeridiem, meridiem } = this.time;
@@ -2,7 +2,6 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { Scale, Status } from "../interfaces.js";
4
4
  import type { OverlayPositioning } from "../../utils/floating-ui.js";
5
- import type { MutableValidityState } from "../../utils/form.js";
6
5
  import type { IconName } from "../calcite-icon/interfaces.js";
7
6
  import type { OffsetStyle, TimeZoneMode } from "./interfaces.js";
8
7
 
@@ -694,7 +693,7 @@ export abstract class InputTimeZone extends LitElement {
694
693
  *
695
694
  * It can be either a Date instance or a string in ISO format (`"YYYY-MM-DD"`, `"YYYY-MM-DDTHH:MM:SS.SSSZ"`).
696
695
  *
697
- * @see [Date.prototype.toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString).
696
+ * @see [MDN - Date.prototype.toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString).
698
697
  */
699
698
  accessor referenceDate: Date | string;
700
699
  /**
@@ -715,7 +714,7 @@ export abstract class InputTimeZone extends LitElement {
715
714
  * Only set this if you need complex z-index control or if top layer placement causes conflicts with third-party components.
716
715
  *
717
716
  * @default false
718
- * @mdn [Top Layer](https://developer.mozilla.org/en-US/docs/Glossary/Top_layer)
717
+ * @see [MDN - Top Layer](https://developer.mozilla.org/en-US/docs/Glossary/Top_layer)
719
718
  */
720
719
  accessor topLayerDisabled: boolean;
721
720
  /** Specifies the validation icon to display under the component. */
@@ -725,9 +724,9 @@ export abstract class InputTimeZone extends LitElement {
725
724
  /**
726
725
  * The component's current validation state.
727
726
  *
728
- * @mdn [ValidityState](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState)
727
+ * @see [MDN - ValidityState](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState)
729
728
  */
730
- get validity(): MutableValidityState;
729
+ get validity(): ValidityState;
731
730
  /**
732
731
  * The component's value, where the value is the time zone offset or the difference, in minutes, between the selected time zone and UTC.
733
732
  *
@@ -740,7 +739,7 @@ export abstract class InputTimeZone extends LitElement {
740
739
  * Sets focus on the component.
741
740
  *
742
741
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
743
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
742
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
744
743
  */
745
744
  setFocus(options?: FocusOptions): Promise<void>;
746
745
  /** Fires when the component is requested to be closed and before the closing transition begins. */
@@ -6,11 +6,11 @@ import { css, nothing, html } from "lit";
6
6
  import { LitElement, createEvent, stringOrBoolean, safeClassMap } from "@arcgis/lumina";
7
7
  import { createRef, ref } from "lit/directives/ref.js";
8
8
  import { c as connectLabel, d as disconnectLabel } from "../../chunks/label.js";
9
- import { c as connectForm, a as afterConnectDefaultValueSet, d as disconnectForm, H as HiddenFormInputSlot } from "../../chunks/form.js";
10
9
  import { u as useT9n } from "../../chunks/useT9n.js";
11
10
  import { S as SLOTS$1 } from "../../chunks/resources5.js";
12
11
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
13
12
  import { u as useInteractive } from "../../chunks/useInteractive.js";
13
+ import { u as useForm } from "../../chunks/useForm.js";
14
14
  import { g as getDateTimeFormat } from "../../chunks/locale.js";
15
15
  const CSS = {
16
16
  offset: "offset"
@@ -202,9 +202,13 @@ class InputTimeZone extends LitElement {
202
202
  constructor() {
203
203
  super(...arguments);
204
204
  this.comboboxRef = createRef();
205
+ this.formSupport = useForm({
206
+ inputType: "text"
207
+ })(this);
205
208
  this.messages = useT9n({ blocking: true });
206
209
  this.focusSetter = useSetFocus()(this);
207
210
  this.interactiveContainer = useInteractive(this);
211
+ this.#valueUpdateContext = null;
208
212
  this.clearable = false;
209
213
  this.disabled = false;
210
214
  this.maxItems = 0;
@@ -217,19 +221,6 @@ class InputTimeZone extends LitElement {
217
221
  this.scale = "m";
218
222
  this.status = "idle";
219
223
  this.topLayerDisabled = false;
220
- this.validity = {
221
- valid: false,
222
- badInput: false,
223
- customError: false,
224
- patternMismatch: false,
225
- rangeOverflow: false,
226
- rangeUnderflow: false,
227
- stepMismatch: false,
228
- tooLong: false,
229
- tooShort: false,
230
- typeMismatch: false,
231
- valueMissing: false
232
- };
233
224
  this.calciteInputTimeZoneBeforeClose = createEvent({ cancelable: false });
234
225
  this.calciteInputTimeZoneBeforeOpen = createEvent({ cancelable: false });
235
226
  this.calciteInputTimeZoneChange = createEvent({ cancelable: false });
@@ -237,7 +228,10 @@ class InputTimeZone extends LitElement {
237
228
  this.calciteInputTimeZoneOpen = createEvent({ cancelable: false });
238
229
  }
239
230
  static {
240
- this.properties = { clearable: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], form: [3, {}, { reflect: true }], labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], mode: [3, {}, { reflect: true }], name: [3, {}, { reflect: true }], offsetStyle: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], referenceDate: 1, required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [0, {}, { attribute: false }], value: 1 };
231
+ this.properties = { selectedTimeZoneItem: [16, {}, { state: true }], timeZoneItems: [16, {}, { state: true }], clearable: [7, {}, { reflect: true, type: Boolean }], disabled: [7, {}, { reflect: true, type: Boolean }], form: [3, {}, { reflect: true }], labelText: 1, maxItems: [11, {}, { reflect: true, type: Number }], messageOverrides: [0, {}, { attribute: false }], mode: [3, {}, { reflect: true }], name: [3, {}, { reflect: true }], offsetStyle: [3, {}, { reflect: true }], open: [7, {}, { reflect: true, type: Boolean }], overlayPositioning: [3, {}, { reflect: true }], readOnly: [7, {}, { reflect: true, type: Boolean }], referenceDate: 1, required: [7, {}, { reflect: true, type: Boolean }], scale: [3, {}, { reflect: true }], status: [3, {}, { reflect: true }], topLayerDisabled: [7, {}, { reflect: true, type: Boolean }], validationIcon: [3, { converter: stringOrBoolean, type: String }, { reflect: true }], validationMessage: 1, validity: [32, {}, { readOnly: true, attribute: false }], value: 1 };
232
+ }
233
+ static {
234
+ this.formAssociated = true;
241
235
  }
242
236
  static {
243
237
  this.shadowRootOptions = { mode: "open", delegatesFocus: true };
@@ -245,10 +239,12 @@ class InputTimeZone extends LitElement {
245
239
  static {
246
240
  this.styles = styles;
247
241
  }
242
+ #valueUpdateContext;
248
243
  get value() {
249
244
  return this._value;
250
245
  }
251
246
  set value(value) {
247
+ this.#valueUpdateContext = "internal";
252
248
  this._value = value;
253
249
  }
254
250
  async setFocus(options) {
@@ -256,7 +252,6 @@ class InputTimeZone extends LitElement {
256
252
  }
257
253
  connectedCallback() {
258
254
  super.connectedCallback();
259
- connectForm(this);
260
255
  connectLabel(this);
261
256
  }
262
257
  async load() {
@@ -267,7 +262,6 @@ class InputTimeZone extends LitElement {
267
262
  this.value = normalized || (initialValue === "" ? normalized : void 0);
268
263
  this.updateTimeZoneSelection();
269
264
  const selectedValue = this.selectedTimeZoneItem ? `${this.selectedTimeZoneItem.value}` : "";
270
- afterConnectDefaultValueSet(this, selectedValue);
271
265
  this.value = selectedValue;
272
266
  }
273
267
  willUpdate(changes) {
@@ -286,7 +280,6 @@ class InputTimeZone extends LitElement {
286
280
  }
287
281
  disconnectedCallback() {
288
282
  super.disconnectedCallback();
289
- disconnectForm(this);
290
283
  disconnectLabel(this);
291
284
  }
292
285
  async handleTimeZoneItemPropsChange() {
@@ -302,6 +295,11 @@ class InputTimeZone extends LitElement {
302
295
  }
303
296
  }
304
297
  async handleValueChange(value, oldValue) {
298
+ const userUpdated = this.#valueUpdateContext === "user";
299
+ this.#valueUpdateContext = null;
300
+ if (userUpdated) {
301
+ return;
302
+ }
305
303
  const normalized = this.normalizeValue(value);
306
304
  if (!normalized) {
307
305
  if (this.clearable) {
@@ -344,8 +342,10 @@ class InputTimeZone extends LitElement {
344
342
  event.stopPropagation();
345
343
  const combobox = event.target;
346
344
  const selectedItem = combobox.selectedItems[0];
345
+ const previousValue = this._value;
347
346
  if (!selectedItem) {
348
347
  this._value = "";
348
+ this.requestUpdate("value", previousValue);
349
349
  this.selectedTimeZoneItem = null;
350
350
  this.calciteInputTimeZoneChange.emit();
351
351
  return;
@@ -356,7 +356,9 @@ class InputTimeZone extends LitElement {
356
356
  return;
357
357
  }
358
358
  this._value = selectedValue;
359
+ this.requestUpdate("value", previousValue);
359
360
  this.selectedTimeZoneItem = selected;
361
+ this.#valueUpdateContext = "user";
360
362
  this.calciteInputTimeZoneChange.emit();
361
363
  }
362
364
  onComboboxClose(event) {
@@ -403,7 +405,7 @@ class InputTimeZone extends LitElement {
403
405
  return !metadata.country || open || !selected ? label : getSelectedRegionTimeZoneLabel(label, metadata.country, this.messages);
404
406
  }
405
407
  render() {
406
- return this.interactiveContainer({ disabled: this.disabled, children: html`<calcite-combobox .clearDisabled=${!this.clearable} .disabled=${this.disabled} .label=${this.messages.chooseTimeZone} .labelText=${this.labelText} lang=${this.messages._lang ?? nothing} .maxItems=${this.maxItems} @calciteComboboxBeforeClose=${this.onComboboxBeforeClose} @calciteComboboxBeforeOpen=${this.onComboboxBeforeOpen} @calciteComboboxChange=${this.onComboboxChange} @calciteComboboxClose=${this.onComboboxClose} @calciteComboboxOpen=${this.onComboboxOpen} .overlayPositioning=${this.overlayPositioning} .placeholder=${this.mode === "name" ? this.messages.namePlaceholder : this.mode === "offset" ? this.messages.offsetPlaceholder : this.messages.regionPlaceholder} placeholder-icon=search .readOnly=${this.readOnly} .required=${this.required} .scale=${this.scale} .selectionMode=${this.clearable ? "single" : "single-persist"} .status=${this.status} .topLayerDisabled=${this.topLayerDisabled} .validationIcon=${this.validationIcon} .validationMessage=${this.validationMessage} ${ref(this.comboboxRef)}>${this.renderItems()}<slot name=${SLOTS.labelContent} slot=${SLOTS$1.labelContent}></slot></calcite-combobox>${HiddenFormInputSlot({ component: this })}` });
408
+ return this.interactiveContainer({ disabled: this.disabled, children: html`<calcite-combobox .clearDisabled=${!this.clearable} .disabled=${this.disabled} .label=${this.messages.chooseTimeZone} .labelText=${this.labelText} lang=${this.messages._lang ?? nothing} .maxItems=${this.maxItems} @calciteComboboxBeforeClose=${this.onComboboxBeforeClose} @calciteComboboxBeforeOpen=${this.onComboboxBeforeOpen} @calciteComboboxChange=${this.onComboboxChange} @calciteComboboxClose=${this.onComboboxClose} @calciteComboboxOpen=${this.onComboboxOpen} .overlayPositioning=${this.overlayPositioning} .placeholder=${this.mode === "name" ? this.messages.namePlaceholder : this.mode === "offset" ? this.messages.offsetPlaceholder : this.messages.regionPlaceholder} placeholder-icon=search .readOnly=${this.readOnly} .required=${this.required} .scale=${this.scale} .selectionMode=${this.clearable ? "single" : "single-persist"} .status=${this.status} .topLayerDisabled=${this.topLayerDisabled} .validationIcon=${this.validationIcon} .validationMessage=${this.validationMessage} ${ref(this.comboboxRef)}>${this.renderItems()}<slot name=${SLOTS.labelContent} slot=${SLOTS$1.labelContent}></slot></calcite-combobox>` });
407
409
  }
408
410
  renderItems() {
409
411
  if (this.mode === "region") {
@@ -36,7 +36,7 @@ class Label extends LitElement {
36
36
  document.dispatchEvent(new CustomEvent(labelDisconnectedEvent));
37
37
  }
38
38
  labelClickHandler(event) {
39
- if (window.getSelection()?.type === "Range") {
39
+ if (window.getSelection()?.type === "Range" || event.defaultPrevented) {
40
40
  return;
41
41
  }
42
42
  this.calciteInternalLabelClick.emit({
@@ -6,7 +6,7 @@ import type { IconName } from "../calcite-icon/interfaces.js";
6
6
  /**
7
7
  * Any attributes placed on <calcite-link> component will propagate to the rendered child
8
8
  *
9
- * Passing a 'href' will render an anchor link, instead of a button.
9
+ * Passing a 'href' allows the component to behave like a link
10
10
  *
11
11
  * It is the consumers responsibility to add aria information, rel, target, for links, and any link attributes for form submission
12
12
  *
@@ -25,26 +25,26 @@ export abstract class Link extends LitElement {
25
25
  * Without a value, the browser will suggest a filename/extension.
26
26
  *
27
27
  * @default false
28
- * @see [Global download attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download).
28
+ * @see [MDN - Global download attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download).
29
29
  */
30
30
  accessor download: string | boolean;
31
31
  /** Specifies the URL of the linked resource, which can be set as an absolute or relative path. */
32
- accessor href: string;
32
+ accessor href: string | undefined;
33
33
  /** Specifies an icon to display at the end of the component. */
34
- accessor iconEnd: IconName;
34
+ accessor iconEnd: IconName | undefined;
35
35
  /** When `true` and the element direction is right-to-left (`"rtl"`), flips the component's `iconStart` and/or `iconEnd`. */
36
- accessor iconFlipRtl: FlipContext;
36
+ accessor iconFlipRtl: FlipContext | undefined;
37
37
  /** Specifies an icon to display at the start of the component. */
38
- accessor iconStart: IconName;
38
+ accessor iconStart: IconName | undefined;
39
39
  /** Specifies the relationship to the linked resource defined in `href`. */
40
- accessor rel: string;
40
+ accessor rel: string | undefined;
41
41
  /** Specifies the frame or window to open the linked resource. */
42
- accessor target: string;
42
+ accessor target: string | undefined;
43
43
  /**
44
44
  * Sets focus on the component.
45
45
  *
46
46
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
47
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
47
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
48
48
  */
49
49
  setFocus(options?: FocusOptions): Promise<void>;
50
50
  }
@@ -1,13 +1,13 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
2
  import { C as CSS_UTILITY, c as customElement } from "../../chunks/runtime.js";
3
3
  import { css, html } from "lit";
4
- import { literal, html as html$1 } from "lit/static-html.js";
5
- import { LitElement, stringOrBoolean, safeClassMap, nothing } from "@arcgis/lumina";
4
+ import { LitElement, stringOrBoolean, nothing, safeClassMap } from "@arcgis/lumina";
6
5
  import { createRef, ref } from "lit/directives/ref.js";
7
6
  import { useDirection } from "@arcgis/lumina/controllers";
8
7
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
9
8
  import { u as useInteractive } from "../../chunks/useInteractive.js";
10
- 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}:host a,:host button{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:0;border-style:none;font-family:inherit;text-decoration:none;line-height:inherit;font-size:inherit;-webkit-appearance:none}:host a:hover,:host button:hover{text-decoration:none}:host a,:host button{transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform,background-size;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out;outline-color:transparent}:host a:focus,:host button:focus{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(var(--calcite-spacing-base) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}calcite-icon{inline-size:1em;block-size:1em;min-inline-size:unset;min-block-size:unset}.calcite-link--icon{vertical-align:middle;margin-block-start:-.25em}:host .calcite-link--icon.icon-start{margin-inline-end:.5rem}:host .calcite-link--icon.icon-end{margin-inline-start:.5rem}:host button,:host a{position:relative;display:inline;border-style:none;background-color:transparent;padding:0;color:var(--calcite-link-text-color, var(--calcite-color-text-link));line-height:inherit;white-space:initial;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--calcite-color-brand-underline),var(--calcite-color-brand-underline));background-position-x:0%,100%;background-position-y:min(1.5em,100%);background-repeat:no-repeat,no-repeat;background-size:0% 1px,100% 1px}:host button:hover,:host button:focus,:host a:hover,:host a:focus{background-size:100% 1px,100% 1px}:host button:active,:host a:active{background-size:100% 2px,100% 2px}:host button.calcite--rtl,:host a.calcite--rtl{background-position:100% 100%,100% 100%}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}:host([hidden]){display:none}[hidden]{display:none}`;
9
+ import { i as isActivationKey } from "../../chunks/key.js";
10
+ 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}:host a{cursor:pointer;font-family:inherit;text-decoration-line:none;outline-color:transparent;font-size:inherit;-webkit-appearance:none;color:var(--calcite-link-text-color, var(--calcite-color-text-link));line-height:inherit;white-space:initial;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--calcite-color-brand-underline),var(--calcite-color-brand-underline));background-position-x:0 100%;background-position-y:min(1.5em,100%);background-repeat:no-repeat;background-size:0% var(--calcite-border-width-sm),100% var(--calcite-border-width-sm)}:host a:hover,:host a:focus{background-size:100% var(--calcite-border-width-sm),100% var(--calcite-border-width-sm)}:host a:focus{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(var(--calcite-spacing-base) * calc(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host a:active{background-size:100% var(--calcite-border-width-md),100% var(--calcite-border-width-md)}:host a:active.calcite--rtl{background-position:100% 100%,100% 100%}:host a{transition-property:background-color,block-size,border-color,box-shadow,color,inset-block-end,inset-block-start,inset-inline-end,inset-inline-start,inset-size,opacity,outline-color,transform,background-size;transition-duration:var(--calcite-animation-timing);transition-timing-function:ease-in-out}calcite-icon{inline-size:1em;block-size:1em;min-inline-size:unset;min-block-size:unset}.calcite-link--icon{vertical-align:middle;margin-block-start:-.25em}:host .calcite-link--icon.icon-start{margin-inline-end:.5rem}:host .calcite-link--icon.icon-end{margin-inline-start:.5rem}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}:host([hidden]){display:none}[hidden]{display:none}`;
11
11
  const CSS = {
12
12
  calciteLinkIcon: "calcite-link--icon",
13
13
  iconStart: "icon-start",
@@ -16,10 +16,21 @@ const CSS = {
16
16
  class Link extends LitElement {
17
17
  constructor() {
18
18
  super();
19
- this.childRef = createRef();
19
+ this.anchorRef = createRef();
20
20
  this.direction = useDirection();
21
21
  this.focusSetter = useSetFocus()(this);
22
22
  this.interactiveContainer = useInteractive(this);
23
+ this.keyDownHandler = (event) => {
24
+ if (isActivationKey(event.key)) {
25
+ event.preventDefault();
26
+ this.el.click();
27
+ }
28
+ };
29
+ this.anchorClickHandler = (event) => {
30
+ if (!event.isTrusted) {
31
+ event.stopPropagation();
32
+ }
33
+ };
23
34
  this.disabled = false;
24
35
  this.download = false;
25
36
  this.listen("click", this.clickHandler);
@@ -31,34 +42,28 @@ class Link extends LitElement {
31
42
  this.styles = styles;
32
43
  }
33
44
  async setFocus(options) {
34
- return this.focusSetter(() => this.childRef.value, options);
45
+ return this.focusSetter(() => this.anchorRef.value, options);
35
46
  }
36
47
  clickHandler(event) {
37
- if (this.disabled) {
38
- return;
39
- }
40
48
  if (!event.isTrusted) {
41
- this.childRef.value.click();
42
- }
43
- }
44
- childElClickHandler(event) {
45
- if (!event.isTrusted) {
46
- event.stopPropagation();
49
+ this.anchorRef.value?.click();
47
50
  }
48
51
  }
49
52
  render() {
50
53
  const { download } = this;
51
54
  const dir = this.direction;
52
- const childElType = this.href ? "a" : "button";
53
- const iconStartEl = html`<calcite-icon class=${safeClassMap({ [CSS.calciteLinkIcon]: true, [CSS.iconStart]: true })} .flipRtl=${this.iconFlipRtl === "start" || this.iconFlipRtl === "both"} .icon=${this.iconStart} scale=s></calcite-icon>`;
54
- const iconEndEl = html`<calcite-icon class=${safeClassMap({ [CSS.calciteLinkIcon]: true, [CSS.iconEnd]: true })} .flipRtl=${this.iconFlipRtl === "end" || this.iconFlipRtl === "both"} .icon=${this.iconEnd} scale=s></calcite-icon>`;
55
- const DynamicHtmlTag = childElType === "button" ? literal`button` : literal`a`;
56
- const tabIndex = childElType === "button" ? 0 : null;
55
+ const actAsButton = !this.href;
57
56
  this.el.role = "presentation";
58
- return this.interactiveContainer({ disabled: this.disabled, children: html$1`<${DynamicHtmlTag} class=${safeClassMap({ [CSS_UTILITY.rtl]: dir === "rtl" })} download=${(childElType === "a" ? download === true || download === "" ? "" : download || null : null) ?? nothing} href=${(childElType === "a" && this.href) ?? nothing} @click=${this.childElClickHandler} rel=${(childElType === "a" && this.rel) ?? nothing} tabindex=${tabIndex ?? nothing} target=${(childElType === "a" && this.target) ?? nothing} ${ref(
59
- this.childRef
60
- /* using unknown to workaround Lumina dynamic ref type issue */
61
- )}>${html`${this.iconStart ? iconStartEl : null}<slot></slot>${this.iconEnd ? iconEndEl : null}`}</${DynamicHtmlTag}>` });
57
+ return this.interactiveContainer({ disabled: this.disabled, children: html`<a class=${safeClassMap({ [CSS_UTILITY.rtl]: dir === "rtl" })} download=${(download === true || download === "" ? "" : download || void 0) ?? nothing} href=${(this.href || void 0) ?? nothing} @click=${this.anchorClickHandler} @keydown=${actAsButton ? this.keyDownHandler : void 0} rel=${this.rel ?? nothing} .role=${actAsButton ? "button" : void 0} tabindex=${(actAsButton ? 0 : void 0) ?? nothing} target=${(this.href ? this.target : void 0) ?? nothing} ${ref(this.anchorRef)}>${html`${this.iconStart ? this.renderIcon("start") : null}<slot></slot>${this.iconEnd ? this.renderIcon("end") : null}`}</a>` });
58
+ }
59
+ renderIcon(position) {
60
+ const isStart = position === "start";
61
+ const icon = isStart ? this.iconStart : this.iconEnd;
62
+ const shouldFlip = this.iconFlipRtl === "both" || this.iconFlipRtl === position;
63
+ return html`<calcite-icon class=${safeClassMap({
64
+ [CSS.calciteLinkIcon]: true,
65
+ [isStart ? CSS.iconStart : CSS.iconEnd]: true
66
+ })} .flipRtl=${shouldFlip} .icon=${icon} scale=s></calcite-icon>`;
62
67
  }
63
68
  }
64
69
  customElement("calcite-link", Link);
@@ -161,7 +161,7 @@ export abstract class List extends LitElement {
161
161
  * Sets focus on the component's first focusable element.
162
162
  *
163
163
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
164
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
164
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
165
165
  */
166
166
  setFocus(options?: FocusOptions): Promise<void>;
167
167
  /** Fires when the component's selected items have changed. */
@@ -8,7 +8,6 @@ import { LitElement, createEvent, safeClassMap, safeStyleMap } from "@arcgis/lum
8
8
  import { m as slotChangeHasContent, s as slotChangeHasAssignedElement, e as getRootNode } from "../../chunks/dom.js";
9
9
  import { c as createObserver } from "../../chunks/observers.js";
10
10
  import { l as listItemSelector, i as isListItem, a as listSelector, u as updateListItemChildren, b as listItemGroupSelector, e as expandedAncestors } from "../../chunks/utils4.js";
11
- import { d as disconnectSortableComponent, c as connectSortableComponent } from "../../chunks/sortableComponent.js";
12
11
  import { S as SLOTS$1 } from "../../chunks/resources8.js";
13
12
  import { n as numberStringFormatter } from "../../chunks/locale.js";
14
13
  import { g as guid } from "../../chunks/guid.js";
@@ -16,6 +15,7 @@ import { u as useT9n } from "../../chunks/useT9n.js";
16
15
  import { u as useCancelable } from "../../chunks/useCancelable.js";
17
16
  import { u as useSetFocus } from "../../chunks/useSetFocus.js";
18
17
  import { u as useInteractive } from "../../chunks/useInteractive.js";
18
+ import { u as useSortable } from "../../chunks/useSortable.js";
19
19
  const CSS = {
20
20
  container: "container",
21
21
  table: "table",
@@ -32,7 +32,7 @@ const SLOTS = {
32
32
  filterActionsStart: "filter-actions-start",
33
33
  filterActionsEnd: "filter-actions-end"
34
34
  };
35
- const styles = css`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:block}:host([scale=s]){--calcite-internal-list-action-spacing: var(--calcite-spacing-xxs)}:host([scale=m]){--calcite-internal-list-action-spacing: var(--calcite-spacing-xxs)}:host([scale=l]){--calcite-internal-list-action-spacing: var(--calcite-spacing-xs)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.container{position:relative;background-color:var(--calcite-list-background-color, var(--calcite-color-foreground-1))}.container-height{block-size:100%}.table-container{box-sizing:border-box;display:flex;inline-size:100%;flex-direction:column;background-color:transparent}.table-container *{box-sizing:border-box}.table{inline-size:100%}.stack{--calcite-stack-padding-inline: 0;--calcite-stack-padding-block: 0}.sticky-pos{position:sticky;inset-block-start:0px;z-index:var(--calcite-z-index-sticky);background-color:var(--calcite-list-background-color, var(--calcite-color-foreground-1))}.assistive-text{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}::slotted(:is(calcite-action[slot=filter-actions-start],calcite-action[slot=filter-actions-end])){gap:var(--calcite-internal-list-action-spacing);align-self:center}::slotted(calcite-action[slot=filter-actions-start]){margin-inline-start:var(--calcite-internal-list-action-spacing)}::slotted(calcite-action[slot=filter-actions-end]){margin-inline-end:var(--calcite-internal-list-action-spacing)}:host([hidden]){display:none}[hidden]{display:none}`;
35
+ const styles = css`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:block}:host([scale=s]){--calcite-internal-list-action-spacing: var(--calcite-spacing-xxs)}:host([scale=m]){--calcite-internal-list-action-spacing: var(--calcite-spacing-xxs)}:host([scale=l]){--calcite-internal-list-action-spacing: var(--calcite-spacing-xs)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.container{position:relative;background-color:var(--calcite-list-background-color, var(--calcite-color-foreground-1))}.container-height{block-size:100%}.table-container{box-sizing:border-box;display:flex;inline-size:100%;flex-direction:column;background-color:transparent}.table-container *{box-sizing:border-box}.table{inline-size:100%}.stack{--calcite-stack-padding-inline: 0;--calcite-stack-padding-block: 0}.sticky-pos{position:sticky;inset-block-start:0px;z-index:calc(var(--calcite-z-index-sticky) + 1);background-color:var(--calcite-list-background-color, var(--calcite-color-foreground-1))}.assistive-text{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}::slotted(:is(calcite-action[slot=filter-actions-start],calcite-action[slot=filter-actions-end])){gap:var(--calcite-internal-list-action-spacing);align-self:center}::slotted(calcite-action[slot=filter-actions-start]){margin-inline-start:var(--calcite-internal-list-action-spacing)}::slotted(calcite-action[slot=filter-actions-end]){margin-inline-end:var(--calcite-internal-list-action-spacing)}:host([hidden]){display:none}[hidden]{display:none}`;
36
36
  const parentSelector = `${listItemGroupSelector}, ${listItemSelector}`;
37
37
  class List extends LitElement {
38
38
  constructor() {
@@ -47,6 +47,7 @@ class List extends LitElement {
47
47
  this.updateListItemsDebounced();
48
48
  });
49
49
  this.cancelable = useCancelable()(this);
50
+ this.sortable = useSortable()(this);
50
51
  this.updateListItemsDebounced = debounce(this.updateListItems, DEBOUNCE.nextTick);
51
52
  this.visibleItems = [];
52
53
  this.willFilterEmit = false;
@@ -101,6 +102,7 @@ class List extends LitElement {
101
102
  this.listen("calciteInternalListItemSelectMultiple", this.handleCalciteInternalListItemSelectMultiple);
102
103
  this.listen("calciteInternalListItemChange", this.handleCalciteInternalListItemChange);
103
104
  this.listen("calciteInternalListItemGroupDefaultSlotChange", this.handleCalciteInternalListItemGroupDefaultSlotChange);
105
+ this.listen("calciteInternalListItemGroupChange", this.handleCalciteInternalListItemChange);
104
106
  }
105
107
  static {
106
108
  this.properties = { assistiveText: [16, {}, { state: true }], dataForFilter: [16, {}, { state: true }], hasFilterActionsEnd: [16, {}, { state: true }], hasFilterActionsStart: [16, {}, { state: true }], hasFilterNoResults: [16, {}, { state: true }], sortHandleMenuItems: [16, {}, { state: true }], hasContent: [16, {}, { state: true }], hasEmptyContent: [16, {}, { state: true }], filterRowHeight: [16, {}, { state: true }], canPull: [0, {}, { attribute: false }], canPut: [0, {}, { attribute: false }], disabled: [7, {}, { reflect: true, type: Boolean }], dragEnabled: [7, {}, { reflect: true, type: Boolean }], filterEnabled: [7, {}, { reflect: true, type: Boolean }], filterPredicate: [0, {}, { attribute: false }], filterLabel: [3, {}, { reflect: true }], filterPlaceholder: [3, {}, { reflect: true }], filterProps: [0, {}, { attribute: false }], filterText: [3, {}, { reflect: true }], filteredData: [0, {}, { attribute: false }], filteredItems: [0, {}, { attribute: false }], group: [3, {}, { reflect: true }], interactionMode: [3, {}, { reflect: true }], label: 1, loading: [7, {}, { reflect: true, type: Boolean }], messageOverrides: [0, {}, { attribute: false }], displayMode: [3, {}, { reflect: true }], numberingSystem: 1, scale: [3, {}, { reflect: true }], selectedItems: [0, {}, { attribute: false }], selectionAppearance: [3, {}, { reflect: true }], selectionMode: [3, {}, { reflect: true }], sortDisabled: [7, {}, { reflect: true, type: Boolean }] };
@@ -154,20 +156,20 @@ class List extends LitElement {
154
156
  super.disconnectedCallback();
155
157
  this.disconnectObserver();
156
158
  this.unobserveFilterRow();
157
- disconnectSortableComponent(this);
158
159
  }
159
160
  updateListItems() {
161
+ this.updateFilterRowHeight();
160
162
  this.updateGroupItems();
161
163
  const { selectionAppearance, selectionMode, interactionMode, dragEnabled, el, filterEl, displayMode, scale, sortDisabled, sortHandleMenuItems } = this;
162
164
  const items = Array.from(this.el.querySelectorAll(listItemSelector));
163
165
  const fromEl = el;
164
166
  const fromElItems = Array.from(fromEl.children).filter(isListItem);
165
167
  items.forEach((item) => {
166
- item.scale = scale;
167
- item.selectionAppearance = selectionAppearance;
168
- item.selectionMode = selectionMode;
169
- item.interactionMode = interactionMode;
170
168
  if (item.closest(listSelector) === el) {
169
+ item.scale = scale;
170
+ item.selectionAppearance = selectionAppearance;
171
+ item.selectionMode = selectionMode;
172
+ item.interactionMode = interactionMode;
171
173
  item.moveToItems = sortHandleMenuItems.filter((moveToItem) => this.validateSortMenuItem({
172
174
  type: "move",
173
175
  fromEl,
@@ -323,10 +325,14 @@ class List extends LitElement {
323
325
  return;
324
326
  }
325
327
  event.stopPropagation();
326
- this.updateListItemsDebounced();
328
+ this.handleListItemChange();
327
329
  }
328
330
  handleCalciteInternalListItemGroupDefaultSlotChange(event) {
331
+ if (this.parentListEl) {
332
+ return;
333
+ }
329
334
  event.stopPropagation();
335
+ this.handleListItemChange();
330
336
  }
331
337
  connectObserver() {
332
338
  this.mutationObserver?.observe(this.el, { childList: true, subtree: true });
@@ -336,13 +342,10 @@ class List extends LitElement {
336
342
  }
337
343
  setUpSorting() {
338
344
  const { dragEnabled, defaultSlotEl } = this;
339
- if (!dragEnabled) {
340
- return;
341
- }
342
- if (defaultSlotEl) {
345
+ if (dragEnabled && defaultSlotEl) {
343
346
  updateListItemChildren(defaultSlotEl);
344
347
  }
345
- connectSortableComponent(this);
348
+ this.sortable.reset();
346
349
  }
347
350
  onGlobalDragStart() {
348
351
  this.disconnectObserver();
@@ -678,13 +681,13 @@ class List extends LitElement {
678
681
  });
679
682
  }
680
683
  render() {
681
- const { loading, label, disabled, dataForFilter, filterEnabled, filterPlaceholder, filterText, filterLabel, hasFilterActionsStart, hasFilterActionsEnd, effectiveFilterProps } = this;
684
+ const { loading, label, disabled, dataForFilter, filterEnabled, filterPlaceholder, filterLabel, hasFilterActionsStart, hasFilterActionsEnd, effectiveFilterProps } = this;
682
685
  return this.interactiveContainer({ disabled: this.disabled, children: html`<div class=${safeClassMap({
683
686
  [CSS.container]: true,
684
687
  [CSS.containerHeight]: this.listItems.length < 1 && loading
685
688
  })} style=${safeStyleMap({
686
689
  ["--calcite-internal-filter-enabled-offset"]: `${this.filterRowHeight}px`
687
- })}>${this.dragEnabled ? html`<span aria-live=assertive class=${safeClassMap(CSS.assistiveText)}>${this.assistiveText}</span>` : null}${this.renderItemAriaLive()}${loading ? html`<calcite-scrim class=${safeClassMap(CSS.scrim)} .loading=${loading}></calcite-scrim>` : null}<div .ariaBusy=${loading} .ariaLabel=${label || ""} class=${safeClassMap(CSS.table)} @keydown=${this.handleListKeydown} role=treegrid>${filterEnabled || hasFilterActionsStart || hasFilterActionsEnd ? html`<div class=${safeClassMap(CSS.sticky)} role=rowgroup ${ref(this.setFilterContainerEl)}><div role=row><div role=columnheader><calcite-stack class=${safeClassMap(CSS.stack)}><slot name=${SLOTS.filterActionsStart} @slotchange=${this.handleFilterActionsStartSlotChange} slot=${SLOTS$1.actionsStart}></slot><calcite-filter .ariaLabel=${filterPlaceholder} .disabled=${disabled} .filterProps=${effectiveFilterProps} .items=${dataForFilter} .label=${filterLabel} @calciteFilterChange=${this.handleFilterChange} .placeholder=${filterPlaceholder} .scale=${this.scale} .value=${filterText} ${ref(this.setFilterEl)}></calcite-filter><slot name=${SLOTS.filterActionsEnd} @slotchange=${this.handleFilterActionsEndSlotChange} slot=${SLOTS$1.actionsEnd}></slot></calcite-stack></div></div></div>` : null}<div class=${safeClassMap(CSS.tableContainer)} role=rowgroup><div .hidden=${!this.showEmptyContentContainer}><slot name=${SLOTS.emptyContent} @slotchange=${this.handleEmptyContentSlotChange}></slot></div><slot @slotchange=${this.handleDefaultSlotChange} ${ref(this.setDefaultSlotEl)}></slot></div></div><div aria-live=polite .hidden=${!this.showNoResultsContainer}><slot name=${SLOTS.filterNoResults} @slotchange=${this.handleFilterNoResultsSlotChange}></slot></div></div>` });
690
+ })}>${this.dragEnabled ? html`<span aria-live=assertive class=${safeClassMap(CSS.assistiveText)}>${this.assistiveText}</span>` : null}${this.renderItemAriaLive()}${loading ? html`<calcite-scrim class=${safeClassMap(CSS.scrim)} .loading=${loading}></calcite-scrim>` : null}<div .ariaBusy=${loading} .ariaLabel=${label || ""} class=${safeClassMap(CSS.table)} @keydown=${this.handleListKeydown} role=treegrid>${filterEnabled || hasFilterActionsStart || hasFilterActionsEnd ? html`<div class=${safeClassMap(CSS.sticky)} role=rowgroup ${ref(this.setFilterContainerEl)}><div role=row><div role=columnheader><calcite-stack class=${safeClassMap(CSS.stack)}><slot name=${SLOTS.filterActionsStart} @slotchange=${this.handleFilterActionsStartSlotChange} slot=${SLOTS$1.actionsStart}></slot><calcite-filter .ariaLabel=${filterPlaceholder} .disabled=${disabled} .filterProps=${effectiveFilterProps} .items=${dataForFilter} .label=${filterLabel} @calciteFilterChange=${this.handleFilterChange} .placeholder=${filterPlaceholder} .scale=${this.scale} ${ref(this.setFilterEl)}></calcite-filter><slot name=${SLOTS.filterActionsEnd} @slotchange=${this.handleFilterActionsEndSlotChange} slot=${SLOTS$1.actionsEnd}></slot></calcite-stack></div></div></div>` : null}<div class=${safeClassMap(CSS.tableContainer)} role=rowgroup><div .hidden=${!this.showEmptyContentContainer}><slot name=${SLOTS.emptyContent} @slotchange=${this.handleEmptyContentSlotChange}></slot></div><slot @slotchange=${this.handleDefaultSlotChange} ${ref(this.setDefaultSlotEl)}></slot></div></div><div aria-live=polite .hidden=${!this.showNoResultsContainer}><slot name=${SLOTS.filterNoResults} @slotchange=${this.handleFilterNoResultsSlotChange}></slot></div></div>` });
688
691
  }
689
692
  renderItemAriaLive() {
690
693
  const { messages, filteredItems, parentListEl, messages: { _lang: effectiveLocale }, numberingSystem } = this;
@@ -1,11 +1,7 @@
1
- import type { DragDetail } from "../../utils/sortableComponent.js";
1
+ import type { DragDetail } from "../../controllers/useSortable.js";
2
2
  import type { ListItem } from "../calcite-list-item/customElement.js";
3
3
  import type { List } from "./customElement.js";
4
4
 
5
5
  export type ListDisplayMode = "flat" | "nested";
6
6
 
7
- export interface ListDragDetail extends DragDetail {
8
- toEl: List;
9
- fromEl: List;
10
- dragEl: ListItem;
11
- }
7
+ export type ListDragDetail = DragDetail<List, List, ListItem>;
@@ -102,7 +102,7 @@ export abstract class ListItem extends LitElement {
102
102
  * Only set this if you need complex z-index control or if top layer placement causes conflicts with third-party components.
103
103
  *
104
104
  * @default false
105
- * @mdn [Top Layer](https://developer.mozilla.org/en-US/docs/Glossary/Top_layer)
105
+ * @see [MDN - Top Layer](https://developer.mozilla.org/en-US/docs/Glossary/Top_layer)
106
106
  */
107
107
  accessor topLayerDisabled: boolean;
108
108
  /**
@@ -117,7 +117,7 @@ export abstract class ListItem extends LitElement {
117
117
  * Sets focus on the component.
118
118
  *
119
119
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
120
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
120
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
121
121
  */
122
122
  setFocus(options?: FocusOptions): Promise<void>;
123
123
  /** Fires when the close button is clicked. */