@gendive/chatllm 0.17.20 → 0.17.21
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 +510 -391
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +510 -391
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -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,
|
|
@@ -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,62 +9311,62 @@ 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,
|
|
@@ -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 }),
|
|
@@ -9560,7 +9423,7 @@ var SettingsModal = ({
|
|
|
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,
|
|
@@ -9619,12 +9482,12 @@ var TabButton = ({ active, onClick, icon, label }) => /* @__PURE__ */ (0, import
|
|
|
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),
|
|
@@ -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: {
|
|
@@ -9746,19 +9609,19 @@ var MemoryTabContent = ({ items, contextSummary, onDelete, onClearAll, title = "
|
|
|
9746
9609
|
borderLeft: "3px solid var(--chatllm-primary, #3b82f6)"
|
|
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, #3b82f6)" }),
|
|
9614
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3b82f6)" }, 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,7 +9729,7 @@ 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
|
"#2563eb",
|
|
9872
9735
|
"#7c3aed",
|
|
@@ -9947,7 +9810,7 @@ var ProjectSettingsModal = ({
|
|
|
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,
|
|
@@ -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,
|
|
@@ -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, #4A90E2)" }),
|
|
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,12 +10255,12 @@ 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: {
|
|
@@ -10410,33 +10273,33 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
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,10 +10310,10 @@ 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",
|
|
@@ -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,6 +10385,16 @@ 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
10399
|
--chatllm-primary: #4A90E2;
|
|
10527
10400
|
--chatllm-primary-hover: #357ABD;
|
|
@@ -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");
|