@esri/calcite-components 5.1.0-next.9 → 5.1.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 (503) hide show
  1. package/README.md +1 -1
  2. package/dist/cdn/{L24DVRWE.js → 2I4IL7KB.js} +1 -1
  3. package/dist/cdn/{RPT5BJMD.js → 2P5ISR6V.js} +1 -1
  4. package/dist/cdn/2TVQXBLD.js +2 -0
  5. package/dist/cdn/2VKTPJWO.js +2 -0
  6. package/dist/cdn/3GDRQKT2.js +2 -0
  7. package/dist/cdn/{LQD663MA.js → 3HTVKOWE.js} +1 -1
  8. package/dist/cdn/{YJHXVSEP.js → 3IM4BLOF.js} +1 -1
  9. package/dist/cdn/44WHX5D3.js +2 -0
  10. package/dist/cdn/{JVAE3MLA.js → 46F35NGY.js} +1 -1
  11. package/dist/cdn/4A2BNZJW.js +2 -0
  12. package/dist/cdn/{S7XHDLIF.js → 4ANP3V6G.js} +1 -1
  13. package/dist/cdn/4PUYRVNO.js +2 -0
  14. package/dist/cdn/4RELRYKX.js +2 -0
  15. package/dist/cdn/4V5C3DSP.js +2 -0
  16. package/dist/cdn/54WP47EN.js +2 -0
  17. package/dist/cdn/5C72Z4LQ.js +2 -0
  18. package/dist/cdn/{34EJXQYF.js → 5OLLJHWT.js} +1 -1
  19. package/dist/cdn/5SDZUEAZ.js +2 -0
  20. package/dist/cdn/5ULM4EXU.js +2 -0
  21. package/dist/cdn/6U4CYHVA.js +2 -0
  22. package/dist/cdn/6UERLWMH.js +2 -0
  23. package/dist/cdn/{IJ7V345Q.js → 6XE2EP66.js} +1 -1
  24. package/dist/cdn/{VQHTMUYJ.js → 6YLT6LZJ.js} +1 -1
  25. package/dist/cdn/6ZUCCZI3.js +2 -0
  26. package/dist/cdn/{DYBHFMG7.js → 75ARST2G.js} +1 -1
  27. package/dist/cdn/{OQ2UCUQP.js → 7A746NXL.js} +1 -1
  28. package/dist/cdn/7DBM34FB.js +2 -0
  29. package/dist/cdn/7FTYXBPX.js +2 -0
  30. package/dist/cdn/7OWLHFPX.js +2 -0
  31. package/dist/cdn/7XMGNOPQ.js +2 -0
  32. package/dist/cdn/A5L2Q32C.js +2 -0
  33. package/dist/cdn/ADH55C3C.js +2 -0
  34. package/dist/cdn/{IZLDBAPA.js → ADH5D4IE.js} +1 -1
  35. package/dist/cdn/AFGFN5LE.js +2 -0
  36. package/dist/cdn/AKKQ5DPN.js +2 -0
  37. package/dist/cdn/{CSOE3CJR.js → AYFJCHPP.js} +1 -1
  38. package/dist/cdn/{QULVDSNJ.js → BL4CROY4.js} +1 -1
  39. package/dist/cdn/{GGGN54CY.js → BONCETQ5.js} +1 -1
  40. package/dist/cdn/BOZBB7XQ.js +2 -0
  41. package/dist/cdn/BPVUFU5U.js +4 -0
  42. package/dist/cdn/CY6G2WDI.js +2 -0
  43. package/dist/cdn/{MVA4NE6I.js → CYVIISMJ.js} +1 -1
  44. package/dist/cdn/{SHD6TE4R.js → D44AQ74K.js} +1 -1
  45. package/dist/cdn/{EHIAXJAL.js → DCWL5FUH.js} +1 -1
  46. package/dist/cdn/{NJRKH5Q7.js → DJTEYVEK.js} +1 -1
  47. package/dist/cdn/DK56URUM.js +2 -0
  48. package/dist/cdn/DMMA5ZYG.js +2 -0
  49. package/dist/cdn/DYMICF33.js +2 -0
  50. package/dist/cdn/{BAMCFG7H.js → E2T2QERX.js} +1 -1
  51. package/dist/cdn/{IWG7JAQJ.js → ECXU6B4A.js} +1 -1
  52. package/dist/cdn/EOJ2AVKD.js +2 -0
  53. package/dist/cdn/{O7BFREIB.js → EPDTHVMK.js} +1 -1
  54. package/dist/cdn/EPNCB6OJ.js +2 -0
  55. package/dist/cdn/FFB3HCSC.js +2 -0
  56. package/dist/cdn/{5TJGOI64.js → FHGV3WTN.js} +1 -1
  57. package/dist/cdn/{UKC7JB7P.js → GALIT4BA.js} +1 -1
  58. package/dist/cdn/{TKH5LW5O.js → GB2TPSAG.js} +1 -1
  59. package/dist/cdn/{VOTW2RMD.js → GCNYPWEC.js} +1 -1
  60. package/dist/cdn/GDZAGWDU.js +2 -0
  61. package/dist/cdn/{WEAILY72.js → GEEPTD4A.js} +1 -1
  62. package/dist/cdn/{6LA4PLL2.js → GFEJFYRL.js} +1 -1
  63. package/dist/cdn/{TXRFE5GH.js → GI6UQRPO.js} +1 -1
  64. package/dist/cdn/GJL5RMPQ.js +2 -0
  65. package/dist/cdn/{PFKFYB45.js → GT3BV452.js} +1 -1
  66. package/dist/cdn/GZHK6NCY.js +2 -0
  67. package/dist/cdn/HB4MH2EZ.js +2 -0
  68. package/dist/cdn/HRC6BJMW.js +2 -0
  69. package/dist/cdn/{BPIG37CO.js → I5D2AGK5.js} +1 -1
  70. package/dist/cdn/IEPYYQBO.js +2 -0
  71. package/dist/cdn/{7JGWCRII.js → ISTQU57G.js} +1 -1
  72. package/dist/cdn/J3ELP2FF.js +2 -0
  73. package/dist/cdn/JITQNOBY.js +2 -0
  74. package/dist/cdn/JIWTOV7Q.js +2 -0
  75. package/dist/cdn/JRHGPYNH.js +2 -0
  76. package/dist/cdn/{7XBTO6NQ.js → JWG2PPAV.js} +1 -1
  77. package/dist/cdn/{AS2M2ZWD.js → JZWVIZ2B.js} +1 -1
  78. package/dist/cdn/{6C76CPWO.js → K57DPE4N.js} +1 -1
  79. package/dist/cdn/{3IHT5FIP.js → KEAGVFG4.js} +1 -1
  80. package/dist/cdn/KED2RZ42.js +2 -0
  81. package/dist/cdn/KEFKNHSD.js +2 -0
  82. package/dist/cdn/KLW37VF4.js +2 -0
  83. package/dist/cdn/{XUSE3II4.js → KSR5E33C.js} +1 -1
  84. package/dist/cdn/{3GXLGKZV.js → KTBER6SN.js} +1 -1
  85. package/dist/cdn/{PIU3YYLU.js → KTUCOBBY.js} +1 -1
  86. package/dist/cdn/{XJZLGVT6.js → KWFOKTKG.js} +1 -1
  87. package/dist/cdn/LBFLMGFV.js +2 -0
  88. package/dist/cdn/LHYTGIZG.js +2 -0
  89. package/dist/cdn/{EB4M47KA.js → LO5HOYI2.js} +1 -1
  90. package/dist/cdn/LOAHLN6N.js +2 -0
  91. package/dist/cdn/{QCDS2TXE.js → LUWJNSYS.js} +1 -1
  92. package/dist/cdn/MJPROSY6.js +2 -0
  93. package/dist/cdn/{BZGE52YU.js → NBXPROCG.js} +1 -1
  94. package/dist/cdn/NERFMP54.js +2 -0
  95. package/dist/cdn/{CNR7IJIS.js → NKYEDCKH.js} +1 -1
  96. package/dist/cdn/NRALFORW.js +2 -0
  97. package/dist/cdn/{YM6QAFEQ.js → NRY3KXPN.js} +1 -1
  98. package/dist/cdn/{WBJUAZ65.js → NRYIW7DB.js} +1 -1
  99. package/dist/cdn/NTYYNNBV.js +2 -0
  100. package/dist/cdn/NU23JDGC.js +2 -0
  101. package/dist/cdn/NZC2U4OU.js +2 -0
  102. package/dist/cdn/ODKPYY3R.js +2 -0
  103. package/dist/cdn/OQHB5W7D.js +2 -0
  104. package/dist/cdn/PQ5ASGHR.js +2 -0
  105. package/dist/cdn/PZVPEXW2.js +2 -0
  106. package/dist/cdn/QOPSMYNJ.js +2 -0
  107. package/dist/cdn/QP76SSEW.js +2 -0
  108. package/dist/cdn/{I7BWPAOF.js → QSU37BPY.js} +1 -1
  109. package/dist/cdn/{C25ETLQX.js → QYODZAGH.js} +1 -1
  110. package/dist/cdn/R2VQIQOY.js +2 -0
  111. package/dist/cdn/R3SNXCXR.js +2 -0
  112. package/dist/cdn/RJTQLFW2.js +2 -0
  113. package/dist/cdn/{TTFCVVON.js → RRF6AKIF.js} +1 -1
  114. package/dist/cdn/RSCWCCYB.js +2 -0
  115. package/dist/cdn/{BMRN6G4T.js → RUVQ7O6L.js} +1 -1
  116. package/dist/cdn/RYLKDSFN.js +3 -0
  117. package/dist/cdn/STAAJHPM.js +2 -0
  118. package/dist/cdn/{43FMFYKZ.js → SUEXKJRG.js} +1 -1
  119. package/dist/cdn/TAZRZNVR.js +2 -0
  120. package/dist/cdn/{YMHR4PKM.js → TKHRV4GA.js} +1 -1
  121. package/dist/cdn/{E6EGKXUX.js → TSWJKW5G.js} +1 -1
  122. package/dist/cdn/UDRFE54L.js +2 -0
  123. package/dist/cdn/USZ4G42E.js +2 -0
  124. package/dist/cdn/{U4MTAQRM.js → UTEI7VLM.js} +1 -1
  125. package/dist/cdn/UWU3SSNM.js +2 -0
  126. package/dist/cdn/UY76KLJJ.js +2 -0
  127. package/dist/cdn/{CMVTCAFL.js → V5LDBUD2.js} +1 -1
  128. package/dist/cdn/VAXAY3BK.js +2 -0
  129. package/dist/cdn/{EIXE62NK.js → VD7KVHE6.js} +1 -1
  130. package/dist/cdn/{HQDFIE2B.js → VYK6NRTI.js} +1 -1
  131. package/dist/cdn/W5TINV5N.js +2 -0
  132. package/dist/cdn/W753MF3U.js +2 -0
  133. package/dist/cdn/WC3SB5B7.js +2 -0
  134. package/dist/cdn/{RH6ZIP65.js → WGGFNK4Z.js} +1 -1
  135. package/dist/cdn/WTP5LKQS.js +2 -0
  136. package/dist/cdn/{OPHJLVOH.js → X3WAJ4V4.js} +1 -1
  137. package/dist/cdn/XMHBPNOP.js +2 -0
  138. package/dist/cdn/{XW3UC4FN.js → XQXKNOUC.js} +1 -1
  139. package/dist/cdn/{HZGU4N3I.js → XTKAAKGX.js} +1 -1
  140. package/dist/cdn/XVCPLNXU.js +2 -0
  141. package/dist/cdn/XZK4WGVJ.js +4 -0
  142. package/dist/cdn/{BG7CCT2Q.js → Y47FX6CN.js} +1 -1
  143. package/dist/cdn/{ZGJRTQBX.js → YFT7U3IW.js} +1 -1
  144. package/dist/cdn/{67QHQNZF.js → YLZT3LR4.js} +1 -1
  145. package/dist/cdn/{JRWW665Q.js → ZQ4VNHFE.js} +1 -1
  146. package/dist/cdn/ZSTOD4V7.js +2 -0
  147. package/dist/cdn/ZYQDIIRU.js +2 -0
  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/returnToDefault16.json +1 -0
  208. package/dist/cdn/assets/icon/returnToDefault24.json +1 -0
  209. package/dist/cdn/assets/icon/returnToDefault32.json +1 -0
  210. package/dist/cdn/assets/icon/reviewMap16.json +1 -0
  211. package/dist/cdn/assets/icon/reviewMap24.json +1 -0
  212. package/dist/cdn/assets/icon/reviewMap32.json +1 -0
  213. package/dist/cdn/assets/icon/totalStation16.json +1 -0
  214. package/dist/cdn/assets/icon/totalStation24.json +1 -0
  215. package/dist/cdn/assets/icon/totalStation32.json +1 -0
  216. package/dist/cdn/assets/icon/velocityServer16.json +1 -0
  217. package/dist/cdn/assets/icon/velocityServer24.json +1 -0
  218. package/dist/cdn/assets/icon/velocityServer32.json +1 -0
  219. package/dist/cdn/index.js +2 -2
  220. package/dist/cdn/main.css +2 -2
  221. package/dist/chunks/ClearButton.js +16 -0
  222. package/dist/chunks/ExpandToggle.js +2 -2
  223. package/dist/chunks/FloatingArrow.js +24 -0
  224. package/dist/chunks/Heading.js +3 -3
  225. package/dist/chunks/component.js +1 -1
  226. package/dist/chunks/dom.js +50 -29
  227. package/dist/chunks/floating-ui.js +1 -1
  228. package/dist/chunks/locale.js +29 -12
  229. package/dist/chunks/{useReferenceElement.js → manager.js} +114 -114
  230. package/dist/chunks/resources6.js +2 -0
  231. package/dist/chunks/runtime.js +4 -4
  232. package/dist/chunks/useFocusTrap.js +70 -28
  233. package/dist/chunks/useForm.js +225 -44
  234. package/dist/chunks/useFormTrigger.js +25 -0
  235. package/dist/chunks/{sortableComponent.js → useSortable.js} +70 -44
  236. package/dist/chunks/utils.js +6 -6
  237. package/dist/chunks/utils3.js +18 -3
  238. package/dist/components/calcite-accordion-item/customElement.d.ts +6 -6
  239. package/dist/components/calcite-action/customElement.d.ts +20 -12
  240. package/dist/components/calcite-action/customElement.js +10 -15
  241. package/dist/components/calcite-action-bar/customElement.d.ts +4 -4
  242. package/dist/components/calcite-action-bar/customElement.js +12 -6
  243. package/dist/components/calcite-action-group/customElement.d.ts +12 -6
  244. package/dist/components/calcite-action-group/customElement.js +2 -1
  245. package/dist/components/calcite-action-menu/customElement.d.ts +2 -2
  246. package/dist/components/calcite-action-pad/customElement.d.ts +3 -3
  247. package/dist/components/calcite-action-pad/customElement.js +12 -7
  248. package/dist/components/calcite-alert/customElement.d.ts +2 -2
  249. package/dist/components/calcite-alert/customElement.js +1 -1
  250. package/dist/components/calcite-autocomplete/customElement.d.ts +16 -13
  251. package/dist/components/calcite-autocomplete/customElement.js +21 -32
  252. package/dist/components/calcite-autocomplete-item/customElement.d.ts +6 -0
  253. package/dist/components/calcite-autocomplete-item/customElement.js +9 -4
  254. package/dist/components/calcite-block/customElement.d.ts +11 -7
  255. package/dist/components/calcite-block/customElement.js +1 -1
  256. package/dist/components/calcite-block-group/customElement.d.ts +1 -1
  257. package/dist/components/calcite-block-group/customElement.js +4 -11
  258. package/dist/components/calcite-block-group/interfaces.d.ts +2 -6
  259. package/dist/components/calcite-block-section/customElement.d.ts +1 -1
  260. package/dist/components/calcite-button/customElement.d.ts +6 -6
  261. package/dist/components/calcite-button/customElement.js +10 -22
  262. package/dist/components/calcite-card/customElement.d.ts +11 -5
  263. package/dist/components/calcite-card/customElement.js +5 -3
  264. package/dist/components/calcite-card-group/customElement.d.ts +9 -3
  265. package/dist/components/calcite-card-group/customElement.js +11 -1
  266. package/dist/components/calcite-carousel/customElement.d.ts +8 -2
  267. package/dist/components/calcite-carousel/customElement.js +11 -8
  268. package/dist/components/calcite-carousel/interfaces.d.ts +3 -1
  269. package/dist/components/calcite-checkbox/customElement.d.ts +4 -5
  270. package/dist/components/calcite-checkbox/customElement.js +2 -15
  271. package/dist/components/calcite-chip/customElement.d.ts +2 -2
  272. package/dist/components/calcite-chip/customElement.js +1 -1
  273. package/dist/components/calcite-chip-group/customElement.d.ts +1 -1
  274. package/dist/components/calcite-color-picker/customElement.d.ts +2 -2
  275. package/dist/components/calcite-color-picker/customElement.js +2 -2
  276. package/dist/components/calcite-color-picker-hex-input/customElement.d.ts +1 -1
  277. package/dist/components/calcite-color-picker-hex-input/customElement.js +1 -1
  278. package/dist/components/calcite-color-picker-swatch/customElement.d.ts +1 -1
  279. package/dist/components/calcite-combobox/customElement.d.ts +5 -5
  280. package/dist/components/calcite-combobox/customElement.js +57 -69
  281. package/dist/components/calcite-combobox/index.js +2 -1
  282. package/dist/components/calcite-combobox-item/customElement.d.ts +1 -1
  283. package/dist/components/calcite-combobox-item/customElement.js +1 -1
  284. package/dist/components/calcite-date-picker/customElement.d.ts +1 -1
  285. package/dist/components/calcite-date-picker/customElement.js +4 -14
  286. package/dist/components/calcite-date-picker-day/customElement.d.ts +1 -1
  287. package/dist/components/calcite-date-picker-day/customElement.js +1 -1
  288. package/dist/components/calcite-date-picker-month/customElement.js +2 -2
  289. package/dist/components/calcite-date-picker-month-header/customElement.js +1 -1
  290. package/dist/components/calcite-dialog/customElement.d.ts +7 -5
  291. package/dist/components/calcite-dialog/customElement.js +4 -2
  292. package/dist/components/calcite-dropdown/customElement.d.ts +15 -5
  293. package/dist/components/calcite-dropdown/customElement.js +166 -91
  294. package/dist/components/calcite-dropdown-item/customElement.d.ts +2 -2
  295. package/dist/components/calcite-dropdown-item/customElement.js +14 -32
  296. package/dist/components/calcite-fab/customElement.d.ts +1 -1
  297. package/dist/components/calcite-fab/customElement.js +2 -2
  298. package/dist/components/calcite-filter/customElement.d.ts +1 -1
  299. package/dist/components/calcite-flow/customElement.d.ts +1 -1
  300. package/dist/components/calcite-flow-item/customElement.d.ts +8 -5
  301. package/dist/components/calcite-flow-item/customElement.js +4 -2
  302. package/dist/components/calcite-focus-trap/customElement.d.ts +46 -0
  303. package/dist/components/calcite-focus-trap/customElement.js +56 -0
  304. package/dist/components/calcite-focus-trap/index.d.ts +1 -0
  305. package/dist/components/calcite-focus-trap/index.js +1 -0
  306. package/dist/components/calcite-graph/customElement.js +1 -1
  307. package/dist/components/calcite-handle/customElement.d.ts +1 -1
  308. package/dist/components/calcite-icon/customElement.d.ts +1 -1
  309. package/dist/components/calcite-inline-editable/customElement.d.ts +2 -2
  310. package/dist/components/calcite-inline-editable/customElement.js +1 -1
  311. package/dist/components/calcite-input/customElement.d.ts +17 -18
  312. package/dist/components/calcite-input/customElement.js +26 -49
  313. package/dist/components/calcite-input/index.js +1 -0
  314. package/dist/components/calcite-input-date-picker/customElement.d.ts +6 -7
  315. package/dist/components/calcite-input-date-picker/customElement.js +67 -76
  316. package/dist/components/calcite-input-message/customElement.d.ts +1 -1
  317. package/dist/components/calcite-input-number/customElement.d.ts +13 -14
  318. package/dist/components/calcite-input-number/customElement.js +22 -48
  319. package/dist/components/calcite-input-number/index.js +1 -0
  320. package/dist/components/calcite-input-text/customElement.d.ts +11 -12
  321. package/dist/components/calcite-input-text/customElement.js +6 -18
  322. package/dist/components/calcite-input-text/index.js +1 -0
  323. package/dist/components/calcite-input-time-picker/customElement.d.ts +6 -7
  324. package/dist/components/calcite-input-time-picker/customElement.js +11 -23
  325. package/dist/components/calcite-input-time-zone/customElement.d.ts +5 -6
  326. package/dist/components/calcite-input-time-zone/customElement.js +21 -19
  327. package/dist/components/calcite-label/customElement.js +1 -1
  328. package/dist/components/calcite-link/customElement.d.ts +9 -9
  329. package/dist/components/calcite-link/customElement.js +28 -23
  330. package/dist/components/calcite-list/customElement.d.ts +1 -1
  331. package/dist/components/calcite-list/customElement.js +18 -15
  332. package/dist/components/calcite-list/interfaces.d.ts +2 -6
  333. package/dist/components/calcite-list-item/customElement.d.ts +2 -2
  334. package/dist/components/calcite-list-item/customElement.js +7 -4
  335. package/dist/components/calcite-list-item-group/customElement.js +6 -0
  336. package/dist/components/calcite-loader/customElement.d.ts +1 -1
  337. package/dist/components/calcite-menu/customElement.d.ts +1 -1
  338. package/dist/components/calcite-menu/customElement.js +1 -1
  339. package/dist/components/calcite-menu-item/customElement.d.ts +3 -3
  340. package/dist/components/calcite-menu-item/customElement.js +1 -1
  341. package/dist/components/calcite-meter/customElement.js +4 -4
  342. package/dist/components/calcite-navigation/customElement.d.ts +9 -2
  343. package/dist/components/calcite-navigation/customElement.js +56 -3
  344. package/dist/components/calcite-navigation-logo/customElement.d.ts +3 -3
  345. package/dist/components/calcite-navigation-logo/customElement.js +4 -3
  346. package/dist/components/calcite-navigation-user/customElement.d.ts +2 -2
  347. package/dist/components/calcite-navigation-user/customElement.js +11 -6
  348. package/dist/components/calcite-notice/customElement.d.ts +3 -3
  349. package/dist/components/calcite-notice/customElement.js +1 -1
  350. package/dist/components/calcite-pagination/customElement.d.ts +1 -1
  351. package/dist/components/calcite-pagination/customElement.js +1 -1
  352. package/dist/components/calcite-panel/customElement.d.ts +7 -5
  353. package/dist/components/calcite-panel/customElement.js +20 -8
  354. package/dist/components/calcite-popover/customElement.d.ts +2 -2
  355. package/dist/components/calcite-popover/customElement.js +3 -2
  356. package/dist/components/calcite-radio-button/customElement.d.ts +30 -2
  357. package/dist/components/calcite-radio-button/customElement.js +12 -19
  358. package/dist/components/calcite-radio-button-group/customElement.d.ts +1 -1
  359. package/dist/components/calcite-radio-button-group/customElement.js +20 -1
  360. package/dist/components/calcite-rating/customElement.d.ts +3 -4
  361. package/dist/components/calcite-rating/customElement.js +12 -18
  362. package/dist/components/calcite-segmented-control/customElement.d.ts +3 -4
  363. package/dist/components/calcite-segmented-control/customElement.js +8 -19
  364. package/dist/components/calcite-segmented-control-item/customElement.d.ts +0 -1
  365. package/dist/components/calcite-segmented-control-item/customElement.js +1 -1
  366. package/dist/components/calcite-select/customElement.d.ts +3 -4
  367. package/dist/components/calcite-select/customElement.js +9 -20
  368. package/dist/components/calcite-sheet/customElement.d.ts +3 -3
  369. package/dist/components/calcite-sheet/customElement.js +3 -7
  370. package/dist/components/calcite-shell-panel/customElement.d.ts +4 -4
  371. package/dist/components/calcite-shell-panel/customElement.js +59 -30
  372. package/dist/components/calcite-slider/customElement.d.ts +3 -4
  373. package/dist/components/calcite-slider/customElement.js +12 -22
  374. package/dist/components/calcite-sort-handle/customElement.d.ts +4 -4
  375. package/dist/components/calcite-sort-handle/customElement.js +44 -17
  376. package/dist/components/calcite-sortable-list/customElement.d.ts +1 -1
  377. package/dist/components/calcite-sortable-list/customElement.js +3 -3
  378. package/dist/components/calcite-split-button/customElement.d.ts +8 -8
  379. package/dist/components/calcite-stepper/customElement.d.ts +2 -2
  380. package/dist/components/calcite-stepper/customElement.js +29 -42
  381. package/dist/components/calcite-stepper-item/customElement.d.ts +1 -1
  382. package/dist/components/calcite-stepper-item/customElement.js +2 -8
  383. package/dist/components/calcite-swatch/customElement.d.ts +1 -1
  384. package/dist/components/calcite-switch/customElement.d.ts +4 -4
  385. package/dist/components/calcite-switch/customElement.js +9 -8
  386. package/dist/components/calcite-tab/customElement.d.ts +1 -1
  387. package/dist/components/calcite-tab/customElement.js +1 -1
  388. package/dist/components/calcite-tab-nav/customElement.js +1 -1
  389. package/dist/components/calcite-tab-title/customElement.js +1 -1
  390. package/dist/components/calcite-table/customElement.js +1 -1
  391. package/dist/components/calcite-table-cell/customElement.d.ts +2 -2
  392. package/dist/components/calcite-table-header/customElement.d.ts +2 -2
  393. package/dist/components/calcite-table-row/customElement.d.ts +1 -1
  394. package/dist/components/calcite-tabs/customElement.js +2 -1
  395. package/dist/components/calcite-text-area/customElement.d.ts +13 -14
  396. package/dist/components/calcite-text-area/customElement.js +32 -37
  397. package/dist/components/calcite-tile/customElement.d.ts +1 -1
  398. package/dist/components/calcite-time-picker/customElement.d.ts +1 -1
  399. package/dist/components/calcite-time-picker/customElement.js +2 -2
  400. package/dist/components/calcite-tooltip/customElement.d.ts +15 -2
  401. package/dist/components/calcite-tooltip/customElement.js +16 -8
  402. package/dist/components/calcite-tree/customElement.js +1 -1
  403. package/dist/components/calcite-tree-item/customElement.js +2 -3
  404. package/dist/controllers/useSortable.d.ts +7 -0
  405. package/dist/docs/api.json +1 -1
  406. package/dist/docs/docs.json +1 -1
  407. package/dist/docs/supported-browsers.json +1 -1
  408. package/dist/docs/translations.json +1 -1
  409. package/dist/docs/vscode.css-custom-data.json +1 -1
  410. package/dist/docs/vscode.html-custom-data.json +1 -1
  411. package/dist/docs/web-types.json +1 -1
  412. package/dist/index.d.ts +10 -0
  413. package/dist/loader.js +27 -26
  414. package/dist/types/lumina.d.ts +16 -10
  415. package/dist/types/preact.d.ts +17 -10
  416. package/dist/types/react.d.ts +18 -10
  417. package/dist/types/stencil.d.ts +16 -10
  418. package/package.json +22 -23
  419. package/dist/cdn/24BVOJIY.js +0 -2
  420. package/dist/cdn/3O7NXGXJ.js +0 -3
  421. package/dist/cdn/43SP7K3P.js +0 -2
  422. package/dist/cdn/45Z5R6GR.js +0 -2
  423. package/dist/cdn/47RTCYTX.js +0 -2
  424. package/dist/cdn/4AQ3DQDN.js +0 -2
  425. package/dist/cdn/4DJKUEBQ.js +0 -2
  426. package/dist/cdn/4IBKGKIH.js +0 -2
  427. package/dist/cdn/4JVVYRDW.js +0 -2
  428. package/dist/cdn/4U633XVG.js +0 -2
  429. package/dist/cdn/55GOZN42.js +0 -2
  430. package/dist/cdn/575ZYV35.js +0 -2
  431. package/dist/cdn/5LUEFKD3.js +0 -2
  432. package/dist/cdn/5RDU2ZNH.js +0 -2
  433. package/dist/cdn/6OKASMD7.js +0 -2
  434. package/dist/cdn/7ECYZZBW.js +0 -2
  435. package/dist/cdn/7UOYXJ3K.js +0 -2
  436. package/dist/cdn/A6XPQQWN.js +0 -2
  437. package/dist/cdn/ANQRSTGE.js +0 -2
  438. package/dist/cdn/BDQCESE7.js +0 -2
  439. package/dist/cdn/CKMZY3H7.js +0 -2
  440. package/dist/cdn/DRQCOAQ4.js +0 -2
  441. package/dist/cdn/DTUD5FAT.js +0 -2
  442. package/dist/cdn/EQZPTVS3.js +0 -2
  443. package/dist/cdn/ESATITDD.js +0 -2
  444. package/dist/cdn/ETIO6SPJ.js +0 -2
  445. package/dist/cdn/EY7FPNVS.js +0 -2
  446. package/dist/cdn/FIEDEHAP.js +0 -2
  447. package/dist/cdn/FZ6ZUHKQ.js +0 -2
  448. package/dist/cdn/GH34TDLL.js +0 -2
  449. package/dist/cdn/HG2EYXWI.js +0 -2
  450. package/dist/cdn/I5G3H4D4.js +0 -2
  451. package/dist/cdn/IBQYZCFQ.js +0 -2
  452. package/dist/cdn/IQ4VNR4Q.js +0 -2
  453. package/dist/cdn/J2OGE3DI.js +0 -2
  454. package/dist/cdn/JPWQ44GC.js +0 -2
  455. package/dist/cdn/JRF656V5.js +0 -2
  456. package/dist/cdn/K2H2TINH.js +0 -2
  457. package/dist/cdn/KDZRPYFR.js +0 -2
  458. package/dist/cdn/KHIMNKVO.js +0 -2
  459. package/dist/cdn/KMOFSKZF.js +0 -2
  460. package/dist/cdn/KQNOWW4C.js +0 -2
  461. package/dist/cdn/KYKC2CK2.js +0 -2
  462. package/dist/cdn/L5LBH4FP.js +0 -2
  463. package/dist/cdn/LKRLVAVK.js +0 -2
  464. package/dist/cdn/M6MHKAA5.js +0 -2
  465. package/dist/cdn/MMEADS6E.js +0 -2
  466. package/dist/cdn/NGXAYCAR.js +0 -2
  467. package/dist/cdn/NVHH3XZJ.js +0 -2
  468. package/dist/cdn/NVSO6GLT.js +0 -2
  469. package/dist/cdn/NY7A5LKZ.js +0 -2
  470. package/dist/cdn/OLYLT2L5.js +0 -2
  471. package/dist/cdn/OXCJDMGQ.js +0 -2
  472. package/dist/cdn/P4JFMLKY.js +0 -2
  473. package/dist/cdn/PCTQTX5N.js +0 -2
  474. package/dist/cdn/PHGT3YNE.js +0 -2
  475. package/dist/cdn/QR4JRFEP.js +0 -4
  476. package/dist/cdn/QWALXRY6.js +0 -2
  477. package/dist/cdn/RCUNETDY.js +0 -2
  478. package/dist/cdn/SAQAAU52.js +0 -2
  479. package/dist/cdn/SG24GAXY.js +0 -2
  480. package/dist/cdn/SIMNCT4V.js +0 -2
  481. package/dist/cdn/SJSCENKK.js +0 -2
  482. package/dist/cdn/SLVFP6JA.js +0 -2
  483. package/dist/cdn/TMOOTRK4.js +0 -2
  484. package/dist/cdn/TXYWJHYI.js +0 -2
  485. package/dist/cdn/UHQ454NG.js +0 -2
  486. package/dist/cdn/UTQKB5CS.js +0 -2
  487. package/dist/cdn/V2EVNXUV.js +0 -2
  488. package/dist/cdn/WITGQRKF.js +0 -2
  489. package/dist/cdn/WJXZ7BPV.js +0 -2
  490. package/dist/cdn/WM4NZNNA.js +0 -2
  491. package/dist/cdn/YANXY6FO.js +0 -2
  492. package/dist/cdn/YMSZKTCN.js +0 -2
  493. package/dist/cdn/YYDYHAP7.js +0 -2
  494. package/dist/cdn/ZEASFJJQ.js +0 -2
  495. package/dist/cdn/ZGCRVGEK.js +0 -2
  496. package/dist/cdn/ZPZI63EH.js +0 -3
  497. package/dist/cdn/ZQLGBHLZ.js +0 -2
  498. package/dist/cdn/ZTV4V5SF.js +0 -2
  499. package/dist/chunks/form.js +0 -268
  500. package/dist/chunks/input.js +0 -40
  501. package/dist/controllers/useForm.d.ts +0 -3
  502. package/dist/utils/form.d.ts +0 -3
  503. package/dist/utils/sortableComponent.d.ts +0 -7
@@ -1,7 +1,115 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { makeGenericController } from "@arcgis/lumina/controllers";
2
+ import { makeGenericController, bypassReadOnly } from "@arcgis/lumina/controllers";
3
3
  import { uncapitalize, kebabToPascal } from "@arcgis/toolkit/string";
4
- import { s as syncInputDelegate, i as isSupportedType } from "./input.js";
4
+ import { r as isCalciteFocusable } from "./dom.js";
5
+ import "lit";
6
+ const minMaxStepTypes = ["date", "datetime-local", "month", "number", "range", "time", "week"];
7
+ const patternTypes = ["email", "password", "search", "tel", "text", "url"];
8
+ const minMaxLengthTypes = ["email", "password", "search", "tel", "text", "textarea", "url"];
9
+ function updateConstraintValidation(inputComponent, input, propName, matchesType) {
10
+ const attributeName = propName.toLowerCase();
11
+ const value = inputComponent[propName];
12
+ if (matchesType && value != null) {
13
+ input.setAttribute(attributeName, `${value}`);
14
+ } else {
15
+ input.removeAttribute(attributeName);
16
+ }
17
+ }
18
+ function syncInputDelegate(type, inputComponent, input) {
19
+ input.type = type;
20
+ const isMinMaxStepType = minMaxStepTypes.includes(type);
21
+ const numericInputComponent = inputComponent;
22
+ updateConstraintValidation(numericInputComponent, input, "min", isMinMaxStepType);
23
+ updateConstraintValidation(numericInputComponent, input, "max", isMinMaxStepType);
24
+ updateConstraintValidation(numericInputComponent, input, "step", isMinMaxStepType);
25
+ const isMinMaxLengthType = minMaxLengthTypes.includes(type);
26
+ const textualInputComponent = inputComponent;
27
+ updateConstraintValidation(textualInputComponent, input, "minLength", isMinMaxLengthType);
28
+ updateConstraintValidation(textualInputComponent, input, "maxLength", isMinMaxLengthType);
29
+ const isPatternType = patternTypes.includes(type);
30
+ updateConstraintValidation(textualInputComponent, input, "pattern", isPatternType);
31
+ }
32
+ function isSupportedType(type) {
33
+ const effectiveType = type === "textarea" ? "text" : type;
34
+ return minMaxStepTypes.includes(effectiveType) || patternTypes.includes(effectiveType) || minMaxLengthTypes.includes(effectiveType);
35
+ }
36
+ const joinableValueTypes = ["text", "email", "search", "hidden", "tel", "url"];
37
+ const allValid = Object.freeze({ validity: {}, validationMessage: "" });
38
+ function validate({
39
+ component,
40
+ input,
41
+ value
42
+ }) {
43
+ if (!Array.isArray(value)) {
44
+ if (component && input.type === "radio") {
45
+ let group = component.elementInternals.form?.elements[component.name];
46
+ if (group?.length > 0) {
47
+ group = Array.from(group).filter(
48
+ (element) => element.tagName === component.el.tagName
49
+ );
50
+ const isRequired = group.some((radioTypeElement) => radioTypeElement.required);
51
+ const isChecked = group.some((radioTypeElement) => radioTypeElement.checked);
52
+ const others = group.filter((radioTypeElement) => radioTypeElement !== component.el);
53
+ const valueMissing = isRequired && !isChecked;
54
+ input.required = !!valueMissing;
55
+ const validity = getValidityFlags(input.validity);
56
+ const validationMessage = input.validationMessage;
57
+ if (others?.length > 0) {
58
+ others.forEach((other) => {
59
+ if (valueMissing !== other.validity?.valueMissing && other.setValidity) {
60
+ other.setValidity(validity, validationMessage);
61
+ }
62
+ });
63
+ }
64
+ }
65
+ }
66
+ if (validateValue(input, value)) {
67
+ return allValid;
68
+ }
69
+ return {
70
+ validity: getValidityFlags(input.validity),
71
+ validationMessage: input.validationMessage
72
+ };
73
+ }
74
+ if (joinableValueTypes.includes(input.type)) {
75
+ if (validateValue(input, value.join(","))) {
76
+ return allValid;
77
+ }
78
+ return {
79
+ validity: getValidityFlags(input.validity),
80
+ validationMessage: input.validationMessage
81
+ };
82
+ }
83
+ const mergedValidity = {};
84
+ const validationMessages = [];
85
+ for (const item of value) {
86
+ if (validateValue(input, item)) {
87
+ continue;
88
+ }
89
+ Object.assign(mergedValidity, getValidityFlags(input.validity));
90
+ if (input.validationMessage) {
91
+ validationMessages.push(input.validationMessage);
92
+ }
93
+ }
94
+ return {
95
+ validity: mergedValidity,
96
+ validationMessage: validationMessages.join("; ")
97
+ };
98
+ }
99
+ function validateValue(inputDelegate, valueToValidate) {
100
+ inputDelegate.value = // file will throw if non-empty string is provided
101
+ inputDelegate.type === "file" || valueToValidate == null ? "" : String(valueToValidate);
102
+ return inputDelegate.validity.valid;
103
+ }
104
+ function getValidityFlags(validityState) {
105
+ const validityFlags = {};
106
+ for (const key in validityState) {
107
+ if (key !== "valid" && validityState[key]) {
108
+ validityFlags[key] = true;
109
+ }
110
+ }
111
+ return validityFlags;
112
+ }
5
113
  const componentsWithInputEvent = [
6
114
  "calcite-input",
7
115
  "calcite-input-number",
@@ -12,6 +120,9 @@ function getClearValidationEventName(componentTag) {
12
120
  const componentTagCamelCase = uncapitalize(kebabToPascal(componentTag));
13
121
  return `${componentTagCamelCase}${componentsWithInputEvent.includes(componentTag) ? "Input" : "Change"}`;
14
122
  }
123
+ function isFormComponentEl(el) {
124
+ return "form" in el && "name" in el && isCalciteFocusable(el);
125
+ }
15
126
  function displayValidationMessage(component, { status, message, icon }) {
16
127
  if ("status" in component) {
17
128
  component.status = status;
@@ -23,9 +134,21 @@ function displayValidationMessage(component, { status, message, icon }) {
23
134
  component.validationMessage = message;
24
135
  }
25
136
  }
137
+ function clearValidationMessage(component, validationMessage) {
138
+ if ("status" in component) {
139
+ component.status = "idle";
140
+ }
141
+ if ("validationIcon" in component && (!component.validationIcon || component.validationIcon === true)) {
142
+ component.validationIcon = false;
143
+ }
144
+ if ("validationMessage" in component && component.validationMessage === validationMessage) {
145
+ component.validationMessage = "";
146
+ }
147
+ }
26
148
  function syncInternalInput(component, input) {
27
- const { disabled, required } = component;
149
+ const { disabled, name, required } = component;
28
150
  input.disabled = disabled;
151
+ input.name = name || "";
29
152
  input.required = !!required;
30
153
  if (isCheckable(component)) {
31
154
  input.checked = component.checked;
@@ -39,18 +162,36 @@ function isCheckable(component) {
39
162
  function isInputComponent(component, input) {
40
163
  return component && isSupportedType(input.type);
41
164
  }
165
+ function focusFirstInvalidFormElement(form) {
166
+ const formElements = Array.from(form.elements);
167
+ requestAnimationFrame(() => {
168
+ const invalidEls = formElements.filter(
169
+ (el) => el.matches("[status=invalid]") && isFormComponentEl(el)
170
+ );
171
+ for (const el of invalidEls) {
172
+ if (el.validationMessage) {
173
+ el.setFocus();
174
+ break;
175
+ }
176
+ }
177
+ });
178
+ }
42
179
  const useForm = (options) => {
43
180
  return makeGenericController((component, controller) => {
44
- let defaultValueDirty = false;
45
- let defaultCheckedDirty = false;
181
+ let customValidityMessage = "";
46
182
  let inputDelegate;
47
183
  let lastAssociatedForm = null;
48
- if (options.inputType) {
184
+ let effectiveInputType = options.inputType;
185
+ if (effectiveInputType) {
49
186
  inputDelegate = document.createElement("input");
50
- inputDelegate.type = options.inputType;
51
187
  }
52
188
  function invalidFormHandler(event) {
53
- event?.preventDefault();
189
+ if (event.defaultPrevented) {
190
+ return;
191
+ }
192
+ event.preventDefault();
193
+ const form = event.currentTarget;
194
+ focusFirstInvalidFormElement(form);
54
195
  }
55
196
  function onFormReset() {
56
197
  if ("status" in component) {
@@ -63,11 +204,9 @@ const useForm = (options) => {
63
204
  component.validationMessage = "";
64
205
  }
65
206
  if (isCheckable(component)) {
66
- component.checked = defaultCheckedDirty ? component.defaultChecked : component.checked;
207
+ component.checked = component.defaultChecked;
67
208
  }
68
- component.value = defaultValueDirty ? component.defaultValue : component.value;
69
- defaultValueDirty = false;
70
- defaultCheckedDirty = false;
209
+ component.value = component.defaultValue;
71
210
  }
72
211
  component.listen("luminaFormResetCallback", () => {
73
212
  onFormReset();
@@ -81,28 +220,34 @@ const useForm = (options) => {
81
220
  lastAssociatedForm = form;
82
221
  });
83
222
  function handleInvalidInput() {
84
- const validationMsg = inputDelegate?.validationMessage || "";
85
- component.el.dispatchEvent(
86
- // allows users to set custom validation messages
87
- new CustomEvent("calciteInvalid", { bubbles: true, composed: true })
88
- );
223
+ const validationMessage = customValidityMessage || inputDelegate?.validationMessage || "";
89
224
  displayValidationMessage(component, {
90
- message: validationMsg,
225
+ message: validationMessage,
91
226
  icon: true,
92
227
  status: "invalid"
93
228
  });
229
+ component.el.dispatchEvent(
230
+ // allows users to set custom validation messages
231
+ new CustomEvent("calciteInvalid", { bubbles: true, composed: true })
232
+ );
94
233
  const clearValidationEvent = getClearValidationEventName(component.el.tagName.toLowerCase());
95
234
  component.listen(
96
235
  clearValidationEvent,
97
236
  () => {
98
- if ("status" in component) {
99
- component.status = "idle";
100
- }
101
- if ("validationIcon" in component && (!component.validationIcon || component.validationIcon === true)) {
102
- component.validationIcon = false;
103
- }
104
- if ("validationMessage" in component && component.validationMessage === validationMsg) {
105
- component.validationMessage = "";
237
+ clearValidationMessage(component, validationMessage);
238
+ if (inputDelegate?.type === "radio") {
239
+ let group = component.elementInternals.form?.elements[component.name];
240
+ if (group?.length > 0) {
241
+ group = Array.from(group).filter(
242
+ (element) => element.tagName === component.el.tagName
243
+ );
244
+ const others = group.filter((radioTypeElement) => radioTypeElement !== component.el);
245
+ if (others?.length > 0) {
246
+ others.forEach((other) => {
247
+ clearValidationMessage(other);
248
+ });
249
+ }
250
+ }
106
251
  }
107
252
  },
108
253
  { once: true }
@@ -115,51 +260,87 @@ const useForm = (options) => {
115
260
  component.el.removeEventListener("invalid", handleInvalidInput);
116
261
  });
117
262
  controller.onUpdate((changes) => {
118
- if (changes.has("value") && !defaultValueDirty) {
119
- defaultValueDirty = true;
263
+ if (!component.hasUpdated) {
120
264
  component.defaultValue = component.value;
265
+ if (isCheckable(component)) {
266
+ component.defaultChecked = component.checked;
267
+ }
121
268
  }
122
- if (isCheckable(component) && changes.has("checked") && !defaultCheckedDirty) {
123
- defaultCheckedDirty = true;
124
- component.defaultChecked = component.checked;
125
- }
126
- if (changes.has("value") || isCheckable(component) && changes.has("checked")) {
269
+ if (changes.has("name") || changes.has("value") || isCheckable(component) && changes.has("checked")) {
127
270
  component.elementInternals.setFormValue(getFormValue());
128
271
  }
272
+ if (component.hasUpdated) {
273
+ updateValidity();
274
+ }
275
+ });
276
+ controller.onLoaded(() => updateValidity());
277
+ function updateValidity() {
278
+ const { disabled, elementInternals } = component;
279
+ if (disabled) {
280
+ return;
281
+ }
282
+ let validity = {};
283
+ let validationMessage = "";
129
284
  if (inputDelegate) {
130
- inputDelegate.value = component.value;
285
+ inputDelegate.type = effectiveInputType;
131
286
  syncInternalInput(component, inputDelegate);
132
- inputDelegate.checkValidity();
133
- component.elementInternals.setValidity(inputDelegate.validity, inputDelegate.validationMessage);
134
- if ("validity" in component) {
135
- component.validity = component.elementInternals.validity;
136
- }
287
+ ({ validity, validationMessage } = validate({ component, input: inputDelegate, value: getComponentValue() }));
137
288
  }
138
- });
289
+ if (customValidityMessage) {
290
+ validity = { ...validity, customError: true };
291
+ validationMessage = customValidityMessage;
292
+ }
293
+ elementInternals.setValidity(validity, validationMessage);
294
+ if ("validity" in component) {
295
+ bypassReadOnly(() => {
296
+ component.validity = elementInternals.validity;
297
+ });
298
+ }
299
+ }
300
+ function getComponentValue() {
301
+ if (options.getValue) {
302
+ return options.getValue();
303
+ }
304
+ return component.value;
305
+ }
139
306
  function getFormValue() {
140
- if (Array.isArray(component.value)) {
307
+ const value = getComponentValue();
308
+ if (Array.isArray(value)) {
141
309
  const formData = new FormData();
142
- component.value.forEach((value) => formData.append(component.name, value));
310
+ value.forEach((value2) => formData.append(component.name, value2));
143
311
  return formData;
144
312
  }
145
313
  if (isCheckable(component)) {
146
314
  if (component.checked) {
147
- return component.defaultValue === void 0 && !defaultValueDirty && component.value === void 0 ? "on" : component.value;
315
+ return value || "on";
148
316
  }
149
317
  return null;
150
318
  }
151
- return component.value;
319
+ return value;
152
320
  }
153
321
  return {
154
322
  get active() {
155
323
  return !!component.elementInternals.form;
156
324
  },
325
+ overrideDefaultValue: (value) => {
326
+ component.defaultValue = value;
327
+ },
328
+ overrideInputType: (type) => {
329
+ effectiveInputType = type;
330
+ updateValidity();
331
+ },
157
332
  requestSubmit: () => {
158
333
  component.elementInternals.form?.requestSubmit();
334
+ },
335
+ setCustomValidity: (message) => {
336
+ customValidityMessage = message;
337
+ updateValidity();
159
338
  }
160
339
  };
161
340
  });
162
341
  };
163
342
  export {
343
+ clearValidationMessage as c,
344
+ displayValidationMessage as d,
164
345
  useForm as u
165
346
  };
@@ -0,0 +1,25 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import { makeGenericController } from "@arcgis/lumina/controllers";
3
+ const useFormTrigger = (options) => makeGenericController((component) => {
4
+ function clickHandler(event) {
5
+ const { form } = component.elementInternals;
6
+ if (event.defaultPrevented || component.disabled || options?.disabled?.() || !form || component.type === "button") {
7
+ return;
8
+ }
9
+ if (component.type === "submit") {
10
+ form.requestSubmit();
11
+ return;
12
+ }
13
+ form.reset();
14
+ }
15
+ component.listen("luminaFormAssociatedCallback", ({ detail: [form] }) => {
16
+ if (form) {
17
+ component.el.addEventListener("click", clickHandler);
18
+ } else {
19
+ component.el.removeEventListener("click", clickHandler);
20
+ }
21
+ });
22
+ });
23
+ export {
24
+ useFormTrigger as u
25
+ };
@@ -1,4 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import { makeGenericController } from "@arcgis/lumina/controllers";
2
3
  import Sortable from "sortablejs";
3
4
  const sortableComponentSet = /* @__PURE__ */ new Set();
4
5
  const CSS = {
@@ -7,15 +8,17 @@ const CSS = {
7
8
  dragClass: "calcite-sortable--drag",
8
9
  fallbackClass: "calcite-sortable--fallback"
9
10
  };
10
- function connectSortableComponent(component) {
11
- if (dragActive(component)) {
12
- return;
13
- }
14
- disconnectSortableComponent(component);
15
- sortableComponentSet.add(component);
11
+ function onGlobalDragStart() {
12
+ Array.from(sortableComponentSet).forEach((component) => component.onGlobalDragStart());
13
+ }
14
+ function onGlobalDragEnd() {
15
+ Array.from(sortableComponentSet).forEach((component) => component.onGlobalDragEnd());
16
+ }
17
+ const globalDragState = { active: false };
18
+ function createSortable(component) {
16
19
  const dataIdAttr = "id";
17
- const { group, handleSelector: handle, dragSelector: draggable, sortDisabled } = component;
18
- component.sortable = Sortable.create(component.el, {
20
+ const { el, group, handleSelector: handle, dragSelector: draggable, sortDisabled } = component;
21
+ return Sortable.create(el, {
19
22
  dataIdAttr,
20
23
  swapThreshold: 0.5,
21
24
  ...CSS,
@@ -25,22 +28,26 @@ function connectSortableComponent(component) {
25
28
  group: {
26
29
  name: group,
27
30
  ...!!component.canPull && {
28
- pull: (to, from, dragEl, { newDraggableIndex: newIndex, oldDraggableIndex: oldIndex }) => component.canPull({
29
- toEl: to.el,
30
- fromEl: from.el,
31
- dragEl,
32
- newIndex,
33
- oldIndex
34
- })
31
+ pull: (to, from, dragEl, { newDraggableIndex: newIndex, oldDraggableIndex: oldIndex }) => {
32
+ return component.canPull({
33
+ toEl: to.el,
34
+ fromEl: from.el,
35
+ dragEl,
36
+ newIndex,
37
+ oldIndex
38
+ });
39
+ }
35
40
  },
36
41
  ...!!component.canPut && {
37
- put: (to, from, dragEl, { newDraggableIndex: newIndex, oldDraggableIndex: oldIndex }) => component.canPut({
38
- toEl: to.el,
39
- fromEl: from.el,
40
- dragEl,
41
- newIndex,
42
- oldIndex
43
- })
42
+ put: (to, from, dragEl, { newDraggableIndex: newIndex, oldDraggableIndex: oldIndex }) => {
43
+ return component.canPut({
44
+ toEl: to.el,
45
+ fromEl: from.el,
46
+ dragEl,
47
+ newIndex,
48
+ oldIndex
49
+ });
50
+ }
44
51
  }
45
52
  }
46
53
  },
@@ -53,12 +60,12 @@ function connectSortableComponent(component) {
53
60
  handle,
54
61
  filter: `${handle}[disabled]`,
55
62
  onStart: ({ from: fromEl, item: dragEl, to: toEl, newDraggableIndex: newIndex, oldDraggableIndex: oldIndex }) => {
56
- dragState.active = true;
63
+ globalDragState.active = true;
57
64
  onGlobalDragStart();
58
65
  component.onDragStart({ fromEl, dragEl, toEl, newIndex, oldIndex });
59
66
  },
60
67
  onEnd: ({ from: fromEl, item: dragEl, to: toEl, newDraggableIndex: newIndex, oldDraggableIndex: oldIndex }) => {
61
- dragState.active = false;
68
+ globalDragState.active = false;
62
69
  onGlobalDragEnd();
63
70
  component.onDragEnd({ fromEl, dragEl, toEl, newIndex, oldIndex });
64
71
  },
@@ -67,25 +74,44 @@ function connectSortableComponent(component) {
67
74
  }
68
75
  });
69
76
  }
70
- function disconnectSortableComponent(component) {
71
- if (dragActive(component)) {
72
- return;
73
- }
74
- sortableComponentSet.delete(component);
75
- component.sortable?.destroy();
76
- component.sortable = null;
77
- }
78
- const dragState = { active: false };
79
- function dragActive(component) {
80
- return component.dragEnabled && dragState.active;
81
- }
82
- function onGlobalDragStart() {
83
- Array.from(sortableComponentSet).forEach((component) => component.onGlobalDragStart());
84
- }
85
- function onGlobalDragEnd() {
86
- Array.from(sortableComponentSet).forEach((component) => component.onGlobalDragEnd());
87
- }
77
+ const useSortable = () => {
78
+ return makeGenericController((component, controller) => {
79
+ let sortable;
80
+ function dragActive(component2) {
81
+ return component2.dragEnabled && globalDragState.active;
82
+ }
83
+ function setUpSortable(component2) {
84
+ if (dragActive(component2)) {
85
+ return;
86
+ }
87
+ tearDownSortable(component2);
88
+ if (!component2.dragEnabled) {
89
+ return;
90
+ }
91
+ sortableComponentSet.add(component2);
92
+ sortable = createSortable(component2);
93
+ }
94
+ function tearDownSortable(component2) {
95
+ if (dragActive(component2)) {
96
+ return;
97
+ }
98
+ sortableComponentSet.delete(component2);
99
+ sortable?.destroy();
100
+ sortable = void 0;
101
+ }
102
+ controller.onConnected(() => {
103
+ setUpSortable(component);
104
+ });
105
+ controller.onDisconnected(() => {
106
+ tearDownSortable(component);
107
+ });
108
+ return {
109
+ reset: () => {
110
+ setUpSortable(component);
111
+ }
112
+ };
113
+ });
114
+ };
88
115
  export {
89
- connectSortableComponent as c,
90
- disconnectSortableComponent as d
116
+ useSortable as u
91
117
  };
@@ -305,16 +305,16 @@ export {
305
305
  hexToRGB as h,
306
306
  isValidHex as i,
307
307
  CSS as j,
308
- toNonAlphaMode as k,
309
- HUE_LIMIT_CONSTRAINED as l,
310
- normalizeAlpha as m,
308
+ HUE_LIMIT_CONSTRAINED as k,
309
+ normalizeAlpha as l,
310
+ alphaToOpacity as m,
311
311
  normalizeHex as n,
312
312
  opacityToAlpha as o,
313
313
  parseMode as p,
314
- alphaToOpacity as q,
315
- SCOPE_SIZE as r,
314
+ SCOPE_SIZE as q,
315
+ toAlphaMode as r,
316
316
  isLonghandHex as s,
317
- toAlphaMode as t,
317
+ toNonAlphaMode as t,
318
318
  isShorthandHex as u,
319
319
  rgbToHex as v,
320
320
  hexChar as w
@@ -53,8 +53,23 @@ function applyLocaleOverride(locale) {
53
53
  function getValueAsDateRange(value) {
54
54
  return value.map((v, index) => dateFromISO(v, index === 1));
55
55
  }
56
+ function getSource(changes, stringProp, dateProp) {
57
+ const stringPropChanged = changes.has(stringProp);
58
+ const datePropChanged = changes.has(dateProp);
59
+ if (stringPropChanged && !datePropChanged) {
60
+ return stringProp;
61
+ }
62
+ if (datePropChanged && !stringPropChanged) {
63
+ return dateProp;
64
+ }
65
+ return null;
66
+ }
67
+ function getMinMaxSource(changes, type) {
68
+ return type === "min" ? getSource(changes, "min", "minAsDate") : getSource(changes, "max", "maxAsDate");
69
+ }
56
70
  export {
57
- applyLocaleOverride as a,
58
- getLocaleData as b,
59
- getValueAsDateRange as g
71
+ getValueAsDateRange as a,
72
+ applyLocaleOverride as b,
73
+ getLocaleData as c,
74
+ getMinMaxSource as g
60
75
  };
@@ -10,8 +10,8 @@ import type { HeadingLevel } from "../functional/Heading.js";
10
10
  * @cssproperty [--calcite-accordion-text-color] - Specifies the component's text color.
11
11
  * @cssproperty [--calcite-accordion-text-color-hover] - Specifies the component's main text color on hover.
12
12
  * @cssproperty [--calcite-accordion-text-color-press] - Specifies the component's main text color when pressed.
13
- * @cssproperty [--calcite-accordion-item-background-color] - [Deprecated] Use `--calcite-accordion-background-color`. Specifies the component's background color.
14
- * @cssproperty [--calcite-accordion-item-border-color] - [Deprecated] Use `--calcite-accordion-border-color`. Specifies the component's border color.
13
+ * @cssproperty [--calcite-accordion-item-background-color] - [Deprecated] in v3.1.0, removal target v6.0.0 - Use `--calcite-accordion-background-color` instead. Specifies the component's background color.
14
+ * @cssproperty [--calcite-accordion-item-border-color] - [Deprecated] in v3.1.0, removal target v6.0.0 - Use `--calcite-accordion-border-color` instead. Specifies the component's border color.
15
15
  * @cssproperty [--calcite-accordion-item-content-space] - Specifies the component's padding.
16
16
  * @cssproperty [--calcite-accordion-item-end-icon-color] - Specifies the component's `iconEnd` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
17
17
  * @cssproperty [--calcite-accordion-item-expand-icon-color] - Specifies the component's expand icon color.
@@ -19,10 +19,10 @@ import type { HeadingLevel } from "../functional/Heading.js";
19
19
  * @cssproperty [--calcite-accordion-item-header-background-color-hover] - Specifies the component's `heading` background color when hovered.
20
20
  * @cssproperty [--calcite-accordion-item-header-background-color-press] - Specifies the component's `heading` background color when pressed.
21
21
  * @cssproperty [--calcite-accordion-item-heading-text-color] - Specifies the component's `heading` text color.
22
- * @cssproperty [--calcite-accordion-item-icon-color] - [Deprecated] Use `--calcite-icon-color`. Specifies the component's default icon color.
22
+ * @cssproperty [--calcite-accordion-item-icon-color] - [Deprecated] in v3.1.0, removal target v6.0.0 - Use `--calcite-icon-color` instead. Specifies the component's default icon color.
23
23
  * @cssproperty [--calcite-accordion-item-start-icon-color] - Specifies the component's `iconStart` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
24
- * @cssproperty [--calcite-accordion-item-text-color] - [Deprecated] Use `--calcite-accordion-text-color`. Specifies the component's text color.
25
- * @cssproperty [--calcite-accordion-item-text-color-hover] - [Deprecated] Use `--calcite-accordion-text-color-hover`. Specifies the component's text color on hover.
24
+ * @cssproperty [--calcite-accordion-item-text-color] - [Deprecated] in v3.1.0, removal target v6.0.0 - Use `--calcite-accordion-text-color` instead. Specifies the component's text color.
25
+ * @cssproperty [--calcite-accordion-item-text-color-hover] - [Deprecated] in v3.1.0, removal target v6.0.0 - Use `--calcite-accordion-text-color-hover` instead. Specifies the component's text color on hover.
26
26
  * @slot - A slot for adding custom content, including nested `calcite-accordion-item`s.
27
27
  * @slot [actions-end] - A slot for adding `calcite-action`s or content to the end side of the component's header.
28
28
  * @slot [actions-start] - A slot for adding `calcite-action`s or content to the start side of the component's header.
@@ -57,7 +57,7 @@ export abstract class AccordionItem extends LitElement {
57
57
  * Sets focus on the component.
58
58
  *
59
59
  * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
60
- * @mdn [focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
60
+ * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
61
61
  */
62
62
  setFocus(options?: FocusOptions): Promise<void>;
63
63
  /** Fires when the component's content area is collapsed. */