@sourcegraph/cody-web 0.7.1 → 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-DJC99jis.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
  });
@@ -20477,26 +20489,6 @@ html$4`
20477
20489
  ></slot>
20478
20490
  </span>
20479
20491
  `;
20480
- /*! *****************************************************************************
20481
- Copyright (c) Microsoft Corporation.
20482
-
20483
- Permission to use, copy, modify, and/or distribute this software for any
20484
- purpose with or without fee is hereby granted.
20485
-
20486
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
20487
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20488
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
20489
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
20490
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
20491
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20492
- PERFORMANCE OF THIS SOFTWARE.
20493
- ***************************************************************************** */
20494
- function __decorate$1(decorators, target, key, desc) {
20495
- var c2 = arguments.length, r2 = c2 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d2;
20496
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
20497
- 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;
20498
- return c2 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
20499
- }
20500
20492
  const metadataByTarget = /* @__PURE__ */ new Map();
20501
20493
  if (!("metadata" in Reflect)) {
20502
20494
  Reflect.metadata = function(key, value) {
@@ -21637,10 +21629,10 @@ class FoundationElement extends FASTElement {
21637
21629
  } : this, elementDefinition, overrideDefinition);
21638
21630
  }
21639
21631
  }
21640
- __decorate$1([
21632
+ __decorate([
21641
21633
  observable
21642
21634
  ], FoundationElement.prototype, "template", void 0);
21643
- __decorate$1([
21635
+ __decorate([
21644
21636
  observable
21645
21637
  ], FoundationElement.prototype, "styles", void 0);
21646
21638
  function resolveOption(option, context2, definition2) {
@@ -21910,61 +21902,61 @@ const anchorTemplate = (context2, definition2) => html$4`
21910
21902
  `;
21911
21903
  class ARIAGlobalStatesAndProperties {
21912
21904
  }
21913
- __decorate$1([
21905
+ __decorate([
21914
21906
  attr({ attribute: "aria-atomic" })
21915
21907
  ], ARIAGlobalStatesAndProperties.prototype, "ariaAtomic", void 0);
21916
- __decorate$1([
21908
+ __decorate([
21917
21909
  attr({ attribute: "aria-busy" })
21918
21910
  ], ARIAGlobalStatesAndProperties.prototype, "ariaBusy", void 0);
21919
- __decorate$1([
21911
+ __decorate([
21920
21912
  attr({ attribute: "aria-controls" })
21921
21913
  ], ARIAGlobalStatesAndProperties.prototype, "ariaControls", void 0);
21922
- __decorate$1([
21914
+ __decorate([
21923
21915
  attr({ attribute: "aria-current" })
21924
21916
  ], ARIAGlobalStatesAndProperties.prototype, "ariaCurrent", void 0);
21925
- __decorate$1([
21917
+ __decorate([
21926
21918
  attr({ attribute: "aria-describedby" })
21927
21919
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDescribedby", void 0);
21928
- __decorate$1([
21920
+ __decorate([
21929
21921
  attr({ attribute: "aria-details" })
21930
21922
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDetails", void 0);
21931
- __decorate$1([
21923
+ __decorate([
21932
21924
  attr({ attribute: "aria-disabled" })
21933
21925
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDisabled", void 0);
21934
- __decorate$1([
21926
+ __decorate([
21935
21927
  attr({ attribute: "aria-errormessage" })
21936
21928
  ], ARIAGlobalStatesAndProperties.prototype, "ariaErrormessage", void 0);
21937
- __decorate$1([
21929
+ __decorate([
21938
21930
  attr({ attribute: "aria-flowto" })
21939
21931
  ], ARIAGlobalStatesAndProperties.prototype, "ariaFlowto", void 0);
21940
- __decorate$1([
21932
+ __decorate([
21941
21933
  attr({ attribute: "aria-haspopup" })
21942
21934
  ], ARIAGlobalStatesAndProperties.prototype, "ariaHaspopup", void 0);
21943
- __decorate$1([
21935
+ __decorate([
21944
21936
  attr({ attribute: "aria-hidden" })
21945
21937
  ], ARIAGlobalStatesAndProperties.prototype, "ariaHidden", void 0);
21946
- __decorate$1([
21938
+ __decorate([
21947
21939
  attr({ attribute: "aria-invalid" })
21948
21940
  ], ARIAGlobalStatesAndProperties.prototype, "ariaInvalid", void 0);
21949
- __decorate$1([
21941
+ __decorate([
21950
21942
  attr({ attribute: "aria-keyshortcuts" })
21951
21943
  ], ARIAGlobalStatesAndProperties.prototype, "ariaKeyshortcuts", void 0);
21952
- __decorate$1([
21944
+ __decorate([
21953
21945
  attr({ attribute: "aria-label" })
21954
21946
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLabel", void 0);
21955
- __decorate$1([
21947
+ __decorate([
21956
21948
  attr({ attribute: "aria-labelledby" })
21957
21949
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLabelledby", void 0);
21958
- __decorate$1([
21950
+ __decorate([
21959
21951
  attr({ attribute: "aria-live" })
21960
21952
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLive", void 0);
21961
- __decorate$1([
21953
+ __decorate([
21962
21954
  attr({ attribute: "aria-owns" })
21963
21955
  ], ARIAGlobalStatesAndProperties.prototype, "ariaOwns", void 0);
21964
- __decorate$1([
21956
+ __decorate([
21965
21957
  attr({ attribute: "aria-relevant" })
21966
21958
  ], ARIAGlobalStatesAndProperties.prototype, "ariaRelevant", void 0);
21967
- __decorate$1([
21959
+ __decorate([
21968
21960
  attr({ attribute: "aria-roledescription" })
21969
21961
  ], ARIAGlobalStatesAndProperties.prototype, "ariaRoledescription", void 0);
21970
21962
  class Anchor extends FoundationElement {
@@ -21988,36 +21980,36 @@ class Anchor extends FoundationElement {
21988
21980
  this.handleUnsupportedDelegatesFocus();
21989
21981
  }
21990
21982
  }
21991
- __decorate$1([
21983
+ __decorate([
21992
21984
  attr
21993
21985
  ], Anchor.prototype, "download", void 0);
21994
- __decorate$1([
21986
+ __decorate([
21995
21987
  attr
21996
21988
  ], Anchor.prototype, "href", void 0);
21997
- __decorate$1([
21989
+ __decorate([
21998
21990
  attr
21999
21991
  ], Anchor.prototype, "hreflang", void 0);
22000
- __decorate$1([
21992
+ __decorate([
22001
21993
  attr
22002
21994
  ], Anchor.prototype, "ping", void 0);
22003
- __decorate$1([
21995
+ __decorate([
22004
21996
  attr
22005
21997
  ], Anchor.prototype, "referrerpolicy", void 0);
22006
- __decorate$1([
21998
+ __decorate([
22007
21999
  attr
22008
22000
  ], Anchor.prototype, "rel", void 0);
22009
- __decorate$1([
22001
+ __decorate([
22010
22002
  attr
22011
22003
  ], Anchor.prototype, "target", void 0);
22012
- __decorate$1([
22004
+ __decorate([
22013
22005
  attr
22014
22006
  ], Anchor.prototype, "type", void 0);
22015
- __decorate$1([
22007
+ __decorate([
22016
22008
  observable
22017
22009
  ], Anchor.prototype, "defaultSlottedContent", void 0);
22018
22010
  class DelegatesARIALink {
22019
22011
  }
22020
- __decorate$1([
22012
+ __decorate([
22021
22013
  attr({ attribute: "aria-expanded" })
22022
22014
  ], DelegatesARIALink.prototype, "ariaExpanded", void 0);
22023
22015
  applyMixins(DelegatesARIALink, ARIAGlobalStatesAndProperties);
@@ -22052,13 +22044,13 @@ let Badge$2 = class Badge extends FoundationElement {
22052
22044
  };
22053
22045
  }
22054
22046
  };
22055
- __decorate$1([
22047
+ __decorate([
22056
22048
  attr({ attribute: "fill" })
22057
22049
  ], Badge$2.prototype, "fill", void 0);
22058
- __decorate$1([
22050
+ __decorate([
22059
22051
  attr({ attribute: "color" })
22060
22052
  ], Badge$2.prototype, "color", void 0);
22061
- __decorate$1([
22053
+ __decorate([
22062
22054
  attr({ mode: "boolean" })
22063
22055
  ], Badge$2.prototype, "circular", void 0);
22064
22056
  const buttonTemplate = (context2, definition2) => html$4`
@@ -22598,39 +22590,39 @@ let Button$2 = class Button extends FormAssociatedButton {
22598
22590
  }
22599
22591
  }
22600
22592
  };
22601
- __decorate$1([
22593
+ __decorate([
22602
22594
  attr({ mode: "boolean" })
22603
22595
  ], Button$2.prototype, "autofocus", void 0);
22604
- __decorate$1([
22596
+ __decorate([
22605
22597
  attr({ attribute: "form" })
22606
22598
  ], Button$2.prototype, "formId", void 0);
22607
- __decorate$1([
22599
+ __decorate([
22608
22600
  attr
22609
22601
  ], Button$2.prototype, "formaction", void 0);
22610
- __decorate$1([
22602
+ __decorate([
22611
22603
  attr
22612
22604
  ], Button$2.prototype, "formenctype", void 0);
22613
- __decorate$1([
22605
+ __decorate([
22614
22606
  attr
22615
22607
  ], Button$2.prototype, "formmethod", void 0);
22616
- __decorate$1([
22608
+ __decorate([
22617
22609
  attr({ mode: "boolean" })
22618
22610
  ], Button$2.prototype, "formnovalidate", void 0);
22619
- __decorate$1([
22611
+ __decorate([
22620
22612
  attr
22621
22613
  ], Button$2.prototype, "formtarget", void 0);
22622
- __decorate$1([
22614
+ __decorate([
22623
22615
  attr
22624
22616
  ], Button$2.prototype, "type", void 0);
22625
- __decorate$1([
22617
+ __decorate([
22626
22618
  observable
22627
22619
  ], Button$2.prototype, "defaultSlottedContent", void 0);
22628
22620
  class DelegatesARIAButton {
22629
22621
  }
22630
- __decorate$1([
22622
+ __decorate([
22631
22623
  attr({ attribute: "aria-expanded" })
22632
22624
  ], DelegatesARIAButton.prototype, "ariaExpanded", void 0);
22633
- __decorate$1([
22625
+ __decorate([
22634
22626
  attr({ attribute: "aria-pressed" })
22635
22627
  ], DelegatesARIAButton.prototype, "ariaPressed", void 0);
22636
22628
  applyMixins(DelegatesARIAButton, ARIAGlobalStatesAndProperties);
@@ -22764,40 +22756,40 @@ let DataGridRow$1 = class DataGridRow extends FoundationElement {
22764
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;
22765
22757
  }
22766
22758
  };
22767
- __decorate$1([
22759
+ __decorate([
22768
22760
  attr({ attribute: "grid-template-columns" })
22769
22761
  ], DataGridRow$1.prototype, "gridTemplateColumns", void 0);
22770
- __decorate$1([
22762
+ __decorate([
22771
22763
  attr({ attribute: "row-type" })
22772
22764
  ], DataGridRow$1.prototype, "rowType", void 0);
22773
- __decorate$1([
22765
+ __decorate([
22774
22766
  observable
22775
22767
  ], DataGridRow$1.prototype, "rowData", void 0);
22776
- __decorate$1([
22768
+ __decorate([
22777
22769
  observable
22778
22770
  ], DataGridRow$1.prototype, "columnDefinitions", void 0);
22779
- __decorate$1([
22771
+ __decorate([
22780
22772
  observable
22781
22773
  ], DataGridRow$1.prototype, "cellItemTemplate", void 0);
22782
- __decorate$1([
22774
+ __decorate([
22783
22775
  observable
22784
22776
  ], DataGridRow$1.prototype, "headerCellItemTemplate", void 0);
22785
- __decorate$1([
22777
+ __decorate([
22786
22778
  observable
22787
22779
  ], DataGridRow$1.prototype, "rowIndex", void 0);
22788
- __decorate$1([
22780
+ __decorate([
22789
22781
  observable
22790
22782
  ], DataGridRow$1.prototype, "isActiveRow", void 0);
22791
- __decorate$1([
22783
+ __decorate([
22792
22784
  observable
22793
22785
  ], DataGridRow$1.prototype, "activeCellItemTemplate", void 0);
22794
- __decorate$1([
22786
+ __decorate([
22795
22787
  observable
22796
22788
  ], DataGridRow$1.prototype, "defaultCellItemTemplate", void 0);
22797
- __decorate$1([
22789
+ __decorate([
22798
22790
  observable
22799
22791
  ], DataGridRow$1.prototype, "defaultHeaderCellItemTemplate", void 0);
22800
- __decorate$1([
22792
+ __decorate([
22801
22793
  observable
22802
22794
  ], DataGridRow$1.prototype, "cellElements", void 0);
22803
22795
  function createRowItemTemplate(context2) {
@@ -23143,43 +23135,43 @@ DataGrid$1.generateColumns = (row2) => {
23143
23135
  };
23144
23136
  });
23145
23137
  };
23146
- __decorate$1([
23138
+ __decorate([
23147
23139
  attr({ attribute: "no-tabbing", mode: "boolean" })
23148
23140
  ], DataGrid$1.prototype, "noTabbing", void 0);
23149
- __decorate$1([
23141
+ __decorate([
23150
23142
  attr({ attribute: "generate-header" })
23151
23143
  ], DataGrid$1.prototype, "generateHeader", void 0);
23152
- __decorate$1([
23144
+ __decorate([
23153
23145
  attr({ attribute: "grid-template-columns" })
23154
23146
  ], DataGrid$1.prototype, "gridTemplateColumns", void 0);
23155
- __decorate$1([
23147
+ __decorate([
23156
23148
  observable
23157
23149
  ], DataGrid$1.prototype, "rowsData", void 0);
23158
- __decorate$1([
23150
+ __decorate([
23159
23151
  observable
23160
23152
  ], DataGrid$1.prototype, "columnDefinitions", void 0);
23161
- __decorate$1([
23153
+ __decorate([
23162
23154
  observable
23163
23155
  ], DataGrid$1.prototype, "rowItemTemplate", void 0);
23164
- __decorate$1([
23156
+ __decorate([
23165
23157
  observable
23166
23158
  ], DataGrid$1.prototype, "cellItemTemplate", void 0);
23167
- __decorate$1([
23159
+ __decorate([
23168
23160
  observable
23169
23161
  ], DataGrid$1.prototype, "headerCellItemTemplate", void 0);
23170
- __decorate$1([
23162
+ __decorate([
23171
23163
  observable
23172
23164
  ], DataGrid$1.prototype, "focusRowIndex", void 0);
23173
- __decorate$1([
23165
+ __decorate([
23174
23166
  observable
23175
23167
  ], DataGrid$1.prototype, "focusColumnIndex", void 0);
23176
- __decorate$1([
23168
+ __decorate([
23177
23169
  observable
23178
23170
  ], DataGrid$1.prototype, "defaultRowItemTemplate", void 0);
23179
- __decorate$1([
23171
+ __decorate([
23180
23172
  observable
23181
23173
  ], DataGrid$1.prototype, "rowElementTag", void 0);
23182
- __decorate$1([
23174
+ __decorate([
23183
23175
  observable
23184
23176
  ], DataGrid$1.prototype, "rowElements", void 0);
23185
23177
  const defaultCellContentsTemplate = html$4`
@@ -23342,16 +23334,16 @@ let DataGridCell$1 = class DataGridCell extends FoundationElement {
23342
23334
  }
23343
23335
  }
23344
23336
  };
23345
- __decorate$1([
23337
+ __decorate([
23346
23338
  attr({ attribute: "cell-type" })
23347
23339
  ], DataGridCell$1.prototype, "cellType", void 0);
23348
- __decorate$1([
23340
+ __decorate([
23349
23341
  attr({ attribute: "grid-column" })
23350
23342
  ], DataGridCell$1.prototype, "gridColumn", void 0);
23351
- __decorate$1([
23343
+ __decorate([
23352
23344
  observable
23353
23345
  ], DataGridCell$1.prototype, "rowData", void 0);
23354
- __decorate$1([
23346
+ __decorate([
23355
23347
  observable
23356
23348
  ], DataGridCell$1.prototype, "columnDefinition", void 0);
23357
23349
  function createCellItemTemplate(context2) {
@@ -23476,13 +23468,13 @@ let Checkbox$1 = class Checkbox extends FormAssociatedCheckbox {
23476
23468
  }
23477
23469
  }
23478
23470
  };
23479
- __decorate$1([
23471
+ __decorate([
23480
23472
  attr({ attribute: "readonly", mode: "boolean" })
23481
23473
  ], Checkbox$1.prototype, "readOnly", void 0);
23482
- __decorate$1([
23474
+ __decorate([
23483
23475
  observable
23484
23476
  ], Checkbox$1.prototype, "defaultSlottedNodes", void 0);
23485
- __decorate$1([
23477
+ __decorate([
23486
23478
  observable
23487
23479
  ], Checkbox$1.prototype, "indeterminate", void 0);
23488
23480
  function isListboxOption(el2) {
@@ -23599,39 +23591,39 @@ class ListboxOption extends FoundationElement {
23599
23591
  return this.proxy ? this.proxy.form : null;
23600
23592
  }
23601
23593
  }
23602
- __decorate$1([
23594
+ __decorate([
23603
23595
  observable
23604
23596
  ], ListboxOption.prototype, "checked", void 0);
23605
- __decorate$1([
23597
+ __decorate([
23606
23598
  observable
23607
23599
  ], ListboxOption.prototype, "content", void 0);
23608
- __decorate$1([
23600
+ __decorate([
23609
23601
  observable
23610
23602
  ], ListboxOption.prototype, "defaultSelected", void 0);
23611
- __decorate$1([
23603
+ __decorate([
23612
23604
  attr({ mode: "boolean" })
23613
23605
  ], ListboxOption.prototype, "disabled", void 0);
23614
- __decorate$1([
23606
+ __decorate([
23615
23607
  attr({ attribute: "selected", mode: "boolean" })
23616
23608
  ], ListboxOption.prototype, "selectedAttribute", void 0);
23617
- __decorate$1([
23609
+ __decorate([
23618
23610
  observable
23619
23611
  ], ListboxOption.prototype, "selected", void 0);
23620
- __decorate$1([
23612
+ __decorate([
23621
23613
  attr({ attribute: "value", mode: "fromView" })
23622
23614
  ], ListboxOption.prototype, "initialValue", void 0);
23623
23615
  class DelegatesARIAListboxOption {
23624
23616
  }
23625
- __decorate$1([
23617
+ __decorate([
23626
23618
  observable
23627
23619
  ], DelegatesARIAListboxOption.prototype, "ariaChecked", void 0);
23628
- __decorate$1([
23620
+ __decorate([
23629
23621
  observable
23630
23622
  ], DelegatesARIAListboxOption.prototype, "ariaPosInSet", void 0);
23631
- __decorate$1([
23623
+ __decorate([
23632
23624
  observable
23633
23625
  ], DelegatesARIAListboxOption.prototype, "ariaSelected", void 0);
23634
- __decorate$1([
23626
+ __decorate([
23635
23627
  observable
23636
23628
  ], DelegatesARIAListboxOption.prototype, "ariaSetSize", void 0);
23637
23629
  applyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);
@@ -24048,33 +24040,33 @@ class Listbox extends FoundationElement {
24048
24040
  }
24049
24041
  Listbox.slottedOptionFilter = (n2) => isListboxOption(n2) && !n2.hidden;
24050
24042
  Listbox.TYPE_AHEAD_TIMEOUT_MS = 1e3;
24051
- __decorate$1([
24043
+ __decorate([
24052
24044
  attr({ mode: "boolean" })
24053
24045
  ], Listbox.prototype, "disabled", void 0);
24054
- __decorate$1([
24046
+ __decorate([
24055
24047
  observable
24056
24048
  ], Listbox.prototype, "selectedIndex", void 0);
24057
- __decorate$1([
24049
+ __decorate([
24058
24050
  observable
24059
24051
  ], Listbox.prototype, "selectedOptions", void 0);
24060
- __decorate$1([
24052
+ __decorate([
24061
24053
  observable
24062
24054
  ], Listbox.prototype, "slottedOptions", void 0);
24063
- __decorate$1([
24055
+ __decorate([
24064
24056
  observable
24065
24057
  ], Listbox.prototype, "typeaheadBuffer", void 0);
24066
24058
  class DelegatesARIAListbox {
24067
24059
  }
24068
- __decorate$1([
24060
+ __decorate([
24069
24061
  observable
24070
24062
  ], DelegatesARIAListbox.prototype, "ariaActiveDescendant", void 0);
24071
- __decorate$1([
24063
+ __decorate([
24072
24064
  observable
24073
24065
  ], DelegatesARIAListbox.prototype, "ariaDisabled", void 0);
24074
- __decorate$1([
24066
+ __decorate([
24075
24067
  observable
24076
24068
  ], DelegatesARIAListbox.prototype, "ariaExpanded", void 0);
24077
- __decorate$1([
24069
+ __decorate([
24078
24070
  observable
24079
24071
  ], DelegatesARIAListbox.prototype, "ariaMultiSelectable", void 0);
24080
24072
  applyMixins(DelegatesARIAListbox, ARIAGlobalStatesAndProperties);
@@ -24192,7 +24184,7 @@ class StyleElementStyleSheetTarget {
24192
24184
  }
24193
24185
  }
24194
24186
  }
24195
- __decorate$1([
24187
+ __decorate([
24196
24188
  observable
24197
24189
  ], StyleElementStyleSheetTarget.prototype, "target", void 0);
24198
24190
  class ElementStyleSheetTarget {
@@ -24761,7 +24753,7 @@ class DesignTokenNode {
24761
24753
  }
24762
24754
  }
24763
24755
  DesignTokenNode.cssCustomPropertyReflector = new CustomPropertyReflector();
24764
- __decorate$1([
24756
+ __decorate([
24765
24757
  observable
24766
24758
  ], DesignTokenNode.prototype, "children", void 0);
24767
24759
  function create$3(nameOrConfig) {
@@ -25038,10 +25030,10 @@ let Divider$1 = class Divider extends FoundationElement {
25038
25030
  this.orientation = Orientation.horizontal;
25039
25031
  }
25040
25032
  };
25041
- __decorate$1([
25033
+ __decorate([
25042
25034
  attr
25043
25035
  ], Divider$1.prototype, "role", void 0);
25044
- __decorate$1([
25036
+ __decorate([
25045
25037
  attr
25046
25038
  ], Divider$1.prototype, "orientation", void 0);
25047
25039
  const listboxOptionTemplate = (context2, definition2) => html$4`
@@ -25466,13 +25458,13 @@ class ListboxElement extends Listbox {
25466
25458
  }
25467
25459
  }
25468
25460
  }
25469
- __decorate$1([
25461
+ __decorate([
25470
25462
  observable
25471
25463
  ], ListboxElement.prototype, "activeIndex", void 0);
25472
- __decorate$1([
25464
+ __decorate([
25473
25465
  attr({ mode: "boolean" })
25474
25466
  ], ListboxElement.prototype, "multiple", void 0);
25475
- __decorate$1([
25467
+ __decorate([
25476
25468
  attr({ converter: nullableNumberConverter })
25477
25469
  ], ListboxElement.prototype, "size", void 0);
25478
25470
  class _TextField extends FoundationElement {
@@ -25613,37 +25605,37 @@ let TextField$1 = class TextField extends FormAssociatedTextField {
25613
25605
  super.validate(this.control);
25614
25606
  }
25615
25607
  };
25616
- __decorate$1([
25608
+ __decorate([
25617
25609
  attr({ attribute: "readonly", mode: "boolean" })
25618
25610
  ], TextField$1.prototype, "readOnly", void 0);
25619
- __decorate$1([
25611
+ __decorate([
25620
25612
  attr({ mode: "boolean" })
25621
25613
  ], TextField$1.prototype, "autofocus", void 0);
25622
- __decorate$1([
25614
+ __decorate([
25623
25615
  attr
25624
25616
  ], TextField$1.prototype, "placeholder", void 0);
25625
- __decorate$1([
25617
+ __decorate([
25626
25618
  attr
25627
25619
  ], TextField$1.prototype, "type", void 0);
25628
- __decorate$1([
25620
+ __decorate([
25629
25621
  attr
25630
25622
  ], TextField$1.prototype, "list", void 0);
25631
- __decorate$1([
25623
+ __decorate([
25632
25624
  attr({ converter: nullableNumberConverter })
25633
25625
  ], TextField$1.prototype, "maxlength", void 0);
25634
- __decorate$1([
25626
+ __decorate([
25635
25627
  attr({ converter: nullableNumberConverter })
25636
25628
  ], TextField$1.prototype, "minlength", void 0);
25637
- __decorate$1([
25629
+ __decorate([
25638
25630
  attr
25639
25631
  ], TextField$1.prototype, "pattern", void 0);
25640
- __decorate$1([
25632
+ __decorate([
25641
25633
  attr({ converter: nullableNumberConverter })
25642
25634
  ], TextField$1.prototype, "size", void 0);
25643
- __decorate$1([
25635
+ __decorate([
25644
25636
  attr({ mode: "boolean" })
25645
25637
  ], TextField$1.prototype, "spellcheck", void 0);
25646
- __decorate$1([
25638
+ __decorate([
25647
25639
  observable
25648
25640
  ], TextField$1.prototype, "defaultSlottedNodes", void 0);
25649
25641
  class DelegatesARIATextbox {
@@ -25724,19 +25716,19 @@ class BaseProgress extends FoundationElement {
25724
25716
  this.percentComplete = range2 === 0 ? 0 : Math.fround((value - min2) / range2 * 100);
25725
25717
  }
25726
25718
  }
25727
- __decorate$1([
25719
+ __decorate([
25728
25720
  attr({ converter: nullableNumberConverter })
25729
25721
  ], BaseProgress.prototype, "value", void 0);
25730
- __decorate$1([
25722
+ __decorate([
25731
25723
  attr({ converter: nullableNumberConverter })
25732
25724
  ], BaseProgress.prototype, "min", void 0);
25733
- __decorate$1([
25725
+ __decorate([
25734
25726
  attr({ converter: nullableNumberConverter })
25735
25727
  ], BaseProgress.prototype, "max", void 0);
25736
- __decorate$1([
25728
+ __decorate([
25737
25729
  attr({ mode: "boolean" })
25738
25730
  ], BaseProgress.prototype, "paused", void 0);
25739
- __decorate$1([
25731
+ __decorate([
25740
25732
  observable
25741
25733
  ], BaseProgress.prototype, "percentComplete", void 0);
25742
25734
  const radioGroupTemplate = (context2, definition2) => html$4`
@@ -26071,25 +26063,25 @@ let RadioGroup$1 = class RadioGroup extends FoundationElement {
26071
26063
  }
26072
26064
  }
26073
26065
  };
26074
- __decorate$1([
26066
+ __decorate([
26075
26067
  attr({ attribute: "readonly", mode: "boolean" })
26076
26068
  ], RadioGroup$1.prototype, "readOnly", void 0);
26077
- __decorate$1([
26069
+ __decorate([
26078
26070
  attr({ attribute: "disabled", mode: "boolean" })
26079
26071
  ], RadioGroup$1.prototype, "disabled", void 0);
26080
- __decorate$1([
26072
+ __decorate([
26081
26073
  attr
26082
26074
  ], RadioGroup$1.prototype, "name", void 0);
26083
- __decorate$1([
26075
+ __decorate([
26084
26076
  attr
26085
26077
  ], RadioGroup$1.prototype, "value", void 0);
26086
- __decorate$1([
26078
+ __decorate([
26087
26079
  attr
26088
26080
  ], RadioGroup$1.prototype, "orientation", void 0);
26089
- __decorate$1([
26081
+ __decorate([
26090
26082
  observable
26091
26083
  ], RadioGroup$1.prototype, "childItems", void 0);
26092
- __decorate$1([
26084
+ __decorate([
26093
26085
  observable
26094
26086
  ], RadioGroup$1.prototype, "slottedRadioButtons", void 0);
26095
26087
  const radioTemplate = (context2, definition2) => html$4`
@@ -26191,13 +26183,13 @@ let Radio$1 = class Radio extends FormAssociatedRadio {
26191
26183
  }
26192
26184
  }
26193
26185
  };
26194
- __decorate$1([
26186
+ __decorate([
26195
26187
  attr({ attribute: "readonly", mode: "boolean" })
26196
26188
  ], Radio$1.prototype, "readOnly", void 0);
26197
- __decorate$1([
26189
+ __decorate([
26198
26190
  observable
26199
26191
  ], Radio$1.prototype, "name", void 0);
26200
- __decorate$1([
26192
+ __decorate([
26201
26193
  observable
26202
26194
  ], Radio$1.prototype, "defaultSlottedNodes", void 0);
26203
26195
  function whitespaceFilter(value, index2, array) {
@@ -26610,27 +26602,27 @@ class Select extends FormAssociatedSelect {
26610
26602
  }
26611
26603
  }
26612
26604
  }
26613
- __decorate$1([
26605
+ __decorate([
26614
26606
  attr({ attribute: "open", mode: "boolean" })
26615
26607
  ], Select.prototype, "open", void 0);
26616
- __decorate$1([
26608
+ __decorate([
26617
26609
  volatile
26618
26610
  ], Select.prototype, "collapsible", null);
26619
- __decorate$1([
26611
+ __decorate([
26620
26612
  observable
26621
26613
  ], Select.prototype, "control", void 0);
26622
- __decorate$1([
26614
+ __decorate([
26623
26615
  attr({ attribute: "position" })
26624
26616
  ], Select.prototype, "positionAttribute", void 0);
26625
- __decorate$1([
26617
+ __decorate([
26626
26618
  observable
26627
26619
  ], Select.prototype, "position", void 0);
26628
- __decorate$1([
26620
+ __decorate([
26629
26621
  observable
26630
26622
  ], Select.prototype, "maxHeight", void 0);
26631
26623
  class DelegatesARIASelect {
26632
26624
  }
26633
- __decorate$1([
26625
+ __decorate([
26634
26626
  observable
26635
26627
  ], DelegatesARIASelect.prototype, "ariaControls", void 0);
26636
26628
  applyMixins(DelegatesARIASelect, DelegatesARIAListbox);
@@ -26712,7 +26704,7 @@ const tabTemplate = (context2, definition2) => html$4`
26712
26704
  `;
26713
26705
  class Tab extends FoundationElement {
26714
26706
  }
26715
- __decorate$1([
26707
+ __decorate([
26716
26708
  attr({ mode: "boolean" })
26717
26709
  ], Tab.prototype, "disabled", void 0);
26718
26710
  const tabsTemplate = (context2, definition2) => html$4`
@@ -27020,25 +27012,25 @@ let Tabs$1 = class Tabs extends FoundationElement {
27020
27012
  this.activeTabIndex = this.getActiveIndex();
27021
27013
  }
27022
27014
  };
27023
- __decorate$1([
27015
+ __decorate([
27024
27016
  attr
27025
27017
  ], Tabs$1.prototype, "orientation", void 0);
27026
- __decorate$1([
27018
+ __decorate([
27027
27019
  attr
27028
27020
  ], Tabs$1.prototype, "activeid", void 0);
27029
- __decorate$1([
27021
+ __decorate([
27030
27022
  observable
27031
27023
  ], Tabs$1.prototype, "tabs", void 0);
27032
- __decorate$1([
27024
+ __decorate([
27033
27025
  observable
27034
27026
  ], Tabs$1.prototype, "tabpanels", void 0);
27035
- __decorate$1([
27027
+ __decorate([
27036
27028
  attr({ mode: "boolean" })
27037
27029
  ], Tabs$1.prototype, "activeindicator", void 0);
27038
- __decorate$1([
27030
+ __decorate([
27039
27031
  observable
27040
27032
  ], Tabs$1.prototype, "activeIndicatorRef", void 0);
27041
- __decorate$1([
27033
+ __decorate([
27042
27034
  observable
27043
27035
  ], Tabs$1.prototype, "showActiveIndicator", void 0);
27044
27036
  applyMixins(Tabs$1, StartEnd);
@@ -27133,43 +27125,43 @@ let TextArea$1 = class TextArea extends FormAssociatedTextArea {
27133
27125
  super.validate(this.control);
27134
27126
  }
27135
27127
  };
27136
- __decorate$1([
27128
+ __decorate([
27137
27129
  attr({ mode: "boolean" })
27138
27130
  ], TextArea$1.prototype, "readOnly", void 0);
27139
- __decorate$1([
27131
+ __decorate([
27140
27132
  attr
27141
27133
  ], TextArea$1.prototype, "resize", void 0);
27142
- __decorate$1([
27134
+ __decorate([
27143
27135
  attr({ mode: "boolean" })
27144
27136
  ], TextArea$1.prototype, "autofocus", void 0);
27145
- __decorate$1([
27137
+ __decorate([
27146
27138
  attr({ attribute: "form" })
27147
27139
  ], TextArea$1.prototype, "formId", void 0);
27148
- __decorate$1([
27140
+ __decorate([
27149
27141
  attr
27150
27142
  ], TextArea$1.prototype, "list", void 0);
27151
- __decorate$1([
27143
+ __decorate([
27152
27144
  attr({ converter: nullableNumberConverter })
27153
27145
  ], TextArea$1.prototype, "maxlength", void 0);
27154
- __decorate$1([
27146
+ __decorate([
27155
27147
  attr({ converter: nullableNumberConverter })
27156
27148
  ], TextArea$1.prototype, "minlength", void 0);
27157
- __decorate$1([
27149
+ __decorate([
27158
27150
  attr
27159
27151
  ], TextArea$1.prototype, "name", void 0);
27160
- __decorate$1([
27152
+ __decorate([
27161
27153
  attr
27162
27154
  ], TextArea$1.prototype, "placeholder", void 0);
27163
- __decorate$1([
27155
+ __decorate([
27164
27156
  attr({ converter: nullableNumberConverter, mode: "fromView" })
27165
27157
  ], TextArea$1.prototype, "cols", void 0);
27166
- __decorate$1([
27158
+ __decorate([
27167
27159
  attr({ converter: nullableNumberConverter, mode: "fromView" })
27168
27160
  ], TextArea$1.prototype, "rows", void 0);
27169
- __decorate$1([
27161
+ __decorate([
27170
27162
  attr({ mode: "boolean" })
27171
27163
  ], TextArea$1.prototype, "spellcheck", void 0);
27172
- __decorate$1([
27164
+ __decorate([
27173
27165
  observable
27174
27166
  ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
27175
27167
  applyMixins(TextArea$1, DelegatesARIATextbox);
@@ -27636,26 +27628,6 @@ const vsCodeBadge = Badge$1.compose({
27636
27628
  template: badgeTemplate,
27637
27629
  styles: badgeStyles
27638
27630
  });
27639
- /*! *****************************************************************************
27640
- Copyright (c) Microsoft Corporation.
27641
-
27642
- Permission to use, copy, modify, and/or distribute this software for any
27643
- purpose with or without fee is hereby granted.
27644
-
27645
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
27646
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
27647
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
27648
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
27649
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
27650
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27651
- PERFORMANCE OF THIS SOFTWARE.
27652
- ***************************************************************************** */
27653
- function __decorate(decorators, target, key, desc) {
27654
- var c2 = arguments.length, r2 = c2 < 3 ? target : desc, d2;
27655
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
27656
- 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;
27657
- return c2 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
27658
- }
27659
27631
  const BaseButtonStyles = css$2`
27660
27632
  ${display("inline-flex")} :host {
27661
27633
  outline: none;
@@ -48688,7 +48660,7 @@ function resolveAllLineSuffixes(events, context2) {
48688
48660
  let index2 = chunks.length;
48689
48661
  let bufferIndex = -1;
48690
48662
  let size2 = 0;
48691
- let tabs;
48663
+ let tabs2;
48692
48664
  while (index2--) {
48693
48665
  const chunk = chunks[index2];
48694
48666
  if (typeof chunk === "string") {
@@ -48700,7 +48672,7 @@ function resolveAllLineSuffixes(events, context2) {
48700
48672
  if (bufferIndex) break;
48701
48673
  bufferIndex = -1;
48702
48674
  } else if (chunk === -2) {
48703
- tabs = true;
48675
+ tabs2 = true;
48704
48676
  size2++;
48705
48677
  } else if (chunk === -1) ;
48706
48678
  else {
@@ -48710,7 +48682,7 @@ function resolveAllLineSuffixes(events, context2) {
48710
48682
  }
48711
48683
  if (size2) {
48712
48684
  const token = {
48713
- type: eventIndex === events.length || tabs || size2 < 2 ? "lineSuffix" : "hardBreakTrailing",
48685
+ type: eventIndex === events.length || tabs2 || size2 < 2 ? "lineSuffix" : "hardBreakTrailing",
48714
48686
  start: {
48715
48687
  line: data.end.line,
48716
48688
  column: data.end.column - size2,
@@ -71601,7 +71573,6 @@ const ChatMessageContent = ({
71601
71573
  copyButtonOnSubmit,
71602
71574
  insertButtonOnSubmit,
71603
71575
  smartApplyEnabled,
71604
- smartApplyInterceptor,
71605
71576
  guardrails,
71606
71577
  displayMarkdown,
71607
71578
  isMessageLoading,
@@ -72310,11 +72281,11 @@ const styles$6 = {
72310
72281
  editorContentEditable
72311
72282
  };
72312
72283
  const badgeVariants = cva(
72313
- "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",
72314
72285
  {
72315
72286
  variants: {
72316
72287
  variant: {
72317
- secondary: "tw-border tw-border-border tw-bg-badge-background tw-text-badge-foreground",
72288
+ secondary: "tw-bg-badge-background tw-text-badge-foreground",
72318
72289
  outline: "tw-border tw-border-muted-transparent tw-bg-[unset] tw-text-muted-foreground"
72319
72290
  }
72320
72291
  },
@@ -72553,12 +72524,12 @@ const PopoverContent = React.forwardRef(({ className, align = "start", sideOffse
72553
72524
  ] });
72554
72525
  });
72555
72526
  PopoverContent.displayName = $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2.displayName;
72556
- const button = "_button_n6cvl_5";
72557
- const buttonIconEndChevron = "_button--icon-end-chevron_n6cvl_37";
72558
- const buttonPrimary = "_button--primary_n6cvl_41";
72559
- const buttonNoIconStart = "_button--no-icon-start_n6cvl_45";
72560
- const buttonNoIconEnd = "_button--no-icon-end_n6cvl_49";
72561
- 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";
72562
72533
  const styles$5 = {
72563
72534
  button,
72564
72535
  buttonIconEndChevron,
@@ -73230,7 +73201,7 @@ const PromptCommandItem = ({ prompt, onSelect, selectActionLabel }) => /* @__PUR
73230
73201
  ] }),
73231
73202
  /* @__PURE__ */ jsx("strong", { children: prompt.name })
73232
73203
  ] }),
73233
- 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" })
73234
73205
  ] }),
73235
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 })
73236
73207
  ] }),
@@ -73249,7 +73220,7 @@ const CodyCommandItem = ({ command, onSelect, selectActionLabel, showCommandOrig
73249
73220
  /* @__PURE__ */ jsxs("div", { children: [
73250
73221
  /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-wrap tw-gap-3 tw-w-full tw-items-start", children: [
73251
73222
  /* @__PURE__ */ jsx("strong", { className: "tw-whitespace-nowrap", children: command.type === "default" ? command.description : command.key }),
73252
- 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" })
73253
73224
  ] }),
73254
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 })
73255
73226
  ] }),
@@ -73413,7 +73384,7 @@ const SubmitButton = ({ onClick, state = "submittable", className }) => {
73413
73384
  type: "submit",
73414
73385
  variant: "ghostRoundedIcon",
73415
73386
  className: clsx$1(
73416
- "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",
73417
73388
  className
73418
73389
  ),
73419
73390
  title: "Stop",
@@ -73528,7 +73499,7 @@ const Toolbar = ({
73528
73499
  }
73529
73500
  )
73530
73501
  ] }),
73531
- /* @__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(
73532
73503
  SubmitButton,
73533
73504
  {
73534
73505
  onClick: onSubmitClick,
@@ -73891,32 +73862,40 @@ const Transcript = (props) => {
73891
73862
  () => transcriptToInteractionPairs(transcript, messageInProgress),
73892
73863
  [transcript, messageInProgress]
73893
73864
  );
73894
- 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) => {
73895
- var _a, _b;
73896
- return /* @__PURE__ */ jsx(
73897
- TranscriptInteraction,
73898
- {
73899
- chatEnabled,
73900
- userInfo,
73901
- interaction,
73902
- guardrails,
73903
- postMessage,
73904
- isTranscriptError,
73905
- feedbackButtonsOnSubmit,
73906
- copyButtonOnSubmit,
73907
- insertButtonOnSubmit,
73908
- isFirstInteraction: i2 === 0,
73909
- isLastInteraction: i2 === interactions.length - 1,
73910
- isLastSentInteraction: i2 === interactions.length - 2 && interaction.assistantMessage !== null,
73911
- priorAssistantMessageIsLoading: Boolean(
73912
- messageInProgress && ((_b = (_a = interactions.at(i2 - 1)) == null ? void 0 : _a.assistantMessage) == null ? void 0 : _b.isLoading)
73913
- ),
73914
- smartApply,
73915
- smartApplyEnabled
73916
- },
73917
- i2
73918
- );
73919
- }) });
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
+ );
73920
73899
  };
73921
73900
  function transcriptToInteractionPairs(transcript, assistantMessageInProgress) {
73922
73901
  var _a;
@@ -73977,6 +73956,12 @@ const TranscriptInteraction = memo((props) => {
73977
73956
  const isContextLoading = Boolean(
73978
73957
  humanMessage.contextFiles === void 0 && isLastSentInteraction && (assistantMessage == null ? void 0 : assistantMessage.text) === void 0
73979
73958
  );
73959
+ const humanMessageInfo = useMemo(() => {
73960
+ if (assistantMessage && !isContextLoading) {
73961
+ return makeHumanMessageInfo({ humanMessage, assistantMessage }, humanEditorRef);
73962
+ }
73963
+ return null;
73964
+ }, [humanMessage, assistantMessage, isContextLoading]);
73980
73965
  return /* @__PURE__ */ jsxs(Fragment, { children: [
73981
73966
  /* @__PURE__ */ jsx(
73982
73967
  HumanMessageCell,
@@ -73992,7 +73977,8 @@ const TranscriptInteraction = memo((props) => {
73992
73977
  isFirstInteraction,
73993
73978
  isLastInteraction,
73994
73979
  isEditorInitiallyFocused: isLastInteraction,
73995
- editorRef: humanEditorRef
73980
+ editorRef: humanEditorRef,
73981
+ className: !isFirstInteraction && isLastInteraction ? "tw-mt-auto" : ""
73996
73982
  },
73997
73983
  humanMessage.index
73998
73984
  ),
@@ -74017,10 +74003,7 @@ const TranscriptInteraction = memo((props) => {
74017
74003
  insertButtonOnSubmit,
74018
74004
  postMessage,
74019
74005
  guardrails,
74020
- humanMessage: makeHumanMessageInfo(
74021
- { humanMessage, assistantMessage },
74022
- humanEditorRef
74023
- ),
74006
+ humanMessage: humanMessageInfo,
74024
74007
  isLoading: assistantMessage.isLoading,
74025
74008
  showFeedbackButtons: !assistantMessage.isLoading && !isTranscriptError && !assistantMessage.error && isLastSentInteraction,
74026
74009
  smartApply,
@@ -74034,6 +74017,7 @@ function focusLastHumanMessageEditor() {
74034
74017
  const elements2 = document.querySelectorAll("[data-lexical-editor]");
74035
74018
  const lastEditor = elements2.item(elements2.length - 1);
74036
74019
  lastEditor == null ? void 0 : lastEditor.focus();
74020
+ lastEditor == null ? void 0 : lastEditor.scrollIntoView();
74037
74021
  }
74038
74022
  function editHumanMessage(messageIndexInTranscript, editorValue) {
74039
74023
  getVSCodeAPI().postMessage({
@@ -74189,13 +74173,13 @@ const WelcomeMessage = ({
74189
74173
  }) => {
74190
74174
  localStorage.removeItem(localStorageKey);
74191
74175
  const dispatchClientAction = useClientActionDispatcher();
74192
- 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: [
74193
74177
  /* @__PURE__ */ jsx(
74194
74178
  CollapsiblePanel,
74195
74179
  {
74196
74180
  storageKey: "prompts",
74197
74181
  title: "Prompts & Commands",
74198
- className: "tw-mb-6 tw-mt-2",
74182
+ className: "tw-mb-6",
74199
74183
  contentClassName: "!tw-p-0 tw-overflow-clip",
74200
74184
  initialOpen: true,
74201
74185
  children: /* @__PURE__ */ jsx(
@@ -74264,23 +74248,21 @@ const ScrollDown = (props) => {
74264
74248
  const [canScrollDown, setCanScrollDown] = useState(false);
74265
74249
  const scrollerAPI = useMemo(() => createScrollerAPI(scrollableParent), [scrollableParent]);
74266
74250
  useEffect(() => {
74267
- function handleScroll2() {
74268
- const scrollPosition = scrollerAPI.getScrollTop();
74251
+ function calculateScrollState() {
74252
+ const scrollTop = scrollerAPI.getScrollTop();
74269
74253
  const scrollHeight = scrollerAPI.getScrollHeight();
74270
74254
  const clientHeight = scrollerAPI.getClientHeight();
74271
- setCanScrollDown(scrollPosition + clientHeight < scrollHeight - MARGIN);
74255
+ setCanScrollDown(scrollTop + clientHeight < scrollHeight - MARGIN);
74272
74256
  }
74273
- handleScroll2();
74274
- scrollerAPI.root.addEventListener("scroll", handleScroll2);
74275
- scrollerAPI.root.addEventListener("resize", handleScroll2);
74257
+ calculateScrollState();
74276
74258
  const resizeObserver = new ResizeObserver(() => {
74277
- handleScroll2();
74259
+ calculateScrollState();
74278
74260
  });
74279
74261
  resizeObserver.observe(scrollerAPI.getObserveElement());
74262
+ scrollerAPI.root.addEventListener("scroll", calculateScrollState);
74280
74263
  return () => {
74281
- scrollerAPI.root.removeEventListener("scroll", handleScroll2);
74282
- scrollerAPI.root.removeEventListener("resize", handleScroll2);
74283
74264
  resizeObserver.disconnect();
74265
+ scrollerAPI.root.removeEventListener("scroll", calculateScrollState);
74284
74266
  };
74285
74267
  }, [scrollerAPI]);
74286
74268
  const onClick = useCallback(() => {
@@ -74290,16 +74272,10 @@ const ScrollDown = (props) => {
74290
74272
  });
74291
74273
  parentOnClick == null ? void 0 : parentOnClick();
74292
74274
  }, [parentOnClick, scrollerAPI]);
74293
- return canScrollDown ? /* @__PURE__ */ jsx("div", { className: "tw-sticky tw-bottom-0 tw-w-full tw-text-center tw-py-4", children: /* @__PURE__ */ jsx(
74294
- Button3,
74295
- {
74296
- variant: "outline",
74297
- size: "lg",
74298
- onClick,
74299
- className: "tw-py-3 hover:tw-bg-primary-hover",
74300
- children: /* @__PURE__ */ jsx(ArrowDown, { size: 24 })
74301
- }
74302
- ) }) : 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;
74303
74279
  };
74304
74280
  const Chat = ({
74305
74281
  messageInProgress,
@@ -74850,8 +74826,17 @@ const AccountTab = () => {
74850
74826
  if (ide === CodyIDE.VSCode) {
74851
74827
  return null;
74852
74828
  }
74853
- const actions2 = [
74854
- {
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({
74855
74840
  text: "Manage Account",
74856
74841
  onClick: useCallback(() => {
74857
74842
  if (userInfo.user.username) {
@@ -74861,16 +74846,16 @@ const AccountTab = () => {
74861
74846
  getVSCodeAPI().postMessage({ command: "links", value: uri.toString() });
74862
74847
  }
74863
74848
  }, [userInfo])
74864
- },
74865
- {
74866
- text: "Settings",
74867
- onClick: () => getVSCodeAPI().postMessage({ command: "command", id: "cody.status-bar.interacted" })
74868
- },
74869
- {
74870
- text: "Sign Out",
74871
- onClick: () => getVSCodeAPI().postMessage({ command: "auth", authKind: "signout" })
74872
- }
74873
- ];
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
+ });
74874
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: [
74875
74860
  /* @__PURE__ */ jsx("h2", { children: "Account" }),
74876
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: [
@@ -74901,7 +74886,17 @@ const AccountTab = () => {
74901
74886
  ))
74902
74887
  ] });
74903
74888
  };
74904
- 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
+ }) => {
74905
74900
  const chatByPeriod = useMemo(
74906
74901
  () => userHistory.filter((chat2) => chat2.interactions.length).reverse().reduce((acc, chat2) => {
74907
74902
  const period = getRelativeChatPeriod(new Date(chat2.lastInteractionTimestamp));
@@ -74922,62 +74917,102 @@ const HistoryTab = ({ userHistory }) => {
74922
74917
  },
74923
74918
  [userHistory]
74924
74919
  );
74925
- 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(
74926
- CollapsiblePanel,
74927
- {
74928
- storageKey: `history.${period}`,
74929
- title: period,
74930
- initialOpen: true,
74931
- children: chats.map(({ interactions, id: id2 }) => {
74932
- var _a, _b, _c;
74933
- const lastMessage = (_c = (_b = (_a = interactions[interactions.length - 1]) == null ? void 0 : _a.humanMessage) == null ? void 0 : _b.text) == null ? void 0 : _c.trim();
74934
- return /* @__PURE__ */ jsxs("div", { className: "tw-inline-flex tw-justify-between", children: [
74935
- /* @__PURE__ */ jsxs(
74936
- Button3,
74937
- {
74938
- variant: "ghost",
74939
- title: lastMessage,
74940
- onClick: () => getVSCodeAPI().postMessage({
74941
- command: "restoreHistory",
74942
- chatID: id2
74943
- }),
74944
- className: "tw-text-left tw-truncate tw-w-full",
74945
- children: [
74946
- /* @__PURE__ */ jsx(
74947
- 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,
74948
74971
  {
74949
74972
  className: "tw-w-8 tw-h-8 tw-opacity-80",
74950
74973
  size: 16,
74951
74974
  strokeWidth: "1.25"
74952
74975
  }
74953
- ),
74954
- /* @__PURE__ */ jsx("span", { className: "tw-truncate tw-w-full", children: lastMessage })
74955
- ]
74956
- },
74957
- id2
74958
- ),
74959
- /* @__PURE__ */ jsx(
74960
- Button3,
74961
- {
74962
- variant: "ghost",
74963
- title: "Delete chat",
74964
- onClick: () => onDeleteButtonClick(id2),
74965
- children: /* @__PURE__ */ jsx(
74966
- Trash,
74967
- {
74968
- className: "tw-w-8 tw-h-8 tw-opacity-80",
74969
- size: 16,
74970
- strokeWidth: "1.25"
74971
- }
74972
- )
74973
- },
74974
- id2
74975
- )
74976
- ] }, id2);
74977
- })
74978
- },
74979
- period
74980
- )) });
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
+ ] });
74981
75016
  };
74982
75017
  const SettingsTab = () => {
74983
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(
@@ -74994,22 +75029,139 @@ const SettingsTab = () => {
74994
75029
  "settings"
74995
75030
  ) });
74996
75031
  };
74997
- const tabsContainer = "_tabs-container_zt8hy_1";
74998
- const activeTab = "_active-tab_zt8hy_7";
74999
- const dialogOverlay = "_dialog-overlay_zt8hy_1";
75000
- const dialogContent = "_dialog-content_zt8hy_1";
75001
- const dialogTitle = "_dialog-title_zt8hy_1";
75002
- const dialogDescription = "_dialog-description_zt8hy_1";
75003
- const dialogFooter = "_dialog-footer_zt8hy_1";
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";
75004
75042
  const styles$2 = {
75043
+ tabsRoot,
75005
75044
  tabsContainer,
75006
- activeTab,
75045
+ tabs,
75046
+ subTabs,
75047
+ tabActionLabel,
75007
75048
  dialogOverlay,
75008
75049
  dialogContent,
75009
75050
  dialogTitle,
75010
75051
  dialogDescription,
75011
75052
  dialogFooter
75012
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
+ ] });
75164
+ };
75013
75165
  const TabButton = forwardRef(
75014
75166
  ({
75015
75167
  Icon: Icon2,
@@ -75037,7 +75189,7 @@ const TabButton = forwardRef(
75037
75189
  "data-testid": dataTestId,
75038
75190
  children: [
75039
75191
  /* @__PURE__ */ jsx(Icon2, { size: 16, strokeWidth: 1.25, className: "tw-w-8 tw-h-8" }),
75040
- /* @__PURE__ */ jsx("span", { className: alwaysShowTitle ? "" : "tw-hidden md:tw-inline", children: title2 })
75192
+ /* @__PURE__ */ jsx("span", { className: alwaysShowTitle ? "" : styles$2.tabActionLabel, children: title2 })
75041
75193
  ]
75042
75194
  }
75043
75195
  ) }),
@@ -75049,12 +75201,12 @@ const TabButton = forwardRef(
75049
75201
  ] })
75050
75202
  );
75051
75203
  TabButton.displayName = "TabButton";
75052
- const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75053
- var _a;
75204
+ function useTabs(input) {
75205
+ const { IDE, onDownloadChatClick } = input;
75054
75206
  const {
75055
75207
  config: { webviewType, multipleWebviewsEnabled }
75056
75208
  } = useConfig();
75057
- const tabItems = useMemo(
75209
+ return useMemo(
75058
75210
  () => [
75059
75211
  {
75060
75212
  view: View.Chat,
@@ -75066,7 +75218,11 @@ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75066
75218
  alwaysShowTitle: true,
75067
75219
  tooltipExtra: /* @__PURE__ */ jsx(Fragment, { children: IDE === CodyIDE.VSCode && /* @__PURE__ */ jsx(Kbd, { macOS: "shift+opt+l", linuxAndWindows: "shift+alt+l" }) }),
75068
75220
  Icon: MessageSquarePlus,
75069
- 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
+ })
75070
75226
  },
75071
75227
  multipleWebviewsEnabled ? {
75072
75228
  title: "Open in Editor",
@@ -75129,132 +75285,7 @@ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75129
75285
  ].filter(isDefined),
75130
75286
  [IDE, webviewType, onDownloadChatClick, multipleWebviewsEnabled]
75131
75287
  );
75132
- const currentViewSubActions = ((_a = tabItems.find((tab2) => tab2.view === currentView)) == null ? void 0 : _a.subActions) ?? [];
75133
- const handleClick = useCallback(
75134
- (view, command, changesView) => {
75135
- if (command) {
75136
- getVSCodeAPI().postMessage({ command: "command", id: command });
75137
- }
75138
- if (changesView) {
75139
- setView(view);
75140
- }
75141
- },
75142
- [setView]
75143
- );
75144
- return /* @__PURE__ */ jsxs(
75145
- List,
75146
- {
75147
- "aria-label": "cody-webview",
75148
- className: clsx$1(
75149
- "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",
75150
- styles$2.tabsContainer
75151
- ),
75152
- children: [
75153
- /* @__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(
75154
- TabButton,
75155
- {
75156
- Icon: Icon2,
75157
- view,
75158
- title: title2,
75159
- isActive: currentView === view,
75160
- onClick: () => handleClick(view, command, changesView),
75161
- "data-testid": `tab-${view}`
75162
- }
75163
- ) }, view)) }),
75164
- /* @__PURE__ */ jsx("div", { className: "tw-flex tw-gap-4 [&_>_*]:tw-flex-shrink-0", children: currentViewSubActions.map(
75165
- ({
75166
- Icon: Icon2,
75167
- command,
75168
- title: title2,
75169
- alwaysShowTitle,
75170
- tooltipExtra,
75171
- arg,
75172
- callback,
75173
- confirmation
75174
- }) => /* @__PURE__ */ jsx(Fragment$1, { children: confirmation ? /* @__PURE__ */ jsx(
75175
- ActionButtonWithConfirmation,
75176
- {
75177
- title: title2,
75178
- Icon: Icon2,
75179
- alwaysShowTitle,
75180
- tooltipExtra,
75181
- dialogTitle: confirmation.title,
75182
- dialogDescription: confirmation.description,
75183
- dialogConfirmAction: confirmation.confirmationAction,
75184
- onConfirm: () => callback ? callback() : getVSCodeAPI().postMessage({
75185
- command: "command",
75186
- id: command,
75187
- arg
75188
- })
75189
- }
75190
- ) : /* @__PURE__ */ jsx(
75191
- TabButton,
75192
- {
75193
- Icon: Icon2,
75194
- title: title2,
75195
- alwaysShowTitle,
75196
- tooltipExtra,
75197
- onClick: () => callback ? callback() : getVSCodeAPI().postMessage({
75198
- command: "command",
75199
- id: command,
75200
- arg
75201
- }),
75202
- prominent: true
75203
- }
75204
- ) }, command)
75205
- ) })
75206
- ]
75207
- }
75208
- );
75209
- };
75210
- const ActionButtonWithConfirmation = (props) => {
75211
- const {
75212
- title: title2,
75213
- Icon: Icon2,
75214
- prominent,
75215
- alwaysShowTitle,
75216
- tooltipExtra,
75217
- onConfirm,
75218
- dialogTitle: dialogTitle2,
75219
- dialogConfirmAction,
75220
- dialogDescription: dialogDescription2
75221
- } = props;
75222
- const [state, setState] = useState(false);
75223
- return /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9, { open: state, onOpenChange: setState, children: [
75224
- /* @__PURE__ */ jsx(
75225
- TabButton,
75226
- {
75227
- Icon: Icon2,
75228
- title: title2,
75229
- alwaysShowTitle,
75230
- tooltipExtra,
75231
- prominent,
75232
- onClick: () => setState(true)
75233
- }
75234
- ),
75235
- /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$602eac185826482c, { children: [
75236
- /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$c6fdb837b070b4ff, { className: styles$2.dialogOverlay }),
75237
- /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2, { className: styles$2.dialogContent, "data-cody-ui-dialog": true, children: [
75238
- /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$f99233281efd08a0, { className: styles$2.dialogTitle, children: dialogTitle2 }),
75239
- /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$393edc798c47379d, { className: styles$2.dialogDescription, children: dialogDescription2 }),
75240
- /* @__PURE__ */ jsxs("footer", { className: styles$2.dialogFooter, children: [
75241
- /* @__PURE__ */ jsx(Button3, { variant: "secondary", onClick: () => setState(false), children: "Cancel" }),
75242
- /* @__PURE__ */ jsx(
75243
- Button3,
75244
- {
75245
- variant: "default",
75246
- onClick: () => {
75247
- onConfirm();
75248
- setState(false);
75249
- },
75250
- children: dialogConfirmAction
75251
- }
75252
- )
75253
- ] })
75254
- ] })
75255
- ] })
75256
- ] });
75257
- };
75288
+ }
75258
75289
  const CodyPanel = ({
75259
75290
  view,
75260
75291
  setView,
@@ -75318,7 +75349,16 @@ const CodyPanel = ({
75318
75349
  setView
75319
75350
  }
75320
75351
  ),
75321
- 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
+ ),
75322
75362
  view === View.Prompts && /* @__PURE__ */ jsx(PromptsTab, { setView }),
75323
75363
  view === View.Account && /* @__PURE__ */ jsx(AccountTab, {}),
75324
75364
  view === View.Settings && /* @__PURE__ */ jsx(SettingsTab, {})
@@ -75435,10 +75475,17 @@ async function createAgentClient({
75435
75475
  }
75436
75476
  const GLOBAL_MESSAGE_TYPES = ["rpc/response"];
75437
75477
  function useCodyWebAgent(input) {
75438
- const { serverEndpoint, accessToken, telemetryClientName, customHeaders, createAgentWorker } = input;
75478
+ const {
75479
+ serverEndpoint,
75480
+ accessToken,
75481
+ telemetryClientName,
75482
+ customHeaders,
75483
+ initialContext,
75484
+ createAgentWorker
75485
+ } = input;
75439
75486
  const activeWebviewPanelIDRef = useRef("");
75440
75487
  const [client, setClient] = useState(null);
75441
- useEffect(() => {
75488
+ useEffectOnce(() => {
75442
75489
  createAgentClient({
75443
75490
  customHeaders,
75444
75491
  telemetryClientName,
@@ -75451,27 +75498,38 @@ function useCodyWebAgent(input) {
75451
75498
  setClient(() => error2);
75452
75499
  });
75453
75500
  }, [accessToken, serverEndpoint, createAgentWorker, customHeaders, telemetryClientName]);
75454
- const createNewChat = useCallback(async (agent) => {
75455
- if (!agent || isErrorLike(agent)) {
75456
- return;
75457
- }
75458
- const { panelId, chatId } = await agent.rpc.sendRequest("chat/web/new", null);
75459
- activeWebviewPanelIDRef.current = panelId;
75460
- await agent.rpc.sendRequest("webview/receiveMessage", {
75461
- id: activeWebviewPanelIDRef.current,
75462
- message: { chatID: chatId, command: "restoreHistory" }
75463
- });
75464
- }, []);
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);
75465
75525
  const vscodeAPI = useVSCodeAPI({ activeWebviewPanelIDRef, createNewChat, client });
75466
75526
  useEffect(() => {
75527
+ if (isInitRef.current || !client || isErrorLike(client)) {
75528
+ return;
75529
+ }
75467
75530
  void createNewChat(client);
75531
+ isInitRef.current = true;
75468
75532
  }, [client, createNewChat]);
75469
- useLayoutEffect(() => {
75470
- if (client && !isErrorLike(client) && vscodeAPI) {
75471
- vscodeAPI.postMessage({ command: "ready" });
75472
- vscodeAPI.postMessage({ command: "initialized" });
75473
- }
75474
- }, [vscodeAPI, client]);
75475
75533
  return { client, vscodeAPI };
75476
75534
  }
75477
75535
  function useVSCodeAPI(input) {
@@ -75530,6 +75588,17 @@ function useVSCodeAPI(input) {
75530
75588
  return vscodeAPI;
75531
75589
  }, [client, createNewChat, activeWebviewPanelIDRef]);
75532
75590
  }
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
+ }
75533
75602
  const root$1 = "_root_maej5_2";
75534
75603
  const container = "_container_maej5_10";
75535
75604
  const styles$1 = {
@@ -75778,7 +75847,7 @@ const CodyWebPanel = (props) => {
75778
75847
  title: fileURL,
75779
75848
  uri: URI.file(`${repository.name}/${fileURL}/`),
75780
75849
  providerUri: REMOTE_DIRECTORY_PROVIDER_URI,
75781
- description: " ",
75850
+ description: "Current directory",
75782
75851
  source: ContextItemSource.Initial,
75783
75852
  mention: {
75784
75853
  data: {
@@ -75786,7 +75855,7 @@ const CodyWebPanel = (props) => {
75786
75855
  repoID: repository.id,
75787
75856
  directoryPath: `${fileURL}/`
75788
75857
  },
75789
- description: " "
75858
+ description: fileURL
75790
75859
  }
75791
75860
  });
75792
75861
  } else {