@sourcegraph/cody-web 0.7.1 → 0.7.4

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-BTzYzFoB.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
@@ -8345,7 +8345,6 @@ function getGlobalPromptEditorConfig() {
8345
8345
  const CAN_USE_DOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
8346
8346
  const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && // @ts-ignore
8347
8347
  !window.MSStream;
8348
- CAN_USE_DOM && window.matchMedia("(pointer: coarse)").matches;
8349
8348
  const useLayoutEffectImpl = CAN_USE_DOM ? useLayoutEffect : useEffect;
8350
8349
  const useIsFocused = () => {
8351
8350
  const [editor2] = u$5();
@@ -8374,7 +8373,7 @@ const useIsFocused = () => {
8374
8373
  }, [editor2]);
8375
8374
  return hasFocus;
8376
8375
  };
8377
- const MentionComponent = ({ nodeKey, node: node2, tooltip, icon: Icon2, className, focusedClassName, iconClassName }) => {
8376
+ const MentionComponent = ({ nodeKey, node: node2, tooltip: tooltip2, icon: Icon2, className, focusedClassName, iconClassName }) => {
8378
8377
  const { tooltipComponents, onContextItemMentionNodeMetaClick } = getGlobalPromptEditorConfig();
8379
8378
  const [editor2] = u$5();
8380
8379
  const isEditorFocused = useIsFocused();
@@ -8516,8 +8515,8 @@ const MentionComponent = ({ nodeKey, node: node2, tooltip, icon: Icon2, classNam
8516
8515
  unregister();
8517
8516
  };
8518
8517
  }, [editor2, onArrowLeftPress, onArrowRightPress, onClick, onDelete, onBlur, onSelectionChange]);
8519
- const content2 = /* @__PURE__ */ jsxs("span", { ref: ref2, className: composedClassNames, title: tooltipComponents ? void 0 : tooltip, children: [
8520
- Icon2 && /* @__PURE__ */ jsx(Icon2, { size: 14, strokeWidth: 2, className: iconClassName }),
8518
+ const content2 = /* @__PURE__ */ jsxs("span", { ref: ref2, className: composedClassNames, title: tooltipComponents ? void 0 : tooltip2, children: [
8519
+ Icon2 && /* @__PURE__ */ jsx(Icon2, { size: 14, strokeWidth: 2, className: clsx$1(iconClassName, "tw-shrink-0") }),
8521
8520
  /* @__PURE__ */ jsx("span", { children: text2 })
8522
8521
  ] });
8523
8522
  if (!tooltipComponents) {
@@ -8526,7 +8525,7 @@ const MentionComponent = ({ nodeKey, node: node2, tooltip, icon: Icon2, classNam
8526
8525
  const { Tooltip: Tooltip2, TooltipContent: TooltipContent2, TooltipTrigger: TooltipTrigger2 } = tooltipComponents;
8527
8526
  return /* @__PURE__ */ jsxs(Tooltip2, { children: [
8528
8527
  /* @__PURE__ */ jsx(TooltipTrigger2, { asChild: true, children: content2 }),
8529
- tooltip && /* @__PURE__ */ jsx(TooltipContent2, { children: tooltip })
8528
+ tooltip2 && /* @__PURE__ */ jsx(TooltipContent2, { children: tooltip2 })
8530
8529
  ] });
8531
8530
  };
8532
8531
  const MENTION_CLASS_NAME = styles$k.contextItemMentionNode;
@@ -8710,16 +8709,16 @@ const TemplateInputComponent = ({ editor: editor2, nodeKey, node: node2, classNa
8710
8709
  editor2.registerCommand(_$2, onKeyDown, Ns)
8711
8710
  );
8712
8711
  }, [editor2, onClick, onKeyDown]);
8713
- const tooltip = "replaces template placeholder on keypress";
8712
+ const tooltip2 = "replaces template placeholder on keypress";
8714
8713
  const text2 = node2.templateInput.placeholder;
8715
- const content2 = /* @__PURE__ */ jsx("span", { ref: ref2, className: composedClassNames, title: tooltipComponents ? void 0 : tooltip, children: /* @__PURE__ */ jsx("span", { children: text2 }) });
8714
+ const content2 = /* @__PURE__ */ jsx("span", { ref: ref2, className: composedClassNames, title: tooltipComponents ? void 0 : tooltip2, children: /* @__PURE__ */ jsx("span", { children: text2 }) });
8716
8715
  if (!tooltipComponents) {
8717
8716
  return content2;
8718
8717
  }
8719
8718
  const { Tooltip: Tooltip2, TooltipContent: TooltipContent2, TooltipTrigger: TooltipTrigger2 } = tooltipComponents;
8720
8719
  return /* @__PURE__ */ jsxs(Tooltip2, { children: [
8721
8720
  /* @__PURE__ */ jsx(TooltipTrigger2, { asChild: true, children: content2 }),
8722
- /* @__PURE__ */ jsx(TooltipContent2, { children: tooltip })
8721
+ /* @__PURE__ */ jsx(TooltipContent2, { children: tooltip2 })
8723
8722
  ] });
8724
8723
  };
8725
8724
  const templateInputNode = "_template-input-node_14yoh_1";
@@ -15901,6 +15900,20 @@ function $3db38b7d1fb3fe6a$var$createFocusGuard() {
15901
15900
  element2.style.cssText = "outline: none; opacity: 0; position: fixed; pointer-events: none";
15902
15901
  return element2;
15903
15902
  }
15903
+ /*! *****************************************************************************
15904
+ Copyright (c) Microsoft Corporation.
15905
+
15906
+ Permission to use, copy, modify, and/or distribute this software for any
15907
+ purpose with or without fee is hereby granted.
15908
+
15909
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
15910
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15911
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
15912
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15913
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
15914
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15915
+ PERFORMANCE OF THIS SOFTWARE.
15916
+ ***************************************************************************** */
15904
15917
  var __assign = function() {
15905
15918
  __assign = Object.assign || function __assign2(t2) {
15906
15919
  for (var s2, i2 = 1, n2 = arguments.length; i2 < n2; i2++) {
@@ -15922,19 +15935,17 @@ function __rest(s2, e2) {
15922
15935
  }
15923
15936
  return t2;
15924
15937
  }
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));
15938
+ function __decorate(decorators, target, key, desc) {
15939
+ var c2 = arguments.length, r2 = c2 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d2;
15940
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
15941
+ 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;
15942
+ return c2 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
15943
+ }
15944
+ function __spreadArray(to, from) {
15945
+ for (var i2 = 0, il2 = from.length, j = to.length; i2 < il2; i2++, j++)
15946
+ to[j] = from[i2];
15947
+ return to;
15933
15948
  }
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
15949
  var zeroRightClassName = "right-scroll-bar-position";
15939
15950
  var fullWidthClassName = "width-before-scroll-bar";
15940
15951
  var noScrollbarsClassName = "with-scroll-bars-hidden";
@@ -16411,7 +16422,7 @@ function RemoveScrollSideCar(props) {
16411
16422
  React.useEffect(function() {
16412
16423
  if (props.inert) {
16413
16424
  document.body.classList.add("block-interactivity-".concat(id2));
16414
- var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
16425
+ var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef)).filter(Boolean);
16415
16426
  allow_1.forEach(function(el2) {
16416
16427
  return el2.classList.add("allow-interactivity-".concat(id2));
16417
16428
  });
@@ -17260,7 +17271,7 @@ const CommandSeparator = React.forwardRef(({ className, ...props }, ref2) => /*
17260
17271
  }
17261
17272
  ));
17262
17273
  CommandSeparator.displayName = He.Separator.displayName;
17263
- const CommandItem = React.forwardRef(({ className, tooltip, ...props }, ref2) => {
17274
+ const CommandItem = React.forwardRef(({ className, tooltip: tooltip2, ...props }, ref2) => {
17264
17275
  const item2 = /* @__PURE__ */ jsx(
17265
17276
  He.Item,
17266
17277
  {
@@ -17269,7 +17280,7 @@ const CommandItem = React.forwardRef(({ className, tooltip, ...props }, ref2) =>
17269
17280
  "tw-relative tw-flex tw-cursor-pointer tw-select-none tw-items-center tw-rounded-sm tw-py-3 tw-px-2 tw-text-md tw-outline-none aria-selected:tw-bg-accent aria-selected:tw-text-accent-foreground hover:tw-bg-accent hover:tw-text-accent-foreground data-[disabled=true]:tw-pointer-events-none data-[disabled=true]:tw-opacity-50",
17270
17281
  className
17271
17282
  ),
17272
- title: tooltip,
17283
+ title: tooltip2,
17273
17284
  ...props
17274
17285
  }
17275
17286
  );
@@ -17403,10 +17414,10 @@ const COMMON_WRAPPERS = [
17403
17414
  value: promptEditorConfig
17404
17415
  }
17405
17416
  ];
17406
- const outerContainer = "_outer-container_xb9w0_1";
17407
- const errorContainer = "_error-container_xb9w0_11";
17408
- const error$1 = "_error_xb9w0_11";
17409
- const closeBtn = "_close-btn_xb9w0_29";
17417
+ const outerContainer = "_outer-container_hbzxh_1";
17418
+ const errorContainer = "_error-container_hbzxh_10";
17419
+ const error$1 = "_error_hbzxh_10";
17420
+ const closeBtn = "_close-btn_hbzxh_28";
17410
17421
  const styles$f = {
17411
17422
  outerContainer,
17412
17423
  errorContainer,
@@ -20477,26 +20488,6 @@ html$4`
20477
20488
  ></slot>
20478
20489
  </span>
20479
20490
  `;
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
20491
  const metadataByTarget = /* @__PURE__ */ new Map();
20501
20492
  if (!("metadata" in Reflect)) {
20502
20493
  Reflect.metadata = function(key, value) {
@@ -21637,10 +21628,10 @@ class FoundationElement extends FASTElement {
21637
21628
  } : this, elementDefinition, overrideDefinition);
21638
21629
  }
21639
21630
  }
21640
- __decorate$1([
21631
+ __decorate([
21641
21632
  observable
21642
21633
  ], FoundationElement.prototype, "template", void 0);
21643
- __decorate$1([
21634
+ __decorate([
21644
21635
  observable
21645
21636
  ], FoundationElement.prototype, "styles", void 0);
21646
21637
  function resolveOption(option, context2, definition2) {
@@ -21910,61 +21901,61 @@ const anchorTemplate = (context2, definition2) => html$4`
21910
21901
  `;
21911
21902
  class ARIAGlobalStatesAndProperties {
21912
21903
  }
21913
- __decorate$1([
21904
+ __decorate([
21914
21905
  attr({ attribute: "aria-atomic" })
21915
21906
  ], ARIAGlobalStatesAndProperties.prototype, "ariaAtomic", void 0);
21916
- __decorate$1([
21907
+ __decorate([
21917
21908
  attr({ attribute: "aria-busy" })
21918
21909
  ], ARIAGlobalStatesAndProperties.prototype, "ariaBusy", void 0);
21919
- __decorate$1([
21910
+ __decorate([
21920
21911
  attr({ attribute: "aria-controls" })
21921
21912
  ], ARIAGlobalStatesAndProperties.prototype, "ariaControls", void 0);
21922
- __decorate$1([
21913
+ __decorate([
21923
21914
  attr({ attribute: "aria-current" })
21924
21915
  ], ARIAGlobalStatesAndProperties.prototype, "ariaCurrent", void 0);
21925
- __decorate$1([
21916
+ __decorate([
21926
21917
  attr({ attribute: "aria-describedby" })
21927
21918
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDescribedby", void 0);
21928
- __decorate$1([
21919
+ __decorate([
21929
21920
  attr({ attribute: "aria-details" })
21930
21921
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDetails", void 0);
21931
- __decorate$1([
21922
+ __decorate([
21932
21923
  attr({ attribute: "aria-disabled" })
21933
21924
  ], ARIAGlobalStatesAndProperties.prototype, "ariaDisabled", void 0);
21934
- __decorate$1([
21925
+ __decorate([
21935
21926
  attr({ attribute: "aria-errormessage" })
21936
21927
  ], ARIAGlobalStatesAndProperties.prototype, "ariaErrormessage", void 0);
21937
- __decorate$1([
21928
+ __decorate([
21938
21929
  attr({ attribute: "aria-flowto" })
21939
21930
  ], ARIAGlobalStatesAndProperties.prototype, "ariaFlowto", void 0);
21940
- __decorate$1([
21931
+ __decorate([
21941
21932
  attr({ attribute: "aria-haspopup" })
21942
21933
  ], ARIAGlobalStatesAndProperties.prototype, "ariaHaspopup", void 0);
21943
- __decorate$1([
21934
+ __decorate([
21944
21935
  attr({ attribute: "aria-hidden" })
21945
21936
  ], ARIAGlobalStatesAndProperties.prototype, "ariaHidden", void 0);
21946
- __decorate$1([
21937
+ __decorate([
21947
21938
  attr({ attribute: "aria-invalid" })
21948
21939
  ], ARIAGlobalStatesAndProperties.prototype, "ariaInvalid", void 0);
21949
- __decorate$1([
21940
+ __decorate([
21950
21941
  attr({ attribute: "aria-keyshortcuts" })
21951
21942
  ], ARIAGlobalStatesAndProperties.prototype, "ariaKeyshortcuts", void 0);
21952
- __decorate$1([
21943
+ __decorate([
21953
21944
  attr({ attribute: "aria-label" })
21954
21945
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLabel", void 0);
21955
- __decorate$1([
21946
+ __decorate([
21956
21947
  attr({ attribute: "aria-labelledby" })
21957
21948
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLabelledby", void 0);
21958
- __decorate$1([
21949
+ __decorate([
21959
21950
  attr({ attribute: "aria-live" })
21960
21951
  ], ARIAGlobalStatesAndProperties.prototype, "ariaLive", void 0);
21961
- __decorate$1([
21952
+ __decorate([
21962
21953
  attr({ attribute: "aria-owns" })
21963
21954
  ], ARIAGlobalStatesAndProperties.prototype, "ariaOwns", void 0);
21964
- __decorate$1([
21955
+ __decorate([
21965
21956
  attr({ attribute: "aria-relevant" })
21966
21957
  ], ARIAGlobalStatesAndProperties.prototype, "ariaRelevant", void 0);
21967
- __decorate$1([
21958
+ __decorate([
21968
21959
  attr({ attribute: "aria-roledescription" })
21969
21960
  ], ARIAGlobalStatesAndProperties.prototype, "ariaRoledescription", void 0);
21970
21961
  class Anchor extends FoundationElement {
@@ -21988,36 +21979,36 @@ class Anchor extends FoundationElement {
21988
21979
  this.handleUnsupportedDelegatesFocus();
21989
21980
  }
21990
21981
  }
21991
- __decorate$1([
21982
+ __decorate([
21992
21983
  attr
21993
21984
  ], Anchor.prototype, "download", void 0);
21994
- __decorate$1([
21985
+ __decorate([
21995
21986
  attr
21996
21987
  ], Anchor.prototype, "href", void 0);
21997
- __decorate$1([
21988
+ __decorate([
21998
21989
  attr
21999
21990
  ], Anchor.prototype, "hreflang", void 0);
22000
- __decorate$1([
21991
+ __decorate([
22001
21992
  attr
22002
21993
  ], Anchor.prototype, "ping", void 0);
22003
- __decorate$1([
21994
+ __decorate([
22004
21995
  attr
22005
21996
  ], Anchor.prototype, "referrerpolicy", void 0);
22006
- __decorate$1([
21997
+ __decorate([
22007
21998
  attr
22008
21999
  ], Anchor.prototype, "rel", void 0);
22009
- __decorate$1([
22000
+ __decorate([
22010
22001
  attr
22011
22002
  ], Anchor.prototype, "target", void 0);
22012
- __decorate$1([
22003
+ __decorate([
22013
22004
  attr
22014
22005
  ], Anchor.prototype, "type", void 0);
22015
- __decorate$1([
22006
+ __decorate([
22016
22007
  observable
22017
22008
  ], Anchor.prototype, "defaultSlottedContent", void 0);
22018
22009
  class DelegatesARIALink {
22019
22010
  }
22020
- __decorate$1([
22011
+ __decorate([
22021
22012
  attr({ attribute: "aria-expanded" })
22022
22013
  ], DelegatesARIALink.prototype, "ariaExpanded", void 0);
22023
22014
  applyMixins(DelegatesARIALink, ARIAGlobalStatesAndProperties);
@@ -22052,13 +22043,13 @@ let Badge$2 = class Badge extends FoundationElement {
22052
22043
  };
22053
22044
  }
22054
22045
  };
22055
- __decorate$1([
22046
+ __decorate([
22056
22047
  attr({ attribute: "fill" })
22057
22048
  ], Badge$2.prototype, "fill", void 0);
22058
- __decorate$1([
22049
+ __decorate([
22059
22050
  attr({ attribute: "color" })
22060
22051
  ], Badge$2.prototype, "color", void 0);
22061
- __decorate$1([
22052
+ __decorate([
22062
22053
  attr({ mode: "boolean" })
22063
22054
  ], Badge$2.prototype, "circular", void 0);
22064
22055
  const buttonTemplate = (context2, definition2) => html$4`
@@ -22598,39 +22589,39 @@ let Button$2 = class Button extends FormAssociatedButton {
22598
22589
  }
22599
22590
  }
22600
22591
  };
22601
- __decorate$1([
22592
+ __decorate([
22602
22593
  attr({ mode: "boolean" })
22603
22594
  ], Button$2.prototype, "autofocus", void 0);
22604
- __decorate$1([
22595
+ __decorate([
22605
22596
  attr({ attribute: "form" })
22606
22597
  ], Button$2.prototype, "formId", void 0);
22607
- __decorate$1([
22598
+ __decorate([
22608
22599
  attr
22609
22600
  ], Button$2.prototype, "formaction", void 0);
22610
- __decorate$1([
22601
+ __decorate([
22611
22602
  attr
22612
22603
  ], Button$2.prototype, "formenctype", void 0);
22613
- __decorate$1([
22604
+ __decorate([
22614
22605
  attr
22615
22606
  ], Button$2.prototype, "formmethod", void 0);
22616
- __decorate$1([
22607
+ __decorate([
22617
22608
  attr({ mode: "boolean" })
22618
22609
  ], Button$2.prototype, "formnovalidate", void 0);
22619
- __decorate$1([
22610
+ __decorate([
22620
22611
  attr
22621
22612
  ], Button$2.prototype, "formtarget", void 0);
22622
- __decorate$1([
22613
+ __decorate([
22623
22614
  attr
22624
22615
  ], Button$2.prototype, "type", void 0);
22625
- __decorate$1([
22616
+ __decorate([
22626
22617
  observable
22627
22618
  ], Button$2.prototype, "defaultSlottedContent", void 0);
22628
22619
  class DelegatesARIAButton {
22629
22620
  }
22630
- __decorate$1([
22621
+ __decorate([
22631
22622
  attr({ attribute: "aria-expanded" })
22632
22623
  ], DelegatesARIAButton.prototype, "ariaExpanded", void 0);
22633
- __decorate$1([
22624
+ __decorate([
22634
22625
  attr({ attribute: "aria-pressed" })
22635
22626
  ], DelegatesARIAButton.prototype, "ariaPressed", void 0);
22636
22627
  applyMixins(DelegatesARIAButton, ARIAGlobalStatesAndProperties);
@@ -22764,40 +22755,40 @@ let DataGridRow$1 = class DataGridRow extends FoundationElement {
22764
22755
  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
22756
  }
22766
22757
  };
22767
- __decorate$1([
22758
+ __decorate([
22768
22759
  attr({ attribute: "grid-template-columns" })
22769
22760
  ], DataGridRow$1.prototype, "gridTemplateColumns", void 0);
22770
- __decorate$1([
22761
+ __decorate([
22771
22762
  attr({ attribute: "row-type" })
22772
22763
  ], DataGridRow$1.prototype, "rowType", void 0);
22773
- __decorate$1([
22764
+ __decorate([
22774
22765
  observable
22775
22766
  ], DataGridRow$1.prototype, "rowData", void 0);
22776
- __decorate$1([
22767
+ __decorate([
22777
22768
  observable
22778
22769
  ], DataGridRow$1.prototype, "columnDefinitions", void 0);
22779
- __decorate$1([
22770
+ __decorate([
22780
22771
  observable
22781
22772
  ], DataGridRow$1.prototype, "cellItemTemplate", void 0);
22782
- __decorate$1([
22773
+ __decorate([
22783
22774
  observable
22784
22775
  ], DataGridRow$1.prototype, "headerCellItemTemplate", void 0);
22785
- __decorate$1([
22776
+ __decorate([
22786
22777
  observable
22787
22778
  ], DataGridRow$1.prototype, "rowIndex", void 0);
22788
- __decorate$1([
22779
+ __decorate([
22789
22780
  observable
22790
22781
  ], DataGridRow$1.prototype, "isActiveRow", void 0);
22791
- __decorate$1([
22782
+ __decorate([
22792
22783
  observable
22793
22784
  ], DataGridRow$1.prototype, "activeCellItemTemplate", void 0);
22794
- __decorate$1([
22785
+ __decorate([
22795
22786
  observable
22796
22787
  ], DataGridRow$1.prototype, "defaultCellItemTemplate", void 0);
22797
- __decorate$1([
22788
+ __decorate([
22798
22789
  observable
22799
22790
  ], DataGridRow$1.prototype, "defaultHeaderCellItemTemplate", void 0);
22800
- __decorate$1([
22791
+ __decorate([
22801
22792
  observable
22802
22793
  ], DataGridRow$1.prototype, "cellElements", void 0);
22803
22794
  function createRowItemTemplate(context2) {
@@ -23143,43 +23134,43 @@ DataGrid$1.generateColumns = (row2) => {
23143
23134
  };
23144
23135
  });
23145
23136
  };
23146
- __decorate$1([
23137
+ __decorate([
23147
23138
  attr({ attribute: "no-tabbing", mode: "boolean" })
23148
23139
  ], DataGrid$1.prototype, "noTabbing", void 0);
23149
- __decorate$1([
23140
+ __decorate([
23150
23141
  attr({ attribute: "generate-header" })
23151
23142
  ], DataGrid$1.prototype, "generateHeader", void 0);
23152
- __decorate$1([
23143
+ __decorate([
23153
23144
  attr({ attribute: "grid-template-columns" })
23154
23145
  ], DataGrid$1.prototype, "gridTemplateColumns", void 0);
23155
- __decorate$1([
23146
+ __decorate([
23156
23147
  observable
23157
23148
  ], DataGrid$1.prototype, "rowsData", void 0);
23158
- __decorate$1([
23149
+ __decorate([
23159
23150
  observable
23160
23151
  ], DataGrid$1.prototype, "columnDefinitions", void 0);
23161
- __decorate$1([
23152
+ __decorate([
23162
23153
  observable
23163
23154
  ], DataGrid$1.prototype, "rowItemTemplate", void 0);
23164
- __decorate$1([
23155
+ __decorate([
23165
23156
  observable
23166
23157
  ], DataGrid$1.prototype, "cellItemTemplate", void 0);
23167
- __decorate$1([
23158
+ __decorate([
23168
23159
  observable
23169
23160
  ], DataGrid$1.prototype, "headerCellItemTemplate", void 0);
23170
- __decorate$1([
23161
+ __decorate([
23171
23162
  observable
23172
23163
  ], DataGrid$1.prototype, "focusRowIndex", void 0);
23173
- __decorate$1([
23164
+ __decorate([
23174
23165
  observable
23175
23166
  ], DataGrid$1.prototype, "focusColumnIndex", void 0);
23176
- __decorate$1([
23167
+ __decorate([
23177
23168
  observable
23178
23169
  ], DataGrid$1.prototype, "defaultRowItemTemplate", void 0);
23179
- __decorate$1([
23170
+ __decorate([
23180
23171
  observable
23181
23172
  ], DataGrid$1.prototype, "rowElementTag", void 0);
23182
- __decorate$1([
23173
+ __decorate([
23183
23174
  observable
23184
23175
  ], DataGrid$1.prototype, "rowElements", void 0);
23185
23176
  const defaultCellContentsTemplate = html$4`
@@ -23342,16 +23333,16 @@ let DataGridCell$1 = class DataGridCell extends FoundationElement {
23342
23333
  }
23343
23334
  }
23344
23335
  };
23345
- __decorate$1([
23336
+ __decorate([
23346
23337
  attr({ attribute: "cell-type" })
23347
23338
  ], DataGridCell$1.prototype, "cellType", void 0);
23348
- __decorate$1([
23339
+ __decorate([
23349
23340
  attr({ attribute: "grid-column" })
23350
23341
  ], DataGridCell$1.prototype, "gridColumn", void 0);
23351
- __decorate$1([
23342
+ __decorate([
23352
23343
  observable
23353
23344
  ], DataGridCell$1.prototype, "rowData", void 0);
23354
- __decorate$1([
23345
+ __decorate([
23355
23346
  observable
23356
23347
  ], DataGridCell$1.prototype, "columnDefinition", void 0);
23357
23348
  function createCellItemTemplate(context2) {
@@ -23476,13 +23467,13 @@ let Checkbox$1 = class Checkbox extends FormAssociatedCheckbox {
23476
23467
  }
23477
23468
  }
23478
23469
  };
23479
- __decorate$1([
23470
+ __decorate([
23480
23471
  attr({ attribute: "readonly", mode: "boolean" })
23481
23472
  ], Checkbox$1.prototype, "readOnly", void 0);
23482
- __decorate$1([
23473
+ __decorate([
23483
23474
  observable
23484
23475
  ], Checkbox$1.prototype, "defaultSlottedNodes", void 0);
23485
- __decorate$1([
23476
+ __decorate([
23486
23477
  observable
23487
23478
  ], Checkbox$1.prototype, "indeterminate", void 0);
23488
23479
  function isListboxOption(el2) {
@@ -23599,39 +23590,39 @@ class ListboxOption extends FoundationElement {
23599
23590
  return this.proxy ? this.proxy.form : null;
23600
23591
  }
23601
23592
  }
23602
- __decorate$1([
23593
+ __decorate([
23603
23594
  observable
23604
23595
  ], ListboxOption.prototype, "checked", void 0);
23605
- __decorate$1([
23596
+ __decorate([
23606
23597
  observable
23607
23598
  ], ListboxOption.prototype, "content", void 0);
23608
- __decorate$1([
23599
+ __decorate([
23609
23600
  observable
23610
23601
  ], ListboxOption.prototype, "defaultSelected", void 0);
23611
- __decorate$1([
23602
+ __decorate([
23612
23603
  attr({ mode: "boolean" })
23613
23604
  ], ListboxOption.prototype, "disabled", void 0);
23614
- __decorate$1([
23605
+ __decorate([
23615
23606
  attr({ attribute: "selected", mode: "boolean" })
23616
23607
  ], ListboxOption.prototype, "selectedAttribute", void 0);
23617
- __decorate$1([
23608
+ __decorate([
23618
23609
  observable
23619
23610
  ], ListboxOption.prototype, "selected", void 0);
23620
- __decorate$1([
23611
+ __decorate([
23621
23612
  attr({ attribute: "value", mode: "fromView" })
23622
23613
  ], ListboxOption.prototype, "initialValue", void 0);
23623
23614
  class DelegatesARIAListboxOption {
23624
23615
  }
23625
- __decorate$1([
23616
+ __decorate([
23626
23617
  observable
23627
23618
  ], DelegatesARIAListboxOption.prototype, "ariaChecked", void 0);
23628
- __decorate$1([
23619
+ __decorate([
23629
23620
  observable
23630
23621
  ], DelegatesARIAListboxOption.prototype, "ariaPosInSet", void 0);
23631
- __decorate$1([
23622
+ __decorate([
23632
23623
  observable
23633
23624
  ], DelegatesARIAListboxOption.prototype, "ariaSelected", void 0);
23634
- __decorate$1([
23625
+ __decorate([
23635
23626
  observable
23636
23627
  ], DelegatesARIAListboxOption.prototype, "ariaSetSize", void 0);
23637
23628
  applyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);
@@ -24048,33 +24039,33 @@ class Listbox extends FoundationElement {
24048
24039
  }
24049
24040
  Listbox.slottedOptionFilter = (n2) => isListboxOption(n2) && !n2.hidden;
24050
24041
  Listbox.TYPE_AHEAD_TIMEOUT_MS = 1e3;
24051
- __decorate$1([
24042
+ __decorate([
24052
24043
  attr({ mode: "boolean" })
24053
24044
  ], Listbox.prototype, "disabled", void 0);
24054
- __decorate$1([
24045
+ __decorate([
24055
24046
  observable
24056
24047
  ], Listbox.prototype, "selectedIndex", void 0);
24057
- __decorate$1([
24048
+ __decorate([
24058
24049
  observable
24059
24050
  ], Listbox.prototype, "selectedOptions", void 0);
24060
- __decorate$1([
24051
+ __decorate([
24061
24052
  observable
24062
24053
  ], Listbox.prototype, "slottedOptions", void 0);
24063
- __decorate$1([
24054
+ __decorate([
24064
24055
  observable
24065
24056
  ], Listbox.prototype, "typeaheadBuffer", void 0);
24066
24057
  class DelegatesARIAListbox {
24067
24058
  }
24068
- __decorate$1([
24059
+ __decorate([
24069
24060
  observable
24070
24061
  ], DelegatesARIAListbox.prototype, "ariaActiveDescendant", void 0);
24071
- __decorate$1([
24062
+ __decorate([
24072
24063
  observable
24073
24064
  ], DelegatesARIAListbox.prototype, "ariaDisabled", void 0);
24074
- __decorate$1([
24065
+ __decorate([
24075
24066
  observable
24076
24067
  ], DelegatesARIAListbox.prototype, "ariaExpanded", void 0);
24077
- __decorate$1([
24068
+ __decorate([
24078
24069
  observable
24079
24070
  ], DelegatesARIAListbox.prototype, "ariaMultiSelectable", void 0);
24080
24071
  applyMixins(DelegatesARIAListbox, ARIAGlobalStatesAndProperties);
@@ -24192,7 +24183,7 @@ class StyleElementStyleSheetTarget {
24192
24183
  }
24193
24184
  }
24194
24185
  }
24195
- __decorate$1([
24186
+ __decorate([
24196
24187
  observable
24197
24188
  ], StyleElementStyleSheetTarget.prototype, "target", void 0);
24198
24189
  class ElementStyleSheetTarget {
@@ -24761,7 +24752,7 @@ class DesignTokenNode {
24761
24752
  }
24762
24753
  }
24763
24754
  DesignTokenNode.cssCustomPropertyReflector = new CustomPropertyReflector();
24764
- __decorate$1([
24755
+ __decorate([
24765
24756
  observable
24766
24757
  ], DesignTokenNode.prototype, "children", void 0);
24767
24758
  function create$3(nameOrConfig) {
@@ -25038,10 +25029,10 @@ let Divider$1 = class Divider extends FoundationElement {
25038
25029
  this.orientation = Orientation.horizontal;
25039
25030
  }
25040
25031
  };
25041
- __decorate$1([
25032
+ __decorate([
25042
25033
  attr
25043
25034
  ], Divider$1.prototype, "role", void 0);
25044
- __decorate$1([
25035
+ __decorate([
25045
25036
  attr
25046
25037
  ], Divider$1.prototype, "orientation", void 0);
25047
25038
  const listboxOptionTemplate = (context2, definition2) => html$4`
@@ -25466,13 +25457,13 @@ class ListboxElement extends Listbox {
25466
25457
  }
25467
25458
  }
25468
25459
  }
25469
- __decorate$1([
25460
+ __decorate([
25470
25461
  observable
25471
25462
  ], ListboxElement.prototype, "activeIndex", void 0);
25472
- __decorate$1([
25463
+ __decorate([
25473
25464
  attr({ mode: "boolean" })
25474
25465
  ], ListboxElement.prototype, "multiple", void 0);
25475
- __decorate$1([
25466
+ __decorate([
25476
25467
  attr({ converter: nullableNumberConverter })
25477
25468
  ], ListboxElement.prototype, "size", void 0);
25478
25469
  class _TextField extends FoundationElement {
@@ -25613,37 +25604,37 @@ let TextField$1 = class TextField extends FormAssociatedTextField {
25613
25604
  super.validate(this.control);
25614
25605
  }
25615
25606
  };
25616
- __decorate$1([
25607
+ __decorate([
25617
25608
  attr({ attribute: "readonly", mode: "boolean" })
25618
25609
  ], TextField$1.prototype, "readOnly", void 0);
25619
- __decorate$1([
25610
+ __decorate([
25620
25611
  attr({ mode: "boolean" })
25621
25612
  ], TextField$1.prototype, "autofocus", void 0);
25622
- __decorate$1([
25613
+ __decorate([
25623
25614
  attr
25624
25615
  ], TextField$1.prototype, "placeholder", void 0);
25625
- __decorate$1([
25616
+ __decorate([
25626
25617
  attr
25627
25618
  ], TextField$1.prototype, "type", void 0);
25628
- __decorate$1([
25619
+ __decorate([
25629
25620
  attr
25630
25621
  ], TextField$1.prototype, "list", void 0);
25631
- __decorate$1([
25622
+ __decorate([
25632
25623
  attr({ converter: nullableNumberConverter })
25633
25624
  ], TextField$1.prototype, "maxlength", void 0);
25634
- __decorate$1([
25625
+ __decorate([
25635
25626
  attr({ converter: nullableNumberConverter })
25636
25627
  ], TextField$1.prototype, "minlength", void 0);
25637
- __decorate$1([
25628
+ __decorate([
25638
25629
  attr
25639
25630
  ], TextField$1.prototype, "pattern", void 0);
25640
- __decorate$1([
25631
+ __decorate([
25641
25632
  attr({ converter: nullableNumberConverter })
25642
25633
  ], TextField$1.prototype, "size", void 0);
25643
- __decorate$1([
25634
+ __decorate([
25644
25635
  attr({ mode: "boolean" })
25645
25636
  ], TextField$1.prototype, "spellcheck", void 0);
25646
- __decorate$1([
25637
+ __decorate([
25647
25638
  observable
25648
25639
  ], TextField$1.prototype, "defaultSlottedNodes", void 0);
25649
25640
  class DelegatesARIATextbox {
@@ -25724,19 +25715,19 @@ class BaseProgress extends FoundationElement {
25724
25715
  this.percentComplete = range2 === 0 ? 0 : Math.fround((value - min2) / range2 * 100);
25725
25716
  }
25726
25717
  }
25727
- __decorate$1([
25718
+ __decorate([
25728
25719
  attr({ converter: nullableNumberConverter })
25729
25720
  ], BaseProgress.prototype, "value", void 0);
25730
- __decorate$1([
25721
+ __decorate([
25731
25722
  attr({ converter: nullableNumberConverter })
25732
25723
  ], BaseProgress.prototype, "min", void 0);
25733
- __decorate$1([
25724
+ __decorate([
25734
25725
  attr({ converter: nullableNumberConverter })
25735
25726
  ], BaseProgress.prototype, "max", void 0);
25736
- __decorate$1([
25727
+ __decorate([
25737
25728
  attr({ mode: "boolean" })
25738
25729
  ], BaseProgress.prototype, "paused", void 0);
25739
- __decorate$1([
25730
+ __decorate([
25740
25731
  observable
25741
25732
  ], BaseProgress.prototype, "percentComplete", void 0);
25742
25733
  const radioGroupTemplate = (context2, definition2) => html$4`
@@ -26071,25 +26062,25 @@ let RadioGroup$1 = class RadioGroup extends FoundationElement {
26071
26062
  }
26072
26063
  }
26073
26064
  };
26074
- __decorate$1([
26065
+ __decorate([
26075
26066
  attr({ attribute: "readonly", mode: "boolean" })
26076
26067
  ], RadioGroup$1.prototype, "readOnly", void 0);
26077
- __decorate$1([
26068
+ __decorate([
26078
26069
  attr({ attribute: "disabled", mode: "boolean" })
26079
26070
  ], RadioGroup$1.prototype, "disabled", void 0);
26080
- __decorate$1([
26071
+ __decorate([
26081
26072
  attr
26082
26073
  ], RadioGroup$1.prototype, "name", void 0);
26083
- __decorate$1([
26074
+ __decorate([
26084
26075
  attr
26085
26076
  ], RadioGroup$1.prototype, "value", void 0);
26086
- __decorate$1([
26077
+ __decorate([
26087
26078
  attr
26088
26079
  ], RadioGroup$1.prototype, "orientation", void 0);
26089
- __decorate$1([
26080
+ __decorate([
26090
26081
  observable
26091
26082
  ], RadioGroup$1.prototype, "childItems", void 0);
26092
- __decorate$1([
26083
+ __decorate([
26093
26084
  observable
26094
26085
  ], RadioGroup$1.prototype, "slottedRadioButtons", void 0);
26095
26086
  const radioTemplate = (context2, definition2) => html$4`
@@ -26191,13 +26182,13 @@ let Radio$1 = class Radio extends FormAssociatedRadio {
26191
26182
  }
26192
26183
  }
26193
26184
  };
26194
- __decorate$1([
26185
+ __decorate([
26195
26186
  attr({ attribute: "readonly", mode: "boolean" })
26196
26187
  ], Radio$1.prototype, "readOnly", void 0);
26197
- __decorate$1([
26188
+ __decorate([
26198
26189
  observable
26199
26190
  ], Radio$1.prototype, "name", void 0);
26200
- __decorate$1([
26191
+ __decorate([
26201
26192
  observable
26202
26193
  ], Radio$1.prototype, "defaultSlottedNodes", void 0);
26203
26194
  function whitespaceFilter(value, index2, array) {
@@ -26610,27 +26601,27 @@ class Select extends FormAssociatedSelect {
26610
26601
  }
26611
26602
  }
26612
26603
  }
26613
- __decorate$1([
26604
+ __decorate([
26614
26605
  attr({ attribute: "open", mode: "boolean" })
26615
26606
  ], Select.prototype, "open", void 0);
26616
- __decorate$1([
26607
+ __decorate([
26617
26608
  volatile
26618
26609
  ], Select.prototype, "collapsible", null);
26619
- __decorate$1([
26610
+ __decorate([
26620
26611
  observable
26621
26612
  ], Select.prototype, "control", void 0);
26622
- __decorate$1([
26613
+ __decorate([
26623
26614
  attr({ attribute: "position" })
26624
26615
  ], Select.prototype, "positionAttribute", void 0);
26625
- __decorate$1([
26616
+ __decorate([
26626
26617
  observable
26627
26618
  ], Select.prototype, "position", void 0);
26628
- __decorate$1([
26619
+ __decorate([
26629
26620
  observable
26630
26621
  ], Select.prototype, "maxHeight", void 0);
26631
26622
  class DelegatesARIASelect {
26632
26623
  }
26633
- __decorate$1([
26624
+ __decorate([
26634
26625
  observable
26635
26626
  ], DelegatesARIASelect.prototype, "ariaControls", void 0);
26636
26627
  applyMixins(DelegatesARIASelect, DelegatesARIAListbox);
@@ -26712,7 +26703,7 @@ const tabTemplate = (context2, definition2) => html$4`
26712
26703
  `;
26713
26704
  class Tab extends FoundationElement {
26714
26705
  }
26715
- __decorate$1([
26706
+ __decorate([
26716
26707
  attr({ mode: "boolean" })
26717
26708
  ], Tab.prototype, "disabled", void 0);
26718
26709
  const tabsTemplate = (context2, definition2) => html$4`
@@ -27020,25 +27011,25 @@ let Tabs$1 = class Tabs extends FoundationElement {
27020
27011
  this.activeTabIndex = this.getActiveIndex();
27021
27012
  }
27022
27013
  };
27023
- __decorate$1([
27014
+ __decorate([
27024
27015
  attr
27025
27016
  ], Tabs$1.prototype, "orientation", void 0);
27026
- __decorate$1([
27017
+ __decorate([
27027
27018
  attr
27028
27019
  ], Tabs$1.prototype, "activeid", void 0);
27029
- __decorate$1([
27020
+ __decorate([
27030
27021
  observable
27031
27022
  ], Tabs$1.prototype, "tabs", void 0);
27032
- __decorate$1([
27023
+ __decorate([
27033
27024
  observable
27034
27025
  ], Tabs$1.prototype, "tabpanels", void 0);
27035
- __decorate$1([
27026
+ __decorate([
27036
27027
  attr({ mode: "boolean" })
27037
27028
  ], Tabs$1.prototype, "activeindicator", void 0);
27038
- __decorate$1([
27029
+ __decorate([
27039
27030
  observable
27040
27031
  ], Tabs$1.prototype, "activeIndicatorRef", void 0);
27041
- __decorate$1([
27032
+ __decorate([
27042
27033
  observable
27043
27034
  ], Tabs$1.prototype, "showActiveIndicator", void 0);
27044
27035
  applyMixins(Tabs$1, StartEnd);
@@ -27133,43 +27124,43 @@ let TextArea$1 = class TextArea extends FormAssociatedTextArea {
27133
27124
  super.validate(this.control);
27134
27125
  }
27135
27126
  };
27136
- __decorate$1([
27127
+ __decorate([
27137
27128
  attr({ mode: "boolean" })
27138
27129
  ], TextArea$1.prototype, "readOnly", void 0);
27139
- __decorate$1([
27130
+ __decorate([
27140
27131
  attr
27141
27132
  ], TextArea$1.prototype, "resize", void 0);
27142
- __decorate$1([
27133
+ __decorate([
27143
27134
  attr({ mode: "boolean" })
27144
27135
  ], TextArea$1.prototype, "autofocus", void 0);
27145
- __decorate$1([
27136
+ __decorate([
27146
27137
  attr({ attribute: "form" })
27147
27138
  ], TextArea$1.prototype, "formId", void 0);
27148
- __decorate$1([
27139
+ __decorate([
27149
27140
  attr
27150
27141
  ], TextArea$1.prototype, "list", void 0);
27151
- __decorate$1([
27142
+ __decorate([
27152
27143
  attr({ converter: nullableNumberConverter })
27153
27144
  ], TextArea$1.prototype, "maxlength", void 0);
27154
- __decorate$1([
27145
+ __decorate([
27155
27146
  attr({ converter: nullableNumberConverter })
27156
27147
  ], TextArea$1.prototype, "minlength", void 0);
27157
- __decorate$1([
27148
+ __decorate([
27158
27149
  attr
27159
27150
  ], TextArea$1.prototype, "name", void 0);
27160
- __decorate$1([
27151
+ __decorate([
27161
27152
  attr
27162
27153
  ], TextArea$1.prototype, "placeholder", void 0);
27163
- __decorate$1([
27154
+ __decorate([
27164
27155
  attr({ converter: nullableNumberConverter, mode: "fromView" })
27165
27156
  ], TextArea$1.prototype, "cols", void 0);
27166
- __decorate$1([
27157
+ __decorate([
27167
27158
  attr({ converter: nullableNumberConverter, mode: "fromView" })
27168
27159
  ], TextArea$1.prototype, "rows", void 0);
27169
- __decorate$1([
27160
+ __decorate([
27170
27161
  attr({ mode: "boolean" })
27171
27162
  ], TextArea$1.prototype, "spellcheck", void 0);
27172
- __decorate$1([
27163
+ __decorate([
27173
27164
  observable
27174
27165
  ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
27175
27166
  applyMixins(TextArea$1, DelegatesARIATextbox);
@@ -27636,26 +27627,6 @@ const vsCodeBadge = Badge$1.compose({
27636
27627
  template: badgeTemplate,
27637
27628
  styles: badgeStyles
27638
27629
  });
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
27630
  const BaseButtonStyles = css$2`
27660
27631
  ${display("inline-flex")} :host {
27661
27632
  outline: none;
@@ -30044,8 +30015,6 @@ const hoverSourceLabels = {
30044
30015
  selection: "from selected code",
30045
30016
  user: "via @-mention",
30046
30017
  terminal: "from terminal output",
30047
- uri: "from URI",
30048
- // todo(tim): what is this?
30049
30018
  history: "from git history",
30050
30019
  initial: "from open repo or file"
30051
30020
  };
@@ -30863,28 +30832,32 @@ const LoadingDots = () => /* @__PURE__ */ jsxs("div", { className: styles$d.dots
30863
30832
  /* @__PURE__ */ jsx("div", { className: styles$d.dot }),
30864
30833
  /* @__PURE__ */ jsx("div", { className: styles$d.dot })
30865
30834
  ] });
30866
- const Cell = ({
30867
- header: header2,
30868
- containerClassName,
30869
- contentClassName,
30870
- "aria-current": ariaCurrent,
30871
- "aria-disabled": ariaDisabled,
30872
- "data-testid": dataTestID,
30873
- children: children2
30874
- }) => /* @__PURE__ */ jsxs(
30875
- "div",
30876
- {
30877
- className: clsx$1("tw-flex tw-flex-col tw-gap-4", containerClassName),
30878
- role: "row",
30835
+ const Cell = forwardRef((props, ref2) => {
30836
+ const {
30837
+ header: header2,
30838
+ containerClassName,
30839
+ contentClassName,
30879
30840
  "aria-current": ariaCurrent,
30880
30841
  "aria-disabled": ariaDisabled,
30881
30842
  "data-testid": dataTestID,
30882
- children: [
30883
- /* @__PURE__ */ jsx("header", { className: "tw-flex tw-gap-4 tw-items-center [&_>_*]:tw-flex-shrink-0", children: header2 }),
30884
- /* @__PURE__ */ jsx("div", { className: clsx$1("tw-flex-1 tw-overflow-hidden", contentClassName), children: children2 })
30885
- ]
30886
- }
30887
- );
30843
+ children: children2
30844
+ } = props;
30845
+ return /* @__PURE__ */ jsxs(
30846
+ "div",
30847
+ {
30848
+ ref: ref2,
30849
+ className: clsx$1("tw-flex tw-flex-col tw-gap-4", containerClassName),
30850
+ role: "row",
30851
+ "aria-current": ariaCurrent,
30852
+ "aria-disabled": ariaDisabled,
30853
+ "data-testid": dataTestID,
30854
+ children: [
30855
+ /* @__PURE__ */ jsx("header", { className: "tw-flex tw-gap-4 tw-items-center [&_>_*]:tw-flex-shrink-0", children: header2 }),
30856
+ /* @__PURE__ */ jsx("div", { className: clsx$1("tw-flex-1 tw-overflow-hidden", contentClassName), children: children2 })
30857
+ ]
30858
+ }
30859
+ );
30860
+ });
30888
30861
  const CodyLogoBW = ({ size: size2, ...props }) => /* @__PURE__ */ jsxs(
30889
30862
  "svg",
30890
30863
  {
@@ -48688,7 +48661,7 @@ function resolveAllLineSuffixes(events, context2) {
48688
48661
  let index2 = chunks.length;
48689
48662
  let bufferIndex = -1;
48690
48663
  let size2 = 0;
48691
- let tabs;
48664
+ let tabs2;
48692
48665
  while (index2--) {
48693
48666
  const chunk = chunks[index2];
48694
48667
  if (typeof chunk === "string") {
@@ -48700,7 +48673,7 @@ function resolveAllLineSuffixes(events, context2) {
48700
48673
  if (bufferIndex) break;
48701
48674
  bufferIndex = -1;
48702
48675
  } else if (chunk === -2) {
48703
- tabs = true;
48676
+ tabs2 = true;
48704
48677
  size2++;
48705
48678
  } else if (chunk === -1) ;
48706
48679
  else {
@@ -48710,7 +48683,7 @@ function resolveAllLineSuffixes(events, context2) {
48710
48683
  }
48711
48684
  if (size2) {
48712
48685
  const token = {
48713
- type: eventIndex === events.length || tabs || size2 < 2 ? "lineSuffix" : "hardBreakTrailing",
48686
+ type: eventIndex === events.length || tabs2 || size2 < 2 ? "lineSuffix" : "hardBreakTrailing",
48714
48687
  start: {
48715
48688
  line: data.end.line,
48716
48689
  column: data.end.column - size2,
@@ -71235,8 +71208,8 @@ class GuardrailsStatusController {
71235
71208
  if (repos.length === 1) {
71236
71209
  return `${prefix} ${repos[0]}.`;
71237
71210
  }
71238
- const tooltip = `${prefix} ${repos.length} repositories: ${repos.join(", ")}`;
71239
- return limitHit ? `${tooltip} or more...` : `${tooltip}.`;
71211
+ const tooltip2 = `${prefix} ${repos.length} repositories: ${repos.join(", ")}`;
71212
+ return limitHit ? `${tooltip2} or more...` : `${tooltip2}.`;
71240
71213
  }
71241
71214
  }
71242
71215
  function createButtons(preText, copyButtonOnSubmit, insertButtonOnSubmit) {
@@ -71601,7 +71574,6 @@ const ChatMessageContent = ({
71601
71574
  copyButtonOnSubmit,
71602
71575
  insertButtonOnSubmit,
71603
71576
  smartApplyEnabled,
71604
- smartApplyInterceptor,
71605
71577
  guardrails,
71606
71578
  displayMarkdown,
71607
71579
  isMessageLoading,
@@ -71901,7 +71873,7 @@ const ContextFocusActions = ({ humanMessage, className }) => {
71901
71873
  "aria-label": "Try again with different context",
71902
71874
  children: /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-wrap tw-items-center tw-gap-x-4 tw-gap-y-2", children: [
71903
71875
  /* @__PURE__ */ jsx("h3", { className: "tw-flex tw-items-center tw-gap-3", children: "Try again with different context" }),
71904
- /* @__PURE__ */ jsx("ul", { className: "tw-whitespace-nowrap tw-flex tw-gap-2 tw-flex-wrap", children: actions2.map(({ label, tooltip, onClick }) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
71876
+ /* @__PURE__ */ jsx("ul", { className: "tw-whitespace-nowrap tw-flex tw-gap-2 tw-flex-wrap", children: actions2.map(({ label, tooltip: tooltip2, onClick }) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
71905
71877
  /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
71906
71878
  Button3,
71907
71879
  {
@@ -71913,7 +71885,7 @@ const ContextFocusActions = ({ humanMessage, className }) => {
71913
71885
  },
71914
71886
  label
71915
71887
  ) }),
71916
- /* @__PURE__ */ jsx(TooltipContent, { children: tooltip })
71888
+ /* @__PURE__ */ jsx(TooltipContent, { children: tooltip2 })
71917
71889
  ] }) }, label)) })
71918
71890
  ] })
71919
71891
  }
@@ -72310,11 +72282,11 @@ const styles$6 = {
72310
72282
  editorContentEditable
72311
72283
  };
72312
72284
  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",
72285
+ "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
72286
  {
72315
72287
  variants: {
72316
72288
  variant: {
72317
- secondary: "tw-border tw-border-border tw-bg-badge-background tw-text-badge-foreground",
72289
+ secondary: "tw-bg-badge-background tw-text-badge-foreground",
72318
72290
  outline: "tw-border tw-border-muted-transparent tw-bg-[unset] tw-text-muted-foreground"
72319
72291
  }
72320
72292
  },
@@ -72553,12 +72525,12 @@ const PopoverContent = React.forwardRef(({ className, align = "start", sideOffse
72553
72525
  ] });
72554
72526
  });
72555
72527
  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";
72528
+ const button = "_button_rqosg_5";
72529
+ const buttonIconEndChevron = "_button--icon-end-chevron_rqosg_37";
72530
+ const buttonPrimary = "_button--primary_rqosg_41";
72531
+ const buttonNoIconStart = "_button--no-icon-start_rqosg_45";
72532
+ const buttonNoIconEnd = "_button--no-icon-end_rqosg_49";
72533
+ const buttonSecondary = "_button--secondary_rqosg_54";
72562
72534
  const styles$5 = {
72563
72535
  button,
72564
72536
  buttonIconEndChevron,
@@ -72583,7 +72555,7 @@ const ToolbarButton = forwardRef(
72583
72555
  className,
72584
72556
  variant,
72585
72557
  asChild = false,
72586
- tooltip,
72558
+ tooltip: tooltip2,
72587
72559
  iconStart: IconStart,
72588
72560
  iconEnd: IconEnd,
72589
72561
  children: children2,
@@ -72608,9 +72580,9 @@ const ToolbarButton = forwardRef(
72608
72580
  ]
72609
72581
  }
72610
72582
  );
72611
- return tooltip ? /* @__PURE__ */ jsxs(Tooltip, { children: [
72583
+ return tooltip2 ? /* @__PURE__ */ jsxs(Tooltip, { children: [
72612
72584
  /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: button2 }),
72613
- /* @__PURE__ */ jsx(TooltipContent, { side: "bottom", children: tooltip })
72585
+ /* @__PURE__ */ jsx(TooltipContent, { side: "bottom", children: tooltip2 })
72614
72586
  ] }) : button2;
72615
72587
  }
72616
72588
  );
@@ -73230,7 +73202,7 @@ const PromptCommandItem = ({ prompt, onSelect, selectActionLabel }) => /* @__PUR
73230
73202
  ] }),
73231
73203
  /* @__PURE__ */ jsx("strong", { children: prompt.name })
73232
73204
  ] }),
73233
- prompt.draft && /* @__PURE__ */ jsx(Badge3, { variant: "outline", className: "tw-text-xxs tw-mt-0.5", children: "Draft" })
73205
+ prompt.draft && /* @__PURE__ */ jsx(Badge3, { variant: "secondary", className: "tw-text-xxs tw-mt-0.5", children: "Draft" })
73234
73206
  ] }),
73235
73207
  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
73208
  ] }),
@@ -73249,7 +73221,7 @@ const CodyCommandItem = ({ command, onSelect, selectActionLabel, showCommandOrig
73249
73221
  /* @__PURE__ */ jsxs("div", { children: [
73250
73222
  /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-wrap tw-gap-3 tw-w-full tw-items-start", children: [
73251
73223
  /* @__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" })
73224
+ 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
73225
  ] }),
73254
73226
  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
73227
  ] }),
@@ -73413,7 +73385,7 @@ const SubmitButton = ({ onClick, state = "submittable", className }) => {
73413
73385
  type: "submit",
73414
73386
  variant: "ghostRoundedIcon",
73415
73387
  className: clsx$1(
73416
- "tw-relative tw-w-[20px] tw-h-[20px] tw-bg-transparent tw-group",
73388
+ "tw-relative tw-overflow-hidden tw-w-[20px] tw-h-[20px] tw-bg-transparent tw-group",
73417
73389
  className
73418
73390
  ),
73419
73391
  title: "Stop",
@@ -73528,7 +73500,7 @@ const Toolbar = ({
73528
73500
  }
73529
73501
  )
73530
73502
  ] }),
73531
- /* @__PURE__ */ jsx("div", { className: "tw-flex-1 tw-text-right", children: /* @__PURE__ */ jsx(
73503
+ /* @__PURE__ */ jsx("div", { className: "tw-flex tw-justify-end tw-flex-1 tw-text-right", children: /* @__PURE__ */ jsx(
73532
73504
  SubmitButton,
73533
73505
  {
73534
73506
  onClick: onSubmitClick,
@@ -73891,32 +73863,40 @@ const Transcript = (props) => {
73891
73863
  () => transcriptToInteractionPairs(transcript, messageInProgress),
73892
73864
  [transcript, messageInProgress]
73893
73865
  );
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
- }) });
73866
+ return /* @__PURE__ */ jsx(
73867
+ "div",
73868
+ {
73869
+ className: clsx$1("tw-px-6 tw-pt-8 tw-pb-12 tw-flex tw-flex-col tw-gap-8", {
73870
+ "tw-flex-grow": transcript.length > 0
73871
+ }),
73872
+ children: interactions.map((interaction, i2) => {
73873
+ var _a, _b;
73874
+ return /* @__PURE__ */ jsx(
73875
+ TranscriptInteraction,
73876
+ {
73877
+ chatEnabled,
73878
+ userInfo,
73879
+ interaction,
73880
+ guardrails,
73881
+ postMessage,
73882
+ isTranscriptError,
73883
+ feedbackButtonsOnSubmit,
73884
+ copyButtonOnSubmit,
73885
+ insertButtonOnSubmit,
73886
+ isFirstInteraction: i2 === 0,
73887
+ isLastInteraction: i2 === interactions.length - 1,
73888
+ isLastSentInteraction: i2 === interactions.length - 2 && interaction.assistantMessage !== null,
73889
+ priorAssistantMessageIsLoading: Boolean(
73890
+ messageInProgress && ((_b = (_a = interactions.at(i2 - 1)) == null ? void 0 : _a.assistantMessage) == null ? void 0 : _b.isLoading)
73891
+ ),
73892
+ smartApply,
73893
+ smartApplyEnabled
73894
+ },
73895
+ i2
73896
+ );
73897
+ })
73898
+ }
73899
+ );
73920
73900
  };
73921
73901
  function transcriptToInteractionPairs(transcript, assistantMessageInProgress) {
73922
73902
  var _a;
@@ -73977,6 +73957,12 @@ const TranscriptInteraction = memo((props) => {
73977
73957
  const isContextLoading = Boolean(
73978
73958
  humanMessage.contextFiles === void 0 && isLastSentInteraction && (assistantMessage == null ? void 0 : assistantMessage.text) === void 0
73979
73959
  );
73960
+ const humanMessageInfo = useMemo(() => {
73961
+ if (assistantMessage && !isContextLoading) {
73962
+ return makeHumanMessageInfo({ humanMessage, assistantMessage }, humanEditorRef);
73963
+ }
73964
+ return null;
73965
+ }, [humanMessage, assistantMessage, isContextLoading]);
73980
73966
  return /* @__PURE__ */ jsxs(Fragment, { children: [
73981
73967
  /* @__PURE__ */ jsx(
73982
73968
  HumanMessageCell,
@@ -73992,7 +73978,8 @@ const TranscriptInteraction = memo((props) => {
73992
73978
  isFirstInteraction,
73993
73979
  isLastInteraction,
73994
73980
  isEditorInitiallyFocused: isLastInteraction,
73995
- editorRef: humanEditorRef
73981
+ editorRef: humanEditorRef,
73982
+ className: !isFirstInteraction && isLastInteraction ? "tw-mt-auto" : ""
73996
73983
  },
73997
73984
  humanMessage.index
73998
73985
  ),
@@ -74017,10 +74004,7 @@ const TranscriptInteraction = memo((props) => {
74017
74004
  insertButtonOnSubmit,
74018
74005
  postMessage,
74019
74006
  guardrails,
74020
- humanMessage: makeHumanMessageInfo(
74021
- { humanMessage, assistantMessage },
74022
- humanEditorRef
74023
- ),
74007
+ humanMessage: humanMessageInfo,
74024
74008
  isLoading: assistantMessage.isLoading,
74025
74009
  showFeedbackButtons: !assistantMessage.isLoading && !isTranscriptError && !assistantMessage.error && isLastSentInteraction,
74026
74010
  smartApply,
@@ -74034,6 +74018,7 @@ function focusLastHumanMessageEditor() {
74034
74018
  const elements2 = document.querySelectorAll("[data-lexical-editor]");
74035
74019
  const lastEditor = elements2.item(elements2.length - 1);
74036
74020
  lastEditor == null ? void 0 : lastEditor.focus();
74021
+ lastEditor == null ? void 0 : lastEditor.scrollIntoView();
74037
74022
  }
74038
74023
  function editHumanMessage(messageIndexInTranscript, editorValue) {
74039
74024
  getVSCodeAPI().postMessage({
@@ -74189,13 +74174,13 @@ const WelcomeMessage = ({
74189
74174
  }) => {
74190
74175
  localStorage.removeItem(localStorageKey);
74191
74176
  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: [
74177
+ 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
74178
  /* @__PURE__ */ jsx(
74194
74179
  CollapsiblePanel,
74195
74180
  {
74196
74181
  storageKey: "prompts",
74197
74182
  title: "Prompts & Commands",
74198
- className: "tw-mb-6 tw-mt-2",
74183
+ className: "tw-mb-6",
74199
74184
  contentClassName: "!tw-p-0 tw-overflow-clip",
74200
74185
  initialOpen: true,
74201
74186
  children: /* @__PURE__ */ jsx(
@@ -74264,23 +74249,21 @@ const ScrollDown = (props) => {
74264
74249
  const [canScrollDown, setCanScrollDown] = useState(false);
74265
74250
  const scrollerAPI = useMemo(() => createScrollerAPI(scrollableParent), [scrollableParent]);
74266
74251
  useEffect(() => {
74267
- function handleScroll2() {
74268
- const scrollPosition = scrollerAPI.getScrollTop();
74252
+ function calculateScrollState() {
74253
+ const scrollTop = scrollerAPI.getScrollTop();
74269
74254
  const scrollHeight = scrollerAPI.getScrollHeight();
74270
74255
  const clientHeight = scrollerAPI.getClientHeight();
74271
- setCanScrollDown(scrollPosition + clientHeight < scrollHeight - MARGIN);
74256
+ setCanScrollDown(scrollTop + clientHeight < scrollHeight - MARGIN);
74272
74257
  }
74273
- handleScroll2();
74274
- scrollerAPI.root.addEventListener("scroll", handleScroll2);
74275
- scrollerAPI.root.addEventListener("resize", handleScroll2);
74258
+ calculateScrollState();
74276
74259
  const resizeObserver = new ResizeObserver(() => {
74277
- handleScroll2();
74260
+ calculateScrollState();
74278
74261
  });
74279
74262
  resizeObserver.observe(scrollerAPI.getObserveElement());
74263
+ scrollerAPI.root.addEventListener("scroll", calculateScrollState);
74280
74264
  return () => {
74281
- scrollerAPI.root.removeEventListener("scroll", handleScroll2);
74282
- scrollerAPI.root.removeEventListener("resize", handleScroll2);
74283
74265
  resizeObserver.disconnect();
74266
+ scrollerAPI.root.removeEventListener("scroll", calculateScrollState);
74284
74267
  };
74285
74268
  }, [scrollerAPI]);
74286
74269
  const onClick = useCallback(() => {
@@ -74290,16 +74273,10 @@ const ScrollDown = (props) => {
74290
74273
  });
74291
74274
  parentOnClick == null ? void 0 : parentOnClick();
74292
74275
  }, [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;
74276
+ 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: [
74277
+ /* @__PURE__ */ jsx(ArrowDown, { size: 16 }),
74278
+ " Skip to end"
74279
+ ] }) }) : null;
74303
74280
  };
74304
74281
  const Chat = ({
74305
74282
  messageInProgress,
@@ -74850,8 +74827,17 @@ const AccountTab = () => {
74850
74827
  if (ide === CodyIDE.VSCode) {
74851
74828
  return null;
74852
74829
  }
74853
- const actions2 = [
74854
- {
74830
+ const actions2 = [];
74831
+ actions2.push({
74832
+ text: "Switch Account...",
74833
+ onClick: useCallback(() => {
74834
+ if (userInfo.user.username) {
74835
+ getVSCodeAPI().postMessage({ command: "command", id: "cody.auth.switchAccount" });
74836
+ }
74837
+ }, [userInfo])
74838
+ });
74839
+ if (isDotComUser) {
74840
+ actions2.push({
74855
74841
  text: "Manage Account",
74856
74842
  onClick: useCallback(() => {
74857
74843
  if (userInfo.user.username) {
@@ -74861,16 +74847,16 @@ const AccountTab = () => {
74861
74847
  getVSCodeAPI().postMessage({ command: "links", value: uri.toString() });
74862
74848
  }
74863
74849
  }, [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
- ];
74850
+ });
74851
+ }
74852
+ actions2.push({
74853
+ text: "Settings",
74854
+ onClick: () => getVSCodeAPI().postMessage({ command: "command", id: "cody.status-bar.interacted" })
74855
+ });
74856
+ actions2.push({
74857
+ text: "Sign Out",
74858
+ onClick: () => getVSCodeAPI().postMessage({ command: "auth", authKind: "signout" })
74859
+ });
74874
74860
  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
74861
  /* @__PURE__ */ jsx("h2", { children: "Account" }),
74876
74862
  /* @__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 +74887,17 @@ const AccountTab = () => {
74901
74887
  ))
74902
74888
  ] });
74903
74889
  };
74904
- const HistoryTab = ({ userHistory }) => {
74890
+ function getCreateNewChatCommand(options) {
74891
+ const { IDE, webviewType, multipleWebviewsEnabled } = options;
74892
+ return IDE === CodyIDE.Web ? "cody.chat.new" : webviewType === "sidebar" || !multipleWebviewsEnabled ? "cody.chat.newPanel" : "cody.chat.newEditorPanel";
74893
+ }
74894
+ const HistoryTab = ({
74895
+ userHistory,
74896
+ IDE,
74897
+ webviewType,
74898
+ multipleWebviewsEnabled,
74899
+ setView
74900
+ }) => {
74905
74901
  const chatByPeriod = useMemo(
74906
74902
  () => userHistory.filter((chat2) => chat2.interactions.length).reverse().reduce((acc, chat2) => {
74907
74903
  const period = getRelativeChatPeriod(new Date(chat2.lastInteractionTimestamp));
@@ -74922,62 +74918,102 @@ const HistoryTab = ({ userHistory }) => {
74922
74918
  },
74923
74919
  [userHistory]
74924
74920
  );
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,
74921
+ const handleStartNewChat = () => {
74922
+ getVSCodeAPI().postMessage({
74923
+ command: "command",
74924
+ id: getCreateNewChatCommand({ IDE, webviewType, multipleWebviewsEnabled })
74925
+ });
74926
+ setView(View.Chat);
74927
+ };
74928
+ const chats = Array.from(chatByPeriod);
74929
+ return /* @__PURE__ */ jsxs("div", { className: "tw-px-8 tw-pt-6 tw-pb-12 tw-flex tw-flex-col tw-gap-10", children: [
74930
+ chats.map(([period, chats2]) => /* @__PURE__ */ jsx(
74931
+ CollapsiblePanel,
74932
+ {
74933
+ storageKey: `history.${period}`,
74934
+ title: period,
74935
+ initialOpen: true,
74936
+ children: chats2.map(({ interactions, id: id2 }) => {
74937
+ var _a, _b, _c;
74938
+ const lastMessage = (_c = (_b = (_a = interactions[interactions.length - 1]) == null ? void 0 : _a.humanMessage) == null ? void 0 : _b.text) == null ? void 0 : _c.trim();
74939
+ return /* @__PURE__ */ jsxs("div", { className: "tw-inline-flex tw-justify-between", children: [
74940
+ /* @__PURE__ */ jsxs(
74941
+ Button3,
74942
+ {
74943
+ variant: "ghost",
74944
+ title: lastMessage,
74945
+ onClick: () => getVSCodeAPI().postMessage({
74946
+ command: "restoreHistory",
74947
+ chatID: id2
74948
+ }),
74949
+ className: "tw-text-left tw-truncate tw-w-full",
74950
+ children: [
74951
+ /* @__PURE__ */ jsx(
74952
+ MessageSquareText,
74953
+ {
74954
+ className: "tw-w-8 tw-h-8 tw-opacity-80",
74955
+ size: 16,
74956
+ strokeWidth: "1.25"
74957
+ }
74958
+ ),
74959
+ /* @__PURE__ */ jsx("span", { className: "tw-truncate tw-w-full", children: lastMessage })
74960
+ ]
74961
+ },
74962
+ id2
74963
+ ),
74964
+ /* @__PURE__ */ jsx(
74965
+ Button3,
74966
+ {
74967
+ variant: "ghost",
74968
+ title: "Delete chat",
74969
+ onClick: () => onDeleteButtonClick(id2),
74970
+ children: /* @__PURE__ */ jsx(
74971
+ Trash,
74948
74972
  {
74949
74973
  className: "tw-w-8 tw-h-8 tw-opacity-80",
74950
74974
  size: 16,
74951
74975
  strokeWidth: "1.25"
74952
74976
  }
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
- )) });
74977
+ )
74978
+ },
74979
+ id2
74980
+ )
74981
+ ] }, id2);
74982
+ })
74983
+ },
74984
+ period
74985
+ )),
74986
+ chats.length === 0 && /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-items-center tw-mt-6", children: [
74987
+ /* @__PURE__ */ jsx(
74988
+ History,
74989
+ {
74990
+ size: 20,
74991
+ strokeWidth: 1.25,
74992
+ className: "tw-mb-5 tw-text-muted-foreground"
74993
+ }
74994
+ ),
74995
+ /* @__PURE__ */ jsx("span", { className: "tw-text-lg tw-mb-4 tw-text-muted-foreground", children: "You have no chat history" }),
74996
+ /* @__PURE__ */ jsxs("span", { className: "tw-text-sm tw-text-muted-foreground tw-mb-8", children: [
74997
+ "Explore all your previous chats here. Track and ",
74998
+ /* @__PURE__ */ jsx("br", {}),
74999
+ " search through what you’ve been working on."
75000
+ ] }),
75001
+ /* @__PURE__ */ jsxs(
75002
+ Button3,
75003
+ {
75004
+ size: "sm",
75005
+ variant: "secondary",
75006
+ "aria-label": "Start a new chat",
75007
+ className: "tw-px-4 tw-py-2",
75008
+ onClick: handleStartNewChat,
75009
+ children: [
75010
+ /* @__PURE__ */ jsx(MessageSquarePlus, { size: 16, className: "tw-w-8 tw-h-8", strokeWidth: 1.25 }),
75011
+ "Start a new chat"
75012
+ ]
75013
+ }
75014
+ )
75015
+ ] })
75016
+ ] });
74981
75017
  };
74982
75018
  const SettingsTab = () => {
74983
75019
  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 +75030,141 @@ const SettingsTab = () => {
74994
75030
  "settings"
74995
75031
  ) });
74996
75032
  };
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";
75033
+ const tabsRoot = "_tabs-root_1do08_10";
75034
+ const tabsContainer = "_tabs-container_1do08_18";
75035
+ const tabs = "_tabs_1do08_10";
75036
+ const subTabs = "_sub-tabs_1do08_37";
75037
+ const tabActionLabel = "_tab-action-label_1do08_47";
75038
+ const tooltip = "_tooltip_1do08_51";
75039
+ const dialogOverlay = "_dialog-overlay_1do08_1";
75040
+ const dialogContent = "_dialog-content_1do08_1";
75041
+ const dialogTitle = "_dialog-title_1do08_1";
75042
+ const dialogDescription = "_dialog-description_1do08_1";
75043
+ const dialogFooter = "_dialog-footer_1do08_1";
75004
75044
  const styles$2 = {
75045
+ tabsRoot,
75005
75046
  tabsContainer,
75006
- activeTab,
75047
+ tabs,
75048
+ subTabs,
75049
+ tabActionLabel,
75050
+ tooltip,
75007
75051
  dialogOverlay,
75008
75052
  dialogContent,
75009
75053
  dialogTitle,
75010
75054
  dialogDescription,
75011
75055
  dialogFooter
75012
75056
  };
75057
+ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75058
+ var _a;
75059
+ const tabItems = useTabs({ IDE, onDownloadChatClick });
75060
+ const currentViewSubActions = ((_a = tabItems.find((tab2) => tab2.view === currentView)) == null ? void 0 : _a.subActions) ?? [];
75061
+ const handleClick = useCallback(
75062
+ (view, command, changesView) => {
75063
+ if (command) {
75064
+ getVSCodeAPI().postMessage({ command: "command", id: command });
75065
+ }
75066
+ if (changesView) {
75067
+ setView(view);
75068
+ }
75069
+ },
75070
+ [setView]
75071
+ );
75072
+ const handleSubActionClick = useCallback((action) => {
75073
+ if (action.callback) {
75074
+ action.callback();
75075
+ } else {
75076
+ getVSCodeAPI().postMessage({
75077
+ command: "command",
75078
+ id: action.command,
75079
+ arg: action.arg
75080
+ });
75081
+ }
75082
+ }, []);
75083
+ return /* @__PURE__ */ jsx("div", { className: styles$2.tabsRoot, children: /* @__PURE__ */ jsxs(List, { "aria-label": "cody-webview", className: styles$2.tabsContainer, children: [
75084
+ /* @__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(
75085
+ TabButton,
75086
+ {
75087
+ Icon: Icon2,
75088
+ view,
75089
+ title: title2,
75090
+ isActive: currentView === view,
75091
+ onClick: () => handleClick(view, command, changesView),
75092
+ "data-testid": `tab-${view}`
75093
+ }
75094
+ ) }, view)) }),
75095
+ /* @__PURE__ */ jsx("div", { className: styles$2.subTabs, children: currentViewSubActions.map((subAction) => /* @__PURE__ */ jsx(Fragment$1, { children: subAction.confirmation ? /* @__PURE__ */ jsx(
75096
+ ActionButtonWithConfirmation,
75097
+ {
75098
+ title: subAction.title,
75099
+ Icon: subAction.Icon,
75100
+ alwaysShowTitle: subAction.alwaysShowTitle,
75101
+ tooltipExtra: subAction.tooltipExtra,
75102
+ dialogTitle: subAction.confirmation.title,
75103
+ dialogDescription: subAction.confirmation.description,
75104
+ dialogConfirmAction: subAction.confirmation.confirmationAction,
75105
+ onConfirm: () => handleSubActionClick(subAction)
75106
+ }
75107
+ ) : /* @__PURE__ */ jsx(
75108
+ TabButton,
75109
+ {
75110
+ Icon: subAction.Icon,
75111
+ title: subAction.title,
75112
+ alwaysShowTitle: subAction.alwaysShowTitle,
75113
+ tooltipExtra: subAction.tooltipExtra,
75114
+ onClick: () => handleSubActionClick(subAction),
75115
+ prominent: true
75116
+ }
75117
+ ) }, subAction.command)) })
75118
+ ] }) });
75119
+ };
75120
+ const ActionButtonWithConfirmation = (props) => {
75121
+ const {
75122
+ title: title2,
75123
+ Icon: Icon2,
75124
+ prominent,
75125
+ alwaysShowTitle,
75126
+ tooltipExtra,
75127
+ onConfirm,
75128
+ dialogTitle: dialogTitle2,
75129
+ dialogConfirmAction,
75130
+ dialogDescription: dialogDescription2
75131
+ } = props;
75132
+ const [state, setState] = useState(false);
75133
+ return /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9, { open: state, onOpenChange: setState, children: [
75134
+ /* @__PURE__ */ jsx(
75135
+ TabButton,
75136
+ {
75137
+ Icon: Icon2,
75138
+ title: title2,
75139
+ alwaysShowTitle,
75140
+ tooltipExtra,
75141
+ prominent,
75142
+ onClick: () => setState(true)
75143
+ }
75144
+ ),
75145
+ /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$602eac185826482c, { children: [
75146
+ /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$c6fdb837b070b4ff, { className: styles$2.dialogOverlay }),
75147
+ /* @__PURE__ */ jsxs($5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2, { className: styles$2.dialogContent, "data-cody-ui-dialog": true, children: [
75148
+ /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$f99233281efd08a0, { className: styles$2.dialogTitle, children: dialogTitle2 }),
75149
+ /* @__PURE__ */ jsx($5d3850c4d0b4e6c7$export$393edc798c47379d, { className: styles$2.dialogDescription, children: dialogDescription2 }),
75150
+ /* @__PURE__ */ jsxs("footer", { className: styles$2.dialogFooter, children: [
75151
+ /* @__PURE__ */ jsx(Button3, { variant: "secondary", onClick: () => setState(false), children: "Cancel" }),
75152
+ /* @__PURE__ */ jsx(
75153
+ Button3,
75154
+ {
75155
+ variant: "default",
75156
+ onClick: () => {
75157
+ onConfirm();
75158
+ setState(false);
75159
+ },
75160
+ children: dialogConfirmAction
75161
+ }
75162
+ )
75163
+ ] })
75164
+ ] })
75165
+ ] })
75166
+ ] });
75167
+ };
75013
75168
  const TabButton = forwardRef(
75014
75169
  ({
75015
75170
  Icon: Icon2,
@@ -75037,11 +75192,11 @@ const TabButton = forwardRef(
75037
75192
  "data-testid": dataTestId,
75038
75193
  children: [
75039
75194
  /* @__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 })
75195
+ /* @__PURE__ */ jsx("span", { className: alwaysShowTitle ? "" : styles$2.tabActionLabel, children: title2 })
75041
75196
  ]
75042
75197
  }
75043
75198
  ) }),
75044
- /* @__PURE__ */ jsxs(TooltipContent, { className: "md:tw-hidden", children: [
75199
+ /* @__PURE__ */ jsxs(TooltipContent, { className: styles$2.tooltip, children: [
75045
75200
  title2,
75046
75201
  " ",
75047
75202
  tooltipExtra
@@ -75049,12 +75204,12 @@ const TabButton = forwardRef(
75049
75204
  ] })
75050
75205
  );
75051
75206
  TabButton.displayName = "TabButton";
75052
- const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75053
- var _a;
75207
+ function useTabs(input) {
75208
+ const { IDE, onDownloadChatClick } = input;
75054
75209
  const {
75055
75210
  config: { webviewType, multipleWebviewsEnabled }
75056
75211
  } = useConfig();
75057
- const tabItems = useMemo(
75212
+ return useMemo(
75058
75213
  () => [
75059
75214
  {
75060
75215
  view: View.Chat,
@@ -75066,7 +75221,11 @@ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75066
75221
  alwaysShowTitle: true,
75067
75222
  tooltipExtra: /* @__PURE__ */ jsx(Fragment, { children: IDE === CodyIDE.VSCode && /* @__PURE__ */ jsx(Kbd, { macOS: "shift+opt+l", linuxAndWindows: "shift+alt+l" }) }),
75068
75223
  Icon: MessageSquarePlus,
75069
- command: IDE === CodyIDE.Web ? "cody.chat.new" : webviewType === "sidebar" || !multipleWebviewsEnabled ? "cody.chat.newPanel" : "cody.chat.newEditorPanel"
75224
+ command: getCreateNewChatCommand({
75225
+ IDE,
75226
+ webviewType,
75227
+ multipleWebviewsEnabled
75228
+ })
75070
75229
  },
75071
75230
  multipleWebviewsEnabled ? {
75072
75231
  title: "Open in Editor",
@@ -75129,132 +75288,7 @@ const TabsBar = ({ currentView, setView, IDE, onDownloadChatClick }) => {
75129
75288
  ].filter(isDefined),
75130
75289
  [IDE, webviewType, onDownloadChatClick, multipleWebviewsEnabled]
75131
75290
  );
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
- };
75291
+ }
75258
75292
  const CodyPanel = ({
75259
75293
  view,
75260
75294
  setView,
@@ -75318,7 +75352,16 @@ const CodyPanel = ({
75318
75352
  setView
75319
75353
  }
75320
75354
  ),
75321
- view === View.History && /* @__PURE__ */ jsx(HistoryTab, { userHistory }),
75355
+ view === View.History && /* @__PURE__ */ jsx(
75356
+ HistoryTab,
75357
+ {
75358
+ IDE: config.agentIDE || CodyIDE.VSCode,
75359
+ setView,
75360
+ webviewType: config.webviewType,
75361
+ multipleWebviewsEnabled: config.multipleWebviewsEnabled,
75362
+ userHistory
75363
+ }
75364
+ ),
75322
75365
  view === View.Prompts && /* @__PURE__ */ jsx(PromptsTab, { setView }),
75323
75366
  view === View.Account && /* @__PURE__ */ jsx(AccountTab, {}),
75324
75367
  view === View.Settings && /* @__PURE__ */ jsx(SettingsTab, {})
@@ -75438,7 +75481,7 @@ function useCodyWebAgent(input) {
75438
75481
  const { serverEndpoint, accessToken, telemetryClientName, customHeaders, createAgentWorker } = input;
75439
75482
  const activeWebviewPanelIDRef = useRef("");
75440
75483
  const [client, setClient] = useState(null);
75441
- useEffect(() => {
75484
+ useEffectOnce(() => {
75442
75485
  createAgentClient({
75443
75486
  customHeaders,
75444
75487
  telemetryClientName,
@@ -75462,16 +75505,15 @@ function useCodyWebAgent(input) {
75462
75505
  message: { chatID: chatId, command: "restoreHistory" }
75463
75506
  });
75464
75507
  }, []);
75508
+ const isInitRef = useRef(false);
75465
75509
  const vscodeAPI = useVSCodeAPI({ activeWebviewPanelIDRef, createNewChat, client });
75466
75510
  useEffect(() => {
75511
+ if (isInitRef.current || !client || isErrorLike(client)) {
75512
+ return;
75513
+ }
75467
75514
  void createNewChat(client);
75515
+ isInitRef.current = true;
75468
75516
  }, [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
75517
  return { client, vscodeAPI };
75476
75518
  }
75477
75519
  function useVSCodeAPI(input) {
@@ -75530,6 +75572,17 @@ function useVSCodeAPI(input) {
75530
75572
  return vscodeAPI;
75531
75573
  }, [client, createNewChat, activeWebviewPanelIDRef]);
75532
75574
  }
75575
+ function useEffectOnce(effect, deps) {
75576
+ const isInitRef = useRef(false);
75577
+ useEffect(() => {
75578
+ if (isInitRef.current) {
75579
+ return;
75580
+ }
75581
+ const result = effect();
75582
+ isInitRef.current = true;
75583
+ return result;
75584
+ }, deps);
75585
+ }
75533
75586
  const root$1 = "_root_maej5_2";
75534
75587
  const container = "_container_maej5_10";
75535
75588
  const styles$1 = {
@@ -75778,7 +75831,7 @@ const CodyWebPanel = (props) => {
75778
75831
  title: fileURL,
75779
75832
  uri: URI.file(`${repository.name}/${fileURL}/`),
75780
75833
  providerUri: REMOTE_DIRECTORY_PROVIDER_URI,
75781
- description: " ",
75834
+ description: "Current directory",
75782
75835
  source: ContextItemSource.Initial,
75783
75836
  mention: {
75784
75837
  data: {
@@ -75786,7 +75839,7 @@ const CodyWebPanel = (props) => {
75786
75839
  repoID: repository.id,
75787
75840
  directoryPath: `${fileURL}/`
75788
75841
  },
75789
- description: " "
75842
+ description: fileURL
75790
75843
  }
75791
75844
  });
75792
75845
  } else {