@agent-platform/ui 0.0.14 → 0.0.16
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 +66 -147
- 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,16 @@ 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
|
-
|
|
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 })
|
|
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__ */ jsxs("span", { className: "text-xs text-muted-foreground/60", children: [
|
|
466
|
+
toolCallStates.map((s) => s.toolCall.toolName).join(", "),
|
|
467
|
+
!isExecuting && " \u3092\u5B9F\u884C\u3057\u307E\u3057\u305F"
|
|
522
468
|
] }),
|
|
523
|
-
/* @__PURE__ */
|
|
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 })
|
|
469
|
+
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
470
|
] });
|
|
533
471
|
}
|
|
534
472
|
|
|
@@ -539,6 +477,20 @@ function extractTextContent(content) {
|
|
|
539
477
|
function extractToolCalls(content) {
|
|
540
478
|
return content.filter((part) => part.type === "tool-call").map((part) => part.toolCall);
|
|
541
479
|
}
|
|
480
|
+
function extractToolResults(content) {
|
|
481
|
+
return content.filter((part) => part.type === "tool-result").map((part) => part.toolResult);
|
|
482
|
+
}
|
|
483
|
+
function resolveToolCallState(toolCall, pendingToolCalls, toolResults) {
|
|
484
|
+
const pending = pendingToolCalls.find((p) => p.toolCall.toolCallId === toolCall.toolCallId);
|
|
485
|
+
if (pending) return pending;
|
|
486
|
+
const matchingResult = toolResults.find((r) => r.toolCallId === toolCall.toolCallId);
|
|
487
|
+
return {
|
|
488
|
+
toolCall,
|
|
489
|
+
status: matchingResult?.isError ? "error" : "completed",
|
|
490
|
+
result: matchingResult?.result,
|
|
491
|
+
error: matchingResult?.isError ? String(matchingResult.result) : void 0
|
|
492
|
+
};
|
|
493
|
+
}
|
|
542
494
|
function shouldShowLoadingIndicator({
|
|
543
495
|
messages,
|
|
544
496
|
isLoading
|
|
@@ -553,60 +505,40 @@ function shouldShowLoadingIndicator({
|
|
|
553
505
|
function MessageItem({ message, pendingToolCalls }) {
|
|
554
506
|
const isUser = message.role === "user";
|
|
555
507
|
const textContent = extractTextContent(message.content);
|
|
508
|
+
if (isUser) {
|
|
509
|
+
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 }) }) }) });
|
|
510
|
+
}
|
|
556
511
|
const toolCalls = extractToolCalls(message.content);
|
|
557
|
-
if (
|
|
512
|
+
if (message.isStreaming && !textContent && toolCalls.length === 0) {
|
|
558
513
|
return null;
|
|
559
514
|
}
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
515
|
+
if (toolCalls.length === 0 && textContent.length === 0) {
|
|
516
|
+
return null;
|
|
517
|
+
}
|
|
518
|
+
const toolResults = toolCalls.length > 0 ? extractToolResults(message.content) : [];
|
|
519
|
+
return /* @__PURE__ */ jsx("div", { className: "flex justify-start", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
|
|
520
|
+
textContent.length > 0 && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Markdown, { content: textContent }) }),
|
|
521
|
+
toolCalls.length > 0 && /* @__PURE__ */ jsx(
|
|
522
|
+
ToolCallGroup,
|
|
563
523
|
{
|
|
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
|
-
);
|
|
524
|
+
toolCallStates: toolCalls.map(
|
|
525
|
+
(tc) => resolveToolCallState(tc, pendingToolCalls, toolResults)
|
|
526
|
+
)
|
|
583
527
|
}
|
|
584
|
-
|
|
585
|
-
}) })
|
|
528
|
+
)
|
|
586
529
|
] }) });
|
|
587
530
|
}
|
|
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
531
|
function MessageLoading({ className }) {
|
|
596
|
-
return /* @__PURE__ */
|
|
597
|
-
/* @__PURE__ */ jsx("
|
|
598
|
-
/* @__PURE__ */ jsx(
|
|
599
|
-
] })
|
|
532
|
+
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: [
|
|
533
|
+
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 animate-spin rounded-full border border-primary border-t-transparent" }),
|
|
534
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground leading-1", children: "\u8003\u3048\u4E2D" })
|
|
535
|
+
] });
|
|
600
536
|
}
|
|
601
|
-
function MessageList({
|
|
602
|
-
messages,
|
|
603
|
-
pendingToolCalls,
|
|
604
|
-
isLoading = false
|
|
605
|
-
}) {
|
|
537
|
+
function MessageList({ messages, pendingToolCalls, isLoading = false }) {
|
|
606
538
|
const bottomRef = useRef(null);
|
|
607
539
|
useEffect(() => {
|
|
608
540
|
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
609
|
-
}, [
|
|
541
|
+
}, []);
|
|
610
542
|
if (messages.length === 0 && !isLoading) {
|
|
611
543
|
return null;
|
|
612
544
|
}
|
|
@@ -614,15 +546,8 @@ function MessageList({
|
|
|
614
546
|
messages,
|
|
615
547
|
isLoading
|
|
616
548
|
});
|
|
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
|
-
)),
|
|
549
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 py-5 px-4", children: [
|
|
550
|
+
messages.map((message) => /* @__PURE__ */ jsx(MessageItem, { message, pendingToolCalls }, message.id)),
|
|
626
551
|
showLoadingIndicator && /* @__PURE__ */ jsx(MessageLoading, {}),
|
|
627
552
|
/* @__PURE__ */ jsx("div", { ref: bottomRef })
|
|
628
553
|
] });
|
|
@@ -739,7 +664,7 @@ function AgentContainerView({
|
|
|
739
664
|
"div",
|
|
740
665
|
{
|
|
741
666
|
"data-slot": "agent-container",
|
|
742
|
-
className: cn("flex h-full w-full flex-col mx-auto max-w-
|
|
667
|
+
className: cn("flex h-full w-full flex-col mx-auto max-w-180", className),
|
|
743
668
|
children: [
|
|
744
669
|
/* @__PURE__ */ jsxs("div", { ref: historyAreaRef, className: "relative", children: [
|
|
745
670
|
/* @__PURE__ */ jsx(
|
|
@@ -772,24 +697,18 @@ function AgentContainerView({
|
|
|
772
697
|
),
|
|
773
698
|
error && /* @__PURE__ */ jsx("div", { className: "mx-4 mb-4 rounded-lg bg-red-50 p-3 text-sm text-red-600", children: error })
|
|
774
699
|
] }) : /* @__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
|
-
)
|
|
700
|
+
/* @__PURE__ */ jsxs("div", { className: "fixed bottom-0 left-0 right-0 mx-auto w-full max-w-180 bg-background", children: [
|
|
701
|
+
layoutState.shouldShowInput && /* @__PURE__ */ jsx(AgentInput, { ...inputProps }),
|
|
702
|
+
layoutState.shouldShowToolApprovalPanel && /* @__PURE__ */ jsx(
|
|
703
|
+
ToolApprovalPanel,
|
|
704
|
+
{
|
|
705
|
+
activeApprovalRequest,
|
|
706
|
+
approveToolCall,
|
|
707
|
+
rejectToolCall,
|
|
708
|
+
toolApprovalLabels
|
|
709
|
+
}
|
|
710
|
+
)
|
|
711
|
+
] })
|
|
793
712
|
]
|
|
794
713
|
}
|
|
795
714
|
);
|
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.16",
|
|
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",
|