@arcgis/coding-components 5.0.0-next.93 → 5.0.0-next.94

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 (92) hide show
  1. package/dist/addons/arcade-coding-assistant/chat-helper.d.ts +3 -3
  2. package/dist/addons.js +1 -1
  3. package/dist/cdn/{ZBXNENKW.js → 24A2GMXS.js} +2 -2
  4. package/dist/cdn/{PGSOHB37.js → 2YVIARN5.js} +2 -2
  5. package/dist/cdn/{PQAIRRA6.js → 3OHWJOMD.js} +2 -2
  6. package/dist/cdn/{LBTNX3UD.js → 45RYMSYG.js} +2 -2
  7. package/dist/cdn/{Z4L7OJKT.js → 5WHTEHPM.js} +2 -2
  8. package/dist/cdn/{CY2NIZSQ.js → 6HA5DFLF.js} +1 -1
  9. package/dist/cdn/{VFIPWTCQ.js → 6ROKBSGI.js} +2 -2
  10. package/dist/cdn/{MIV62SB5.js → 75OSZZJF.js} +2 -2
  11. package/dist/cdn/{ETMVFEBE.js → A5WEEHGM.js} +2 -2
  12. package/dist/cdn/{3AOVYJDA.js → A6DSFADQ.js} +2 -2
  13. package/dist/cdn/{WSQRFXIA.js → APXINRPI.js} +2 -2
  14. package/dist/cdn/{GYL2QCR7.js → B5GJ3P5G.js} +2 -2
  15. package/dist/cdn/BQJBSDM2.js +4 -0
  16. package/dist/cdn/BQNN5XLA.js +6 -0
  17. package/dist/cdn/{A323TEFP.js → C7S7FIMX.js} +2 -2
  18. package/dist/cdn/{QONUPJDY.js → CBWWEN4S.js} +1 -1
  19. package/dist/cdn/{QDDMGH2B.js → CL5UX33P.js} +2 -2
  20. package/dist/cdn/{UPIRR7NI.js → CUL2JAK4.js} +2 -2
  21. package/dist/cdn/{5EBSP7DM.js → E5NOGZC7.js} +2 -2
  22. package/dist/cdn/{PO35LCAS.js → FL7A5ZFN.js} +2 -2
  23. package/dist/cdn/{SYFORY5P.js → FNP2QIRS.js} +2 -2
  24. package/dist/cdn/{V5FQNTXG.js → FQGB2RRB.js} +2 -2
  25. package/dist/cdn/{YNQH23OP.js → GNLRKAD5.js} +2 -2
  26. package/dist/cdn/{K3L3TIEP.js → H2A4L7G6.js} +2 -2
  27. package/dist/cdn/{5XCYAKJJ.js → IKQMRUER.js} +2 -2
  28. package/dist/cdn/{4P5HZOXS.js → IOYAZ7XQ.js} +2 -2
  29. package/dist/cdn/{CT7TBHUK.js → JSQ46V4B.js} +2 -2
  30. package/dist/cdn/{VAELJETA.js → JUKZO7ZY.js} +2 -2
  31. package/dist/cdn/{7FSEYOGD.js → KLR2TH2U.js} +2 -2
  32. package/dist/cdn/{2GQYFHB5.js → KMR6BDYB.js} +2 -2
  33. package/dist/cdn/{HNHID2GQ.js → M5VQUFXO.js} +2 -2
  34. package/dist/cdn/{ZCT5XGMI.js → NCWCEJ4H.js} +1 -1
  35. package/dist/cdn/{P6IUHZNJ.js → NVZTZU3Q.js} +2 -2
  36. package/dist/cdn/{XOQ3RM5Y.js → R5L3UDPZ.js} +2 -2
  37. package/dist/cdn/{53OPBGH3.js → RDOPAVSY.js} +1 -1
  38. package/dist/cdn/{I4JO32WF.js → SNLDOFIP.js} +2 -2
  39. package/dist/cdn/{ITSWV2D2.js → TTNKFUSY.js} +2 -2
  40. package/dist/cdn/{UTNSHEMF.js → UHQMWHSA.js} +1 -1
  41. package/dist/cdn/{URZFEWH3.js → UYCZT4PR.js} +2 -2
  42. package/dist/cdn/{N7HNKUKK.js → UYYBSWI5.js} +2 -2
  43. package/dist/cdn/{5CEEVUCZ.js → V6ZXLVEU.js} +2 -2
  44. package/dist/cdn/{UGVEW6ZQ.js → W3I4P6B2.js} +1 -1
  45. package/dist/cdn/{TRILF5XK.js → WZBQ3LI4.js} +2 -2
  46. package/dist/cdn/{MNSM3SGU.js → X2UROQYS.js} +1 -1
  47. package/dist/cdn/{UVW7RTZM.js → XQ7S4CXK.js} +1 -1
  48. package/dist/cdn/{LC7PNNVV.js → YAFEASDQ.js} +3 -3
  49. package/dist/cdn/{2X52Y4DY.js → YGMFTUQQ.js} +1 -1
  50. package/dist/cdn/{BYEBULNN.js → Z3ZSRJMV.js} +2 -2
  51. package/dist/cdn/assets/arcade-coding-assistant/t9n/messages.en.json +1 -1
  52. package/dist/cdn/index.js +2 -2
  53. package/dist/chunks/arcade-contribution.js +1 -1
  54. package/dist/chunks/arcade-defaults.js +1 -1
  55. package/dist/chunks/arcade-executor.js +1 -1
  56. package/dist/chunks/arcade-mode.js +1 -1
  57. package/dist/chunks/arcade-service-accessors.js +1 -1
  58. package/dist/chunks/colorize.js +1 -1
  59. package/dist/chunks/editor.js +1 -1
  60. package/dist/chunks/fields.js +1 -1
  61. package/dist/chunks/language-defaults-base.js +1 -1
  62. package/dist/chunks/markdown.js +1 -1
  63. package/dist/chunks/monaco-importer.js +1 -1
  64. package/dist/chunks/monaco-theme.js +1 -1
  65. package/dist/chunks/runtime.js +1 -1
  66. package/dist/chunks/sql-expr-defaults.js +1 -1
  67. package/dist/chunks/sql-expr-mode.js +1 -1
  68. package/dist/chunks/sql-expr-service-accessors.js +1 -1
  69. package/dist/chunks/useT9n.js +1 -1
  70. package/dist/chunks/utilities.js +1 -1
  71. package/dist/components/arcgis-arcade-coding-assistant/customElement.js +217 -106
  72. package/dist/components/arcgis-arcade-coding-assistant/types.d.ts +4 -4
  73. package/dist/components/arcgis-arcade-editor/customElement.js +1 -1
  74. package/dist/components/arcgis-arcade-results/customElement.js +1 -1
  75. package/dist/components/arcgis-arcade-suggestions/customElement.js +1 -1
  76. package/dist/components/arcgis-code-editor/customElement.js +1 -1
  77. package/dist/components/arcgis-code-viewer/customElement.js +1 -1
  78. package/dist/components/arcgis-editor-variables/customElement.js +1 -1
  79. package/dist/components/arcgis-language-api-panel/customElement.js +1 -1
  80. package/dist/components/arcgis-sql-expression-editor/customElement.js +1 -1
  81. package/dist/components/arcgis-sql-expression-fields/customElement.js +1 -1
  82. package/dist/docs/api.json +2 -2
  83. package/dist/docs/docs.json +2 -2
  84. package/dist/docs/web-types.json +1 -1
  85. package/dist/index.js +1 -1
  86. package/dist/loader.js +1 -1
  87. package/dist/monacoStyles.js +1 -1
  88. package/dist/utils/arcade-assistant/aiContext.d.ts +6 -0
  89. package/dist/utils/arcade-assistant/types.d.ts +39 -0
  90. package/package.json +5 -5
  91. package/dist/cdn/DGSXN3MJ.js +0 -6
  92. package/dist/cdn/IBBEGZKT.js +0 -4
@@ -1,4 +1,4 @@
1
- import { default as Field } from '@arcgis/core/layers/support/Field';
1
+ import { ArcadeAiProfileContext } from '../../utils/arcade-assistant/types';
2
2
  export type Feedback = {
3
3
  user_evaluation?: "bad" | "good";
4
4
  your_comments?: string;
@@ -40,9 +40,9 @@ export type HistoryItem = {
40
40
  };
41
41
  export type IconName = HTMLCalciteIconElement["icon"];
42
42
  export type Context = {
43
- /** profileName and metadata are passed to backend */
44
- profileName: string;
45
- metadata: Partial<Field>[];
43
+ /** profileId and metadata are passed to backend */
44
+ profileId: string;
45
+ metadata: ArcadeAiProfileContext;
46
46
  /** used for the context display buttons / chips */
47
47
  layerName?: nullish | string;
48
48
  };
@@ -17,7 +17,7 @@ import { s as U } from "../../chunks/editor.js";
17
17
  import j from "@arcgis/core/identity/IdentityManager.js";
18
18
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
19
19
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
20
- v5.0.0-next.93 */
20
+ v5.0.0-next.94 */
21
21
  const z = w`@layer{arcgis-arcade-editor{display:flex;flex-direction:column;position:relative;overflow:hidden;border:var(--arcgis-coding-components-border)!important;box-sizing:border-box;background-color:var(--arcgis-coding-components-background-color);height:100%;.sticky{position:sticky;top:0;z-index:10}.notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1);text-align:center}.main-action-bar{border-bottom:var(--arcgis-coding-components-border)!important;flex:0 0 auto;calcite-action-group{padding-inline-end:var(--calcite-spacing-sm);calcite-action{padding-inline-end:var(--calcite-spacing-sm)}calcite-action:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}}calcite-action-group:last-child{border-inline-end-width:0px}calcite-action-group:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}}arcgis-arcade-results{border-top:var(--arcgis-coding-components-border)!important;box-sizing:border-box;max-height:50%;min-height:50%;margin-bottom:-1px}calcite-flow{[slot=footer]{word-break:break-word}}.hidden{display:none}}}`, N = "https://services6.arcgis.com/HXHga6CfMLMBOlBX/ArcGIS/rest/services/survey123_6e349a50b4504ca6b6107216d568db5f_form/FeatureServer/0", O = (s) => {
22
22
  const { aiAssistantsEnabled: e } = s;
23
23
  return e === void 0 ? (console.warn("areAiAssistantsEnabled is not defined in the organizations settings."), !1) : e;
@@ -11,7 +11,7 @@ import { t as k } from "../../chunks/monaco-theme.js";
11
11
  import { observeAncestorsMutation as z, unsafeGetCalciteModeName as N } from "@arcgis/toolkit/dom";
12
12
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
13
13
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
14
- v5.0.0-next.93 */
14
+ v5.0.0-next.94 */
15
15
  const E = w`:host{display:flex;flex-direction:column;width:100%;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);.flex-adjustable{flex:1 1 auto;overflow:hidden}.flex-row{display:flex;flex-direction:row;overflow:hidden}.flex-column{display:flex;flex-direction:column;overflow:hidden}.y-scrollable-container{overflow-y:auto;block-size:100%;background-color:var(--calcite-color-foreground-1)}header{border-bottom:1px solid var(--calcite-color-border-3);flex:0 0 auto}.ltr-container{direction:ltr}calcite-action-bar{calcite-action-group{padding-inline-end:var(--calcite-spacing-sm);calcite-action{padding-inline-end:var(--calcite-spacing-sm)}calcite-action:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}}calcite-action-group:last-child{border-inline-end-width:0px}calcite-action-group:not(:first-child){padding-inline-start:var(--calcite-spacing-sm)}}.notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1)}.color-info{color:var(--calcite-color-status-info)}.color-error{color:var(--calcite-color-status-danger)}.color-success{color:var(--calcite-color-status-success)}[class*=result-value-]{font-size:var(--calcite-font-size--2);line-height:1.25rem;background-color:var(--calcite-color-foreground-1);margin:var(--calcite-spacing-md)}.console-logs-container{background-color:var(--calcite-color-foreground-1);padding:0 var(--calcite-spacing-md);font-family:var(--calcite-code-family);font-size:var(--calcite-font-size--2);font-weight:var(--calcite-font-weight-normal)}.result-value-table{table{display:block;max-width:fit-content;overflow-x:auto;border-spacing:0;border-collapse:collapse;text-align:start;white-space:nowrap;thead{background-color:var(--calcite-color-foreground-2)}tr{border-top:1px solid var(--calcite-color-border-3);border-bottom:1px solid var(--calcite-color-border-3)}th,td{border-inline-start:1px solid var(--calcite-color-border-3);border-inline-end:1px solid var(--calcite-color-border-3);text-align:start;padding:var(--calcite-spacing-xxs);.string-value{white-space:pre}}th{font-weight:var(--calcite-font-weight-medium)}}}.tree-item-label,.number-value,.string-value,.boolean-value{font-family:var(--calcite-code-family)}.tree-item-label,.value-type{color:var(--calcite-color-text-2);font-weight:var(--calcite-font-weight-normal)}.dictionary-property{color:var(--arcgis-editor-identifier)}.number-value{color:var(--arcgis-editor-number)}.string-value{color:var(--arcgis-editor-string);white-space:pre-wrap}.constant-value{color:var(--arcgis-editor-constant)}.date-value{color:var(--arcgis-editor-date)}}`, l = {
16
16
  lines: !0,
17
17
  selectionMode: "none",
@@ -9,7 +9,7 @@ import { c as b } from "../../chunks/markdown.js";
9
9
  import { u as _ } from "../../chunks/useT9n.js";
10
10
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
11
11
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
12
- v5.0.0-next.93 */
12
+ v5.0.0-next.94 */
13
13
  function v(o) {
14
14
  return !Array.isArray(o) || !o.length ? !1 : Array.isArray(o[0].suggestions);
15
15
  }
@@ -10,7 +10,7 @@ import { load as I } from "@arcgis/lumina/controllers";
10
10
  import { Range as v, Uri as s, KeyMod as n, KeyCode as r } from "monaco-editor";
11
11
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
12
12
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
13
- v5.0.0-next.93 */
13
+ v5.0.0-next.94 */
14
14
  const M = f`@layer{arcgis-code-editor{display:flex;width:100%;height:100%;flex-direction:column;direction:ltr;.monaco-editor{flex:1 1 auto;.monaco-hover,.editor-widget,.suggest-details-container{z-index:9999}div[widgetid="editor.contrib.resizableContentHoverWidget"],div[widgetid="editor.widget.suggestWidget"],div[widgetid="suggest.details"]{z-index:calc(var(--calcite-z-index-header) + 1)!important}}}}`, y = {
15
15
  autoIndent: "advanced",
16
16
  automaticLayout: !0,
@@ -11,7 +11,7 @@ import { debounce as y } from "@arcgis/toolkit/function";
11
11
  import { Task as N } from "@lit/task";
12
12
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
13
13
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
14
- v5.0.0-next.93 */
14
+ v5.0.0-next.94 */
15
15
  const O = E`pre{direction:ltr;overflow-x:auto;background-color:var(--calcite-color-foreground-2);padding:var(--calcite-spacing-sm);white-space:pre-line;code{font-size:var(--calcite-font-size--2);font-family:var(--calcite-font-family-code)}}:host([round]){pre{border-radius:var(--calcite-corner-radius-round)}}`;
16
16
  class w extends p {
17
17
  constructor() {
@@ -7,7 +7,7 @@ import { createFilterExpression as f } from "@arcgis/toolkit/string";
7
7
  import { u as m } from "../../chunks/useT9n.js";
8
8
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
9
9
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
10
- v5.0.0-next.93 */
10
+ v5.0.0-next.94 */
11
11
  const u = n`:host{background-color:var(--calcite-color-foreground-1);.notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1)}.sticky{position:sticky;top:0;z-index:10}calcite-flow{height:100%}calcite-list-item-group{background-color:var(--calcite-color-foreground-2);word-break:break-word}}`;
12
12
  function g(l) {
13
13
  l.key === "Enter" && l.stopPropagation();
@@ -9,7 +9,7 @@ import { c as n } from "../../chunks/markdown.js";
9
9
  import { u as f } from "../../chunks/useT9n.js";
10
10
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
11
11
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
12
- v5.0.0-next.93 */
12
+ v5.0.0-next.94 */
13
13
  const g = m`:host{background-color:var(--calcite-color-foreground-1);.notice-container{margin:var(--calcite-spacing-xxs);padding:var(--calcite-spacing-sm);background-color:var(--calcite-color-foreground-1)}.sticky{position:sticky;top:0;z-index:10}calcite-flow{height:100%}calcite-block{p:first-of-type{margin-top:0}}calcite-list-item-group{background-color:var(--calcite-color-foreground-2)}}`;
14
14
  class b extends h {
15
15
  constructor() {
@@ -9,7 +9,7 @@ import { s as f } from "../../chunks/editor.js";
9
9
  import { getSqlExprDiagnosticService as _ } from "../../chunks/sql-expr-mode.js";
10
10
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
11
11
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
12
- v5.0.0-next.93 */
12
+ v5.0.0-next.94 */
13
13
  const u = n`@layer{arcgis-sql-expression-editor{display:flex;flex-direction:column;position:relative;overflow:hidden;border:var(--arcgis-coding-components-border)!important;box-sizing:border-box;background-color:var(--arcgis-coding-components-background-color);height:100%}}`;
14
14
  class m extends c {
15
15
  constructor() {
@@ -6,7 +6,7 @@ import { a as m } from "../../chunks/sql-expr-defaults.js";
6
6
  import { u as d } from "../../chunks/useT9n.js";
7
7
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
8
8
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
9
- v5.0.0-next.93 */
9
+ v5.0.0-next.94 */
10
10
  const h = r`:host{calcite-flow{height:100%}calcite-list-item-group{background-color:var(--calcite-color-foreground-2)}}`;
11
11
  class g extends n {
12
12
  constructor() {
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2025-12-17T04:35:48",
2
+ "timestamp": "2025-12-18T04:37:52",
3
3
  "compiler": {
4
4
  "name": "@arcgis/lumina-compiler",
5
- "version": "5.0.0-next.93",
5
+ "version": "5.0.0-next.94",
6
6
  "typescriptVersion": "5.9.3"
7
7
  },
8
8
  "schemaVersion": "2.1.0",
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2025-12-17T04:35:48",
2
+ "timestamp": "2025-12-18T04:37:52",
3
3
  "compiler": {
4
4
  "name": "@arcgis/lumina-compiler",
5
- "version": "5.0.0-next.93",
5
+ "version": "5.0.0-next.94",
6
6
  "typescriptVersion": "5.9.3"
7
7
  },
8
8
  "components": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@arcgis/coding-components",
4
- "version": "5.0.0-next.93",
4
+ "version": "5.0.0-next.94",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { a as c } from "./chunks/arcade-defaults.js";
3
3
  import { s as p } from "./chunks/sql-expr-defaults.js";
4
4
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
5
5
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
6
- v5.0.0-next.93 */
6
+ v5.0.0-next.94 */
7
7
  const a = s, r = t;
8
8
  export {
9
9
  c as arcade,
package/dist/loader.js CHANGED
@@ -2,7 +2,7 @@ import { r as e } from "./chunks/runtime.js";
2
2
  import { makeDefineCustomElements as s } from "@arcgis/lumina";
3
3
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
4
4
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
5
- v5.0.0-next.93 */
5
+ v5.0.0-next.94 */
6
6
  const a = s(e, {
7
7
  "arcgis-arcade-coding-assistant": [() => import("./components/arcgis-arcade-coding-assistant/customElement.js"), "appVersion,assistantsEnabled,closed,closePanel:,editorRef:,feedbackServiceUrl,helpBase,insertText:,layer,portalUrl,serviceUrl;destroy"],
8
8
  "arcgis-arcade-editor": [() => import("./components/arcgis-arcade-editor/customElement.js"), "arcadeAssistant:,customPanels:,editorInstance:,editorOptions:,hideDocumentationActions,hideSideBar,openedSidePanel:,profile:,script,sideActionBarExpanded,snippets:,suggestions:,testData:;getEditorInstance,getScript,getTestResult,setFocus"],
@@ -1,6 +1,6 @@
1
1
  /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
2
2
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
3
- v5.0.0-next.93 */
3
+ v5.0.0-next.94 */
4
4
  const A = `/*!-----------------------------------------------------------
5
5
  * Copyright (c) Microsoft Corporation. All rights reserved.
6
6
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -0,0 +1,6 @@
1
+ import { EditorProfile } from '../profile/editor-profile';
2
+ import { ArcadeAiProfileContext } from './types';
3
+ /**
4
+ * Convert an EditorProfile to an ArcadeAiProfileContext, this gets passed as metadata to the AI Skill
5
+ */
6
+ export declare function editorProfileToAiContext(profile: EditorProfile): Promise<ArcadeAiProfileContext>;
@@ -1,3 +1,5 @@
1
+ import { ArrayVariable } from '@arcgis/core/arcade';
2
+ import { default as Field } from '@arcgis/core/layers/support/Field';
1
3
  /** Public configuration options for the arcade assistant */
2
4
  export type ArcadeAssistantConfig = {
3
5
  /** The URL of the portal the arcade editor is loaded for. Typically accessed via `portal.url` */
@@ -33,3 +35,40 @@ export interface PortalSettingsResponse {
33
35
  export interface SignInSettingsResponse {
34
36
  blockBetaApps?: boolean;
35
37
  }
38
+ export type FieldsBasedContext = {
39
+ name: string;
40
+ type: "feature" | "featureSet" | "knowledgeGraph";
41
+ fields?: (Pick<Field, "alias" | "name" | "type"> & {
42
+ domain?: Field["domain"];
43
+ })[];
44
+ };
45
+ export type FeatureSetCollectionContext = {
46
+ name: string;
47
+ type: "featureSetCollection";
48
+ layers: FieldsBasedContext[];
49
+ tables: FieldsBasedContext[];
50
+ };
51
+ export type DictionaryContext = {
52
+ name: string;
53
+ type: "dictionary";
54
+ attributes: ArcadeAiContextVariable[];
55
+ };
56
+ export type MembersBasedContext = {
57
+ name: string;
58
+ type: "pixel" | "voxel";
59
+ members?: ArcadeAiContextVariable[];
60
+ };
61
+ type ArrayContext = {
62
+ name: string;
63
+ type: "array";
64
+ elementType?: ArrayVariable["elementType"]["type"];
65
+ };
66
+ export type ValueContext = {
67
+ name: string;
68
+ type: "boolean" | "date" | "dateOnly" | "geometry" | "number" | "text" | "time";
69
+ };
70
+ export type ArcadeAiContextVariable = ArrayContext | DictionaryContext | FeatureSetCollectionContext | FieldsBasedContext | MembersBasedContext | ValueContext;
71
+ export interface ArcadeAiProfileContext {
72
+ variables: ArcadeAiContextVariable[];
73
+ }
74
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/coding-components",
3
- "version": "5.0.0-next.93",
3
+ "version": "5.0.0-next.94",
4
4
  "description": "Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.",
5
5
  "keywords": [
6
6
  "ArcGIS",
@@ -42,10 +42,10 @@
42
42
  ],
43
43
  "license": "SEE LICENSE IN LICENSE.md",
44
44
  "dependencies": {
45
- "@arcgis/arcade-languageservice": "5.0.0-next.93",
46
- "@arcgis/languages-api-utils": "5.0.0-next.93",
47
- "@arcgis/lumina": "5.0.0-next.93",
48
- "@arcgis/toolkit": "5.0.0-next.93",
45
+ "@arcgis/arcade-languageservice": "5.0.0-next.94",
46
+ "@arcgis/languages-api-utils": "5.0.0-next.94",
47
+ "@arcgis/lumina": "5.0.0-next.94",
48
+ "@arcgis/toolkit": "5.0.0-next.94",
49
49
  "@lit/task": "^1.0.3",
50
50
  "lit": "^3.3.0",
51
51
  "monaco-editor": "^0.52.0",
@@ -1,6 +0,0 @@
1
- /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
2
- See https://js.arcgis.com/5.0/esri/copyright.txt for details.
3
- v5.0.0-next.93 */
4
- import{a as T}from"./I4JO32WF.js";import b from"./V5FQNTXG.js";import{a as L}from"./N7HNKUKK.js";import"./SYFORY5P.js";import a from"./UPIRR7NI.js";import"./2X52Y4DY.js";import"./CY2NIZSQ.js";import{c as j,d as B}from"./K3L3TIEP.js";import"./LC7PNNVV.js";import"./53OPBGH3.js";import"./URZFEWH3.js";import"./MNSM3SGU.js";import{E as z,F as V,G as D,I as C,K as H,h as P,j as l,k as U,l as A,s as q,w as _,x as F,y as O}from"./YNQH23OP.js";import"./UVW7RTZM.js";import"./LBTNX3UD.js";import"./UGVEW6ZQ.js";export default $arcgis.t(([ne,W,le,de,pe,{a:Q},S])=>{var $=class extends O{constructor(e){if(super(e),this.it=A,e.type!==_.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===A||e==null)return this._t=void 0,this.it=e;if(e===U)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}};$.directiveName="unsafeHTML",$.resultType=1;var k=F($);var G=new Set,J;var re=i=>typeof i=="string"?i:"el"in i?i.el.localName:"localName"in i?i.localName:i.declaredClass,b=(i,e,t,s)=>{let o=re(e);if(s?.once){let r=`${i}${o}${t}`;if(G.has(r))return;G.add(r)}let c;if(s?.detail){c={};for(let[r,p]of Object.entries(s.detail))if((typeof p=="object"||typeof p=="function")&&p!==null){let n=new WeakRef(p);Object.defineProperty(c,r,{get(){return n.deref()}})}else c[r]=p;J?.log.interceptors?.forEach(r=>r(i,o,t,c)),console[i](`[${o}]`,t,c)}else J?.log.interceptors?.forEach(r=>r(i,o,t)),console[i](`[${o}]`,t)};var ue=P`:host(:not([closed])){container-type:size;--calcite-block-border-color: var(--calcite-color-transparent);flex:1 0 auto;border-inline-start:var(--arcgis-coding-components-border);box-sizing:border-box;max-width:var(--arcgis-coding-components-code-editor-side-panel-max-w);width:var(--arcgis-coding-components-code-editor-side-panel-w);.submission-actions-wrapper{display:flex;flex-direction:column;width:100%;gap:.75rem}.submission-actions{display:flex;flex-direction:row;gap:.5rem;justify-content:space-between}@container (max-width: 380px){.hidden-below-380{display:none}}@container (min-width: 380px){.hidden-above-380{display:none}}.gaps{display:flex;gap:.25rem}.align-inline-end{margin-inline-start:auto}.action .error-display{display:flex;flex-direction:row;gap:.5rem;justify-content:space-between}.context-popover p{padding:0 .5rem;font-size:var(--calcite-font-size-sm)}.feedback-content{padding:1rem;display:flex;flex-direction:column;gap:.75rem;max-height:30vh;overflow-y:auto}.feedback-sheet{--calcite-sheet-height: auto;--calcite-sheet-max-height: 100%;--calcite-sheet-min-height: auto}calcite-chip[slot=header-actions-end]{align-self:center;margin-inline-end:.5rem}calcite-flow-item calcite-shell{background:transparent}calcite-block{width:100%;max-width:100%;align-self:flex-end;background-color:transparent;margin-block:0}calcite-sheet{--calcite-sheet-scrim-background: rgba(200, 200, 200, .5)}.type-suggestion{--calcite-color-foreground-1: var(--calcite-color-foreground-current);--calcite-color-text-3: var(--calcite-color-text-2);--calcite-icon-color: var(--calcite-color-brand)}.type-history{--calcite-icon-color: var(--calcite-color-text-2)}.type-response{--calcite-icon-color: var(--calcite-color-brand);--calcite-font-family: monospace}.block-response{align-self:flex-start;margin-block-end:4rem;border-block-end:0;--calcite-block-text-color: var(--calcite-color-brand)}calcite-list-item calcite-button{margin-inline-end:.25rem}.type-docs{--calcite-color-foreground-1: var(--calcite-color-foreground-3);--calcite-icon-color: var(--calcite-color-text-1)}.type-error{--calcite-icon-color: var(--calcite-color-status-danger);--calcite-font-family: monospace;border:1px solid var(--calcite-color-status-danger)}#thumbs-up{margin-inline-start:auto;--calcite-icon-color: var(--calcite-color-border-input)}#thumbs-down{--calcite-icon-color: var(--calcite-color-border-input)}calcite-flow-item calcite-shell calcite-notice{margin-block:1rem}.no-space-block,.no-space-block[open]{margin:0}calcite-block[open]:last-of-type{border-block-end:0}.text-area-wrapper{display:flex;border-radius:var(--calcite-corner-radius-round);margin:.75rem;overflow:hidden;--calcite-color-border-input: transparent;position:sticky;box-shadow:var(--calcite-shadow-sm);flex:none}calcite-text-area{height:auto;min-height:5.75rem;overflow:hidden;border-radius:var(--calcite-corner-radius-round) var(--calcite-corner-radius-round) 0 0;--calcite-font-weight-normal: 500;font-weight:500;line-height:1.2}.standalone-list{margin:1rem;width:calc(100% - 2rem)}.result-disclaimer{display:block;width:24rem;max-width:90%;margin:1rem auto;text-align:center;line-height:1.125rem;font-size:.875rem;font-style:italic}calcite-flow{height:100%}calcite-popover calcite-list{--calcite-list-background-color: transparent;--calcite-input-border-color: transparent}calcite-popover calcite-list calcite-filter{--calcite-spacing-sm: 0}.contained-popover-or-tooltip{--calcite-popover-max-size-x: 100%;--calcite-tooltip-max-size-x: 100%}.break-spaces{white-space:break-spaces}.feedback-button-container{margin-inline-start:auto;gap:0}.info-heading{font-size:var(--calcite-font-size-1);color:var(--calcite-color-text-1)}.unstyled-h3{margin:unset;font-size:var(--calcite-font-size-md)}.unstyled-shell{position:unset;inset:unset;display:unset;block-size:unset;inline-size:unset}.suggestion-button{font-weight:var(--calcite-font-weight-medium)}.info-block{max-width:450px}#result-block{calcite-card-group{--calcite-card-group-gap: 1.25rem}calcite-card{--calcite-card-corner-radius: var(--calcite-corner-radius-round);--calcite-card-border-color: transparent;width:100%}.positioned-code-content{display:flex;flex-direction:row;gap:.5rem;padding:.5rem}calcite-card [slot=heading] calcite-chip{margin-block-start:.25rem}.code-response-wrapper{position:relative;background:var(--calcite-color-foreground-2);border-radius:var(--calcite-corner-radius-round);margin-top:-1.5rem}.prior-prompt{display:flex;flex-direction:row;padding:0;overflow-y:hidden;overflow-x:auto;margin:.25rem 0 .75rem;align-items:center;max-width:100%;span{overflow-x:auto;overflow-y:hidden}}.copy-feedback{display:none}.copy-prompt-button{align-self:flex-start;margin-inline-start:auto}.response-secondary-action-button[data-copied]+.copy-feedback,.copy-prompt-button[data-copied]+.copy-feedback{display:block;span{padding:.75rem 1rem;font-size:var(--calcite-font-size--2);line-height:1.375;color:var(--calcite-color-text--2);font-weight:var(--calcite-font-weight-medium)}}.copy-prompt-button[data-copied]~.copy-tooltip,.response-secondary-action-button[data-copied]~.copy-tooltip{display:none}code{white-space:pre;font-size:12px;margin:0;overflow-x:auto;font-family:Fira Mono,Consolas,Menlo,monospace;display:block;max-height:12rem;position:relative;padding:.5rem}.code-collapse{margin-inline-start:auto}.response-secondary-action-button{margin-left:.5rem}.add-to-editor-button{--calcite-internal-button-border-color: unset}}.collapsible-code{padding:.5rem}.collapsible-code summary{cursor:pointer;font-weight:500;color:var(--calcite-color-brand);outline:none;padding:.25rem 0}.collapsible-code[open] summary{color:var(--calcite-color-text-2)}.collapsible-error{padding:.5rem}.collapsible-error summary{cursor:pointer;font-weight:500;color:var(--calcite-color-status-danger);outline:none;padding:.25rem 0}.collapsible-error[open] summary{color:var(--calcite-color-text-2)}.response-error-container{padding:.5rem;background:color-mix(in srgb,var(--calcite-color-status-warning) 10%,transparent);border-radius:var(--calcite-corner-radius-round);margin:1rem 0;font-size:var(--calcite-font-size--2);--calcite-input-message-icon-color: var(--calcite-color-status-warning)}.response-error-chip{--calcite-internal-chip-background-color: var(--calcite-color-status-warning);--calcite-chip-icon-color: var(--calcite-color-foreground-1);--calcite-chip-border-color: var(--calcite-color-transparent)}.feedback-actions{gap:unset}.contained{max-width:100%;max-height:100%;max-width:100cqi;max-height:75cqb;overflow-y:auto}}:host([closed]){display:none}`,f=class extends Error{constructor({message:e,code:t,subCode:s,details:o,source:c}){super(e),this.name="ArcadeAssistantError",this.code=t,this.subCode=s,this.details=o,this.source=c}};function Y(i){if(!i)return;let e=i.indexOf('{"error":');if(e!==-1)try{let t=i.slice(e),s=JSON.parse(t);if(s&&typeof s=="object"&&s.error)return s.error}catch{return}}async function me(i){let{baseUrl:e,skillId:t,message:s,authToken:o,previousConversationId:c,context:r}=i,p=t?`${e}/skills/${t}/chat`:`${e}/chat`,n=[],a={message:s,context:r};c&&(a.conversation_id=c);let d;try{d=await W(p,{method:"post",headers:{"Content-Type":"application/json",token:o},body:JSON.stringify(a),responseType:"json"})}catch(h){let g=h,w=g.details?.rawResponse||g.message||String(h),v=Y(w);throw v?new f(v):h}let u=d.data;n.push(u);let x=u.conversationId,se=u.inquiryId,R=u.sequenceNumber;async function ae(){let h=0,g=25;for(;h<g;){await new Promise(y=>setTimeout(y,1e3));let w=he(x,R,se),v;try{v=await W(p,{method:"post",headers:{"Content-Type":"application/json",token:o},body:JSON.stringify(w),responseType:"json"})}catch(y){let N=y,ce=N.details?.rawResponse||N.message||String(y),M=Y(ce);throw M?new f(M):y}let m=v.data;if(m.context?.kind==="ArcgisErrorAsContext"&&m.context.error)throw new f({message:m.context.error.message||"ArcGIS Assistant error",code:m.context.error.code,subCode:m.context.error.subCode,details:m.context.error.details,source:"polling-response"});if(n.push(m),R=m.sequenceNumber,h++,!m.hasMore)break}if(h===g)throw new f({message:"Request timed out",code:"TIMEOUT",source:"polling"})}let oe=120*1e3;return await Promise.race([ae(),new Promise((h,g)=>setTimeout(()=>g(new f({message:"Request timed out",code:"TIMEOUT",source:"hard-timeout"})),oe))]),n}function he(i,e,t){return{conversationId:i,inquiryId:t,ackSequenceNumber:e}}function ge(i){return i.message.match(/Error in prompt shield/u)?"I'm having trouble with this request. Try again by rephrasing the question.":i.code==="TIMEOUT"?"I'm having trouble with this request. Try again by re-asking the same question or rephrasing it.":i.message}var be=i=>{let e=i.value.length,t=72,s=180,o=i.offsetWidth,c=Math.max(1,Math.floor(o/8)),r=Math.ceil(e/c),p=t+(r-2)*24;i.style.setProperty("--calcite-text-area-min-height",`${Math.min(p,s)}px`)};function fe({messages:i}){return l`<calcite-chip slot=header-actions-end scale=s appearance=outline-fill .label=${i.beta??"Beta"}>${i.beta??"Beta"}</calcite-chip>`}function ve({popoverContent:i}){return l`<calcite-action icon=information slot=header-actions-end id=legal-disclaimer text></calcite-action><calcite-popover reference-element=legal-disclaimer label=legal-disclaimer placement=bottom auto-close focus-trap-disabled><div class="contained">${i}</div></calcite-popover>`}function ie({errorMessage:i,slot:e}){return l`<div class="error-display"><calcite-input-message id=error-message status=invalid icon=exclamation-mark-triangle scale=m slot=${e??C}>${i}</calcite-input-message></div>`}function ye({active:i,setActive:e,messages:t}){return l`<calcite-alert slot=alerts .open=${i} placement=bottom kind=success icon=check-circle-f auto-close @calciteAlertClose=${()=>e(!1)} .label=${t.expressionapplied??"Expression applied"}><div slot=message>${t.expressionapplied??"Expression applied to editor."}</div></calcite-alert>`}function $e({context:i,messages:e}){return i?l`<div class="gaps">${i.profileName&&l`<calcite-popover auto-close placement=top .label=${(e.profilecontextlabel??"Profile context: {profileName}").replace("{profileName}",i.profileName)} reference-element=profile-context-button class="context-popover contained-popover-or-tooltip"><p>${(e.profilecontextlabel??"Profile context: {profileName}").replace("{profileName}",i.profileName)}</p></calcite-popover><calcite-button round kind=neutral icon-start=map-information id=profile-context-button></calcite-button>`||""}${i.layerName&&l`<calcite-popover auto-close placement=top .label=${(e.layercontextlabel??"Layer context: {layerName}").replace("{layerName}",i.layerName)} reference-element=layer-context-button class="context-popover contained-popover-or-tooltip"><p>${(e.layercontextlabel??"Layer context: {layerName}").replace("{layerName}",i.layerName)}</p></calcite-popover><calcite-button round kind=neutral icon-start=layers id=layer-context-button></calcite-button>`||""}</div>`:null}function ke({isDisabled:i,isReadOnly:e,setQuestion:t,setIsViewingResult:s,textAreaRef:o,question:c,errorMessage:r,setErrorMessage:p,submitQuestion:n,messages:a,mode:d,context:u}){return l`<div class="text-area-wrapper"><calcite-text-area resize=vertical .readOnly=${i||e} class="styled-text-area" .placeholder=${a.askaquestion??`Specify the calculation or logic you need in an Arcade expression. (e.g., 'Return "Yes" if value > 10')`} .value=${c} @calciteTextAreaInput=${x=>{be(x.target),t(x.target.value)}} ${V(o)}><div class="submission-actions-wrapper" slot=footer-start>${r&&ie({errorMessage:r,slot:"footer-start"})||""}<div class="submission-actions">${$e({context:u,messages:a})}<div class="align-inline-end gaps"><calcite-button round kind=neutral .hidden=${d!=="refine"} icon-start=arrow-left icon-flip-rtl=both appearance=solid .disabled=${i} @click=${async()=>{s(!1),t("")}} .label=${a.startover??"Start Over"} class="hidden-above-380" id=small-start-over-button></calcite-button><calcite-tooltip reference-element=small-start-over-button placement=top-start class="hidden-above-380">${a.startover??"Start Over"}</calcite-tooltip><calcite-button round kind=neutral .hidden=${d!=="refine"} icon-start=arrow-left icon-flip-rtl=both appearance=solid .disabled=${i} @click=${async()=>{s(!1),t("")}} class="hidden-below-380">${a.startover??"Start Over"}</calcite-button><calcite-button round icon-end=effects appearance=solid .loading=${i} .disabled=${i} @click=${async()=>{p(c?"":a.enteraprompt??"Please enter a prompt"),await n()}}>${d==="prompt"?a.ask??"Generate":a.refine??"Refine"}</calcite-button></div></div></div></calcite-text-area></div>`}var xe="https://www.esri.com/en-us/privacy/privacy-statements/privacy-statement",we="https://www.esri.com/en-us/privacy/privacy-statements/privacy-supplement";function Ae({setOpen:i,messages:e,feedback:t,setFeedback:s,onSubmit:o}){return t.active?l`<calcite-sheet class="feedback-sheet" .label=${e.feedback??"Feedback"} slot=sheets display-mode=float position=block-end .open=${t.active} @calciteSheetClose=${()=>i(!1)}><calcite-panel .heading=${e.providefeedback??"Provide feedback"} .description=${e.experiencehelps??"Your experience helps guide future improvements"}><div class="feedback-content"><calcite-label>${e.experiencehelpful??"Was the assistant helpful?"}<calcite-segmented-control scale=l .disabled=${t.submitting}><calcite-segmented-control-item icon-start=thumbs-up .checked=${t.value==="good"} @click=${()=>s({...t,value:"good"})}></calcite-segmented-control-item><calcite-segmented-control-item icon-start=thumbs-down .checked=${t.value==="bad"} @click=${()=>s({...t,value:"bad"})}></calcite-segmented-control-item></calcite-segmented-control></calcite-label><calcite-label>${e.describeexperience??"Describe your experience"}<calcite-text-area resize=vertical .value=${t.text} @calciteTextAreaInput=${c=>s({...t,text:c.target.value})} .disabled=${t.submitting}></calcite-text-area></calcite-label><calcite-label layout=inline scale=s><calcite-checkbox scale=l .checked=${t.termsAccepted} @calciteCheckboxChange=${c=>{s({...t,termsAccepted:c.target.checked})}} .disabled=${t.submitting}></calcite-checkbox><span>${k((e.agreement??"I agree to the {EsriPrivacyStatement} (and {Supplement}).").replace("{EsriPrivacyStatement}",`<calcite-link href=${xe} target="_blank">${e.esriprivacystatement??"Esri Privacy Statement"}</calcite-link>`).replace("{Supplement}",`<calcite-link href=${we} target="_blank">${e.supplement??"Supplement"}</calcite-link>`))}</span></calcite-label></div><calcite-button slot=footer width=full @click=${o} .disabled=${!t.termsAccepted||t.submitting} .loading=${t.submitting}>${e.submitfeedback??"Submit Feedback"}</calcite-button></calcite-panel></calcite-sheet>`:null}function K({assistantsEnabled:i,messages:e,slot:t,assistantHelpUrl:s,helpTopicUrl:o}){return l`<calcite-block .label=${e.assistantinformation??"Assistant information"} slot=${t??C} expanded class="info-block"><calcite-chip .label=${e.new??"New"} kind=brand>${e.new??"New"}</calcite-chip><h1 class="info-heading">${e.introducing??"Introducing Arcade Assistant (beta)"}</h1><p>${e.capabilities??"The assistant uses artificial intelligence to generate Arcade expressions."}</p>${i?l`<p>${e.keepinmind??"Keep in mind the following:"}<ul><li>${e.beconsise??"Be concise, but also clear in your request"}</li><li>${e.avoidambiguity??"Avoid ambiguity and vagueness"}</li><li>${e.moredetails??"you do not need to use exact field names in your instructions, but more detail is generally better"}</li></ul>${k((e.seedocumentation??"Please see the {documentation} for more information, including limitations and additional resources.").replace("{documentation}",`<calcite-link href=${o} target="_blank">${e.documentation??"documentation"}</calcite-link>`))}</p>`:l`<p>${k(e.useofassistant?.replace("{aiassistants}",`<strong>${e.aiassistants??"Ai Assistants"}</strong>`))}<calcite-link .href=${s} target=_blank icon-end=launch2>${e.configureassistants??"Configure Assistants"}</calcite-link></p>`}</calcite-block>`}function Ce({messages:i,onProceed:e,onExit:t,helpTopicUrl:s}){return l`<calcite-dialog close-disabled placement=top .heading=${i.welcome??"Welcome to the new assistant experience"} slot=dialogs open width-scale=m id=welcome-dialog><h3 class="unstyled-h3">${i.beforeyougetstarted??"Before you get started be aware:"}</h3><ul><li>${i.maybeincorrect??"AI generated code may occasionally be incorrect or biased. Review carefully."}</li><li>${k((i.pleasereadhelp??"Read the Arcade Assistant (beta) {helpTopic} to get started and learn details on security, privacy and limitations.").replace("{helpTopic}",`<calcite-link href=${s} target="_blank">${i.helptopic??"help topic"}</calcite-link>`))}</li></ul><calcite-button id=welcome-proceed slot=footer-end @click=${e}>${i.proceed??"Proceed"}</calcite-button><calcite-button id=welcome-decline slot=footer-start @click=${t} kind=neutral>${i.exit??"Exit"}</calcite-button></calcite-dialog>`}function Se({messages:i,suggestions:e,onSuggestionClick:t}){return l`<calcite-block .heading=${i.promptsuggestions} expanded collapsible id=suggestion-block><calcite-chip-group class="suggestions" .label=${i.promptsuggestions??"Prompt Suggestions"}>${T(e,s=>s,s=>l`<calcite-button round appearance=outline-fill kind=neutral .label=${i.promptsuggestion} class="suggestion-button" @click=${()=>t?.(s)}>${s}</calcite-button>`)}</calcite-chip-group></calcite-block>`}var X=200;function Z({hidden:i=!1,expanded:e=!1,messages:t,cards:s,heading:o,collapsible:c=!1,showEffectsIcon:r=!1,onCopyCode:p,standalone:n}){return l`<calcite-block .hidden=${i} id=result-block .heading=${o??t.besteffort??"Here is the assistant's best effort"} .expanded=${e} .collapsible=${c}>${r&&l`<calcite-chip .label=${t.assistantresponses??"Assistant responses"} slot=content-start icon=effects scale=m class="suggestion-chips"></calcite-chip>`||""}<calcite-card-group .label=${t.assistantresponses??"Assistant responses"}>${T(s,a=>a.conversationId,a=>l`<calcite-card><div slot=heading><div class="prior-prompt"><span>${a.priorPrompt.length>X?`${a.priorPrompt.slice(0,X)}...`:a.priorPrompt}</span><calcite-action icon=duplicate scale=s slot=actions-end class="copy-prompt-button" text .id=${`copy-prompt-${a.conversationId}-${n?"standalone":"list"}`} @click=${d=>{let u=d.currentTarget;navigator.clipboard.writeText(a.priorPrompt).then(()=>{u.setAttribute("data-copied","true"),setTimeout(()=>u.removeAttribute("data-copied"),1500)})}}></calcite-action><calcite-popover .referenceElement=${`copy-prompt-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start class="copy-feedback" .label=${t.copiedsuccessfully??"copied successfully"} open trigger-disabled><span>${t.copiedsuccessfully??"copied successfully"}</span></calcite-popover><calcite-tooltip .referenceElement=${`copy-prompt-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start class="copy-tooltip">${t.copyprompttoclipboard??"Copy prompt to clipboard"}</calcite-tooltip></div>${a.message&&n&&l`<div class="response-error-container">${ie({errorMessage:a.message})}</div>`||""}</div><div><div class="code-response-wrapper"><div class="positioned-code-content"><calcite-chip-group .label=${t.responsecontext??"Response Context"} scale=s>${a.message&&!n&&l`<calcite-tooltip .referenceElement=${`response-chip-${a.conversationId}-error`} placement=top-start>${a.message}</calcite-tooltip><calcite-chip .id=${`response-chip-${a.conversationId}-error`} .label=${t.error??"Error"} scale=s appearance=outline icon=exclamation-mark-triangle-f class="response-error-chip"></calcite-chip>`||""}${a.chips?.map(d=>{let u=q();return l`${d.tooltip&&l`<calcite-tooltip .referenceElement=${`response-chip-${d.conversationId}-${u}`} placement=top-start class="contained-popover-or-tooltip">${d.tooltip}</calcite-tooltip>`||""}<calcite-chip .label=${d.label} .scale=${d.scale??"s"} .appearance=${d.appearance??"outline"} .icon=${d.icon} .id=${`response-chip-${d.conversationId}-${u}`}>${d.label}</calcite-chip>`})}</calcite-chip-group></div><details class="collapsible-code" open><summary>Code response</summary><arcgis-code-viewer language=arcade round>${a.code}</arcgis-code-viewer></details></div></div><div slot=footer-start class="feedback-actions"><calcite-button class="add-to-editor-button hidden-above-380" @click=${()=>a.onAddToEditor("add")} scale=s icon-start=plus round .label=${t.addtoeditor??"Add to editor"} .id=${`add-to-editor-button-${a.conversationId}-${n?"standalone":"list"}`}></calcite-button><calcite-tooltip class="hidden-above-380" .referenceElement=${`add-to-editor-button-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start>${t.addtoeditor??"Add to editor"}</calcite-tooltip><calcite-button class="add-to-editor-button hidden-below-380" @click=${()=>a.onAddToEditor("add")} scale=s icon-start=plus round>${t.addtoeditor??"Add to editor"}</calcite-button><calcite-button round icon-start=file-code kind=neutral scale=s @click=${()=>a.onAddToEditor("replace")} class="response-secondary-action-button" .id=${`replace-${a.conversationId}-${n?"standalone":"list"}`}></calcite-button><calcite-tooltip .referenceElement=${`replace-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start><span>${t.replaceineditor??"Replace all code in editor"}</span></calcite-tooltip><calcite-button round icon-start=copy-to-clipboard kind=neutral scale=s @click=${d=>{let u=d.currentTarget;p(a.code).then(()=>{u.setAttribute("data-copied","true"),setTimeout(()=>u.removeAttribute("data-copied"),1500)})}} class="response-secondary-action-button" .id=${`copy-response-${a.conversationId}-${n?"standalone":"list"}`}></calcite-button><calcite-popover .referenceElement=${`copy-response-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start class="copy-feedback" .label=${t.copiedsuccessfully??"copied successfully"} open trigger-disabled><span>${t.copiedsuccessfully??"copied successfully"}</span></calcite-popover><calcite-tooltip .referenceElement=${`copy-response-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start class="copy-tooltip">${t.copytoclipboard??"Copy code to clipboard"}</calcite-tooltip></div><div slot=footer-end class="feedback-actions"><calcite-action .text=${t.thumbsup??"Thumbs up"} scale=s icon=thumbs-up @click=${a.onThumbsUp} .id=${`thumbs-up-${a.conversationId}-${n?"standalone":"list"}`}></calcite-action><calcite-tooltip .referenceElement=${`thumbs-up-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start><span>${t.helpful??"Helpful"}</span></calcite-tooltip><calcite-action .text=${t.thumbsdown??"Thumbs down"} scale=s icon=thumbs-down @click=${a.onThumbsDown} .id=${`thumbs-down-${a.conversationId}-${n?"standalone":"list"}`}></calcite-action><calcite-tooltip .referenceElement=${`thumbs-down-${a.conversationId}-${n?"standalone":"list"}`} placement=top-start><span>${t.unhelpful??"Unhelpful"}</span></calcite-tooltip></div></calcite-card>`)}</calcite-card-group></calcite-block>`}var Te="arcade_generation",Ee="ArcadeCodeRequest",E="visualization",Ie="ArcadeAssistant",Re=["your_comments","user_evaluation","question","answer","useragent","_source","version","context","extras"],ee=[],te=!0,I=class extends D{constructor(){super(...arguments),this.textAreaRef=z(),this.messages=L(),this._feedbackService=void 0,this.handleFeedbackButton=(e,t)=>{this.feedback={active:!0,value:e,item:t,termsAccepted:!1,text:"",submitting:!1}},this.handleFeedbackSheetClose=()=>{this.feedback={active:!1}},this.handleFeedbackSubmit=async()=>{if(!this.feedback.active)return;this.feedback={...this.feedback,submitting:!0};let e=await this.ensureFeedbackService();if(!e){this.handleFeedbackSheetClose();return}let t=this.getModel(),s=t?await this.getProfileAndMetadata(t.uri):void 0,o=de.applicationName;!o&&!this.appVersion&&b("warn",this,"esriConfig.applicationName is not set. Consider setting it to help identify the application version in feedback.");let c={user_evaluation:this.feedback.value,your_comments:this.feedback.text||void 0,question:this.feedback.item?.question??"",answer:encodeURIComponent(this.feedback.item?.formattedScript??""),useragent:navigator.userAgent,_source:Ie,version:this.appVersion||o||"NOT_SET",context:s?JSON.stringify(s):"",extras:s?.profileName??"",conversation_id:this.feedback.item?.conversationId??"",privacy_statement:this.feedback.termsAccepted?"I_agree":""};try{await e.applyEdits({addFeatures:[new pe({attributes:c})]})}catch(r){b("error",this,`Error submitting feedback. ${String(r)}`)}this.handleFeedbackSheetClose()},this.handleClose=e=>{this.closed=!0,this.closePanel?.(e)},this.setQuestion=e=>{this.question=e},this.onSuggestionClick=e=>{this.textAreaRef.value&&(this.textAreaRef.value.value=e,this.textAreaRef.value.setFocus(),this.setQuestion(e))},this.isViewingResult=!1,this.confirmationActive=!1,this.isSubmitting=!1,this.errorMessage=void 0,this.question="",this.history=[],this.feedback={active:!1},this.splashActive=!0,this.context=void 0,this.historyCards=[],this.helpBase="",this.assistantsEnabled=!1,this.closed=!1}static{this.properties={isViewingResult:16,confirmationActive:16,isSubmitting:16,errorMessage:16,question:16,history:16,feedback:16,splashActive:16,context:16,historyCards:16,closePanel:0,insertText:0,helpBase:1,assistantsEnabled:5,layer:[1,{type:Object}],portalUrl:1,serviceUrl:1,closed:7,editorRef:0,feedbackServiceUrl:1,appVersion:1}}static{this.styles=ue}get disclaimerComment(){return`// ${this.messages.disclaimercomment}
5
- // ${this.messages.disclaimerpt2??"AI-generated content may be inaccurate. Review before using."}`}get assistantHelpUrl(){return`${this.helpBase??"https://doc.arcgis.com/en/arcgis-online/"}administer/configure-assistants.htm`}get assistantOverviewDocUrl(){return`${this.helpBase??"https://doc.arcgis.com/en/arcgis-online/"}create-maps/understand-arcade-assistant.htm`}get usingTheAssitantDocUrl(){return`${this.helpBase??"https://doc.arcgis.com/en/arcgis-online/"}create-maps/use-arcade-assistant.htm`}async destroy(){}load(){let e=async()=>{let t=this.getModel();if(!t){this.context=void 0;return}let s=await this.getProfileAndMetadata(t.uri);this.context=s};e().catch(t=>{b("error",this,`Error setting initial context. ${String(t)}`)}),this.manager.onLifecycle(()=>({remove:S.onModelContextDidChange(async()=>{e().catch(t=>{b("error",this,`Error setting context. ${String(t)}`)})}).dispose}))}willUpdate(e){(e.has("history")||e.has("messages"))&&(this.historyCards=this.getHistoryCards())}connectedCallback(){super.connectedCallback(),this.history=ee,this.splashActive=te}disconnectedCallback(){super.disconnectedCallback(),ee=this.history,te=this.splashActive,this.copySuccessTimer&&(clearTimeout(this.copySuccessTimer),this.copySuccessTimer=void 0)}getHistoryCards(){return this.history.reduce((e,t)=>(!t.script||(e.push({priorPrompt:t.question,code:t.formattedScript||t.error||"",chips:[{label:t.profile??E,icon:"map-information",appearance:"outline",scale:"s",conversationId:t.conversationId??"",tooltip:(this.messages.profilecontextlabel??"Profile context: {profileName}").replace("{profileName}",t.profile??E)},...t.layerName?[{label:(this.messages.numlayers??"{numLayers} {layerOrLayers}").replace("{numLayers}","1").replace("{layerOrLayers}",this.messages.numlayerssingular??"layer"),icon:"layer",appearance:"outline",scale:"s",conversationId:t.conversationId??"",tooltip:(this.messages.layercontextlabel??"Layer context: {layerName}").replace("{layerName}",t.layerName??"No layer")}]:[]],onAddToEditor:s=>{j(this.editorRef.editorInstance,t.formattedScript??"",s,this.disclaimerComment)},onThumbsUp:()=>this.handleFeedbackButton("good",t),onThumbsDown:()=>this.handleFeedbackButton("bad",t),conversationId:t.conversationId??"",message:t.message}),this.isViewingResult),e),[])}setFeedbackState(e){this.feedback=e}async ensureFeedbackService(){if(this._feedbackService)return this._feedbackService;if(!this.feedbackServiceUrl)return;let e=new le({url:this.feedbackServiceUrl});await e.load();let t=Re.filter(s=>!e.fields.some(o=>o.name===s));if(t.length>0){b("error",this,`Missing the following fields in feedback service: ${t.join(", ")}. Feedback will not be logged.`);return}return this._feedbackService=e,e}getModel(){return this.editorRef.editorInstance?.getModel()}async submitQuestion(){if(this.question){this.isSubmitting=!0;try{let e=await this.getToken(),t=this.getModel();if(!t)return;let{profileName:s,metadata:o,layerName:c}=await this.getProfileAndMetadata(t.uri),r=(await me({baseUrl:this.serviceUrl,skillId:Te,message:this.question,authToken:e,context:{kind:Ee,context:{profile_name:s,metadata:o}}})).find(p=>p.context?.kind==="ArcadeCodeResponse");if(!r)return;r.context?.kind==="ArcadeCodeResponse"&&(this.history=[{script:r?.context?.arcadeCode?.code,formattedScript:B(r?.context?.arcadeCode?.code??""),error:void 0,question:this.question,profile:s,conversationId:r.conversationId,layerName:c??void 0,...r.message?{message:r.message}:{}},...this.history],this.isViewingResult=!0,this.errorMessage=void 0)}catch(e){e instanceof Error&&e.name==="ArcadeAssistantError"?this.errorMessage=ge(e)||this.messages.erroroccurred||"An error occurred.":this.errorMessage=this.messages.erroroccurred||"An error occurred.",b("error",this,"Error submitting question",{detail:{error:e}})}finally{this.isSubmitting=!1}}}async getToken(){let{token:e}=await ne.getCredential(this.portalUrl);return e}async getProfileAndMetadata(e){let t=E,s=S.getEditorProfileForModel(e);s?.loaded||await s?.loadSource();let o=this.editorRef.profile;o&&"id"in o&&(t=o.id);let c=s?.definition?.variables?.find(n=>n.type==="feature"),r=[],p;return c?.definition&&"fields"in c.definition&&(r=c.definition.fields.map(n=>({name:n.name,type:n.type,alias:n.alias})),Q(c?.definition)&&(p=c.definition.title)),{profileName:t,metadata:r,layerName:p}}onCopyCode(e){let t=e?`${this.disclaimerComment}
6
- ${e}`:"";return navigator.clipboard.writeText(t)}render(){return this.closed?null:this.assistantsEnabled?l`<calcite-flow><calcite-flow-item closable heading-level=2 .heading=${this.messages.arcadeassistant??"Arcade assistant"} @calciteFlowItemClose=${this.handleClose}>${this.splashActive&&l`<calcite-scrim></calcite-scrim>`||""}${fe({messages:this.messages})}${ve({popoverContent:K({assistantsEnabled:this.assistantsEnabled,messages:this.messages,assistantHelpUrl:this.assistantHelpUrl,helpTopicUrl:this.usingTheAssitantDocUrl})})}<calcite-shell class="unstyled-shell">${this.splashActive&&Ce({messages:this.messages,onProceed:()=>{this.splashActive=!1},helpTopicUrl:this.assistantOverviewDocUrl,onExit:e=>this.closePanel?.(e)})||""}${ye({active:this.confirmationActive,setActive:e=>this.confirmationActive=e,messages:this.messages})}${ke({isDisabled:this.isSubmitting,isReadOnly:!1,setQuestion:this.setQuestion,setIsViewingResult:e=>this.isViewingResult=e,mode:this.isViewingResult?"refine":"prompt",textAreaRef:this.textAreaRef,question:this.question,errorMessage:this.errorMessage,setErrorMessage:e=>this.errorMessage=e,submitQuestion:this.submitQuestion.bind(this),messages:this.messages,context:this.context})}<calcite-block-group label="interactive blocks">${!this.isViewingResult&&!this.isSubmitting&&Se({messages:this.messages,suggestions:[this.messages.prompsuggestion1??"",this.messages.prompsuggestion2??""],onSuggestionClick:this.onSuggestionClick})||""}<calcite-block .hidden=${!this.isSubmitting} .heading=${this.messages.generatingresponse??"Generating response..."}></calcite-block>${Z({expanded:this.isViewingResult,messages:this.messages,collapsible:!0,showEffectsIcon:!0,cards:this.historyCards.length?[this.historyCards[0]]:[],heading:this.messages.besteffort??"Here's the assistant's best effort",hidden:this.isSubmitting||!this.isViewingResult,onCopyCode:this.onCopyCode.bind(this),standalone:!0})}${Z({expanded:!this.isViewingResult,messages:this.messages,collapsible:!0,cards:this.isViewingResult?this.historyCards.slice(1):this.historyCards,heading:this.messages.recentprompts??"Recent prompts",hidden:this.isSubmitting||this.history.length===0,onCopyCode:this.onCopyCode.bind(this)})}</calcite-block-group>${this.feedback.active?Ae({setOpen:this.handleFeedbackSheetClose,messages:this.messages,onSubmit:this.handleFeedbackSubmit,feedback:this.feedback,setFeedback:this.setFeedbackState.bind(this)}):null}</calcite-shell></calcite-flow-item></calcite-flow>`:l`<calcite-flow><calcite-flow-item .selected=${!this.isViewingResult} closable heading-level=2 .heading=${this.messages.arcadeassistant??"Arcade assistant"} @calciteFlowItemClose=${this.handleClose}>${K({slot:"content-top",messages:this.messages,assistantsEnabled:this.assistantsEnabled,assistantHelpUrl:this.assistantHelpUrl,helpTopicUrl:this.usingTheAssitantDocUrl})}</calcite-flow-item></calcite-flow>`}};H("arcgis-arcade-coding-assistant",I);return I},"identity/IdentityManager","request","layers/FeatureLayer","config","Graphic",a,b)
@@ -1,4 +0,0 @@
1
- /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
2
- See https://js.arcgis.com/5.0/esri/copyright.txt for details.
3
- v5.0.0-next.93 */
4
- import c from"./MIV62SB5.js";import"./PGSOHB37.js";import b from"./2GQYFHB5.js";import a from"./UPIRR7NI.js";import"./2X52Y4DY.js";import"./CY2NIZSQ.js";import"./K3L3TIEP.js";import"./LC7PNNVV.js";import"./53OPBGH3.js";import"./URZFEWH3.js";import"./MNSM3SGU.js";import"./YNQH23OP.js";import"./UVW7RTZM.js";import"./LBTNX3UD.js";import"./UGVEW6ZQ.js";export default $arcgis.t(([,,{a:a,b:b,c:c}])=>{return{getSqlExprDiagnosticService:b,getSqlExprWorker:a,setupMode:c}},a,b,c)