@sourcegraph/cody-web 0.7.0 → 0.7.3

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.
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
5
- import { g as getDefaultExportFromCjs, L as Ls, k as ke$1, a as ks, F as Fi$1, _ as _s, b as ds, c as bs, i as ii$1, q as qe$1, y as ys, x as xi$1, K as K$2, J as J$2, R as R$3, e as ws, B as B$2, f as g$5, h as h$4, j as _i, S as Ss, l as Br, m as ln, n as bi$1, v as vn, o as xn, N as Nn, r as mn, s as li$1, u as n$1, z as ns, M as M$4, D as Ds, A as le$2, E as c$4, G as oe$1, H as z$1, I as yi$1, W as W$2, U as Ue$1, O as I$2, P as Se$2, Q as O$2, V as F$1, X as Ni$1, Y as ee$1, Z as we$2, $ as b$2, a0 as T$3, a1 as s$2, a2 as o$4, a3 as w$3, a4 as i$1, a5 as k$3, a6 as D$5, a7 as p$8, a8 as m$7, a9 as S$4, aa as v$4, ab as P$2, ac as E$6, ad as Wi$1, ae as L$3, af as d$2, ag as a$3, ah as l$2, ai as f$2, aj as u$6, ak as r$6, al as t$2, am as displayPathBasename, an as FILE_CONTEXT_MENTION_PROVIDER, ao as SYMBOL_CONTEXT_MENTION_PROVIDER, ap as REMOTE_REPOSITORY_PROVIDER_URI, aq as REMOTE_FILE_PROVIDER_URI, ar as REMOTE_DIRECTORY_PROVIDER_URI, as as CURRENT_REPOSITORY_DIRECTORY_PROVIDER_URI, at as WEB_PROVIDER_URI, au as displayPath, av as displayLineRange, aw as displayPathDirname, ax as IGNORED_FILE_WARNING_LABEL, ay as LARGE_FILE_WARNING_LABEL, az as Ei$1, aA as xe$2, aB as V$2, aC as Es, aD as U$2, aE as e, aF as Ns, aG as an, aH as gs, aI as serializeContextItem, aJ as CONTEXT_ITEM_MENTION_NODE_TYPE, aK as contextItemMentionNodeDisplayText, C as ContextItemSource, aL as URI, aM as qr, aN as _$2, aO as TEMPLATE_INPUT_NODE_TYPE, aP as N$2, aQ as parseMentionQuery, aR as NO_SYMBOL_MATCHES_HELP_LABEL, aS as FILE_RANGE_TOOLTIP_LABEL, aT as proxyExtensionAPI, aU as createMessageAPIForWebview, aV as lodashExports, aW as memoizeLastValue, aX as toSerializedPromptEditorValue, aY as ri$1, aZ as scanForMentionTriggerInUserTextInput, a_ as fs, a$ as Ts, b0 as ps, b1 as hydrateAfterPostMessage, b2 as isCodyProUser, b3 as CodyIDE, b4 as webviewOpenURIForContextItem, b5 as commonjsGlobal, b6 as CodyTaskState, b7 as cryptoJsExports, b8 as isError, b9 as RateLimitError, ba as CODY_FEEDBACK_URL, bb as isDefined, bc as reformatBotMessageForChat, p as ps$1, bd as isAbortErrorOrSocketHangUp, be as isEqual, bf as serializedPromptEditorStateFromChatMessage, bg as contextItemsFromPromptEditorValue, bh as filterContextItemsFromPromptEditorValue, bi as pluralize, bj as isCodyProModel, bk as ModelTag, bl as CustomCommandType, bm as isMacOS, bn as textContentFromSerializedLexicalNode, bo as FAST_CHAT_INPUT_TOKEN_BUDGET, bp as deserializeContextItem, bq as View, br as truncateTextStart, bs as CHAT_INPUT_TOKEN_BUDGET, bt as ACCOUNT_USAGE_URL, bu as getRelativeChatPeriod, bv as browser, bw as isErrorLike, bx as setDisplayPathEnvInfo, by as PromptString } from "./browser-BpZhCiRU.mjs";
5
+ import { g as getDefaultExportFromCjs, L as Ls, k as ke$1, a as ks, F as Fi$1, _ as _s, b as ds, c as bs, i as ii$1, q as qe$1, y as ys, x as xi$1, K as K$2, J as J$2, R as R$3, e as ws, B as B$2, f as g$5, h as h$4, j as _i, S as Ss, l as Br, m as ln, n as bi$1, v as vn, o as xn, N as Nn, r as mn, s as li$1, u as n$1, z as ns, M as M$4, D as Ds, A as le$2, E as c$4, G as oe$1, H as z$1, I as yi$1, W as W$2, U as Ue$1, O as I$2, P as Se$2, Q as O$2, V as F$1, X as Ni$1, Y as ee$1, Z as we$2, $ as b$2, a0 as T$3, a1 as s$2, a2 as o$4, a3 as w$3, a4 as i$1, a5 as k$3, a6 as D$5, a7 as p$8, a8 as m$7, a9 as S$4, aa as v$4, ab as P$2, ac as E$6, ad as Wi$1, ae as L$3, af as d$2, ag as a$3, ah as l$2, ai as f$2, aj as u$6, ak as r$6, al as t$2, am as displayPathBasename, an as FILE_CONTEXT_MENTION_PROVIDER, ao as SYMBOL_CONTEXT_MENTION_PROVIDER, ap as REMOTE_REPOSITORY_PROVIDER_URI, aq as REMOTE_FILE_PROVIDER_URI, ar as REMOTE_DIRECTORY_PROVIDER_URI, as as CURRENT_REPOSITORY_DIRECTORY_PROVIDER_URI, at as WEB_PROVIDER_URI, au as displayPath, av as displayLineRange, aw as displayPathDirname, ax as IGNORED_FILE_WARNING_LABEL, ay as LARGE_FILE_WARNING_LABEL, az as Ei$1, aA as xe$2, aB as V$2, aC as Es, aD as U$2, aE as e, aF as Ns, aG as an, aH as gs, aI as serializeContextItem, aJ as CONTEXT_ITEM_MENTION_NODE_TYPE, aK as contextItemMentionNodeDisplayText, C as ContextItemSource, aL as URI, aM as qr, aN as _$2, aO as TEMPLATE_INPUT_NODE_TYPE, aP as N$2, aQ as parseMentionQuery, aR as NO_SYMBOL_MATCHES_HELP_LABEL, aS as FILE_RANGE_TOOLTIP_LABEL, aT as proxyExtensionAPI, aU as createMessageAPIForWebview, aV as lodashExports, aW as memoizeLastValue, aX as toSerializedPromptEditorValue, aY as ri$1, aZ as scanForMentionTriggerInUserTextInput, a_ as fs, a$ as Ts, b0 as ps, b1 as hydrateAfterPostMessage, b2 as isCodyProUser, b3 as CodyIDE, b4 as webviewOpenURIForContextItem, b5 as commonjsGlobal, b6 as CodyTaskState, b7 as cryptoJsExports, b8 as isError, b9 as RateLimitError, ba as CODY_FEEDBACK_URL, bb as isDefined, bc as reformatBotMessageForChat, p as ps$1, bd as isAbortErrorOrSocketHangUp, be as isEqual, bf as serializedPromptEditorStateFromChatMessage, bg as contextItemsFromPromptEditorValue, bh as filterContextItemsFromPromptEditorValue, bi as pluralize, bj as isCodyProModel, bk as ModelTag, bl as CustomCommandType, bm as isMacOS, bn as textContentFromSerializedLexicalNode, bo as FAST_CHAT_INPUT_TOKEN_BUDGET, bp as deserializeContextItem, bq as View, br as truncateTextStart, bs as CHAT_INPUT_TOKEN_BUDGET, bt as ACCOUNT_USAGE_URL, bu as getRelativeChatPeriod, bv as browser, bw as isErrorLike, bx as setDisplayPathEnvInfo, by as PromptString } from "./browser-0yJ2hV_u.mjs";
6
6
  import * as React from "react";
7
7
  import React__default, { createContext, useContext, useMemo, useLayoutEffect, useEffect, forwardRef, useState, useCallback, useRef, Suspense, createElement, memo, useImperativeHandle, Children, isValidElement, cloneElement, Fragment as Fragment$1, useReducer } from "react";
8
8
  var classnames = { exports: {} };
@@ -8272,7 +8272,7 @@ const iconForProvider = {
8272
8272
  "internal-linear-issues": SvgLinear,
8273
8273
  // Can't import LinearIssuesProvider due to transitive dep on vscode.
8274
8274
  [REMOTE_REPOSITORY_PROVIDER_URI]: FolderGit,
8275
- [REMOTE_FILE_PROVIDER_URI]: FolderGit,
8275
+ [REMOTE_FILE_PROVIDER_URI]: File,
8276
8276
  [REMOTE_DIRECTORY_PROVIDER_URI]: FolderGit,
8277
8277
  [CURRENT_REPOSITORY_DIRECTORY_PROVIDER_URI]: FolderGit,
8278
8278
  [WEB_PROVIDER_URI]: Link$1
@@ -15901,6 +15901,20 @@ function $3db38b7d1fb3fe6a$var$createFocusGuard() {
15901
15901
  element2.style.cssText = "outline: none; opacity: 0; position: fixed; pointer-events: none";
15902
15902
  return element2;
15903
15903
  }
15904
+ /*! *****************************************************************************
15905
+ Copyright (c) Microsoft Corporation.
15906
+
15907
+ Permission to use, copy, modify, and/or distribute this software for any
15908
+ purpose with or without fee is hereby granted.
15909
+
15910
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
15911
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15912
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
15913
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15914
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
15915
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15916
+ PERFORMANCE OF THIS SOFTWARE.
15917
+ ***************************************************************************** */
15904
15918
  var __assign = function() {
15905
15919
  __assign = Object.assign || function __assign2(t2) {
15906
15920
  for (var s2, i2 = 1, n2 = arguments.length; i2 < n2; i2++) {
@@ -15922,19 +15936,17 @@ function __rest(s2, e2) {
15922
15936
  }
15923
15937
  return t2;
15924
15938
  }
15925
- function __spreadArray(to, from, pack) {
15926
- if (pack || arguments.length === 2) for (var i2 = 0, l2 = from.length, ar; i2 < l2; i2++) {
15927
- if (ar || !(i2 in from)) {
15928
- if (!ar) ar = Array.prototype.slice.call(from, 0, i2);
15929
- ar[i2] = from[i2];
15930
- }
15931
- }
15932
- return to.concat(ar || Array.prototype.slice.call(from));
15939
+ function __decorate(decorators, target, key, desc) {
15940
+ var c2 = arguments.length, r2 = c2 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d2;
15941
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
15942
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d2 = decorators[i2]) r2 = (c2 < 3 ? d2(r2) : c2 > 3 ? d2(target, key, r2) : d2(target, key)) || r2;
15943
+ return c2 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
15944
+ }
15945
+ function __spreadArray(to, from) {
15946
+ for (var i2 = 0, il2 = from.length, j = to.length; i2 < il2; i2++, j++)
15947
+ to[j] = from[i2];
15948
+ return to;
15933
15949
  }
15934
- typeof SuppressedError === "function" ? SuppressedError : function(error2, suppressed, message2) {
15935
- var e2 = new Error(message2);
15936
- return e2.name = "SuppressedError", e2.error = error2, e2.suppressed = suppressed, e2;
15937
- };
15938
15950
  var zeroRightClassName = "right-scroll-bar-position";
15939
15951
  var fullWidthClassName = "width-before-scroll-bar";
15940
15952
  var noScrollbarsClassName = "with-scroll-bars-hidden";
@@ -16411,7 +16423,7 @@ function RemoveScrollSideCar(props) {
16411
16423
  React.useEffect(function() {
16412
16424
  if (props.inert) {
16413
16425
  document.body.classList.add("block-interactivity-".concat(id2));
16414
- var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
16426
+ var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef)).filter(Boolean);
16415
16427
  allow_1.forEach(function(el2) {
16416
16428
  return el2.classList.add("allow-interactivity-".concat(id2));
16417
16429
  });
@@ -16894,6 +16906,8 @@ const $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9 = $5d3850c4d0b4e6c7$export$3ddf2
16894
16906
  const $5d3850c4d0b4e6c7$export$602eac185826482c = $5d3850c4d0b4e6c7$export$dad7c95542bacce0;
16895
16907
  const $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff = $5d3850c4d0b4e6c7$export$bd1d06c79be19e17;
16896
16908
  const $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 = $5d3850c4d0b4e6c7$export$b6d9565de1e068cf;
16909
+ const $5d3850c4d0b4e6c7$export$f99233281efd08a0 = $5d3850c4d0b4e6c7$export$16f7638e4a34b909;
16910
+ const $5d3850c4d0b4e6c7$export$393edc798c47379d = $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5;
16897
16911
  var V = '[cmdk-group=""]', X = '[cmdk-group-items=""]', ge = '[cmdk-group-heading=""]', Y = '[cmdk-item=""]', le = `${Y}:not([aria-disabled="true"])`, Q = "cmdk-item-select", M = "data-value", Re = (r2, o2, n2) => W(r2, o2, n2), ue = React.createContext(void 0), G = () => React.useContext(ue), de = React.createContext(void 0), Z = () => React.useContext(de), fe = React.createContext(void 0), me = React.forwardRef((r2, o2) => {
16898
16912
  let n2 = k(() => {
16899
16913
  var e2, s2;
@@ -17401,10 +17415,10 @@ const COMMON_WRAPPERS = [
17401
17415
  value: promptEditorConfig
17402
17416
  }
17403
17417
  ];
17404
- const outerContainer = "_outer-container_5yjsn_1";
17405
- const errorContainer = "_error-container_5yjsn_10";
17406
- const error$1 = "_error_5yjsn_10";
17407
- const closeBtn = "_close-btn_5yjsn_29";
17418
+ const outerContainer = "_outer-container_xb9w0_1";
17419
+ const errorContainer = "_error-container_xb9w0_11";
17420
+ const error$1 = "_error_xb9w0_11";
17421
+ const closeBtn = "_close-btn_xb9w0_29";
17408
17422
  const styles$f = {
17409
17423
  outerContainer,
17410
17424
  errorContainer,
@@ -20475,26 +20489,6 @@ html$4`
20475
20489
  ></slot>
20476
20490
  </span>
20477
20491
  `;
20478
- /*! *****************************************************************************
20479
- Copyright (c) Microsoft Corporation.
20480
-
20481
- Permission to use, copy, modify, and/or distribute this software for any
20482
- purpose with or without fee is hereby granted.
20483
-
20484
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
20485
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20486
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
20487
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
20488
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
20489
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20490
- PERFORMANCE OF THIS SOFTWARE.
20491
- ***************************************************************************** */
20492
- function __decorate$1(decorators, target, key, desc) {
20493
- var c2 = arguments.length, r2 = c2 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d2;
20494
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
20495
- else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d2 = decorators[i2]) r2 = (c2 < 3 ? d2(r2) : c2 > 3 ? d2(target, key, r2) : d2(target, key)) || r2;
20496
- return c2 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
20497
- }
20498
20492
  const metadataByTarget = /* @__PURE__ */ new Map();
20499
20493
  if (!("metadata" in Reflect)) {
20500
20494
  Reflect.metadata = function(key, value) {
@@ -21635,10 +21629,10 @@ class FoundationElement extends FASTElement {
21635
21629
  } : this, elementDefinition, overrideDefinition);
21636
21630
  }
21637
21631
  }
21638
- __decorate$1([
21632
+ __decorate([
21639
21633
  observable
21640
21634
  ], FoundationElement.prototype, "template", void 0);
21641
- __decorate$1([
21635
+ __decorate([
21642
21636
  observable
21643
21637
  ], FoundationElement.prototype, "styles", void 0);
21644
21638
  function resolveOption(option, context2, definition2) {
@@ -21908,61 +21902,61 @@ const anchorTemplate = (context2, definition2) => html$4`
21908
21902
  `;
21909
21903
  class ARIAGlobalStatesAndProperties {
21910
21904
  }
21911
- __decorate$1([
21905
+ __decorate([
21912
21906
  attr({ attribute: "aria-atomic" })
21913
21907
  ], ARIAGlobalStatesAndProperties.prototype, "ariaAtomic", void 0);
21914
- __decorate$1([
21908
+ __decorate([
21915
21909
  attr({ attribute: "aria-busy" })
21916
21910
  ], ARIAGlobalStatesAndProperties.prototype, "ariaBusy", void 0);
21917
- __decorate$1([
21911
+ __decorate([
21918
21912
  attr({ attribute: "aria-controls" })
21919
21913
  ], ARIAGlobalStatesAndProperties.prototype, "ariaControls", void 0);
21920
- __decorate$1([
21914
+ __decorate([
21921
21915
  attr({ attribute: "aria-current" })
21922
21916
  ], ARIAGlobalStatesAndProperties.prototype, "ariaCurrent", void 0);
21923
- __decorate$1([
21917
+ __decorate([
21924
21918
  attr({ attribute: "aria-describedby" })
21925
21919
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDescribedby", void 0);
21926
- __decorate$1([
21920
+ __decorate([
21927
21921
  attr({ attribute: "aria-details" })
21928
21922
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDetails", void 0);
21929
- __decorate$1([
21923
+ __decorate([
21930
21924
  attr({ attribute: "aria-disabled" })
21931
21925
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDisabled", void 0);
21932
- __decorate$1([
21926
+ __decorate([
21933
21927
  attr({ attribute: "aria-errormessage" })
21934
21928
  ], ARIAGlobalStatesAndProperties.prototype, "ariaErrormessage", void 0);
21935
- __decorate$1([
21929
+ __decorate([
21936
21930
  attr({ attribute: "aria-flowto" })
21937
21931
  ], ARIAGlobalStatesAndProperties.prototype, "ariaFlowto", void 0);
21938
- __decorate$1([
21932
+ __decorate([
21939
21933
  attr({ attribute: "aria-haspopup" })
21940
21934
  ], ARIAGlobalStatesAndProperties.prototype, "ariaHaspopup", void 0);
21941
- __decorate$1([
21935
+ __decorate([
21942
21936
  attr({ attribute: "aria-hidden" })
21943
21937
  ], ARIAGlobalStatesAndProperties.prototype, "ariaHidden", void 0);
21944
- __decorate$1([
21938
+ __decorate([
21945
21939
  attr({ attribute: "aria-invalid" })
21946
21940
  ], ARIAGlobalStatesAndProperties.prototype, "ariaInvalid", void 0);
21947
- __decorate$1([
21941
+ __decorate([
21948
21942
  attr({ attribute: "aria-keyshortcuts" })
21949
21943
  ], ARIAGlobalStatesAndProperties.prototype, "ariaKeyshortcuts", void 0);
21950
- __decorate$1([
21944
+ __decorate([
21951
21945
  attr({ attribute: "aria-label" })
21952
21946
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLabel", void 0);
21953
- __decorate$1([
21947
+ __decorate([
21954
21948
  attr({ attribute: "aria-labelledby" })
21955
21949
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLabelledby", void 0);
21956
- __decorate$1([
21950
+ __decorate([
21957
21951
  attr({ attribute: "aria-live" })
21958
21952
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLive", void 0);
21959
- __decorate$1([
21953
+ __decorate([
21960
21954
  attr({ attribute: "aria-owns" })
21961
21955
  ], ARIAGlobalStatesAndProperties.prototype, "ariaOwns", void 0);
21962
- __decorate$1([
21956
+ __decorate([
21963
21957
  attr({ attribute: "aria-relevant" })
21964
21958
  ], ARIAGlobalStatesAndProperties.prototype, "ariaRelevant", void 0);
21965
- __decorate$1([
21959
+ __decorate([
21966
21960
  attr({ attribute: "aria-roledescription" })
21967
21961
  ], ARIAGlobalStatesAndProperties.prototype, "ariaRoledescription", void 0);
21968
21962
  class Anchor extends FoundationElement {
@@ -21986,36 +21980,36 @@ class Anchor extends FoundationElement {
21986
21980
  this.handleUnsupportedDelegatesFocus();
21987
21981
  }
21988
21982
  }
21989
- __decorate$1([
21983
+ __decorate([
21990
21984
  attr
21991
21985
  ], Anchor.prototype, "download", void 0);
21992
- __decorate$1([
21986
+ __decorate([
21993
21987
  attr
21994
21988
  ], Anchor.prototype, "href", void 0);
21995
- __decorate$1([
21989
+ __decorate([
21996
21990
  attr
21997
21991
  ], Anchor.prototype, "hreflang", void 0);
21998
- __decorate$1([
21992
+ __decorate([
21999
21993
  attr
22000
21994
  ], Anchor.prototype, "ping", void 0);
22001
- __decorate$1([
21995
+ __decorate([
22002
21996
  attr
22003
21997
  ], Anchor.prototype, "referrerpolicy", void 0);
22004
- __decorate$1([
21998
+ __decorate([
22005
21999
  attr
22006
22000
  ], Anchor.prototype, "rel", void 0);
22007
- __decorate$1([
22001
+ __decorate([
22008
22002
  attr
22009
22003
  ], Anchor.prototype, "target", void 0);
22010
- __decorate$1([
22004
+ __decorate([
22011
22005
  attr
22012
22006
  ], Anchor.prototype, "type", void 0);
22013
- __decorate$1([
22007
+ __decorate([
22014
22008
  observable
22015
22009
  ], Anchor.prototype, "defaultSlottedContent", void 0);
22016
22010
  class DelegatesARIALink {
22017
22011
  }
22018
- __decorate$1([
22012
+ __decorate([
22019
22013
  attr({ attribute: "aria-expanded" })
22020
22014
  ], DelegatesARIALink.prototype, "ariaExpanded", void 0);
22021
22015
  applyMixins(DelegatesARIALink, ARIAGlobalStatesAndProperties);
@@ -22050,13 +22044,13 @@ let Badge$2 = class Badge extends FoundationElement {
22050
22044
  };
22051
22045
  }
22052
22046
  };
22053
- __decorate$1([
22047
+ __decorate([
22054
22048
  attr({ attribute: "fill" })
22055
22049
  ], Badge$2.prototype, "fill", void 0);
22056
- __decorate$1([
22050
+ __decorate([
22057
22051
  attr({ attribute: "color" })
22058
22052
  ], Badge$2.prototype, "color", void 0);
22059
- __decorate$1([
22053
+ __decorate([
22060
22054
  attr({ mode: "boolean" })
22061
22055
  ], Badge$2.prototype, "circular", void 0);
22062
22056
  const buttonTemplate = (context2, definition2) => html$4`
@@ -22596,39 +22590,39 @@ let Button$2 = class Button extends FormAssociatedButton {
22596
22590
  }
22597
22591
  }
22598
22592
  };
22599
- __decorate$1([
22593
+ __decorate([
22600
22594
  attr({ mode: "boolean" })
22601
22595
  ], Button$2.prototype, "autofocus", void 0);
22602
- __decorate$1([
22596
+ __decorate([
22603
22597
  attr({ attribute: "form" })
22604
22598
  ], Button$2.prototype, "formId", void 0);
22605
- __decorate$1([
22599
+ __decorate([
22606
22600
  attr
22607
22601
  ], Button$2.prototype, "formaction", void 0);
22608
- __decorate$1([
22602
+ __decorate([
22609
22603
  attr
22610
22604
  ], Button$2.prototype, "formenctype", void 0);
22611
- __decorate$1([
22605
+ __decorate([
22612
22606
  attr
22613
22607
  ], Button$2.prototype, "formmethod", void 0);
22614
- __decorate$1([
22608
+ __decorate([
22615
22609
  attr({ mode: "boolean" })
22616
22610
  ], Button$2.prototype, "formnovalidate", void 0);
22617
- __decorate$1([
22611
+ __decorate([
22618
22612
  attr
22619
22613
  ], Button$2.prototype, "formtarget", void 0);
22620
- __decorate$1([
22614
+ __decorate([
22621
22615
  attr
22622
22616
  ], Button$2.prototype, "type", void 0);
22623
- __decorate$1([
22617
+ __decorate([
22624
22618
  observable
22625
22619
  ], Button$2.prototype, "defaultSlottedContent", void 0);
22626
22620
  class DelegatesARIAButton {
22627
22621
  }
22628
- __decorate$1([
22622
+ __decorate([
22629
22623
  attr({ attribute: "aria-expanded" })
22630
22624
  ], DelegatesARIAButton.prototype, "ariaExpanded", void 0);
22631
- __decorate$1([
22625
+ __decorate([
22632
22626
  attr({ attribute: "aria-pressed" })
22633
22627
  ], DelegatesARIAButton.prototype, "ariaPressed", void 0);
22634
22628
  applyMixins(DelegatesARIAButton, ARIAGlobalStatesAndProperties);
@@ -22762,40 +22756,40 @@ let DataGridRow$1 = class DataGridRow extends FoundationElement {
22762
22756
  this.activeCellItemTemplate = this.rowType === DataGridRowTypes.default && this.cellItemTemplate !== void 0 ? this.cellItemTemplate : this.rowType === DataGridRowTypes.default && this.cellItemTemplate === void 0 ? this.defaultCellItemTemplate : this.headerCellItemTemplate !== void 0 ? this.headerCellItemTemplate : this.defaultHeaderCellItemTemplate;
22763
22757
  }
22764
22758
  };
22765
- __decorate$1([
22759
+ __decorate([
22766
22760
  attr({ attribute: "grid-template-columns" })
22767
22761
  ], DataGridRow$1.prototype, "gridTemplateColumns", void 0);
22768
- __decorate$1([
22762
+ __decorate([
22769
22763
  attr({ attribute: "row-type" })
22770
22764
  ], DataGridRow$1.prototype, "rowType", void 0);
22771
- __decorate$1([
22765
+ __decorate([
22772
22766
  observable
22773
22767
  ], DataGridRow$1.prototype, "rowData", void 0);
22774
- __decorate$1([
22768
+ __decorate([
22775
22769
  observable
22776
22770
  ], DataGridRow$1.prototype, "columnDefinitions", void 0);
22777
- __decorate$1([
22771
+ __decorate([
22778
22772
  observable
22779
22773
  ], DataGridRow$1.prototype, "cellItemTemplate", void 0);
22780
- __decorate$1([
22774
+ __decorate([
22781
22775
  observable
22782
22776
  ], DataGridRow$1.prototype, "headerCellItemTemplate", void 0);
22783
- __decorate$1([
22777
+ __decorate([
22784
22778
  observable
22785
22779
  ], DataGridRow$1.prototype, "rowIndex", void 0);
22786
- __decorate$1([
22780
+ __decorate([
22787
22781
  observable
22788
22782
  ], DataGridRow$1.prototype, "isActiveRow", void 0);
22789
- __decorate$1([
22783
+ __decorate([
22790
22784
  observable
22791
22785
  ], DataGridRow$1.prototype, "activeCellItemTemplate", void 0);
22792
- __decorate$1([
22786
+ __decorate([
22793
22787
  observable
22794
22788
  ], DataGridRow$1.prototype, "defaultCellItemTemplate", void 0);
22795
- __decorate$1([
22789
+ __decorate([
22796
22790
  observable
22797
22791
  ], DataGridRow$1.prototype, "defaultHeaderCellItemTemplate", void 0);
22798
- __decorate$1([
22792
+ __decorate([
22799
22793
  observable
22800
22794
  ], DataGridRow$1.prototype, "cellElements", void 0);
22801
22795
  function createRowItemTemplate(context2) {
@@ -23141,43 +23135,43 @@ DataGrid$1.generateColumns = (row2) => {
23141
23135
  };
23142
23136
  });
23143
23137
  };
23144
- __decorate$1([
23138
+ __decorate([
23145
23139
  attr({ attribute: "no-tabbing", mode: "boolean" })
23146
23140
  ], DataGrid$1.prototype, "noTabbing", void 0);
23147
- __decorate$1([
23141
+ __decorate([
23148
23142
  attr({ attribute: "generate-header" })
23149
23143
  ], DataGrid$1.prototype, "generateHeader", void 0);
23150
- __decorate$1([
23144
+ __decorate([
23151
23145
  attr({ attribute: "grid-template-columns" })
23152
23146
  ], DataGrid$1.prototype, "gridTemplateColumns", void 0);
23153
- __decorate$1([
23147
+ __decorate([
23154
23148
  observable
23155
23149
  ], DataGrid$1.prototype, "rowsData", void 0);
23156
- __decorate$1([
23150
+ __decorate([
23157
23151
  observable
23158
23152
  ], DataGrid$1.prototype, "columnDefinitions", void 0);
23159
- __decorate$1([
23153
+ __decorate([
23160
23154
  observable
23161
23155
  ], DataGrid$1.prototype, "rowItemTemplate", void 0);
23162
- __decorate$1([
23156
+ __decorate([
23163
23157
  observable
23164
23158
  ], DataGrid$1.prototype, "cellItemTemplate", void 0);
23165
- __decorate$1([
23159
+ __decorate([
23166
23160
  observable
23167
23161
  ], DataGrid$1.prototype, "headerCellItemTemplate", void 0);
23168
- __decorate$1([
23162
+ __decorate([
23169
23163
  observable
23170
23164
  ], DataGrid$1.prototype, "focusRowIndex", void 0);
23171
- __decorate$1([
23165
+ __decorate([
23172
23166
  observable
23173
23167
  ], DataGrid$1.prototype, "focusColumnIndex", void 0);
23174
- __decorate$1([
23168
+ __decorate([
23175
23169
  observable
23176
23170
  ], DataGrid$1.prototype, "defaultRowItemTemplate", void 0);
23177
- __decorate$1([
23171
+ __decorate([
23178
23172
  observable
23179
23173
  ], DataGrid$1.prototype, "rowElementTag", void 0);
23180
- __decorate$1([
23174
+ __decorate([
23181
23175
  observable
23182
23176
  ], DataGrid$1.prototype, "rowElements", void 0);
23183
23177
  const defaultCellContentsTemplate = html$4`
@@ -23340,16 +23334,16 @@ let DataGridCell$1 = class DataGridCell extends FoundationElement {
23340
23334
  }
23341
23335
  }
23342
23336
  };
23343
- __decorate$1([
23337
+ __decorate([
23344
23338
  attr({ attribute: "cell-type" })
23345
23339
  ], DataGridCell$1.prototype, "cellType", void 0);
23346
- __decorate$1([
23340
+ __decorate([
23347
23341
  attr({ attribute: "grid-column" })
23348
23342
  ], DataGridCell$1.prototype, "gridColumn", void 0);
23349
- __decorate$1([
23343
+ __decorate([
23350
23344
  observable
23351
23345
  ], DataGridCell$1.prototype, "rowData", void 0);
23352
- __decorate$1([
23346
+ __decorate([
23353
23347
  observable
23354
23348
  ], DataGridCell$1.prototype, "columnDefinition", void 0);
23355
23349
  function createCellItemTemplate(context2) {
@@ -23474,13 +23468,13 @@ let Checkbox$1 = class Checkbox extends FormAssociatedCheckbox {
23474
23468
  }
23475
23469
  }
23476
23470
  };
23477
- __decorate$1([
23471
+ __decorate([
23478
23472
  attr({ attribute: "readonly", mode: "boolean" })
23479
23473
  ], Checkbox$1.prototype, "readOnly", void 0);
23480
- __decorate$1([
23474
+ __decorate([
23481
23475
  observable
23482
23476
  ], Checkbox$1.prototype, "defaultSlottedNodes", void 0);
23483
- __decorate$1([
23477
+ __decorate([
23484
23478
  observable
23485
23479
  ], Checkbox$1.prototype, "indeterminate", void 0);
23486
23480
  function isListboxOption(el2) {
@@ -23597,39 +23591,39 @@ class ListboxOption extends FoundationElement {
23597
23591
  return this.proxy ? this.proxy.form : null;
23598
23592
  }
23599
23593
  }
23600
- __decorate$1([
23594
+ __decorate([
23601
23595
  observable
23602
23596
  ], ListboxOption.prototype, "checked", void 0);
23603
- __decorate$1([
23597
+ __decorate([
23604
23598
  observable
23605
23599
  ], ListboxOption.prototype, "content", void 0);
23606
- __decorate$1([
23600
+ __decorate([
23607
23601
  observable
23608
23602
  ], ListboxOption.prototype, "defaultSelected", void 0);
23609
- __decorate$1([
23603
+ __decorate([
23610
23604
  attr({ mode: "boolean" })
23611
23605
  ], ListboxOption.prototype, "disabled", void 0);
23612
- __decorate$1([
23606
+ __decorate([
23613
23607
  attr({ attribute: "selected", mode: "boolean" })
23614
23608
  ], ListboxOption.prototype, "selectedAttribute", void 0);
23615
- __decorate$1([
23609
+ __decorate([
23616
23610
  observable
23617
23611
  ], ListboxOption.prototype, "selected", void 0);
23618
- __decorate$1([
23612
+ __decorate([
23619
23613
  attr({ attribute: "value", mode: "fromView" })
23620
23614
  ], ListboxOption.prototype, "initialValue", void 0);
23621
23615
  class DelegatesARIAListboxOption {
23622
23616
  }
23623
- __decorate$1([
23617
+ __decorate([
23624
23618
  observable
23625
23619
  ], DelegatesARIAListboxOption.prototype, "ariaChecked", void 0);
23626
- __decorate$1([
23620
+ __decorate([
23627
23621
  observable
23628
23622
  ], DelegatesARIAListboxOption.prototype, "ariaPosInSet", void 0);
23629
- __decorate$1([
23623
+ __decorate([
23630
23624
  observable
23631
23625
  ], DelegatesARIAListboxOption.prototype, "ariaSelected", void 0);
23632
- __decorate$1([
23626
+ __decorate([
23633
23627
  observable
23634
23628
  ], DelegatesARIAListboxOption.prototype, "ariaSetSize", void 0);
23635
23629
  applyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);
@@ -24046,33 +24040,33 @@ class Listbox extends FoundationElement {
24046
24040
  }
24047
24041
  Listbox.slottedOptionFilter = (n2) => isListboxOption(n2) && !n2.hidden;
24048
24042
  Listbox.TYPE_AHEAD_TIMEOUT_MS = 1e3;
24049
- __decorate$1([
24043
+ __decorate([
24050
24044
  attr({ mode: "boolean" })
24051
24045
  ], Listbox.prototype, "disabled", void 0);
24052
- __decorate$1([
24046
+ __decorate([
24053
24047
  observable
24054
24048
  ], Listbox.prototype, "selectedIndex", void 0);
24055
- __decorate$1([
24049
+ __decorate([
24056
24050
  observable
24057
24051
  ], Listbox.prototype, "selectedOptions", void 0);
24058
- __decorate$1([
24052
+ __decorate([
24059
24053
  observable
24060
24054
  ], Listbox.prototype, "slottedOptions", void 0);
24061
- __decorate$1([
24055
+ __decorate([
24062
24056
  observable
24063
24057
  ], Listbox.prototype, "typeaheadBuffer", void 0);
24064
24058
  class DelegatesARIAListbox {
24065
24059
  }
24066
- __decorate$1([
24060
+ __decorate([
24067
24061
  observable
24068
24062
  ], DelegatesARIAListbox.prototype, "ariaActiveDescendant", void 0);
24069
- __decorate$1([
24063
+ __decorate([
24070
24064
  observable
24071
24065
  ], DelegatesARIAListbox.prototype, "ariaDisabled", void 0);
24072
- __decorate$1([
24066
+ __decorate([
24073
24067
  observable
24074
24068
  ], DelegatesARIAListbox.prototype, "ariaExpanded", void 0);
24075
- __decorate$1([
24069
+ __decorate([
24076
24070
  observable
24077
24071
  ], DelegatesARIAListbox.prototype, "ariaMultiSelectable", void 0);
24078
24072
  applyMixins(DelegatesARIAListbox, ARIAGlobalStatesAndProperties);
@@ -24190,7 +24184,7 @@ class StyleElementStyleSheetTarget {
24190
24184
  }
24191
24185
  }
24192
24186
  }
24193
- __decorate$1([
24187
+ __decorate([
24194
24188
  observable
24195
24189
  ], StyleElementStyleSheetTarget.prototype, "target", void 0);
24196
24190
  class ElementStyleSheetTarget {
@@ -24759,7 +24753,7 @@ class DesignTokenNode {
24759
24753
  }
24760
24754
  }
24761
24755
  DesignTokenNode.cssCustomPropertyReflector = new CustomPropertyReflector();
24762
- __decorate$1([
24756
+ __decorate([
24763
24757
  observable
24764
24758
  ], DesignTokenNode.prototype, "children", void 0);
24765
24759
  function create$3(nameOrConfig) {
@@ -25036,10 +25030,10 @@ let Divider$1 = class Divider extends FoundationElement {
25036
25030
  this.orientation = Orientation.horizontal;
25037
25031
  }
25038
25032
  };
25039
- __decorate$1([
25033
+ __decorate([
25040
25034
  attr
25041
25035
  ], Divider$1.prototype, "role", void 0);
25042
- __decorate$1([
25036
+ __decorate([
25043
25037
  attr
25044
25038
  ], Divider$1.prototype, "orientation", void 0);
25045
25039
  const listboxOptionTemplate = (context2, definition2) => html$4`
@@ -25464,13 +25458,13 @@ class ListboxElement extends Listbox {
25464
25458
  }
25465
25459
  }
25466
25460
  }
25467
- __decorate$1([
25461
+ __decorate([
25468
25462
  observable
25469
25463
  ], ListboxElement.prototype, "activeIndex", void 0);
25470
- __decorate$1([
25464
+ __decorate([
25471
25465
  attr({ mode: "boolean" })
25472
25466
  ], ListboxElement.prototype, "multiple", void 0);
25473
- __decorate$1([
25467
+ __decorate([
25474
25468
  attr({ converter: nullableNumberConverter })
25475
25469
  ], ListboxElement.prototype, "size", void 0);
25476
25470
  class _TextField extends FoundationElement {
@@ -25611,37 +25605,37 @@ let TextField$1 = class TextField extends FormAssociatedTextField {
25611
25605
  super.validate(this.control);
25612
25606
  }
25613
25607
  };
25614
- __decorate$1([
25608
+ __decorate([
25615
25609
  attr({ attribute: "readonly", mode: "boolean" })
25616
25610
  ], TextField$1.prototype, "readOnly", void 0);
25617
- __decorate$1([
25611
+ __decorate([
25618
25612
  attr({ mode: "boolean" })
25619
25613
  ], TextField$1.prototype, "autofocus", void 0);
25620
- __decorate$1([
25614
+ __decorate([
25621
25615
  attr
25622
25616
  ], TextField$1.prototype, "placeholder", void 0);
25623
- __decorate$1([
25617
+ __decorate([
25624
25618
  attr
25625
25619
  ], TextField$1.prototype, "type", void 0);
25626
- __decorate$1([
25620
+ __decorate([
25627
25621
  attr
25628
25622
  ], TextField$1.prototype, "list", void 0);
25629
- __decorate$1([
25623
+ __decorate([
25630
25624
  attr({ converter: nullableNumberConverter })
25631
25625
  ], TextField$1.prototype, "maxlength", void 0);
25632
- __decorate$1([
25626
+ __decorate([
25633
25627
  attr({ converter: nullableNumberConverter })
25634
25628
  ], TextField$1.prototype, "minlength", void 0);
25635
- __decorate$1([
25629
+ __decorate([
25636
25630
  attr
25637
25631
  ], TextField$1.prototype, "pattern", void 0);
25638
- __decorate$1([
25632
+ __decorate([
25639
25633
  attr({ converter: nullableNumberConverter })
25640
25634
  ], TextField$1.prototype, "size", void 0);
25641
- __decorate$1([
25635
+ __decorate([
25642
25636
  attr({ mode: "boolean" })
25643
25637
  ], TextField$1.prototype, "spellcheck", void 0);
25644
- __decorate$1([
25638
+ __decorate([
25645
25639
  observable
25646
25640
  ], TextField$1.prototype, "defaultSlottedNodes", void 0);
25647
25641
  class DelegatesARIATextbox {
@@ -25722,19 +25716,19 @@ class BaseProgress extends FoundationElement {
25722
25716
  this.percentComplete = range2 === 0 ? 0 : Math.fround((value - min2) / range2 * 100);
25723
25717
  }
25724
25718
  }
25725
- __decorate$1([
25719
+ __decorate([
25726
25720
  attr({ converter: nullableNumberConverter })
25727
25721
  ], BaseProgress.prototype, "value", void 0);
25728
- __decorate$1([
25722
+ __decorate([
25729
25723
  attr({ converter: nullableNumberConverter })
25730
25724
  ], BaseProgress.prototype, "min", void 0);
25731
- __decorate$1([
25725
+ __decorate([
25732
25726
  attr({ converter: nullableNumberConverter })
25733
25727
  ], BaseProgress.prototype, "max", void 0);
25734
- __decorate$1([
25728
+ __decorate([
25735
25729
  attr({ mode: "boolean" })
25736
25730
  ], BaseProgress.prototype, "paused", void 0);
25737
- __decorate$1([
25731
+ __decorate([
25738
25732
  observable
25739
25733
  ], BaseProgress.prototype, "percentComplete", void 0);
25740
25734
  const radioGroupTemplate = (context2, definition2) => html$4`
@@ -26069,25 +26063,25 @@ let RadioGroup$1 = class RadioGroup extends FoundationElement {
26069
26063
  }
26070
26064
  }
26071
26065
  };
26072
- __decorate$1([
26066
+ __decorate([
26073
26067
  attr({ attribute: "readonly", mode: "boolean" })
26074
26068
  ], RadioGroup$1.prototype, "readOnly", void 0);
26075
- __decorate$1([
26069
+ __decorate([
26076
26070
  attr({ attribute: "disabled", mode: "boolean" })
26077
26071
  ], RadioGroup$1.prototype, "disabled", void 0);
26078
- __decorate$1([
26072
+ __decorate([
26079
26073
  attr
26080
26074
  ], RadioGroup$1.prototype, "name", void 0);
26081
- __decorate$1([
26075
+ __decorate([
26082
26076
  attr
26083
26077
  ], RadioGroup$1.prototype, "value", void 0);
26084
- __decorate$1([
26078
+ __decorate([
26085
26079
  attr
26086
26080
  ], RadioGroup$1.prototype, "orientation", void 0);
26087
- __decorate$1([
26081
+ __decorate([
26088
26082
  observable
26089
26083
  ], RadioGroup$1.prototype, "childItems", void 0);
26090
- __decorate$1([
26084
+ __decorate([
26091
26085
  observable
26092
26086
  ], RadioGroup$1.prototype, "slottedRadioButtons", void 0);
26093
26087
  const radioTemplate = (context2, definition2) => html$4`
@@ -26189,13 +26183,13 @@ let Radio$1 = class Radio extends FormAssociatedRadio {
26189
26183
  }
26190
26184
  }
26191
26185
  };
26192
- __decorate$1([
26186
+ __decorate([
26193
26187
  attr({ attribute: "readonly", mode: "boolean" })
26194
26188
  ], Radio$1.prototype, "readOnly", void 0);
26195
- __decorate$1([
26189
+ __decorate([
26196
26190
  observable
26197
26191
  ], Radio$1.prototype, "name", void 0);
26198
- __decorate$1([
26192
+ __decorate([
26199
26193
  observable
26200
26194
  ], Radio$1.prototype, "defaultSlottedNodes", void 0);
26201
26195
  function whitespaceFilter(value, index2, array) {
@@ -26608,27 +26602,27 @@ class Select extends FormAssociatedSelect {
26608
26602
  }
26609
26603
  }
26610
26604
  }
26611
- __decorate$1([
26605
+ __decorate([
26612
26606
  attr({ attribute: "open", mode: "boolean" })
26613
26607
  ], Select.prototype, "open", void 0);
26614
- __decorate$1([
26608
+ __decorate([
26615
26609
  volatile
26616
26610
  ], Select.prototype, "collapsible", null);
26617
- __decorate$1([
26611
+ __decorate([
26618
26612
  observable
26619
26613
  ], Select.prototype, "control", void 0);
26620
- __decorate$1([
26614
+ __decorate([
26621
26615
  attr({ attribute: "position" })
26622
26616
  ], Select.prototype, "positionAttribute", void 0);
26623
- __decorate$1([
26617
+ __decorate([
26624
26618
  observable
26625
26619
  ], Select.prototype, "position", void 0);
26626
- __decorate$1([
26620
+ __decorate([
26627
26621
  observable
26628
26622
  ], Select.prototype, "maxHeight", void 0);
26629
26623
  class DelegatesARIASelect {
26630
26624
  }
26631
- __decorate$1([
26625
+ __decorate([
26632
26626
  observable
26633
26627
  ], DelegatesARIASelect.prototype, "ariaControls", void 0);
26634
26628
  applyMixins(DelegatesARIASelect, DelegatesARIAListbox);
@@ -26710,7 +26704,7 @@ const tabTemplate = (context2, definition2) => html$4`
26710
26704
  `;
26711
26705
  class Tab extends FoundationElement {
26712
26706
  }
26713
- __decorate$1([
26707
+ __decorate([
26714
26708
  attr({ mode: "boolean" })
26715
26709
  ], Tab.prototype, "disabled", void 0);
26716
26710
  const tabsTemplate = (context2, definition2) => html$4`
@@ -27018,25 +27012,25 @@ let Tabs$1 = class Tabs extends FoundationElement {
27018
27012
  this.activeTabIndex = this.getActiveIndex();
27019
27013
  }
27020
27014
  };
27021
- __decorate$1([
27015
+ __decorate([
27022
27016
  attr
27023
27017
  ], Tabs$1.prototype, "orientation", void 0);
27024
- __decorate$1([
27018
+ __decorate([
27025
27019
  attr
27026
27020
  ], Tabs$1.prototype, "activeid", void 0);
27027
- __decorate$1([
27021
+ __decorate([
27028
27022
  observable
27029
27023
  ], Tabs$1.prototype, "tabs", void 0);
27030
- __decorate$1([
27024
+ __decorate([
27031
27025
  observable
27032
27026
  ], Tabs$1.prototype, "tabpanels", void 0);
27033
- __decorate$1([
27027
+ __decorate([
27034
27028
  attr({ mode: "boolean" })
27035
27029
  ], Tabs$1.prototype, "activeindicator", void 0);
27036
- __decorate$1([
27030
+ __decorate([
27037
27031
  observable
27038
27032
  ], Tabs$1.prototype, "activeIndicatorRef", void 0);
27039
- __decorate$1([
27033
+ __decorate([
27040
27034
  observable
27041
27035
  ], Tabs$1.prototype, "showActiveIndicator", void 0);
27042
27036
  applyMixins(Tabs$1, StartEnd);
@@ -27131,43 +27125,43 @@ let TextArea$1 = class TextArea extends FormAssociatedTextArea {
27131
27125
  super.validate(this.control);
27132
27126
  }
27133
27127
  };
27134
- __decorate$1([
27128
+ __decorate([
27135
27129
  attr({ mode: "boolean" })
27136
27130
  ], TextArea$1.prototype, "readOnly", void 0);
27137
- __decorate$1([
27131
+ __decorate([
27138
27132
  attr
27139
27133
  ], TextArea$1.prototype, "resize", void 0);
27140
- __decorate$1([
27134
+ __decorate([
27141
27135
  attr({ mode: "boolean" })
27142
27136
  ], TextArea$1.prototype, "autofocus", void 0);
27143
- __decorate$1([
27137
+ __decorate([
27144
27138
  attr({ attribute: "form" })
27145
27139
  ], TextArea$1.prototype, "formId", void 0);
27146
- __decorate$1([
27140
+ __decorate([
27147
27141
  attr
27148
27142
  ], TextArea$1.prototype, "list", void 0);
27149
- __decorate$1([
27143
+ __decorate([
27150
27144
  attr({ converter: nullableNumberConverter })
27151
27145
  ], TextArea$1.prototype, "maxlength", void 0);
27152
- __decorate$1([
27146
+ __decorate([
27153
27147
  attr({ converter: nullableNumberConverter })
27154
27148
  ], TextArea$1.prototype, "minlength", void 0);
27155
- __decorate$1([
27149
+ __decorate([
27156
27150
  attr
27157
27151
  ], TextArea$1.prototype, "name", void 0);
27158
- __decorate$1([
27152
+ __decorate([
27159
27153
  attr
27160
27154
  ], TextArea$1.prototype, "placeholder", void 0);
27161
- __decorate$1([
27155
+ __decorate([
27162
27156
  attr({ converter: nullableNumberConverter, mode: "fromView" })
27163
27157
  ], TextArea$1.prototype, "cols", void 0);
27164
- __decorate$1([
27158
+ __decorate([
27165
27159
  attr({ converter: nullableNumberConverter, mode: "fromView" })
27166
27160
  ], TextArea$1.prototype, "rows", void 0);
27167
- __decorate$1([
27161
+ __decorate([
27168
27162
  attr({ mode: "boolean" })
27169
27163
  ], TextArea$1.prototype, "spellcheck", void 0);
27170
- __decorate$1([
27164
+ __decorate([
27171
27165
  observable
27172
27166
  ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
27173
27167
  applyMixins(TextArea$1, DelegatesARIATextbox);
@@ -27634,26 +27628,6 @@ const vsCodeBadge = Badge$1.compose({
27634
27628
  template: badgeTemplate,
27635
27629
  styles: badgeStyles
27636
27630
  });
27637
- /*! *****************************************************************************
27638
- Copyright (c) Microsoft Corporation.
27639
-
27640
- Permission to use, copy, modify, and/or distribute this software for any
27641
- purpose with or without fee is hereby granted.
27642
-
27643
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
27644
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
27645
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
27646
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
27647
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
27648
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27649
- PERFORMANCE OF THIS SOFTWARE.
27650
- ***************************************************************************** */
27651
- function __decorate(decorators, target, key, desc) {
27652
- var c2 = arguments.length, r2 = c2 < 3 ? target : desc, d2;
27653
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
27654
- else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d2 = decorators[i2]) r2 = (c2 < 3 ? d2(r2) : c2 > 3 ? d2(target, key, r2) : d2(target, key)) || r2;
27655
- return c2 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
27656
- }
27657
27631
  const BaseButtonStyles = css$2`
27658
27632
  ${display("inline-flex")} :host {
27659
27633
  outline: none;
@@ -48686,7 +48660,7 @@ function resolveAllLineSuffixes(events, context2) {
48686
48660
  let index2 = chunks.length;
48687
48661
  let bufferIndex = -1;
48688
48662
  let size2 = 0;
48689
- let tabs;
48663
+ let tabs2;
48690
48664
  while (index2--) {
48691
48665
  const chunk = chunks[index2];
48692
48666
  if (typeof chunk === "string") {
@@ -48698,7 +48672,7 @@ function resolveAllLineSuffixes(events, context2) {
48698
48672
  if (bufferIndex) break;
48699
48673
  bufferIndex = -1;
48700
48674
  } else if (chunk === -2) {
48701
- tabs = true;
48675
+ tabs2 = true;
48702
48676
  size2++;
48703
48677
  } else if (chunk === -1) ;
48704
48678
  else {
@@ -48708,7 +48682,7 @@ function resolveAllLineSuffixes(events, context2) {
48708
48682
  }
48709
48683
  if (size2) {
48710
48684
  const token = {
48711
- type: eventIndex === events.length || tabs || size2 < 2 ? "lineSuffix" : "hardBreakTrailing",
48685
+ type: eventIndex === events.length || tabs2 || size2 < 2 ? "lineSuffix" : "hardBreakTrailing",
48712
48686
  start: {
48713
48687
  line: data.end.line,
48714
48688
  column: data.end.column - size2,
@@ -71599,7 +71573,6 @@ const ChatMessageContent = ({
71599
71573
  copyButtonOnSubmit,
71600
71574
  insertButtonOnSubmit,
71601
71575
  smartApplyEnabled,
71602
- smartApplyInterceptor,
71603
71576
  guardrails,
71604
71577
  displayMarkdown,
71605
71578
  isMessageLoading,
@@ -72308,11 +72281,11 @@ const styles$6 = {
72308
72281
  editorContentEditable
72309
72282
  };
72310
72283
  const badgeVariants = cva(
72311
- "tw-inline-flex tw-items-center tw-rounded-[2px] tw-border-w-1 tw-border-solid tw-px-[5px] tw-py-0 tw-text-xs focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-ring focus:tw-ring-offset-2",
72284
+ "tw-inline-flex tw-items-center tw-rounded-[6px] tw-px-[5px] tw-py-0 tw-text-xs focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-ring focus:tw-ring-offset-2",
72312
72285
  {
72313
72286
  variants: {
72314
72287
  variant: {
72315
- secondary: "tw-border tw-border-border tw-bg-badge-background tw-text-badge-foreground",
72288
+ secondary: "tw-bg-badge-background tw-text-badge-foreground",
72316
72289
  outline: "tw-border tw-border-muted-transparent tw-bg-[unset] tw-text-muted-foreground"
72317
72290
  }
72318
72291
  },
@@ -72551,12 +72524,12 @@ const PopoverContent = React.forwardRef(({ className, align = "start", sideOffse
72551
72524
  ] });
72552
72525
  });
72553
72526
  PopoverContent.displayName = $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2.displayName;
72554
- const button = "_button_n6cvl_5";
72555
- const buttonIconEndChevron = "_button--icon-end-chevron_n6cvl_37";
72556
- const buttonPrimary = "_button--primary_n6cvl_41";
72557
- const buttonNoIconStart = "_button--no-icon-start_n6cvl_45";
72558
- const buttonNoIconEnd = "_button--no-icon-end_n6cvl_49";
72559
- const buttonSecondary = "_button--secondary_n6cvl_54";
72527
+ const button = "_button_rqosg_5";
72528
+ const buttonIconEndChevron = "_button--icon-end-chevron_rqosg_37";
72529
+ const buttonPrimary = "_button--primary_rqosg_41";
72530
+ const buttonNoIconStart = "_button--no-icon-start_rqosg_45";
72531
+ const buttonNoIconEnd = "_button--no-icon-end_rqosg_49";
72532
+ const buttonSecondary = "_button--secondary_rqosg_54";
72560
72533
  const styles$5 = {
72561
72534
  button,
72562
72535
  buttonIconEndChevron,
@@ -73228,7 +73201,7 @@ const PromptCommandItem = ({ prompt, onSelect, selectActionLabel }) => /* @__PUR
73228
73201
  ] }),
73229
73202
  /* @__PURE__ */ jsx("strong", { children: prompt.name })
73230
73203
  ] }),
73231
- prompt.draft && /* @__PURE__ */ jsx(Badge3, { variant: "outline", className: "tw-text-xxs tw-mt-0.5", children: "Draft" })
73204
+ prompt.draft && /* @__PURE__ */ jsx(Badge3, { variant: "secondary", className: "tw-text-xxs tw-mt-0.5", children: "Draft" })
73232
73205
  ] }),
73233
73206
  prompt.description && /* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-text-muted-foreground tw-text-nowrap tw-overflow-hidden tw-text-ellipsis tw-w-full", children: prompt.description })
73234
73207
  ] }),
@@ -73247,7 +73220,7 @@ const CodyCommandItem = ({ command, onSelect, selectActionLabel, showCommandOrig
73247
73220
  /* @__PURE__ */ jsxs("div", { children: [
73248
73221
  /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-wrap tw-gap-3 tw-w-full tw-items-start", children: [
73249
73222
  /* @__PURE__ */ jsx("strong", { className: "tw-whitespace-nowrap", children: command.type === "default" ? command.description : command.key }),
73250
- showCommandOrigins && command.type !== "default" && /* @__PURE__ */ jsx(Badge3, { variant: "outline", className: "tw-text-xxs tw-mt-0.5 tw-whitespace-nowrap", children: command.type === CustomCommandType.User ? "Local User Settings" : "Workspace Settings" })
73223
+ showCommandOrigins && command.type !== "default" && /* @__PURE__ */ jsx(Badge3, { variant: "secondary", className: "tw-text-xxs tw-mt-0.5 tw-whitespace-nowrap", children: command.type === CustomCommandType.User ? "Local User Settings" : "Workspace Settings" })
73251
73224
  ] }),
73252
73225
  command.type !== "default" && command.description && /* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-text-muted-foreground tw-text-nowrap tw-overflow-hidden tw-text-ellipsis tw-w-full", children: command.description })
73253
73226
  ] }),
@@ -73411,7 +73384,7 @@ const SubmitButton = ({ onClick, state = "submittable", className }) => {
73411
73384
  type: "submit",
73412
73385
  variant: "ghostRoundedIcon",
73413
73386
  className: clsx$1(
73414
- "tw-relative tw-w-[20px] tw-h-[20px] tw-bg-transparent tw-group",
73387
+ "tw-relative tw-overflow-hidden tw-w-[20px] tw-h-[20px] tw-bg-transparent tw-group",
73415
73388
  className
73416
73389
  ),
73417
73390
  title: "Stop",
@@ -73526,7 +73499,7 @@ const Toolbar = ({
73526
73499
  }
73527
73500
  )
73528
73501
  ] }),
73529
- /* @__PURE__ */ jsx("div", { className: "tw-flex-1 tw-text-right", children: /* @__PURE__ */ jsx(
73502
+ /* @__PURE__ */ jsx("div", { className: "tw-flex tw-justify-end tw-flex-1 tw-text-right", children: /* @__PURE__ */ jsx(
73530
73503
  SubmitButton,
73531
73504
  {
73532
73505
  onClick: onSubmitClick,
@@ -73889,32 +73862,40 @@ const Transcript = (props) => {
73889
73862
  () => transcriptToInteractionPairs(transcript, messageInProgress),
73890
73863
  [transcript, messageInProgress]
73891
73864
  );
73892
- return /* @__PURE__ */ jsx("div", { className: "tw-px-6 tw-pt-8 tw-pb-12 tw-flex tw-flex-col tw-gap-8", children: interactions.map((interaction, i2) => {
73893
- var _a, _b;
73894
- return /* @__PURE__ */ jsx(
73895
- TranscriptInteraction,
73896
- {
73897
- chatEnabled,
73898
- userInfo,
73899
- interaction,
73900
- guardrails,
73901
- postMessage,
73902
- isTranscriptError,
73903
- feedbackButtonsOnSubmit,
73904
- copyButtonOnSubmit,
73905
- insertButtonOnSubmit,
73906
- isFirstInteraction: i2 === 0,
73907
- isLastInteraction: i2 === interactions.length - 1,
73908
- isLastSentInteraction: i2 === interactions.length - 2 && interaction.assistantMessage !== null,
73909
- priorAssistantMessageIsLoading: Boolean(
73910
- messageInProgress && ((_b = (_a = interactions.at(i2 - 1)) == null ? void 0 : _a.assistantMessage) == null ? void 0 : _b.isLoading)
73911
- ),
73912
- smartApply,
73913
- smartApplyEnabled
73914
- },
73915
- i2
73916
- );
73917
- }) });
73865
+ return /* @__PURE__ */ jsx(
73866
+ "div",
73867
+ {
73868
+ className: clsx$1("tw-px-6 tw-pt-8 tw-pb-12 tw-flex tw-flex-col tw-gap-8", {
73869
+ "tw-flex-grow": transcript.length > 0
73870
+ }),
73871
+ children: interactions.map((interaction, i2) => {
73872
+ var _a, _b;
73873
+ return /* @__PURE__ */ jsx(
73874
+ TranscriptInteraction,
73875
+ {
73876
+ chatEnabled,
73877
+ userInfo,
73878
+ interaction,
73879
+ guardrails,
73880
+ postMessage,
73881
+ isTranscriptError,
73882
+ feedbackButtonsOnSubmit,
73883
+ copyButtonOnSubmit,
73884
+ insertButtonOnSubmit,
73885
+ isFirstInteraction: i2 === 0,
73886
+ isLastInteraction: i2 === interactions.length - 1,
73887
+ isLastSentInteraction: i2 === interactions.length - 2 && interaction.assistantMessage !== null,
73888
+ priorAssistantMessageIsLoading: Boolean(
73889
+ messageInProgress && ((_b = (_a = interactions.at(i2 - 1)) == null ? void 0 : _a.assistantMessage) == null ? void 0 : _b.isLoading)
73890
+ ),
73891
+ smartApply,
73892
+ smartApplyEnabled
73893
+ },
73894
+ i2
73895
+ );
73896
+ })
73897
+ }
73898
+ );
73918
73899
  };
73919
73900
  function transcriptToInteractionPairs(transcript, assistantMessageInProgress) {
73920
73901
  var _a;
@@ -73975,6 +73956,12 @@ const TranscriptInteraction = memo((props) => {
73975
73956
  const isContextLoading = Boolean(
73976
73957
  humanMessage.contextFiles === void 0 && isLastSentInteraction && (assistantMessage == null ? void 0 : assistantMessage.text) === void 0
73977
73958
  );
73959
+ const humanMessageInfo = useMemo(() => {
73960
+ if (assistantMessage && !isContextLoading) {
73961
+ return makeHumanMessageInfo({ humanMessage, assistantMessage }, humanEditorRef);
73962
+ }
73963
+ return null;
73964
+ }, [humanMessage, assistantMessage, isContextLoading]);
73978
73965
  return /* @__PURE__ */ jsxs(Fragment, { children: [
73979
73966
  /* @__PURE__ */ jsx(
73980
73967
  HumanMessageCell,
@@ -73990,7 +73977,8 @@ const TranscriptInteraction = memo((props) => {
73990
73977
  isFirstInteraction,
73991
73978
  isLastInteraction,
73992
73979
  isEditorInitiallyFocused: isLastInteraction,
73993
- editorRef: humanEditorRef
73980
+ editorRef: humanEditorRef,
73981
+ className: !isFirstInteraction && isLastInteraction ? "tw-mt-auto" : ""
73994
73982
  },
73995
73983
  humanMessage.index
73996
73984
  ),
@@ -74015,10 +74003,7 @@ const TranscriptInteraction = memo((props) => {
74015
74003
  insertButtonOnSubmit,
74016
74004
  postMessage,
74017
74005
  guardrails,
74018
- humanMessage: makeHumanMessageInfo(
74019
- { humanMessage, assistantMessage },
74020
- humanEditorRef
74021
- ),
74006
+ humanMessage: humanMessageInfo,
74022
74007
  isLoading: assistantMessage.isLoading,
74023
74008
  showFeedbackButtons: !assistantMessage.isLoading && !isTranscriptError && !assistantMessage.error && isLastSentInteraction,
74024
74009
  smartApply,
@@ -74032,6 +74017,7 @@ function focusLastHumanMessageEditor() {
74032
74017
  const elements2 = document.querySelectorAll("[data-lexical-editor]");
74033
74018
  const lastEditor = elements2.item(elements2.length - 1);
74034
74019
  lastEditor == null ? void 0 : lastEditor.focus();
74020
+ lastEditor == null ? void 0 : lastEditor.scrollIntoView();
74035
74021
  }
74036
74022
  function editHumanMessage(messageIndexInTranscript, editorValue) {
74037
74023
  getVSCodeAPI().postMessage({
@@ -74187,13 +74173,13 @@ const WelcomeMessage = ({
74187
74173
  }) => {
74188
74174
  localStorage.removeItem(localStorageKey);
74189
74175
  const dispatchClientAction = useClientActionDispatcher();
74190
- return /* @__PURE__ */ jsxs("div", { className: "tw-flex-1 tw-flex tw-flex-col tw-items-start tw-w-full tw-pt-4 tw-px-6 tw-gap-10 tw-transition-all", children: [
74176
+ return /* @__PURE__ */ jsxs("div", { className: "tw-flex-1 tw-flex tw-flex-col tw-items-start tw-w-full tw-px-6 tw-gap-6 tw-transition-all", children: [
74191
74177
  /* @__PURE__ */ jsx(
74192
74178
  CollapsiblePanel,
74193
74179
  {
74194
74180
  storageKey: "prompts",
74195
74181
  title: "Prompts & Commands",
74196
- className: "tw-mb-6 tw-mt-2",
74182
+ className: "tw-mb-6",
74197
74183
  contentClassName: "!tw-p-0 tw-overflow-clip",
74198
74184
  initialOpen: true,
74199
74185
  children: /* @__PURE__ */ jsx(
@@ -74262,23 +74248,21 @@ const ScrollDown = (props) => {
74262
74248
  const [canScrollDown, setCanScrollDown] = useState(false);
74263
74249
  const scrollerAPI = useMemo(() => createScrollerAPI(scrollableParent), [scrollableParent]);
74264
74250
  useEffect(() => {
74265
- function handleScroll2() {
74266
- const scrollPosition = scrollerAPI.getScrollTop();
74251
+ function calculateScrollState() {
74252
+ const scrollTop = scrollerAPI.getScrollTop();
74267
74253
  const scrollHeight = scrollerAPI.getScrollHeight();
74268
74254
  const clientHeight = scrollerAPI.getClientHeight();
74269
- setCanScrollDown(scrollPosition + clientHeight < scrollHeight - MARGIN);
74255
+ setCanScrollDown(scrollTop + clientHeight < scrollHeight - MARGIN);
74270
74256
  }
74271
- handleScroll2();
74272
- scrollerAPI.root.addEventListener("scroll", handleScroll2);
74273
- scrollerAPI.root.addEventListener("resize", handleScroll2);
74257
+ calculateScrollState();
74274
74258
  const resizeObserver = new ResizeObserver(() => {
74275
- handleScroll2();
74259
+ calculateScrollState();
74276
74260
  });
74277
74261
  resizeObserver.observe(scrollerAPI.getObserveElement());
74262
+ scrollerAPI.root.addEventListener("scroll", calculateScrollState);
74278
74263
  return () => {
74279
- scrollerAPI.root.removeEventListener("scroll", handleScroll2);
74280
- scrollerAPI.root.removeEventListener("resize", handleScroll2);
74281
74264
  resizeObserver.disconnect();
74265
+ scrollerAPI.root.removeEventListener("scroll", calculateScrollState);
74282
74266
  };
74283
74267
  }, [scrollerAPI]);
74284
74268
  const onClick = useCallback(() => {
@@ -74288,16 +74272,10 @@ const ScrollDown = (props) => {
74288
74272
  });
74289
74273
  parentOnClick == null ? void 0 : parentOnClick();
74290
74274
  }, [parentOnClick, scrollerAPI]);
74291
- return canScrollDown ? /* @__PURE__ */ jsx("div", { className: "tw-sticky tw-bottom-0 tw-w-full tw-text-center tw-py-4", children: /* @__PURE__ */ jsx(
74292
- Button3,
74293
- {
74294
- variant: "outline",
74295
- size: "lg",
74296
- onClick,
74297
- className: "tw-py-3 hover:tw-bg-primary-hover",
74298
- children: /* @__PURE__ */ jsx(ArrowDown, { size: 24 })
74299
- }
74300
- ) }) : null;
74275
+ return canScrollDown ? /* @__PURE__ */ jsx("div", { className: "tw-sticky tw-bottom-0 tw-w-full tw-text-center tw-py-4", children: /* @__PURE__ */ jsxs(Button3, { variant: "outline", onClick, className: "tw-py-3 hover:tw-bg-primary-hover", children: [
74276
+ /* @__PURE__ */ jsx(ArrowDown, { size: 16 }),
74277
+ " Skip to end"
74278
+ ] }) }) : null;
74301
74279
  };
74302
74280
  const Chat = ({
74303
74281
  messageInProgress,
@@ -74848,8 +74826,17 @@ const AccountTab = () => {
74848
74826
  if (ide === CodyIDE.VSCode) {
74849
74827
  return null;
74850
74828
  }
74851
- const actions2 = [
74852
- {
74829
+ const actions2 = [];
74830
+ actions2.push({
74831
+ text: "Switch Account...",
74832
+ onClick: useCallback(() => {
74833
+ if (userInfo.user.username) {
74834
+ getVSCodeAPI().postMessage({ command: "command", id: "cody.auth.switchAccount" });
74835
+ }
74836
+ }, [userInfo])
74837
+ });
74838
+ if (isDotComUser) {
74839
+ actions2.push({
74853
74840
  text: "Manage Account",
74854
74841
  onClick: useCallback(() => {
74855
74842
  if (userInfo.user.username) {
@@ -74859,16 +74846,16 @@ const AccountTab = () => {
74859
74846
  getVSCodeAPI().postMessage({ command: "links", value: uri.toString() });
74860
74847
  }
74861
74848
  }, [userInfo])
74862
- },
74863
- {
74864
- text: "Settings",
74865
- onClick: () => getVSCodeAPI().postMessage({ command: "command", id: "cody.status-bar.interacted" })
74866
- },
74867
- {
74868
- text: "Sign Out",
74869
- onClick: () => getVSCodeAPI().postMessage({ command: "auth", authKind: "signout" })
74870
- }
74871
- ];
74849
+ });
74850
+ }
74851
+ actions2.push({
74852
+ text: "Settings",
74853
+ onClick: () => getVSCodeAPI().postMessage({ command: "command", id: "cody.status-bar.interacted" })
74854
+ });
74855
+ actions2.push({
74856
+ text: "Sign Out",
74857
+ onClick: () => getVSCodeAPI().postMessage({ command: "auth", authKind: "signout" })
74858
+ });
74872
74859
  return /* @__PURE__ */ jsxs("div", { className: "tw-overflow-auto tw-flex-1 tw-flex tw-flex-col tw-items-start tw-w-full tw-px-8 tw-py-6 tw-gap-6", children: [
74873
74860
  /* @__PURE__ */ jsx("h2", { children: "Account" }),
74874
74861
  /* @__PURE__ */ jsxs("div", { className: "tw-w-full tw-px-8 tw-py-4 tw-flex tw-flex-col tw-gap-4 tw-bg-popover tw-border tw-border-border tw-rounded-lg", children: [
@@ -74899,7 +74886,17 @@ const AccountTab = () => {
74899
74886
  ))
74900
74887
  ] });
74901
74888
  };
74902
- const HistoryTab = ({ userHistory }) => {
74889
+ function getCreateNewChatCommand(options) {
74890
+ const { IDE, webviewType, multipleWebviewsEnabled } = options;
74891
+ return IDE === CodyIDE.Web ? "cody.chat.new" : webviewType === "sidebar" || !multipleWebviewsEnabled ? "cody.chat.newPanel" : "cody.chat.newEditorPanel";
74892
+ }
74893
+ const HistoryTab = ({
74894
+ userHistory,
74895
+ IDE,
74896
+ webviewType,
74897
+ multipleWebviewsEnabled,
74898
+ setView
74899
+ }) => {
74903
74900
  const chatByPeriod = useMemo(
74904
74901
  () => userHistory.filter((chat2) => chat2.interactions.length).reverse().reduce((acc, chat2) => {
74905
74902
  const period = getRelativeChatPeriod(new Date(chat2.lastInteractionTimestamp));
@@ -74920,62 +74917,102 @@ const HistoryTab = ({ userHistory }) => {
74920
74917
  },
74921
74918
  [userHistory]
74922
74919
  );
74923
- return /* @__PURE__ */ jsx("div", { className: "tw-px-8 tw-pt-6 tw-pb-12 tw-flex tw-flex-col tw-gap-10", children: Array.from(chatByPeriod, ([period, chats]) => /* @__PURE__ */ jsx(
74924
- CollapsiblePanel,
74925
- {
74926
- storageKey: `history.${period}`,
74927
- title: period,
74928
- initialOpen: true,
74929
- children: chats.map(({ interactions, id: id2 }) => {
74930
- var _a, _b, _c;
74931
- const lastMessage = (_c = (_b = (_a = interactions[interactions.length - 1]) == null ? void 0 : _a.humanMessage) == null ? void 0 : _b.text) == null ? void 0 : _c.trim();
74932
- return /* @__PURE__ */ jsxs("div", { className: "tw-inline-flex tw-justify-between", children: [
74933
- /* @__PURE__ */ jsxs(
74934
- Button3,
74935
- {
74936
- variant: "ghost",
74937
- title: lastMessage,
74938
- onClick: () => getVSCodeAPI().postMessage({
74939
- command: "restoreHistory",
74940
- chatID: id2
74941
- }),
74942
- className: "tw-text-left tw-truncate tw-w-full",
74943
- children: [
74944
- /* @__PURE__ */ jsx(
74945
- MessageSquareText,
74920
+ const handleStartNewChat = () => {
74921
+ getVSCodeAPI().postMessage({
74922
+ command: "command",
74923
+ id: getCreateNewChatCommand({ IDE, webviewType, multipleWebviewsEnabled })
74924
+ });
74925
+ setView(View.Chat);
74926
+ };
74927
+ const chats = Array.from(chatByPeriod);
74928
+ return /* @__PURE__ */ jsxs("div", { className: "tw-px-8 tw-pt-6 tw-pb-12 tw-flex tw-flex-col tw-gap-10", children: [
74929
+ chats.map(([period, chats2]) => /* @__PURE__ */ jsx(
74930
+ CollapsiblePanel,
74931
+ {
74932
+ storageKey: `history.${period}`,
74933
+ title: period,
74934
+ initialOpen: true,
74935
+ children: chats2.map(({ interactions, id: id2 }) => {
74936
+ var _a, _b, _c;
74937
+ const lastMessage = (_c = (_b = (_a = interactions[interactions.length - 1]) == null ? void 0 : _a.humanMessage) == null ? void 0 : _b.text) == null ? void 0 : _c.trim();
74938
+ return /* @__PURE__ */ jsxs("div", { className: "tw-inline-flex tw-justify-between", children: [
74939
+ /* @__PURE__ */ jsxs(
74940
+ Button3,
74941
+ {
74942
+ variant: "ghost",
74943
+ title: lastMessage,
74944
+ onClick: () => getVSCodeAPI().postMessage({
74945
+ command: "restoreHistory",
74946
+ chatID: id2
74947
+ }),
74948
+ className: "tw-text-left tw-truncate tw-w-full",
74949
+ children: [
74950
+ /* @__PURE__ */ jsx(
74951
+ MessageSquareText,
74952
+ {
74953
+ className: "tw-w-8 tw-h-8 tw-opacity-80",
74954
+ size: 16,
74955
+ strokeWidth: "1.25"
74956
+ }
74957
+ ),
74958
+ /* @__PURE__ */ jsx("span", { className: "tw-truncate tw-w-full", children: lastMessage })
74959
+ ]
74960
+ },
74961
+ id2
74962
+ ),
74963
+ /* @__PURE__ */ jsx(
74964
+ Button3,
74965
+ {
74966
+ variant: "ghost",
74967
+ title: "Delete chat",
74968
+ onClick: () => onDeleteButtonClick(id2),
74969
+ children: /* @__PURE__ */ jsx(
74970
+ Trash,
74946
74971
  {
74947
74972
  className: "tw-w-8 tw-h-8 tw-opacity-80",
74948
74973
  size: 16,
74949
74974
  strokeWidth: "1.25"
74950
74975
  }
74951
- ),
74952
- /* @__PURE__ */ jsx("span", { className: "tw-truncate tw-w-full", children: lastMessage })
74953
- ]
74954
- },
74955
- id2
74956
- ),
74957
- /* @__PURE__ */ jsx(
74958
- Button3,
74959
- {
74960
- variant: "ghost",
74961
- title: "Delete chat",
74962
- onClick: () => onDeleteButtonClick(id2),
74963
- children: /* @__PURE__ */ jsx(
74964
- Trash,
74965
- {
74966
- className: "tw-w-8 tw-h-8 tw-opacity-80",
74967
- size: 16,
74968
- strokeWidth: "1.25"
74969
- }
74970
- )
74971
- },
74972
- id2
74973
- )
74974
- ] }, id2);
74975
- })
74976
- },
74977
- period
74978
- )) });
74976
+ )
74977
+ },
74978
+ id2
74979
+ )
74980
+ ] }, id2);
74981
+ })
74982
+ },
74983
+ period
74984
+ )),
74985
+ chats.length === 0 && /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-items-center tw-mt-6", children: [
74986
+ /* @__PURE__ */ jsx(
74987
+ History,
74988
+ {
74989
+ size: 20,
74990
+ strokeWidth: 1.25,
74991
+ className: "tw-mb-5 tw-text-muted-foreground"
74992
+ }
74993
+ ),
74994
+ /* @__PURE__ */ jsx("span", { className: "tw-text-lg tw-mb-4 tw-text-muted-foreground", children: "You have no chat history" }),
74995
+ /* @__PURE__ */ jsxs("span", { className: "tw-text-sm tw-text-muted-foreground tw-mb-8", children: [
74996
+ "Explore all your previous chats here. Track and ",
74997
+ /* @__PURE__ */ jsx("br", {}),
74998
+ " search through what you’ve been working on."
74999
+ ] }),
75000
+ /* @__PURE__ */ jsxs(
75001
+ Button3,
75002
+ {
75003
+ size: "sm",
75004
+ variant: "secondary",
75005
+ "aria-label": "Start a new chat",
75006
+ className: "tw-px-4 tw-py-2",
75007
+ onClick: handleStartNewChat,
75008
+ children: [
75009
+ /* @__PURE__ */ jsx(MessageSquarePlus, { size: 16, className: "tw-w-8 tw-h-8", strokeWidth: 1.25 }),
75010
+ "Start a new chat"
75011
+ ]
75012
+ }
75013
+ )
75014
+ ] })
75015
+ ] });
74979
75016
  };
74980
75017
  const SettingsTab = () => {
74981
75018
  return /* @__PURE__ */ jsx("div", { className: "tw-overflow-auto tw-flex tw-flex-col tw-gap-4 tw-px-8 tw-mt-4", children: /* @__PURE__ */ jsx(
@@ -74992,11 +75029,138 @@ const SettingsTab = () => {
74992
75029
  "settings"
74993
75030
  ) });
74994
75031
  };
74995
- const tabsContainer = "_tabs-container_1jhmn_1";
74996
- const activeTab = "_active-tab_1jhmn_7";
75032
+ const tabsRoot = "_tabs-root_u8lyl_10";
75033
+ const tabsContainer = "_tabs-container_u8lyl_15";
75034
+ const tabs = "_tabs_u8lyl_10";
75035
+ const subTabs = "_sub-tabs_u8lyl_34";
75036
+ const tabActionLabel = "_tab-action-label_u8lyl_44";
75037
+ const dialogOverlay = "_dialog-overlay_u8lyl_1";
75038
+ const dialogContent = "_dialog-content_u8lyl_1";
75039
+ const dialogTitle = "_dialog-title_u8lyl_1";
75040
+ const dialogDescription = "_dialog-description_u8lyl_1";
75041
+ const dialogFooter = "_dialog-footer_u8lyl_1";
74997
75042
  const styles$2 = {
75043
+ tabsRoot,
74998
75044
  tabsContainer,
74999
- activeTab
75045
+ tabs,
75046
+ subTabs,
75047
+ tabActionLabel,
75048
+ dialogOverlay,
75049
+ dialogContent,
75050
+ dialogTitle,
75051
+ dialogDescription,
75052
+ dialogFooter
75053
+ };
75054
+ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75055
+ var _a;
75056
+ const tabItems = useTabs({ IDE, onDownloadChatClick });
75057
+ const currentViewSubActions = ((_a = tabItems.find((tab2) => tab2.view === currentView)) == null ? void 0 : _a.subActions) ?? [];
75058
+ const handleClick = useCallback(
75059
+ (view, command, changesView) => {
75060
+ if (command) {
75061
+ getVSCodeAPI().postMessage({ command: "command", id: command });
75062
+ }
75063
+ if (changesView) {
75064
+ setView(view);
75065
+ }
75066
+ },
75067
+ [setView]
75068
+ );
75069
+ const handleSubActionClick = useCallback((action) => {
75070
+ if (action.callback) {
75071
+ action.callback();
75072
+ } else {
75073
+ getVSCodeAPI().postMessage({
75074
+ command: "command",
75075
+ id: action.command,
75076
+ arg: action.arg
75077
+ });
75078
+ }
75079
+ }, []);
75080
+ return /* @__PURE__ */ jsx("div", { className: styles$2.tabsRoot, children: /* @__PURE__ */ jsxs(List, { "aria-label": "cody-webview", className: styles$2.tabsContainer, children: [
75081
+ /* @__PURE__ */ jsx("div", { className: styles$2.tabs, children: tabItems.map(({ Icon: Icon2, view, command, title: title2, changesView }) => /* @__PURE__ */ jsx(Trigger, { value: view, asChild: true, children: /* @__PURE__ */ jsx(
75082
+ TabButton,
75083
+ {
75084
+ Icon: Icon2,
75085
+ view,
75086
+ title: title2,
75087
+ isActive: currentView === view,
75088
+ onClick: () => handleClick(view, command, changesView),
75089
+ "data-testid": `tab-${view}`
75090
+ }
75091
+ ) }, view)) }),
75092
+ /* @__PURE__ */ jsx("div", { className: styles$2.subTabs, children: currentViewSubActions.map((subAction) => /* @__PURE__ */ jsx(Fragment$1, { children: subAction.confirmation ? /* @__PURE__ */ jsx(
75093
+ ActionButtonWithConfirmation,
75094
+ {
75095
+ title: subAction.title,
75096
+ Icon: subAction.Icon,
75097
+ alwaysShowTitle: subAction.alwaysShowTitle,
75098
+ tooltipExtra: subAction.tooltipExtra,
75099
+ dialogTitle: subAction.confirmation.title,
75100
+ dialogDescription: subAction.confirmation.description,
75101
+ dialogConfirmAction: subAction.confirmation.confirmationAction,
75102
+ onConfirm: () => handleSubActionClick(subAction)
75103
+ }
75104
+ ) : /* @__PURE__ */ jsx(
75105
+ TabButton,
75106
+ {
75107
+ Icon: subAction.Icon,
75108
+ title: subAction.title,
75109
+ alwaysShowTitle: subAction.alwaysShowTitle,
75110
+ tooltipExtra: subAction.tooltipExtra,
75111
+ onClick: () => handleSubActionClick(subAction),
75112
+ prominent: true
75113
+ }
75114
+ ) }, subAction.command)) })
75115
+ ] }) });
75116
+ };
75117
+ const ActionButtonWithConfirmation = (props) => {
75118
+ const {
75119
+ title: title2,
75120
+ Icon: Icon2,
75121
+ prominent,
75122
+ alwaysShowTitle,
75123
+ tooltipExtra,
75124
+ onConfirm,
75125
+ dialogTitle: dialogTitle2,
75126
+ dialogConfirmAction,
75127
+ dialogDescription: dialogDescription2
75128
+ } = props;
75129
+ const [state, setState] = useState(false);
75130
+ return /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9, { open: state, onOpenChange: setState, children: [
75131
+ /* @__PURE__ */ jsx(
75132
+ TabButton,
75133
+ {
75134
+ Icon: Icon2,
75135
+ title: title2,
75136
+ alwaysShowTitle,
75137
+ tooltipExtra,
75138
+ prominent,
75139
+ onClick: () => setState(true)
75140
+ }
75141
+ ),
75142
+ /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$602eac185826482c, { children: [
75143
+ /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$c6fdb837b070b4ff, { className: styles$2.dialogOverlay }),
75144
+ /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2, { className: styles$2.dialogContent, "data-cody-ui-dialog": true, children: [
75145
+ /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$f99233281efd08a0, { className: styles$2.dialogTitle, children: dialogTitle2 }),
75146
+ /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$393edc798c47379d, { className: styles$2.dialogDescription, children: dialogDescription2 }),
75147
+ /* @__PURE__ */ jsxs("footer", { className: styles$2.dialogFooter, children: [
75148
+ /* @__PURE__ */ jsx(Button3, { variant: "secondary", onClick: () => setState(false), children: "Cancel" }),
75149
+ /* @__PURE__ */ jsx(
75150
+ Button3,
75151
+ {
75152
+ variant: "default",
75153
+ onClick: () => {
75154
+ onConfirm();
75155
+ setState(false);
75156
+ },
75157
+ children: dialogConfirmAction
75158
+ }
75159
+ )
75160
+ ] })
75161
+ ] })
75162
+ ] })
75163
+ ] });
75000
75164
  };
75001
75165
  const TabButton = forwardRef(
75002
75166
  ({
@@ -75025,7 +75189,7 @@ const TabButton = forwardRef(
75025
75189
  "data-testid": dataTestId,
75026
75190
  children: [
75027
75191
  /* @__PURE__ */ jsx(Icon2, { size: 16, strokeWidth: 1.25, className: "tw-w-8 tw-h-8" }),
75028
- /* @__PURE__ */ jsx("span", { className: alwaysShowTitle ? "" : "tw-hidden md:tw-inline", children: title2 })
75192
+ /* @__PURE__ */ jsx("span", { className: alwaysShowTitle ? "" : styles$2.tabActionLabel, children: title2 })
75029
75193
  ]
75030
75194
  }
75031
75195
  ) }),
@@ -75037,24 +75201,28 @@ const TabButton = forwardRef(
75037
75201
  ] })
75038
75202
  );
75039
75203
  TabButton.displayName = "TabButton";
75040
- const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75041
- var _a;
75204
+ function useTabs(input) {
75205
+ const { IDE, onDownloadChatClick } = input;
75042
75206
  const {
75043
75207
  config: { webviewType, multipleWebviewsEnabled }
75044
75208
  } = useConfig();
75045
- const tabItems = useMemo(
75209
+ return useMemo(
75046
75210
  () => [
75047
75211
  {
75048
75212
  view: View.Chat,
75049
75213
  title: "Chat",
75050
75214
  Icon: MessagesSquare,
75051
- SubIcons: [
75215
+ subActions: [
75052
75216
  {
75053
75217
  title: "New Chat",
75054
75218
  alwaysShowTitle: true,
75055
75219
  tooltipExtra: /* @__PURE__ */ jsx(Fragment, { children: IDE === CodyIDE.VSCode && /* @__PURE__ */ jsx(Kbd, { macOS: "shift+opt+l", linuxAndWindows: "shift+alt+l" }) }),
75056
75220
  Icon: MessageSquarePlus,
75057
- command: IDE === CodyIDE.Web ? "cody.chat.new" : webviewType === "sidebar" || !multipleWebviewsEnabled ? "cody.chat.newPanel" : "cody.chat.newEditorPanel"
75221
+ command: getCreateNewChatCommand({
75222
+ IDE,
75223
+ webviewType,
75224
+ multipleWebviewsEnabled
75225
+ })
75058
75226
  },
75059
75227
  multipleWebviewsEnabled ? {
75060
75228
  title: "Open in Editor",
@@ -75068,7 +75236,7 @@ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75068
75236
  view: View.History,
75069
75237
  title: "History",
75070
75238
  Icon: History,
75071
- SubIcons: [
75239
+ subActions: [
75072
75240
  {
75073
75241
  title: "Export History",
75074
75242
  Icon: Download,
@@ -75079,9 +75247,17 @@ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75079
75247
  title: "Clear Chat History",
75080
75248
  Icon: Trash2,
75081
75249
  command: "cody.chat.history.clear",
75082
- // We don't have a way to request user confirmation in Cody Web
75083
- // (vscode.window.showWarningMessage is not implemented), so bypass
75084
- // confirmation.
75250
+ // Show Cody Chat UI confirmation modal with this message only for
75251
+ // Cody Web. All other IDE either implements their own native confirmation UI
75252
+ // or don't have confirmation UI at all.
75253
+ confirmation: IDE === CodyIDE.Web ? {
75254
+ title: "Are you sure you want to delete all of your chats?",
75255
+ description: "You will not be able to recover them once deleted.",
75256
+ confirmationAction: "Delete all chats"
75257
+ } : void 0,
75258
+ // We don't have a way to request user confirmation in Cody Agent
75259
+ // (vscode.window.showWarningMessage is overridable there), so bypass
75260
+ // confirmation in cody agent and use confirmation UI above.
75085
75261
  arg: IDE === CodyIDE.VSCode ? void 0 : "clear-all-no-confirm"
75086
75262
  }
75087
75263
  ].filter(isDefined),
@@ -75109,62 +75285,7 @@ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75109
75285
  ].filter(isDefined),
75110
75286
  [IDE, webviewType, onDownloadChatClick, multipleWebviewsEnabled]
75111
75287
  );
75112
- const currentViewSubIcons = (_a = tabItems.find((tab2) => tab2.view === currentView)) == null ? void 0 : _a.SubIcons;
75113
- const handleClick = useCallback(
75114
- (view, command, changesView) => {
75115
- if (command) {
75116
- getVSCodeAPI().postMessage({ command: "command", id: command });
75117
- }
75118
- if (changesView) {
75119
- setView(view);
75120
- }
75121
- },
75122
- [setView]
75123
- );
75124
- return /* @__PURE__ */ jsxs(
75125
- List,
75126
- {
75127
- "aria-label": "cody-webview",
75128
- className: clsx$1(
75129
- "tw-flex tw-justify-between tw-sticky tw-top-0 tw-z-50 tw-w-full tw-border-b tw-border-border tw-pl-[15px] tw-pr-4",
75130
- styles$2.tabsContainer
75131
- ),
75132
- children: [
75133
- /* @__PURE__ */ jsx("div", { className: "tw-flex tw-gap-1 [&_>_*]:tw-flex-shrink-0", children: tabItems.map(({ Icon: Icon2, view, command, title: title2, changesView }) => /* @__PURE__ */ jsx(Trigger, { value: view, asChild: true, children: /* @__PURE__ */ jsx(
75134
- TabButton,
75135
- {
75136
- Icon: Icon2,
75137
- view,
75138
- title: title2,
75139
- command,
75140
- isActive: currentView === view,
75141
- onClick: () => handleClick(view, command, changesView),
75142
- "data-testid": `tab-${view}`
75143
- }
75144
- ) }, view)) }),
75145
- /* @__PURE__ */ jsx("div", { className: "tw-flex tw-gap-4 [&_>_*]:tw-flex-shrink-0", children: currentViewSubIcons == null ? void 0 : currentViewSubIcons.map(
75146
- ({ Icon: Icon2, command, title: title2, alwaysShowTitle, tooltipExtra, arg, callback }) => /* @__PURE__ */ jsx(
75147
- TabButton,
75148
- {
75149
- Icon: Icon2,
75150
- title: title2,
75151
- alwaysShowTitle,
75152
- tooltipExtra,
75153
- command,
75154
- onClick: () => callback ? callback() : getVSCodeAPI().postMessage({
75155
- command: "command",
75156
- id: command,
75157
- arg
75158
- }),
75159
- prominent: true
75160
- },
75161
- command
75162
- )
75163
- ) })
75164
- ]
75165
- }
75166
- );
75167
- };
75288
+ }
75168
75289
  const CodyPanel = ({
75169
75290
  view,
75170
75291
  setView,
@@ -75228,7 +75349,16 @@ const CodyPanel = ({
75228
75349
  setView
75229
75350
  }
75230
75351
  ),
75231
- view === View.History && /* @__PURE__ */ jsx(HistoryTab, { userHistory }),
75352
+ view === View.History && /* @__PURE__ */ jsx(
75353
+ HistoryTab,
75354
+ {
75355
+ IDE: config.agentIDE || CodyIDE.VSCode,
75356
+ setView,
75357
+ webviewType: config.webviewType,
75358
+ multipleWebviewsEnabled: config.multipleWebviewsEnabled,
75359
+ userHistory
75360
+ }
75361
+ ),
75232
75362
  view === View.Prompts && /* @__PURE__ */ jsx(PromptsTab, { setView }),
75233
75363
  view === View.Account && /* @__PURE__ */ jsx(AccountTab, {}),
75234
75364
  view === View.Settings && /* @__PURE__ */ jsx(SettingsTab, {})
@@ -75345,10 +75475,17 @@ async function createAgentClient({
75345
75475
  }
75346
75476
  const GLOBAL_MESSAGE_TYPES = ["rpc/response"];
75347
75477
  function useCodyWebAgent(input) {
75348
- const { serverEndpoint, accessToken, telemetryClientName, customHeaders, createAgentWorker } = input;
75478
+ const {
75479
+ serverEndpoint,
75480
+ accessToken,
75481
+ telemetryClientName,
75482
+ customHeaders,
75483
+ initialContext,
75484
+ createAgentWorker
75485
+ } = input;
75349
75486
  const activeWebviewPanelIDRef = useRef("");
75350
75487
  const [client, setClient] = useState(null);
75351
- useEffect(() => {
75488
+ useEffectOnce(() => {
75352
75489
  createAgentClient({
75353
75490
  customHeaders,
75354
75491
  telemetryClientName,
@@ -75361,27 +75498,38 @@ function useCodyWebAgent(input) {
75361
75498
  setClient(() => error2);
75362
75499
  });
75363
75500
  }, [accessToken, serverEndpoint, createAgentWorker, customHeaders, telemetryClientName]);
75364
- const createNewChat = useCallback(async (agent) => {
75365
- if (!agent || isErrorLike(agent)) {
75366
- return;
75367
- }
75368
- const { panelId, chatId } = await agent.rpc.sendRequest("chat/web/new", null);
75369
- activeWebviewPanelIDRef.current = panelId;
75370
- await agent.rpc.sendRequest("webview/receiveMessage", {
75371
- id: activeWebviewPanelIDRef.current,
75372
- message: { chatID: chatId, command: "restoreHistory" }
75373
- });
75374
- }, []);
75501
+ const createNewChat = useCallback(
75502
+ async (agent) => {
75503
+ if (!agent || isErrorLike(agent)) {
75504
+ return;
75505
+ }
75506
+ const { panelId, chatId } = await agent.rpc.sendRequest("chat/web/new", null);
75507
+ activeWebviewPanelIDRef.current = panelId;
75508
+ await agent.rpc.sendRequest("webview/receiveMessage", {
75509
+ id: activeWebviewPanelIDRef.current,
75510
+ message: { chatID: chatId, command: "restoreHistory" }
75511
+ });
75512
+ if (initialContext == null ? void 0 : initialContext.repository) {
75513
+ void agent.rpc.sendRequest("webview/receiveMessage", {
75514
+ id: activeWebviewPanelIDRef.current,
75515
+ message: {
75516
+ command: "context/choose-remote-search-repo",
75517
+ explicitRepos: [initialContext.repository]
75518
+ }
75519
+ });
75520
+ }
75521
+ },
75522
+ [initialContext]
75523
+ );
75524
+ const isInitRef = useRef(false);
75375
75525
  const vscodeAPI = useVSCodeAPI({ activeWebviewPanelIDRef, createNewChat, client });
75376
75526
  useEffect(() => {
75527
+ if (isInitRef.current || !client || isErrorLike(client)) {
75528
+ return;
75529
+ }
75377
75530
  void createNewChat(client);
75531
+ isInitRef.current = true;
75378
75532
  }, [client, createNewChat]);
75379
- useLayoutEffect(() => {
75380
- if (client && !isErrorLike(client) && vscodeAPI) {
75381
- vscodeAPI.postMessage({ command: "ready" });
75382
- vscodeAPI.postMessage({ command: "initialized" });
75383
- }
75384
- }, [vscodeAPI, client]);
75385
75533
  return { client, vscodeAPI };
75386
75534
  }
75387
75535
  function useVSCodeAPI(input) {
@@ -75440,8 +75588,19 @@ function useVSCodeAPI(input) {
75440
75588
  return vscodeAPI;
75441
75589
  }, [client, createNewChat, activeWebviewPanelIDRef]);
75442
75590
  }
75443
- const root$1 = "_root_1dr1n_2";
75444
- const container = "_container_1dr1n_10";
75591
+ function useEffectOnce(effect, deps) {
75592
+ const isInitRef = useRef(false);
75593
+ useEffect(() => {
75594
+ if (isInitRef.current) {
75595
+ return;
75596
+ }
75597
+ const result = effect();
75598
+ isInitRef.current = true;
75599
+ return result;
75600
+ }, deps);
75601
+ }
75602
+ const root$1 = "_root_maej5_2";
75603
+ const container = "_container_maej5_10";
75445
75604
  const styles$1 = {
75446
75605
  root: root$1,
75447
75606
  container
@@ -75688,7 +75847,7 @@ const CodyWebPanel = (props) => {
75688
75847
  title: fileURL,
75689
75848
  uri: URI.file(`${repository.name}/${fileURL}/`),
75690
75849
  providerUri: REMOTE_DIRECTORY_PROVIDER_URI,
75691
- description: " ",
75850
+ description: "Current directory",
75692
75851
  source: ContextItemSource.Initial,
75693
75852
  mention: {
75694
75853
  data: {
@@ -75696,7 +75855,7 @@ const CodyWebPanel = (props) => {
75696
75855
  repoID: repository.id,
75697
75856
  directoryPath: `${fileURL}/`
75698
75857
  },
75699
- description: " "
75858
+ description: fileURL
75700
75859
  }
75701
75860
  });
75702
75861
  } else {