@gendive/chatllm 0.17.21 → 0.17.23

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.
@@ -1191,7 +1191,7 @@ var useProject = (options) => {
1191
1191
  }
1192
1192
  };
1193
1193
  loadProjects();
1194
- }, [useExternalStorage, onLoadProjects, onError, storageKey]);
1194
+ }, [enabled, useExternalStorage, onLoadProjects, onError, storageKey]);
1195
1195
  const createProject = useCallback4(
1196
1196
  async (data) => {
1197
1197
  const now = Date.now();
@@ -1433,11 +1433,6 @@ var parsePollFromContent = (content) => {
1433
1433
  allowOther,
1434
1434
  required: false
1435
1435
  };
1436
- console.log("[pollParser] Parsed poll:", {
1437
- question: pollQuestion.question,
1438
- optionsCount: pollQuestion.options.length,
1439
- options: pollQuestion.options.map((o) => o.label)
1440
- });
1441
1436
  polls.push(pollQuestion);
1442
1437
  }
1443
1438
  cleanContent = cleanContent.replace(match[0], "");
@@ -1445,7 +1440,6 @@ var parsePollFromContent = (content) => {
1445
1440
  if (polls.length === 0) {
1446
1441
  return { pollBlock: null, cleanContent: content };
1447
1442
  }
1448
- console.log("[pollParser] Total polls parsed:", polls.length, polls.map((p) => p.question));
1449
1443
  cleanContent = cleanContent.replace(/\n{3,}/g, "\n\n");
1450
1444
  return {
1451
1445
  pollBlock: {
@@ -1730,7 +1724,8 @@ var useChatUI = (options) => {
1730
1724
  }),
1731
1725
  [globalMemoryConfig, storageKey]
1732
1726
  );
1733
- const globalMemory = useGlobalMemoryEnabled ? useGlobalMemory(memoryOptions) : null;
1727
+ const globalMemoryRaw = useGlobalMemory(memoryOptions);
1728
+ const globalMemory = useGlobalMemoryEnabled ? globalMemoryRaw : null;
1734
1729
  const stableToolCall = useCallback5(
1735
1730
  (name, params) => onToolCallRef.current(name, params),
1736
1731
  []
@@ -2349,7 +2344,7 @@ ${finalContent}`;
2349
2344
  ...userContentParts && { contentParts: userContentParts }
2350
2345
  };
2351
2346
  const capturedSessionId = sessionId;
2352
- const currentSession2 = sessions.find((s) => s.id === capturedSessionId);
2347
+ const currentSession2 = sessionsRef.current.find((s) => s.id === capturedSessionId);
2353
2348
  const existingMessages = currentSession2?.messages || [];
2354
2349
  const isFirstMessage = !existingMessages.length;
2355
2350
  const contextSummary = currentSession2?.compressionState?.contextSummary || currentSession2?.contextSummary;
@@ -2366,6 +2361,9 @@ ${finalContent}`;
2366
2361
  setInput("");
2367
2362
  setQuotedText(null);
2368
2363
  setSelectedAction(null);
2364
+ attachments.forEach((a) => {
2365
+ if (a.previewUrl) URL.revokeObjectURL(a.previewUrl);
2366
+ });
2369
2367
  setAttachments([]);
2370
2368
  setSessions(
2371
2369
  (prev) => prev.map((s) => {
@@ -3777,7 +3775,7 @@ var ProjectSelector = ({
3777
3775
  width: "8px",
3778
3776
  height: "8px",
3779
3777
  borderRadius: "50%",
3780
- backgroundColor: currentProject?.color || "var(--chatllm-primary, #2563eb)",
3778
+ backgroundColor: currentProject?.color || "var(--chatllm-primary, #3584FA)",
3781
3779
  flexShrink: 0
3782
3780
  }
3783
3781
  }
@@ -3863,7 +3861,7 @@ var ProjectSelector = ({
3863
3861
  width: "8px",
3864
3862
  height: "8px",
3865
3863
  borderRadius: "50%",
3866
- backgroundColor: project.color || "var(--chatllm-primary, #2563eb)",
3864
+ backgroundColor: project.color || "var(--chatllm-primary, #3584FA)",
3867
3865
  flexShrink: 0
3868
3866
  }
3869
3867
  }
@@ -3937,8 +3935,8 @@ var ProjectSelector = ({
3937
3935
  e.currentTarget.style.backgroundColor = "transparent";
3938
3936
  },
3939
3937
  children: [
3940
- /* @__PURE__ */ jsx2(IconSvg, { name: "add-line", size: 16, color: "var(--chatllm-primary, #2563eb)" }),
3941
- /* @__PURE__ */ jsx2("span", { style: { fontSize: "13px", fontWeight: 500, color: "var(--chatllm-primary, #2563eb)" }, children: "\uC0C8 \uD504\uB85C\uC81D\uD2B8" })
3938
+ /* @__PURE__ */ jsx2(IconSvg, { name: "add-line", size: 16, color: "var(--chatllm-primary, #3584FA)" }),
3939
+ /* @__PURE__ */ jsx2("span", { style: { fontSize: "13px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uC0C8 \uD504\uB85C\uC81D\uD2B8" })
3942
3940
  ]
3943
3941
  }
3944
3942
  )
@@ -4431,13 +4429,13 @@ var ChatHeader = ({
4431
4429
  transition: "all 0.2s"
4432
4430
  },
4433
4431
  onMouseOver: (e) => {
4434
- e.currentTarget.style.borderColor = "var(--chatllm-primary, #3b82f6)";
4432
+ e.currentTarget.style.borderColor = "var(--chatllm-primary, #3584FA)";
4435
4433
  },
4436
4434
  onMouseOut: (e) => {
4437
4435
  e.currentTarget.style.borderColor = "var(--chatllm-border, #e5e7eb)";
4438
4436
  },
4439
4437
  children: [
4440
- /* @__PURE__ */ jsx4(IconSvg, { name: "robot-line", size: 16, color: "var(--chatllm-primary, #3b82f6)" }),
4438
+ /* @__PURE__ */ jsx4(IconSvg, { name: "robot-line", size: 16, color: "var(--chatllm-primary, #3584FA)" }),
4441
4439
  /* @__PURE__ */ jsx4("span", { style: { fontSize: "14px", fontWeight: 500, color: "var(--chatllm-text, #1f2937)" }, children: currentModel?.name || model }),
4442
4440
  /* @__PURE__ */ jsx4(
4443
4441
  IconSvg,
@@ -4534,7 +4532,7 @@ var ChatHeader = ({
4534
4532
  width: "28px",
4535
4533
  height: "28px",
4536
4534
  borderRadius: "6px",
4537
- backgroundColor: m.id === model ? "var(--chatllm-primary, #3b82f6)" : "var(--chatllm-bg-secondary, #f3f4f6)",
4535
+ backgroundColor: m.id === model ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-bg-secondary, #f3f4f6)",
4538
4536
  display: "flex",
4539
4537
  alignItems: "center",
4540
4538
  justifyContent: "center"
@@ -4568,7 +4566,7 @@ var ChatHeader = ({
4568
4566
  {
4569
4567
  name: "check-line",
4570
4568
  size: 16,
4571
- color: "var(--chatllm-primary, #3b82f6)",
4569
+ color: "var(--chatllm-primary, #3584FA)",
4572
4570
  className: "ml-auto"
4573
4571
  }
4574
4572
  )
@@ -5720,7 +5718,7 @@ var parseInlineElements = (text, key, sources) => {
5720
5718
  target: "_blank",
5721
5719
  rel: "noopener noreferrer",
5722
5720
  style: {
5723
- color: "var(--chatllm-link, #3b82f6)",
5721
+ color: "var(--chatllm-link, #3584FA)",
5724
5722
  textDecoration: "none"
5725
5723
  },
5726
5724
  children: match[1]
@@ -5749,7 +5747,7 @@ var parseInlineElements = (text, key, sources) => {
5749
5747
  height: "18px",
5750
5748
  borderRadius: "50%",
5751
5749
  backgroundColor: "var(--chatllm-primary-light, #dbeafe)",
5752
- color: "var(--chatllm-primary, #3b82f6)",
5750
+ color: "var(--chatllm-primary, #3584FA)",
5753
5751
  fontSize: "11px",
5754
5752
  fontWeight: 600,
5755
5753
  textDecoration: "none",
@@ -5891,7 +5889,7 @@ var ThinkingSpinner = () => /* @__PURE__ */ jsx7(
5891
5889
  width: "12px",
5892
5890
  height: "12px",
5893
5891
  border: "2px solid var(--chatllm-border, #e5e7eb)",
5894
- borderTopColor: "var(--chatllm-primary, #3b82f6)",
5892
+ borderTopColor: "var(--chatllm-primary, #3584FA)",
5895
5893
  borderRadius: "50%",
5896
5894
  animation: "chatllm-spin 0.8s linear infinite"
5897
5895
  }
@@ -6332,7 +6330,7 @@ var ChoiceButtons = ({ choices, title, onChoiceClick }) => {
6332
6330
  width: "28px",
6333
6331
  height: "28px",
6334
6332
  borderRadius: "50%",
6335
- backgroundColor: hoveredIndex === index ? "var(--chatllm-primary, #3b82f6)" : "var(--chatllm-bg-tertiary, #f3f4f6)",
6333
+ backgroundColor: hoveredIndex === index ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-bg-tertiary, #f3f4f6)",
6336
6334
  color: hoveredIndex === index ? "#ffffff" : "var(--chatllm-text, #374151)",
6337
6335
  fontSize: "14px",
6338
6336
  fontWeight: 600,
@@ -6542,7 +6540,7 @@ var MarkdownRenderer = ({
6542
6540
  style: {
6543
6541
  margin: "12px 0",
6544
6542
  padding: "12px 16px",
6545
- borderLeft: "4px solid var(--chatllm-primary, #3b82f6)",
6543
+ borderLeft: "4px solid var(--chatllm-primary, #3584FA)",
6546
6544
  backgroundColor: "var(--chatllm-bg-secondary, #f9fafb)",
6547
6545
  borderRadius: "0 8px 8px 0",
6548
6546
  color: "var(--chatllm-text, #374151)"
@@ -6602,7 +6600,7 @@ var MarkdownRenderer = ({
6602
6600
  width: "18px",
6603
6601
  height: "18px",
6604
6602
  borderRadius: "50%",
6605
- border: "2px solid var(--chatllm-primary, #4A90E2)",
6603
+ border: "2px solid var(--chatllm-primary, #3584FA)",
6606
6604
  borderTopColor: "transparent",
6607
6605
  animation: "chatllm-spin 0.8s linear infinite"
6608
6606
  }
@@ -6772,7 +6770,7 @@ var MarkdownRenderer = ({
6772
6770
  flushBlockquote();
6773
6771
  flushTable();
6774
6772
  return elements;
6775
- }, [content, onChoiceClick, sources]);
6773
+ }, [content, onChoiceClick, sources, showThinking, thinkingDefaultOpen]);
6776
6774
  return /* @__PURE__ */ jsx7(
6777
6775
  "div",
6778
6776
  {
@@ -7170,7 +7168,10 @@ var PollCard = ({
7170
7168
  useEffect7(() => {
7171
7169
  if (typeof window === "undefined") return;
7172
7170
  const handleKeyDown = (e) => {
7173
- if (e.key === "Escape") handleSkip();
7171
+ if (e.key !== "Escape") return;
7172
+ const modalOpen = document.querySelector(".chatllm-settings-overlay, .chatllm-disclaimer-overlay, .chatllm-project-settings-overlay");
7173
+ if (modalOpen) return;
7174
+ handleSkip();
7174
7175
  };
7175
7176
  window.addEventListener("keydown", handleKeyDown);
7176
7177
  return () => window.removeEventListener("keydown", handleKeyDown);
@@ -7245,11 +7246,11 @@ var PollCard = ({
7245
7246
  padding: "12px 16px",
7246
7247
  backgroundColor: isActive ? "var(--chatllm-content-bg, #fff)" : "transparent",
7247
7248
  border: "none",
7248
- borderBottom: isActive ? "2px solid var(--chatllm-primary, #4A90E2)" : "2px solid transparent",
7249
+ borderBottom: isActive ? "2px solid var(--chatllm-primary, #3584FA)" : "2px solid transparent",
7249
7250
  cursor: "pointer",
7250
7251
  fontSize: "13px",
7251
7252
  fontWeight: isActive ? 600 : 500,
7252
- color: isActive ? "var(--chatllm-primary, #4A90E2)" : "var(--chatllm-text-muted, #64748b)",
7253
+ color: isActive ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #64748b)",
7253
7254
  display: "flex",
7254
7255
  alignItems: "center",
7255
7256
  justifyContent: "center",
@@ -7316,8 +7317,8 @@ var PollCard = ({
7316
7317
  alignItems: "flex-start",
7317
7318
  gap: "12px",
7318
7319
  padding: "12px 14px",
7319
- backgroundColor: isSelected ? "var(--chatllm-primary-light, rgba(74, 144, 226, 0.08))" : "transparent",
7320
- border: isSelected ? "1px solid var(--chatllm-primary, #4A90E2)" : "1px solid var(--chatllm-border, #e5e7eb)",
7320
+ backgroundColor: isSelected ? "var(--chatllm-primary-light, rgba(53, 132, 250, 0.08))" : "transparent",
7321
+ border: isSelected ? "1px solid var(--chatllm-primary, #3584FA)" : "1px solid var(--chatllm-border, #e5e7eb)",
7321
7322
  borderRadius: "8px",
7322
7323
  cursor: "pointer",
7323
7324
  textAlign: "left",
@@ -7334,8 +7335,8 @@ var PollCard = ({
7334
7335
  width: "20px",
7335
7336
  height: "20px",
7336
7337
  borderRadius: currentQuestion.multiSelect ? "4px" : "50%",
7337
- border: `2px solid ${isSelected ? "var(--chatllm-primary, #4A90E2)" : "var(--chatllm-border, #d1d5db)"}`,
7338
- backgroundColor: isSelected ? "var(--chatllm-primary, #4A90E2)" : "transparent",
7338
+ border: `2px solid ${isSelected ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-border, #d1d5db)"}`,
7339
+ backgroundColor: isSelected ? "var(--chatllm-primary, #3584FA)" : "transparent",
7339
7340
  display: "flex",
7340
7341
  alignItems: "center",
7341
7342
  justifyContent: "center",
@@ -7390,8 +7391,8 @@ var PollCard = ({
7390
7391
  alignItems: "center",
7391
7392
  gap: "12px",
7392
7393
  padding: "12px 14px",
7393
- backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary-light, rgba(74, 144, 226, 0.08))" : "transparent",
7394
- border: otherSelected[currentQuestion.id] ? "1px solid var(--chatllm-primary, #4A90E2)" : "1px solid var(--chatllm-border, #e5e7eb)",
7394
+ backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary-light, rgba(53, 132, 250, 0.08))" : "transparent",
7395
+ border: otherSelected[currentQuestion.id] ? "1px solid var(--chatllm-primary, #3584FA)" : "1px solid var(--chatllm-border, #e5e7eb)",
7395
7396
  borderRadius: "8px",
7396
7397
  cursor: "pointer",
7397
7398
  textAlign: "left",
@@ -7407,8 +7408,8 @@ var PollCard = ({
7407
7408
  width: "20px",
7408
7409
  height: "20px",
7409
7410
  borderRadius: currentQuestion.multiSelect ? "4px" : "50%",
7410
- border: `2px solid ${otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #4A90E2)" : "var(--chatllm-border, #d1d5db)"}`,
7411
- backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #4A90E2)" : "transparent",
7411
+ border: `2px solid ${otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-border, #d1d5db)"}`,
7412
+ backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #3584FA)" : "transparent",
7412
7413
  display: "flex",
7413
7414
  alignItems: "center",
7414
7415
  justifyContent: "center",
@@ -7483,7 +7484,7 @@ var PollCard = ({
7483
7484
  disabled: !currentHasSelection,
7484
7485
  style: {
7485
7486
  padding: "8px 20px",
7486
- backgroundColor: currentHasSelection ? "var(--chatllm-primary, #4A90E2)" : "var(--chatllm-bg-disabled, #e5e7eb)",
7487
+ backgroundColor: currentHasSelection ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-bg-disabled, #e5e7eb)",
7487
7488
  border: "none",
7488
7489
  borderRadius: "6px",
7489
7490
  color: currentHasSelection ? "#fff" : "var(--chatllm-text-muted, #94a3b8)",
@@ -7548,7 +7549,7 @@ var SkillProgressUI = ({
7548
7549
  marginTop: "8px",
7549
7550
  backgroundColor: isError ? "rgba(239, 68, 68, 0.08)" : "var(--chatllm-primary-light)",
7550
7551
  borderRadius: "12px",
7551
- border: `1px solid ${isError ? "rgba(239, 68, 68, 0.2)" : "rgba(74, 144, 226, 0.15)"}`
7552
+ border: `1px solid ${isError ? "rgba(239, 68, 68, 0.2)" : "rgba(53, 132, 250, 0.15)"}`
7552
7553
  },
7553
7554
  children: [
7554
7555
  isExecuting && /* @__PURE__ */ jsx10(
@@ -7786,13 +7787,13 @@ var FileContentCard = ({ part }) => {
7786
7787
  width: "36px",
7787
7788
  height: "36px",
7788
7789
  borderRadius: "8px",
7789
- backgroundColor: "var(--chatllm-primary-light, rgba(74, 144, 226, 0.1))",
7790
+ backgroundColor: "var(--chatllm-primary-light, rgba(53, 132, 250, 0.1))",
7790
7791
  display: "flex",
7791
7792
  alignItems: "center",
7792
7793
  justifyContent: "center",
7793
7794
  flexShrink: 0
7794
7795
  },
7795
- children: /* @__PURE__ */ jsx12(IconSvg, { name: getFileIcon(part.mimeType), size: 18, color: "var(--chatllm-primary, #4A90E2)" })
7796
+ children: /* @__PURE__ */ jsx12(IconSvg, { name: getFileIcon(part.mimeType), size: 18, color: "var(--chatllm-primary, #3584FA)" })
7796
7797
  }
7797
7798
  ),
7798
7799
  /* @__PURE__ */ jsxs11("div", { style: { flex: 1, minWidth: 0 }, children: [
@@ -7904,7 +7905,7 @@ var ToolStatusCard = ({
7904
7905
  width: 14,
7905
7906
  height: 14,
7906
7907
  borderRadius: "50%",
7907
- border: "2px solid var(--chatllm-primary, #4A90E2)",
7908
+ border: "2px solid var(--chatllm-primary, #3584FA)",
7908
7909
  borderTopColor: "transparent",
7909
7910
  animation: "chatllm-spin 1s linear infinite",
7910
7911
  flexShrink: 0
@@ -8142,13 +8143,6 @@ var MessageBubble = ({
8142
8143
  const displayContent = isAssistant && relevantAlternatives && relevantAlternatives.length > 0 && relevantActiveIndex > 0 ? relevantAlternatives[relevantActiveIndex - 1]?.content || message.content : message.content;
8143
8144
  const displayModel = isAssistant && relevantAlternatives && relevantAlternatives.length > 0 && relevantActiveIndex > 0 ? relevantAlternatives[relevantActiveIndex - 1]?.model : message.model;
8144
8145
  const displaySources = isAssistant && relevantAlternatives && relevantAlternatives.length > 0 && relevantActiveIndex > 0 ? relevantAlternatives[relevantActiveIndex - 1]?.sources : message.sources;
8145
- const handleMouseUp = () => {
8146
- if (!onQuote) return;
8147
- const selection = typeof window !== "undefined" ? window.getSelection() : null;
8148
- const text = selection?.toString().trim();
8149
- if (text && text.length > 0) {
8150
- }
8151
- };
8152
8146
  if (isUser) {
8153
8147
  return /* @__PURE__ */ jsxs14(
8154
8148
  "div",
@@ -8162,7 +8156,6 @@ var MessageBubble = ({
8162
8156
  },
8163
8157
  onMouseEnter: () => setShowActions(true),
8164
8158
  onMouseLeave: () => setShowActions(false),
8165
- onMouseUp: handleMouseUp,
8166
8159
  children: [
8167
8160
  /* @__PURE__ */ jsx15(
8168
8161
  "div",
@@ -8283,7 +8276,6 @@ var MessageBubble = ({
8283
8276
  },
8284
8277
  onMouseEnter: () => setShowActions(true),
8285
8278
  onMouseLeave: () => setShowActions(false),
8286
- onMouseUp: handleMouseUp,
8287
8279
  children: [
8288
8280
  /* @__PURE__ */ jsxs14(
8289
8281
  "div",
@@ -8386,7 +8378,7 @@ var MessageBubble = ({
8386
8378
  ]
8387
8379
  }
8388
8380
  ),
8389
- message.contentParts?.length && /* @__PURE__ */ jsx15("div", { style: { wordBreak: "break-word" }, children: /* @__PURE__ */ jsx15(
8381
+ !!message.contentParts?.length && /* @__PURE__ */ jsx15("div", { style: { wordBreak: "break-word" }, children: /* @__PURE__ */ jsx15(
8390
8382
  ContentPartRenderer,
8391
8383
  {
8392
8384
  parts: message.contentParts,
@@ -8580,7 +8572,7 @@ var MessageBubble = ({
8580
8572
  backgroundColor: "var(--chatllm-primary-light, #eff6ff)",
8581
8573
  borderRadius: "8px",
8582
8574
  fontSize: "13px",
8583
- color: "var(--chatllm-primary, #2563eb)"
8575
+ color: "var(--chatllm-primary, #3584FA)"
8584
8576
  },
8585
8577
  children: [
8586
8578
  /* @__PURE__ */ jsxs14("div", { style: { display: "flex", gap: "4px", alignItems: "center" }, children: [
@@ -8985,7 +8977,7 @@ var MessageList = ({
8985
8977
  };
8986
8978
 
8987
8979
  // src/react/components/SettingsModal.tsx
8988
- import { useState as useState16 } from "react";
8980
+ import { useState as useState16, useEffect as useEffect9 } from "react";
8989
8981
  import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
8990
8982
  var DEFAULT_PERSONALIZATION2 = {
8991
8983
  responseStyle: {
@@ -9023,6 +9015,9 @@ var SettingsModal = ({
9023
9015
  }) => {
9024
9016
  const [activeTab, setActiveTab] = useState16("general");
9025
9017
  const [localApiKey, setLocalApiKey] = useState16(apiKey);
9018
+ useEffect9(() => {
9019
+ setLocalApiKey(apiKey);
9020
+ }, [apiKey]);
9026
9021
  if (!isOpen) return null;
9027
9022
  const updateResponseStyle = (key, value) => {
9028
9023
  onPersonalizationChange({
@@ -9306,7 +9301,7 @@ var SettingsModal = ({
9306
9301
  onClick: onSave,
9307
9302
  style: {
9308
9303
  padding: "10px 24px",
9309
- backgroundColor: "var(--chatllm-primary, #4A90E2)",
9304
+ backgroundColor: "var(--chatllm-primary, #3584FA)",
9310
9305
  color: "#fff",
9311
9306
  border: "none",
9312
9307
  borderRadius: "8px",
@@ -9351,7 +9346,7 @@ var SettingsModal = ({
9351
9346
  width: "48px",
9352
9347
  height: "28px",
9353
9348
  borderRadius: "14px",
9354
- backgroundColor: personalization.useMemory ? "var(--chatllm-primary, #3b82f6)" : "var(--chatllm-text-muted, #d1d5db)",
9349
+ backgroundColor: personalization.useMemory ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #d1d5db)",
9355
9350
  border: "none",
9356
9351
  cursor: "pointer",
9357
9352
  position: "relative",
@@ -9409,7 +9404,7 @@ var TabButton = ({ active, onClick, icon, label }) => /* @__PURE__ */ jsxs16(
9409
9404
  border: "none",
9410
9405
  backgroundColor: active ? "var(--chatllm-bg, #ffffff)" : "transparent",
9411
9406
  boxShadow: active ? "0 1px 3px rgba(0, 0, 0, 0.08)" : "none",
9412
- color: active ? "var(--chatllm-primary, #3b82f6)" : "var(--chatllm-text-muted, #6b7280)",
9407
+ color: active ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #6b7280)",
9413
9408
  fontSize: "14px",
9414
9409
  cursor: "pointer",
9415
9410
  textAlign: "left",
@@ -9523,8 +9518,8 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
9523
9518
  fontSize: "13px",
9524
9519
  fontWeight: activeFilter === tab ? 500 : 400,
9525
9520
  backgroundColor: activeFilter === tab ? "var(--chatllm-primary-light, #dbeafe)" : "var(--chatllm-bg-secondary, #f9fafb)",
9526
- color: activeFilter === tab ? "var(--chatllm-primary, #3b82f6)" : "var(--chatllm-text-muted, #6b7280)",
9527
- border: "1px solid " + (activeFilter === tab ? "var(--chatllm-primary, #3b82f6)" : "var(--chatllm-border, #e5e7eb)"),
9521
+ color: activeFilter === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #6b7280)",
9522
+ border: "1px solid " + (activeFilter === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-border, #e5e7eb)"),
9528
9523
  borderRadius: "8px",
9529
9524
  cursor: "pointer"
9530
9525
  },
@@ -9540,12 +9535,12 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
9540
9535
  marginBottom: "16px",
9541
9536
  backgroundColor: "var(--chatllm-bg-secondary, #f9fafb)",
9542
9537
  borderRadius: "10px",
9543
- borderLeft: "3px solid var(--chatllm-primary, #3b82f6)"
9538
+ borderLeft: "3px solid var(--chatllm-primary, #3584FA)"
9544
9539
  },
9545
9540
  children: [
9546
9541
  /* @__PURE__ */ jsxs16("div", { style: { display: "flex", alignItems: "center", gap: "6px", marginBottom: "8px" }, children: [
9547
- /* @__PURE__ */ jsx17(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3b82f6)" }),
9548
- /* @__PURE__ */ jsx17("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3b82f6)" }, children: "\uB300\uD654 \uC694\uC57D" })
9542
+ /* @__PURE__ */ jsx17(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3584FA)" }),
9543
+ /* @__PURE__ */ jsx17("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uB300\uD654 \uC694\uC57D" })
9549
9544
  ] }),
9550
9545
  /* @__PURE__ */ jsx17("p", { style: { fontSize: "13px", lineHeight: "1.6", color: "var(--chatllm-text, #374151)", margin: 0 }, children: contextSummary })
9551
9546
  ]
@@ -9662,10 +9657,10 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
9662
9657
  };
9663
9658
 
9664
9659
  // src/react/components/ProjectSettingsModal.tsx
9665
- import { useState as useState17, useEffect as useEffect9 } from "react";
9660
+ import { useState as useState17, useEffect as useEffect10 } from "react";
9666
9661
  import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
9667
9662
  var COLOR_PRESETS = [
9668
- "#2563eb",
9663
+ "#3584FA",
9669
9664
  "#7c3aed",
9670
9665
  "#db2777",
9671
9666
  "#dc2626",
@@ -9687,13 +9682,13 @@ var ProjectSettingsModal = ({
9687
9682
  const [title, setTitle] = useState17("");
9688
9683
  const [description, setDescription] = useState17("");
9689
9684
  const [instructions, setInstructions] = useState17("");
9690
- const [color, setColor] = useState17("#2563eb");
9691
- useEffect9(() => {
9685
+ const [color, setColor] = useState17("#3584FA");
9686
+ useEffect10(() => {
9692
9687
  if (project) {
9693
9688
  setTitle(project.title);
9694
9689
  setDescription(project.description || "");
9695
9690
  setInstructions(project.instructions || "");
9696
- setColor(project.color || "#2563eb");
9691
+ setColor(project.color || "#3584FA");
9697
9692
  }
9698
9693
  }, [project]);
9699
9694
  if (!isOpen || !project) return null;
@@ -9736,8 +9731,8 @@ var ProjectSettingsModal = ({
9736
9731
  padding: "8px 16px",
9737
9732
  fontSize: "13px",
9738
9733
  fontWeight: activeTab === tab ? 600 : 400,
9739
- color: activeTab === tab ? "var(--chatllm-primary, #2563eb)" : "var(--chatllm-text-muted, #999)",
9740
- borderBottom: activeTab === tab ? "2px solid var(--chatllm-primary, #2563eb)" : "2px solid transparent",
9734
+ color: activeTab === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #999)",
9735
+ borderBottom: activeTab === tab ? "2px solid var(--chatllm-primary, #3584FA)" : "2px solid transparent",
9741
9736
  background: "none",
9742
9737
  border: "none",
9743
9738
  borderBottomStyle: "solid",
@@ -9924,7 +9919,7 @@ var ProjectSettingsModal = ({
9924
9919
  padding: "8px 20px",
9925
9920
  borderRadius: "6px",
9926
9921
  border: "none",
9927
- backgroundColor: "var(--chatllm-primary, #2563eb)",
9922
+ backgroundColor: "var(--chatllm-primary, #3584FA)",
9928
9923
  color: "#fff",
9929
9924
  fontSize: "13px",
9930
9925
  fontWeight: 500,
@@ -9967,7 +9962,7 @@ var ProjectSettingsModal = ({
9967
9962
  padding: "8px 20px",
9968
9963
  borderRadius: "6px",
9969
9964
  border: "none",
9970
- backgroundColor: "var(--chatllm-primary, #2563eb)",
9965
+ backgroundColor: "var(--chatllm-primary, #3584FA)",
9971
9966
  color: "#fff",
9972
9967
  fontSize: "13px",
9973
9968
  fontWeight: 500,
@@ -10142,7 +10137,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
10142
10137
  },
10143
10138
  children: [
10144
10139
  /* @__PURE__ */ jsxs18("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
10145
- /* @__PURE__ */ jsx19(IconSvg, { name: "error-warning-line", size: 20, color: "var(--chatllm-primary, #4A90E2)" }),
10140
+ /* @__PURE__ */ jsx19(IconSvg, { name: "error-warning-line", size: 20, color: "var(--chatllm-primary, #3584FA)" }),
10146
10141
  /* @__PURE__ */ jsx19(
10147
10142
  "h2",
10148
10143
  {
@@ -10201,7 +10196,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
10201
10196
  padding: "14px 16px",
10202
10197
  backgroundColor: "var(--chatllm-primary-light, #eff6ff)",
10203
10198
  borderRadius: "10px",
10204
- borderLeft: "3px solid var(--chatllm-primary, #4A90E2)",
10199
+ borderLeft: "3px solid var(--chatllm-primary, #3584FA)",
10205
10200
  marginBottom: "16px",
10206
10201
  fontSize: "13px",
10207
10202
  lineHeight: 1.7
@@ -10252,7 +10247,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
10252
10247
  {
10253
10248
  href: "mailto:info@gendive.ai",
10254
10249
  style: {
10255
- color: "var(--chatllm-primary, #4A90E2)",
10250
+ color: "var(--chatllm-primary, #3584FA)",
10256
10251
  textDecoration: "none",
10257
10252
  fontWeight: 600
10258
10253
  },
@@ -10330,9 +10325,9 @@ var injectStyles = () => {
10330
10325
  }
10331
10326
 
10332
10327
  .chatllm-root {
10333
- --chatllm-primary: #4A90E2;
10334
- --chatllm-primary-hover: #357ABD;
10335
- --chatllm-primary-light: rgba(74, 144, 226, 0.1);
10328
+ --chatllm-primary: #3584FA;
10329
+ --chatllm-primary-hover: #2D70D5;
10330
+ --chatllm-primary-light: rgba(53, 132, 250, 0.1);
10336
10331
  --chatllm-bg: #F5F5F5;
10337
10332
  --chatllm-bg-secondary: #F5F5F5;
10338
10333
  --chatllm-bg-tertiary: #EDEDED;
@@ -10357,9 +10352,9 @@ var injectStyles = () => {
10357
10352
  }
10358
10353
 
10359
10354
  .chatllm-root.chatllm-dark {
10360
- --chatllm-primary: #60a5fa;
10361
- --chatllm-primary-hover: #3b82f6;
10362
- --chatllm-primary-light: rgba(96, 165, 250, 0.15);
10355
+ --chatllm-primary: #3584FA;
10356
+ --chatllm-primary-hover: #2D70D5;
10357
+ --chatllm-primary-light: rgba(53, 132, 250, 0.15);
10363
10358
  --chatllm-bg: #0f172a;
10364
10359
  --chatllm-bg-secondary: #1e293b;
10365
10360
  --chatllm-bg-tertiary: #334155;
@@ -10424,8 +10419,8 @@ var injectStyles = () => {
10424
10419
  }
10425
10420
 
10426
10421
  .chatllm-input-container:focus-within {
10427
- border-color: rgba(74, 144, 226, 0.3);
10428
- box-shadow: var(--chatllm-shadow-input), 0 0 0 4px rgba(74, 144, 226, 0.05);
10422
+ border-color: rgba(53, 132, 250, 0.3);
10423
+ box-shadow: var(--chatllm-shadow-input), 0 0 0 4px rgba(53, 132, 250, 0.05);
10429
10424
  }
10430
10425
 
10431
10426
  .chatllm-dot-bounce {
@@ -10488,7 +10483,7 @@ var injectStyles = () => {
10488
10483
  border-radius: var(--chatllm-radius);
10489
10484
  font-weight: 600;
10490
10485
  transition: all 0.2s ease;
10491
- box-shadow: 0 2px 8px rgba(74, 144, 226, 0.25);
10486
+ box-shadow: 0 2px 8px rgba(53, 132, 250, 0.25);
10492
10487
  }
10493
10488
 
10494
10489
  .chatllm-btn-primary:hover {
@@ -10511,7 +10506,7 @@ var injectStyles = () => {
10511
10506
 
10512
10507
  .chatllm-btn-secondary:hover {
10513
10508
  background: var(--chatllm-bg-hover);
10514
- border-color: rgba(74, 144, 226, 0.3);
10509
+ border-color: rgba(53, 132, 250, 0.3);
10515
10510
  }
10516
10511
  `;
10517
10512
  document.head.appendChild(style);
@@ -11595,9 +11590,9 @@ var MemoryPanel = ({
11595
11590
  width: "48px",
11596
11591
  height: "48px",
11597
11592
  borderRadius: "50%",
11598
- backgroundColor: "var(--chatllm-primary, #3b82f6)",
11593
+ backgroundColor: "var(--chatllm-primary, #3584FA)",
11599
11594
  border: "none",
11600
- boxShadow: "0 4px 12px rgba(59, 130, 246, 0.3)",
11595
+ boxShadow: "0 4px 12px rgba(53, 132, 250, 0.3)",
11601
11596
  cursor: "pointer",
11602
11597
  display: "flex",
11603
11598
  alignItems: "center",
@@ -11652,7 +11647,7 @@ var MemoryPanel = ({
11652
11647
  alignItems: "center",
11653
11648
  justifyContent: "center"
11654
11649
  },
11655
- children: /* @__PURE__ */ jsx22(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #3b82f6)" })
11650
+ children: /* @__PURE__ */ jsx22(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #3584FA)" })
11656
11651
  }
11657
11652
  ),
11658
11653
  /* @__PURE__ */ jsxs21("div", { children: [
@@ -11716,7 +11711,7 @@ var MemoryPanel = ({
11716
11711
  fontSize: "13px",
11717
11712
  fontWeight: activeTab === tab ? 500 : 400,
11718
11713
  backgroundColor: activeTab === tab ? "var(--chatllm-primary-light, #dbeafe)" : "transparent",
11719
- color: activeTab === tab ? "var(--chatllm-primary, #3b82f6)" : "var(--chatllm-text-muted, #6b7280)",
11714
+ color: activeTab === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #6b7280)",
11720
11715
  border: "none",
11721
11716
  borderRadius: "6px",
11722
11717
  cursor: "pointer",
@@ -11737,7 +11732,7 @@ var MemoryPanel = ({
11737
11732
  marginBottom: "12px",
11738
11733
  backgroundColor: "var(--chatllm-bg-secondary, #f9fafb)",
11739
11734
  borderRadius: "10px",
11740
- borderLeft: "3px solid var(--chatllm-primary, #3b82f6)"
11735
+ borderLeft: "3px solid var(--chatllm-primary, #3584FA)"
11741
11736
  },
11742
11737
  children: [
11743
11738
  /* @__PURE__ */ jsxs21(
@@ -11750,8 +11745,8 @@ var MemoryPanel = ({
11750
11745
  marginBottom: "8px"
11751
11746
  },
11752
11747
  children: [
11753
- /* @__PURE__ */ jsx22(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3b82f6)" }),
11754
- /* @__PURE__ */ jsx22("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3b82f6)" }, children: "\uB300\uD654 \uC694\uC57D" })
11748
+ /* @__PURE__ */ jsx22(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3584FA)" }),
11749
+ /* @__PURE__ */ jsx22("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uB300\uD654 \uC694\uC57D" })
11755
11750
  ]
11756
11751
  }
11757
11752
  ),