@qredence/fleet 0.10.1 → 0.10.2
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/CHANGELOG.md +13 -0
- package/dist/web/client/assets/{artifacts-panel-6JEdy6jU.js → artifacts-panel-CfWH5cQn.js} +1 -1
- package/dist/web/client/assets/{chat-command-palette-Bxr5EkO6.js → chat-command-palette-CKGrP-Ke.js} +1 -1
- package/dist/web/client/assets/{ease-DYVhTl2n.js → ease-nNJMFgD_.js} +1 -1
- package/dist/web/client/assets/globals-C6h6fq-s.css +2 -0
- package/dist/web/client/assets/{index-CEZTSuLf.js → index-D3OD2pV7.js} +2 -2
- package/dist/web/client/assets/{model-selector-list-CbDAT0Rw.js → model-selector-list-CIJArf3L.js} +1 -1
- package/dist/web/client/assets/{prompt-input-CoV1gTUQ.js → prompt-input-0kaw0ekd.js} +1 -1
- package/dist/web/client/assets/{right-panel-registry-BAJ6TuEY.js → right-panel-registry-BkBAryPm.js} +2 -2
- package/dist/web/client/assets/routes-DgbWbQOu.js +14 -0
- package/dist/web/client/assets/{session-activity-panel-DwaXiSrS.js → session-activity-panel-BloVPsLJ.js} +1 -1
- package/dist/web/client/assets/{session-tool-renderer-DEABxZG3.js → session-tool-renderer-CGMatufW.js} +1 -1
- package/dist/web/client/assets/{subagent-chat-panel-R2RoX1Yt.js → subagent-chat-panel-xm-zBsFL.js} +1 -1
- package/dist/web/client/assets/{subagent-transcript-DVZhMo7a.js → subagent-transcript-BzToBVWk.js} +1 -1
- package/dist/web/client/assets/{subagents-panel-CMMRUP8F.js → subagents-panel-B5ooG4sS.js} +1 -1
- package/dist/web/client/assets/{tool-part-normalizer-CF6bmJ0s.js → tool-part-normalizer-CJ2sY87r.js} +1 -1
- package/dist/web/client/assets/{tool-result-7qREIVv_.js → tool-result-C_RIixge.js} +4 -4
- package/dist/web/client/assets/{tool-timeline-CGhwMeNl.js → tool-timeline-BVY5VQ3a.js} +2 -2
- package/dist/web/client/assets/{use-reduced-motion-CFEp5oKr.js → use-reduced-motion-69Ji0Qlf.js} +1 -1
- package/dist/web/client/assets/workspace-panel-DsZZnfkm.js +1 -0
- package/dist/web/client/bundle-budget.json +5 -5
- package/dist/web/server/{_tanstack-start-manifest_v-BiMhF9NX-QUZEGAB6.js → _tanstack-start-manifest_v-CGHXgy5L-KSOQEPW7.js} +9 -9
- package/dist/web/server/{artifacts-panel-BNiaRF83-HDC6VQ66.js → artifacts-panel-CHPMYc6C-OWIYGSRM.js} +5 -5
- package/dist/web/server/{chat-command-palette-CT9aJAWG-LV26BDEW.js → chat-command-palette-VF4C0ttN-GY52QBFP.js} +3 -3
- package/dist/web/server/{chunk-RX2ZJARF.js → chunk-4OLRCVML.js} +2 -21
- package/dist/web/server/{chunk-LEZMRXSP.js → chunk-7DUB7HGF.js} +3 -3
- package/dist/web/server/{chunk-3CU2ITG7.js → chunk-GW7HYECO.js} +169 -528
- package/dist/web/server/{chunk-3R7XCOWI.js → chunk-LYJ3XDEZ.js} +5 -5
- package/dist/web/server/{chunk-4YQ7RBB7.js → chunk-MDGXRDJM.js} +3 -3
- package/dist/web/server/{chunk-5XRESJQR.js → chunk-NDU4LK5M.js} +3 -3
- package/dist/web/server/{chunk-27J2LPAW.js → chunk-P3ZJ6L7V.js} +2 -2
- package/dist/web/server/{chunk-KBMRRJQN.js → chunk-PBNUO4IN.js} +2 -2
- package/dist/web/server/{chunk-4TKPOOIG.js → chunk-W72ZBCJ5.js} +4 -4
- package/dist/web/server/{create-project-dialog-EwieT1Vw-X5MYQSZM.js → create-project-dialog-CSZHeLNg-EEW3DRTY.js} +3 -3
- package/dist/web/server/{model-selector-list-By_G7_Hr-GXT27BZO.js → model-selector-list-q8bMnmhy-SPFJGUBT.js} +2 -2
- package/dist/web/server/{openui-renderer-DCkg_JoD-4QCKSVY5.js → openui-renderer-BkDeIpwC-S5BOLH5L.js} +2 -2
- package/dist/web/server/{resources-panel-s0mgyvgQ-FVMBBLJJ.js → resources-panel-tCQCqEQv-NJO5FRHW.js} +4 -4
- package/dist/web/server/{router-DXxChQOI-B7VVEX3H.js → router-DBc-HYGW-CC6DTCFR.js} +1 -1
- package/dist/web/server/{routes-D-g2ILNg-LDYCQ4NU.js → routes-CcRh_tDy-M7ZRBLVA.js} +2 -2
- package/dist/web/server/server.js +2 -2
- package/dist/web/server/{session-activity-panel-wC0jAJvs-QAHJXPAM.js → session-activity-panel-CS56rTyW-J4GAZSTC.js} +4 -4
- package/dist/web/server/{session-reasoning-panel-B_K8YgF5-AQPMFM3Y.js → session-reasoning-panel-DlqaQNE2-RMOBVYVD.js} +3 -3
- package/dist/web/server/{session-tool-renderer-D96BACVh-CH5CV3TS.js → session-tool-renderer-CHYJwJej-Z3K5TRIZ.js} +4 -4
- package/dist/web/server/{session-tree-panel-CZGXNZIP-FBB3XGMN.js → session-tree-panel-B2GT3Hf_-WGHVVRRR.js} +3 -3
- package/dist/web/server/{settings-dialog-BrjqiTVe-H7WOTB4I.js → settings-dialog-7V9x-CPC-6IEB2DFH.js} +4 -4
- package/dist/web/server/{subagent-chat-panel-Dz62jo_m-X4ZRN5KI.js → subagent-chat-panel-Cjg1oOFO-PNWSFYNA.js} +7 -7
- package/dist/web/server/{subagents-panel-CwpbzJJz-N3ISHODM.js → subagents-panel-DPfqOHdw-B74PSAMP.js} +7 -7
- package/dist/web/server/{workspace-panel-C7akv5b9-XUKEHPOP.js → workspace-panel-DRaU8AWD-7AYOEM55.js} +4 -4
- package/package.json +1 -1
- package/dist/web/client/assets/globals-DDDleTbS.css +0 -2
- package/dist/web/client/assets/routes-EKRITFZz.js +0 -14
- package/dist/web/client/assets/workspace-panel-Da5I4p_t.js +0 -1
|
@@ -39,9 +39,8 @@ import {
|
|
|
39
39
|
EASE_OUT,
|
|
40
40
|
SPRING_LAYOUT,
|
|
41
41
|
SPRING_PRESS,
|
|
42
|
-
SPRING_SWAP
|
|
43
|
-
|
|
44
|
-
} from "./chunk-RX2ZJARF.js";
|
|
42
|
+
SPRING_SWAP
|
|
43
|
+
} from "./chunk-4OLRCVML.js";
|
|
45
44
|
import {
|
|
46
45
|
UiErrorBoundary,
|
|
47
46
|
decodeOpenPanelActionMessage,
|
|
@@ -525,7 +524,7 @@ function isDaytonaNotConnectedError(error) {
|
|
|
525
524
|
return error.status === 403;
|
|
526
525
|
}
|
|
527
526
|
|
|
528
|
-
// web/app/dist/server/assets/routes-
|
|
527
|
+
// web/app/dist/server/assets/routes-CcRh_tDy.js
|
|
529
528
|
import { Fragment as Fragment4, Suspense as Suspense2, createContext as createContext8, forwardRef as forwardRef15, isValidElement, lazy as lazy2, memo, useCallback as useCallback3, useContext as useContext8, useEffect as useEffect3, useEffectEvent, useId, useLayoutEffect, useMemo as useMemo8, useReducer, useRef as useRef12, useState as useState7, useSyncExternalStore as useSyncExternalStore2 } from "react";
|
|
530
529
|
import { Fragment as Fragment$1, jsx as jsx4, jsxs } from "react/jsx-runtime";
|
|
531
530
|
import { createPortal } from "react-dom";
|
|
@@ -3233,7 +3232,7 @@ var TabsList = /* @__PURE__ */ React31.forwardRef(function TabsList2(componentPr
|
|
|
3233
3232
|
});
|
|
3234
3233
|
if (process.env.NODE_ENV !== "production") TabsList.displayName = "TabsList";
|
|
3235
3234
|
|
|
3236
|
-
// web/app/dist/server/assets/routes-
|
|
3235
|
+
// web/app/dist/server/assets/routes-CcRh_tDy.js
|
|
3237
3236
|
function isChatTextPart(part) {
|
|
3238
3237
|
return part.type === "text";
|
|
3239
3238
|
}
|
|
@@ -3485,7 +3484,7 @@ function PromptInput({ value, defaultValue = "", onValueChange, onSubmit, loadin
|
|
|
3485
3484
|
]
|
|
3486
3485
|
});
|
|
3487
3486
|
}
|
|
3488
|
-
var LazyGenerativeTextRenderer = lazy2(() => import("./openui-renderer-
|
|
3487
|
+
var LazyGenerativeTextRenderer = lazy2(() => import("./openui-renderer-BkDeIpwC-S5BOLH5L.js").then(({ GenerativeTextRenderer }) => ({ default: GenerativeTextRenderer })));
|
|
3489
3488
|
function PlainTextFallback({ className, content }) {
|
|
3490
3489
|
return /* @__PURE__ */ jsx4("div", {
|
|
3491
3490
|
className: className ? `${className} whitespace-pre-wrap` : "whitespace-pre-wrap",
|
|
@@ -5479,13 +5478,13 @@ function normalizeAssistantToolParts(parts) {
|
|
|
5479
5478
|
});
|
|
5480
5479
|
return changed ? normalizedParts : parts;
|
|
5481
5480
|
}
|
|
5482
|
-
var LazyArtifactsPanel = lazy2(() => import("./artifacts-panel-
|
|
5483
|
-
var LazyResourcesPanel = lazy2(() => import("./resources-panel-
|
|
5481
|
+
var LazyArtifactsPanel = lazy2(() => import("./artifacts-panel-CHPMYc6C-OWIYGSRM.js").then(({ ArtifactsPanelContent }) => ({ default: ArtifactsPanelContent })));
|
|
5482
|
+
var LazyResourcesPanel = lazy2(() => import("./resources-panel-tCQCqEQv-NJO5FRHW.js").then(({ ResourcesPanelContent }) => ({ default: ResourcesPanelContent })));
|
|
5484
5483
|
var LazySessionInsightsPanel = lazy2(() => import("./session-insights-panel-BiVObm_6-AP4FITT7.js").then(({ SessionInsightsPanel }) => ({ default: SessionInsightsPanel })));
|
|
5485
5484
|
var LazyReplPanel = lazy2(() => import("./repl-panel-1kSS1UGd-POXRYDDJ.js").then(({ ReplPanelContent }) => ({ default: ReplPanelContent })));
|
|
5486
|
-
var LazySubagentsPanel = lazy2(() => import("./subagents-panel-
|
|
5487
|
-
var LazyWorkspacePanel = lazy2(() => import("./workspace-panel-
|
|
5488
|
-
var LazySessionTreePanel = lazy2(() => import("./session-tree-panel-
|
|
5485
|
+
var LazySubagentsPanel = lazy2(() => import("./subagents-panel-DPfqOHdw-B74PSAMP.js").then(({ SubagentsPanelContent }) => ({ default: SubagentsPanelContent })));
|
|
5486
|
+
var LazyWorkspacePanel = lazy2(() => import("./workspace-panel-DRaU8AWD-7AYOEM55.js").then(({ WorkspacePanelContent }) => ({ default: WorkspacePanelContent })));
|
|
5487
|
+
var LazySessionTreePanel = lazy2(() => import("./session-tree-panel-B2GT3Hf_-WGHVVRRR.js").then(({ SessionTreePanel }) => ({ default: SessionTreePanel })));
|
|
5489
5488
|
function PanelFallback() {
|
|
5490
5489
|
return /* @__PURE__ */ jsxs("div", {
|
|
5491
5490
|
className: "flex min-h-32 flex-col gap-3 p-4",
|
|
@@ -7124,7 +7123,7 @@ function useInputBarState({ models, status, thinkingLevel, onModelChange, onThin
|
|
|
7124
7123
|
value
|
|
7125
7124
|
};
|
|
7126
7125
|
}
|
|
7127
|
-
var LazyModelSelectorList = lazy2(() => import("./model-selector-list-
|
|
7126
|
+
var LazyModelSelectorList = lazy2(() => import("./model-selector-list-q8bMnmhy-SPFJGUBT.js").then(({ ModelSelectorList: ModelSelectorList2 }) => ({ default: ModelSelectorList2 })));
|
|
7128
7127
|
function ModelSelectorList(props) {
|
|
7129
7128
|
return /* @__PURE__ */ jsx4(Suspense2, {
|
|
7130
7129
|
fallback: /* @__PURE__ */ jsx4("div", {
|
|
@@ -7624,7 +7623,7 @@ function iconFor(kind) {
|
|
|
7624
7623
|
return kind;
|
|
7625
7624
|
}
|
|
7626
7625
|
}
|
|
7627
|
-
var LazySessionToolRenderer = lazy2(() => import("./session-tool-renderer-
|
|
7626
|
+
var LazySessionToolRenderer = lazy2(() => import("./session-tool-renderer-CHYJwJej-Z3K5TRIZ.js").then((n) => n.n).then(({ SessionToolRenderer: SessionToolRenderer2 }) => ({ default: SessionToolRenderer2 })));
|
|
7628
7627
|
function SessionToolRenderer(props) {
|
|
7629
7628
|
return /* @__PURE__ */ jsx4(Suspense2, {
|
|
7630
7629
|
fallback: /* @__PURE__ */ jsx4("div", {
|
|
@@ -7635,7 +7634,7 @@ function SessionToolRenderer(props) {
|
|
|
7635
7634
|
children: /* @__PURE__ */ jsx4(LazySessionToolRenderer, { ...props })
|
|
7636
7635
|
});
|
|
7637
7636
|
}
|
|
7638
|
-
var LazySessionReasoningPanel = lazy2(() => import("./session-reasoning-panel-
|
|
7637
|
+
var LazySessionReasoningPanel = lazy2(() => import("./session-reasoning-panel-DlqaQNE2-RMOBVYVD.js").then(({ SessionReasoningPanel: SessionReasoningPanel2 }) => ({ default: SessionReasoningPanel2 })));
|
|
7639
7638
|
function SessionReasoningPanel(props) {
|
|
7640
7639
|
return /* @__PURE__ */ jsx4(Suspense2, {
|
|
7641
7640
|
fallback: /* @__PURE__ */ jsx4("div", {
|
|
@@ -12122,376 +12121,96 @@ function TabsTrigger({ className, ...props }) {
|
|
|
12122
12121
|
...props
|
|
12123
12122
|
});
|
|
12124
12123
|
}
|
|
12125
|
-
function
|
|
12126
|
-
const
|
|
12127
|
-
const
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
if (!containerRef.current) return;
|
|
12136
|
-
const rects = [];
|
|
12137
|
-
itemsRef.current.forEach((element, index2) => {
|
|
12138
|
-
rects[index2] = {
|
|
12139
|
-
top: element.offsetTop,
|
|
12140
|
-
height: element.offsetHeight,
|
|
12141
|
-
left: element.offsetLeft,
|
|
12142
|
-
width: element.offsetWidth
|
|
12143
|
-
};
|
|
12144
|
-
});
|
|
12145
|
-
const prev = itemRectsRef.current;
|
|
12146
|
-
let changed = prev.length !== rects.length;
|
|
12147
|
-
for (let i = 0; !changed && i < rects.length; i++) {
|
|
12148
|
-
const p = prev[i];
|
|
12149
|
-
const r = rects[i];
|
|
12150
|
-
if (p === r) continue;
|
|
12151
|
-
changed = !p || !r || p.top !== r.top || p.left !== r.left || p.width !== r.width || p.height !== r.height;
|
|
12152
|
-
}
|
|
12153
|
-
if (!changed) return;
|
|
12154
|
-
itemRectsRef.current = rects;
|
|
12155
|
-
setItemRects(rects);
|
|
12156
|
-
}, [containerRef]);
|
|
12157
|
-
const scheduleRemeasure = useCallback3(() => {
|
|
12158
|
-
if (remeasureRafIdRef.current !== null) cancelAnimationFrame(remeasureRafIdRef.current);
|
|
12159
|
-
remeasureRafIdRef.current = requestAnimationFrame(() => {
|
|
12160
|
-
remeasureRafIdRef.current = null;
|
|
12161
|
-
measureItems();
|
|
12162
|
-
});
|
|
12163
|
-
}, [measureItems]);
|
|
12164
|
-
const registerItem = useCallback3((index2, element) => {
|
|
12165
|
-
const existingObserver = itemObserversRef.current.get(index2);
|
|
12166
|
-
if (existingObserver) {
|
|
12167
|
-
existingObserver.disconnect();
|
|
12168
|
-
itemObserversRef.current.delete(index2);
|
|
12169
|
-
}
|
|
12170
|
-
if (element) {
|
|
12171
|
-
itemsRef.current.set(index2, element);
|
|
12172
|
-
if (typeof ResizeObserver !== "undefined") {
|
|
12173
|
-
const observer = new ResizeObserver(() => scheduleRemeasure());
|
|
12174
|
-
observer.observe(element);
|
|
12175
|
-
itemObserversRef.current.set(index2, observer);
|
|
12176
|
-
}
|
|
12177
|
-
} else itemsRef.current.delete(index2);
|
|
12178
|
-
scheduleRemeasure();
|
|
12179
|
-
}, [scheduleRemeasure]);
|
|
12180
|
-
const onMouseMove = useCallback3((e) => {
|
|
12181
|
-
const mouseX = e.clientX;
|
|
12182
|
-
const mouseY = e.clientY;
|
|
12183
|
-
if (rafIdRef.current !== null) cancelAnimationFrame(rafIdRef.current);
|
|
12184
|
-
rafIdRef.current = requestAnimationFrame(() => {
|
|
12185
|
-
rafIdRef.current = null;
|
|
12186
|
-
const container = containerRef.current;
|
|
12187
|
-
if (!container) return;
|
|
12188
|
-
const containerRect = container.getBoundingClientRect();
|
|
12189
|
-
const mousePos = axis === "x" ? mouseX : mouseY;
|
|
12190
|
-
let closestIndex = null;
|
|
12191
|
-
let closestDistance = Infinity;
|
|
12192
|
-
let containingIndex = null;
|
|
12193
|
-
const rects = itemRectsRef.current;
|
|
12194
|
-
const scrollOffset = axis === "x" ? container.scrollLeft : container.scrollTop;
|
|
12195
|
-
const borderOffset = axis === "x" ? container.clientLeft : container.clientTop;
|
|
12196
|
-
const containerEdge = axis === "x" ? containerRect.left : containerRect.top;
|
|
12197
|
-
const layoutSize = axis === "x" ? container.offsetWidth : container.offsetHeight;
|
|
12198
|
-
const visualSize = axis === "x" ? containerRect.width : containerRect.height;
|
|
12199
|
-
const scale = layoutSize > 0 ? visualSize / layoutSize : 1;
|
|
12200
|
-
for (let index2 = 0; index2 < rects.length; index2++) {
|
|
12201
|
-
const r = rects[index2];
|
|
12202
|
-
if (!r) continue;
|
|
12203
|
-
const itemStart = containerEdge + (borderOffset + (axis === "x" ? r.left : r.top) - scrollOffset) * scale;
|
|
12204
|
-
const itemSize = (axis === "x" ? r.width : r.height) * scale;
|
|
12205
|
-
const itemEnd = itemStart + itemSize;
|
|
12206
|
-
if (mousePos >= itemStart && mousePos <= itemEnd) containingIndex = index2;
|
|
12207
|
-
const itemCenter = itemStart + itemSize / 2;
|
|
12208
|
-
const distance = Math.abs(mousePos - itemCenter);
|
|
12209
|
-
if (distance < closestDistance) {
|
|
12210
|
-
closestDistance = distance;
|
|
12211
|
-
closestIndex = index2;
|
|
12212
|
-
}
|
|
12213
|
-
}
|
|
12214
|
-
setActiveIndex(containingIndex ?? closestIndex);
|
|
12215
|
-
});
|
|
12216
|
-
}, [axis, containerRef]);
|
|
12217
|
-
const onMouseLeave = useCallback3(() => {
|
|
12218
|
-
if (rafIdRef.current !== null) {
|
|
12219
|
-
cancelAnimationFrame(rafIdRef.current);
|
|
12220
|
-
rafIdRef.current = null;
|
|
12221
|
-
}
|
|
12222
|
-
setActiveIndex(null);
|
|
12223
|
-
}, []);
|
|
12224
|
-
useEffect3(() => {
|
|
12225
|
-
const container = containerRef.current;
|
|
12226
|
-
if (!container || typeof ResizeObserver === "undefined") return;
|
|
12227
|
-
const ro = new ResizeObserver(() => scheduleRemeasure());
|
|
12228
|
-
ro.observe(container);
|
|
12229
|
-
return () => ro.disconnect();
|
|
12230
|
-
}, [containerRef, scheduleRemeasure]);
|
|
12231
|
-
useEffect3(() => {
|
|
12232
|
-
return () => {
|
|
12233
|
-
if (rafIdRef.current !== null) cancelAnimationFrame(rafIdRef.current);
|
|
12234
|
-
if (remeasureRafIdRef.current !== null) cancelAnimationFrame(remeasureRafIdRef.current);
|
|
12235
|
-
itemObserversRef.current.forEach((observer) => {
|
|
12236
|
-
observer.disconnect();
|
|
12237
|
-
});
|
|
12238
|
-
itemObserversRef.current.clear();
|
|
12239
|
-
};
|
|
12240
|
-
}, []);
|
|
12241
|
-
return {
|
|
12242
|
-
activeIndex,
|
|
12243
|
-
setActiveIndex,
|
|
12244
|
-
itemRects,
|
|
12245
|
-
onMouseMove,
|
|
12246
|
-
onMouseLeave,
|
|
12247
|
-
registerItem,
|
|
12248
|
-
measureItems
|
|
12249
|
-
};
|
|
12250
|
-
}
|
|
12251
|
-
var ACTIVE_PILL_CLASS = "bg-background shadow-sm";
|
|
12252
|
-
var PILL_TRACK_CLASS = "rounded-full border border-border/70 bg-sidebar p-0.5 shadow-sm backdrop-blur";
|
|
12253
|
-
var PILL_RADIUS = "rounded-full";
|
|
12254
|
-
function chromeTone(isPill, isActive) {
|
|
12255
|
-
if (isActive) return isPill ? "text-foreground/75" : "text-foreground";
|
|
12256
|
-
return isPill ? "text-foreground/55" : "text-muted-foreground";
|
|
12257
|
-
}
|
|
12258
|
-
var TabsSubtleContext = createContext8(null);
|
|
12259
|
-
function useTabsSubtle() {
|
|
12260
|
-
const ctx = useContext8(TabsSubtleContext);
|
|
12261
|
-
if (!ctx) throw new Error("useTabsSubtle must be used within a TabsSubtle");
|
|
12262
|
-
return ctx;
|
|
12263
|
-
}
|
|
12264
|
-
function TabsSubtleIndicators({ selectedRect, hoverRect, focusRect, isHovering, isHoveringSelected }) {
|
|
12265
|
-
const instant = useReducedMotion() ? { duration: 0 } : void 0;
|
|
12266
|
-
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
12267
|
-
selectedRect ? /* @__PURE__ */ jsx4(m.div, {
|
|
12268
|
-
className: cn("pointer-events-none absolute", ACTIVE_PILL_CLASS, PILL_RADIUS),
|
|
12269
|
-
layout: true,
|
|
12270
|
-
initial: false,
|
|
12271
|
-
style: {
|
|
12272
|
-
left: selectedRect.left,
|
|
12273
|
-
top: selectedRect.top,
|
|
12274
|
-
width: selectedRect.width,
|
|
12275
|
-
height: selectedRect.height
|
|
12276
|
-
},
|
|
12277
|
-
animate: { opacity: isHovering ? 0.8 : 1 },
|
|
12278
|
-
transition: instant ?? {
|
|
12279
|
-
...spring.moderate.enter,
|
|
12280
|
-
opacity: { duration: 0.08 }
|
|
12281
|
-
}
|
|
12282
|
-
}) : null,
|
|
12283
|
-
/* @__PURE__ */ jsx4(AnimatePresence, { children: hoverRect && !isHoveringSelected ? /* @__PURE__ */ jsx4(m.div, {
|
|
12284
|
-
className: cn("pointer-events-none absolute", ACTIVE_PILL_CLASS, PILL_RADIUS),
|
|
12285
|
-
layout: true,
|
|
12286
|
-
style: {
|
|
12287
|
-
left: hoverRect.left,
|
|
12288
|
-
top: hoverRect.top,
|
|
12289
|
-
width: hoverRect.width,
|
|
12290
|
-
height: hoverRect.height
|
|
12291
|
-
},
|
|
12292
|
-
initial: { opacity: 0 },
|
|
12293
|
-
animate: { opacity: 0.4 },
|
|
12294
|
-
exit: {
|
|
12295
|
-
opacity: 0,
|
|
12296
|
-
transition: instant ?? spring.fast.exit
|
|
12297
|
-
},
|
|
12298
|
-
transition: instant ?? {
|
|
12299
|
-
...spring.fast.enter,
|
|
12300
|
-
opacity: { duration: 0.08 }
|
|
12301
|
-
}
|
|
12302
|
-
}) : null }),
|
|
12303
|
-
/* @__PURE__ */ jsx4(AnimatePresence, { children: focusRect ? /* @__PURE__ */ jsx4(m.div, {
|
|
12304
|
-
className: cn("pointer-events-none absolute z-20 border border-ring", PILL_RADIUS),
|
|
12305
|
-
layout: true,
|
|
12306
|
-
initial: false,
|
|
12307
|
-
style: {
|
|
12308
|
-
left: focusRect.left - 2,
|
|
12309
|
-
top: focusRect.top - 2,
|
|
12310
|
-
width: focusRect.width + 4,
|
|
12311
|
-
height: focusRect.height + 4
|
|
12312
|
-
},
|
|
12313
|
-
exit: {
|
|
12314
|
-
opacity: 0,
|
|
12315
|
-
transition: instant ?? spring.fast.exit
|
|
12316
|
-
},
|
|
12317
|
-
transition: instant ?? {
|
|
12318
|
-
...spring.fast.enter,
|
|
12319
|
-
opacity: { duration: 0.08 }
|
|
12320
|
-
}
|
|
12321
|
-
}) : null })
|
|
12322
|
-
] });
|
|
12323
|
-
}
|
|
12324
|
-
var TabsSubtle = forwardRef15(({ children, selectedIndex, onSelect, idPrefix, activeLabel = false, variant = "default", className, ...props }, ref) => {
|
|
12325
|
-
const containerRef = useRef12(null);
|
|
12326
|
-
const isMouseInside = useRef12(false);
|
|
12327
|
-
const isPill = variant === "pill";
|
|
12328
|
-
const { activeIndex: hoveredIndex, setActiveIndex: setHoveredIndex, itemRects: tabRects, onMouseMove: proximityMouseMove, onMouseLeave: proximityMouseLeave, registerItem } = useProximityHover(containerRef, { axis: "x" });
|
|
12329
|
-
const registerTab = useCallback3((index2, element) => {
|
|
12330
|
-
registerItem(index2, element);
|
|
12331
|
-
}, [registerItem]);
|
|
12332
|
-
const handleMouseMove = useCallback3((e) => {
|
|
12333
|
-
isMouseInside.current = true;
|
|
12334
|
-
proximityMouseMove(e);
|
|
12335
|
-
}, [proximityMouseMove]);
|
|
12336
|
-
const handleMouseLeave = useCallback3(() => {
|
|
12337
|
-
isMouseInside.current = false;
|
|
12338
|
-
proximityMouseLeave();
|
|
12339
|
-
}, [proximityMouseLeave]);
|
|
12340
|
-
const [focusedIndex, setFocusedIndex] = useState7(null);
|
|
12341
|
-
const selectedRect = selectedIndex >= 0 ? tabRects[selectedIndex] : void 0;
|
|
12342
|
-
const hoverRect = hoveredIndex !== null ? tabRects[hoveredIndex] : null;
|
|
12343
|
-
const focusRect = focusedIndex !== null ? tabRects[focusedIndex] : null;
|
|
12344
|
-
const isHoveringSelected = hoveredIndex === selectedIndex;
|
|
12345
|
-
const isHovering = hoveredIndex !== null && !isHoveringSelected;
|
|
12346
|
-
const tabsSubtleContextValue = useMemo8(() => ({
|
|
12347
|
-
registerTab,
|
|
12348
|
-
hoveredIndex,
|
|
12349
|
-
selectedIndex,
|
|
12350
|
-
idPrefix,
|
|
12351
|
-
activeLabel,
|
|
12352
|
-
variant,
|
|
12353
|
-
onSelect
|
|
12354
|
-
}), [
|
|
12355
|
-
registerTab,
|
|
12356
|
-
hoveredIndex,
|
|
12357
|
-
selectedIndex,
|
|
12358
|
-
idPrefix,
|
|
12359
|
-
activeLabel,
|
|
12360
|
-
variant,
|
|
12361
|
-
onSelect
|
|
12362
|
-
]);
|
|
12363
|
-
return /* @__PURE__ */ jsx4(TabsSubtleContext.Provider, {
|
|
12364
|
-
value: tabsSubtleContextValue,
|
|
12365
|
-
children: /* @__PURE__ */ jsx4(Tabs$1, {
|
|
12366
|
-
className: "data-horizontal:!flex-row !gap-0.5",
|
|
12367
|
-
value: selectedIndex >= 0 ? selectedIndex : null,
|
|
12368
|
-
onValueChange: (value) => {
|
|
12369
|
-
const index2 = typeof value === "number" ? value : Number(value);
|
|
12370
|
-
if (Number.isInteger(index2)) onSelect(index2);
|
|
12124
|
+
function TabStrip({ tabs, value, onValueChange, onClose, onNewSession, ariaLabel = "Tabs", width = "fill", density = "default", idPrefix, className, dataTestid }) {
|
|
12125
|
+
const compact = density === "compact";
|
|
12126
|
+
const fill = width === "fill";
|
|
12127
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
12128
|
+
className: cn("flex min-w-0 max-w-full items-center", compact ? "gap-0.5" : "gap-1", className),
|
|
12129
|
+
"data-testid": dataTestid,
|
|
12130
|
+
children: [/* @__PURE__ */ jsx4(Tabs$1, {
|
|
12131
|
+
className: cn("!flex-row !gap-0 min-w-0", fill ? "flex-1" : "w-fit"),
|
|
12132
|
+
onValueChange: (next) => {
|
|
12133
|
+
if (typeof next === "string") onValueChange(next);
|
|
12371
12134
|
},
|
|
12372
|
-
|
|
12373
|
-
|
|
12135
|
+
value,
|
|
12136
|
+
children: /* @__PURE__ */ jsx4(TabsList3, {
|
|
12137
|
+
"aria-label": ariaLabel,
|
|
12138
|
+
activateOnFocus: true,
|
|
12139
|
+
className: cn("!h-auto !w-fit !max-w-full !justify-start !rounded-none !bg-transparent !p-0", fill ? "min-w-0 flex-1" : "flex-none", compact ? "!gap-0.5" : "!gap-1", "overflow-x-auto overscroll-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"),
|
|
12374
12140
|
variant: "line",
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
|
|
12380
|
-
|
|
12381
|
-
|
|
12382
|
-
|
|
12383
|
-
|
|
12384
|
-
|
|
12385
|
-
|
|
12386
|
-
|
|
12387
|
-
|
|
12388
|
-
|
|
12389
|
-
|
|
12390
|
-
|
|
12391
|
-
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12397
|
-
|
|
12398
|
-
|
|
12399
|
-
|
|
12400
|
-
|
|
12401
|
-
|
|
12402
|
-
|
|
12403
|
-
|
|
12404
|
-
|
|
12141
|
+
children: tabs.map((tab) => {
|
|
12142
|
+
const active = tab.id === value;
|
|
12143
|
+
const Icon = tab.icon;
|
|
12144
|
+
const accessibleName = tab.ariaLabel ?? (tab.statusLabel ? `${tab.label}, ${tab.statusLabel}` : tab.label);
|
|
12145
|
+
const tabId = idPrefix ? `${idPrefix}-${encodeURIComponent(tab.id)}` : void 0;
|
|
12146
|
+
const panelId = idPrefix ? `${idPrefix}-panel-${encodeURIComponent(tab.id)}` : void 0;
|
|
12147
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
12148
|
+
className: cn("group/tab relative", fill ? "min-w-0 max-w-[164px] flex-1 basis-[164px]" : "shrink-0"),
|
|
12149
|
+
"data-tab-id": tab.id,
|
|
12150
|
+
children: [/* @__PURE__ */ jsxs(TabsTrigger, {
|
|
12151
|
+
"aria-controls": panelId,
|
|
12152
|
+
"aria-label": accessibleName,
|
|
12153
|
+
className: cn("h-7 w-full min-w-0 justify-start text-start text-label font-medium leading-none", "rounded-[7px] !shadow-none after:hidden", compact ? "gap-0.5 !px-1.5" : "gap-1.5 !px-2", active ? "!bg-surface-4 !text-foreground" : "!bg-transparent !text-foreground/45 hover:!bg-foreground/5 hover:!text-foreground/75", tab.closable && onClose && "pe-7"),
|
|
12154
|
+
id: tabId,
|
|
12155
|
+
onClick: () => {
|
|
12156
|
+
if (active) onValueChange(tab.id);
|
|
12157
|
+
},
|
|
12158
|
+
value: tab.id,
|
|
12159
|
+
children: [Icon ? /* @__PURE__ */ jsxs("span", {
|
|
12160
|
+
className: cn("flex shrink-0 items-center", compact ? "gap-0.5" : "gap-1"),
|
|
12161
|
+
children: [/* @__PURE__ */ jsx4(Icon, {
|
|
12162
|
+
"aria-hidden": "true",
|
|
12163
|
+
className: "size-3.5 shrink-0"
|
|
12164
|
+
}), tab.badge !== void 0 ? /* @__PURE__ */ jsx4("span", {
|
|
12165
|
+
className: "text-caption tabular-nums",
|
|
12166
|
+
children: tab.badge
|
|
12167
|
+
}) : null]
|
|
12168
|
+
}) : tab.dotClassName ? /* @__PURE__ */ jsx4("span", {
|
|
12169
|
+
"aria-hidden": "true",
|
|
12170
|
+
className: cn("size-1.5 shrink-0 rounded-full", tab.dotClassName)
|
|
12171
|
+
}) : null, /* @__PURE__ */ jsx4("span", {
|
|
12172
|
+
className: "min-w-0 flex-1 truncate text-start",
|
|
12173
|
+
children: tab.label
|
|
12174
|
+
})]
|
|
12175
|
+
}), tab.closable && onClose ? /* @__PURE__ */ jsx4(Button$1, {
|
|
12176
|
+
"aria-label": `Close ${tab.label} tab`,
|
|
12177
|
+
className: "absolute top-1/2 left-auto size-5 -translate-y-1/2 rounded-[5px] p-0 text-foreground/35 opacity-0 transition-opacity motion-reduce:transition-none hover:bg-foreground/10 hover:text-foreground/75 focus-visible:opacity-100 group-hover/tab:opacity-100 [inset-inline-start:auto] [inset-inline-end:0.25rem]",
|
|
12178
|
+
onClick: (event) => {
|
|
12179
|
+
event.stopPropagation();
|
|
12180
|
+
onClose(tab.id);
|
|
12181
|
+
},
|
|
12182
|
+
size: "icon-compact",
|
|
12183
|
+
title: `Close ${tab.label} tab`,
|
|
12184
|
+
type: "button",
|
|
12185
|
+
variant: "ghost",
|
|
12186
|
+
children: /* @__PURE__ */ jsx4(X, {
|
|
12187
|
+
"aria-hidden": "true",
|
|
12188
|
+
className: "size-3"
|
|
12189
|
+
})
|
|
12190
|
+
}) : null]
|
|
12191
|
+
}, tab.id);
|
|
12192
|
+
})
|
|
12405
12193
|
})
|
|
12406
|
-
})
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
12418
|
-
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
const tone = chromeTone(isPill, isActive);
|
|
12423
|
-
const ariaLabel = ariaLabelProp ?? (collapseLabel && !showLabel ? label : void 0);
|
|
12424
|
-
const labelContent = /* @__PURE__ */ jsxs("span", {
|
|
12425
|
-
className: cn("inline-grid whitespace-nowrap", isPill ? "text-label font-medium" : "text-title"),
|
|
12426
|
-
children: [/* @__PURE__ */ jsx4("span", {
|
|
12427
|
-
className: "invisible col-start-1 row-start-1 font-[550] [text-box:trim-both_cap_alphabetic]",
|
|
12428
|
-
"aria-hidden": "true",
|
|
12429
|
-
children: label
|
|
12430
|
-
}), /* @__PURE__ */ jsx4("span", {
|
|
12431
|
-
className: cn("col-start-1 row-start-1 transition-[color,font-weight] duration-80 [text-box:trim-both_cap_alphabetic]", isSelected ? "font-[550]" : "font-normal", tone),
|
|
12432
|
-
children: label
|
|
12433
|
-
})]
|
|
12434
|
-
});
|
|
12435
|
-
return /* @__PURE__ */ jsxs(TabsTrigger, {
|
|
12436
|
-
ref: (node) => {
|
|
12437
|
-
const button = node;
|
|
12438
|
-
internalRef.current = button;
|
|
12439
|
-
if (typeof ref === "function") ref(button);
|
|
12440
|
-
else if (ref) ref.current = button;
|
|
12441
|
-
},
|
|
12442
|
-
value: index2,
|
|
12443
|
-
"data-proximity-index": index2,
|
|
12444
|
-
id: idPrefix ? `${idPrefix}-tab-${index2}` : void 0,
|
|
12445
|
-
"aria-controls": idPrefix ? `${idPrefix}-panel-${index2}` : void 0,
|
|
12446
|
-
"aria-label": ariaLabel,
|
|
12447
|
-
className: cn("relative z-10 flex flex-none cursor-pointer items-center border-none !bg-transparent !shadow-none outline-none after:hidden", isPill ? "h-8 px-2.5" : collapseLabel ? "h-8 px-3" : "h-9 gap-2 px-3", PILL_RADIUS, className),
|
|
12448
|
-
...props,
|
|
12449
|
-
onClick: (event) => {
|
|
12450
|
-
onClick?.(event);
|
|
12451
|
-
if (isSelected) onSelect(index2);
|
|
12452
|
-
},
|
|
12453
|
-
children: [
|
|
12454
|
-
Icon ? /* @__PURE__ */ jsxs("span", {
|
|
12455
|
-
className: "flex shrink-0 items-center gap-1",
|
|
12456
|
-
children: [/* @__PURE__ */ jsx4(Icon, {
|
|
12457
|
-
"data-icon": "inline-start",
|
|
12458
|
-
size: isPill ? 14 : 16,
|
|
12459
|
-
strokeWidth: isActive ? 2 : 1.5,
|
|
12460
|
-
className: cn("shrink-0 transition-[color,stroke-width] duration-80", tone)
|
|
12461
|
-
}), badge !== void 0 ? /* @__PURE__ */ jsx4("span", {
|
|
12462
|
-
className: cn("text-caption tabular-nums transition-colors duration-80", tone),
|
|
12463
|
-
children: badge
|
|
12464
|
-
}) : null]
|
|
12465
|
-
}) : null,
|
|
12466
|
-
collapseLabel ? null : labelContent,
|
|
12467
|
-
/* @__PURE__ */ jsx4(AnimatePresence, {
|
|
12468
|
-
initial: false,
|
|
12469
|
-
children: collapseLabel && showLabel ? /* @__PURE__ */ jsx4(m.span, {
|
|
12470
|
-
className: "ml-2 overflow-hidden",
|
|
12471
|
-
initial: {
|
|
12472
|
-
clipPath: "inset(0 100% 0 0)",
|
|
12473
|
-
opacity: 0
|
|
12474
|
-
},
|
|
12475
|
-
animate: {
|
|
12476
|
-
clipPath: "inset(0 0% 0 0)",
|
|
12477
|
-
opacity: 1
|
|
12478
|
-
},
|
|
12479
|
-
exit: {
|
|
12480
|
-
clipPath: "inset(0 100% 0 0)",
|
|
12481
|
-
opacity: 0
|
|
12482
|
-
},
|
|
12483
|
-
transition: {
|
|
12484
|
-
...spring.fast.enter,
|
|
12485
|
-
opacity: { duration: 0.06 }
|
|
12486
|
-
},
|
|
12487
|
-
children: labelContent
|
|
12488
|
-
}, "label") : null
|
|
12194
|
+
}), onNewSession ? /* @__PURE__ */ jsx4(Button$1, {
|
|
12195
|
+
"aria-label": "New chat",
|
|
12196
|
+
className: cn(HIT_AREA_EXPAND_DENSE_CLASS, "relative z-10 size-7 shrink-0 rounded-[7px] text-foreground/50 hover:bg-foreground/7 hover:text-foreground/85"),
|
|
12197
|
+
"data-testid": "new-chat-tab",
|
|
12198
|
+
onClick: (event) => {
|
|
12199
|
+
event.preventDefault();
|
|
12200
|
+
event.stopPropagation();
|
|
12201
|
+
onNewSession();
|
|
12202
|
+
},
|
|
12203
|
+
size: "icon-compact",
|
|
12204
|
+
title: "New chat",
|
|
12205
|
+
type: "button",
|
|
12206
|
+
variant: "ghost",
|
|
12207
|
+
children: /* @__PURE__ */ jsx4(Plus, {
|
|
12208
|
+
"aria-hidden": "true",
|
|
12209
|
+
className: "size-3.5"
|
|
12489
12210
|
})
|
|
12490
|
-
]
|
|
12211
|
+
}) : null]
|
|
12491
12212
|
});
|
|
12492
|
-
}
|
|
12493
|
-
TabsSubtleItem.displayName = "TabsSubtleItem";
|
|
12494
|
-
var COMPACT_TABS_CLASS = "[&_[data-proximity-index]]:!h-7 [&_[data-proximity-index]]:!px-2 [&_[data-proximity-index]]:!text-caption";
|
|
12213
|
+
}
|
|
12495
12214
|
function RightPanelLauncherFromContext({ compact = false } = {}) {
|
|
12496
12215
|
const { reopenRightPanel, rightPanel } = useChatPanelDataContext();
|
|
12497
12216
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx4("div", {
|
|
@@ -12603,6 +12322,13 @@ function ResponsivePanelLauncher({ activePanel, className, compact = false, idPr
|
|
|
12603
12322
|
const nextIndex = panelOptions.findIndex((panel) => panel.id === nextPanel);
|
|
12604
12323
|
if (nextIndex >= 0) onSelect(nextIndex);
|
|
12605
12324
|
}, [onSelect, panelOptions]);
|
|
12325
|
+
const panelTabs = useMemo8(() => panelOptions.map((panel) => ({
|
|
12326
|
+
id: panel.id,
|
|
12327
|
+
label: panel.title,
|
|
12328
|
+
icon: panel.icon,
|
|
12329
|
+
badge: panel.badge,
|
|
12330
|
+
ariaLabel: panel.ariaLabel
|
|
12331
|
+
})), [panelOptions]);
|
|
12606
12332
|
return /* @__PURE__ */ jsxs("div", {
|
|
12607
12333
|
ref: containerRef,
|
|
12608
12334
|
className: `relative ${isDropdown ? "w-full" : "w-fit"} min-w-0 max-w-full overflow-hidden ${className ?? ""}`,
|
|
@@ -12615,38 +12341,29 @@ function ResponsivePanelLauncher({ activePanel, className, compact = false, idPr
|
|
|
12615
12341
|
options,
|
|
12616
12342
|
placeholder: "Open panel",
|
|
12617
12343
|
value: activePanel
|
|
12618
|
-
}) : /* @__PURE__ */ jsx4(
|
|
12619
|
-
|
|
12620
|
-
className:
|
|
12621
|
-
idPrefix
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
|
|
12626
|
-
|
|
12627
|
-
label: panel.title,
|
|
12628
|
-
badge: panel.badge,
|
|
12629
|
-
"aria-label": panel.ariaLabel
|
|
12630
|
-
}, panel.id))
|
|
12344
|
+
}) : /* @__PURE__ */ jsx4(TabStrip, {
|
|
12345
|
+
ariaLabel: "Panel views",
|
|
12346
|
+
className: "w-fit max-w-full",
|
|
12347
|
+
dataTestid: `${idPrefix}-tabs`,
|
|
12348
|
+
density: "compact",
|
|
12349
|
+
onValueChange: selectPanel,
|
|
12350
|
+
tabs: panelTabs,
|
|
12351
|
+
value: activePanel,
|
|
12352
|
+
width: "fit"
|
|
12631
12353
|
}), /* @__PURE__ */ jsx4("div", {
|
|
12632
12354
|
ref: measurementRef,
|
|
12633
12355
|
"aria-hidden": "true",
|
|
12634
12356
|
className: "pointer-events-none invisible absolute top-0 left-0 -z-10 w-max max-w-none",
|
|
12635
12357
|
"data-panel-launcher-measurement": true,
|
|
12636
12358
|
inert: true,
|
|
12637
|
-
children: /* @__PURE__ */ jsx4(
|
|
12638
|
-
|
|
12639
|
-
className:
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
icon: panel.icon,
|
|
12646
|
-
label: panel.title,
|
|
12647
|
-
badge: panel.badge,
|
|
12648
|
-
"aria-label": panel.ariaLabel
|
|
12649
|
-
}, panel.id))
|
|
12359
|
+
children: /* @__PURE__ */ jsx4(TabStrip, {
|
|
12360
|
+
ariaLabel: "Panel views",
|
|
12361
|
+
className: "w-max max-w-none",
|
|
12362
|
+
density: "compact",
|
|
12363
|
+
onValueChange: () => void 0,
|
|
12364
|
+
tabs: panelTabs,
|
|
12365
|
+
value: activePanel,
|
|
12366
|
+
width: "fit"
|
|
12650
12367
|
})
|
|
12651
12368
|
})]
|
|
12652
12369
|
});
|
|
@@ -12754,11 +12471,12 @@ function MobilePanel({ children, dataTestid, headerActions, icon: Icon, onClose,
|
|
|
12754
12471
|
})
|
|
12755
12472
|
});
|
|
12756
12473
|
}
|
|
12474
|
+
var AGENT_TAB_ID_PREFIX = "agent-tab";
|
|
12757
12475
|
function agentTabTriggerId(tabId) {
|
|
12758
|
-
return
|
|
12476
|
+
return `${AGENT_TAB_ID_PREFIX}-${encodeURIComponent(tabId)}`;
|
|
12759
12477
|
}
|
|
12760
12478
|
function agentTabPanelId(tabId) {
|
|
12761
|
-
return
|
|
12479
|
+
return `${AGENT_TAB_ID_PREFIX}-panel-${encodeURIComponent(tabId)}`;
|
|
12762
12480
|
}
|
|
12763
12481
|
function statusLabel(status) {
|
|
12764
12482
|
switch (status) {
|
|
@@ -12795,109 +12513,23 @@ function statusDotClass(status) {
|
|
|
12795
12513
|
}
|
|
12796
12514
|
}
|
|
12797
12515
|
function AgentTabBar({ tabs, value, onValueChange, onClose, onNewSession }) {
|
|
12798
|
-
const
|
|
12799
|
-
|
|
12800
|
-
|
|
12801
|
-
|
|
12802
|
-
|
|
12803
|
-
|
|
12804
|
-
|
|
12805
|
-
}, [tabs]);
|
|
12806
|
-
|
|
12807
|
-
|
|
12808
|
-
|
|
12809
|
-
|
|
12810
|
-
|
|
12811
|
-
|
|
12812
|
-
|
|
12813
|
-
|
|
12814
|
-
|
|
12815
|
-
let nextIndex;
|
|
12816
|
-
if (event.key === "ArrowRight") nextIndex = (index2 + 1) % tabs.length;
|
|
12817
|
-
if (event.key === "ArrowLeft") nextIndex = (index2 - 1 + tabs.length) % tabs.length;
|
|
12818
|
-
if (event.key === "Home") nextIndex = 0;
|
|
12819
|
-
if (event.key === "End") nextIndex = tabs.length - 1;
|
|
12820
|
-
if (nextIndex === void 0) return;
|
|
12821
|
-
event.preventDefault();
|
|
12822
|
-
focusTab(nextIndex);
|
|
12823
|
-
}, [focusTab, tabs]);
|
|
12824
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
12825
|
-
className: "flex min-w-0 max-w-full items-center gap-1",
|
|
12826
|
-
"data-testid": "agent-tab-bar",
|
|
12827
|
-
children: [/* @__PURE__ */ jsx4("div", {
|
|
12828
|
-
"aria-label": "Agent conversations",
|
|
12829
|
-
className: "flex min-w-0 flex-1 items-center gap-1 overflow-x-auto overscroll-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
12830
|
-
role: "tablist",
|
|
12831
|
-
children: tabs.map((tab) => {
|
|
12832
|
-
const active = tab.id === value;
|
|
12833
|
-
const status = statusLabel(tab.status);
|
|
12834
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
12835
|
-
className: "group/tab relative min-w-0 flex-1 max-w-[164px] basis-[164px]",
|
|
12836
|
-
"data-tab-id": tab.id,
|
|
12837
|
-
children: [/* @__PURE__ */ jsxs(Button$1, {
|
|
12838
|
-
ref: (node) => setTabRef(tab.id, node),
|
|
12839
|
-
"aria-controls": agentTabPanelId(tab.id),
|
|
12840
|
-
"aria-selected": active,
|
|
12841
|
-
"aria-label": `${tab.label}, ${status}`,
|
|
12842
|
-
className: cn("h-7 w-full min-w-0 justify-start text-start gap-1.5 rounded-[7px] border border-transparent px-2 text-label font-medium leading-none transition-colors motion-reduce:transition-none", active ? "bg-surface-4 text-foreground shadow-none" : "bg-transparent text-foreground/45 hover:bg-foreground/5 hover:text-foreground/75", tab.kind === "subagent" && onClose && "pe-7"),
|
|
12843
|
-
"data-state": active ? "active" : "inactive",
|
|
12844
|
-
id: agentTabTriggerId(tab.id),
|
|
12845
|
-
onClick: () => onValueChange(tab.id),
|
|
12846
|
-
onKeyDown: (event) => handleKeyDown(event, tab.id),
|
|
12847
|
-
role: "tab",
|
|
12848
|
-
size: "compact",
|
|
12849
|
-
tabIndex: active ? 0 : -1,
|
|
12850
|
-
type: "button",
|
|
12851
|
-
variant: "ghost",
|
|
12852
|
-
children: [tab.kind === "activity" ? /* @__PURE__ */ jsx4(Activity, {
|
|
12853
|
-
"aria-hidden": "true",
|
|
12854
|
-
className: "size-3.5 shrink-0"
|
|
12855
|
-
}) : tab.kind === "main" ? /* @__PURE__ */ jsx4(Bot, {
|
|
12856
|
-
"aria-hidden": "true",
|
|
12857
|
-
className: "size-3.5 shrink-0"
|
|
12858
|
-
}) : /* @__PURE__ */ jsx4("span", {
|
|
12859
|
-
"aria-hidden": "true",
|
|
12860
|
-
className: cn("size-1.5 shrink-0 rounded-full", statusDotClass(tab.status))
|
|
12861
|
-
}), /* @__PURE__ */ jsx4("span", {
|
|
12862
|
-
className: "min-w-0 flex-1 truncate text-start",
|
|
12863
|
-
children: tab.label
|
|
12864
|
-
})]
|
|
12865
|
-
}), tab.kind === "subagent" && onClose ? /* @__PURE__ */ jsx4(Button$1, {
|
|
12866
|
-
"aria-label": `Close ${tab.label} tab`,
|
|
12867
|
-
className: "absolute top-1/2 left-auto size-5 -translate-y-1/2 rounded-[5px] p-0 text-foreground/35 opacity-0 transition-opacity motion-reduce:transition-none hover:bg-foreground/10 hover:text-foreground/75 focus-visible:opacity-100 group-hover/tab:opacity-100 [inset-inline-start:auto] [inset-inline-end:0.25rem]",
|
|
12868
|
-
onClick: (event) => {
|
|
12869
|
-
event.stopPropagation();
|
|
12870
|
-
onClose(tab.id);
|
|
12871
|
-
},
|
|
12872
|
-
size: "icon-compact",
|
|
12873
|
-
title: `Close ${tab.label} tab`,
|
|
12874
|
-
type: "button",
|
|
12875
|
-
variant: "ghost",
|
|
12876
|
-
children: /* @__PURE__ */ jsx4(X, {
|
|
12877
|
-
"aria-hidden": "true",
|
|
12878
|
-
className: "size-3"
|
|
12879
|
-
})
|
|
12880
|
-
}) : null]
|
|
12881
|
-
}, tab.id);
|
|
12882
|
-
})
|
|
12883
|
-
}), onNewSession ? /* @__PURE__ */ jsx4(Button$1, {
|
|
12884
|
-
"aria-label": "New chat",
|
|
12885
|
-
className: cn(HIT_AREA_EXPAND_DENSE_CLASS, "relative z-10 size-7 shrink-0 rounded-[7px] text-foreground/50 hover:bg-foreground/7 hover:text-foreground/85"),
|
|
12886
|
-
"data-testid": "new-chat-tab",
|
|
12887
|
-
onClick: (event) => {
|
|
12888
|
-
event.preventDefault();
|
|
12889
|
-
event.stopPropagation();
|
|
12890
|
-
onNewSession();
|
|
12891
|
-
},
|
|
12892
|
-
size: "icon-compact",
|
|
12893
|
-
title: "New chat",
|
|
12894
|
-
type: "button",
|
|
12895
|
-
variant: "ghost",
|
|
12896
|
-
children: /* @__PURE__ */ jsx4(Plus, {
|
|
12897
|
-
"aria-hidden": "true",
|
|
12898
|
-
className: "size-3.5"
|
|
12899
|
-
})
|
|
12900
|
-
}) : null]
|
|
12516
|
+
const items = useMemo8(() => tabs.map((tab) => ({
|
|
12517
|
+
id: tab.id,
|
|
12518
|
+
label: tab.label,
|
|
12519
|
+
icon: tab.kind === "activity" ? Activity : tab.kind === "main" ? Bot : void 0,
|
|
12520
|
+
dotClassName: tab.kind === "subagent" ? statusDotClass(tab.status) : void 0,
|
|
12521
|
+
statusLabel: statusLabel(tab.status),
|
|
12522
|
+
closable: tab.kind === "subagent" && Boolean(onClose)
|
|
12523
|
+
})), [tabs, onClose]);
|
|
12524
|
+
return /* @__PURE__ */ jsx4(TabStrip, {
|
|
12525
|
+
ariaLabel: "Agent conversations",
|
|
12526
|
+
dataTestid: "agent-tab-bar",
|
|
12527
|
+
idPrefix: AGENT_TAB_ID_PREFIX,
|
|
12528
|
+
onClose,
|
|
12529
|
+
onNewSession,
|
|
12530
|
+
onValueChange,
|
|
12531
|
+
tabs: items,
|
|
12532
|
+
value
|
|
12901
12533
|
});
|
|
12902
12534
|
}
|
|
12903
12535
|
var DOCUMENTATION_URL = "https://docs.qredence.ai";
|
|
@@ -12998,8 +12630,8 @@ function useChatWorkspaceDialogs() {
|
|
|
12998
12630
|
settingsInitialTab
|
|
12999
12631
|
};
|
|
13000
12632
|
}
|
|
13001
|
-
var LazyChatCommandPalette = lazy2(() => import("./chat-command-palette-
|
|
13002
|
-
var LazySettingsDialog = lazy2(() => import("./settings-dialog-
|
|
12633
|
+
var LazyChatCommandPalette = lazy2(() => import("./chat-command-palette-VF4C0ttN-GY52QBFP.js").then(({ ChatCommandPalette }) => ({ default: ChatCommandPalette })));
|
|
12634
|
+
var LazySettingsDialog = lazy2(() => import("./settings-dialog-7V9x-CPC-6IEB2DFH.js").then(({ SettingsDialog }) => ({ default: SettingsDialog })));
|
|
13003
12635
|
var LazyForkPickerDialog = lazy2(() => import("./fork-picker-dialog-DFpKOdAw-JPLJSYYU.js").then(({ ForkPickerDialog }) => ({ default: ForkPickerDialog })));
|
|
13004
12636
|
function ChatCommandPaletteOverlay({ chrome, conversation, dialogs, panels, session }) {
|
|
13005
12637
|
return /* @__PURE__ */ jsx4(Fragment$1, { children: dialogs.commandPaletteOpen ? /* @__PURE__ */ jsx4(Suspense2, {
|
|
@@ -14805,6 +14437,15 @@ function ResizableCanvas({ children, dataTestid, headerLeading, loading, onClose
|
|
|
14805
14437
|
}) });
|
|
14806
14438
|
}
|
|
14807
14439
|
var DESKTOP_PANEL_QUERY = `(min-width: 960px)`;
|
|
14440
|
+
var GROUP_VIEW_LABELS = {
|
|
14441
|
+
resources: "Skills",
|
|
14442
|
+
workspace: "Files",
|
|
14443
|
+
artifacts: "Artifacts",
|
|
14444
|
+
repl: "REPL",
|
|
14445
|
+
subagents: "Subagents",
|
|
14446
|
+
"session-insights": "Insights",
|
|
14447
|
+
"session-tree": "Tree"
|
|
14448
|
+
};
|
|
14808
14449
|
function subscribeToDesktopPanel(onChange) {
|
|
14809
14450
|
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return () => void 0;
|
|
14810
14451
|
const media = window.matchMedia(DESKTOP_PANEL_QUERY);
|
|
@@ -14829,20 +14470,20 @@ function RightPanelShell({ handleResourceCanvasResizeStart, onClose, resourceCan
|
|
|
14829
14470
|
const definition = rightPanel ? getRightPanelDefinition(rightPanel) : null;
|
|
14830
14471
|
const PanelContent = definition?.component;
|
|
14831
14472
|
const panelGroup = rightPanel ? getRightPanelGroup(rightPanel) : void 0;
|
|
14832
|
-
const
|
|
14833
|
-
|
|
14834
|
-
|
|
14473
|
+
const groupTabs = useMemo8(() => panelGroup && panelGroup.panels.length > 1 ? panelGroup.panels.map((panel) => ({
|
|
14474
|
+
id: panel,
|
|
14475
|
+
label: GROUP_VIEW_LABELS[panel]
|
|
14476
|
+
})) : [], [panelGroup]);
|
|
14477
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [groupTabs.length > 0 ? /* @__PURE__ */ jsx4(TabStrip, {
|
|
14478
|
+
ariaLabel: `${panelGroup?.title ?? "Panel"} views`,
|
|
14835
14479
|
className: "mb-3 w-fit",
|
|
14836
|
-
|
|
14837
|
-
|
|
14838
|
-
|
|
14839
|
-
const nextPanel = panelGroup.panels[index2];
|
|
14840
|
-
if (nextPanel) setRightPanel(nextPanel);
|
|
14480
|
+
onValueChange: (nextPanel) => {
|
|
14481
|
+
const next = groupTabs.find((tab) => tab.id === nextPanel)?.id;
|
|
14482
|
+
if (next) setRightPanel(next);
|
|
14841
14483
|
},
|
|
14842
|
-
|
|
14843
|
-
|
|
14844
|
-
|
|
14845
|
-
}, panel))
|
|
14484
|
+
tabs: groupTabs,
|
|
14485
|
+
value: rightPanel,
|
|
14486
|
+
width: "fit"
|
|
14846
14487
|
}) : null, PanelContent ? /* @__PURE__ */ jsx4(PanelContent, {}) : null] });
|
|
14847
14488
|
const loading = definition?.loadingSource === "resources" ? chat.resourcesLoading : definition?.loadingSource === "workspace" ? workspace.workspaceLoading : false;
|
|
14848
14489
|
const onRefresh = definition?.refreshSource === "resources" ? chat.refreshResources : definition?.refreshSource === "workspace" ? workspace.refreshWorkspace : void 0;
|
|
@@ -15861,7 +15502,7 @@ function DiscordIcon({ className, ...props }) {
|
|
|
15861
15502
|
}
|
|
15862
15503
|
function fleetVersion() {
|
|
15863
15504
|
try {
|
|
15864
|
-
return "0.10.
|
|
15505
|
+
return "0.10.2";
|
|
15865
15506
|
} catch {
|
|
15866
15507
|
return "dev";
|
|
15867
15508
|
}
|
|
@@ -16569,7 +16210,7 @@ function useSessionSidebarViewModel({ sessions, projects = EMPTY_PROJECTS, proje
|
|
|
16569
16210
|
])
|
|
16570
16211
|
};
|
|
16571
16212
|
}
|
|
16572
|
-
var LazySessionSidebarCreateDialog = lazy2(() => import("./create-project-dialog-
|
|
16213
|
+
var LazySessionSidebarCreateDialog = lazy2(() => import("./create-project-dialog-CSZHeLNg-EEW3DRTY.js").then(({ SessionSidebarCreateDialog }) => ({ default: SessionSidebarCreateDialog })));
|
|
16573
16214
|
function SessionSidebar({ data, sessionActions, projectActions = {}, navigationActions = {}, slots = {} }) {
|
|
16574
16215
|
const { sessions, projects = EMPTY_PROJECTS, projectSessions = sessions, activeProjectId, activeSessionId } = data;
|
|
16575
16216
|
const { onNewSession, onNewSessionInProject, onResumeSession, onRenameSession, onDeleteSession } = sessionActions;
|
|
@@ -16651,8 +16292,8 @@ function SessionSidebar({ data, sessionActions, projectActions = {}, navigationA
|
|
|
16651
16292
|
})
|
|
16652
16293
|
] });
|
|
16653
16294
|
}
|
|
16654
|
-
var LazySubagentChatPanel = lazy2(() => import("./subagent-chat-panel-
|
|
16655
|
-
var LazySessionActivityPanel = lazy2(() => import("./session-activity-panel-
|
|
16295
|
+
var LazySubagentChatPanel = lazy2(() => import("./subagent-chat-panel-Cjg1oOFO-PNWSFYNA.js").then(({ SubagentChatPanel }) => ({ default: SubagentChatPanel })));
|
|
16296
|
+
var LazySessionActivityPanel = lazy2(() => import("./session-activity-panel-CS56rTyW-J4GAZSTC.js").then(({ SessionActivityPanel }) => ({ default: SessionActivityPanel })));
|
|
16656
16297
|
function ChatWorkspaceShell() {
|
|
16657
16298
|
const { session, conversation, composer, panels, dialogs, chrome, agentTabs } = useChatWorkspaceData();
|
|
16658
16299
|
const toggleCommandPalette = useCallback3(() => {
|