@arcgis/ai-components 5.1.0-next.6 → 5.1.0-next.8

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 (77) hide show
  1. package/dist/cdn/2S4DQWU7.js +2 -0
  2. package/dist/cdn/46Q4W2ZL.js +2 -0
  3. package/dist/cdn/{4Y73V2HU.js → AGZUEMOX.js} +1 -1
  4. package/dist/cdn/{UY4FI7AP.js → D6OOXTNF.js} +1 -1
  5. package/dist/cdn/I4LOCAOT.js +2 -0
  6. package/dist/cdn/JJPTDO6D.js +2 -0
  7. package/dist/cdn/JVR66VPL.js +3 -0
  8. package/dist/cdn/KDL663TG.js +2 -0
  9. package/dist/cdn/{2PLHSU7P.js → MN4FA32I.js} +65 -65
  10. package/dist/cdn/MYKSIL6I.js +2 -0
  11. package/dist/cdn/NSM3CLQ7.js +2 -0
  12. package/dist/cdn/OJUEJ4RT.js +2 -0
  13. package/dist/cdn/PQHYDFCL.js +2 -0
  14. package/dist/cdn/TISLVKGP.js +2 -0
  15. package/dist/cdn/TNI4DRHG.js +2 -0
  16. package/dist/cdn/{AIAY4NON.js → TTJBCQZA.js} +77 -68
  17. package/dist/cdn/{26V7SXDR.js → VG7GKLZR.js} +1 -1
  18. package/dist/cdn/{NKNUZCLA.js → W2A22QZU.js} +15 -0
  19. package/dist/cdn/WAO4LVNK.js +67 -0
  20. package/dist/cdn/WFEBJPQ4.js +2 -0
  21. package/dist/cdn/WTK5H7Z6.js +2 -0
  22. package/dist/cdn/ZGRFMSA2.js +2 -0
  23. package/dist/cdn/index.js +1 -1
  24. package/dist/cdn/main.css +1 -1
  25. package/dist/chunks/converterUtils.js +117 -0
  26. package/dist/chunks/utils.js +12 -14
  27. package/dist/chunks/utils2.js +3 -2
  28. package/dist/components/arcgis-assistant/customElement.d.ts +29 -11
  29. package/dist/components/arcgis-assistant/customElement.js +143 -125
  30. package/dist/components/arcgis-assistant/types.d.ts +29 -0
  31. package/dist/components/arcgis-assistant-chat/customElement.d.ts +8 -6
  32. package/dist/components/arcgis-assistant-chat/customElement.js +12 -12
  33. package/dist/components/arcgis-assistant-chat-card/customElement.d.ts +12 -5
  34. package/dist/components/arcgis-assistant-chat-card/customElement.js +59 -25
  35. package/dist/components/arcgis-assistant-chat-card/index.js +2 -0
  36. package/dist/components/arcgis-assistant-chat-card-content/customElement.js +14 -12
  37. package/dist/components/arcgis-assistant-chat-card-content/index.js +1 -0
  38. package/dist/components/arcgis-assistant-chat-entry/customElement.d.ts +5 -2
  39. package/dist/components/arcgis-assistant-chat-entry/customElement.js +42 -20
  40. package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +5 -5
  41. package/dist/components/arcgis-assistant-help-agent/customElement.d.ts +33 -0
  42. package/dist/components/arcgis-assistant-help-agent/customElement.js +26 -0
  43. package/dist/components/arcgis-assistant-help-agent/index.d.ts +1 -0
  44. package/dist/components/arcgis-assistant-help-agent/index.js +1 -0
  45. package/dist/components/arcgis-assistant-interrupt/customElement.d.ts +1 -1
  46. package/dist/components/arcgis-assistant-interrupt/customElement.js +8 -8
  47. package/dist/components/arcgis-assistant-layer-filter-agent/customElement.js +2 -2
  48. package/dist/components/arcgis-assistant-layer-query-agent/customElement.js +11 -11
  49. package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +6 -6
  50. package/dist/components/arcgis-assistant-navigation-agent/customElement.js +5 -5
  51. package/dist/components/arcgis-assistant-shell/customElement.d.ts +3 -0
  52. package/dist/components/arcgis-assistant-shell/customElement.js +12 -11
  53. package/dist/docs/api.json +1 -1
  54. package/dist/docs/docs.json +1 -1
  55. package/dist/docs/vscode.html-custom-data.json +1 -1
  56. package/dist/docs/web-types.json +1 -1
  57. package/dist/index.d.ts +16 -0
  58. package/dist/loader.js +8 -7
  59. package/dist/types/lumina.d.ts +19 -5
  60. package/dist/types/preact.d.ts +20 -5
  61. package/dist/types/react.d.ts +21 -5
  62. package/dist/types/stencil.d.ts +19 -5
  63. package/package.json +8 -6
  64. package/dist/cdn/GCFT45CD.js +0 -2
  65. package/dist/cdn/GN2HYJJX.js +0 -4
  66. package/dist/cdn/I22GHLAO.js +0 -2
  67. package/dist/cdn/IFSNQY7L.js +0 -2
  68. package/dist/cdn/IFWK7P7O.js +0 -2
  69. package/dist/cdn/J35M7O4J.js +0 -2
  70. package/dist/cdn/JABDBJPC.js +0 -2
  71. package/dist/cdn/KJZARHAM.js +0 -2
  72. package/dist/cdn/M672SFG6.js +0 -2
  73. package/dist/cdn/Q674OE2M.js +0 -2
  74. package/dist/cdn/VUHDKXFM.js +0 -2
  75. package/dist/cdn/XGVAPO3I.js +0 -2
  76. package/dist/cdn/XVUE27HC.js +0 -2
  77. package/dist/cdn/Y7UZYXEV.js +0 -2
@@ -1,18 +1,20 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type Collection from "@arcgis/core/core/Collection.js";
3
3
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
4
+ import type { ChatMessage } from "../arcgis-assistant/types.js";
4
5
 
5
6
  /** @internal */
6
7
  export abstract class ArcgisAssistantChat extends LitElement {
8
+ /** @default false */
9
+ accessor copyEnabled: boolean;
10
+ /** @default false */
11
+ accessor feedbackEnabled: boolean;
7
12
  /** @default false */
8
13
  accessor loading: boolean;
9
14
  /** @default "" */
10
15
  accessor loadingMessage: string;
11
- accessor messages: Collection<{
12
- type: "prompt" | "response";
13
- content?: string;
14
- log?: string;
15
- error?: string;
16
- }>;
16
+ /** @default false */
17
+ accessor logEnabled: boolean;
18
+ accessor messages: Collection<ChatMessage>;
17
19
  accessor user: string | undefined;
18
20
  }
@@ -1,20 +1,20 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { c as a } from "../../chunks/runtime.js";
3
- import { css as e, html as t } from "lit";
2
+ import { c as t } from "../../chunks/runtime.js";
3
+ import { css as e, html as s } from "lit";
4
4
  import { LitElement as i } from "@arcgis/lumina";
5
- import { createRef as o, ref as n } from "lit/directives/ref.js";
6
- import r from "@arcgis/core/core/Collection.js";
7
- import { watch as l } from "@arcgis/core/core/reactiveUtils.js";
8
- const c = e`.assistant-chat__messages-container{display:flex;flex:1;flex-direction:column}.assistant-chat__messages-list{padding:var(--calcite-spacing-lg);display:flex;flex-direction:column;gap:var(--calcite-spacing-md);flex:1 1 auto;min-height:0;justify-content:flex-end;overflow:auto}`;
5
+ import { createRef as o, ref as l } from "lit/directives/ref.js";
6
+ import n from "@arcgis/core/core/Collection.js";
7
+ import { watch as c } from "@arcgis/core/core/reactiveUtils.js";
8
+ const r = e`.assistant-chat__messages-container{display:flex;flex:1;flex-direction:column}.assistant-chat__messages-list{padding:var(--calcite-spacing-lg);display:flex;flex-direction:column;gap:var(--calcite-spacing-md);flex:1 1 auto;min-height:0;justify-content:flex-end;overflow:auto}`;
9
9
  class d extends i {
10
10
  constructor() {
11
- super(...arguments), this.#s = o(), this.loading = !1, this.loadingMessage = "", this.messages = new r([]);
11
+ super(...arguments), this.#s = o(), this.feedbackEnabled = !1, this.logEnabled = !1, this.copyEnabled = !1, this.loading = !1, this.loadingMessage = "", this.messages = new n([]);
12
12
  }
13
13
  static {
14
- this.properties = { loading: 5, loadingMessage: 1, user: 1, messages: 0 };
14
+ this.properties = { feedbackEnabled: 5, logEnabled: 5, copyEnabled: 5, loading: 5, loadingMessage: 1, user: 1, messages: 0 };
15
15
  }
16
16
  static {
17
- this.styles = c;
17
+ this.styles = r;
18
18
  }
19
19
  #s;
20
20
  firstUpdated() {
@@ -25,7 +25,7 @@ class d extends i {
25
25
  this.messages.on("change", () => {
26
26
  this.requestUpdate(), this._scrollToEnd();
27
27
  }),
28
- l(() => this.loading, () => {
28
+ c(() => this.loading, () => {
29
29
  this._scrollToEnd();
30
30
  })
31
31
  ]);
@@ -36,10 +36,10 @@ class d extends i {
36
36
  });
37
37
  }
38
38
  render() {
39
- return t`<div class="assistant-chat__messages-container"><div class="assistant-chat__messages-list"><slot></slot>${this.messages.map((s) => t`<arcgis-assistant-chat-card .type=${s.type} .content=${s.content} .log=${s.log} .error=${s.error} .user=${this.user}></arcgis-assistant-chat-card>`)}${this.loading ? t`<arcgis-assistant-chat-card .loading=${this.loading} .loadingMessage=${this.loadingMessage} type=response></arcgis-assistant-chat-card>` : null}</div><div ${n(this.#s)}></div></div>`;
39
+ return s`<div class="assistant-chat__messages-container"><div class="assistant-chat__messages-list"><slot></slot>${this.messages.map((a) => s`<arcgis-assistant-chat-card .message=${a} .user=${this.user} .feedbackEnabled=${this.feedbackEnabled} .logEnabled=${this.logEnabled} .copyEnabled=${this.copyEnabled}><slot name=chat-card-footer-actions-start slot=footer-actions-start></slot><slot name=chat-card-footer-actions-end slot=footer-actions-end></slot></arcgis-assistant-chat-card>`)}${this.loading ? s`<arcgis-assistant-chat-card .loading=${this.loading} .loadingMessage=${this.loadingMessage} .message=${{ id: "loading", role: "assistant", content: this.loadingMessage }}></arcgis-assistant-chat-card>` : null}</div><div ${l(this.#s)}></div></div>`;
40
40
  }
41
41
  }
42
- a("arcgis-assistant-chat", d);
42
+ t("arcgis-assistant-chat", d);
43
43
  export {
44
44
  d as ArcgisAssistantChat
45
45
  };
@@ -1,5 +1,6 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { AssistantMessage, ChatMessage } from "../arcgis-assistant/types.js";
3
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
4
5
 
5
6
  /** @internal */
@@ -17,16 +18,22 @@ export abstract class ArcgisAssistantChatCard extends LitElement {
17
18
  logButtonLabel: string;
18
19
  }>;
19
20
  accessor content: string | undefined;
21
+ /** @default false */
22
+ accessor copyEnabled: boolean;
20
23
  accessor error: string | undefined;
21
24
  /** @default false */
22
- accessor feedbackDisabled: boolean;
25
+ accessor feedbackEnabled: boolean;
23
26
  /** @default false */
24
27
  accessor loading: boolean;
25
28
  accessor loadingMessage: string | undefined;
26
- accessor log: string | undefined;
29
+ accessor log: string[] | undefined;
27
30
  /** @default false */
28
- accessor timestampDisabled: boolean;
29
- /** @default "prompt" */
30
- accessor type: "prompt" | "response";
31
+ accessor logEnabled: boolean;
32
+ accessor message: ChatMessage | undefined;
33
+ accessor messageRole: ChatMessage["role"] | undefined;
31
34
  accessor user: string | undefined;
35
+ readonly arcgisFeedback: import("@arcgis/lumina").TargetedEvent<this, AssistantMessage>;
36
+ readonly "@eventTypes": {
37
+ arcgisFeedback: ArcgisAssistantChatCard["arcgisFeedback"]["detail"];
38
+ };
32
39
  }
@@ -1,53 +1,87 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { c as e } from "../../chunks/runtime.js";
3
- import { css as s, html as t } from "lit";
4
- import { LitElement as i } from "@arcgis/lumina";
5
- import { u as c } from "../../chunks/useT9n.js";
6
- const n = s`.assistant-chat-card__prompt-container{display:flex;align-items:center;gap:var(--calcite-spacing-md);background:color-mix(in srgb,var(--calcite-color-brand) 25%,transparent);padding:var(--calcite-spacing-md);border-radius:var(--calcite-border-radius);width:fit-content;margin-left:auto;justify-content:flex-end}.assistant-chat-card__prompt-avatar{display:flex;align-items:center;justify-content:center}.assistant-chat-card__content-container{display:flex;flex:1;flex-direction:column;width:100%}.assistant-chat-card__response-container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--calcite-spacing-sm);width:100%;text-align:left}.assistant-chat-card__response-icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.assistant-chat-card__footer{display:flex;width:100%;justify-content:space-between;padding:0 var(--calcite-spacing-xxs)}.assistant-chat-card__feedback-actions{display:flex;flex-direction:row;gap:var(--calcite-spacing-xxs)}.assistant-chat-card__log-container{padding:0 var(--calcite-spacing-sm);border-radius:var(--calcite-border-radius);margin-bottom:var(--calcite-spacing-sm)}.assistant-chat-card__log{margin:0;font-size:var(--calcite-font-size-sm);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1);width:100%;overflow:auto}.assistant-chat-card__footer-start{display:flex;gap:var(--calcite-spacing-xxs)}@media(min-width:1280px){.assistant-chat-card__prompt-container,.assistant-chat-card__response-container{max-width:80%}}`;
7
- class r extends i {
2
+ import { c as s } from "../../chunks/runtime.js";
3
+ import { css as i, html as e } from "lit";
4
+ import { LitElement as c, createEvent as o } from "@arcgis/lumina";
5
+ import { u as n } from "../../chunks/useT9n.js";
6
+ import { unsafeHTML as r } from "lit/directives/unsafe-html.js";
7
+ import { createRef as l, ref as d } from "lit/directives/ref.js";
8
+ import { p as h } from "../../chunks/converterUtils.js";
9
+ import { watch as g } from "@arcgis/core/core/reactiveUtils.js";
10
+ const p = i`:host{display:block;container-type:inline-size}.assistant-chat-card__prompt-container{display:flex;align-items:center;gap:var(--calcite-spacing-md);background:color-mix(in srgb,var(--calcite-color-brand) 25%,transparent);color:var(--calcite-color-text-1);padding:var(--calcite-spacing-md);border-radius:var(--calcite-border-radius);width:fit-content;margin-left:auto;justify-content:flex-end}.assistant-chat-card__prompt-avatar{display:flex;align-items:center;justify-content:center}.assistant-chat-card__content-container{display:flex;flex:1;flex-direction:column;width:100%}.assistant-chat-card__response-container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--calcite-spacing-sm);width:100%;text-align:left}.assistant-chat-card__response-icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.assistant-chat-card__footer{display:flex;width:100%;justify-content:space-between;padding:0 var(--calcite-spacing-xxs)}.assistant-chat-card__feedback-actions{display:flex;flex-direction:row;gap:var(--calcite-spacing-xxs)}.assistant-chat-card__log-container{padding:0 var(--calcite-spacing-sm);border-radius:var(--calcite-border-radius);margin-bottom:var(--calcite-spacing-sm)}.assistant-chat-card__log{margin:0;background-color:var(--calcite-color-foreground-1);width:100%;max-height:300px;overflow:auto}.assistant-chat-card__log-entry{margin-left:var(--calcite-spacing-sm);padding:var(--calcite-spacing-xxs) var(--calcite-spacing-lg);border-left:1px solid var(--calcite-color-border-1)}.assistant-chat-card__footer-start,.assistant-chat-card__footer-end{display:flex;gap:var(--calcite-spacing-xxs)}@container (min-width: 480px){.assistant-chat-card__prompt-container,.assistant-chat-card__response-container{max-width:80%}}`;
11
+ class _ extends c {
8
12
  constructor() {
9
- super(...arguments), this._messages = c({ blocking: !0 }), this._showLog = !1, this.loading = !1, this.type = "prompt", this.feedbackDisabled = !1, this.timestampDisabled = !1;
13
+ super(...arguments), this._messages = n({ blocking: !0 }), this._endRef = l(), this._showLog = !1, this.loading = !1, this.feedbackEnabled = !1, this.logEnabled = !1, this.copyEnabled = !1, this.arcgisFeedback = o();
10
14
  }
11
15
  static {
12
- this.properties = { _showLog: 16, loading: 5, type: 1, feedbackDisabled: 5, timestampDisabled: 5, content: 1, loadingMessage: 1, log: 1, error: 1, user: 1 };
16
+ this.properties = { _showLog: 16, _role: 16, _content: 16, _log: 16, _error: 16, _feedback: 16, loading: 5, messageRole: 1, feedbackEnabled: 5, logEnabled: 5, copyEnabled: 5, content: 1, loadingMessage: 1, log: 0, error: 1, user: 1, message: 0 };
13
17
  }
14
18
  static {
15
- this.styles = n;
19
+ this.styles = p;
20
+ }
21
+ get _role() {
22
+ return this.message?.role ?? this.messageRole;
23
+ }
24
+ get _content() {
25
+ return this.message?.content ?? this.content;
26
+ }
27
+ get _log() {
28
+ return (this.message?.role === "assistant" ? this.message?.log : void 0) ?? this.log;
29
+ }
30
+ get _error() {
31
+ return (this.message?.role === "assistant" ? this.message?.error : void 0) ?? this.error;
32
+ }
33
+ get _feedback() {
34
+ return this.message?.role === "assistant" ? this.message?.feedback?.positive : void 0;
35
+ }
36
+ loaded() {
37
+ this.manager.onLifecycle(() => [
38
+ g(() => this._showLog, () => this._scrollToEnd())
39
+ ]);
40
+ }
41
+ _scrollToEnd() {
42
+ requestAnimationFrame(() => {
43
+ this._endRef.value?.scrollIntoView({ behavior: "smooth", block: "end" });
44
+ });
45
+ }
46
+ _handleFeedback(t) {
47
+ this.message?.role === "assistant" && (this.message.feedback = this.message.feedback?.positive === t ? void 0 : { positive: t }, this.arcgisFeedback.emit(this.message), this.requestUpdate());
16
48
  }
17
49
  _renderLog() {
18
- return this.log && this._showLog ? t`<div class="assistant-chat-card__log-container"><pre class="assistant-chat-card__log">${this.log}</pre></div>` : null;
50
+ return this._log && this._showLog && this.logEnabled ? e`<div class="assistant-chat-card__log-container"><div class="assistant-chat-card__log"><calcite-accordion appearance=transparent icon-position=start icon-type=chevron scale=s>${this._log.map((t) => {
51
+ const a = t.includes(`
52
+ `) || t.length > 70;
53
+ return e`<calcite-accordion-item .heading=${a ? `${t.substring(0, 70)}...` : t} .expanded=${a}><div class="assistant-chat-card__log-entry">${a ? r(h(t)) : null}</div></calcite-accordion-item>`;
54
+ })}</calcite-accordion></div></div>` : null;
19
55
  }
20
56
  _renderThumbsUpButton() {
21
- return t`<calcite-action id=action-thumbs-up icon=thumbs-up scale=s appearance=transparent @click=${() => {
22
- }} text></calcite-action><calcite-tooltip reference-element=action-thumbs-up overlay-positioning=fixed placement=bottom><span>${this._messages.thumbsUpLabel}</span></calcite-tooltip>`;
57
+ return e`<calcite-action id=action-thumbs-up icon=thumbs-up scale=s .active=${this._feedback === !0} @click=${() => this._handleFeedback(!0)} text></calcite-action><calcite-tooltip reference-element=action-thumbs-up overlay-positioning=fixed placement=bottom><span>${this._messages.thumbsUpLabel}</span></calcite-tooltip>`;
23
58
  }
24
59
  _renderThumbsDownButton() {
25
- return t`<calcite-action id=action-thumbs-down icon=thumbs-down scale=s appearance=transparent @click=${() => {
26
- }} text></calcite-action><calcite-tooltip reference-element=action-thumbs-down overlay-positioning=fixed placement=bottom><span>${this._messages.thumbsDownLabel}</span></calcite-tooltip>`;
60
+ return e`<calcite-action id=action-thumbs-down icon=thumbs-down scale=s .active=${this._feedback === !1} @click=${() => this._handleFeedback(!1)} text></calcite-action><calcite-tooltip reference-element=action-thumbs-down overlay-positioning=fixed placement=bottom><span>${this._messages.thumbsDownLabel}</span></calcite-tooltip>`;
27
61
  }
28
62
  _renderFeedback() {
29
- return !this.feedbackDisabled && !this.error ? t`<div class="assistant-chat-card__feedback-actions">${this._renderThumbsUpButton()}${this._renderThumbsDownButton()}</div>` : null;
63
+ return this.feedbackEnabled && !this._error ? e`<div class="assistant-chat-card__feedback-actions">${this._renderThumbsUpButton()}${this._renderThumbsDownButton()}</div>` : null;
30
64
  }
31
65
  _renderCopyButton() {
32
- return this.error ? null : t`<calcite-action id=action-copy icon=copy-to-clipboard scale=s appearance=transparent @click=${async () => {
66
+ return !this._error && this.copyEnabled ? e`<calcite-action id=action-copy icon=copy-to-clipboard scale=s @click=${async () => {
33
67
  try {
34
- this.content && await navigator.clipboard.writeText(this.content);
35
- } catch (a) {
36
- console.error("Failed to copy text to clipboard:", a);
68
+ this._content && await navigator.clipboard.writeText(this._content);
69
+ } catch (t) {
70
+ console.error("Failed to copy text to clipboard:", t);
37
71
  }
38
- }} text></calcite-action><calcite-tooltip reference-element=action-copy overlay-positioning=fixed placement=bottom><span>${this._messages.copyButtonLabel}</span></calcite-tooltip>`;
72
+ }} text></calcite-action><calcite-tooltip reference-element=action-copy overlay-positioning=fixed placement=bottom><span>${this._messages.copyButtonLabel}</span></calcite-tooltip>` : null;
39
73
  }
40
74
  _renderLogButton() {
41
- return this.log ? t`<calcite-action id=action-log icon=access-string-results scale=s appearance=transparent @click=${() => this._showLog = !this._showLog} .text=${this._messages.logButtonLabel} .active=${this._showLog}></calcite-action><calcite-tooltip reference-element=action-log overlay-positioning=fixed placement=bottom><span>${this._messages.logButtonLabel}</span></calcite-tooltip>` : null;
75
+ return this._log && this.logEnabled ? e`<calcite-action id=action-log icon=access-string-results scale=s @click=${() => this._showLog = !this._showLog} .text=${this._messages.logButtonLabel} .active=${this._showLog}></calcite-action><calcite-tooltip reference-element=action-log overlay-positioning=fixed placement=bottom><span>${this._messages.logButtonLabel}</span></calcite-tooltip>` : null;
42
76
  }
43
77
  _renderFooter() {
44
- return this.loading ? null : t`<div class="assistant-chat-card__footer"><slot name=footer-start class="assistant-chat-card__footer-start">${this._renderCopyButton()}${this._renderLogButton()}</slot>${this._renderFeedback()}</div>`;
78
+ return this.loading ? null : e`<div class="assistant-chat-card__footer"><div class="assistant-chat-card__footer-start">${this._renderCopyButton()}${this._renderLogButton()}<slot name=footer-actions-start></slot></div><div class="assistant-chat-card__footer-end"><slot name=footer-actions-end></slot>${this._renderFeedback()}</div></div>`;
45
79
  }
46
80
  render() {
47
- return this.type === "prompt" ? t`<div class="assistant-chat-card__prompt-container"><div>${this.content}</div><div class="assistant-chat-card__prompt-avatar"><calcite-avatar .fullName=${this.user} scale=s></calcite-avatar></div></div>` : t`<div class="assistant-chat-card__response-container"><calcite-icon icon=effects class="assistant-chat-card__response-icon"></calcite-icon><div class="assistant-chat-card__content-container"><arcgis-assistant-chat-card-content .loading=${this.loading} .loadingMessage=${this.loadingMessage} .type=${this.error ? "error" : "text"} .content=${this.error ?? this.content}></arcgis-assistant-chat-card-content>${this._renderLog()}${this._renderFooter()}</div></div>`;
81
+ return this._role === "user" ? e`<div class="assistant-chat-card__prompt-container"><div>${this._content}</div><div class="assistant-chat-card__prompt-avatar"><calcite-avatar .fullName=${this.user} scale=s></calcite-avatar></div></div>` : e`<div class="assistant-chat-card__response-container"><calcite-icon icon=effects class="assistant-chat-card__response-icon" scale=s></calcite-icon><div class="assistant-chat-card__content-container"><arcgis-assistant-chat-card-content .loading=${this.loading} .loadingMessage=${this.loadingMessage} .type=${this._error ? "error" : "text"} .content=${this._error ?? this._content}></arcgis-assistant-chat-card-content>${this._renderLog()}${this._renderFooter()}</div><div ${d(this._endRef)}></div></div>`;
48
82
  }
49
83
  }
50
- e("arcgis-assistant-chat-card", r);
84
+ s("arcgis-assistant-chat-card", _);
51
85
  export {
52
- r as ArcgisAssistantChatCard
86
+ _ as ArcgisAssistantChatCard
53
87
  };
@@ -1,3 +1,5 @@
1
+ import "@esri/calcite-components/components/calcite-accordion";
2
+ import "@esri/calcite-components/components/calcite-accordion-item";
1
3
  import "@esri/calcite-components/components/calcite-action";
2
4
  import "@esri/calcite-components/components/calcite-tooltip";
3
5
  import "@esri/calcite-components/components/calcite-avatar";
@@ -1,13 +1,15 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { c as n } from "../../chunks/runtime.js";
3
- import { css as i, html as t } from "lit";
4
- import { LitElement as o, safeClassMap as e } from "@arcgis/lumina";
5
- const r = i`.assistant-chat-card-content__skeleton-block{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);width:100%}.assistant-chat-card-content__skeleton-text{display:block;height:.95em;border-radius:6px;background:linear-gradient(90deg,color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent),color-mix(in srgb,var(--calcite-color-foreground-3) 85%,transparent),color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent));background-size:200% 100%;animation:assistant-chat-card-content-shimmer 1.2s ease-in-out infinite;width:85%}.assistant-chat-card-content__skeleton-text:last-child{width:70%}@keyframes assistant-chat-card-content-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@media(prefers-reduced-motion){.assistant-chat-card-content__skeleton-text{animation:none}}.assistant-chat-card-content__text-container{padding:var(--calcite-spacing-sm);display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);color:var(--calcite-color-text-1)}.assistant-chat-card-content__text-loading{font-style:italic;word-wrap:break-word;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.assistant-chat-card-content__error-notice{padding:var(--calcite-spacing-sm)}`, s = "assistant-chat-card-content", a = {
6
- textLoading: `${s}__text-loading`,
7
- skeletonBlock: `${s}__skeleton-block`,
8
- skeletonText: `${s}__skeleton-text`
2
+ import { c as s } from "../../chunks/runtime.js";
3
+ import { css as c, html as t } from "lit";
4
+ import { LitElement as i, safeClassMap as a } from "@arcgis/lumina";
5
+ import { unsafeHTML as r } from "lit/directives/unsafe-html.js";
6
+ import { p as o } from "../../chunks/converterUtils.js";
7
+ const l = c`.assistant-chat-card-content__skeleton-block{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);width:100%}.assistant-chat-card-content__skeleton-text{display:block;height:.95em;border-radius:var(--calcite-border-radius);background:linear-gradient(90deg,color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent),color-mix(in srgb,var(--calcite-color-foreground-3) 85%,transparent),color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent));background-size:200% 100%;animation:assistant-chat-card-content-shimmer 1.2s ease-in-out infinite;width:85%}.assistant-chat-card-content__skeleton-text:last-child{width:70%}@keyframes assistant-chat-card-content-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@media(prefers-reduced-motion){.assistant-chat-card-content__skeleton-text{animation:none}}.assistant-chat-card-content__text-container{padding:0 var(--calcite-spacing-sm);display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);color:var(--calcite-color-text-1)}.assistant-chat-card-content__text-container pre{background-color:var(--calcite-color-foreground-1);padding:var(--calcite-spacing-sm);border-radius:var(--calcite-border-radius);color:var(--calcite-color-text-1);direction:ltr;max-width:100%;overflow:auto}.assistant-chat-card-content__text-container pre code{display:block;white-space:pre;font-family:var(--calcite-code-family)}.assistant-chat-card-content__loading-container{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm)}.assistant-chat-card-content__loading{display:flex;align-items:center;gap:var(--calcite-spacing-sm)}.assistant-chat-card-content__text-loading{font-style:italic;word-wrap:break-word;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical}.assistant-chat-card-content__error-notice{padding:var(--calcite-spacing-sm)}`, n = "assistant-chat-card-content", e = {
8
+ textLoading: `${n}__text-loading`,
9
+ skeletonBlock: `${n}__skeleton-block`,
10
+ skeletonText: `${n}__skeleton-text`
9
11
  };
10
- class c extends o {
12
+ class d extends i {
11
13
  constructor() {
12
14
  super(...arguments), this.loading = !1, this.type = "text";
13
15
  }
@@ -15,10 +17,10 @@ class c extends o {
15
17
  this.properties = { loading: 5, type: 1, content: 1, loadingMessage: 1 };
16
18
  }
17
19
  static {
18
- this.styles = r;
20
+ this.styles = l;
19
21
  }
20
22
  _renderText() {
21
- return t`<div class="assistant-chat-card-content__text-container"><div><span class=${e(this.loading ? a.textLoading : void 0)}>${this.loading ? this.loadingMessage : this.content}</span></div>${this.loading ? t`<div class=${e(a.skeletonBlock)}><span class=${e(a.skeletonText)}></span><span class=${e(a.skeletonText)}></span></div>` : null}</div>`;
23
+ return t`<div class="assistant-chat-card-content__text-container">${this.loading ? t`<div class="assistant-chat-card-content__loading-container"><div class="assistant-chat-card-content__loading"><calcite-loader label=loading inline></calcite-loader><div class=${a(e.textLoading)}>${this.loadingMessage}</div></div><div class=${a(e.skeletonBlock)}><span class=${a(e.skeletonText)}></span><span class=${a(e.skeletonText)}></span></div></div>` : t`<div>${r(o(this.content))}</div>`}</div>`;
22
24
  }
23
25
  _renderError() {
24
26
  return t`<calcite-notice class="assistant-chat-card-content__error-notice" open icon kind=warning width=auto><div slot=message>${this.content}</div></calcite-notice>`;
@@ -34,7 +36,7 @@ class c extends o {
34
36
  }
35
37
  }
36
38
  }
37
- n("arcgis-assistant-chat-card-content", c);
39
+ s("arcgis-assistant-chat-card-content", d);
38
40
  export {
39
- c as ArcgisAssistantChatCardContent
41
+ d as ArcgisAssistantChatCardContent
40
42
  };
@@ -1,2 +1,3 @@
1
+ import "@esri/calcite-components/components/calcite-loader";
1
2
  import "@esri/calcite-components/components/calcite-notice";
2
3
  export * from "./customElement.js";
@@ -1,5 +1,7 @@
1
1
  /// <reference path="../../index.d.ts" />
2
+ import type Collection from "@arcgis/core/core/Collection.js";
2
3
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
4
+ import type { ChatMessage } from "../arcgis-assistant/types.js";
3
5
  import type { T9nMeta } from "@arcgis/lumina/controllers";
4
6
 
5
7
  /** @internal */
@@ -16,11 +18,12 @@ export abstract class ArcgisAssistantChatEntry extends LitElement {
16
18
  }>;
17
19
  /** @default false */
18
20
  accessor awaitingResponse: boolean;
19
- /** @default true */
20
- accessor enterKeySubmits: boolean;
21
21
  accessor entryPlaceholder: string | undefined;
22
22
  /** @default "" */
23
23
  accessor inputValue: string;
24
+ /** @default false */
25
+ accessor keyboardShortcutsDisabled: boolean;
26
+ accessor messages: Collection<ChatMessage>;
24
27
  accessor status: "error" | "ready" | "working" | undefined;
25
28
  readonly arcgisCancel: import("@arcgis/lumina").TargetedEvent<this, void>;
26
29
  readonly arcgisSubmit: import("@arcgis/lumina").TargetedEvent<this, string>;
@@ -1,26 +1,32 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { c as e } from "../../chunks/runtime.js";
3
- import { css as i, html as s } from "lit";
4
- import { LitElement as r, createEvent as a, nothing as n } from "@arcgis/lumina";
5
- import { createRef as c, ref as o } from "lit/directives/ref.js";
6
- import { watch as l } from "@arcgis/core/core/reactiveUtils.js";
7
- import { u } from "../../chunks/useT9n.js";
8
- const h = i`.assistant-chat-entry__input-container{display:flex;flex-direction:column}.assistant-chat-entry__footer-start{display:flex;gap:var(--calcite-spacing-md);flex-wrap:wrap;align-items:center}.assistant-chat-entry__footer-end{display:flex;gap:var(--calcite-spacing-md);align-items:center}.assistant-chat-entry__status-indicator{width:9px;height:9px;border-radius:100%;background-color:var(--calcite-color-status-success)}.assistant-chat-entry__status-indicator[data-status=working]{background-color:var(--calcite-color-status-warning)}.assistant-chat-entry__status-indicator[data-status=error]{background-color:var(--calcite-color-status-danger)}.assistant-chat-entry__status-text{text-transform:capitalize}`;
9
- class d extends r {
2
+ import { c as u } from "../../chunks/runtime.js";
3
+ import { css as h, html as l } from "lit";
4
+ import { LitElement as d, createEvent as c, nothing as p } from "@arcgis/lumina";
5
+ import { createRef as f, ref as g } from "lit/directives/ref.js";
6
+ import { watch as m } from "@arcgis/core/core/reactiveUtils.js";
7
+ import { u as y } from "../../chunks/useT9n.js";
8
+ import _ from "@arcgis/core/core/Collection.js";
9
+ const v = h`.assistant-chat-entry__input-container{display:flex;flex-direction:column}.assistant-chat-entry__footer-start{display:flex;gap:var(--calcite-spacing-md);flex-wrap:wrap;align-items:center}.assistant-chat-entry__footer-end{display:flex;gap:var(--calcite-spacing-md);align-items:center}.assistant-chat-entry__status-indicator{width:9px;height:9px;border-radius:100%;background-color:var(--calcite-color-status-success)}.assistant-chat-entry__status-indicator[data-status=working]{background-color:var(--calcite-color-status-warning)}.assistant-chat-entry__status-indicator[data-status=error]{background-color:var(--calcite-color-status-danger)}.assistant-chat-entry__status-text{text-transform:capitalize}`;
10
+ class w extends d {
10
11
  constructor() {
11
- super(...arguments), this.#t = c(), this._messages = u({ blocking: !0 }), this.enterKeySubmits = !0, this.awaitingResponse = !1, this.inputValue = "", this.arcgisCancel = a(), this.arcgisSubmit = a();
12
+ super(...arguments), this.#s = f(), this.#t = -1, this.#e = "", this._messages = y({ blocking: !0 }), this.keyboardShortcutsDisabled = !1, this.awaitingResponse = !1, this.inputValue = "", this.messages = new _([]), this.arcgisCancel = c(), this.arcgisSubmit = c();
12
13
  }
13
14
  static {
14
- this.properties = { enterKeySubmits: 5, entryPlaceholder: 1, awaitingResponse: 5, inputValue: 1, status: 1 };
15
+ this.properties = { _userMessages: 16, keyboardShortcutsDisabled: 5, entryPlaceholder: 1, awaitingResponse: 5, inputValue: 1, status: 1, messages: 0 };
15
16
  }
16
17
  static {
17
- this.styles = h;
18
+ this.styles = v;
18
19
  }
20
+ #s;
19
21
  #t;
22
+ #e;
23
+ get _userMessages() {
24
+ return this.messages.toArray().filter((t) => t.role === "user").map(({ content: t }) => t);
25
+ }
20
26
  loaded() {
21
27
  this.manager.onLifecycle(() => [
22
- l(() => this.inputValue, (t) => {
23
- this.#t.value && (this.#t.value.value = t);
28
+ m(() => this.inputValue, (t) => {
29
+ this.#s.value && (this.#s.value.value = t);
24
30
  }, { initial: !0 })
25
31
  ]);
26
32
  }
@@ -29,16 +35,32 @@ class d extends r {
29
35
  this.arcgisCancel.emit();
30
36
  return;
31
37
  }
32
- const t = this.#t.value?.value.trim();
33
- t && (this.arcgisSubmit.emit(t), this.#t.value && (this.#t.value.value = "", await this.#t.value.setFocus()));
38
+ const t = this.#s.value?.value.trim();
39
+ t && (this.arcgisSubmit.emit(t), this.#t = -1, this.#e = "", this.#s.value && (this.#s.value.value = "", await this.#s.value.setFocus()));
40
+ }
41
+ async _navigateHistory(t, i) {
42
+ const s = this.#s.value;
43
+ if (!s)
44
+ return;
45
+ const e = this._userMessages;
46
+ if (e.length === 0)
47
+ return;
48
+ const r = s.value ?? "", n = s.shadowRoot?.querySelector("textarea"), a = n?.selectionStart, o = n?.selectionEnd;
49
+ if (!(a == null || o == null) && !(a !== o || t === "up" && a !== 0 || t === "down" && a !== r.length)) {
50
+ if (t === "up") {
51
+ this.#t === -1 ? (this.#e = r, this.#t = e.length - 1) : this.#t = Math.max(0, this.#t - 1), s.value = e[this.#t] ?? "", i.preventDefault();
52
+ return;
53
+ }
54
+ this.#t !== -1 && (this.#t < e.length - 1 ? (this.#t += 1, s.value = e[this.#t] ?? "") : (this.#t = -1, s.value = this.#e), i.preventDefault());
55
+ }
34
56
  }
35
57
  render() {
36
- return s`<div class="assistant-chat-entry__input-container"><calcite-text-area .value=${this.#t.value?.value} .placeholder=${this.entryPlaceholder ?? this._messages.entryPlaceholder} @keydown=${async (t) => {
37
- t.key === "Enter" && !t.shiftKey && this.enterKeySubmits && (t.preventDefault(), await this._submitMessage());
38
- }} ${o(this.#t)}><div slot=footer-start class="assistant-chat-entry__footer-start"><slot name=entry-actions-start></slot></div><div slot=footer-end class="assistant-chat-entry__footer-end">${this.status ? s`<div id=tooltip-status class="assistant-chat-entry__status-indicator" data-status=${this.status ?? n}></div><calcite-tooltip reference-element=tooltip-status offset-distance=12><span class="assistant-chat-entry__status-text">${this.status}</span></calcite-tooltip>` : null}<calcite-button .iconStart=${this.awaitingResponse ? "circle-stop" : "send"} slot=footer-end round @click=${() => void this._submitMessage()}>${this.awaitingResponse ? this._messages.stopButtonLabel : this._messages.askButtonLabel}</calcite-button></div></calcite-text-area></div>`;
58
+ return l`<div class="assistant-chat-entry__input-container"><calcite-text-area .value=${this.#s.value?.value} .placeholder=${this.entryPlaceholder ?? this._messages.entryPlaceholder} resize=vertical @keydown=${async (t) => {
59
+ t.altKey || t.ctrlKey || t.metaKey || t.shiftKey || this.keyboardShortcutsDisabled || (t.key === "Enter" ? (t.preventDefault(), await this._submitMessage()) : t.key === "ArrowUp" ? await this._navigateHistory("up", t) : t.key === "ArrowDown" && await this._navigateHistory("down", t));
60
+ }} ${g(this.#s)}><div slot=footer-start class="assistant-chat-entry__footer-start"><slot name=entry-actions-start></slot></div><div slot=footer-end class="assistant-chat-entry__footer-end">${this.status ? l`<div id=tooltip-status class="assistant-chat-entry__status-indicator" data-status=${this.status ?? p}></div><calcite-tooltip reference-element=tooltip-status offset-distance=12><span class="assistant-chat-entry__status-text">${this.status}</span></calcite-tooltip>` : null}<calcite-button .iconStart=${this.awaitingResponse ? "circle-stop" : "send"} slot=footer-end round @click=${() => void this._submitMessage()}>${this.awaitingResponse ? this._messages.stopButtonLabel : this._messages.askButtonLabel}</calcite-button></div></calcite-text-area></div>`;
39
61
  }
40
62
  }
41
- e("arcgis-assistant-chat-entry", d);
63
+ u("arcgis-assistant-chat-entry", w);
42
64
  export {
43
- d as ArcgisAssistantChatEntry
65
+ w as ArcgisAssistantChatEntry
44
66
  };
@@ -1,11 +1,11 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
2
  import { c as t } from "../../chunks/runtime.js";
3
3
  import { LitElement as a } from "@arcgis/lumina";
4
- import { DataExplorationAgent as s } from "@arcgis/ai-agents";
5
- import { r as e, i } from "../../chunks/utils.js";
4
+ import { DataExplorationAgent as e } from "@arcgis/ai-agents";
5
+ import { r as s, i } from "../../chunks/utils.js";
6
6
  class r extends a {
7
7
  constructor() {
8
- super(...arguments), this.agent = s;
8
+ super(...arguments), this.agent = e;
9
9
  }
10
10
  static {
11
11
  this.properties = { referenceElement: 1 };
@@ -16,8 +16,8 @@ class r extends a {
16
16
  throw new Error("arcgis-assistant-data-exploration-agent requires a mapView");
17
17
  return { mapView: this.#t };
18
18
  }
19
- async load() {
20
- this.#t = await e(this, "arcgis-assistant-data-exploration-agent"), i(this);
19
+ load() {
20
+ this.#t = s(this, "arcgis-assistant-data-exploration-agent"), i(this);
21
21
  }
22
22
  }
23
23
  t("arcgis-assistant-data-exploration-agent", r);
@@ -0,0 +1,33 @@
1
+ /// <reference path="../../index.d.ts" />
2
+ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { ArcgisMap as ArcgisMap } from "@arcgis/map-components/components/arcgis-map";
4
+
5
+ /**
6
+ * The Help Agent component provides contextual assistance and guidance to the end user within a web map application.
7
+ * It can offer tips, instructions, and other helpful information based on the current map view and user interactions.
8
+ *
9
+ * This is an unrendered component that must be added as a child of the `arcgis-assistant` component in either HTML or JavaScript.
10
+ *
11
+ * ```html
12
+ * <arcgis-assistant>
13
+ * <arcgis-assistant-help-agent></arcgis-assistant-help-agent>
14
+ * </arcgis-assistant>
15
+ * ```
16
+ *
17
+ * ```js
18
+ * const assistant = document.querySelector("arcgis-assistant");
19
+ * const helpAgent = document.createElement("arcgis-assistant-help-agent");
20
+ * assistant.appendChild(helpAgent);
21
+ * ```
22
+ *
23
+ * @since 5.0
24
+ * @beta
25
+ * @see [arcgis-assistant](https://developers.arcgis.com/javascript/latest/references/ai-components/components/arcgis-assistant/)
26
+ */
27
+ export abstract class ArcgisAssistantHelpAgent extends LitElement {
28
+ /**
29
+ * A reference to the map element or its ID string used to resolve the MapView for this agent.
30
+ * If not provided, the agent will attempt to find the closest parent `arcgis-map` element.
31
+ */
32
+ accessor referenceElement: ArcgisMap | string | undefined;
33
+ }
@@ -0,0 +1,26 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import { c as t } from "../../chunks/runtime.js";
3
+ import { LitElement as e } from "@arcgis/lumina";
4
+ import { HelpAgent as s } from "@arcgis/ai-agents";
5
+ import { r as i, i as r } from "../../chunks/utils.js";
6
+ class a extends e {
7
+ constructor() {
8
+ super(...arguments), this.agent = s;
9
+ }
10
+ static {
11
+ this.properties = { referenceElement: 1 };
12
+ }
13
+ #t;
14
+ getContext() {
15
+ if (!this.#t)
16
+ throw new Error("arcgis-assistant-help-agent requires a mapView");
17
+ return { mapView: this.#t };
18
+ }
19
+ load() {
20
+ this.#t = i(this, "arcgis-assistant-help-agent"), r(this);
21
+ }
22
+ }
23
+ t("arcgis-assistant-help-agent", a);
24
+ export {
25
+ a as ArcgisAssistantHelpAgent
26
+ };
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";
@@ -20,7 +20,7 @@ export abstract class ArcgisAssistantInterrupt extends LitElement {
20
20
  accessor options: string[] | undefined;
21
21
  accessor type: "boolean-choice" | "multi-select" | "single-select" | "text-input";
22
22
  readonly arcgisCancel: import("@arcgis/lumina").TargetedEvent<this, void>;
23
- readonly arcgisSubmit: import("@arcgis/lumina").TargetedEvent<this, string[] | string>;
23
+ readonly arcgisSubmit: import("@arcgis/lumina").TargetedEvent<this, string[] | boolean | string>;
24
24
  readonly "@eventTypes": {
25
25
  arcgisCancel: ArcgisAssistantInterrupt["arcgisCancel"]["detail"];
26
26
  arcgisSubmit: ArcgisAssistantInterrupt["arcgisSubmit"]["detail"];
@@ -1,10 +1,10 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { c as l } from "../../chunks/runtime.js";
3
- import { css as a, html as e } from "lit";
4
- import { LitElement as c, createEvent as s } from "@arcgis/lumina";
2
+ import { c as a } from "../../chunks/runtime.js";
3
+ import { css as c, html as e } from "lit";
4
+ import { LitElement as l, createEvent as s } from "@arcgis/lumina";
5
5
  import { u as n } from "../../chunks/useT9n.js";
6
- const r = a``;
7
- class o extends c {
6
+ const r = c``;
7
+ class o extends l {
8
8
  constructor() {
9
9
  super(...arguments), this.#t = [], this._messages = n({ blocking: !0 }), this.arcgisCancel = s(), this.arcgisSubmit = s();
10
10
  }
@@ -22,16 +22,16 @@ class o extends c {
22
22
  case "multi-select":
23
23
  return e`<calcite-list selection-mode=multiple .label=${this._messages.optionsLabel} @calciteListChange=${(t) => this.#t = t.target.selectedItems.map((i) => i.value)}>${this.options?.map((t) => e`<calcite-list-item .label=${t} .value=${t}></calcite-list-item>`)}</calcite-list>`;
24
24
  case "boolean-choice":
25
- return e`<calcite-list selection-mode=single-persist .label=${this._messages.optionsLabel} @calciteListChange=${(t) => this.#t = t.target.selectedItems[0]?.value}>${this.options?.map((t) => e`<calcite-list-item .label=${t} .value=${t}></calcite-list-item>`)}</calcite-list>`;
25
+ return null;
26
26
  case "text-input":
27
27
  return e`<calcite-input .label=${this._messages.enterTextLabel} @calciteInputInput=${(t) => this.#t = t.target.value}></calcite-input>`;
28
28
  }
29
29
  }
30
30
  render() {
31
- return e`<calcite-panel .description=${this.message}>${this._renderInterruptOptions()}<calcite-button slot=footer-end appearance=outline @click=${() => this.arcgisCancel.emit()}>${this._messages.cancelButtonLabel}</calcite-button><calcite-button slot=footer-end appearance=solid @click=${() => this.arcgisSubmit.emit(this.#t)}>${this._messages.submitButtonLabel}</calcite-button></calcite-panel>`;
31
+ return e`<calcite-panel .description=${this.message}>${this._renderInterruptOptions()}<calcite-button slot=footer-end appearance=outline @click=${() => this.arcgisCancel.emit()}>${this._messages.cancelButtonLabel}</calcite-button><calcite-button slot=footer-end appearance=solid @click=${() => this.arcgisSubmit.emit(this.type === "boolean-choice" ? !0 : this.#t)}>${this._messages.submitButtonLabel}</calcite-button></calcite-panel>`;
32
32
  }
33
33
  }
34
- l("arcgis-assistant-interrupt", o);
34
+ a("arcgis-assistant-interrupt", o);
35
35
  export {
36
36
  o as ArcgisAssistantInterrupt
37
37
  };
@@ -16,8 +16,8 @@ class a extends e {
16
16
  throw new Error("arcgis-assistant-layer-filter-agent requires a mapView");
17
17
  return { mapView: this.#t };
18
18
  }
19
- async load() {
20
- this.#t = await s(this, "arcgis-assistant-layer-filter-agent"), i(this);
19
+ load() {
20
+ this.#t = s(this, "arcgis-assistant-layer-filter-agent"), i(this);
21
21
  }
22
22
  }
23
23
  t("arcgis-assistant-layer-filter-agent", a);
@@ -1,26 +1,26 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import { c as t } from "../../chunks/runtime.js";
3
- import { LitElement as e } from "@arcgis/lumina";
2
+ import { c as e } from "../../chunks/runtime.js";
3
+ import { LitElement as t } from "@arcgis/lumina";
4
4
  import { LayerQueryAgent as r } from "@arcgis/ai-agents";
5
- import { r as s, i as a } from "../../chunks/utils.js";
6
- class i extends e {
5
+ import { r as s, i } from "../../chunks/utils.js";
6
+ class a extends t {
7
7
  constructor() {
8
8
  super(...arguments), this.agent = r;
9
9
  }
10
10
  static {
11
11
  this.properties = { referenceElement: 1 };
12
12
  }
13
- #t;
13
+ #e;
14
14
  getContext() {
15
- if (!this.#t)
15
+ if (!this.#e)
16
16
  throw new Error("arcgis-assistant-layer-query-agent requires a mapView");
17
- return { mapView: this.#t };
17
+ return { mapView: this.#e };
18
18
  }
19
- async load() {
20
- this.#t = await s(this, "arcgis-assistant-layer-query-agent"), a(this);
19
+ load() {
20
+ this.#e = s(this, "arcgis-assistant-layer-query-agent"), i(this);
21
21
  }
22
22
  }
23
- t("arcgis-assistant-layer-query-agent", i);
23
+ e("arcgis-assistant-layer-query-agent", a);
24
24
  export {
25
- i as ArcgisAssistantLayerQueryAgent
25
+ a as ArcgisAssistantLayerQueryAgent
26
26
  };