local-operator-ui 0.10.5 → 0.10.7
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/README.md +2 -2
- package/out/main/index.jsc +0 -0
- package/out/preload/index.jsc +0 -0
- package/out/renderer/assets/{_basePickBy-J6QOPIw6.js → _basePickBy-bM9rKo9j.js} +2 -2
- package/out/renderer/assets/{_baseUniq-CjrpCuGP.js → _baseUniq-BTyNyH8f.js} +1 -1
- package/out/renderer/assets/{arc-B9dHmVa3.js → arc-52ZNS7Mc.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-iZe3FGai.js → architectureDiagram-IEHRJDOE-DTuFQLSd.js} +7 -7
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-Ct7Hjgdp.js → blockDiagram-JOT3LUYC-0CMD1kXE.js} +5 -5
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-DPAI5Oul.js → c4Diagram-VJAJSXHY-CAD1cJIP.js} +2 -2
- package/out/renderer/assets/{channel-kBkjl2tX.js → channel-DooqkKMQ.js} +1 -1
- package/out/renderer/assets/{chunk-4BMEZGHF-BbIA2hPK.js → chunk-4BMEZGHF-BLVBfkLN.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-ChTSPi_g.js → chunk-A2AXSNBT-_jAI_WF2.js} +2 -2
- package/out/renderer/assets/{chunk-AEK57VVT-CbZX12yb.js → chunk-AEK57VVT-B8P3MENQ.js} +2 -2
- package/out/renderer/assets/{chunk-D6G4REZN-hnXFWy0U.js → chunk-D6G4REZN-7goIf0uD.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-DJGZKKsw.js → chunk-RZ5BOZE2-BZZkFFOx.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-Ui8w9_LJ.js → chunk-XZIHB7SX-C6Qx8kIn.js} +1 -1
- package/out/renderer/assets/{classDiagram-GIVACNV2-B-m9p15O.js → classDiagram-GIVACNV2-nutPpuAF.js} +3 -3
- package/out/renderer/assets/{classDiagram-v2-COTLJTTW-B-m9p15O.js → classDiagram-v2-COTLJTTW-nutPpuAF.js} +3 -3
- package/out/renderer/assets/{clone-D3nlta8f.js → clone-Dv3v3K10.js} +1 -1
- package/out/renderer/assets/{dagre-OKDRZEBW-CuBbVbAE.js → dagre-OKDRZEBW-BvjVk-VL.js} +6 -6
- package/out/renderer/assets/{diagram-SSKATNLV-Ddt-5-58.js → diagram-SSKATNLV-BC3f615s.js} +6 -6
- package/out/renderer/assets/{diagram-VNBRO52H-CptIzsnS.js → diagram-VNBRO52H-iVluvYAy.js} +6 -6
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-hAtjkKRt.js → erDiagram-Q7BY3M3F-BHceBobZ.js} +3 -3
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-COKwAFv7.js → flowDiagram-4HSFHLVR-CGYyv_WQ.js} +3 -3
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-DzqtejzU.js → ganttDiagram-APWFNJXF-CQlU1hxI.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-CCkiOue7.js → gitGraphDiagram-7IBYFJ6S-CSTRzS4J.js} +7 -7
- package/out/renderer/assets/{graph-D_O_nUCU.js → graph-CoEJ_k0b.js} +2 -2
- package/out/renderer/assets/{index-BkfYRfhG.js → index-Ckb5yety.js} +1 -1
- package/out/renderer/assets/{index-C0xVwDO6.js → index-E4JRScZr.js} +1696 -604
- package/out/renderer/assets/{index-DyCWQ6pn.js → index-luCXlbKf.js} +1 -1
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-D2pi_Avu.js → infoDiagram-PH2N3AL5-D8GfR9L-.js} +5 -5
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-CYV7gt8_.js → journeyDiagram-U35MCT3I-BP4duAhq.js} +3 -3
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-z_jHtS3N.js → kanban-definition-NDS4AKOZ-DuCd7BpW.js} +1 -1
- package/out/renderer/assets/{layout-DgQHyz0Y.js → layout-TBoOITHR.js} +4 -4
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-ByeOpUXU.js → mindmap-definition-ALO5MXBD-2COFVHJu.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-CzpV9GLV.js → pieDiagram-IB7DONF6-D7Kjesl8.js} +7 -7
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-TRIu05Kz.js → quadrantDiagram-7GDLP6J5-CuEBETqd.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-DNJgoIIb.js → radar-MK3ICKWK-4ySuwLbU.js} +4 -4
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-DtZxlcxe.js → requirementDiagram-KVF5MWMF-B2OB8-5B.js} +2 -2
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-CsDA2pgF.js → sankeyDiagram-QLVOVGJD-6_bJ06DP.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-DXZSfjCv.js → sequenceDiagram-X6HHIX6F-CbmjJ1pE.js} +3 -3
- package/out/renderer/assets/{stateDiagram-DGXRK772-gJvvYfHT.js → stateDiagram-DGXRK772-zxpsm9Bs.js} +7 -7
- package/out/renderer/assets/{stateDiagram-v2-YXO3MK2T-DUjC-b8t.js → stateDiagram-v2-YXO3MK2T-DArpC2cJ.js} +3 -3
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-DpFxQaCe.js → timeline-definition-BDJGKUSR-CSaG1Dv0.js} +2 -2
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-BWFbhKHp.js → xychartDiagram-VJFVF3MP-Bg2SvRep.js} +1 -1
- package/out/renderer/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-luCXlbKf.js","./fonts-Bb3Axuvj.js","./fonts-B9KBGB-g.css","./index-Ckb5yety.js","./pug-By0kVCfm.js","./javascript-C3MnDRiU.js","./dagre-OKDRZEBW-BvjVk-VL.js","./graph-CoEJ_k0b.js","./_baseUniq-BTyNyH8f.js","./layout-TBoOITHR.js","./_basePickBy-bM9rKo9j.js","./clone-Dv3v3K10.js","./c4Diagram-VJAJSXHY-CAD1cJIP.js","./chunk-D6G4REZN-7goIf0uD.js","./flowDiagram-4HSFHLVR-CGYyv_WQ.js","./chunk-RZ5BOZE2-BZZkFFOx.js","./channel-DooqkKMQ.js","./erDiagram-Q7BY3M3F-BHceBobZ.js","./gitGraphDiagram-7IBYFJ6S-CSTRzS4J.js","./chunk-4BMEZGHF-BLVBfkLN.js","./chunk-XZIHB7SX-C6Qx8kIn.js","./radar-MK3ICKWK-4ySuwLbU.js","./ganttDiagram-APWFNJXF-CQlU1hxI.js","./infoDiagram-PH2N3AL5-D8GfR9L-.js","./pieDiagram-IB7DONF6-D7Kjesl8.js","./arc-52ZNS7Mc.js","./quadrantDiagram-7GDLP6J5-CuEBETqd.js","./xychartDiagram-VJFVF3MP-Bg2SvRep.js","./requirementDiagram-KVF5MWMF-B2OB8-5B.js","./sequenceDiagram-X6HHIX6F-CbmjJ1pE.js","./classDiagram-GIVACNV2-nutPpuAF.js","./chunk-A2AXSNBT-_jAI_WF2.js","./classDiagram-v2-COTLJTTW-nutPpuAF.js","./stateDiagram-DGXRK772-zxpsm9Bs.js","./chunk-AEK57VVT-B8P3MENQ.js","./stateDiagram-v2-YXO3MK2T-DArpC2cJ.js","./journeyDiagram-U35MCT3I-BP4duAhq.js","./timeline-definition-BDJGKUSR-CSaG1Dv0.js","./mindmap-definition-ALO5MXBD-2COFVHJu.js","./cytoscape.esm-C0AOj4uS.js","./kanban-definition-NDS4AKOZ-DuCd7BpW.js","./sankeyDiagram-QLVOVGJD-6_bJ06DP.js","./diagram-VNBRO52H-iVluvYAy.js","./diagram-SSKATNLV-BC3f615s.js","./blockDiagram-JOT3LUYC-0CMD1kXE.js","./architectureDiagram-IEHRJDOE-DTuFQLSd.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import { i as createStyled, l as resolveProps, m as useTheme, n as useTheme$1, r as reactExports, o as React, p as useEnhancedEffect$1, q as clsx, t as useForkRef$1, v as extendSxProp, j as jsxRuntimeExports, w as handleBreakpoints, x as resolveBreakpointValues, y as createUnarySpacing, z as deepmerge, A as mergeBreakpointsInOrder, F as composeClasses$1, G as generateUtilityClass$1, I as createTheme$1, J as getValue$1, h as React$1, K as requireReactDom, g as getDefaultExportFromCjs, L as defaultTheme$2, M as THEME_ID, N as generateUtilityClasses$1, O as useDefaultProps, s as styled$1, P as capitalize$1, Q as memoTheme, _ as _inheritsLoose, S as _objectWithoutPropertiesLoose$k, U as TransitionGroupContext, V as _extends$w, W as duration, u as useTheme$2, X as useTimeout$1, Y as useId$1, Z as ButtonBase, b as alpha$1, $ as createSimplePaletteValueFilter, a0 as CircularProgress, a1 as Paper, a2 as darken$1, a3 as lighten$1, a4 as useEventCallback$1, a5 as useRtl, a6 as globalCss, a7 as formatMuiErrorMessage$1, a8 as rootShouldForwardProp, T as Typography, a9 as css$1, k as keyframes, aa as getPath$2, ab as isFocusVisible, ac as typographyClasses, ad as slotShouldForwardProp, ae as clamp, af as emphasize, ag as Timeout$1, c as createLucideIcon, a as Button, B as Box, ah as FontAwesomeIcon, ai as faExclamationTriangle, D as DEFAULT_THEME, aj as faChevronLeft, ak as faChevronRight, al as faRobot, am as faCheck, an as faTimes, ao as faEraser, ap as faPen, aq as faFileImport, ar as faUpload, as as GlobalStyles, at as requireReact, au as faComment, av as faSave, aw as faEdit, ax as faTrashAlt, ay as faInfoCircle, az as faGear, aA as faPlus, aB as faServer, aC as faStar, aD as faTag, aE as faIdCard, aF as faCalendarAlt, aG as faCodeBranch, aH as faShieldAlt, aI as faArrowLeft, aJ as faClock, C as Code, aK as faSliders, aL as faTrash, aM as faHome, aN as faDownload, aO as faFileAlt, aP as faDesktop, aQ as faImage, aR as faMusic, aS as faVideo, aT as faLaptop, aU as faUsers, aV as faDatabase, aW as faBoxOpen, aX as faBook, aY as faHdd, aZ as faBox, a_ as faArchive, a$ as faNetworkWired, b0 as faFolder, b1 as faFolderOpen, b2 as faFolderTree, b3 as faArrowDown, b4 as faPaperclip, b5 as faStop, b6 as faPaperPlane, b7 as faFile, b8 as faExclamationCircle, b9 as faChevronDown, ba as isDevelopmentMode, bb as faCommentSlash, bc as faArrowRight, bd as faBrain, be as faWandMagicSparkles, bf as faExternalLinkAlt, bg as faKey, bh as radientTheme, bi as faGlobe, bj as faSearch, bk as PropTypes, bl as shouldForwardProp, bm as TransitionGroup, bn as commonjsGlobal, bo as faLock, bp as faPuzzlePiece, H as HardDrive, bq as faSignOut, br as themes$1, bs as faMoon, bt as faSun, bu as faHexagonNodes, bv as faSkull, bw as faLeaf, bx as faCode, by as faMountain, bz as faFire, bA as faIcicles, bB as faBolt, bC as faAdjust, bD as faWaveSquare, bE as faUser, bF as faEnvelope, bG as faHistory, bH as faListAlt, bI as faCreditCard, bJ as faPlusCircle, bK as faChartLine, bL as faShield, bM as library$1, bN as icons$1, f as CssBaseline, e as ThemeProvider$1, d as getTheme, R as ReactDOM$1, E as ErrorBoundary } from "./fonts-Bb3Axuvj.js";
|
|
3
3
|
const styled = createStyled();
|
|
4
4
|
function getThemeProps(params) {
|
|
@@ -29429,6 +29429,52 @@ const StaticApi = {
|
|
|
29429
29429
|
getVideoUrl,
|
|
29430
29430
|
getHtmlUrl
|
|
29431
29431
|
};
|
|
29432
|
+
const TranscriptionApi = {
|
|
29433
|
+
/**
|
|
29434
|
+
* Transcribe Audio File
|
|
29435
|
+
*
|
|
29436
|
+
* Transcribes an audio file using the specified model and parameters.
|
|
29437
|
+
* The audio file is sent as `multipart/form-data`.
|
|
29438
|
+
* @param baseUrl - The base URL of the Local Operator API.
|
|
29439
|
+
* @param params - The parameters for the transcription request.
|
|
29440
|
+
* @returns A promise that resolves to the transcription result.
|
|
29441
|
+
* @throws Will throw an error if the request fails.
|
|
29442
|
+
*/
|
|
29443
|
+
async createTranscription(baseUrl, params) {
|
|
29444
|
+
const formData = new FormData();
|
|
29445
|
+
formData.append("file", params.file);
|
|
29446
|
+
if (params.model !== void 0) formData.append("model", params.model);
|
|
29447
|
+
if (params.prompt !== void 0) formData.append("prompt", params.prompt);
|
|
29448
|
+
if (params.response_format !== void 0)
|
|
29449
|
+
formData.append("response_format", params.response_format);
|
|
29450
|
+
if (params.temperature !== void 0)
|
|
29451
|
+
formData.append("temperature", params.temperature.toString());
|
|
29452
|
+
if (params.language !== void 0)
|
|
29453
|
+
formData.append("language", params.language);
|
|
29454
|
+
if (params.provider !== void 0)
|
|
29455
|
+
formData.append("provider", params.provider);
|
|
29456
|
+
const response = await fetch(`${baseUrl}/v1/transcriptions`, {
|
|
29457
|
+
method: "POST",
|
|
29458
|
+
body: formData,
|
|
29459
|
+
// Content-Type for FormData is set automatically by the browser, including the boundary.
|
|
29460
|
+
// Ensure 'Accept' header is set if the server expects it, though for FormData it's often not strictly needed for the request itself.
|
|
29461
|
+
// However, for consistency with other API calls and to ensure JSON error responses are handled:
|
|
29462
|
+
headers: {
|
|
29463
|
+
Accept: "application/json"
|
|
29464
|
+
}
|
|
29465
|
+
});
|
|
29466
|
+
if (!response.ok) {
|
|
29467
|
+
let errorDetail = `Transcription request failed: ${response.status} ${response.statusText}`;
|
|
29468
|
+
try {
|
|
29469
|
+
const errorData = await response.json();
|
|
29470
|
+
errorDetail = errorData.message || errorData.detail || errorDetail;
|
|
29471
|
+
} catch (_2) {
|
|
29472
|
+
}
|
|
29473
|
+
throw new Error(errorDetail);
|
|
29474
|
+
}
|
|
29475
|
+
return response.json();
|
|
29476
|
+
}
|
|
29477
|
+
};
|
|
29432
29478
|
var WebsocketConnectionType = /* @__PURE__ */ ((WebsocketConnectionType2) => {
|
|
29433
29479
|
WebsocketConnectionType2["MESSAGE"] = "message";
|
|
29434
29480
|
WebsocketConnectionType2["HEALTH"] = "health";
|
|
@@ -30012,6 +30058,12 @@ class LocalOperatorClient {
|
|
|
30012
30058
|
get schedules() {
|
|
30013
30059
|
return this.bindBaseUrlToApi(SchedulesApi);
|
|
30014
30060
|
}
|
|
30061
|
+
/**
|
|
30062
|
+
* Get the Transcription API client with methods bound to the base URL
|
|
30063
|
+
*/
|
|
30064
|
+
get transcription() {
|
|
30065
|
+
return this.bindBaseUrlToApi(TranscriptionApi);
|
|
30066
|
+
}
|
|
30015
30067
|
/**
|
|
30016
30068
|
* Bind the base URL to all methods of an API client
|
|
30017
30069
|
*
|
|
@@ -35956,30 +36008,30 @@ const useAgentSelectionStore = create$3()(
|
|
|
35956
36008
|
* This source code is licensed under the ISC license.
|
|
35957
36009
|
* See the LICENSE file in the root directory of this source tree.
|
|
35958
36010
|
*/
|
|
35959
|
-
const __iconNode$
|
|
36011
|
+
const __iconNode$1q = [
|
|
35960
36012
|
["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
|
|
35961
36013
|
["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
|
|
35962
36014
|
["path", { d: "M10 12h4", key: "a56b0p" }]
|
|
35963
36015
|
];
|
|
35964
|
-
const Archive = createLucideIcon("archive", __iconNode$
|
|
36016
|
+
const Archive = createLucideIcon("archive", __iconNode$1q);
|
|
35965
36017
|
/**
|
|
35966
36018
|
* @license lucide-react v0.507.0 - ISC
|
|
35967
36019
|
*
|
|
35968
36020
|
* This source code is licensed under the ISC license.
|
|
35969
36021
|
* See the LICENSE file in the root directory of this source tree.
|
|
35970
36022
|
*/
|
|
35971
|
-
const __iconNode$
|
|
36023
|
+
const __iconNode$1p = [
|
|
35972
36024
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
35973
36025
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
35974
36026
|
];
|
|
35975
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
36027
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1p);
|
|
35976
36028
|
/**
|
|
35977
36029
|
* @license lucide-react v0.507.0 - ISC
|
|
35978
36030
|
*
|
|
35979
36031
|
* This source code is licensed under the ISC license.
|
|
35980
36032
|
* See the LICENSE file in the root directory of this source tree.
|
|
35981
36033
|
*/
|
|
35982
|
-
const __iconNode$
|
|
36034
|
+
const __iconNode$1o = [
|
|
35983
36035
|
["path", { d: "M2 10v3", key: "1fnikh" }],
|
|
35984
36036
|
["path", { d: "M6 6v11", key: "11sgs0" }],
|
|
35985
36037
|
["path", { d: "M10 3v18", key: "yhl04a" }],
|
|
@@ -35987,14 +36039,14 @@ const __iconNode$1j = [
|
|
|
35987
36039
|
["path", { d: "M18 5v13", key: "123xd1" }],
|
|
35988
36040
|
["path", { d: "M22 10v3", key: "154ddg" }]
|
|
35989
36041
|
];
|
|
35990
|
-
const AudioLines = createLucideIcon("audio-lines", __iconNode$
|
|
36042
|
+
const AudioLines = createLucideIcon("audio-lines", __iconNode$1o);
|
|
35991
36043
|
/**
|
|
35992
36044
|
* @license lucide-react v0.507.0 - ISC
|
|
35993
36045
|
*
|
|
35994
36046
|
* This source code is licensed under the ISC license.
|
|
35995
36047
|
* See the LICENSE file in the root directory of this source tree.
|
|
35996
36048
|
*/
|
|
35997
|
-
const __iconNode$
|
|
36049
|
+
const __iconNode$1n = [
|
|
35998
36050
|
[
|
|
35999
36051
|
"path",
|
|
36000
36052
|
{
|
|
@@ -36003,14 +36055,14 @@ const __iconNode$1i = [
|
|
|
36003
36055
|
}
|
|
36004
36056
|
]
|
|
36005
36057
|
];
|
|
36006
|
-
const Book = createLucideIcon("book", __iconNode$
|
|
36058
|
+
const Book = createLucideIcon("book", __iconNode$1n);
|
|
36007
36059
|
/**
|
|
36008
36060
|
* @license lucide-react v0.507.0 - ISC
|
|
36009
36061
|
*
|
|
36010
36062
|
* This source code is licensed under the ISC license.
|
|
36011
36063
|
* See the LICENSE file in the root directory of this source tree.
|
|
36012
36064
|
*/
|
|
36013
|
-
const __iconNode$
|
|
36065
|
+
const __iconNode$1m = [
|
|
36014
36066
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
36015
36067
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
36016
36068
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -36018,25 +36070,25 @@ const __iconNode$1h = [
|
|
|
36018
36070
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
36019
36071
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
36020
36072
|
];
|
|
36021
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
36073
|
+
const Bot = createLucideIcon("bot", __iconNode$1m);
|
|
36022
36074
|
/**
|
|
36023
36075
|
* @license lucide-react v0.507.0 - ISC
|
|
36024
36076
|
*
|
|
36025
36077
|
* This source code is licensed under the ISC license.
|
|
36026
36078
|
* See the LICENSE file in the root directory of this source tree.
|
|
36027
36079
|
*/
|
|
36028
|
-
const __iconNode$
|
|
36080
|
+
const __iconNode$1l = [
|
|
36029
36081
|
["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
|
|
36030
36082
|
["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
|
|
36031
36083
|
];
|
|
36032
|
-
const Briefcase = createLucideIcon("briefcase", __iconNode$
|
|
36084
|
+
const Briefcase = createLucideIcon("briefcase", __iconNode$1l);
|
|
36033
36085
|
/**
|
|
36034
36086
|
* @license lucide-react v0.507.0 - ISC
|
|
36035
36087
|
*
|
|
36036
36088
|
* This source code is licensed under the ISC license.
|
|
36037
36089
|
* See the LICENSE file in the root directory of this source tree.
|
|
36038
36090
|
*/
|
|
36039
|
-
const __iconNode$
|
|
36091
|
+
const __iconNode$1k = [
|
|
36040
36092
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
36041
36093
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
36042
36094
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
@@ -36048,136 +36100,160 @@ const __iconNode$1f = [
|
|
|
36048
36100
|
["path", { d: "M12 18h.01", key: "mhygvu" }],
|
|
36049
36101
|
["path", { d: "M16 18h.01", key: "kzsmim" }]
|
|
36050
36102
|
];
|
|
36051
|
-
const CalendarDays = createLucideIcon("calendar-days", __iconNode$
|
|
36103
|
+
const CalendarDays = createLucideIcon("calendar-days", __iconNode$1k);
|
|
36104
|
+
/**
|
|
36105
|
+
* @license lucide-react v0.507.0 - ISC
|
|
36106
|
+
*
|
|
36107
|
+
* This source code is licensed under the ISC license.
|
|
36108
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
36109
|
+
*/
|
|
36110
|
+
const __iconNode$1j = [
|
|
36111
|
+
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
36112
|
+
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
36113
|
+
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
36114
|
+
["path", { d: "M3 10h18", key: "8toen8" }]
|
|
36115
|
+
];
|
|
36116
|
+
const Calendar = createLucideIcon("calendar", __iconNode$1j);
|
|
36052
36117
|
/**
|
|
36053
36118
|
* @license lucide-react v0.507.0 - ISC
|
|
36054
36119
|
*
|
|
36055
36120
|
* This source code is licensed under the ISC license.
|
|
36056
36121
|
* See the LICENSE file in the root directory of this source tree.
|
|
36057
36122
|
*/
|
|
36058
|
-
const __iconNode$
|
|
36123
|
+
const __iconNode$1i = [
|
|
36059
36124
|
["line", { x1: "18", x2: "18", y1: "20", y2: "10", key: "1xfpm4" }],
|
|
36060
36125
|
["line", { x1: "12", x2: "12", y1: "20", y2: "4", key: "be30l9" }],
|
|
36061
36126
|
["line", { x1: "6", x2: "6", y1: "20", y2: "14", key: "1r4le6" }]
|
|
36062
36127
|
];
|
|
36063
|
-
const ChartNoAxesColumn = createLucideIcon("chart-no-axes-column", __iconNode$
|
|
36128
|
+
const ChartNoAxesColumn = createLucideIcon("chart-no-axes-column", __iconNode$1i);
|
|
36064
36129
|
/**
|
|
36065
36130
|
* @license lucide-react v0.507.0 - ISC
|
|
36066
36131
|
*
|
|
36067
36132
|
* This source code is licensed under the ISC license.
|
|
36068
36133
|
* See the LICENSE file in the root directory of this source tree.
|
|
36069
36134
|
*/
|
|
36070
|
-
const __iconNode$
|
|
36071
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
36135
|
+
const __iconNode$1h = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
36136
|
+
const Check = createLucideIcon("check", __iconNode$1h);
|
|
36072
36137
|
/**
|
|
36073
36138
|
* @license lucide-react v0.507.0 - ISC
|
|
36074
36139
|
*
|
|
36075
36140
|
* This source code is licensed under the ISC license.
|
|
36076
36141
|
* See the LICENSE file in the root directory of this source tree.
|
|
36077
36142
|
*/
|
|
36078
|
-
const __iconNode$
|
|
36079
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
36143
|
+
const __iconNode$1g = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
36144
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$1g);
|
|
36080
36145
|
/**
|
|
36081
36146
|
* @license lucide-react v0.507.0 - ISC
|
|
36082
36147
|
*
|
|
36083
36148
|
* This source code is licensed under the ISC license.
|
|
36084
36149
|
* See the LICENSE file in the root directory of this source tree.
|
|
36085
36150
|
*/
|
|
36086
|
-
const __iconNode$
|
|
36087
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
36151
|
+
const __iconNode$1f = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
36152
|
+
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1f);
|
|
36088
36153
|
/**
|
|
36089
36154
|
* @license lucide-react v0.507.0 - ISC
|
|
36090
36155
|
*
|
|
36091
36156
|
* This source code is licensed under the ISC license.
|
|
36092
36157
|
* See the LICENSE file in the root directory of this source tree.
|
|
36093
36158
|
*/
|
|
36094
|
-
const __iconNode$
|
|
36095
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
36159
|
+
const __iconNode$1e = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
36160
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$1e);
|
|
36096
36161
|
/**
|
|
36097
36162
|
* @license lucide-react v0.507.0 - ISC
|
|
36098
36163
|
*
|
|
36099
36164
|
* This source code is licensed under the ISC license.
|
|
36100
36165
|
* See the LICENSE file in the root directory of this source tree.
|
|
36101
36166
|
*/
|
|
36102
|
-
const __iconNode$
|
|
36103
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
36167
|
+
const __iconNode$1d = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
36168
|
+
const ChevronUp = createLucideIcon("chevron-up", __iconNode$1d);
|
|
36104
36169
|
/**
|
|
36105
36170
|
* @license lucide-react v0.507.0 - ISC
|
|
36106
36171
|
*
|
|
36107
36172
|
* This source code is licensed under the ISC license.
|
|
36108
36173
|
* See the LICENSE file in the root directory of this source tree.
|
|
36109
36174
|
*/
|
|
36110
|
-
const __iconNode$
|
|
36175
|
+
const __iconNode$1c = [
|
|
36111
36176
|
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
36112
36177
|
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
36113
36178
|
];
|
|
36114
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
36179
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$1c);
|
|
36115
36180
|
/**
|
|
36116
36181
|
* @license lucide-react v0.507.0 - ISC
|
|
36117
36182
|
*
|
|
36118
36183
|
* This source code is licensed under the ISC license.
|
|
36119
36184
|
* See the LICENSE file in the root directory of this source tree.
|
|
36120
36185
|
*/
|
|
36121
|
-
const __iconNode$
|
|
36186
|
+
const __iconNode$1b = [
|
|
36122
36187
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36123
36188
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
36124
36189
|
];
|
|
36125
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
36190
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$1b);
|
|
36126
36191
|
/**
|
|
36127
36192
|
* @license lucide-react v0.507.0 - ISC
|
|
36128
36193
|
*
|
|
36129
36194
|
* This source code is licensed under the ISC license.
|
|
36130
36195
|
* See the LICENSE file in the root directory of this source tree.
|
|
36131
36196
|
*/
|
|
36132
|
-
const __iconNode$
|
|
36197
|
+
const __iconNode$1a = [
|
|
36133
36198
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36134
36199
|
["path", { d: "M17 12h.01", key: "1m0b6t" }],
|
|
36135
36200
|
["path", { d: "M12 12h.01", key: "1mp3jc" }],
|
|
36136
36201
|
["path", { d: "M7 12h.01", key: "eqddd0" }]
|
|
36137
36202
|
];
|
|
36138
|
-
const CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode$
|
|
36203
|
+
const CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode$1a);
|
|
36139
36204
|
/**
|
|
36140
36205
|
* @license lucide-react v0.507.0 - ISC
|
|
36141
36206
|
*
|
|
36142
36207
|
* This source code is licensed under the ISC license.
|
|
36143
36208
|
* See the LICENSE file in the root directory of this source tree.
|
|
36144
36209
|
*/
|
|
36145
|
-
const __iconNode$
|
|
36210
|
+
const __iconNode$19 = [
|
|
36146
36211
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36147
36212
|
["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
|
|
36148
36213
|
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
36149
36214
|
];
|
|
36150
|
-
const CircleHelp = createLucideIcon("circle-help", __iconNode$
|
|
36215
|
+
const CircleHelp = createLucideIcon("circle-help", __iconNode$19);
|
|
36151
36216
|
/**
|
|
36152
36217
|
* @license lucide-react v0.507.0 - ISC
|
|
36153
36218
|
*
|
|
36154
36219
|
* This source code is licensed under the ISC license.
|
|
36155
36220
|
* See the LICENSE file in the root directory of this source tree.
|
|
36156
36221
|
*/
|
|
36157
|
-
const __iconNode$
|
|
36222
|
+
const __iconNode$18 = [
|
|
36158
36223
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36159
36224
|
["polygon", { points: "10 8 16 12 10 16 10 8", key: "1cimsy" }]
|
|
36160
36225
|
];
|
|
36161
|
-
const CirclePlay = createLucideIcon("circle-play", __iconNode$
|
|
36226
|
+
const CirclePlay = createLucideIcon("circle-play", __iconNode$18);
|
|
36162
36227
|
/**
|
|
36163
36228
|
* @license lucide-react v0.507.0 - ISC
|
|
36164
36229
|
*
|
|
36165
36230
|
* This source code is licensed under the ISC license.
|
|
36166
36231
|
* See the LICENSE file in the root directory of this source tree.
|
|
36167
36232
|
*/
|
|
36168
|
-
const __iconNode$
|
|
36233
|
+
const __iconNode$17 = [
|
|
36169
36234
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36170
36235
|
["path", { d: "M8 12h8", key: "1wcyev" }],
|
|
36171
36236
|
["path", { d: "M12 8v8", key: "napkw2" }]
|
|
36172
36237
|
];
|
|
36173
|
-
const CirclePlus = createLucideIcon("circle-plus", __iconNode$
|
|
36238
|
+
const CirclePlus = createLucideIcon("circle-plus", __iconNode$17);
|
|
36174
36239
|
/**
|
|
36175
36240
|
* @license lucide-react v0.507.0 - ISC
|
|
36176
36241
|
*
|
|
36177
36242
|
* This source code is licensed under the ISC license.
|
|
36178
36243
|
* See the LICENSE file in the root directory of this source tree.
|
|
36179
36244
|
*/
|
|
36180
|
-
const __iconNode$
|
|
36245
|
+
const __iconNode$16 = [
|
|
36246
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36247
|
+
["rect", { x: "9", y: "9", width: "6", height: "6", rx: "1", key: "1ssd4o" }]
|
|
36248
|
+
];
|
|
36249
|
+
const CircleStop = createLucideIcon("circle-stop", __iconNode$16);
|
|
36250
|
+
/**
|
|
36251
|
+
* @license lucide-react v0.507.0 - ISC
|
|
36252
|
+
*
|
|
36253
|
+
* This source code is licensed under the ISC license.
|
|
36254
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
36255
|
+
*/
|
|
36256
|
+
const __iconNode$15 = [
|
|
36181
36257
|
["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
|
|
36182
36258
|
[
|
|
36183
36259
|
"path",
|
|
@@ -36191,72 +36267,72 @@ const __iconNode$12 = [
|
|
|
36191
36267
|
["path", { d: "M8 11h.01", key: "1dfujw" }],
|
|
36192
36268
|
["path", { d: "M8 16h.01", key: "18s6g9" }]
|
|
36193
36269
|
];
|
|
36194
|
-
const ClipboardList = createLucideIcon("clipboard-list", __iconNode$
|
|
36270
|
+
const ClipboardList = createLucideIcon("clipboard-list", __iconNode$15);
|
|
36195
36271
|
/**
|
|
36196
36272
|
* @license lucide-react v0.507.0 - ISC
|
|
36197
36273
|
*
|
|
36198
36274
|
* This source code is licensed under the ISC license.
|
|
36199
36275
|
* See the LICENSE file in the root directory of this source tree.
|
|
36200
36276
|
*/
|
|
36201
|
-
const __iconNode$
|
|
36277
|
+
const __iconNode$14 = [
|
|
36202
36278
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36203
36279
|
["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }]
|
|
36204
36280
|
];
|
|
36205
|
-
const Clock$1 = createLucideIcon("clock", __iconNode$
|
|
36281
|
+
const Clock$1 = createLucideIcon("clock", __iconNode$14);
|
|
36206
36282
|
/**
|
|
36207
36283
|
* @license lucide-react v0.507.0 - ISC
|
|
36208
36284
|
*
|
|
36209
36285
|
* This source code is licensed under the ISC license.
|
|
36210
36286
|
* See the LICENSE file in the root directory of this source tree.
|
|
36211
36287
|
*/
|
|
36212
|
-
const __iconNode$
|
|
36288
|
+
const __iconNode$13 = [
|
|
36213
36289
|
["path", { d: "M12 13v8", key: "1l5pq0" }],
|
|
36214
36290
|
["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
|
|
36215
36291
|
["path", { d: "m8 17 4-4 4 4", key: "1quai1" }]
|
|
36216
36292
|
];
|
|
36217
|
-
const CloudUpload = createLucideIcon("cloud-upload", __iconNode$
|
|
36293
|
+
const CloudUpload = createLucideIcon("cloud-upload", __iconNode$13);
|
|
36218
36294
|
/**
|
|
36219
36295
|
* @license lucide-react v0.507.0 - ISC
|
|
36220
36296
|
*
|
|
36221
36297
|
* This source code is licensed under the ISC license.
|
|
36222
36298
|
* See the LICENSE file in the root directory of this source tree.
|
|
36223
36299
|
*/
|
|
36224
|
-
const __iconNode
|
|
36300
|
+
const __iconNode$12 = [
|
|
36225
36301
|
["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
|
|
36226
36302
|
["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
|
|
36227
36303
|
["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
|
|
36228
36304
|
];
|
|
36229
|
-
const CodeXml = createLucideIcon("code-xml", __iconNode
|
|
36305
|
+
const CodeXml = createLucideIcon("code-xml", __iconNode$12);
|
|
36230
36306
|
/**
|
|
36231
36307
|
* @license lucide-react v0.507.0 - ISC
|
|
36232
36308
|
*
|
|
36233
36309
|
* This source code is licensed under the ISC license.
|
|
36234
36310
|
* See the LICENSE file in the root directory of this source tree.
|
|
36235
36311
|
*/
|
|
36236
|
-
const __iconNode$
|
|
36312
|
+
const __iconNode$11 = [
|
|
36237
36313
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
36238
36314
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
36239
36315
|
];
|
|
36240
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
36316
|
+
const Copy = createLucideIcon("copy", __iconNode$11);
|
|
36241
36317
|
/**
|
|
36242
36318
|
* @license lucide-react v0.507.0 - ISC
|
|
36243
36319
|
*
|
|
36244
36320
|
* This source code is licensed under the ISC license.
|
|
36245
36321
|
* See the LICENSE file in the root directory of this source tree.
|
|
36246
36322
|
*/
|
|
36247
|
-
const __iconNode$
|
|
36323
|
+
const __iconNode$10 = [
|
|
36248
36324
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
36249
36325
|
["polyline", { points: "7 10 12 15 17 10", key: "2ggqvy" }],
|
|
36250
36326
|
["line", { x1: "12", x2: "12", y1: "15", y2: "3", key: "1vk2je" }]
|
|
36251
36327
|
];
|
|
36252
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
36328
|
+
const Download = createLucideIcon("download", __iconNode$10);
|
|
36253
36329
|
/**
|
|
36254
36330
|
* @license lucide-react v0.507.0 - ISC
|
|
36255
36331
|
*
|
|
36256
36332
|
* This source code is licensed under the ISC license.
|
|
36257
36333
|
* See the LICENSE file in the root directory of this source tree.
|
|
36258
36334
|
*/
|
|
36259
|
-
const __iconNode
|
|
36335
|
+
const __iconNode$$ = [
|
|
36260
36336
|
["path", { d: "M21.54 15H17a2 2 0 0 0-2 2v4.54", key: "1djwo0" }],
|
|
36261
36337
|
[
|
|
36262
36338
|
"path",
|
|
@@ -36268,38 +36344,38 @@ const __iconNode$Y = [
|
|
|
36268
36344
|
["path", { d: "M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05", key: "14pb5j" }],
|
|
36269
36345
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
36270
36346
|
];
|
|
36271
|
-
const Earth = createLucideIcon("earth", __iconNode
|
|
36347
|
+
const Earth = createLucideIcon("earth", __iconNode$$);
|
|
36272
36348
|
/**
|
|
36273
36349
|
* @license lucide-react v0.507.0 - ISC
|
|
36274
36350
|
*
|
|
36275
36351
|
* This source code is licensed under the ISC license.
|
|
36276
36352
|
* See the LICENSE file in the root directory of this source tree.
|
|
36277
36353
|
*/
|
|
36278
|
-
const __iconNode$
|
|
36354
|
+
const __iconNode$_ = [
|
|
36279
36355
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
36280
36356
|
["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
|
|
36281
36357
|
["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
|
|
36282
36358
|
];
|
|
36283
|
-
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$
|
|
36359
|
+
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$_);
|
|
36284
36360
|
/**
|
|
36285
36361
|
* @license lucide-react v0.507.0 - ISC
|
|
36286
36362
|
*
|
|
36287
36363
|
* This source code is licensed under the ISC license.
|
|
36288
36364
|
* See the LICENSE file in the root directory of this source tree.
|
|
36289
36365
|
*/
|
|
36290
|
-
const __iconNode$
|
|
36366
|
+
const __iconNode$Z = [
|
|
36291
36367
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
36292
36368
|
["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
|
|
36293
36369
|
["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
|
|
36294
36370
|
];
|
|
36295
|
-
const Ellipsis = createLucideIcon("ellipsis", __iconNode$
|
|
36371
|
+
const Ellipsis = createLucideIcon("ellipsis", __iconNode$Z);
|
|
36296
36372
|
/**
|
|
36297
36373
|
* @license lucide-react v0.507.0 - ISC
|
|
36298
36374
|
*
|
|
36299
36375
|
* This source code is licensed under the ISC license.
|
|
36300
36376
|
* See the LICENSE file in the root directory of this source tree.
|
|
36301
36377
|
*/
|
|
36302
|
-
const __iconNode$
|
|
36378
|
+
const __iconNode$Y = [
|
|
36303
36379
|
[
|
|
36304
36380
|
"path",
|
|
36305
36381
|
{
|
|
@@ -36310,65 +36386,65 @@ const __iconNode$V = [
|
|
|
36310
36386
|
["path", { d: "M22 21H7", key: "t4ddhn" }],
|
|
36311
36387
|
["path", { d: "m5 11 9 9", key: "1mo9qw" }]
|
|
36312
36388
|
];
|
|
36313
|
-
const Eraser = createLucideIcon("eraser", __iconNode$
|
|
36389
|
+
const Eraser = createLucideIcon("eraser", __iconNode$Y);
|
|
36314
36390
|
/**
|
|
36315
36391
|
* @license lucide-react v0.507.0 - ISC
|
|
36316
36392
|
*
|
|
36317
36393
|
* This source code is licensed under the ISC license.
|
|
36318
36394
|
* See the LICENSE file in the root directory of this source tree.
|
|
36319
36395
|
*/
|
|
36320
|
-
const __iconNode$
|
|
36396
|
+
const __iconNode$X = [
|
|
36321
36397
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
36322
36398
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
36323
36399
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
36324
36400
|
];
|
|
36325
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
36401
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$X);
|
|
36326
36402
|
/**
|
|
36327
36403
|
* @license lucide-react v0.507.0 - ISC
|
|
36328
36404
|
*
|
|
36329
36405
|
* This source code is licensed under the ISC license.
|
|
36330
36406
|
* See the LICENSE file in the root directory of this source tree.
|
|
36331
36407
|
*/
|
|
36332
|
-
const __iconNode$
|
|
36408
|
+
const __iconNode$W = [
|
|
36333
36409
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
36334
36410
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
36335
36411
|
["circle", { cx: "10", cy: "12", r: "2", key: "737tya" }],
|
|
36336
36412
|
["path", { d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22", key: "wt3hpn" }]
|
|
36337
36413
|
];
|
|
36338
|
-
const FileImage = createLucideIcon("file-image", __iconNode$
|
|
36414
|
+
const FileImage = createLucideIcon("file-image", __iconNode$W);
|
|
36339
36415
|
/**
|
|
36340
36416
|
* @license lucide-react v0.507.0 - ISC
|
|
36341
36417
|
*
|
|
36342
36418
|
* This source code is licensed under the ISC license.
|
|
36343
36419
|
* See the LICENSE file in the root directory of this source tree.
|
|
36344
36420
|
*/
|
|
36345
|
-
const __iconNode$
|
|
36421
|
+
const __iconNode$V = [
|
|
36346
36422
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
36347
36423
|
["path", { d: "M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2", key: "1vk7w2" }],
|
|
36348
36424
|
["path", { d: "M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6", key: "1jink5" }],
|
|
36349
36425
|
["path", { d: "m5 11-3 3", key: "1dgrs4" }],
|
|
36350
36426
|
["path", { d: "m5 17-3-3h10", key: "1mvvaf" }]
|
|
36351
36427
|
];
|
|
36352
|
-
const FileOutput = createLucideIcon("file-output", __iconNode$
|
|
36428
|
+
const FileOutput = createLucideIcon("file-output", __iconNode$V);
|
|
36353
36429
|
/**
|
|
36354
36430
|
* @license lucide-react v0.507.0 - ISC
|
|
36355
36431
|
*
|
|
36356
36432
|
* This source code is licensed under the ISC license.
|
|
36357
36433
|
* See the LICENSE file in the root directory of this source tree.
|
|
36358
36434
|
*/
|
|
36359
|
-
const __iconNode$
|
|
36435
|
+
const __iconNode$U = [
|
|
36360
36436
|
["path", { d: "M12 17h.01", key: "p32p05" }],
|
|
36361
36437
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }],
|
|
36362
36438
|
["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3", key: "mhlwft" }]
|
|
36363
36439
|
];
|
|
36364
|
-
const FileQuestion = createLucideIcon("file-question", __iconNode$
|
|
36440
|
+
const FileQuestion = createLucideIcon("file-question", __iconNode$U);
|
|
36365
36441
|
/**
|
|
36366
36442
|
* @license lucide-react v0.507.0 - ISC
|
|
36367
36443
|
*
|
|
36368
36444
|
* This source code is licensed under the ISC license.
|
|
36369
36445
|
* See the LICENSE file in the root directory of this source tree.
|
|
36370
36446
|
*/
|
|
36371
|
-
const __iconNode$
|
|
36447
|
+
const __iconNode$T = [
|
|
36372
36448
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
36373
36449
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
36374
36450
|
["path", { d: "M8 13h2", key: "yr2amv" }],
|
|
@@ -36376,64 +36452,64 @@ const __iconNode$Q = [
|
|
|
36376
36452
|
["path", { d: "M8 17h2", key: "2yhykz" }],
|
|
36377
36453
|
["path", { d: "M14 17h2", key: "10kma7" }]
|
|
36378
36454
|
];
|
|
36379
|
-
const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$
|
|
36455
|
+
const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$T);
|
|
36380
36456
|
/**
|
|
36381
36457
|
* @license lucide-react v0.507.0 - ISC
|
|
36382
36458
|
*
|
|
36383
36459
|
* This source code is licensed under the ISC license.
|
|
36384
36460
|
* See the LICENSE file in the root directory of this source tree.
|
|
36385
36461
|
*/
|
|
36386
|
-
const __iconNode$
|
|
36462
|
+
const __iconNode$S = [
|
|
36387
36463
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
36388
36464
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
36389
36465
|
["path", { d: "M10 9H8", key: "b1mrlr" }],
|
|
36390
36466
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
36391
36467
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
36392
36468
|
];
|
|
36393
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
36469
|
+
const FileText = createLucideIcon("file-text", __iconNode$S);
|
|
36394
36470
|
/**
|
|
36395
36471
|
* @license lucide-react v0.507.0 - ISC
|
|
36396
36472
|
*
|
|
36397
36473
|
* This source code is licensed under the ISC license.
|
|
36398
36474
|
* See the LICENSE file in the root directory of this source tree.
|
|
36399
36475
|
*/
|
|
36400
|
-
const __iconNode$
|
|
36476
|
+
const __iconNode$R = [
|
|
36401
36477
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
36402
36478
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
36403
36479
|
["path", { d: "M12 12v6", key: "3ahymv" }],
|
|
36404
36480
|
["path", { d: "m15 15-3-3-3 3", key: "15xj92" }]
|
|
36405
36481
|
];
|
|
36406
|
-
const FileUp = createLucideIcon("file-up", __iconNode$
|
|
36482
|
+
const FileUp = createLucideIcon("file-up", __iconNode$R);
|
|
36407
36483
|
/**
|
|
36408
36484
|
* @license lucide-react v0.507.0 - ISC
|
|
36409
36485
|
*
|
|
36410
36486
|
* This source code is licensed under the ISC license.
|
|
36411
36487
|
* See the LICENSE file in the root directory of this source tree.
|
|
36412
36488
|
*/
|
|
36413
|
-
const __iconNode$
|
|
36489
|
+
const __iconNode$Q = [
|
|
36414
36490
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
36415
36491
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
36416
36492
|
["path", { d: "m10 11 5 3-5 3v-6Z", key: "7ntvm4" }]
|
|
36417
36493
|
];
|
|
36418
|
-
const FileVideo = createLucideIcon("file-video", __iconNode$
|
|
36494
|
+
const FileVideo = createLucideIcon("file-video", __iconNode$Q);
|
|
36419
36495
|
/**
|
|
36420
36496
|
* @license lucide-react v0.507.0 - ISC
|
|
36421
36497
|
*
|
|
36422
36498
|
* This source code is licensed under the ISC license.
|
|
36423
36499
|
* See the LICENSE file in the root directory of this source tree.
|
|
36424
36500
|
*/
|
|
36425
|
-
const __iconNode$
|
|
36501
|
+
const __iconNode$P = [
|
|
36426
36502
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
36427
36503
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }]
|
|
36428
36504
|
];
|
|
36429
|
-
const File$1 = createLucideIcon("file", __iconNode$
|
|
36505
|
+
const File$1 = createLucideIcon("file", __iconNode$P);
|
|
36430
36506
|
/**
|
|
36431
36507
|
* @license lucide-react v0.507.0 - ISC
|
|
36432
36508
|
*
|
|
36433
36509
|
* This source code is licensed under the ISC license.
|
|
36434
36510
|
* See the LICENSE file in the root directory of this source tree.
|
|
36435
36511
|
*/
|
|
36436
|
-
const __iconNode$
|
|
36512
|
+
const __iconNode$O = [
|
|
36437
36513
|
[
|
|
36438
36514
|
"path",
|
|
36439
36515
|
{
|
|
@@ -36444,14 +36520,14 @@ const __iconNode$L = [
|
|
|
36444
36520
|
["path", { d: "M6.453 15h11.094", key: "3shlmq" }],
|
|
36445
36521
|
["path", { d: "M8.5 2h7", key: "csnxdl" }]
|
|
36446
36522
|
];
|
|
36447
|
-
const FlaskConical = createLucideIcon("flask-conical", __iconNode$
|
|
36523
|
+
const FlaskConical = createLucideIcon("flask-conical", __iconNode$O);
|
|
36448
36524
|
/**
|
|
36449
36525
|
* @license lucide-react v0.507.0 - ISC
|
|
36450
36526
|
*
|
|
36451
36527
|
* This source code is licensed under the ISC license.
|
|
36452
36528
|
* See the LICENSE file in the root directory of this source tree.
|
|
36453
36529
|
*/
|
|
36454
|
-
const __iconNode$
|
|
36530
|
+
const __iconNode$N = [
|
|
36455
36531
|
[
|
|
36456
36532
|
"path",
|
|
36457
36533
|
{
|
|
@@ -36460,14 +36536,14 @@ const __iconNode$K = [
|
|
|
36460
36536
|
}
|
|
36461
36537
|
]
|
|
36462
36538
|
];
|
|
36463
|
-
const FolderOpen = createLucideIcon("folder-open", __iconNode$
|
|
36539
|
+
const FolderOpen = createLucideIcon("folder-open", __iconNode$N);
|
|
36464
36540
|
/**
|
|
36465
36541
|
* @license lucide-react v0.507.0 - ISC
|
|
36466
36542
|
*
|
|
36467
36543
|
* This source code is licensed under the ISC license.
|
|
36468
36544
|
* See the LICENSE file in the root directory of this source tree.
|
|
36469
36545
|
*/
|
|
36470
|
-
const __iconNode$
|
|
36546
|
+
const __iconNode$M = [
|
|
36471
36547
|
[
|
|
36472
36548
|
"path",
|
|
36473
36549
|
{
|
|
@@ -36478,14 +36554,14 @@ const __iconNode$J = [
|
|
|
36478
36554
|
["path", { d: "M22 10v6", key: "1lu8f3" }],
|
|
36479
36555
|
["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
|
|
36480
36556
|
];
|
|
36481
|
-
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$
|
|
36557
|
+
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$M);
|
|
36482
36558
|
/**
|
|
36483
36559
|
* @license lucide-react v0.507.0 - ISC
|
|
36484
36560
|
*
|
|
36485
36561
|
* This source code is licensed under the ISC license.
|
|
36486
36562
|
* See the LICENSE file in the root directory of this source tree.
|
|
36487
36563
|
*/
|
|
36488
|
-
const __iconNode$
|
|
36564
|
+
const __iconNode$L = [
|
|
36489
36565
|
[
|
|
36490
36566
|
"path",
|
|
36491
36567
|
{
|
|
@@ -36495,14 +36571,14 @@ const __iconNode$I = [
|
|
|
36495
36571
|
],
|
|
36496
36572
|
["path", { d: "M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27", key: "1uw2ng" }]
|
|
36497
36573
|
];
|
|
36498
|
-
const HeartPulse = createLucideIcon("heart-pulse", __iconNode$
|
|
36574
|
+
const HeartPulse = createLucideIcon("heart-pulse", __iconNode$L);
|
|
36499
36575
|
/**
|
|
36500
36576
|
* @license lucide-react v0.507.0 - ISC
|
|
36501
36577
|
*
|
|
36502
36578
|
* This source code is licensed under the ISC license.
|
|
36503
36579
|
* See the LICENSE file in the root directory of this source tree.
|
|
36504
36580
|
*/
|
|
36505
|
-
const __iconNode$
|
|
36581
|
+
const __iconNode$K = [
|
|
36506
36582
|
[
|
|
36507
36583
|
"path",
|
|
36508
36584
|
{
|
|
@@ -36511,26 +36587,26 @@ const __iconNode$H = [
|
|
|
36511
36587
|
}
|
|
36512
36588
|
]
|
|
36513
36589
|
];
|
|
36514
|
-
const Heart = createLucideIcon("heart", __iconNode$
|
|
36590
|
+
const Heart = createLucideIcon("heart", __iconNode$K);
|
|
36515
36591
|
/**
|
|
36516
36592
|
* @license lucide-react v0.507.0 - ISC
|
|
36517
36593
|
*
|
|
36518
36594
|
* This source code is licensed under the ISC license.
|
|
36519
36595
|
* See the LICENSE file in the root directory of this source tree.
|
|
36520
36596
|
*/
|
|
36521
|
-
const __iconNode$
|
|
36597
|
+
const __iconNode$J = [
|
|
36522
36598
|
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
|
|
36523
36599
|
["path", { d: "M3 3v5h5", key: "1xhq8a" }],
|
|
36524
36600
|
["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
|
|
36525
36601
|
];
|
|
36526
|
-
const History = createLucideIcon("history", __iconNode$
|
|
36602
|
+
const History = createLucideIcon("history", __iconNode$J);
|
|
36527
36603
|
/**
|
|
36528
36604
|
* @license lucide-react v0.507.0 - ISC
|
|
36529
36605
|
*
|
|
36530
36606
|
* This source code is licensed under the ISC license.
|
|
36531
36607
|
* See the LICENSE file in the root directory of this source tree.
|
|
36532
36608
|
*/
|
|
36533
|
-
const __iconNode$
|
|
36609
|
+
const __iconNode$I = [
|
|
36534
36610
|
["path", { d: "M12 3v12", key: "1x0j5s" }],
|
|
36535
36611
|
["path", { d: "m8 11 4 4 4-4", key: "1dohi6" }],
|
|
36536
36612
|
[
|
|
@@ -36541,38 +36617,38 @@ const __iconNode$F = [
|
|
|
36541
36617
|
}
|
|
36542
36618
|
]
|
|
36543
36619
|
];
|
|
36544
|
-
const Import = createLucideIcon("import", __iconNode$
|
|
36620
|
+
const Import = createLucideIcon("import", __iconNode$I);
|
|
36545
36621
|
/**
|
|
36546
36622
|
* @license lucide-react v0.507.0 - ISC
|
|
36547
36623
|
*
|
|
36548
36624
|
* This source code is licensed under the ISC license.
|
|
36549
36625
|
* See the LICENSE file in the root directory of this source tree.
|
|
36550
36626
|
*/
|
|
36551
|
-
const __iconNode$
|
|
36627
|
+
const __iconNode$H = [
|
|
36552
36628
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
36553
36629
|
["path", { d: "M12 16v-4", key: "1dtifu" }],
|
|
36554
36630
|
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
36555
36631
|
];
|
|
36556
|
-
const Info$1 = createLucideIcon("info", __iconNode$
|
|
36632
|
+
const Info$1 = createLucideIcon("info", __iconNode$H);
|
|
36557
36633
|
/**
|
|
36558
36634
|
* @license lucide-react v0.507.0 - ISC
|
|
36559
36635
|
*
|
|
36560
36636
|
* This source code is licensed under the ISC license.
|
|
36561
36637
|
* See the LICENSE file in the root directory of this source tree.
|
|
36562
36638
|
*/
|
|
36563
|
-
const __iconNode$
|
|
36639
|
+
const __iconNode$G = [
|
|
36564
36640
|
["path", { d: "m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4", key: "g0fldk" }],
|
|
36565
36641
|
["path", { d: "m21 2-9.6 9.6", key: "1j0ho8" }],
|
|
36566
36642
|
["circle", { cx: "7.5", cy: "15.5", r: "5.5", key: "yqb3hr" }]
|
|
36567
36643
|
];
|
|
36568
|
-
const Key = createLucideIcon("key", __iconNode$
|
|
36644
|
+
const Key = createLucideIcon("key", __iconNode$G);
|
|
36569
36645
|
/**
|
|
36570
36646
|
* @license lucide-react v0.507.0 - ISC
|
|
36571
36647
|
*
|
|
36572
36648
|
* This source code is licensed under the ISC license.
|
|
36573
36649
|
* See the LICENSE file in the root directory of this source tree.
|
|
36574
36650
|
*/
|
|
36575
|
-
const __iconNode$
|
|
36651
|
+
const __iconNode$F = [
|
|
36576
36652
|
[
|
|
36577
36653
|
"path",
|
|
36578
36654
|
{
|
|
@@ -36595,27 +36671,27 @@ const __iconNode$C = [
|
|
|
36595
36671
|
}
|
|
36596
36672
|
]
|
|
36597
36673
|
];
|
|
36598
|
-
const Layers = createLucideIcon("layers", __iconNode$
|
|
36674
|
+
const Layers = createLucideIcon("layers", __iconNode$F);
|
|
36599
36675
|
/**
|
|
36600
36676
|
* @license lucide-react v0.507.0 - ISC
|
|
36601
36677
|
*
|
|
36602
36678
|
* This source code is licensed under the ISC license.
|
|
36603
36679
|
* See the LICENSE file in the root directory of this source tree.
|
|
36604
36680
|
*/
|
|
36605
|
-
const __iconNode$
|
|
36681
|
+
const __iconNode$E = [
|
|
36606
36682
|
["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
|
|
36607
36683
|
["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
|
|
36608
36684
|
["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }],
|
|
36609
36685
|
["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }]
|
|
36610
36686
|
];
|
|
36611
|
-
const LayoutGrid = createLucideIcon("layout-grid", __iconNode$
|
|
36687
|
+
const LayoutGrid = createLucideIcon("layout-grid", __iconNode$E);
|
|
36612
36688
|
/**
|
|
36613
36689
|
* @license lucide-react v0.507.0 - ISC
|
|
36614
36690
|
*
|
|
36615
36691
|
* This source code is licensed under the ISC license.
|
|
36616
36692
|
* See the LICENSE file in the root directory of this source tree.
|
|
36617
36693
|
*/
|
|
36618
|
-
const __iconNode$
|
|
36694
|
+
const __iconNode$D = [
|
|
36619
36695
|
[
|
|
36620
36696
|
"path",
|
|
36621
36697
|
{
|
|
@@ -36626,102 +36702,114 @@ const __iconNode$A = [
|
|
|
36626
36702
|
["path", { d: "M9 18h6", key: "x1upvd" }],
|
|
36627
36703
|
["path", { d: "M10 22h4", key: "ceow96" }]
|
|
36628
36704
|
];
|
|
36629
|
-
const Lightbulb = createLucideIcon("lightbulb", __iconNode$
|
|
36705
|
+
const Lightbulb = createLucideIcon("lightbulb", __iconNode$D);
|
|
36630
36706
|
/**
|
|
36631
36707
|
* @license lucide-react v0.507.0 - ISC
|
|
36632
36708
|
*
|
|
36633
36709
|
* This source code is licensed under the ISC license.
|
|
36634
36710
|
* See the LICENSE file in the root directory of this source tree.
|
|
36635
36711
|
*/
|
|
36636
|
-
const __iconNode$
|
|
36712
|
+
const __iconNode$C = [
|
|
36637
36713
|
["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
|
|
36638
36714
|
["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
|
|
36639
36715
|
];
|
|
36640
|
-
const Link = createLucideIcon("link", __iconNode$
|
|
36716
|
+
const Link = createLucideIcon("link", __iconNode$C);
|
|
36641
36717
|
/**
|
|
36642
36718
|
* @license lucide-react v0.507.0 - ISC
|
|
36643
36719
|
*
|
|
36644
36720
|
* This source code is licensed under the ISC license.
|
|
36645
36721
|
* See the LICENSE file in the root directory of this source tree.
|
|
36646
36722
|
*/
|
|
36647
|
-
const __iconNode$
|
|
36723
|
+
const __iconNode$B = [
|
|
36648
36724
|
["path", { d: "M21 12h-8", key: "1bmf0i" }],
|
|
36649
36725
|
["path", { d: "M21 6H8", key: "1pqkrb" }],
|
|
36650
36726
|
["path", { d: "M21 18h-8", key: "1tm79t" }],
|
|
36651
36727
|
["path", { d: "M3 6v4c0 1.1.9 2 2 2h3", key: "1ywdgy" }],
|
|
36652
36728
|
["path", { d: "M3 10v6c0 1.1.9 2 2 2h3", key: "2wc746" }]
|
|
36653
36729
|
];
|
|
36654
|
-
const ListTree = createLucideIcon("list-tree", __iconNode$
|
|
36730
|
+
const ListTree = createLucideIcon("list-tree", __iconNode$B);
|
|
36655
36731
|
/**
|
|
36656
36732
|
* @license lucide-react v0.507.0 - ISC
|
|
36657
36733
|
*
|
|
36658
36734
|
* This source code is licensed under the ISC license.
|
|
36659
36735
|
* See the LICENSE file in the root directory of this source tree.
|
|
36660
36736
|
*/
|
|
36661
|
-
const __iconNode$
|
|
36737
|
+
const __iconNode$A = [
|
|
36662
36738
|
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
36663
36739
|
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
36664
36740
|
];
|
|
36665
|
-
const Mail = createLucideIcon("mail", __iconNode$
|
|
36741
|
+
const Mail = createLucideIcon("mail", __iconNode$A);
|
|
36666
36742
|
/**
|
|
36667
36743
|
* @license lucide-react v0.507.0 - ISC
|
|
36668
36744
|
*
|
|
36669
36745
|
* This source code is licensed under the ISC license.
|
|
36670
36746
|
* See the LICENSE file in the root directory of this source tree.
|
|
36671
36747
|
*/
|
|
36672
|
-
const __iconNode$
|
|
36748
|
+
const __iconNode$z = [
|
|
36673
36749
|
["polyline", { points: "15 3 21 3 21 9", key: "mznyad" }],
|
|
36674
36750
|
["polyline", { points: "9 21 3 21 3 15", key: "1avn1i" }],
|
|
36675
36751
|
["line", { x1: "21", x2: "14", y1: "3", y2: "10", key: "ota7mn" }],
|
|
36676
36752
|
["line", { x1: "3", x2: "10", y1: "21", y2: "14", key: "1atl0r" }]
|
|
36677
36753
|
];
|
|
36678
|
-
const Maximize2 = createLucideIcon("maximize-2", __iconNode$
|
|
36754
|
+
const Maximize2 = createLucideIcon("maximize-2", __iconNode$z);
|
|
36679
36755
|
/**
|
|
36680
36756
|
* @license lucide-react v0.507.0 - ISC
|
|
36681
36757
|
*
|
|
36682
36758
|
* This source code is licensed under the ISC license.
|
|
36683
36759
|
* See the LICENSE file in the root directory of this source tree.
|
|
36684
36760
|
*/
|
|
36685
|
-
const __iconNode$
|
|
36761
|
+
const __iconNode$y = [
|
|
36686
36762
|
["path", { d: "m3 11 18-5v12L3 14v-3z", key: "n962bs" }],
|
|
36687
36763
|
["path", { d: "M11.6 16.8a3 3 0 1 1-5.8-1.6", key: "1yl0tm" }]
|
|
36688
36764
|
];
|
|
36689
|
-
const Megaphone = createLucideIcon("megaphone", __iconNode$
|
|
36765
|
+
const Megaphone = createLucideIcon("megaphone", __iconNode$y);
|
|
36690
36766
|
/**
|
|
36691
36767
|
* @license lucide-react v0.507.0 - ISC
|
|
36692
36768
|
*
|
|
36693
36769
|
* This source code is licensed under the ISC license.
|
|
36694
36770
|
* See the LICENSE file in the root directory of this source tree.
|
|
36695
36771
|
*/
|
|
36696
|
-
const __iconNode$
|
|
36772
|
+
const __iconNode$x = [
|
|
36697
36773
|
["path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z", key: "vv11sd" }]
|
|
36698
36774
|
];
|
|
36699
|
-
const MessageCircle = createLucideIcon("message-circle", __iconNode$
|
|
36775
|
+
const MessageCircle = createLucideIcon("message-circle", __iconNode$x);
|
|
36700
36776
|
/**
|
|
36701
36777
|
* @license lucide-react v0.507.0 - ISC
|
|
36702
36778
|
*
|
|
36703
36779
|
* This source code is licensed under the ISC license.
|
|
36704
36780
|
* See the LICENSE file in the root directory of this source tree.
|
|
36705
36781
|
*/
|
|
36706
|
-
const __iconNode$
|
|
36782
|
+
const __iconNode$w = [
|
|
36707
36783
|
["path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z", key: "1lielz" }]
|
|
36708
36784
|
];
|
|
36709
|
-
const MessageSquare = createLucideIcon("message-square", __iconNode$
|
|
36785
|
+
const MessageSquare = createLucideIcon("message-square", __iconNode$w);
|
|
36786
|
+
/**
|
|
36787
|
+
* @license lucide-react v0.507.0 - ISC
|
|
36788
|
+
*
|
|
36789
|
+
* This source code is licensed under the ISC license.
|
|
36790
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
36791
|
+
*/
|
|
36792
|
+
const __iconNode$v = [
|
|
36793
|
+
["path", { d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z", key: "131961" }],
|
|
36794
|
+
["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2", key: "1vc78b" }],
|
|
36795
|
+
["line", { x1: "12", x2: "12", y1: "19", y2: "22", key: "x3vr5v" }]
|
|
36796
|
+
];
|
|
36797
|
+
const Mic = createLucideIcon("mic", __iconNode$v);
|
|
36710
36798
|
/**
|
|
36711
36799
|
* @license lucide-react v0.507.0 - ISC
|
|
36712
36800
|
*
|
|
36713
36801
|
* This source code is licensed under the ISC license.
|
|
36714
36802
|
* See the LICENSE file in the root directory of this source tree.
|
|
36715
36803
|
*/
|
|
36716
|
-
const __iconNode$
|
|
36717
|
-
const Minus$1 = createLucideIcon("minus", __iconNode$
|
|
36804
|
+
const __iconNode$u = [["path", { d: "M5 12h14", key: "1ays0h" }]];
|
|
36805
|
+
const Minus$1 = createLucideIcon("minus", __iconNode$u);
|
|
36718
36806
|
/**
|
|
36719
36807
|
* @license lucide-react v0.507.0 - ISC
|
|
36720
36808
|
*
|
|
36721
36809
|
* This source code is licensed under the ISC license.
|
|
36722
36810
|
* See the LICENSE file in the root directory of this source tree.
|
|
36723
36811
|
*/
|
|
36724
|
-
const __iconNode$
|
|
36812
|
+
const __iconNode$t = [
|
|
36725
36813
|
["path", { d: "M12 2v20", key: "t6zp3m" }],
|
|
36726
36814
|
["path", { d: "m15 19-3 3-3-3", key: "11eu04" }],
|
|
36727
36815
|
["path", { d: "m19 9 3 3-3 3", key: "1mg7y2" }],
|
|
@@ -36729,14 +36817,14 @@ const __iconNode$r = [
|
|
|
36729
36817
|
["path", { d: "m5 9-3 3 3 3", key: "j64kie" }],
|
|
36730
36818
|
["path", { d: "m9 5 3-3 3 3", key: "l8vdw6" }]
|
|
36731
36819
|
];
|
|
36732
|
-
const Move = createLucideIcon("move", __iconNode$
|
|
36820
|
+
const Move = createLucideIcon("move", __iconNode$t);
|
|
36733
36821
|
/**
|
|
36734
36822
|
* @license lucide-react v0.507.0 - ISC
|
|
36735
36823
|
*
|
|
36736
36824
|
* This source code is licensed under the ISC license.
|
|
36737
36825
|
* See the LICENSE file in the root directory of this source tree.
|
|
36738
36826
|
*/
|
|
36739
|
-
const __iconNode$
|
|
36827
|
+
const __iconNode$s = [
|
|
36740
36828
|
["path", { d: "m14.622 17.897-10.68-2.913", key: "vj2p1u" }],
|
|
36741
36829
|
[
|
|
36742
36830
|
"path",
|
|
@@ -36753,7 +36841,31 @@ const __iconNode$q = [
|
|
|
36753
36841
|
}
|
|
36754
36842
|
]
|
|
36755
36843
|
];
|
|
36756
|
-
const Paintbrush = createLucideIcon("paintbrush", __iconNode$
|
|
36844
|
+
const Paintbrush = createLucideIcon("paintbrush", __iconNode$s);
|
|
36845
|
+
/**
|
|
36846
|
+
* @license lucide-react v0.507.0 - ISC
|
|
36847
|
+
*
|
|
36848
|
+
* This source code is licensed under the ISC license.
|
|
36849
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
36850
|
+
*/
|
|
36851
|
+
const __iconNode$r = [
|
|
36852
|
+
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
36853
|
+
["path", { d: "M15 3v18", key: "14nvp0" }],
|
|
36854
|
+
["path", { d: "m8 9 3 3-3 3", key: "12hl5m" }]
|
|
36855
|
+
];
|
|
36856
|
+
const PanelRightClose = createLucideIcon("panel-right-close", __iconNode$r);
|
|
36857
|
+
/**
|
|
36858
|
+
* @license lucide-react v0.507.0 - ISC
|
|
36859
|
+
*
|
|
36860
|
+
* This source code is licensed under the ISC license.
|
|
36861
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
36862
|
+
*/
|
|
36863
|
+
const __iconNode$q = [
|
|
36864
|
+
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
36865
|
+
["path", { d: "M15 3v18", key: "14nvp0" }],
|
|
36866
|
+
["path", { d: "m10 15-3-3 3-3", key: "1pgupc" }]
|
|
36867
|
+
];
|
|
36868
|
+
const PanelRightOpen = createLucideIcon("panel-right-open", __iconNode$q);
|
|
36757
36869
|
/**
|
|
36758
36870
|
* @license lucide-react v0.507.0 - ISC
|
|
36759
36871
|
*
|
|
@@ -37138,7 +37250,7 @@ const __iconNode = [
|
|
|
37138
37250
|
["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
|
|
37139
37251
|
];
|
|
37140
37252
|
const ZoomOut = createLucideIcon("zoom-out", __iconNode);
|
|
37141
|
-
const StyledDialog$
|
|
37253
|
+
const StyledDialog$2 = styled$1(Dialog)(({ theme: theme2 }) => ({
|
|
37142
37254
|
"& .MuiBackdrop-root": {
|
|
37143
37255
|
backdropFilter: "blur(8px)",
|
|
37144
37256
|
backgroundColor: alpha$1(theme2.palette.background.default, 0.7)
|
|
@@ -37214,7 +37326,7 @@ const BaseDialog = ({
|
|
|
37214
37326
|
dataTourTag
|
|
37215
37327
|
}) => {
|
|
37216
37328
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
37217
|
-
StyledDialog$
|
|
37329
|
+
StyledDialog$2,
|
|
37218
37330
|
{
|
|
37219
37331
|
open: open2,
|
|
37220
37332
|
onClose,
|
|
@@ -37636,11 +37748,36 @@ const DEFAULT_CHAT_SIDEBAR_WIDTH = 320;
|
|
|
37636
37748
|
const useUiPreferencesStore = create$3()(
|
|
37637
37749
|
persist(
|
|
37638
37750
|
(set2) => ({
|
|
37751
|
+
isCommandPaletteOpen: false,
|
|
37752
|
+
commandPaletteQuery: "",
|
|
37639
37753
|
isSidebarCollapsed: false,
|
|
37640
37754
|
themeName: DEFAULT_THEME,
|
|
37641
37755
|
canvasWidth: DEFAULT_CANVAS_WIDTH,
|
|
37642
37756
|
chatSidebarWidth: DEFAULT_CHAT_SIDEBAR_WIDTH,
|
|
37643
37757
|
isCanvasOpen: false,
|
|
37758
|
+
isCreateAgentDialogOpen: false,
|
|
37759
|
+
openCreateAgentDialog: () => {
|
|
37760
|
+
set2({ isCreateAgentDialogOpen: true });
|
|
37761
|
+
},
|
|
37762
|
+
closeCreateAgentDialog: () => {
|
|
37763
|
+
set2({ isCreateAgentDialogOpen: false });
|
|
37764
|
+
},
|
|
37765
|
+
openCommandPalette: () => {
|
|
37766
|
+
set2({ isCommandPaletteOpen: true });
|
|
37767
|
+
},
|
|
37768
|
+
closeCommandPalette: () => {
|
|
37769
|
+
set2({ isCommandPaletteOpen: false, commandPaletteQuery: "" });
|
|
37770
|
+
},
|
|
37771
|
+
toggleCommandPalette: () => {
|
|
37772
|
+
set2((state2) => ({
|
|
37773
|
+
isCommandPaletteOpen: !state2.isCommandPaletteOpen,
|
|
37774
|
+
commandPaletteQuery: !state2.isCommandPaletteOpen ? "" : state2.commandPaletteQuery
|
|
37775
|
+
// Clear query if opening, retain if closing (though it's cleared by closeCommandPalette)
|
|
37776
|
+
}));
|
|
37777
|
+
},
|
|
37778
|
+
setCommandPaletteQuery: (query) => {
|
|
37779
|
+
set2({ commandPaletteQuery: query });
|
|
37780
|
+
},
|
|
37644
37781
|
toggleSidebar: () => {
|
|
37645
37782
|
set2((state2) => ({
|
|
37646
37783
|
isSidebarCollapsed: !state2.isSidebarCollapsed
|
|
@@ -67813,7 +67950,7 @@ const AgentsSidebar = ({
|
|
|
67813
67950
|
}) => {
|
|
67814
67951
|
const navigate = useNavigate();
|
|
67815
67952
|
const [searchQuery, setSearchQuery2] = reactExports.useState("");
|
|
67816
|
-
const
|
|
67953
|
+
const { openCreateAgentDialog } = useUiPreferencesStore();
|
|
67817
67954
|
const [isImportDialogOpen, setIsImportDialogOpen] = reactExports.useState(false);
|
|
67818
67955
|
const perPage = 50;
|
|
67819
67956
|
const [isUploadDialogOpen, setIsUploadDialogOpen] = reactExports.useState(false);
|
|
@@ -67856,12 +67993,6 @@ const AgentsSidebar = ({
|
|
|
67856
67993
|
},
|
|
67857
67994
|
[onSelectAgent]
|
|
67858
67995
|
);
|
|
67859
|
-
const handleOpenCreateDialog = reactExports.useCallback(() => {
|
|
67860
|
-
setIsCreateDialogOpen(true);
|
|
67861
|
-
}, []);
|
|
67862
|
-
const handleCloseCreateDialog = reactExports.useCallback(() => {
|
|
67863
|
-
setIsCreateDialogOpen(false);
|
|
67864
|
-
}, []);
|
|
67865
67996
|
const handleOpenImportDialog = reactExports.useCallback(() => {
|
|
67866
67997
|
setIsImportDialogOpen(true);
|
|
67867
67998
|
}, []);
|
|
@@ -67985,7 +68116,7 @@ const AgentsSidebar = ({
|
|
|
67985
68116
|
title: "Agents",
|
|
67986
68117
|
searchQuery,
|
|
67987
68118
|
onSearchChange: (query) => setSearchQuery2(query),
|
|
67988
|
-
onNewAgentClick:
|
|
68119
|
+
onNewAgentClick: openCreateAgentDialog,
|
|
67989
68120
|
onImportAgentClick: handleOpenImportDialog,
|
|
67990
68121
|
importAgentTooltip: "Import an agent from a ZIP file"
|
|
67991
68122
|
}
|
|
@@ -68023,14 +68154,6 @@ const AgentsSidebar = ({
|
|
|
68023
68154
|
},
|
|
68024
68155
|
agent.id
|
|
68025
68156
|
)) }),
|
|
68026
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68027
|
-
CreateAgentDialog,
|
|
68028
|
-
{
|
|
68029
|
-
open: isCreateDialogOpen,
|
|
68030
|
-
onClose: handleCloseCreateDialog,
|
|
68031
|
-
onAgentCreated: handleAgentCreated
|
|
68032
|
-
}
|
|
68033
|
-
),
|
|
68034
68157
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68035
68158
|
ImportAgentDialog,
|
|
68036
68159
|
{
|
|
@@ -86932,7 +87055,7 @@ const languages = [
|
|
|
86932
87055
|
name: "Go",
|
|
86933
87056
|
extensions: ["go"],
|
|
86934
87057
|
load() {
|
|
86935
|
-
return __vitePreload(() => import("./index-
|
|
87058
|
+
return __vitePreload(() => import("./index-luCXlbKf.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m2) => m2.go());
|
|
86936
87059
|
}
|
|
86937
87060
|
}),
|
|
86938
87061
|
/* @__PURE__ */ LanguageDescription.of({
|
|
@@ -87109,7 +87232,7 @@ const languages = [
|
|
|
87109
87232
|
alias: ["yml"],
|
|
87110
87233
|
extensions: ["yaml", "yml"],
|
|
87111
87234
|
load() {
|
|
87112
|
-
return __vitePreload(() => import("./index-
|
|
87235
|
+
return __vitePreload(() => import("./index-Ckb5yety.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m2) => m2.yaml());
|
|
87113
87236
|
}
|
|
87114
87237
|
}),
|
|
87115
87238
|
// Legacy modes ported from CodeMirror 5
|
|
@@ -169548,7 +169671,7 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
169548
169671
|
registerLayoutLoaders([
|
|
169549
169672
|
{
|
|
169550
169673
|
name: "dagre",
|
|
169551
|
-
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-OKDRZEBW-
|
|
169674
|
+
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-OKDRZEBW-BvjVk-VL.js"), true ? __vite__mapDeps([6,7,8,9,10,11,1,2]) : void 0, import.meta.url), "loader")
|
|
169552
169675
|
}
|
|
169553
169676
|
]);
|
|
169554
169677
|
}, "registerDefaultLayoutLoaders");
|
|
@@ -170138,7 +170261,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
170138
170261
|
}, "detector");
|
|
170139
170262
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
170140
170263
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170141
|
-
const { diagram: diagram22 } = await import("./c4Diagram-VJAJSXHY-
|
|
170264
|
+
const { diagram: diagram22 } = await import("./c4Diagram-VJAJSXHY-CAD1cJIP.js");
|
|
170142
170265
|
return { diagram: diagram22 };
|
|
170143
170266
|
}, true ? __vite__mapDeps([12,13,1,2]) : void 0, import.meta.url);
|
|
170144
170267
|
return { id, diagram: diagram2 };
|
|
@@ -170158,7 +170281,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
170158
170281
|
}, "detector");
|
|
170159
170282
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
170160
170283
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170161
|
-
const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-
|
|
170284
|
+
const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-CGYyv_WQ.js");
|
|
170162
170285
|
return { diagram: diagram22 };
|
|
170163
170286
|
}, true ? __vite__mapDeps([14,15,16,1,2]) : void 0, import.meta.url);
|
|
170164
170287
|
return { id: id2, diagram: diagram2 };
|
|
@@ -170184,7 +170307,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
170184
170307
|
}, "detector");
|
|
170185
170308
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
170186
170309
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170187
|
-
const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-
|
|
170310
|
+
const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-CGYyv_WQ.js");
|
|
170188
170311
|
return { diagram: diagram22 };
|
|
170189
170312
|
}, true ? __vite__mapDeps([14,15,16,1,2]) : void 0, import.meta.url);
|
|
170190
170313
|
return { id: id3, diagram: diagram2 };
|
|
@@ -170201,7 +170324,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
170201
170324
|
}, "detector");
|
|
170202
170325
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
170203
170326
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170204
|
-
const { diagram: diagram22 } = await import("./erDiagram-Q7BY3M3F-
|
|
170327
|
+
const { diagram: diagram22 } = await import("./erDiagram-Q7BY3M3F-BHceBobZ.js");
|
|
170205
170328
|
return { diagram: diagram22 };
|
|
170206
170329
|
}, true ? __vite__mapDeps([17,15,16,1,2]) : void 0, import.meta.url);
|
|
170207
170330
|
return { id: id4, diagram: diagram2 };
|
|
@@ -170218,7 +170341,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
170218
170341
|
}, "detector");
|
|
170219
170342
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
170220
170343
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170221
|
-
const { diagram: diagram22 } = await import("./gitGraphDiagram-7IBYFJ6S-
|
|
170344
|
+
const { diagram: diagram22 } = await import("./gitGraphDiagram-7IBYFJ6S-CSTRzS4J.js");
|
|
170222
170345
|
return { diagram: diagram22 };
|
|
170223
170346
|
}, true ? __vite__mapDeps([18,19,20,21,8,10,11,1,2]) : void 0, import.meta.url);
|
|
170224
170347
|
return { id: id5, diagram: diagram2 };
|
|
@@ -170235,7 +170358,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
170235
170358
|
}, "detector");
|
|
170236
170359
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
170237
170360
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170238
|
-
const { diagram: diagram22 } = await import("./ganttDiagram-APWFNJXF-
|
|
170361
|
+
const { diagram: diagram22 } = await import("./ganttDiagram-APWFNJXF-CQlU1hxI.js");
|
|
170239
170362
|
return { diagram: diagram22 };
|
|
170240
170363
|
}, true ? __vite__mapDeps([22,1,2]) : void 0, import.meta.url);
|
|
170241
170364
|
return { id: id6, diagram: diagram2 };
|
|
@@ -170252,7 +170375,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
170252
170375
|
}, "detector");
|
|
170253
170376
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
170254
170377
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170255
|
-
const { diagram: diagram22 } = await import("./infoDiagram-PH2N3AL5-
|
|
170378
|
+
const { diagram: diagram22 } = await import("./infoDiagram-PH2N3AL5-D8GfR9L-.js");
|
|
170256
170379
|
return { diagram: diagram22 };
|
|
170257
170380
|
}, true ? __vite__mapDeps([23,21,8,10,11,1,2]) : void 0, import.meta.url);
|
|
170258
170381
|
return { id: id7, diagram: diagram2 };
|
|
@@ -170268,7 +170391,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
170268
170391
|
}, "detector");
|
|
170269
170392
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
170270
170393
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170271
|
-
const { diagram: diagram22 } = await import("./pieDiagram-IB7DONF6-
|
|
170394
|
+
const { diagram: diagram22 } = await import("./pieDiagram-IB7DONF6-D7Kjesl8.js");
|
|
170272
170395
|
return { diagram: diagram22 };
|
|
170273
170396
|
}, true ? __vite__mapDeps([24,19,21,8,10,11,25,1,2]) : void 0, import.meta.url);
|
|
170274
170397
|
return { id: id8, diagram: diagram2 };
|
|
@@ -170284,7 +170407,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
170284
170407
|
}, "detector");
|
|
170285
170408
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
170286
170409
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170287
|
-
const { diagram: diagram22 } = await import("./quadrantDiagram-7GDLP6J5-
|
|
170410
|
+
const { diagram: diagram22 } = await import("./quadrantDiagram-7GDLP6J5-CuEBETqd.js");
|
|
170288
170411
|
return { diagram: diagram22 };
|
|
170289
170412
|
}, true ? __vite__mapDeps([26,1,2]) : void 0, import.meta.url);
|
|
170290
170413
|
return { id: id9, diagram: diagram2 };
|
|
@@ -170301,7 +170424,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
170301
170424
|
}, "detector");
|
|
170302
170425
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
170303
170426
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170304
|
-
const { diagram: diagram22 } = await import("./xychartDiagram-VJFVF3MP-
|
|
170427
|
+
const { diagram: diagram22 } = await import("./xychartDiagram-VJFVF3MP-Bg2SvRep.js");
|
|
170305
170428
|
return { diagram: diagram22 };
|
|
170306
170429
|
}, true ? __vite__mapDeps([27,1,2]) : void 0, import.meta.url);
|
|
170307
170430
|
return { id: id10, diagram: diagram2 };
|
|
@@ -170318,7 +170441,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
170318
170441
|
}, "detector");
|
|
170319
170442
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
170320
170443
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170321
|
-
const { diagram: diagram22 } = await import("./requirementDiagram-KVF5MWMF-
|
|
170444
|
+
const { diagram: diagram22 } = await import("./requirementDiagram-KVF5MWMF-B2OB8-5B.js");
|
|
170322
170445
|
return { diagram: diagram22 };
|
|
170323
170446
|
}, true ? __vite__mapDeps([28,15,1,2]) : void 0, import.meta.url);
|
|
170324
170447
|
return { id: id11, diagram: diagram2 };
|
|
@@ -170335,7 +170458,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
170335
170458
|
}, "detector");
|
|
170336
170459
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
170337
170460
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170338
|
-
const { diagram: diagram22 } = await import("./sequenceDiagram-X6HHIX6F-
|
|
170461
|
+
const { diagram: diagram22 } = await import("./sequenceDiagram-X6HHIX6F-CbmjJ1pE.js");
|
|
170339
170462
|
return { diagram: diagram22 };
|
|
170340
170463
|
}, true ? __vite__mapDeps([29,13,20,1,2]) : void 0, import.meta.url);
|
|
170341
170464
|
return { id: id12, diagram: diagram2 };
|
|
@@ -170355,7 +170478,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
170355
170478
|
}, "detector");
|
|
170356
170479
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
170357
170480
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170358
|
-
const { diagram: diagram22 } = await import("./classDiagram-GIVACNV2-
|
|
170481
|
+
const { diagram: diagram22 } = await import("./classDiagram-GIVACNV2-nutPpuAF.js");
|
|
170359
170482
|
return { diagram: diagram22 };
|
|
170360
170483
|
}, true ? __vite__mapDeps([30,31,15,1,2]) : void 0, import.meta.url);
|
|
170361
170484
|
return { id: id13, diagram: diagram2 };
|
|
@@ -170375,7 +170498,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
170375
170498
|
}, "detector");
|
|
170376
170499
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
170377
170500
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170378
|
-
const { diagram: diagram22 } = await import("./classDiagram-v2-COTLJTTW-
|
|
170501
|
+
const { diagram: diagram22 } = await import("./classDiagram-v2-COTLJTTW-nutPpuAF.js");
|
|
170379
170502
|
return { diagram: diagram22 };
|
|
170380
170503
|
}, true ? __vite__mapDeps([32,31,15,1,2]) : void 0, import.meta.url);
|
|
170381
170504
|
return { id: id14, diagram: diagram2 };
|
|
@@ -170395,7 +170518,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
170395
170518
|
}, "detector");
|
|
170396
170519
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
170397
170520
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170398
|
-
const { diagram: diagram22 } = await import("./stateDiagram-DGXRK772-
|
|
170521
|
+
const { diagram: diagram22 } = await import("./stateDiagram-DGXRK772-zxpsm9Bs.js");
|
|
170399
170522
|
return { diagram: diagram22 };
|
|
170400
170523
|
}, true ? __vite__mapDeps([33,34,15,7,8,9,10,1,2]) : void 0, import.meta.url);
|
|
170401
170524
|
return { id: id15, diagram: diagram2 };
|
|
@@ -170418,7 +170541,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
170418
170541
|
}, "detector");
|
|
170419
170542
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
170420
170543
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170421
|
-
const { diagram: diagram22 } = await import("./stateDiagram-v2-YXO3MK2T-
|
|
170544
|
+
const { diagram: diagram22 } = await import("./stateDiagram-v2-YXO3MK2T-DArpC2cJ.js");
|
|
170422
170545
|
return { diagram: diagram22 };
|
|
170423
170546
|
}, true ? __vite__mapDeps([35,34,15,1,2]) : void 0, import.meta.url);
|
|
170424
170547
|
return { id: id16, diagram: diagram2 };
|
|
@@ -170435,7 +170558,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
170435
170558
|
}, "detector");
|
|
170436
170559
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
170437
170560
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170438
|
-
const { diagram: diagram22 } = await import("./journeyDiagram-U35MCT3I-
|
|
170561
|
+
const { diagram: diagram22 } = await import("./journeyDiagram-U35MCT3I-BP4duAhq.js");
|
|
170439
170562
|
return { diagram: diagram22 };
|
|
170440
170563
|
}, true ? __vite__mapDeps([36,13,25,1,2]) : void 0, import.meta.url);
|
|
170441
170564
|
return { id: id17, diagram: diagram2 };
|
|
@@ -170505,7 +170628,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
170505
170628
|
}, "detector");
|
|
170506
170629
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
170507
170630
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170508
|
-
const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-
|
|
170631
|
+
const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-CGYyv_WQ.js");
|
|
170509
170632
|
return { diagram: diagram22 };
|
|
170510
170633
|
}, true ? __vite__mapDeps([14,15,16,1,2]) : void 0, import.meta.url);
|
|
170511
170634
|
return { id: id18, diagram: diagram2 };
|
|
@@ -170522,7 +170645,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
170522
170645
|
}, "detector");
|
|
170523
170646
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
170524
170647
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170525
|
-
const { diagram: diagram22 } = await import("./timeline-definition-BDJGKUSR-
|
|
170648
|
+
const { diagram: diagram22 } = await import("./timeline-definition-BDJGKUSR-CSaG1Dv0.js");
|
|
170526
170649
|
return { diagram: diagram22 };
|
|
170527
170650
|
}, true ? __vite__mapDeps([37,25,1,2]) : void 0, import.meta.url);
|
|
170528
170651
|
return { id: id19, diagram: diagram2 };
|
|
@@ -170539,7 +170662,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
170539
170662
|
}, "detector");
|
|
170540
170663
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
170541
170664
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170542
|
-
const { diagram: diagram22 } = await import("./mindmap-definition-ALO5MXBD-
|
|
170665
|
+
const { diagram: diagram22 } = await import("./mindmap-definition-ALO5MXBD-2COFVHJu.js");
|
|
170543
170666
|
return { diagram: diagram22 };
|
|
170544
170667
|
}, true ? __vite__mapDeps([38,39,1,2]) : void 0, import.meta.url);
|
|
170545
170668
|
return { id: id20, diagram: diagram2 };
|
|
@@ -170556,7 +170679,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
170556
170679
|
}, "detector");
|
|
170557
170680
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
170558
170681
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170559
|
-
const { diagram: diagram22 } = await import("./kanban-definition-NDS4AKOZ-
|
|
170682
|
+
const { diagram: diagram22 } = await import("./kanban-definition-NDS4AKOZ-DuCd7BpW.js");
|
|
170560
170683
|
return { diagram: diagram22 };
|
|
170561
170684
|
}, true ? __vite__mapDeps([40,1,2]) : void 0, import.meta.url);
|
|
170562
170685
|
return { id: id21, diagram: diagram2 };
|
|
@@ -170573,7 +170696,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
170573
170696
|
}, "detector");
|
|
170574
170697
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
170575
170698
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170576
|
-
const { diagram: diagram22 } = await import("./sankeyDiagram-QLVOVGJD-
|
|
170699
|
+
const { diagram: diagram22 } = await import("./sankeyDiagram-QLVOVGJD-6_bJ06DP.js");
|
|
170577
170700
|
return { diagram: diagram22 };
|
|
170578
170701
|
}, true ? __vite__mapDeps([41,1,2]) : void 0, import.meta.url);
|
|
170579
170702
|
return { id: id22, diagram: diagram2 };
|
|
@@ -170590,7 +170713,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
170590
170713
|
}, "detector");
|
|
170591
170714
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
170592
170715
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170593
|
-
const { diagram: diagram22 } = await import("./diagram-VNBRO52H-
|
|
170716
|
+
const { diagram: diagram22 } = await import("./diagram-VNBRO52H-iVluvYAy.js");
|
|
170594
170717
|
return { diagram: diagram22 };
|
|
170595
170718
|
}, true ? __vite__mapDeps([42,19,21,8,10,11,1,2]) : void 0, import.meta.url);
|
|
170596
170719
|
return { id: id23, diagram: diagram2 };
|
|
@@ -170606,7 +170729,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
170606
170729
|
}, "detector");
|
|
170607
170730
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
170608
170731
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170609
|
-
const { diagram: diagram22 } = await import("./diagram-SSKATNLV-
|
|
170732
|
+
const { diagram: diagram22 } = await import("./diagram-SSKATNLV-BC3f615s.js");
|
|
170610
170733
|
return { diagram: diagram22 };
|
|
170611
170734
|
}, true ? __vite__mapDeps([43,19,21,8,10,11,1,2]) : void 0, import.meta.url);
|
|
170612
170735
|
return { id: id24, diagram: diagram2 };
|
|
@@ -170622,7 +170745,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
170622
170745
|
}, "detector");
|
|
170623
170746
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
170624
170747
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170625
|
-
const { diagram: diagram22 } = await import("./blockDiagram-JOT3LUYC-
|
|
170748
|
+
const { diagram: diagram22 } = await import("./blockDiagram-JOT3LUYC-0CMD1kXE.js");
|
|
170626
170749
|
return { diagram: diagram22 };
|
|
170627
170750
|
}, true ? __vite__mapDeps([44,11,8,7,16,1,2]) : void 0, import.meta.url);
|
|
170628
170751
|
return { id: id25, diagram: diagram2 };
|
|
@@ -170639,7 +170762,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
170639
170762
|
}, "detector");
|
|
170640
170763
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
170641
170764
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
170642
|
-
const { diagram: diagram22 } = await import("./architectureDiagram-IEHRJDOE-
|
|
170765
|
+
const { diagram: diagram22 } = await import("./architectureDiagram-IEHRJDOE-DTuFQLSd.js");
|
|
170643
170766
|
return { diagram: diagram22 };
|
|
170644
170767
|
}, true ? __vite__mapDeps([45,19,20,21,8,10,11,39,1,2]) : void 0, import.meta.url);
|
|
170645
170768
|
return { id: id26, diagram: diagram2 };
|
|
@@ -174830,6 +174953,200 @@ const AttachmentsPreview = ({
|
|
|
174830
174953
|
) })
|
|
174831
174954
|
] }, `${index2}-${attachment}`)) });
|
|
174832
174955
|
};
|
|
174956
|
+
const BUFFER_SIZE = 120;
|
|
174957
|
+
const MIN_BAR_HEIGHT = 2;
|
|
174958
|
+
const MAX_BAR_HEIGHT = 24;
|
|
174959
|
+
const FRAMES_TO_SKIP = 4;
|
|
174960
|
+
const createPulseAnimation = (primaryColor) => keyframes`
|
|
174961
|
+
0% {
|
|
174962
|
+
transform: scale(0.95);
|
|
174963
|
+
box-shadow: 0 0 0 0 ${alpha$1(primaryColor, 0.7)};
|
|
174964
|
+
}
|
|
174965
|
+
70% {
|
|
174966
|
+
transform: scale(1);
|
|
174967
|
+
box-shadow: 0 0 0 10px ${alpha$1(primaryColor, 0)};
|
|
174968
|
+
}
|
|
174969
|
+
100% {
|
|
174970
|
+
transform: scale(0.95);
|
|
174971
|
+
box-shadow: 0 0 0 0 ${alpha$1(primaryColor, 0)};
|
|
174972
|
+
}
|
|
174973
|
+
`;
|
|
174974
|
+
const RecordingIndicatorContainer = styled$1(Box)(({ theme: theme2 }) => ({
|
|
174975
|
+
flex: 1,
|
|
174976
|
+
display: "flex",
|
|
174977
|
+
alignItems: "center",
|
|
174978
|
+
justifyContent: "center",
|
|
174979
|
+
minHeight: "50px",
|
|
174980
|
+
padding: theme2.spacing(1, 2),
|
|
174981
|
+
borderRadius: theme2.shape.borderRadius * 2,
|
|
174982
|
+
backgroundColor: alpha$1(theme2.palette.primary.main, 0.08),
|
|
174983
|
+
border: `1px solid ${alpha$1(theme2.palette.primary.main, 0.2)}`,
|
|
174984
|
+
color: theme2.palette.primary.main,
|
|
174985
|
+
gap: theme2.spacing(2)
|
|
174986
|
+
}));
|
|
174987
|
+
const RecordingText = styled$1(Typography)(({ theme: theme2 }) => ({
|
|
174988
|
+
fontSize: "0.9rem",
|
|
174989
|
+
fontWeight: 500,
|
|
174990
|
+
color: theme2.palette.primary.main
|
|
174991
|
+
}));
|
|
174992
|
+
const RecordingDot = styled$1(Box)(({ theme: theme2 }) => ({
|
|
174993
|
+
width: 8,
|
|
174994
|
+
height: 8,
|
|
174995
|
+
backgroundColor: theme2.palette.primary.main,
|
|
174996
|
+
borderRadius: "50%",
|
|
174997
|
+
animation: `${createPulseAnimation(theme2.palette.primary.main)} 1.5s infinite ease-in-out`,
|
|
174998
|
+
flexShrink: 0
|
|
174999
|
+
}));
|
|
175000
|
+
const WaveformCanvas = styled$1("canvas")(() => ({
|
|
175001
|
+
display: "block",
|
|
175002
|
+
width: "100%",
|
|
175003
|
+
height: `${MAX_BAR_HEIGHT}px`,
|
|
175004
|
+
flex: 1
|
|
175005
|
+
}));
|
|
175006
|
+
const AudioRecordingIndicator = ({
|
|
175007
|
+
isRecording
|
|
175008
|
+
}) => {
|
|
175009
|
+
const theme2 = useTheme$2();
|
|
175010
|
+
const canvasRef = reactExports.useRef(null);
|
|
175011
|
+
const animationFrameRef = reactExports.useRef();
|
|
175012
|
+
const mediaStreamRef = reactExports.useRef(null);
|
|
175013
|
+
const audioContextRef = reactExports.useRef(null);
|
|
175014
|
+
const analyserRef = reactExports.useRef(null);
|
|
175015
|
+
const dataArrayRef = reactExports.useRef(null);
|
|
175016
|
+
const heightsRef = reactExports.useRef(Array(BUFFER_SIZE).fill(MIN_BAR_HEIGHT));
|
|
175017
|
+
const frameCountRef = reactExports.useRef(0);
|
|
175018
|
+
reactExports.useEffect(() => {
|
|
175019
|
+
if (!isRecording) {
|
|
175020
|
+
return;
|
|
175021
|
+
}
|
|
175022
|
+
const canvas = canvasRef.current;
|
|
175023
|
+
if (!canvas) {
|
|
175024
|
+
return;
|
|
175025
|
+
}
|
|
175026
|
+
const ctx = canvas.getContext("2d");
|
|
175027
|
+
if (!ctx) {
|
|
175028
|
+
return;
|
|
175029
|
+
}
|
|
175030
|
+
const resizeCanvas = () => {
|
|
175031
|
+
const { width, height } = canvas.getBoundingClientRect();
|
|
175032
|
+
const dpr = window.devicePixelRatio || 1;
|
|
175033
|
+
canvas.width = width * dpr;
|
|
175034
|
+
canvas.height = height * dpr;
|
|
175035
|
+
ctx.scale(dpr, dpr);
|
|
175036
|
+
};
|
|
175037
|
+
resizeCanvas();
|
|
175038
|
+
window.addEventListener("resize", resizeCanvas);
|
|
175039
|
+
heightsRef.current = Array(BUFFER_SIZE).fill(MIN_BAR_HEIGHT);
|
|
175040
|
+
frameCountRef.current = 0;
|
|
175041
|
+
const drawWaveform = () => {
|
|
175042
|
+
const { width, height } = canvas.getBoundingClientRect();
|
|
175043
|
+
ctx.clearRect(0, 0, width, height);
|
|
175044
|
+
const barWidth = width / BUFFER_SIZE;
|
|
175045
|
+
const spacingRatio = 0.4;
|
|
175046
|
+
const barSpacing = barWidth * spacingRatio;
|
|
175047
|
+
const actualBarWidth = barWidth * (1 - spacingRatio);
|
|
175048
|
+
const radius = actualBarWidth / 2;
|
|
175049
|
+
heightsRef.current.forEach((h2, i2) => {
|
|
175050
|
+
const x2 = i2 * barWidth + barSpacing / 2;
|
|
175051
|
+
const centerY = height / 2;
|
|
175052
|
+
const barHeight = h2;
|
|
175053
|
+
const y2 = centerY - barHeight / 2;
|
|
175054
|
+
const isMinimalData = h2 <= MIN_BAR_HEIGHT;
|
|
175055
|
+
ctx.fillStyle = isMinimalData ? alpha$1(theme2.palette.primary.main, 0.3) : theme2.palette.primary.main;
|
|
175056
|
+
ctx.beginPath();
|
|
175057
|
+
ctx.roundRect(x2, y2, actualBarWidth, barHeight, radius);
|
|
175058
|
+
ctx.fill();
|
|
175059
|
+
});
|
|
175060
|
+
};
|
|
175061
|
+
const updateLoop = () => {
|
|
175062
|
+
if (analyserRef.current && dataArrayRef.current) {
|
|
175063
|
+
analyserRef.current.getByteFrequencyData(dataArrayRef.current);
|
|
175064
|
+
let sum = 0;
|
|
175065
|
+
const data2 = dataArrayRef.current;
|
|
175066
|
+
for (let i2 = 0; i2 < data2.length; i2++) {
|
|
175067
|
+
sum += data2[i2];
|
|
175068
|
+
}
|
|
175069
|
+
const avg = data2.length ? sum / data2.length : 0;
|
|
175070
|
+
const newHeight = Math.max(
|
|
175071
|
+
MIN_BAR_HEIGHT,
|
|
175072
|
+
avg / 255 * (MAX_BAR_HEIGHT - MIN_BAR_HEIGHT) + MIN_BAR_HEIGHT
|
|
175073
|
+
);
|
|
175074
|
+
frameCountRef.current += 1;
|
|
175075
|
+
if (frameCountRef.current > FRAMES_TO_SKIP) {
|
|
175076
|
+
heightsRef.current.shift();
|
|
175077
|
+
heightsRef.current.push(newHeight);
|
|
175078
|
+
frameCountRef.current = 0;
|
|
175079
|
+
drawWaveform();
|
|
175080
|
+
}
|
|
175081
|
+
}
|
|
175082
|
+
animationFrameRef.current = requestAnimationFrame(updateLoop);
|
|
175083
|
+
};
|
|
175084
|
+
(async () => {
|
|
175085
|
+
try {
|
|
175086
|
+
const stream = await navigator.mediaDevices.getUserMedia({
|
|
175087
|
+
audio: true
|
|
175088
|
+
});
|
|
175089
|
+
mediaStreamRef.current = stream;
|
|
175090
|
+
const AudioContextClass = window.AudioContext || window.webkitAudioContext;
|
|
175091
|
+
const audioCtx = new AudioContextClass();
|
|
175092
|
+
audioContextRef.current = audioCtx;
|
|
175093
|
+
const analyser = audioCtx.createAnalyser();
|
|
175094
|
+
analyser.fftSize = 64;
|
|
175095
|
+
analyser.smoothingTimeConstant = 0.6;
|
|
175096
|
+
analyserRef.current = analyser;
|
|
175097
|
+
const source = audioCtx.createMediaStreamSource(stream);
|
|
175098
|
+
source.connect(analyser);
|
|
175099
|
+
dataArrayRef.current = new Uint8Array(analyser.frequencyBinCount);
|
|
175100
|
+
updateLoop();
|
|
175101
|
+
} catch (error) {
|
|
175102
|
+
console.warn(
|
|
175103
|
+
"Could not access microphone for waveform visualization:",
|
|
175104
|
+
error
|
|
175105
|
+
);
|
|
175106
|
+
const randomLoop = () => {
|
|
175107
|
+
const randH = Math.max(
|
|
175108
|
+
MIN_BAR_HEIGHT,
|
|
175109
|
+
Math.random() * (MAX_BAR_HEIGHT - MIN_BAR_HEIGHT) + MIN_BAR_HEIGHT
|
|
175110
|
+
);
|
|
175111
|
+
frameCountRef.current += 1;
|
|
175112
|
+
if (frameCountRef.current > FRAMES_TO_SKIP) {
|
|
175113
|
+
heightsRef.current.shift();
|
|
175114
|
+
heightsRef.current.push(randH);
|
|
175115
|
+
frameCountRef.current = 0;
|
|
175116
|
+
drawWaveform();
|
|
175117
|
+
}
|
|
175118
|
+
animationFrameRef.current = requestAnimationFrame(randomLoop);
|
|
175119
|
+
};
|
|
175120
|
+
randomLoop();
|
|
175121
|
+
}
|
|
175122
|
+
})();
|
|
175123
|
+
return () => {
|
|
175124
|
+
window.removeEventListener("resize", resizeCanvas);
|
|
175125
|
+
if (animationFrameRef.current) {
|
|
175126
|
+
cancelAnimationFrame(animationFrameRef.current);
|
|
175127
|
+
}
|
|
175128
|
+
if (mediaStreamRef.current) {
|
|
175129
|
+
for (const track of mediaStreamRef.current.getTracks()) {
|
|
175130
|
+
track.stop();
|
|
175131
|
+
}
|
|
175132
|
+
mediaStreamRef.current = null;
|
|
175133
|
+
}
|
|
175134
|
+
if (audioContextRef.current && audioContextRef.current.state !== "closed") {
|
|
175135
|
+
audioContextRef.current.close().catch(console.error);
|
|
175136
|
+
audioContextRef.current = null;
|
|
175137
|
+
}
|
|
175138
|
+
};
|
|
175139
|
+
}, [isRecording, theme2.palette.primary.main]);
|
|
175140
|
+
if (!isRecording) {
|
|
175141
|
+
return null;
|
|
175142
|
+
}
|
|
175143
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(RecordingIndicatorContainer, { children: [
|
|
175144
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(RecordingDot, {}),
|
|
175145
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(RecordingText, { variant: "body2", children: "Recording" }),
|
|
175146
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WaveformCanvas, { ref: canvasRef })
|
|
175147
|
+
] });
|
|
175148
|
+
};
|
|
175149
|
+
AudioRecordingIndicator.displayName = "AudioRecordingIndicator";
|
|
174833
175150
|
const MAX_RECENT_DIRECTORIES = 5;
|
|
174834
175151
|
const useRecentDirectoriesStore = create$3()(
|
|
174835
175152
|
persist(
|
|
@@ -175349,6 +175666,32 @@ const ScrollToBottomButton = ({
|
|
|
175349
175666
|
}
|
|
175350
175667
|
) }) });
|
|
175351
175668
|
};
|
|
175669
|
+
const waveformAnimation = keyframes`
|
|
175670
|
+
0%, 100% { height: 2px; }
|
|
175671
|
+
50% { height: 16px; }
|
|
175672
|
+
`;
|
|
175673
|
+
const WaveformContainer = styled$1(Box)(() => ({
|
|
175674
|
+
display: "flex",
|
|
175675
|
+
alignItems: "center",
|
|
175676
|
+
height: "24px",
|
|
175677
|
+
gap: "2px"
|
|
175678
|
+
}));
|
|
175679
|
+
const WaveformBar = styled$1(Box)(({ theme: theme2 }) => ({
|
|
175680
|
+
width: "3px",
|
|
175681
|
+
backgroundColor: theme2.palette.primary.main,
|
|
175682
|
+
animation: `${waveformAnimation} 1.2s infinite ease-in-out`,
|
|
175683
|
+
borderRadius: "1px"
|
|
175684
|
+
}));
|
|
175685
|
+
const WaveformAnimation = () => {
|
|
175686
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(WaveformContainer, { children: [
|
|
175687
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WaveformBar, { sx: { animationDelay: "0s" } }),
|
|
175688
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WaveformBar, { sx: { animationDelay: "0.2s", height: "8px" } }),
|
|
175689
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WaveformBar, { sx: { animationDelay: "0.4s" } }),
|
|
175690
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WaveformBar, { sx: { animationDelay: "0.6s", height: "12px" } }),
|
|
175691
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WaveformBar, { sx: { animationDelay: "0.8s" } })
|
|
175692
|
+
] });
|
|
175693
|
+
};
|
|
175694
|
+
WaveformAnimation.displayName = "WaveformAnimation";
|
|
175352
175695
|
const InputOuterContainer = styled$1(Box)(({ theme: theme2 }) => ({
|
|
175353
175696
|
width: "100%",
|
|
175354
175697
|
flexGrow: 1,
|
|
@@ -175550,238 +175893,369 @@ const EmptyStateTitle = styled$1(Typography)(({ theme: theme2 }) => ({
|
|
|
175550
175893
|
marginBottom: theme2.spacing(2)
|
|
175551
175894
|
}
|
|
175552
175895
|
}));
|
|
175553
|
-
const
|
|
175554
|
-
|
|
175555
|
-
|
|
175556
|
-
|
|
175557
|
-
|
|
175558
|
-
|
|
175559
|
-
|
|
175560
|
-
|
|
175561
|
-
|
|
175562
|
-
|
|
175563
|
-
|
|
175564
|
-
|
|
175565
|
-
|
|
175566
|
-
|
|
175567
|
-
|
|
175568
|
-
|
|
175569
|
-
|
|
175570
|
-
|
|
175571
|
-
|
|
175572
|
-
|
|
175573
|
-
}
|
|
175574
|
-
const shuffled = [...initialSuggestions].sort(() => Math.random() - 0.5);
|
|
175575
|
-
return shuffled.slice(0, MAX_SUGGESTIONS);
|
|
175576
|
-
}, [initialSuggestions]);
|
|
175577
|
-
const onSubmit = reactExports.useMemo(
|
|
175578
|
-
() => (message2) => {
|
|
175579
|
-
onSendMessage(message2, attachments);
|
|
175580
|
-
setAttachments([]);
|
|
175581
|
-
},
|
|
175582
|
-
// attachments is a dependency, but this is safe because attachments is local state
|
|
175583
|
-
// and onSendMessage is a prop (assumed stable)
|
|
175584
|
-
[onSendMessage, attachments]
|
|
175585
|
-
);
|
|
175586
|
-
const {
|
|
175587
|
-
inputValue: newMessage,
|
|
175588
|
-
setInputValue: setNewMessage,
|
|
175589
|
-
handleKeyDown,
|
|
175590
|
-
handleSubmit: submitMessage,
|
|
175591
|
-
textareaRef
|
|
175592
|
-
} = useMessageInput({
|
|
175896
|
+
const TranscriptionIndicator = styled$1(Box)(({ theme: theme2 }) => ({
|
|
175897
|
+
flex: 1,
|
|
175898
|
+
display: "flex",
|
|
175899
|
+
alignItems: "center",
|
|
175900
|
+
justifyContent: "center",
|
|
175901
|
+
minHeight: "50px",
|
|
175902
|
+
padding: theme2.spacing(1, 2),
|
|
175903
|
+
borderRadius: theme2.shape.borderRadius,
|
|
175904
|
+
color: theme2.palette.primary.dark,
|
|
175905
|
+
gap: theme2.spacing(1)
|
|
175906
|
+
}));
|
|
175907
|
+
const TranscriptionText = styled$1(Typography)(({ theme: theme2 }) => ({
|
|
175908
|
+
fontSize: "0.9rem",
|
|
175909
|
+
fontWeight: 500,
|
|
175910
|
+
marginRight: theme2.spacing(1.5)
|
|
175911
|
+
}));
|
|
175912
|
+
const MessageInput = reactExports.forwardRef(
|
|
175913
|
+
({
|
|
175914
|
+
onSendMessage,
|
|
175915
|
+
isLoading,
|
|
175593
175916
|
conversationId,
|
|
175594
|
-
|
|
175595
|
-
|
|
175596
|
-
|
|
175597
|
-
|
|
175598
|
-
|
|
175599
|
-
|
|
175600
|
-
|
|
175601
|
-
|
|
175602
|
-
|
|
175603
|
-
|
|
175604
|
-
|
|
175605
|
-
|
|
175606
|
-
|
|
175607
|
-
|
|
175917
|
+
messages,
|
|
175918
|
+
currentJobId,
|
|
175919
|
+
onCancelJob,
|
|
175920
|
+
isFarFromBottom = false,
|
|
175921
|
+
scrollToBottom = () => {
|
|
175922
|
+
},
|
|
175923
|
+
initialSuggestions,
|
|
175924
|
+
agentData
|
|
175925
|
+
}, ref) => {
|
|
175926
|
+
const [attachments, setAttachments] = reactExports.useState([]);
|
|
175927
|
+
const [isRecording, setIsRecording] = reactExports.useState(false);
|
|
175928
|
+
const [audioBlob, setAudioBlob] = reactExports.useState(null);
|
|
175929
|
+
const [isTranscribing, setIsTranscribing] = reactExports.useState(false);
|
|
175930
|
+
const mediaRecorderRef = reactExports.useRef(null);
|
|
175931
|
+
const audioChunksRef = reactExports.useRef([]);
|
|
175932
|
+
const fileInputRef = reactExports.useRef(null);
|
|
175933
|
+
const MAX_SUGGESTIONS2 = 7;
|
|
175934
|
+
const suggestions = reactExports.useMemo(() => {
|
|
175935
|
+
if (!initialSuggestions || initialSuggestions.length === 0) return [];
|
|
175936
|
+
if (initialSuggestions.length <= MAX_SUGGESTIONS2) {
|
|
175937
|
+
return initialSuggestions;
|
|
175938
|
+
}
|
|
175939
|
+
const shuffled = [...initialSuggestions].sort(() => Math.random() - 0.5);
|
|
175940
|
+
return shuffled.slice(0, MAX_SUGGESTIONS2);
|
|
175941
|
+
}, [initialSuggestions]);
|
|
175942
|
+
const onSubmit = reactExports.useMemo(
|
|
175943
|
+
() => (message2) => {
|
|
175944
|
+
onSendMessage(message2, attachments);
|
|
175945
|
+
setAttachments([]);
|
|
175946
|
+
},
|
|
175947
|
+
[onSendMessage, attachments]
|
|
175948
|
+
);
|
|
175949
|
+
const {
|
|
175950
|
+
inputValue: newMessage,
|
|
175951
|
+
setInputValue: setNewMessage,
|
|
175952
|
+
handleKeyDown,
|
|
175953
|
+
handleSubmit: submitMessage,
|
|
175954
|
+
textareaRef
|
|
175955
|
+
} = useMessageInput({
|
|
175956
|
+
conversationId,
|
|
175957
|
+
onSubmit,
|
|
175958
|
+
scrollToBottom
|
|
175959
|
+
});
|
|
175960
|
+
reactExports.useImperativeHandle(ref, () => ({
|
|
175961
|
+
focusInput: () => {
|
|
175962
|
+
textareaRef.current?.focus();
|
|
175963
|
+
}
|
|
175964
|
+
}));
|
|
175965
|
+
const isInputDisabled = Boolean(isLoading && currentJobId);
|
|
175966
|
+
reactExports.useEffect(() => {
|
|
175967
|
+
if (!isInputDisabled && !isRecording && !isTranscribing) {
|
|
175968
|
+
const activeElement = document.activeElement;
|
|
175969
|
+
const isInputFocused = activeElement && (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA");
|
|
175970
|
+
if (!isInputFocused) {
|
|
175971
|
+
textareaRef.current?.focus();
|
|
175608
175972
|
}
|
|
175609
|
-
return URL.createObjectURL(file);
|
|
175610
|
-
});
|
|
175611
|
-
setAttachments((prev2) => [...prev2, ...newAttachments]);
|
|
175612
|
-
if (fileInputRef.current) {
|
|
175613
|
-
fileInputRef.current.value = "";
|
|
175614
175973
|
}
|
|
175615
|
-
}
|
|
175616
|
-
|
|
175617
|
-
|
|
175618
|
-
|
|
175619
|
-
|
|
175620
|
-
|
|
175621
|
-
|
|
175974
|
+
}, [isInputDisabled, isRecording, isTranscribing, textareaRef]);
|
|
175975
|
+
const handleStartRecording = reactExports.useCallback(async () => {
|
|
175976
|
+
if (navigator?.mediaDevices?.getUserMedia) {
|
|
175977
|
+
try {
|
|
175978
|
+
const stream = await navigator.mediaDevices.getUserMedia({
|
|
175979
|
+
audio: true
|
|
175980
|
+
});
|
|
175981
|
+
mediaRecorderRef.current = new MediaRecorder(stream);
|
|
175982
|
+
audioChunksRef.current = [];
|
|
175983
|
+
mediaRecorderRef.current.ondataavailable = (event) => {
|
|
175984
|
+
audioChunksRef.current.push(event.data);
|
|
175985
|
+
};
|
|
175986
|
+
mediaRecorderRef.current.onstop = () => {
|
|
175987
|
+
const completeAudioBlob = new Blob(audioChunksRef.current, {
|
|
175988
|
+
type: "audio/webm"
|
|
175989
|
+
});
|
|
175990
|
+
setAudioBlob(completeAudioBlob);
|
|
175991
|
+
for (const track of stream.getTracks()) {
|
|
175992
|
+
track.stop();
|
|
175993
|
+
}
|
|
175994
|
+
};
|
|
175995
|
+
mediaRecorderRef.current.start();
|
|
175996
|
+
setIsRecording(true);
|
|
175997
|
+
setAudioBlob(null);
|
|
175998
|
+
} catch (err) {
|
|
175999
|
+
console.error("Error accessing microphone:", err);
|
|
176000
|
+
showErrorToast(
|
|
176001
|
+
"Error accessing microphone. Please ensure microphone permissions are granted."
|
|
176002
|
+
);
|
|
176003
|
+
}
|
|
176004
|
+
} else {
|
|
176005
|
+
console.error("getUserMedia not supported on your browser!");
|
|
176006
|
+
showErrorToast("Audio recording is not supported on your browser.");
|
|
175622
176007
|
}
|
|
175623
|
-
|
|
175624
|
-
|
|
175625
|
-
|
|
175626
|
-
|
|
175627
|
-
|
|
175628
|
-
|
|
175629
|
-
|
|
175630
|
-
|
|
175631
|
-
|
|
175632
|
-
|
|
175633
|
-
|
|
175634
|
-
|
|
175635
|
-
|
|
175636
|
-
|
|
175637
|
-
|
|
175638
|
-
|
|
175639
|
-
|
|
175640
|
-
setAttachments((prev2) => [...prev2, e3.target?.result]);
|
|
175641
|
-
}
|
|
175642
|
-
};
|
|
175643
|
-
reader.readAsDataURL(file);
|
|
176008
|
+
}, []);
|
|
176009
|
+
const handleStopRecording = reactExports.useCallback(() => {
|
|
176010
|
+
if (mediaRecorderRef.current && isRecording) {
|
|
176011
|
+
mediaRecorderRef.current.stop();
|
|
176012
|
+
setIsRecording(false);
|
|
176013
|
+
}
|
|
176014
|
+
}, [isRecording]);
|
|
176015
|
+
const handleSendAudio = reactExports.useCallback(async () => {
|
|
176016
|
+
if (!audioBlob) return;
|
|
176017
|
+
try {
|
|
176018
|
+
setIsTranscribing(true);
|
|
176019
|
+
const response = await TranscriptionApi.createTranscription(
|
|
176020
|
+
apiConfig.baseUrl,
|
|
176021
|
+
{
|
|
176022
|
+
file: new File([audioBlob], "recording.webm", {
|
|
176023
|
+
type: "audio/webm"
|
|
176024
|
+
})
|
|
175644
176025
|
}
|
|
176026
|
+
);
|
|
176027
|
+
if (response.result?.text) {
|
|
176028
|
+
const newText = response.result?.text || "";
|
|
176029
|
+
setNewMessage(newMessage + newText);
|
|
175645
176030
|
}
|
|
176031
|
+
setAudioBlob(null);
|
|
176032
|
+
} catch (error) {
|
|
176033
|
+
console.error("Error transcribing audio:", error);
|
|
176034
|
+
showErrorToast("Error transcribing audio. Please try again.");
|
|
176035
|
+
} finally {
|
|
176036
|
+
setIsTranscribing(false);
|
|
175646
176037
|
}
|
|
175647
|
-
}
|
|
175648
|
-
|
|
175649
|
-
|
|
175650
|
-
|
|
175651
|
-
|
|
175652
|
-
|
|
175653
|
-
|
|
175654
|
-
|
|
175655
|
-
|
|
175656
|
-
|
|
175657
|
-
|
|
175658
|
-
|
|
175659
|
-
|
|
175660
|
-
{
|
|
175661
|
-
|
|
175662
|
-
|
|
175663
|
-
|
|
175664
|
-
}
|
|
175665
|
-
),
|
|
175666
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175667
|
-
StyledTextField$2,
|
|
175668
|
-
{
|
|
175669
|
-
fullWidth: true,
|
|
175670
|
-
placeholder: isInputDisabled ? "Agent is busy" : "Ask me for help",
|
|
175671
|
-
value: newMessage,
|
|
175672
|
-
onChange: (e3) => setNewMessage(e3.target.value),
|
|
175673
|
-
onKeyDown: handleKeyDown,
|
|
175674
|
-
onPaste: handlePaste,
|
|
175675
|
-
multiline: true,
|
|
175676
|
-
maxRows: 4,
|
|
175677
|
-
variant: "outlined",
|
|
175678
|
-
inputRef: textareaRef,
|
|
175679
|
-
disabled: isInputDisabled,
|
|
175680
|
-
inputProps: {
|
|
175681
|
-
"data-tour-tag": "chat-input-textarea"
|
|
176038
|
+
}, [audioBlob, setNewMessage, newMessage]);
|
|
176039
|
+
reactExports.useEffect(() => {
|
|
176040
|
+
if (audioBlob) {
|
|
176041
|
+
handleSendAudio();
|
|
176042
|
+
}
|
|
176043
|
+
}, [audioBlob, handleSendAudio]);
|
|
176044
|
+
const handleSubmit = (e3) => {
|
|
176045
|
+
e3.preventDefault();
|
|
176046
|
+
if (!newMessage.trim() && attachments.length === 0) return;
|
|
176047
|
+
submitMessage();
|
|
176048
|
+
};
|
|
176049
|
+
const handleFileSelect = (e3) => {
|
|
176050
|
+
if (e3.target.files && e3.target.files.length > 0) {
|
|
176051
|
+
const newAttachments = Array.from(e3.target.files).map((file) => {
|
|
176052
|
+
const filePath = file.path;
|
|
176053
|
+
if (filePath) {
|
|
176054
|
+
return normalizePath(filePath);
|
|
175682
176055
|
}
|
|
176056
|
+
return URL.createObjectURL(file);
|
|
176057
|
+
});
|
|
176058
|
+
setAttachments((prev2) => [...prev2, ...newAttachments]);
|
|
176059
|
+
if (fileInputRef.current) {
|
|
176060
|
+
fileInputRef.current.value = "";
|
|
175683
176061
|
}
|
|
175684
|
-
|
|
175685
|
-
|
|
175686
|
-
|
|
175687
|
-
|
|
175688
|
-
|
|
175689
|
-
|
|
175690
|
-
|
|
175691
|
-
|
|
175692
|
-
|
|
175693
|
-
|
|
175694
|
-
|
|
175695
|
-
|
|
175696
|
-
|
|
175697
|
-
|
|
175698
|
-
|
|
175699
|
-
|
|
175700
|
-
|
|
175701
|
-
|
|
175702
|
-
|
|
175703
|
-
|
|
175704
|
-
|
|
175705
|
-
|
|
175706
|
-
|
|
175707
|
-
|
|
175708
|
-
|
|
175709
|
-
|
|
175710
|
-
|
|
175711
|
-
|
|
175712
|
-
|
|
175713
|
-
|
|
175714
|
-
|
|
175715
|
-
|
|
175716
|
-
)
|
|
175717
|
-
] }),
|
|
175718
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Box, { display: "flex", alignItems: "center", gap: 1, children: isLoading && currentJobId ? (
|
|
175719
|
-
// @ts-ignore Tooltip type issue
|
|
175720
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Stop agent", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175721
|
-
SendButton,
|
|
175722
|
-
{
|
|
175723
|
-
type: "button",
|
|
175724
|
-
variant: "contained",
|
|
175725
|
-
color: "error",
|
|
175726
|
-
onClick: () => onCancelJob?.(currentJobId),
|
|
175727
|
-
"aria-label": "Stop agent",
|
|
175728
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faStop })
|
|
175729
|
-
}
|
|
175730
|
-
) }) })
|
|
175731
|
-
) : (
|
|
175732
|
-
// @ts-ignore Tooltip type issue
|
|
175733
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Send message", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175734
|
-
SendButton,
|
|
175735
|
-
{
|
|
175736
|
-
type: "submit",
|
|
175737
|
-
variant: "contained",
|
|
175738
|
-
color: "primary",
|
|
175739
|
-
disabled: isLoading || !newMessage.trim() && attachments.length === 0,
|
|
175740
|
-
"aria-label": "Send message",
|
|
175741
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faPaperPlane })
|
|
176062
|
+
}
|
|
176063
|
+
};
|
|
176064
|
+
const handleRemoveAttachment = (index2) => {
|
|
176065
|
+
setAttachments((prev2) => {
|
|
176066
|
+
const newAttachments = [...prev2];
|
|
176067
|
+
if (newAttachments[index2].startsWith("blob:")) {
|
|
176068
|
+
URL.revokeObjectURL(newAttachments[index2]);
|
|
176069
|
+
}
|
|
176070
|
+
newAttachments.splice(index2, 1);
|
|
176071
|
+
return newAttachments;
|
|
176072
|
+
});
|
|
176073
|
+
};
|
|
176074
|
+
const triggerFileInput = () => {
|
|
176075
|
+
fileInputRef.current?.click();
|
|
176076
|
+
};
|
|
176077
|
+
const handlePaste = (event) => {
|
|
176078
|
+
const items = event.clipboardData?.items;
|
|
176079
|
+
if (items) {
|
|
176080
|
+
for (let i2 = 0; i2 < items.length; i2++) {
|
|
176081
|
+
if (items[i2].type.indexOf("image") !== -1 || items[i2].kind === "file") {
|
|
176082
|
+
const file = items[i2].getAsFile();
|
|
176083
|
+
if (file) {
|
|
176084
|
+
const reader = new FileReader();
|
|
176085
|
+
reader.onload = (e3) => {
|
|
176086
|
+
if (e3.target?.result) {
|
|
176087
|
+
setAttachments((prev2) => [
|
|
176088
|
+
...prev2,
|
|
176089
|
+
e3.target?.result
|
|
176090
|
+
]);
|
|
176091
|
+
}
|
|
176092
|
+
};
|
|
176093
|
+
reader.readAsDataURL(file);
|
|
175742
176094
|
}
|
|
175743
|
-
|
|
175744
|
-
|
|
175745
|
-
|
|
175746
|
-
|
|
175747
|
-
|
|
175748
|
-
|
|
175749
|
-
|
|
175750
|
-
|
|
175751
|
-
|
|
175752
|
-
|
|
175753
|
-
|
|
175754
|
-
|
|
175755
|
-
|
|
175756
|
-
|
|
175757
|
-
children: suggestions.map((suggestion) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
175758
|
-
SuggestionChip,
|
|
176095
|
+
}
|
|
176096
|
+
}
|
|
176097
|
+
}
|
|
176098
|
+
};
|
|
176099
|
+
const handleSuggestionClick = (suggestion) => {
|
|
176100
|
+
if (isInputDisabled) return;
|
|
176101
|
+
onSendMessage(suggestion, attachments);
|
|
176102
|
+
setAttachments([]);
|
|
176103
|
+
setNewMessage("");
|
|
176104
|
+
};
|
|
176105
|
+
const inputContent = /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, style: { width: "100%" }, children: [
|
|
176106
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(InputInnerContainer, { children: [
|
|
176107
|
+
attachments.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176108
|
+
AttachmentsPreview,
|
|
175759
176109
|
{
|
|
176110
|
+
attachments,
|
|
176111
|
+
onRemoveAttachment: handleRemoveAttachment,
|
|
176112
|
+
disabled: isInputDisabled || isRecording || isTranscribing
|
|
176113
|
+
}
|
|
176114
|
+
),
|
|
176115
|
+
isRecording ? /* @__PURE__ */ jsxRuntimeExports.jsx(AudioRecordingIndicator, { isRecording }) : isTranscribing ? /* @__PURE__ */ jsxRuntimeExports.jsxs(TranscriptionIndicator, { children: [
|
|
176116
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TranscriptionText, { variant: "body2", children: "Processing audio..." }),
|
|
176117
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(WaveformAnimation, {})
|
|
176118
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176119
|
+
StyledTextField$2,
|
|
176120
|
+
{
|
|
176121
|
+
fullWidth: true,
|
|
176122
|
+
placeholder: isInputDisabled ? "Agent is busy" : "Ask me for help",
|
|
176123
|
+
value: newMessage,
|
|
176124
|
+
onChange: (e3) => setNewMessage(e3.target.value),
|
|
176125
|
+
onKeyDown: handleKeyDown,
|
|
176126
|
+
onPaste: handlePaste,
|
|
176127
|
+
multiline: true,
|
|
176128
|
+
maxRows: 4,
|
|
175760
176129
|
variant: "outlined",
|
|
175761
|
-
|
|
175762
|
-
onClick: () => handleSuggestionClick(suggestion),
|
|
176130
|
+
inputRef: textareaRef,
|
|
175763
176131
|
disabled: isInputDisabled,
|
|
175764
|
-
|
|
176132
|
+
inputProps: {
|
|
176133
|
+
"data-tour-tag": "chat-input-textarea"
|
|
176134
|
+
}
|
|
176135
|
+
}
|
|
176136
|
+
),
|
|
176137
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ButtonsRow, { children: [
|
|
176138
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
|
|
176139
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176140
|
+
"input",
|
|
176141
|
+
{
|
|
176142
|
+
type: "file",
|
|
176143
|
+
ref: fileInputRef,
|
|
176144
|
+
onChange: handleFileSelect,
|
|
176145
|
+
style: { display: "none" },
|
|
176146
|
+
disabled: isInputDisabled || isRecording || isTranscribing,
|
|
176147
|
+
multiple: true
|
|
176148
|
+
}
|
|
176149
|
+
),
|
|
176150
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Attach file", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176151
|
+
AttachmentButton,
|
|
176152
|
+
{
|
|
176153
|
+
onClick: triggerFileInput,
|
|
176154
|
+
color: "primary",
|
|
176155
|
+
size: "small",
|
|
176156
|
+
"aria-label": "Attach file",
|
|
176157
|
+
"data-tour-tag": "chat-input-attach-file-button",
|
|
176158
|
+
disabled: isInputDisabled || isRecording || isTranscribing,
|
|
176159
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faPaperclip })
|
|
176160
|
+
}
|
|
176161
|
+
) }) }),
|
|
176162
|
+
conversationId && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176163
|
+
DirectoryIndicator,
|
|
176164
|
+
{
|
|
176165
|
+
agentId: conversationId,
|
|
176166
|
+
currentWorkingDirectory: agentData?.current_working_directory
|
|
176167
|
+
}
|
|
176168
|
+
)
|
|
176169
|
+
] }),
|
|
176170
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
|
|
176171
|
+
!isLoading && !currentJobId && !isTranscribing && // @ts-ignore Tooltip type issue
|
|
176172
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176173
|
+
Tooltip$1,
|
|
176174
|
+
{
|
|
176175
|
+
title: isRecording ? "Stop recording" : "Start recording",
|
|
176176
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176177
|
+
IconButton,
|
|
176178
|
+
{
|
|
176179
|
+
onClick: isRecording ? handleStopRecording : handleStartRecording,
|
|
176180
|
+
color: isRecording ? "error" : "primary",
|
|
176181
|
+
size: "small",
|
|
176182
|
+
"aria-label": isRecording ? "Stop recording" : "Start recording",
|
|
176183
|
+
disabled: isLoading,
|
|
176184
|
+
children: isRecording ? /* @__PURE__ */ jsxRuntimeExports.jsx(CircleStop, { size: 24 }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Mic, { size: 24 })
|
|
176185
|
+
}
|
|
176186
|
+
) })
|
|
176187
|
+
}
|
|
176188
|
+
),
|
|
176189
|
+
isLoading && currentJobId ? (
|
|
176190
|
+
// @ts-ignore Tooltip type issue
|
|
176191
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Stop agent", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176192
|
+
SendButton,
|
|
176193
|
+
{
|
|
176194
|
+
type: "button",
|
|
176195
|
+
variant: "contained",
|
|
176196
|
+
color: "error",
|
|
176197
|
+
onClick: () => onCancelJob?.(currentJobId),
|
|
176198
|
+
"aria-label": "Stop agent",
|
|
176199
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faStop })
|
|
176200
|
+
}
|
|
176201
|
+
) }) })
|
|
176202
|
+
) : (
|
|
176203
|
+
// @ts-ignore Tooltip type issue
|
|
176204
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Send message", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176205
|
+
SendButton,
|
|
176206
|
+
{
|
|
176207
|
+
type: "submit",
|
|
176208
|
+
variant: "contained",
|
|
176209
|
+
color: "primary",
|
|
176210
|
+
disabled: isLoading || isRecording || isTranscribing || !newMessage.trim() && attachments.length === 0,
|
|
176211
|
+
"aria-label": "Send message",
|
|
176212
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faPaperPlane })
|
|
176213
|
+
}
|
|
176214
|
+
) }) })
|
|
176215
|
+
)
|
|
176216
|
+
] })
|
|
176217
|
+
] })
|
|
176218
|
+
] }),
|
|
176219
|
+
messages.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(SuggestionsContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176220
|
+
Box,
|
|
176221
|
+
{
|
|
176222
|
+
sx: {
|
|
176223
|
+
display: "flex",
|
|
176224
|
+
flexWrap: "wrap",
|
|
176225
|
+
gap: 1,
|
|
176226
|
+
marginTop: 1.5,
|
|
176227
|
+
justifyContent: "center"
|
|
175765
176228
|
},
|
|
175766
|
-
suggestion
|
|
175767
|
-
|
|
175768
|
-
|
|
175769
|
-
|
|
175770
|
-
|
|
175771
|
-
|
|
175772
|
-
|
|
175773
|
-
|
|
175774
|
-
|
|
175775
|
-
|
|
175776
|
-
|
|
175777
|
-
|
|
175778
|
-
|
|
175779
|
-
|
|
175780
|
-
|
|
175781
|
-
|
|
175782
|
-
|
|
175783
|
-
|
|
175784
|
-
}
|
|
176229
|
+
children: suggestions.map((suggestion) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176230
|
+
SuggestionChip,
|
|
176231
|
+
{
|
|
176232
|
+
variant: "outlined",
|
|
176233
|
+
size: "small",
|
|
176234
|
+
onClick: () => handleSuggestionClick(suggestion),
|
|
176235
|
+
disabled: isInputDisabled || isRecording || isTranscribing,
|
|
176236
|
+
children: suggestion
|
|
176237
|
+
},
|
|
176238
|
+
suggestion
|
|
176239
|
+
))
|
|
176240
|
+
}
|
|
176241
|
+
) })
|
|
176242
|
+
] });
|
|
176243
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(InputOuterContainer, { children: [
|
|
176244
|
+
messages.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs(EmptyStateContainer$2, { children: [
|
|
176245
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(EmptyStateTitle, { variant: "h6", children: "What can I help you with today?" }),
|
|
176246
|
+
inputContent
|
|
176247
|
+
] }) : inputContent,
|
|
176248
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
176249
|
+
ScrollToBottomButton,
|
|
176250
|
+
{
|
|
176251
|
+
visible: isFarFromBottom,
|
|
176252
|
+
onClick: scrollToBottom
|
|
176253
|
+
}
|
|
176254
|
+
)
|
|
176255
|
+
] });
|
|
176256
|
+
}
|
|
176257
|
+
);
|
|
176258
|
+
MessageInput.displayName = "MessageInput";
|
|
175785
176259
|
const RingLoadingIndicator = ({
|
|
175786
176260
|
size = 30
|
|
175787
176261
|
}) => {
|
|
@@ -216216,7 +216690,8 @@ const ChatContent = ({
|
|
|
216216
216690
|
currentJobId,
|
|
216217
216691
|
onCancelJob,
|
|
216218
216692
|
agentData,
|
|
216219
|
-
refetch
|
|
216693
|
+
refetch,
|
|
216694
|
+
messageInputRef
|
|
216220
216695
|
}) => {
|
|
216221
216696
|
const canvasContainerRef = reactExports.useRef(null);
|
|
216222
216697
|
const canvasPanelWidth = useUiPreferencesStore((s2) => s2.canvasWidth);
|
|
@@ -216288,6 +216763,7 @@ const ChatContent = ({
|
|
|
216288
216763
|
!(isLoadingMessages && messages.length === 0) && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
216289
216764
|
MessageInput,
|
|
216290
216765
|
{
|
|
216766
|
+
ref: messageInputRef,
|
|
216291
216767
|
onSendMessage,
|
|
216292
216768
|
initialSuggestions: DEFAULT_MESSAGE_SUGGESTIONS,
|
|
216293
216769
|
isLoading,
|
|
@@ -216612,7 +217088,7 @@ const ChatSidebar = ({
|
|
|
216612
217088
|
onNavigateToAgentSettings
|
|
216613
217089
|
}) => {
|
|
216614
217090
|
const [searchQuery, setSearchQuery2] = reactExports.useState("");
|
|
216615
|
-
const
|
|
217091
|
+
const { openCreateAgentDialog } = useUiPreferencesStore();
|
|
216616
217092
|
const [isImportDialogOpen, setIsImportDialogOpen] = reactExports.useState(false);
|
|
216617
217093
|
const perPage = 50;
|
|
216618
217094
|
const [isUploadDialogOpen, setIsUploadDialogOpen] = reactExports.useState(false);
|
|
@@ -216662,12 +217138,6 @@ const ChatSidebar = ({
|
|
|
216662
217138
|
},
|
|
216663
217139
|
[onSelectConversation]
|
|
216664
217140
|
);
|
|
216665
|
-
const handleOpenCreateDialog = reactExports.useCallback(() => {
|
|
216666
|
-
setIsCreateDialogOpen(true);
|
|
216667
|
-
}, []);
|
|
216668
|
-
const handleCloseCreateDialog = reactExports.useCallback(() => {
|
|
216669
|
-
setIsCreateDialogOpen(false);
|
|
216670
|
-
}, []);
|
|
216671
217141
|
const handleOpenImportDialog = reactExports.useCallback(() => {
|
|
216672
217142
|
setIsImportDialogOpen(true);
|
|
216673
217143
|
}, []);
|
|
@@ -216782,7 +217252,7 @@ const ChatSidebar = ({
|
|
|
216782
217252
|
title: "Agents",
|
|
216783
217253
|
searchQuery,
|
|
216784
217254
|
onSearchChange: (query) => setSearchQuery2(query),
|
|
216785
|
-
onNewAgentClick:
|
|
217255
|
+
onNewAgentClick: openCreateAgentDialog,
|
|
216786
217256
|
onImportAgentClick: handleOpenImportDialog,
|
|
216787
217257
|
importAgentTooltip: "Import an agent from a ZIP file"
|
|
216788
217258
|
}
|
|
@@ -216824,14 +217294,6 @@ const ChatSidebar = ({
|
|
|
216824
217294
|
},
|
|
216825
217295
|
agent.id
|
|
216826
217296
|
)) }),
|
|
216827
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
216828
|
-
CreateAgentDialog,
|
|
216829
|
-
{
|
|
216830
|
-
open: isCreateDialogOpen,
|
|
216831
|
-
onClose: handleCloseCreateDialog,
|
|
216832
|
-
onAgentCreated: handleAgentCreated
|
|
216833
|
-
}
|
|
216834
|
-
),
|
|
216835
217297
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
216836
217298
|
ImportAgentDialog,
|
|
216837
217299
|
{
|
|
@@ -216929,6 +217391,7 @@ const PlaceholderView = ({
|
|
|
216929
217391
|
};
|
|
216930
217392
|
const ChatPage = () => {
|
|
216931
217393
|
const didAutoScrollRef = React$1.useRef(false);
|
|
217394
|
+
const messageInputRef = reactExports.useRef(null);
|
|
216932
217395
|
const { agentId, navigateToAgent } = useAgentRouteParam();
|
|
216933
217396
|
const navigate = useNavigate();
|
|
216934
217397
|
const queryClient2 = useQueryClient();
|
|
@@ -216981,6 +217444,7 @@ const ChatPage = () => {
|
|
|
216981
217444
|
const messagesEndRef = reactExports.useRef(null);
|
|
216982
217445
|
reactExports.useEffect(() => {
|
|
216983
217446
|
if (agentId) {
|
|
217447
|
+
const previousAgentId = previousConversationIdRef.current;
|
|
216984
217448
|
setLastChatAgentId(agentId);
|
|
216985
217449
|
if (!isLoadingMessages && messages.length > 0) {
|
|
216986
217450
|
const prevMessages = getMessages(agentId);
|
|
@@ -216988,6 +217452,11 @@ const ChatPage = () => {
|
|
|
216988
217452
|
scrollToBottom();
|
|
216989
217453
|
}
|
|
216990
217454
|
}
|
|
217455
|
+
if (previousAgentId && previousAgentId !== agentId) {
|
|
217456
|
+
Promise.resolve().then(() => {
|
|
217457
|
+
messageInputRef.current?.focusInput();
|
|
217458
|
+
});
|
|
217459
|
+
}
|
|
216991
217460
|
}
|
|
216992
217461
|
}, [
|
|
216993
217462
|
agentId,
|
|
@@ -217008,10 +217477,13 @@ const ChatPage = () => {
|
|
|
217008
217477
|
if (!didAutoScrollRef.current && agentId && !isLoadingMessages && messages.length > 0) {
|
|
217009
217478
|
if (messagesContainerRef.current) {
|
|
217010
217479
|
messagesContainerRef.current.scrollTop = 0;
|
|
217011
|
-
didAutoScrollRef.current = true;
|
|
217012
217480
|
}
|
|
217481
|
+
Promise.resolve().then(() => {
|
|
217482
|
+
messageInputRef.current?.focusInput();
|
|
217483
|
+
});
|
|
217484
|
+
didAutoScrollRef.current = true;
|
|
217013
217485
|
}
|
|
217014
|
-
}, [agentId, isLoadingMessages, messages.length]);
|
|
217486
|
+
}, [agentId, isLoadingMessages, messages.length, scrollToBottom]);
|
|
217015
217487
|
const previousConversationIdRef = reactExports.useRef(void 0);
|
|
217016
217488
|
reactExports.useEffect(() => {
|
|
217017
217489
|
if (conversationId) {
|
|
@@ -217220,7 +217692,8 @@ Store messages: ${JSON.stringify(getMessages(conversationId || ""), null, 2)}`;
|
|
|
217220
217692
|
currentJobId,
|
|
217221
217693
|
onCancelJob: handleCancelJob,
|
|
217222
217694
|
agentData,
|
|
217223
|
-
refetch
|
|
217695
|
+
refetch,
|
|
217696
|
+
messageInputRef
|
|
217224
217697
|
}
|
|
217225
217698
|
);
|
|
217226
217699
|
};
|
|
@@ -217239,6 +217712,689 @@ Store messages: ${JSON.stringify(getMessages(conversationId || ""), null, 2)}`;
|
|
|
217239
217712
|
}
|
|
217240
217713
|
);
|
|
217241
217714
|
};
|
|
217715
|
+
const getIconElement = (section) => {
|
|
217716
|
+
if (section.isImage && typeof section.icon === "string") {
|
|
217717
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
217718
|
+
"img",
|
|
217719
|
+
{
|
|
217720
|
+
src: section.icon,
|
|
217721
|
+
alt: section.label,
|
|
217722
|
+
style: { width: 20, height: 20, objectFit: "contain" }
|
|
217723
|
+
}
|
|
217724
|
+
);
|
|
217725
|
+
}
|
|
217726
|
+
if (section.isFontAwesome) {
|
|
217727
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
217728
|
+
FontAwesomeIcon,
|
|
217729
|
+
{
|
|
217730
|
+
icon: section.icon,
|
|
217731
|
+
size: "lg",
|
|
217732
|
+
style: { width: 16, height: 16 }
|
|
217733
|
+
}
|
|
217734
|
+
);
|
|
217735
|
+
}
|
|
217736
|
+
const IconComponent = section.icon;
|
|
217737
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(IconComponent, { size: 16 });
|
|
217738
|
+
};
|
|
217739
|
+
const RadientIcon = "" + new URL("radient-icon-1024x1024-D_JJedvo.png", import.meta.url).href;
|
|
217740
|
+
const SidebarContainer$1 = styled$1(Paper)(({ theme: theme2 }) => ({
|
|
217741
|
+
width: "100%",
|
|
217742
|
+
height: "100%",
|
|
217743
|
+
borderRadius: 0,
|
|
217744
|
+
backgroundColor: theme2.palette.sidebar.secondaryBackground,
|
|
217745
|
+
boxShadow: "none",
|
|
217746
|
+
display: "flex",
|
|
217747
|
+
flexDirection: "column",
|
|
217748
|
+
overflow: "hidden",
|
|
217749
|
+
borderRight: `1px solid ${theme2.palette.sidebar.border}`
|
|
217750
|
+
}));
|
|
217751
|
+
const SidebarHeader = styled$1(Box)(({ theme: theme2 }) => ({
|
|
217752
|
+
padding: theme2.spacing(3),
|
|
217753
|
+
borderBottom: `1px solid ${theme2.palette.sidebar.border}`
|
|
217754
|
+
}));
|
|
217755
|
+
const SidebarTitle = styled$1(Typography)(({ theme: theme2 }) => ({
|
|
217756
|
+
fontWeight: 600,
|
|
217757
|
+
fontSize: "1rem",
|
|
217758
|
+
color: theme2.palette.text.primary
|
|
217759
|
+
}));
|
|
217760
|
+
const SidebarList = styled$1(List$1)(({ theme: theme2 }) => ({
|
|
217761
|
+
padding: theme2.spacing(2),
|
|
217762
|
+
flexGrow: 1
|
|
217763
|
+
}));
|
|
217764
|
+
const SidebarItemButton = styled$1(ListItemButton, {
|
|
217765
|
+
shouldForwardProp: (prop) => prop !== "isActive"
|
|
217766
|
+
})(({ theme: theme2, isActive }) => ({
|
|
217767
|
+
borderRadius: 8,
|
|
217768
|
+
marginBottom: 4,
|
|
217769
|
+
paddingTop: 10,
|
|
217770
|
+
paddingBottom: 10,
|
|
217771
|
+
color: isActive ? theme2.palette.sidebar.itemActiveText : theme2.palette.sidebar.itemText,
|
|
217772
|
+
backgroundColor: isActive ? theme2.palette.sidebar.itemActive : "transparent",
|
|
217773
|
+
transition: "all 0.2s ease-out",
|
|
217774
|
+
position: "relative",
|
|
217775
|
+
overflow: "hidden",
|
|
217776
|
+
"&:hover": {
|
|
217777
|
+
backgroundColor: isActive ? theme2.palette.sidebar.itemActiveHover : theme2.palette.sidebar.itemHover,
|
|
217778
|
+
transform: "translateX(4px)"
|
|
217779
|
+
},
|
|
217780
|
+
...isActive && {
|
|
217781
|
+
"&::before": {
|
|
217782
|
+
content: '""',
|
|
217783
|
+
position: "absolute",
|
|
217784
|
+
left: 0,
|
|
217785
|
+
top: "50%",
|
|
217786
|
+
transform: "translateY(-50%)",
|
|
217787
|
+
width: 4,
|
|
217788
|
+
height: "60%",
|
|
217789
|
+
backgroundColor: theme2.palette.sidebar.itemActiveText,
|
|
217790
|
+
borderRadius: "0 4px 4px 0"
|
|
217791
|
+
}
|
|
217792
|
+
}
|
|
217793
|
+
}));
|
|
217794
|
+
const SidebarItemIcon = styled$1(ListItemIcon, {
|
|
217795
|
+
shouldForwardProp: (prop) => prop !== "isActive"
|
|
217796
|
+
})(({ theme: theme2, isActive }) => ({
|
|
217797
|
+
minWidth: 40,
|
|
217798
|
+
color: isActive ? theme2.palette.sidebar.itemActiveText : theme2.palette.icon.text,
|
|
217799
|
+
transition: "transform 0.2s ease, color 0.2s ease",
|
|
217800
|
+
...isActive && {
|
|
217801
|
+
transform: "scale(1.1)"
|
|
217802
|
+
}
|
|
217803
|
+
}));
|
|
217804
|
+
const IconImage$2 = styled$1("img")(() => ({
|
|
217805
|
+
width: 30,
|
|
217806
|
+
height: 30,
|
|
217807
|
+
marginLeft: -4,
|
|
217808
|
+
objectFit: "contain"
|
|
217809
|
+
}));
|
|
217810
|
+
const SettingsSidebar = ({
|
|
217811
|
+
activeSection,
|
|
217812
|
+
onSelectSection,
|
|
217813
|
+
sections
|
|
217814
|
+
}) => {
|
|
217815
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(SidebarContainer$1, { elevation: 0, children: [
|
|
217816
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarHeader, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SidebarTitle, { variant: "subtitle1", children: "Settings Navigation" }) }),
|
|
217817
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarList, { children: sections.map((section) => {
|
|
217818
|
+
let tourTag;
|
|
217819
|
+
switch (section.id) {
|
|
217820
|
+
case "general":
|
|
217821
|
+
tourTag = "settings-sidebar-general";
|
|
217822
|
+
break;
|
|
217823
|
+
case "radient":
|
|
217824
|
+
tourTag = "settings-sidebar-radient-account";
|
|
217825
|
+
break;
|
|
217826
|
+
case "integrations":
|
|
217827
|
+
tourTag = "settings-sidebar-integrations";
|
|
217828
|
+
break;
|
|
217829
|
+
case "appearance":
|
|
217830
|
+
tourTag = "settings-sidebar-appearance";
|
|
217831
|
+
break;
|
|
217832
|
+
case "credentials":
|
|
217833
|
+
tourTag = "settings-sidebar-api-credentials";
|
|
217834
|
+
break;
|
|
217835
|
+
case "updates":
|
|
217836
|
+
tourTag = "settings-sidebar-application-updates";
|
|
217837
|
+
break;
|
|
217838
|
+
default:
|
|
217839
|
+
tourTag = void 0;
|
|
217840
|
+
}
|
|
217841
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
217842
|
+
SidebarItemButton,
|
|
217843
|
+
{
|
|
217844
|
+
isActive: activeSection === section.id,
|
|
217845
|
+
onClick: () => onSelectSection(section.id),
|
|
217846
|
+
"data-tour-tag": tourTag,
|
|
217847
|
+
children: [
|
|
217848
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarItemIcon, { isActive: activeSection === section.id, children: section.isImage ? /* @__PURE__ */ jsxRuntimeExports.jsx(IconImage$2, { src: section.icon, alt: section.label }) : section.isFontAwesome ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
217849
|
+
FontAwesomeIcon,
|
|
217850
|
+
{
|
|
217851
|
+
icon: section.icon,
|
|
217852
|
+
style: { fontSize: 20 }
|
|
217853
|
+
}
|
|
217854
|
+
) : (() => {
|
|
217855
|
+
const IconComponent = section.icon;
|
|
217856
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(IconComponent, { size: 22, strokeWidth: 2.1 });
|
|
217857
|
+
})() }),
|
|
217858
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
217859
|
+
ListItemText,
|
|
217860
|
+
{
|
|
217861
|
+
primary: section.label,
|
|
217862
|
+
primaryTypographyProps: {
|
|
217863
|
+
fontWeight: activeSection === section.id ? 600 : 500,
|
|
217864
|
+
fontSize: "0.95rem"
|
|
217865
|
+
}
|
|
217866
|
+
}
|
|
217867
|
+
)
|
|
217868
|
+
]
|
|
217869
|
+
},
|
|
217870
|
+
section.id
|
|
217871
|
+
);
|
|
217872
|
+
}) })
|
|
217873
|
+
] });
|
|
217874
|
+
};
|
|
217875
|
+
const DEFAULT_SETTINGS_SECTIONS = [
|
|
217876
|
+
{
|
|
217877
|
+
id: "general",
|
|
217878
|
+
label: "General Settings",
|
|
217879
|
+
icon: Settings$1
|
|
217880
|
+
},
|
|
217881
|
+
{
|
|
217882
|
+
id: "radient",
|
|
217883
|
+
label: "Radient Account",
|
|
217884
|
+
icon: RadientIcon,
|
|
217885
|
+
isImage: true
|
|
217886
|
+
},
|
|
217887
|
+
{
|
|
217888
|
+
id: "integrations",
|
|
217889
|
+
label: "Integrations",
|
|
217890
|
+
icon: Puzzle
|
|
217891
|
+
},
|
|
217892
|
+
{
|
|
217893
|
+
id: "appearance",
|
|
217894
|
+
label: "Appearance",
|
|
217895
|
+
icon: Paintbrush
|
|
217896
|
+
},
|
|
217897
|
+
{
|
|
217898
|
+
id: "credentials",
|
|
217899
|
+
label: "API Credentials",
|
|
217900
|
+
icon: Key
|
|
217901
|
+
},
|
|
217902
|
+
{
|
|
217903
|
+
id: "updates",
|
|
217904
|
+
label: "Application Updates",
|
|
217905
|
+
icon: Download
|
|
217906
|
+
}
|
|
217907
|
+
];
|
|
217908
|
+
function useDebounce(value, delay) {
|
|
217909
|
+
const [debouncedValue, setDebouncedValue] = reactExports.useState(value);
|
|
217910
|
+
reactExports.useEffect(() => {
|
|
217911
|
+
const handler = setTimeout(() => {
|
|
217912
|
+
setDebouncedValue(value);
|
|
217913
|
+
}, delay);
|
|
217914
|
+
return () => {
|
|
217915
|
+
clearTimeout(handler);
|
|
217916
|
+
};
|
|
217917
|
+
}, [value, delay]);
|
|
217918
|
+
return debouncedValue;
|
|
217919
|
+
}
|
|
217920
|
+
const StyledDialog$1 = styled$1(Dialog)(({ theme: theme2 }) => ({
|
|
217921
|
+
"& .MuiDialog-paper": {
|
|
217922
|
+
width: "600px",
|
|
217923
|
+
maxWidth: "90vw",
|
|
217924
|
+
borderRadius: theme2.shape.borderRadius * 2,
|
|
217925
|
+
backgroundColor: theme2.palette.background.default,
|
|
217926
|
+
backgroundImage: "none",
|
|
217927
|
+
boxShadow: theme2.shadows[8],
|
|
217928
|
+
border: `1px solid ${theme2.palette.divider}`
|
|
217929
|
+
}
|
|
217930
|
+
}));
|
|
217931
|
+
const SearchInputContainer = styled$1("div")(({ theme: theme2 }) => ({
|
|
217932
|
+
padding: theme2.spacing(2, 3),
|
|
217933
|
+
borderBottom: `1px solid ${theme2.palette.divider}`
|
|
217934
|
+
}));
|
|
217935
|
+
const ResultsListContainer = styled$1(List$1)(({ theme: theme2 }) => ({
|
|
217936
|
+
maxHeight: "400px",
|
|
217937
|
+
overflowY: "auto",
|
|
217938
|
+
padding: 0,
|
|
217939
|
+
// Custom scrollbar styles
|
|
217940
|
+
"&::-webkit-scrollbar": {
|
|
217941
|
+
width: "8px"
|
|
217942
|
+
},
|
|
217943
|
+
"&::-webkit-scrollbar-track": {
|
|
217944
|
+
background: "transparent"
|
|
217945
|
+
},
|
|
217946
|
+
"&::-webkit-scrollbar-thumb": {
|
|
217947
|
+
background: theme2.palette.mode === "dark" ? "rgba(255, 255, 255, 0.2)" : "rgba(0, 0, 0, 0.2)",
|
|
217948
|
+
borderRadius: "4px",
|
|
217949
|
+
"&:hover": {
|
|
217950
|
+
background: theme2.palette.mode === "dark" ? "rgba(255, 255, 255, 0.3)" : "rgba(0, 0, 0, 0.3)"
|
|
217951
|
+
}
|
|
217952
|
+
},
|
|
217953
|
+
// Firefox scrollbar styles
|
|
217954
|
+
scrollbarWidth: "thin",
|
|
217955
|
+
scrollbarColor: theme2.palette.mode === "dark" ? "rgba(255, 255, 255, 0.2) transparent" : "rgba(0, 0, 0, 0.2) transparent"
|
|
217956
|
+
}));
|
|
217957
|
+
const ResultItemStyled = styled$1(ListItemButton)(({ theme: theme2 }) => ({
|
|
217958
|
+
padding: theme2.spacing(0.5, 2),
|
|
217959
|
+
borderRadius: 8,
|
|
217960
|
+
"&:hover": {
|
|
217961
|
+
backgroundColor: theme2.palette.action.hover
|
|
217962
|
+
}
|
|
217963
|
+
}));
|
|
217964
|
+
const ActionChip = styled$1(Chip)(() => ({
|
|
217965
|
+
fontSize: "0.7rem",
|
|
217966
|
+
height: "20px",
|
|
217967
|
+
marginLeft: "auto"
|
|
217968
|
+
}));
|
|
217969
|
+
const PAGE_DEFINITIONS = [
|
|
217970
|
+
{
|
|
217971
|
+
name: "Chat",
|
|
217972
|
+
path: "/chat",
|
|
217973
|
+
category: "Navigation",
|
|
217974
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageSquare, { size: 16 })
|
|
217975
|
+
},
|
|
217976
|
+
{
|
|
217977
|
+
name: "My Agents",
|
|
217978
|
+
path: "/agents",
|
|
217979
|
+
category: "Navigation",
|
|
217980
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Users, { size: 16 })
|
|
217981
|
+
},
|
|
217982
|
+
{
|
|
217983
|
+
name: "Agent Hub",
|
|
217984
|
+
path: "/agent-hub",
|
|
217985
|
+
category: "Navigation",
|
|
217986
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Store, { size: 16 })
|
|
217987
|
+
},
|
|
217988
|
+
{
|
|
217989
|
+
name: "Schedules",
|
|
217990
|
+
path: "/schedules",
|
|
217991
|
+
category: "Navigation",
|
|
217992
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Calendar, { size: 16 })
|
|
217993
|
+
},
|
|
217994
|
+
{
|
|
217995
|
+
name: "Settings",
|
|
217996
|
+
path: "/settings",
|
|
217997
|
+
category: "Navigation",
|
|
217998
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Settings$1, { size: 16 })
|
|
217999
|
+
}
|
|
218000
|
+
];
|
|
218001
|
+
const MAX_SUGGESTIONS = 15;
|
|
218002
|
+
const getActionLabel = (type2) => {
|
|
218003
|
+
switch (type2) {
|
|
218004
|
+
case "page":
|
|
218005
|
+
return "Navigate";
|
|
218006
|
+
case "agent-chat":
|
|
218007
|
+
return "Chat";
|
|
218008
|
+
case "agent-settings":
|
|
218009
|
+
return "Configure";
|
|
218010
|
+
case "settings-section":
|
|
218011
|
+
return "Configure";
|
|
218012
|
+
case "create-agent":
|
|
218013
|
+
return "Create";
|
|
218014
|
+
case "clear-conversation":
|
|
218015
|
+
return "Clear";
|
|
218016
|
+
case "toggle-canvas":
|
|
218017
|
+
return "Toggle";
|
|
218018
|
+
default:
|
|
218019
|
+
return "Open";
|
|
218020
|
+
}
|
|
218021
|
+
};
|
|
218022
|
+
const getActionColor = (type2) => {
|
|
218023
|
+
switch (type2) {
|
|
218024
|
+
case "page":
|
|
218025
|
+
return "primary";
|
|
218026
|
+
case "agent-chat":
|
|
218027
|
+
return "success";
|
|
218028
|
+
case "agent-settings":
|
|
218029
|
+
return "warning";
|
|
218030
|
+
case "settings-section":
|
|
218031
|
+
return "info";
|
|
218032
|
+
case "create-agent":
|
|
218033
|
+
return "success";
|
|
218034
|
+
case "clear-conversation":
|
|
218035
|
+
return "error";
|
|
218036
|
+
case "toggle-canvas":
|
|
218037
|
+
return "secondary";
|
|
218038
|
+
default:
|
|
218039
|
+
return "default";
|
|
218040
|
+
}
|
|
218041
|
+
};
|
|
218042
|
+
const CommandPalette = () => {
|
|
218043
|
+
const navigate = useNavigate();
|
|
218044
|
+
const location2 = useLocation();
|
|
218045
|
+
const {
|
|
218046
|
+
isCommandPaletteOpen,
|
|
218047
|
+
closeCommandPalette,
|
|
218048
|
+
commandPaletteQuery,
|
|
218049
|
+
setCommandPaletteQuery,
|
|
218050
|
+
isCanvasOpen,
|
|
218051
|
+
setCanvasOpen,
|
|
218052
|
+
isCreateAgentDialogOpen,
|
|
218053
|
+
// Use global state
|
|
218054
|
+
openCreateAgentDialog,
|
|
218055
|
+
// Use global action
|
|
218056
|
+
closeCreateAgentDialog
|
|
218057
|
+
// Use global action
|
|
218058
|
+
} = useUiPreferencesStore();
|
|
218059
|
+
const { agentId: currentAgentIdFromRoute } = useAgentRouteParam();
|
|
218060
|
+
const { getLastAgentId } = useAgentSelectionStore();
|
|
218061
|
+
const { data: agentsData } = useAgents(1, 20);
|
|
218062
|
+
const theme2 = useTheme$2();
|
|
218063
|
+
const clearConversationMutation = useClearAgentConversation();
|
|
218064
|
+
const [selectedIndex, setSelectedIndex] = reactExports.useState(0);
|
|
218065
|
+
const [localQuery, setLocalQuery] = reactExports.useState(commandPaletteQuery);
|
|
218066
|
+
const debouncedLocalQuery = useDebounce(localQuery, 200);
|
|
218067
|
+
const [isClearConfirmationOpen, setIsClearConfirmationOpen] = reactExports.useState(false);
|
|
218068
|
+
const effectiveAgentId = currentAgentIdFromRoute || getLastAgentId("chat");
|
|
218069
|
+
const isOnChatPage = location2.pathname.startsWith("/chat");
|
|
218070
|
+
reactExports.useEffect(() => {
|
|
218071
|
+
setCommandPaletteQuery(debouncedLocalQuery);
|
|
218072
|
+
}, [debouncedLocalQuery, setCommandPaletteQuery]);
|
|
218073
|
+
reactExports.useEffect(() => {
|
|
218074
|
+
if (isCommandPaletteOpen) {
|
|
218075
|
+
setLocalQuery(commandPaletteQuery);
|
|
218076
|
+
}
|
|
218077
|
+
}, [isCommandPaletteOpen, commandPaletteQuery]);
|
|
218078
|
+
const handleQueryChange = reactExports.useCallback(
|
|
218079
|
+
(event) => {
|
|
218080
|
+
setLocalQuery(event.target.value);
|
|
218081
|
+
},
|
|
218082
|
+
[]
|
|
218083
|
+
);
|
|
218084
|
+
const handleClearSearch = reactExports.useCallback(() => {
|
|
218085
|
+
setLocalQuery("");
|
|
218086
|
+
}, []);
|
|
218087
|
+
const inputPropsStyle = reactExports.useMemo(() => ({ fontSize: "1rem" }), []);
|
|
218088
|
+
const startAdornment = reactExports.useMemo(
|
|
218089
|
+
() => /* @__PURE__ */ jsxRuntimeExports.jsx(InputAdornment, { position: "start", sx: { width: "28px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Search, { size: 16, color: theme2.palette.action.active }) }),
|
|
218090
|
+
[theme2.palette.action.active]
|
|
218091
|
+
);
|
|
218092
|
+
const endAdornment = reactExports.useMemo(
|
|
218093
|
+
() => localQuery ? /* @__PURE__ */ jsxRuntimeExports.jsx(InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218094
|
+
IconButton,
|
|
218095
|
+
{
|
|
218096
|
+
"aria-label": "clear search",
|
|
218097
|
+
onClick: handleClearSearch,
|
|
218098
|
+
edge: "end",
|
|
218099
|
+
size: "small",
|
|
218100
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$2, { size: 16 })
|
|
218101
|
+
}
|
|
218102
|
+
) }) : null,
|
|
218103
|
+
[localQuery, handleClearSearch]
|
|
218104
|
+
);
|
|
218105
|
+
const textFieldInputProps = reactExports.useMemo(
|
|
218106
|
+
() => ({
|
|
218107
|
+
startAdornment,
|
|
218108
|
+
endAdornment,
|
|
218109
|
+
disableUnderline: true,
|
|
218110
|
+
style: inputPropsStyle
|
|
218111
|
+
}),
|
|
218112
|
+
[startAdornment, endAdornment, inputPropsStyle]
|
|
218113
|
+
);
|
|
218114
|
+
const pages = reactExports.useMemo(() => {
|
|
218115
|
+
return PAGE_DEFINITIONS.map((p2, i2) => ({
|
|
218116
|
+
...p2,
|
|
218117
|
+
id: `page-${i2}`,
|
|
218118
|
+
type: "page"
|
|
218119
|
+
}));
|
|
218120
|
+
}, []);
|
|
218121
|
+
const settingsSectionItems = reactExports.useMemo(() => {
|
|
218122
|
+
return DEFAULT_SETTINGS_SECTIONS.map((section) => ({
|
|
218123
|
+
id: `settings-section-${section.id}`,
|
|
218124
|
+
type: "settings-section",
|
|
218125
|
+
name: section.label,
|
|
218126
|
+
category: "Settings Section",
|
|
218127
|
+
path: `/settings?section=${section.id}`,
|
|
218128
|
+
icon: getIconElement(section)
|
|
218129
|
+
}));
|
|
218130
|
+
}, []);
|
|
218131
|
+
const handleCreateAgent = reactExports.useCallback(() => {
|
|
218132
|
+
closeCommandPalette();
|
|
218133
|
+
openCreateAgentDialog();
|
|
218134
|
+
}, [closeCommandPalette, openCreateAgentDialog]);
|
|
218135
|
+
const handleClearConversation = reactExports.useCallback(() => {
|
|
218136
|
+
if (effectiveAgentId) {
|
|
218137
|
+
setIsClearConfirmationOpen(true);
|
|
218138
|
+
}
|
|
218139
|
+
}, [effectiveAgentId]);
|
|
218140
|
+
const confirmActualClearConversation = reactExports.useCallback(() => {
|
|
218141
|
+
if (effectiveAgentId) {
|
|
218142
|
+
clearConversationMutation.mutate({ agentId: effectiveAgentId });
|
|
218143
|
+
}
|
|
218144
|
+
setIsClearConfirmationOpen(false);
|
|
218145
|
+
closeCommandPalette();
|
|
218146
|
+
}, [effectiveAgentId, clearConversationMutation, closeCommandPalette]);
|
|
218147
|
+
const cancelClearConversation = reactExports.useCallback(() => {
|
|
218148
|
+
setIsClearConfirmationOpen(false);
|
|
218149
|
+
}, []);
|
|
218150
|
+
const handleToggleCanvas = reactExports.useCallback(() => {
|
|
218151
|
+
setCanvasOpen(!isCanvasOpen);
|
|
218152
|
+
closeCommandPalette();
|
|
218153
|
+
}, [isCanvasOpen, setCanvasOpen, closeCommandPalette]);
|
|
218154
|
+
const handleAgentCreated = reactExports.useCallback(
|
|
218155
|
+
(agentId) => {
|
|
218156
|
+
navigate(`/chat/${agentId}`);
|
|
218157
|
+
closeCreateAgentDialog();
|
|
218158
|
+
},
|
|
218159
|
+
[navigate, closeCreateAgentDialog]
|
|
218160
|
+
);
|
|
218161
|
+
const actionItems = reactExports.useMemo(() => {
|
|
218162
|
+
const items = [];
|
|
218163
|
+
items.push({
|
|
218164
|
+
id: "create-agent",
|
|
218165
|
+
type: "create-agent",
|
|
218166
|
+
name: "Create Agent",
|
|
218167
|
+
category: "Actions",
|
|
218168
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Plus$1, { size: 16 }),
|
|
218169
|
+
action: handleCreateAgent
|
|
218170
|
+
});
|
|
218171
|
+
if (isOnChatPage && effectiveAgentId) {
|
|
218172
|
+
items.push({
|
|
218173
|
+
id: "clear-conversation",
|
|
218174
|
+
type: "clear-conversation",
|
|
218175
|
+
name: "Clear Conversation",
|
|
218176
|
+
category: "Actions",
|
|
218177
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Trash2, { size: 16 }),
|
|
218178
|
+
action: handleClearConversation
|
|
218179
|
+
});
|
|
218180
|
+
}
|
|
218181
|
+
if (isOnChatPage) {
|
|
218182
|
+
items.push({
|
|
218183
|
+
id: "toggle-canvas",
|
|
218184
|
+
type: "toggle-canvas",
|
|
218185
|
+
name: isCanvasOpen ? "Close Canvas" : "Open Canvas",
|
|
218186
|
+
category: "Actions",
|
|
218187
|
+
icon: isCanvasOpen ? /* @__PURE__ */ jsxRuntimeExports.jsx(PanelRightClose, { size: 16 }) : /* @__PURE__ */ jsxRuntimeExports.jsx(PanelRightOpen, { size: 16 }),
|
|
218188
|
+
action: handleToggleCanvas
|
|
218189
|
+
});
|
|
218190
|
+
}
|
|
218191
|
+
return items;
|
|
218192
|
+
}, [
|
|
218193
|
+
isOnChatPage,
|
|
218194
|
+
effectiveAgentId,
|
|
218195
|
+
isCanvasOpen,
|
|
218196
|
+
handleCreateAgent,
|
|
218197
|
+
handleClearConversation,
|
|
218198
|
+
handleToggleCanvas
|
|
218199
|
+
]);
|
|
218200
|
+
const handleItemClick = reactExports.useCallback(
|
|
218201
|
+
(item) => {
|
|
218202
|
+
if (item.action) {
|
|
218203
|
+
item.action();
|
|
218204
|
+
} else if (item.path) {
|
|
218205
|
+
navigate(item.path);
|
|
218206
|
+
closeCommandPalette();
|
|
218207
|
+
}
|
|
218208
|
+
},
|
|
218209
|
+
[navigate, closeCommandPalette]
|
|
218210
|
+
);
|
|
218211
|
+
const allItems = reactExports.useMemo(() => {
|
|
218212
|
+
const agentItems = [];
|
|
218213
|
+
if (agentsData?.agents) {
|
|
218214
|
+
for (const agent of agentsData.agents) {
|
|
218215
|
+
agentItems.push({
|
|
218216
|
+
id: `agent-chat-${agent.id}`,
|
|
218217
|
+
type: "agent-chat",
|
|
218218
|
+
name: agent.name,
|
|
218219
|
+
category: "Agent",
|
|
218220
|
+
path: `/chat/${agent.id}`,
|
|
218221
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(MessageSquare, { size: 16 })
|
|
218222
|
+
});
|
|
218223
|
+
agentItems.push({
|
|
218224
|
+
id: `agent-settings-${agent.id}`,
|
|
218225
|
+
type: "agent-settings",
|
|
218226
|
+
name: agent.name,
|
|
218227
|
+
category: "Agent",
|
|
218228
|
+
path: `/agents/${agent.id}`,
|
|
218229
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Settings$1, { size: 16 })
|
|
218230
|
+
});
|
|
218231
|
+
}
|
|
218232
|
+
}
|
|
218233
|
+
return [...actionItems, ...pages, ...settingsSectionItems, ...agentItems];
|
|
218234
|
+
}, [agentsData, pages, settingsSectionItems, actionItems]);
|
|
218235
|
+
const filteredItems = reactExports.useMemo(() => {
|
|
218236
|
+
if (!debouncedLocalQuery) {
|
|
218237
|
+
return allItems.slice(0, MAX_SUGGESTIONS);
|
|
218238
|
+
}
|
|
218239
|
+
const lowerCaseQuery = debouncedLocalQuery.toLowerCase();
|
|
218240
|
+
const filtered = allItems.filter(
|
|
218241
|
+
(item) => item.name.toLowerCase().includes(lowerCaseQuery) || item.category.toLowerCase().includes(lowerCaseQuery)
|
|
218242
|
+
);
|
|
218243
|
+
return filtered.slice(0, MAX_SUGGESTIONS);
|
|
218244
|
+
}, [allItems, debouncedLocalQuery]);
|
|
218245
|
+
reactExports.useEffect(() => {
|
|
218246
|
+
setSelectedIndex(0);
|
|
218247
|
+
}, [filteredItems, isCommandPaletteOpen]);
|
|
218248
|
+
reactExports.useEffect(() => {
|
|
218249
|
+
const handleKeyDown = (event) => {
|
|
218250
|
+
if (!isCommandPaletteOpen) return;
|
|
218251
|
+
if (event.key === "ArrowDown") {
|
|
218252
|
+
event.preventDefault();
|
|
218253
|
+
setSelectedIndex((prev2) => (prev2 + 1) % filteredItems.length);
|
|
218254
|
+
} else if (event.key === "ArrowUp") {
|
|
218255
|
+
event.preventDefault();
|
|
218256
|
+
setSelectedIndex(
|
|
218257
|
+
(prev2) => (prev2 - 1 + filteredItems.length) % filteredItems.length
|
|
218258
|
+
);
|
|
218259
|
+
} else if (event.key === "Enter") {
|
|
218260
|
+
event.preventDefault();
|
|
218261
|
+
if (filteredItems[selectedIndex]) {
|
|
218262
|
+
handleItemClick(filteredItems[selectedIndex]);
|
|
218263
|
+
}
|
|
218264
|
+
} else if (event.key === "Escape") {
|
|
218265
|
+
closeCommandPalette();
|
|
218266
|
+
}
|
|
218267
|
+
};
|
|
218268
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
218269
|
+
return () => {
|
|
218270
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
218271
|
+
};
|
|
218272
|
+
}, [
|
|
218273
|
+
isCommandPaletteOpen,
|
|
218274
|
+
filteredItems,
|
|
218275
|
+
selectedIndex,
|
|
218276
|
+
closeCommandPalette,
|
|
218277
|
+
handleItemClick
|
|
218278
|
+
]);
|
|
218279
|
+
if (!isCommandPaletteOpen) {
|
|
218280
|
+
return null;
|
|
218281
|
+
}
|
|
218282
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
218283
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
218284
|
+
StyledDialog$1,
|
|
218285
|
+
{
|
|
218286
|
+
"data-tour-tag": "command-palette-dialog",
|
|
218287
|
+
open: isCommandPaletteOpen,
|
|
218288
|
+
onClose: closeCommandPalette,
|
|
218289
|
+
"aria-labelledby": "command-palette-dialog-title",
|
|
218290
|
+
fullWidth: true,
|
|
218291
|
+
disableRestoreFocus: true,
|
|
218292
|
+
children: [
|
|
218293
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SearchInputContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218294
|
+
TextField,
|
|
218295
|
+
{
|
|
218296
|
+
autoFocus: true,
|
|
218297
|
+
fullWidth: true,
|
|
218298
|
+
variant: "standard",
|
|
218299
|
+
placeholder: "Search actions, agents, and pages",
|
|
218300
|
+
value: localQuery,
|
|
218301
|
+
onChange: handleQueryChange,
|
|
218302
|
+
InputProps: textFieldInputProps,
|
|
218303
|
+
autoComplete: "off"
|
|
218304
|
+
}
|
|
218305
|
+
) }),
|
|
218306
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { sx: { padding: 0 }, children: [
|
|
218307
|
+
filteredItems.length === 0 && debouncedLocalQuery && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218308
|
+
Typography,
|
|
218309
|
+
{
|
|
218310
|
+
sx: { p: 3, textAlign: "center", color: "text.secondary" },
|
|
218311
|
+
children: "No results found."
|
|
218312
|
+
}
|
|
218313
|
+
),
|
|
218314
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ResultsListContainer, { sx: { padding: 0.5 }, children: filteredItems.map((item, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218315
|
+
ListItem,
|
|
218316
|
+
{
|
|
218317
|
+
disablePadding: true,
|
|
218318
|
+
dense: true,
|
|
218319
|
+
sx: { padding: 0.5 },
|
|
218320
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
218321
|
+
ResultItemStyled,
|
|
218322
|
+
{
|
|
218323
|
+
selected: selectedIndex === index2,
|
|
218324
|
+
onClick: () => handleItemClick(item),
|
|
218325
|
+
onMouseMove: () => setSelectedIndex(index2),
|
|
218326
|
+
children: [
|
|
218327
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218328
|
+
ListItemIcon,
|
|
218329
|
+
{
|
|
218330
|
+
sx: {
|
|
218331
|
+
minWidth: "20px",
|
|
218332
|
+
display: "flex",
|
|
218333
|
+
alignItems: "center",
|
|
218334
|
+
justifyContent: "center",
|
|
218335
|
+
mr: 1.5,
|
|
218336
|
+
color: "text.secondary"
|
|
218337
|
+
},
|
|
218338
|
+
children: item.icon || /* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { size: 16 })
|
|
218339
|
+
}
|
|
218340
|
+
),
|
|
218341
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218342
|
+
ListItemText,
|
|
218343
|
+
{
|
|
218344
|
+
primary: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
218345
|
+
Box,
|
|
218346
|
+
{
|
|
218347
|
+
sx: { display: "flex", alignItems: "center", gap: 1 },
|
|
218348
|
+
children: [
|
|
218349
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", children: item.name }),
|
|
218350
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "caption", color: "text.secondary", children: item.category })
|
|
218351
|
+
]
|
|
218352
|
+
}
|
|
218353
|
+
)
|
|
218354
|
+
}
|
|
218355
|
+
),
|
|
218356
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218357
|
+
ActionChip,
|
|
218358
|
+
{
|
|
218359
|
+
label: getActionLabel(item.type),
|
|
218360
|
+
size: "small",
|
|
218361
|
+
color: getActionColor(item.type),
|
|
218362
|
+
variant: "outlined"
|
|
218363
|
+
}
|
|
218364
|
+
)
|
|
218365
|
+
]
|
|
218366
|
+
}
|
|
218367
|
+
)
|
|
218368
|
+
},
|
|
218369
|
+
item.id
|
|
218370
|
+
)) })
|
|
218371
|
+
] })
|
|
218372
|
+
]
|
|
218373
|
+
}
|
|
218374
|
+
),
|
|
218375
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218376
|
+
CreateAgentDialog,
|
|
218377
|
+
{
|
|
218378
|
+
open: isCreateAgentDialogOpen,
|
|
218379
|
+
onClose: closeCreateAgentDialog,
|
|
218380
|
+
onAgentCreated: handleAgentCreated
|
|
218381
|
+
}
|
|
218382
|
+
),
|
|
218383
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
218384
|
+
ConfirmationModal,
|
|
218385
|
+
{
|
|
218386
|
+
open: isClearConfirmationOpen,
|
|
218387
|
+
title: "Clear Conversation",
|
|
218388
|
+
message: "Are you sure you want to clear this conversation? This action cannot be undone and all messages will be permanently deleted.",
|
|
218389
|
+
confirmText: "Clear",
|
|
218390
|
+
cancelText: "Cancel",
|
|
218391
|
+
isDangerous: true,
|
|
218392
|
+
onConfirm: confirmActualClearConversation,
|
|
218393
|
+
onCancel: cancelClearConversation
|
|
218394
|
+
}
|
|
218395
|
+
)
|
|
218396
|
+
] });
|
|
218397
|
+
};
|
|
217242
218398
|
const StyledDialog = styled$1(Dialog)(({ theme: theme2 }) => ({
|
|
217243
218399
|
"& .MuiBackdrop-root": {
|
|
217244
218400
|
background: "linear-gradient(135deg, rgba(40,40,40,1), rgba(15,15,15,0.95), rgba(5,5,5,1), rgba(56,201,106,0.15))",
|
|
@@ -218507,7 +219663,6 @@ const ModelCredentialStep = () => {
|
|
|
218507
219663
|
] })
|
|
218508
219664
|
] });
|
|
218509
219665
|
};
|
|
218510
|
-
const RadientIcon = "" + new URL("radient-icon-1024x1024-D_JJedvo.png", import.meta.url).href;
|
|
218511
219666
|
const ChoiceCard = styled$1(Box)(({ theme: theme2 }) => ({
|
|
218512
219667
|
display: "flex",
|
|
218513
219668
|
flexDirection: "column",
|
|
@@ -223140,7 +224295,44 @@ const tourSteps = [
|
|
|
223140
224295
|
text: "Next",
|
|
223141
224296
|
classes: "shepherd-button-primary",
|
|
223142
224297
|
action: function() {
|
|
223143
|
-
|
|
224298
|
+
const { openCommandPalette } = useUiPreferencesStore.getState();
|
|
224299
|
+
openCommandPalette();
|
|
224300
|
+
setTimeout(() => {
|
|
224301
|
+
this.next();
|
|
224302
|
+
}, 500);
|
|
224303
|
+
}
|
|
224304
|
+
}
|
|
224305
|
+
]
|
|
224306
|
+
},
|
|
224307
|
+
{
|
|
224308
|
+
id: "pre-command-palette-open-canvas",
|
|
224309
|
+
title: "Command Palette",
|
|
224310
|
+
attachTo: {
|
|
224311
|
+
element: '[data-tour-tag="command-palette-dialog"]',
|
|
224312
|
+
on: "right"
|
|
224313
|
+
},
|
|
224314
|
+
text: "Let's quickly look at another powerful feature: the Command Palette. You can open it anywhere in the app by pressing <code>Cmd+K</code> on Mac and <code>Ctrl+K</code> on Windows or Linux. This is a helpful window that you can open from anywhere in the app to be able to access agents, settings, pages, and much more using your keyboard. It can often be faster to access sections in the app this way instead of clicking through menus. You can type an agent's name to find the chat for that agent, and then hit Enter to open it.",
|
|
224315
|
+
buttons: [
|
|
224316
|
+
{
|
|
224317
|
+
text: "Back",
|
|
224318
|
+
classes: "shepherd-button-secondary",
|
|
224319
|
+
action: function() {
|
|
224320
|
+
const { closeCommandPalette } = useUiPreferencesStore.getState();
|
|
224321
|
+
closeCommandPalette();
|
|
224322
|
+
setTimeout(() => {
|
|
224323
|
+
this.back();
|
|
224324
|
+
}, 500);
|
|
224325
|
+
}
|
|
224326
|
+
},
|
|
224327
|
+
{
|
|
224328
|
+
text: "Next",
|
|
224329
|
+
classes: "shepherd-button-primary",
|
|
224330
|
+
action: function() {
|
|
224331
|
+
const { closeCommandPalette } = useUiPreferencesStore.getState();
|
|
224332
|
+
closeCommandPalette();
|
|
224333
|
+
setTimeout(() => {
|
|
224334
|
+
this.next();
|
|
224335
|
+
}, 500);
|
|
223144
224336
|
}
|
|
223145
224337
|
}
|
|
223146
224338
|
]
|
|
@@ -223158,7 +224350,11 @@ const tourSteps = [
|
|
|
223158
224350
|
text: "Back",
|
|
223159
224351
|
classes: "shepherd-button-secondary",
|
|
223160
224352
|
action: function() {
|
|
223161
|
-
|
|
224353
|
+
const { openCommandPalette } = useUiPreferencesStore.getState();
|
|
224354
|
+
openCommandPalette();
|
|
224355
|
+
setTimeout(() => {
|
|
224356
|
+
this.back();
|
|
224357
|
+
}, 500);
|
|
223162
224358
|
}
|
|
223163
224359
|
},
|
|
223164
224360
|
{
|
|
@@ -224255,6 +225451,9 @@ const useOnboardingTour = () => {
|
|
|
224255
225451
|
...defaultStepOptions
|
|
224256
225452
|
};
|
|
224257
225453
|
tourInstance.options.useModalOverlay = useModalOverlay;
|
|
225454
|
+
if (options?.firstAgentId) {
|
|
225455
|
+
tourInstance.options.firstAgentId = options.firstAgentId;
|
|
225456
|
+
}
|
|
224258
225457
|
tourInstance.off("complete", completeTourOnboarding);
|
|
224259
225458
|
tourInstance.on("complete", completeTourOnboarding);
|
|
224260
225459
|
tourInstance.off("cancel", completeTourOnboarding);
|
|
@@ -224288,15 +225487,23 @@ const TourInitiator = () => {
|
|
|
224288
225487
|
const { isModalComplete, isTourComplete } = useOnboardingStore();
|
|
224289
225488
|
const { startTour: initiateTourFromHook } = useOnboardingTour();
|
|
224290
225489
|
const shepherdContext = React$1.useContext(Jt);
|
|
225490
|
+
const { data: agentsData } = useAgents(1, 1);
|
|
224291
225491
|
reactExports.useEffect(() => {
|
|
224292
225492
|
if (isModalComplete && !isTourComplete && shepherdContext) {
|
|
224293
225493
|
const timer2 = setTimeout(() => {
|
|
224294
|
-
|
|
225494
|
+
const firstAgentId = agentsData?.agents?.[0]?.id;
|
|
225495
|
+
initiateTourFromHook({ firstAgentId });
|
|
224295
225496
|
}, 500);
|
|
224296
225497
|
return () => clearTimeout(timer2);
|
|
224297
225498
|
}
|
|
224298
225499
|
return void 0;
|
|
224299
|
-
}, [
|
|
225500
|
+
}, [
|
|
225501
|
+
isModalComplete,
|
|
225502
|
+
isTourComplete,
|
|
225503
|
+
shepherdContext,
|
|
225504
|
+
initiateTourFromHook,
|
|
225505
|
+
agentsData
|
|
225506
|
+
]);
|
|
224300
225507
|
return null;
|
|
224301
225508
|
};
|
|
224302
225509
|
const OnboardingProvider = ({
|
|
@@ -260031,174 +261238,6 @@ const RadientAccountSection = ({
|
|
|
260031
261238
|
)
|
|
260032
261239
|
] });
|
|
260033
261240
|
};
|
|
260034
|
-
const SidebarContainer$1 = styled$1(Paper)(({ theme: theme2 }) => ({
|
|
260035
|
-
width: "100%",
|
|
260036
|
-
height: "100%",
|
|
260037
|
-
borderRadius: 0,
|
|
260038
|
-
backgroundColor: theme2.palette.sidebar.secondaryBackground,
|
|
260039
|
-
boxShadow: "none",
|
|
260040
|
-
display: "flex",
|
|
260041
|
-
flexDirection: "column",
|
|
260042
|
-
overflow: "hidden",
|
|
260043
|
-
borderRight: `1px solid ${theme2.palette.sidebar.border}`
|
|
260044
|
-
}));
|
|
260045
|
-
const SidebarHeader = styled$1(Box)(({ theme: theme2 }) => ({
|
|
260046
|
-
padding: theme2.spacing(3),
|
|
260047
|
-
borderBottom: `1px solid ${theme2.palette.sidebar.border}`
|
|
260048
|
-
}));
|
|
260049
|
-
const SidebarTitle = styled$1(Typography)(({ theme: theme2 }) => ({
|
|
260050
|
-
fontWeight: 600,
|
|
260051
|
-
fontSize: "1rem",
|
|
260052
|
-
color: theme2.palette.text.primary
|
|
260053
|
-
}));
|
|
260054
|
-
const SidebarList = styled$1(List$1)(({ theme: theme2 }) => ({
|
|
260055
|
-
padding: theme2.spacing(2),
|
|
260056
|
-
flexGrow: 1
|
|
260057
|
-
}));
|
|
260058
|
-
const SidebarItemButton = styled$1(ListItemButton, {
|
|
260059
|
-
shouldForwardProp: (prop) => prop !== "isActive"
|
|
260060
|
-
})(({ theme: theme2, isActive }) => ({
|
|
260061
|
-
borderRadius: 8,
|
|
260062
|
-
marginBottom: 4,
|
|
260063
|
-
paddingTop: 10,
|
|
260064
|
-
paddingBottom: 10,
|
|
260065
|
-
color: isActive ? theme2.palette.sidebar.itemActiveText : theme2.palette.sidebar.itemText,
|
|
260066
|
-
backgroundColor: isActive ? theme2.palette.sidebar.itemActive : "transparent",
|
|
260067
|
-
transition: "all 0.2s ease-out",
|
|
260068
|
-
position: "relative",
|
|
260069
|
-
overflow: "hidden",
|
|
260070
|
-
"&:hover": {
|
|
260071
|
-
backgroundColor: isActive ? theme2.palette.sidebar.itemActiveHover : theme2.palette.sidebar.itemHover,
|
|
260072
|
-
transform: "translateX(4px)"
|
|
260073
|
-
},
|
|
260074
|
-
...isActive && {
|
|
260075
|
-
"&::before": {
|
|
260076
|
-
content: '""',
|
|
260077
|
-
position: "absolute",
|
|
260078
|
-
left: 0,
|
|
260079
|
-
top: "50%",
|
|
260080
|
-
transform: "translateY(-50%)",
|
|
260081
|
-
width: 4,
|
|
260082
|
-
height: "60%",
|
|
260083
|
-
backgroundColor: theme2.palette.sidebar.itemActiveText,
|
|
260084
|
-
borderRadius: "0 4px 4px 0"
|
|
260085
|
-
}
|
|
260086
|
-
}
|
|
260087
|
-
}));
|
|
260088
|
-
const SidebarItemIcon = styled$1(ListItemIcon, {
|
|
260089
|
-
shouldForwardProp: (prop) => prop !== "isActive"
|
|
260090
|
-
})(({ theme: theme2, isActive }) => ({
|
|
260091
|
-
minWidth: 40,
|
|
260092
|
-
color: isActive ? theme2.palette.sidebar.itemActiveText : theme2.palette.icon.text,
|
|
260093
|
-
transition: "transform 0.2s ease, color 0.2s ease",
|
|
260094
|
-
...isActive && {
|
|
260095
|
-
transform: "scale(1.1)"
|
|
260096
|
-
}
|
|
260097
|
-
}));
|
|
260098
|
-
const IconImage$2 = styled$1("img")(() => ({
|
|
260099
|
-
width: 30,
|
|
260100
|
-
height: 30,
|
|
260101
|
-
marginLeft: -4,
|
|
260102
|
-
objectFit: "contain"
|
|
260103
|
-
}));
|
|
260104
|
-
const SettingsSidebar = ({
|
|
260105
|
-
activeSection,
|
|
260106
|
-
onSelectSection,
|
|
260107
|
-
sections
|
|
260108
|
-
}) => {
|
|
260109
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(SidebarContainer$1, { elevation: 0, children: [
|
|
260110
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarHeader, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SidebarTitle, { variant: "subtitle1", children: "Settings Navigation" }) }),
|
|
260111
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarList, { children: sections.map((section) => {
|
|
260112
|
-
let tourTag;
|
|
260113
|
-
switch (section.id) {
|
|
260114
|
-
case "general":
|
|
260115
|
-
tourTag = "settings-sidebar-general";
|
|
260116
|
-
break;
|
|
260117
|
-
case "radient":
|
|
260118
|
-
tourTag = "settings-sidebar-radient-account";
|
|
260119
|
-
break;
|
|
260120
|
-
case "integrations":
|
|
260121
|
-
tourTag = "settings-sidebar-integrations";
|
|
260122
|
-
break;
|
|
260123
|
-
case "appearance":
|
|
260124
|
-
tourTag = "settings-sidebar-appearance";
|
|
260125
|
-
break;
|
|
260126
|
-
case "credentials":
|
|
260127
|
-
tourTag = "settings-sidebar-api-credentials";
|
|
260128
|
-
break;
|
|
260129
|
-
case "updates":
|
|
260130
|
-
tourTag = "settings-sidebar-application-updates";
|
|
260131
|
-
break;
|
|
260132
|
-
default:
|
|
260133
|
-
tourTag = void 0;
|
|
260134
|
-
}
|
|
260135
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
260136
|
-
SidebarItemButton,
|
|
260137
|
-
{
|
|
260138
|
-
isActive: activeSection === section.id,
|
|
260139
|
-
onClick: () => onSelectSection(section.id),
|
|
260140
|
-
"data-tour-tag": tourTag,
|
|
260141
|
-
children: [
|
|
260142
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarItemIcon, { isActive: activeSection === section.id, children: section.isImage ? /* @__PURE__ */ jsxRuntimeExports.jsx(IconImage$2, { src: section.icon, alt: section.label }) : section.isFontAwesome ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
260143
|
-
FontAwesomeIcon,
|
|
260144
|
-
{
|
|
260145
|
-
icon: section.icon,
|
|
260146
|
-
style: { fontSize: 20 }
|
|
260147
|
-
}
|
|
260148
|
-
) : (() => {
|
|
260149
|
-
const IconComponent = section.icon;
|
|
260150
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(IconComponent, { size: 22, strokeWidth: 2.1 });
|
|
260151
|
-
})() }),
|
|
260152
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
260153
|
-
ListItemText,
|
|
260154
|
-
{
|
|
260155
|
-
primary: section.label,
|
|
260156
|
-
primaryTypographyProps: {
|
|
260157
|
-
fontWeight: activeSection === section.id ? 600 : 500,
|
|
260158
|
-
fontSize: "0.95rem"
|
|
260159
|
-
}
|
|
260160
|
-
}
|
|
260161
|
-
)
|
|
260162
|
-
]
|
|
260163
|
-
},
|
|
260164
|
-
section.id
|
|
260165
|
-
);
|
|
260166
|
-
}) })
|
|
260167
|
-
] });
|
|
260168
|
-
};
|
|
260169
|
-
const DEFAULT_SETTINGS_SECTIONS = [
|
|
260170
|
-
{
|
|
260171
|
-
id: "general",
|
|
260172
|
-
label: "General Settings",
|
|
260173
|
-
icon: Settings$1
|
|
260174
|
-
},
|
|
260175
|
-
{
|
|
260176
|
-
id: "radient",
|
|
260177
|
-
label: "Radient Account",
|
|
260178
|
-
icon: RadientIcon,
|
|
260179
|
-
isImage: true
|
|
260180
|
-
},
|
|
260181
|
-
{
|
|
260182
|
-
id: "integrations",
|
|
260183
|
-
label: "Integrations",
|
|
260184
|
-
icon: Puzzle
|
|
260185
|
-
},
|
|
260186
|
-
{
|
|
260187
|
-
id: "appearance",
|
|
260188
|
-
label: "Appearance",
|
|
260189
|
-
icon: Paintbrush
|
|
260190
|
-
},
|
|
260191
|
-
{
|
|
260192
|
-
id: "credentials",
|
|
260193
|
-
label: "API Credentials",
|
|
260194
|
-
icon: Key
|
|
260195
|
-
},
|
|
260196
|
-
{
|
|
260197
|
-
id: "updates",
|
|
260198
|
-
label: "Application Updates",
|
|
260199
|
-
icon: Download
|
|
260200
|
-
}
|
|
260201
|
-
];
|
|
260202
261241
|
const StyledTextField = styled$1(TextField)(({ theme: theme2 }) => ({
|
|
260203
261242
|
width: "100%",
|
|
260204
261243
|
"& .MuiInputBase-root": {
|
|
@@ -261547,6 +262586,7 @@ const SettingsPage = () => {
|
|
|
261547
262586
|
const [isScrolling, setIsScrolling] = reactExports.useState(false);
|
|
261548
262587
|
const scrollTimeoutRef = reactExports.useRef(null);
|
|
261549
262588
|
const { startTour: startOnboardingTour } = useOnboardingTour();
|
|
262589
|
+
const location2 = useLocation();
|
|
261550
262590
|
const theme2 = useTheme$2();
|
|
261551
262591
|
const { data: credentialsData, refetch: refetchCredentials } = useCredentials();
|
|
261552
262592
|
const { refreshModels } = useModels();
|
|
@@ -261579,31 +262619,36 @@ const SettingsPage = () => {
|
|
|
261579
262619
|
credentials: reactExports.useRef(null),
|
|
261580
262620
|
updates: reactExports.useRef(null)
|
|
261581
262621
|
}).current;
|
|
261582
|
-
const handleSelectSection = (
|
|
261583
|
-
|
|
261584
|
-
|
|
261585
|
-
|
|
261586
|
-
|
|
261587
|
-
|
|
261588
|
-
|
|
261589
|
-
|
|
261590
|
-
|
|
261591
|
-
|
|
261592
|
-
|
|
261593
|
-
|
|
261594
|
-
|
|
261595
|
-
|
|
261596
|
-
|
|
261597
|
-
|
|
261598
|
-
|
|
261599
|
-
|
|
262622
|
+
const handleSelectSection = reactExports.useCallback(
|
|
262623
|
+
(sectionId) => {
|
|
262624
|
+
setActiveSection(sectionId);
|
|
262625
|
+
setIsScrolling(true);
|
|
262626
|
+
const ref = sectionRefs[sectionId];
|
|
262627
|
+
const contentContainer = document.querySelector(
|
|
262628
|
+
"[data-settings-content]"
|
|
262629
|
+
);
|
|
262630
|
+
if (ref?.current && contentContainer) {
|
|
262631
|
+
const containerRect = contentContainer.getBoundingClientRect();
|
|
262632
|
+
const elementRect = ref.current.getBoundingClientRect();
|
|
262633
|
+
const scrollTop = elementRect.top - containerRect.top + contentContainer.scrollTop;
|
|
262634
|
+
contentContainer.scrollTo({
|
|
262635
|
+
top: scrollTop - 80,
|
|
262636
|
+
// Adjust offset as needed (e.g., header height + padding)
|
|
262637
|
+
behavior: "smooth"
|
|
262638
|
+
});
|
|
262639
|
+
if (scrollTimeoutRef.current) {
|
|
262640
|
+
clearTimeout(scrollTimeoutRef.current);
|
|
262641
|
+
}
|
|
262642
|
+
scrollTimeoutRef.current = setTimeout(() => {
|
|
262643
|
+
setIsScrolling(false);
|
|
262644
|
+
scrollTimeoutRef.current = null;
|
|
262645
|
+
}, 600);
|
|
262646
|
+
} else {
|
|
261600
262647
|
setIsScrolling(false);
|
|
261601
|
-
|
|
261602
|
-
|
|
261603
|
-
|
|
261604
|
-
|
|
261605
|
-
}
|
|
261606
|
-
};
|
|
262648
|
+
}
|
|
262649
|
+
},
|
|
262650
|
+
[sectionRefs]
|
|
262651
|
+
);
|
|
261607
262652
|
reactExports.useEffect(() => {
|
|
261608
262653
|
const contentContainer = document.querySelector("[data-settings-content]");
|
|
261609
262654
|
if (!contentContainer) return void 0;
|
|
@@ -261634,6 +262679,17 @@ const SettingsPage = () => {
|
|
|
261634
262679
|
}
|
|
261635
262680
|
};
|
|
261636
262681
|
}, [sectionRefs, activeSection, isScrolling]);
|
|
262682
|
+
reactExports.useEffect(() => {
|
|
262683
|
+
const queryParams = new URLSearchParams(location2.search);
|
|
262684
|
+
const sectionFromQuery = queryParams.get("section");
|
|
262685
|
+
if (sectionFromQuery && sectionRefs[sectionFromQuery]) {
|
|
262686
|
+
const timer2 = setTimeout(() => {
|
|
262687
|
+
handleSelectSection(sectionFromQuery);
|
|
262688
|
+
}, 100);
|
|
262689
|
+
return () => clearTimeout(timer2);
|
|
262690
|
+
}
|
|
262691
|
+
return void 0;
|
|
262692
|
+
}, [location2.search, sectionRefs, handleSelectSection]);
|
|
261637
262693
|
const handleUpdateField = async (field, value) => {
|
|
261638
262694
|
setSavingField(field);
|
|
261639
262695
|
try {
|
|
@@ -262538,7 +263594,7 @@ const SidebarNavigation = () => {
|
|
|
262538
263594
|
const expanded = !isSidebarCollapsed;
|
|
262539
263595
|
const navItems = [
|
|
262540
263596
|
{
|
|
262541
|
-
icon:
|
|
263597
|
+
icon: MessageSquare,
|
|
262542
263598
|
label: "Chat",
|
|
262543
263599
|
path: "/chat",
|
|
262544
263600
|
isActive: currentView === "chat",
|
|
@@ -262759,10 +263815,38 @@ const App = () => {
|
|
|
262759
263815
|
openRadientConsole,
|
|
262760
263816
|
onLowCreditsDialogClose
|
|
262761
263817
|
} = useLowCreditsDialog();
|
|
263818
|
+
const {
|
|
263819
|
+
toggleCommandPalette,
|
|
263820
|
+
isCommandPaletteOpen,
|
|
263821
|
+
isCreateAgentDialogOpen,
|
|
263822
|
+
// Get dialog state from store
|
|
263823
|
+
closeCreateAgentDialog
|
|
263824
|
+
// Get close action from store
|
|
263825
|
+
} = useUiPreferencesStore();
|
|
263826
|
+
const navigate = useNavigate();
|
|
263827
|
+
const handleAgentCreated = (agentId) => {
|
|
263828
|
+
navigate(`/chat/${agentId}`);
|
|
263829
|
+
closeCreateAgentDialog();
|
|
263830
|
+
};
|
|
263831
|
+
reactExports.useEffect(() => {
|
|
263832
|
+
const handleToggleCommandPalette = () => {
|
|
263833
|
+
toggleCommandPalette();
|
|
263834
|
+
};
|
|
263835
|
+
const unsubscribe = window.electron.ipcRenderer.on(
|
|
263836
|
+
"toggle-command-palette",
|
|
263837
|
+
handleToggleCommandPalette
|
|
263838
|
+
);
|
|
263839
|
+
return () => {
|
|
263840
|
+
if (unsubscribe) {
|
|
263841
|
+
unsubscribe();
|
|
263842
|
+
}
|
|
263843
|
+
};
|
|
263844
|
+
}, [toggleCommandPalette]);
|
|
262762
263845
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(OnboardingProvider, { children: [
|
|
262763
263846
|
/* @__PURE__ */ jsxRuntimeExports.jsx(OnboardingTourGlobalStyles, {}),
|
|
262764
263847
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(AppContainer, { children: [
|
|
262765
263848
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CssBaseline, {}),
|
|
263849
|
+
isCommandPaletteOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(CommandPalette, {}),
|
|
262766
263850
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ModelsInitializer, {}),
|
|
262767
263851
|
/* @__PURE__ */ jsxRuntimeExports.jsx(OnboardingModal, { open: isOnboardingActive }),
|
|
262768
263852
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ConnectivityBanner, {}),
|
|
@@ -262775,6 +263859,14 @@ const App = () => {
|
|
|
262775
263859
|
onGoToConsole: openRadientConsole
|
|
262776
263860
|
}
|
|
262777
263861
|
),
|
|
263862
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
263863
|
+
CreateAgentDialog,
|
|
263864
|
+
{
|
|
263865
|
+
open: isCreateAgentDialogOpen,
|
|
263866
|
+
onClose: closeCreateAgentDialog,
|
|
263867
|
+
onAgentCreated: handleAgentCreated
|
|
263868
|
+
}
|
|
263869
|
+
),
|
|
262778
263870
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarNavigation, {}),
|
|
262779
263871
|
/* @__PURE__ */ jsxRuntimeExports.jsx(MainContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Routes, { children: [
|
|
262780
263872
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Route, { path: "/", element: /* @__PURE__ */ jsxRuntimeExports.jsx(Navigate, { to: "/chat", replace: true }) }),
|