@gendive/chatllm 0.17.20 → 0.17.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react/index.d.mts +17 -1
- package/dist/react/index.d.ts +17 -1
- package/dist/react/index.js +572 -453
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +572 -453
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -3843,7 +3843,7 @@ var ProjectSelector = ({
|
|
|
3843
3843
|
width: "8px",
|
|
3844
3844
|
height: "8px",
|
|
3845
3845
|
borderRadius: "50%",
|
|
3846
|
-
backgroundColor: currentProject?.color || "var(--chatllm-primary, #
|
|
3846
|
+
backgroundColor: currentProject?.color || "var(--chatllm-primary, #3584FA)",
|
|
3847
3847
|
flexShrink: 0
|
|
3848
3848
|
}
|
|
3849
3849
|
}
|
|
@@ -3929,7 +3929,7 @@ var ProjectSelector = ({
|
|
|
3929
3929
|
width: "8px",
|
|
3930
3930
|
height: "8px",
|
|
3931
3931
|
borderRadius: "50%",
|
|
3932
|
-
backgroundColor: project.color || "var(--chatllm-primary, #
|
|
3932
|
+
backgroundColor: project.color || "var(--chatllm-primary, #3584FA)",
|
|
3933
3933
|
flexShrink: 0
|
|
3934
3934
|
}
|
|
3935
3935
|
}
|
|
@@ -4003,8 +4003,8 @@ var ProjectSelector = ({
|
|
|
4003
4003
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
4004
4004
|
},
|
|
4005
4005
|
children: [
|
|
4006
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IconSvg, { name: "add-line", size: 16, color: "var(--chatllm-primary, #
|
|
4007
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { fontSize: "13px", fontWeight: 500, color: "var(--chatllm-primary, #
|
|
4006
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IconSvg, { name: "add-line", size: 16, color: "var(--chatllm-primary, #3584FA)" }),
|
|
4007
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { fontSize: "13px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uC0C8 \uD504\uB85C\uC81D\uD2B8" })
|
|
4008
4008
|
]
|
|
4009
4009
|
}
|
|
4010
4010
|
)
|
|
@@ -4497,13 +4497,13 @@ var ChatHeader = ({
|
|
|
4497
4497
|
transition: "all 0.2s"
|
|
4498
4498
|
},
|
|
4499
4499
|
onMouseOver: (e) => {
|
|
4500
|
-
e.currentTarget.style.borderColor = "var(--chatllm-primary, #
|
|
4500
|
+
e.currentTarget.style.borderColor = "var(--chatllm-primary, #3584FA)";
|
|
4501
4501
|
},
|
|
4502
4502
|
onMouseOut: (e) => {
|
|
4503
4503
|
e.currentTarget.style.borderColor = "var(--chatllm-border, #e5e7eb)";
|
|
4504
4504
|
},
|
|
4505
4505
|
children: [
|
|
4506
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(IconSvg, { name: "robot-line", size: 16, color: "var(--chatllm-primary, #
|
|
4506
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(IconSvg, { name: "robot-line", size: 16, color: "var(--chatllm-primary, #3584FA)" }),
|
|
4507
4507
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { fontSize: "14px", fontWeight: 500, color: "var(--chatllm-text, #1f2937)" }, children: currentModel?.name || model }),
|
|
4508
4508
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
4509
4509
|
IconSvg,
|
|
@@ -4600,7 +4600,7 @@ var ChatHeader = ({
|
|
|
4600
4600
|
width: "28px",
|
|
4601
4601
|
height: "28px",
|
|
4602
4602
|
borderRadius: "6px",
|
|
4603
|
-
backgroundColor: m.id === model ? "var(--chatllm-primary, #
|
|
4603
|
+
backgroundColor: m.id === model ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-bg-secondary, #f3f4f6)",
|
|
4604
4604
|
display: "flex",
|
|
4605
4605
|
alignItems: "center",
|
|
4606
4606
|
justifyContent: "center"
|
|
@@ -4634,7 +4634,7 @@ var ChatHeader = ({
|
|
|
4634
4634
|
{
|
|
4635
4635
|
name: "check-line",
|
|
4636
4636
|
size: 16,
|
|
4637
|
-
color: "var(--chatllm-primary, #
|
|
4637
|
+
color: "var(--chatllm-primary, #3584FA)",
|
|
4638
4638
|
className: "ml-auto"
|
|
4639
4639
|
}
|
|
4640
4640
|
)
|
|
@@ -4704,7 +4704,8 @@ var ChatInput = ({
|
|
|
4704
4704
|
onFileAttach,
|
|
4705
4705
|
onRemoveAttachment,
|
|
4706
4706
|
acceptedFileTypes,
|
|
4707
|
-
onDisclaimerClick
|
|
4707
|
+
onDisclaimerClick,
|
|
4708
|
+
inline = false
|
|
4708
4709
|
}) => {
|
|
4709
4710
|
const [mainMenuOpen, setMainMenuOpen] = import_react9.default.useState(false);
|
|
4710
4711
|
const textareaRef = (0, import_react9.useRef)(null);
|
|
@@ -4793,17 +4794,17 @@ var ChatInput = ({
|
|
|
4793
4794
|
{
|
|
4794
4795
|
className: "chatllm-input-footer",
|
|
4795
4796
|
style: {
|
|
4796
|
-
position: "absolute",
|
|
4797
|
-
bottom: 0,
|
|
4798
|
-
left: 0,
|
|
4799
|
-
right: 0,
|
|
4797
|
+
position: inline ? "relative" : "absolute",
|
|
4798
|
+
bottom: inline ? void 0 : 0,
|
|
4799
|
+
left: inline ? void 0 : 0,
|
|
4800
|
+
right: inline ? void 0 : 0,
|
|
4800
4801
|
display: "flex",
|
|
4801
4802
|
flexDirection: "column",
|
|
4802
4803
|
alignItems: "center",
|
|
4803
|
-
paddingBottom: "16px",
|
|
4804
|
-
paddingTop: "64px",
|
|
4805
|
-
background: "linear-gradient(to top, var(--chatllm-bg) 60%, transparent)",
|
|
4806
|
-
pointerEvents: "none"
|
|
4804
|
+
paddingBottom: inline ? "0px" : "16px",
|
|
4805
|
+
paddingTop: inline ? "0px" : "64px",
|
|
4806
|
+
background: inline ? "transparent" : "linear-gradient(to top, var(--chatllm-bg) 60%, transparent)",
|
|
4807
|
+
pointerEvents: inline ? void 0 : "none"
|
|
4807
4808
|
},
|
|
4808
4809
|
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
4809
4810
|
"div",
|
|
@@ -5404,7 +5405,7 @@ var ChatInput = ({
|
|
|
5404
5405
|
]
|
|
5405
5406
|
}
|
|
5406
5407
|
),
|
|
5407
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
5408
|
+
!inline && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
5408
5409
|
"p",
|
|
5409
5410
|
{
|
|
5410
5411
|
onClick: onDisclaimerClick,
|
|
@@ -5785,7 +5786,7 @@ var parseInlineElements = (text, key, sources) => {
|
|
|
5785
5786
|
target: "_blank",
|
|
5786
5787
|
rel: "noopener noreferrer",
|
|
5787
5788
|
style: {
|
|
5788
|
-
color: "var(--chatllm-link, #
|
|
5789
|
+
color: "var(--chatllm-link, #3584FA)",
|
|
5789
5790
|
textDecoration: "none"
|
|
5790
5791
|
},
|
|
5791
5792
|
children: match[1]
|
|
@@ -5814,7 +5815,7 @@ var parseInlineElements = (text, key, sources) => {
|
|
|
5814
5815
|
height: "18px",
|
|
5815
5816
|
borderRadius: "50%",
|
|
5816
5817
|
backgroundColor: "var(--chatllm-primary-light, #dbeafe)",
|
|
5817
|
-
color: "var(--chatllm-primary, #
|
|
5818
|
+
color: "var(--chatllm-primary, #3584FA)",
|
|
5818
5819
|
fontSize: "11px",
|
|
5819
5820
|
fontWeight: 600,
|
|
5820
5821
|
textDecoration: "none",
|
|
@@ -5956,7 +5957,7 @@ var ThinkingSpinner = () => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
|
5956
5957
|
width: "12px",
|
|
5957
5958
|
height: "12px",
|
|
5958
5959
|
border: "2px solid var(--chatllm-border, #e5e7eb)",
|
|
5959
|
-
borderTopColor: "var(--chatllm-primary, #
|
|
5960
|
+
borderTopColor: "var(--chatllm-primary, #3584FA)",
|
|
5960
5961
|
borderRadius: "50%",
|
|
5961
5962
|
animation: "chatllm-spin 0.8s linear infinite"
|
|
5962
5963
|
}
|
|
@@ -6397,7 +6398,7 @@ var ChoiceButtons = ({ choices, title, onChoiceClick }) => {
|
|
|
6397
6398
|
width: "28px",
|
|
6398
6399
|
height: "28px",
|
|
6399
6400
|
borderRadius: "50%",
|
|
6400
|
-
backgroundColor: hoveredIndex === index ? "var(--chatllm-primary, #
|
|
6401
|
+
backgroundColor: hoveredIndex === index ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-bg-tertiary, #f3f4f6)",
|
|
6401
6402
|
color: hoveredIndex === index ? "#ffffff" : "var(--chatllm-text, #374151)",
|
|
6402
6403
|
fontSize: "14px",
|
|
6403
6404
|
fontWeight: 600,
|
|
@@ -6607,7 +6608,7 @@ var MarkdownRenderer = ({
|
|
|
6607
6608
|
style: {
|
|
6608
6609
|
margin: "12px 0",
|
|
6609
6610
|
padding: "12px 16px",
|
|
6610
|
-
borderLeft: "4px solid var(--chatllm-primary, #
|
|
6611
|
+
borderLeft: "4px solid var(--chatllm-primary, #3584FA)",
|
|
6611
6612
|
backgroundColor: "var(--chatllm-bg-secondary, #f9fafb)",
|
|
6612
6613
|
borderRadius: "0 8px 8px 0",
|
|
6613
6614
|
color: "var(--chatllm-text, #374151)"
|
|
@@ -6667,7 +6668,7 @@ var MarkdownRenderer = ({
|
|
|
6667
6668
|
width: "18px",
|
|
6668
6669
|
height: "18px",
|
|
6669
6670
|
borderRadius: "50%",
|
|
6670
|
-
border: "2px solid var(--chatllm-primary, #
|
|
6671
|
+
border: "2px solid var(--chatllm-primary, #3584FA)",
|
|
6671
6672
|
borderTopColor: "transparent",
|
|
6672
6673
|
animation: "chatllm-spin 0.8s linear infinite"
|
|
6673
6674
|
}
|
|
@@ -7310,11 +7311,11 @@ var PollCard = ({
|
|
|
7310
7311
|
padding: "12px 16px",
|
|
7311
7312
|
backgroundColor: isActive ? "var(--chatllm-content-bg, #fff)" : "transparent",
|
|
7312
7313
|
border: "none",
|
|
7313
|
-
borderBottom: isActive ? "2px solid var(--chatllm-primary, #
|
|
7314
|
+
borderBottom: isActive ? "2px solid var(--chatllm-primary, #3584FA)" : "2px solid transparent",
|
|
7314
7315
|
cursor: "pointer",
|
|
7315
7316
|
fontSize: "13px",
|
|
7316
7317
|
fontWeight: isActive ? 600 : 500,
|
|
7317
|
-
color: isActive ? "var(--chatllm-primary, #
|
|
7318
|
+
color: isActive ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #64748b)",
|
|
7318
7319
|
display: "flex",
|
|
7319
7320
|
alignItems: "center",
|
|
7320
7321
|
justifyContent: "center",
|
|
@@ -7381,8 +7382,8 @@ var PollCard = ({
|
|
|
7381
7382
|
alignItems: "flex-start",
|
|
7382
7383
|
gap: "12px",
|
|
7383
7384
|
padding: "12px 14px",
|
|
7384
|
-
backgroundColor: isSelected ? "var(--chatllm-primary-light, rgba(
|
|
7385
|
-
border: isSelected ? "1px solid var(--chatllm-primary, #
|
|
7385
|
+
backgroundColor: isSelected ? "var(--chatllm-primary-light, rgba(53, 132, 250, 0.08))" : "transparent",
|
|
7386
|
+
border: isSelected ? "1px solid var(--chatllm-primary, #3584FA)" : "1px solid var(--chatllm-border, #e5e7eb)",
|
|
7386
7387
|
borderRadius: "8px",
|
|
7387
7388
|
cursor: "pointer",
|
|
7388
7389
|
textAlign: "left",
|
|
@@ -7399,8 +7400,8 @@ var PollCard = ({
|
|
|
7399
7400
|
width: "20px",
|
|
7400
7401
|
height: "20px",
|
|
7401
7402
|
borderRadius: currentQuestion.multiSelect ? "4px" : "50%",
|
|
7402
|
-
border: `2px solid ${isSelected ? "var(--chatllm-primary, #
|
|
7403
|
-
backgroundColor: isSelected ? "var(--chatllm-primary, #
|
|
7403
|
+
border: `2px solid ${isSelected ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-border, #d1d5db)"}`,
|
|
7404
|
+
backgroundColor: isSelected ? "var(--chatllm-primary, #3584FA)" : "transparent",
|
|
7404
7405
|
display: "flex",
|
|
7405
7406
|
alignItems: "center",
|
|
7406
7407
|
justifyContent: "center",
|
|
@@ -7455,8 +7456,8 @@ var PollCard = ({
|
|
|
7455
7456
|
alignItems: "center",
|
|
7456
7457
|
gap: "12px",
|
|
7457
7458
|
padding: "12px 14px",
|
|
7458
|
-
backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary-light, rgba(
|
|
7459
|
-
border: otherSelected[currentQuestion.id] ? "1px solid var(--chatllm-primary, #
|
|
7459
|
+
backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary-light, rgba(53, 132, 250, 0.08))" : "transparent",
|
|
7460
|
+
border: otherSelected[currentQuestion.id] ? "1px solid var(--chatllm-primary, #3584FA)" : "1px solid var(--chatllm-border, #e5e7eb)",
|
|
7460
7461
|
borderRadius: "8px",
|
|
7461
7462
|
cursor: "pointer",
|
|
7462
7463
|
textAlign: "left",
|
|
@@ -7472,8 +7473,8 @@ var PollCard = ({
|
|
|
7472
7473
|
width: "20px",
|
|
7473
7474
|
height: "20px",
|
|
7474
7475
|
borderRadius: currentQuestion.multiSelect ? "4px" : "50%",
|
|
7475
|
-
border: `2px solid ${otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #
|
|
7476
|
-
backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #
|
|
7476
|
+
border: `2px solid ${otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-border, #d1d5db)"}`,
|
|
7477
|
+
backgroundColor: otherSelected[currentQuestion.id] ? "var(--chatllm-primary, #3584FA)" : "transparent",
|
|
7477
7478
|
display: "flex",
|
|
7478
7479
|
alignItems: "center",
|
|
7479
7480
|
justifyContent: "center",
|
|
@@ -7548,7 +7549,7 @@ var PollCard = ({
|
|
|
7548
7549
|
disabled: !currentHasSelection,
|
|
7549
7550
|
style: {
|
|
7550
7551
|
padding: "8px 20px",
|
|
7551
|
-
backgroundColor: currentHasSelection ? "var(--chatllm-primary, #
|
|
7552
|
+
backgroundColor: currentHasSelection ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-bg-disabled, #e5e7eb)",
|
|
7552
7553
|
border: "none",
|
|
7553
7554
|
borderRadius: "6px",
|
|
7554
7555
|
color: currentHasSelection ? "#fff" : "var(--chatllm-text-muted, #94a3b8)",
|
|
@@ -7613,7 +7614,7 @@ var SkillProgressUI = ({
|
|
|
7613
7614
|
marginTop: "8px",
|
|
7614
7615
|
backgroundColor: isError ? "rgba(239, 68, 68, 0.08)" : "var(--chatllm-primary-light)",
|
|
7615
7616
|
borderRadius: "12px",
|
|
7616
|
-
border: `1px solid ${isError ? "rgba(239, 68, 68, 0.2)" : "rgba(
|
|
7617
|
+
border: `1px solid ${isError ? "rgba(239, 68, 68, 0.2)" : "rgba(53, 132, 250, 0.15)"}`
|
|
7617
7618
|
},
|
|
7618
7619
|
children: [
|
|
7619
7620
|
isExecuting && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
@@ -7851,13 +7852,13 @@ var FileContentCard = ({ part }) => {
|
|
|
7851
7852
|
width: "36px",
|
|
7852
7853
|
height: "36px",
|
|
7853
7854
|
borderRadius: "8px",
|
|
7854
|
-
backgroundColor: "var(--chatllm-primary-light, rgba(
|
|
7855
|
+
backgroundColor: "var(--chatllm-primary-light, rgba(53, 132, 250, 0.1))",
|
|
7855
7856
|
display: "flex",
|
|
7856
7857
|
alignItems: "center",
|
|
7857
7858
|
justifyContent: "center",
|
|
7858
7859
|
flexShrink: 0
|
|
7859
7860
|
},
|
|
7860
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(IconSvg, { name: getFileIcon(part.mimeType), size: 18, color: "var(--chatllm-primary, #
|
|
7861
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(IconSvg, { name: getFileIcon(part.mimeType), size: 18, color: "var(--chatllm-primary, #3584FA)" })
|
|
7861
7862
|
}
|
|
7862
7863
|
),
|
|
7863
7864
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -7969,7 +7970,7 @@ var ToolStatusCard = ({
|
|
|
7969
7970
|
width: 14,
|
|
7970
7971
|
height: 14,
|
|
7971
7972
|
borderRadius: "50%",
|
|
7972
|
-
border: "2px solid var(--chatllm-primary, #
|
|
7973
|
+
border: "2px solid var(--chatllm-primary, #3584FA)",
|
|
7973
7974
|
borderTopColor: "transparent",
|
|
7974
7975
|
animation: "chatllm-spin 1s linear infinite",
|
|
7975
7976
|
flexShrink: 0
|
|
@@ -8645,7 +8646,7 @@ var MessageBubble = ({
|
|
|
8645
8646
|
backgroundColor: "var(--chatllm-primary-light, #eff6ff)",
|
|
8646
8647
|
borderRadius: "8px",
|
|
8647
8648
|
fontSize: "13px",
|
|
8648
|
-
color: "var(--chatllm-primary, #
|
|
8649
|
+
color: "var(--chatllm-primary, #3584FA)"
|
|
8649
8650
|
},
|
|
8650
8651
|
children: [
|
|
8651
8652
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { display: "flex", gap: "4px", alignItems: "center" }, children: [
|
|
@@ -9049,147 +9050,9 @@ var MessageList = ({
|
|
|
9049
9050
|
);
|
|
9050
9051
|
};
|
|
9051
9052
|
|
|
9052
|
-
// src/react/components/EmptyState.tsx
|
|
9053
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
9054
|
-
var EmptyState = ({
|
|
9055
|
-
greeting,
|
|
9056
|
-
templates = [],
|
|
9057
|
-
onTemplateClick,
|
|
9058
|
-
actions = [],
|
|
9059
|
-
onActionSelect
|
|
9060
|
-
}) => {
|
|
9061
|
-
const getActionIcon = (icon) => {
|
|
9062
|
-
const iconMap = {
|
|
9063
|
-
search: "search-line",
|
|
9064
|
-
image: "image-line",
|
|
9065
|
-
code: "code-s-slash-line",
|
|
9066
|
-
document: "file-text-line"
|
|
9067
|
-
};
|
|
9068
|
-
return iconMap[icon] || "sparkling-line";
|
|
9069
|
-
};
|
|
9070
|
-
const hasContent = actions.length > 0 || templates.length > 0;
|
|
9071
|
-
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9072
|
-
"div",
|
|
9073
|
-
{
|
|
9074
|
-
className: "chatllm-empty-state",
|
|
9075
|
-
style: {
|
|
9076
|
-
flex: 1,
|
|
9077
|
-
display: "flex",
|
|
9078
|
-
flexDirection: "column",
|
|
9079
|
-
alignItems: "center",
|
|
9080
|
-
justifyContent: hasContent ? "center" : "flex-end",
|
|
9081
|
-
padding: "48px 24px",
|
|
9082
|
-
paddingBottom: hasContent ? "200px" : "32px",
|
|
9083
|
-
textAlign: "center"
|
|
9084
|
-
},
|
|
9085
|
-
children: [
|
|
9086
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9087
|
-
"div",
|
|
9088
|
-
{
|
|
9089
|
-
className: "chatllm-sheet",
|
|
9090
|
-
style: {
|
|
9091
|
-
width: "64px",
|
|
9092
|
-
height: "64px",
|
|
9093
|
-
borderRadius: "16px",
|
|
9094
|
-
display: "flex",
|
|
9095
|
-
alignItems: "center",
|
|
9096
|
-
justifyContent: "center",
|
|
9097
|
-
marginBottom: "32px",
|
|
9098
|
-
color: "var(--chatllm-primary)"
|
|
9099
|
-
},
|
|
9100
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconSvg, { name: "chat-1-line", size: 40 })
|
|
9101
|
-
}
|
|
9102
|
-
),
|
|
9103
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9104
|
-
"h1",
|
|
9105
|
-
{
|
|
9106
|
-
style: {
|
|
9107
|
-
fontSize: "30px",
|
|
9108
|
-
fontWeight: 700,
|
|
9109
|
-
color: "var(--chatllm-text)",
|
|
9110
|
-
marginBottom: hasContent ? "40px" : "0",
|
|
9111
|
-
lineHeight: 1.3
|
|
9112
|
-
},
|
|
9113
|
-
children: "How can I help you today?"
|
|
9114
|
-
}
|
|
9115
|
-
),
|
|
9116
|
-
(actions.length > 0 || templates.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9117
|
-
"div",
|
|
9118
|
-
{
|
|
9119
|
-
style: {
|
|
9120
|
-
display: "flex",
|
|
9121
|
-
flexWrap: "wrap",
|
|
9122
|
-
justifyContent: "center",
|
|
9123
|
-
gap: "12px",
|
|
9124
|
-
maxWidth: "800px",
|
|
9125
|
-
marginBottom: "48px"
|
|
9126
|
-
},
|
|
9127
|
-
children: [
|
|
9128
|
-
actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9129
|
-
"button",
|
|
9130
|
-
{
|
|
9131
|
-
onClick: () => onActionSelect?.(action),
|
|
9132
|
-
className: "chatllm-btn-secondary",
|
|
9133
|
-
style: {
|
|
9134
|
-
display: "flex",
|
|
9135
|
-
alignItems: "center",
|
|
9136
|
-
gap: "8px",
|
|
9137
|
-
padding: "12px 20px",
|
|
9138
|
-
fontSize: "14px",
|
|
9139
|
-
fontWeight: 500
|
|
9140
|
-
},
|
|
9141
|
-
children: [
|
|
9142
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9143
|
-
IconSvg,
|
|
9144
|
-
{
|
|
9145
|
-
name: getActionIcon(action.icon),
|
|
9146
|
-
size: 18,
|
|
9147
|
-
color: "var(--chatllm-primary)"
|
|
9148
|
-
}
|
|
9149
|
-
),
|
|
9150
|
-
action.label
|
|
9151
|
-
]
|
|
9152
|
-
},
|
|
9153
|
-
action.id
|
|
9154
|
-
)),
|
|
9155
|
-
templates.slice(0, 4).map((template) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9156
|
-
"button",
|
|
9157
|
-
{
|
|
9158
|
-
onClick: () => onTemplateClick(template),
|
|
9159
|
-
className: "chatllm-btn-secondary",
|
|
9160
|
-
style: {
|
|
9161
|
-
display: "flex",
|
|
9162
|
-
alignItems: "center",
|
|
9163
|
-
gap: "8px",
|
|
9164
|
-
padding: "12px 20px",
|
|
9165
|
-
fontSize: "14px",
|
|
9166
|
-
fontWeight: 500
|
|
9167
|
-
},
|
|
9168
|
-
children: [
|
|
9169
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9170
|
-
IconSvg,
|
|
9171
|
-
{
|
|
9172
|
-
name: "sparkling-line",
|
|
9173
|
-
size: 18,
|
|
9174
|
-
color: "var(--chatllm-primary)"
|
|
9175
|
-
}
|
|
9176
|
-
),
|
|
9177
|
-
template.title
|
|
9178
|
-
]
|
|
9179
|
-
},
|
|
9180
|
-
template.id
|
|
9181
|
-
))
|
|
9182
|
-
]
|
|
9183
|
-
}
|
|
9184
|
-
)
|
|
9185
|
-
]
|
|
9186
|
-
}
|
|
9187
|
-
);
|
|
9188
|
-
};
|
|
9189
|
-
|
|
9190
9053
|
// src/react/components/SettingsModal.tsx
|
|
9191
9054
|
var import_react18 = require("react");
|
|
9192
|
-
var
|
|
9055
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
9193
9056
|
var DEFAULT_PERSONALIZATION2 = {
|
|
9194
9057
|
responseStyle: {
|
|
9195
9058
|
warmth: "medium",
|
|
@@ -9249,7 +9112,7 @@ var SettingsModal = ({
|
|
|
9249
9112
|
setLocalApiKey(value);
|
|
9250
9113
|
onApiKeyChange?.(value);
|
|
9251
9114
|
};
|
|
9252
|
-
return /* @__PURE__ */ (0,
|
|
9115
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9253
9116
|
"div",
|
|
9254
9117
|
{
|
|
9255
9118
|
className: "chatllm-settings-overlay",
|
|
@@ -9263,7 +9126,7 @@ var SettingsModal = ({
|
|
|
9263
9126
|
zIndex: 1e3
|
|
9264
9127
|
},
|
|
9265
9128
|
onClick: onClose,
|
|
9266
|
-
children: /* @__PURE__ */ (0,
|
|
9129
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9267
9130
|
"div",
|
|
9268
9131
|
{
|
|
9269
9132
|
className: "chatllm-settings-modal",
|
|
@@ -9281,7 +9144,7 @@ var SettingsModal = ({
|
|
|
9281
9144
|
},
|
|
9282
9145
|
onClick: (e) => e.stopPropagation(),
|
|
9283
9146
|
children: [
|
|
9284
|
-
/* @__PURE__ */ (0,
|
|
9147
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9285
9148
|
"div",
|
|
9286
9149
|
{
|
|
9287
9150
|
style: {
|
|
@@ -9292,7 +9155,7 @@ var SettingsModal = ({
|
|
|
9292
9155
|
flexDirection: "column"
|
|
9293
9156
|
},
|
|
9294
9157
|
children: [
|
|
9295
|
-
/* @__PURE__ */ (0,
|
|
9158
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { padding: "16px", borderBottom: "1px solid var(--chatllm-border, #e5e7eb)" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9296
9159
|
"button",
|
|
9297
9160
|
{
|
|
9298
9161
|
onClick: onClose,
|
|
@@ -9306,11 +9169,11 @@ var SettingsModal = ({
|
|
|
9306
9169
|
alignItems: "center",
|
|
9307
9170
|
justifyContent: "center"
|
|
9308
9171
|
},
|
|
9309
|
-
children: /* @__PURE__ */ (0,
|
|
9172
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconSvg, { name: "close-line", size: 20, color: "var(--chatllm-text-muted, #6b7280)" })
|
|
9310
9173
|
}
|
|
9311
9174
|
) }),
|
|
9312
|
-
/* @__PURE__ */ (0,
|
|
9313
|
-
/* @__PURE__ */ (0,
|
|
9175
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("nav", { style: { flex: 1, padding: "8px" }, children: [
|
|
9176
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9314
9177
|
TabButton,
|
|
9315
9178
|
{
|
|
9316
9179
|
active: activeTab === "general",
|
|
@@ -9319,7 +9182,7 @@ var SettingsModal = ({
|
|
|
9319
9182
|
label: "\uC77C\uBC18"
|
|
9320
9183
|
}
|
|
9321
9184
|
),
|
|
9322
|
-
/* @__PURE__ */ (0,
|
|
9185
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9323
9186
|
TabButton,
|
|
9324
9187
|
{
|
|
9325
9188
|
active: activeTab === "personalization",
|
|
@@ -9328,7 +9191,7 @@ var SettingsModal = ({
|
|
|
9328
9191
|
label: "\uAC1C\uC778 \uB9DE\uCDA4 \uC124\uC815"
|
|
9329
9192
|
}
|
|
9330
9193
|
),
|
|
9331
|
-
showMemoryTab && /* @__PURE__ */ (0,
|
|
9194
|
+
showMemoryTab && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9332
9195
|
TabButton,
|
|
9333
9196
|
{
|
|
9334
9197
|
active: activeTab === "memory",
|
|
@@ -9337,7 +9200,7 @@ var SettingsModal = ({
|
|
|
9337
9200
|
label: "AI \uBA54\uBAA8\uB9AC"
|
|
9338
9201
|
}
|
|
9339
9202
|
),
|
|
9340
|
-
showMemoryTab && enableProjects && /* @__PURE__ */ (0,
|
|
9203
|
+
showMemoryTab && enableProjects && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9341
9204
|
TabButton,
|
|
9342
9205
|
{
|
|
9343
9206
|
active: activeTab === "project-memory",
|
|
@@ -9346,7 +9209,7 @@ var SettingsModal = ({
|
|
|
9346
9209
|
label: "\uD504\uB85C\uC81D\uD2B8 \uBA54\uBAA8\uB9AC"
|
|
9347
9210
|
}
|
|
9348
9211
|
),
|
|
9349
|
-
/* @__PURE__ */ (0,
|
|
9212
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9350
9213
|
TabButton,
|
|
9351
9214
|
{
|
|
9352
9215
|
active: activeTab === "data",
|
|
@@ -9359,24 +9222,24 @@ var SettingsModal = ({
|
|
|
9359
9222
|
]
|
|
9360
9223
|
}
|
|
9361
9224
|
),
|
|
9362
|
-
/* @__PURE__ */ (0,
|
|
9363
|
-
activeTab === "general" && /* @__PURE__ */ (0,
|
|
9364
|
-
/* @__PURE__ */ (0,
|
|
9365
|
-
/* @__PURE__ */ (0,
|
|
9225
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { flex: 1, overflow: "auto", padding: "24px" }, children: [
|
|
9226
|
+
activeTab === "general" && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9227
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { style: { fontSize: "20px", fontWeight: 600, marginBottom: "24px", color: "var(--chatllm-text, #1f2937)" }, children: "\uC77C\uBC18" }),
|
|
9228
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uC5B8\uC5B4", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9366
9229
|
"select",
|
|
9367
9230
|
{
|
|
9368
9231
|
value: personalization.language,
|
|
9369
9232
|
onChange: (e) => onPersonalizationChange({ ...personalization, language: e.target.value }),
|
|
9370
9233
|
style: selectStyle,
|
|
9371
9234
|
children: [
|
|
9372
|
-
/* @__PURE__ */ (0,
|
|
9373
|
-
/* @__PURE__ */ (0,
|
|
9374
|
-
/* @__PURE__ */ (0,
|
|
9375
|
-
/* @__PURE__ */ (0,
|
|
9235
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "auto", children: "\uC790\uB3D9 \uD0D0\uC9C0" }),
|
|
9236
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "ko", children: "\uD55C\uAD6D\uC5B4" }),
|
|
9237
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "en", children: "English" }),
|
|
9238
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "ja", children: "\u65E5\u672C\u8A9E" })
|
|
9376
9239
|
]
|
|
9377
9240
|
}
|
|
9378
9241
|
) }),
|
|
9379
|
-
/* @__PURE__ */ (0,
|
|
9242
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uAE30\uBCF8\uAC12\uC73C\uB85C \uCD08\uAE30\uD654", description: "\uBAA8\uB4E0 \uC124\uC815\uC744 \uCD08\uAE30 \uC0C1\uD0DC\uB85C \uB418\uB3CC\uB9BD\uB2C8\uB2E4", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9380
9243
|
"button",
|
|
9381
9244
|
{
|
|
9382
9245
|
onClick: () => onPersonalizationChange(DEFAULT_PERSONALIZATION2),
|
|
@@ -9384,11 +9247,11 @@ var SettingsModal = ({
|
|
|
9384
9247
|
children: "\uCD08\uAE30\uD654"
|
|
9385
9248
|
}
|
|
9386
9249
|
) }),
|
|
9387
|
-
onApiKeyChange && /* @__PURE__ */ (0,
|
|
9388
|
-
/* @__PURE__ */ (0,
|
|
9389
|
-
/* @__PURE__ */ (0,
|
|
9390
|
-
/* @__PURE__ */ (0,
|
|
9391
|
-
/* @__PURE__ */ (0,
|
|
9250
|
+
onApiKeyChange && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { marginTop: "32px", paddingTop: "24px", borderTop: "1px solid var(--chatllm-border, #e5e7eb)" }, children: [
|
|
9251
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "16px", fontWeight: 500, marginBottom: "16px", color: "var(--chatllm-text, #1f2937)" }, children: "API \uC124\uC815" }),
|
|
9252
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9253
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("label", { style: { display: "block", fontSize: "14px", marginBottom: "8px", color: "var(--chatllm-text, #374151)" }, children: apiKeyLabel }),
|
|
9254
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9392
9255
|
"input",
|
|
9393
9256
|
{
|
|
9394
9257
|
type: "password",
|
|
@@ -9398,18 +9261,18 @@ var SettingsModal = ({
|
|
|
9398
9261
|
style: inputStyle
|
|
9399
9262
|
}
|
|
9400
9263
|
),
|
|
9401
|
-
/* @__PURE__ */ (0,
|
|
9264
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { style: { fontSize: "12px", color: "var(--chatllm-text-muted, #9ca3af)", marginTop: "4px" }, children: apiKeyDescription })
|
|
9402
9265
|
] })
|
|
9403
9266
|
] })
|
|
9404
9267
|
] }),
|
|
9405
|
-
activeTab === "personalization" && /* @__PURE__ */ (0,
|
|
9406
|
-
/* @__PURE__ */ (0,
|
|
9407
|
-
/* @__PURE__ */ (0,
|
|
9408
|
-
/* @__PURE__ */ (0,
|
|
9409
|
-
/* @__PURE__ */ (0,
|
|
9410
|
-
/* @__PURE__ */ (0,
|
|
9411
|
-
/* @__PURE__ */ (0,
|
|
9412
|
-
/* @__PURE__ */ (0,
|
|
9268
|
+
activeTab === "personalization" && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9269
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { style: { fontSize: "20px", fontWeight: 600, marginBottom: "24px", color: "var(--chatllm-text, #1f2937)" }, children: "\uAC1C\uC778 \uB9DE\uCDA4 \uC124\uC815" }),
|
|
9270
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { style: { marginBottom: "32px" }, children: [
|
|
9271
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "14px", fontWeight: 500, color: "var(--chatllm-text-muted, #6b7280)", marginBottom: "16px" }, children: "\uC0AC\uC6A9\uC790 \uD504\uB85C\uD544" }),
|
|
9272
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
|
|
9273
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9274
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("label", { style: labelStyle, children: "\uB2C9\uB124\uC784" }),
|
|
9275
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9413
9276
|
"input",
|
|
9414
9277
|
{
|
|
9415
9278
|
type: "text",
|
|
@@ -9420,9 +9283,9 @@ var SettingsModal = ({
|
|
|
9420
9283
|
}
|
|
9421
9284
|
)
|
|
9422
9285
|
] }),
|
|
9423
|
-
/* @__PURE__ */ (0,
|
|
9424
|
-
/* @__PURE__ */ (0,
|
|
9425
|
-
/* @__PURE__ */ (0,
|
|
9286
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9287
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("label", { style: labelStyle, children: "\uC9C1\uC5C5" }),
|
|
9288
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9426
9289
|
"input",
|
|
9427
9290
|
{
|
|
9428
9291
|
type: "text",
|
|
@@ -9433,9 +9296,9 @@ var SettingsModal = ({
|
|
|
9433
9296
|
}
|
|
9434
9297
|
)
|
|
9435
9298
|
] }),
|
|
9436
|
-
/* @__PURE__ */ (0,
|
|
9437
|
-
/* @__PURE__ */ (0,
|
|
9438
|
-
/* @__PURE__ */ (0,
|
|
9299
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9300
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("label", { style: labelStyle, children: "\uCD94\uAC00 \uC815\uBCF4" }),
|
|
9301
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9439
9302
|
"textarea",
|
|
9440
9303
|
{
|
|
9441
9304
|
value: personalization.userProfile.additionalInfo || "",
|
|
@@ -9448,68 +9311,68 @@ var SettingsModal = ({
|
|
|
9448
9311
|
] })
|
|
9449
9312
|
] })
|
|
9450
9313
|
] }),
|
|
9451
|
-
/* @__PURE__ */ (0,
|
|
9452
|
-
/* @__PURE__ */ (0,
|
|
9453
|
-
/* @__PURE__ */ (0,
|
|
9314
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("section", { children: [
|
|
9315
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { style: { fontSize: "14px", fontWeight: 500, color: "var(--chatllm-text-muted, #6b7280)", marginBottom: "16px" }, children: "\uC751\uB2F5 \uC2A4\uD0C0\uC77C" }),
|
|
9316
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uB530\uB73B\uD568", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9454
9317
|
"select",
|
|
9455
9318
|
{
|
|
9456
9319
|
value: personalization.responseStyle.warmth,
|
|
9457
9320
|
onChange: (e) => updateResponseStyle("warmth", e.target.value),
|
|
9458
9321
|
style: selectStyle,
|
|
9459
9322
|
children: [
|
|
9460
|
-
/* @__PURE__ */ (0,
|
|
9461
|
-
/* @__PURE__ */ (0,
|
|
9462
|
-
/* @__PURE__ */ (0,
|
|
9323
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "high", children: "\uB192\uC74C - \uCE5C\uADFC\uD558\uACE0 \uB530\uB73B\uD558\uAC8C" }),
|
|
9324
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "medium", children: "\uAE30\uBCF8\uAC12" }),
|
|
9325
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "low", children: "\uB0AE\uC74C - \uAC04\uACB0\uD558\uACE0 \uC0AC\uBB34\uC801\uC73C\uB85C" })
|
|
9463
9326
|
]
|
|
9464
9327
|
}
|
|
9465
9328
|
) }),
|
|
9466
|
-
/* @__PURE__ */ (0,
|
|
9329
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uC5F4\uC815\uC801", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9467
9330
|
"select",
|
|
9468
9331
|
{
|
|
9469
9332
|
value: personalization.responseStyle.enthusiasm,
|
|
9470
9333
|
onChange: (e) => updateResponseStyle("enthusiasm", e.target.value),
|
|
9471
9334
|
style: selectStyle,
|
|
9472
9335
|
children: [
|
|
9473
|
-
/* @__PURE__ */ (0,
|
|
9474
|
-
/* @__PURE__ */ (0,
|
|
9475
|
-
/* @__PURE__ */ (0,
|
|
9336
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "high", children: "\uB192\uC74C - \uC801\uADF9\uC801\uC774\uACE0 \uD65C\uBC1C\uD558\uAC8C" }),
|
|
9337
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "medium", children: "\uAE30\uBCF8\uAC12" }),
|
|
9338
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "low", children: "\uB0AE\uC74C - \uCC28\uBD84\uD558\uACE0 \uC808\uC81C\uC788\uAC8C" })
|
|
9476
9339
|
]
|
|
9477
9340
|
}
|
|
9478
9341
|
) }),
|
|
9479
|
-
/* @__PURE__ */ (0,
|
|
9342
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uC774\uBAA8\uC9C0 \uC0AC\uC6A9", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9480
9343
|
"select",
|
|
9481
9344
|
{
|
|
9482
9345
|
value: personalization.responseStyle.emojiUsage,
|
|
9483
9346
|
onChange: (e) => updateResponseStyle("emojiUsage", e.target.value),
|
|
9484
9347
|
style: selectStyle,
|
|
9485
9348
|
children: [
|
|
9486
|
-
/* @__PURE__ */ (0,
|
|
9487
|
-
/* @__PURE__ */ (0,
|
|
9488
|
-
/* @__PURE__ */ (0,
|
|
9349
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "high", children: "\uB192\uC74C - \uC790\uC8FC \uC0AC\uC6A9" }),
|
|
9350
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "medium", children: "\uAE30\uBCF8\uAC12" }),
|
|
9351
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "low", children: "\uB0AE\uC74C - \uAC70\uC758 \uC0AC\uC6A9 \uC548 \uD568" })
|
|
9489
9352
|
]
|
|
9490
9353
|
}
|
|
9491
9354
|
) }),
|
|
9492
|
-
/* @__PURE__ */ (0,
|
|
9355
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uC751\uB2F5 \uAE38\uC774", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9493
9356
|
"select",
|
|
9494
9357
|
{
|
|
9495
9358
|
value: personalization.responseStyle.verbosity,
|
|
9496
9359
|
onChange: (e) => updateResponseStyle("verbosity", e.target.value),
|
|
9497
9360
|
style: selectStyle,
|
|
9498
9361
|
children: [
|
|
9499
|
-
/* @__PURE__ */ (0,
|
|
9500
|
-
/* @__PURE__ */ (0,
|
|
9501
|
-
/* @__PURE__ */ (0,
|
|
9362
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "detailed", children: "\uC0C1\uC138 - \uC790\uC138\uD558\uAC8C \uC124\uBA85" }),
|
|
9363
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "balanced", children: "\uAE30\uBCF8\uAC12" }),
|
|
9364
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("option", { value: "concise", children: "\uAC04\uACB0 - \uD575\uC2EC\uB9CC \uC694\uC57D" })
|
|
9502
9365
|
]
|
|
9503
9366
|
}
|
|
9504
9367
|
) })
|
|
9505
9368
|
] }),
|
|
9506
|
-
onSave && /* @__PURE__ */ (0,
|
|
9369
|
+
onSave && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { marginTop: "24px", display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9507
9370
|
"button",
|
|
9508
9371
|
{
|
|
9509
9372
|
onClick: onSave,
|
|
9510
9373
|
style: {
|
|
9511
9374
|
padding: "10px 24px",
|
|
9512
|
-
backgroundColor: "var(--chatllm-primary, #
|
|
9375
|
+
backgroundColor: "var(--chatllm-primary, #3584FA)",
|
|
9513
9376
|
color: "#fff",
|
|
9514
9377
|
border: "none",
|
|
9515
9378
|
borderRadius: "8px",
|
|
@@ -9524,7 +9387,7 @@ var SettingsModal = ({
|
|
|
9524
9387
|
}
|
|
9525
9388
|
) })
|
|
9526
9389
|
] }),
|
|
9527
|
-
activeTab === "memory" && showMemoryTab && /* @__PURE__ */ (0,
|
|
9390
|
+
activeTab === "memory" && showMemoryTab && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9528
9391
|
MemoryTabContent,
|
|
9529
9392
|
{
|
|
9530
9393
|
items: memoryItems,
|
|
@@ -9533,7 +9396,7 @@ var SettingsModal = ({
|
|
|
9533
9396
|
onClearAll: onClearMemory
|
|
9534
9397
|
}
|
|
9535
9398
|
),
|
|
9536
|
-
activeTab === "project-memory" && showMemoryTab && enableProjects && /* @__PURE__ */ (0,
|
|
9399
|
+
activeTab === "project-memory" && showMemoryTab && enableProjects && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9537
9400
|
MemoryTabContent,
|
|
9538
9401
|
{
|
|
9539
9402
|
items: projectMemoryItems,
|
|
@@ -9544,9 +9407,9 @@ var SettingsModal = ({
|
|
|
9544
9407
|
emptyDescription: "\uB300\uD654\uAC00 \uC9C4\uD589\uB418\uBA74 AI\uAC00 \uD504\uB85C\uC81D\uD2B8 \uB9E5\uB77D\uC744 \uC790\uB3D9\uC73C\uB85C \uD559\uC2B5\uD569\uB2C8\uB2E4"
|
|
9545
9408
|
}
|
|
9546
9409
|
),
|
|
9547
|
-
activeTab === "data" && /* @__PURE__ */ (0,
|
|
9548
|
-
/* @__PURE__ */ (0,
|
|
9549
|
-
/* @__PURE__ */ (0,
|
|
9410
|
+
activeTab === "data" && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9411
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { style: { fontSize: "20px", fontWeight: 600, marginBottom: "24px", color: "var(--chatllm-text, #1f2937)" }, children: "\uB370\uC774\uD130 \uC81C\uC5B4" }),
|
|
9412
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uBA54\uBAA8\uB9AC \uC0AC\uC6A9", description: "\uB300\uD654 \uCEE8\uD14D\uC2A4\uD2B8\uB97C \uAE30\uC5B5\uD569\uB2C8\uB2E4", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9550
9413
|
"button",
|
|
9551
9414
|
{
|
|
9552
9415
|
onClick: () => onPersonalizationChange({ ...personalization, useMemory: !personalization.useMemory }),
|
|
@@ -9554,13 +9417,13 @@ var SettingsModal = ({
|
|
|
9554
9417
|
width: "48px",
|
|
9555
9418
|
height: "28px",
|
|
9556
9419
|
borderRadius: "14px",
|
|
9557
|
-
backgroundColor: personalization.useMemory ? "var(--chatllm-primary, #
|
|
9420
|
+
backgroundColor: personalization.useMemory ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #d1d5db)",
|
|
9558
9421
|
border: "none",
|
|
9559
9422
|
cursor: "pointer",
|
|
9560
9423
|
position: "relative",
|
|
9561
9424
|
transition: "background-color 0.2s"
|
|
9562
9425
|
},
|
|
9563
|
-
children: /* @__PURE__ */ (0,
|
|
9426
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9564
9427
|
"div",
|
|
9565
9428
|
{
|
|
9566
9429
|
style: {
|
|
@@ -9578,7 +9441,7 @@ var SettingsModal = ({
|
|
|
9578
9441
|
)
|
|
9579
9442
|
}
|
|
9580
9443
|
) }),
|
|
9581
|
-
onClearAllData && /* @__PURE__ */ (0,
|
|
9444
|
+
onClearAllData && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SettingRow, { label: "\uB300\uD654 \uAE30\uB85D \uC0AD\uC81C", description: "\uBAA8\uB4E0 \uB300\uD654 \uAE30\uB85D\uC744 \uC0AD\uC81C\uD569\uB2C8\uB2E4", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9582
9445
|
"button",
|
|
9583
9446
|
{
|
|
9584
9447
|
onClick: () => {
|
|
@@ -9598,7 +9461,7 @@ var SettingsModal = ({
|
|
|
9598
9461
|
}
|
|
9599
9462
|
);
|
|
9600
9463
|
};
|
|
9601
|
-
var TabButton = ({ active, onClick, icon, label }) => /* @__PURE__ */ (0,
|
|
9464
|
+
var TabButton = ({ active, onClick, icon, label }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9602
9465
|
"button",
|
|
9603
9466
|
{
|
|
9604
9467
|
onClick,
|
|
@@ -9612,19 +9475,19 @@ var TabButton = ({ active, onClick, icon, label }) => /* @__PURE__ */ (0, import
|
|
|
9612
9475
|
border: "none",
|
|
9613
9476
|
backgroundColor: active ? "var(--chatllm-bg, #ffffff)" : "transparent",
|
|
9614
9477
|
boxShadow: active ? "0 1px 3px rgba(0, 0, 0, 0.08)" : "none",
|
|
9615
|
-
color: active ? "var(--chatllm-primary, #
|
|
9478
|
+
color: active ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #6b7280)",
|
|
9616
9479
|
fontSize: "14px",
|
|
9617
9480
|
cursor: "pointer",
|
|
9618
9481
|
textAlign: "left",
|
|
9619
9482
|
marginBottom: "4px"
|
|
9620
9483
|
},
|
|
9621
9484
|
children: [
|
|
9622
|
-
/* @__PURE__ */ (0,
|
|
9485
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconSvg, { name: icon, size: 20 }),
|
|
9623
9486
|
label
|
|
9624
9487
|
]
|
|
9625
9488
|
}
|
|
9626
9489
|
);
|
|
9627
|
-
var SettingRow = ({ label, description, children }) => /* @__PURE__ */ (0,
|
|
9490
|
+
var SettingRow = ({ label, description, children }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9628
9491
|
"div",
|
|
9629
9492
|
{
|
|
9630
9493
|
style: {
|
|
@@ -9635,9 +9498,9 @@ var SettingRow = ({ label, description, children }) => /* @__PURE__ */ (0, impor
|
|
|
9635
9498
|
borderBottom: "1px solid var(--chatllm-border-light, #f3f4f6)"
|
|
9636
9499
|
},
|
|
9637
9500
|
children: [
|
|
9638
|
-
/* @__PURE__ */ (0,
|
|
9639
|
-
/* @__PURE__ */ (0,
|
|
9640
|
-
description && /* @__PURE__ */ (0,
|
|
9501
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9502
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { fontSize: "14px", color: "var(--chatllm-text, #374151)" }, children: label }),
|
|
9503
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { style: { fontSize: "12px", color: "var(--chatllm-text-muted, #9ca3af)", marginTop: "2px" }, children: description })
|
|
9641
9504
|
] }),
|
|
9642
9505
|
children
|
|
9643
9506
|
]
|
|
@@ -9709,15 +9572,15 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9709
9572
|
minute: "2-digit"
|
|
9710
9573
|
});
|
|
9711
9574
|
};
|
|
9712
|
-
return /* @__PURE__ */ (0,
|
|
9713
|
-
/* @__PURE__ */ (0,
|
|
9714
|
-
/* @__PURE__ */ (0,
|
|
9715
|
-
/* @__PURE__ */ (0,
|
|
9575
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
9576
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: "24px" }, children: [
|
|
9577
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { style: { fontSize: "20px", fontWeight: 600, color: "var(--chatllm-text, #1f2937)", margin: 0 }, children: title }),
|
|
9578
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("span", { style: { fontSize: "13px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: [
|
|
9716
9579
|
items.length,
|
|
9717
9580
|
"\uAC1C \uD56D\uBAA9"
|
|
9718
9581
|
] })
|
|
9719
9582
|
] }),
|
|
9720
|
-
/* @__PURE__ */ (0,
|
|
9583
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { display: "flex", gap: "6px", marginBottom: "20px", flexWrap: "wrap" }, children: ["all", "fact", "skill", "preference"].map((tab) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9721
9584
|
"button",
|
|
9722
9585
|
{
|
|
9723
9586
|
onClick: () => setActiveFilter(tab),
|
|
@@ -9726,8 +9589,8 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9726
9589
|
fontSize: "13px",
|
|
9727
9590
|
fontWeight: activeFilter === tab ? 500 : 400,
|
|
9728
9591
|
backgroundColor: activeFilter === tab ? "var(--chatllm-primary-light, #dbeafe)" : "var(--chatllm-bg-secondary, #f9fafb)",
|
|
9729
|
-
color: activeFilter === tab ? "var(--chatllm-primary, #
|
|
9730
|
-
border: "1px solid " + (activeFilter === tab ? "var(--chatllm-primary, #
|
|
9592
|
+
color: activeFilter === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #6b7280)",
|
|
9593
|
+
border: "1px solid " + (activeFilter === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-border, #e5e7eb)"),
|
|
9731
9594
|
borderRadius: "8px",
|
|
9732
9595
|
cursor: "pointer"
|
|
9733
9596
|
},
|
|
@@ -9735,7 +9598,7 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9735
9598
|
},
|
|
9736
9599
|
tab
|
|
9737
9600
|
)) }),
|
|
9738
|
-
contextSummary && activeFilter === "all" && /* @__PURE__ */ (0,
|
|
9601
|
+
contextSummary && activeFilter === "all" && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9739
9602
|
"div",
|
|
9740
9603
|
{
|
|
9741
9604
|
style: {
|
|
@@ -9743,22 +9606,22 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9743
9606
|
marginBottom: "16px",
|
|
9744
9607
|
backgroundColor: "var(--chatllm-bg-secondary, #f9fafb)",
|
|
9745
9608
|
borderRadius: "10px",
|
|
9746
|
-
borderLeft: "3px solid var(--chatllm-primary, #
|
|
9609
|
+
borderLeft: "3px solid var(--chatllm-primary, #3584FA)"
|
|
9747
9610
|
},
|
|
9748
9611
|
children: [
|
|
9749
|
-
/* @__PURE__ */ (0,
|
|
9750
|
-
/* @__PURE__ */ (0,
|
|
9751
|
-
/* @__PURE__ */ (0,
|
|
9612
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "6px", marginBottom: "8px" }, children: [
|
|
9613
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3584FA)" }),
|
|
9614
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uB300\uD654 \uC694\uC57D" })
|
|
9752
9615
|
] }),
|
|
9753
|
-
/* @__PURE__ */ (0,
|
|
9616
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { style: { fontSize: "13px", lineHeight: "1.6", color: "var(--chatllm-text, #374151)", margin: 0 }, children: contextSummary })
|
|
9754
9617
|
]
|
|
9755
9618
|
}
|
|
9756
9619
|
),
|
|
9757
|
-
filteredItems.length === 0 ? /* @__PURE__ */ (0,
|
|
9758
|
-
/* @__PURE__ */ (0,
|
|
9759
|
-
/* @__PURE__ */ (0,
|
|
9760
|
-
/* @__PURE__ */ (0,
|
|
9761
|
-
] }) : /* @__PURE__ */ (0,
|
|
9620
|
+
filteredItems.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { padding: "40px 16px", textAlign: "center" }, children: [
|
|
9621
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconSvg, { name: "robot-line", size: 40, color: "var(--chatllm-text-muted, #d1d5db)" }),
|
|
9622
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { style: { fontSize: "14px", color: "var(--chatllm-text-muted, #9ca3af)", marginTop: "12px" }, children: emptyMessage }),
|
|
9623
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { style: { fontSize: "12px", color: "var(--chatllm-text-muted, #d1d5db)", marginTop: "4px" }, children: emptyDescription })
|
|
9624
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: filteredItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
9762
9625
|
"div",
|
|
9763
9626
|
{
|
|
9764
9627
|
style: {
|
|
@@ -9771,10 +9634,10 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9771
9634
|
},
|
|
9772
9635
|
onClick: () => setExpandedId(expandedId === item.id ? null : item.id),
|
|
9773
9636
|
children: [
|
|
9774
|
-
/* @__PURE__ */ (0,
|
|
9775
|
-
/* @__PURE__ */ (0,
|
|
9776
|
-
/* @__PURE__ */ (0,
|
|
9777
|
-
item.category && /* @__PURE__ */ (0,
|
|
9637
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", alignItems: "flex-start", justifyContent: "space-between" }, children: [
|
|
9638
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
9639
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "4px" }, children: [
|
|
9640
|
+
item.category && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9778
9641
|
"span",
|
|
9779
9642
|
{
|
|
9780
9643
|
style: {
|
|
@@ -9788,12 +9651,12 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9788
9651
|
children: memoryCategoryLabels[item.category]
|
|
9789
9652
|
}
|
|
9790
9653
|
),
|
|
9791
|
-
/* @__PURE__ */ (0,
|
|
9654
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { fontSize: "11px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: formatDate(item.timestamp) })
|
|
9792
9655
|
] }),
|
|
9793
|
-
/* @__PURE__ */ (0,
|
|
9656
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { fontSize: "13px", fontWeight: 500, color: "var(--chatllm-text, #1f2937)" }, children: item.key })
|
|
9794
9657
|
] }),
|
|
9795
|
-
/* @__PURE__ */ (0,
|
|
9796
|
-
onDelete && /* @__PURE__ */ (0,
|
|
9658
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
9659
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9797
9660
|
"button",
|
|
9798
9661
|
{
|
|
9799
9662
|
onClick: (e) => {
|
|
@@ -9809,10 +9672,10 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9809
9672
|
opacity: 0.5
|
|
9810
9673
|
},
|
|
9811
9674
|
"aria-label": "\uBA54\uBAA8\uB9AC \uC0AD\uC81C",
|
|
9812
|
-
children: /* @__PURE__ */ (0,
|
|
9675
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconSvg, { name: "delete-bin-line", size: 14, color: "var(--chatllm-text-muted, #9ca3af)" })
|
|
9813
9676
|
}
|
|
9814
9677
|
),
|
|
9815
|
-
/* @__PURE__ */ (0,
|
|
9678
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9816
9679
|
IconSvg,
|
|
9817
9680
|
{
|
|
9818
9681
|
name: expandedId === item.id ? "arrow-up-s-line" : "arrow-down-s-line",
|
|
@@ -9822,7 +9685,7 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9822
9685
|
)
|
|
9823
9686
|
] })
|
|
9824
9687
|
] }),
|
|
9825
|
-
expandedId === item.id && /* @__PURE__ */ (0,
|
|
9688
|
+
expandedId === item.id && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9826
9689
|
"div",
|
|
9827
9690
|
{
|
|
9828
9691
|
style: {
|
|
@@ -9830,7 +9693,7 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9830
9693
|
paddingTop: "12px",
|
|
9831
9694
|
borderTop: "1px solid var(--chatllm-border-light, #f3f4f6)"
|
|
9832
9695
|
},
|
|
9833
|
-
children: /* @__PURE__ */ (0,
|
|
9696
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9834
9697
|
"p",
|
|
9835
9698
|
{
|
|
9836
9699
|
style: {
|
|
@@ -9849,7 +9712,7 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9849
9712
|
},
|
|
9850
9713
|
item.id
|
|
9851
9714
|
)) }),
|
|
9852
|
-
onClearAll && items.length > 0 && /* @__PURE__ */ (0,
|
|
9715
|
+
onClearAll && items.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { marginTop: "24px", paddingTop: "16px", borderTop: "1px solid var(--chatllm-border, #e5e7eb)" }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
9853
9716
|
"button",
|
|
9854
9717
|
{
|
|
9855
9718
|
onClick: () => {
|
|
@@ -9866,9 +9729,9 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9866
9729
|
|
|
9867
9730
|
// src/react/components/ProjectSettingsModal.tsx
|
|
9868
9731
|
var import_react19 = require("react");
|
|
9869
|
-
var
|
|
9732
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
9870
9733
|
var COLOR_PRESETS = [
|
|
9871
|
-
"#
|
|
9734
|
+
"#3584FA",
|
|
9872
9735
|
"#7c3aed",
|
|
9873
9736
|
"#db2777",
|
|
9874
9737
|
"#dc2626",
|
|
@@ -9890,13 +9753,13 @@ var ProjectSettingsModal = ({
|
|
|
9890
9753
|
const [title, setTitle] = (0, import_react19.useState)("");
|
|
9891
9754
|
const [description, setDescription] = (0, import_react19.useState)("");
|
|
9892
9755
|
const [instructions, setInstructions] = (0, import_react19.useState)("");
|
|
9893
|
-
const [color, setColor] = (0, import_react19.useState)("#
|
|
9756
|
+
const [color, setColor] = (0, import_react19.useState)("#3584FA");
|
|
9894
9757
|
(0, import_react19.useEffect)(() => {
|
|
9895
9758
|
if (project) {
|
|
9896
9759
|
setTitle(project.title);
|
|
9897
9760
|
setDescription(project.description || "");
|
|
9898
9761
|
setInstructions(project.instructions || "");
|
|
9899
|
-
setColor(project.color || "#
|
|
9762
|
+
setColor(project.color || "#3584FA");
|
|
9900
9763
|
}
|
|
9901
9764
|
}, [project]);
|
|
9902
9765
|
if (!isOpen || !project) return null;
|
|
@@ -9939,15 +9802,15 @@ var ProjectSettingsModal = ({
|
|
|
9939
9802
|
padding: "8px 16px",
|
|
9940
9803
|
fontSize: "13px",
|
|
9941
9804
|
fontWeight: activeTab === tab ? 600 : 400,
|
|
9942
|
-
color: activeTab === tab ? "var(--chatllm-primary, #
|
|
9943
|
-
borderBottom: activeTab === tab ? "2px solid var(--chatllm-primary, #
|
|
9805
|
+
color: activeTab === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #999)",
|
|
9806
|
+
borderBottom: activeTab === tab ? "2px solid var(--chatllm-primary, #3584FA)" : "2px solid transparent",
|
|
9944
9807
|
background: "none",
|
|
9945
9808
|
border: "none",
|
|
9946
9809
|
borderBottomStyle: "solid",
|
|
9947
9810
|
cursor: "pointer",
|
|
9948
9811
|
fontFamily: "inherit"
|
|
9949
9812
|
});
|
|
9950
|
-
return /* @__PURE__ */ (0,
|
|
9813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
9951
9814
|
"div",
|
|
9952
9815
|
{
|
|
9953
9816
|
style: {
|
|
@@ -9962,7 +9825,7 @@ var ProjectSettingsModal = ({
|
|
|
9962
9825
|
onClick: (e) => {
|
|
9963
9826
|
if (e.target === e.currentTarget) onClose();
|
|
9964
9827
|
},
|
|
9965
|
-
children: /* @__PURE__ */ (0,
|
|
9828
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
9966
9829
|
"div",
|
|
9967
9830
|
{
|
|
9968
9831
|
style: {
|
|
@@ -9976,7 +9839,7 @@ var ProjectSettingsModal = ({
|
|
|
9976
9839
|
overflow: "hidden"
|
|
9977
9840
|
},
|
|
9978
9841
|
children: [
|
|
9979
|
-
/* @__PURE__ */ (0,
|
|
9842
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
9980
9843
|
"div",
|
|
9981
9844
|
{
|
|
9982
9845
|
style: {
|
|
@@ -9986,8 +9849,8 @@ var ProjectSettingsModal = ({
|
|
|
9986
9849
|
padding: "20px 24px 0"
|
|
9987
9850
|
},
|
|
9988
9851
|
children: [
|
|
9989
|
-
/* @__PURE__ */ (0,
|
|
9990
|
-
/* @__PURE__ */ (0,
|
|
9852
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { style: { fontSize: "16px", fontWeight: 600, margin: 0, color: "var(--chatllm-text, #1a1a1a)" }, children: "\uD504\uB85C\uC81D\uD2B8 \uC124\uC815" }),
|
|
9853
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
9991
9854
|
"button",
|
|
9992
9855
|
{
|
|
9993
9856
|
onClick: onClose,
|
|
@@ -10000,13 +9863,13 @@ var ProjectSettingsModal = ({
|
|
|
10000
9863
|
alignItems: "center"
|
|
10001
9864
|
},
|
|
10002
9865
|
"aria-label": "\uB2EB\uAE30",
|
|
10003
|
-
children: /* @__PURE__ */ (0,
|
|
9866
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconSvg, { name: "close-line", size: 20, color: "var(--chatllm-text-muted, #999)" })
|
|
10004
9867
|
}
|
|
10005
9868
|
)
|
|
10006
9869
|
]
|
|
10007
9870
|
}
|
|
10008
9871
|
),
|
|
10009
|
-
/* @__PURE__ */ (0,
|
|
9872
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
10010
9873
|
"div",
|
|
10011
9874
|
{
|
|
10012
9875
|
style: {
|
|
@@ -10016,9 +9879,9 @@ var ProjectSettingsModal = ({
|
|
|
10016
9879
|
borderBottom: "1px solid var(--chatllm-border, #e0e0e0)"
|
|
10017
9880
|
},
|
|
10018
9881
|
children: [
|
|
10019
|
-
/* @__PURE__ */ (0,
|
|
10020
|
-
/* @__PURE__ */ (0,
|
|
10021
|
-
/* @__PURE__ */ (0,
|
|
9882
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { onClick: () => setActiveTab("general"), style: tabStyle("general"), children: "\uC77C\uBC18" }),
|
|
9883
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("button", { onClick: () => setActiveTab("instructions"), style: tabStyle("instructions"), children: "\uC9C0\uCE68" }),
|
|
9884
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("button", { onClick: () => setActiveTab("files"), style: tabStyle("files"), children: [
|
|
10022
9885
|
"\uD30C\uC77C (",
|
|
10023
9886
|
project.files.length,
|
|
10024
9887
|
")"
|
|
@@ -10026,11 +9889,11 @@ var ProjectSettingsModal = ({
|
|
|
10026
9889
|
]
|
|
10027
9890
|
}
|
|
10028
9891
|
),
|
|
10029
|
-
/* @__PURE__ */ (0,
|
|
10030
|
-
activeTab === "general" && /* @__PURE__ */ (0,
|
|
10031
|
-
/* @__PURE__ */ (0,
|
|
10032
|
-
/* @__PURE__ */ (0,
|
|
10033
|
-
/* @__PURE__ */ (0,
|
|
9892
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { padding: "24px", overflowY: "auto", flex: 1 }, children: [
|
|
9893
|
+
activeTab === "general" && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "16px" }, children: [
|
|
9894
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [
|
|
9895
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("label", { style: { display: "block", fontSize: "13px", fontWeight: 500, marginBottom: "6px", color: "var(--chatllm-text, #1a1a1a)" }, children: "\uD504\uB85C\uC81D\uD2B8 \uC774\uB984" }),
|
|
9896
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10034
9897
|
"input",
|
|
10035
9898
|
{
|
|
10036
9899
|
type: "text",
|
|
@@ -10052,9 +9915,9 @@ var ProjectSettingsModal = ({
|
|
|
10052
9915
|
}
|
|
10053
9916
|
)
|
|
10054
9917
|
] }),
|
|
10055
|
-
/* @__PURE__ */ (0,
|
|
10056
|
-
/* @__PURE__ */ (0,
|
|
10057
|
-
/* @__PURE__ */ (0,
|
|
9918
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [
|
|
9919
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("label", { style: { display: "block", fontSize: "13px", fontWeight: 500, marginBottom: "6px", color: "var(--chatllm-text, #1a1a1a)" }, children: "\uC124\uBA85" }),
|
|
9920
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10058
9921
|
"textarea",
|
|
10059
9922
|
{
|
|
10060
9923
|
value: description,
|
|
@@ -10075,9 +9938,9 @@ var ProjectSettingsModal = ({
|
|
|
10075
9938
|
}
|
|
10076
9939
|
)
|
|
10077
9940
|
] }),
|
|
10078
|
-
/* @__PURE__ */ (0,
|
|
10079
|
-
/* @__PURE__ */ (0,
|
|
10080
|
-
/* @__PURE__ */ (0,
|
|
9941
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [
|
|
9942
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("label", { style: { display: "block", fontSize: "13px", fontWeight: 500, marginBottom: "6px", color: "var(--chatllm-text, #1a1a1a)" }, children: "\uC0C9\uC0C1" }),
|
|
9943
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", gap: "8px", flexWrap: "wrap" }, children: COLOR_PRESETS.map((c) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10081
9944
|
"button",
|
|
10082
9945
|
{
|
|
10083
9946
|
onClick: () => setColor(c),
|
|
@@ -10095,8 +9958,8 @@ var ProjectSettingsModal = ({
|
|
|
10095
9958
|
c
|
|
10096
9959
|
)) })
|
|
10097
9960
|
] }),
|
|
10098
|
-
/* @__PURE__ */ (0,
|
|
10099
|
-
!isDefaultProject && onDeleteProject && /* @__PURE__ */ (0,
|
|
9961
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", gap: "8px", justifyContent: "flex-end", marginTop: "8px" }, children: [
|
|
9962
|
+
!isDefaultProject && onDeleteProject && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10100
9963
|
"button",
|
|
10101
9964
|
{
|
|
10102
9965
|
onClick: () => {
|
|
@@ -10119,7 +9982,7 @@ var ProjectSettingsModal = ({
|
|
|
10119
9982
|
children: "\uD504\uB85C\uC81D\uD2B8 \uC0AD\uC81C"
|
|
10120
9983
|
}
|
|
10121
9984
|
),
|
|
10122
|
-
/* @__PURE__ */ (0,
|
|
9985
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10123
9986
|
"button",
|
|
10124
9987
|
{
|
|
10125
9988
|
onClick: handleSaveGeneral,
|
|
@@ -10127,7 +9990,7 @@ var ProjectSettingsModal = ({
|
|
|
10127
9990
|
padding: "8px 20px",
|
|
10128
9991
|
borderRadius: "6px",
|
|
10129
9992
|
border: "none",
|
|
10130
|
-
backgroundColor: "var(--chatllm-primary, #
|
|
9993
|
+
backgroundColor: "var(--chatllm-primary, #3584FA)",
|
|
10131
9994
|
color: "#fff",
|
|
10132
9995
|
fontSize: "13px",
|
|
10133
9996
|
fontWeight: 500,
|
|
@@ -10139,9 +10002,9 @@ var ProjectSettingsModal = ({
|
|
|
10139
10002
|
)
|
|
10140
10003
|
] })
|
|
10141
10004
|
] }),
|
|
10142
|
-
activeTab === "instructions" && /* @__PURE__ */ (0,
|
|
10143
|
-
/* @__PURE__ */ (0,
|
|
10144
|
-
/* @__PURE__ */ (0,
|
|
10005
|
+
activeTab === "instructions" && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
|
|
10006
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { fontSize: "13px", color: "var(--chatllm-text-muted, #999)", margin: 0 }, children: "\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uBAA8\uB4E0 \uB300\uD654\uC5D0\uC11C AI\uAC00 \uB530\uB77C\uC57C \uD560 \uC9C0\uCE68\uC744 \uC785\uB825\uD558\uC138\uC694." }),
|
|
10007
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10145
10008
|
"textarea",
|
|
10146
10009
|
{
|
|
10147
10010
|
value: instructions,
|
|
@@ -10162,7 +10025,7 @@ var ProjectSettingsModal = ({
|
|
|
10162
10025
|
}
|
|
10163
10026
|
}
|
|
10164
10027
|
),
|
|
10165
|
-
/* @__PURE__ */ (0,
|
|
10028
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10166
10029
|
"button",
|
|
10167
10030
|
{
|
|
10168
10031
|
onClick: handleSaveInstructions,
|
|
@@ -10170,7 +10033,7 @@ var ProjectSettingsModal = ({
|
|
|
10170
10033
|
padding: "8px 20px",
|
|
10171
10034
|
borderRadius: "6px",
|
|
10172
10035
|
border: "none",
|
|
10173
|
-
backgroundColor: "var(--chatllm-primary, #
|
|
10036
|
+
backgroundColor: "var(--chatllm-primary, #3584FA)",
|
|
10174
10037
|
color: "#fff",
|
|
10175
10038
|
fontSize: "13px",
|
|
10176
10039
|
fontWeight: 500,
|
|
@@ -10181,10 +10044,10 @@ var ProjectSettingsModal = ({
|
|
|
10181
10044
|
}
|
|
10182
10045
|
) })
|
|
10183
10046
|
] }),
|
|
10184
|
-
activeTab === "files" && /* @__PURE__ */ (0,
|
|
10185
|
-
/* @__PURE__ */ (0,
|
|
10186
|
-
/* @__PURE__ */ (0,
|
|
10187
|
-
/* @__PURE__ */ (0,
|
|
10047
|
+
activeTab === "files" && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
|
|
10048
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [
|
|
10049
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { style: { fontSize: "13px", color: "var(--chatllm-text-muted, #999)", margin: 0 }, children: "\uD504\uB85C\uC81D\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8\uB85C \uC0AC\uC6A9\uD560 \uD30C\uC77C\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4." }),
|
|
10050
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
10188
10051
|
"button",
|
|
10189
10052
|
{
|
|
10190
10053
|
onClick: handleFileUpload,
|
|
@@ -10202,13 +10065,13 @@ var ProjectSettingsModal = ({
|
|
|
10202
10065
|
color: "var(--chatllm-text, #1a1a1a)"
|
|
10203
10066
|
},
|
|
10204
10067
|
children: [
|
|
10205
|
-
/* @__PURE__ */ (0,
|
|
10068
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconSvg, { name: "upload-line", size: 14 }),
|
|
10206
10069
|
"\uC5C5\uB85C\uB4DC"
|
|
10207
10070
|
]
|
|
10208
10071
|
}
|
|
10209
10072
|
)
|
|
10210
10073
|
] }),
|
|
10211
|
-
project.files.length === 0 ? /* @__PURE__ */ (0,
|
|
10074
|
+
project.files.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10212
10075
|
"div",
|
|
10213
10076
|
{
|
|
10214
10077
|
style: {
|
|
@@ -10221,7 +10084,7 @@ var ProjectSettingsModal = ({
|
|
|
10221
10084
|
},
|
|
10222
10085
|
children: "\uC544\uC9C1 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4"
|
|
10223
10086
|
}
|
|
10224
|
-
) : /* @__PURE__ */ (0,
|
|
10087
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: project.files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
10225
10088
|
"div",
|
|
10226
10089
|
{
|
|
10227
10090
|
style: {
|
|
@@ -10233,10 +10096,10 @@ var ProjectSettingsModal = ({
|
|
|
10233
10096
|
borderRadius: "6px"
|
|
10234
10097
|
},
|
|
10235
10098
|
children: [
|
|
10236
|
-
/* @__PURE__ */ (0,
|
|
10237
|
-
/* @__PURE__ */ (0,
|
|
10238
|
-
/* @__PURE__ */ (0,
|
|
10239
|
-
/* @__PURE__ */ (0,
|
|
10099
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "10px", overflow: "hidden" }, children: [
|
|
10100
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconSvg, { name: getFileIcon2(file.type), size: 18, color: "var(--chatllm-text-muted, #999)" }),
|
|
10101
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { overflow: "hidden" }, children: [
|
|
10102
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10240
10103
|
"div",
|
|
10241
10104
|
{
|
|
10242
10105
|
style: {
|
|
@@ -10250,13 +10113,13 @@ var ProjectSettingsModal = ({
|
|
|
10250
10113
|
children: file.name
|
|
10251
10114
|
}
|
|
10252
10115
|
),
|
|
10253
|
-
/* @__PURE__ */ (0,
|
|
10116
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { style: { fontSize: "11px", color: "var(--chatllm-text-muted, #999)" }, children: [
|
|
10254
10117
|
file.type,
|
|
10255
10118
|
formatSize(file.size) ? ` \xB7 ${formatSize(file.size)}` : ""
|
|
10256
10119
|
] })
|
|
10257
10120
|
] })
|
|
10258
10121
|
] }),
|
|
10259
|
-
/* @__PURE__ */ (0,
|
|
10122
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
10260
10123
|
"button",
|
|
10261
10124
|
{
|
|
10262
10125
|
onClick: () => onDeleteFile(project.id, file.id),
|
|
@@ -10277,7 +10140,7 @@ var ProjectSettingsModal = ({
|
|
|
10277
10140
|
e.currentTarget.style.opacity = "0.5";
|
|
10278
10141
|
},
|
|
10279
10142
|
"aria-label": `${file.name} \uC0AD\uC81C`,
|
|
10280
|
-
children: /* @__PURE__ */ (0,
|
|
10143
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconSvg, { name: "delete-bin-line", size: 16, color: "#dc2626" })
|
|
10281
10144
|
}
|
|
10282
10145
|
)
|
|
10283
10146
|
]
|
|
@@ -10294,14 +10157,14 @@ var ProjectSettingsModal = ({
|
|
|
10294
10157
|
};
|
|
10295
10158
|
|
|
10296
10159
|
// src/react/components/DisclaimerModal.tsx
|
|
10297
|
-
var
|
|
10160
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
10298
10161
|
var highlightStyle = {
|
|
10299
10162
|
color: "var(--chatllm-text, #1e293b)",
|
|
10300
10163
|
fontWeight: 600
|
|
10301
10164
|
};
|
|
10302
10165
|
var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
10303
10166
|
if (!isOpen) return null;
|
|
10304
|
-
return /* @__PURE__ */ (0,
|
|
10167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
10305
10168
|
"div",
|
|
10306
10169
|
{
|
|
10307
10170
|
className: "chatllm-disclaimer-overlay",
|
|
@@ -10315,7 +10178,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10315
10178
|
zIndex: 1e3
|
|
10316
10179
|
},
|
|
10317
10180
|
onClick: onClose,
|
|
10318
|
-
children: /* @__PURE__ */ (0,
|
|
10181
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
10319
10182
|
"div",
|
|
10320
10183
|
{
|
|
10321
10184
|
className: "chatllm-disclaimer-modal",
|
|
@@ -10333,7 +10196,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10333
10196
|
},
|
|
10334
10197
|
onClick: (e) => e.stopPropagation(),
|
|
10335
10198
|
children: [
|
|
10336
|
-
/* @__PURE__ */ (0,
|
|
10199
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
10337
10200
|
"div",
|
|
10338
10201
|
{
|
|
10339
10202
|
style: {
|
|
@@ -10344,9 +10207,9 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10344
10207
|
borderBottom: "1px solid var(--chatllm-border, #e5e7eb)"
|
|
10345
10208
|
},
|
|
10346
10209
|
children: [
|
|
10347
|
-
/* @__PURE__ */ (0,
|
|
10348
|
-
/* @__PURE__ */ (0,
|
|
10349
|
-
/* @__PURE__ */ (0,
|
|
10210
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
10211
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(IconSvg, { name: "error-warning-line", size: 20, color: "var(--chatllm-primary, #3584FA)" }),
|
|
10212
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
10350
10213
|
"h2",
|
|
10351
10214
|
{
|
|
10352
10215
|
style: {
|
|
@@ -10359,7 +10222,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10359
10222
|
}
|
|
10360
10223
|
)
|
|
10361
10224
|
] }),
|
|
10362
|
-
/* @__PURE__ */ (0,
|
|
10225
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
10363
10226
|
"button",
|
|
10364
10227
|
{
|
|
10365
10228
|
onClick: onClose,
|
|
@@ -10374,13 +10237,13 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10374
10237
|
alignItems: "center",
|
|
10375
10238
|
justifyContent: "center"
|
|
10376
10239
|
},
|
|
10377
|
-
children: /* @__PURE__ */ (0,
|
|
10240
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(IconSvg, { name: "close-line", size: 20, color: "var(--chatllm-text-muted, #64748b)" })
|
|
10378
10241
|
}
|
|
10379
10242
|
)
|
|
10380
10243
|
]
|
|
10381
10244
|
}
|
|
10382
10245
|
),
|
|
10383
|
-
/* @__PURE__ */ (0,
|
|
10246
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
10384
10247
|
"div",
|
|
10385
10248
|
{
|
|
10386
10249
|
className: "chatllm-scrollbar",
|
|
@@ -10392,51 +10255,51 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10392
10255
|
color: "var(--chatllm-text-secondary, #475569)"
|
|
10393
10256
|
},
|
|
10394
10257
|
children: [
|
|
10395
|
-
/* @__PURE__ */ (0,
|
|
10258
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { style: { margin: "0 0 16px" }, children: [
|
|
10396
10259
|
"\uC800\uB294 \uC5EC\uB7EC\uBD84\uC758 \uC9C8\uBB38\uC5D0 ",
|
|
10397
|
-
/* @__PURE__ */ (0,
|
|
10260
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { style: highlightStyle, children: "\uCD5C\uC120\uC758 \uB2F5\uBCC0\uC744 \uB4DC\uB9AC\uAE30 \uC704\uD574 \uD56D\uC0C1 \uB178\uB825" }),
|
|
10398
10261
|
"\uD558\uACE0 \uC788\uC5B4\uC694. \uD558\uC9C0\uB9CC \uC194\uC9C1\uD558\uAC8C \uB9D0\uC500\uB4DC\uB9AC\uBA74, \uC800\uB3C4 \uB54C\uB54C\uB85C \uC2E4\uC218\uB97C \uD558\uAC70\uB098 \uC815\uD655\uD558\uC9C0 \uC54A\uC740 \uB2F5\uBCC0\uC744 \uB4DC\uB9B4 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
|
|
10399
10262
|
] }),
|
|
10400
|
-
/* @__PURE__ */ (0,
|
|
10263
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
10401
10264
|
"div",
|
|
10402
10265
|
{
|
|
10403
10266
|
style: {
|
|
10404
10267
|
padding: "14px 16px",
|
|
10405
10268
|
backgroundColor: "var(--chatllm-primary-light, #eff6ff)",
|
|
10406
10269
|
borderRadius: "10px",
|
|
10407
|
-
borderLeft: "3px solid var(--chatllm-primary, #
|
|
10270
|
+
borderLeft: "3px solid var(--chatllm-primary, #3584FA)",
|
|
10408
10271
|
marginBottom: "16px",
|
|
10409
10272
|
fontSize: "13px",
|
|
10410
10273
|
lineHeight: 1.7
|
|
10411
10274
|
},
|
|
10412
10275
|
children: [
|
|
10413
|
-
/* @__PURE__ */ (0,
|
|
10414
|
-
/* @__PURE__ */ (0,
|
|
10415
|
-
/* @__PURE__ */ (0,
|
|
10416
|
-
/* @__PURE__ */ (0,
|
|
10417
|
-
/* @__PURE__ */ (0,
|
|
10276
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { style: { margin: "0 0 8px", fontWeight: 600, color: "var(--chatllm-text, #1e293b)" }, children: "\uC81C\uAC00 \uC774\uB7F0 \uC2E4\uC218\uB97C \uD560 \uC218 \uC788\uC5B4\uC694" }),
|
|
10277
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("ul", { style: { margin: 0, paddingLeft: "18px", display: "flex", flexDirection: "column", gap: "4px" }, children: [
|
|
10278
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("li", { children: "\uCD5C\uC2E0 \uC815\uBCF4\uB97C \uBC18\uC601\uD558\uC9C0 \uBABB\uD55C \uB2F5\uBCC0\uC744 \uB4DC\uB9AC\uB294 \uACBD\uC6B0" }),
|
|
10279
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("li", { children: "\uADF8\uB7F4\uB4EF\uD558\uAC8C \uB4E4\uB9AC\uC9C0\uB9CC \uC2E4\uC81C\uB85C\uB294 \uC815\uD655\uD558\uC9C0 \uC54A\uC740 \uB0B4\uC6A9" }),
|
|
10280
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("li", { children: "\uC2E4\uC81C\uB85C \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uCD9C\uCC98\uB098 \uC778\uC6A9\uC744 \uB9CC\uB4E4\uC5B4\uB0B4\uB294 \uACBD\uC6B0" })
|
|
10418
10281
|
] })
|
|
10419
10282
|
]
|
|
10420
10283
|
}
|
|
10421
10284
|
),
|
|
10422
|
-
/* @__PURE__ */ (0,
|
|
10285
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { style: { margin: "0 0 16px" }, children: [
|
|
10423
10286
|
"\uC774\uB7F0 \uD604\uC0C1\uC744 ",
|
|
10424
|
-
/* @__PURE__ */ (0,
|
|
10287
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { style: highlightStyle, children: "'\uD658\uAC01(Hallucination)'" }),
|
|
10425
10288
|
"\uC774\uB77C\uACE0 \uBD80\uB974\uB294\uB370\uC694, \uC544\uC9C1\uC740 \uC800\uC640 \uAC19\uC740 AI\uAC00 \uAC00\uC9C4 \uADFC\uBCF8\uC801\uC778 \uD55C\uACC4\uC608\uC694. \uC81C \uB2F5\uBCC0\uC774 \uC544\uBB34\uB9AC \uC790\uC5F0\uC2A4\uB7EC\uC6CC \uBCF4\uC5EC\uB3C4, ",
|
|
10426
|
-
/* @__PURE__ */ (0,
|
|
10289
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { style: highlightStyle, children: "\uD55C \uBC88 \uB354 \uD655\uC778" }),
|
|
10427
10290
|
"\uD574 \uC8FC\uC2DC\uBA74 \uAC10\uC0AC\uD558\uACA0\uC2B5\uB2C8\uB2E4."
|
|
10428
10291
|
] }),
|
|
10429
|
-
/* @__PURE__ */ (0,
|
|
10430
|
-
/* @__PURE__ */ (0,
|
|
10292
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { style: { margin: "0 0 16px" }, children: [
|
|
10293
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { style: highlightStyle, children: "\uC81C \uB2F5\uBCC0\uC740 \uCC38\uACE0 \uC790\uB8CC" }),
|
|
10431
10294
|
"\uB85C \uD65C\uC6A9\uD574 \uC8FC\uC2DC\uACE0, \uC911\uC694\uD55C \uD310\uB2E8\uC744 \uB0B4\uB9AC\uC2E4 \uB54C\uB294 \uAF2D \uCD94\uAC00\uB85C \uD655\uC778\uD574 \uC8FC\uC138\uC694. \uC800\uB3C4 \uB354 \uC815\uD655\uD55C \uB2F5\uBCC0\uC744 \uB4DC\uB9AC\uAE30 \uC704\uD574 \uACC4\uC18D \uBC1C\uC804\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4."
|
|
10432
10295
|
] }),
|
|
10433
|
-
/* @__PURE__ */ (0,
|
|
10296
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { style: { margin: "0 0 16px" }, children: [
|
|
10434
10297
|
"\uC81C\uAC00 \uC6F9 \uAC80\uC0C9 \uACB0\uACFC\uB97C \uC54C\uB824\uB4DC\uB9B4 \uB54C\uB3C4,",
|
|
10435
10298
|
" ",
|
|
10436
|
-
/* @__PURE__ */ (0,
|
|
10299
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { style: highlightStyle, children: "\uC6D0\uBCF8 \uCD9C\uCC98\uB97C \uC9C1\uC811 \uD655\uC778" }),
|
|
10437
10300
|
"\uD574 \uBCF4\uC2DC\uB294 \uAC78 \uCD94\uCC9C\uB4DC\uB824\uC694. \uC694\uC57D \uACFC\uC815\uC5D0\uC11C \uB193\uCE60 \uC218 \uC788\uB294 \uC911\uC694\uD55C \uB9E5\uB77D\uC774 \uC6D0\uBCF8\uC5D0 \uB2F4\uACA8 \uC788\uC744 \uC218 \uC788\uAC70\uB4E0\uC694."
|
|
10438
10301
|
] }),
|
|
10439
|
-
/* @__PURE__ */ (0,
|
|
10302
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
10440
10303
|
"div",
|
|
10441
10304
|
{
|
|
10442
10305
|
style: {
|
|
@@ -10447,15 +10310,15 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10447
10310
|
lineHeight: 1.7,
|
|
10448
10311
|
textAlign: "center"
|
|
10449
10312
|
},
|
|
10450
|
-
children: /* @__PURE__ */ (0,
|
|
10313
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("p", { style: { margin: 0 }, children: [
|
|
10451
10314
|
"\uC800\uC5D0 \uB300\uD55C \uC758\uACAC\uC774\uB098 \uAC1C\uC120 \uC81C\uC548\uC774 \uC788\uC73C\uC2DC\uB2E4\uBA74",
|
|
10452
10315
|
" ",
|
|
10453
|
-
/* @__PURE__ */ (0,
|
|
10316
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
10454
10317
|
"a",
|
|
10455
10318
|
{
|
|
10456
10319
|
href: "mailto:info@gendive.ai",
|
|
10457
10320
|
style: {
|
|
10458
|
-
color: "var(--chatllm-primary, #
|
|
10321
|
+
color: "var(--chatllm-primary, #3584FA)",
|
|
10459
10322
|
textDecoration: "none",
|
|
10460
10323
|
fontWeight: 600
|
|
10461
10324
|
},
|
|
@@ -10463,7 +10326,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10463
10326
|
}
|
|
10464
10327
|
),
|
|
10465
10328
|
"\uB85C \uC54C\uB824\uC8FC\uC138\uC694.",
|
|
10466
|
-
/* @__PURE__ */ (0,
|
|
10329
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("br", {}),
|
|
10467
10330
|
"\uC5EC\uB7EC\uBD84\uC758 \uD53C\uB4DC\uBC31 \uD558\uB098\uD558\uB098\uAC00 \uC81C\uAC00 \uC131\uC7A5\uD558\uB294 \uB370 \uD070 \uD798\uC774 \uB429\uB2C8\uB2E4."
|
|
10468
10331
|
] })
|
|
10469
10332
|
}
|
|
@@ -10479,7 +10342,7 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
10479
10342
|
};
|
|
10480
10343
|
|
|
10481
10344
|
// src/react/ChatUI.tsx
|
|
10482
|
-
var
|
|
10345
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
10483
10346
|
var DEFAULT_ACTIONS = [];
|
|
10484
10347
|
var DEFAULT_TEMPLATES = [];
|
|
10485
10348
|
var DEFAULT_MODELS = [
|
|
@@ -10522,10 +10385,20 @@ var injectStyles = () => {
|
|
|
10522
10385
|
100% { transform: rotate(360deg); }
|
|
10523
10386
|
}
|
|
10524
10387
|
|
|
10388
|
+
@keyframes chatllm-welcome-exit {
|
|
10389
|
+
from { opacity: 1; transform: translateY(0); }
|
|
10390
|
+
to { opacity: 0; transform: translateY(-16px); }
|
|
10391
|
+
}
|
|
10392
|
+
|
|
10393
|
+
@keyframes chatllm-chat-enter {
|
|
10394
|
+
from { opacity: 0; }
|
|
10395
|
+
to { opacity: 1; }
|
|
10396
|
+
}
|
|
10397
|
+
|
|
10525
10398
|
.chatllm-root {
|
|
10526
|
-
--chatllm-primary: #
|
|
10527
|
-
--chatllm-primary-hover: #
|
|
10528
|
-
--chatllm-primary-light: rgba(
|
|
10399
|
+
--chatllm-primary: #3584FA;
|
|
10400
|
+
--chatllm-primary-hover: #2D70D5;
|
|
10401
|
+
--chatllm-primary-light: rgba(53, 132, 250, 0.1);
|
|
10529
10402
|
--chatllm-bg: #F5F5F5;
|
|
10530
10403
|
--chatllm-bg-secondary: #F5F5F5;
|
|
10531
10404
|
--chatllm-bg-tertiary: #EDEDED;
|
|
@@ -10550,9 +10423,9 @@ var injectStyles = () => {
|
|
|
10550
10423
|
}
|
|
10551
10424
|
|
|
10552
10425
|
.chatllm-root.chatllm-dark {
|
|
10553
|
-
--chatllm-primary: #
|
|
10554
|
-
--chatllm-primary-hover: #
|
|
10555
|
-
--chatllm-primary-light: rgba(
|
|
10426
|
+
--chatllm-primary: #3584FA;
|
|
10427
|
+
--chatllm-primary-hover: #2D70D5;
|
|
10428
|
+
--chatllm-primary-light: rgba(53, 132, 250, 0.15);
|
|
10556
10429
|
--chatllm-bg: #0f172a;
|
|
10557
10430
|
--chatllm-bg-secondary: #1e293b;
|
|
10558
10431
|
--chatllm-bg-tertiary: #334155;
|
|
@@ -10617,8 +10490,8 @@ var injectStyles = () => {
|
|
|
10617
10490
|
}
|
|
10618
10491
|
|
|
10619
10492
|
.chatllm-input-container:focus-within {
|
|
10620
|
-
border-color: rgba(
|
|
10621
|
-
box-shadow: var(--chatllm-shadow-input), 0 0 0 4px rgba(
|
|
10493
|
+
border-color: rgba(53, 132, 250, 0.3);
|
|
10494
|
+
box-shadow: var(--chatllm-shadow-input), 0 0 0 4px rgba(53, 132, 250, 0.05);
|
|
10622
10495
|
}
|
|
10623
10496
|
|
|
10624
10497
|
.chatllm-dot-bounce {
|
|
@@ -10681,7 +10554,7 @@ var injectStyles = () => {
|
|
|
10681
10554
|
border-radius: var(--chatllm-radius);
|
|
10682
10555
|
font-weight: 600;
|
|
10683
10556
|
transition: all 0.2s ease;
|
|
10684
|
-
box-shadow: 0 2px 8px rgba(
|
|
10557
|
+
box-shadow: 0 2px 8px rgba(53, 132, 250, 0.25);
|
|
10685
10558
|
}
|
|
10686
10559
|
|
|
10687
10560
|
.chatllm-btn-primary:hover {
|
|
@@ -10704,7 +10577,7 @@ var injectStyles = () => {
|
|
|
10704
10577
|
|
|
10705
10578
|
.chatllm-btn-secondary:hover {
|
|
10706
10579
|
background: var(--chatllm-bg-hover);
|
|
10707
|
-
border-color: rgba(
|
|
10580
|
+
border-color: rgba(53, 132, 250, 0.3);
|
|
10708
10581
|
}
|
|
10709
10582
|
`;
|
|
10710
10583
|
document.head.appendChild(style);
|
|
@@ -10727,7 +10600,8 @@ var ChatUIView = ({
|
|
|
10727
10600
|
className,
|
|
10728
10601
|
apiKey,
|
|
10729
10602
|
onApiKeyChange,
|
|
10730
|
-
deepResearchEnabled
|
|
10603
|
+
deepResearchEnabled,
|
|
10604
|
+
suggestedPrompts
|
|
10731
10605
|
}) => {
|
|
10732
10606
|
const {
|
|
10733
10607
|
sessions,
|
|
@@ -10795,6 +10669,19 @@ var ChatUIView = ({
|
|
|
10795
10669
|
isSessionsLoading
|
|
10796
10670
|
} = state;
|
|
10797
10671
|
const [disclaimerOpen, setDisclaimerOpen] = import_react20.default.useState(false);
|
|
10672
|
+
const [welcomeExiting, setWelcomeExiting] = import_react20.default.useState(false);
|
|
10673
|
+
const prevMessageCountRef = import_react20.default.useRef(messages.length);
|
|
10674
|
+
import_react20.default.useEffect(() => {
|
|
10675
|
+
let timer;
|
|
10676
|
+
if (prevMessageCountRef.current === 0 && messages.length > 0) {
|
|
10677
|
+
setWelcomeExiting(true);
|
|
10678
|
+
timer = setTimeout(() => setWelcomeExiting(false), 400);
|
|
10679
|
+
}
|
|
10680
|
+
prevMessageCountRef.current = messages.length;
|
|
10681
|
+
return () => {
|
|
10682
|
+
if (timer) clearTimeout(timer);
|
|
10683
|
+
};
|
|
10684
|
+
}, [messages.length]);
|
|
10798
10685
|
const greeting = currentPersonalization.userProfile.nickname ? `\uC548\uB155\uD558\uC138\uC694, ${currentPersonalization.userProfile.nickname}\uB2D8` : "\uC548\uB155\uD558\uC138\uC694";
|
|
10799
10686
|
const handleTemplateClick = (template) => {
|
|
10800
10687
|
setInput(template.prompt);
|
|
@@ -10837,7 +10724,7 @@ var ChatUIView = ({
|
|
|
10837
10724
|
return items;
|
|
10838
10725
|
}, [projectMemory?.state.entries]);
|
|
10839
10726
|
const themeClass = theme?.mode === "dark" ? "chatllm-dark" : "";
|
|
10840
|
-
return /* @__PURE__ */ (0,
|
|
10727
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
10841
10728
|
"div",
|
|
10842
10729
|
{
|
|
10843
10730
|
className: `chatllm-root ${themeClass} ${className}`,
|
|
@@ -10850,7 +10737,7 @@ var ChatUIView = ({
|
|
|
10850
10737
|
position: "relative"
|
|
10851
10738
|
},
|
|
10852
10739
|
children: [
|
|
10853
|
-
showSidebar && /* @__PURE__ */ (0,
|
|
10740
|
+
showSidebar && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10854
10741
|
ChatSidebar,
|
|
10855
10742
|
{
|
|
10856
10743
|
sessions,
|
|
@@ -10882,7 +10769,7 @@ var ChatUIView = ({
|
|
|
10882
10769
|
isLoading: isSessionsLoading
|
|
10883
10770
|
}
|
|
10884
10771
|
),
|
|
10885
|
-
/* @__PURE__ */ (0,
|
|
10772
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
10886
10773
|
"main",
|
|
10887
10774
|
{
|
|
10888
10775
|
style: {
|
|
@@ -10894,7 +10781,7 @@ var ChatUIView = ({
|
|
|
10894
10781
|
minWidth: 0
|
|
10895
10782
|
},
|
|
10896
10783
|
children: [
|
|
10897
|
-
/* @__PURE__ */ (0,
|
|
10784
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10898
10785
|
ChatHeader,
|
|
10899
10786
|
{
|
|
10900
10787
|
title: currentSession?.title || "\uC0C8 \uB300\uD654",
|
|
@@ -10908,68 +10795,158 @@ var ChatUIView = ({
|
|
|
10908
10795
|
showSettings
|
|
10909
10796
|
}
|
|
10910
10797
|
),
|
|
10911
|
-
messages.length === 0
|
|
10912
|
-
|
|
10913
|
-
{
|
|
10914
|
-
greeting,
|
|
10915
|
-
templates,
|
|
10916
|
-
onTemplateClick: handleTemplateClick,
|
|
10917
|
-
actions,
|
|
10918
|
-
onActionSelect: handleActionSelect
|
|
10919
|
-
}
|
|
10920
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
10921
|
-
MessageList,
|
|
10798
|
+
(messages.length === 0 || welcomeExiting) && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
10799
|
+
"div",
|
|
10922
10800
|
{
|
|
10923
|
-
|
|
10924
|
-
|
|
10925
|
-
|
|
10926
|
-
|
|
10927
|
-
|
|
10928
|
-
|
|
10929
|
-
|
|
10930
|
-
|
|
10931
|
-
|
|
10932
|
-
|
|
10933
|
-
|
|
10934
|
-
|
|
10935
|
-
|
|
10936
|
-
|
|
10937
|
-
|
|
10938
|
-
|
|
10939
|
-
|
|
10801
|
+
style: {
|
|
10802
|
+
...messages.length > 0 ? { position: "absolute", inset: 0, zIndex: 5, background: "var(--chatllm-bg)" } : { flex: 1 },
|
|
10803
|
+
display: "flex",
|
|
10804
|
+
flexDirection: "column",
|
|
10805
|
+
justifyContent: "center",
|
|
10806
|
+
alignItems: "center",
|
|
10807
|
+
padding: "24px",
|
|
10808
|
+
gap: "24px",
|
|
10809
|
+
animation: welcomeExiting ? "chatllm-welcome-exit 0.3s ease forwards" : "none",
|
|
10810
|
+
pointerEvents: welcomeExiting ? "none" : "auto"
|
|
10811
|
+
},
|
|
10812
|
+
children: [
|
|
10813
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10814
|
+
"h1",
|
|
10815
|
+
{
|
|
10816
|
+
style: {
|
|
10817
|
+
fontSize: "26px",
|
|
10818
|
+
fontWeight: 600,
|
|
10819
|
+
color: "var(--chatllm-text)",
|
|
10820
|
+
margin: 0,
|
|
10821
|
+
textAlign: "center",
|
|
10822
|
+
lineHeight: 1.4
|
|
10823
|
+
},
|
|
10824
|
+
children: greeting ? `${greeting} \u273A` : "\u273A \uBB34\uC5C7\uC744 \uC0DD\uAC01\uD574 \uBCFC\uAE4C\uC694?"
|
|
10825
|
+
}
|
|
10826
|
+
),
|
|
10827
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { style: { width: "100%", maxWidth: "680px" }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10828
|
+
ChatInput,
|
|
10829
|
+
{
|
|
10830
|
+
value: input,
|
|
10831
|
+
onChange: setInput,
|
|
10832
|
+
onSubmit: handleSubmit,
|
|
10833
|
+
onStop: stopGeneration,
|
|
10834
|
+
isLoading,
|
|
10835
|
+
placeholder: "\uBA54\uC2DC\uC9C0\uB97C \uC785\uB825\uD558\uC138\uC694...",
|
|
10836
|
+
quotedText,
|
|
10837
|
+
onClearQuote: () => setQuotedText(null),
|
|
10838
|
+
selectedAction,
|
|
10839
|
+
onClearAction: () => setSelectedAction(null),
|
|
10840
|
+
onActionSelect: setSelectedAction,
|
|
10841
|
+
actions,
|
|
10842
|
+
onDeepResearch: toggleDeepResearchMode,
|
|
10843
|
+
isDeepResearchMode,
|
|
10844
|
+
deepResearchEnabled,
|
|
10845
|
+
manualSkills,
|
|
10846
|
+
onSkillSelect: executeManualSkill,
|
|
10847
|
+
activeSkillExecution,
|
|
10848
|
+
attachments,
|
|
10849
|
+
onFileAttach: addAttachments,
|
|
10850
|
+
onRemoveAttachment: removeAttachment,
|
|
10851
|
+
onDisclaimerClick: () => setDisclaimerOpen(true),
|
|
10852
|
+
inline: true
|
|
10853
|
+
}
|
|
10854
|
+
) }),
|
|
10855
|
+
suggestedPrompts && suggestedPrompts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10856
|
+
"div",
|
|
10857
|
+
{
|
|
10858
|
+
style: {
|
|
10859
|
+
display: "flex",
|
|
10860
|
+
flexWrap: "wrap",
|
|
10861
|
+
gap: "8px",
|
|
10862
|
+
justifyContent: "center",
|
|
10863
|
+
maxWidth: "680px"
|
|
10864
|
+
},
|
|
10865
|
+
children: suggestedPrompts.map((sp) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
10866
|
+
"button",
|
|
10867
|
+
{
|
|
10868
|
+
onClick: () => setInput(sp.prompt),
|
|
10869
|
+
style: {
|
|
10870
|
+
display: "flex",
|
|
10871
|
+
alignItems: "center",
|
|
10872
|
+
gap: "6px",
|
|
10873
|
+
padding: "8px 16px",
|
|
10874
|
+
borderRadius: "20px",
|
|
10875
|
+
border: "1px solid var(--chatllm-border)",
|
|
10876
|
+
background: "var(--chatllm-content-bg)",
|
|
10877
|
+
color: "var(--chatllm-text-secondary)",
|
|
10878
|
+
fontSize: "13px",
|
|
10879
|
+
fontFamily: "inherit",
|
|
10880
|
+
cursor: "pointer",
|
|
10881
|
+
transition: "all 0.2s"
|
|
10882
|
+
},
|
|
10883
|
+
children: [
|
|
10884
|
+
sp.icon && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(IconSvg, { name: sp.icon, size: 16, color: "var(--chatllm-text-muted)" }),
|
|
10885
|
+
sp.label
|
|
10886
|
+
]
|
|
10887
|
+
},
|
|
10888
|
+
sp.id
|
|
10889
|
+
))
|
|
10890
|
+
}
|
|
10891
|
+
)
|
|
10892
|
+
]
|
|
10940
10893
|
}
|
|
10941
10894
|
),
|
|
10942
|
-
/* @__PURE__ */ (0,
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10949
|
-
|
|
10950
|
-
|
|
10951
|
-
|
|
10952
|
-
|
|
10953
|
-
|
|
10954
|
-
|
|
10955
|
-
|
|
10956
|
-
|
|
10957
|
-
|
|
10958
|
-
|
|
10959
|
-
|
|
10960
|
-
|
|
10961
|
-
|
|
10962
|
-
|
|
10963
|
-
|
|
10964
|
-
|
|
10965
|
-
|
|
10966
|
-
|
|
10967
|
-
|
|
10968
|
-
|
|
10895
|
+
messages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
10896
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10897
|
+
MessageList,
|
|
10898
|
+
{
|
|
10899
|
+
messages,
|
|
10900
|
+
isLoading,
|
|
10901
|
+
onCopy: copyMessage,
|
|
10902
|
+
onEdit: startEdit,
|
|
10903
|
+
onRegenerate: regenerate,
|
|
10904
|
+
onQuote: setQuotedText,
|
|
10905
|
+
onAskOtherModel: (userMessageId, assistantMessageId, targetModel) => askOtherModel(assistantMessageId, targetModel),
|
|
10906
|
+
onSetActiveAlternative: setActiveAlternative,
|
|
10907
|
+
activeAlternatives,
|
|
10908
|
+
models: hookModels,
|
|
10909
|
+
copiedId: copiedMessageId,
|
|
10910
|
+
editingId: editingMessageId,
|
|
10911
|
+
onChoiceClick: handleChoiceClick,
|
|
10912
|
+
showThinking,
|
|
10913
|
+
thinkingDefaultOpen,
|
|
10914
|
+
loadingAlternativeFor,
|
|
10915
|
+
onPollSubmit: handlePollSubmit
|
|
10916
|
+
}
|
|
10917
|
+
),
|
|
10918
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10919
|
+
ChatInput,
|
|
10920
|
+
{
|
|
10921
|
+
value: input,
|
|
10922
|
+
onChange: setInput,
|
|
10923
|
+
onSubmit: handleSubmit,
|
|
10924
|
+
onStop: stopGeneration,
|
|
10925
|
+
isLoading,
|
|
10926
|
+
placeholder: "\uBA54\uC2DC\uC9C0\uB97C \uC785\uB825\uD558\uC138\uC694...",
|
|
10927
|
+
quotedText,
|
|
10928
|
+
onClearQuote: () => setQuotedText(null),
|
|
10929
|
+
selectedAction,
|
|
10930
|
+
onClearAction: () => setSelectedAction(null),
|
|
10931
|
+
onActionSelect: setSelectedAction,
|
|
10932
|
+
actions,
|
|
10933
|
+
onDeepResearch: toggleDeepResearchMode,
|
|
10934
|
+
isDeepResearchMode,
|
|
10935
|
+
deepResearchEnabled,
|
|
10936
|
+
manualSkills,
|
|
10937
|
+
onSkillSelect: executeManualSkill,
|
|
10938
|
+
activeSkillExecution,
|
|
10939
|
+
attachments,
|
|
10940
|
+
onFileAttach: addAttachments,
|
|
10941
|
+
onRemoveAttachment: removeAttachment,
|
|
10942
|
+
onDisclaimerClick: () => setDisclaimerOpen(true)
|
|
10943
|
+
}
|
|
10944
|
+
)
|
|
10945
|
+
] })
|
|
10969
10946
|
]
|
|
10970
10947
|
}
|
|
10971
10948
|
),
|
|
10972
|
-
showSettings && /* @__PURE__ */ (0,
|
|
10949
|
+
showSettings && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
10973
10950
|
SettingsModal,
|
|
10974
10951
|
{
|
|
10975
10952
|
isOpen: settingsOpen,
|
|
@@ -10996,7 +10973,7 @@ var ChatUIView = ({
|
|
|
10996
10973
|
currentProjectTitle: currentProject?.title
|
|
10997
10974
|
}
|
|
10998
10975
|
),
|
|
10999
|
-
/* @__PURE__ */ (0,
|
|
10976
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
11000
10977
|
ProjectSettingsModal,
|
|
11001
10978
|
{
|
|
11002
10979
|
isOpen: projectSettingsOpen,
|
|
@@ -11008,7 +10985,7 @@ var ChatUIView = ({
|
|
|
11008
10985
|
onDeleteProject: deleteProject
|
|
11009
10986
|
}
|
|
11010
10987
|
),
|
|
11011
|
-
/* @__PURE__ */ (0,
|
|
10988
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DisclaimerModal, { isOpen: disclaimerOpen, onClose: () => setDisclaimerOpen(false) })
|
|
11012
10989
|
]
|
|
11013
10990
|
}
|
|
11014
10991
|
);
|
|
@@ -11017,6 +10994,7 @@ var ChatUIWithHook = ({
|
|
|
11017
10994
|
models = DEFAULT_MODELS,
|
|
11018
10995
|
actions = DEFAULT_ACTIONS,
|
|
11019
10996
|
templates = DEFAULT_TEMPLATES,
|
|
10997
|
+
suggestedPrompts,
|
|
11020
10998
|
personalization,
|
|
11021
10999
|
onPersonalizationChange,
|
|
11022
11000
|
onPersonalizationSave,
|
|
@@ -11110,7 +11088,7 @@ var ChatUIWithHook = ({
|
|
|
11110
11088
|
onDeleteProjectFile
|
|
11111
11089
|
};
|
|
11112
11090
|
const state = useChatUI(hookOptions);
|
|
11113
|
-
return /* @__PURE__ */ (0,
|
|
11091
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
11114
11092
|
ChatUIView,
|
|
11115
11093
|
{
|
|
11116
11094
|
state,
|
|
@@ -11130,7 +11108,8 @@ var ChatUIWithHook = ({
|
|
|
11130
11108
|
className,
|
|
11131
11109
|
apiKey,
|
|
11132
11110
|
onApiKeyChange,
|
|
11133
|
-
deepResearchEnabled: !!deepResearch?.onWebSearch
|
|
11111
|
+
deepResearchEnabled: !!deepResearch?.onWebSearch,
|
|
11112
|
+
suggestedPrompts
|
|
11134
11113
|
}
|
|
11135
11114
|
);
|
|
11136
11115
|
};
|
|
@@ -11154,9 +11133,10 @@ var ChatUI = (props) => {
|
|
|
11154
11133
|
className = "",
|
|
11155
11134
|
apiKey,
|
|
11156
11135
|
onApiKeyChange,
|
|
11157
|
-
deepResearch
|
|
11136
|
+
deepResearch,
|
|
11137
|
+
suggestedPrompts: chatStateSuggestedPrompts
|
|
11158
11138
|
} = props;
|
|
11159
|
-
return /* @__PURE__ */ (0,
|
|
11139
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
11160
11140
|
ChatUIView,
|
|
11161
11141
|
{
|
|
11162
11142
|
state: props.chatState,
|
|
@@ -11176,11 +11156,12 @@ var ChatUI = (props) => {
|
|
|
11176
11156
|
className,
|
|
11177
11157
|
apiKey,
|
|
11178
11158
|
onApiKeyChange,
|
|
11179
|
-
deepResearchEnabled: !!deepResearch?.onWebSearch
|
|
11159
|
+
deepResearchEnabled: !!deepResearch?.onWebSearch,
|
|
11160
|
+
suggestedPrompts: chatStateSuggestedPrompts
|
|
11180
11161
|
}
|
|
11181
11162
|
);
|
|
11182
11163
|
}
|
|
11183
|
-
return /* @__PURE__ */ (0,
|
|
11164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ChatUIWithHook, { ...props });
|
|
11184
11165
|
};
|
|
11185
11166
|
|
|
11186
11167
|
// src/react/hooks/useDeepResearch.ts
|
|
@@ -11497,6 +11478,144 @@ var useDeepResearch = (options) => {
|
|
|
11497
11478
|
};
|
|
11498
11479
|
};
|
|
11499
11480
|
|
|
11481
|
+
// src/react/components/EmptyState.tsx
|
|
11482
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
11483
|
+
var EmptyState = ({
|
|
11484
|
+
greeting,
|
|
11485
|
+
templates = [],
|
|
11486
|
+
onTemplateClick,
|
|
11487
|
+
actions = [],
|
|
11488
|
+
onActionSelect
|
|
11489
|
+
}) => {
|
|
11490
|
+
const getActionIcon = (icon) => {
|
|
11491
|
+
const iconMap = {
|
|
11492
|
+
search: "search-line",
|
|
11493
|
+
image: "image-line",
|
|
11494
|
+
code: "code-s-slash-line",
|
|
11495
|
+
document: "file-text-line"
|
|
11496
|
+
};
|
|
11497
|
+
return iconMap[icon] || "sparkling-line";
|
|
11498
|
+
};
|
|
11499
|
+
const hasContent = actions.length > 0 || templates.length > 0;
|
|
11500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
11501
|
+
"div",
|
|
11502
|
+
{
|
|
11503
|
+
className: "chatllm-empty-state",
|
|
11504
|
+
style: {
|
|
11505
|
+
flex: 1,
|
|
11506
|
+
display: "flex",
|
|
11507
|
+
flexDirection: "column",
|
|
11508
|
+
alignItems: "center",
|
|
11509
|
+
justifyContent: hasContent ? "center" : "flex-end",
|
|
11510
|
+
padding: "48px 24px",
|
|
11511
|
+
paddingBottom: hasContent ? "200px" : "32px",
|
|
11512
|
+
textAlign: "center"
|
|
11513
|
+
},
|
|
11514
|
+
children: [
|
|
11515
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11516
|
+
"div",
|
|
11517
|
+
{
|
|
11518
|
+
className: "chatllm-sheet",
|
|
11519
|
+
style: {
|
|
11520
|
+
width: "64px",
|
|
11521
|
+
height: "64px",
|
|
11522
|
+
borderRadius: "16px",
|
|
11523
|
+
display: "flex",
|
|
11524
|
+
alignItems: "center",
|
|
11525
|
+
justifyContent: "center",
|
|
11526
|
+
marginBottom: "32px",
|
|
11527
|
+
color: "var(--chatllm-primary)"
|
|
11528
|
+
},
|
|
11529
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(IconSvg, { name: "chat-1-line", size: 40 })
|
|
11530
|
+
}
|
|
11531
|
+
),
|
|
11532
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11533
|
+
"h1",
|
|
11534
|
+
{
|
|
11535
|
+
style: {
|
|
11536
|
+
fontSize: "30px",
|
|
11537
|
+
fontWeight: 700,
|
|
11538
|
+
color: "var(--chatllm-text)",
|
|
11539
|
+
marginBottom: hasContent ? "40px" : "0",
|
|
11540
|
+
lineHeight: 1.3
|
|
11541
|
+
},
|
|
11542
|
+
children: "How can I help you today?"
|
|
11543
|
+
}
|
|
11544
|
+
),
|
|
11545
|
+
(actions.length > 0 || templates.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
11546
|
+
"div",
|
|
11547
|
+
{
|
|
11548
|
+
style: {
|
|
11549
|
+
display: "flex",
|
|
11550
|
+
flexWrap: "wrap",
|
|
11551
|
+
justifyContent: "center",
|
|
11552
|
+
gap: "12px",
|
|
11553
|
+
maxWidth: "800px",
|
|
11554
|
+
marginBottom: "48px"
|
|
11555
|
+
},
|
|
11556
|
+
children: [
|
|
11557
|
+
actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
11558
|
+
"button",
|
|
11559
|
+
{
|
|
11560
|
+
onClick: () => onActionSelect?.(action),
|
|
11561
|
+
className: "chatllm-btn-secondary",
|
|
11562
|
+
style: {
|
|
11563
|
+
display: "flex",
|
|
11564
|
+
alignItems: "center",
|
|
11565
|
+
gap: "8px",
|
|
11566
|
+
padding: "12px 20px",
|
|
11567
|
+
fontSize: "14px",
|
|
11568
|
+
fontWeight: 500
|
|
11569
|
+
},
|
|
11570
|
+
children: [
|
|
11571
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11572
|
+
IconSvg,
|
|
11573
|
+
{
|
|
11574
|
+
name: getActionIcon(action.icon),
|
|
11575
|
+
size: 18,
|
|
11576
|
+
color: "var(--chatllm-primary)"
|
|
11577
|
+
}
|
|
11578
|
+
),
|
|
11579
|
+
action.label
|
|
11580
|
+
]
|
|
11581
|
+
},
|
|
11582
|
+
action.id
|
|
11583
|
+
)),
|
|
11584
|
+
templates.slice(0, 4).map((template) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
11585
|
+
"button",
|
|
11586
|
+
{
|
|
11587
|
+
onClick: () => onTemplateClick(template),
|
|
11588
|
+
className: "chatllm-btn-secondary",
|
|
11589
|
+
style: {
|
|
11590
|
+
display: "flex",
|
|
11591
|
+
alignItems: "center",
|
|
11592
|
+
gap: "8px",
|
|
11593
|
+
padding: "12px 20px",
|
|
11594
|
+
fontSize: "14px",
|
|
11595
|
+
fontWeight: 500
|
|
11596
|
+
},
|
|
11597
|
+
children: [
|
|
11598
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11599
|
+
IconSvg,
|
|
11600
|
+
{
|
|
11601
|
+
name: "sparkling-line",
|
|
11602
|
+
size: 18,
|
|
11603
|
+
color: "var(--chatllm-primary)"
|
|
11604
|
+
}
|
|
11605
|
+
),
|
|
11606
|
+
template.title
|
|
11607
|
+
]
|
|
11608
|
+
},
|
|
11609
|
+
template.id
|
|
11610
|
+
))
|
|
11611
|
+
]
|
|
11612
|
+
}
|
|
11613
|
+
)
|
|
11614
|
+
]
|
|
11615
|
+
}
|
|
11616
|
+
);
|
|
11617
|
+
};
|
|
11618
|
+
|
|
11500
11619
|
// src/react/components/MemoryPanel.tsx
|
|
11501
11620
|
var import_react22 = require("react");
|
|
11502
11621
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
@@ -11542,9 +11661,9 @@ var MemoryPanel = ({
|
|
|
11542
11661
|
width: "48px",
|
|
11543
11662
|
height: "48px",
|
|
11544
11663
|
borderRadius: "50%",
|
|
11545
|
-
backgroundColor: "var(--chatllm-primary, #
|
|
11664
|
+
backgroundColor: "var(--chatllm-primary, #3584FA)",
|
|
11546
11665
|
border: "none",
|
|
11547
|
-
boxShadow: "0 4px 12px rgba(
|
|
11666
|
+
boxShadow: "0 4px 12px rgba(53, 132, 250, 0.3)",
|
|
11548
11667
|
cursor: "pointer",
|
|
11549
11668
|
display: "flex",
|
|
11550
11669
|
alignItems: "center",
|
|
@@ -11599,7 +11718,7 @@ var MemoryPanel = ({
|
|
|
11599
11718
|
alignItems: "center",
|
|
11600
11719
|
justifyContent: "center"
|
|
11601
11720
|
},
|
|
11602
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #
|
|
11721
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #3584FA)" })
|
|
11603
11722
|
}
|
|
11604
11723
|
),
|
|
11605
11724
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { children: [
|
|
@@ -11663,7 +11782,7 @@ var MemoryPanel = ({
|
|
|
11663
11782
|
fontSize: "13px",
|
|
11664
11783
|
fontWeight: activeTab === tab ? 500 : 400,
|
|
11665
11784
|
backgroundColor: activeTab === tab ? "var(--chatllm-primary-light, #dbeafe)" : "transparent",
|
|
11666
|
-
color: activeTab === tab ? "var(--chatllm-primary, #
|
|
11785
|
+
color: activeTab === tab ? "var(--chatllm-primary, #3584FA)" : "var(--chatllm-text-muted, #6b7280)",
|
|
11667
11786
|
border: "none",
|
|
11668
11787
|
borderRadius: "6px",
|
|
11669
11788
|
cursor: "pointer",
|
|
@@ -11684,7 +11803,7 @@ var MemoryPanel = ({
|
|
|
11684
11803
|
marginBottom: "12px",
|
|
11685
11804
|
backgroundColor: "var(--chatllm-bg-secondary, #f9fafb)",
|
|
11686
11805
|
borderRadius: "10px",
|
|
11687
|
-
borderLeft: "3px solid var(--chatllm-primary, #
|
|
11806
|
+
borderLeft: "3px solid var(--chatllm-primary, #3584FA)"
|
|
11688
11807
|
},
|
|
11689
11808
|
children: [
|
|
11690
11809
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
@@ -11697,8 +11816,8 @@ var MemoryPanel = ({
|
|
|
11697
11816
|
marginBottom: "8px"
|
|
11698
11817
|
},
|
|
11699
11818
|
children: [
|
|
11700
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #
|
|
11701
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #
|
|
11819
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3584FA)" }),
|
|
11820
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uB300\uD654 \uC694\uC57D" })
|
|
11702
11821
|
]
|
|
11703
11822
|
}
|
|
11704
11823
|
),
|