local-operator-ui 0.12.2 → 0.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/out/main/index.jsc +0 -0
  2. package/out/preload/index.jsc +0 -0
  3. package/out/renderer/assets/{_basePickBy-BvOKEIZV.js → _basePickBy-D-mTy0T7.js} +2 -2
  4. package/out/renderer/assets/{_baseUniq-i3yVLA01.js → _baseUniq-CVF81xU9.js} +1 -1
  5. package/out/renderer/assets/{arc-BX4KnI8E.js → arc-BcZxubla.js} +1 -1
  6. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-BU4jsbJy.js → architectureDiagram-IEHRJDOE-0JBfW8n9.js} +7 -7
  7. package/out/renderer/assets/{blockDiagram-JOT3LUYC-BpR8maVI.js → blockDiagram-JOT3LUYC-DIjqxpHX.js} +5 -5
  8. package/out/renderer/assets/{c4Diagram-VJAJSXHY-Ct0E3jiX.js → c4Diagram-VJAJSXHY-B8ZTZ0n8.js} +2 -2
  9. package/out/renderer/assets/{channel-DviztJ2P.js → channel-BQBOXiqs.js} +1 -1
  10. package/out/renderer/assets/chat-input-CU-CA7Se.png +0 -0
  11. package/out/renderer/assets/{chunk-4BMEZGHF-CWwhFZtJ.js → chunk-4BMEZGHF-BCTXK4C0.js} +1 -1
  12. package/out/renderer/assets/{chunk-A2AXSNBT-CIKGmO-Z.js → chunk-A2AXSNBT-Dt4gXQBd.js} +2 -2
  13. package/out/renderer/assets/{chunk-AEK57VVT-PiW7QGab.js → chunk-AEK57VVT-CAAj-J2-.js} +2 -2
  14. package/out/renderer/assets/{chunk-D6G4REZN-DfDA6jpy.js → chunk-D6G4REZN-_hQRwF7v.js} +1 -1
  15. package/out/renderer/assets/{chunk-RZ5BOZE2-BLFaWXTZ.js → chunk-RZ5BOZE2-Vl3-h4SG.js} +1 -1
  16. package/out/renderer/assets/{chunk-XZIHB7SX-D8qFHaXH.js → chunk-XZIHB7SX-C61iNqnQ.js} +1 -1
  17. package/out/renderer/assets/{classDiagram-GIVACNV2-D0pXBB2V.js → classDiagram-GIVACNV2-CNcNWb-o.js} +3 -3
  18. package/out/renderer/assets/{classDiagram-v2-COTLJTTW-D0pXBB2V.js → classDiagram-v2-COTLJTTW-CNcNWb-o.js} +3 -3
  19. package/out/renderer/assets/{clone-CZ6G-K_-.js → clone-D4Ah0_EU.js} +1 -1
  20. package/out/renderer/assets/{dagre-OKDRZEBW-CxXbaLZN.js → dagre-OKDRZEBW-DZOFGtWs.js} +6 -6
  21. package/out/renderer/assets/{diagram-SSKATNLV-xbCK655N.js → diagram-SSKATNLV-DGVbLzJc.js} +6 -6
  22. package/out/renderer/assets/{diagram-VNBRO52H-BifoyvIJ.js → diagram-VNBRO52H-DUz0a2Uz.js} +6 -6
  23. package/out/renderer/assets/{erDiagram-Q7BY3M3F-B1jAAKZ4.js → erDiagram-Q7BY3M3F-CfYzgE98.js} +3 -3
  24. package/out/renderer/assets/{flowDiagram-4HSFHLVR-B2YOhESy.js → flowDiagram-4HSFHLVR-tRJWBVYd.js} +3 -3
  25. package/out/renderer/assets/{ganttDiagram-APWFNJXF-IwK7Fc3X.js → ganttDiagram-APWFNJXF-BWG5VLyZ.js} +1 -1
  26. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-zoE6800M.js → gitGraphDiagram-7IBYFJ6S-Cd11pFbi.js} +7 -7
  27. package/out/renderer/assets/{graph-Bfphf5hs.js → graph-P5xyWsnt.js} +2 -2
  28. package/out/renderer/assets/{index-iDYiYgwd.js → index-B4xrtp2Z.js} +1 -1
  29. package/out/renderer/assets/{index-E1PFApyM.js → index-C4NwO8de.js} +1168 -589
  30. package/out/renderer/assets/{index-BXPA5Z8j.js → index-CtrEBFNz.js} +1 -1
  31. package/out/renderer/assets/{infoDiagram-PH2N3AL5-CbbOmA9a.js → infoDiagram-PH2N3AL5-KjJg15gx.js} +5 -5
  32. package/out/renderer/assets/{journeyDiagram-U35MCT3I-BTH_TNp4.js → journeyDiagram-U35MCT3I-Dp2FVK6h.js} +3 -3
  33. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-rqtSTvRC.js → kanban-definition-NDS4AKOZ-cttuutf_.js} +1 -1
  34. package/out/renderer/assets/{layout-peLqgN7k.js → layout-Bep2Ed3s.js} +4 -4
  35. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-DHOh0rwh.js → mindmap-definition-ALO5MXBD-DiLxGufv.js} +1 -1
  36. package/out/renderer/assets/{pieDiagram-IB7DONF6-DycIGo9Z.js → pieDiagram-IB7DONF6-C7Crt4gw.js} +7 -7
  37. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-BsHeSEbJ.js → quadrantDiagram-7GDLP6J5-BMbHGD_6.js} +1 -1
  38. package/out/renderer/assets/{radar-MK3ICKWK-p1kRyyQZ.js → radar-MK3ICKWK-BIBBEO8S.js} +4 -4
  39. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CSzs-JGc.js → requirementDiagram-KVF5MWMF-BumPivJk.js} +2 -2
  40. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-BCq8qtkW.js → sankeyDiagram-QLVOVGJD-D1LzUzj2.js} +1 -1
  41. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-CyNPry3J.js → sequenceDiagram-X6HHIX6F-CwnYTtil.js} +3 -3
  42. package/out/renderer/assets/{stateDiagram-DGXRK772-BXWq3Qrc.js → stateDiagram-DGXRK772-4yXBR_vP.js} +7 -7
  43. package/out/renderer/assets/{stateDiagram-v2-YXO3MK2T-CWiPj4sa.js → stateDiagram-v2-YXO3MK2T-6p7BdIAB.js} +3 -3
  44. package/out/renderer/assets/{timeline-definition-BDJGKUSR-isGWvPGn.js → timeline-definition-BDJGKUSR-CCdgMyc-.js} +2 -2
  45. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-C-KaUtNd.js → xychartDiagram-VJFVF3MP-DD0agc1N.js} +1 -1
  46. package/out/renderer/index.html +1 -1
  47. package/package.json +4 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BXPA5Z8j.js","./fonts-DqkQ6BY5.js","./fonts-CM-VN_uu.css","./index-iDYiYgwd.js","./pug-By0kVCfm.js","./javascript-C3MnDRiU.js","./dagre-OKDRZEBW-CxXbaLZN.js","./graph-Bfphf5hs.js","./_baseUniq-i3yVLA01.js","./layout-peLqgN7k.js","./_basePickBy-BvOKEIZV.js","./clone-CZ6G-K_-.js","./c4Diagram-VJAJSXHY-Ct0E3jiX.js","./chunk-D6G4REZN-DfDA6jpy.js","./flowDiagram-4HSFHLVR-B2YOhESy.js","./chunk-RZ5BOZE2-BLFaWXTZ.js","./channel-DviztJ2P.js","./erDiagram-Q7BY3M3F-B1jAAKZ4.js","./gitGraphDiagram-7IBYFJ6S-zoE6800M.js","./chunk-4BMEZGHF-CWwhFZtJ.js","./chunk-XZIHB7SX-D8qFHaXH.js","./radar-MK3ICKWK-p1kRyyQZ.js","./ganttDiagram-APWFNJXF-IwK7Fc3X.js","./infoDiagram-PH2N3AL5-CbbOmA9a.js","./pieDiagram-IB7DONF6-DycIGo9Z.js","./arc-BX4KnI8E.js","./quadrantDiagram-7GDLP6J5-BsHeSEbJ.js","./xychartDiagram-VJFVF3MP-C-KaUtNd.js","./requirementDiagram-KVF5MWMF-CSzs-JGc.js","./sequenceDiagram-X6HHIX6F-CyNPry3J.js","./classDiagram-GIVACNV2-D0pXBB2V.js","./chunk-A2AXSNBT-CIKGmO-Z.js","./classDiagram-v2-COTLJTTW-D0pXBB2V.js","./stateDiagram-DGXRK772-BXWq3Qrc.js","./chunk-AEK57VVT-PiW7QGab.js","./stateDiagram-v2-YXO3MK2T-CWiPj4sa.js","./journeyDiagram-U35MCT3I-BTH_TNp4.js","./timeline-definition-BDJGKUSR-isGWvPGn.js","./mindmap-definition-ALO5MXBD-DHOh0rwh.js","./cytoscape.esm-C0AOj4uS.js","./kanban-definition-NDS4AKOZ-rqtSTvRC.js","./sankeyDiagram-QLVOVGJD-BCq8qtkW.js","./diagram-VNBRO52H-BifoyvIJ.js","./diagram-SSKATNLV-xbCK655N.js","./blockDiagram-JOT3LUYC-BpR8maVI.js","./architectureDiagram-IEHRJDOE-BU4jsbJy.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CtrEBFNz.js","./fonts-DqkQ6BY5.js","./fonts-CM-VN_uu.css","./index-B4xrtp2Z.js","./pug-By0kVCfm.js","./javascript-C3MnDRiU.js","./dagre-OKDRZEBW-DZOFGtWs.js","./graph-P5xyWsnt.js","./_baseUniq-CVF81xU9.js","./layout-Bep2Ed3s.js","./_basePickBy-D-mTy0T7.js","./clone-D4Ah0_EU.js","./c4Diagram-VJAJSXHY-B8ZTZ0n8.js","./chunk-D6G4REZN-_hQRwF7v.js","./flowDiagram-4HSFHLVR-tRJWBVYd.js","./chunk-RZ5BOZE2-Vl3-h4SG.js","./channel-BQBOXiqs.js","./erDiagram-Q7BY3M3F-CfYzgE98.js","./gitGraphDiagram-7IBYFJ6S-Cd11pFbi.js","./chunk-4BMEZGHF-BCTXK4C0.js","./chunk-XZIHB7SX-C61iNqnQ.js","./radar-MK3ICKWK-BIBBEO8S.js","./ganttDiagram-APWFNJXF-BWG5VLyZ.js","./infoDiagram-PH2N3AL5-KjJg15gx.js","./pieDiagram-IB7DONF6-C7Crt4gw.js","./arc-BcZxubla.js","./quadrantDiagram-7GDLP6J5-BMbHGD_6.js","./xychartDiagram-VJFVF3MP-DD0agc1N.js","./requirementDiagram-KVF5MWMF-BumPivJk.js","./sequenceDiagram-X6HHIX6F-CwnYTtil.js","./classDiagram-GIVACNV2-CNcNWb-o.js","./chunk-A2AXSNBT-Dt4gXQBd.js","./classDiagram-v2-COTLJTTW-CNcNWb-o.js","./stateDiagram-DGXRK772-4yXBR_vP.js","./chunk-AEK57VVT-CAAj-J2-.js","./stateDiagram-v2-YXO3MK2T-6p7BdIAB.js","./journeyDiagram-U35MCT3I-Dp2FVK6h.js","./timeline-definition-BDJGKUSR-CCdgMyc-.js","./mindmap-definition-ALO5MXBD-DiLxGufv.js","./cytoscape.esm-C0AOj4uS.js","./kanban-definition-NDS4AKOZ-cttuutf_.js","./sankeyDiagram-QLVOVGJD-D1LzUzj2.js","./diagram-VNBRO52H-DUz0a2Uz.js","./diagram-SSKATNLV-DGVbLzJc.js","./blockDiagram-JOT3LUYC-DIjqxpHX.js","./architectureDiagram-IEHRJDOE-0JBfW8n9.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$1, 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 faHome, aL as faDownload, aM as faFileAlt, aN as faDesktop, aO as faImage, aP as faMusic, aQ as faVideo, aR as faLaptop, aS as faUsers, aT as faDatabase, aU as faBoxOpen, aV as faBook, aW as faHdd, aX as faBox, aY as faArchive, aZ as faNetworkWired, a_ as faFolder, a$ as faFolderOpen, b0 as faFolderTree, b1 as faFile, b2 as faCode, b3 as faSliders, b4 as faTrash, b5 as faArrowDown, b6 as faPaperclip, b7 as faPaperPlane, 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 faMountain, by as faFire, bz as faIcicles, bA as faBolt, bB as faAdjust, bC as faWaveSquare, bD as faUser, bE as faEnvelope, bF as faHistory, bG as faListAlt, bH as faCreditCard, bI as faPlusCircle, bJ as faChartLine, bK as faShield, bL as library$1, bM as icons$1, f as CssBaseline, e as ThemeProvider$1, d as getTheme, R as ReactDOM$1, E as ErrorBoundary } from "./fonts-DqkQ6BY5.js";
3
3
  const styled = createStyled();
4
4
  function getThemeProps(params) {
@@ -36189,66 +36189,66 @@ const useAgentSelectionStore = create$6()(
36189
36189
  * This source code is licensed under the ISC license.
36190
36190
  * See the LICENSE file in the root directory of this source tree.
36191
36191
  */
36192
- const __iconNode$1V = [
36192
+ const __iconNode$1W = [
36193
36193
  ["path", { d: "M17 12H7", key: "16if0g" }],
36194
36194
  ["path", { d: "M19 18H5", key: "18s9l3" }],
36195
36195
  ["path", { d: "M21 6H3", key: "1jwq7v" }]
36196
36196
  ];
36197
- const AlignCenter = createLucideIcon("align-center", __iconNode$1V);
36197
+ const AlignCenter = createLucideIcon("align-center", __iconNode$1W);
36198
36198
  /**
36199
36199
  * @license lucide-react v0.507.0 - ISC
36200
36200
  *
36201
36201
  * This source code is licensed under the ISC license.
36202
36202
  * See the LICENSE file in the root directory of this source tree.
36203
36203
  */
36204
- const __iconNode$1U = [
36204
+ const __iconNode$1V = [
36205
36205
  ["path", { d: "M15 12H3", key: "6jk70r" }],
36206
36206
  ["path", { d: "M17 18H3", key: "1amg6g" }],
36207
36207
  ["path", { d: "M21 6H3", key: "1jwq7v" }]
36208
36208
  ];
36209
- const AlignLeft = createLucideIcon("align-left", __iconNode$1U);
36209
+ const AlignLeft = createLucideIcon("align-left", __iconNode$1V);
36210
36210
  /**
36211
36211
  * @license lucide-react v0.507.0 - ISC
36212
36212
  *
36213
36213
  * This source code is licensed under the ISC license.
36214
36214
  * See the LICENSE file in the root directory of this source tree.
36215
36215
  */
36216
- const __iconNode$1T = [
36216
+ const __iconNode$1U = [
36217
36217
  ["path", { d: "M21 12H9", key: "dn1m92" }],
36218
36218
  ["path", { d: "M21 18H7", key: "1ygte8" }],
36219
36219
  ["path", { d: "M21 6H3", key: "1jwq7v" }]
36220
36220
  ];
36221
- const AlignRight = createLucideIcon("align-right", __iconNode$1T);
36221
+ const AlignRight = createLucideIcon("align-right", __iconNode$1U);
36222
36222
  /**
36223
36223
  * @license lucide-react v0.507.0 - ISC
36224
36224
  *
36225
36225
  * This source code is licensed under the ISC license.
36226
36226
  * See the LICENSE file in the root directory of this source tree.
36227
36227
  */
36228
- const __iconNode$1S = [
36228
+ const __iconNode$1T = [
36229
36229
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
36230
36230
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
36231
36231
  ["path", { d: "M10 12h4", key: "a56b0p" }]
36232
36232
  ];
36233
- const Archive = createLucideIcon("archive", __iconNode$1S);
36233
+ const Archive = createLucideIcon("archive", __iconNode$1T);
36234
36234
  /**
36235
36235
  * @license lucide-react v0.507.0 - ISC
36236
36236
  *
36237
36237
  * This source code is licensed under the ISC license.
36238
36238
  * See the LICENSE file in the root directory of this source tree.
36239
36239
  */
36240
- const __iconNode$1R = [
36240
+ const __iconNode$1S = [
36241
36241
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
36242
36242
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
36243
36243
  ];
36244
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1R);
36244
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1S);
36245
36245
  /**
36246
36246
  * @license lucide-react v0.507.0 - ISC
36247
36247
  *
36248
36248
  * This source code is licensed under the ISC license.
36249
36249
  * See the LICENSE file in the root directory of this source tree.
36250
36250
  */
36251
- const __iconNode$1Q = [
36251
+ const __iconNode$1R = [
36252
36252
  ["path", { d: "M2 10v3", key: "1fnikh" }],
36253
36253
  ["path", { d: "M6 6v11", key: "11sgs0" }],
36254
36254
  ["path", { d: "M10 3v18", key: "yhl04a" }],
@@ -36256,27 +36256,27 @@ const __iconNode$1Q = [
36256
36256
  ["path", { d: "M18 5v13", key: "123xd1" }],
36257
36257
  ["path", { d: "M22 10v3", key: "154ddg" }]
36258
36258
  ];
36259
- const AudioLines = createLucideIcon("audio-lines", __iconNode$1Q);
36259
+ const AudioLines = createLucideIcon("audio-lines", __iconNode$1R);
36260
36260
  /**
36261
36261
  * @license lucide-react v0.507.0 - ISC
36262
36262
  *
36263
36263
  * This source code is licensed under the ISC license.
36264
36264
  * See the LICENSE file in the root directory of this source tree.
36265
36265
  */
36266
- const __iconNode$1P = [
36266
+ const __iconNode$1Q = [
36267
36267
  [
36268
36268
  "path",
36269
36269
  { d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8", key: "mg9rjx" }
36270
36270
  ]
36271
36271
  ];
36272
- const Bold = createLucideIcon("bold", __iconNode$1P);
36272
+ const Bold = createLucideIcon("bold", __iconNode$1Q);
36273
36273
  /**
36274
36274
  * @license lucide-react v0.507.0 - ISC
36275
36275
  *
36276
36276
  * This source code is licensed under the ISC license.
36277
36277
  * See the LICENSE file in the root directory of this source tree.
36278
36278
  */
36279
- const __iconNode$1O = [
36279
+ const __iconNode$1P = [
36280
36280
  [
36281
36281
  "path",
36282
36282
  {
@@ -36285,14 +36285,14 @@ const __iconNode$1O = [
36285
36285
  }
36286
36286
  ]
36287
36287
  ];
36288
- const Book = createLucideIcon("book", __iconNode$1O);
36288
+ const Book = createLucideIcon("book", __iconNode$1P);
36289
36289
  /**
36290
36290
  * @license lucide-react v0.507.0 - ISC
36291
36291
  *
36292
36292
  * This source code is licensed under the ISC license.
36293
36293
  * See the LICENSE file in the root directory of this source tree.
36294
36294
  */
36295
- const __iconNode$1N = [
36295
+ const __iconNode$1O = [
36296
36296
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
36297
36297
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
36298
36298
  ["path", { d: "M2 14h2", key: "vft8re" }],
@@ -36300,25 +36300,25 @@ const __iconNode$1N = [
36300
36300
  ["path", { d: "M15 13v2", key: "1xurst" }],
36301
36301
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
36302
36302
  ];
36303
- const Bot = createLucideIcon("bot", __iconNode$1N);
36303
+ const Bot = createLucideIcon("bot", __iconNode$1O);
36304
36304
  /**
36305
36305
  * @license lucide-react v0.507.0 - ISC
36306
36306
  *
36307
36307
  * This source code is licensed under the ISC license.
36308
36308
  * See the LICENSE file in the root directory of this source tree.
36309
36309
  */
36310
- const __iconNode$1M = [
36310
+ const __iconNode$1N = [
36311
36311
  ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
36312
36312
  ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
36313
36313
  ];
36314
- const Briefcase = createLucideIcon("briefcase", __iconNode$1M);
36314
+ const Briefcase = createLucideIcon("briefcase", __iconNode$1N);
36315
36315
  /**
36316
36316
  * @license lucide-react v0.507.0 - ISC
36317
36317
  *
36318
36318
  * This source code is licensed under the ISC license.
36319
36319
  * See the LICENSE file in the root directory of this source tree.
36320
36320
  */
36321
- const __iconNode$1L = [
36321
+ const __iconNode$1M = [
36322
36322
  ["path", { d: "M8 2v4", key: "1cmpym" }],
36323
36323
  ["path", { d: "M16 2v4", key: "4m81vk" }],
36324
36324
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
@@ -36330,175 +36330,175 @@ const __iconNode$1L = [
36330
36330
  ["path", { d: "M12 18h.01", key: "mhygvu" }],
36331
36331
  ["path", { d: "M16 18h.01", key: "kzsmim" }]
36332
36332
  ];
36333
- const CalendarDays = createLucideIcon("calendar-days", __iconNode$1L);
36333
+ const CalendarDays = createLucideIcon("calendar-days", __iconNode$1M);
36334
36334
  /**
36335
36335
  * @license lucide-react v0.507.0 - ISC
36336
36336
  *
36337
36337
  * This source code is licensed under the ISC license.
36338
36338
  * See the LICENSE file in the root directory of this source tree.
36339
36339
  */
36340
- const __iconNode$1K = [
36340
+ const __iconNode$1L = [
36341
36341
  ["path", { d: "M8 2v4", key: "1cmpym" }],
36342
36342
  ["path", { d: "M16 2v4", key: "4m81vk" }],
36343
36343
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
36344
36344
  ["path", { d: "M3 10h18", key: "8toen8" }]
36345
36345
  ];
36346
- const Calendar = createLucideIcon("calendar", __iconNode$1K);
36346
+ const Calendar = createLucideIcon("calendar", __iconNode$1L);
36347
36347
  /**
36348
36348
  * @license lucide-react v0.507.0 - ISC
36349
36349
  *
36350
36350
  * This source code is licensed under the ISC license.
36351
36351
  * See the LICENSE file in the root directory of this source tree.
36352
36352
  */
36353
- const __iconNode$1J = [
36353
+ const __iconNode$1K = [
36354
36354
  ["line", { x1: "18", x2: "18", y1: "20", y2: "10", key: "1xfpm4" }],
36355
36355
  ["line", { x1: "12", x2: "12", y1: "20", y2: "4", key: "be30l9" }],
36356
36356
  ["line", { x1: "6", x2: "6", y1: "20", y2: "14", key: "1r4le6" }]
36357
36357
  ];
36358
- const ChartNoAxesColumn = createLucideIcon("chart-no-axes-column", __iconNode$1J);
36358
+ const ChartNoAxesColumn = createLucideIcon("chart-no-axes-column", __iconNode$1K);
36359
36359
  /**
36360
36360
  * @license lucide-react v0.507.0 - ISC
36361
36361
  *
36362
36362
  * This source code is licensed under the ISC license.
36363
36363
  * See the LICENSE file in the root directory of this source tree.
36364
36364
  */
36365
- const __iconNode$1I = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
36366
- const Check = createLucideIcon("check", __iconNode$1I);
36365
+ const __iconNode$1J = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
36366
+ const Check = createLucideIcon("check", __iconNode$1J);
36367
36367
  /**
36368
36368
  * @license lucide-react v0.507.0 - ISC
36369
36369
  *
36370
36370
  * This source code is licensed under the ISC license.
36371
36371
  * See the LICENSE file in the root directory of this source tree.
36372
36372
  */
36373
- const __iconNode$1H = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
36374
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$1H);
36373
+ const __iconNode$1I = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
36374
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$1I);
36375
36375
  /**
36376
36376
  * @license lucide-react v0.507.0 - ISC
36377
36377
  *
36378
36378
  * This source code is licensed under the ISC license.
36379
36379
  * See the LICENSE file in the root directory of this source tree.
36380
36380
  */
36381
- const __iconNode$1G = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
36382
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1G);
36381
+ const __iconNode$1H = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
36382
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1H);
36383
36383
  /**
36384
36384
  * @license lucide-react v0.507.0 - ISC
36385
36385
  *
36386
36386
  * This source code is licensed under the ISC license.
36387
36387
  * See the LICENSE file in the root directory of this source tree.
36388
36388
  */
36389
- const __iconNode$1F = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
36390
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$1F);
36389
+ const __iconNode$1G = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
36390
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$1G);
36391
36391
  /**
36392
36392
  * @license lucide-react v0.507.0 - ISC
36393
36393
  *
36394
36394
  * This source code is licensed under the ISC license.
36395
36395
  * See the LICENSE file in the root directory of this source tree.
36396
36396
  */
36397
- const __iconNode$1E = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
36398
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$1E);
36397
+ const __iconNode$1F = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
36398
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$1F);
36399
36399
  /**
36400
36400
  * @license lucide-react v0.507.0 - ISC
36401
36401
  *
36402
36402
  * This source code is licensed under the ISC license.
36403
36403
  * See the LICENSE file in the root directory of this source tree.
36404
36404
  */
36405
- const __iconNode$1D = [
36405
+ const __iconNode$1E = [
36406
36406
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
36407
36407
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
36408
36408
  ];
36409
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$1D);
36409
+ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$1E);
36410
36410
  /**
36411
36411
  * @license lucide-react v0.507.0 - ISC
36412
36412
  *
36413
36413
  * This source code is licensed under the ISC license.
36414
36414
  * See the LICENSE file in the root directory of this source tree.
36415
36415
  */
36416
- const __iconNode$1C = [
36416
+ const __iconNode$1D = [
36417
36417
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36418
36418
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
36419
36419
  ];
36420
- const CircleCheck = createLucideIcon("circle-check", __iconNode$1C);
36420
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$1D);
36421
36421
  /**
36422
36422
  * @license lucide-react v0.507.0 - ISC
36423
36423
  *
36424
36424
  * This source code is licensed under the ISC license.
36425
36425
  * See the LICENSE file in the root directory of this source tree.
36426
36426
  */
36427
- const __iconNode$1B = [
36427
+ const __iconNode$1C = [
36428
36428
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36429
36429
  ["path", { d: "M17 12h.01", key: "1m0b6t" }],
36430
36430
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
36431
36431
  ["path", { d: "M7 12h.01", key: "eqddd0" }]
36432
36432
  ];
36433
- const CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode$1B);
36433
+ const CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode$1C);
36434
36434
  /**
36435
36435
  * @license lucide-react v0.507.0 - ISC
36436
36436
  *
36437
36437
  * This source code is licensed under the ISC license.
36438
36438
  * See the LICENSE file in the root directory of this source tree.
36439
36439
  */
36440
- const __iconNode$1A = [
36440
+ const __iconNode$1B = [
36441
36441
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36442
36442
  ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
36443
36443
  ["path", { d: "M12 17h.01", key: "p32p05" }]
36444
36444
  ];
36445
- const CircleHelp = createLucideIcon("circle-help", __iconNode$1A);
36445
+ const CircleHelp = createLucideIcon("circle-help", __iconNode$1B);
36446
36446
  /**
36447
36447
  * @license lucide-react v0.507.0 - ISC
36448
36448
  *
36449
36449
  * This source code is licensed under the ISC license.
36450
36450
  * See the LICENSE file in the root directory of this source tree.
36451
36451
  */
36452
- const __iconNode$1z = [
36452
+ const __iconNode$1A = [
36453
36453
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36454
36454
  ["line", { x1: "10", x2: "10", y1: "15", y2: "9", key: "c1nkhi" }],
36455
36455
  ["line", { x1: "14", x2: "14", y1: "15", y2: "9", key: "h65svq" }]
36456
36456
  ];
36457
- const CirclePause = createLucideIcon("circle-pause", __iconNode$1z);
36457
+ const CirclePause = createLucideIcon("circle-pause", __iconNode$1A);
36458
36458
  /**
36459
36459
  * @license lucide-react v0.507.0 - ISC
36460
36460
  *
36461
36461
  * This source code is licensed under the ISC license.
36462
36462
  * See the LICENSE file in the root directory of this source tree.
36463
36463
  */
36464
- const __iconNode$1y = [
36464
+ const __iconNode$1z = [
36465
36465
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36466
36466
  ["polygon", { points: "10 8 16 12 10 16 10 8", key: "1cimsy" }]
36467
36467
  ];
36468
- const CirclePlay = createLucideIcon("circle-play", __iconNode$1y);
36468
+ const CirclePlay = createLucideIcon("circle-play", __iconNode$1z);
36469
36469
  /**
36470
36470
  * @license lucide-react v0.507.0 - ISC
36471
36471
  *
36472
36472
  * This source code is licensed under the ISC license.
36473
36473
  * See the LICENSE file in the root directory of this source tree.
36474
36474
  */
36475
- const __iconNode$1x = [
36475
+ const __iconNode$1y = [
36476
36476
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36477
36477
  ["path", { d: "M8 12h8", key: "1wcyev" }],
36478
36478
  ["path", { d: "M12 8v8", key: "napkw2" }]
36479
36479
  ];
36480
- const CirclePlus = createLucideIcon("circle-plus", __iconNode$1x);
36480
+ const CirclePlus = createLucideIcon("circle-plus", __iconNode$1y);
36481
36481
  /**
36482
36482
  * @license lucide-react v0.507.0 - ISC
36483
36483
  *
36484
36484
  * This source code is licensed under the ISC license.
36485
36485
  * See the LICENSE file in the root directory of this source tree.
36486
36486
  */
36487
- const __iconNode$1w = [
36487
+ const __iconNode$1x = [
36488
36488
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
36489
36489
  ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2", key: "4jdomd" }],
36490
36490
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v4", key: "3hqy98" }],
36491
36491
  ["path", { d: "M21 14H11", key: "1bme5i" }],
36492
36492
  ["path", { d: "m15 10-4 4 4 4", key: "5dvupr" }]
36493
36493
  ];
36494
- const ClipboardCopy = createLucideIcon("clipboard-copy", __iconNode$1w);
36494
+ const ClipboardCopy = createLucideIcon("clipboard-copy", __iconNode$1x);
36495
36495
  /**
36496
36496
  * @license lucide-react v0.507.0 - ISC
36497
36497
  *
36498
36498
  * This source code is licensed under the ISC license.
36499
36499
  * See the LICENSE file in the root directory of this source tree.
36500
36500
  */
36501
- const __iconNode$1v = [
36501
+ const __iconNode$1w = [
36502
36502
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
36503
36503
  [
36504
36504
  "path",
@@ -36512,42 +36512,55 @@ const __iconNode$1v = [
36512
36512
  ["path", { d: "M8 11h.01", key: "1dfujw" }],
36513
36513
  ["path", { d: "M8 16h.01", key: "18s6g9" }]
36514
36514
  ];
36515
- const ClipboardList = createLucideIcon("clipboard-list", __iconNode$1v);
36515
+ const ClipboardList = createLucideIcon("clipboard-list", __iconNode$1w);
36516
36516
  /**
36517
36517
  * @license lucide-react v0.507.0 - ISC
36518
36518
  *
36519
36519
  * This source code is licensed under the ISC license.
36520
36520
  * See the LICENSE file in the root directory of this source tree.
36521
36521
  */
36522
- const __iconNode$1u = [
36522
+ const __iconNode$1v = [
36523
36523
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36524
36524
  ["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }]
36525
36525
  ];
36526
- const Clock$1 = createLucideIcon("clock", __iconNode$1u);
36526
+ const Clock$1 = createLucideIcon("clock", __iconNode$1v);
36527
36527
  /**
36528
36528
  * @license lucide-react v0.507.0 - ISC
36529
36529
  *
36530
36530
  * This source code is licensed under the ISC license.
36531
36531
  * See the LICENSE file in the root directory of this source tree.
36532
36532
  */
36533
- const __iconNode$1t = [
36533
+ const __iconNode$1u = [
36534
36534
  ["path", { d: "M12 13v8", key: "1l5pq0" }],
36535
36535
  ["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" }],
36536
36536
  ["path", { d: "m8 17 4-4 4 4", key: "1quai1" }]
36537
36537
  ];
36538
- const CloudUpload = createLucideIcon("cloud-upload", __iconNode$1t);
36538
+ const CloudUpload = createLucideIcon("cloud-upload", __iconNode$1u);
36539
36539
  /**
36540
36540
  * @license lucide-react v0.507.0 - ISC
36541
36541
  *
36542
36542
  * This source code is licensed under the ISC license.
36543
36543
  * See the LICENSE file in the root directory of this source tree.
36544
36544
  */
36545
- const __iconNode$1s = [
36545
+ const __iconNode$1t = [
36546
36546
  ["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
36547
36547
  ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
36548
36548
  ["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
36549
36549
  ];
36550
- const CodeXml = createLucideIcon("code-xml", __iconNode$1s);
36550
+ const CodeXml = createLucideIcon("code-xml", __iconNode$1t);
36551
+ /**
36552
+ * @license lucide-react v0.507.0 - ISC
36553
+ *
36554
+ * This source code is licensed under the ISC license.
36555
+ * See the LICENSE file in the root directory of this source tree.
36556
+ */
36557
+ const __iconNode$1s = [
36558
+ [
36559
+ "path",
36560
+ { d: "M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3", key: "11bfej" }
36561
+ ]
36562
+ ];
36563
+ const Command = createLucideIcon("command", __iconNode$1s);
36551
36564
  /**
36552
36565
  * @license lucide-react v0.507.0 - ISC
36553
36566
  *
@@ -36566,18 +36579,29 @@ const Copy = createLucideIcon("copy", __iconNode$1r);
36566
36579
  * See the LICENSE file in the root directory of this source tree.
36567
36580
  */
36568
36581
  const __iconNode$1q = [
36582
+ ["polyline", { points: "9 10 4 15 9 20", key: "r3jprv" }],
36583
+ ["path", { d: "M20 4v7a4 4 0 0 1-4 4H4", key: "6o5b7l" }]
36584
+ ];
36585
+ const CornerDownLeft = createLucideIcon("corner-down-left", __iconNode$1q);
36586
+ /**
36587
+ * @license lucide-react v0.507.0 - ISC
36588
+ *
36589
+ * This source code is licensed under the ISC license.
36590
+ * See the LICENSE file in the root directory of this source tree.
36591
+ */
36592
+ const __iconNode$1p = [
36569
36593
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
36570
36594
  ["polyline", { points: "7 10 12 15 17 10", key: "2ggqvy" }],
36571
36595
  ["line", { x1: "12", x2: "12", y1: "15", y2: "3", key: "1vk2je" }]
36572
36596
  ];
36573
- const Download = createLucideIcon("download", __iconNode$1q);
36597
+ const Download = createLucideIcon("download", __iconNode$1p);
36574
36598
  /**
36575
36599
  * @license lucide-react v0.507.0 - ISC
36576
36600
  *
36577
36601
  * This source code is licensed under the ISC license.
36578
36602
  * See the LICENSE file in the root directory of this source tree.
36579
36603
  */
36580
- const __iconNode$1p = [
36604
+ const __iconNode$1o = [
36581
36605
  ["path", { d: "M21.54 15H17a2 2 0 0 0-2 2v4.54", key: "1djwo0" }],
36582
36606
  [
36583
36607
  "path",
@@ -36589,38 +36613,38 @@ const __iconNode$1p = [
36589
36613
  ["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" }],
36590
36614
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
36591
36615
  ];
36592
- const Earth = createLucideIcon("earth", __iconNode$1p);
36616
+ const Earth = createLucideIcon("earth", __iconNode$1o);
36593
36617
  /**
36594
36618
  * @license lucide-react v0.507.0 - ISC
36595
36619
  *
36596
36620
  * This source code is licensed under the ISC license.
36597
36621
  * See the LICENSE file in the root directory of this source tree.
36598
36622
  */
36599
- const __iconNode$1o = [
36623
+ const __iconNode$1n = [
36600
36624
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
36601
36625
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
36602
36626
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
36603
36627
  ];
36604
- const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$1o);
36628
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$1n);
36605
36629
  /**
36606
36630
  * @license lucide-react v0.507.0 - ISC
36607
36631
  *
36608
36632
  * This source code is licensed under the ISC license.
36609
36633
  * See the LICENSE file in the root directory of this source tree.
36610
36634
  */
36611
- const __iconNode$1n = [
36635
+ const __iconNode$1m = [
36612
36636
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
36613
36637
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
36614
36638
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
36615
36639
  ];
36616
- const Ellipsis = createLucideIcon("ellipsis", __iconNode$1n);
36640
+ const Ellipsis = createLucideIcon("ellipsis", __iconNode$1m);
36617
36641
  /**
36618
36642
  * @license lucide-react v0.507.0 - ISC
36619
36643
  *
36620
36644
  * This source code is licensed under the ISC license.
36621
36645
  * See the LICENSE file in the root directory of this source tree.
36622
36646
  */
36623
- const __iconNode$1m = [
36647
+ const __iconNode$1l = [
36624
36648
  [
36625
36649
  "path",
36626
36650
  {
@@ -36631,78 +36655,78 @@ const __iconNode$1m = [
36631
36655
  ["path", { d: "M22 21H7", key: "t4ddhn" }],
36632
36656
  ["path", { d: "m5 11 9 9", key: "1mo9qw" }]
36633
36657
  ];
36634
- const Eraser = createLucideIcon("eraser", __iconNode$1m);
36658
+ const Eraser = createLucideIcon("eraser", __iconNode$1l);
36635
36659
  /**
36636
36660
  * @license lucide-react v0.507.0 - ISC
36637
36661
  *
36638
36662
  * This source code is licensed under the ISC license.
36639
36663
  * See the LICENSE file in the root directory of this source tree.
36640
36664
  */
36641
- const __iconNode$1l = [
36665
+ const __iconNode$1k = [
36642
36666
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
36643
36667
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
36644
36668
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
36645
36669
  ];
36646
- const ExternalLink = createLucideIcon("external-link", __iconNode$1l);
36670
+ const ExternalLink = createLucideIcon("external-link", __iconNode$1k);
36647
36671
  /**
36648
36672
  * @license lucide-react v0.507.0 - ISC
36649
36673
  *
36650
36674
  * This source code is licensed under the ISC license.
36651
36675
  * See the LICENSE file in the root directory of this source tree.
36652
36676
  */
36653
- const __iconNode$1k = [
36677
+ const __iconNode$1j = [
36654
36678
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
36655
36679
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
36656
36680
  ["circle", { cx: "10", cy: "12", r: "2", key: "737tya" }],
36657
36681
  ["path", { d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22", key: "wt3hpn" }]
36658
36682
  ];
36659
- const FileImage = createLucideIcon("file-image", __iconNode$1k);
36683
+ const FileImage = createLucideIcon("file-image", __iconNode$1j);
36660
36684
  /**
36661
36685
  * @license lucide-react v0.507.0 - ISC
36662
36686
  *
36663
36687
  * This source code is licensed under the ISC license.
36664
36688
  * See the LICENSE file in the root directory of this source tree.
36665
36689
  */
36666
- const __iconNode$1j = [
36690
+ const __iconNode$1i = [
36667
36691
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
36668
36692
  ["path", { d: "M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2", key: "1vk7w2" }],
36669
36693
  ["path", { d: "M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6", key: "1jink5" }],
36670
36694
  ["path", { d: "m5 11-3 3", key: "1dgrs4" }],
36671
36695
  ["path", { d: "m5 17-3-3h10", key: "1mvvaf" }]
36672
36696
  ];
36673
- const FileOutput = createLucideIcon("file-output", __iconNode$1j);
36697
+ const FileOutput = createLucideIcon("file-output", __iconNode$1i);
36674
36698
  /**
36675
36699
  * @license lucide-react v0.507.0 - ISC
36676
36700
  *
36677
36701
  * This source code is licensed under the ISC license.
36678
36702
  * See the LICENSE file in the root directory of this source tree.
36679
36703
  */
36680
- const __iconNode$1i = [
36704
+ const __iconNode$1h = [
36681
36705
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
36682
36706
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
36683
36707
  ["path", { d: "M9 15h6", key: "cctwl0" }],
36684
36708
  ["path", { d: "M12 18v-6", key: "17g6i2" }]
36685
36709
  ];
36686
- const FilePlus = createLucideIcon("file-plus", __iconNode$1i);
36710
+ const FilePlus = createLucideIcon("file-plus", __iconNode$1h);
36687
36711
  /**
36688
36712
  * @license lucide-react v0.507.0 - ISC
36689
36713
  *
36690
36714
  * This source code is licensed under the ISC license.
36691
36715
  * See the LICENSE file in the root directory of this source tree.
36692
36716
  */
36693
- const __iconNode$1h = [
36717
+ const __iconNode$1g = [
36694
36718
  ["path", { d: "M12 17h.01", key: "p32p05" }],
36695
36719
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z", key: "1mlx9k" }],
36696
36720
  ["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3", key: "mhlwft" }]
36697
36721
  ];
36698
- const FileQuestion = createLucideIcon("file-question", __iconNode$1h);
36722
+ const FileQuestion = createLucideIcon("file-question", __iconNode$1g);
36699
36723
  /**
36700
36724
  * @license lucide-react v0.507.0 - ISC
36701
36725
  *
36702
36726
  * This source code is licensed under the ISC license.
36703
36727
  * See the LICENSE file in the root directory of this source tree.
36704
36728
  */
36705
- const __iconNode$1g = [
36729
+ const __iconNode$1f = [
36706
36730
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
36707
36731
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
36708
36732
  ["path", { d: "M8 13h2", key: "yr2amv" }],
@@ -36710,64 +36734,64 @@ const __iconNode$1g = [
36710
36734
  ["path", { d: "M8 17h2", key: "2yhykz" }],
36711
36735
  ["path", { d: "M14 17h2", key: "10kma7" }]
36712
36736
  ];
36713
- const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$1g);
36737
+ const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$1f);
36714
36738
  /**
36715
36739
  * @license lucide-react v0.507.0 - ISC
36716
36740
  *
36717
36741
  * This source code is licensed under the ISC license.
36718
36742
  * See the LICENSE file in the root directory of this source tree.
36719
36743
  */
36720
- const __iconNode$1f = [
36744
+ const __iconNode$1e = [
36721
36745
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
36722
36746
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
36723
36747
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
36724
36748
  ["path", { d: "M16 13H8", key: "t4e002" }],
36725
36749
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
36726
36750
  ];
36727
- const FileText = createLucideIcon("file-text", __iconNode$1f);
36751
+ const FileText = createLucideIcon("file-text", __iconNode$1e);
36728
36752
  /**
36729
36753
  * @license lucide-react v0.507.0 - ISC
36730
36754
  *
36731
36755
  * This source code is licensed under the ISC license.
36732
36756
  * See the LICENSE file in the root directory of this source tree.
36733
36757
  */
36734
- const __iconNode$1e = [
36758
+ const __iconNode$1d = [
36735
36759
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
36736
36760
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
36737
36761
  ["path", { d: "M12 12v6", key: "3ahymv" }],
36738
36762
  ["path", { d: "m15 15-3-3-3 3", key: "15xj92" }]
36739
36763
  ];
36740
- const FileUp = createLucideIcon("file-up", __iconNode$1e);
36764
+ const FileUp = createLucideIcon("file-up", __iconNode$1d);
36741
36765
  /**
36742
36766
  * @license lucide-react v0.507.0 - ISC
36743
36767
  *
36744
36768
  * This source code is licensed under the ISC license.
36745
36769
  * See the LICENSE file in the root directory of this source tree.
36746
36770
  */
36747
- const __iconNode$1d = [
36771
+ const __iconNode$1c = [
36748
36772
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
36749
36773
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
36750
36774
  ["path", { d: "m10 11 5 3-5 3v-6Z", key: "7ntvm4" }]
36751
36775
  ];
36752
- const FileVideo = createLucideIcon("file-video", __iconNode$1d);
36776
+ const FileVideo = createLucideIcon("file-video", __iconNode$1c);
36753
36777
  /**
36754
36778
  * @license lucide-react v0.507.0 - ISC
36755
36779
  *
36756
36780
  * This source code is licensed under the ISC license.
36757
36781
  * See the LICENSE file in the root directory of this source tree.
36758
36782
  */
36759
- const __iconNode$1c = [
36783
+ const __iconNode$1b = [
36760
36784
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
36761
36785
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }]
36762
36786
  ];
36763
- const File$1 = createLucideIcon("file", __iconNode$1c);
36787
+ const File$1 = createLucideIcon("file", __iconNode$1b);
36764
36788
  /**
36765
36789
  * @license lucide-react v0.507.0 - ISC
36766
36790
  *
36767
36791
  * This source code is licensed under the ISC license.
36768
36792
  * See the LICENSE file in the root directory of this source tree.
36769
36793
  */
36770
- const __iconNode$1b = [
36794
+ const __iconNode$1a = [
36771
36795
  [
36772
36796
  "path",
36773
36797
  {
@@ -36778,14 +36802,14 @@ const __iconNode$1b = [
36778
36802
  ["path", { d: "M6.453 15h11.094", key: "3shlmq" }],
36779
36803
  ["path", { d: "M8.5 2h7", key: "csnxdl" }]
36780
36804
  ];
36781
- const FlaskConical = createLucideIcon("flask-conical", __iconNode$1b);
36805
+ const FlaskConical = createLucideIcon("flask-conical", __iconNode$1a);
36782
36806
  /**
36783
36807
  * @license lucide-react v0.507.0 - ISC
36784
36808
  *
36785
36809
  * This source code is licensed under the ISC license.
36786
36810
  * See the LICENSE file in the root directory of this source tree.
36787
36811
  */
36788
- const __iconNode$1a = [
36812
+ const __iconNode$19 = [
36789
36813
  [
36790
36814
  "path",
36791
36815
  {
@@ -36794,14 +36818,14 @@ const __iconNode$1a = [
36794
36818
  }
36795
36819
  ]
36796
36820
  ];
36797
- const FolderOpen = createLucideIcon("folder-open", __iconNode$1a);
36821
+ const FolderOpen = createLucideIcon("folder-open", __iconNode$19);
36798
36822
  /**
36799
36823
  * @license lucide-react v0.507.0 - ISC
36800
36824
  *
36801
36825
  * This source code is licensed under the ISC license.
36802
36826
  * See the LICENSE file in the root directory of this source tree.
36803
36827
  */
36804
- const __iconNode$19 = [
36828
+ const __iconNode$18 = [
36805
36829
  [
36806
36830
  "path",
36807
36831
  {
@@ -36812,14 +36836,14 @@ const __iconNode$19 = [
36812
36836
  ["path", { d: "M22 10v6", key: "1lu8f3" }],
36813
36837
  ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
36814
36838
  ];
36815
- const GraduationCap = createLucideIcon("graduation-cap", __iconNode$19);
36839
+ const GraduationCap = createLucideIcon("graduation-cap", __iconNode$18);
36816
36840
  /**
36817
36841
  * @license lucide-react v0.507.0 - ISC
36818
36842
  *
36819
36843
  * This source code is licensed under the ISC license.
36820
36844
  * See the LICENSE file in the root directory of this source tree.
36821
36845
  */
36822
- const __iconNode$18 = [
36846
+ const __iconNode$17 = [
36823
36847
  [
36824
36848
  "path",
36825
36849
  {
@@ -36829,14 +36853,14 @@ const __iconNode$18 = [
36829
36853
  ],
36830
36854
  ["path", { d: "M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27", key: "1uw2ng" }]
36831
36855
  ];
36832
- const HeartPulse = createLucideIcon("heart-pulse", __iconNode$18);
36856
+ const HeartPulse = createLucideIcon("heart-pulse", __iconNode$17);
36833
36857
  /**
36834
36858
  * @license lucide-react v0.507.0 - ISC
36835
36859
  *
36836
36860
  * This source code is licensed under the ISC license.
36837
36861
  * See the LICENSE file in the root directory of this source tree.
36838
36862
  */
36839
- const __iconNode$17 = [
36863
+ const __iconNode$16 = [
36840
36864
  [
36841
36865
  "path",
36842
36866
  {
@@ -36845,38 +36869,38 @@ const __iconNode$17 = [
36845
36869
  }
36846
36870
  ]
36847
36871
  ];
36848
- const Heart = createLucideIcon("heart", __iconNode$17);
36872
+ const Heart = createLucideIcon("heart", __iconNode$16);
36849
36873
  /**
36850
36874
  * @license lucide-react v0.507.0 - ISC
36851
36875
  *
36852
36876
  * This source code is licensed under the ISC license.
36853
36877
  * See the LICENSE file in the root directory of this source tree.
36854
36878
  */
36855
- const __iconNode$16 = [
36879
+ const __iconNode$15 = [
36856
36880
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
36857
36881
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
36858
36882
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
36859
36883
  ];
36860
- const History = createLucideIcon("history", __iconNode$16);
36884
+ const History = createLucideIcon("history", __iconNode$15);
36861
36885
  /**
36862
36886
  * @license lucide-react v0.507.0 - ISC
36863
36887
  *
36864
36888
  * This source code is licensed under the ISC license.
36865
36889
  * See the LICENSE file in the root directory of this source tree.
36866
36890
  */
36867
- const __iconNode$15 = [
36891
+ const __iconNode$14 = [
36868
36892
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
36869
36893
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
36870
36894
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
36871
36895
  ];
36872
- const Image$1 = createLucideIcon("image", __iconNode$15);
36896
+ const Image$1 = createLucideIcon("image", __iconNode$14);
36873
36897
  /**
36874
36898
  * @license lucide-react v0.507.0 - ISC
36875
36899
  *
36876
36900
  * This source code is licensed under the ISC license.
36877
36901
  * See the LICENSE file in the root directory of this source tree.
36878
36902
  */
36879
- const __iconNode$14 = [
36903
+ const __iconNode$13 = [
36880
36904
  ["path", { d: "M12 3v12", key: "1x0j5s" }],
36881
36905
  ["path", { d: "m8 11 4 4 4-4", key: "1dohi6" }],
36882
36906
  [
@@ -36887,76 +36911,76 @@ const __iconNode$14 = [
36887
36911
  }
36888
36912
  ]
36889
36913
  ];
36890
- const Import = createLucideIcon("import", __iconNode$14);
36914
+ const Import = createLucideIcon("import", __iconNode$13);
36891
36915
  /**
36892
36916
  * @license lucide-react v0.507.0 - ISC
36893
36917
  *
36894
36918
  * This source code is licensed under the ISC license.
36895
36919
  * See the LICENSE file in the root directory of this source tree.
36896
36920
  */
36897
- const __iconNode$13 = [
36921
+ const __iconNode$12 = [
36898
36922
  ["path", { d: "M21 12H11", key: "wd7e0v" }],
36899
36923
  ["path", { d: "M21 18H11", key: "4wu86t" }],
36900
36924
  ["path", { d: "M21 6H11", key: "6dy1d6" }],
36901
36925
  ["path", { d: "m7 8-4 4 4 4", key: "o5hrat" }]
36902
36926
  ];
36903
- const IndentDecrease = createLucideIcon("indent-decrease", __iconNode$13);
36927
+ const IndentDecrease = createLucideIcon("indent-decrease", __iconNode$12);
36904
36928
  /**
36905
36929
  * @license lucide-react v0.507.0 - ISC
36906
36930
  *
36907
36931
  * This source code is licensed under the ISC license.
36908
36932
  * See the LICENSE file in the root directory of this source tree.
36909
36933
  */
36910
- const __iconNode$12 = [
36934
+ const __iconNode$11 = [
36911
36935
  ["path", { d: "M21 12H11", key: "wd7e0v" }],
36912
36936
  ["path", { d: "M21 18H11", key: "4wu86t" }],
36913
36937
  ["path", { d: "M21 6H11", key: "6dy1d6" }],
36914
36938
  ["path", { d: "m3 8 4 4-4 4", key: "1a3j6y" }]
36915
36939
  ];
36916
- const IndentIncrease = createLucideIcon("indent-increase", __iconNode$12);
36940
+ const IndentIncrease = createLucideIcon("indent-increase", __iconNode$11);
36917
36941
  /**
36918
36942
  * @license lucide-react v0.507.0 - ISC
36919
36943
  *
36920
36944
  * This source code is licensed under the ISC license.
36921
36945
  * See the LICENSE file in the root directory of this source tree.
36922
36946
  */
36923
- const __iconNode$11 = [
36947
+ const __iconNode$10 = [
36924
36948
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
36925
36949
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
36926
36950
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
36927
36951
  ];
36928
- const Info$1 = createLucideIcon("info", __iconNode$11);
36952
+ const Info$1 = createLucideIcon("info", __iconNode$10);
36929
36953
  /**
36930
36954
  * @license lucide-react v0.507.0 - ISC
36931
36955
  *
36932
36956
  * This source code is licensed under the ISC license.
36933
36957
  * See the LICENSE file in the root directory of this source tree.
36934
36958
  */
36935
- const __iconNode$10 = [
36959
+ const __iconNode$$ = [
36936
36960
  ["line", { x1: "19", x2: "10", y1: "4", y2: "4", key: "15jd3p" }],
36937
36961
  ["line", { x1: "14", x2: "5", y1: "20", y2: "20", key: "bu0au3" }],
36938
36962
  ["line", { x1: "15", x2: "9", y1: "4", y2: "20", key: "uljnxc" }]
36939
36963
  ];
36940
- const Italic = createLucideIcon("italic", __iconNode$10);
36964
+ const Italic = createLucideIcon("italic", __iconNode$$);
36941
36965
  /**
36942
36966
  * @license lucide-react v0.507.0 - ISC
36943
36967
  *
36944
36968
  * This source code is licensed under the ISC license.
36945
36969
  * See the LICENSE file in the root directory of this source tree.
36946
36970
  */
36947
- const __iconNode$$ = [
36971
+ const __iconNode$_ = [
36948
36972
  ["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" }],
36949
36973
  ["path", { d: "m21 2-9.6 9.6", key: "1j0ho8" }],
36950
36974
  ["circle", { cx: "7.5", cy: "15.5", r: "5.5", key: "yqb3hr" }]
36951
36975
  ];
36952
- const Key = createLucideIcon("key", __iconNode$$);
36976
+ const Key$1 = createLucideIcon("key", __iconNode$_);
36953
36977
  /**
36954
36978
  * @license lucide-react v0.507.0 - ISC
36955
36979
  *
36956
36980
  * This source code is licensed under the ISC license.
36957
36981
  * See the LICENSE file in the root directory of this source tree.
36958
36982
  */
36959
- const __iconNode$_ = [
36983
+ const __iconNode$Z = [
36960
36984
  [
36961
36985
  "path",
36962
36986
  {
@@ -36979,27 +37003,27 @@ const __iconNode$_ = [
36979
37003
  }
36980
37004
  ]
36981
37005
  ];
36982
- const Layers = createLucideIcon("layers", __iconNode$_);
37006
+ const Layers = createLucideIcon("layers", __iconNode$Z);
36983
37007
  /**
36984
37008
  * @license lucide-react v0.507.0 - ISC
36985
37009
  *
36986
37010
  * This source code is licensed under the ISC license.
36987
37011
  * See the LICENSE file in the root directory of this source tree.
36988
37012
  */
36989
- const __iconNode$Z = [
37013
+ const __iconNode$Y = [
36990
37014
  ["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
36991
37015
  ["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
36992
37016
  ["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }],
36993
37017
  ["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }]
36994
37018
  ];
36995
- const LayoutGrid = createLucideIcon("layout-grid", __iconNode$Z);
37019
+ const LayoutGrid = createLucideIcon("layout-grid", __iconNode$Y);
36996
37020
  /**
36997
37021
  * @license lucide-react v0.507.0 - ISC
36998
37022
  *
36999
37023
  * This source code is licensed under the ISC license.
37000
37024
  * See the LICENSE file in the root directory of this source tree.
37001
37025
  */
37002
- const __iconNode$Y = [
37026
+ const __iconNode$X = [
37003
37027
  [
37004
37028
  "path",
37005
37029
  {
@@ -37010,25 +37034,25 @@ const __iconNode$Y = [
37010
37034
  ["path", { d: "M9 18h6", key: "x1upvd" }],
37011
37035
  ["path", { d: "M10 22h4", key: "ceow96" }]
37012
37036
  ];
37013
- const Lightbulb = createLucideIcon("lightbulb", __iconNode$Y);
37037
+ const Lightbulb = createLucideIcon("lightbulb", __iconNode$X);
37014
37038
  /**
37015
37039
  * @license lucide-react v0.507.0 - ISC
37016
37040
  *
37017
37041
  * This source code is licensed under the ISC license.
37018
37042
  * See the LICENSE file in the root directory of this source tree.
37019
37043
  */
37020
- const __iconNode$X = [
37044
+ const __iconNode$W = [
37021
37045
  ["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" }],
37022
37046
  ["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" }]
37023
37047
  ];
37024
- const Link = createLucideIcon("link", __iconNode$X);
37048
+ const Link = createLucideIcon("link", __iconNode$W);
37025
37049
  /**
37026
37050
  * @license lucide-react v0.507.0 - ISC
37027
37051
  *
37028
37052
  * This source code is licensed under the ISC license.
37029
37053
  * See the LICENSE file in the root directory of this source tree.
37030
37054
  */
37031
- const __iconNode$W = [
37055
+ const __iconNode$V = [
37032
37056
  ["path", { d: "M10 12h11", key: "6m4ad9" }],
37033
37057
  ["path", { d: "M10 18h11", key: "11hvi2" }],
37034
37058
  ["path", { d: "M10 6h11", key: "c7qv1k" }],
@@ -37036,28 +37060,28 @@ const __iconNode$W = [
37036
37060
  ["path", { d: "M4 6h1v4", key: "cnovpq" }],
37037
37061
  ["path", { d: "M6 18H4c0-1 2-2 2-3s-1-1.5-2-1", key: "m9a95d" }]
37038
37062
  ];
37039
- const ListOrdered = createLucideIcon("list-ordered", __iconNode$W);
37063
+ const ListOrdered = createLucideIcon("list-ordered", __iconNode$V);
37040
37064
  /**
37041
37065
  * @license lucide-react v0.507.0 - ISC
37042
37066
  *
37043
37067
  * This source code is licensed under the ISC license.
37044
37068
  * See the LICENSE file in the root directory of this source tree.
37045
37069
  */
37046
- const __iconNode$V = [
37070
+ const __iconNode$U = [
37047
37071
  ["path", { d: "M21 12h-8", key: "1bmf0i" }],
37048
37072
  ["path", { d: "M21 6H8", key: "1pqkrb" }],
37049
37073
  ["path", { d: "M21 18h-8", key: "1tm79t" }],
37050
37074
  ["path", { d: "M3 6v4c0 1.1.9 2 2 2h3", key: "1ywdgy" }],
37051
37075
  ["path", { d: "M3 10v6c0 1.1.9 2 2 2h3", key: "2wc746" }]
37052
37076
  ];
37053
- const ListTree = createLucideIcon("list-tree", __iconNode$V);
37077
+ const ListTree = createLucideIcon("list-tree", __iconNode$U);
37054
37078
  /**
37055
37079
  * @license lucide-react v0.507.0 - ISC
37056
37080
  *
37057
37081
  * This source code is licensed under the ISC license.
37058
37082
  * See the LICENSE file in the root directory of this source tree.
37059
37083
  */
37060
- const __iconNode$U = [
37084
+ const __iconNode$T = [
37061
37085
  ["path", { d: "M3 12h.01", key: "nlz23k" }],
37062
37086
  ["path", { d: "M3 18h.01", key: "1tta3j" }],
37063
37087
  ["path", { d: "M3 6h.01", key: "1rqtza" }],
@@ -37065,101 +37089,101 @@ const __iconNode$U = [
37065
37089
  ["path", { d: "M8 18h13", key: "1lx6n3" }],
37066
37090
  ["path", { d: "M8 6h13", key: "ik3vkj" }]
37067
37091
  ];
37068
- const List = createLucideIcon("list", __iconNode$U);
37092
+ const List = createLucideIcon("list", __iconNode$T);
37069
37093
  /**
37070
37094
  * @license lucide-react v0.507.0 - ISC
37071
37095
  *
37072
37096
  * This source code is licensed under the ISC license.
37073
37097
  * See the LICENSE file in the root directory of this source tree.
37074
37098
  */
37075
- const __iconNode$T = [
37099
+ const __iconNode$S = [
37076
37100
  ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
37077
37101
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
37078
37102
  ];
37079
- const Mail = createLucideIcon("mail", __iconNode$T);
37103
+ const Mail = createLucideIcon("mail", __iconNode$S);
37080
37104
  /**
37081
37105
  * @license lucide-react v0.507.0 - ISC
37082
37106
  *
37083
37107
  * This source code is licensed under the ISC license.
37084
37108
  * See the LICENSE file in the root directory of this source tree.
37085
37109
  */
37086
- const __iconNode$S = [
37110
+ const __iconNode$R = [
37087
37111
  ["polyline", { points: "15 3 21 3 21 9", key: "mznyad" }],
37088
37112
  ["polyline", { points: "9 21 3 21 3 15", key: "1avn1i" }],
37089
37113
  ["line", { x1: "21", x2: "14", y1: "3", y2: "10", key: "ota7mn" }],
37090
37114
  ["line", { x1: "3", x2: "10", y1: "21", y2: "14", key: "1atl0r" }]
37091
37115
  ];
37092
- const Maximize2 = createLucideIcon("maximize-2", __iconNode$S);
37116
+ const Maximize2 = createLucideIcon("maximize-2", __iconNode$R);
37093
37117
  /**
37094
37118
  * @license lucide-react v0.507.0 - ISC
37095
37119
  *
37096
37120
  * This source code is licensed under the ISC license.
37097
37121
  * See the LICENSE file in the root directory of this source tree.
37098
37122
  */
37099
- const __iconNode$R = [
37123
+ const __iconNode$Q = [
37100
37124
  ["path", { d: "m3 11 18-5v12L3 14v-3z", key: "n962bs" }],
37101
37125
  ["path", { d: "M11.6 16.8a3 3 0 1 1-5.8-1.6", key: "1yl0tm" }]
37102
37126
  ];
37103
- const Megaphone = createLucideIcon("megaphone", __iconNode$R);
37127
+ const Megaphone = createLucideIcon("megaphone", __iconNode$Q);
37104
37128
  /**
37105
37129
  * @license lucide-react v0.507.0 - ISC
37106
37130
  *
37107
37131
  * This source code is licensed under the ISC license.
37108
37132
  * See the LICENSE file in the root directory of this source tree.
37109
37133
  */
37110
- const __iconNode$Q = [
37134
+ const __iconNode$P = [
37111
37135
  ["path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z", key: "vv11sd" }]
37112
37136
  ];
37113
- const MessageCircle = createLucideIcon("message-circle", __iconNode$Q);
37137
+ const MessageCircle = createLucideIcon("message-circle", __iconNode$P);
37114
37138
  /**
37115
37139
  * @license lucide-react v0.507.0 - ISC
37116
37140
  *
37117
37141
  * This source code is licensed under the ISC license.
37118
37142
  * See the LICENSE file in the root directory of this source tree.
37119
37143
  */
37120
- const __iconNode$P = [
37144
+ const __iconNode$O = [
37121
37145
  ["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" }],
37122
37146
  ["path", { d: "m10 7-3 3 3 3", key: "1eugdv" }],
37123
37147
  ["path", { d: "M17 13v-1a2 2 0 0 0-2-2H7", key: "ernfh3" }]
37124
37148
  ];
37125
- const MessageSquareReply = createLucideIcon("message-square-reply", __iconNode$P);
37149
+ const MessageSquareReply = createLucideIcon("message-square-reply", __iconNode$O);
37126
37150
  /**
37127
37151
  * @license lucide-react v0.507.0 - ISC
37128
37152
  *
37129
37153
  * This source code is licensed under the ISC license.
37130
37154
  * See the LICENSE file in the root directory of this source tree.
37131
37155
  */
37132
- const __iconNode$O = [
37156
+ const __iconNode$N = [
37133
37157
  ["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" }]
37134
37158
  ];
37135
- const MessageSquare = createLucideIcon("message-square", __iconNode$O);
37159
+ const MessageSquare = createLucideIcon("message-square", __iconNode$N);
37136
37160
  /**
37137
37161
  * @license lucide-react v0.507.0 - ISC
37138
37162
  *
37139
37163
  * This source code is licensed under the ISC license.
37140
37164
  * See the LICENSE file in the root directory of this source tree.
37141
37165
  */
37142
- const __iconNode$N = [
37166
+ const __iconNode$M = [
37143
37167
  ["path", { d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z", key: "131961" }],
37144
37168
  ["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2", key: "1vc78b" }],
37145
37169
  ["line", { x1: "12", x2: "12", y1: "19", y2: "22", key: "x3vr5v" }]
37146
37170
  ];
37147
- const Mic = createLucideIcon("mic", __iconNode$N);
37171
+ const Mic = createLucideIcon("mic", __iconNode$M);
37148
37172
  /**
37149
37173
  * @license lucide-react v0.507.0 - ISC
37150
37174
  *
37151
37175
  * This source code is licensed under the ISC license.
37152
37176
  * See the LICENSE file in the root directory of this source tree.
37153
37177
  */
37154
- const __iconNode$M = [["path", { d: "M5 12h14", key: "1ays0h" }]];
37155
- const Minus$1 = createLucideIcon("minus", __iconNode$M);
37178
+ const __iconNode$L = [["path", { d: "M5 12h14", key: "1ays0h" }]];
37179
+ const Minus$1 = createLucideIcon("minus", __iconNode$L);
37156
37180
  /**
37157
37181
  * @license lucide-react v0.507.0 - ISC
37158
37182
  *
37159
37183
  * This source code is licensed under the ISC license.
37160
37184
  * See the LICENSE file in the root directory of this source tree.
37161
37185
  */
37162
- const __iconNode$L = [
37186
+ const __iconNode$K = [
37163
37187
  ["path", { d: "M12 2v20", key: "t6zp3m" }],
37164
37188
  ["path", { d: "m15 19-3 3-3-3", key: "11eu04" }],
37165
37189
  ["path", { d: "m19 9 3 3-3 3", key: "1mg7y2" }],
@@ -37167,14 +37191,14 @@ const __iconNode$L = [
37167
37191
  ["path", { d: "m5 9-3 3 3 3", key: "j64kie" }],
37168
37192
  ["path", { d: "m9 5 3-3 3 3", key: "l8vdw6" }]
37169
37193
  ];
37170
- const Move = createLucideIcon("move", __iconNode$L);
37194
+ const Move = createLucideIcon("move", __iconNode$K);
37171
37195
  /**
37172
37196
  * @license lucide-react v0.507.0 - ISC
37173
37197
  *
37174
37198
  * This source code is licensed under the ISC license.
37175
37199
  * See the LICENSE file in the root directory of this source tree.
37176
37200
  */
37177
- const __iconNode$K = [
37201
+ const __iconNode$J = [
37178
37202
  ["path", { d: "m14.622 17.897-10.68-2.913", key: "vj2p1u" }],
37179
37203
  [
37180
37204
  "path",
@@ -37191,38 +37215,38 @@ const __iconNode$K = [
37191
37215
  }
37192
37216
  ]
37193
37217
  ];
37194
- const Paintbrush = createLucideIcon("paintbrush", __iconNode$K);
37218
+ const Paintbrush = createLucideIcon("paintbrush", __iconNode$J);
37195
37219
  /**
37196
37220
  * @license lucide-react v0.507.0 - ISC
37197
37221
  *
37198
37222
  * This source code is licensed under the ISC license.
37199
37223
  * See the LICENSE file in the root directory of this source tree.
37200
37224
  */
37201
- const __iconNode$J = [
37225
+ const __iconNode$I = [
37202
37226
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
37203
37227
  ["path", { d: "M15 3v18", key: "14nvp0" }],
37204
37228
  ["path", { d: "m8 9 3 3-3 3", key: "12hl5m" }]
37205
37229
  ];
37206
- const PanelRightClose = createLucideIcon("panel-right-close", __iconNode$J);
37230
+ const PanelRightClose = createLucideIcon("panel-right-close", __iconNode$I);
37207
37231
  /**
37208
37232
  * @license lucide-react v0.507.0 - ISC
37209
37233
  *
37210
37234
  * This source code is licensed under the ISC license.
37211
37235
  * See the LICENSE file in the root directory of this source tree.
37212
37236
  */
37213
- const __iconNode$I = [
37237
+ const __iconNode$H = [
37214
37238
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
37215
37239
  ["path", { d: "M15 3v18", key: "14nvp0" }],
37216
37240
  ["path", { d: "m10 15-3-3 3-3", key: "1pgupc" }]
37217
37241
  ];
37218
- const PanelRightOpen = createLucideIcon("panel-right-open", __iconNode$I);
37242
+ const PanelRightOpen = createLucideIcon("panel-right-open", __iconNode$H);
37219
37243
  /**
37220
37244
  * @license lucide-react v0.507.0 - ISC
37221
37245
  *
37222
37246
  * This source code is licensed under the ISC license.
37223
37247
  * See the LICENSE file in the root directory of this source tree.
37224
37248
  */
37225
- const __iconNode$H = [
37249
+ const __iconNode$G = [
37226
37250
  ["path", { d: "M13.234 20.252 21 12.3", key: "1cbrk9" }],
37227
37251
  [
37228
37252
  "path",
@@ -37232,14 +37256,14 @@ const __iconNode$H = [
37232
37256
  }
37233
37257
  ]
37234
37258
  ];
37235
- const Paperclip = createLucideIcon("paperclip", __iconNode$H);
37259
+ const Paperclip = createLucideIcon("paperclip", __iconNode$G);
37236
37260
  /**
37237
37261
  * @license lucide-react v0.507.0 - ISC
37238
37262
  *
37239
37263
  * This source code is licensed under the ISC license.
37240
37264
  * See the LICENSE file in the root directory of this source tree.
37241
37265
  */
37242
- const __iconNode$G = [
37266
+ const __iconNode$F = [
37243
37267
  ["path", { d: "M12 20h9", key: "t2du7b" }],
37244
37268
  [
37245
37269
  "path",
@@ -37250,14 +37274,14 @@ const __iconNode$G = [
37250
37274
  ],
37251
37275
  ["path", { d: "m15 5 3 3", key: "1w25hb" }]
37252
37276
  ];
37253
- const PencilLine = createLucideIcon("pencil-line", __iconNode$G);
37277
+ const PencilLine = createLucideIcon("pencil-line", __iconNode$F);
37254
37278
  /**
37255
37279
  * @license lucide-react v0.507.0 - ISC
37256
37280
  *
37257
37281
  * This source code is licensed under the ISC license.
37258
37282
  * See the LICENSE file in the root directory of this source tree.
37259
37283
  */
37260
- const __iconNode$F = [
37284
+ const __iconNode$E = [
37261
37285
  [
37262
37286
  "path",
37263
37287
  {
@@ -37266,14 +37290,14 @@ const __iconNode$F = [
37266
37290
  }
37267
37291
  ]
37268
37292
  ];
37269
- const Pen = createLucideIcon("pen", __iconNode$F);
37293
+ const Pen = createLucideIcon("pen", __iconNode$E);
37270
37294
  /**
37271
37295
  * @license lucide-react v0.507.0 - ISC
37272
37296
  *
37273
37297
  * This source code is licensed under the ISC license.
37274
37298
  * See the LICENSE file in the root directory of this source tree.
37275
37299
  */
37276
- const __iconNode$E = [
37300
+ const __iconNode$D = [
37277
37301
  [
37278
37302
  "path",
37279
37303
  {
@@ -37283,37 +37307,37 @@ const __iconNode$E = [
37283
37307
  ],
37284
37308
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }]
37285
37309
  ];
37286
- const Pencil = createLucideIcon("pencil", __iconNode$E);
37310
+ const Pencil = createLucideIcon("pencil", __iconNode$D);
37287
37311
  /**
37288
37312
  * @license lucide-react v0.507.0 - ISC
37289
37313
  *
37290
37314
  * This source code is licensed under the ISC license.
37291
37315
  * See the LICENSE file in the root directory of this source tree.
37292
37316
  */
37293
- const __iconNode$D = [
37317
+ const __iconNode$C = [
37294
37318
  ["path", { d: "M5 12h14", key: "1ays0h" }],
37295
37319
  ["path", { d: "M12 5v14", key: "s699le" }]
37296
37320
  ];
37297
- const Plus$1 = createLucideIcon("plus", __iconNode$D);
37321
+ const Plus$1 = createLucideIcon("plus", __iconNode$C);
37298
37322
  /**
37299
37323
  * @license lucide-react v0.507.0 - ISC
37300
37324
  *
37301
37325
  * This source code is licensed under the ISC license.
37302
37326
  * See the LICENSE file in the root directory of this source tree.
37303
37327
  */
37304
- const __iconNode$C = [
37328
+ const __iconNode$B = [
37305
37329
  ["path", { d: "M2 3h20", key: "91anmk" }],
37306
37330
  ["path", { d: "M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3", key: "2k9sn8" }],
37307
37331
  ["path", { d: "m7 21 5-5 5 5", key: "bip4we" }]
37308
37332
  ];
37309
- const Presentation = createLucideIcon("presentation", __iconNode$C);
37333
+ const Presentation = createLucideIcon("presentation", __iconNode$B);
37310
37334
  /**
37311
37335
  * @license lucide-react v0.507.0 - ISC
37312
37336
  *
37313
37337
  * This source code is licensed under the ISC license.
37314
37338
  * See the LICENSE file in the root directory of this source tree.
37315
37339
  */
37316
- const __iconNode$B = [
37340
+ const __iconNode$A = [
37317
37341
  [
37318
37342
  "path",
37319
37343
  {
@@ -37322,14 +37346,14 @@ const __iconNode$B = [
37322
37346
  }
37323
37347
  ]
37324
37348
  ];
37325
- const Puzzle = createLucideIcon("puzzle", __iconNode$B);
37349
+ const Puzzle = createLucideIcon("puzzle", __iconNode$A);
37326
37350
  /**
37327
37351
  * @license lucide-react v0.507.0 - ISC
37328
37352
  *
37329
37353
  * This source code is licensed under the ISC license.
37330
37354
  * See the LICENSE file in the root directory of this source tree.
37331
37355
  */
37332
- const __iconNode$A = [
37356
+ const __iconNode$z = [
37333
37357
  [
37334
37358
  "path",
37335
37359
  {
@@ -37345,38 +37369,38 @@ const __iconNode$A = [
37345
37369
  }
37346
37370
  ]
37347
37371
  ];
37348
- const Quote$2 = createLucideIcon("quote", __iconNode$A);
37372
+ const Quote$2 = createLucideIcon("quote", __iconNode$z);
37349
37373
  /**
37350
37374
  * @license lucide-react v0.507.0 - ISC
37351
37375
  *
37352
37376
  * This source code is licensed under the ISC license.
37353
37377
  * See the LICENSE file in the root directory of this source tree.
37354
37378
  */
37355
- const __iconNode$z = [
37379
+ const __iconNode$y = [
37356
37380
  ["path", { d: "M21 7v6h-6", key: "3ptur4" }],
37357
37381
  ["path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7", key: "1kgawr" }]
37358
37382
  ];
37359
- const Redo = createLucideIcon("redo", __iconNode$z);
37383
+ const Redo = createLucideIcon("redo", __iconNode$y);
37360
37384
  /**
37361
37385
  * @license lucide-react v0.507.0 - ISC
37362
37386
  *
37363
37387
  * This source code is licensed under the ISC license.
37364
37388
  * See the LICENSE file in the root directory of this source tree.
37365
37389
  */
37366
- const __iconNode$y = [
37390
+ const __iconNode$x = [
37367
37391
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
37368
37392
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
37369
37393
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
37370
37394
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
37371
37395
  ];
37372
- const RefreshCw = createLucideIcon("refresh-cw", __iconNode$y);
37396
+ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$x);
37373
37397
  /**
37374
37398
  * @license lucide-react v0.507.0 - ISC
37375
37399
  *
37376
37400
  * This source code is licensed under the ISC license.
37377
37401
  * See the LICENSE file in the root directory of this source tree.
37378
37402
  */
37379
- const __iconNode$x = [
37403
+ const __iconNode$w = [
37380
37404
  ["path", { d: "M14 4a2 2 0 0 1 2-2", key: "1w2hp7" }],
37381
37405
  ["path", { d: "M16 10a2 2 0 0 1-2-2", key: "shjach" }],
37382
37406
  ["path", { d: "M20 2a2 2 0 0 1 2 2", key: "188mtx" }],
@@ -37385,36 +37409,36 @@ const __iconNode$x = [
37385
37409
  ["path", { d: "M6 10V5a3 3 0 0 1 3-3h1", key: "3y3t5z" }],
37386
37410
  ["rect", { x: "2", y: "14", width: "8", height: "8", rx: "2", key: "4rksxw" }]
37387
37411
  ];
37388
- const Replace = createLucideIcon("replace", __iconNode$x);
37412
+ const Replace = createLucideIcon("replace", __iconNode$w);
37389
37413
  /**
37390
37414
  * @license lucide-react v0.507.0 - ISC
37391
37415
  *
37392
37416
  * This source code is licensed under the ISC license.
37393
37417
  * See the LICENSE file in the root directory of this source tree.
37394
37418
  */
37395
- const __iconNode$w = [
37419
+ const __iconNode$v = [
37396
37420
  ["polyline", { points: "9 17 4 12 9 7", key: "hvgpf2" }],
37397
37421
  ["path", { d: "M20 18v-2a4 4 0 0 0-4-4H4", key: "5vmcpk" }]
37398
37422
  ];
37399
- const Reply = createLucideIcon("reply", __iconNode$w);
37423
+ const Reply = createLucideIcon("reply", __iconNode$v);
37400
37424
  /**
37401
37425
  * @license lucide-react v0.507.0 - ISC
37402
37426
  *
37403
37427
  * This source code is licensed under the ISC license.
37404
37428
  * See the LICENSE file in the root directory of this source tree.
37405
37429
  */
37406
- const __iconNode$v = [
37430
+ const __iconNode$u = [
37407
37431
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
37408
37432
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
37409
37433
  ];
37410
- const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$v);
37434
+ const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$u);
37411
37435
  /**
37412
37436
  * @license lucide-react v0.507.0 - ISC
37413
37437
  *
37414
37438
  * This source code is licensed under the ISC license.
37415
37439
  * See the LICENSE file in the root directory of this source tree.
37416
37440
  */
37417
- const __iconNode$u = [
37441
+ const __iconNode$t = [
37418
37442
  [
37419
37443
  "path",
37420
37444
  {
@@ -37425,28 +37449,28 @@ const __iconNode$u = [
37425
37449
  ["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
37426
37450
  ["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
37427
37451
  ];
37428
- const Save = createLucideIcon("save", __iconNode$u);
37452
+ const Save = createLucideIcon("save", __iconNode$t);
37429
37453
  /**
37430
37454
  * @license lucide-react v0.507.0 - ISC
37431
37455
  *
37432
37456
  * This source code is licensed under the ISC license.
37433
37457
  * See the LICENSE file in the root directory of this source tree.
37434
37458
  */
37435
- const __iconNode$t = [
37459
+ const __iconNode$s = [
37436
37460
  ["path", { d: "m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "7g6ntu" }],
37437
37461
  ["path", { d: "m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "ijws7r" }],
37438
37462
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
37439
37463
  ["path", { d: "M12 3v18", key: "108xh3" }],
37440
37464
  ["path", { d: "M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2", key: "3gwbw2" }]
37441
37465
  ];
37442
- const Scale = createLucideIcon("scale", __iconNode$t);
37466
+ const Scale = createLucideIcon("scale", __iconNode$s);
37443
37467
  /**
37444
37468
  * @license lucide-react v0.507.0 - ISC
37445
37469
  *
37446
37470
  * This source code is licensed under the ISC license.
37447
37471
  * See the LICENSE file in the root directory of this source tree.
37448
37472
  */
37449
- const __iconNode$s = [
37473
+ const __iconNode$r = [
37450
37474
  ["path", { d: "M15 12h-5", key: "r7krc0" }],
37451
37475
  ["path", { d: "M15 8h-5", key: "1khuty" }],
37452
37476
  ["path", { d: "M19 17V5a2 2 0 0 0-2-2H4", key: "zz82l3" }],
@@ -37458,25 +37482,25 @@ const __iconNode$s = [
37458
37482
  }
37459
37483
  ]
37460
37484
  ];
37461
- const ScrollText = createLucideIcon("scroll-text", __iconNode$s);
37485
+ const ScrollText = createLucideIcon("scroll-text", __iconNode$r);
37462
37486
  /**
37463
37487
  * @license lucide-react v0.507.0 - ISC
37464
37488
  *
37465
37489
  * This source code is licensed under the ISC license.
37466
37490
  * See the LICENSE file in the root directory of this source tree.
37467
37491
  */
37468
- const __iconNode$r = [
37492
+ const __iconNode$q = [
37469
37493
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
37470
37494
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
37471
37495
  ];
37472
- const Search = createLucideIcon("search", __iconNode$r);
37496
+ const Search = createLucideIcon("search", __iconNode$q);
37473
37497
  /**
37474
37498
  * @license lucide-react v0.507.0 - ISC
37475
37499
  *
37476
37500
  * This source code is licensed under the ISC license.
37477
37501
  * See the LICENSE file in the root directory of this source tree.
37478
37502
  */
37479
- const __iconNode$q = [
37503
+ const __iconNode$p = [
37480
37504
  [
37481
37505
  "path",
37482
37506
  {
@@ -37486,14 +37510,14 @@ const __iconNode$q = [
37486
37510
  ],
37487
37511
  ["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
37488
37512
  ];
37489
- const Send = createLucideIcon("send", __iconNode$q);
37513
+ const Send = createLucideIcon("send", __iconNode$p);
37490
37514
  /**
37491
37515
  * @license lucide-react v0.507.0 - ISC
37492
37516
  *
37493
37517
  * This source code is licensed under the ISC license.
37494
37518
  * See the LICENSE file in the root directory of this source tree.
37495
37519
  */
37496
- const __iconNode$p = [
37520
+ const __iconNode$o = [
37497
37521
  [
37498
37522
  "path",
37499
37523
  {
@@ -37503,28 +37527,28 @@ const __iconNode$p = [
37503
37527
  ],
37504
37528
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
37505
37529
  ];
37506
- const Settings$1 = createLucideIcon("settings", __iconNode$p);
37530
+ const Settings$1 = createLucideIcon("settings", __iconNode$o);
37507
37531
  /**
37508
37532
  * @license lucide-react v0.507.0 - ISC
37509
37533
  *
37510
37534
  * This source code is licensed under the ISC license.
37511
37535
  * See the LICENSE file in the root directory of this source tree.
37512
37536
  */
37513
- const __iconNode$o = [
37537
+ const __iconNode$n = [
37514
37538
  ["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }],
37515
37539
  ["circle", { cx: "6", cy: "12", r: "3", key: "w7nqdw" }],
37516
37540
  ["circle", { cx: "18", cy: "19", r: "3", key: "1xt0gg" }],
37517
37541
  ["line", { x1: "8.59", x2: "15.42", y1: "13.51", y2: "17.49", key: "47mynk" }],
37518
37542
  ["line", { x1: "15.41", x2: "8.59", y1: "6.51", y2: "10.49", key: "1n3mei" }]
37519
37543
  ];
37520
- const Share2 = createLucideIcon("share-2", __iconNode$o);
37544
+ const Share2 = createLucideIcon("share-2", __iconNode$n);
37521
37545
  /**
37522
37546
  * @license lucide-react v0.507.0 - ISC
37523
37547
  *
37524
37548
  * This source code is licensed under the ISC license.
37525
37549
  * See the LICENSE file in the root directory of this source tree.
37526
37550
  */
37527
- const __iconNode$n = [
37551
+ const __iconNode$m = [
37528
37552
  [
37529
37553
  "path",
37530
37554
  {
@@ -37533,14 +37557,14 @@ const __iconNode$n = [
37533
37557
  }
37534
37558
  ]
37535
37559
  ];
37536
- const Shield = createLucideIcon("shield", __iconNode$n);
37560
+ const Shield = createLucideIcon("shield", __iconNode$m);
37537
37561
  /**
37538
37562
  * @license lucide-react v0.507.0 - ISC
37539
37563
  *
37540
37564
  * This source code is licensed under the ISC license.
37541
37565
  * See the LICENSE file in the root directory of this source tree.
37542
37566
  */
37543
- const __iconNode$m = [
37567
+ const __iconNode$l = [
37544
37568
  ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
37545
37569
  ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
37546
37570
  [
@@ -37551,14 +37575,14 @@ const __iconNode$m = [
37551
37575
  }
37552
37576
  ]
37553
37577
  ];
37554
- const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$m);
37578
+ const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$l);
37555
37579
  /**
37556
37580
  * @license lucide-react v0.507.0 - ISC
37557
37581
  *
37558
37582
  * This source code is licensed under the ISC license.
37559
37583
  * See the LICENSE file in the root directory of this source tree.
37560
37584
  */
37561
- const __iconNode$l = [
37585
+ const __iconNode$k = [
37562
37586
  [
37563
37587
  "path",
37564
37588
  {
@@ -37571,14 +37595,25 @@ const __iconNode$l = [
37571
37595
  ["path", { d: "M4 17v2", key: "vumght" }],
37572
37596
  ["path", { d: "M5 18H3", key: "zchphs" }]
37573
37597
  ];
37574
- const Sparkles = createLucideIcon("sparkles", __iconNode$l);
37598
+ const Sparkles = createLucideIcon("sparkles", __iconNode$k);
37575
37599
  /**
37576
37600
  * @license lucide-react v0.507.0 - ISC
37577
37601
  *
37578
37602
  * This source code is licensed under the ISC license.
37579
37603
  * See the LICENSE file in the root directory of this source tree.
37580
37604
  */
37581
- const __iconNode$k = [
37605
+ const __iconNode$j = [
37606
+ ["path", { d: "M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5", key: "1uzm8b" }],
37607
+ ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
37608
+ ];
37609
+ const SquareCheckBig = createLucideIcon("square-check-big", __iconNode$j);
37610
+ /**
37611
+ * @license lucide-react v0.507.0 - ISC
37612
+ *
37613
+ * This source code is licensed under the ISC license.
37614
+ * See the LICENSE file in the root directory of this source tree.
37615
+ */
37616
+ const __iconNode$i = [
37582
37617
  ["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", key: "1m0v6g" }],
37583
37618
  [
37584
37619
  "path",
@@ -37588,36 +37623,36 @@ const __iconNode$k = [
37588
37623
  }
37589
37624
  ]
37590
37625
  ];
37591
- const SquarePen = createLucideIcon("square-pen", __iconNode$k);
37626
+ const SquarePen = createLucideIcon("square-pen", __iconNode$i);
37592
37627
  /**
37593
37628
  * @license lucide-react v0.507.0 - ISC
37594
37629
  *
37595
37630
  * This source code is licensed under the ISC license.
37596
37631
  * See the LICENSE file in the root directory of this source tree.
37597
37632
  */
37598
- const __iconNode$j = [
37633
+ const __iconNode$h = [
37599
37634
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
37600
37635
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
37601
37636
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
37602
37637
  ];
37603
- const SquareX = createLucideIcon("square-x", __iconNode$j);
37638
+ const SquareX = createLucideIcon("square-x", __iconNode$h);
37604
37639
  /**
37605
37640
  * @license lucide-react v0.507.0 - ISC
37606
37641
  *
37607
37642
  * This source code is licensed under the ISC license.
37608
37643
  * See the LICENSE file in the root directory of this source tree.
37609
37644
  */
37610
- const __iconNode$i = [
37645
+ const __iconNode$g = [
37611
37646
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
37612
37647
  ];
37613
- const Square = createLucideIcon("square", __iconNode$i);
37648
+ const Square = createLucideIcon("square", __iconNode$g);
37614
37649
  /**
37615
37650
  * @license lucide-react v0.507.0 - ISC
37616
37651
  *
37617
37652
  * This source code is licensed under the ISC license.
37618
37653
  * See the LICENSE file in the root directory of this source tree.
37619
37654
  */
37620
- const __iconNode$h = [
37655
+ const __iconNode$f = [
37621
37656
  [
37622
37657
  "path",
37623
37658
  {
@@ -37626,14 +37661,14 @@ const __iconNode$h = [
37626
37661
  }
37627
37662
  ]
37628
37663
  ];
37629
- const Star = createLucideIcon("star", __iconNode$h);
37664
+ const Star = createLucideIcon("star", __iconNode$f);
37630
37665
  /**
37631
37666
  * @license lucide-react v0.507.0 - ISC
37632
37667
  *
37633
37668
  * This source code is licensed under the ISC license.
37634
37669
  * See the LICENSE file in the root directory of this source tree.
37635
37670
  */
37636
- const __iconNode$g = [
37671
+ const __iconNode$e = [
37637
37672
  ["path", { d: "m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7", key: "ztvudi" }],
37638
37673
  ["path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8", key: "1b2hhj" }],
37639
37674
  ["path", { d: "M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4", key: "2ebpfo" }],
@@ -37646,39 +37681,39 @@ const __iconNode$g = [
37646
37681
  }
37647
37682
  ]
37648
37683
  ];
37649
- const Store = createLucideIcon("store", __iconNode$g);
37684
+ const Store = createLucideIcon("store", __iconNode$e);
37650
37685
  /**
37651
37686
  * @license lucide-react v0.507.0 - ISC
37652
37687
  *
37653
37688
  * This source code is licensed under the ISC license.
37654
37689
  * See the LICENSE file in the root directory of this source tree.
37655
37690
  */
37656
- const __iconNode$f = [
37691
+ const __iconNode$d = [
37657
37692
  ["path", { d: "M16 4H9a3 3 0 0 0-2.83 4", key: "43sutm" }],
37658
37693
  ["path", { d: "M14 12a4 4 0 0 1 0 8H6", key: "nlfj13" }],
37659
37694
  ["line", { x1: "4", x2: "20", y1: "12", y2: "12", key: "1e0a9i" }]
37660
37695
  ];
37661
- const Strikethrough$1 = createLucideIcon("strikethrough", __iconNode$f);
37696
+ const Strikethrough$1 = createLucideIcon("strikethrough", __iconNode$d);
37662
37697
  /**
37663
37698
  * @license lucide-react v0.507.0 - ISC
37664
37699
  *
37665
37700
  * This source code is licensed under the ISC license.
37666
37701
  * See the LICENSE file in the root directory of this source tree.
37667
37702
  */
37668
- const __iconNode$e = [
37703
+ const __iconNode$c = [
37669
37704
  ["path", { d: "M12 3v18", key: "108xh3" }],
37670
37705
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
37671
37706
  ["path", { d: "M3 9h18", key: "1pudct" }],
37672
37707
  ["path", { d: "M3 15h18", key: "5xshup" }]
37673
37708
  ];
37674
- const Table$1 = createLucideIcon("table", __iconNode$e);
37709
+ const Table$1 = createLucideIcon("table", __iconNode$c);
37675
37710
  /**
37676
37711
  * @license lucide-react v0.507.0 - ISC
37677
37712
  *
37678
37713
  * This source code is licensed under the ISC license.
37679
37714
  * See the LICENSE file in the root directory of this source tree.
37680
37715
  */
37681
- const __iconNode$d = [
37716
+ const __iconNode$b = [
37682
37717
  [
37683
37718
  "path",
37684
37719
  {
@@ -37688,41 +37723,7 @@ const __iconNode$d = [
37688
37723
  ],
37689
37724
  ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
37690
37725
  ];
37691
- const Tag$1 = createLucideIcon("tag", __iconNode$d);
37692
- /**
37693
- * @license lucide-react v0.507.0 - ISC
37694
- *
37695
- * This source code is licensed under the ISC license.
37696
- * See the LICENSE file in the root directory of this source tree.
37697
- */
37698
- const __iconNode$c = [
37699
- ["path", { d: "M17 14V2", key: "8ymqnk" }],
37700
- [
37701
- "path",
37702
- {
37703
- d: "M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z",
37704
- key: "m61m77"
37705
- }
37706
- ]
37707
- ];
37708
- const ThumbsDown = createLucideIcon("thumbs-down", __iconNode$c);
37709
- /**
37710
- * @license lucide-react v0.507.0 - ISC
37711
- *
37712
- * This source code is licensed under the ISC license.
37713
- * See the LICENSE file in the root directory of this source tree.
37714
- */
37715
- const __iconNode$b = [
37716
- ["path", { d: "M7 10v12", key: "1qc93n" }],
37717
- [
37718
- "path",
37719
- {
37720
- d: "M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",
37721
- key: "emmmcr"
37722
- }
37723
- ]
37724
- ];
37725
- const ThumbsUp = createLucideIcon("thumbs-up", __iconNode$b);
37726
+ const Tag$1 = createLucideIcon("tag", __iconNode$b);
37726
37727
  /**
37727
37728
  * @license lucide-react v0.507.0 - ISC
37728
37729
  *
@@ -65188,7 +65189,7 @@ function visit$1(tree, testOrVisitor, visitorOrReverse, maybeReverse) {
65188
65189
  let reverse3;
65189
65190
  let test;
65190
65191
  let visitor2;
65191
- if (typeof testOrVisitor === "function" && true) {
65192
+ if (typeof testOrVisitor === "function" && typeof visitorOrReverse !== "function") {
65192
65193
  test = void 0;
65193
65194
  visitor2 = testOrVisitor;
65194
65195
  reverse3 = visitorOrReverse;
@@ -69747,8 +69748,7 @@ const getFileTypeFromPath = (filePath) => {
69747
69748
  if (["md", "markdown"].includes(extension2)) return "markdown";
69748
69749
  if (["html", "htm"].includes(extension2)) return "html";
69749
69750
  if (["zip", "tar", "gz", "rar", "7z"].includes(extension2)) return "archive";
69750
- if (["txt", "log", "json", "xml", "yaml", "yml"].includes(extension2))
69751
- return "text";
69751
+ if (["txt", "log"].includes(extension2)) return "text";
69752
69752
  if ([
69753
69753
  "js",
69754
69754
  "ts",
@@ -69765,7 +69765,11 @@ const getFileTypeFromPath = (filePath) => {
69765
69765
  "sh",
69766
69766
  "css",
69767
69767
  "scss",
69768
- "less"
69768
+ "less",
69769
+ "json",
69770
+ "xml",
69771
+ "yaml",
69772
+ "yml"
69769
69773
  ].includes(extension2))
69770
69774
  return "code";
69771
69775
  if (["doc", "docx", "odt"].includes(extension2)) return "document";
@@ -89885,7 +89889,7 @@ const languages = [
89885
89889
  name: "Go",
89886
89890
  extensions: ["go"],
89887
89891
  load() {
89888
- return __vitePreload(() => import("./index-BXPA5Z8j.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m2) => m2.go());
89892
+ return __vitePreload(() => import("./index-CtrEBFNz.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m2) => m2.go());
89889
89893
  }
89890
89894
  }),
89891
89895
  /* @__PURE__ */ LanguageDescription.of({
@@ -90062,7 +90066,7 @@ const languages = [
90062
90066
  alias: ["yml"],
90063
90067
  extensions: ["yaml", "yml"],
90064
90068
  load() {
90065
- return __vitePreload(() => import("./index-iDYiYgwd.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m2) => m2.yaml());
90069
+ return __vitePreload(() => import("./index-B4xrtp2Z.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m2) => m2.yaml());
90066
90070
  }
90067
90071
  }),
90068
90072
  // Legacy modes ported from CodeMirror 5
@@ -128066,6 +128070,301 @@ const getCodeMirrorTheme = (theme2) => {
128066
128070
  ]);
128067
128071
  return [editorTheme, syntaxHighlighting(highlightStyle)];
128068
128072
  };
128073
+ const GLOBAL_WHITE_SPACE_REGEX = /\s+/g;
128074
+ const SINGLE_WHITE_SPACE_REGEX = /\s/;
128075
+ class DiffWidget extends WidgetType {
128076
+ constructor(oldText, newText, theme2) {
128077
+ super();
128078
+ this.oldText = oldText;
128079
+ this.newText = newText;
128080
+ this.theme = theme2;
128081
+ }
128082
+ toDOM() {
128083
+ const container = document.createElement("div");
128084
+ container.style.border = `1px solid ${this.theme.palette.divider}`;
128085
+ container.style.borderRadius = `${this.theme.shape.borderRadius}px`;
128086
+ container.style.padding = "8px";
128087
+ container.style.margin = "4px 0";
128088
+ container.style.transform = "translate(-12px, 12px)";
128089
+ container.style.fontFamily = "'Geist Mono', monospace";
128090
+ container.style.fontSize = "13px";
128091
+ container.style.backgroundColor = alpha$1(
128092
+ this.theme.palette.background.paper,
128093
+ 0.9
128094
+ );
128095
+ container.style.display = "inline-block";
128096
+ container.style.minWidth = "200px";
128097
+ const label = document.createElement("div");
128098
+ label.textContent = "Proposed Change:";
128099
+ label.style.fontSize = "11px";
128100
+ label.style.fontWeight = "bold";
128101
+ label.style.color = this.theme.palette.info.main;
128102
+ label.style.marginBottom = "4px";
128103
+ container.appendChild(label);
128104
+ const diffWrapper = document.createElement("div");
128105
+ diffWrapper.style.display = "flex";
128106
+ diffWrapper.style.flexDirection = "column";
128107
+ diffWrapper.style.gap = "4px";
128108
+ if (this.oldText.trim()) {
128109
+ const oldLabel = document.createElement("div");
128110
+ oldLabel.textContent = "- Remove:";
128111
+ oldLabel.style.fontSize = "10px";
128112
+ oldLabel.style.color = this.theme.palette.error.main;
128113
+ oldLabel.style.fontWeight = "bold";
128114
+ diffWrapper.appendChild(oldLabel);
128115
+ const oldCode = document.createElement("div");
128116
+ oldCode.textContent = this.oldText;
128117
+ oldCode.style.backgroundColor = alpha$1(this.theme.palette.error.main, 0.2);
128118
+ oldCode.style.color = this.theme.palette.error.main;
128119
+ oldCode.style.padding = "4px 6px";
128120
+ oldCode.style.borderRadius = "4px";
128121
+ oldCode.style.whiteSpace = "pre-wrap";
128122
+ oldCode.style.fontFamily = "'Geist Mono', 'Roboto Mono', monospace";
128123
+ oldCode.style.border = `1px solid ${alpha$1(this.theme.palette.error.main, 0.5)}`;
128124
+ diffWrapper.appendChild(oldCode);
128125
+ }
128126
+ if (this.newText.trim()) {
128127
+ const newLabel = document.createElement("div");
128128
+ newLabel.textContent = "+ Add:";
128129
+ newLabel.style.fontSize = "10px";
128130
+ newLabel.style.color = this.theme.palette.success.main;
128131
+ newLabel.style.fontWeight = "bold";
128132
+ newLabel.style.marginTop = "4px";
128133
+ diffWrapper.appendChild(newLabel);
128134
+ const newCode = document.createElement("div");
128135
+ newCode.textContent = this.newText;
128136
+ newCode.style.backgroundColor = alpha$1(
128137
+ this.theme.palette.success.main,
128138
+ 0.2
128139
+ );
128140
+ newCode.style.color = this.theme.palette.success.main;
128141
+ newCode.style.padding = "4px 6px";
128142
+ newCode.style.borderRadius = "4px";
128143
+ newCode.style.whiteSpace = "pre-wrap";
128144
+ newCode.style.fontFamily = "'Geist Mono', 'Roboto Mono', monospace";
128145
+ newCode.style.border = `1px solid ${alpha$1(this.theme.palette.success.main, 0.5)}`;
128146
+ diffWrapper.appendChild(newCode);
128147
+ }
128148
+ container.appendChild(diffWrapper);
128149
+ return container;
128150
+ }
128151
+ eq(other2) {
128152
+ return this.oldText === other2.oldText && this.newText === other2.newText;
128153
+ }
128154
+ }
128155
+ const diffHighlight = (theme2, reviewState) => {
128156
+ return ViewPlugin.fromClass(
128157
+ class {
128158
+ decorations;
128159
+ constructor(view) {
128160
+ this.decorations = this.buildDecorations(view);
128161
+ }
128162
+ update(update) {
128163
+ if (update.docChanged || update.viewportChanged || update.transactions.length > 0) {
128164
+ this.decorations = this.buildDecorations(update.view);
128165
+ }
128166
+ }
128167
+ buildDecorations(view) {
128168
+ if (!reviewState) {
128169
+ return Decoration.none;
128170
+ }
128171
+ const builder = [];
128172
+ const { diffs, currentIndex } = reviewState;
128173
+ if (currentIndex >= diffs.length) {
128174
+ return Decoration.none;
128175
+ }
128176
+ const currentDiff = diffs[currentIndex];
128177
+ const docString = view.state.doc.toString();
128178
+ let startIndex = -1;
128179
+ let endIndex = -1;
128180
+ startIndex = docString.indexOf(currentDiff.find);
128181
+ if (startIndex !== -1) {
128182
+ endIndex = startIndex + currentDiff.find.length;
128183
+ } else {
128184
+ const normalizedFind = currentDiff.find.replace(GLOBAL_WHITE_SPACE_REGEX, " ").trim();
128185
+ const normalizedDoc = docString.replace(
128186
+ GLOBAL_WHITE_SPACE_REGEX,
128187
+ " "
128188
+ );
128189
+ const normalizedIndex = normalizedDoc.indexOf(normalizedFind);
128190
+ if (normalizedIndex !== -1) {
128191
+ let normalizedCharCount = 0;
128192
+ for (let i2 = 0; i2 < docString.length; i2++) {
128193
+ if (normalizedCharCount === normalizedIndex) {
128194
+ startIndex = i2;
128195
+ break;
128196
+ }
128197
+ const char2 = docString[i2];
128198
+ if (char2.match(SINGLE_WHITE_SPACE_REGEX)) {
128199
+ if (normalizedDoc[normalizedCharCount] === " ") {
128200
+ normalizedCharCount++;
128201
+ }
128202
+ } else {
128203
+ normalizedCharCount++;
128204
+ }
128205
+ }
128206
+ if (startIndex !== -1) {
128207
+ normalizedCharCount = 0;
128208
+ for (let i2 = startIndex; i2 < docString.length; i2++) {
128209
+ if (normalizedCharCount >= normalizedFind.length) {
128210
+ endIndex = i2;
128211
+ break;
128212
+ }
128213
+ const char2 = docString[i2];
128214
+ if (char2.match(SINGLE_WHITE_SPACE_REGEX)) {
128215
+ if (normalizedDoc[normalizedIndex + normalizedCharCount] === " ") {
128216
+ normalizedCharCount++;
128217
+ }
128218
+ } else {
128219
+ normalizedCharCount++;
128220
+ }
128221
+ }
128222
+ if (endIndex === -1) {
128223
+ endIndex = docString.length;
128224
+ }
128225
+ }
128226
+ }
128227
+ }
128228
+ if (startIndex === -1 && currentDiff.find.includes("\n")) {
128229
+ const findLines = currentDiff.find.split("\n");
128230
+ const docLines = docString.split("\n");
128231
+ const firstLine = findLines[0].trim();
128232
+ if (firstLine) {
128233
+ for (let i2 = 0; i2 < docLines.length; i2++) {
128234
+ if (docLines[i2].trim() === firstLine) {
128235
+ startIndex = docLines.slice(0, i2).join("\n").length;
128236
+ if (i2 > 0) startIndex += 1;
128237
+ let matchedLines = 1;
128238
+ for (let j2 = 1; j2 < findLines.length && i2 + j2 < docLines.length; j2++) {
128239
+ if (docLines[i2 + j2].trim() === findLines[j2].trim()) {
128240
+ matchedLines++;
128241
+ } else {
128242
+ break;
128243
+ }
128244
+ }
128245
+ if (matchedLines === findLines.length) {
128246
+ endIndex = docLines.slice(0, i2 + matchedLines).join("\n").length;
128247
+ break;
128248
+ }
128249
+ }
128250
+ }
128251
+ }
128252
+ }
128253
+ if (startIndex === -1 || endIndex === -1) {
128254
+ console.warn(
128255
+ "Could not locate diff text in document:",
128256
+ currentDiff.find
128257
+ );
128258
+ return Decoration.none;
128259
+ }
128260
+ startIndex = Math.max(0, Math.min(startIndex, docString.length));
128261
+ endIndex = Math.max(startIndex, Math.min(endIndex, docString.length));
128262
+ if (currentDiff.find.includes("\n") || currentDiff.replace.includes("\n")) {
128263
+ const highlightMark = Decoration.mark({
128264
+ attributes: {
128265
+ style: `background-color: ${alpha$1(
128266
+ theme2.palette.info.main,
128267
+ 0.3
128268
+ )}; border-left: 3px solid ${theme2.palette.info.main}; padding-left: 4px;`
128269
+ }
128270
+ });
128271
+ builder.push(highlightMark.range(startIndex, endIndex));
128272
+ const infoWidget = Decoration.widget({
128273
+ widget: new DiffWidget(
128274
+ currentDiff.find,
128275
+ currentDiff.replace,
128276
+ theme2
128277
+ ),
128278
+ side: 1
128279
+ // Place after the content
128280
+ });
128281
+ builder.push(infoWidget.range(endIndex));
128282
+ } else {
128283
+ const widget = Decoration.replace({
128284
+ widget: new DiffWidget(
128285
+ currentDiff.find,
128286
+ currentDiff.replace,
128287
+ theme2
128288
+ )
128289
+ });
128290
+ builder.push(widget.range(startIndex, endIndex));
128291
+ }
128292
+ return Decoration.set(builder);
128293
+ }
128294
+ },
128295
+ {
128296
+ decorations: (v2) => v2.decorations
128297
+ }
128298
+ );
128299
+ };
128300
+ const Key = styled$1(Box)(({ theme: theme2 }) => ({
128301
+ display: "inline-flex",
128302
+ alignItems: "center",
128303
+ justifyContent: "center",
128304
+ padding: theme2.spacing(0.25, 0.75),
128305
+ border: `1px solid ${theme2.palette.divider}`,
128306
+ borderRadius: theme2.shape.borderRadius,
128307
+ backgroundColor: theme2.palette.background.default,
128308
+ color: theme2.palette.text.secondary,
128309
+ fontSize: "0.75rem",
128310
+ fontWeight: 500,
128311
+ lineHeight: "1.2",
128312
+ minWidth: "20px",
128313
+ textAlign: "center"
128314
+ }));
128315
+ const ShortcutContainer = styled$1(Box)({
128316
+ display: "inline-flex",
128317
+ alignItems: "center",
128318
+ gap: "4px"
128319
+ });
128320
+ const keyIconMap = {
128321
+ "⌘": Command,
128322
+ cmd: Command,
128323
+ command: Command,
128324
+ enter: CornerDownLeft,
128325
+ "↵": CornerDownLeft
128326
+ };
128327
+ const KeyboardShortcut = ({
128328
+ shortcut,
128329
+ size = 10
128330
+ }) => {
128331
+ const theme2 = useTheme$2();
128332
+ const keys2 = shortcut.split("+").map((key2) => key2.trim());
128333
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ShortcutContainer, { children: keys2.map((key2, index2) => {
128334
+ const Icon = keyIconMap[key2.toLowerCase()];
128335
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
128336
+ index2 > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
128337
+ Typography,
128338
+ {
128339
+ variant: "caption",
128340
+ sx: {
128341
+ fontSize: "0.5rem",
128342
+ color: theme2.palette.text.secondary
128343
+ },
128344
+ children: "+"
128345
+ }
128346
+ ),
128347
+ Icon ? (
128348
+ // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is fine here
128349
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Key, { sx: { p: "2px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size }) }, `${key2}-${index2}`)
128350
+ ) : (
128351
+ // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is fine here
128352
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Key, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
128353
+ Typography,
128354
+ {
128355
+ variant: "caption",
128356
+ sx: {
128357
+ fontSize: "0.6rem",
128358
+ lineHeight: 1,
128359
+ color: theme2.palette.text.secondary
128360
+ },
128361
+ children: key2
128362
+ }
128363
+ ) }, `${key2}-${index2}`)
128364
+ )
128365
+ ] });
128366
+ }) });
128367
+ };
128069
128368
  var SpeechToTextPriority = /* @__PURE__ */ ((SpeechToTextPriority2) => {
128070
128369
  SpeechToTextPriority2[SpeechToTextPriority2["MESSAGE_INPUT"] = 1] = "MESSAGE_INPUT";
128071
128370
  SpeechToTextPriority2[SpeechToTextPriority2["INLINE_EDIT"] = 2] = "INLINE_EDIT";
@@ -128799,40 +129098,16 @@ const TranscriptionText$1 = styled$1(Typography)(({ theme: theme2 }) => ({
128799
129098
  }));
128800
129099
  const ReviewHeader = styled$1(Box)(({ theme: theme2 }) => ({
128801
129100
  display: "flex",
128802
- alignItems: "flex-start",
128803
- padding: theme2.spacing(0, 2, 0, 1),
129101
+ flexDirection: "column",
129102
+ justifyContent: "space-between",
129103
+ padding: theme2.spacing(0.5, 2, 1, 1),
128804
129104
  gap: theme2.spacing(1),
128805
- height: "64px"
129105
+ minHeight: "64px"
128806
129106
  }));
128807
129107
  const ReviewPrompt = styled$1(Typography)(({ theme: theme2 }) => ({
128808
129108
  flexGrow: 1,
128809
- whiteSpace: "nowrap",
128810
- overflow: "hidden",
128811
- textOverflow: "ellipsis",
128812
129109
  fontSize: "0.875rem",
128813
- color: alpha$1(theme2.palette.text.primary, 0.5)
128814
- }));
128815
- const ReviewButton = styled$1(Button)(({ theme: theme2 }) => ({
128816
- textTransform: "none",
128817
- fontWeight: 300,
128818
- fontSize: "0.75rem",
128819
- border: `1px solid ${theme2.palette.divider}`,
128820
- borderRadius: 16,
128821
- padding: theme2.spacing(0.5, 2),
128822
- marginTop: "auto",
128823
- "&:hover": {
128824
- backgroundColor: theme2.palette.action.hover
128825
- },
128826
- "&:active": {
128827
- backgroundColor: theme2.palette.action.active
128828
- },
128829
- "&:focus": {
128830
- outline: "none",
128831
- boxShadow: `0 0 0 2px ${theme2.palette.primary.main}`
128832
- },
128833
- "& .MuiButton-startIcon": {
128834
- marginRight: theme2.spacing(0.5)
128835
- }
129110
+ color: theme2.palette.text.secondary
128836
129111
  }));
128837
129112
  const InlineEdit = ({
128838
129113
  selection: selection2,
@@ -128843,7 +129118,10 @@ const InlineEdit = ({
128843
129118
  agentId,
128844
129119
  reviewState,
128845
129120
  onApplyAll,
128846
- onRejectAll
129121
+ onRejectAll,
129122
+ onAcceptDiff,
129123
+ onRejectDiff,
129124
+ onNavigateDiff
128847
129125
  }) => {
128848
129126
  const [prompt, setPrompt] = reactExports.useState("");
128849
129127
  const [attachments, setAttachments] = reactExports.useState([]);
@@ -128857,7 +129135,6 @@ const InlineEdit = ({
128857
129135
  const mediaRecorderRef = reactExports.useRef(null);
128858
129136
  const audioChunksRef = reactExports.useRef([]);
128859
129137
  const [platform, setPlatform] = reactExports.useState("");
128860
- const fileInputRef = reactExports.useRef(null);
128861
129138
  const textareaRef = reactExports.useRef(null);
128862
129139
  const isCancelledRef = reactExports.useRef(false);
128863
129140
  const containerRef = reactExports.useRef(null);
@@ -128911,10 +129188,22 @@ const InlineEdit = ({
128911
129188
  );
128912
129189
  const shortcutText = reactExports.useMemo(() => {
128913
129190
  if (platform === "darwin") {
128914
- return "Cmd+Shift+S";
129191
+ return "⌘+Shift+S";
128915
129192
  }
128916
129193
  return "Ctrl+Shift+S";
128917
129194
  }, [platform]);
129195
+ const acceptAllTooltipText = reactExports.useMemo(() => {
129196
+ if (platform === "darwin") {
129197
+ return "Apply All (⌘+Enter)";
129198
+ }
129199
+ return "Apply All (Ctrl+Enter)";
129200
+ }, [platform]);
129201
+ const acceptAllShortcut = reactExports.useMemo(() => {
129202
+ if (platform === "darwin") {
129203
+ return "⌘+Enter";
129204
+ }
129205
+ return "Ctrl+Enter";
129206
+ }, [platform]);
128918
129207
  const handleStartRecording = reactExports.useCallback(async () => {
128919
129208
  if (!canEnableRecordingFeature) return;
128920
129209
  if (navigator?.mediaDevices?.getUserMedia) {
@@ -129053,22 +129342,18 @@ const InlineEdit = ({
129053
129342
  !isLoading && !isRecording && !isTranscribing && canEnableRecordingFeature
129054
129343
  )
129055
129344
  );
129056
- const triggerFileInput = () => {
129057
- fileInputRef.current?.click();
129058
- };
129059
- const handleFileSelect = (e3) => {
129060
- if (e3.target.files && e3.target.files.length > 0) {
129061
- const newAttachments = Array.from(e3.target.files).map((file) => {
129062
- const filePath2 = file.name;
129063
- if (filePath2) {
129064
- return normalizePath(filePath2);
129065
- }
129066
- return URL.createObjectURL(file);
129067
- });
129068
- setAttachments((prev2) => [...prev2, ...newAttachments]);
129069
- if (fileInputRef.current) {
129070
- fileInputRef.current.value = "";
129345
+ const handleAttachFile = async () => {
129346
+ const result = await window.electron.ipcRenderer.invoke(
129347
+ "show-open-dialog",
129348
+ {
129349
+ properties: ["openFile", "multiSelections"]
129071
129350
  }
129351
+ );
129352
+ if (!result.canceled && result.filePaths.length > 0) {
129353
+ const newAttachments = result.filePaths.map(
129354
+ (path2) => normalizePath(path2)
129355
+ );
129356
+ setAttachments((prev2) => [...prev2, ...newAttachments]);
129072
129357
  }
129073
129358
  };
129074
129359
  const handleRemoveAttachment = (index2) => {
@@ -129161,27 +129446,95 @@ const InlineEdit = ({
129161
129446
  children: [
129162
129447
  /* @__PURE__ */ jsxRuntimeExports.jsx(CloseButton$1, { onClick: handleXClick, disabled: isLoading, children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$2, { size: 18 }) }),
129163
129448
  reviewState ? /* @__PURE__ */ jsxRuntimeExports.jsxs(ReviewHeader, { children: [
129164
- /* @__PURE__ */ jsxRuntimeExports.jsx(ReviewPrompt, { children: prompt || `Reviewing ${reviewState.diffs.length} changes` }),
129165
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Reject All (Esc)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129166
- ReviewButton,
129167
- {
129168
- onClick: onRejectAll,
129169
- color: "error",
129170
- size: "small",
129171
- startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(ThumbsDown, { size: 12 }),
129172
- children: "Reject"
129173
- }
129174
- ) }),
129175
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Apply All (Cmd+Enter)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129176
- ReviewButton,
129449
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ReviewPrompt, { children: prompt || `Reviewing Changes (${reviewState.currentIndex + 1}/${reviewState.diffs.length})` }),
129450
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
129451
+ Box,
129177
129452
  {
129178
- onClick: onApplyAll,
129179
- color: "success",
129180
- size: "small",
129181
- startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(ThumbsUp, { size: 12 }),
129182
- children: "Accept"
129453
+ sx: {
129454
+ width: "100%",
129455
+ display: "flex",
129456
+ alignItems: "center",
129457
+ gap: 1,
129458
+ justifyContent: "flex-end"
129459
+ },
129460
+ children: [
129461
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Previous", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129462
+ IconButton,
129463
+ {
129464
+ onClick: () => onNavigateDiff("prev"),
129465
+ size: "small",
129466
+ disabled: reviewState.currentIndex === 0,
129467
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronLeft, { size: 14 })
129468
+ }
129469
+ ) }) }),
129470
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Next", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129471
+ IconButton,
129472
+ {
129473
+ onClick: () => onNavigateDiff("next"),
129474
+ size: "small",
129475
+ disabled: reviewState.currentIndex >= reviewState.diffs.length - 1,
129476
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { size: 14 })
129477
+ }
129478
+ ) }) }),
129479
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
129480
+ Box,
129481
+ {
129482
+ sx: {
129483
+ borderLeft: 1,
129484
+ borderColor: "divider",
129485
+ height: 18,
129486
+ mx: 0.5
129487
+ }
129488
+ }
129489
+ ),
129490
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Reject this change", children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { onClick: onRejectDiff, color: "error", size: "small", children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$2, { size: 14 }) }) }),
129491
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Accept this change", children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { onClick: onAcceptDiff, color: "success", size: "small", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { size: 14 }) }) }),
129492
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
129493
+ Box,
129494
+ {
129495
+ sx: {
129496
+ borderLeft: 1,
129497
+ borderColor: "divider",
129498
+ height: 18,
129499
+ mx: 0.5
129500
+ }
129501
+ }
129502
+ ),
129503
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Reject All (Esc)", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129504
+ Button,
129505
+ {
129506
+ onClick: onRejectAll,
129507
+ color: "error",
129508
+ size: "small",
129509
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(KeyboardShortcut, { shortcut: "Esc" }),
129510
+ sx: {
129511
+ textTransform: "none",
129512
+ fontSize: "0.8rem",
129513
+ padding: "2px 4px",
129514
+ whiteSpace: "nowrap"
129515
+ },
129516
+ children: "Reject All"
129517
+ }
129518
+ ) }),
129519
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: acceptAllTooltipText, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129520
+ Button,
129521
+ {
129522
+ onClick: onApplyAll,
129523
+ color: "success",
129524
+ size: "small",
129525
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(KeyboardShortcut, { shortcut: acceptAllShortcut }),
129526
+ sx: {
129527
+ textTransform: "none",
129528
+ fontSize: "0.8rem",
129529
+ padding: "2px 4px",
129530
+ whiteSpace: "nowrap"
129531
+ },
129532
+ children: "Accept All"
129533
+ }
129534
+ ) })
129535
+ ]
129183
129536
  }
129184
- ) })
129537
+ )
129185
129538
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
129186
129539
  attachments.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
129187
129540
  AttachmentsPreview,
@@ -129217,27 +129570,14 @@ const InlineEdit = ({
129217
129570
  }
129218
129571
  ),
129219
129572
  /* @__PURE__ */ jsxRuntimeExports.jsxs(ButtonsRow$1, { children: [
129220
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
129221
- /* @__PURE__ */ jsxRuntimeExports.jsx(
129222
- "input",
129223
- {
129224
- type: "file",
129225
- ref: fileInputRef,
129226
- onChange: handleFileSelect,
129227
- style: { display: "none" },
129228
- disabled: isLoading || isRecording || isTranscribing,
129229
- multiple: true
129230
- }
129231
- ),
129232
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Add attachments", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129233
- AttachmentButton$1,
129234
- {
129235
- onClick: triggerFileInput,
129236
- disabled: isLoading || isRecording || isTranscribing || !!reviewState,
129237
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Paperclip, { size: iconSize })
129238
- }
129239
- ) })
129240
- ] }),
129573
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { display: "flex", alignItems: "center", gap: 1, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Add attachments", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
129574
+ AttachmentButton$1,
129575
+ {
129576
+ onClick: handleAttachFile,
129577
+ disabled: isLoading || isRecording || isTranscribing || !!reviewState,
129578
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Paperclip, { size: iconSize })
129579
+ }
129580
+ ) }) }),
129241
129581
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
129242
129582
  !isRecording && !isTranscribing && !isLoading && /* @__PURE__ */ jsxRuntimeExports.jsx(
129243
129583
  Tooltip$1,
@@ -129325,7 +129665,7 @@ const CodeEditorContainer = styled$1(Box)(({ theme: theme2 }) => ({
129325
129665
  overflow: "auto",
129326
129666
  height: "100%",
129327
129667
  fontSize: theme2.typography.pxToRem(13),
129328
- fontFamily: "'Geist Mono', monospace"
129668
+ fontFamily: "'Geist Mono', 'Roboto Mono', monospace"
129329
129669
  }));
129330
129670
  const CodeEditorComponent = ({
129331
129671
  document: document2,
@@ -129345,6 +129685,7 @@ const CodeEditorComponent = ({
129345
129685
  const [languageExtensions, setLanguageExtensions] = reactExports.useState([]);
129346
129686
  const debouncedContent = useDebouncedValue(content2, 1e3);
129347
129687
  const [inlineEdit, setInlineEdit] = reactExports.useState(null);
129688
+ const [reviewState, setReviewState] = reactExports.useState(null);
129348
129689
  const editorRef = reactExports.useRef(null);
129349
129690
  const [editorContainer, setEditorContainer] = reactExports.useState(
129350
129691
  null
@@ -129353,6 +129694,10 @@ const CodeEditorComponent = ({
129353
129694
  const theme2 = useTheme$2();
129354
129695
  const searchTheme = reactExports.useMemo(() => getSearchTheme(theme2), [theme2]);
129355
129696
  const codeEditorTheme = reactExports.useMemo(() => getCodeMirrorTheme(theme2), [theme2]);
129697
+ const diffExtension = reactExports.useMemo(
129698
+ () => diffHighlight(theme2, reviewState),
129699
+ [theme2, reviewState]
129700
+ );
129356
129701
  reactExports.useEffect(() => {
129357
129702
  if (editorRef.current) {
129358
129703
  setEditorContainer(editorRef.current.container);
@@ -129417,7 +129762,7 @@ const CodeEditorComponent = ({
129417
129762
  this.decorations = Decoration.none;
129418
129763
  }
129419
129764
  update() {
129420
- if (!inlineEdit) {
129765
+ if (!inlineEdit || reviewState) {
129421
129766
  this.decorations = Decoration.none;
129422
129767
  return;
129423
129768
  }
@@ -129432,7 +129777,7 @@ const CodeEditorComponent = ({
129432
129777
  }
129433
129778
  }
129434
129779
  );
129435
- }, [inlineEdit, theme2.palette.primary.main]);
129780
+ }, [inlineEdit, theme2.palette.primary.main, reviewState]);
129436
129781
  const handleKeyDown = (event) => {
129437
129782
  if ((event.metaKey || event.ctrlKey) && event.key === "k") {
129438
129783
  event.preventDefault();
@@ -129467,19 +129812,50 @@ const CodeEditorComponent = ({
129467
129812
  }
129468
129813
  }
129469
129814
  };
129470
- const handleApplyChanges = reactExports.useCallback((editDiffs) => {
129471
- const view = editorRef.current?.view;
129472
- if (view) {
129473
- const newContent = editDiffs.reduce(
129474
- (currentDoc, diff2) => currentDoc.replace(diff2.find, diff2.replace),
129475
- view.state.doc.toString()
129476
- );
129477
- view.dispatch({
129478
- changes: { from: 0, to: view.state.doc.length, insert: newContent }
129815
+ const handleApplyChanges = reactExports.useCallback(
129816
+ (diffs) => {
129817
+ const view = editorRef.current?.view;
129818
+ if (!view) return;
129819
+ setReviewState({
129820
+ diffs,
129821
+ currentIndex: 0,
129822
+ approvedDiffs: [],
129823
+ originalContent: content2
129479
129824
  });
129825
+ setTimeout(() => {
129826
+ if (editorRef.current?.view) {
129827
+ editorRef.current.view.dispatch({});
129828
+ }
129829
+ }, 0);
129830
+ },
129831
+ [content2]
129832
+ );
129833
+ const handleFinalizeChanges = (finalDiffs) => {
129834
+ const view = editorRef.current?.view;
129835
+ if (!view) return;
129836
+ let finalContent = reviewState?.originalContent ?? content2;
129837
+ for (const diff2 of finalDiffs) {
129838
+ finalContent = finalContent.replace(diff2.find, diff2.replace);
129480
129839
  }
129840
+ view.dispatch({
129841
+ changes: { from: 0, to: view.state.doc.length, insert: finalContent }
129842
+ });
129843
+ setContent(finalContent);
129844
+ setHasUserChanges(true);
129845
+ setReviewState(null);
129481
129846
  setInlineEdit(null);
129482
- }, []);
129847
+ if (document2.path && finalContent !== originalContentRef.current) {
129848
+ window.api.saveFile(document2.path, finalContent);
129849
+ originalContentRef.current = finalContent;
129850
+ setHasUserChanges(false);
129851
+ if (conversationId && canvasState) {
129852
+ const updatedFiles = canvasState.files.map(
129853
+ (file) => file.id === document2.id ? { ...file, content: finalContent } : file
129854
+ );
129855
+ setFiles(conversationId, updatedFiles);
129856
+ }
129857
+ }
129858
+ };
129483
129859
  const handleEdit = reactExports.useCallback(
129484
129860
  (selection2, rect2, range3, close2) => {
129485
129861
  const container = scrollContainerRef.current;
@@ -129511,11 +129887,12 @@ const CodeEditorComponent = ({
129511
129887
  value: content2,
129512
129888
  height: "100%",
129513
129889
  theme: "none",
129514
- editable: editable2,
129890
+ editable: editable2 && !reviewState,
129515
129891
  extensions: [
129516
129892
  codeEditorTheme,
129517
129893
  ...languageExtensions,
129518
129894
  highlightPlugin,
129895
+ diffExtension,
129519
129896
  search$1({ top: true }),
129520
129897
  searchTheme,
129521
129898
  keymap.of(searchKeymap)
@@ -129545,13 +129922,72 @@ const CodeEditorComponent = ({
129545
129922
  selection: inlineEdit.selection,
129546
129923
  position: inlineEdit.position,
129547
129924
  filePath: document2.path,
129548
- onClose: () => setInlineEdit(null),
129925
+ onClose: () => {
129926
+ setInlineEdit(null);
129927
+ if (reviewState) {
129928
+ handleFinalizeChanges(reviewState.approvedDiffs);
129929
+ }
129930
+ },
129549
129931
  onApplyChanges: handleApplyChanges,
129550
129932
  agentId,
129551
- reviewState: null,
129933
+ reviewState,
129552
129934
  onApplyAll: () => {
129935
+ if (!reviewState) return;
129936
+ handleFinalizeChanges(reviewState.diffs);
129553
129937
  },
129554
129938
  onRejectAll: () => {
129939
+ if (!reviewState) return;
129940
+ handleFinalizeChanges([]);
129941
+ },
129942
+ onAcceptDiff: () => {
129943
+ if (!reviewState) return;
129944
+ const currentDiff = reviewState.diffs[reviewState.currentIndex];
129945
+ const newApprovedDiffs = [
129946
+ ...reviewState.approvedDiffs,
129947
+ currentDiff
129948
+ ];
129949
+ if (reviewState.currentIndex >= reviewState.diffs.length - 1) {
129950
+ handleFinalizeChanges(newApprovedDiffs);
129951
+ } else {
129952
+ setReviewState({
129953
+ ...reviewState,
129954
+ approvedDiffs: newApprovedDiffs,
129955
+ currentIndex: reviewState.currentIndex + 1
129956
+ });
129957
+ setTimeout(() => {
129958
+ if (editorRef.current?.view) {
129959
+ editorRef.current.view.dispatch({});
129960
+ }
129961
+ }, 0);
129962
+ }
129963
+ },
129964
+ onRejectDiff: () => {
129965
+ if (!reviewState) return;
129966
+ if (reviewState.currentIndex >= reviewState.diffs.length - 1) {
129967
+ handleFinalizeChanges(reviewState.approvedDiffs);
129968
+ } else {
129969
+ setReviewState({
129970
+ ...reviewState,
129971
+ currentIndex: reviewState.currentIndex + 1
129972
+ });
129973
+ setTimeout(() => {
129974
+ if (editorRef.current?.view) {
129975
+ editorRef.current.view.dispatch({});
129976
+ }
129977
+ }, 0);
129978
+ }
129979
+ },
129980
+ onNavigateDiff: (direction) => {
129981
+ if (!reviewState) return;
129982
+ const newIndex = direction === "next" ? reviewState.currentIndex + 1 : reviewState.currentIndex - 1;
129983
+ if (newIndex >= 0 && newIndex < reviewState.diffs.length) {
129984
+ setReviewState({ ...reviewState, currentIndex: newIndex });
129985
+ setTimeout(() => {
129986
+ if (editorRef.current?.view) {
129987
+ editorRef.current.view.dispatch({});
129988
+ }
129989
+ }, 0);
129990
+ }
129555
129991
  }
129556
129992
  }
129557
129993
  )
@@ -226915,8 +227351,15 @@ function remarkStringify(options) {
226915
227351
  });
226916
227352
  }
226917
227353
  }
227354
+ const rehypeRemoveDisabled = () => (tree) => {
227355
+ visit$1(tree, "element", (node2) => {
227356
+ if (node2.tagName === "input" && node2.properties?.disabled) {
227357
+ node2.properties.disabled = void 0;
227358
+ }
227359
+ });
227360
+ };
226918
227361
  const markdownToHtml = (markdown2) => {
226919
- const file = unified().use(remarkParse).use(remarkGfm).use(remarkRehype).use(rehypeSourceMap).use(rehypeStringify).processSync(markdown2);
227362
+ const file = unified().use(remarkParse).use(remarkGfm).use(remarkRehype, { allowDangerousHtml: true }).use(rehypeRemoveDisabled).use(rehypeSourceMap).use(rehypeStringify).processSync(markdown2);
226920
227363
  return String(file);
226921
227364
  };
226922
227365
  const htmlToMarkdown = (html2) => {
@@ -227170,7 +227613,7 @@ const InsertImageDialog = ({
227170
227613
  onInsert
227171
227614
  }) => {
227172
227615
  const theme2 = useTheme$2();
227173
- const [url, setUrl] = reactExports.useState("");
227616
+ const [path2, setPath] = reactExports.useState("");
227174
227617
  const handleFile = reactExports.useCallback(
227175
227618
  (file) => {
227176
227619
  const reader = new FileReader();
@@ -227205,18 +227648,18 @@ const InsertImageDialog = ({
227205
227648
  handleFile(file);
227206
227649
  }
227207
227650
  };
227208
- const handleInsertFromUrl = () => {
227209
- if (url) {
227210
- onInsert(url);
227651
+ const handleInsertFromPath = () => {
227652
+ if (path2) {
227653
+ onInsert(path2);
227211
227654
  onClose();
227212
- setUrl("");
227655
+ setPath("");
227213
227656
  }
227214
227657
  };
227215
227658
  const handleKeyDown = (e3) => {
227216
227659
  if (e3.key === "Enter") {
227217
227660
  e3.preventDefault();
227218
- if (url.trim()) {
227219
- handleInsertFromUrl();
227661
+ if (path2.trim()) {
227662
+ handleInsertFromPath();
227220
227663
  }
227221
227664
  }
227222
227665
  };
@@ -227252,7 +227695,7 @@ const InsertImageDialog = ({
227252
227695
  fullWidth: true,
227253
227696
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { pt: 2 }, children: [
227254
227697
  /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldContainer$1, { children: [
227255
- /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel$7, { children: "Image URL" }),
227698
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel$7, { children: "Image Path on Device" }),
227256
227699
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { display: "flex", gap: 1, alignItems: "center" }, children: [
227257
227700
  /* @__PURE__ */ jsxRuntimeExports.jsx(
227258
227701
  StyledTextField$4,
@@ -227260,24 +227703,24 @@ const InsertImageDialog = ({
227260
227703
  autoFocus: true,
227261
227704
  fullWidth: true,
227262
227705
  variant: "outlined",
227263
- type: "url",
227264
- placeholder: "https://example.com/image.jpg",
227265
- value: url,
227266
- onChange: (e3) => setUrl(e3.target.value),
227706
+ type: "text",
227707
+ placeholder: "/Users/eren/Documents/image.png",
227708
+ value: path2,
227709
+ onChange: (e3) => setPath(e3.target.value),
227267
227710
  onKeyDown: handleKeyDown,
227268
227711
  InputProps: {
227269
- startAdornment: /* @__PURE__ */ jsxRuntimeExports.jsx(InputAdornment, { position: "start", sx: { paddingLeft: 1 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { size: 16 }) })
227712
+ startAdornment: /* @__PURE__ */ jsxRuntimeExports.jsx(InputAdornment, { position: "start", sx: { paddingLeft: 1 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(File$1, { size: 16 }) })
227270
227713
  }
227271
227714
  }
227272
227715
  ),
227273
227716
  /* @__PURE__ */ jsxRuntimeExports.jsx(
227274
227717
  Button,
227275
227718
  {
227276
- onClick: handleInsertFromUrl,
227719
+ onClick: handleInsertFromPath,
227277
227720
  variant: "contained",
227278
227721
  color: "primary",
227279
227722
  size: "small",
227280
- disabled: !url.trim(),
227723
+ disabled: !path2.trim(),
227281
227724
  sx: {
227282
227725
  textTransform: "none",
227283
227726
  fontSize: "0.8125rem",
@@ -227790,7 +228233,8 @@ const EditorContainer = styled$1(Paper)(({ theme: theme2 }) => ({
227790
228233
  width: "100%",
227791
228234
  overflow: "hidden",
227792
228235
  backgroundColor: theme2.palette.background.paper,
227793
- border: `1px solid ${theme2.palette.divider}`
228236
+ borderRadius: "0px",
228237
+ border: "none"
227794
228238
  }));
227795
228239
  const EditorToolbar = styled$1(Toolbar)(({ theme: theme2 }) => ({
227796
228240
  minHeight: "48px !important",
@@ -227852,8 +228296,17 @@ const EditorContent = styled$1(Box)(({ theme: theme2 }) => ({
227852
228296
  paddingLeft: "24px",
227853
228297
  margin: "8px 0"
227854
228298
  },
228299
+ "& ul li": {
228300
+ listStyleType: "disc"
228301
+ },
228302
+ "& ol li": {
228303
+ listStyleType: "decimal"
228304
+ },
227855
228305
  "& li": {
227856
- margin: "4px 0"
228306
+ margin: "4px 0",
228307
+ "&.task-list-item": {
228308
+ listStyleType: "none"
228309
+ }
227857
228310
  },
227858
228311
  "& blockquote": {
227859
228312
  borderLeft: `4px solid ${theme2.palette.primary.main}`,
@@ -228324,6 +228777,41 @@ const WysiwygMarkdownEditorComponent = ({
228324
228777
  window.document.removeEventListener("selectionchange", handleSelection);
228325
228778
  };
228326
228779
  }, [debouncedSelectionChange]);
228780
+ const toggleList = reactExports.useCallback(
228781
+ (type2) => {
228782
+ if (!editorRef.current) return;
228783
+ if (type2 === "ordered") {
228784
+ window.document.execCommand("insertOrderedList", false);
228785
+ } else {
228786
+ window.document.execCommand("insertUnorderedList", false);
228787
+ }
228788
+ if (type2 === "task") {
228789
+ const selection2 = window.getSelection();
228790
+ if (!selection2?.rangeCount) return;
228791
+ const range3 = selection2.getRangeAt(0);
228792
+ const listElement = range3.startContainer.closest(
228793
+ "ul, ol"
228794
+ );
228795
+ if (listElement) {
228796
+ if (listElement.tagName === "OL") {
228797
+ window.document.execCommand("insertUnorderedList", false);
228798
+ }
228799
+ const listItems = listElement.querySelectorAll("li");
228800
+ for (const li2 of listItems) {
228801
+ if (!li2.querySelector('input[type="checkbox"]')) {
228802
+ li2.classList.add("task-list-item");
228803
+ const checkbox = window.document.createElement("input");
228804
+ checkbox.type = "checkbox";
228805
+ li2.prepend(checkbox, " ");
228806
+ }
228807
+ }
228808
+ }
228809
+ }
228810
+ handleContentChange();
228811
+ editorRef.current.focus();
228812
+ },
228813
+ [handleContentChange]
228814
+ );
228327
228815
  const executeCommand = reactExports.useCallback(
228328
228816
  (command2, value) => {
228329
228817
  window.document.execCommand(command2, false, value);
@@ -228437,15 +228925,27 @@ const WysiwygMarkdownEditorComponent = ({
228437
228925
  [executeCommand, handleContentChange]
228438
228926
  );
228439
228927
  const insertImage = reactExports.useCallback(() => {
228928
+ const selection2 = window.getSelection();
228929
+ if (selection2?.rangeCount) {
228930
+ selectionRef.current = selection2.getRangeAt(0).cloneRange();
228931
+ }
228440
228932
  setIsImageDialogOpen(true);
228441
228933
  }, []);
228442
228934
  const handleInsertImage = reactExports.useCallback(
228443
228935
  (url) => {
228936
+ editorRef.current?.focus();
228937
+ const selection2 = window.getSelection();
228938
+ if (!selection2) return;
228939
+ if (selectionRef.current) {
228940
+ selection2.removeAllRanges();
228941
+ selection2.addRange(selectionRef.current);
228942
+ }
228444
228943
  if (url) {
228445
228944
  executeCommand("insertImage", url);
228446
228945
  }
228946
+ handleContentChange();
228447
228947
  },
228448
- [executeCommand]
228948
+ [executeCommand, handleContentChange]
228449
228949
  );
228450
228950
  const insertTable = reactExports.useCallback((event) => {
228451
228951
  const selection2 = window.getSelection();
@@ -228511,6 +229011,20 @@ const WysiwygMarkdownEditorComponent = ({
228511
229011
  window.open(linkElement.href, "_blank", "noopener,noreferrer");
228512
229012
  }
228513
229013
  }, []);
229014
+ const handleClick = reactExports.useCallback(
229015
+ (event) => {
229016
+ const target = event.target;
229017
+ if (target.tagName === "INPUT" && target.type === "checkbox") {
229018
+ if (target.checked) {
229019
+ target.setAttribute("checked", "");
229020
+ } else {
229021
+ target.removeAttribute("checked");
229022
+ }
229023
+ handleContentChange();
229024
+ }
229025
+ },
229026
+ [handleContentChange]
229027
+ );
228514
229028
  const handleKeyDown = reactExports.useCallback(
228515
229029
  (event) => {
228516
229030
  if (event.key === "Tab") {
@@ -228635,27 +229149,49 @@ const WysiwygMarkdownEditorComponent = ({
228635
229149
  }
228636
229150
  if (event.key === "Enter") {
228637
229151
  const selection2 = window.getSelection();
228638
- if (selection2?.rangeCount) {
228639
- const range3 = selection2.getRangeAt(0);
228640
- let element2 = range3.startContainer;
228641
- if (element2.nodeType === Node.TEXT_NODE && element2.parentElement) {
228642
- element2 = element2.parentElement;
229152
+ if (!selection2?.rangeCount) return;
229153
+ const range3 = selection2.getRangeAt(0);
229154
+ const container = range3.startContainer;
229155
+ const startElement = container.nodeType === Node.TEXT_NODE ? container.parentElement : container;
229156
+ const listItem2 = startElement?.closest("li");
229157
+ if (listItem2) {
229158
+ if (listItem2.textContent?.trim() === "") {
229159
+ event.preventDefault();
229160
+ executeCommand("outdent");
229161
+ executeCommand("formatBlock", "p");
229162
+ return;
228643
229163
  }
228644
- while (element2 && element2 !== editorRef.current && element2 instanceof Element) {
228645
- if (element2.tagName === "LI") {
228646
- if (element2.textContent?.trim() === "") {
228647
- event.preventDefault();
228648
- executeCommand("outdent");
228649
- executeCommand("formatBlock", "p");
229164
+ if (listItem2.classList.contains("task-list-item")) {
229165
+ setTimeout(() => {
229166
+ const newSelection = window.getSelection();
229167
+ if (!newSelection?.rangeCount) return;
229168
+ const newRange = newSelection.getRangeAt(0);
229169
+ const newStartContainer = newRange.startContainer;
229170
+ const newStartElement = newStartContainer.nodeType === Node.TEXT_NODE ? newStartContainer.parentElement : newStartContainer;
229171
+ const newListItem = newStartElement?.closest("li");
229172
+ if (newListItem && !newListItem.querySelector('input[type="checkbox"]')) {
229173
+ newListItem.classList.add("task-list-item");
229174
+ const checkbox = window.document.createElement("input");
229175
+ checkbox.type = "checkbox";
229176
+ newListItem.prepend(checkbox, " ");
229177
+ newRange.setStart(newListItem, 1);
229178
+ newRange.collapse(true);
229179
+ newSelection.removeAllRanges();
229180
+ newSelection.addRange(newRange);
229181
+ handleContentChange();
228650
229182
  }
228651
- break;
228652
- }
228653
- element2 = element2.parentElement;
229183
+ }, 0);
228654
229184
  }
228655
229185
  }
228656
229186
  }
228657
229187
  },
228658
- [handleFormatToggle, executeCommand, content2, handleManualSave]
229188
+ [
229189
+ handleFormatToggle,
229190
+ executeCommand,
229191
+ content2,
229192
+ handleManualSave,
229193
+ handleContentChange
229194
+ ]
228659
229195
  );
228660
229196
  const handleFinalizeChanges = (finalDiffs) => {
228661
229197
  if (!editorRef.current) return;
@@ -228878,8 +229414,9 @@ const WysiwygMarkdownEditorComponent = ({
228878
229414
  }
228879
229415
  ),
228880
229416
  /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarDivider, { orientation: "vertical" }),
228881
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Bullet List", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => executeCommand("insertUnorderedList"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(List, { size: 14 }) }) }),
228882
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Numbered List", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => executeCommand("insertOrderedList"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(ListOrdered, { size: 14 }) }) }),
229417
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Bullet List", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => toggleList("unordered"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(List, { size: 14 }) }) }),
229418
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Numbered List", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => toggleList("ordered"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(ListOrdered, { size: 14 }) }) }),
229419
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Checkbox List", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => toggleList("task"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(SquareCheckBig, { size: 14 }) }) }),
228883
229420
  /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Indent", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => executeCommand("indent"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(IndentIncrease, { size: 14 }) }) }),
228884
229421
  /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Outdent", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => executeCommand("outdent"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(IndentDecrease, { size: 14 }) }) }),
228885
229422
  /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Quote", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { onClick: () => toggleBlockFormat("blockquote"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Quote$2, { size: 14 }) }) }),
@@ -228953,6 +229490,7 @@ const WysiwygMarkdownEditorComponent = ({
228953
229490
  contentEditable: !reviewState,
228954
229491
  onInput: handleContentChange,
228955
229492
  onKeyDown: handleKeyDown,
229493
+ onClick: handleClick,
228956
229494
  onDoubleClick: handleDoubleClick,
228957
229495
  suppressContentEditableWarning: true,
228958
229496
  onBlur: () => {
@@ -229012,6 +229550,41 @@ const WysiwygMarkdownEditorComponent = ({
229012
229550
  onRejectAll: () => {
229013
229551
  if (!reviewState) return;
229014
229552
  handleFinalizeChanges([]);
229553
+ },
229554
+ onAcceptDiff: () => {
229555
+ if (!reviewState) return;
229556
+ const currentDiff = reviewState.diffs[reviewState.currentIndex];
229557
+ const newApprovedDiffs = [
229558
+ ...reviewState.approvedDiffs,
229559
+ currentDiff
229560
+ ];
229561
+ if (reviewState.currentIndex >= reviewState.diffs.length - 1) {
229562
+ handleFinalizeChanges(newApprovedDiffs);
229563
+ } else {
229564
+ setReviewState({
229565
+ ...reviewState,
229566
+ approvedDiffs: newApprovedDiffs,
229567
+ currentIndex: reviewState.currentIndex + 1
229568
+ });
229569
+ }
229570
+ },
229571
+ onRejectDiff: () => {
229572
+ if (!reviewState) return;
229573
+ if (reviewState.currentIndex >= reviewState.diffs.length - 1) {
229574
+ handleFinalizeChanges(reviewState.approvedDiffs);
229575
+ } else {
229576
+ setReviewState({
229577
+ ...reviewState,
229578
+ currentIndex: reviewState.currentIndex + 1
229579
+ });
229580
+ }
229581
+ },
229582
+ onNavigateDiff: (direction) => {
229583
+ if (!reviewState) return;
229584
+ const newIndex = direction === "next" ? reviewState.currentIndex + 1 : reviewState.currentIndex - 1;
229585
+ if (newIndex >= 0 && newIndex < reviewState.diffs.length) {
229586
+ setReviewState({ ...reviewState, currentIndex: newIndex });
229587
+ }
229015
229588
  }
229016
229589
  }
229017
229590
  )
@@ -231460,7 +232033,7 @@ const CanvasComponent = ({
231460
232033
  };
231461
232034
  getPlatform();
231462
232035
  }, []);
231463
- const { addFileAndSelect, setViewMode } = useCanvasStore();
232036
+ const { addFileAndSelect, setViewMode, addMentionedFile } = useCanvasStore();
231464
232037
  const { removeManager } = useUndoManagerStore();
231465
232038
  const handleOpenFile = reactExports.useCallback(async () => {
231466
232039
  if (conversationId) {
@@ -231474,10 +232047,11 @@ const CanvasComponent = ({
231474
232047
  type: getFileTypeFromPath(result.path)
231475
232048
  };
231476
232049
  addFileAndSelect(conversationId, newFile);
232050
+ addMentionedFile(conversationId, newFile);
231477
232051
  setViewMode(conversationId, "documents");
231478
232052
  }
231479
232053
  }
231480
- }, [addFileAndSelect, conversationId, setViewMode]);
232054
+ }, [addFileAndSelect, addMentionedFile, conversationId, setViewMode]);
231481
232055
  reactExports.useEffect(() => {
231482
232056
  const handleKeyDown = (event) => {
231483
232057
  if ((event.metaKey || event.ctrlKey) && event.key === "o") {
@@ -231506,6 +232080,7 @@ const CanvasComponent = ({
231506
232080
  path: `${details.location}/${details.name}.${details.type}`
231507
232081
  };
231508
232082
  addFileAndSelect(conversationId, newFile);
232083
+ addMentionedFile(conversationId, newFile);
231509
232084
  }
231510
232085
  setCreateFileDialogOpen(false);
231511
232086
  } catch (_2) {
@@ -231807,6 +232382,8 @@ const ChatHeader = ({
231807
232382
  }) => {
231808
232383
  const setCanvasOpen = useUiPreferencesStore((s2) => s2.setCanvasOpen);
231809
232384
  const isCanvasOpen = useUiPreferencesStore((s2) => s2.isCanvasOpen);
232385
+ const isMac = navigator.platform.toUpperCase().indexOf("MAC") >= 0;
232386
+ const shortcut = isMac ? "⌘+Shift+C" : "Ctrl+Shift+C";
231810
232387
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
231811
232388
  Box,
231812
232389
  {
@@ -231865,7 +232442,7 @@ const ChatHeader = ({
231865
232442
  }
231866
232443
  )
231867
232444
  ] }),
231868
- onOpenOptions && !isCanvasOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Open Canvas", arrow: true, placement: "top", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
232445
+ onOpenOptions && !isCanvasOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: `Open Canvas (${shortcut})`, arrow: true, placement: "top", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
231869
232446
  OptionsButton,
231870
232447
  {
231871
232448
  onClick: () => setCanvasOpen(true),
@@ -232865,7 +233442,6 @@ const MessageInput = reactExports.forwardRef(
232865
233442
  const mediaRecorderRef = reactExports.useRef(null);
232866
233443
  const audioChunksRef = reactExports.useRef([]);
232867
233444
  const [platform, setPlatform] = reactExports.useState("");
232868
- const fileInputRef = reactExports.useRef(null);
232869
233445
  const { data: credentialsData, isLoading: isLoadingCredentials } = useCredentials();
232870
233446
  const isRadientApiKeyConfigured = reactExports.useMemo(
232871
233447
  () => credentialsData?.keys?.includes("RADIENT_API_KEY"),
@@ -233067,32 +233643,28 @@ ${message2}`;
233067
233643
  if (!newMessage.trim() && attachments.length === 0) return;
233068
233644
  submitMessage();
233069
233645
  };
233070
- const handleFileSelect = (e3) => {
233071
- if (e3.target.files && e3.target.files.length > 0) {
233072
- const newAttachments = Array.from(e3.target.files).map((file) => {
233073
- const filePath = file.name;
233074
- if (filePath) {
233075
- return normalizePath(filePath);
233076
- }
233077
- return URL.createObjectURL(file);
233078
- });
233079
- if (conversationId) {
233080
- for (const path2 of newAttachments) {
233081
- addAttachment(conversationId, { id: v4(), path: path2 });
233082
- }
233083
- }
233084
- if (fileInputRef.current) {
233085
- fileInputRef.current.value = "";
233086
- }
233087
- }
233088
- };
233089
233646
  const handleRemoveAttachment = (id27) => {
233090
233647
  if (conversationId) {
233091
233648
  removeAttachment(conversationId, id27);
233092
233649
  }
233093
233650
  };
233094
- const triggerFileInput = () => {
233095
- fileInputRef.current?.click();
233651
+ const handleAttachFile = async () => {
233652
+ const result = await window.electron.ipcRenderer.invoke(
233653
+ "show-open-dialog",
233654
+ {
233655
+ properties: ["openFile", "multiSelections"]
233656
+ }
233657
+ );
233658
+ if (!result.canceled && result.filePaths.length > 0) {
233659
+ if (conversationId) {
233660
+ for (const path2 of result.filePaths) {
233661
+ addAttachment(conversationId, {
233662
+ id: v4(),
233663
+ path: normalizePath(path2)
233664
+ });
233665
+ }
233666
+ }
233667
+ }
233096
233668
  };
233097
233669
  const handlePaste = (event) => {
233098
233670
  const items = event.clipboardData?.items;
@@ -233140,157 +233712,150 @@ ${message2}`;
233140
233712
  };
233141
233713
  const iconSize = isSmallView ? 16 : 18;
233142
233714
  const inputContent = /* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, style: { width: "100%" }, children: [
233143
- /* @__PURE__ */ jsxRuntimeExports.jsxs(InputInnerContainer, { isSmallView, children: [
233144
- replies.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ReplyPreview, { replies, onRemoveReply: handleRemoveReply }),
233145
- attachments.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
233146
- AttachmentsPreview,
233147
- {
233148
- attachments: attachments.map((a2) => a2.path),
233149
- onRemoveAttachment: (index2) => handleRemoveAttachment(attachments[index2].id),
233150
- disabled: isInputDisabled || isRecording || isTranscribing
233151
- }
233152
- ),
233153
- isRecording ? /* @__PURE__ */ jsxRuntimeExports.jsx(AudioRecordingIndicator, { isRecording }) : isTranscribing ? /* @__PURE__ */ jsxRuntimeExports.jsxs(TranscriptionIndicator, { children: [
233154
- /* @__PURE__ */ jsxRuntimeExports.jsx(TranscriptionText, { variant: "body2", children: "Processing audio" }),
233155
- /* @__PURE__ */ jsxRuntimeExports.jsx(WaveformAnimation, {})
233156
- ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
233157
- StyledTextField$2,
233158
- {
233159
- fullWidth: true,
233160
- placeholder: isInputDisabled ? "Agent is busy" : "Ask me for help",
233161
- isSmallView,
233162
- value: newMessage,
233163
- onChange: (e3) => setNewMessage(e3.target.value),
233164
- onKeyDown: handleKeyDown,
233165
- onPaste: handlePaste,
233166
- multiline: true,
233167
- maxRows: 4,
233168
- variant: "outlined",
233169
- inputRef: textareaRef,
233170
- disabled: isInputDisabled,
233171
- inputProps: {
233172
- "data-tour-tag": "chat-input-textarea"
233173
- }
233174
- }
233175
- ),
233176
- /* @__PURE__ */ jsxRuntimeExports.jsxs(ButtonsRow, { children: [
233177
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
233178
- /* @__PURE__ */ jsxRuntimeExports.jsx(
233179
- "input",
233715
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
233716
+ InputInnerContainer,
233717
+ {
233718
+ isSmallView,
233719
+ "data-tour-tag": "chat-input-textarea",
233720
+ children: [
233721
+ replies.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ReplyPreview, { replies, onRemoveReply: handleRemoveReply }),
233722
+ attachments.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
233723
+ AttachmentsPreview,
233180
233724
  {
233181
- type: "file",
233182
- ref: fileInputRef,
233183
- onChange: handleFileSelect,
233184
- style: { display: "none" },
233185
- disabled: isInputDisabled || isRecording || isTranscribing,
233186
- multiple: true
233725
+ attachments: attachments.map((a2) => a2.path),
233726
+ onRemoveAttachment: (index2) => handleRemoveAttachment(attachments[index2].id),
233727
+ disabled: isInputDisabled || isRecording || isTranscribing
233187
233728
  }
233188
233729
  ),
233189
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Attach file", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233190
- AttachmentButton,
233730
+ isRecording ? /* @__PURE__ */ jsxRuntimeExports.jsx(AudioRecordingIndicator, { isRecording }) : isTranscribing ? /* @__PURE__ */ jsxRuntimeExports.jsxs(TranscriptionIndicator, { children: [
233731
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TranscriptionText, { variant: "body2", children: "Processing audio" }),
233732
+ /* @__PURE__ */ jsxRuntimeExports.jsx(WaveformAnimation, {})
233733
+ ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
233734
+ StyledTextField$2,
233191
233735
  {
233192
- onClick: triggerFileInput,
233193
- color: "primary",
233194
- size: "small",
233195
- "aria-label": "Attach file",
233196
- "data-tour-tag": "chat-input-attach-file-button",
233197
- disabled: isInputDisabled || isRecording || isTranscribing,
233736
+ fullWidth: true,
233737
+ placeholder: isInputDisabled ? "Agent is busy" : "Ask me for help",
233198
233738
  isSmallView,
233199
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faPaperclip, fontSize: iconSize })
233200
- }
233201
- ) }) }),
233202
- conversationId && /* @__PURE__ */ jsxRuntimeExports.jsx(
233203
- DirectoryIndicator,
233204
- {
233205
- agentId: conversationId,
233206
- currentWorkingDirectory: agentData?.current_working_directory
233739
+ value: newMessage,
233740
+ onChange: (e3) => setNewMessage(e3.target.value),
233741
+ onKeyDown: handleKeyDown,
233742
+ onPaste: handlePaste,
233743
+ multiline: true,
233744
+ maxRows: 4,
233745
+ variant: "outlined",
233746
+ inputRef: textareaRef,
233747
+ disabled: isInputDisabled
233207
233748
  }
233208
- )
233209
- ] }),
233210
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
233211
- !isRecording && !isTranscribing && !(isLoading && currentJobId) && /* @__PURE__ */ jsxRuntimeExports.jsx(
233212
- Tooltip$1,
233213
- {
233214
- title: !canEnableRecordingFeature ? "Sign in to Radient in the settings page to enable audio recording" : `Start recording (${shortcutText} or hold Space)`,
233215
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233216
- IconButton,
233749
+ ),
233750
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ButtonsRow, { children: [
233751
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
233752
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Attach file", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233753
+ AttachmentButton,
233217
233754
  {
233218
- onClick: handleStartRecording,
233755
+ onClick: handleAttachFile,
233219
233756
  color: "primary",
233220
233757
  size: "small",
233221
- "aria-label": "Start recording",
233222
- disabled: isLoading || !canEnableRecordingFeature,
233223
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233224
- Mic,
233758
+ "aria-label": "Attach file",
233759
+ "data-tour-tag": "chat-input-attach-file-button",
233760
+ disabled: isInputDisabled || isRecording || isTranscribing,
233761
+ isSmallView,
233762
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faPaperclip, fontSize: iconSize })
233763
+ }
233764
+ ) }) }),
233765
+ conversationId && /* @__PURE__ */ jsxRuntimeExports.jsx(
233766
+ DirectoryIndicator,
233767
+ {
233768
+ agentId: conversationId,
233769
+ currentWorkingDirectory: agentData?.current_working_directory
233770
+ }
233771
+ )
233772
+ ] }),
233773
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", gap: 1, children: [
233774
+ !isRecording && !isTranscribing && !(isLoading && currentJobId) && /* @__PURE__ */ jsxRuntimeExports.jsx(
233775
+ Tooltip$1,
233776
+ {
233777
+ title: !canEnableRecordingFeature ? "Sign in to Radient in the settings page to enable audio recording" : `Start recording (${shortcutText} or hold Space)`,
233778
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233779
+ IconButton,
233225
233780
  {
233226
- size: iconSize * 1.1,
233227
- style: {
233228
- width: iconSize * 1.4,
233229
- height: iconSize * 1.4,
233230
- padding: "2px"
233231
- }
233781
+ onClick: handleStartRecording,
233782
+ color: "primary",
233783
+ size: "small",
233784
+ "aria-label": "Start recording",
233785
+ disabled: isLoading || !canEnableRecordingFeature,
233786
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233787
+ Mic,
233788
+ {
233789
+ size: iconSize * 1.1,
233790
+ style: {
233791
+ width: iconSize * 1.4,
233792
+ height: iconSize * 1.4,
233793
+ padding: "2px"
233794
+ }
233795
+ }
233796
+ )
233232
233797
  }
233233
- )
233798
+ ) })
233234
233799
  }
233235
- ) })
233236
- }
233237
- ),
233238
- isRecording && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
233239
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Confirm recording (Enter)", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233240
- IconButton,
233241
- {
233242
- onClick: handleConfirmRecording,
233243
- color: "success",
233244
- size: "small",
233245
- "aria-label": "Confirm recording",
233246
- disabled: isLoading,
233247
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { size: iconSize })
233248
- }
233249
- ) }) }),
233250
- /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Cancel recording (Esc)", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233251
- IconButton,
233252
- {
233253
- onClick: handleCancelRecording,
233254
- color: "error",
233255
- size: "small",
233256
- "aria-label": "Cancel recording",
233257
- disabled: isLoading,
233258
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$2, { size: iconSize })
233259
- }
233260
- ) }) })
233261
- ] }),
233262
- isLoading && currentJobId ? /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Stop agent", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233263
- SendButton,
233264
- {
233265
- type: "button",
233266
- variant: "contained",
233267
- color: "error",
233268
- onClick: () => onCancelJob?.(currentJobId),
233269
- "aria-label": "Stop agent",
233270
- isSmallView,
233271
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Square, { size: iconSize })
233272
- }
233273
- ) }) }) : !isRecording && !isTranscribing && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Send message", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233274
- SendButton,
233275
- {
233276
- type: "submit",
233277
- variant: "contained",
233278
- color: "primary",
233279
- disabled: isLoading || !newMessage.trim() && attachments.length === 0,
233280
- "aria-label": "Send message",
233281
- isSmallView,
233282
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233283
- FontAwesomeIcon,
233800
+ ),
233801
+ isRecording && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
233802
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Confirm recording (Enter)", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233803
+ IconButton,
233804
+ {
233805
+ onClick: handleConfirmRecording,
233806
+ color: "success",
233807
+ size: "small",
233808
+ "aria-label": "Confirm recording",
233809
+ disabled: isLoading,
233810
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { size: iconSize })
233811
+ }
233812
+ ) }) }),
233813
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Cancel recording (Esc)", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233814
+ IconButton,
233815
+ {
233816
+ onClick: handleCancelRecording,
233817
+ color: "error",
233818
+ size: "small",
233819
+ "aria-label": "Cancel recording",
233820
+ disabled: isLoading,
233821
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$2, { size: iconSize })
233822
+ }
233823
+ ) }) })
233824
+ ] }),
233825
+ isLoading && currentJobId ? /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Stop agent", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233826
+ SendButton,
233284
233827
  {
233285
- icon: faPaperPlane,
233286
- fontSize: iconSize * 0.8
233828
+ type: "button",
233829
+ variant: "contained",
233830
+ color: "error",
233831
+ onClick: () => onCancelJob?.(currentJobId),
233832
+ "aria-label": "Stop agent",
233833
+ isSmallView,
233834
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Square, { size: iconSize })
233287
233835
  }
233288
- )
233289
- }
233290
- ) }) })
233291
- ] })
233292
- ] })
233293
- ] }),
233836
+ ) }) }) : !isRecording && !isTranscribing && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { title: "Send message", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233837
+ SendButton,
233838
+ {
233839
+ type: "submit",
233840
+ variant: "contained",
233841
+ color: "primary",
233842
+ disabled: isLoading || !newMessage.trim() && attachments.length === 0,
233843
+ "aria-label": "Send message",
233844
+ isSmallView,
233845
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233846
+ FontAwesomeIcon,
233847
+ {
233848
+ icon: faPaperPlane,
233849
+ fontSize: iconSize * 0.8
233850
+ }
233851
+ )
233852
+ }
233853
+ ) }) })
233854
+ ] })
233855
+ ] })
233856
+ ]
233857
+ }
233858
+ ),
233294
233859
  messages.length === 0 && !isSmallView && /* @__PURE__ */ jsxRuntimeExports.jsx(SuggestionsContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
233295
233860
  Box,
233296
233861
  {
@@ -273296,7 +273861,7 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
273296
273861
  registerLayoutLoaders([
273297
273862
  {
273298
273863
  name: "dagre",
273299
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-OKDRZEBW-CxXbaLZN.js"), true ? __vite__mapDeps([6,7,8,9,10,11,1,2]) : void 0, import.meta.url), "loader")
273864
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-OKDRZEBW-DZOFGtWs.js"), true ? __vite__mapDeps([6,7,8,9,10,11,1,2]) : void 0, import.meta.url), "loader")
273300
273865
  }
273301
273866
  ]);
273302
273867
  }, "registerDefaultLayoutLoaders");
@@ -273886,7 +274451,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
273886
274451
  }, "detector");
273887
274452
  var loader = /* @__PURE__ */ __name(async () => {
273888
274453
  const { diagram: diagram2 } = await __vitePreload(async () => {
273889
- const { diagram: diagram22 } = await import("./c4Diagram-VJAJSXHY-Ct0E3jiX.js");
274454
+ const { diagram: diagram22 } = await import("./c4Diagram-VJAJSXHY-B8ZTZ0n8.js");
273890
274455
  return { diagram: diagram22 };
273891
274456
  }, true ? __vite__mapDeps([12,13,1,2]) : void 0, import.meta.url);
273892
274457
  return { id, diagram: diagram2 };
@@ -273906,7 +274471,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
273906
274471
  }, "detector");
273907
274472
  var loader2 = /* @__PURE__ */ __name(async () => {
273908
274473
  const { diagram: diagram2 } = await __vitePreload(async () => {
273909
- const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-B2YOhESy.js");
274474
+ const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-tRJWBVYd.js");
273910
274475
  return { diagram: diagram22 };
273911
274476
  }, true ? __vite__mapDeps([14,15,16,1,2]) : void 0, import.meta.url);
273912
274477
  return { id: id2, diagram: diagram2 };
@@ -273932,7 +274497,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
273932
274497
  }, "detector");
273933
274498
  var loader3 = /* @__PURE__ */ __name(async () => {
273934
274499
  const { diagram: diagram2 } = await __vitePreload(async () => {
273935
- const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-B2YOhESy.js");
274500
+ const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-tRJWBVYd.js");
273936
274501
  return { diagram: diagram22 };
273937
274502
  }, true ? __vite__mapDeps([14,15,16,1,2]) : void 0, import.meta.url);
273938
274503
  return { id: id3, diagram: diagram2 };
@@ -273949,7 +274514,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
273949
274514
  }, "detector");
273950
274515
  var loader4 = /* @__PURE__ */ __name(async () => {
273951
274516
  const { diagram: diagram2 } = await __vitePreload(async () => {
273952
- const { diagram: diagram22 } = await import("./erDiagram-Q7BY3M3F-B1jAAKZ4.js");
274517
+ const { diagram: diagram22 } = await import("./erDiagram-Q7BY3M3F-CfYzgE98.js");
273953
274518
  return { diagram: diagram22 };
273954
274519
  }, true ? __vite__mapDeps([17,15,16,1,2]) : void 0, import.meta.url);
273955
274520
  return { id: id4, diagram: diagram2 };
@@ -273966,7 +274531,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
273966
274531
  }, "detector");
273967
274532
  var loader5 = /* @__PURE__ */ __name(async () => {
273968
274533
  const { diagram: diagram2 } = await __vitePreload(async () => {
273969
- const { diagram: diagram22 } = await import("./gitGraphDiagram-7IBYFJ6S-zoE6800M.js");
274534
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-7IBYFJ6S-Cd11pFbi.js");
273970
274535
  return { diagram: diagram22 };
273971
274536
  }, true ? __vite__mapDeps([18,19,20,21,8,10,11,1,2]) : void 0, import.meta.url);
273972
274537
  return { id: id5, diagram: diagram2 };
@@ -273983,7 +274548,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
273983
274548
  }, "detector");
273984
274549
  var loader6 = /* @__PURE__ */ __name(async () => {
273985
274550
  const { diagram: diagram2 } = await __vitePreload(async () => {
273986
- const { diagram: diagram22 } = await import("./ganttDiagram-APWFNJXF-IwK7Fc3X.js");
274551
+ const { diagram: diagram22 } = await import("./ganttDiagram-APWFNJXF-BWG5VLyZ.js");
273987
274552
  return { diagram: diagram22 };
273988
274553
  }, true ? __vite__mapDeps([22,1,2]) : void 0, import.meta.url);
273989
274554
  return { id: id6, diagram: diagram2 };
@@ -274000,7 +274565,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
274000
274565
  }, "detector");
274001
274566
  var loader7 = /* @__PURE__ */ __name(async () => {
274002
274567
  const { diagram: diagram2 } = await __vitePreload(async () => {
274003
- const { diagram: diagram22 } = await import("./infoDiagram-PH2N3AL5-CbbOmA9a.js");
274568
+ const { diagram: diagram22 } = await import("./infoDiagram-PH2N3AL5-KjJg15gx.js");
274004
274569
  return { diagram: diagram22 };
274005
274570
  }, true ? __vite__mapDeps([23,21,8,10,11,1,2]) : void 0, import.meta.url);
274006
274571
  return { id: id7, diagram: diagram2 };
@@ -274016,7 +274581,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
274016
274581
  }, "detector");
274017
274582
  var loader8 = /* @__PURE__ */ __name(async () => {
274018
274583
  const { diagram: diagram2 } = await __vitePreload(async () => {
274019
- const { diagram: diagram22 } = await import("./pieDiagram-IB7DONF6-DycIGo9Z.js");
274584
+ const { diagram: diagram22 } = await import("./pieDiagram-IB7DONF6-C7Crt4gw.js");
274020
274585
  return { diagram: diagram22 };
274021
274586
  }, true ? __vite__mapDeps([24,19,21,8,10,11,25,1,2]) : void 0, import.meta.url);
274022
274587
  return { id: id8, diagram: diagram2 };
@@ -274032,7 +274597,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
274032
274597
  }, "detector");
274033
274598
  var loader9 = /* @__PURE__ */ __name(async () => {
274034
274599
  const { diagram: diagram2 } = await __vitePreload(async () => {
274035
- const { diagram: diagram22 } = await import("./quadrantDiagram-7GDLP6J5-BsHeSEbJ.js");
274600
+ const { diagram: diagram22 } = await import("./quadrantDiagram-7GDLP6J5-BMbHGD_6.js");
274036
274601
  return { diagram: diagram22 };
274037
274602
  }, true ? __vite__mapDeps([26,1,2]) : void 0, import.meta.url);
274038
274603
  return { id: id9, diagram: diagram2 };
@@ -274049,7 +274614,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
274049
274614
  }, "detector");
274050
274615
  var loader10 = /* @__PURE__ */ __name(async () => {
274051
274616
  const { diagram: diagram2 } = await __vitePreload(async () => {
274052
- const { diagram: diagram22 } = await import("./xychartDiagram-VJFVF3MP-C-KaUtNd.js");
274617
+ const { diagram: diagram22 } = await import("./xychartDiagram-VJFVF3MP-DD0agc1N.js");
274053
274618
  return { diagram: diagram22 };
274054
274619
  }, true ? __vite__mapDeps([27,1,2]) : void 0, import.meta.url);
274055
274620
  return { id: id10, diagram: diagram2 };
@@ -274066,7 +274631,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
274066
274631
  }, "detector");
274067
274632
  var loader11 = /* @__PURE__ */ __name(async () => {
274068
274633
  const { diagram: diagram2 } = await __vitePreload(async () => {
274069
- const { diagram: diagram22 } = await import("./requirementDiagram-KVF5MWMF-CSzs-JGc.js");
274634
+ const { diagram: diagram22 } = await import("./requirementDiagram-KVF5MWMF-BumPivJk.js");
274070
274635
  return { diagram: diagram22 };
274071
274636
  }, true ? __vite__mapDeps([28,15,1,2]) : void 0, import.meta.url);
274072
274637
  return { id: id11, diagram: diagram2 };
@@ -274083,7 +274648,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
274083
274648
  }, "detector");
274084
274649
  var loader12 = /* @__PURE__ */ __name(async () => {
274085
274650
  const { diagram: diagram2 } = await __vitePreload(async () => {
274086
- const { diagram: diagram22 } = await import("./sequenceDiagram-X6HHIX6F-CyNPry3J.js");
274651
+ const { diagram: diagram22 } = await import("./sequenceDiagram-X6HHIX6F-CwnYTtil.js");
274087
274652
  return { diagram: diagram22 };
274088
274653
  }, true ? __vite__mapDeps([29,13,20,1,2]) : void 0, import.meta.url);
274089
274654
  return { id: id12, diagram: diagram2 };
@@ -274103,7 +274668,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
274103
274668
  }, "detector");
274104
274669
  var loader13 = /* @__PURE__ */ __name(async () => {
274105
274670
  const { diagram: diagram2 } = await __vitePreload(async () => {
274106
- const { diagram: diagram22 } = await import("./classDiagram-GIVACNV2-D0pXBB2V.js");
274671
+ const { diagram: diagram22 } = await import("./classDiagram-GIVACNV2-CNcNWb-o.js");
274107
274672
  return { diagram: diagram22 };
274108
274673
  }, true ? __vite__mapDeps([30,31,15,1,2]) : void 0, import.meta.url);
274109
274674
  return { id: id13, diagram: diagram2 };
@@ -274123,7 +274688,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
274123
274688
  }, "detector");
274124
274689
  var loader14 = /* @__PURE__ */ __name(async () => {
274125
274690
  const { diagram: diagram2 } = await __vitePreload(async () => {
274126
- const { diagram: diagram22 } = await import("./classDiagram-v2-COTLJTTW-D0pXBB2V.js");
274691
+ const { diagram: diagram22 } = await import("./classDiagram-v2-COTLJTTW-CNcNWb-o.js");
274127
274692
  return { diagram: diagram22 };
274128
274693
  }, true ? __vite__mapDeps([32,31,15,1,2]) : void 0, import.meta.url);
274129
274694
  return { id: id14, diagram: diagram2 };
@@ -274143,7 +274708,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
274143
274708
  }, "detector");
274144
274709
  var loader15 = /* @__PURE__ */ __name(async () => {
274145
274710
  const { diagram: diagram2 } = await __vitePreload(async () => {
274146
- const { diagram: diagram22 } = await import("./stateDiagram-DGXRK772-BXWq3Qrc.js");
274711
+ const { diagram: diagram22 } = await import("./stateDiagram-DGXRK772-4yXBR_vP.js");
274147
274712
  return { diagram: diagram22 };
274148
274713
  }, true ? __vite__mapDeps([33,34,15,7,8,9,10,1,2]) : void 0, import.meta.url);
274149
274714
  return { id: id15, diagram: diagram2 };
@@ -274166,7 +274731,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
274166
274731
  }, "detector");
274167
274732
  var loader16 = /* @__PURE__ */ __name(async () => {
274168
274733
  const { diagram: diagram2 } = await __vitePreload(async () => {
274169
- const { diagram: diagram22 } = await import("./stateDiagram-v2-YXO3MK2T-CWiPj4sa.js");
274734
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-YXO3MK2T-6p7BdIAB.js");
274170
274735
  return { diagram: diagram22 };
274171
274736
  }, true ? __vite__mapDeps([35,34,15,1,2]) : void 0, import.meta.url);
274172
274737
  return { id: id16, diagram: diagram2 };
@@ -274183,7 +274748,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
274183
274748
  }, "detector");
274184
274749
  var loader17 = /* @__PURE__ */ __name(async () => {
274185
274750
  const { diagram: diagram2 } = await __vitePreload(async () => {
274186
- const { diagram: diagram22 } = await import("./journeyDiagram-U35MCT3I-BTH_TNp4.js");
274751
+ const { diagram: diagram22 } = await import("./journeyDiagram-U35MCT3I-Dp2FVK6h.js");
274187
274752
  return { diagram: diagram22 };
274188
274753
  }, true ? __vite__mapDeps([36,13,25,1,2]) : void 0, import.meta.url);
274189
274754
  return { id: id17, diagram: diagram2 };
@@ -274253,7 +274818,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
274253
274818
  }, "detector");
274254
274819
  var loader18 = /* @__PURE__ */ __name(async () => {
274255
274820
  const { diagram: diagram2 } = await __vitePreload(async () => {
274256
- const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-B2YOhESy.js");
274821
+ const { diagram: diagram22 } = await import("./flowDiagram-4HSFHLVR-tRJWBVYd.js");
274257
274822
  return { diagram: diagram22 };
274258
274823
  }, true ? __vite__mapDeps([14,15,16,1,2]) : void 0, import.meta.url);
274259
274824
  return { id: id18, diagram: diagram2 };
@@ -274270,7 +274835,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
274270
274835
  }, "detector");
274271
274836
  var loader19 = /* @__PURE__ */ __name(async () => {
274272
274837
  const { diagram: diagram2 } = await __vitePreload(async () => {
274273
- const { diagram: diagram22 } = await import("./timeline-definition-BDJGKUSR-isGWvPGn.js");
274838
+ const { diagram: diagram22 } = await import("./timeline-definition-BDJGKUSR-CCdgMyc-.js");
274274
274839
  return { diagram: diagram22 };
274275
274840
  }, true ? __vite__mapDeps([37,25,1,2]) : void 0, import.meta.url);
274276
274841
  return { id: id19, diagram: diagram2 };
@@ -274287,7 +274852,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
274287
274852
  }, "detector");
274288
274853
  var loader20 = /* @__PURE__ */ __name(async () => {
274289
274854
  const { diagram: diagram2 } = await __vitePreload(async () => {
274290
- const { diagram: diagram22 } = await import("./mindmap-definition-ALO5MXBD-DHOh0rwh.js");
274855
+ const { diagram: diagram22 } = await import("./mindmap-definition-ALO5MXBD-DiLxGufv.js");
274291
274856
  return { diagram: diagram22 };
274292
274857
  }, true ? __vite__mapDeps([38,39,1,2]) : void 0, import.meta.url);
274293
274858
  return { id: id20, diagram: diagram2 };
@@ -274304,7 +274869,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
274304
274869
  }, "detector");
274305
274870
  var loader21 = /* @__PURE__ */ __name(async () => {
274306
274871
  const { diagram: diagram2 } = await __vitePreload(async () => {
274307
- const { diagram: diagram22 } = await import("./kanban-definition-NDS4AKOZ-rqtSTvRC.js");
274872
+ const { diagram: diagram22 } = await import("./kanban-definition-NDS4AKOZ-cttuutf_.js");
274308
274873
  return { diagram: diagram22 };
274309
274874
  }, true ? __vite__mapDeps([40,1,2]) : void 0, import.meta.url);
274310
274875
  return { id: id21, diagram: diagram2 };
@@ -274321,7 +274886,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
274321
274886
  }, "detector");
274322
274887
  var loader22 = /* @__PURE__ */ __name(async () => {
274323
274888
  const { diagram: diagram2 } = await __vitePreload(async () => {
274324
- const { diagram: diagram22 } = await import("./sankeyDiagram-QLVOVGJD-BCq8qtkW.js");
274889
+ const { diagram: diagram22 } = await import("./sankeyDiagram-QLVOVGJD-D1LzUzj2.js");
274325
274890
  return { diagram: diagram22 };
274326
274891
  }, true ? __vite__mapDeps([41,1,2]) : void 0, import.meta.url);
274327
274892
  return { id: id22, diagram: diagram2 };
@@ -274338,7 +274903,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
274338
274903
  }, "detector");
274339
274904
  var loader23 = /* @__PURE__ */ __name(async () => {
274340
274905
  const { diagram: diagram2 } = await __vitePreload(async () => {
274341
- const { diagram: diagram22 } = await import("./diagram-VNBRO52H-BifoyvIJ.js");
274906
+ const { diagram: diagram22 } = await import("./diagram-VNBRO52H-DUz0a2Uz.js");
274342
274907
  return { diagram: diagram22 };
274343
274908
  }, true ? __vite__mapDeps([42,19,21,8,10,11,1,2]) : void 0, import.meta.url);
274344
274909
  return { id: id23, diagram: diagram2 };
@@ -274354,7 +274919,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
274354
274919
  }, "detector");
274355
274920
  var loader24 = /* @__PURE__ */ __name(async () => {
274356
274921
  const { diagram: diagram2 } = await __vitePreload(async () => {
274357
- const { diagram: diagram22 } = await import("./diagram-SSKATNLV-xbCK655N.js");
274922
+ const { diagram: diagram22 } = await import("./diagram-SSKATNLV-DGVbLzJc.js");
274358
274923
  return { diagram: diagram22 };
274359
274924
  }, true ? __vite__mapDeps([43,19,21,8,10,11,1,2]) : void 0, import.meta.url);
274360
274925
  return { id: id24, diagram: diagram2 };
@@ -274370,7 +274935,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
274370
274935
  }, "detector");
274371
274936
  var loader25 = /* @__PURE__ */ __name(async () => {
274372
274937
  const { diagram: diagram2 } = await __vitePreload(async () => {
274373
- const { diagram: diagram22 } = await import("./blockDiagram-JOT3LUYC-BpR8maVI.js");
274938
+ const { diagram: diagram22 } = await import("./blockDiagram-JOT3LUYC-DIjqxpHX.js");
274374
274939
  return { diagram: diagram22 };
274375
274940
  }, true ? __vite__mapDeps([44,11,8,7,16,1,2]) : void 0, import.meta.url);
274376
274941
  return { id: id25, diagram: diagram2 };
@@ -274387,7 +274952,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
274387
274952
  }, "detector");
274388
274953
  var loader26 = /* @__PURE__ */ __name(async () => {
274389
274954
  const { diagram: diagram2 } = await __vitePreload(async () => {
274390
- const { diagram: diagram22 } = await import("./architectureDiagram-IEHRJDOE-BU4jsbJy.js");
274955
+ const { diagram: diagram22 } = await import("./architectureDiagram-IEHRJDOE-0JBfW8n9.js");
274391
274956
  return { diagram: diagram22 };
274392
274957
  }, true ? __vite__mapDeps([45,19,20,21,8,10,11,39,1,2]) : void 0, import.meta.url);
274393
274958
  return { id: id26, diagram: diagram2 };
@@ -316977,6 +317542,19 @@ const ChatPage = () => {
316977
317542
  const { agentId, navigateToAgent } = useAgentRouteParam();
316978
317543
  const navigate = useNavigate();
316979
317544
  const queryClient2 = useQueryClient();
317545
+ const { isCanvasOpen, setCanvasOpen } = useUiPreferencesStore();
317546
+ reactExports.useEffect(() => {
317547
+ const handleKeyDown = (event) => {
317548
+ if (event.key === "c" && (event.metaKey || event.ctrlKey) && event.shiftKey) {
317549
+ event.preventDefault();
317550
+ setCanvasOpen(!isCanvasOpen);
317551
+ }
317552
+ };
317553
+ document.addEventListener("keydown", handleKeyDown);
317554
+ return () => {
317555
+ document.removeEventListener("keydown", handleKeyDown);
317556
+ };
317557
+ }, [isCanvasOpen, setCanvasOpen]);
316980
317558
  const { setLastChatAgentId, getLastAgentId } = useAgentSelectionStore();
316981
317559
  const effectiveAgentId = agentId || getLastAgentId("chat");
316982
317560
  const conversationId = effectiveAgentId || void 0;
@@ -317520,7 +318098,7 @@ const DEFAULT_SETTINGS_SECTIONS = [
317520
318098
  {
317521
318099
  id: "credentials",
317522
318100
  label: "API Credentials",
317523
- icon: Key
318101
+ icon: Key$1
317524
318102
  },
317525
318103
  {
317526
318104
  id: "updates",
@@ -323731,6 +324309,7 @@ const tourCanvasOverviewImage = "" + new URL("canvas-overview-CruGEIRC.png", imp
323731
324309
  const tourCanvasVariablesImage = "" + new URL("canvas-variables-view-DrA20zqs.png", import.meta.url).href;
323732
324310
  const tourChatAttachmentsImage = "" + new URL("chat-attachments-_3cRrONU.png", import.meta.url).href;
323733
324311
  const tourChatFullViewImage = "" + new URL("chat-full-view-e-eJPzrw.png", import.meta.url).href;
324312
+ const tourChatInputImage = "" + new URL("chat-input-CU-CA7Se.png", import.meta.url).href;
323734
324313
  const tourInlineEditCanvasImage = "" + new URL("inline-edit-canvas-O9conTkE.png", import.meta.url).href;
323735
324314
  const tourSteps = [
323736
324315
  {
@@ -323751,7 +324330,7 @@ const tourSteps = [
323751
324330
  id: "agent-list",
323752
324331
  attachTo: { element: '[data-tour-tag="agent-list-panel"]', on: "right" },
323753
324332
  title: "Your Agents",
323754
- text: "On the left, you'll see a list of your available AI agents. You can select an agent to start a conversation or manage its settings. Think of this as your WhatsApp chat list, but for AI agents! There are no limits to how many agents you can have, so create as many as you need to handle all your daily tasks.",
324333
+ text: "On the left, you'll see a list of your available AI agents. You can select an agent to start a conversation or manage its settings. Think of this as your messenger contacts list, but for AI agents! There are no limits to how many agents you can have, so create as many as you need to handle all your daily tasks.<br/><br/>Use the create agents button at the top of the toolbar to create a new agent at any time. You can also import agents from the Agent Hub, which we will cover later in this tour.",
323755
324334
  buttons: [
323756
324335
  {
323757
324336
  text: "Back",
@@ -323806,11 +324385,11 @@ const tourSteps = [
323806
324385
  {
323807
324386
  id: "chat-input",
323808
324387
  attachTo: {
323809
- element: 'textarea[data-tour-tag="chat-input-textarea"]',
324388
+ element: '[data-tour-tag="chat-input-textarea"]',
323810
324389
  on: "top"
323811
324390
  },
323812
324391
  title: "Ask Your Agent Anything",
323813
- text: `Type your request here. Agents can answer questions, perform tasks, search the web, and much more. When you create a new agent, you'll see suggested prompts for ideas!<br /><br />Some powerful requests that you can try:<br /><br /><ul><li>"Create a spreadsheet in my Documents folder with all the major cities in Canada."</li><li>"Search the web for the latest news on AI and make a thorough report."</li><li>Select an attachment and then "translate this document to French."</li></ul>`,
324392
+ text: `Type your request here. Agents can answer questions, perform tasks, search the web, and much more. When you create a new agent, you'll see suggested prompts for ideas!<br /><br />Some powerful requests that you can try:<br /><br /><ul><li>"Create a spreadsheet in my Documents folder with all the major cities in Canada."</li><li>"Search the web for the latest news on AI and make a thorough report."</li><li>Select an attachment and then "translate this document to French."</li></ul><br /><img src="${tourChatInputImage}" alt="Chat Input" style="width: 100%; height: 200px; object-fit: contain; border-radius: 8px;"/><br />You can also attach files to your message by clicking the paperclip button, which we will cover in the next step.`,
323814
324393
  buttons: [
323815
324394
  {
323816
324395
  text: "Back",
@@ -323994,7 +324573,7 @@ const tourSteps = [
323994
324573
  on: "top"
323995
324574
  },
323996
324575
  title: "Documents View",
323997
- text: `The Documents view shows all your open markdown, code, and HTML documents as tabs. You can switch between documents and see dynamic visualizations in HTML created by your agents. Use this view to work with your notes, reports, and agent-generated content.<br /><br />This is where you can get more precise around your agents' work.<br/><img src="${tourInlineEditCanvasImage}" alt="Inline Edit Canvas" style="width: 100%; height: 200px; object-fit: contain; border-radius: 8px;"/><br />In your documents, highlight any text that you want your agent to improve and press Cmd/Ctrl+K to bring up the inline AI editor.
324576
+ text: `The Documents view shows all your open notes, blog articles, code, and visualizations as tabs. You can switch between documents to edit them and see dynamic visualizations in HTML created by your agents. Use this view to work with your notes, reports, and agent-generated content.<br /><br />This is where you can get more precise around your agents' work.<br/><img src="${tourInlineEditCanvasImage}" alt="Inline Edit Canvas" style="width: 100%; height: 200px; object-fit: contain; border-radius: 8px;"/><br />In your documents, highlight any text that you want your agent to improve and press Cmd/Ctrl+K to bring up the inline AI editor.
323998
324577
  <br /><img src="${tourCanvasCodeInlineEditImage}" alt="Canvas Code Inline Edit" style="width: 100%; height: 200px; object-fit: cover; object-position: top; border-radius: 8px;"/><br />You can be as precise as you want and the agent will edit the document for you in place, using its memories and context so you don't have to re-explain things!`,
323999
324578
  buttons: [
324000
324579
  {