@arcgis/ai-components 5.2.0-next.0 → 5.2.0-next.10

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 (110) hide show
  1. package/dist/agent-utils/LLMAgent.js +22 -22
  2. package/dist/cdn/{DHOVCT6R.js → 2SJAOYZT.js} +1 -1
  3. package/dist/cdn/434TAA3J.js +2 -0
  4. package/dist/cdn/{AMP6IALT.js → 5W7S2RS4.js} +1 -1
  5. package/dist/cdn/64PJB5NU.js +2 -0
  6. package/dist/cdn/{OH64RMOR.js → 6AWNQHCO.js} +2 -2
  7. package/dist/cdn/BIV2IPHH.js +2 -0
  8. package/dist/cdn/CCY4TSBO.js +2 -0
  9. package/dist/cdn/{AO7BQHKC.js → CTSALWEP.js} +1 -1
  10. package/dist/cdn/{NAUXSHIE.js → D2N2NSRQ.js} +2 -2
  11. package/dist/cdn/{3PKJWIC3.js → D3TNNRP4.js} +1 -1
  12. package/dist/cdn/{H7422XUG.js → DOV5ZJ7M.js} +1 -1
  13. package/dist/cdn/EEUCKMU7.js +2 -0
  14. package/dist/cdn/EGHBXLNG.js +2 -0
  15. package/dist/cdn/{N2VQD46V.js → ETRWZ3MS.js} +31 -29
  16. package/dist/cdn/{QDO2AO53.js → EWI4V3GQ.js} +10 -10
  17. package/dist/cdn/{6MAINSY5.js → FL4W4VYN.js} +0 -1
  18. package/dist/cdn/GTLS44GI.js +2 -0
  19. package/dist/cdn/{SZOVY2QU.js → I6HNBTWY.js} +1 -1
  20. package/dist/cdn/JBHNHHWO.js +3 -0
  21. package/dist/cdn/{FX5JFRDL.js → JOFUPKIB.js} +1 -1
  22. package/dist/cdn/KUEOKIQR.js +2 -0
  23. package/dist/cdn/LKRAPK4A.js +165 -0
  24. package/dist/cdn/{6R6AY3D3.js → MODWHY3R.js} +2 -2
  25. package/dist/cdn/NXKKG5TK.js +2 -0
  26. package/dist/cdn/{2AXF774U.js → OBUZ7HBN.js} +1 -1
  27. package/dist/cdn/OIVRK7HT.js +2 -0
  28. package/dist/cdn/{HB5A5R2E.js → RUURNLTP.js} +1 -1
  29. package/dist/cdn/SWOXSJ62.js +2 -0
  30. package/dist/cdn/{LBVX2JYG.js → T537PKP4.js} +10 -7
  31. package/dist/cdn/{Y67XAMT4.js → TSZPHE7L.js} +2 -2
  32. package/dist/cdn/VAZNJSKA.js +16 -0
  33. package/dist/cdn/{V2P4AIGG.js → VMXLYWUK.js} +1 -1
  34. package/dist/cdn/{FB5DRKEB.js → VNQN5ZQO.js} +2 -2
  35. package/dist/cdn/WIDTPVSU.js +2 -0
  36. package/dist/cdn/{GM3QP65I.js → X2ZDYHCG.js} +18 -5
  37. package/dist/cdn/{P6OPJQMC.js → XER22VYQ.js} +1 -1
  38. package/dist/cdn/index.js +1 -1
  39. package/dist/cdn/main.css +1 -1
  40. package/dist/chunks/adapter.js +527 -522
  41. package/dist/chunks/arcgisKnowledgeGraph.js +3 -3
  42. package/dist/chunks/dataExplorationGraph.js +135 -119
  43. package/dist/chunks/data_explore_query_prompt.js +18 -5
  44. package/dist/chunks/generateLayerDescriptions.js +236 -209
  45. package/dist/chunks/helpGraph.js +4 -4
  46. package/dist/chunks/intent_prompt.js +0 -1
  47. package/dist/chunks/layerStylingGraph.js +10 -10
  48. package/dist/chunks/navigationGraph.js +27 -27
  49. package/dist/chunks/orchestrator.js +240 -201
  50. package/dist/chunks/slottableRequestUtils.js +3 -7
  51. package/dist/chunks/summarize_query_response_prompt.js +10 -7
  52. package/dist/components/arcgis-assistant/customElement.d.ts +15 -0
  53. package/dist/components/arcgis-assistant/customElement.js +227 -127
  54. package/dist/components/arcgis-assistant/index.js +2 -3
  55. package/dist/components/arcgis-assistant/types.d.ts +14 -1
  56. package/dist/components/arcgis-assistant-chat/customElement.d.ts +8 -2
  57. package/dist/components/arcgis-assistant-chat/customElement.js +7 -7
  58. package/dist/components/arcgis-assistant-chat-entry/customElement.d.ts +4 -1
  59. package/dist/components/arcgis-assistant-chat-entry/customElement.js +25 -18
  60. package/dist/components/arcgis-assistant-interrupt/customElement.d.ts +4 -1
  61. package/dist/components/arcgis-assistant-interrupt/customElement.js +13 -9
  62. package/dist/components/arcgis-assistant-interrupt-preview/customElement.js +20 -0
  63. package/dist/components/arcgis-assistant-interrupt-preview/index.js +2 -0
  64. package/dist/components/arcgis-assistant-message/customElement.d.ts +23 -0
  65. package/dist/components/arcgis-assistant-message/customElement.js +28 -26
  66. package/dist/components/arcgis-assistant-message/index.d.ts +1 -0
  67. package/dist/components/arcgis-assistant-message/index.js +2 -0
  68. package/dist/components/arcgis-assistant-message-block/customElement.d.ts +1 -1
  69. package/dist/components/arcgis-assistant-message-block/customElement.js +18 -11
  70. package/dist/components/arcgis-assistant-message-block/index.js +1 -0
  71. package/dist/components/arcgis-assistant-message-feedback/customElement.d.ts +4 -1
  72. package/dist/components/arcgis-assistant-message-footer/customElement.d.ts +4 -1
  73. package/dist/components/arcgis-assistant-message-loading/customElement.d.ts +8 -1
  74. package/dist/components/arcgis-assistant-message-loading/customElement.js +8 -8
  75. package/dist/components/arcgis-assistant-message-loading/index.js +1 -0
  76. package/dist/components/arcgis-assistant-message-log/customElement.d.ts +4 -1
  77. package/dist/components/arcgis-assistant-message-read-aloud/customElement.d.ts +4 -1
  78. package/dist/components/arcgis-assistant-message-text/customElement.d.ts +4 -1
  79. package/dist/components/arcgis-assistant-speech-input/customElement.d.ts +6 -1
  80. package/dist/components/arcgis-assistant-suggested-prompts/customElement.d.ts +4 -1
  81. package/dist/components/arcgis-assistant-suggested-prompts/customElement.js +8 -8
  82. package/dist/components/arcgis-assistant-user-message/customElement.d.ts +4 -1
  83. package/dist/components/arcgis-assistant-user-message/customElement.js +1 -1
  84. package/dist/docs/api.json +1 -1
  85. package/dist/docs/docs.json +1 -1
  86. package/dist/docs/vscode.html-custom-data.json +1 -1
  87. package/dist/docs/web-types.json +1 -1
  88. package/dist/index.d.ts +4 -0
  89. package/dist/loader.js +6 -5
  90. package/dist/types/lumina.d.ts +10 -4
  91. package/dist/types/preact.d.ts +11 -4
  92. package/dist/types/react.d.ts +12 -4
  93. package/dist/types/stencil.d.ts +10 -4
  94. package/dist/utils/index.d.ts +85 -42
  95. package/dist/utils/index.js +22 -18
  96. package/package.json +7 -7
  97. package/dist/cdn/7BCR6TUO.js +0 -2
  98. package/dist/cdn/7GH7VSB2.js +0 -2
  99. package/dist/cdn/7PLV4QH6.js +0 -2
  100. package/dist/cdn/DDLZOMUY.js +0 -2
  101. package/dist/cdn/EF453FJ2.js +0 -3
  102. package/dist/cdn/METXWS7V.js +0 -166
  103. package/dist/cdn/MH5RPXHM.js +0 -2
  104. package/dist/cdn/NVI3I46B.js +0 -2
  105. package/dist/cdn/OAVEHGB6.js +0 -2
  106. package/dist/cdn/QR54T33D.js +0 -2
  107. package/dist/cdn/SXDLXCIM.js +0 -2
  108. package/dist/cdn/U3QQW6VA.js +0 -16
  109. package/dist/cdn/USMDJUFS.js +0 -2
  110. package/dist/cdn/Y333DGV6.js +0 -2
@@ -51,7 +51,7 @@ export interface AssistantMessage extends ChatMessageBase {
51
51
  * UI elements separate from the plain text transcript and can be used to display actions, follow-up prompts,
52
52
  * or app-registered custom content.
53
53
  */
54
- blocks?: UXSuggestion[];
54
+ blocks?: (UXSuggestion & { isPending?: boolean; })[];
55
55
  /**
56
56
  * Log messages related to the assistant's processing of the user's request. This can include information about
57
57
  * the agents or tools it invoked, the parameters generated by the LLM, and any relevant details about how it
@@ -71,6 +71,19 @@ export interface AssistantMessage extends ChatMessageBase {
71
71
  * performance over time.
72
72
  */
73
73
  feedback?: Feedback;
74
+ /**
75
+ * Indicates whether the message content is still being streamed from the assistant. This can be used to show loading
76
+ * indicators or placeholders in the UI until the full content is received.
77
+ */
78
+ isStreaming?: boolean;
79
+ /**
80
+ * An array of interrupts emitted by the assistant during the processing of the user's request. Each interrupt includes
81
+ * details about the type of interrupt, the message to display to the user, and any options for user input.
82
+ */
83
+ interrupts?: {
84
+ interrupt: Interrupt;
85
+ response?: string[] | boolean | string;
86
+ }[];
74
87
  }
75
88
 
76
89
  /**
@@ -1,10 +1,16 @@
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
+ import type { ChatMessage, Interrupt } from "../arcgis-assistant/types.js";
5
5
 
6
- /** @internal */
6
+ /**
7
+ * Wraps and renders the conversation area. Use it as the container for message list content.
8
+ * Offers chat-level layout structure for message starter, message list, and loading regions.
9
+ *
10
+ * @internal
11
+ */
7
12
  export abstract class ArcgisAssistantChat extends LitElement {
13
+ accessor interrupt: Interrupt | null;
8
14
  /** @default false */
9
15
  accessor loading: boolean;
10
16
  accessor messages: Collection<ChatMessage>;
@@ -4,17 +4,17 @@ import { css as e, html as t } from "lit";
4
4
  import { LitElement as i } from "@arcgis/lumina";
5
5
  import { createRef as a, ref as o } from "lit/directives/ref.js";
6
6
  import l from "@arcgis/core/core/Collection.js";
7
- import { watch as r } from "@arcgis/core/core/reactiveUtils.js";
8
- const n = e`.messages-container{display:flex;flex:1;flex-direction:column}.messages-list{padding:var(--calcite-spacing-lg);display:flex;flex-direction:column;gap:var(--calcite-spacing-xxl);flex:1 1 auto;min-height:0;justify-content:flex-end;overflow:auto}`;
7
+ import { watch as n } from "@arcgis/core/core/reactiveUtils.js";
8
+ const r = e`.messages-container{display:flex;flex:1;flex-direction:column;line-height:var(--calcite-font-line-height-relative-snug)}.messages-list{padding:var(--calcite-spacing-lg);display:flex;flex-direction:column;gap:var(--calcite-spacing-xxl);flex:1 1 auto;min-height:0;justify-content:flex-end;overflow:auto}`;
9
9
  class c extends i {
10
10
  constructor() {
11
- super(...arguments), this.#s = a(), this.loading = !1, this.messages = new l([]);
11
+ super(...arguments), this.#s = a(), this.loading = !1, this.messages = new l([]), this.interrupt = null;
12
12
  }
13
13
  static {
14
- this.properties = { loading: 5, messages: 0 };
14
+ this.properties = { loading: 5, messages: 0, interrupt: 0 };
15
15
  }
16
16
  static {
17
- this.styles = n;
17
+ this.styles = r;
18
18
  }
19
19
  #s;
20
20
  firstUpdated() {
@@ -23,9 +23,9 @@ class c extends i {
23
23
  loaded() {
24
24
  this.manager.onLifecycle(() => [
25
25
  this.messages.on("change", () => {
26
- this.requestUpdate(), this._scrollToEnd();
26
+ this._scrollToEnd();
27
27
  }),
28
- r(() => this.loading, () => {
28
+ n(() => [this.loading, this.interrupt], () => {
29
29
  this._scrollToEnd();
30
30
  })
31
31
  ]);
@@ -5,7 +5,8 @@ import type { ChatMessage } from "../arcgis-assistant/types.js";
5
5
  import type { T9nMeta } from "@arcgis/lumina/controllers";
6
6
 
7
7
  /**
8
- * An input bar primitive for collecting assistant prompts.
8
+ * Provides the input bar and submit or cancel behavior. Use it to collect prompts and emit submit events.
9
+ * Offers keyboard submit/history behavior, entry action slots, and optional voice-input integration.
9
10
  *
10
11
  * @slot [entry-actions-start] - Slot for adding actions to the start of the entry area.
11
12
  * @slot [entry-actions-end] - Slot for adding actions to the end of the entry area.
@@ -15,6 +16,8 @@ export abstract class ArcgisAssistantChatEntry extends LitElement {
15
16
  protected _messages: { entryPlaceholder: string; } & T9nMeta<{ entryPlaceholder: string; }>;
16
17
  /** @default false */
17
18
  accessor awaitingResponse: boolean;
19
+ /** @default false */
20
+ accessor disabled: boolean;
18
21
  accessor entryPlaceholder: string | undefined;
19
22
  /** @default "" */
20
23
  accessor inputValue: string;
@@ -1,27 +1,28 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as p } from "../../chunks/runtime.js";
3
- import { css as d, html as l } from "lit";
4
- import { LitElement as g, createEvent as u } from "@arcgis/lumina";
5
- import { createRef as c, ref as h } from "lit/directives/ref.js";
6
- import { u as f } from "../../chunks/useT9n.js";
7
- import m from "@arcgis/core/core/Collection.js";
8
- const y = d`.input-container{display:flex;flex-direction:column}.footer-start{display:flex;gap:var(--calcite-spacing-md);flex-wrap:wrap;align-items:center}.footer-end{display:flex;gap:var(--calcite-spacing-md);align-items:center}.status-indicator{width:9px;height:9px;border-radius:100%;background-color:var(--calcite-color-status-success)}.status-indicator[data-status=working]{background-color:var(--calcite-color-status-warning)}.status-indicator[data-status=error]{background-color:var(--calcite-color-status-danger)}.status-text{text-transform:capitalize}`;
9
- class v extends g {
2
+ import { c as d } from "../../chunks/runtime.js";
3
+ import { css as p, html as c } from "lit";
4
+ import { LitElement as f, createEvent as l, safeClassMap as g } from "@arcgis/lumina";
5
+ import { createRef as u, ref as h } from "lit/directives/ref.js";
6
+ import { u as m } from "../../chunks/useT9n.js";
7
+ import y from "@arcgis/core/core/Collection.js";
8
+ import { classes as v } from "@arcgis/toolkit/dom";
9
+ const b = p`:host{--calcite-text-area-border-color: var(--calcite-color-border-1);--calcite-text-area-divider-color: var(--calcite-color-border-1);--calcite-text-area-corner-radius: var(--calcite-border-radius)}.input-container{display:flex;flex-direction:column}.footer-start{display:flex;gap:var(--calcite-spacing-md);flex-wrap:wrap;align-items:center}.footer-end{display:flex;gap:var(--calcite-spacing-md);align-items:center}.status-indicator{width:9px;height:9px;border-radius:100%;background-color:var(--calcite-color-status-success)}.status-indicator[data-status=working]{background-color:var(--calcite-color-status-warning)}.status-indicator[data-status=error]{background-color:var(--calcite-color-status-danger)}.status-text{text-transform:capitalize}.focused{--calcite-text-area-shadow: var(--calcite-shadow-sm)}`;
10
+ class w extends f {
10
11
  constructor() {
11
- super(...arguments), this.#s = c(), this.#i = c(), this.#t = -1, this.#e = "", this.#a = (t) => {
12
+ super(...arguments), this.#s = u(), this.#i = u(), this.#t = -1, this.#e = "", this.#a = (t) => {
12
13
  t.stopPropagation();
13
14
  const s = t.detail;
14
15
  this._setDraftValue(s.value), s.focusInput && this.#s.value && this.#s.value.setFocus();
15
16
  }, this.#r = (t) => {
16
17
  const s = t.target.value ?? "";
17
18
  this.inputValue = s, this.#e = s;
18
- }, this._messages = f({ blocking: !0 }), this.keyboardShortcutsDisabled = !1, this.awaitingResponse = !1, this.inputValue = "", this.voiceInputEnabled = !1, this.messages = new m([]), this.arcgisCancel = u(), this.arcgisSubmit = u();
19
+ }, this._messages = m({ blocking: !0 }), this._inFocus = !1, this.keyboardShortcutsDisabled = !1, this.awaitingResponse = !1, this.inputValue = "", this.voiceInputEnabled = !1, this.messages = new y([]), this.disabled = !1, this.arcgisCancel = l(), this.arcgisSubmit = l();
19
20
  }
20
21
  static {
21
- this.properties = { _userMessages: 16, keyboardShortcutsDisabled: 5, entryPlaceholder: 1, awaitingResponse: 5, inputValue: 1, status: 1, voiceInputEnabled: 5, messages: 0 };
22
+ this.properties = { _inFocus: 16, _userMessages: 16, keyboardShortcutsDisabled: 5, entryPlaceholder: 1, awaitingResponse: 5, inputValue: 1, status: 1, voiceInputEnabled: 5, messages: 0, disabled: 5 };
22
23
  }
23
24
  static {
24
- this.styles = y;
25
+ this.styles = b;
25
26
  }
26
27
  #s;
27
28
  #i;
@@ -54,8 +55,8 @@ class v extends g {
54
55
  const e = this._userMessages;
55
56
  if (e.length === 0)
56
57
  return;
57
- const r = a.value ?? "", n = a.shadowRoot?.querySelector("textarea"), i = n?.selectionStart, o = n?.selectionEnd;
58
- if (!(i == null || o == null) && !(i !== o || t === "up" && i !== 0 || t === "down" && i !== r.length)) {
58
+ const r = a.value ?? "", o = a.shadowRoot?.querySelector("textarea"), i = o?.selectionStart, n = o?.selectionEnd;
59
+ if (!(i == null || n == null) && !(i !== n || t === "up" && i !== 0 || t === "down" && i !== r.length)) {
59
60
  if (t === "up") {
60
61
  this.#t === -1 ? (this.#e = r, this.#t = e.length - 1) : this.#t = Math.max(0, this.#t - 1), this.inputValue = e[this.#t] ?? "", s.preventDefault();
61
62
  return;
@@ -66,13 +67,19 @@ class v extends g {
66
67
  _setDraftValue(t) {
67
68
  this.inputValue = t, this.#t = -1, this.#e = t;
68
69
  }
70
+ _onFocusIn() {
71
+ this._inFocus = !0;
72
+ }
73
+ _onFocusOut() {
74
+ this._inFocus = !1;
75
+ }
69
76
  render() {
70
- return l`<div class="input-container"><calcite-text-area .value=${this.inputValue} .placeholder=${this.entryPlaceholder ?? this._messages.entryPlaceholder} resize=vertical @calciteTextAreaInput=${this.#r} @keydown=${async (t) => {
77
+ return c`<div class="input-container"><calcite-text-area class=${g(v({ focused: this._inFocus }))} .value=${this.inputValue} .placeholder=${this.entryPlaceholder ?? this._messages.entryPlaceholder} resize=vertical @calciteTextAreaInput=${this.#r} .disabled=${this.disabled} @keydown=${async (t) => {
71
78
  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));
72
- }} ${h(this.#s)}><div slot=footer-start class="footer-start"><slot name=entry-actions-start></slot></div><div slot=footer-end class="footer-end">${this.voiceInputEnabled ? l`<arcgis-assistant-speech-input .awaitingResponse=${this.awaitingResponse} .inputValue=${this.inputValue} ${h(this.#i)}></arcgis-assistant-speech-input>` : null}<slot name=entry-actions-end></slot></div></calcite-text-area></div>`;
79
+ }} @focusin=${this._onFocusIn} @focusout=${this._onFocusOut} ${h(this.#s)}><div slot=footer-start class="footer-start"><slot name=entry-actions-start></slot></div><div slot=footer-end class="footer-end">${this.voiceInputEnabled ? c`<arcgis-assistant-speech-input .awaitingResponse=${this.awaitingResponse} .inputValue=${this.inputValue} ${h(this.#i)}></arcgis-assistant-speech-input>` : null}<slot name=entry-actions-end></slot></div></calcite-text-area></div>`;
73
80
  }
74
81
  }
75
- p("arcgis-assistant-chat-entry", v);
82
+ d("arcgis-assistant-chat-entry", w);
76
83
  export {
77
- v as ArcgisAssistantChatEntry
84
+ w as ArcgisAssistantChatEntry
78
85
  };
@@ -2,7 +2,10 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { T9nMeta } from "@arcgis/lumina/controllers";
4
4
 
5
- /** @internal */
5
+ /**
6
+ * Renders interrupt prompts for extra user input. Use it when an agent pauses for confirmation, choice, or text input.
7
+ * Offers interrupt-specific input modes and submit or cancel event handling.
8
+ */
6
9
  export abstract class ArcgisAssistantInterrupt extends LitElement {
7
10
  /** @internal */
8
11
  protected _messages: {
@@ -1,22 +1,26 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { c as a } from "../../chunks/runtime.js";
3
- import { html as e } from "lit";
4
- import { LitElement as c, createEvent as s } from "@arcgis/lumina";
5
- import { u as l } from "../../chunks/useT9n.js";
6
- class n extends c {
3
+ import { css as c, html as e } from "lit";
4
+ import { LitElement as l, createEvent as i } from "@arcgis/lumina";
5
+ import { u as r } from "../../chunks/useT9n.js";
6
+ const n = c`:host{width:100%;padding:var(--calcite-spacing-md);background:var(--calcite-panel-background-color, var(--calcite-color-background))}calcite-panel{border-radius:var(--calcite-dialog-corner-radius, var(--calcite-corner-radius-sm));border:0 solid var(--calcite-color-brand);border-block-start-width:4px;box-shadow:var(--calcite-shadow-md);width:100%;--calcite-panel-border-color: none}.interrupt-content{padding:0 var(--calcite-spacing-md);background:var(--calcite-color-foreground-1)}`;
7
+ class o extends l {
7
8
  constructor() {
8
- super(...arguments), this.#t = [], this._messages = l({ blocking: !0 }), this.arcgisCancel = s(), this.arcgisSubmit = s();
9
+ super(...arguments), this.#t = [], this._messages = r({ blocking: !0 }), this.arcgisCancel = i(), this.arcgisSubmit = i();
9
10
  }
10
11
  static {
11
12
  this.properties = { type: 1, message: 1, options: 0 };
12
13
  }
14
+ static {
15
+ this.styles = n;
16
+ }
13
17
  #t;
14
18
  _renderInterruptOptions() {
15
19
  switch (this.type) {
16
20
  case "single-select":
17
21
  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>`;
18
22
  case "multi-select":
19
- 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>`;
23
+ return e`<calcite-list selection-mode=multiple .label=${this._messages.optionsLabel} @calciteListChange=${(t) => this.#t = t.target.selectedItems.map((s) => s.value)}>${this.options?.map((t) => e`<calcite-list-item .label=${t} .value=${t}></calcite-list-item>`)}</calcite-list>`;
20
24
  case "boolean-choice":
21
25
  return null;
22
26
  case "text-input":
@@ -24,10 +28,10 @@ class n extends c {
24
28
  }
25
29
  }
26
30
  render() {
27
- 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>`;
31
+ return e`<calcite-panel .description=${this.message}><div class="interrupt-content">${this._renderInterruptOptions()}</div><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>`;
28
32
  }
29
33
  }
30
- a("arcgis-assistant-interrupt", n);
34
+ a("arcgis-assistant-interrupt", o);
31
35
  export {
32
- n as ArcgisAssistantInterrupt
36
+ o as ArcgisAssistantInterrupt
33
37
  };
@@ -0,0 +1,20 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import { c as r } from "../../chunks/runtime.js";
3
+ import { css as l, html as t } from "lit";
4
+ import { LitElement as a } from "@arcgis/lumina";
5
+ const n = l`.interrupt-details ul{margin-block:var(--calcite-spacing-xxs) 0;padding-inline-start:var(--calcite-spacing-xxl)}.interrupt-details li{margin-block:0}.interrupts-container{display:flex;flex-direction:column;gap:var(--calcite-spacing-lg)}`;
6
+ class c extends a {
7
+ static {
8
+ this.properties = { interrupts: 0 };
9
+ }
10
+ static {
11
+ this.styles = n;
12
+ }
13
+ render() {
14
+ return this.interrupts?.length ? t`<calcite-block collapsible expanded heading="Assistant Questions"><div class="interrupts-container">${this.interrupts?.map(({ interrupt: s, response: i }) => t`<div class="interrupt-details"><div>Q: ${s.message}</div><ul>${Array.isArray(i) ? i.length ? i.map((e) => t`<li>${e}</li>`) : t`<li>(Question skipped)</li>` : t`<li>${i != null ? String(i) : "(Question skipped)"}</li>`}</ul></div>`)}</div></calcite-block>` : null;
15
+ }
16
+ }
17
+ r("arcgis-assistant-interrupt-preview", c);
18
+ export {
19
+ c as ArcgisAssistantInterruptPreview
20
+ };
@@ -0,0 +1,2 @@
1
+ import "@esri/calcite-components/components/calcite-block";
2
+ export * from "./customElement.js";
@@ -0,0 +1,23 @@
1
+ /// <reference path="../../index.d.ts" />
2
+ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { AssistantMessage } from "../arcgis-assistant/types.js";
4
+
5
+ /**
6
+ * Renders a single assistant response message shell. Pass one assistant message object and let it host body and footer actions.
7
+ * Offers a reusable assistant-message layout with icon, content, and footer slot regions.
8
+ */
9
+ export abstract class ArcgisAssistantMessage extends LitElement {
10
+ /** @default false */
11
+ accessor assistantAvatarEnabled: boolean;
12
+ /** @default false */
13
+ accessor copyEnabled: boolean;
14
+ /** @default false */
15
+ accessor feedbackEnabled: boolean;
16
+ /** @default false */
17
+ accessor footerDisabled: boolean;
18
+ /** @default false */
19
+ accessor logEnabled: boolean;
20
+ accessor message: AssistantMessage | undefined;
21
+ /** @default false */
22
+ accessor readAloudEnabled: boolean;
23
+ }
@@ -1,43 +1,45 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as d } from "../../chunks/runtime.js";
3
- import { css as m, html as a } from "lit";
4
- import { LitElement as g, nothing as i } from "@arcgis/lumina";
5
- import { useSlottableRequest as b } from "@arcgis/lumina/controllers";
6
- import { g as c, a as r } from "../../chunks/slottableRequestUtils.js";
7
- const f = m`:host{display:block;container-type:inline-size}.container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--calcite-spacing-sm);width:100%;text-align:left}.icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.content-container{display:flex;flex:1;flex-direction:column;width:100%;gap:var(--calcite-spacing-md)}.content,.blocks{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm)}@container (min-width: 480px){.container{max-width:80%}}`;
8
- function p({ message: t }) {
9
- const e = /* @__PURE__ */ new Map();
10
- if (!t)
11
- return e;
12
- const s = c(t.id);
13
- return e.set(s, { data: { message: t }, name: "message", slotName: s }), t.blocks?.forEach((l, o) => {
14
- const n = r(t.id, o);
15
- e.set(n, { data: { block: l, index: o, message: t }, name: "block", slotName: n });
16
- }), e;
2
+ import { c as o } from "../../chunks/runtime.js";
3
+ import { css as l, html as e } from "lit";
4
+ import { LitElement as c, nothing as d } from "@arcgis/lumina";
5
+ import { useSlottableRequest as g } from "@arcgis/lumina/controllers";
6
+ import { g as r } from "../../chunks/slottableRequestUtils.js";
7
+ const m = l`:host{display:block;container-type:inline-size}.container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--calcite-spacing-sm);width:100%;text-align:left}.icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.content-container{display:flex;flex:1;flex-direction:column;width:100%;gap:var(--calcite-spacing-md)}.content,.blocks{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm)}.block-pending{display:flex;justify-content:center;align-items:center;padding:var(--calcite-spacing-sm);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-message-loading-shimmer 2s ease-in-out infinite;border-radius:var(--calcite-border-radius);min-height:100px}.message-error{font-style:italic}@container (min-width: 480px){.container{max-width:80%}}@keyframes assistant-message-loading-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@media(prefers-reduced-motion){.block-pending{animation:none}}`;
8
+ function b({ message: t }) {
9
+ const s = /* @__PURE__ */ new Map();
10
+ return t && t.blocks?.forEach((a, i) => {
11
+ if (!a.isPending) {
12
+ const n = r(t.id, i);
13
+ s.set(n, { data: { block: a, index: i, message: t }, name: "block", slotName: n });
14
+ }
15
+ }), s;
17
16
  }
18
- class h extends g {
17
+ class p extends c {
19
18
  constructor() {
20
- super(...arguments), this.arcgisSlottableRequest = b(this, ["message"], p), this.feedbackEnabled = !1, this.logEnabled = !1, this.copyEnabled = !1, this.readAloudEnabled = !1, this.footerDisabled = !1;
19
+ super(...arguments), this.arcgisSlottableRequest = g(this, ["message"], b), this.feedbackEnabled = !1, this.logEnabled = !1, this.copyEnabled = !1, this.readAloudEnabled = !1, this.footerDisabled = !1, this.assistantAvatarEnabled = !1;
21
20
  }
22
21
  static {
23
- this.properties = { feedbackEnabled: 5, logEnabled: 5, copyEnabled: 5, readAloudEnabled: 5, footerDisabled: 5, message: 0 };
22
+ this.properties = { _isStreaming: 16, feedbackEnabled: 5, logEnabled: 5, copyEnabled: 5, readAloudEnabled: 5, footerDisabled: 5, message: 0, assistantAvatarEnabled: 5 };
24
23
  }
25
24
  static {
26
- this.styles = f;
25
+ this.styles = m;
26
+ }
27
+ get _isStreaming() {
28
+ return !!this.message?.isStreaming;
27
29
  }
28
30
  _renderContent() {
29
- const e = this.message, s = e?.id;
30
- if (s)
31
- return a`<div class="content"><slot name=${c(s) ?? i}></slot>${e.blocks?.length ? a`<div class="blocks">${e.blocks.map((l, o) => a`<slot name=${r(s, o) ?? i}></slot>`)}</div>` : null}</div>`;
31
+ const s = this.message, a = s?.id;
32
+ if (a)
33
+ return e`<div class="content"><arcgis-assistant-interrupt-preview .interrupts=${this.message?.interrupts}></arcgis-assistant-interrupt-preview>${s.blocks?.length ? e`<div class="blocks">${s.blocks.map((i, n) => i.isPending && i.type !== "text" ? e`<div class="block-pending"></div>` : e`<slot name=${r(a, n) ?? d}></slot>`)}</div>` : null}</div>`;
32
34
  }
33
35
  _renderFooter() {
34
- return a`<arcgis-assistant-message-footer .message=${this.message} .feedbackEnabled=${this.feedbackEnabled} .logEnabled=${this.logEnabled} .copyEnabled=${this.copyEnabled} .readAloudEnabled=${this.readAloudEnabled}></arcgis-assistant-message-footer>`;
36
+ return e`<arcgis-assistant-message-footer .message=${this.message} .feedbackEnabled=${this.feedbackEnabled} .logEnabled=${this.logEnabled} .copyEnabled=${this.copyEnabled} .readAloudEnabled=${this.readAloudEnabled}></arcgis-assistant-message-footer>`;
35
37
  }
36
38
  render() {
37
- return a`<div class="container"><slot name=icon><calcite-icon icon=effects class="icon" scale=s></calcite-icon></slot><div class="content-container"><slot name=content>${this._renderContent()}</slot>${this.footerDisabled ? null : a`<slot name=footer>${this._renderFooter()}</slot>`}</div></div>`;
39
+ return e`<div class="container">${this.assistantAvatarEnabled ? e`<slot name=icon><calcite-icon icon=effects class="icon" scale=s></calcite-icon></slot>` : null}<div class="content-container"><slot name=content>${this._renderContent()}</slot>${this.message?.error ? e`<div class="message-error">${this.message.error}</div>` : null}${this._isStreaming ? e`<div class="streaming-indicator"><calcite-loader label=loading inline></calcite-loader></div>` : null}${!this.footerDisabled && !this._isStreaming ? e`<slot name=footer>${this._renderFooter()}</slot>` : null}</div></div>`;
38
40
  }
39
41
  }
40
- d("arcgis-assistant-message", h);
42
+ o("arcgis-assistant-message", p);
41
43
  export {
42
- h as ArcgisAssistantMessage
44
+ p as ArcgisAssistantMessage
43
45
  };
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";
@@ -1,3 +1,5 @@
1
+ import "../arcgis-assistant-interrupt-preview/index.js";
1
2
  import "../arcgis-assistant-message-footer/index.js";
2
3
  import "@esri/calcite-components/components/calcite-icon";
4
+ import "@esri/calcite-components/components/calcite-loader";
3
5
  export * from "./customElement.js";
@@ -2,7 +2,7 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { UXSuggestion } from "../../utils/index.js";
4
4
 
5
- /** A primitive for rendering a default assistant output block. */
5
+ /** Renders one structured assistant block. Offers default block rendering for supported suggestion-style blocks. */
6
6
  export abstract class ArcgisAssistantMessageBlock extends LitElement {
7
7
  accessor block: UXSuggestion | undefined;
8
8
  }
@@ -1,29 +1,36 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as o } from "../../chunks/runtime.js";
3
- import { css as i, html as p } from "lit";
4
- import { LitElement as n } from "@arcgis/lumina";
5
- const l = i`:host{display:block}`;
6
- class a extends n {
2
+ import { c as n } from "../../chunks/runtime.js";
3
+ import { css as i, html as r } from "lit";
4
+ import { LitElement as o } from "@arcgis/lumina";
5
+ const p = i`:host{display:block}`;
6
+ class c extends o {
7
7
  static {
8
8
  this.properties = { block: 0 };
9
9
  }
10
10
  static {
11
- this.styles = l;
11
+ this.styles = p;
12
12
  }
13
13
  _renderSuggestedPrompts(s) {
14
14
  if (s.type !== "suggested-prompts")
15
15
  return null;
16
- const t = s.data?.prompts, e = Array.isArray(t) ? t.filter((r) => typeof r == "string") : [];
17
- return e.length ? p`<arcgis-assistant-suggested-prompts .prompts=${e}></arcgis-assistant-suggested-prompts>` : null;
16
+ const t = s.data?.prompts, e = Array.isArray(t) ? t.filter((a) => typeof a == "string") : [];
17
+ return e.length ? r`<arcgis-assistant-suggested-prompts .prompts=${e}></arcgis-assistant-suggested-prompts>` : null;
18
18
  }
19
19
  _renderBlock(s) {
20
- return s.type === "suggested-prompts" ? this._renderSuggestedPrompts(s) : null;
20
+ switch (s.type) {
21
+ case "suggested-prompts":
22
+ return this._renderSuggestedPrompts(s);
23
+ case "text":
24
+ return r`<arcgis-assistant-message-text .content=${s.data?.content}></arcgis-assistant-message-text>`;
25
+ default:
26
+ return null;
27
+ }
21
28
  }
22
29
  render() {
23
30
  return this.block ? this._renderBlock(this.block) : null;
24
31
  }
25
32
  }
26
- o("arcgis-assistant-message-block", a);
33
+ n("arcgis-assistant-message-block", c);
27
34
  export {
28
- a as ArcgisAssistantMessageBlock
35
+ c as ArcgisAssistantMessageBlock
29
36
  };
@@ -1,2 +1,3 @@
1
1
  import "../arcgis-assistant-suggested-prompts/index.js";
2
+ import "../arcgis-assistant-message-text/index.js";
2
3
  export * from "./customElement.js";
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantMessage } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** @internal */
6
+ /**
7
+ * Handles thumbs up or down feedback UI. Use it to capture helpful or not helpful signals per response.
8
+ * Offers feedback toggle behavior and emits feedback updates for the associated assistant message.
9
+ */
7
10
  export abstract class ArcgisAssistantMessageFeedback extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: {
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantMessage } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** @internal */
6
+ /**
7
+ * Renders the action row under an assistant message. Use it when you want feedback, log, copy, or read-aloud controls.
8
+ * Offers one footer surface that composes common assistant response actions.
9
+ */
7
10
  export abstract class ArcgisAssistantMessageFooter extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: {
@@ -1,8 +1,15 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { AssistantMessage } from "../arcgis-assistant/types.js";
3
4
 
4
- /** @internal */
5
+ /**
6
+ * Shows in-progress assistant response UI. Use it to display thinking or loading state while work is running.
7
+ * Offers a default loading message shell with icon/content slot overrides.
8
+ */
5
9
  export abstract class ArcgisAssistantMessageLoading extends LitElement {
10
+ /** @default false */
11
+ accessor assistantAvatarEnabled: boolean;
12
+ accessor interrupts: AssistantMessage["interrupts"] | undefined;
6
13
  /** @default false */
7
14
  accessor loading: boolean;
8
15
  /** @default "" */
@@ -1,23 +1,23 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as a } from "../../chunks/runtime.js";
3
- import { css as e, html as s } from "lit";
2
+ import { c as s } from "../../chunks/runtime.js";
3
+ import { css as e, html as a } from "lit";
4
4
  import { LitElement as i } from "@arcgis/lumina";
5
5
  const t = e`:host{display:contents}.icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.loading-container{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);padding:0 var(--calcite-spacing-sm)}.loading{display:flex;align-items:center;gap:var(--calcite-spacing-sm)}.text{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}.skeleton-block{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);width:100%}.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-message-loading-shimmer 1.2s ease-in-out infinite;width:85%}.skeleton-text:last-child{width:70%}@keyframes assistant-message-loading-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@media(prefers-reduced-motion){.skeleton-text{animation:none}}`;
6
- class o extends i {
6
+ class n extends i {
7
7
  constructor() {
8
- super(...arguments), this.loading = !1, this.loadingMessage = "";
8
+ super(...arguments), this.loading = !1, this.loadingMessage = "", this.assistantAvatarEnabled = !1;
9
9
  }
10
10
  static {
11
- this.properties = { loading: 5, loadingMessage: 1 };
11
+ this.properties = { loading: 5, loadingMessage: 1, assistantAvatarEnabled: 5, interrupts: 0 };
12
12
  }
13
13
  static {
14
14
  this.styles = t;
15
15
  }
16
16
  render() {
17
- return this.loading ? s`<arcgis-assistant-message footer-disabled><slot name=icon slot=icon><calcite-icon class="icon" icon=effects scale=s></calcite-icon></slot><slot name=content slot=content><div class="loading-container"><div class="loading"><calcite-loader label=loading inline></calcite-loader><div class="text">${this.loadingMessage}</div></div><div class="skeleton-block"><span class="skeleton-text"></span><span class="skeleton-text"></span></div></div></slot></arcgis-assistant-message>` : null;
17
+ return this.loading ? a`<arcgis-assistant-message footer-disabled>${this.assistantAvatarEnabled ? a`<slot name=icon slot=icon><calcite-icon class="icon" icon=effects scale=s></calcite-icon></slot>` : null}<slot name=content slot=content><arcgis-assistant-interrupt-preview .interrupts=${this.interrupts}></arcgis-assistant-interrupt-preview><div class="loading-container"><div class="loading"><calcite-loader label=loading inline></calcite-loader><div class="text">${this.loadingMessage}</div></div><div class="skeleton-block"><span class="skeleton-text"></span><span class="skeleton-text"></span></div></div></slot></arcgis-assistant-message>` : null;
18
18
  }
19
19
  }
20
- a("arcgis-assistant-message-loading", o);
20
+ s("arcgis-assistant-message-loading", n);
21
21
  export {
22
- o as ArcgisAssistantMessageLoading
22
+ n as ArcgisAssistantMessageLoading
23
23
  };
@@ -1,4 +1,5 @@
1
1
  import "../arcgis-assistant-message/index.js";
2
2
  import "@esri/calcite-components/components/calcite-icon";
3
+ import "../arcgis-assistant-interrupt-preview/index.js";
3
4
  import "@esri/calcite-components/components/calcite-loader";
4
5
  export * from "./customElement.js";
@@ -1,7 +1,10 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
 
4
- /** @internal */
4
+ /**
5
+ * Renders expandable execution log details. Use it when exposing agent or tool trace output.
6
+ * Offers collapsible log entry rendering for debugging and troubleshooting.
7
+ */
5
8
  export abstract class ArcgisAssistantMessageLog extends LitElement {
6
9
  accessor log: string[] | undefined;
7
10
  /** @default false */
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantMessage } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** @internal */
6
+ /**
7
+ * Adds text-to-speech playback controls. Use it to read assistant responses aloud.
8
+ * Offers read-aloud start/stop behavior with supported-state handling.
9
+ */
7
10
  export abstract class ArcgisAssistantMessageReadAloud extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: {
@@ -1,7 +1,10 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
 
4
- /** @internal */
4
+ /**
5
+ * Renders assistant message text content. Use it when the block is plain text output.
6
+ * Offers sanitized rich-text rendering for assistant-generated message content.
7
+ */
5
8
  export abstract class ArcgisAssistantMessageText extends LitElement {
6
9
  accessor content: string | undefined;
7
10
  }
@@ -2,7 +2,12 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { VoiceInputDraftChangeDetail, VoiceInputErrorCode, VoiceInputMode, VoiceInputTranscriptDetail, VoiceInputTranscriptionStreamChunkDetail } from "./support/types.js";
4
4
 
5
- /** @internal */
5
+ /**
6
+ * Captures voice input and drafts transcript text. Use it to support microphone-based prompt entry.
7
+ * Offers voice session lifecycle management and transcription event streams.
8
+ *
9
+ * @internal
10
+ */
6
11
  export abstract class ArcgisAssistantSpeechInput extends LitElement {
7
12
  /** @default false */
8
13
  accessor awaitingResponse: boolean;
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantPromptSelectDetail } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** A prompt chip list primitive for rendering assistant suggested prompts. */
6
+ /**
7
+ * Displays prompt chips and emits selection events. Use it to offer quick starter prompts.
8
+ * Offers selectable prompt chips with a prompt-select event for host synchronization.
9
+ */
7
10
  export abstract class ArcgisAssistantSuggestedPrompts extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: { suggestedPromptsLabel: string; } & T9nMeta<{ suggestedPromptsLabel: string; }>;