@copilotz/chat-ui 0.9.7 → 0.9.9
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/index.cjs +91 -83
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +91 -83
- package/dist/index.js.map +1 -1
- package/dist/styles.css +58 -3
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2895,24 +2895,24 @@ var Sidebar2 = ({
|
|
|
2895
2895
|
]
|
|
2896
2896
|
}
|
|
2897
2897
|
) }),
|
|
2898
|
-
tagsEnabled && threadTagsConfig?.groupingEnabled !== false && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "px-2 py-2 group-data-[collapsible=icon]:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "grid grid-cols-2 gap-1 rounded-
|
|
2898
|
+
tagsEnabled && threadTagsConfig?.groupingEnabled !== false && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "px-2 py-2 group-data-[collapsible=icon]:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "grid grid-cols-2 gap-1 rounded-lg border border-sidebar-border/70 bg-sidebar-accent/70 p-1", children: [
|
|
2899
2899
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2900
2900
|
Button,
|
|
2901
2901
|
{
|
|
2902
|
-
variant:
|
|
2902
|
+
variant: "ghost",
|
|
2903
2903
|
size: "sm",
|
|
2904
2904
|
onClick: () => setGroupBy("date"),
|
|
2905
|
-
className:
|
|
2905
|
+
className: `h-7 rounded-md px-2 text-xs font-semibold transition-colors ${groupBy === "date" ? "border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-sm hover:bg-sidebar" : "text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground"}`,
|
|
2906
2906
|
children: config.labels?.groupByDate || "Date"
|
|
2907
2907
|
}
|
|
2908
2908
|
),
|
|
2909
2909
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2910
2910
|
Button,
|
|
2911
2911
|
{
|
|
2912
|
-
variant:
|
|
2912
|
+
variant: "ghost",
|
|
2913
2913
|
size: "sm",
|
|
2914
2914
|
onClick: () => setGroupBy("tag"),
|
|
2915
|
-
className:
|
|
2915
|
+
className: `h-7 rounded-md px-2 text-xs font-semibold transition-colors ${groupBy === "tag" ? "border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-sm hover:bg-sidebar" : "text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground"}`,
|
|
2916
2916
|
children: config.labels?.groupByTag || "Tag"
|
|
2917
2917
|
}
|
|
2918
2918
|
)
|
|
@@ -3096,7 +3096,7 @@ var Sidebar2 = ({
|
|
|
3096
3096
|
);
|
|
3097
3097
|
})
|
|
3098
3098
|
] }),
|
|
3099
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SidebarFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3099
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SidebarFooter, { className: "border-t border-sidebar-border/70 px-3 pb-[calc(env(safe-area-inset-bottom)+1rem)] pt-3", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3100
3100
|
UserMenu,
|
|
3101
3101
|
{
|
|
3102
3102
|
user,
|
|
@@ -3363,7 +3363,8 @@ var TargetAgentSelector = (0, import_react5.memo)(({
|
|
|
3363
3363
|
onTargetChange,
|
|
3364
3364
|
label = "Target",
|
|
3365
3365
|
placeholder = "Select agent",
|
|
3366
|
-
disabled = false
|
|
3366
|
+
disabled = false,
|
|
3367
|
+
compact = false
|
|
3367
3368
|
}) => {
|
|
3368
3369
|
const agentsWithColors = (0, import_react5.useMemo)(() => assignAgentColors(agents), [agents]);
|
|
3369
3370
|
const selectedAgent = (0, import_react5.useMemo)(
|
|
@@ -3375,7 +3376,7 @@ var TargetAgentSelector = (0, import_react5.memo)(({
|
|
|
3375
3376
|
Button,
|
|
3376
3377
|
{
|
|
3377
3378
|
variant: "ghost",
|
|
3378
|
-
className:
|
|
3379
|
+
className: `gap-1.5 font-medium hover:bg-accent/50 ${compact ? "h-9 rounded-full px-2 text-sm text-muted-foreground hover:text-foreground" : "h-9 px-3 text-base"}`,
|
|
3379
3380
|
disabled,
|
|
3380
3381
|
children: [
|
|
3381
3382
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react9.AtSign, { className: "h-4 w-4 text-muted-foreground" }),
|
|
@@ -4538,6 +4539,9 @@ var ChatInput = (0, import_react8.memo)(function ChatInput2({
|
|
|
4538
4539
|
className = "",
|
|
4539
4540
|
config,
|
|
4540
4541
|
mentionAgents = [],
|
|
4542
|
+
targetAgentId = null,
|
|
4543
|
+
showTargetAgentSelector = false,
|
|
4544
|
+
targetAgentSelectorPlaceholder,
|
|
4541
4545
|
onTargetAgentChange
|
|
4542
4546
|
}) {
|
|
4543
4547
|
const voiceDefaultMode = config?.voiceCompose?.defaultMode ?? "text";
|
|
@@ -5068,7 +5072,7 @@ var ChatInput = (0, import_react8.memo)(function ChatInput2({
|
|
|
5068
5072
|
};
|
|
5069
5073
|
const canAddMoreAttachments = attachments.length < maxAttachments;
|
|
5070
5074
|
const showVoiceComposer = enableAudioRecording && isVoiceComposerOpen;
|
|
5071
|
-
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `
|
|
5075
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `bg-transparent py-0 ${className}`, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "mx-auto w-full max-w-3xl space-y-3 px-3 md:px-2", children: [
|
|
5072
5076
|
uploadProgress.size > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "space-y-2", children: Array.from(uploadProgress.entries()).map(([id, progress]) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5073
5077
|
FileUploadItem,
|
|
5074
5078
|
{
|
|
@@ -5183,38 +5187,51 @@ var ChatInput = (0, import_react8.memo)(function ChatInput2({
|
|
|
5183
5187
|
)) }) })
|
|
5184
5188
|
] }),
|
|
5185
5189
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex min-h-10 items-center justify-between gap-2", children: [
|
|
5186
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.
|
|
5187
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
ref: fileInputRef,
|
|
5191
|
-
type: "file",
|
|
5192
|
-
multiple: true,
|
|
5193
|
-
accept: acceptedFileTypes.length > 0 ? acceptedFileTypes.join(",") : void 0,
|
|
5194
|
-
onChange: handleFileSelect,
|
|
5195
|
-
className: "hidden"
|
|
5196
|
-
}
|
|
5197
|
-
),
|
|
5198
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Tooltip, { children: [
|
|
5199
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5200
|
-
Button,
|
|
5190
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex min-w-0 items-center gap-1", children: [
|
|
5191
|
+
enableFileUpload && canAddMoreAttachments && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
5192
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5193
|
+
"input",
|
|
5201
5194
|
{
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
e.stopPropagation();
|
|
5209
|
-
fileInputRef.current?.click();
|
|
5210
|
-
},
|
|
5211
|
-
disabled,
|
|
5212
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react12.Paperclip, { className: "h-4 w-4" })
|
|
5195
|
+
ref: fileInputRef,
|
|
5196
|
+
type: "file",
|
|
5197
|
+
multiple: true,
|
|
5198
|
+
accept: acceptedFileTypes.length > 0 ? acceptedFileTypes.join(",") : void 0,
|
|
5199
|
+
onChange: handleFileSelect,
|
|
5200
|
+
className: "hidden"
|
|
5213
5201
|
}
|
|
5214
|
-
)
|
|
5215
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.
|
|
5216
|
-
|
|
5217
|
-
|
|
5202
|
+
),
|
|
5203
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Tooltip, { children: [
|
|
5204
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5205
|
+
Button,
|
|
5206
|
+
{
|
|
5207
|
+
type: "button",
|
|
5208
|
+
variant: "ghost",
|
|
5209
|
+
size: "icon",
|
|
5210
|
+
className: "h-9 w-9 rounded-full text-muted-foreground hover:text-foreground",
|
|
5211
|
+
onClick: (e) => {
|
|
5212
|
+
e.preventDefault();
|
|
5213
|
+
e.stopPropagation();
|
|
5214
|
+
fileInputRef.current?.click();
|
|
5215
|
+
},
|
|
5216
|
+
disabled,
|
|
5217
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react12.Paperclip, { className: "h-4 w-4" })
|
|
5218
|
+
}
|
|
5219
|
+
) }),
|
|
5220
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TooltipContent, { children: config?.labels?.attachFileTooltip })
|
|
5221
|
+
] })
|
|
5222
|
+
] }),
|
|
5223
|
+
showTargetAgentSelector && onTargetAgentChange && mentionAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
5224
|
+
TargetAgentSelector,
|
|
5225
|
+
{
|
|
5226
|
+
agents: mentionAgents,
|
|
5227
|
+
targetAgentId,
|
|
5228
|
+
onTargetChange: onTargetAgentChange,
|
|
5229
|
+
placeholder: targetAgentSelectorPlaceholder || "Select agent",
|
|
5230
|
+
disabled: disabled || isGenerating,
|
|
5231
|
+
compact: true
|
|
5232
|
+
}
|
|
5233
|
+
)
|
|
5234
|
+
] }),
|
|
5218
5235
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
5219
5236
|
enableAudioRecording && canAddMoreAttachments && !value.trim() && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Tooltip, { children: [
|
|
5220
5237
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
@@ -6476,50 +6493,41 @@ var ChatUI = ({
|
|
|
6476
6493
|
] })
|
|
6477
6494
|
}
|
|
6478
6495
|
),
|
|
6479
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
)
|
|
6486
|
-
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
|
|
6495
|
-
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
-
|
|
6499
|
-
|
|
6500
|
-
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
acceptedFileTypes: config.features.acceptedFileTypes,
|
|
6515
|
-
config,
|
|
6516
|
-
mentionAgents: participantIds && participantIds.length > 0 ? agentOptions.filter(
|
|
6517
|
-
(a) => participantIds.includes(a.id)
|
|
6518
|
-
) : agentOptions,
|
|
6519
|
-
onTargetAgentChange
|
|
6520
|
-
}
|
|
6521
|
-
)
|
|
6522
|
-
] })
|
|
6496
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "-mt-8 bg-gradient-to-t from-background via-background/95 to-transparent px-0 pb-[env(safe-area-inset-bottom)] pt-10", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
6497
|
+
ChatInput,
|
|
6498
|
+
{
|
|
6499
|
+
value: inputValue,
|
|
6500
|
+
onChange: (value) => {
|
|
6501
|
+
setInputValue(value);
|
|
6502
|
+
if (initialInputApplied.current && !initialInputConsumedRef.current) {
|
|
6503
|
+
initialInputConsumedRef.current = true;
|
|
6504
|
+
onInitialInputConsumed?.();
|
|
6505
|
+
}
|
|
6506
|
+
},
|
|
6507
|
+
onSubmit: handleSendMessage,
|
|
6508
|
+
attachments,
|
|
6509
|
+
onAttachmentsChange: setAttachments,
|
|
6510
|
+
placeholder: config.labels.inputPlaceholder,
|
|
6511
|
+
disabled: false,
|
|
6512
|
+
isGenerating,
|
|
6513
|
+
onStopGeneration: callbacks.onStopGeneration,
|
|
6514
|
+
enableFileUpload: config.features.enableFileUpload,
|
|
6515
|
+
enableAudioRecording: config.features.enableAudioRecording,
|
|
6516
|
+
maxAttachments: config.features.maxAttachments,
|
|
6517
|
+
maxFileSize: config.features.maxFileSize,
|
|
6518
|
+
acceptedFileTypes: config.features.acceptedFileTypes,
|
|
6519
|
+
config,
|
|
6520
|
+
mentionAgents: participantIds && participantIds.length > 0 ? agentOptions.filter(
|
|
6521
|
+
(a) => participantIds.includes(a.id)
|
|
6522
|
+
) : agentOptions,
|
|
6523
|
+
targetAgentId,
|
|
6524
|
+
showTargetAgentSelector: Boolean(
|
|
6525
|
+
isMultiAgentMode && shouldShowAgentSelector && onTargetAgentChange
|
|
6526
|
+
),
|
|
6527
|
+
targetAgentSelectorPlaceholder: config.agentSelector?.label || "Select agent",
|
|
6528
|
+
onTargetAgentChange
|
|
6529
|
+
}
|
|
6530
|
+
) })
|
|
6523
6531
|
] }),
|
|
6524
6532
|
config?.customComponent?.component && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
6525
6533
|
"div",
|