@agent-platform/ui 0.0.14 → 0.0.15
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.js +64 -148
- package/dist/styles/agent-ui.css +27 -129
- package/package.json +2 -3
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createContext, useRef, useEffect, useState, useMemo, useCallback, useCo
|
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
import { twMerge } from 'tailwind-merge';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
-
import {
|
|
5
|
+
import { ChevronDown, PlusCircle, Send, Wrench } from 'lucide-react';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
7
7
|
import { Slot } from 'radix-ui';
|
|
8
8
|
import ReactMarkdown from 'react-markdown';
|
|
@@ -103,10 +103,8 @@ function Button({
|
|
|
103
103
|
function AgentHeader({
|
|
104
104
|
historyLabel = "\u5C65\u6B74",
|
|
105
105
|
onHistoryClick,
|
|
106
|
-
onSettingsClick,
|
|
107
106
|
onNewChatClick,
|
|
108
107
|
newChatLabel = "\u65B0\u898F\u30C1\u30E3\u30C3\u30C8",
|
|
109
|
-
settingsAriaLabel = "\u8A2D\u5B9A",
|
|
110
108
|
isHistoryOpen = false,
|
|
111
109
|
className
|
|
112
110
|
}) {
|
|
@@ -127,7 +125,7 @@ function AgentHeader({
|
|
|
127
125
|
children: [
|
|
128
126
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-foreground", children: historyLabel }),
|
|
129
127
|
/* @__PURE__ */ jsx(
|
|
130
|
-
|
|
128
|
+
ChevronDown,
|
|
131
129
|
{
|
|
132
130
|
className: cn("size-4 transition-transform duration-200", isHistoryOpen && "rotate-180")
|
|
133
131
|
}
|
|
@@ -135,27 +133,9 @@ function AgentHeader({
|
|
|
135
133
|
]
|
|
136
134
|
}
|
|
137
135
|
),
|
|
138
|
-
/* @__PURE__ */ jsxs(
|
|
139
|
-
/* @__PURE__ */ jsx(
|
|
140
|
-
|
|
141
|
-
{
|
|
142
|
-
variant: "ghost",
|
|
143
|
-
size: "icon-sm",
|
|
144
|
-
onClick: onSettingsClick,
|
|
145
|
-
"aria-label": settingsAriaLabel,
|
|
146
|
-
className: "text-foreground",
|
|
147
|
-
children: /* @__PURE__ */ jsx(Gear, { className: "size-5" })
|
|
148
|
-
}
|
|
149
|
-
),
|
|
150
|
-
/* @__PURE__ */ jsx(
|
|
151
|
-
Button,
|
|
152
|
-
{
|
|
153
|
-
size: "sm",
|
|
154
|
-
onClick: onNewChatClick,
|
|
155
|
-
className: "bg-foreground text-background text-xs font-medium hover:bg-foreground/90",
|
|
156
|
-
children: newChatLabel
|
|
157
|
-
}
|
|
158
|
-
)
|
|
136
|
+
/* @__PURE__ */ jsxs(Button, { variant: "secondary", size: "xs", onClick: onNewChatClick, children: [
|
|
137
|
+
/* @__PURE__ */ jsx(PlusCircle, { className: "size-4", color: "gray" }),
|
|
138
|
+
newChatLabel
|
|
159
139
|
] })
|
|
160
140
|
]
|
|
161
141
|
}
|
|
@@ -328,7 +308,6 @@ function AgentInput({
|
|
|
328
308
|
value: controlledValue,
|
|
329
309
|
onChange,
|
|
330
310
|
onSend,
|
|
331
|
-
onAttach,
|
|
332
311
|
placeholder = "AI\u306B\u76F8\u8AC7\u3057\u3066\u307F\u307E\u3057\u3087\u3046",
|
|
333
312
|
disabled = false,
|
|
334
313
|
isLoading = false,
|
|
@@ -386,19 +365,6 @@ function AgentInput({
|
|
|
386
365
|
"data-slot": "agent-input",
|
|
387
366
|
className: cn("w-full border-t border-border bg-muted px-3 pb-3 pt-2", className),
|
|
388
367
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-1 p-2 rounded-lg border border-border bg-background transition-colors", children: [
|
|
389
|
-
/* @__PURE__ */ jsx(
|
|
390
|
-
Button,
|
|
391
|
-
{
|
|
392
|
-
type: "button",
|
|
393
|
-
variant: "ghost",
|
|
394
|
-
size: "icon-sm",
|
|
395
|
-
onClick: onAttach,
|
|
396
|
-
disabled,
|
|
397
|
-
"aria-label": "\u30D5\u30A1\u30A4\u30EB\u3092\u6DFB\u4ED8",
|
|
398
|
-
className: "mb-0.5 text-muted-foreground hover:text-foreground",
|
|
399
|
-
children: /* @__PURE__ */ jsx(Paperclip, { className: "size-4", weight: "bold" })
|
|
400
|
-
}
|
|
401
|
-
),
|
|
402
368
|
/* @__PURE__ */ jsx(
|
|
403
369
|
Textarea,
|
|
404
370
|
{
|
|
@@ -420,7 +386,7 @@ function AgentInput({
|
|
|
420
386
|
onClick: handleSend,
|
|
421
387
|
disabled: !canSend,
|
|
422
388
|
"aria-label": "\u9001\u4FE1 (\u2318+Enter)",
|
|
423
|
-
children: /* @__PURE__ */ jsx(
|
|
389
|
+
children: /* @__PURE__ */ jsx(Send, { className: "size-5" })
|
|
424
390
|
}
|
|
425
391
|
)
|
|
426
392
|
] })
|
|
@@ -491,44 +457,13 @@ function Markdown({ content, className }) {
|
|
|
491
457
|
const normalizedContent = normalizeAgentMarkdown(content);
|
|
492
458
|
return /* @__PURE__ */ jsx("div", { className: cn("text-sm leading-relaxed", className), children: /* @__PURE__ */ jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], components, children: normalizedContent }) });
|
|
493
459
|
}
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
}
|
|
501
|
-
var statusColors = {
|
|
502
|
-
pending: "bg-muted text-muted-foreground",
|
|
503
|
-
"awaiting-approval": "bg-amber-50 text-amber-700 dark:bg-amber-950 dark:text-amber-300",
|
|
504
|
-
executing: "bg-primary/10 text-primary",
|
|
505
|
-
completed: "bg-green-50 text-green-600 dark:bg-green-950 dark:text-green-400",
|
|
506
|
-
error: "bg-destructive/10 text-destructive"
|
|
507
|
-
};
|
|
508
|
-
function ToolCallCard({
|
|
509
|
-
toolCallState,
|
|
510
|
-
statusLabels,
|
|
511
|
-
parametersLabel = "\u30D1\u30E9\u30E1\u30FC\u30BF",
|
|
512
|
-
resultLabel = "\u7D50\u679C\u3092\u8868\u793A"
|
|
513
|
-
}) {
|
|
514
|
-
const { toolCall, status, result, error } = toolCallState;
|
|
515
|
-
const toolLabel = toolCall.toolName;
|
|
516
|
-
const mergedStatusLabels = statusLabels ? { ...defaultStatusLabels, ...statusLabels } : defaultStatusLabels;
|
|
517
|
-
const statusLabel = mergedStatusLabels[status];
|
|
518
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-md p-1 mt-3 bg-card", children: [
|
|
519
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
520
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-foreground", children: toolLabel }),
|
|
521
|
-
status === "executing" ? /* @__PURE__ */ jsx("div", { className: "h-3 w-3 animate-spin rounded-full border border-primary border-t-transparent" }) : /* @__PURE__ */ jsx("span", { className: cn("rounded-full px-2 py-0.5 text-[11px]", statusColors[status]), children: statusLabel })
|
|
522
|
-
] }),
|
|
523
|
-
/* @__PURE__ */ jsxs("details", { className: "mt-2", children: [
|
|
524
|
-
/* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-xs text-muted-foreground", children: parametersLabel }),
|
|
525
|
-
/* @__PURE__ */ jsx("pre", { className: "mt-1 ml-4 overflow-x-auto rounded bg-muted p-2 text-xs text-muted-foreground", children: JSON.stringify(toolCall.input, null, 2) })
|
|
526
|
-
] }),
|
|
527
|
-
status === "completed" && result !== void 0 && /* @__PURE__ */ jsxs("details", { className: "mt-2", children: [
|
|
528
|
-
/* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-xs text-muted-foreground", children: resultLabel }),
|
|
529
|
-
/* @__PURE__ */ jsx("pre", { className: "mt-1 ml-4 max-h-40 overflow-auto rounded bg-muted p-2 text-xs text-muted-foreground", children: typeof result === "string" ? result : JSON.stringify(result, null, 2) })
|
|
530
|
-
] }),
|
|
531
|
-
status === "error" && error && /* @__PURE__ */ jsx("div", { className: "mt-2 rounded bg-destructive/10 p-2 text-xs text-destructive", children: error })
|
|
460
|
+
function ToolCallGroup({ toolCallStates }) {
|
|
461
|
+
if (toolCallStates.length === 0) return null;
|
|
462
|
+
const isExecuting = toolCallStates.some((s) => s.status === "executing");
|
|
463
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
464
|
+
/* @__PURE__ */ jsx(Wrench, { size: 14, strokeWidth: 1.5, className: "text-muted-foreground/60 shrink-0" }),
|
|
465
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground/60", children: toolCallStates.map((s) => s.toolCall.toolName).join(", ") }),
|
|
466
|
+
isExecuting && /* @__PURE__ */ jsx("div", { className: "h-2.5 w-2.5 animate-spin rounded-full border border-muted-foreground/40 border-t-transparent shrink-0" })
|
|
532
467
|
] });
|
|
533
468
|
}
|
|
534
469
|
|
|
@@ -539,6 +474,20 @@ function extractTextContent(content) {
|
|
|
539
474
|
function extractToolCalls(content) {
|
|
540
475
|
return content.filter((part) => part.type === "tool-call").map((part) => part.toolCall);
|
|
541
476
|
}
|
|
477
|
+
function extractToolResults(content) {
|
|
478
|
+
return content.filter((part) => part.type === "tool-result").map((part) => part.toolResult);
|
|
479
|
+
}
|
|
480
|
+
function resolveToolCallState(toolCall, pendingToolCalls, toolResults) {
|
|
481
|
+
const pending = pendingToolCalls.find((p) => p.toolCall.toolCallId === toolCall.toolCallId);
|
|
482
|
+
if (pending) return pending;
|
|
483
|
+
const matchingResult = toolResults.find((r) => r.toolCallId === toolCall.toolCallId);
|
|
484
|
+
return {
|
|
485
|
+
toolCall,
|
|
486
|
+
status: matchingResult?.isError ? "error" : "completed",
|
|
487
|
+
result: matchingResult?.result,
|
|
488
|
+
error: matchingResult?.isError ? String(matchingResult.result) : void 0
|
|
489
|
+
};
|
|
490
|
+
}
|
|
542
491
|
function shouldShowLoadingIndicator({
|
|
543
492
|
messages,
|
|
544
493
|
isLoading
|
|
@@ -553,60 +502,40 @@ function shouldShowLoadingIndicator({
|
|
|
553
502
|
function MessageItem({ message, pendingToolCalls }) {
|
|
554
503
|
const isUser = message.role === "user";
|
|
555
504
|
const textContent = extractTextContent(message.content);
|
|
505
|
+
if (isUser) {
|
|
506
|
+
return /* @__PURE__ */ jsx("div", { className: "flex justify-end my-2", children: /* @__PURE__ */ jsx("div", { className: "max-w-3/4", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg bg-muted text-foreground px-3 py-2.5", children: /* @__PURE__ */ jsx("div", { className: "whitespace-pre-wrap text-sm leading-relaxed", children: textContent }) }) }) });
|
|
507
|
+
}
|
|
556
508
|
const toolCalls = extractToolCalls(message.content);
|
|
557
|
-
if (
|
|
509
|
+
if (message.isStreaming && !textContent && toolCalls.length === 0) {
|
|
510
|
+
return null;
|
|
511
|
+
}
|
|
512
|
+
if (toolCalls.length === 0 && textContent.length === 0) {
|
|
558
513
|
return null;
|
|
559
514
|
}
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
515
|
+
const toolResults = toolCalls.length > 0 ? extractToolResults(message.content) : [];
|
|
516
|
+
return /* @__PURE__ */ jsx("div", { className: "flex justify-start", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
|
|
517
|
+
textContent.length > 0 && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Markdown, { content: textContent }) }),
|
|
518
|
+
toolCalls.length > 0 && /* @__PURE__ */ jsx(
|
|
519
|
+
ToolCallGroup,
|
|
563
520
|
{
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
),
|
|
568
|
-
children: isUser ? /* @__PURE__ */ jsx("div", { className: "whitespace-pre-wrap text-sm leading-relaxed", children: textContent }) : /* @__PURE__ */ jsx(Markdown, { content: textContent })
|
|
569
|
-
}
|
|
570
|
-
),
|
|
571
|
-
!isUser && toolCalls.length > 0 && /* @__PURE__ */ jsx("div", { className: "ml-2 space-y-1.5 border-l-2 border-border pl-2", children: toolCalls.map((tc) => {
|
|
572
|
-
const toolCallState = pendingToolCalls.find(
|
|
573
|
-
(p) => p.toolCall.toolCallId === tc.toolCallId
|
|
574
|
-
);
|
|
575
|
-
if (toolCallState) {
|
|
576
|
-
return /* @__PURE__ */ jsx(
|
|
577
|
-
ToolCallCard,
|
|
578
|
-
{
|
|
579
|
-
toolCallState
|
|
580
|
-
},
|
|
581
|
-
tc.toolCallId
|
|
582
|
-
);
|
|
521
|
+
toolCallStates: toolCalls.map(
|
|
522
|
+
(tc) => resolveToolCallState(tc, pendingToolCalls, toolResults)
|
|
523
|
+
)
|
|
583
524
|
}
|
|
584
|
-
|
|
585
|
-
}) })
|
|
525
|
+
)
|
|
586
526
|
] }) });
|
|
587
527
|
}
|
|
588
|
-
function LoadingDots() {
|
|
589
|
-
return /* @__PURE__ */ jsxs("span", { className: "flex gap-0.5", "aria-hidden": "true", children: [
|
|
590
|
-
/* @__PURE__ */ jsx("span", { className: "h-0.5 w-0.5 animate-dot-fade rounded-full bg-muted-foreground/50 [animation-delay:0ms]" }),
|
|
591
|
-
/* @__PURE__ */ jsx("span", { className: "h-0.5 w-0.5 animate-dot-fade rounded-full bg-muted-foreground/50 [animation-delay:150ms]" }),
|
|
592
|
-
/* @__PURE__ */ jsx("span", { className: "h-0.5 w-0.5 animate-dot-fade rounded-full bg-muted-foreground/50 [animation-delay:300ms]" })
|
|
593
|
-
] });
|
|
594
|
-
}
|
|
595
528
|
function MessageLoading({ className }) {
|
|
596
|
-
return /* @__PURE__ */
|
|
597
|
-
/* @__PURE__ */ jsx("
|
|
598
|
-
/* @__PURE__ */ jsx(
|
|
599
|
-
] })
|
|
529
|
+
return /* @__PURE__ */ jsxs("output", { className: cn("flex items-center gap-1.5 my-1", className), "aria-label": "AI\u5FDC\u7B54\u3092\u5F85\u6A5F\u4E2D", children: [
|
|
530
|
+
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 animate-spin rounded-full border border-primary border-t-transparent" }),
|
|
531
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground leading-1", children: "\u8003\u3048\u4E2D" })
|
|
532
|
+
] });
|
|
600
533
|
}
|
|
601
|
-
function MessageList({
|
|
602
|
-
messages,
|
|
603
|
-
pendingToolCalls,
|
|
604
|
-
isLoading = false
|
|
605
|
-
}) {
|
|
534
|
+
function MessageList({ messages, pendingToolCalls, isLoading = false }) {
|
|
606
535
|
const bottomRef = useRef(null);
|
|
607
536
|
useEffect(() => {
|
|
608
537
|
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
609
|
-
}, [
|
|
538
|
+
}, []);
|
|
610
539
|
if (messages.length === 0 && !isLoading) {
|
|
611
540
|
return null;
|
|
612
541
|
}
|
|
@@ -614,15 +543,8 @@ function MessageList({
|
|
|
614
543
|
messages,
|
|
615
544
|
isLoading
|
|
616
545
|
});
|
|
617
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3
|
|
618
|
-
messages.map((message) => /* @__PURE__ */ jsx(
|
|
619
|
-
MessageItem,
|
|
620
|
-
{
|
|
621
|
-
message,
|
|
622
|
-
pendingToolCalls
|
|
623
|
-
},
|
|
624
|
-
message.id
|
|
625
|
-
)),
|
|
546
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 py-5 px-4", children: [
|
|
547
|
+
messages.map((message) => /* @__PURE__ */ jsx(MessageItem, { message, pendingToolCalls }, message.id)),
|
|
626
548
|
showLoadingIndicator && /* @__PURE__ */ jsx(MessageLoading, {}),
|
|
627
549
|
/* @__PURE__ */ jsx("div", { ref: bottomRef })
|
|
628
550
|
] });
|
|
@@ -739,7 +661,7 @@ function AgentContainerView({
|
|
|
739
661
|
"div",
|
|
740
662
|
{
|
|
741
663
|
"data-slot": "agent-container",
|
|
742
|
-
className: cn("flex h-full w-full flex-col mx-auto max-w-
|
|
664
|
+
className: cn("flex h-full w-full flex-col mx-auto max-w-180", className),
|
|
743
665
|
children: [
|
|
744
666
|
/* @__PURE__ */ jsxs("div", { ref: historyAreaRef, className: "relative", children: [
|
|
745
667
|
/* @__PURE__ */ jsx(
|
|
@@ -772,24 +694,18 @@ function AgentContainerView({
|
|
|
772
694
|
),
|
|
773
695
|
error && /* @__PURE__ */ jsx("div", { className: "mx-4 mb-4 rounded-lg bg-red-50 p-3 text-sm text-red-600", children: error })
|
|
774
696
|
] }) : /* @__PURE__ */ jsx("div", { className: "flex flex-1 flex-col items-center justify-center gap-6 bg-background px-4 py-4", children: /* @__PURE__ */ jsx(AgentGreeting, {}) }),
|
|
775
|
-
/* @__PURE__ */ jsxs(
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
toolApprovalLabels
|
|
788
|
-
}
|
|
789
|
-
)
|
|
790
|
-
]
|
|
791
|
-
}
|
|
792
|
-
)
|
|
697
|
+
/* @__PURE__ */ jsxs("div", { className: "fixed bottom-0 left-0 right-0 mx-auto w-full max-w-180 bg-background", children: [
|
|
698
|
+
layoutState.shouldShowInput && /* @__PURE__ */ jsx(AgentInput, { ...inputProps }),
|
|
699
|
+
layoutState.shouldShowToolApprovalPanel && /* @__PURE__ */ jsx(
|
|
700
|
+
ToolApprovalPanel,
|
|
701
|
+
{
|
|
702
|
+
activeApprovalRequest,
|
|
703
|
+
approveToolCall,
|
|
704
|
+
rejectToolCall,
|
|
705
|
+
toolApprovalLabels
|
|
706
|
+
}
|
|
707
|
+
)
|
|
708
|
+
] })
|
|
793
709
|
]
|
|
794
710
|
}
|
|
795
711
|
);
|
package/dist/styles/agent-ui.css
CHANGED
|
@@ -4,18 +4,9 @@
|
|
|
4
4
|
:root, :host {
|
|
5
5
|
--color-red-50: oklch(97.1% 0.013 17.38);
|
|
6
6
|
--color-red-600: oklch(57.7% 0.245 27.325);
|
|
7
|
-
--color-amber-50: oklch(98.7% 0.022 95.277);
|
|
8
|
-
--color-amber-300: oklch(87.9% 0.169 91.605);
|
|
9
|
-
--color-amber-700: oklch(55.5% 0.163 48.998);
|
|
10
|
-
--color-amber-950: oklch(27.9% 0.077 45.635);
|
|
11
|
-
--color-green-50: oklch(98.2% 0.018 155.826);
|
|
12
|
-
--color-green-400: oklch(79.2% 0.209 151.711);
|
|
13
|
-
--color-green-600: oklch(62.7% 0.194 149.214);
|
|
14
|
-
--color-green-950: oklch(26.6% 0.065 152.934);
|
|
15
7
|
--color-white: #fff;
|
|
16
8
|
--spacing: 0.25rem;
|
|
17
9
|
--container-sm: 24rem;
|
|
18
|
-
--container-xl: 36rem;
|
|
19
10
|
--text-xs: 0.75rem;
|
|
20
11
|
--text-xs--line-height: calc(1 / 0.75);
|
|
21
12
|
--text-sm: 0.875rem;
|
|
@@ -87,6 +78,9 @@
|
|
|
87
78
|
.my-1\.5 {
|
|
88
79
|
margin-block: calc(var(--spacing) * 1.5);
|
|
89
80
|
}
|
|
81
|
+
.my-2 {
|
|
82
|
+
margin-block: calc(var(--spacing) * 2);
|
|
83
|
+
}
|
|
90
84
|
.my-3 {
|
|
91
85
|
margin-block: calc(var(--spacing) * 3);
|
|
92
86
|
}
|
|
@@ -105,21 +99,12 @@
|
|
|
105
99
|
.mt-3 {
|
|
106
100
|
margin-top: calc(var(--spacing) * 3);
|
|
107
101
|
}
|
|
108
|
-
.mb-0\.5 {
|
|
109
|
-
margin-bottom: calc(var(--spacing) * 0.5);
|
|
110
|
-
}
|
|
111
102
|
.mb-1 {
|
|
112
103
|
margin-bottom: calc(var(--spacing) * 1);
|
|
113
104
|
}
|
|
114
105
|
.mb-4 {
|
|
115
106
|
margin-bottom: calc(var(--spacing) * 4);
|
|
116
107
|
}
|
|
117
|
-
.ml-2 {
|
|
118
|
-
margin-left: calc(var(--spacing) * 2);
|
|
119
|
-
}
|
|
120
|
-
.ml-4 {
|
|
121
|
-
margin-left: calc(var(--spacing) * 4);
|
|
122
|
-
}
|
|
123
108
|
.flex {
|
|
124
109
|
display: flex;
|
|
125
110
|
}
|
|
@@ -152,8 +137,8 @@
|
|
|
152
137
|
width: calc(var(--spacing) * 10);
|
|
153
138
|
height: calc(var(--spacing) * 10);
|
|
154
139
|
}
|
|
155
|
-
.h-
|
|
156
|
-
height: calc(var(--spacing) *
|
|
140
|
+
.h-2\.5 {
|
|
141
|
+
height: calc(var(--spacing) * 2.5);
|
|
157
142
|
}
|
|
158
143
|
.h-3 {
|
|
159
144
|
height: calc(var(--spacing) * 3);
|
|
@@ -173,9 +158,6 @@
|
|
|
173
158
|
.h-full {
|
|
174
159
|
height: 100%;
|
|
175
160
|
}
|
|
176
|
-
.max-h-40 {
|
|
177
|
-
max-height: calc(var(--spacing) * 40);
|
|
178
|
-
}
|
|
179
161
|
.max-h-\[60vh\] {
|
|
180
162
|
max-height: 60vh;
|
|
181
163
|
}
|
|
@@ -185,8 +167,8 @@
|
|
|
185
167
|
.min-h-16 {
|
|
186
168
|
min-height: calc(var(--spacing) * 16);
|
|
187
169
|
}
|
|
188
|
-
.w-
|
|
189
|
-
width: calc(var(--spacing) *
|
|
170
|
+
.w-2\.5 {
|
|
171
|
+
width: calc(var(--spacing) * 2.5);
|
|
190
172
|
}
|
|
191
173
|
.w-3 {
|
|
192
174
|
width: calc(var(--spacing) * 3);
|
|
@@ -197,15 +179,12 @@
|
|
|
197
179
|
.max-w-3\/4 {
|
|
198
180
|
max-width: calc(3 / 4 * 100%);
|
|
199
181
|
}
|
|
200
|
-
.max-w
|
|
201
|
-
max-width:
|
|
182
|
+
.max-w-180 {
|
|
183
|
+
max-width: calc(var(--spacing) * 180);
|
|
202
184
|
}
|
|
203
185
|
.max-w-sm {
|
|
204
186
|
max-width: var(--container-sm);
|
|
205
187
|
}
|
|
206
|
-
.max-w-xl {
|
|
207
|
-
max-width: var(--container-xl);
|
|
208
|
-
}
|
|
209
188
|
.min-w-full {
|
|
210
189
|
min-width: 100%;
|
|
211
190
|
}
|
|
@@ -224,9 +203,6 @@
|
|
|
224
203
|
.animate-spin {
|
|
225
204
|
animation: var(--animate-spin);
|
|
226
205
|
}
|
|
227
|
-
.cursor-pointer {
|
|
228
|
-
cursor: pointer;
|
|
229
|
-
}
|
|
230
206
|
.resize-none {
|
|
231
207
|
resize: none;
|
|
232
208
|
}
|
|
@@ -260,9 +236,6 @@
|
|
|
260
236
|
.justify-start {
|
|
261
237
|
justify-content: flex-start;
|
|
262
238
|
}
|
|
263
|
-
.gap-0\.5 {
|
|
264
|
-
gap: calc(var(--spacing) * 0.5);
|
|
265
|
-
}
|
|
266
239
|
.gap-1 {
|
|
267
240
|
gap: calc(var(--spacing) * 1);
|
|
268
241
|
}
|
|
@@ -290,9 +263,6 @@
|
|
|
290
263
|
text-overflow: ellipsis;
|
|
291
264
|
white-space: nowrap;
|
|
292
265
|
}
|
|
293
|
-
.overflow-auto {
|
|
294
|
-
overflow: auto;
|
|
295
|
-
}
|
|
296
266
|
.overflow-x-auto {
|
|
297
267
|
overflow-x: auto;
|
|
298
268
|
}
|
|
@@ -343,6 +313,12 @@
|
|
|
343
313
|
.border-input {
|
|
344
314
|
border-color: var(--input);
|
|
345
315
|
}
|
|
316
|
+
.border-muted-foreground\/40 {
|
|
317
|
+
border-color: var(--muted-foreground);
|
|
318
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
319
|
+
border-color: color-mix(in oklab, var(--muted-foreground) 40%, transparent);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
346
322
|
.border-primary {
|
|
347
323
|
border-color: var(--primary);
|
|
348
324
|
}
|
|
@@ -352,9 +328,6 @@
|
|
|
352
328
|
.border-l-primary {
|
|
353
329
|
border-left-color: var(--primary);
|
|
354
330
|
}
|
|
355
|
-
.bg-amber-50 {
|
|
356
|
-
background-color: var(--color-amber-50);
|
|
357
|
-
}
|
|
358
331
|
.bg-background {
|
|
359
332
|
background-color: var(--background);
|
|
360
333
|
}
|
|
@@ -376,27 +349,9 @@
|
|
|
376
349
|
.bg-destructive {
|
|
377
350
|
background-color: var(--destructive);
|
|
378
351
|
}
|
|
379
|
-
.bg-destructive\/10 {
|
|
380
|
-
background-color: var(--destructive);
|
|
381
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
382
|
-
background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
.bg-foreground {
|
|
386
|
-
background-color: var(--foreground);
|
|
387
|
-
}
|
|
388
|
-
.bg-green-50 {
|
|
389
|
-
background-color: var(--color-green-50);
|
|
390
|
-
}
|
|
391
352
|
.bg-muted {
|
|
392
353
|
background-color: var(--muted);
|
|
393
354
|
}
|
|
394
|
-
.bg-muted-foreground\/50 {
|
|
395
|
-
background-color: var(--muted-foreground);
|
|
396
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
397
|
-
background-color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
355
|
.bg-muted\/50 {
|
|
401
356
|
background-color: var(--muted);
|
|
402
357
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -415,12 +370,6 @@
|
|
|
415
370
|
background-color: color-mix(in oklab, var(--primary) 5%, transparent);
|
|
416
371
|
}
|
|
417
372
|
}
|
|
418
|
-
.bg-primary\/10 {
|
|
419
|
-
background-color: var(--primary);
|
|
420
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
421
|
-
background-color: color-mix(in oklab, var(--primary) 10%, transparent);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
373
|
.bg-red-50 {
|
|
425
374
|
background-color: var(--color-red-50);
|
|
426
375
|
}
|
|
@@ -475,6 +424,9 @@
|
|
|
475
424
|
.py-4 {
|
|
476
425
|
padding-block: calc(var(--spacing) * 4);
|
|
477
426
|
}
|
|
427
|
+
.py-5 {
|
|
428
|
+
padding-block: calc(var(--spacing) * 5);
|
|
429
|
+
}
|
|
478
430
|
.pt-1 {
|
|
479
431
|
padding-top: calc(var(--spacing) * 1);
|
|
480
432
|
}
|
|
@@ -487,9 +439,6 @@
|
|
|
487
439
|
.pb-\[97px\] {
|
|
488
440
|
padding-bottom: 97px;
|
|
489
441
|
}
|
|
490
|
-
.pl-2 {
|
|
491
|
-
padding-left: calc(var(--spacing) * 2);
|
|
492
|
-
}
|
|
493
442
|
.pl-3 {
|
|
494
443
|
padding-left: calc(var(--spacing) * 3);
|
|
495
444
|
}
|
|
@@ -515,8 +464,9 @@
|
|
|
515
464
|
font-size: var(--text-xs);
|
|
516
465
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
517
466
|
}
|
|
518
|
-
.
|
|
519
|
-
|
|
467
|
+
.leading-1 {
|
|
468
|
+
--tw-leading: calc(var(--spacing) * 1);
|
|
469
|
+
line-height: calc(var(--spacing) * 1);
|
|
520
470
|
}
|
|
521
471
|
.leading-relaxed {
|
|
522
472
|
--tw-leading: var(--leading-relaxed);
|
|
@@ -547,27 +497,21 @@
|
|
|
547
497
|
.whitespace-pre-wrap {
|
|
548
498
|
white-space: pre-wrap;
|
|
549
499
|
}
|
|
550
|
-
.text-amber-700 {
|
|
551
|
-
color: var(--color-amber-700);
|
|
552
|
-
}
|
|
553
|
-
.text-background {
|
|
554
|
-
color: var(--background);
|
|
555
|
-
}
|
|
556
500
|
.text-card-foreground {
|
|
557
501
|
color: var(--card-foreground);
|
|
558
502
|
}
|
|
559
|
-
.text-destructive {
|
|
560
|
-
color: var(--destructive);
|
|
561
|
-
}
|
|
562
503
|
.text-foreground {
|
|
563
504
|
color: var(--foreground);
|
|
564
505
|
}
|
|
565
|
-
.text-green-600 {
|
|
566
|
-
color: var(--color-green-600);
|
|
567
|
-
}
|
|
568
506
|
.text-muted-foreground {
|
|
569
507
|
color: var(--muted-foreground);
|
|
570
508
|
}
|
|
509
|
+
.text-muted-foreground\/60 {
|
|
510
|
+
color: var(--muted-foreground);
|
|
511
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
512
|
+
color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
571
515
|
.text-primary {
|
|
572
516
|
color: var(--primary);
|
|
573
517
|
}
|
|
@@ -635,15 +579,6 @@
|
|
|
635
579
|
--tw-outline-style: none;
|
|
636
580
|
outline-style: none;
|
|
637
581
|
}
|
|
638
|
-
.\[animation-delay\:0ms\] {
|
|
639
|
-
animation-delay: 0ms;
|
|
640
|
-
}
|
|
641
|
-
.\[animation-delay\:150ms\] {
|
|
642
|
-
animation-delay: 150ms;
|
|
643
|
-
}
|
|
644
|
-
.\[animation-delay\:300ms\] {
|
|
645
|
-
animation-delay: 300ms;
|
|
646
|
-
}
|
|
647
582
|
.\[publish\:check-auth\] {
|
|
648
583
|
publish: check-auth;
|
|
649
584
|
}
|
|
@@ -679,16 +614,6 @@
|
|
|
679
614
|
}
|
|
680
615
|
}
|
|
681
616
|
}
|
|
682
|
-
.hover\:bg-foreground\/90 {
|
|
683
|
-
&:hover {
|
|
684
|
-
@media (hover: hover) {
|
|
685
|
-
background-color: var(--foreground);
|
|
686
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
687
|
-
background-color: color-mix(in oklab, var(--foreground) 90%, transparent);
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
617
|
.hover\:bg-muted {
|
|
693
618
|
&:hover {
|
|
694
619
|
@media (hover: hover) {
|
|
@@ -733,13 +658,6 @@
|
|
|
733
658
|
}
|
|
734
659
|
}
|
|
735
660
|
}
|
|
736
|
-
.hover\:text-foreground {
|
|
737
|
-
&:hover {
|
|
738
|
-
@media (hover: hover) {
|
|
739
|
-
color: var(--foreground);
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
661
|
.hover\:text-primary\/80 {
|
|
744
662
|
&:hover {
|
|
745
663
|
@media (hover: hover) {
|
|
@@ -855,11 +773,6 @@
|
|
|
855
773
|
border-color: var(--input);
|
|
856
774
|
}
|
|
857
775
|
}
|
|
858
|
-
.dark\:bg-amber-950 {
|
|
859
|
-
@media (prefers-color-scheme: dark) {
|
|
860
|
-
background-color: var(--color-amber-950);
|
|
861
|
-
}
|
|
862
|
-
}
|
|
863
776
|
.dark\:bg-destructive\/60 {
|
|
864
777
|
@media (prefers-color-scheme: dark) {
|
|
865
778
|
background-color: var(--destructive);
|
|
@@ -868,11 +781,6 @@
|
|
|
868
781
|
}
|
|
869
782
|
}
|
|
870
783
|
}
|
|
871
|
-
.dark\:bg-green-950 {
|
|
872
|
-
@media (prefers-color-scheme: dark) {
|
|
873
|
-
background-color: var(--color-green-950);
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
784
|
.dark\:bg-input\/30 {
|
|
877
785
|
@media (prefers-color-scheme: dark) {
|
|
878
786
|
background-color: var(--input);
|
|
@@ -881,16 +789,6 @@
|
|
|
881
789
|
}
|
|
882
790
|
}
|
|
883
791
|
}
|
|
884
|
-
.dark\:text-amber-300 {
|
|
885
|
-
@media (prefers-color-scheme: dark) {
|
|
886
|
-
color: var(--color-amber-300);
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
.dark\:text-green-400 {
|
|
890
|
-
@media (prefers-color-scheme: dark) {
|
|
891
|
-
color: var(--color-green-400);
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
792
|
.dark\:hover\:bg-accent\/50 {
|
|
895
793
|
@media (prefers-color-scheme: dark) {
|
|
896
794
|
&:hover {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-platform/ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.15",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
"access": "public"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@phosphor-icons/react": "^2.1.0",
|
|
29
28
|
"react": "^19.0.0",
|
|
30
29
|
"react-dom": "^19.0.0"
|
|
31
30
|
},
|
|
@@ -33,13 +32,13 @@
|
|
|
33
32
|
"better-auth": "^1.4.20",
|
|
34
33
|
"class-variance-authority": "^0.7.1",
|
|
35
34
|
"clsx": "^2.1.1",
|
|
35
|
+
"lucide-react": "^0.574.0",
|
|
36
36
|
"radix-ui": "^1.4.3",
|
|
37
37
|
"react-markdown": "^10.1.0",
|
|
38
38
|
"remark-gfm": "^4.0.1",
|
|
39
39
|
"tailwind-merge": "^3.4.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@phosphor-icons/react": "^2.1.10",
|
|
43
42
|
"@tailwindcss/cli": "^4",
|
|
44
43
|
"@types/react": "^19",
|
|
45
44
|
"@types/react-dom": "^19",
|