@arcgis/portal-components 5.2.0-next.13 → 5.2.0-next.131

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 (1403) hide show
  1. package/LICENSE.md +4 -2
  2. package/README.md +2 -2
  3. package/dist/cdn/245E7G7N.js +14 -0
  4. package/dist/cdn/25XJ66JO.js +2 -0
  5. package/dist/cdn/27HHZHV5.js +2 -0
  6. package/dist/cdn/2GBRZSEC.js +2 -0
  7. package/dist/cdn/2RWCT4ED.js +19 -0
  8. package/dist/cdn/34DIIWGC.js +2 -0
  9. package/dist/cdn/3NA4M2MH.js +2 -0
  10. package/dist/cdn/{GQFWFZXP.js → 3OBIA66A.js} +1 -1
  11. package/dist/cdn/3YCGEFQP.js +654 -0
  12. package/dist/cdn/3YJUQ54F.js +2 -0
  13. package/dist/cdn/3YS4G5QE.js +2 -0
  14. package/dist/cdn/426RS2JW.js +2 -0
  15. package/dist/cdn/4BQASKGB.js +2 -0
  16. package/dist/cdn/4FQWB6HA.js +2 -0
  17. package/dist/cdn/4LMVMZGG.js +2 -0
  18. package/dist/cdn/4RPNBHB5.js +2 -0
  19. package/dist/cdn/55FL7WQV.js +2 -0
  20. package/dist/cdn/5D75JDVE.js +2 -0
  21. package/dist/cdn/5EFYJYWM.js +2 -0
  22. package/dist/cdn/5GLUIQ7R.js +2 -0
  23. package/dist/cdn/5ITAQNJ6.js +2 -0
  24. package/dist/cdn/5YDITHQA.js +3 -0
  25. package/dist/cdn/{7WZHZP6U.js → 63THOLAY.js} +9 -3
  26. package/dist/cdn/6FKARLGX.js +2 -0
  27. package/dist/cdn/6JJUORUU.js +2 -0
  28. package/dist/cdn/6KVA4AKM.js +2 -0
  29. package/dist/cdn/6NRVGSZJ.js +68 -0
  30. package/dist/cdn/6PTPTTSS.js +2 -0
  31. package/dist/cdn/6TO2BYXU.js +2 -0
  32. package/dist/cdn/6XRVLKAZ.js +2 -0
  33. package/dist/cdn/74OADAQ6.js +2 -0
  34. package/dist/cdn/7NNSALJQ.js +2 -0
  35. package/dist/cdn/7PMLGJZR.js +75 -0
  36. package/dist/cdn/7TN5Q3I2.js +2 -0
  37. package/dist/cdn/7UNUBFFC.js +2 -0
  38. package/dist/cdn/ABIXHCPF.js +5 -0
  39. package/dist/cdn/AMBLICID.js +2 -0
  40. package/dist/cdn/ASDS73QU.js +245 -0
  41. package/dist/cdn/B2YUF4DX.js +2 -0
  42. package/dist/cdn/BADETB57.js +2 -0
  43. package/dist/cdn/BJ6YM6ZC.js +2 -0
  44. package/dist/cdn/BNFEED2K.js +2 -0
  45. package/dist/cdn/BPQ6ZBLE.js +2 -0
  46. package/dist/cdn/BV6XVVX2.js +2 -0
  47. package/dist/cdn/C2WQAFUM.js +2 -0
  48. package/dist/cdn/{DKBTJJMW.js → C7ZFXRPS.js} +1 -1
  49. package/dist/cdn/CAPW3SVN.js +2 -0
  50. package/dist/cdn/CFBSBZSS.js +2 -0
  51. package/dist/cdn/CGBXIK2L.js +2 -0
  52. package/dist/cdn/CVOWIH4J.js +2 -0
  53. package/dist/cdn/CVTQ3A4T.js +2 -0
  54. package/dist/cdn/D4MCG57T.js +2 -0
  55. package/dist/cdn/DPNKUVXU.js +2 -0
  56. package/dist/cdn/E2AHTEKS.js +2 -0
  57. package/dist/cdn/EBPLUTN5.js +2 -0
  58. package/dist/cdn/EBUPCIL6.js +2 -0
  59. package/dist/cdn/EJXMHOYA.js +2 -0
  60. package/dist/cdn/EOQHBWKK.js +2 -0
  61. package/dist/cdn/EXBWPG5Y.js +4 -0
  62. package/dist/cdn/F3ODJVJC.js +2 -0
  63. package/dist/cdn/FED2DOMO.js +2 -0
  64. package/dist/cdn/FHXIGKK4.js +2 -0
  65. package/dist/cdn/FJ3PFFCN.js +2 -0
  66. package/dist/cdn/FNHI7NZ4.js +2 -0
  67. package/dist/cdn/FOHZXQNV.js +2 -0
  68. package/dist/cdn/FPKKNRZY.js +2 -0
  69. package/dist/cdn/G5PORPTQ.js +2 -0
  70. package/dist/cdn/GCB5BYDM.js +11 -0
  71. package/dist/cdn/GDKX2CGS.js +2 -0
  72. package/dist/cdn/GOHJT66O.js +2 -0
  73. package/dist/cdn/H5RBBOBZ.js +2 -0
  74. package/dist/cdn/HATTAFCL.js +2 -0
  75. package/dist/cdn/HKD2GF4M.js +2 -0
  76. package/dist/cdn/I5C4SV6N.js +2 -0
  77. package/dist/cdn/I64ZE3TR.js +2 -0
  78. package/dist/cdn/IJ3CLFAU.js +22 -0
  79. package/dist/cdn/ILDTKRON.js +2 -0
  80. package/dist/cdn/JB2P4KY4.js +2 -0
  81. package/dist/cdn/JIBKSQBE.js +2 -0
  82. package/dist/cdn/JIOUF6RV.js +2 -0
  83. package/dist/cdn/{5VHBNEN3.js → JJUCB3OG.js} +1 -1
  84. package/dist/cdn/JMZYTFZZ.js +41 -0
  85. package/dist/cdn/JZ7SSPKB.js +2 -0
  86. package/dist/cdn/K4LXMVNH.js +2 -0
  87. package/dist/cdn/KALKWPUR.js +2 -0
  88. package/dist/cdn/KCLCOBT2.js +2 -0
  89. package/dist/cdn/KCYIOVJQ.js +2 -0
  90. package/dist/cdn/KEM54FSC.js +2 -0
  91. package/dist/cdn/{3PAHY5KA.js → KNRJ3WXR.js} +1 -1
  92. package/dist/cdn/KOZMWZTT.js +2 -0
  93. package/dist/cdn/KS2JQYWA.js +2 -0
  94. package/dist/cdn/KWEVRR34.js +2 -0
  95. package/dist/cdn/KYNL256E.js +2 -0
  96. package/dist/cdn/L33CMX4M.js +2 -0
  97. package/dist/cdn/{F6V7MLPY.js → L6KBBJEC.js} +1 -1
  98. package/dist/cdn/LL5AA56F.js +2 -0
  99. package/dist/cdn/LM6H2RMV.js +2 -0
  100. package/dist/cdn/M33TAW7V.js +2 -0
  101. package/dist/cdn/MC3V6J4M.js +2 -0
  102. package/dist/cdn/MDGR5FJS.js +2 -0
  103. package/dist/cdn/MFT5NBI5.js +2 -0
  104. package/dist/cdn/MQISQ7P3.js +2 -0
  105. package/dist/cdn/NBB7R2RE.js +2 -0
  106. package/dist/cdn/NQMXSOYA.js +2 -0
  107. package/dist/cdn/NQQLTGIK.js +2 -0
  108. package/dist/cdn/NXJTHWZ6.js +2 -0
  109. package/dist/cdn/OLXC7CE4.js +2 -0
  110. package/dist/cdn/OUFIJDIW.js +2 -0
  111. package/dist/cdn/PCFYL72V.js +2 -0
  112. package/dist/cdn/PEO5PFZF.js +2 -0
  113. package/dist/cdn/PQ75545K.js +2 -0
  114. package/dist/cdn/Q5GFMD4E.js +2 -0
  115. package/dist/cdn/QE4CNVDQ.js +34 -0
  116. package/dist/cdn/QFHL5APV.js +2 -0
  117. package/dist/cdn/QJ7AI54H.js +135 -0
  118. package/dist/cdn/{3MQIRMUM.js → QKCV7CY2.js} +1 -1
  119. package/dist/cdn/QS3GXAIH.js +2 -0
  120. package/dist/cdn/QT52U3JO.js +2 -0
  121. package/dist/cdn/R74ZHFA6.js +2 -0
  122. package/dist/cdn/RBGARTND.js +2 -0
  123. package/dist/cdn/{DBKSQGEI.js → RL2H7TI6.js} +1 -1
  124. package/dist/cdn/RZV3CS2K.js +2 -0
  125. package/dist/cdn/S2BGAMSA.js +2 -0
  126. package/dist/cdn/S772GWA3.js +2 -0
  127. package/dist/cdn/SABP5QOL.js +2 -0
  128. package/dist/cdn/SGI3WLNF.js +2 -0
  129. package/dist/cdn/SLTFLCVR.js +99 -0
  130. package/dist/cdn/SXSWBX5T.js +2 -0
  131. package/dist/cdn/TCAC2CO6.js +2 -0
  132. package/dist/cdn/TJYPEMON.js +2 -0
  133. package/dist/cdn/{DXCPWJU4.js → TKCE4WYE.js} +1 -1
  134. package/dist/cdn/{HIRM34QB.js → TYPCOTRW.js} +1 -1
  135. package/dist/cdn/UDDG7VVX.js +2 -0
  136. package/dist/cdn/UFNGJCCT.js +2 -0
  137. package/dist/cdn/UZCHLKLO.js +2 -0
  138. package/dist/cdn/UZLQALHY.js +2 -0
  139. package/dist/cdn/UZMFRVR5.js +2 -0
  140. package/dist/cdn/{RR4BIAPA.js → V4EYW3O6.js} +1 -1
  141. package/dist/cdn/V4UI5WTN.js +2 -0
  142. package/dist/cdn/V5BCQN5U.js +2 -0
  143. package/dist/cdn/V75YULVA.js +2 -0
  144. package/dist/cdn/VLCHVVVZ.js +2 -0
  145. package/dist/cdn/VMQIDO4Z.js +2 -0
  146. package/dist/cdn/VUBYPGZG.js +2 -0
  147. package/dist/cdn/{74XFARCV.js → VW7DSKPH.js} +1 -1
  148. package/dist/cdn/VX6EE6FY.js +2 -0
  149. package/dist/cdn/VXAWOPU3.js +2 -0
  150. package/dist/cdn/W2SYL7IJ.js +71 -0
  151. package/dist/cdn/{W6PSG4GX.js → W4FGRGLV.js} +10 -5
  152. package/dist/cdn/{SYJSVUUR.js → W4SAWMXS.js} +1 -1
  153. package/dist/cdn/WBZLQZYR.js +134 -0
  154. package/dist/cdn/WGM3TQIL.js +2 -0
  155. package/dist/cdn/WKJEITKD.js +2 -0
  156. package/dist/cdn/WMT55UQD.js +2 -0
  157. package/dist/cdn/WMV67HW3.js +2 -0
  158. package/dist/cdn/WOOCTQS3.js +2 -0
  159. package/dist/cdn/X4GCKBT2.js +2 -0
  160. package/dist/cdn/XATZUXUP.js +2 -0
  161. package/dist/cdn/XCJJESRE.js +2 -0
  162. package/dist/cdn/XD3TUJLE.js +2 -0
  163. package/dist/cdn/XDKRJYZ2.js +2 -0
  164. package/dist/cdn/XEK22IDA.js +2 -0
  165. package/dist/cdn/XZF5RW4B.js +2 -0
  166. package/dist/cdn/YARGA5LY.js +2 -0
  167. package/dist/cdn/YDA23ZS6.js +2 -0
  168. package/dist/cdn/YVKSTDL6.js +2 -0
  169. package/dist/cdn/YYHDUC6G.js +2 -0
  170. package/dist/cdn/{QJ2UHWPU.js → ZEP2GDDJ.js} +1 -1
  171. package/dist/cdn/ZIIB5RYY.js +2 -0
  172. package/dist/cdn/{TBYTYYJJ.js → ZJJOTRSO.js} +5 -3
  173. package/dist/cdn/ZP4Q36AO.js +2 -0
  174. package/dist/cdn/ZQWENT2S.js +3 -0
  175. package/dist/cdn/ZZ44GQ4I.js +2 -0
  176. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ar.json +1 -0
  177. package/dist/cdn/assets/portal-account-switcher/t9n/messages.bg.json +1 -0
  178. package/dist/cdn/assets/portal-account-switcher/t9n/messages.bs.json +1 -0
  179. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ca.json +1 -0
  180. package/dist/cdn/assets/portal-account-switcher/t9n/messages.cs.json +1 -0
  181. package/dist/cdn/assets/portal-account-switcher/t9n/messages.da.json +1 -0
  182. package/dist/cdn/assets/portal-account-switcher/t9n/messages.de.json +1 -0
  183. package/dist/cdn/assets/portal-account-switcher/t9n/messages.el.json +1 -0
  184. package/dist/cdn/assets/portal-account-switcher/t9n/messages.en.json +1 -0
  185. package/dist/cdn/assets/portal-account-switcher/t9n/messages.es.json +1 -0
  186. package/dist/cdn/assets/portal-account-switcher/t9n/messages.et.json +1 -0
  187. package/dist/cdn/assets/portal-account-switcher/t9n/messages.fi.json +1 -0
  188. package/dist/cdn/assets/portal-account-switcher/t9n/messages.fr.json +1 -0
  189. package/dist/cdn/assets/portal-account-switcher/t9n/messages.he.json +1 -0
  190. package/dist/cdn/assets/portal-account-switcher/t9n/messages.hr.json +1 -0
  191. package/dist/cdn/assets/portal-account-switcher/t9n/messages.hu.json +1 -0
  192. package/dist/cdn/assets/portal-account-switcher/t9n/messages.id.json +1 -0
  193. package/dist/cdn/assets/portal-account-switcher/t9n/messages.it.json +1 -0
  194. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ja.json +1 -0
  195. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ko.json +1 -0
  196. package/dist/cdn/assets/portal-account-switcher/t9n/messages.lt.json +1 -0
  197. package/dist/cdn/assets/portal-account-switcher/t9n/messages.lv.json +1 -0
  198. package/dist/cdn/assets/portal-account-switcher/t9n/messages.nl.json +1 -0
  199. package/dist/cdn/assets/portal-account-switcher/t9n/messages.no.json +1 -0
  200. package/dist/cdn/assets/portal-account-switcher/t9n/messages.pl.json +1 -0
  201. package/dist/cdn/assets/portal-account-switcher/t9n/messages.pt-BR.json +1 -0
  202. package/dist/cdn/assets/portal-account-switcher/t9n/messages.pt-PT.json +1 -0
  203. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ro.json +1 -0
  204. package/dist/cdn/assets/portal-account-switcher/t9n/messages.ru.json +1 -0
  205. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sk.json +1 -0
  206. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sl.json +1 -0
  207. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sr.json +1 -0
  208. package/dist/cdn/assets/portal-account-switcher/t9n/messages.sv.json +1 -0
  209. package/dist/cdn/assets/portal-account-switcher/t9n/messages.th.json +1 -0
  210. package/dist/cdn/assets/portal-account-switcher/t9n/messages.tr.json +1 -0
  211. package/dist/cdn/assets/portal-account-switcher/t9n/messages.uk.json +1 -0
  212. package/dist/cdn/assets/portal-account-switcher/t9n/messages.vi.json +1 -0
  213. package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-CN.json +1 -0
  214. package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-HK.json +1 -0
  215. package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-TW.json +1 -0
  216. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ar.json +1 -0
  217. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.bg.json +1 -0
  218. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.bs.json +1 -0
  219. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ca.json +1 -0
  220. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.cs.json +1 -0
  221. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.da.json +1 -0
  222. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.de.json +1 -0
  223. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.el.json +1 -0
  224. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.en.json +1 -0
  225. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.es.json +1 -0
  226. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.et.json +1 -0
  227. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.fi.json +1 -0
  228. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.fr.json +1 -0
  229. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.he.json +1 -0
  230. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.hr.json +1 -0
  231. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.hu.json +1 -0
  232. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.id.json +1 -0
  233. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.it.json +1 -0
  234. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ja.json +1 -0
  235. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ko.json +1 -0
  236. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.lt.json +1 -0
  237. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.lv.json +1 -0
  238. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.nl.json +1 -0
  239. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.no.json +1 -0
  240. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pl.json +1 -0
  241. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pt-BR.json +1 -0
  242. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pt-PT.json +1 -0
  243. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ro.json +1 -0
  244. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ru.json +1 -0
  245. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sk.json +1 -0
  246. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sl.json +1 -0
  247. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sr.json +1 -0
  248. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sv.json +1 -0
  249. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.th.json +1 -0
  250. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.tr.json +1 -0
  251. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.uk.json +1 -0
  252. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.vi.json +1 -0
  253. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-CN.json +1 -0
  254. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-HK.json +1 -0
  255. package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-TW.json +1 -0
  256. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ar.json +1 -1
  257. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.bg.json +1 -1
  258. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.bs.json +1 -1
  259. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ca.json +1 -1
  260. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.cs.json +1 -1
  261. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.da.json +1 -1
  262. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.de.json +1 -1
  263. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.el.json +1 -1
  264. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.en.json +1 -1
  265. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.es.json +1 -1
  266. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.et.json +1 -1
  267. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.fi.json +1 -1
  268. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.fr.json +1 -1
  269. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.he.json +1 -1
  270. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.hr.json +1 -1
  271. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.hu.json +1 -1
  272. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.id.json +1 -1
  273. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.it.json +1 -1
  274. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ja.json +1 -1
  275. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ko.json +1 -1
  276. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.lt.json +1 -1
  277. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.lv.json +1 -1
  278. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.nl.json +1 -1
  279. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.no.json +1 -1
  280. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pl.json +1 -1
  281. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pt-BR.json +1 -1
  282. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pt-PT.json +1 -1
  283. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ro.json +1 -1
  284. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ru.json +1 -1
  285. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sk.json +1 -1
  286. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sl.json +1 -1
  287. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sr.json +1 -1
  288. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sv.json +1 -1
  289. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.th.json +1 -1
  290. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.tr.json +1 -1
  291. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.uk.json +1 -1
  292. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.vi.json +1 -1
  293. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-CN.json +1 -1
  294. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-HK.json +1 -1
  295. package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-TW.json +1 -1
  296. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ar.json +1 -1
  297. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.bg.json +1 -1
  298. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.bs.json +1 -1
  299. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ca.json +1 -1
  300. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.cs.json +1 -1
  301. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.da.json +1 -1
  302. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.de.json +1 -1
  303. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.el.json +1 -1
  304. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.es.json +1 -1
  305. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.et.json +1 -1
  306. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.fi.json +1 -1
  307. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.fr.json +1 -1
  308. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.he.json +1 -1
  309. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.hr.json +1 -1
  310. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.hu.json +1 -1
  311. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.id.json +1 -1
  312. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.it.json +1 -1
  313. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ja.json +1 -1
  314. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ko.json +1 -1
  315. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.lt.json +1 -1
  316. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.lv.json +1 -1
  317. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.nl.json +1 -1
  318. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.no.json +1 -1
  319. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pl.json +1 -1
  320. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pt-BR.json +1 -1
  321. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pt-PT.json +1 -1
  322. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ro.json +1 -1
  323. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ru.json +1 -1
  324. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sk.json +1 -1
  325. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sl.json +1 -1
  326. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sr.json +1 -1
  327. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sv.json +1 -1
  328. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.th.json +1 -1
  329. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.tr.json +1 -1
  330. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.uk.json +1 -1
  331. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.vi.json +1 -1
  332. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-CN.json +1 -1
  333. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-HK.json +1 -1
  334. package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-TW.json +1 -1
  335. package/dist/cdn/assets/portal-browser/t9n/messages.ar.json +1 -0
  336. package/dist/cdn/assets/portal-browser/t9n/messages.bg.json +1 -0
  337. package/dist/cdn/assets/portal-browser/t9n/messages.bs.json +1 -0
  338. package/dist/cdn/assets/portal-browser/t9n/messages.ca.json +1 -0
  339. package/dist/cdn/assets/portal-browser/t9n/messages.cs.json +1 -0
  340. package/dist/cdn/assets/portal-browser/t9n/messages.da.json +1 -0
  341. package/dist/cdn/assets/portal-browser/t9n/messages.de.json +1 -0
  342. package/dist/cdn/assets/portal-browser/t9n/messages.el.json +1 -0
  343. package/dist/cdn/assets/portal-browser/t9n/messages.en.json +1 -0
  344. package/dist/cdn/assets/portal-browser/t9n/messages.es.json +1 -0
  345. package/dist/cdn/assets/portal-browser/t9n/messages.et.json +1 -0
  346. package/dist/cdn/assets/portal-browser/t9n/messages.fi.json +1 -0
  347. package/dist/cdn/assets/portal-browser/t9n/messages.fr.json +1 -0
  348. package/dist/cdn/assets/portal-browser/t9n/messages.he.json +1 -0
  349. package/dist/cdn/assets/portal-browser/t9n/messages.hr.json +1 -0
  350. package/dist/cdn/assets/portal-browser/t9n/messages.hu.json +1 -0
  351. package/dist/cdn/assets/portal-browser/t9n/messages.id.json +1 -0
  352. package/dist/cdn/assets/portal-browser/t9n/messages.it.json +1 -0
  353. package/dist/cdn/assets/portal-browser/t9n/messages.ja.json +1 -0
  354. package/dist/cdn/assets/portal-browser/t9n/messages.ko.json +1 -0
  355. package/dist/cdn/assets/portal-browser/t9n/messages.lt.json +1 -0
  356. package/dist/cdn/assets/portal-browser/t9n/messages.lv.json +1 -0
  357. package/dist/cdn/assets/portal-browser/t9n/messages.nl.json +1 -0
  358. package/dist/cdn/assets/portal-browser/t9n/messages.no.json +1 -0
  359. package/dist/cdn/assets/portal-browser/t9n/messages.pl.json +1 -0
  360. package/dist/cdn/assets/portal-browser/t9n/messages.pt-BR.json +1 -0
  361. package/dist/cdn/assets/portal-browser/t9n/messages.pt-PT.json +1 -0
  362. package/dist/cdn/assets/portal-browser/t9n/messages.ro.json +1 -0
  363. package/dist/cdn/assets/portal-browser/t9n/messages.ru.json +1 -0
  364. package/dist/cdn/assets/portal-browser/t9n/messages.sk.json +1 -0
  365. package/dist/cdn/assets/portal-browser/t9n/messages.sl.json +1 -0
  366. package/dist/cdn/assets/portal-browser/t9n/messages.sr.json +1 -0
  367. package/dist/cdn/assets/portal-browser/t9n/messages.sv.json +1 -0
  368. package/dist/cdn/assets/portal-browser/t9n/messages.th.json +1 -0
  369. package/dist/cdn/assets/portal-browser/t9n/messages.tr.json +1 -0
  370. package/dist/cdn/assets/portal-browser/t9n/messages.uk.json +1 -0
  371. package/dist/cdn/assets/portal-browser/t9n/messages.vi.json +1 -0
  372. package/dist/cdn/assets/portal-browser/t9n/messages.zh-CN.json +1 -0
  373. package/dist/cdn/assets/portal-browser/t9n/messages.zh-HK.json +1 -0
  374. package/dist/cdn/assets/portal-browser/t9n/messages.zh-TW.json +1 -0
  375. package/dist/cdn/assets/portal-delete-items/t9n/messages.ar.json +1 -0
  376. package/dist/cdn/assets/portal-delete-items/t9n/messages.bg.json +1 -0
  377. package/dist/cdn/assets/portal-delete-items/t9n/messages.ca.json +1 -0
  378. package/dist/cdn/assets/portal-delete-items/t9n/messages.cs.json +1 -0
  379. package/dist/cdn/assets/portal-delete-items/t9n/messages.da.json +1 -0
  380. package/dist/cdn/assets/portal-delete-items/t9n/messages.de.json +1 -0
  381. package/dist/cdn/assets/portal-delete-items/t9n/messages.el.json +1 -0
  382. package/dist/cdn/assets/portal-delete-items/t9n/messages.en.json +1 -0
  383. package/dist/cdn/assets/portal-delete-items/t9n/messages.es.json +1 -0
  384. package/dist/cdn/assets/portal-delete-items/t9n/messages.et.json +1 -0
  385. package/dist/cdn/assets/portal-delete-items/t9n/messages.fi.json +1 -0
  386. package/dist/cdn/assets/portal-delete-items/t9n/messages.fr.json +1 -0
  387. package/dist/cdn/assets/portal-delete-items/t9n/messages.he.json +1 -0
  388. package/dist/cdn/assets/portal-delete-items/t9n/messages.hr.json +1 -0
  389. package/dist/cdn/assets/portal-delete-items/t9n/messages.hu.json +1 -0
  390. package/dist/cdn/assets/portal-delete-items/t9n/messages.id.json +1 -0
  391. package/dist/cdn/assets/portal-delete-items/t9n/messages.it.json +1 -0
  392. package/dist/cdn/assets/portal-delete-items/t9n/messages.ja.json +1 -0
  393. package/dist/cdn/assets/portal-delete-items/t9n/messages.ko.json +1 -0
  394. package/dist/cdn/assets/portal-delete-items/t9n/messages.lt.json +1 -0
  395. package/dist/cdn/assets/portal-delete-items/t9n/messages.lv.json +1 -0
  396. package/dist/cdn/assets/portal-delete-items/t9n/messages.nl.json +1 -0
  397. package/dist/cdn/assets/portal-delete-items/t9n/messages.no.json +1 -0
  398. package/dist/cdn/assets/portal-delete-items/t9n/messages.pl.json +1 -0
  399. package/dist/cdn/assets/portal-delete-items/t9n/messages.pt-BR.json +1 -0
  400. package/dist/cdn/assets/portal-delete-items/t9n/messages.pt-PT.json +1 -0
  401. package/dist/cdn/assets/portal-delete-items/t9n/messages.ro.json +1 -0
  402. package/dist/cdn/assets/portal-delete-items/t9n/messages.ru.json +1 -0
  403. package/dist/cdn/assets/portal-delete-items/t9n/messages.sk.json +1 -0
  404. package/dist/cdn/assets/portal-delete-items/t9n/messages.sl.json +1 -0
  405. package/dist/cdn/assets/portal-delete-items/t9n/messages.sr.json +1 -0
  406. package/dist/cdn/assets/portal-delete-items/t9n/messages.sv.json +1 -0
  407. package/dist/cdn/assets/portal-delete-items/t9n/messages.th.json +1 -0
  408. package/dist/cdn/assets/portal-delete-items/t9n/messages.tr.json +1 -0
  409. package/dist/cdn/assets/portal-delete-items/t9n/messages.uk.json +1 -0
  410. package/dist/cdn/assets/portal-delete-items/t9n/messages.vi.json +1 -0
  411. package/dist/cdn/assets/portal-delete-items/t9n/messages.zh-CN.json +1 -0
  412. package/dist/cdn/assets/portal-delete-items/t9n/messages.zh-TW.json +1 -0
  413. package/dist/cdn/assets/portal-group-badges/t9n/messages.ar.json +1 -0
  414. package/dist/cdn/assets/portal-group-badges/t9n/messages.bg.json +1 -0
  415. package/dist/cdn/assets/portal-group-badges/t9n/messages.bs.json +1 -0
  416. package/dist/cdn/assets/portal-group-badges/t9n/messages.ca.json +1 -0
  417. package/dist/cdn/assets/portal-group-badges/t9n/messages.cs.json +1 -0
  418. package/dist/cdn/assets/portal-group-badges/t9n/messages.da.json +1 -0
  419. package/dist/cdn/assets/portal-group-badges/t9n/messages.de.json +1 -0
  420. package/dist/cdn/assets/portal-group-badges/t9n/messages.el.json +1 -0
  421. package/dist/cdn/assets/portal-group-badges/t9n/messages.es.json +1 -0
  422. package/dist/cdn/assets/portal-group-badges/t9n/messages.et.json +1 -0
  423. package/dist/cdn/assets/portal-group-badges/t9n/messages.fi.json +1 -0
  424. package/dist/cdn/assets/portal-group-badges/t9n/messages.fr.json +1 -0
  425. package/dist/cdn/assets/portal-group-badges/t9n/messages.he.json +1 -0
  426. package/dist/cdn/assets/portal-group-badges/t9n/messages.hr.json +1 -0
  427. package/dist/cdn/assets/portal-group-badges/t9n/messages.hu.json +1 -0
  428. package/dist/cdn/assets/portal-group-badges/t9n/messages.id.json +1 -0
  429. package/dist/cdn/assets/portal-group-badges/t9n/messages.it.json +1 -0
  430. package/dist/cdn/assets/portal-group-badges/t9n/messages.ja.json +1 -0
  431. package/dist/cdn/assets/portal-group-badges/t9n/messages.ko.json +1 -0
  432. package/dist/cdn/assets/portal-group-badges/t9n/messages.lt.json +1 -0
  433. package/dist/cdn/assets/portal-group-badges/t9n/messages.lv.json +1 -0
  434. package/dist/cdn/assets/portal-group-badges/t9n/messages.nl.json +1 -0
  435. package/dist/cdn/assets/portal-group-badges/t9n/messages.no.json +1 -0
  436. package/dist/cdn/assets/portal-group-badges/t9n/messages.pl.json +1 -0
  437. package/dist/cdn/assets/portal-group-badges/t9n/messages.pt-BR.json +1 -0
  438. package/dist/cdn/assets/portal-group-badges/t9n/messages.pt-PT.json +1 -0
  439. package/dist/cdn/assets/portal-group-badges/t9n/messages.ro.json +1 -0
  440. package/dist/cdn/assets/portal-group-badges/t9n/messages.ru.json +1 -0
  441. package/dist/cdn/assets/portal-group-badges/t9n/messages.sk.json +1 -0
  442. package/dist/cdn/assets/portal-group-badges/t9n/messages.sl.json +1 -0
  443. package/dist/cdn/assets/portal-group-badges/t9n/messages.sr.json +1 -0
  444. package/dist/cdn/assets/portal-group-badges/t9n/messages.sv.json +1 -0
  445. package/dist/cdn/assets/portal-group-badges/t9n/messages.th.json +1 -0
  446. package/dist/cdn/assets/portal-group-badges/t9n/messages.tr.json +1 -0
  447. package/dist/cdn/assets/portal-group-badges/t9n/messages.uk.json +1 -0
  448. package/dist/cdn/assets/portal-group-badges/t9n/messages.vi.json +1 -0
  449. package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-CN.json +1 -0
  450. package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-HK.json +1 -0
  451. package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-TW.json +1 -0
  452. package/dist/cdn/assets/portal-group-browser/t9n/messages.ar.json +1 -0
  453. package/dist/cdn/assets/portal-group-browser/t9n/messages.bg.json +1 -0
  454. package/dist/cdn/assets/portal-group-browser/t9n/messages.bs.json +1 -0
  455. package/dist/cdn/assets/portal-group-browser/t9n/messages.ca.json +1 -0
  456. package/dist/cdn/assets/portal-group-browser/t9n/messages.cs.json +1 -0
  457. package/dist/cdn/assets/portal-group-browser/t9n/messages.da.json +1 -0
  458. package/dist/cdn/assets/portal-group-browser/t9n/messages.de.json +1 -0
  459. package/dist/cdn/assets/portal-group-browser/t9n/messages.el.json +1 -0
  460. package/dist/cdn/assets/portal-group-browser/t9n/messages.en.json +1 -0
  461. package/dist/cdn/assets/portal-group-browser/t9n/messages.es.json +1 -0
  462. package/dist/cdn/assets/portal-group-browser/t9n/messages.et.json +1 -0
  463. package/dist/cdn/assets/portal-group-browser/t9n/messages.fi.json +1 -0
  464. package/dist/cdn/assets/portal-group-browser/t9n/messages.fr.json +1 -0
  465. package/dist/cdn/assets/portal-group-browser/t9n/messages.he.json +1 -0
  466. package/dist/cdn/assets/portal-group-browser/t9n/messages.hr.json +1 -0
  467. package/dist/cdn/assets/portal-group-browser/t9n/messages.hu.json +1 -0
  468. package/dist/cdn/assets/portal-group-browser/t9n/messages.id.json +1 -0
  469. package/dist/cdn/assets/portal-group-browser/t9n/messages.it.json +1 -0
  470. package/dist/cdn/assets/portal-group-browser/t9n/messages.ja.json +1 -0
  471. package/dist/cdn/assets/portal-group-browser/t9n/messages.ko.json +1 -0
  472. package/dist/cdn/assets/portal-group-browser/t9n/messages.lt.json +1 -0
  473. package/dist/cdn/assets/portal-group-browser/t9n/messages.lv.json +1 -0
  474. package/dist/cdn/assets/portal-group-browser/t9n/messages.nl.json +1 -0
  475. package/dist/cdn/assets/portal-group-browser/t9n/messages.no.json +1 -0
  476. package/dist/cdn/assets/portal-group-browser/t9n/messages.pl.json +1 -0
  477. package/dist/cdn/assets/portal-group-browser/t9n/messages.pt-BR.json +1 -0
  478. package/dist/cdn/assets/portal-group-browser/t9n/messages.pt-PT.json +1 -0
  479. package/dist/cdn/assets/portal-group-browser/t9n/messages.ro.json +1 -0
  480. package/dist/cdn/assets/portal-group-browser/t9n/messages.ru.json +1 -0
  481. package/dist/cdn/assets/portal-group-browser/t9n/messages.sk.json +1 -0
  482. package/dist/cdn/assets/portal-group-browser/t9n/messages.sl.json +1 -0
  483. package/dist/cdn/assets/portal-group-browser/t9n/messages.sr.json +1 -0
  484. package/dist/cdn/assets/portal-group-browser/t9n/messages.sv.json +1 -0
  485. package/dist/cdn/assets/portal-group-browser/t9n/messages.th.json +1 -0
  486. package/dist/cdn/assets/portal-group-browser/t9n/messages.tr.json +1 -0
  487. package/dist/cdn/assets/portal-group-browser/t9n/messages.uk.json +1 -0
  488. package/dist/cdn/assets/portal-group-browser/t9n/messages.vi.json +1 -0
  489. package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-CN.json +1 -0
  490. package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-HK.json +1 -0
  491. package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-TW.json +1 -0
  492. package/dist/cdn/assets/portal-group-card/t9n/messages.ar.json +1 -0
  493. package/dist/cdn/assets/portal-group-card/t9n/messages.bg.json +1 -0
  494. package/dist/cdn/assets/portal-group-card/t9n/messages.bs.json +1 -0
  495. package/dist/cdn/assets/portal-group-card/t9n/messages.ca.json +1 -0
  496. package/dist/cdn/assets/portal-group-card/t9n/messages.cs.json +1 -0
  497. package/dist/cdn/assets/portal-group-card/t9n/messages.da.json +1 -0
  498. package/dist/cdn/assets/portal-group-card/t9n/messages.de.json +1 -0
  499. package/dist/cdn/assets/portal-group-card/t9n/messages.el.json +1 -0
  500. package/dist/cdn/assets/portal-group-card/t9n/messages.en.json +1 -1
  501. package/dist/cdn/assets/portal-group-card/t9n/messages.es.json +1 -0
  502. package/dist/cdn/assets/portal-group-card/t9n/messages.et.json +1 -0
  503. package/dist/cdn/assets/portal-group-card/t9n/messages.fi.json +1 -0
  504. package/dist/cdn/assets/portal-group-card/t9n/messages.fr.json +1 -0
  505. package/dist/cdn/assets/portal-group-card/t9n/messages.he.json +1 -0
  506. package/dist/cdn/assets/portal-group-card/t9n/messages.hr.json +1 -0
  507. package/dist/cdn/assets/portal-group-card/t9n/messages.hu.json +1 -0
  508. package/dist/cdn/assets/portal-group-card/t9n/messages.id.json +1 -0
  509. package/dist/cdn/assets/portal-group-card/t9n/messages.it.json +1 -0
  510. package/dist/cdn/assets/portal-group-card/t9n/messages.ja.json +1 -0
  511. package/dist/cdn/assets/portal-group-card/t9n/messages.ko.json +1 -0
  512. package/dist/cdn/assets/portal-group-card/t9n/messages.lt.json +1 -0
  513. package/dist/cdn/assets/portal-group-card/t9n/messages.lv.json +1 -0
  514. package/dist/cdn/assets/portal-group-card/t9n/messages.nl.json +1 -0
  515. package/dist/cdn/assets/portal-group-card/t9n/messages.no.json +1 -0
  516. package/dist/cdn/assets/portal-group-card/t9n/messages.pl.json +1 -0
  517. package/dist/cdn/assets/portal-group-card/t9n/messages.pt-BR.json +1 -0
  518. package/dist/cdn/assets/portal-group-card/t9n/messages.pt-PT.json +1 -0
  519. package/dist/cdn/assets/portal-group-card/t9n/messages.ro.json +1 -0
  520. package/dist/cdn/assets/portal-group-card/t9n/messages.ru.json +1 -0
  521. package/dist/cdn/assets/portal-group-card/t9n/messages.sk.json +1 -0
  522. package/dist/cdn/assets/portal-group-card/t9n/messages.sl.json +1 -0
  523. package/dist/cdn/assets/portal-group-card/t9n/messages.sr.json +1 -0
  524. package/dist/cdn/assets/portal-group-card/t9n/messages.sv.json +1 -0
  525. package/dist/cdn/assets/portal-group-card/t9n/messages.th.json +1 -0
  526. package/dist/cdn/assets/portal-group-card/t9n/messages.tr.json +1 -0
  527. package/dist/cdn/assets/portal-group-card/t9n/messages.uk.json +1 -0
  528. package/dist/cdn/assets/portal-group-card/t9n/messages.vi.json +1 -0
  529. package/dist/cdn/assets/portal-group-card/t9n/messages.zh-CN.json +1 -0
  530. package/dist/cdn/assets/portal-group-card/t9n/messages.zh-HK.json +1 -0
  531. package/dist/cdn/assets/portal-group-card/t9n/messages.zh-TW.json +1 -0
  532. package/dist/cdn/assets/portal-item-badges/t9n/messages.ar.json +1 -0
  533. package/dist/cdn/assets/portal-item-badges/t9n/messages.bg.json +1 -0
  534. package/dist/cdn/assets/portal-item-badges/t9n/messages.bs.json +1 -0
  535. package/dist/cdn/assets/portal-item-badges/t9n/messages.ca.json +1 -0
  536. package/dist/cdn/assets/portal-item-badges/t9n/messages.cs.json +1 -0
  537. package/dist/cdn/assets/portal-item-badges/t9n/messages.da.json +1 -0
  538. package/dist/cdn/assets/portal-item-badges/t9n/messages.de.json +1 -0
  539. package/dist/cdn/assets/portal-item-badges/t9n/messages.el.json +1 -0
  540. package/dist/cdn/assets/portal-item-badges/t9n/messages.en.json +1 -0
  541. package/dist/cdn/assets/portal-item-badges/t9n/messages.es.json +1 -0
  542. package/dist/cdn/assets/portal-item-badges/t9n/messages.et.json +1 -0
  543. package/dist/cdn/assets/portal-item-badges/t9n/messages.fi.json +1 -0
  544. package/dist/cdn/assets/portal-item-badges/t9n/messages.fr.json +1 -0
  545. package/dist/cdn/assets/portal-item-badges/t9n/messages.he.json +1 -0
  546. package/dist/cdn/assets/portal-item-badges/t9n/messages.hr.json +1 -0
  547. package/dist/cdn/assets/portal-item-badges/t9n/messages.hu.json +1 -0
  548. package/dist/cdn/assets/portal-item-badges/t9n/messages.id.json +1 -0
  549. package/dist/cdn/assets/portal-item-badges/t9n/messages.it.json +1 -0
  550. package/dist/cdn/assets/portal-item-badges/t9n/messages.ja.json +1 -0
  551. package/dist/cdn/assets/portal-item-badges/t9n/messages.ko.json +1 -0
  552. package/dist/cdn/assets/portal-item-badges/t9n/messages.lt.json +1 -0
  553. package/dist/cdn/assets/portal-item-badges/t9n/messages.lv.json +1 -0
  554. package/dist/cdn/assets/portal-item-badges/t9n/messages.nl.json +1 -0
  555. package/dist/cdn/assets/portal-item-badges/t9n/messages.no.json +1 -0
  556. package/dist/cdn/assets/portal-item-badges/t9n/messages.pl.json +1 -0
  557. package/dist/cdn/assets/portal-item-badges/t9n/messages.pt-BR.json +1 -0
  558. package/dist/cdn/assets/portal-item-badges/t9n/messages.pt-PT.json +1 -0
  559. package/dist/cdn/assets/portal-item-badges/t9n/messages.ro.json +1 -0
  560. package/dist/cdn/assets/portal-item-badges/t9n/messages.ru.json +1 -0
  561. package/dist/cdn/assets/portal-item-badges/t9n/messages.sk.json +1 -0
  562. package/dist/cdn/assets/portal-item-badges/t9n/messages.sl.json +1 -0
  563. package/dist/cdn/assets/portal-item-badges/t9n/messages.sr.json +1 -0
  564. package/dist/cdn/assets/portal-item-badges/t9n/messages.sv.json +1 -0
  565. package/dist/cdn/assets/portal-item-badges/t9n/messages.th.json +1 -0
  566. package/dist/cdn/assets/portal-item-badges/t9n/messages.tr.json +1 -0
  567. package/dist/cdn/assets/portal-item-badges/t9n/messages.uk.json +1 -0
  568. package/dist/cdn/assets/portal-item-badges/t9n/messages.vi.json +1 -0
  569. package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-CN.json +1 -0
  570. package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-HK.json +1 -0
  571. package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-TW.json +1 -0
  572. package/dist/cdn/assets/portal-item-card/t9n/messages.ar.json +1 -0
  573. package/dist/cdn/assets/portal-item-card/t9n/messages.bg.json +1 -0
  574. package/dist/cdn/assets/portal-item-card/t9n/messages.bs.json +1 -0
  575. package/dist/cdn/assets/portal-item-card/t9n/messages.ca.json +1 -0
  576. package/dist/cdn/assets/portal-item-card/t9n/messages.cs.json +1 -0
  577. package/dist/cdn/assets/portal-item-card/t9n/messages.da.json +1 -0
  578. package/dist/cdn/assets/portal-item-card/t9n/messages.de.json +1 -0
  579. package/dist/cdn/assets/portal-item-card/t9n/messages.el.json +1 -0
  580. package/dist/cdn/assets/portal-item-card/t9n/messages.en.json +1 -0
  581. package/dist/cdn/assets/portal-item-card/t9n/messages.es.json +1 -0
  582. package/dist/cdn/assets/portal-item-card/t9n/messages.et.json +1 -0
  583. package/dist/cdn/assets/portal-item-card/t9n/messages.fi.json +1 -0
  584. package/dist/cdn/assets/portal-item-card/t9n/messages.fr.json +1 -0
  585. package/dist/cdn/assets/portal-item-card/t9n/messages.he.json +1 -0
  586. package/dist/cdn/assets/portal-item-card/t9n/messages.hr.json +1 -0
  587. package/dist/cdn/assets/portal-item-card/t9n/messages.hu.json +1 -0
  588. package/dist/cdn/assets/portal-item-card/t9n/messages.id.json +1 -0
  589. package/dist/cdn/assets/portal-item-card/t9n/messages.it.json +1 -0
  590. package/dist/cdn/assets/portal-item-card/t9n/messages.ja.json +1 -0
  591. package/dist/cdn/assets/portal-item-card/t9n/messages.ko.json +1 -0
  592. package/dist/cdn/assets/portal-item-card/t9n/messages.lt.json +1 -0
  593. package/dist/cdn/assets/portal-item-card/t9n/messages.lv.json +1 -0
  594. package/dist/cdn/assets/portal-item-card/t9n/messages.nl.json +1 -0
  595. package/dist/cdn/assets/portal-item-card/t9n/messages.no.json +1 -0
  596. package/dist/cdn/assets/portal-item-card/t9n/messages.pl.json +1 -0
  597. package/dist/cdn/assets/portal-item-card/t9n/messages.pt-BR.json +1 -0
  598. package/dist/cdn/assets/portal-item-card/t9n/messages.pt-PT.json +1 -0
  599. package/dist/cdn/assets/portal-item-card/t9n/messages.ro.json +1 -0
  600. package/dist/cdn/assets/portal-item-card/t9n/messages.ru.json +1 -0
  601. package/dist/cdn/assets/portal-item-card/t9n/messages.sk.json +1 -0
  602. package/dist/cdn/assets/portal-item-card/t9n/messages.sl.json +1 -0
  603. package/dist/cdn/assets/portal-item-card/t9n/messages.sr.json +1 -0
  604. package/dist/cdn/assets/portal-item-card/t9n/messages.sv.json +1 -0
  605. package/dist/cdn/assets/portal-item-card/t9n/messages.th.json +1 -0
  606. package/dist/cdn/assets/portal-item-card/t9n/messages.tr.json +1 -0
  607. package/dist/cdn/assets/portal-item-card/t9n/messages.uk.json +1 -0
  608. package/dist/cdn/assets/portal-item-card/t9n/messages.vi.json +1 -0
  609. package/dist/cdn/assets/portal-item-card/t9n/messages.zh-CN.json +1 -0
  610. package/dist/cdn/assets/portal-item-card/t9n/messages.zh-HK.json +1 -0
  611. package/dist/cdn/assets/portal-item-card/t9n/messages.zh-TW.json +1 -0
  612. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ar.json +1 -0
  613. package/dist/cdn/assets/portal-item-favorite/t9n/messages.bg.json +1 -0
  614. package/dist/cdn/assets/portal-item-favorite/t9n/messages.bs.json +1 -0
  615. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ca.json +1 -0
  616. package/dist/cdn/assets/portal-item-favorite/t9n/messages.cs.json +1 -0
  617. package/dist/cdn/assets/portal-item-favorite/t9n/messages.da.json +1 -0
  618. package/dist/cdn/assets/portal-item-favorite/t9n/messages.de.json +1 -0
  619. package/dist/cdn/assets/portal-item-favorite/t9n/messages.el.json +1 -0
  620. package/dist/cdn/assets/portal-item-favorite/t9n/messages.en.json +1 -0
  621. package/dist/cdn/assets/portal-item-favorite/t9n/messages.es.json +1 -0
  622. package/dist/cdn/assets/portal-item-favorite/t9n/messages.et.json +1 -0
  623. package/dist/cdn/assets/portal-item-favorite/t9n/messages.fi.json +1 -0
  624. package/dist/cdn/assets/portal-item-favorite/t9n/messages.fr.json +1 -0
  625. package/dist/cdn/assets/portal-item-favorite/t9n/messages.he.json +1 -0
  626. package/dist/cdn/assets/portal-item-favorite/t9n/messages.hr.json +1 -0
  627. package/dist/cdn/assets/portal-item-favorite/t9n/messages.hu.json +1 -0
  628. package/dist/cdn/assets/portal-item-favorite/t9n/messages.id.json +1 -0
  629. package/dist/cdn/assets/portal-item-favorite/t9n/messages.it.json +1 -0
  630. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ja.json +1 -0
  631. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ko.json +1 -0
  632. package/dist/cdn/assets/portal-item-favorite/t9n/messages.lt.json +1 -0
  633. package/dist/cdn/assets/portal-item-favorite/t9n/messages.lv.json +1 -0
  634. package/dist/cdn/assets/portal-item-favorite/t9n/messages.nl.json +1 -0
  635. package/dist/cdn/assets/portal-item-favorite/t9n/messages.no.json +1 -0
  636. package/dist/cdn/assets/portal-item-favorite/t9n/messages.pl.json +1 -0
  637. package/dist/cdn/assets/portal-item-favorite/t9n/messages.pt-BR.json +1 -0
  638. package/dist/cdn/assets/portal-item-favorite/t9n/messages.pt-PT.json +1 -0
  639. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ro.json +1 -0
  640. package/dist/cdn/assets/portal-item-favorite/t9n/messages.ru.json +1 -0
  641. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sk.json +1 -0
  642. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sl.json +1 -0
  643. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sr.json +1 -0
  644. package/dist/cdn/assets/portal-item-favorite/t9n/messages.sv.json +1 -0
  645. package/dist/cdn/assets/portal-item-favorite/t9n/messages.th.json +1 -0
  646. package/dist/cdn/assets/portal-item-favorite/t9n/messages.tr.json +1 -0
  647. package/dist/cdn/assets/portal-item-favorite/t9n/messages.uk.json +1 -0
  648. package/dist/cdn/assets/portal-item-favorite/t9n/messages.vi.json +1 -0
  649. package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-CN.json +1 -0
  650. package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-HK.json +1 -0
  651. package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-TW.json +1 -0
  652. package/dist/cdn/assets/portal-item-thumbnail/administrativereport.avif +0 -0
  653. package/dist/cdn/assets/portal-item-thumbnail/analysismodel.avif +0 -0
  654. package/dist/cdn/assets/portal-item-thumbnail/apacheparquet.avif +0 -0
  655. package/dist/cdn/assets/portal-item-thumbnail/apikey.avif +0 -0
  656. package/dist/cdn/assets/portal-item-thumbnail/applicationtheme.avif +0 -0
  657. package/dist/cdn/assets/portal-item-thumbnail/bigdataanalytic.avif +0 -0
  658. package/dist/cdn/assets/portal-item-thumbnail/classificationschema.avif +0 -0
  659. package/dist/cdn/assets/portal-item-thumbnail/classifierdefinition.avif +0 -0
  660. package/dist/cdn/assets/portal-item-thumbnail/dashboards.avif +0 -0
  661. package/dist/cdn/assets/portal-item-thumbnail/dataengineeringmodel.avif +0 -0
  662. package/dist/cdn/assets/portal-item-thumbnail/dataengineeringworkbook.avif +0 -0
  663. package/dist/cdn/assets/portal-item-thumbnail/datapipeline.avif +0 -0
  664. package/dist/cdn/assets/portal-item-thumbnail/deeplearningpackage.avif +0 -0
  665. package/dist/cdn/assets/portal-item-thumbnail/deeplearningstudioproject.avif +0 -0
  666. package/dist/cdn/assets/portal-item-thumbnail/default.avif +0 -0
  667. package/dist/cdn/assets/portal-item-thumbnail/dictionarystyle.avif +0 -0
  668. package/dist/cdn/assets/portal-item-thumbnail/discussion.avif +0 -0
  669. package/dist/cdn/assets/portal-item-thumbnail/earthconfiguration.avif +0 -0
  670. package/dist/cdn/assets/portal-item-thumbnail/excaliburimageryproject.avif +0 -0
  671. package/dist/cdn/assets/portal-item-thumbnail/experiencebuilderwidget.avif +0 -0
  672. package/dist/cdn/assets/portal-item-thumbnail/experiencebuilderwidgetpackage.avif +0 -0
  673. package/dist/cdn/assets/portal-item-thumbnail/feed.avif +0 -0
  674. package/dist/cdn/assets/portal-item-thumbnail/gaussiansplatlayer.avif +0 -0
  675. package/dist/cdn/assets/portal-item-thumbnail/geodataservice.avif +0 -0
  676. package/dist/cdn/assets/portal-item-thumbnail/hubevent.avif +0 -0
  677. package/dist/cdn/assets/portal-item-thumbnail/hubinitiative.avif +0 -0
  678. package/dist/cdn/assets/portal-item-thumbnail/hubinitiativetemplate.avif +0 -0
  679. package/dist/cdn/assets/portal-item-thumbnail/hubpage.avif +0 -0
  680. package/dist/cdn/assets/portal-item-thumbnail/hubproject.avif +0 -0
  681. package/dist/cdn/assets/portal-item-thumbnail/hubsite.avif +0 -0
  682. package/dist/cdn/assets/portal-item-thumbnail/imagerylayer.avif +0 -0
  683. package/dist/cdn/assets/portal-item-thumbnail/indoor-positioning-data-service.avif +0 -0
  684. package/dist/cdn/assets/portal-item-thumbnail/insightsscript.avif +0 -0
  685. package/dist/cdn/assets/portal-item-thumbnail/insightstheme.avif +0 -0
  686. package/dist/cdn/assets/portal-item-thumbnail/insightsworkbookpackage.avif +0 -0
  687. package/dist/cdn/assets/portal-item-thumbnail/investigation.avif +0 -0
  688. package/dist/cdn/assets/portal-item-thumbnail/kernelgatewayconnection.avif +0 -0
  689. package/dist/cdn/assets/portal-item-thumbnail/knowledgegraph.avif +0 -0
  690. package/dist/cdn/assets/portal-item-thumbnail/knowledgegraphconfiguration.avif +0 -0
  691. package/dist/cdn/assets/portal-item-thumbnail/knowledgegraphlayer.avif +0 -0
  692. package/dist/cdn/assets/portal-item-thumbnail/knowledgestudio.avif +0 -0
  693. package/dist/cdn/assets/portal-item-thumbnail/linkchart.avif +0 -0
  694. package/dist/cdn/assets/portal-item-thumbnail/locationtrackingservice.avif +0 -0
  695. package/dist/cdn/assets/portal-item-thumbnail/mapshowcase.avif +0 -0
  696. package/dist/cdn/assets/portal-item-thumbnail/mediaservice.avif +0 -0
  697. package/dist/cdn/assets/portal-item-thumbnail/mission.avif +0 -0
  698. package/dist/cdn/assets/portal-item-thumbnail/missionreport.avif +0 -0
  699. package/dist/cdn/assets/portal-item-thumbnail/missiontemplate.avif +0 -0
  700. package/dist/cdn/assets/portal-item-thumbnail/mobileapp.avif +0 -0
  701. package/dist/cdn/assets/portal-item-thumbnail/mobilescenepackage.avif +0 -0
  702. package/dist/cdn/assets/portal-item-thumbnail/notebook.avif +0 -0
  703. package/dist/cdn/assets/portal-item-thumbnail/notebookcodesnippets.avif +0 -0
  704. package/dist/cdn/assets/portal-item-thumbnail/notebookwebtool.avif +0 -0
  705. package/dist/cdn/assets/portal-item-thumbnail/opsdashboard.avif +0 -0
  706. package/dist/cdn/assets/portal-item-thumbnail/orthomappingproject.avif +0 -0
  707. package/dist/cdn/assets/portal-item-thumbnail/orthomappingtemplate.avif +0 -0
  708. package/dist/cdn/assets/portal-item-thumbnail/pro-presentation.avif +0 -0
  709. package/dist/cdn/assets/portal-item-thumbnail/propackage.avif +0 -0
  710. package/dist/cdn/assets/portal-item-thumbnail/proreport.avif +0 -0
  711. package/dist/cdn/assets/portal-item-thumbnail/proreporttemplate.avif +0 -0
  712. package/dist/cdn/assets/portal-item-thumbnail/quickcaptureproject.avif +0 -0
  713. package/dist/cdn/assets/portal-item-thumbnail/rasterfunctiontemplate.avif +0 -0
  714. package/dist/cdn/assets/portal-item-thumbnail/realitymappingproject.avif +0 -0
  715. package/dist/cdn/assets/portal-item-thumbnail/realtimeanalytic.avif +0 -0
  716. package/dist/cdn/assets/portal-item-thumbnail/scene.avif +0 -0
  717. package/dist/cdn/assets/portal-item-thumbnail/serviceconnection.avif +0 -0
  718. package/dist/cdn/assets/portal-item-thumbnail/solution.avif +0 -0
  719. package/dist/cdn/assets/portal-item-thumbnail/spectrallibrary.avif +0 -0
  720. package/dist/cdn/assets/portal-item-thumbnail/storymap.avif +0 -0
  721. package/dist/cdn/assets/portal-item-thumbnail/storymapcollection.avif +0 -0
  722. package/dist/cdn/assets/portal-item-thumbnail/storymaptheme.avif +0 -0
  723. package/dist/cdn/assets/portal-item-thumbnail/style.avif +0 -0
  724. package/dist/cdn/assets/portal-item-thumbnail/suitabilitymodel.avif +0 -0
  725. package/dist/cdn/assets/portal-item-thumbnail/survey123addin.avif +0 -0
  726. package/dist/cdn/assets/portal-item-thumbnail/tiledimagerylayer.avif +0 -0
  727. package/dist/cdn/assets/portal-item-thumbnail/urbanmodel.avif +0 -0
  728. package/dist/cdn/assets/portal-item-thumbnail/urbanproject.avif +0 -0
  729. package/dist/cdn/assets/portal-item-thumbnail/webapp.avif +0 -0
  730. package/dist/cdn/assets/portal-item-thumbnail/webexperience.avif +0 -0
  731. package/dist/cdn/assets/portal-item-thumbnail/webexperiencetemplate.avif +0 -0
  732. package/dist/cdn/assets/portal-item-thumbnail/webtool.avif +0 -0
  733. package/dist/cdn/assets/portal-item-thumbnail/workflow.avif +0 -0
  734. package/dist/cdn/assets/portal-item-thumbnail/workforceproject.avif +0 -0
  735. package/dist/cdn/assets/portal-item-thumbnail/xrexperience.avif +0 -0
  736. package/dist/cdn/assets/portal-item-type/icons/360vr16.svg +0 -0
  737. package/dist/cdn/assets/portal-item-type/icons/360vr32.svg +0 -0
  738. package/dist/cdn/assets/portal-item-type/icons/applicationtheme16.svg +1 -0
  739. package/dist/cdn/assets/portal-item-type/icons/applicationtheme32.svg +1 -0
  740. package/dist/cdn/assets/portal-item-type/icons/insightstheme16.svg +0 -0
  741. package/dist/cdn/assets/portal-item-type/icons/insightstheme32.svg +0 -0
  742. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration16.svg +1 -0
  743. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration32.svg +1 -0
  744. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphlayer16.svg +0 -0
  745. package/dist/cdn/assets/portal-item-type/icons/knowledgegraphlayer32.svg +0 -0
  746. package/dist/cdn/assets/portal-item-type/icons/layout16.svg +1 -0
  747. package/dist/cdn/assets/portal-item-type/icons/layout32.svg +1 -0
  748. package/dist/cdn/assets/portal-item-type/icons/missiontemplate16.svg +0 -0
  749. package/dist/cdn/assets/portal-item-type/icons/missiontemplate32.svg +0 -0
  750. package/dist/cdn/assets/portal-item-type/icons/propresentation16.svg +0 -0
  751. package/dist/cdn/assets/portal-item-type/icons/propresentation32.svg +0 -0
  752. package/dist/cdn/assets/portal-item-type/t9n/messages.ar.json +1 -1
  753. package/dist/cdn/assets/portal-item-type/t9n/messages.bg.json +1 -1
  754. package/dist/cdn/assets/portal-item-type/t9n/messages.bs.json +1 -1
  755. package/dist/cdn/assets/portal-item-type/t9n/messages.ca.json +1 -1
  756. package/dist/cdn/assets/portal-item-type/t9n/messages.cs.json +1 -1
  757. package/dist/cdn/assets/portal-item-type/t9n/messages.da.json +1 -1
  758. package/dist/cdn/assets/portal-item-type/t9n/messages.de.json +1 -1
  759. package/dist/cdn/assets/portal-item-type/t9n/messages.el.json +1 -1
  760. package/dist/cdn/assets/portal-item-type/t9n/messages.es.json +1 -1
  761. package/dist/cdn/assets/portal-item-type/t9n/messages.et.json +1 -1
  762. package/dist/cdn/assets/portal-item-type/t9n/messages.fi.json +1 -1
  763. package/dist/cdn/assets/portal-item-type/t9n/messages.fr.json +1 -1
  764. package/dist/cdn/assets/portal-item-type/t9n/messages.he.json +1 -1
  765. package/dist/cdn/assets/portal-item-type/t9n/messages.hr.json +1 -1
  766. package/dist/cdn/assets/portal-item-type/t9n/messages.hu.json +1 -1
  767. package/dist/cdn/assets/portal-item-type/t9n/messages.id.json +1 -1
  768. package/dist/cdn/assets/portal-item-type/t9n/messages.it.json +1 -1
  769. package/dist/cdn/assets/portal-item-type/t9n/messages.ja.json +1 -1
  770. package/dist/cdn/assets/portal-item-type/t9n/messages.ko.json +1 -1
  771. package/dist/cdn/assets/portal-item-type/t9n/messages.lt.json +1 -1
  772. package/dist/cdn/assets/portal-item-type/t9n/messages.lv.json +1 -1
  773. package/dist/cdn/assets/portal-item-type/t9n/messages.nl.json +1 -1
  774. package/dist/cdn/assets/portal-item-type/t9n/messages.no.json +1 -1
  775. package/dist/cdn/assets/portal-item-type/t9n/messages.pl.json +1 -1
  776. package/dist/cdn/assets/portal-item-type/t9n/messages.pt-BR.json +1 -1
  777. package/dist/cdn/assets/portal-item-type/t9n/messages.pt-PT.json +1 -1
  778. package/dist/cdn/assets/portal-item-type/t9n/messages.ro.json +1 -1
  779. package/dist/cdn/assets/portal-item-type/t9n/messages.ru.json +1 -1
  780. package/dist/cdn/assets/portal-item-type/t9n/messages.sk.json +1 -1
  781. package/dist/cdn/assets/portal-item-type/t9n/messages.sl.json +1 -1
  782. package/dist/cdn/assets/portal-item-type/t9n/messages.sr.json +1 -1
  783. package/dist/cdn/assets/portal-item-type/t9n/messages.sv.json +1 -1
  784. package/dist/cdn/assets/portal-item-type/t9n/messages.th.json +1 -1
  785. package/dist/cdn/assets/portal-item-type/t9n/messages.tr.json +1 -1
  786. package/dist/cdn/assets/portal-item-type/t9n/messages.uk.json +1 -1
  787. package/dist/cdn/assets/portal-item-type/t9n/messages.vi.json +1 -1
  788. package/dist/cdn/assets/portal-item-type/t9n/messages.zh-CN.json +1 -1
  789. package/dist/cdn/assets/portal-item-type/t9n/messages.zh-HK.json +1 -1
  790. package/dist/cdn/assets/portal-item-type/t9n/messages.zh-TW.json +1 -1
  791. package/dist/cdn/assets/portal-navigation/apps/api-for-python.avif +0 -0
  792. package/dist/cdn/assets/portal-navigation/apps/appstudio.avif +0 -0
  793. package/dist/cdn/assets/portal-navigation/apps/arcade.avif +0 -0
  794. package/dist/cdn/assets/portal-navigation/apps/arcgis-360-vr.avif +0 -0
  795. package/dist/cdn/assets/portal-navigation/apps/arcgis-earth.avif +0 -0
  796. package/dist/cdn/assets/portal-navigation/apps/arcgis-enterprise.avif +0 -0
  797. package/dist/cdn/assets/portal-navigation/apps/arcgis-experience-builder.avif +0 -0
  798. package/dist/cdn/assets/portal-navigation/apps/arcgis-geoanalytics.avif +0 -0
  799. package/dist/cdn/assets/portal-navigation/apps/arcgis-hub.avif +0 -0
  800. package/dist/cdn/assets/portal-navigation/apps/arcgis-online.avif +0 -0
  801. package/dist/cdn/assets/portal-navigation/apps/arcgis-pro.avif +0 -0
  802. package/dist/cdn/assets/portal-navigation/apps/arcgis-reality-studio.avif +0 -0
  803. package/dist/cdn/assets/portal-navigation/apps/arcgis-urban.avif +0 -0
  804. package/dist/cdn/assets/portal-navigation/apps/blank.avif +0 -0
  805. package/dist/cdn/assets/portal-navigation/apps/business-analyst.avif +0 -0
  806. package/dist/cdn/assets/portal-navigation/apps/city-engine.avif +0 -0
  807. package/dist/cdn/assets/portal-navigation/apps/collector.avif +0 -0
  808. package/dist/cdn/assets/portal-navigation/apps/community-analyst.avif +0 -0
  809. package/dist/cdn/assets/portal-navigation/apps/configurable-apps.avif +0 -0
  810. package/dist/cdn/assets/portal-navigation/apps/dashboards-beta.avif +0 -0
  811. package/dist/cdn/assets/portal-navigation/apps/dashboards-classic.avif +0 -0
  812. package/dist/cdn/assets/portal-navigation/apps/data-pipelines.avif +0 -0
  813. package/dist/cdn/assets/portal-navigation/apps/deeplearningstudio.avif +0 -0
  814. package/dist/cdn/assets/portal-navigation/apps/demographics.avif +0 -0
  815. package/dist/cdn/assets/portal-navigation/apps/drone2map.avif +0 -0
  816. package/dist/cdn/assets/portal-navigation/apps/esri-events.avif +0 -0
  817. package/dist/cdn/assets/portal-navigation/apps/essential-apps.avif +0 -0
  818. package/dist/cdn/assets/portal-navigation/apps/excalibur.avif +0 -0
  819. package/dist/cdn/assets/portal-navigation/apps/explorer.avif +0 -0
  820. package/dist/cdn/assets/portal-navigation/apps/field-apps.avif +0 -0
  821. package/dist/cdn/assets/portal-navigation/apps/fieldmaps-beta.avif +0 -0
  822. package/dist/cdn/assets/portal-navigation/apps/fieldmaps-ea.avif +0 -0
  823. package/dist/cdn/assets/portal-navigation/apps/fieldmaps.avif +0 -0
  824. package/dist/cdn/assets/portal-navigation/apps/generic-app.avif +0 -0
  825. package/dist/cdn/assets/portal-navigation/apps/geobim.avif +0 -0
  826. package/dist/cdn/assets/portal-navigation/apps/geoplanner.avif +0 -0
  827. package/dist/cdn/assets/portal-navigation/apps/grid-view-9.avif +0 -0
  828. package/dist/cdn/assets/portal-navigation/apps/indoor.avif +0 -0
  829. package/dist/cdn/assets/portal-navigation/apps/indoors.avif +0 -0
  830. package/dist/cdn/assets/portal-navigation/apps/insights.avif +0 -0
  831. package/dist/cdn/assets/portal-navigation/apps/instant-apps.avif +0 -0
  832. package/dist/cdn/assets/portal-navigation/apps/ips.avif +0 -0
  833. package/dist/cdn/assets/portal-navigation/apps/knowledge-studio.avif +0 -0
  834. package/dist/cdn/assets/portal-navigation/apps/living-atlas.avif +0 -0
  835. package/dist/cdn/assets/portal-navigation/apps/location-platform.avif +0 -0
  836. package/dist/cdn/assets/portal-navigation/apps/map-maker.avif +0 -0
  837. package/dist/cdn/assets/portal-navigation/apps/map-viewer-beta.avif +0 -0
  838. package/dist/cdn/assets/portal-navigation/apps/map-viewer-classic.avif +0 -0
  839. package/dist/cdn/assets/portal-navigation/apps/map-viewer.avif +0 -0
  840. package/dist/cdn/assets/portal-navigation/apps/maps-adobe-cloud.avif +0 -0
  841. package/dist/cdn/assets/portal-navigation/apps/maps-for-office.avif +0 -0
  842. package/dist/cdn/assets/portal-navigation/apps/maps-for-power-bi.avif +0 -0
  843. package/dist/cdn/assets/portal-navigation/apps/maps-for-sharepoint.avif +0 -0
  844. package/dist/cdn/assets/portal-navigation/apps/marketplace.avif +0 -0
  845. package/dist/cdn/assets/portal-navigation/apps/mission.avif +0 -0
  846. package/dist/cdn/assets/portal-navigation/apps/monitor.avif +0 -0
  847. package/dist/cdn/assets/portal-navigation/apps/navigator.avif +0 -0
  848. package/dist/cdn/assets/portal-navigation/apps/notebook.avif +0 -0
  849. package/dist/cdn/assets/portal-navigation/apps/office-apps.avif +0 -0
  850. package/dist/cdn/assets/portal-navigation/apps/open-data.avif +0 -0
  851. package/dist/cdn/assets/portal-navigation/apps/operations-dashboard.avif +0 -0
  852. package/dist/cdn/assets/portal-navigation/apps/ortho-maker.avif +0 -0
  853. package/dist/cdn/assets/portal-navigation/apps/pro-extension.avif +0 -0
  854. package/dist/cdn/assets/portal-navigation/apps/quick-capture.avif +0 -0
  855. package/dist/cdn/assets/portal-navigation/apps/redistricting.avif +0 -0
  856. package/dist/cdn/assets/portal-navigation/apps/runtime.avif +0 -0
  857. package/dist/cdn/assets/portal-navigation/apps/scene-viewer.avif +0 -0
  858. package/dist/cdn/assets/portal-navigation/apps/sites.avif +0 -0
  859. package/dist/cdn/assets/portal-navigation/apps/solutions.avif +0 -0
  860. package/dist/cdn/assets/portal-navigation/apps/story-maps.avif +0 -0
  861. package/dist/cdn/assets/portal-navigation/apps/streetmap-premium.avif +0 -0
  862. package/dist/cdn/assets/portal-navigation/apps/survey123.avif +0 -0
  863. package/dist/cdn/assets/portal-navigation/apps/svg-app-circle.svg +1 -0
  864. package/dist/cdn/assets/portal-navigation/apps/svg-app-icon.svg +1 -0
  865. package/dist/cdn/assets/portal-navigation/apps/track-viewer.avif +0 -0
  866. package/dist/cdn/assets/portal-navigation/apps/user-type-extension-online.avif +0 -0
  867. package/dist/cdn/assets/portal-navigation/apps/user-type-extension.avif +0 -0
  868. package/dist/cdn/assets/portal-navigation/apps/vector-tile-style-editor.avif +0 -0
  869. package/dist/cdn/assets/portal-navigation/apps/velocity.avif +0 -0
  870. package/dist/cdn/assets/portal-navigation/apps/web-app-builder.avif +0 -0
  871. package/dist/cdn/assets/portal-navigation/apps/web-editor.avif +0 -0
  872. package/dist/cdn/assets/portal-navigation/apps/web-mapping.avif +0 -0
  873. package/dist/cdn/assets/portal-navigation/apps/workflow-manager-beta.avif +0 -0
  874. package/dist/cdn/assets/portal-navigation/apps/workflow-manager.avif +0 -0
  875. package/dist/cdn/assets/portal-navigation/apps/workforce.avif +0 -0
  876. package/dist/cdn/assets/portal-navigation/product-logos/advanced-editing-user-type-extension-glyph-32.svg +1 -0
  877. package/dist/cdn/assets/portal-navigation/product-logos/arc-hydro-glyph-32.svg +1 -0
  878. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-360-vr-glyph-32.svg +1 -0
  879. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-api-for-python-glyph-32.svg +1 -0
  880. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-appstudio-glyph-32.svg +1 -0
  881. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-arcade-expression-language-glyph-32.svg +1 -0
  882. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-business-analyst-glyph-32.svg +1 -0
  883. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-cityengine-glyph-32.svg +1 -0
  884. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-collector-glyph-32.svg +1 -0
  885. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-community-analyst-glyph-32.svg +1 -0
  886. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-connectors-for-power-automate-glyph-32.svg +1 -0
  887. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-dashboards-glyph-32.svg +1 -0
  888. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-interoperability-glyph-32.svg +1 -0
  889. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-pipelines-glyph-32.svg +1 -0
  890. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-reviewer-glyph-32.svg +1 -0
  891. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-deep-learning-studio-glyph-32.svg +1 -0
  892. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-drone2map-glyph-32.svg +1 -0
  893. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-earth-glyph-32.svg +1 -0
  894. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-enterprise-glyph-32.svg +1 -0
  895. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-glyph-32.svg +1 -0
  896. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-gray-glyph-32.svg +1 -0
  897. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-experience-builder-glyph-32.svg +1 -0
  898. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-explorer-glyph-32.svg +1 -0
  899. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-field-maps-designer-ea-glyph-32.svg +1 -0
  900. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-field-maps-glyph-32.svg +1 -0
  901. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-flight-glyph-32.svg +1 -0
  902. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-autocad-glyph-32.svg +1 -0
  903. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-autodesk-forma-glyph-32.svg +1 -0
  904. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-developers-glyph-32.svg +1 -0
  905. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-excel-glyph-32.svg +1 -0
  906. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-microsoft-365-glyph-32.svg +1 -0
  907. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-power-apps-glyph-32.svg +1 -0
  908. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-teams-glyph-32.svg +1 -0
  909. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geoanalytics-engine-glyph-32.svg +1 -0
  910. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geobim-glyph-32.svg +1 -0
  911. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geoplanner-glyph-32.svg +1 -0
  912. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-hub-glyph-32.svg +1 -0
  913. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-image-glyph-32.svg +1 -0
  914. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-indoors-glyph-32.svg +1 -0
  915. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-insights-glyph-32.svg +1 -0
  916. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-instant-apps-glyph-32.svg +1 -0
  917. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-knowledge-glyph-32.svg +1 -0
  918. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-living-atlas-of-the-world-glyph-32.svg +1 -0
  919. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-location-platform-glyph-32.svg +1 -0
  920. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-logo-glyph-32.svg +76 -0
  921. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-adobe-creative-cloud-glyph-32.svg +1 -0
  922. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-power-bi-glyph-32.svg +1 -0
  923. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-sharepoint-glyph-32.svg +1 -0
  924. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdk-for-javascript-glyph-32.svg +1 -0
  925. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdks-for-game-engines-glyph-32.svg +1 -0
  926. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdks-for-native-apps-glyph-32.svg +1 -0
  927. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maritime-glyph-32.svg +1 -0
  928. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-marketplace-glyph-32.svg +1 -0
  929. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-mission-glyph-32.svg +1 -0
  930. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-glyph-32.svg +1 -0
  931. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-white-glyph-32.svg +1 -0
  932. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-navigator-glyph-32.svg +1 -0
  933. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-notebooks-glyph-32.svg +1 -0
  934. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-online-glyph-32.svg +1 -0
  935. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-open-data-glyph-32.svg +1 -0
  936. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-open-source-apps-glyph-32.svg +1 -0
  937. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-ortho-maker-glyph-32.svg +1 -0
  938. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-parcel-fabric-glyph-32.svg +1 -0
  939. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pipeline-referencing-glyph-32.svg +1 -0
  940. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pro-for-intelligence-glyph-32.svg +1 -0
  941. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pro-glyph-32.svg +1 -0
  942. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-quickcapture-glyph-32.svg +1 -0
  943. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-reality-studio-glyph-32.svg +1 -0
  944. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-roads-and-highways-glyph-32.svg +1 -0
  945. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-sites-glyph-32.svg +1 -0
  946. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-solutions-glyph-32.svg +1 -0
  947. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-storymaps-glyph-32.svg +1 -0
  948. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-streetmap-premium-glyph-32.svg +1 -0
  949. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-connect-glyph-32.svg +1 -0
  950. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-glyph-32.svg +1 -0
  951. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-tracker-glyph-32.svg +1 -0
  952. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-urban-glyph-32.svg +1 -0
  953. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-utility-network-management-glyph-32.svg +1 -0
  954. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-velocity-glyph-32.svg +6 -0
  955. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-appbuilder-glyph-32.svg +1 -0
  956. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-editor-glyph-32.svg +1 -0
  957. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-workflow-manager-glyph-32.svg +1 -0
  958. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-workforce-glyph-32.svg +1 -0
  959. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-world-geocoder-glyph-32.svg +1 -0
  960. package/dist/cdn/assets/portal-navigation/product-logos/calcite-design-system-glyph-32.svg +1 -0
  961. package/dist/cdn/assets/portal-navigation/product-logos/esri-community-glyph-32.svg +1 -0
  962. package/dist/cdn/assets/portal-navigation/product-logos/esri-demographics-glyph-32.svg +1 -0
  963. package/dist/cdn/assets/portal-navigation/product-logos/esri-events-glyph-32.svg +1 -0
  964. package/dist/cdn/assets/portal-navigation/product-logos/esri-offline-documentation-center--glyph-32.svg +1 -0
  965. package/dist/cdn/assets/portal-navigation/product-logos/esri-redistricting-glyph-32.svg +1 -0
  966. package/dist/cdn/assets/portal-navigation/product-logos/esri-reports-glyph-32.svg +1 -0
  967. package/dist/cdn/assets/portal-navigation/product-logos/esri-support-glyph-32.svg +1 -0
  968. package/dist/cdn/assets/portal-navigation/product-logos/map-viewer-glyph-32.svg +1 -0
  969. package/dist/cdn/assets/portal-navigation/product-logos/sceneviewer-glyph-32.svg +1 -0
  970. package/dist/cdn/assets/portal-navigation/product-logos/site-scan-for-arcgis-glyph-32.svg +1 -0
  971. package/dist/cdn/assets/portal-navigation/product-logos/site-scan-for-arcgis-le-glyph-32.svg +1 -0
  972. package/dist/cdn/assets/portal-navigation/product-logos/vector-tile-style-editor-glyph-32.svg +1 -0
  973. package/dist/cdn/assets/portal-navigation/product-logos/xr-viewer-glyph-32.svg +1 -0
  974. package/dist/cdn/assets/portal-navigation/t9n/messages.ar.json +1 -0
  975. package/dist/cdn/assets/portal-navigation/t9n/messages.bg.json +1 -0
  976. package/dist/cdn/assets/portal-navigation/t9n/messages.bs.json +1 -0
  977. package/dist/cdn/assets/portal-navigation/t9n/messages.ca.json +1 -0
  978. package/dist/cdn/assets/portal-navigation/t9n/messages.cs.json +1 -0
  979. package/dist/cdn/assets/portal-navigation/t9n/messages.da.json +1 -0
  980. package/dist/cdn/assets/portal-navigation/t9n/messages.de.json +1 -0
  981. package/dist/cdn/assets/portal-navigation/t9n/messages.el.json +1 -0
  982. package/dist/cdn/assets/portal-navigation/t9n/messages.en.json +1 -0
  983. package/dist/cdn/assets/portal-navigation/t9n/messages.es.json +1 -0
  984. package/dist/cdn/assets/portal-navigation/t9n/messages.et.json +1 -0
  985. package/dist/cdn/assets/portal-navigation/t9n/messages.fi.json +1 -0
  986. package/dist/cdn/assets/portal-navigation/t9n/messages.fr.json +1 -0
  987. package/dist/cdn/assets/portal-navigation/t9n/messages.he.json +1 -0
  988. package/dist/cdn/assets/portal-navigation/t9n/messages.hr.json +1 -0
  989. package/dist/cdn/assets/portal-navigation/t9n/messages.hu.json +1 -0
  990. package/dist/cdn/assets/portal-navigation/t9n/messages.id.json +1 -0
  991. package/dist/cdn/assets/portal-navigation/t9n/messages.it.json +1 -0
  992. package/dist/cdn/assets/portal-navigation/t9n/messages.ja.json +1 -0
  993. package/dist/cdn/assets/portal-navigation/t9n/messages.ko.json +1 -0
  994. package/dist/cdn/assets/portal-navigation/t9n/messages.lt.json +1 -0
  995. package/dist/cdn/assets/portal-navigation/t9n/messages.lv.json +1 -0
  996. package/dist/cdn/assets/portal-navigation/t9n/messages.nl.json +1 -0
  997. package/dist/cdn/assets/portal-navigation/t9n/messages.no.json +1 -0
  998. package/dist/cdn/assets/portal-navigation/t9n/messages.pl.json +1 -0
  999. package/dist/cdn/assets/portal-navigation/t9n/messages.pt-BR.json +1 -0
  1000. package/dist/cdn/assets/portal-navigation/t9n/messages.pt-PT.json +1 -0
  1001. package/dist/cdn/assets/portal-navigation/t9n/messages.ro.json +1 -0
  1002. package/dist/cdn/assets/portal-navigation/t9n/messages.ru.json +1 -0
  1003. package/dist/cdn/assets/portal-navigation/t9n/messages.sk.json +1 -0
  1004. package/dist/cdn/assets/portal-navigation/t9n/messages.sl.json +1 -0
  1005. package/dist/cdn/assets/portal-navigation/t9n/messages.sr.json +1 -0
  1006. package/dist/cdn/assets/portal-navigation/t9n/messages.sv.json +1 -0
  1007. package/dist/cdn/assets/portal-navigation/t9n/messages.th.json +1 -0
  1008. package/dist/cdn/assets/portal-navigation/t9n/messages.tr.json +1 -0
  1009. package/dist/cdn/assets/portal-navigation/t9n/messages.uk.json +1 -0
  1010. package/dist/cdn/assets/portal-navigation/t9n/messages.vi.json +1 -0
  1011. package/dist/cdn/assets/portal-navigation/t9n/messages.zh-CN.json +1 -0
  1012. package/dist/cdn/assets/portal-navigation/t9n/messages.zh-HK.json +1 -0
  1013. package/dist/cdn/assets/portal-navigation/t9n/messages.zh-TW.json +1 -0
  1014. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.bg.json +1 -1
  1015. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.cs.json +1 -1
  1016. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.de.json +1 -1
  1017. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.el.json +1 -1
  1018. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.et.json +1 -1
  1019. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.fi.json +1 -1
  1020. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.he.json +1 -1
  1021. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.hu.json +1 -1
  1022. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.it.json +1 -1
  1023. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.ja.json +1 -1
  1024. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.lt.json +1 -1
  1025. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.nl.json +1 -1
  1026. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.no.json +1 -1
  1027. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.pt-BR.json +1 -1
  1028. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.sk.json +1 -1
  1029. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.sv.json +1 -1
  1030. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.vi.json +1 -1
  1031. package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.zh-CN.json +1 -1
  1032. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ar.json +1 -0
  1033. package/dist/cdn/assets/portal-review-related-items/t9n/messages.bg.json +1 -0
  1034. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ca.json +1 -0
  1035. package/dist/cdn/assets/portal-review-related-items/t9n/messages.cs.json +1 -0
  1036. package/dist/cdn/assets/portal-review-related-items/t9n/messages.da.json +1 -0
  1037. package/dist/cdn/assets/portal-review-related-items/t9n/messages.de.json +1 -0
  1038. package/dist/cdn/assets/portal-review-related-items/t9n/messages.el.json +1 -0
  1039. package/dist/cdn/assets/portal-review-related-items/t9n/messages.en.json +1 -0
  1040. package/dist/cdn/assets/portal-review-related-items/t9n/messages.es.json +1 -0
  1041. package/dist/cdn/assets/portal-review-related-items/t9n/messages.et.json +1 -0
  1042. package/dist/cdn/assets/portal-review-related-items/t9n/messages.fi.json +1 -0
  1043. package/dist/cdn/assets/portal-review-related-items/t9n/messages.fr.json +1 -0
  1044. package/dist/cdn/assets/portal-review-related-items/t9n/messages.he.json +1 -0
  1045. package/dist/cdn/assets/portal-review-related-items/t9n/messages.hr.json +1 -0
  1046. package/dist/cdn/assets/portal-review-related-items/t9n/messages.hu.json +1 -0
  1047. package/dist/cdn/assets/portal-review-related-items/t9n/messages.id.json +1 -0
  1048. package/dist/cdn/assets/portal-review-related-items/t9n/messages.it.json +1 -0
  1049. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ja.json +1 -0
  1050. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ko.json +1 -0
  1051. package/dist/cdn/assets/portal-review-related-items/t9n/messages.lt.json +1 -0
  1052. package/dist/cdn/assets/portal-review-related-items/t9n/messages.lv.json +1 -0
  1053. package/dist/cdn/assets/portal-review-related-items/t9n/messages.nl.json +1 -0
  1054. package/dist/cdn/assets/portal-review-related-items/t9n/messages.no.json +1 -0
  1055. package/dist/cdn/assets/portal-review-related-items/t9n/messages.pl.json +1 -0
  1056. package/dist/cdn/assets/portal-review-related-items/t9n/messages.pt-BR.json +1 -0
  1057. package/dist/cdn/assets/portal-review-related-items/t9n/messages.pt-PT.json +1 -0
  1058. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ro.json +1 -0
  1059. package/dist/cdn/assets/portal-review-related-items/t9n/messages.ru.json +1 -0
  1060. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sk.json +1 -0
  1061. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sl.json +1 -0
  1062. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sr.json +1 -0
  1063. package/dist/cdn/assets/portal-review-related-items/t9n/messages.sv.json +1 -0
  1064. package/dist/cdn/assets/portal-review-related-items/t9n/messages.th.json +1 -0
  1065. package/dist/cdn/assets/portal-review-related-items/t9n/messages.tr.json +1 -0
  1066. package/dist/cdn/assets/portal-review-related-items/t9n/messages.uk.json +1 -0
  1067. package/dist/cdn/assets/portal-review-related-items/t9n/messages.vi.json +1 -0
  1068. package/dist/cdn/assets/portal-review-related-items/t9n/messages.zh-CN.json +1 -0
  1069. package/dist/cdn/assets/portal-review-related-items/t9n/messages.zh-TW.json +1 -0
  1070. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ar.json +1 -0
  1071. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.bg.json +1 -0
  1072. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.bs.json +1 -0
  1073. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ca.json +1 -0
  1074. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.cs.json +1 -0
  1075. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.da.json +1 -0
  1076. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.de.json +1 -0
  1077. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.el.json +1 -0
  1078. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.en.json +1 -0
  1079. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.es.json +1 -0
  1080. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.et.json +1 -0
  1081. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.fi.json +1 -0
  1082. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.fr.json +1 -0
  1083. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.he.json +1 -0
  1084. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.hr.json +1 -0
  1085. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.hu.json +1 -0
  1086. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.id.json +1 -0
  1087. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.it.json +1 -0
  1088. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ja.json +1 -0
  1089. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ko.json +1 -0
  1090. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.lt.json +1 -0
  1091. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.lv.json +1 -0
  1092. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.nl.json +1 -0
  1093. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.no.json +1 -0
  1094. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pl.json +1 -0
  1095. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pt-BR.json +1 -0
  1096. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pt-PT.json +1 -0
  1097. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ro.json +1 -0
  1098. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ru.json +1 -0
  1099. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sk.json +1 -0
  1100. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sl.json +1 -0
  1101. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sr.json +1 -0
  1102. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sv.json +1 -0
  1103. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.th.json +1 -0
  1104. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.tr.json +1 -0
  1105. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.uk.json +1 -0
  1106. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.vi.json +1 -0
  1107. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-CN.json +1 -0
  1108. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-HK.json +1 -0
  1109. package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-TW.json +1 -0
  1110. package/dist/cdn/assets/portal-user-popup/t9n/messages.ar.json +1 -0
  1111. package/dist/cdn/assets/portal-user-popup/t9n/messages.bg.json +1 -0
  1112. package/dist/cdn/assets/portal-user-popup/t9n/messages.bs.json +1 -0
  1113. package/dist/cdn/assets/portal-user-popup/t9n/messages.ca.json +1 -0
  1114. package/dist/cdn/assets/portal-user-popup/t9n/messages.cs.json +1 -0
  1115. package/dist/cdn/assets/portal-user-popup/t9n/messages.da.json +1 -0
  1116. package/dist/cdn/assets/portal-user-popup/t9n/messages.de.json +1 -0
  1117. package/dist/cdn/assets/portal-user-popup/t9n/messages.el.json +1 -0
  1118. package/dist/cdn/assets/portal-user-popup/t9n/messages.es.json +1 -0
  1119. package/dist/cdn/assets/portal-user-popup/t9n/messages.et.json +1 -0
  1120. package/dist/cdn/assets/portal-user-popup/t9n/messages.fi.json +1 -0
  1121. package/dist/cdn/assets/portal-user-popup/t9n/messages.fr.json +1 -0
  1122. package/dist/cdn/assets/portal-user-popup/t9n/messages.he.json +1 -0
  1123. package/dist/cdn/assets/portal-user-popup/t9n/messages.hr.json +1 -0
  1124. package/dist/cdn/assets/portal-user-popup/t9n/messages.hu.json +1 -0
  1125. package/dist/cdn/assets/portal-user-popup/t9n/messages.id.json +1 -0
  1126. package/dist/cdn/assets/portal-user-popup/t9n/messages.it.json +1 -0
  1127. package/dist/cdn/assets/portal-user-popup/t9n/messages.ja.json +1 -0
  1128. package/dist/cdn/assets/portal-user-popup/t9n/messages.ko.json +1 -0
  1129. package/dist/cdn/assets/portal-user-popup/t9n/messages.lt.json +1 -0
  1130. package/dist/cdn/assets/portal-user-popup/t9n/messages.lv.json +1 -0
  1131. package/dist/cdn/assets/portal-user-popup/t9n/messages.nl.json +1 -0
  1132. package/dist/cdn/assets/portal-user-popup/t9n/messages.no.json +1 -0
  1133. package/dist/cdn/assets/portal-user-popup/t9n/messages.pl.json +1 -0
  1134. package/dist/cdn/assets/portal-user-popup/t9n/messages.pt-BR.json +1 -0
  1135. package/dist/cdn/assets/portal-user-popup/t9n/messages.pt-PT.json +1 -0
  1136. package/dist/cdn/assets/portal-user-popup/t9n/messages.ro.json +1 -0
  1137. package/dist/cdn/assets/portal-user-popup/t9n/messages.ru.json +1 -0
  1138. package/dist/cdn/assets/portal-user-popup/t9n/messages.sk.json +1 -0
  1139. package/dist/cdn/assets/portal-user-popup/t9n/messages.sl.json +1 -0
  1140. package/dist/cdn/assets/portal-user-popup/t9n/messages.sr.json +1 -0
  1141. package/dist/cdn/assets/portal-user-popup/t9n/messages.sv.json +1 -0
  1142. package/dist/cdn/assets/portal-user-popup/t9n/messages.th.json +1 -0
  1143. package/dist/cdn/assets/portal-user-popup/t9n/messages.tr.json +1 -0
  1144. package/dist/cdn/assets/portal-user-popup/t9n/messages.uk.json +1 -0
  1145. package/dist/cdn/assets/portal-user-popup/t9n/messages.vi.json +1 -0
  1146. package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-CN.json +1 -0
  1147. package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-HK.json +1 -0
  1148. package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-TW.json +1 -0
  1149. package/dist/cdn/index.js +1 -1
  1150. package/dist/cdn/main.css +1 -1
  1151. package/dist/chunks/dom.js +41 -0
  1152. package/dist/chunks/fieldAddDelete.js +2 -2
  1153. package/dist/chunks/functional.js +9 -0
  1154. package/dist/chunks/functionalities.js +6 -4
  1155. package/dist/chunks/groups.js +61 -7
  1156. package/dist/chunks/groups2.js +11 -0
  1157. package/dist/chunks/icons.js +11 -0
  1158. package/dist/chunks/info.js +179 -0
  1159. package/dist/chunks/item.js +29 -123
  1160. package/dist/chunks/item2.js +124 -78
  1161. package/dist/chunks/itemThumbnail.js +193 -0
  1162. package/dist/chunks/items.js +16 -0
  1163. package/dist/chunks/loadClassificationData.js +20 -20
  1164. package/dist/chunks/portal-account-switcher.js +6 -0
  1165. package/dist/chunks/portal-browser-filter-date.js +63 -0
  1166. package/dist/chunks/portal-browser.js +220 -0
  1167. package/dist/chunks/portal-item-badge.js +352 -0
  1168. package/dist/chunks/portal.js +66 -23
  1169. package/dist/chunks/portal2.js +59 -0
  1170. package/dist/chunks/query.js +159 -0
  1171. package/dist/chunks/request.js +87 -0
  1172. package/dist/chunks/requests.js +92 -44
  1173. package/dist/chunks/services.js +17 -0
  1174. package/dist/chunks/store.js +18 -0
  1175. package/dist/chunks/string.js +36 -0
  1176. package/dist/chunks/ui.js +9 -0
  1177. package/dist/chunks/url.js +17 -0
  1178. package/dist/chunks/user.js +99 -4
  1179. package/dist/chunks/user2.js +13 -107
  1180. package/dist/chunks/users.js +7 -0
  1181. package/dist/chunks/utils.js +88 -0
  1182. package/dist/chunks/utils2.js +664 -0
  1183. package/dist/chunks/verified.js +40 -0
  1184. package/dist/components/arcgis-portal-account-switcher/customElement.d.ts +156 -0
  1185. package/dist/components/arcgis-portal-account-switcher/customElement.js +414 -0
  1186. package/dist/components/arcgis-portal-account-switcher/index.d.ts +1 -0
  1187. package/dist/components/arcgis-portal-account-switcher/index.js +11 -0
  1188. package/dist/components/arcgis-portal-account-switcher/types.d.ts +26 -0
  1189. package/dist/components/arcgis-portal-account-switcher-accounts/customElement.d.ts +144 -0
  1190. package/dist/components/arcgis-portal-account-switcher-accounts/customElement.js +31 -0
  1191. package/dist/components/arcgis-portal-account-switcher-accounts/index.d.ts +1 -0
  1192. package/dist/components/arcgis-portal-account-switcher-accounts/index.js +5 -0
  1193. package/dist/components/arcgis-portal-account-switcher-list/customElement.d.ts +149 -0
  1194. package/dist/components/arcgis-portal-account-switcher-list/customElement.js +100 -0
  1195. package/dist/components/arcgis-portal-account-switcher-list/index.d.ts +1 -0
  1196. package/dist/components/arcgis-portal-account-switcher-list/index.js +6 -0
  1197. package/dist/components/arcgis-portal-account-switcher-signout/customElement.d.ts +146 -0
  1198. package/dist/components/arcgis-portal-account-switcher-signout/customElement.js +29 -0
  1199. package/dist/components/arcgis-portal-account-switcher-signout/index.d.ts +1 -0
  1200. package/dist/components/arcgis-portal-account-switcher-signout/index.js +6 -0
  1201. package/dist/components/arcgis-portal-add-gps-metadata/customElement.d.ts +55 -0
  1202. package/dist/components/arcgis-portal-add-gps-metadata/customElement.js +1242 -0
  1203. package/dist/components/arcgis-portal-add-gps-metadata/index.d.ts +1 -0
  1204. package/dist/components/arcgis-portal-add-gps-metadata/index.js +8 -0
  1205. package/dist/components/arcgis-portal-ai-assistant/agents/portalRouteKeys.d.ts +41 -0
  1206. package/dist/components/arcgis-portal-ai-assistant/agents/types.d.ts +85 -9
  1207. package/dist/components/arcgis-portal-ai-assistant/customElement.d.ts +61 -1
  1208. package/dist/components/arcgis-portal-ai-assistant/customElement.js +2088 -716
  1209. package/dist/components/arcgis-portal-ai-assistant/data/capability-registries/types.d.ts +45 -0
  1210. package/dist/components/arcgis-portal-ai-assistant/index.js +0 -1
  1211. package/dist/components/arcgis-portal-browser/customElement.d.ts +238 -0
  1212. package/dist/components/arcgis-portal-browser/customElement.js +16 -0
  1213. package/dist/components/arcgis-portal-browser/index.d.ts +1 -0
  1214. package/dist/components/arcgis-portal-browser/index.js +6 -0
  1215. package/dist/components/arcgis-portal-browser/utils/store.d.ts +35 -0
  1216. package/dist/components/arcgis-portal-browser/utils/types.d.ts +24 -0
  1217. package/dist/components/arcgis-portal-browser-actions/customElement.d.ts +185 -0
  1218. package/dist/components/arcgis-portal-browser-actions/customElement.js +73 -0
  1219. package/dist/components/arcgis-portal-browser-actions/index.d.ts +1 -0
  1220. package/dist/components/arcgis-portal-browser-actions/index.js +6 -0
  1221. package/dist/components/arcgis-portal-browser-actions/types.d.ts +9 -0
  1222. package/dist/components/arcgis-portal-browser-filter-status/customElement.d.ts +193 -0
  1223. package/dist/components/arcgis-portal-browser-filter-status/customElement.js +56 -0
  1224. package/dist/components/arcgis-portal-browser-filter-status/index.d.ts +1 -0
  1225. package/dist/components/arcgis-portal-browser-filter-status/index.js +5 -0
  1226. package/dist/components/arcgis-portal-browser-pagination/customElement.d.ts +194 -0
  1227. package/dist/components/arcgis-portal-browser-pagination/customElement.js +49 -0
  1228. package/dist/components/arcgis-portal-browser-pagination/index.d.ts +1 -0
  1229. package/dist/components/arcgis-portal-browser-pagination/index.js +2 -0
  1230. package/dist/components/arcgis-portal-browser-search/customElement.d.ts +195 -0
  1231. package/dist/components/arcgis-portal-browser-search/customElement.js +62 -0
  1232. package/dist/components/arcgis-portal-browser-search/index.d.ts +1 -0
  1233. package/dist/components/arcgis-portal-browser-search/index.js +3 -0
  1234. package/dist/components/arcgis-portal-browser-sort/customElement.d.ts +196 -0
  1235. package/dist/components/arcgis-portal-browser-sort/customElement.js +93 -0
  1236. package/dist/components/arcgis-portal-browser-sort/index.d.ts +1 -0
  1237. package/dist/components/arcgis-portal-browser-sort/index.js +9 -0
  1238. package/dist/components/arcgis-portal-browser-sort/utils.d.ts +3 -0
  1239. package/dist/components/arcgis-portal-browser-top-bar/customElement.d.ts +190 -0
  1240. package/dist/components/arcgis-portal-browser-top-bar/customElement.js +50 -0
  1241. package/dist/components/arcgis-portal-browser-top-bar/index.d.ts +1 -0
  1242. package/dist/components/arcgis-portal-browser-top-bar/index.js +3 -0
  1243. package/dist/components/arcgis-portal-browser-view/customElement.d.ts +21 -0
  1244. package/dist/components/arcgis-portal-browser-view/customElement.js +30 -0
  1245. package/dist/components/arcgis-portal-browser-view/index.d.ts +1 -0
  1246. package/dist/components/arcgis-portal-browser-view/index.js +5 -0
  1247. package/dist/components/arcgis-portal-classification-config/customElement.js +74 -74
  1248. package/dist/components/arcgis-portal-classification-favorite/customElement.js +1 -1
  1249. package/dist/components/arcgis-portal-delete-items/customElement.d.ts +128 -0
  1250. package/dist/components/arcgis-portal-delete-items/customElement.js +452 -0
  1251. package/dist/components/arcgis-portal-delete-items/index.d.ts +1 -0
  1252. package/dist/components/arcgis-portal-delete-items/index.js +13 -0
  1253. package/dist/components/arcgis-portal-delete-items/services.d.ts +7 -0
  1254. package/dist/components/arcgis-portal-extent-picker/customElement.js +285 -243
  1255. package/dist/components/arcgis-portal-extent-picker/index.js +3 -0
  1256. package/dist/components/arcgis-portal-extent-picker-coord-field/customElement.js +8 -8
  1257. package/dist/components/arcgis-portal-field-delete/customElement.js +217 -126
  1258. package/dist/components/arcgis-portal-group-badges/customElement.d.ts +0 -1
  1259. package/dist/components/arcgis-portal-group-badges/customElement.js +22 -21
  1260. package/dist/components/arcgis-portal-group-browser/customElement.d.ts +492 -0
  1261. package/dist/components/arcgis-portal-group-browser/customElement.js +801 -0
  1262. package/dist/components/arcgis-portal-group-browser/index.d.ts +1 -0
  1263. package/dist/components/arcgis-portal-group-browser/index.js +6 -0
  1264. package/dist/components/arcgis-portal-group-browser/types.d.ts +225 -0
  1265. package/dist/components/arcgis-portal-group-browser-card/customElement.d.ts +30 -0
  1266. package/dist/components/arcgis-portal-group-browser-card/customElement.js +41 -0
  1267. package/dist/components/arcgis-portal-group-browser-card/index.d.ts +1 -0
  1268. package/dist/components/arcgis-portal-group-browser-card/index.js +2 -0
  1269. package/dist/components/arcgis-portal-group-browser-preview/customElement.d.ts +227 -0
  1270. package/dist/components/arcgis-portal-group-browser-preview/customElement.js +150 -0
  1271. package/dist/components/arcgis-portal-group-browser-preview/index.d.ts +1 -0
  1272. package/dist/components/arcgis-portal-group-browser-preview/index.js +12 -0
  1273. package/dist/components/arcgis-portal-group-browser-preview-card/customElement.d.ts +82 -0
  1274. package/dist/components/arcgis-portal-group-browser-preview-card/customElement.js +93 -0
  1275. package/dist/components/arcgis-portal-group-browser-preview-card/index.d.ts +1 -0
  1276. package/dist/components/arcgis-portal-group-browser-preview-card/index.js +6 -0
  1277. package/dist/components/arcgis-portal-group-card/customElement.d.ts +30 -30
  1278. package/dist/components/arcgis-portal-group-card/customElement.js +106 -100
  1279. package/dist/components/arcgis-portal-group-card/index.js +3 -3
  1280. package/dist/components/arcgis-portal-group-card/types.d.ts +8 -0
  1281. package/dist/components/arcgis-portal-group-thumbnail/customElement.js +1 -1
  1282. package/dist/components/arcgis-portal-info-banner/customElement.d.ts +14 -0
  1283. package/dist/components/arcgis-portal-info-banner/customElement.js +31 -0
  1284. package/dist/components/arcgis-portal-info-banner/index.d.ts +1 -0
  1285. package/dist/components/arcgis-portal-info-banner/index.js +1 -0
  1286. package/dist/components/arcgis-portal-item-actions/customElement.d.ts +74 -0
  1287. package/dist/components/arcgis-portal-item-actions/customElement.js +89 -0
  1288. package/dist/components/arcgis-portal-item-actions/index.d.ts +1 -0
  1289. package/dist/components/arcgis-portal-item-actions/index.js +5 -0
  1290. package/dist/components/arcgis-portal-item-badge/customElement.d.ts +260 -0
  1291. package/dist/components/arcgis-portal-item-badge/customElement.js +9 -0
  1292. package/dist/components/arcgis-portal-item-badge/index.d.ts +1 -0
  1293. package/dist/components/arcgis-portal-item-badge/index.js +5 -0
  1294. package/dist/components/arcgis-portal-item-badges/customElement.d.ts +48 -0
  1295. package/dist/components/arcgis-portal-item-badges/customElement.js +35 -0
  1296. package/dist/components/arcgis-portal-item-badges/index.d.ts +1 -0
  1297. package/dist/components/arcgis-portal-item-badges/index.js +2 -0
  1298. package/dist/components/arcgis-portal-item-badges/types.d.ts +1 -0
  1299. package/dist/components/arcgis-portal-item-card/customElement.d.ts +215 -0
  1300. package/dist/components/arcgis-portal-item-card/customElement.js +183 -0
  1301. package/dist/components/arcgis-portal-item-card/index.d.ts +1 -0
  1302. package/dist/components/arcgis-portal-item-card/index.js +11 -0
  1303. package/dist/components/arcgis-portal-item-favorite/customElement.d.ts +36 -0
  1304. package/dist/components/arcgis-portal-item-favorite/customElement.js +66 -0
  1305. package/dist/components/arcgis-portal-item-favorite/index.d.ts +1 -0
  1306. package/dist/components/arcgis-portal-item-favorite/index.js +3 -0
  1307. package/dist/components/arcgis-portal-item-favorite/utils.d.ts +4 -0
  1308. package/dist/components/arcgis-portal-item-thumbnail/customElement.d.ts +43 -0
  1309. package/dist/components/arcgis-portal-item-thumbnail/customElement.js +309 -0
  1310. package/dist/components/arcgis-portal-item-thumbnail/index.d.ts +1 -0
  1311. package/dist/components/arcgis-portal-item-thumbnail/index.js +1 -0
  1312. package/dist/components/arcgis-portal-item-type/customElement.d.ts +1 -1
  1313. package/dist/components/arcgis-portal-item-type/customElement.js +22 -659
  1314. package/dist/components/arcgis-portal-mentionable-text-area/customElement.js +40 -38
  1315. package/dist/components/arcgis-portal-navigation/customElement.d.ts +560 -0
  1316. package/dist/components/arcgis-portal-navigation/customElement.js +1911 -0
  1317. package/dist/components/arcgis-portal-navigation/index.d.ts +1 -0
  1318. package/dist/components/arcgis-portal-navigation/index.js +31 -0
  1319. package/dist/components/arcgis-portal-navigation/types.d.ts +44 -0
  1320. package/dist/components/arcgis-portal-replacement-item-redirect/customElement.js +54 -423
  1321. package/dist/components/arcgis-portal-review-related-items/customElement.d.ts +27 -0
  1322. package/dist/components/arcgis-portal-review-related-items/customElement.js +42 -0
  1323. package/dist/components/arcgis-portal-review-related-items/index.d.ts +1 -0
  1324. package/dist/components/arcgis-portal-review-related-items/index.js +5 -0
  1325. package/dist/components/arcgis-portal-sublayer-type/customElement.d.ts +76 -0
  1326. package/dist/components/arcgis-portal-sublayer-type/customElement.js +121 -0
  1327. package/dist/components/arcgis-portal-sublayer-type/index.d.ts +1 -0
  1328. package/dist/components/arcgis-portal-sublayer-type/index.js +2 -0
  1329. package/dist/components/arcgis-portal-sublayer-type/utils.d.ts +30 -0
  1330. package/dist/components/arcgis-portal-user-avatar/customElement.d.ts +9 -0
  1331. package/dist/components/arcgis-portal-user-avatar/customElement.js +26 -37
  1332. package/dist/components/arcgis-portal-user-popup/customElement.d.ts +5 -2
  1333. package/dist/components/arcgis-portal-user-popup/customElement.js +84 -142
  1334. package/dist/components/portal-browser/components/portal-browser-filter/customElement.js +14 -0
  1335. package/dist/components/portal-browser/components/portal-browser-filter/index.js +3 -0
  1336. package/dist/components/portal-browser/components/portal-browser-filter-date/customElement.js +9 -0
  1337. package/dist/components/portal-browser/components/portal-browser-filter-date/index.js +4 -0
  1338. package/dist/components/portal-browser/components/portal-browser-filters/customElement.js +11 -0
  1339. package/dist/components/portal-browser/components/portal-browser-filters/index.js +2 -0
  1340. package/dist/components/portal-group-browser-filters/customElement.js +132 -0
  1341. package/dist/components/portal-group-browser-filters/index.js +5 -0
  1342. package/dist/components/portal-group-browser-pagination/customElement.js +13 -0
  1343. package/dist/components/portal-group-browser-pagination/index.js +2 -0
  1344. package/dist/components/portal-group-browser-sort/customElement.js +16 -0
  1345. package/dist/components/portal-group-browser-sort/index.js +2 -0
  1346. package/dist/docs/api.json +1 -1
  1347. package/dist/docs/docs.json +1 -1
  1348. package/dist/docs/vscode.css-custom-data.json +1 -1
  1349. package/dist/docs/vscode.html-custom-data.json +1 -1
  1350. package/dist/docs/web-types.json +1 -1
  1351. package/dist/index.d.ts +244 -0
  1352. package/dist/loader.js +33 -5
  1353. package/dist/services/thumbnail/ags.d.ts +5 -0
  1354. package/dist/types/app-switcher.d.ts +71 -0
  1355. package/dist/types/geometry.d.ts +8 -0
  1356. package/dist/types/group.d.ts +14 -16
  1357. package/dist/types/item.d.ts +80 -1
  1358. package/dist/types/lumina.d.ts +199 -2
  1359. package/dist/types/portal.d.ts +6 -0
  1360. package/dist/types/preact.d.ts +227 -2
  1361. package/dist/types/react.d.ts +255 -2
  1362. package/dist/types/search.d.ts +30 -0
  1363. package/dist/types/services.d.ts +9 -0
  1364. package/dist/types/stencil.d.ts +201 -4
  1365. package/dist/types/user.d.ts +16 -3
  1366. package/package.json +13 -12
  1367. package/dist/cdn/2RGMWFHB.js +0 -2
  1368. package/dist/cdn/35SKVD6F.js +0 -2
  1369. package/dist/cdn/3KS5IDT2.js +0 -2
  1370. package/dist/cdn/47NPIL2S.js +0 -2
  1371. package/dist/cdn/6AGZRMJC.js +0 -2
  1372. package/dist/cdn/6W2IHKCA.js +0 -2
  1373. package/dist/cdn/72N3KAXN.js +0 -2
  1374. package/dist/cdn/ANPXRYLV.js +0 -5
  1375. package/dist/cdn/B7633S2A.js +0 -422
  1376. package/dist/cdn/DFTUMKSN.js +0 -3
  1377. package/dist/cdn/EETBNQU2.js +0 -2
  1378. package/dist/cdn/EHRAFAEA.js +0 -65
  1379. package/dist/cdn/EKO6SVAF.js +0 -2
  1380. package/dist/cdn/EVDOPN3G.js +0 -54
  1381. package/dist/cdn/FI45QCN2.js +0 -2
  1382. package/dist/cdn/FQ25WMSY.js +0 -2
  1383. package/dist/cdn/GAHILDQF.js +0 -45
  1384. package/dist/cdn/GEIZTD7F.js +0 -2
  1385. package/dist/cdn/HGSK6OFA.js +0 -2
  1386. package/dist/cdn/HMBSJR37.js +0 -2
  1387. package/dist/cdn/KT7PE6UE.js +0 -2
  1388. package/dist/cdn/KY7Q7DH3.js +0 -2
  1389. package/dist/cdn/KZWW4BWJ.js +0 -2
  1390. package/dist/cdn/MLTQECPL.js +0 -2
  1391. package/dist/cdn/O3KBWLGU.js +0 -2
  1392. package/dist/cdn/OKRYML2G.js +0 -2
  1393. package/dist/cdn/PDL3DPMG.js +0 -2
  1394. package/dist/cdn/R4ZSXOQH.js +0 -616
  1395. package/dist/cdn/SXZRHHXC.js +0 -2
  1396. package/dist/cdn/V2EOXGK2.js +0 -2
  1397. package/dist/cdn/VXCB2YBR.js +0 -3
  1398. package/dist/cdn/WJ2NMHDE.js +0 -4
  1399. package/dist/cdn/WSNLUGEP.js +0 -2
  1400. package/dist/cdn/YECI7XG3.js +0 -2
  1401. package/dist/cdn/YIMNOUTF.js +0 -2
  1402. package/dist/cdn/YL7PGYWC.js +0 -5
  1403. package/dist/cdn/ZDLFZJBT.js +0 -2
@@ -1,268 +1,250 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as ut } from "../../chunks/runtime.js";
3
- import { LitElement as lt, createEvent as ct } from "@arcgis/lumina";
4
- import { css as mt, render as dt, html as G } from "lit";
5
- import { createRef as M, ref as A } from "lit/directives/ref.js";
6
- import { u as pt } from "../../chunks/useT9n.js";
7
- import { a as T, t as gt } from "../../chunks/functionalities.js";
8
- import { NodeInterrupt as K, Annotation as f, StateGraph as C, START as P, END as h } from "@langchain/langgraph/web";
9
- import { sendTraceMessage as g, invokeStructuredPrompt as b, sendUXSuggestion as E, createAgentRuntimeStateWithSharedState as N, createChatModel as D } from "@arcgis/ai-components/utils/index.js";
10
- import o from "zod";
11
- import { a as ft, c as ht, q as yt, s as wt, g as bt } from "../../chunks/item2.js";
12
- import It from "@arcgis/core/identity/IdentityManager.js";
13
- import j from "@arcgis/core/request.js";
14
- import { ChatPromptTemplate as z } from "@langchain/core/prompts";
15
- import { createAgent as U } from "langchain";
16
- import { tool as W } from "@langchain/core/tools";
17
- import { Annotation as xt } from "@langchain/langgraph";
18
- import { c as vt, d as St, i as Gt, b as Mt, g as At } from "../../chunks/groups.js";
19
- const Y = (e) => {
20
- const { portal: t, user: s } = e ?? {};
21
- return !!e && !!t && !!s;
2
+ import { c as Ve } from "../../chunks/runtime.js";
3
+ import { LitElement as Be, createEvent as Qe } from "@arcgis/lumina";
4
+ import { css as We, render as Je, html as I } from "lit";
5
+ import { createRef as E, ref as z } from "lit/directives/ref.js";
6
+ import { u as _e } from "../../chunks/useT9n.js";
7
+ import { NodeInterrupt as _, Annotation as h, StateGraph as P, START as G, END as w } from "@langchain/langgraph/web";
8
+ import { sendTraceMessage as p, invokeStructuredPrompt as b, sendUXSuggestion as Y, createAgentRuntimeStateWithSharedState as q, createChatModel as H, getEmbeddings as Ye } from "@arcgis/ai-components/utils/index.js";
9
+ import i from "zod";
10
+ import { a as He, c as Xe, q as Ze } from "../../chunks/groups.js";
11
+ import te from "@arcgis/core/identity/IdentityManager.js";
12
+ import ae from "@arcgis/core/request.js";
13
+ import { a as F, t as et, b as W } from "../../chunks/functionalities.js";
14
+ import { ChatPromptTemplate as X } from "@langchain/core/prompts";
15
+ import { tool as Te } from "@langchain/core/tools";
16
+ import { s as tt, a as at } from "../../chunks/item.js";
17
+ import { g as nt, e as ot, i as rt, c as it, a as st } from "../../chunks/groups2.js";
18
+ import ct from "@arcgis/core/portal/Portal.js";
19
+ const Ae = (t) => {
20
+ const { portal: e, user: a } = t ?? {};
21
+ return !!t && !!e && !!a;
22
22
  };
23
- function I(e) {
24
- if (!Y(e))
23
+ function x(t) {
24
+ if (!Ae(t))
25
25
  throw new Error("Invalid context: PortalAssistantContext with portal and user is required.");
26
26
  }
27
- const Tt = (e) => e.map((t) => `"${t}"`).join(", "), Ct = o.object({
28
- successMessage: o.string().default("")
29
- }), O = "portal-group-creation", V = "approveAddMembers", Pt = async (e, t) => {
30
- if (e.intentParams.intent !== "addMembers")
27
+ const lt = `
28
+ Write a concise, friendly success message for adding members to a group.
29
+
30
+ Rules:
31
+ - Keep it to 1-2 short sentences.
32
+ - Use plain text only.
33
+ - If there is no notAddedMembers, confirm that all requested members were added successfully.
34
+ - If there are notAddedMembers, acknowledge that some members could not be added and list the added and not added members separately then mention why based on the context
35
+ - Make sure to bold the usernames
36
+
37
+ Added members:
38
+ {addedMembers}
39
+
40
+ Not added members:
41
+ {notAddedMembers}
42
+ `, ut = (t) => t.map((e) => `"${e}"`).join(", "), dt = i.object({
43
+ successMessage: i.string().default("")
44
+ }), ne = "portal-group-creation", oe = "approveAddMembers", pt = async (t, e) => {
45
+ if (t.intentParams.intent !== "addMembers")
31
46
  return {
32
47
  status: "success",
33
48
  outputMessage: "Use @mention usernames for the members you want to add."
34
49
  };
35
- const s = e.agentExecutionContext.sharedState.createdGroupId?.value;
36
- if (!s)
50
+ const a = t.agentExecutionContext.sharedState.createdGroupId?.value;
51
+ if (!a)
37
52
  return {
38
53
  status: "success",
39
54
  outputMessage: "Create a group first, then add members using @mention usernames."
40
55
  };
41
- const a = e.intentParams.memberInfo.memberIdentifiers.map((d) => d.trim()).filter(Boolean);
42
- if (!a.length)
56
+ const n = t.intentParams.memberInfo.memberIdentifiers.map((g) => g.trim()).filter(Boolean);
57
+ if (!n.length)
43
58
  return {
44
59
  status: "success",
45
60
  outputMessage: "Use @mention usernames for the members you want to add."
46
61
  };
47
- const i = `The following member(s) will be added to the newly created group:
62
+ const r = `The following member(s) will be added to the newly created group:
48
63
 
49
- ${a.map((d) => `- **@${d}**`).join(`
64
+ ${n.map((g) => `- **@${g}**`).join(`
50
65
  `)}
51
66
 
52
- Do you want to continue?`, { hitlResponse: l } = t?.configurable ?? {};
53
- if (l?.agentId !== O || l.id !== V) {
54
- const d = {
55
- agentId: O,
56
- id: V,
67
+ Do you want to continue?`, { hitlResponse: s } = e?.configurable ?? {};
68
+ if (s?.agentId !== ne || s.id !== oe) {
69
+ const g = {
70
+ agentId: ne,
71
+ id: oe,
57
72
  kind: "booleanChoice",
58
- message: i,
73
+ message: r,
59
74
  metadata: {
60
75
  action: "addMembers",
61
- groupId: s,
62
- members: [...a]
76
+ groupId: a,
77
+ members: [...n]
63
78
  }
64
79
  };
65
- throw new K(d);
80
+ throw new _(g);
66
81
  }
67
- if (l.payload !== !0)
82
+ if (s.payload !== !0)
68
83
  return {
69
84
  status: "success",
70
85
  outputMessage: "Okay, I cancelled adding members to the group."
71
86
  };
72
- await g(
73
- { text: `Adding members ${Tt(a)}...`, agentName: "group-creation" },
74
- t
87
+ await p(
88
+ { text: `Adding members ${ut(n)}...`, agentName: "group-creation" },
89
+ e
75
90
  );
76
- const u = t?.configurable?.context;
77
- I(u);
78
- const { result: c, error: n } = await ft(u.portal, s, a);
79
- if (n || !c)
91
+ const c = e?.configurable?.context;
92
+ x(c);
93
+ const { result: l, error: d } = await He(c.portal, a, n);
94
+ if (d || !l)
80
95
  return {
81
96
  status: "success",
82
97
  outputMessage: "I could not add members to that group. Please confirm group access and user accounts, then try again."
83
98
  };
84
- const { addedUsernames: m, notAddedUsers: p } = c;
99
+ const { addedUsernames: u, notAddedUsers: m } = l;
85
100
  try {
86
- const y = (await b({
87
- promptText: Nt,
88
- schema: Ct,
101
+ const f = (await b({
102
+ promptText: lt,
103
+ schema: dt,
89
104
  modelTier: "fast",
90
105
  inputVariables: {
91
- addedMembers: m.join(", "),
106
+ addedMembers: u.join(", "),
92
107
  notAddedMembers: JSON.stringify(
93
- p.map((v) => ({ username: v.username, reason: v.error.message }))
108
+ m.map((y) => ({ username: y.username, reason: y.error.message }))
94
109
  )
95
110
  }
96
111
  })).successMessage;
97
- if (y)
98
- return { status: "success", outputMessage: y };
99
- } catch (d) {
100
- console.error("Error generating add-members success message:", d);
112
+ if (f)
113
+ return { status: "success", outputMessage: f };
114
+ } catch (g) {
115
+ console.error("Error generating add-members success message:", g);
101
116
  }
102
117
  return {};
103
- }, Nt = `
104
- Write a concise, friendly success message for adding members to a group.
118
+ }, mt = `
119
+ Write a concise, friendly success message after creating a portal group.
120
+
121
+ Rules:
122
+ - Mention that the group was created successfully.
123
+ - Mention that the user can add members by using @mention usernames.
124
+ - Keep it to 1-2 short sentences.
125
+ - Make sure to bold the group title in the message.
126
+
127
+ Group title:
128
+ {groupTitle}
129
+ `, gt = `
130
+ Write a concise, friendly failure message after an attempt to create a portal group.
105
131
 
106
132
  Rules:
107
133
  - Keep it to 1-2 short sentences.
108
134
  - Use plain text only.
109
- - If there is no notAddedMembers, confirm that all requested members were added successfully.
110
- - If there are notAddedMembers, acknowledge that some members could not be added and list the added and not added members separately then mention why based on the context
111
- - Make sure to bold the usernames
135
+ - Mention that group creation failed.
136
+ - Include the failure reason in user-friendly language.
137
+ - End with a clear next step the user can try.
112
138
 
113
- Added members:
114
- {addedMembers}
139
+ Group title:
140
+ {groupTitle}
115
141
 
116
- Not added members:
117
- {notAddedMembers}
118
- `, B = "portal-group-creation", Q = "approveCreateGroup", qt = o.object({
119
- successMessage: o.string().default("")
120
- }), $t = o.object({
121
- failureMessage: o.string().default("")
122
- }), kt = async (e, t) => {
123
- if (e.intentParams.intent !== "create")
142
+ Failure reason:
143
+ {failureReason}
144
+ `, re = "portal-group-creation", ie = "approveCreateGroup", ht = i.object({
145
+ successMessage: i.string().default("")
146
+ }), ft = i.object({
147
+ failureMessage: i.string().default("")
148
+ }), yt = async (t, e) => {
149
+ if (t.intentParams.intent !== "create")
124
150
  return {
125
151
  status: "success",
126
152
  outputMessage: "Tell me the group title you want to use."
127
153
  };
128
- const s = e.intentParams.title.trim();
129
- if (!s)
154
+ const a = t.intentParams.title.trim();
155
+ if (!a)
130
156
  return {
131
157
  status: "success",
132
158
  outputMessage: "What title would you like for the new group?"
133
159
  };
134
- const a = `A group with the title **${s}** will be created. Do you want to continue?`, { hitlResponse: r } = t?.configurable;
135
- if (r?.agentId !== B || r.id !== Q) {
136
- const n = {
137
- agentId: B,
138
- id: Q,
160
+ const n = `A group with the title **${a}** will be created. Do you want to continue?`, { hitlResponse: o } = e?.configurable;
161
+ if (o?.agentId !== re || o.id !== ie) {
162
+ const d = {
163
+ agentId: re,
164
+ id: ie,
139
165
  kind: "booleanChoice",
140
- message: a,
166
+ message: n,
141
167
  metadata: {
142
168
  action: "createGroup",
143
- title: s,
169
+ title: a,
144
170
  access: "private"
145
171
  }
146
172
  };
147
- throw new K(n);
173
+ throw new _(d);
148
174
  }
149
- if (r.payload !== !0)
175
+ if (o.payload !== !0)
150
176
  return {
151
177
  status: "success",
152
- outputMessage: `Okay, I cancelled creating **${s}**.`
178
+ outputMessage: `Okay, I cancelled creating **${a}**.`
153
179
  };
154
- await g({ text: `Creating group "${s}"...`, agentName: "group-creation" }, t);
155
- const i = t?.configurable?.context;
156
- I(i);
157
- const { result: l, error: u } = await ht(i.portal, {
158
- title: s,
180
+ await p({ text: `Creating group "${a}"...`, agentName: "group-creation" }, e);
181
+ const r = e?.configurable?.context;
182
+ x(r);
183
+ const { result: s, error: c } = await Xe(r.portal, {
184
+ title: a,
159
185
  access: "private"
160
186
  });
161
- if (u || !l) {
162
- const n = u?.message?.trim() || "No additional details were provided.";
187
+ if (c || !s) {
188
+ const d = c?.message?.trim() || "No additional details were provided.";
163
189
  try {
164
- const p = (await b({
165
- promptText: Dt,
166
- schema: $t,
190
+ const m = (await b({
191
+ promptText: gt,
192
+ schema: ft,
167
193
  modelTier: "fast",
168
194
  inputVariables: {
169
- groupTitle: s,
170
- failureReason: n
195
+ groupTitle: a,
196
+ failureReason: d
171
197
  }
172
198
  })).failureMessage.trim();
173
- if (p)
199
+ if (m)
174
200
  return {
175
201
  status: "success",
176
- outputMessage: p
202
+ outputMessage: m
177
203
  };
178
- } catch (m) {
179
- console.error("Error generating create-group failure message:", m);
204
+ } catch (u) {
205
+ console.error("Error generating create-group failure message:", u);
180
206
  }
181
207
  return {
182
208
  status: "success",
183
209
  outputMessage: "I could not create that group. Please confirm your permissions and try again with the group title."
184
210
  };
185
211
  }
186
- const c = l.id;
212
+ const l = s.id;
187
213
  try {
188
- const m = (await b({
189
- promptText: Et,
190
- schema: qt,
214
+ const u = (await b({
215
+ promptText: mt,
216
+ schema: ht,
191
217
  modelTier: "fast",
192
218
  inputVariables: {
193
- groupTitle: s
219
+ groupTitle: a
194
220
  }
195
221
  })).successMessage.trim();
196
- if (m)
222
+ if (u)
197
223
  return {
198
224
  status: "success",
199
- outputMessage: m,
200
- sharedStatePatch: { createdGroupId: { value: c } },
201
- createdGroupId: c
225
+ outputMessage: u,
226
+ sharedStatePatch: { createdGroupId: { value: l } },
227
+ createdGroupId: l
202
228
  };
203
- } catch (n) {
204
- console.error("Error generating create-group success message:", n);
229
+ } catch (d) {
230
+ console.error("Error generating create-group success message:", d);
205
231
  }
206
232
  return {};
207
- }, Et = `
208
- Write a concise, friendly success message after creating a portal group.
209
-
210
- Rules:
211
- - Mention that the group was created successfully.
212
- - Mention that the user can add members by using @mention usernames.
213
- - Keep it to 1-2 short sentences.
214
- - Make sure to bold the group title in the message.
215
-
216
- Group title:
217
- {groupTitle}
218
- `, Dt = `
219
- Write a concise, friendly failure message after an attempt to create a portal group.
220
-
221
- Rules:
222
- - Keep it to 1-2 short sentences.
223
- - Use plain text only.
224
- - Mention that group creation failed.
225
- - Include the failure reason in user-friendly language.
226
- - End with a clear next step the user can try.
227
-
228
- Group title:
229
- {groupTitle}
230
-
231
- Failure reason:
232
- {failureReason}
233
- `, x = (e) => {
234
- for (let t = e.length - 1; t >= 0; t -= 1) {
235
- const s = e[t];
236
- if (s.type !== "human")
233
+ }, v = (t) => {
234
+ for (let e = t.length - 1; e >= 0; e -= 1) {
235
+ const a = t[e];
236
+ if (a.type !== "human")
237
237
  continue;
238
- const a = s.content;
239
- if (typeof a == "string")
240
- return a;
241
- if (Array.isArray(a))
242
- return a.map(
243
- (r) => typeof r == "string" ? r : "text" in r && typeof r.text == "string" ? r.text : ""
238
+ const n = a.content;
239
+ if (typeof n == "string")
240
+ return n;
241
+ if (Array.isArray(n))
242
+ return n.map(
243
+ (o) => typeof o == "string" ? o : "text" in o && typeof o.text == "string" ? o.text : ""
244
244
  ).join(" ").trim();
245
245
  }
246
246
  return "";
247
- }, zt = o.object({
248
- intent: o.enum(["clarify", "create", "addMembers"]).default("clarify"),
249
- title: o.string().default(""),
250
- memberIdentifiers: o.array(o.string()).default([]),
251
- clarifyMessage: o.string().default("")
252
- }), Ut = async (e, t) => {
253
- await g({ text: "Thinking about groups...", agentName: "group-creation" }, t);
254
- const s = x(e.agentExecutionContext.messages).trim(), a = await b({
255
- promptText: Rt,
256
- schema: zt,
257
- modelTier: "default",
258
- inputVariables: { userMessage: s }
259
- }), r = a.title.trim(), i = a.memberIdentifiers.filter(Boolean), l = a.clarifyMessage.trim(), u = a.intent === "create" && !!r, c = a.intent === "addMembers" && i.length > 0;
260
- return {
261
- intentParams: u ? { intent: "create", title: r } : c ? { intent: "addMembers", memberInfo: { memberIdentifiers: i } } : { intent: "clarify" },
262
- status: "success",
263
- outputMessage: !u && !c ? l : ""
264
- };
265
- }, Rt = `
247
+ }, wt = `
266
248
  You classify whether a user is asking to create a new ArcGIS Portal group or add members to an existing group.
267
249
 
268
250
  Rules:
@@ -288,326 +270,1064 @@ Examples:
288
270
 
289
271
  User message:
290
272
  {userMessage}
291
- `, Ft = o.discriminatedUnion("destinationType", [
292
- o.object({
293
- destinationType: o.literal("portal-content")
294
- }),
295
- o.object({
296
- destinationType: o.literal("portal-groups")
297
- }),
298
- o.object({
299
- destinationType: o.literal("portal-item"),
300
- itemId: o.string().trim().min(1)
301
- }),
302
- o.object({
303
- destinationType: o.literal("portal-group"),
304
- groupId: o.string().trim().min(1)
305
- })
306
- ]), _ = "portal-navigation", R = async (e, t) => {
307
- const s = t?.configurable?.context;
308
- !Y(s) || !s.navigationTargetMap?.[e.destinationType] || await E({ type: _, data: { ...e } }, t);
309
- }, jt = async (e, t) => {
310
- const s = e.createdGroupId ?? e.agentExecutionContext.sharedState.createdGroupId?.value;
311
- return s ? (await g({ text: "Preparing navigation...", agentName: "group-creation" }, t), await R({ destinationType: "portal-group", groupId: s }, t), {}) : {};
312
- }, L = (e, t) => t ?? e, H = f.Root({
313
- ...N(),
273
+ `, bt = i.object({
274
+ intent: i.enum(["clarify", "create", "addMembers"]).default("clarify"),
275
+ title: i.string().default(""),
276
+ memberIdentifiers: i.array(i.string()).default([]),
277
+ clarifyMessage: i.string().default("")
278
+ }), vt = async (t, e) => {
279
+ await p({ text: "Thinking about groups...", agentName: "group-creation" }, e);
280
+ const a = v(t.agentExecutionContext.messages).trim(), n = await b({
281
+ promptText: wt,
282
+ schema: bt,
283
+ modelTier: "default",
284
+ inputVariables: { userMessage: a }
285
+ }), o = n.title.trim(), r = n.memberIdentifiers.filter(Boolean), s = n.clarifyMessage.trim(), c = n.intent === "create" && !!o, l = n.intent === "addMembers" && r.length > 0;
286
+ return {
287
+ intentParams: c ? { intent: "create", title: o } : l ? { intent: "addMembers", memberInfo: { memberIdentifiers: r } } : { intent: "clarify" },
288
+ status: "success",
289
+ outputMessage: !c && !l ? s : ""
290
+ };
291
+ }, It = [
292
+ "general",
293
+ "about",
294
+ "homePage",
295
+ "gallery",
296
+ "aiAssistants",
297
+ "map",
298
+ "items",
299
+ "groups",
300
+ "webhooks",
301
+ "utilityServices",
302
+ "agol",
303
+ "esriContent",
304
+ "livingAtlas",
305
+ "servers",
306
+ "memberRoles",
307
+ "newMemberDefaults",
308
+ "marketplace",
309
+ "collaborations",
310
+ "credits",
311
+ "security",
312
+ "openData",
313
+ "hub",
314
+ "orgExtensions"
315
+ ], St = [
316
+ "newItem",
317
+ "createLayer",
318
+ "developerCredentials",
319
+ "url",
320
+ "application",
321
+ "tileLayer",
322
+ "sceneLayer",
323
+ "locator",
324
+ "dataStore"
325
+ ], xt = ["favorites", "group", "living-atlas", "org"], Ct = ["featured", "my", "organization"], Mt = ["overview", "content", "members", "settings"], Tt = ["licenses", "members", "overview", "reports", "settings", "status"], At = i.object({
326
+ destinationType: i.literal("portal-content"),
327
+ hash: i.enum(xt).optional(),
328
+ queryParams: i.object({
329
+ newItem: i.enum(St).optional()
330
+ }).optional()
331
+ }), Nt = i.object({
332
+ destinationType: i.literal("portal-groups"),
333
+ hash: i.enum(Ct).optional()
334
+ }), Pt = i.object({
335
+ destinationType: i.literal("portal-org"),
336
+ hash: i.enum(Tt).optional(),
337
+ queryParams: i.object({
338
+ tab: i.enum(It).optional(),
339
+ section: i.string().optional(),
340
+ subsection: i.string().optional(),
341
+ period: i.string().optional(),
342
+ startTime: i.string().optional(),
343
+ endTime: i.string().optional()
344
+ }).optional()
345
+ }), Gt = i.object({
346
+ destinationType: i.literal("portal-item"),
347
+ itemId: i.string().trim().min(1)
348
+ }), qt = i.object({
349
+ destinationType: i.literal("portal-group"),
350
+ groupId: i.string().trim().min(1),
351
+ hash: i.enum(Mt).optional(),
352
+ queryParams: i.record(i.string(), i.string()).optional()
353
+ }), kt = i.union([
354
+ At,
355
+ i.object({ destinationType: i.literal("portal-gallery") }),
356
+ qt,
357
+ Nt,
358
+ Gt,
359
+ i.object({ destinationType: i.literal("portal-map-viewer") }),
360
+ i.object({ destinationType: i.literal("portal-notebooks") }),
361
+ Pt,
362
+ i.object({ destinationType: i.literal("portal-scene-viewer") })
363
+ ]), Ne = "portal-navigation", O = async (t, e) => {
364
+ const a = e?.configurable?.context;
365
+ !Ae(a) || !a.navigationTargetMap?.[t.destinationType] || await Y({ type: Ne, data: { ...t } }, e);
366
+ }, Et = async (t, e) => {
367
+ const a = t.createdGroupId ?? t.agentExecutionContext.sharedState.createdGroupId?.value;
368
+ return a ? (await p({ text: "Preparing navigation...", agentName: "group-creation" }, e), await O({ destinationType: "portal-group", groupId: a }, e), {}) : {};
369
+ }, se = (t, e) => e ?? t, Pe = h.Root({
370
+ ...q(),
314
371
  // * Shared state between nodes (but not persisted to the agent execution context)
315
372
  /** Parameters related to the user's intent for group creation actions */
316
- intentParams: f({ reducer: L, default: () => ({ intent: "clarify" }) }),
373
+ intentParams: h({ reducer: se, default: () => ({ intent: "clarify" }) }),
317
374
  /** The ID of the group that was created
318
375
  * even though we already have this in the shared state
319
376
  * we still need it here to also share between nodes
320
377
  */
321
- createdGroupId: f({ reducer: L, default: () => "" })
322
- }), Ot = () => new C(H).addNode("detectGroupCreationIntent", Ut).addNode("createPortalGroup", kt).addNode("addMembersToPortalGroup", Pt).addNode("suggestCreatedGroupNavigation", jt).addEdge(P, "detectGroupCreationIntent").addConditionalEdges("detectGroupCreationIntent", (t) => {
323
- switch (t.intentParams.intent) {
378
+ createdGroupId: h({ reducer: se, default: () => "" })
379
+ }), zt = () => new P(Pe).addNode("detectGroupCreationIntent", vt).addNode("createPortalGroup", yt).addNode("addMembersToPortalGroup", pt).addNode("suggestCreatedGroupNavigation", Et).addEdge(G, "detectGroupCreationIntent").addConditionalEdges("detectGroupCreationIntent", (e) => {
380
+ switch (e.intentParams.intent) {
324
381
  case "create":
325
382
  return "createPortalGroup";
326
383
  case "addMembers":
327
384
  return "addMembersToPortalGroup";
328
385
  default:
329
- return h;
386
+ return w;
330
387
  }
331
- }).addEdge("createPortalGroup", "suggestCreatedGroupNavigation").addEdge("addMembersToPortalGroup", "suggestCreatedGroupNavigation").addEdge("suggestCreatedGroupNavigation", h), Vt = String.raw`- **portal-group-creation** - Portal group creation assistant:
388
+ }).addEdge("createPortalGroup", "suggestCreatedGroupNavigation").addEdge("addMembersToPortalGroup", "suggestCreatedGroupNavigation").addEdge("suggestCreatedGroupNavigation", w), Rt = String.raw`- **portal-group-creation** - Portal group creation assistant:
332
389
  - creates a new ArcGIS Portal group for the signed-in user
333
390
  - adds users to the newly created group using @mention usernames
334
- `, Bt = {
391
+ `, Dt = {
335
392
  id: "portal-group-creation",
336
393
  name: "Portal Group Creation",
337
- description: Vt,
338
- createGraph: Ot,
339
- workspace: H
340
- }, X = "portalDocAssistantMemory", Qt = () => ({ conversationId: "" }), Lt = (e) => {
341
- const t = e?.[X]?.value;
342
- if (!t || typeof t != "object")
343
- return Qt();
344
- const s = t;
394
+ description: Rt,
395
+ createGraph: zt,
396
+ workspace: Pe
397
+ }, Ge = "portalDocAssistantMemory", $t = () => ({ conversationId: "" }), Ut = (t) => {
398
+ const e = t?.[Ge]?.value;
399
+ if (!e || typeof e != "object")
400
+ return $t();
401
+ const a = e;
345
402
  return {
346
- conversationId: typeof s.conversationId == "string" ? s.conversationId : ""
403
+ conversationId: typeof a.conversationId == "string" ? a.conversationId : ""
347
404
  };
348
- }, Jt = (e) => ({
349
- [X]: { value: e }
350
- });
405
+ }, Ft = (t) => ({
406
+ [Ge]: { value: t }
407
+ }), Ot = {
408
+ pipeline: {
409
+ follow_up: { allow: !1 }
410
+ }
411
+ };
412
+ function Lt(t) {
413
+ return {
414
+ kind: "DocAIAssistantRequest",
415
+ filters: {
416
+ ...Ot,
417
+ persona: { persona: t }
418
+ }
419
+ };
420
+ }
421
+ const jt = "https://www.arcgis.com/sharing/rest";
351
422
  async function Kt({
352
- portal: e,
353
- question: t,
354
- persona: s,
355
- previousConversationId: a,
423
+ portal: t,
424
+ question: e,
425
+ persona: a,
426
+ previousConversationId: n,
427
+ useProdDocAssistant: o,
356
428
  signal: r,
357
- skillId: i
429
+ skillId: s
358
430
  }) {
359
- i ??= "doc_ai_assistant";
360
- const u = await Wt({
361
- portal: e,
362
- skillId: i,
363
- message: t,
364
- options: { context: {
365
- kind: "DocAIAssistantRequest",
366
- filters: { persona: { persona: s } }
367
- }, previousConversationId: a, signal: r }
431
+ s ??= "doc_ai_assistant";
432
+ const c = Lt(a), l = await Vt({
433
+ portal: t,
434
+ skillId: s,
435
+ message: e,
436
+ options: { context: c, previousConversationId: n, useProdDocAssistant: o, signal: r }
368
437
  });
369
438
  return {
370
- reply: Yt(u, i),
371
- conversationId: u[0]?.conversationId ?? ""
439
+ reply: Bt(l, s),
440
+ conversationId: l[0]?.conversationId ?? ""
372
441
  };
373
442
  }
374
- async function Wt({
375
- portal: e,
376
- skillId: t,
377
- message: s,
378
- options: a
443
+ async function Vt({
444
+ portal: t,
445
+ skillId: e,
446
+ message: a,
447
+ options: n
379
448
  }) {
380
- const i = `${e.helperServices.aiAssistantServices.url}/skills/${t}/chat`, l = {
449
+ const o = t.helperServices.aiAssistantServices.url, s = `${n.useProdDocAssistant ? "https://aiservices-beta.arcgis.com" : o}/skills/${e}/chat`, l = {
381
450
  "Content-Type": "application/json",
382
- token: It.findCredential(e.url)?.token ?? ""
383
- }, u = await j(i, {
451
+ token: n.useProdDocAssistant ? (await te.getCredential(jt, { oAuthPopupConfirmation: !1 })).token : te.findCredential(t.url)?.token ?? ""
452
+ }, d = await ae(s, {
384
453
  method: "post",
385
454
  body: JSON.stringify({
386
- message: s,
387
- context: a.context,
388
- conversationId: a.previousConversationId
455
+ message: a,
456
+ context: n.context,
457
+ conversationId: n.previousConversationId
389
458
  }),
390
459
  headers: l,
391
- signal: a.signal
460
+ signal: n.signal
392
461
  });
393
- if (u.httpStatus !== 200)
394
- throw new Error(`Doc assistant chat failed (${u.httpStatus})`, {
395
- cause: u.data
462
+ if (d.httpStatus !== 200)
463
+ throw new Error(`Doc assistant chat failed (${d.httpStatus})`, {
464
+ cause: d.data
396
465
  });
397
- const c = u.data, n = [c], { conversationId: m, inquiryId: p } = c, d = async (y, v) => {
398
- if (!v)
466
+ const u = d.data, m = [u], { conversationId: g, inquiryId: f } = u, y = async (M, k) => {
467
+ if (!k)
399
468
  return;
400
- await gt(1e3);
401
- const w = await j(i, {
469
+ await et(500);
470
+ const C = await ae(s, {
402
471
  method: "post",
403
- body: JSON.stringify({ conversationId: m, inquiryId: p, ackSequenceNumber: y }),
472
+ body: JSON.stringify({ conversationId: g, inquiryId: f, ackSequenceNumber: M }),
404
473
  headers: l,
405
- signal: a.signal
474
+ signal: n.signal
406
475
  });
407
- if (w.httpStatus !== 200)
408
- throw new Error(`Doc assistant poll failed (${w.httpStatus})`, {
409
- cause: w.data
476
+ if (C.httpStatus !== 200)
477
+ throw new Error(`Doc assistant poll failed (${C.httpStatus})`, {
478
+ cause: C.data
410
479
  });
411
- const S = w.data;
412
- n.push(S), await d(S.sequenceNumber, S.hasMore);
480
+ const T = C.data;
481
+ m.push(T), await y(T.sequenceNumber, T.hasMore);
413
482
  };
414
- return c.hasMore && await d(c.sequenceNumber, c.hasMore), n;
483
+ return u.hasMore && await y(u.sequenceNumber, u.hasMore), m;
415
484
  }
416
- function Yt(e, t) {
417
- switch (t) {
485
+ function Bt(t, e) {
486
+ switch (e) {
418
487
  case "doc_chat":
419
- return e.find((s) => s.message != null)?.message ?? "";
488
+ return t.find((a) => a.message != null)?.message ?? "";
420
489
  case "doc_ai_assistant":
421
- for (let s = e.length - 1; s >= 0; s -= 1) {
422
- const a = e[s];
423
- if (a.context?.kind === "DocAIAssistantContext") {
424
- const r = a.context.results?.[0]?.reply;
425
- if (r)
426
- return r;
490
+ for (let a = t.length - 1; a >= 0; a -= 1) {
491
+ const n = t[a];
492
+ if (n.context?.kind === "DocAIAssistantContext") {
493
+ const o = n.context.results?.[0]?.reply;
494
+ if (o)
495
+ return o;
427
496
  }
428
497
  }
429
498
  return "";
430
499
  default:
431
- return T(t);
500
+ return F(e);
432
501
  }
433
502
  }
434
- const _t = async (e, t) => {
435
- await g({ text: "Asking documentation assistant...", agentName: "doc-assistant" }, t);
436
- const s = x(e.agentExecutionContext.messages).trim();
437
- if (!s)
503
+ const Qt = async (t, e) => {
504
+ const a = performance.now();
505
+ try {
506
+ await p({ text: "Asking documentation assistant...", agentName: "doc-assistant" }, e);
507
+ const n = v(t.agentExecutionContext.messages).trim();
508
+ if (!n)
509
+ return {
510
+ status: "success",
511
+ outputMessage: "Please share your question and I can help with ArcGIS and Portal documentation."
512
+ };
513
+ const o = e?.configurable?.context;
514
+ x(o);
515
+ const r = Ut(t.agentExecutionContext.sharedState), { reply: s, conversationId: c } = await Kt({
516
+ portal: o.portal,
517
+ question: n,
518
+ previousConversationId: r.conversationId || void 0,
519
+ skillId: "doc_ai_assistant",
520
+ persona: "doc-online",
521
+ useProdDocAssistant: o.useProdDocAssistant
522
+ });
438
523
  return {
439
524
  status: "success",
440
- outputMessage: "Please share your question and I can help with ArcGIS and Portal documentation."
525
+ outputMessage: s.trim() || "I could not retrieve a response from the documentation assistant.",
526
+ sharedStatePatch: Ft({
527
+ conversationId: c || r.conversationId
528
+ })
441
529
  };
442
- const a = t?.configurable?.context;
443
- I(a);
444
- const r = Lt(e.agentExecutionContext.sharedState), { reply: i, conversationId: l } = await Kt({
445
- portal: a.portal,
446
- question: s,
447
- previousConversationId: r.conversationId || void 0,
448
- skillId: "doc_ai_assistant",
449
- persona: "developers"
450
- });
451
- return {
452
- status: "success",
453
- outputMessage: i.trim() || "I could not retrieve a response from the documentation assistant.",
454
- sharedStatePatch: Jt({
455
- conversationId: l || r.conversationId
456
- })
457
- };
458
- }, Z = W(
459
- async ({ groupTitle: e }, t) => {
460
- const s = e.trim();
461
- if (!s)
530
+ } finally {
531
+ console.info("[arcgis-portal-ai-assistant] node timing", {
532
+ agent: "portal-doc-assistant",
533
+ node: "answerDocQuestion",
534
+ durationMs: Number((performance.now() - a).toFixed(1))
535
+ });
536
+ }
537
+ }, Wt = {
538
+ schemaVersion: "1.0",
539
+ capabilities: [
540
+ {
541
+ id: "portal-content",
542
+ title: "My content",
543
+ description: "Browse, discover, search, and filter ArcGIS content—including maps, apps, datasets, and other items—that you own or can access.",
544
+ hints: ["view my content", "show my content", "my content"],
545
+ platforms: ["online", "enterprise"],
546
+ resolutions: {
547
+ navigate: {
548
+ routeKey: "content"
549
+ }
550
+ }
551
+ },
552
+ {
553
+ id: "portal-content-new-item-feature-layer",
554
+ title: "Create feature layer",
555
+ description: "Generate an editable feature layer by copying fields from templates or existing layers.",
556
+ hints: ["add a feature layer", "make a feature layer", "generate a feature layer"],
557
+ platforms: ["online", "enterprise"],
558
+ resolutions: {
559
+ navigate: {
560
+ routeKey: "content",
561
+ queryParams: {
562
+ newItem: "createLayer"
563
+ }
564
+ }
565
+ }
566
+ },
567
+ {
568
+ id: "portal-content-new-item",
569
+ title: "New item",
570
+ description: "Open My Content with the New Item flow ready to start.",
571
+ hints: ["new item", "create new item", "upload a new item"],
572
+ platforms: ["online", "enterprise"],
573
+ buttonLabel: "Create new item",
574
+ resolutions: {
575
+ navigate: {
576
+ routeKey: "content",
577
+ queryParams: {
578
+ newItem: "newItem"
579
+ }
580
+ }
581
+ }
582
+ },
583
+ {
584
+ id: "portal-content-new-item-developer-credentials",
585
+ title: "Create developer credentials",
586
+ description: "Open My Content with the New Item flow set to developer credentials.",
587
+ hints: ["developer credentials", "new developer credentials", "create api key"],
588
+ platforms: ["online", "enterprise"],
589
+ buttonLabel: "Create developer credentials",
590
+ resolutions: {
591
+ navigate: {
592
+ routeKey: "content",
593
+ queryParams: {
594
+ newItem: "developerCredentials"
595
+ }
596
+ }
597
+ }
598
+ },
599
+ {
600
+ id: "portal-content-new-item-url",
601
+ title: "Add item from URL",
602
+ description: "Open My Content with the New Item flow set to add a URL-based item, such as a service endpoint.",
603
+ hints: ["add item from url", "url item", "register service url"],
604
+ platforms: ["online", "enterprise"],
605
+ buttonLabel: "Add item from URL",
606
+ resolutions: {
607
+ navigate: {
608
+ routeKey: "content",
609
+ queryParams: {
610
+ newItem: "url"
611
+ }
612
+ }
613
+ }
614
+ },
615
+ {
616
+ id: "portal-content-new-item-application",
617
+ title: "Create application item",
618
+ description: "Open My Content with the New Item flow set to create an application item in content.",
619
+ hints: ["create application item", "register app item", "new application item"],
620
+ platforms: ["online", "enterprise"],
621
+ buttonLabel: "Create application item",
622
+ resolutions: {
623
+ navigate: {
624
+ routeKey: "content",
625
+ queryParams: {
626
+ newItem: "application"
627
+ }
628
+ }
629
+ }
630
+ },
631
+ {
632
+ id: "portal-content-new-item-tile-layer",
633
+ title: "Create tile layer",
634
+ description: "Open My Content with the New Item flow set to publish a hosted tile layer.",
635
+ hints: ["create hosted tile layer", "publish tile layer", "new tile layer"],
636
+ platforms: ["online", "enterprise"],
637
+ buttonLabel: "Create tile layer",
638
+ resolutions: {
639
+ navigate: {
640
+ routeKey: "content",
641
+ queryParams: {
642
+ newItem: "tileLayer"
643
+ }
644
+ }
645
+ }
646
+ },
647
+ {
648
+ id: "portal-content-new-item-scene-layer",
649
+ title: "Create scene layer",
650
+ description: "Open My Content with the New Item flow set to publish a hosted scene layer.",
651
+ hints: ["create hosted scene layer", "publish scene layer", "new scene layer"],
652
+ platforms: ["online", "enterprise"],
653
+ buttonLabel: "Create scene layer",
654
+ resolutions: {
655
+ navigate: {
656
+ routeKey: "content",
657
+ queryParams: {
658
+ newItem: "sceneLayer"
659
+ }
660
+ }
661
+ }
662
+ },
663
+ {
664
+ id: "portal-content-new-item-locator",
665
+ title: "Create locator",
666
+ description: "Open My Content with the New Item flow set to create or publish a locator for geocoding.",
667
+ hints: ["create locator", "publish locator", "geocoding locator"],
668
+ platforms: ["online", "enterprise"],
669
+ buttonLabel: "Create locator",
670
+ resolutions: {
671
+ navigate: {
672
+ routeKey: "content",
673
+ queryParams: {
674
+ newItem: "locator"
675
+ }
676
+ }
677
+ }
678
+ },
679
+ {
680
+ id: "portal-content-new-item-data-store",
681
+ title: "Create data store item",
682
+ description: "Open My Content with the New Item flow set to register a data store connection.",
683
+ hints: ["register data store", "data store connection", "new data store item"],
684
+ platforms: ["online", "enterprise"],
685
+ buttonLabel: "Create data store item",
686
+ resolutions: {
687
+ navigate: {
688
+ routeKey: "content",
689
+ queryParams: {
690
+ newItem: "dataStore"
691
+ }
692
+ }
693
+ }
694
+ },
695
+ {
696
+ id: "create-folder",
697
+ title: "Create folder",
698
+ description: "Create a new folder in your ArcGIS content to organize your items.",
699
+ hints: ["create a folder", "make a folder", "set up a folder", "new folder"],
700
+ platforms: ["online", "enterprise"],
701
+ resolutions: {
702
+ navigate: {
703
+ routeKey: "content"
704
+ }
705
+ }
706
+ }
707
+ ]
708
+ }, Jt = {
709
+ schemaVersion: "1.0",
710
+ capabilities: [
711
+ {
712
+ id: "portal-groups-my",
713
+ title: "My groups",
714
+ description: "Browse, discover, search, and filter ArcGIS content collections—including maps, apps, datasets, and other items—that you own, belong to, or can access.",
715
+ hints: ["view my groups", "show my groups", "my groups"],
716
+ platforms: ["online", "enterprise"],
717
+ resolutions: {
718
+ navigate: {
719
+ routeKey: "groups"
720
+ }
721
+ }
722
+ },
723
+ {
724
+ id: "create-group",
725
+ title: "Create group",
726
+ description: "Create a new ArcGIS Portal group owned by the signed-in user.",
727
+ hints: ["create a group", "make a group", "set up a group", "new group"],
728
+ platforms: ["online", "enterprise"],
729
+ resolutions: {
730
+ navigate: {
731
+ routeKey: "groups"
732
+ }
733
+ }
734
+ },
735
+ {
736
+ id: "portal-groups-featured",
737
+ title: "Featured groups",
738
+ description: "Browse, discover, search, and filter ArcGIS content collections—including maps, apps, datasets, and other items—that organization administrators choose to highlight in ArcGIS.",
739
+ hints: ["view featured groups", "show featured groups", "highlighted groups", "top groups"],
740
+ platforms: ["online", "enterprise"],
741
+ resolutions: {
742
+ navigate: {
743
+ routeKey: "groups",
744
+ hash: "featured"
745
+ }
746
+ }
747
+ },
748
+ {
749
+ id: "portal-groups-organization",
750
+ title: "Organization groups",
751
+ description: "Browse, discover, search, and filter ArcGIS content collections—including maps, apps, datasets, and other items—that are specific to your organization in ArcGIS.",
752
+ hints: ["view organization groups", "show organization groups"],
753
+ platforms: ["online", "enterprise"],
754
+ resolutions: {
755
+ navigate: {
756
+ routeKey: "groups",
757
+ hash: "organization"
758
+ }
759
+ }
760
+ }
761
+ ]
762
+ }, _t = {
763
+ schemaVersion: "1.0",
764
+ capabilities: [
765
+ {
766
+ id: "portal-org-security-multifactor-auth",
767
+ title: "Multifactor Authentication (MFA)",
768
+ description: "Configure organization-level multifactor authentication (MFA) settings. Administrators can enable MFA for ArcGIS logins, allow recovery codes for members, view MFA adoption status, enforce MFA requirements for all members, manage the MFA exemption list, and designate administrators who can troubleshoot MFA issues.",
769
+ hints: ["config MFA", "set up MFA"],
770
+ platforms: ["online", "enterprise"],
771
+ resolutions: {
772
+ navigate: {
773
+ routeKey: "organization",
774
+ queryParams: {
775
+ tab: "security",
776
+ subsection: "multiFactorAuthSection"
777
+ },
778
+ hash: "settings"
779
+ }
780
+ }
781
+ },
782
+ {
783
+ id: "portal-org-security-logins",
784
+ title: "Security - Logins",
785
+ description: "Manage the sign-in methods available for the organization.",
786
+ hints: ["set up SAML single sign-on", "add OpenID Connect login", "sign in with Okta"],
787
+ platforms: ["online", "enterprise"],
788
+ buttonLabel: "Configure logins",
789
+ resolutions: {
790
+ navigate: {
791
+ routeKey: "organization",
792
+ hash: "settings",
793
+ queryParams: {
794
+ tab: "security",
795
+ subsection: "loginsSection"
796
+ }
797
+ }
798
+ }
799
+ },
800
+ {
801
+ id: "portal-org-security-custom-sign-in",
802
+ title: "Security - Custom sign-in",
803
+ description: "Customize how sign-in options are presented for the organization.",
804
+ hints: ["custom sign in", "brand the sign-in page", "hide the ArcGIS login option"],
805
+ platforms: ["online", "enterprise"],
806
+ buttonLabel: "Configure custom sign-in",
807
+ resolutions: {
808
+ navigate: {
809
+ routeKey: "organization",
810
+ hash: "settings",
811
+ queryParams: {
812
+ tab: "security",
813
+ subsection: "customSignInSection"
814
+ }
815
+ }
816
+ }
817
+ },
818
+ {
819
+ id: "portal-org-security-change-login-provider",
820
+ title: "Security - Logins - Member login management",
821
+ description: "Change the login provider used by an existing organization member.",
822
+ hints: ["change login provider", "switch a member to SAML", "migrate a user to SSO"],
823
+ platforms: ["online", "enterprise"],
824
+ buttonLabel: "Configure member login management",
825
+ resolutions: {
826
+ navigate: {
827
+ routeKey: "organization",
828
+ hash: "settings",
829
+ queryParams: {
830
+ tab: "security",
831
+ subsection: "changeLoginProviderSection"
832
+ }
833
+ }
834
+ }
835
+ },
836
+ {
837
+ id: "portal-org-security-multifactor-enforcement",
838
+ title: "Security - Multifactor authentication - MFA enforcement",
839
+ description: "Require multifactor authentication for all members with ArcGIS logins.",
840
+ hints: ["make MFA required", "force all members to use MFA", "MFA exemption list"],
841
+ platforms: ["online", "enterprise"],
842
+ buttonLabel: "Configure MFA enforcement",
843
+ resolutions: {
844
+ navigate: {
845
+ routeKey: "organization",
846
+ hash: "settings",
847
+ queryParams: {
848
+ tab: "security",
849
+ subsection: "multifactorEnforcementSection"
850
+ }
851
+ }
852
+ }
853
+ },
854
+ {
855
+ id: "portal-org-security-multifactor-designated-admins",
856
+ title: "Security - Multifactor authentication - Designated administrators",
857
+ description: "Choose which administrators receive and handle member MFA assistance requests.",
858
+ hints: ["designated MFA admins", "who receives MFA help requests", "MFA support administrators"],
859
+ platforms: ["online", "enterprise"],
860
+ buttonLabel: "Configure designated administrators",
861
+ resolutions: {
862
+ navigate: {
863
+ routeKey: "organization",
864
+ hash: "settings",
865
+ queryParams: {
866
+ tab: "security",
867
+ subsection: "multifactorDesignatedAdminsSection"
868
+ }
869
+ }
870
+ }
871
+ }
872
+ ]
873
+ }, Yt = {
874
+ "contentRouteRegistry.ts": Wt,
875
+ "groupsRouteRegistry.ts": Jt,
876
+ "orgSettingsRouteRegistry.ts": _t
877
+ };
878
+ function ce(t) {
879
+ const e = [], a = /* @__PURE__ */ new Set();
880
+ for (const [n, o] of Object.entries(t))
881
+ for (const r of o.capabilities) {
882
+ if (a.has(r.id))
883
+ throw new Error(`${n}: duplicate capability id "${r.id}" across registries`);
884
+ a.add(r.id), e.push(r);
885
+ }
886
+ return e;
887
+ }
888
+ let R;
889
+ function S(t) {
890
+ return t ? R = ce({ customCapabilities: t }) : R || (R = ce(Yt)), R;
891
+ }
892
+ const Ht = {
893
+ gallery: "portal-gallery",
894
+ "map-viewer": "portal-map-viewer",
895
+ notebooks: "portal-notebooks",
896
+ "scene-viewer": "portal-scene-viewer"
897
+ };
898
+ function A({
899
+ capabilityId: t,
900
+ navigate: e,
901
+ buttonLabel: a
902
+ }) {
903
+ const { routeKey: n } = e;
904
+ switch (n) {
905
+ case "content":
906
+ return {
907
+ destinationType: "portal-content",
908
+ hash: e.hash,
909
+ queryParams: e.queryParams,
910
+ ...a ? { buttonLabel: a } : {}
911
+ };
912
+ case "organization":
913
+ return {
914
+ destinationType: "portal-org",
915
+ hash: e.hash,
916
+ queryParams: e.queryParams,
917
+ ...a ? { buttonLabel: a } : {}
918
+ };
919
+ case "groups":
920
+ const { hash: o } = e;
921
+ return o === "featured" ? { destinationType: "portal-groups", hash: "featured", ...a ? { buttonLabel: a } : {} } : o === "organization" ? { destinationType: "portal-groups", hash: "organization", ...a ? { buttonLabel: a } : {} } : t === "portal-groups-my" ? { destinationType: "portal-groups", hash: "my", ...a ? { buttonLabel: a } : {} } : { destinationType: "portal-groups", ...a ? { buttonLabel: a } : {} };
922
+ case "gallery":
923
+ case "map-viewer":
924
+ case "notebooks":
925
+ case "scene-viewer":
926
+ return { destinationType: Ht[n], ...a ? { buttonLabel: a } : {} };
927
+ default:
928
+ return;
929
+ }
930
+ }
931
+ const qe = Te(
932
+ async ({ groupTitle: t }, e) => {
933
+ const a = t.trim();
934
+ if (!a)
462
935
  return null;
463
- const a = t?.configurable?.context;
464
- I(a);
936
+ const n = e?.configurable?.context;
937
+ x(n);
465
938
  try {
466
- return (await yt(a.portal, { query: `title:${s}`, num: 1 }))?.results[0]?.id || null;
467
- } catch (r) {
468
- return console.error("Error searching for portal group by title:", r), null;
939
+ return (await Ze(n.portal, { query: `title:${a}`, num: 1 }))?.results[0]?.id || null;
940
+ } catch (o) {
941
+ return console.error("Error searching for portal group by title:", o), null;
469
942
  }
470
943
  },
471
944
  {
472
945
  name: "resolvePortalGroupIdByTitle",
473
946
  description: "Resolves an ArcGIS Portal group title to the best-match group id. Use this when a user references a group by title instead of an explicit group id.",
474
- schema: o.object({
475
- groupTitle: o.string().describe("The portal group title to resolve to a group id.")
947
+ schema: i.object({
948
+ groupTitle: i.string().describe("The portal group title to resolve to a group id.")
476
949
  })
477
950
  }
478
- ), tt = W(
479
- async ({ itemTitle: e }, t) => {
480
- const s = e.trim();
481
- if (!s)
951
+ ), ke = Te(
952
+ async ({ itemTitle: t }, e) => {
953
+ const a = t.trim();
954
+ if (!a)
482
955
  return null;
483
- const a = t?.configurable?.context;
484
- I(a);
485
- const { result: r, error: i } = await wt(a.portal, s, { num: 1 });
486
- return i && console.error("Error searching for portal item by title:", i), r?.results[0]?.id || null;
956
+ const n = e?.configurable?.context;
957
+ x(n);
958
+ const { result: o, error: r } = await tt(n.portal, a, { num: 1 });
959
+ return r && console.error("Error searching for portal item by title:", r), o?.results[0]?.id || null;
487
960
  },
488
961
  {
489
962
  name: "resolvePortalItemIdByTitle",
490
963
  description: 'Resolves an ArcGIS Portal item title to the best-match item id. Use this when a user references an item by title (including hash mentions like #title or #"title with spaces") instead of an explicit item id.',
491
- schema: o.object({
492
- itemTitle: o.string().describe("The portal item title to resolve to an item id.")
964
+ schema: i.object({
965
+ itemTitle: i.string().describe("The portal item title to resolve to an item id.")
493
966
  })
494
967
  }
495
- ), J = o.object({
496
- shouldSuggestNavigation: o.boolean().default(!1),
497
- destinationType: o.enum(["none", "portal-content", "portal-item", "portal-groups", "portal-group"]).default("none"),
498
- itemId: o.string().default(""),
499
- groupId: o.string().default("")
500
- }), Ht = async (e, t) => {
501
- await g({ text: "Extracting navigation intent...", agentName: "doc-assistant" }, t);
502
- const s = e.outputMessage.trim();
503
- if (!s)
504
- return {};
505
- const a = x(e.agentExecutionContext.messages).trim(), r = await z.fromTemplate(Zt).format({
506
- question: a,
507
- response: s
508
- }), l = await U({
509
- model: await D({ modelTier: "default" }),
510
- tools: [tt, Z],
511
- systemPrompt: r,
512
- responseFormat: J,
513
- checkpointer: !0
514
- }).invoke({ messages: e.agentExecutionContext.messages }, t), u = J.parse(l.structuredResponse ?? {});
515
- if (!u.shouldSuggestNavigation || u.destinationType === "none")
516
- return {};
517
- const c = Xt(u);
518
- return c ? (await R(c, t), {}) : {};
519
- };
520
- function Xt({
521
- destinationType: e,
522
- itemId: t,
523
- groupId: s
524
- }) {
525
- switch (e) {
526
- case "portal-content":
527
- return { destinationType: "portal-content" };
528
- case "portal-groups":
529
- return { destinationType: "portal-groups" };
530
- case "portal-item":
531
- return t ? { destinationType: "portal-item", itemId: t } : null;
532
- case "portal-group":
533
- return s ? { destinationType: "portal-group", groupId: s } : null;
534
- case "none":
535
- return null;
536
- default:
537
- return T(e);
538
- }
968
+ );
969
+ function N(t, e = "#") {
970
+ const a = t.match(new RegExp(`\\${e}"([^"]+)"`, "u"));
971
+ if (a?.[1])
972
+ return a[1].trim();
973
+ const n = t.match(new RegExp(`\\${e}([^\\s"']+)`, "u"));
974
+ return n?.[1] ? n[1].trim() : null;
975
+ }
976
+ function Xt(t) {
977
+ const e = W(t).flatMap((a) => {
978
+ const n = a, o = t[a], r = [
979
+ n,
980
+ {
981
+ description: o.description,
982
+ hints: o.hints
983
+ }
984
+ ], s = o.sections ? W(o.sections).map((c) => {
985
+ const l = o.sections?.[c];
986
+ return [`${n}-${c}`, l];
987
+ }) : [];
988
+ return [r, ...s];
989
+ });
990
+ return Object.fromEntries(e);
539
991
  }
540
- const Zt = `
992
+ function Zt(t) {
993
+ return Object.entries(t).map(([e, { description: a, hints: n }]) => ` - ${e}: ${a} (hints: ${n.join(", ")})`).join(`
994
+ `);
995
+ }
996
+ const ea = {
997
+ // Example prompt: "Take me to my content"
998
+ "portal-content": {
999
+ description: "The main content page of the portal.",
1000
+ hints: ["My content", "Content"]
1001
+ },
1002
+ // Example prompt: "Show my content favorites"
1003
+ "portal-content-favorites": {
1004
+ description: "The Favorites view under Content in the portal.",
1005
+ hints: ["My favorites", "Favorites", "Content favorites"]
1006
+ },
1007
+ // Example prompt: "Open group content"
1008
+ "portal-content-group": {
1009
+ description: "The Groups view under Content in the portal.",
1010
+ hints: ["Content groups", "Group content", "My groups content"]
1011
+ },
1012
+ // Example prompt: "Browse Living Atlas content"
1013
+ "portal-content-living-atlas": {
1014
+ description: "The Living Atlas view under Content in the portal.",
1015
+ hints: ["Living Atlas", "Content living atlas"]
1016
+ },
1017
+ // Example prompt: "Show my organization's content"
1018
+ "portal-content-organization": {
1019
+ description: "The Organization view under Content in the portal.",
1020
+ hints: ["Organization content", "Content organization", "My organization content"]
1021
+ },
1022
+ // Example prompt: "Open the gallery"
1023
+ "portal-gallery": {
1024
+ description: "The gallery page of the portal.",
1025
+ hints: ["Gallery", "Featured content", "Maps and apps"]
1026
+ },
1027
+ // Example prompt: "Go to the group called #Urban Planning"
1028
+ "portal-group": {
1029
+ description: "A specific group page in the portal.",
1030
+ hints: ["Group", "group page"]
1031
+ },
1032
+ // Example prompt: "Browse groups"
1033
+ "portal-groups": {
1034
+ description: "The groups listing page of the portal.",
1035
+ hints: ["Groups", "Browse groups"]
1036
+ },
1037
+ // Example prompt: "Show featured groups"
1038
+ "portal-groups-featured": {
1039
+ description: "The Featured groups view under Groups in the portal.",
1040
+ hints: ["Featured groups", "Groups featured"]
1041
+ },
1042
+ // Example prompt: "Show my groups"
1043
+ "portal-groups-my": {
1044
+ description: "The My groups view under Groups in the portal.",
1045
+ hints: ["My groups", "Groups my"]
1046
+ },
1047
+ // Example prompt: "Show organization groups"
1048
+ "portal-groups-organization": {
1049
+ description: "The Organization groups view under Groups in the portal.",
1050
+ hints: ["Organization groups", "Groups organization", "My organization groups"]
1051
+ },
1052
+ // Example prompt: "Open item #Road Closures Map"
1053
+ "portal-item": {
1054
+ description: "A specific item page in the portal.",
1055
+ hints: ["Item", "item page"]
1056
+ },
1057
+ // Example prompt: "Open Map Viewer"
1058
+ "portal-map-viewer": {
1059
+ description: "The Map Viewer app of the portal.",
1060
+ hints: ["Map Viewer", "Map", "Open map"]
1061
+ },
1062
+ // Example prompt: "Take me to notebooks"
1063
+ "portal-notebooks": {
1064
+ description: "The Notebooks home page of the portal.",
1065
+ hints: ["Notebooks", "Notebook home", "My notebooks"]
1066
+ },
1067
+ // Example prompt: "Open Scene Viewer"
1068
+ "portal-scene-viewer": {
1069
+ description: "The Scene Viewer app of the portal.",
1070
+ hints: ["Scene Viewer", "Scene", "3D scene"]
1071
+ },
1072
+ // Example prompt: "Open organization security settings"
1073
+ "portal-org-security": {
1074
+ description: "The Organization > Settings > Security page of the portal.",
1075
+ hints: ["Organization settings", "Security", "Organization > Settings > Security"],
1076
+ sections: {
1077
+ // Example prompt: "How do I set up custom sign in?"
1078
+ "custom-sign-in": {
1079
+ description: "The Organization > Settings > Security > Custom Sign In section of the portal.",
1080
+ hints: ["Custom Sign In", "Organization > Settings > Security > Custom Sign In"]
1081
+ },
1082
+ // Example prompt: "How do I configure login options?"
1083
+ logins: {
1084
+ description: "The Organization > Settings > Security > Logins section of the portal.",
1085
+ hints: ["Logins", "Organization > Settings > Security > Logins"]
1086
+ },
1087
+ // Example prompt: "How do I change our login provider?"
1088
+ "change-login-provider": {
1089
+ description: "The Organization > Settings > Security > Change Login Provider section of the portal.",
1090
+ hints: ["Change Login Provider", "Organization > Settings > Security > Change Login Provider"]
1091
+ },
1092
+ // Example prompt: "How do I configure MFA?"
1093
+ "multifactor-auth": {
1094
+ description: "The Organization > Settings > Security > Multifactor Authentication section of the portal.",
1095
+ hints: ["MFA", "Multifactor Authentication", "Organization > Settings > Security > MFA"]
1096
+ },
1097
+ // Example prompt: "How do I configure Enforce MFA?"
1098
+ "multifactor-enforcement": {
1099
+ description: "The Organization > Settings > Security > Enforce MFA section of the portal.",
1100
+ hints: ["Enforce MFA", "MFA enforcement", "Organization > Settings > Security > Enforce MFA"]
1101
+ },
1102
+ // Example prompt: "How do I set designated admins for MFA?"
1103
+ "multifactor-designated-admins": {
1104
+ description: "The Organization > Settings > Security > Designated Admins section of the portal.",
1105
+ hints: ["Designated admins", "MFA designated admins", "Organization > Settings > Security > Designated Admins"]
1106
+ }
1107
+ }
1108
+ },
1109
+ // Example prompt: "I want to add a new item"
1110
+ "portal-content-new-item": {
1111
+ description: "The Content page with the New Item flow opened.",
1112
+ hints: ["New item", "Create new item", "Content > My Content > New Item"],
1113
+ sections: {
1114
+ // Example prompt: "Create a new feature layer"
1115
+ "feature-layer": {
1116
+ description: "The Content page with New Item flow set to Feature Layer as the starting step.",
1117
+ hints: ["Feature Layer", "New Feature Layer", "Content > My Content > New Item > Feature Layer"]
1118
+ },
1119
+ // Example prompt: "Create developer credentials"
1120
+ "developer-credentials": {
1121
+ description: "The Content page with New Item flow set to Developer Credentials as the starting step.",
1122
+ hints: [
1123
+ "Developer Credentials",
1124
+ "New developer credentials",
1125
+ "Content > My Content > New Item > Developer Credentials"
1126
+ ]
1127
+ },
1128
+ // Example prompt: "Add an item from a URL"
1129
+ url: {
1130
+ description: "The Content page with New Item flow set to URL as the starting step for adding a URL-based item, such as a service endpoint.",
1131
+ hints: ["URL item", "Add item from URL", "Register service URL", "Content > My Content > New Item > URL"]
1132
+ },
1133
+ // Example prompt: "Create a new application item"
1134
+ application: {
1135
+ description: "The Content page with New Item flow set to Application as the starting step for creating an application item in content.",
1136
+ hints: [
1137
+ "Application item",
1138
+ "Create application item",
1139
+ "Register app item",
1140
+ "Content > My Content > New Item > Application"
1141
+ ]
1142
+ },
1143
+ // Example prompt: "Create a hosted tile layer"
1144
+ "tile-layer": {
1145
+ description: "The Content page with New Item flow set to Tile Layer as the starting step for publishing a hosted tile layer.",
1146
+ hints: [
1147
+ "Tile Layer",
1148
+ "Create hosted tile layer",
1149
+ "Publish tile layer",
1150
+ "Content > My Content > New Item > Tile Layer"
1151
+ ]
1152
+ },
1153
+ // Example prompt: "Create a hosted scene layer"
1154
+ "scene-layer": {
1155
+ description: "The Content page with New Item flow set to Scene Layer as the starting step for publishing a hosted scene layer.",
1156
+ hints: [
1157
+ "Scene Layer",
1158
+ "Create hosted scene layer",
1159
+ "Publish scene layer",
1160
+ "Content > My Content > New Item > Scene Layer"
1161
+ ]
1162
+ },
1163
+ // Example prompt: "Create a new locator"
1164
+ locator: {
1165
+ description: "The Content page with New Item flow set to Locator as the starting step for creating or publishing a locator used for geocoding.",
1166
+ hints: ["Locator", "Create locator", "Publish locator", "Content > My Content > New Item > Locator"]
1167
+ },
1168
+ // Example prompt: "Create a data store item"
1169
+ "data-store": {
1170
+ description: "The Content page with New Item flow set to Data Store as the starting step for registering a data store connection.",
1171
+ hints: [
1172
+ "Data Store",
1173
+ "Register data store",
1174
+ "Data store connection",
1175
+ "Content > My Content > New Item > Data Store"
1176
+ ]
1177
+ }
1178
+ }
1179
+ }
1180
+ }, Ee = Xt(ea), ta = W(Ee), aa = Zt(Ee), na = `
541
1181
  You decide whether the assistant response should include a navigation action to ArcGIS Portal.
542
1182
 
543
1183
  Given the user question and assistant response:
544
1184
  - Decide if a navigation action would help the user complete the task.
545
- - If yes, choose one destination type:
546
- - portal-content: portal content page
547
- - portal-groups: groups listing page
548
- - portal-item: specific item page (requires itemId)
549
- - portal-group: specific group page (requires groupId)
1185
+ - If yes, choose one destinationType:
1186
+ ${aa}
550
1187
 
551
1188
  Rules:
1189
+ - Only suggest navigation when you are highly confident the destination will help complete the user's task.
1190
+ - If confidence is below 0.85, set shouldSuggestNavigation=false and destinationType=none.
1191
+ - If there is no clear destination from the allowed types, set shouldSuggestNavigation=false and destinationType=none.
552
1192
  - If no navigation is useful, set shouldSuggestNavigation=false and destinationType=none.
553
- - If destinationType is portal-item and user references an item by title (for example #title, #"title with spaces", or plain quoted title), call resolvePortalItemIdByTitle and set itemId from the tool result.
554
- - If destinationType is portal-group and user references a group by title (for example $title, $"title with spaces", or plain quoted group title), call resolvePortalGroupIdByTitle and set groupId from the tool result.
555
- - Do not invent itemId.
556
- - Do not invent groupId.
557
- - Prefer destinationType=portal-content for generic "go to content" guidance.
1193
+ - Prefer the most specific destination that is clearly supported by the question and response.
1194
+ - Use entity-level destinations over collection/root destinations when both could apply and the entity target is explicit.
1195
+ - Use collection/root destinations only for generic browsing intent with no specific entity target.
1196
+ - If a chosen destination requires parameters, include all required parameters.
1197
+ - If required parameters are missing or uncertain, set shouldSuggestNavigation=false and destinationType=none.
1198
+ - Do not invent required parameters.
1199
+ - Always include a confidence score from 0 to 1 in the output.
1200
+ - Confidence means confidence that a navigation suggestion should be shown to the user.
1201
+ - If shouldSuggestNavigation=false or destinationType=none, confidence must be <= 0.5.
1202
+ - Use confidence >= 0.85 only when shouldSuggestNavigation=true and destinationType is not none.
558
1203
 
559
1204
  User question:
560
1205
  {question}
561
1206
 
562
1207
  Assistant response:
563
1208
  {response}
564
- `, et = xt.Root({
565
- ...N()
566
- }), te = () => new C(et).addNode("answerDocQuestion", _t).addNode("extractNavigationIntent", Ht).addEdge(P, "answerDocQuestion").addEdge("answerDocQuestion", "extractNavigationIntent").addEdge("extractNavigationIntent", h), ee = String.raw`- **portal-doc-assistant** - General ArcGIS documentation and Portal help assistant:
1209
+ `, le = i.object({
1210
+ shouldSuggestNavigation: i.boolean().default(!1),
1211
+ destinationType: i.enum(["none", ...ta]).default("none"),
1212
+ itemId: i.string().default(""),
1213
+ groupId: i.string().default(""),
1214
+ confidence: i.number().min(0).max(1).default(0)
1215
+ });
1216
+ let ue;
1217
+ async function oa() {
1218
+ return ue ??= H({ modelTier: "fast" }), await ue;
1219
+ }
1220
+ const ra = async (t, e) => {
1221
+ const a = performance.now();
1222
+ try {
1223
+ await p({ text: "Extracting navigation intent...", agentName: "doc-assistant" }, e);
1224
+ const n = t.outputMessage.trim();
1225
+ if (!n)
1226
+ return {};
1227
+ const o = v(t.agentExecutionContext.messages).trim(), r = await X.fromTemplate(na).format({
1228
+ question: o,
1229
+ response: n
1230
+ }), c = (await oa()).withStructuredOutput(le), l = le.parse(await c.invoke(r));
1231
+ if (!l.shouldSuggestNavigation || l.destinationType === "none")
1232
+ return {};
1233
+ if (l.destinationType === "portal-item" && !l.itemId) {
1234
+ const u = N(o, "#");
1235
+ u && (l.itemId = await ke.invoke({ itemTitle: u }, e) ?? "");
1236
+ }
1237
+ if (l.destinationType === "portal-group" && !l.groupId) {
1238
+ const u = N(o, "$") ?? N(o, "#");
1239
+ u && (l.groupId = await qe.invoke({ groupTitle: u }, e) ?? "");
1240
+ }
1241
+ const d = ia(l);
1242
+ return d ? (await O(d, e), {}) : {};
1243
+ } finally {
1244
+ console.info("[arcgis-portal-ai-assistant] node timing", {
1245
+ agent: "portal-doc-assistant",
1246
+ node: "extractNavigationIntent",
1247
+ durationMs: Number((performance.now() - a).toFixed(1))
1248
+ });
1249
+ }
1250
+ };
1251
+ function ia({
1252
+ destinationType: t,
1253
+ itemId: e,
1254
+ groupId: a
1255
+ }) {
1256
+ const n = S().find((o) => o.id === t);
1257
+ if (n)
1258
+ return A({
1259
+ navigate: n.resolutions.navigate,
1260
+ buttonLabel: n.buttonLabel,
1261
+ capabilityId: n.id
1262
+ });
1263
+ switch (t) {
1264
+ case "portal-gallery":
1265
+ case "portal-map-viewer":
1266
+ case "portal-notebooks":
1267
+ case "portal-scene-viewer":
1268
+ return { destinationType: t };
1269
+ case "portal-item":
1270
+ return e ? { destinationType: t, itemId: e } : void 0;
1271
+ case "portal-group":
1272
+ return a ? { destinationType: t, groupId: a } : void 0;
1273
+ case "none":
1274
+ return;
1275
+ default:
1276
+ switch (t) {
1277
+ case "portal-groups":
1278
+ return A({ navigate: { routeKey: "groups" } });
1279
+ case "portal-content-favorites":
1280
+ case "portal-content-group":
1281
+ case "portal-content-living-atlas":
1282
+ case "portal-content-organization":
1283
+ return A({ navigate: { routeKey: "content", hash: (() => {
1284
+ switch (t) {
1285
+ case "portal-content-favorites":
1286
+ return "favorites";
1287
+ case "portal-content-group":
1288
+ return "group";
1289
+ case "portal-content-living-atlas":
1290
+ return "living-atlas";
1291
+ case "portal-content-organization":
1292
+ return "org";
1293
+ default:
1294
+ return F(t);
1295
+ }
1296
+ })() } });
1297
+ case "portal-org-security":
1298
+ return A({
1299
+ navigate: { routeKey: "organization", hash: "settings", queryParams: { tab: "security" } }
1300
+ });
1301
+ default:
1302
+ return;
1303
+ }
1304
+ }
1305
+ }
1306
+ const ze = h.Root({
1307
+ ...q()
1308
+ }), sa = () => new P(ze).addNode("answerDocQuestion", Qt).addNode("extractNavigationIntent", ra).addEdge(G, "answerDocQuestion").addEdge("answerDocQuestion", "extractNavigationIntent").addEdge("extractNavigationIntent", w), ca = String.raw`- **portal-doc-assistant** - General ArcGIS documentation and Portal help assistant:
567
1309
  - answers general ArcGIS, Portal, Enterprise, and JavaScript SDK questions
568
1310
  - acts as a fallback when specialized agents are not applicable
569
- `, se = {
1311
+ `, la = {
570
1312
  id: "portal-doc-assistant",
571
1313
  name: "Portal Doc Assistant",
572
- description: ee,
573
- createGraph: te,
574
- workspace: et
575
- }, st = `
1314
+ description: ca,
1315
+ createGraph: sa,
1316
+ workspace: ze
1317
+ }, ua = () => ({ latestGroupId: null, memory: {} }), L = (t) => {
1318
+ const e = t?.agentExecutionContext.sharedState.portalGroupSummaryMemory?.value;
1319
+ return e ? { latestGroupId: e.latestGroupId, memory: e.memory } : ua();
1320
+ }, Re = `
576
1321
  Shared markdown formatting rules:
577
1322
  - Use clear markdown headings (##) to separate sections.
578
1323
  - Use concise bullet points for lists of facts, counts, or signals.
579
1324
  - Emphasize key metrics with bold labels (for example: **Recent items:** 4).
580
1325
  - Keep wording direct and analytical; avoid filler language but make sure the language is friendly.
581
1326
  - Do not include raw internal IDs unless explicitly requested.
582
- `, ae = () => ({ latestGroupId: null, memory: {} }), q = (e) => {
583
- const t = e?.agentExecutionContext.sharedState.portalGroupSummaryMemory?.value;
584
- return t ? { latestGroupId: t.latestGroupId, memory: t.memory } : ae();
585
- }, re = async (e, t) => {
586
- await g({ text: "Answering group follow-up...", agentName: "group-analytics" }, t);
587
- const s = q(e), a = e.groupSummaryGroupId ?? s.latestGroupId, r = a ? s.memory[a] : void 0, i = e.groupSummaryQuestion || x(e.agentExecutionContext.messages);
588
- return r ? {
589
- status: "success",
590
- outputMessage: (await b({
591
- promptText: ne,
592
- schema: oe,
593
- modelTier: "default",
594
- inputVariables: {
595
- summary: r.summary,
596
- question: i,
597
- fullContext: JSON.stringify(r.fullContext)
598
- }
599
- })).answer
600
- } : {
601
- status: "success",
602
- outputMessage: "I do not have group analytics context yet. Ask me to analyze a group first with analyze group <group id>."
603
- };
604
- }, oe = o.object({
605
- answer: o.string(),
606
- isRelevant: o.boolean()
607
- }), ne = `
1327
+ `, da = `
608
1328
  You answer follow-up questions about ArcGIS group analytics.
609
1329
 
610
- ${st}
1330
+ ${Re}
611
1331
 
612
1332
  Ground your answer in the provided group analytics summary and context.
613
1333
  If the answer is not available from the provided context, state that clearly and suggest what to check next.
@@ -629,30 +1349,29 @@ Group full context:
629
1349
 
630
1350
  Question:
631
1351
  {question}
632
- `, ie = async (e, t) => {
633
- await g({ text: "Analyzing group-analytics intent...", agentName: "group-analytics" }, t);
634
- const s = x(e.agentExecutionContext.messages), a = !!q(e).latestGroupId, r = await z.fromTemplate(le).format({
635
- userMessage: s,
636
- hasAnalyticsContext: String(a)
637
- }), l = await U({
638
- model: await D({ modelTier: "fast" }),
639
- tools: [Z],
640
- systemPrompt: r,
641
- responseFormat: ue,
642
- checkpointer: !0
643
- }).invoke({ messages: e.agentExecutionContext.messages }, t), { intent: u, groupId: c, question: n } = l.structuredResponse, m = u === "summarize" && !c, p = u === "followUp" && !(n ?? "").trim(), d = u === "clarify" || m || p;
644
- return {
645
- groupSummaryIntent: d ? "clarify" : u,
646
- groupSummaryGroupId: c || null,
647
- groupSummaryQuestion: n || "",
1352
+ `, pa = async (t, e) => {
1353
+ await p({ text: "Answering group follow-up...", agentName: "group-analytics" }, e);
1354
+ const a = L(t), n = t.groupSummaryGroupId ?? a.latestGroupId, o = n ? a.memory[n] : void 0, r = t.groupSummaryQuestion || v(t.agentExecutionContext.messages);
1355
+ return o ? {
648
1356
  status: "success",
649
- outputMessage: d ? "Please clarify with a group id or title" : ""
1357
+ outputMessage: (await b({
1358
+ promptText: da,
1359
+ schema: ma,
1360
+ modelTier: "default",
1361
+ inputVariables: {
1362
+ summary: o.summary,
1363
+ question: r,
1364
+ fullContext: JSON.stringify(o.fullContext)
1365
+ }
1366
+ })).answer
1367
+ } : {
1368
+ status: "success",
1369
+ outputMessage: "I do not have group analytics context yet. Ask me to analyze a group first with analyze group <group id>."
650
1370
  };
651
- }, ue = o.object({
652
- intent: o.enum(["summarize", "followUp", "navigation", "clarify"]),
653
- groupId: o.string().default(""),
654
- question: o.string().default("")
655
- }), le = `
1371
+ }, ma = i.object({
1372
+ answer: i.string(),
1373
+ isRelevant: i.boolean()
1374
+ }), ga = `
656
1375
  Classify the user's request for ArcGIS Portal group analytics.
657
1376
 
658
1377
  Rules:
@@ -681,142 +1400,121 @@ hasAnalyticsContext:
681
1400
 
682
1401
  User message:
683
1402
  {userMessage}
684
- `, ce = async (e, t) => {
685
- const s = q(e), a = e.groupSummaryGroupId ?? s.latestGroupId;
686
- return await g({ text: "Preparing navigation...", agentName: "group-analytics" }, t), await R(
687
- a ? { destinationType: "portal-group", groupId: a } : { destinationType: "portal-groups" },
688
- t
1403
+ `, ha = async (t, e) => {
1404
+ await p({ text: "Analyzing group-analytics intent...", agentName: "group-analytics" }, e);
1405
+ const a = v(t.agentExecutionContext.messages), n = !!L(t).latestGroupId, o = await X.fromTemplate(ga).format({
1406
+ userMessage: a,
1407
+ hasAnalyticsContext: String(n)
1408
+ }), s = (await H({ modelTier: "fast" })).withStructuredOutput(de), c = de.parse(await s.invoke(o));
1409
+ let l = c.groupId;
1410
+ if ((c.intent === "summarize" || c.intent === "navigation") && !l) {
1411
+ const y = N(a, "$");
1412
+ y && (l = await qe.invoke({ groupTitle: y }, e) ?? "");
1413
+ }
1414
+ const { intent: d, question: u } = c, m = d === "summarize" && !l, g = d === "followUp" && !(u ?? "").trim(), f = d === "clarify" || m || g;
1415
+ return {
1416
+ groupSummaryIntent: f ? "clarify" : d,
1417
+ groupSummaryGroupId: l || null,
1418
+ groupSummaryQuestion: u || "",
1419
+ status: "success",
1420
+ outputMessage: f ? "Please clarify with a group id or title" : ""
1421
+ };
1422
+ }, de = i.object({
1423
+ intent: i.enum(["summarize", "followUp", "navigation", "clarify"]),
1424
+ groupId: i.string().default(""),
1425
+ question: i.string().default("")
1426
+ }), fa = async (t, e) => {
1427
+ const a = L(t), n = t.groupSummaryGroupId ?? a.latestGroupId;
1428
+ return await p({ text: "Preparing navigation...", agentName: "group-analytics" }, e), await O(
1429
+ n ? { destinationType: "portal-group", groupId: n } : { destinationType: "portal-groups" },
1430
+ e
689
1431
  ), { status: "success" };
690
1432
  };
691
- function at({ timestamp: e, now: t, windowMs: s }) {
692
- return e ? t - e <= s : !1;
1433
+ function De({ timestamp: t, now: e, windowMs: a }) {
1434
+ return t ? e - t <= a : !1;
693
1435
  }
694
- const me = 720 * 60 * 60 * 1e3;
695
- function de(e) {
696
- const t = vt(e);
1436
+ const ya = 720 * 60 * 60 * 1e3;
1437
+ function wa(t) {
1438
+ const e = nt(t);
697
1439
  return {
698
- id: e.id ?? "",
699
- title: e.title ?? "",
700
- description: e.description ?? "",
701
- snippet: e.snippet ?? "",
702
- access: e.access ?? null,
703
- owner: e.owner ?? "",
704
- tags: e.tags ?? [],
705
- created: e.created?.getTime(),
706
- modified: e.modified?.getTime(),
707
- isInvitationOnly: e.isInvitationOnly,
1440
+ id: t.id ?? "",
1441
+ title: t.title ?? "",
1442
+ description: t.description ?? "",
1443
+ snippet: t.snippet ?? "",
1444
+ access: t.access ?? null,
1445
+ owner: t.owner ?? "",
1446
+ tags: t.tags ?? [],
1447
+ created: t.created?.getTime(),
1448
+ modified: t.modified?.getTime(),
1449
+ isInvitationOnly: t.isInvitationOnly,
708
1450
  sourceSignals: {
709
- capabilities: At(e),
710
- membershipAccess: Mt(e),
711
- isOpenData: Gt(e),
712
- isDistributedCollaborationGroup: St(e),
713
- orgId: t.orgId,
714
- hiddenMembers: t.hiddenMembers,
715
- isViewOnly: t.isViewOnly,
716
- isReadOnly: t.isReadOnly,
717
- leavingDisallowed: t.leavingDisallowed
1451
+ capabilities: st(t),
1452
+ membershipAccess: it(t),
1453
+ isOpenData: rt(t),
1454
+ isDistributedCollaborationGroup: ot(t),
1455
+ orgId: e.orgId,
1456
+ hiddenMembers: e.hiddenMembers,
1457
+ isViewOnly: e.isViewOnly,
1458
+ isReadOnly: e.isReadOnly,
1459
+ leavingDisallowed: e.leavingDisallowed
718
1460
  }
719
1461
  };
720
1462
  }
721
- async function pe(e) {
722
- const t = { owner: e.owner ?? "", admins: [], users: [] };
1463
+ async function ba(t) {
1464
+ const e = { owner: t.owner ?? "", admins: [], users: [] };
723
1465
  try {
724
- return await e.fetchMembers();
725
- } catch (s) {
726
- return console.warn("Unable to fetch group members for analytics context", s), t;
1466
+ return await t.fetchMembers();
1467
+ } catch (a) {
1468
+ return console.warn("Unable to fetch group members for analytics context", a), e;
727
1469
  }
728
1470
  }
729
- function ge(e) {
730
- return e.map((t) => ({
731
- id: t.id ?? "",
732
- title: t.title ?? "Untitled",
733
- type: t.type ?? "Unknown",
734
- owner: t.owner ?? "",
735
- created: t.created?.getTime(),
736
- modified: t.modified?.getTime()
1471
+ function va(t) {
1472
+ return t.map((e) => ({
1473
+ id: e.id ?? "",
1474
+ title: e.title ?? "Untitled",
1475
+ type: e.type ?? "Unknown",
1476
+ owner: e.owner ?? "",
1477
+ created: e.created?.getTime(),
1478
+ modified: e.modified?.getTime()
737
1479
  }));
738
1480
  }
739
- function fe(e, t) {
740
- return e.filter(
741
- (s) => s.modified ? at({ timestamp: s.modified, now: t, windowMs: me }) : !1
1481
+ function Ia(t, e) {
1482
+ return t.filter(
1483
+ (a) => a.modified ? De({ timestamp: a.modified, now: e, windowMs: ya }) : !1
742
1484
  );
743
1485
  }
744
- function he(e) {
745
- const t = /* @__PURE__ */ new Map();
746
- for (const s of e)
747
- t.set(s.type, (t.get(s.type) ?? 0) + 1);
748
- return [...t.entries()].sort((s, a) => a[1] - s[1] || s[0].localeCompare(a[0])).slice(0, 6).map(([s, a]) => ({ type: s, count: a }));
1486
+ function Sa(t) {
1487
+ const e = /* @__PURE__ */ new Map();
1488
+ for (const a of t)
1489
+ e.set(a.type, (e.get(a.type) ?? 0) + 1);
1490
+ return [...e.entries()].sort((a, n) => n[1] - a[1] || a[0].localeCompare(n[0])).slice(0, 6).map(([a, n]) => ({ type: a, count: n }));
749
1491
  }
750
- async function ye(e) {
751
- const t = await e.queryItems({ num: 20, sortField: "modified", sortOrder: "desc" }), s = ge(t.results), a = Date.now();
1492
+ async function xa(t) {
1493
+ const e = await t.queryItems({ num: 20, sortField: "modified", sortOrder: "desc" }), a = va(e.results), n = Date.now();
752
1494
  return {
753
- total: t.total,
754
- topItems: s,
755
- recentlyModifiedItems: fe(s, a),
756
- topItemTypes: he(s)
1495
+ total: e.total,
1496
+ topItems: a,
1497
+ recentlyModifiedItems: Ia(a, n),
1498
+ topItemTypes: Sa(a)
757
1499
  };
758
1500
  }
759
- async function we(e, t) {
760
- if (!t)
1501
+ async function Ca(t, e) {
1502
+ if (!e)
761
1503
  return { error: { code: "missingGroupId", message: "Group id is required." } };
762
1504
  try {
763
- const a = (await e.queryGroups({ query: `id:${t}`, num: 1 })).results[0];
764
- if (!a)
765
- return { error: { code: "groupNotFound", message: `No group found for id: ${t}` } };
766
- const r = de(a), i = await pe(a), l = await ye(a);
767
- return { result: { group: r, members: i, items: l } };
768
- } catch (s) {
769
- return console.error("Error fetching portal group analytics context:", s), { error: { code: "unhandledError" } };
1505
+ const n = (await t.queryGroups({ query: `id:${e}`, num: 1 })).results[0];
1506
+ if (!n)
1507
+ return { error: { code: "groupNotFound", message: `No group found for id: ${e}` } };
1508
+ const o = wa(n), r = await ba(n), s = await xa(n);
1509
+ return { result: { group: o, members: r, items: s } };
1510
+ } catch (a) {
1511
+ return console.error("Error fetching portal group analytics context:", a), { error: { code: "unhandledError" } };
770
1512
  }
771
1513
  }
772
- const be = 2160 * 60 * 60 * 1e3, Ie = async (e, t) => {
773
- const s = e.groupSummaryGroupId;
774
- if (!s)
775
- return {
776
- status: "success",
777
- outputMessage: 'Please clarify with analyze group <group id>, analyze group $<title>, or analyze group $"<title with spaces>".'
778
- };
779
- await g({ text: `Analyzing group ${s}...`, agentName: "group-analytics" }, t);
780
- const a = t?.configurable?.context;
781
- I(a);
782
- const { result: r, error: i } = await we(a.portal, s);
783
- if (i || !r)
784
- return await g({ text: "Failed to fetch group context", agentName: "group-analytics" }, t), {
785
- status: "success",
786
- outputMessage: "Unable to retrieve group context for analytics."
787
- };
788
- const { group: l, items: u } = r, c = Date.now(), n = l.modified, m = n ? at({ timestamp: n, now: c, windowMs: be }) : !1, p = u.recentlyModifiedItems.length, d = p > 0, y = m || d, v = await b({
789
- promptText: ve,
790
- schema: xe,
791
- modelTier: "default",
792
- inputVariables: {
793
- context: JSON.stringify(r),
794
- deterministicSignals: JSON.stringify({
795
- isGroupActive: y,
796
- isGroupRecentlyModified: m,
797
- hasRecentlyAddedOrUpdatedContent: d,
798
- recentItemCount: p
799
- })
800
- }
801
- }), { followUpQuestions: w, summary: S } = v, nt = q(e), it = {
802
- latestGroupId: s,
803
- memory: {
804
- ...nt.memory,
805
- [s]: { summary: S, followUpQuestions: w, fullContext: r }
806
- }
807
- };
808
- return w.length && await E({ type: "suggested-prompts", data: { prompts: w } }, t), {
809
- status: "success",
810
- outputMessage: S,
811
- sharedStatePatch: { portalGroupSummaryMemory: { value: it } }
812
- };
813
- }, xe = o.object({
814
- summary: o.string(),
815
- followUpQuestions: o.array(o.string()).default([])
816
- }), ve = `
1514
+ const Ma = `
817
1515
  You summarize ArcGIS Portal groups based on structured context and deterministic activity signals.
818
1516
 
819
- ${st}
1517
+ ${Re}
820
1518
 
821
1519
  Output format requirements:
822
1520
  - Return concise markdown with clear sections in this order:
@@ -852,57 +1550,82 @@ Group context:
852
1550
 
853
1551
  Deterministic signals:
854
1552
  {deterministicSignals}
855
- `, $ = (e, t) => t ?? e, rt = f.Root({
856
- ...N(),
857
- groupSummaryIntent: f({
858
- reducer: $,
1553
+ `, Ta = 2160 * 60 * 60 * 1e3, Aa = async (t, e) => {
1554
+ const a = t.groupSummaryGroupId;
1555
+ if (!a)
1556
+ return {
1557
+ status: "success",
1558
+ outputMessage: 'Please clarify with analyze group <group id>, analyze group $<title>, or analyze group $"<title with spaces>".'
1559
+ };
1560
+ await p({ text: `Analyzing group ${a}...`, agentName: "group-analytics" }, e);
1561
+ const n = e?.configurable?.context;
1562
+ x(n);
1563
+ const { result: o, error: r } = await Ca(n.portal, a);
1564
+ if (r || !o)
1565
+ return await p({ text: "Failed to fetch group context", agentName: "group-analytics" }, e), {
1566
+ status: "success",
1567
+ outputMessage: "Unable to retrieve group context for analytics."
1568
+ };
1569
+ const { group: s, items: c } = o, l = Date.now(), d = s.modified, u = d ? De({ timestamp: d, now: l, windowMs: Ta }) : !1, m = c.recentlyModifiedItems.length, g = m > 0, f = u || g, y = await b({
1570
+ promptText: Ma,
1571
+ schema: Na,
1572
+ modelTier: "default",
1573
+ inputVariables: {
1574
+ context: JSON.stringify(o),
1575
+ deterministicSignals: JSON.stringify({
1576
+ isGroupActive: f,
1577
+ isGroupRecentlyModified: u,
1578
+ hasRecentlyAddedOrUpdatedContent: g,
1579
+ recentItemCount: m
1580
+ })
1581
+ }
1582
+ }), { followUpQuestions: M, summary: k } = y, C = L(t), T = {
1583
+ latestGroupId: a,
1584
+ memory: {
1585
+ ...C.memory,
1586
+ [a]: { summary: k, followUpQuestions: M, fullContext: o }
1587
+ }
1588
+ };
1589
+ return M.length && await Y({ type: "suggested-prompts", data: { prompts: M } }, e), {
1590
+ status: "success",
1591
+ outputMessage: k,
1592
+ sharedStatePatch: { portalGroupSummaryMemory: { value: T } }
1593
+ };
1594
+ }, Na = i.object({
1595
+ summary: i.string(),
1596
+ followUpQuestions: i.array(i.string()).default([])
1597
+ }), j = (t, e) => e ?? t, $e = h.Root({
1598
+ ...q(),
1599
+ groupSummaryIntent: h({
1600
+ reducer: j,
859
1601
  default: () => "clarify"
860
1602
  }),
861
- groupSummaryGroupId: f({
862
- reducer: $,
1603
+ groupSummaryGroupId: h({
1604
+ reducer: j,
863
1605
  default: () => null
864
1606
  }),
865
- groupSummaryQuestion: f({
866
- reducer: $,
1607
+ groupSummaryQuestion: h({
1608
+ reducer: j,
867
1609
  default: () => ""
868
1610
  })
869
- }), Se = () => new C(rt).addNode("detectGroupSummaryIntent", ie).addNode("summarizePortalGroup", Ie).addNode("answerGroupSummaryFollowUp", re).addNode("suggestGroupSummaryNavigation", ce).addEdge(P, "detectGroupSummaryIntent").addConditionalEdges("detectGroupSummaryIntent", (t) => t.groupSummaryIntent === "summarize" ? "summarizePortalGroup" : t.groupSummaryIntent === "followUp" ? "answerGroupSummaryFollowUp" : t.groupSummaryIntent === "navigation" ? "suggestGroupSummaryNavigation" : h).addEdge("summarizePortalGroup", h).addEdge("answerGroupSummaryFollowUp", h).addEdge("suggestGroupSummaryNavigation", h), Ge = String.raw`- **portal-group-analytics** - Portal group analytics assistant:
1611
+ }), Pa = () => new P($e).addNode("detectGroupSummaryIntent", ha).addNode("summarizePortalGroup", Aa).addNode("answerGroupSummaryFollowUp", pa).addNode("suggestGroupSummaryNavigation", fa).addEdge(G, "detectGroupSummaryIntent").addConditionalEdges("detectGroupSummaryIntent", (e) => e.groupSummaryIntent === "summarize" ? "summarizePortalGroup" : e.groupSummaryIntent === "followUp" ? "answerGroupSummaryFollowUp" : e.groupSummaryIntent === "navigation" ? "suggestGroupSummaryNavigation" : w).addEdge("summarizePortalGroup", w).addEdge("answerGroupSummaryFollowUp", w).addEdge("suggestGroupSummaryNavigation", w), Ga = String.raw`- **portal-group-analytics** - Portal group analytics assistant:
870
1612
  - summarizes ArcGIS portal groups from group context and sourceJSON details
871
1613
  - answers follow-up questions grounded in the summarized group
872
1614
  - suggests navigation to groups when relevant
873
- `, Me = {
1615
+ `, qa = {
874
1616
  id: "portal-group-analytics",
875
1617
  name: "Portal Group Analytics",
876
- description: Ge,
877
- createGraph: Se,
878
- workspace: rt
879
- }, Ae = () => ({ latestItemId: null, memory: {} }), F = (e) => {
880
- const t = e?.agentExecutionContext.sharedState.portalItemAnalyticsSummaryMemory?.value;
881
- return t ? { latestItemId: t.latestItemId, memory: t.memory } : Ae();
882
- }, Te = o.object({
883
- intent: o.enum(["summarize", "followUp", "clarify"]),
884
- itemId: o.string().default(""),
885
- question: o.string().default("")
886
- }), Ce = o.object({ summary: o.string(), followUpQuestions: o.array(o.string()).default([]) }), Pe = o.object({ answer: o.string(), isRelevant: o.boolean() }), Ne = async (e, t) => {
887
- await g({ text: "Answering follow-up...", agentName: "analytics" }, t);
888
- const s = F(e), a = e.analyticsItemId ?? s.latestItemId, r = a ? s.memory[a] : void 0, i = e.analyticsQuestion || x(e.agentExecutionContext.messages);
889
- return r ? {
890
- status: "success",
891
- outputMessage: (await b({
892
- promptText: qe,
893
- schema: Pe,
894
- modelTier: "default",
895
- inputVariables: {
896
- summary: r.summary,
897
- question: i,
898
- fullContext: JSON.stringify(r.fullContext)
899
- }
900
- })).answer
901
- } : {
902
- status: "success",
903
- outputMessage: "I don't have enough information yet. Please ask me to summarize the item first using summarize item <item id>."
904
- };
905
- }, qe = `
1618
+ description: Ga,
1619
+ createGraph: Pa,
1620
+ workspace: $e
1621
+ }, ka = () => ({ latestItemId: null, memory: {} }), Z = (t) => {
1622
+ const e = t?.agentExecutionContext.sharedState.portalItemAnalyticsSummaryMemory?.value;
1623
+ return e ? { latestItemId: e.latestItemId, memory: e.memory } : ka();
1624
+ }, pe = i.object({
1625
+ intent: i.enum(["summarize", "followUp", "clarify"]),
1626
+ itemId: i.string().default(""),
1627
+ question: i.string().default("")
1628
+ }), Ea = i.object({ summary: i.string(), followUpQuestions: i.array(i.string()).default([]) }), za = i.object({ answer: i.string(), isRelevant: i.boolean() }), Ra = `
906
1629
  You answer follow-up questions about an ArcGIS item.
907
1630
 
908
1631
  Ground your answer in the provided item context.
@@ -922,27 +1645,26 @@ Item full context
922
1645
 
923
1646
  Question:
924
1647
  {question}
925
- `, $e = async (e, t) => {
926
- await g({ text: "Analyzing intent...", agentName: "analytics" }, t);
927
- const s = x(e.agentExecutionContext.messages), a = !!F(e).latestItemId, r = await z.fromTemplate(ke).format({
928
- userMessage: s,
929
- hasSummaryContext: String(a)
930
- }), l = await U({
931
- model: await D({ modelTier: "fast" }),
932
- tools: [tt],
933
- systemPrompt: r,
934
- responseFormat: Te,
935
- checkpointer: !0
936
- }).invoke({ messages: e.agentExecutionContext.messages }, t), { intent: u, itemId: c, question: n } = l.structuredResponse, d = u === "clarify" || u === "summarize" && !c || u === "followUp" && !n;
937
- return {
938
- agentExecutionContext: { ...e.agentExecutionContext },
939
- analyticsIntent: d ? "clarify" : u,
940
- analyticsItemId: c || null,
941
- analyticsQuestion: n || "",
1648
+ `, Da = async (t, e) => {
1649
+ await p({ text: "Answering follow-up...", agentName: "analytics" }, e);
1650
+ const a = Z(t), n = t.analyticsItemId ?? a.latestItemId, o = n ? a.memory[n] : void 0, r = t.analyticsQuestion || v(t.agentExecutionContext.messages);
1651
+ return o ? {
942
1652
  status: "success",
943
- outputMessage: d ? 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".' : ""
1653
+ outputMessage: (await b({
1654
+ promptText: Ra,
1655
+ schema: za,
1656
+ modelTier: "default",
1657
+ inputVariables: {
1658
+ summary: o.summary,
1659
+ question: r,
1660
+ fullContext: JSON.stringify(o.fullContext)
1661
+ }
1662
+ })).answer
1663
+ } : {
1664
+ status: "success",
1665
+ outputMessage: "I don't have enough information yet. Please ask me to summarize the item first using summarize item <item id>."
944
1666
  };
945
- }, ke = `
1667
+ }, $a = `
946
1668
  Classify the user analytics request.
947
1669
 
948
1670
  Rules:
@@ -972,40 +1694,27 @@ hasSummaryContext:
972
1694
 
973
1695
  User message:
974
1696
  {userMessage}
975
- `, Ee = async (e, t) => {
976
- const s = e.analyticsItemId;
977
- if (!s)
978
- return {
979
- status: "success",
980
- outputMessage: 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".'
981
- };
982
- await g({ text: `Summarizing item ${s}...`, agentName: "analytics" }, t);
983
- const a = t?.configurable?.context;
984
- I(a);
985
- const { portal: r, user: i } = a, { result: l, error: u } = await bt(i, r, s);
986
- if (u || !l)
987
- return await g({ text: "Failed to get item context for summarization", agentName: "analytics" }, t), {
988
- status: "success",
989
- outputMessage: "Unable to retrieve item context for summarization."
990
- };
991
- const { context: c } = l, n = await b({
992
- promptText: De,
993
- schema: Ce,
994
- modelTier: "default",
995
- inputVariables: { context: JSON.stringify(c) }
996
- }), { followUpQuestions: m, summary: p } = n, d = F(e), y = {
997
- latestItemId: s,
998
- memory: {
999
- ...d.memory,
1000
- [s]: { summary: p, followUpQuestions: m, fullContext: c }
1001
- }
1002
- };
1003
- return m.length && await E({ type: "suggested-prompts", data: { prompts: m } }, t), {
1697
+ `, Ua = async (t, e) => {
1698
+ await p({ text: "Analyzing intent...", agentName: "analytics" }, e);
1699
+ const a = v(t.agentExecutionContext.messages), n = !!Z(t).latestItemId, o = await X.fromTemplate($a).format({
1700
+ userMessage: a,
1701
+ hasSummaryContext: String(n)
1702
+ }), s = (await H({ modelTier: "fast" })).withStructuredOutput(pe), c = pe.parse(await s.invoke(o));
1703
+ let l = c.itemId;
1704
+ if (c.intent === "summarize" && !l) {
1705
+ const y = N(a, "#");
1706
+ y && (l = await ke.invoke({ itemTitle: y }, e) ?? "");
1707
+ }
1708
+ const { intent: d, question: u } = c, f = d === "clarify" || d === "summarize" && !l || d === "followUp" && !u;
1709
+ return {
1710
+ agentExecutionContext: { ...t.agentExecutionContext },
1711
+ analyticsIntent: f ? "clarify" : d,
1712
+ analyticsItemId: l || null,
1713
+ analyticsQuestion: u || "",
1004
1714
  status: "success",
1005
- outputMessage: p,
1006
- sharedStatePatch: { portalItemAnalyticsSummaryMemory: { value: y } }
1715
+ outputMessage: f ? 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".' : ""
1007
1716
  };
1008
- }, De = `
1717
+ }, Fa = `
1009
1718
  You are a item summary tool for ArcGIS. Your job is to summarize an item's info based on the provided context.
1010
1719
  Summary rules:
1011
1720
  - The summary should be concise markdown, make sure to format the output nicely so it's easy to read.
@@ -1020,144 +1729,807 @@ Do not include internal identifiers.
1020
1729
  If the user asks for a detailed summary, you may expand the response up to 300 words.
1021
1730
  Item context:
1022
1731
  {context}
1023
- `, k = (e, t) => t ?? e, ot = f.Root({
1024
- ...N(),
1732
+ `, Oa = async (t, e) => {
1733
+ const a = t.analyticsItemId;
1734
+ if (!a)
1735
+ return {
1736
+ status: "success",
1737
+ outputMessage: 'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".'
1738
+ };
1739
+ await p({ text: `Summarizing item ${a}...`, agentName: "analytics" }, e);
1740
+ const n = e?.configurable?.context;
1741
+ x(n);
1742
+ const { portal: o, user: r } = n, { result: s, error: c } = await at(r, o, a);
1743
+ if (c || !s)
1744
+ return await p({ text: "Failed to get item context for summarization", agentName: "analytics" }, e), {
1745
+ status: "success",
1746
+ outputMessage: "Unable to retrieve item context for summarization."
1747
+ };
1748
+ const { context: l } = s, d = await b({
1749
+ promptText: Fa,
1750
+ schema: Ea,
1751
+ modelTier: "default",
1752
+ inputVariables: { context: JSON.stringify(l) }
1753
+ }), { followUpQuestions: u, summary: m } = d, g = Z(t), f = {
1754
+ latestItemId: a,
1755
+ memory: {
1756
+ ...g.memory,
1757
+ [a]: { summary: m, followUpQuestions: u, fullContext: l }
1758
+ }
1759
+ };
1760
+ return u.length && await Y({ type: "suggested-prompts", data: { prompts: u } }, e), {
1761
+ status: "success",
1762
+ outputMessage: m,
1763
+ sharedStatePatch: { portalItemAnalyticsSummaryMemory: { value: f } }
1764
+ };
1765
+ }, K = (t, e) => e ?? t, Ue = h.Root({
1766
+ ...q(),
1025
1767
  // States shared only across nodes in the graph, not between invocations
1026
- analyticsIntent: f({
1027
- reducer: k,
1768
+ analyticsIntent: h({
1769
+ reducer: K,
1028
1770
  default: () => "clarify"
1029
1771
  }),
1030
- analyticsItemId: f({
1031
- reducer: k,
1772
+ analyticsItemId: h({
1773
+ reducer: K,
1032
1774
  default: () => null
1033
1775
  }),
1034
- analyticsQuestion: f({
1035
- reducer: k,
1776
+ analyticsQuestion: h({
1777
+ reducer: K,
1036
1778
  default: () => ""
1037
1779
  })
1038
- }), ze = () => new C(ot).addNode("detectAnalyticsIntent", $e).addNode("summarizePortalItem", Ee).addNode("answerAnalyticsFollowUp", Ne).addEdge(P, "detectAnalyticsIntent").addConditionalEdges("detectAnalyticsIntent", (t) => t.analyticsIntent === "summarize" ? "summarizePortalItem" : t.analyticsIntent === "followUp" ? "answerAnalyticsFollowUp" : h).addEdge("summarizePortalItem", h).addEdge("answerAnalyticsFollowUp", h), Ue = String.raw`- **portal-item-analytics** - Portal item analytics assistant:
1039
- - summarizes ArcGIS portal items from item context
1040
- - suggests follow-up prompts grounded in the item
1041
- `, Re = {
1780
+ }), La = () => new P(Ue).addNode("detectAnalyticsIntent", Ua).addNode("summarizePortalItem", Oa).addNode("answerAnalyticsFollowUp", Da).addEdge(G, "detectAnalyticsIntent").addConditionalEdges("detectAnalyticsIntent", (e) => e.analyticsIntent === "summarize" ? "summarizePortalItem" : e.analyticsIntent === "followUp" ? "answerAnalyticsFollowUp" : w).addEdge("summarizePortalItem", w).addEdge("answerAnalyticsFollowUp", w), ja = String.raw`- **portal-item-analytics** - Portal item analytics assistant:
1781
+ - answers questions about one specific ArcGIS portal item when item context is present
1782
+ - summarizes item details, metadata, and context grounded in that item
1783
+ - suggests follow-up prompts grounded in the same item
1784
+ - use for item-specific requests, not for gallery browsing, featured content, or opening Map Viewer
1785
+ `, Ka = {
1042
1786
  id: "portal-item-analytics",
1043
1787
  name: "Portal Item Analytics",
1044
- description: Ue,
1045
- createGraph: ze,
1046
- workspace: ot
1047
- }, Fe = mt`:host{height:100%;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);display:block;width:100%;--tw-shadow: 0 1px 6px -1px rgba(0, 0, 0, .16), 0 1px 2px -1px rgba(0, 0, 0, .08);--tw-shadow-colored: 0 1px 6px -1px var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.chat-entry{display:flex;flex-direction:column;gap:.75rem;width:100%}.chat-actions{display:flex;justify-content:flex-end;gap:.5rem}.header-actions{display:flex;gap:.5rem;padding-inline-start:.75rem}.navigation-block{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;margin-top:.5rem}.navigation-button{width:100%;margin-block:.25rem}.navigation-block-description{font-size:.75rem;color:var(--calcite-color-text-3)}`;
1048
- function je(e, t) {
1788
+ description: ja,
1789
+ createGraph: La,
1790
+ workspace: Ue
1791
+ }, Va = /^(?:take me to|navigate to|go to|show me|open)\s+(?:the\s+)?/u;
1792
+ function U(t) {
1793
+ return t.toLowerCase().replace(/[^a-z0-9]+/gu, " ").trim().replace(Va, "").trim();
1794
+ }
1795
+ const Ba = i.object({
1796
+ capabilityIds: i.array(i.string()).default([]),
1797
+ confidence: i.number().min(0).max(1).default(0),
1798
+ reason: i.string().default("")
1799
+ }), me = 0.8, Qa = String.raw`You select Portal navigation capabilities for a user's request.
1800
+
1801
+ Select only capability IDs from the supplied candidates. Return an empty array when none fit.
1802
+ A named surface is required: do not select a capability on another Portal surface.
1803
+ Retrieval scores are hints only, not ground truth.
1804
+
1805
+ User request:
1806
+ {userRequest}
1807
+
1808
+ Candidates:
1809
+ {candidates}`, Wa = async (t, e) => {
1810
+ if (t.outputMessage || t.targets.length === 0)
1811
+ return {};
1812
+ const a = v(t.agentExecutionContext.messages).trim(), n = Ja(a, t);
1813
+ if (n.length === 1)
1814
+ return await p(
1815
+ { text: `Selected navigation capability by exact match: ${n[0]}`, agentName: "navigation" },
1816
+ e
1817
+ ), console.info("[arcgis-portal-ai-assistant] navigation capability selection:", {
1818
+ method: "exact-match",
1819
+ request: a,
1820
+ selectedCapabilityIds: n
1821
+ }), { chosenCapabilityIds: n };
1822
+ await p({ text: "Choosing a navigation destination...", agentName: "navigation" }, e);
1823
+ const o = JSON.stringify(
1824
+ t.targets.map(({ capability: r, keywordScore: s, semanticScore: c }) => ({
1825
+ id: r.id,
1826
+ title: r.title,
1827
+ description: r.description,
1828
+ route: r.resolutions.navigate,
1829
+ keywordScore: s,
1830
+ semanticScore: c
1831
+ }))
1832
+ );
1833
+ try {
1834
+ const r = await b({
1835
+ promptText: Qa,
1836
+ schema: Ba,
1837
+ modelTier: "fast",
1838
+ inputVariables: { candidates: o, userRequest: a }
1839
+ }), s = new Set(t.targets.map(({ capability: l }) => l.id)), c = r.capabilityIds.filter((l) => s.has(l));
1840
+ return await p(
1841
+ {
1842
+ text: `Navigation selection: ${c.join(", ") || "none"} (confidence: ${r.confidence.toFixed(2)}, reason: ${r.reason})`,
1843
+ agentName: "navigation"
1844
+ },
1845
+ e
1846
+ ), console.info("[arcgis-portal-ai-assistant] navigation capability selection:", {
1847
+ confidence: r.confidence,
1848
+ method: "structured-model",
1849
+ reason: r.reason,
1850
+ request: a,
1851
+ selectedCapabilityIds: c
1852
+ }), c.length === 0 ? {
1853
+ chosenCapabilityIds: [],
1854
+ status: "failed",
1855
+ summary: "Navigation selection found no matching capability; defer to the Portal Doc Assistant."
1856
+ } : r.confidence < me ? {
1857
+ chosenCapabilityIds: [],
1858
+ status: "failed",
1859
+ summary: `Navigation selection confidence ${r.confidence} is below the required ${me}; defer to the Portal Doc Assistant.`
1860
+ } : { chosenCapabilityIds: c };
1861
+ } catch {
1862
+ return await p(
1863
+ { text: "Navigation selection model unavailable; using retrieval order.", agentName: "navigation" },
1864
+ e
1865
+ ), console.info("[arcgis-portal-ai-assistant] navigation capability selection:", {
1866
+ method: "structured-model-unavailable",
1867
+ request: a,
1868
+ selectedCapabilityIds: []
1869
+ }), { chosenCapabilityIds: [] };
1870
+ }
1871
+ };
1872
+ function Ja(t, e) {
1873
+ const a = U(t);
1874
+ return e.targets.filter(
1875
+ ({ capability: n }) => [n.title, ...n.hints].some(
1876
+ (o) => U(o) === a
1877
+ )
1878
+ ).map(({ capability: n }) => n.id);
1879
+ }
1880
+ const Fe = /* @__PURE__ */ new Set(["1d", "7d", "14d", "30d", "3m", "6m"]), _a = i.object({
1881
+ period: i.string(),
1882
+ startTime: i.string(),
1883
+ endTime: i.string()
1884
+ }), Ya = String.raw`Extract temporal filters for an ArcGIS storage-credits query.
1885
+
1886
+ Return JSON only with these optional string fields:
1887
+ - period
1888
+ - startTime
1889
+ - endTime
1890
+
1891
+ Rules:
1892
+ - period must use <integer><unit> with unit in d,w,m (examples: 7d, 2w, 3m).
1893
+ - If the request is a relative range and period can be determined, always include period.
1894
+ - For "last quarter" or "previous quarter", use calendar-quarter boundaries and include period as 3m with both startTime and endTime.
1895
+ - For "last quarter" or "previous quarter", endTime must be the UTC end of the previous quarter, not "now".
1896
+ - If period matches one of these supported periods and the range ends today, period alone is sufficient:
1897
+ 1d, 7d, 14d, 30d, 3m, 6m.
1898
+ - If the request implies a range not supported as period (for example 2m or 10d), include startTime and endTime.
1899
+ - For custom date ranges (for example "last december"), provide startTime and endTime.
1900
+ - startTime and endTime must be epoch milliseconds as strings.
1901
+ - If the end of range is "now", set endTime to {nowEpochMs}.
1902
+ - If temporal intent is unclear, return empty strings for all fields.
1903
+
1904
+ Now UTC:
1905
+ - ISO: {nowIso}
1906
+ - Epoch ms: {nowEpochMs}
1907
+
1908
+ User request:
1909
+ {userRequest}`;
1910
+ async function Ha(t, e = /* @__PURE__ */ new Date()) {
1911
+ const a = t.trim();
1912
+ if (!a)
1913
+ return {};
1914
+ try {
1915
+ const n = await b({
1916
+ promptText: Ya,
1917
+ schema: _a,
1918
+ modelTier: "fast",
1919
+ inputVariables: {
1920
+ nowEpochMs: String(e.getTime()),
1921
+ nowIso: e.toISOString(),
1922
+ userRequest: a
1923
+ }
1924
+ });
1925
+ return Xa(n, e);
1926
+ } catch (n) {
1927
+ return console.error(n), {};
1928
+ }
1929
+ }
1930
+ function Xa(t, e = /* @__PURE__ */ new Date()) {
1931
+ const a = ge(t.startTime), n = ge(t.endTime), o = Za(t.period);
1932
+ if (o) {
1933
+ if (a !== void 0 && n !== void 0 && a < n)
1934
+ return { period: o, startTime: String(a), endTime: String(n) };
1935
+ const r = Fe.has(o);
1936
+ if (!r || n !== void 0 && !tn(n, e.getTime())) {
1937
+ const c = n ?? e.getTime(), l = en(o, new Date(c));
1938
+ if (l !== void 0)
1939
+ return {
1940
+ period: o,
1941
+ startTime: String(l),
1942
+ endTime: String(c)
1943
+ };
1944
+ }
1945
+ return r ? {
1946
+ period: o,
1947
+ ...a !== void 0 ? { startTime: String(a) } : {},
1948
+ ...n !== void 0 ? { endTime: String(n) } : {}
1949
+ } : { period: o };
1950
+ }
1951
+ return a !== void 0 && n !== void 0 && a < n ? { startTime: String(a), endTime: String(n) } : a !== void 0 ? { startTime: String(a), endTime: String(e.getTime()) } : {};
1952
+ }
1953
+ function Za(t) {
1954
+ const e = t?.trim().match(/^(\d+)\s*([dwm])$/iu);
1955
+ if (!e)
1956
+ return;
1957
+ const a = Number.parseInt(e[1], 10);
1958
+ if (!Number.isFinite(a) || a <= 0)
1959
+ return;
1960
+ const n = e[2].toLowerCase();
1961
+ if (n === "w") {
1962
+ const o = a * 7;
1963
+ if (Fe.has(`${o}d`))
1964
+ return `${o}d`;
1965
+ }
1966
+ return `${a}${n}`;
1967
+ }
1968
+ function en(t, e) {
1969
+ const a = t.match(/^(\d+)([dwm])$/u);
1970
+ if (!a)
1971
+ return;
1972
+ const n = Number.parseInt(a[1], 10);
1973
+ if (!Number.isFinite(n) || n <= 0)
1974
+ return;
1975
+ const o = a[2];
1976
+ if (o === "d")
1977
+ return e.getTime() - n * 24 * 60 * 60 * 1e3;
1978
+ if (o === "w")
1979
+ return e.getTime() - n * 7 * 24 * 60 * 60 * 1e3;
1980
+ const r = new Date(e.getTime());
1981
+ return r.setUTCMonth(r.getUTCMonth() - n), r.getTime();
1982
+ }
1983
+ function ge(t) {
1049
1984
  if (!t)
1050
1985
  return;
1051
- const { destinationType: s } = e;
1052
- switch (s) {
1986
+ const e = Number.parseInt(t, 10);
1987
+ if (!(!Number.isFinite(e) || e <= 0))
1988
+ return e;
1989
+ }
1990
+ function tn(t, e) {
1991
+ const a = new Date(t), n = new Date(e);
1992
+ return a.getUTCFullYear() === n.getUTCFullYear() && a.getUTCMonth() === n.getUTCMonth() && a.getUTCDate() === n.getUTCDate();
1993
+ }
1994
+ async function an(t, e, a, n) {
1995
+ const o = S().find((c) => c.id === t);
1996
+ if (!o)
1997
+ return;
1998
+ const r = o.resolutions.navigate, s = await on(
1999
+ r.routeKey === "group" ? nn(o.buttonLabel, r, n) : A({
2000
+ navigate: r,
2001
+ buttonLabel: o.buttonLabel,
2002
+ capabilityId: o.id
2003
+ }),
2004
+ a
2005
+ );
2006
+ return s && sn(s, e) ? { capability: o, target: s } : void 0;
2007
+ }
2008
+ function nn(t, e, a) {
2009
+ const n = a?.trim();
2010
+ return n ? {
2011
+ destinationType: "portal-group",
2012
+ groupId: n,
2013
+ ...e.hash ? { hash: e.hash } : {},
2014
+ ...e.queryParams ? { queryParams: e.queryParams } : {},
2015
+ ...t ? { buttonLabel: t } : {}
2016
+ } : void 0;
2017
+ }
2018
+ async function on(t, e) {
2019
+ if (!t || !e || !rn(t))
2020
+ return t;
2021
+ const a = await Ha(e);
2022
+ if (!a.period && !a.startTime && !a.endTime)
2023
+ return t;
2024
+ const n = {
2025
+ ...t.queryParams ?? {},
2026
+ ...a.period ? { period: a.period } : {},
2027
+ ...a.startTime ? { startTime: a.startTime } : {},
2028
+ ...a.endTime ? { endTime: a.endTime } : {}
2029
+ };
2030
+ return { ...t, queryParams: n };
2031
+ }
2032
+ function rn(t) {
2033
+ return t.destinationType === "portal-org" && t.hash === "status";
2034
+ }
2035
+ function sn(t, e) {
2036
+ return !e || !!e[t.destinationType];
2037
+ }
2038
+ function he(t) {
2039
+ return t.match(/\b[a-f0-9]{32}\b/iu)?.[0];
2040
+ }
2041
+ const fe = "navigation", ye = "provideGroupId", cn = async (t, e) => {
2042
+ if (t.outputMessage || t.status === "failed")
2043
+ return {};
2044
+ const a = t.targets.find(({ capability: s }) => t.chosenCapabilityIds.includes(s.id)) ?? t.targets[0];
2045
+ if (!a)
2046
+ return {
2047
+ outputMessage: "I couldn't find a matching Portal page. Try asking to open your content, groups, or organization settings.",
2048
+ sharedStatePatch: { navLastAnsweredRequest: { value: we(t) } },
2049
+ status: "success",
2050
+ summary: "Navigation could not find a matching capability; route another agent if appropriate."
2051
+ };
2052
+ const n = we(t), o = ln(a.capability.resolutions.navigate, n, e), r = await an(
2053
+ a.capability.id,
2054
+ void 0,
2055
+ n,
2056
+ o
2057
+ );
2058
+ return r ? (await p({ text: "Preparing navigation...", agentName: "navigation" }, e), await O(r.target, e), {
2059
+ outputMessage: t.chosenCapabilityIds.length ? a.capability.description : `The closest place to start is ${a.capability.title}. Click the button below to open it.`,
2060
+ status: "success",
2061
+ summary: `Navigation suggested ${a.capability.id}${t.retrievalDegraded ? " using keyword-only retrieval" : ""}.`,
2062
+ sharedStatePatch: { navLastAnsweredRequest: { value: n } }
2063
+ }) : (console.warn(`Navigation capability ${a.capability.id} was not found in the resolver.`), {
2064
+ outputMessage: "I found a possible destination, but couldn't resolve a valid Portal navigation target. Try asking to open your content, groups, or organization settings.",
2065
+ status: "success",
2066
+ summary: `Navigation resolver could not map ${a.capability.id}.`,
2067
+ sharedStatePatch: { navLastAnsweredRequest: { value: n } }
2068
+ });
2069
+ };
2070
+ function we(t) {
2071
+ return v(t.agentExecutionContext.messages) || t.agentExecutionContext.userRequest;
2072
+ }
2073
+ function ln(t, e, a) {
2074
+ if (t.routeKey !== "group")
2075
+ return;
2076
+ const n = he(e);
2077
+ if (n)
2078
+ return n;
2079
+ const o = un(a);
2080
+ if (o?.agentId === fe && o.id === ye) {
2081
+ const s = typeof o.payload == "string" ? he(o.payload) : void 0;
2082
+ if (s)
2083
+ return s;
2084
+ }
2085
+ const r = {
2086
+ agentId: fe,
2087
+ id: ye,
2088
+ kind: "textInput",
2089
+ message: "Enter the group ID to open."
2090
+ };
2091
+ throw new _(r);
2092
+ }
2093
+ function un(t) {
2094
+ const e = t?.configurable;
2095
+ if (!e || typeof e != "object" || !("hitlResponse" in e))
2096
+ return;
2097
+ const a = e.hitlResponse;
2098
+ if (!a || typeof a != "object" || !("agentId" in a) || !("id" in a) || !("payload" in a))
2099
+ return;
2100
+ const { agentId: n, id: o, payload: r } = a;
2101
+ return typeof n == "string" && typeof o == "string" ? { agentId: n, id: o, payload: r } : void 0;
2102
+ }
2103
+ async function Oe(t) {
2104
+ return t.length === 0 ? [] : (await ct.getDefault().load(), await Ye(t));
2105
+ }
2106
+ const dn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2107
+ __proto__: null,
2108
+ generateEmbeddings: Oe
2109
+ }, Symbol.toStringTag, { value: "Module" }));
2110
+ function pn(t) {
2111
+ const e = [], a = `${t.title}. ${t.description}`;
2112
+ a.trim().length > 0 && e.push({ field: "summary", text: a });
2113
+ const n = t.hints;
2114
+ if (Array.isArray(n))
2115
+ for (const o of n)
2116
+ typeof o == "string" && o.trim().length > 0 && e.push({ field: "hint", text: o });
2117
+ return e;
2118
+ }
2119
+ let D, ee, $ = 0;
2120
+ async function mn(t = {}) {
2121
+ const e = $;
2122
+ return D ??= hn(t.embed ?? fn).then((a) => (e === $ && (ee = a), a)).catch((a) => {
2123
+ throw e === $ && (D = void 0), a;
2124
+ }), await D;
2125
+ }
2126
+ function gn() {
2127
+ return ee;
2128
+ }
2129
+ function be() {
2130
+ $ += 1, ee = void 0, D = void 0;
2131
+ }
2132
+ async function hn(t) {
2133
+ const e = yn(), a = await t(e.map((n) => n.text));
2134
+ if (a.length !== e.length)
2135
+ throw new Error(`Expected ${e.length} vectors, got ${a.length}`);
2136
+ return e.map((n, o) => ({
2137
+ ...n,
2138
+ vector: a[o]
2139
+ }));
2140
+ }
2141
+ async function fn(t) {
2142
+ const { generateEmbeddings: e } = await Promise.resolve().then(() => dn);
2143
+ return await e(t);
2144
+ }
2145
+ function yn() {
2146
+ return S().flatMap(
2147
+ (t) => pn(t).map(({ field: e, text: a }) => ({
2148
+ capabilityId: t.id,
2149
+ field: e,
2150
+ text: a
2151
+ }))
2152
+ );
2153
+ }
2154
+ const ve = 1.2, Ie = 0.75, wn = 60, bn = 0.65, V = {
2155
+ description: 1,
2156
+ hint: 2,
2157
+ title: 3
2158
+ };
2159
+ let J;
2160
+ function vn() {
2161
+ J = void 0;
2162
+ }
2163
+ async function In(t, e = {}) {
2164
+ const a = Mn(Le(t));
2165
+ let n = [], o = !1, r;
2166
+ if (t.trim()) {
2167
+ const s = e.loadEmbeddings, c = gn();
2168
+ if (!s && !c)
2169
+ o = !0, r = "Capability embeddings are still loading.";
2170
+ else
2171
+ try {
2172
+ if (s) {
2173
+ const [l, d] = await Promise.all([
2174
+ (e.embedQuery ?? xe)(t),
2175
+ s()
2176
+ ]);
2177
+ n = Se(l, d);
2178
+ } else if (c) {
2179
+ const l = await (e.embedQuery ?? xe)(t);
2180
+ n = Se(l, c);
2181
+ }
2182
+ } catch {
2183
+ o = !0, r = "Semantic search is unavailable.";
2184
+ }
2185
+ }
2186
+ return {
2187
+ degraded: o,
2188
+ ...r ? { degradedReason: r } : {},
2189
+ // RRF combines ranks rather than raw scores because BM25 and cosine
2190
+ // similarity are on different scales.
2191
+ matches: An(a, n, e.topN ?? 5)
2192
+ };
2193
+ }
2194
+ function Sn() {
2195
+ return J ??= xn(S()), J;
2196
+ }
2197
+ function xn(t) {
2198
+ const e = /* @__PURE__ */ new Map(), a = t.map((n) => {
2199
+ const o = /* @__PURE__ */ new Map();
2200
+ B(o, n.title, V.title), B(o, n.description, V.description);
2201
+ for (const r of n.hints)
2202
+ B(o, r, V.hint);
2203
+ for (const r of o.keys())
2204
+ e.set(r, (e.get(r) ?? 0) + 1);
2205
+ return {
2206
+ capability: n,
2207
+ length: Cn(o),
2208
+ termFrequencies: o
2209
+ };
2210
+ });
2211
+ return {
2212
+ averageDocumentLength: a.length ? a.reduce((n, o) => n + o.length, 0) / a.length : 0,
2213
+ documentFrequency: e,
2214
+ documents: a
2215
+ };
2216
+ }
2217
+ function B(t, e, a) {
2218
+ for (const n of Le(e))
2219
+ t.set(n, (t.get(n) ?? 0) + a);
2220
+ }
2221
+ function Cn(t) {
2222
+ return [...t.values()].reduce((e, a) => e + a, 0);
2223
+ }
2224
+ function Le(t) {
2225
+ return t.toLowerCase().split(/[^a-z0-9]+/u).filter(Boolean);
2226
+ }
2227
+ function Mn(t) {
2228
+ const e = Sn(), a = new Set(t), n = e.documents.length;
2229
+ return e.documents.map(({ capability: o, length: r, termFrequencies: s }) => {
2230
+ let c = 0;
2231
+ for (const l of a) {
2232
+ const d = s.get(l), u = e.documentFrequency.get(l);
2233
+ if (!d || !u)
2234
+ continue;
2235
+ const m = Math.log(1 + (n - u + 0.5) / (u + 0.5)), g = ve * (1 - Ie + Ie * (r / e.averageDocumentLength));
2236
+ c += m * (d * (ve + 1) / (d + g));
2237
+ }
2238
+ return { capability: o, score: c };
2239
+ }).filter(({ score: o }) => o > 0).sort(je);
2240
+ }
2241
+ function Se(t, e) {
2242
+ const a = /* @__PURE__ */ new Map();
2243
+ for (const o of e) {
2244
+ const r = Tn(t, o.vector);
2245
+ if (r === void 0)
2246
+ continue;
2247
+ const s = a.get(o.capabilityId);
2248
+ (s === void 0 || r > s) && a.set(o.capabilityId, r);
2249
+ }
2250
+ const n = new Map(S().map((o) => [o.id, o]));
2251
+ return [...a.entries()].flatMap(([o, r]) => {
2252
+ const s = n.get(o);
2253
+ return s && r >= bn ? [{ capability: s, score: r }] : [];
2254
+ }).sort(je);
2255
+ }
2256
+ function Tn(t, e) {
2257
+ if (t.length === 0 || t.length !== e.length)
2258
+ return;
2259
+ let a = 0, n = 0, o = 0;
2260
+ for (let s = 0; s < t.length; s += 1)
2261
+ a += t[s] * e[s], n += t[s] ** 2, o += e[s] ** 2;
2262
+ const r = Math.sqrt(n) * Math.sqrt(o);
2263
+ return r === 0 ? void 0 : a / r;
2264
+ }
2265
+ async function xe(t) {
2266
+ const [e] = await Oe([t]);
2267
+ if (!e)
2268
+ throw new Error("Expected one query embedding.");
2269
+ return e;
2270
+ }
2271
+ function An(t, e, a) {
2272
+ const n = /* @__PURE__ */ new Map();
2273
+ return Ce(n, t, "keyword"), Ce(n, e, "semantic"), [...n.values()].sort((o, r) => r.score !== o.score ? r.score - o.score : (r.semanticScore ?? 0) !== (o.semanticScore ?? 0) ? (r.semanticScore ?? 0) - (o.semanticScore ?? 0) : (r.keywordScore ?? 0) !== (o.keywordScore ?? 0) ? (r.keywordScore ?? 0) - (o.keywordScore ?? 0) : o.capability.id.localeCompare(r.capability.id)).slice(0, Math.max(0, a));
2274
+ }
2275
+ function Ce(t, e, a) {
2276
+ for (const [n, { capability: o, score: r }] of e.entries()) {
2277
+ const s = n + 1, c = t.get(o.id) ?? { capability: o, score: 0 };
2278
+ c.score += 1 / (wn + s), a === "keyword" ? (c.keywordRank = s, c.keywordScore = r) : (c.semanticRank = s, c.semanticScore = r), t.set(o.id, c);
2279
+ }
2280
+ }
2281
+ function je(t, e) {
2282
+ return e.score - t.score || t.capability.id.localeCompare(e.capability.id);
2283
+ }
2284
+ const Nn = async (t, e) => {
2285
+ await p({ text: "Finding a place to navigate...", agentName: "navigation" }, e);
2286
+ const a = v(t.agentExecutionContext.messages).trim();
2287
+ try {
2288
+ const n = await In(a, { topN: 5 });
2289
+ return await p(
2290
+ {
2291
+ text: `Navigation candidates: ${Gn(n.matches)}`,
2292
+ agentName: "navigation"
2293
+ },
2294
+ e
2295
+ ), console.table(
2296
+ n.matches.map(({ capability: o, keywordRank: r, keywordScore: s, semanticRank: c, semanticScore: l, score: d }) => ({
2297
+ capability: o.title,
2298
+ fusedScore: d,
2299
+ keywordRank: r,
2300
+ keywordScore: s,
2301
+ semanticRank: c,
2302
+ semanticScore: l
2303
+ }))
2304
+ ), n.degradedReason && console.info("[arcgis-portal-ai-assistant] navigation semantic search:", n.degradedReason), {
2305
+ chosenCapabilityIds: [],
2306
+ retrievalDegraded: n.degradedReason ?? "",
2307
+ targets: Pn(a, n.matches)
2308
+ };
2309
+ } catch {
2310
+ return {
2311
+ chosenCapabilityIds: [],
2312
+ outputMessage: "I couldn't look up a Portal page right now. Please try again.",
2313
+ status: "failed",
2314
+ targets: []
2315
+ };
2316
+ }
2317
+ };
2318
+ function Pn(t, e) {
2319
+ const a = U(t), n = e.filter(
2320
+ ({ capability: r }) => [r.title, ...r.hints].some(
2321
+ (s) => U(s) === a
2322
+ )
2323
+ );
2324
+ if (n.length !== 1)
2325
+ return e;
2326
+ const [o] = n;
2327
+ return [o, ...e.filter((r) => r !== o)];
2328
+ }
2329
+ function Gn(t) {
2330
+ return t.map(
2331
+ ({ capability: e, keywordScore: a, semanticScore: n }) => `${e.title} (keyword: ${Me(a)}, semantic: ${Me(n)})`
2332
+ ).join("; ") || "none";
2333
+ }
2334
+ function Me(t) {
2335
+ return t?.toFixed(3) ?? "none";
2336
+ }
2337
+ const Q = (t, e) => e ?? t, Ke = h.Root({
2338
+ ...q(),
2339
+ chosenCapabilityIds: h({ reducer: Q, default: () => [] }),
2340
+ // Empty when hybrid keyword-and-semantic retrieval succeeds; otherwise
2341
+ // contains the semantic-search failure reason for response diagnostics.
2342
+ retrievalDegraded: h({ reducer: Q, default: () => "" }),
2343
+ targets: h({ reducer: Q, default: () => [] })
2344
+ }), qn = () => new P(Ke).addNode("retrieveNavigationTargets", Nn).addNode("chooseNavigationTargets", Wa).addNode("respondWithNavigation", cn).addEdge(G, "retrieveNavigationTargets").addEdge("retrieveNavigationTargets", "chooseNavigationTargets").addEdge("chooseNavigationTargets", "respondWithNavigation").addEdge("respondWithNavigation", w);
2345
+ function kn() {
2346
+ return String.raw`- **Navigation** — Takes the user to the portal page or app that fulfills their request. Presenting the button COMPLETES the request — no follow-up step is needed.
2347
+
2348
+ Route here for **navigation intent** ("take me to the map viewer", "open content", "where is X?") and for **action intent** ("publish a scene layer", "create a web map", "share this item") — for an action, Navigation takes the user to the page where that workflow starts. Navigation searches the capability registry itself, so don't rule it out because a page isn't named here.
2349
+
2350
+ If Navigation just asked the user for a missing value (such as an item id), route the user's short follow-up answer — often just an id like "797f6c0d300a4ddc87a8ae14cd2eeb8e" — back here so it can finish.
2351
+
2352
+ Do NOT route here for:
2353
+ - An action another agent actually performs — e.g. "create group" is EXECUTED by group agent. Route it here only when the user explicitly asks to navigate ("take me to create group")
2354
+ - Requests that mix navigation with a question or explanation ("take me there and explain how") → use Help
2355
+
2356
+ Do not dispatch Navigation again for the same request in the same turn: once it has responded, the task is done.`;
2357
+ }
2358
+ const En = {
2359
+ id: "navigation",
2360
+ name: "Portal Navigation",
2361
+ get description() {
2362
+ return kn();
2363
+ },
2364
+ createGraph: qn,
2365
+ workspace: Ke
2366
+ }, zn = We`:host{height:100%;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);display:block;width:100%;--tw-shadow: 0 1px 6px -1px rgba(0, 0, 0, .16), 0 1px 2px -1px rgba(0, 0, 0, .08);--tw-shadow-colored: 0 1px 6px -1px var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.chat-entry{display:flex;flex-direction:column;gap:.75rem;width:100%}.chat-actions{display:flex;justify-content:flex-end;gap:.5rem}.header-actions{display:flex;gap:.5rem;padding-inline-start:.75rem}.navigation-block{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;margin-top:.5rem}.navigation-button{width:100%;margin-block:.25rem}.navigation-block-description{font-size:.75rem;color:var(--calcite-color-text-3)}`;
2367
+ function Rn(t, e) {
2368
+ if (!e)
2369
+ return;
2370
+ const { destinationType: a } = t;
2371
+ switch (a) {
1053
2372
  case "portal-content":
2373
+ return e[a]?.(t.hash, t.queryParams);
1054
2374
  case "portal-groups":
1055
- return t[s];
2375
+ return e[a]?.(t.hash);
2376
+ case "portal-org":
2377
+ return e[a]?.(t.hash, t.queryParams);
2378
+ case "portal-gallery":
2379
+ return e[a];
2380
+ case "portal-map-viewer":
2381
+ case "portal-notebooks":
2382
+ case "portal-scene-viewer":
2383
+ return e[a];
1056
2384
  case "portal-item":
1057
- return t[s]?.(e.itemId);
2385
+ return e[a]?.(t.itemId);
1058
2386
  case "portal-group":
1059
- return t[s]?.(e.groupId);
2387
+ return e[a]?.(t.groupId, t.hash, t.queryParams);
1060
2388
  default:
1061
- return T(s);
2389
+ return F(a);
1062
2390
  }
1063
2391
  }
1064
- function Oe(e) {
1065
- const t = Ft.safeParse(e);
1066
- return t.success ? t.data : void 0;
2392
+ function Dn(t) {
2393
+ const e = kt.safeParse(t);
2394
+ return e.success ? e.data : void 0;
2395
+ }
2396
+ function $n(t, e) {
2397
+ const a = e.navigation;
2398
+ switch (t.destinationType) {
2399
+ case "portal-content":
2400
+ switch (t.hash) {
2401
+ case "favorites":
2402
+ return a.openContentFavorites;
2403
+ case "group":
2404
+ return a.openContentGroup;
2405
+ case "living-atlas":
2406
+ return a.openContentLivingAtlas;
2407
+ case "org":
2408
+ return a.openContentOrganization;
2409
+ default:
2410
+ return a.openContent;
2411
+ }
2412
+ case "portal-gallery":
2413
+ return a.openGallery;
2414
+ case "portal-groups":
2415
+ switch (t.hash) {
2416
+ case "featured":
2417
+ return a.openGroupsFeatured;
2418
+ case "my":
2419
+ return a.openGroupsMy;
2420
+ case "organization":
2421
+ return a.openGroupsOrganization;
2422
+ default:
2423
+ return a.openGroups;
2424
+ }
2425
+ case "portal-map-viewer":
2426
+ return a.openMapViewer;
2427
+ case "portal-notebooks":
2428
+ return a.openNotebooks;
2429
+ case "portal-scene-viewer":
2430
+ return a.openSceneViewer;
2431
+ case "portal-org":
2432
+ return a.openOrgSettings;
2433
+ case "portal-item":
2434
+ return a.openItem;
2435
+ case "portal-group":
2436
+ return a.openGroup;
2437
+ default:
2438
+ return F(t);
2439
+ }
1067
2440
  }
1068
- class Ve extends lt {
2441
+ class Un extends Be {
1069
2442
  constructor() {
1070
- super(...arguments), this.t9n = pt({ blocking: !0 }), this.assistantEl = M(), this.formEl = M(), this.voiceInputEl = M(), this.inputEl = M(), this.navigationSlotElements = /* @__PURE__ */ new Map(), this.handleSlottableRequest = (t) => {
1071
- const s = t.detail, a = s.data?.block;
1072
- if (!a)
2443
+ super(), this.t9n = _e({ blocking: !0 }), this.assistantEl = E(), this.formEl = E(), this.voiceInputEl = E(), this.inputEl = E(), this.navigationSlotElements = /* @__PURE__ */ new Map(), this.handleSlottableRequest = (e) => {
2444
+ const a = e.detail, n = a.data?.block;
2445
+ if (!n)
1073
2446
  return;
1074
- const r = this.getNavigationAction(a);
1075
- r && this.upsertNavigationSlotElement(s.slotName, r);
1076
- }, this.inputText = "", this.showVoiceInput = !0, this.isListening = !1, this.isVoiceInputDisabled = !1, this.interrupt = null, this.autoDestroyDisabled = !1, this.defaultClosed = !1, this.arcgisPortalNavigationRequest = ct();
2447
+ const o = this.getNavigationAction(n);
2448
+ o && this.upsertNavigationSlotElement(a.slotName, o);
2449
+ }, this.inputText = "", this.showVoiceInput = !0, this.isListening = !1, this.isVoiceInputDisabled = !1, this.autoDestroyDisabled = !1, this.defaultClosed = !1, this.useProdDocAssistant = !1, this.arcgisPortalNavigationRequest = Qe(), S();
1077
2450
  }
1078
2451
  static {
1079
- this.properties = { inputText: 16, showVoiceInput: 16, isListening: 16, isVoiceInputDisabled: 16, interrupt: 16, autoDestroyDisabled: 5, portal: 0, user: 0, config: 0, navigationTargetMap: 0, defaultClosed: 5 };
2452
+ this.properties = { inputText: 16, showVoiceInput: 16, isListening: 16, isVoiceInputDisabled: 16, autoDestroyDisabled: 5, portal: 0, user: 0, config: 0, navigationTargetMap: 0, disabledAgents: 0, defaultClosed: 5, navigationCapabilities: 0, useProdDocAssistant: 5 };
1080
2453
  }
1081
2454
  static {
1082
- this.styles = Fe;
2455
+ this.styles = zn;
2456
+ }
2457
+ async load() {
2458
+ await this.refreshCapabilityEmbeddings();
1083
2459
  }
1084
- getNavigationAction(t) {
1085
- if (t?.type !== _)
2460
+ willUpdate(e) {
2461
+ !this.hasUpdated || !e.has("navigationCapabilities") || this.refreshCapabilityEmbeddings();
2462
+ }
2463
+ async clearEmbeddingsCache() {
2464
+ be();
2465
+ }
2466
+ isAgentEnabled(e) {
2467
+ return !this.disabledAgents?.[e];
2468
+ }
2469
+ async refreshCapabilityEmbeddings() {
2470
+ try {
2471
+ S(this.navigationCapabilities), vn(), be(), await mn();
2472
+ } catch (e) {
2473
+ console.warn("[arcgis-portal-ai-assistant] embeddings warm-up failed:", e);
2474
+ }
2475
+ }
2476
+ getNavigationAction(e) {
2477
+ if (e?.type !== Ne)
1086
2478
  return;
1087
- const s = Oe(t.data);
1088
- if (!s)
2479
+ const a = e.data, n = Dn(a);
2480
+ if (!n)
1089
2481
  return;
1090
- const a = je(s, this.navigationTargetMap);
1091
- if (a)
1092
- return { href: a, targetDetail: s, label: this.getNavigationText(s.destinationType) };
2482
+ const o = Rn(a, this.navigationTargetMap);
2483
+ if (o)
2484
+ return {
2485
+ href: o,
2486
+ targetDetail: a,
2487
+ label: a?.buttonLabel || $n(n, this.t9n)
2488
+ };
1093
2489
  }
1094
- upsertNavigationSlotElement(t, s) {
1095
- const a = this.assistantEl.value;
1096
- if (!a)
2490
+ upsertNavigationSlotElement(e, a) {
2491
+ const n = this.assistantEl.value;
2492
+ if (!n)
1097
2493
  return;
1098
- let r = this.navigationSlotElements.get(t);
1099
- r || (r = document.createElement("div"), r.slot = t, this.navigationSlotElements.set(t, r), a.append(r)), dt(G`<div><calcite-button class="navigation-button" appearance=outline width=full .href=${s.href} icon-end=launch @click=${(i) => {
1100
- i.preventDefault(), this.arcgisPortalNavigationRequest.emit({
1101
- href: s.href,
1102
- targetDetail: s.targetDetail
2494
+ const o = `navigation:${e}`;
2495
+ let r = this.navigationSlotElements.get(o);
2496
+ r || (r = document.createElement("div"), r.slot = e, this.navigationSlotElements.set(o, r), n.append(r)), Je(I`<div><calcite-button class="navigation-button" appearance=outline width=full .href=${a.href} icon-end=launch @click=${(s) => {
2497
+ s.preventDefault(), this.arcgisPortalNavigationRequest.emit({
2498
+ href: a.href,
2499
+ targetDetail: a.targetDetail
1103
2500
  });
1104
- }}>${s.label}</calcite-button>${s.description ? G`<div class="navigation-block-description">${s.description}</div>` : null}</div>`, r);
1105
- }
1106
- getNavigationText(t) {
1107
- const s = this.t9n.navigation;
1108
- switch (t) {
1109
- case "portal-content":
1110
- return s.openContent;
1111
- case "portal-groups":
1112
- return s.openGroups;
1113
- case "portal-item":
1114
- return s.openItem;
1115
- case "portal-group":
1116
- return s.openGroup;
1117
- default:
1118
- return T(t);
1119
- }
2501
+ }}>${a.label}</calcite-button>${a.description ? I`<div class="navigation-block-description">${a.description}</div>` : null}</div>`, r);
1120
2502
  }
1121
2503
  render() {
1122
- const { t9n: t, inputText: s, portal: a, user: r, navigationTargetMap: i, showVoiceInput: l, isListening: u, isVoiceInputDisabled: c } = this;
1123
- return G`<arcgis-assistant log-enabled keep-suggested-prompts .heading=${t.heading} .entryMessage=${t.entryMessage} @arcgisSlottableRequest=${this.handleSlottableRequest} @arcgisInterrupt=${({ detail: n }) => {
1124
- this.interrupt = n;
1125
- }} @arcgisInterruptCancel=${() => {
1126
- this.interrupt = null;
1127
- }} @arcgisInterruptSubmit=${() => {
1128
- this.interrupt = null;
1129
- }} @arcgisPromptSelect=${({ detail: n }) => {
1130
- this.inputText = n.prompt, requestAnimationFrame(() => {
2504
+ const { t9n: e, inputText: a, portal: n, user: o, navigationTargetMap: r, showVoiceInput: s, isListening: c, isVoiceInputDisabled: l, useProdDocAssistant: d } = this;
2505
+ return I`<arcgis-assistant log-enabled keep-suggested-prompts .heading=${e.heading} .entryMessage=${e.entryMessage} @arcgisSlottableRequest=${this.handleSlottableRequest} @arcgisPromptSelect=${({ detail: u }) => {
2506
+ this.inputText = u.prompt, requestAnimationFrame(() => {
1131
2507
  this.inputEl.value?.focusTextArea();
1132
2508
  });
1133
- }} ${A(this.assistantEl)}><div slot=header-actions-start class="header-actions"><calcite-icon icon=effects></calcite-icon></div><form slot=chat-entry class="chat-entry" @submit=${(n) => {
1134
- n.preventDefault();
1135
- const m = s.trim();
2509
+ }} ${z(this.assistantEl)}><div slot=header-actions-start class="header-actions"><calcite-icon icon=effects></calcite-icon></div><form slot=chat-entry class="chat-entry" @submit=${(u) => {
2510
+ u.preventDefault();
2511
+ const m = a.trim();
1136
2512
  m && (this.assistantEl.value?.submitMessage(m), this.inputText = "");
1137
- }} ${A(this.formEl)}><arcgis-portal-mentionable-text-area .portal=${a} .user=${r} rows=3 .popoverListLabel=${t.mentionEntities} .placeholder=${t.placeholder} .value=${s} @arcgisUserMentionableTextAreaKeyDown=${({ detail: n }) => {
1138
- n.key === "Enter" && !n.shiftKey && (n.preventDefault(), this.formEl.value?.requestSubmit());
1139
- }} @arcgisUserMentionableTextAreaChange=${({ detail: n }) => {
1140
- this.inputText = n ?? "";
1141
- }} ${A(this.inputEl)}></arcgis-portal-mentionable-text-area><div class="chat-actions"><arcgis-portal-voice-input @arcgisVoiceInputStart=${() => {
2513
+ }} ${z(this.formEl)}><arcgis-portal-mentionable-text-area .portal=${n} .user=${o} rows=3 .popoverListLabel=${e.mentionEntities} .placeholder=${e.placeholder} .value=${a} @arcgisUserMentionableTextAreaKeyDown=${({ detail: u }) => {
2514
+ u.key === "Enter" && !u.shiftKey && (u.preventDefault(), this.formEl.value?.requestSubmit());
2515
+ }} @arcgisUserMentionableTextAreaChange=${({ detail: u }) => {
2516
+ this.inputText = u ?? "";
2517
+ }} ${z(this.inputEl)}></arcgis-portal-mentionable-text-area><div class="chat-actions"><arcgis-portal-voice-input @arcgisVoiceInputStart=${() => {
1142
2518
  this.isListening = !0, this.isVoiceInputDisabled = !1;
1143
2519
  }} @arcgisVoiceInputStop=${() => {
1144
2520
  this.isListening = !1, this.isVoiceInputDisabled = !1;
1145
- }} @arcgisVoiceInputError=${(n) => {
1146
- n.detail.errorCode === "not-supported" && (this.showVoiceInput = !1);
1147
- }} @arcgisVoiceInputInterimTranscription=${(n) => {
1148
- this.inputText = n.detail.text;
1149
- }} ${A(this.voiceInputEl)}></arcgis-portal-voice-input>${l && G`<calcite-button icon-start=microphone .label=${t.voiceInput} round .disabled=${c} .appearance=${u ? "solid" : "outline-fill"} @click=${async () => {
2521
+ }} @arcgisVoiceInputError=${(u) => {
2522
+ u.detail.errorCode === "not-supported" && (this.showVoiceInput = !1);
2523
+ }} @arcgisVoiceInputInterimTranscription=${(u) => {
2524
+ this.inputText = u.detail.text;
2525
+ }} ${z(this.voiceInputEl)}></arcgis-portal-voice-input>${s && I`<calcite-button icon-start=microphone .label=${e.voiceInput} round .disabled=${l} .appearance=${c ? "solid" : "outline-fill"} @click=${async () => {
1150
2526
  this.isVoiceInputDisabled = !0;
1151
- const n = this.voiceInputEl.value;
1152
- u ? await n?.stopListening() : await n?.startListening();
1153
- }}></calcite-button>` || ""}<calcite-button type=submit icon-start=send round .disabled=${!s.trim()} .label=${t.send}>${t.send}</calcite-button></div></form><arcgis-assistant-agent .agent=${Re} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent><arcgis-assistant-agent .agent=${Bt} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent><arcgis-assistant-agent .agent=${se} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent><arcgis-assistant-agent .agent=${Me} .context=${{ portal: a, user: r, navigationTargetMap: i }}></arcgis-assistant-agent>${this.interrupt && G`<arcgis-portal-ai-assistant-interrupt slot=interrupt .type=${this.interrupt.type} .message=${this.interrupt.message} .options=${this.interrupt.options} @arcgisSubmit=${({ detail: n }) => {
1154
- this.assistantEl.value?.submitInterrupt(n);
1155
- }} @arcgisCancel=${() => {
1156
- this.assistantEl.value?.cancelInterrupt();
1157
- }}></arcgis-portal-ai-assistant-interrupt>` || ""}</arcgis-assistant>`;
2527
+ const u = this.voiceInputEl.value;
2528
+ c ? await u?.stopListening() : await u?.startListening();
2529
+ }}></calcite-button>` || ""}<calcite-button type=submit icon-start=send round .disabled=${!a.trim()} .label=${e.send}>${e.send}</calcite-button></div></form>${this.isAgentEnabled("itemAnalytics") && I`<arcgis-assistant-agent .agent=${Ka} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("groupCreation") && I`<arcgis-assistant-agent .agent=${Dt} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("docAssistant") && I`<arcgis-assistant-agent .agent=${la} .context=${{ portal: n, user: o, navigationTargetMap: r, useProdDocAssistant: d }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("groupAnalytics") && I`<arcgis-assistant-agent .agent=${qa} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}${this.isAgentEnabled("navigation") && I`<arcgis-assistant-agent .agent=${En} .context=${{ portal: n, user: o, navigationTargetMap: r }}></arcgis-assistant-agent>` || ""}</arcgis-assistant>`;
1158
2530
  }
1159
2531
  }
1160
- ut("arcgis-portal-ai-assistant", Ve);
2532
+ Ve("arcgis-portal-ai-assistant", Un);
1161
2533
  export {
1162
- Ve as ArcgisPortalAiAssistant
2534
+ Un as ArcgisPortalAiAssistant
1163
2535
  };