@steerable/agent-ui 0.2.3 โ 0.2.5
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/cards/ActionSegmentCard.d.ts +18 -0
- package/dist/cards/ActionSegmentCard.d.ts.map +1 -0
- package/dist/cards/ActionSegmentCard.js +26 -0
- package/dist/cards/ActionSegmentCard.js.map +1 -0
- package/dist/cards/AnalysisDocumentCard.d.ts +33 -0
- package/dist/cards/AnalysisDocumentCard.d.ts.map +1 -0
- package/dist/cards/AnalysisDocumentCard.js +11 -0
- package/dist/cards/AnalysisDocumentCard.js.map +1 -0
- package/dist/cards/AskUserQuestionsCard.d.ts +43 -0
- package/dist/cards/AskUserQuestionsCard.d.ts.map +1 -0
- package/dist/cards/AskUserQuestionsCard.js +171 -0
- package/dist/cards/AskUserQuestionsCard.js.map +1 -0
- package/dist/cards/CoverageReportCard.d.ts +41 -0
- package/dist/cards/CoverageReportCard.d.ts.map +1 -0
- package/dist/cards/CoverageReportCard.js +55 -0
- package/dist/cards/CoverageReportCard.js.map +1 -0
- package/dist/cards/OrchestrationPlanCard.d.ts +60 -0
- package/dist/cards/OrchestrationPlanCard.d.ts.map +1 -0
- package/dist/cards/OrchestrationPlanCard.js +103 -0
- package/dist/cards/OrchestrationPlanCard.js.map +1 -0
- package/dist/cards/PlanSelectorCard.d.ts +40 -0
- package/dist/cards/PlanSelectorCard.d.ts.map +1 -0
- package/dist/cards/PlanSelectorCard.js +106 -0
- package/dist/cards/PlanSelectorCard.js.map +1 -0
- package/dist/cards/PlanStepsCard.d.ts +18 -0
- package/dist/cards/PlanStepsCard.d.ts.map +1 -0
- package/dist/cards/PlanStepsCard.js +25 -0
- package/dist/cards/PlanStepsCard.js.map +1 -0
- package/dist/cards/QuizCard.d.ts +44 -0
- package/dist/cards/QuizCard.d.ts.map +1 -0
- package/dist/cards/QuizCard.js +113 -0
- package/dist/cards/QuizCard.js.map +1 -0
- package/dist/cards/ResearchPlanCard.d.ts +23 -0
- package/dist/cards/ResearchPlanCard.d.ts.map +1 -0
- package/dist/cards/ResearchPlanCard.js +50 -0
- package/dist/cards/ResearchPlanCard.js.map +1 -0
- package/dist/cards/SearchSourcesCard.d.ts +29 -0
- package/dist/cards/SearchSourcesCard.d.ts.map +1 -0
- package/dist/cards/SearchSourcesCard.js +83 -0
- package/dist/cards/SearchSourcesCard.js.map +1 -0
- package/dist/cards/SuggestedRepliesCard.d.ts +18 -0
- package/dist/cards/SuggestedRepliesCard.d.ts.map +1 -0
- package/dist/cards/SuggestedRepliesCard.js +14 -0
- package/dist/cards/SuggestedRepliesCard.js.map +1 -0
- package/dist/cards/SummaryMessageCard.d.ts +40 -0
- package/dist/cards/SummaryMessageCard.d.ts.map +1 -0
- package/dist/cards/SummaryMessageCard.js +56 -0
- package/dist/cards/SummaryMessageCard.js.map +1 -0
- package/dist/cards/ThinkingProcessCard.d.ts +46 -0
- package/dist/cards/ThinkingProcessCard.d.ts.map +1 -0
- package/dist/cards/ThinkingProcessCard.js +79 -0
- package/dist/cards/ThinkingProcessCard.js.map +1 -0
- package/dist/cards/ToolExecutionCard.d.ts +21 -0
- package/dist/cards/ToolExecutionCard.d.ts.map +1 -0
- package/dist/cards/ToolExecutionCard.js +65 -0
- package/dist/cards/ToolExecutionCard.js.map +1 -0
- package/dist/cards/icons.d.ts +38 -0
- package/dist/cards/icons.d.ts.map +1 -0
- package/dist/cards/icons.js +87 -0
- package/dist/cards/icons.js.map +1 -0
- package/dist/cards/index.d.ts +38 -0
- package/dist/cards/index.d.ts.map +1 -0
- package/dist/cards/index.js +24 -0
- package/dist/cards/index.js.map +1 -0
- package/dist/cards/types.d.ts +24 -0
- package/dist/cards/types.d.ts.map +1 -0
- package/dist/cards/types.js +7 -0
- package/dist/cards/types.js.map +1 -0
- package/dist/components/AgentSelector.d.ts +23 -0
- package/dist/components/AgentSelector.d.ts.map +1 -0
- package/dist/components/AgentSelector.js +63 -0
- package/dist/components/AgentSelector.js.map +1 -0
- package/dist/components/AgentSelector.stories.d.ts +12 -0
- package/dist/components/AgentSelector.stories.d.ts.map +1 -0
- package/dist/components/AgentSelector.stories.js +95 -0
- package/dist/components/AgentSelector.stories.js.map +1 -0
- package/dist/components/ChatPanel.d.ts +138 -21
- package/dist/components/ChatPanel.d.ts.map +1 -1
- package/dist/components/ChatPanel.js +181 -26
- package/dist/components/ChatPanel.js.map +1 -1
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/useChatStream.d.ts +15 -0
- package/dist/hooks/useChatStream.d.ts.map +1 -1
- package/dist/hooks/useChatStream.js +13 -1
- package/dist/hooks/useChatStream.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/state/ChatSessionProvider.d.ts +59 -0
- package/dist/state/ChatSessionProvider.d.ts.map +1 -0
- package/dist/state/ChatSessionProvider.js +71 -0
- package/dist/state/ChatSessionProvider.js.map +1 -0
- package/dist/state/MockChatStreamTransport.d.ts +54 -0
- package/dist/state/MockChatStreamTransport.d.ts.map +1 -0
- package/dist/state/MockChatStreamTransport.js +86 -0
- package/dist/state/MockChatStreamTransport.js.map +1 -0
- package/dist/state/MockChatStreamTransport.stories.d.ts +13 -0
- package/dist/state/MockChatStreamTransport.stories.d.ts.map +1 -0
- package/dist/state/MockChatStreamTransport.stories.js +60 -0
- package/dist/state/MockChatStreamTransport.stories.js.map +1 -0
- package/dist/state/bridgeLegacySSE.d.ts +42 -0
- package/dist/state/bridgeLegacySSE.d.ts.map +1 -0
- package/dist/state/bridgeLegacySSE.js +102 -0
- package/dist/state/bridgeLegacySSE.js.map +1 -0
- package/dist/state/index.d.ts +32 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +24 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/parseSSE.d.ts +50 -0
- package/dist/state/parseSSE.d.ts.map +1 -0
- package/dist/state/parseSSE.js +112 -0
- package/dist/state/parseSSE.js.map +1 -0
- package/dist/state/useChatComposer.d.ts +51 -0
- package/dist/state/useChatComposer.d.ts.map +1 -0
- package/dist/state/useChatComposer.js +82 -0
- package/dist/state/useChatComposer.js.map +1 -0
- package/dist/state/useChatList.d.ts +73 -0
- package/dist/state/useChatList.d.ts.map +1 -0
- package/dist/state/useChatList.js +161 -0
- package/dist/state/useChatList.js.map +1 -0
- package/dist/state/useChatSession.d.ts +29 -0
- package/dist/state/useChatSession.d.ts.map +1 -0
- package/dist/state/useChatSession.js +37 -0
- package/dist/state/useChatSession.js.map +1 -0
- package/dist/state/useScrollLock.d.ts +35 -0
- package/dist/state/useScrollLock.d.ts.map +1 -0
- package/dist/state/useScrollLock.js +74 -0
- package/dist/state/useScrollLock.js.map +1 -0
- package/dist/state/useToolCallStream.d.ts +38 -0
- package/dist/state/useToolCallStream.d.ts.map +1 -0
- package/dist/state/useToolCallStream.js +74 -0
- package/dist/state/useToolCallStream.js.map +1 -0
- package/package.json +11 -3
- package/src/cards/ActionSegmentCard.tsx +60 -0
- package/src/cards/AnalysisDocumentCard.tsx +81 -0
- package/src/cards/AskUserQuestionsCard.tsx +354 -0
- package/src/cards/CoverageReportCard.tsx +215 -0
- package/src/cards/OrchestrationPlanCard.tsx +328 -0
- package/src/cards/PlanSelectorCard.tsx +312 -0
- package/src/cards/PlanStepsCard.tsx +52 -0
- package/src/cards/QuizCard.tsx +309 -0
- package/src/cards/ResearchPlanCard.tsx +169 -0
- package/src/cards/SearchSourcesCard.tsx +244 -0
- package/src/cards/SuggestedRepliesCard.tsx +48 -0
- package/src/cards/SummaryMessageCard.tsx +145 -0
- package/src/cards/ThinkingProcessCard.tsx +155 -0
- package/src/cards/ToolExecutionCard.tsx +152 -0
- package/src/cards/cards.test.tsx +492 -0
- package/src/cards/icons.tsx +249 -0
- package/src/cards/index.ts +53 -0
- package/src/cards/types.ts +27 -0
- package/src/components/AgentSelector.stories.tsx +113 -0
- package/src/components/AgentSelector.test.tsx +70 -0
- package/src/components/AgentSelector.tsx +147 -0
- package/src/components/ChatPanel.test.tsx +130 -0
- package/src/components/ChatPanel.tsx +612 -138
- package/src/components/index.ts +13 -1
- package/src/hooks/useChatStream.test.ts +78 -0
- package/src/hooks/useChatStream.ts +32 -1
- package/src/index.ts +43 -0
- package/src/state/ChatSessionProvider.test.tsx +85 -0
- package/src/state/ChatSessionProvider.tsx +98 -0
- package/src/state/MockChatStreamTransport.stories.tsx +95 -0
- package/src/state/MockChatStreamTransport.test.ts +163 -0
- package/src/state/MockChatStreamTransport.ts +123 -0
- package/src/state/bridgeLegacySSE.test.ts +134 -0
- package/src/state/bridgeLegacySSE.ts +134 -0
- package/src/state/index.ts +82 -0
- package/src/state/parseSSE.test.ts +123 -0
- package/src/state/parseSSE.ts +123 -0
- package/src/state/useChatComposer.test.ts +145 -0
- package/src/state/useChatComposer.ts +117 -0
- package/src/state/useChatList.test.ts +135 -0
- package/src/state/useChatList.ts +220 -0
- package/src/state/useChatSession.test.ts +61 -0
- package/src/state/useChatSession.ts +64 -0
- package/src/state/useScrollLock.test.ts +99 -0
- package/src/state/useScrollLock.ts +105 -0
- package/src/state/useToolCallStream.test.ts +86 -0
- package/src/state/useToolCallStream.ts +110 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline SVG icons used by `@steerable/agent-ui/cards`.
|
|
3
|
+
*
|
|
4
|
+
* Defined here rather than pulling in `react-icons` / `lucide-react` so the
|
|
5
|
+
* cards package stays at exactly one runtime dep (`@steerable/agent-protocol`).
|
|
6
|
+
* Each icon has a tiny stroke-only path, parametrised by `size` and the usual
|
|
7
|
+
* SVG props so consumers can re-style via Tailwind / CSS.
|
|
8
|
+
*/
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
type IconProps = React.SVGProps<SVGSVGElement> & {
|
|
11
|
+
size?: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function CheckIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function ChevronDownIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function ChevronRightIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function ChevronUpIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function AlertIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function LoaderIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare function GitBranchIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function ListChecksIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function TargetIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function GlobeIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function ExternalLinkIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare function MessageQuestionIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare function ArchiveIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function ChartIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare function FlameIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function ShieldIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare function ClockIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare function PlayIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare function StopIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare function ZapIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export declare function ClipboardIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare function BookIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function ThumbsUpIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export declare function PencilIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/cards/icons.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAgBnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAMzC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,2CAM/C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,2CAMhD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,2CAM7C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAQzC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAa1C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,2CAS7C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,2CAS9C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAQ1C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAQzC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,2CAQhD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,2CAQnD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,2CAQ3C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAQzC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAMzC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAM1C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,2CAOzC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAMxC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAMxC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,2CAMvC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,2CAO7C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAOxC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,2CAO5C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,2CAO1C"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
function base({ size = 16, ...rest }) {
|
|
3
|
+
return {
|
|
4
|
+
width: size,
|
|
5
|
+
height: size,
|
|
6
|
+
viewBox: '0 0 24 24',
|
|
7
|
+
fill: 'none',
|
|
8
|
+
stroke: 'currentColor',
|
|
9
|
+
strokeWidth: 1.75,
|
|
10
|
+
strokeLinecap: 'round',
|
|
11
|
+
strokeLinejoin: 'round',
|
|
12
|
+
...rest,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function CheckIcon(props) {
|
|
16
|
+
return (_jsx("svg", { ...base(props), children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }));
|
|
17
|
+
}
|
|
18
|
+
export function ChevronDownIcon(props) {
|
|
19
|
+
return (_jsx("svg", { ...base(props), children: _jsx("polyline", { points: "6 9 12 15 18 9" }) }));
|
|
20
|
+
}
|
|
21
|
+
export function ChevronRightIcon(props) {
|
|
22
|
+
return (_jsx("svg", { ...base(props), children: _jsx("polyline", { points: "9 18 15 12 9 6" }) }));
|
|
23
|
+
}
|
|
24
|
+
export function ChevronUpIcon(props) {
|
|
25
|
+
return (_jsx("svg", { ...base(props), children: _jsx("polyline", { points: "18 15 12 9 6 15" }) }));
|
|
26
|
+
}
|
|
27
|
+
export function AlertIcon(props) {
|
|
28
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("path", { d: "M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }), _jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] }));
|
|
29
|
+
}
|
|
30
|
+
export function LoaderIcon(props) {
|
|
31
|
+
return (_jsxs("svg", { ...base(props), className: [props.className, 'animate-spin'].filter(Boolean).join(' '), children: [_jsx("line", { x1: "12", y1: "2", x2: "12", y2: "6" }), _jsx("line", { x1: "12", y1: "18", x2: "12", y2: "22" }), _jsx("line", { x1: "4.93", y1: "4.93", x2: "7.76", y2: "7.76" }), _jsx("line", { x1: "16.24", y1: "16.24", x2: "19.07", y2: "19.07" }), _jsx("line", { x1: "2", y1: "12", x2: "6", y2: "12" }), _jsx("line", { x1: "18", y1: "12", x2: "22", y2: "12" }), _jsx("line", { x1: "4.93", y1: "19.07", x2: "7.76", y2: "16.24" }), _jsx("line", { x1: "16.24", y1: "7.76", x2: "19.07", y2: "4.93" })] }));
|
|
32
|
+
}
|
|
33
|
+
export function GitBranchIcon(props) {
|
|
34
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("line", { x1: "6", y1: "3", x2: "6", y2: "15" }), _jsx("circle", { cx: "18", cy: "6", r: "3" }), _jsx("circle", { cx: "6", cy: "18", r: "3" }), _jsx("path", { d: "M18 9a9 9 0 0 1-9 9" })] }));
|
|
35
|
+
}
|
|
36
|
+
export function ListChecksIcon(props) {
|
|
37
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("polyline", { points: "3 7 5 9 9 5" }), _jsx("polyline", { points: "3 17 5 19 9 15" }), _jsx("line", { x1: "13", y1: "7", x2: "21", y2: "7" }), _jsx("line", { x1: "13", y1: "17", x2: "21", y2: "17" })] }));
|
|
38
|
+
}
|
|
39
|
+
export function TargetIcon(props) {
|
|
40
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("circle", { cx: "12", cy: "12", r: "6" }), _jsx("circle", { cx: "12", cy: "12", r: "2" })] }));
|
|
41
|
+
}
|
|
42
|
+
export function GlobeIcon(props) {
|
|
43
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "2", y1: "12", x2: "22", y2: "12" }), _jsx("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })] }));
|
|
44
|
+
}
|
|
45
|
+
export function ExternalLinkIcon(props) {
|
|
46
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }), _jsx("polyline", { points: "15 3 21 3 21 9" }), _jsx("line", { x1: "10", y1: "14", x2: "21", y2: "3" })] }));
|
|
47
|
+
}
|
|
48
|
+
export function MessageQuestionIcon(props) {
|
|
49
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("path", { d: "M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" }), _jsx("path", { d: "M9.5 9.5a2.5 2.5 0 1 1 3 2.5v1" }), _jsx("line", { x1: "12", y1: "15", x2: "12.01", y2: "15" })] }));
|
|
50
|
+
}
|
|
51
|
+
export function ArchiveIcon(props) {
|
|
52
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("polyline", { points: "21 8 21 21 3 21 3 8" }), _jsx("rect", { x: "1", y: "3", width: "22", height: "5" }), _jsx("line", { x1: "10", y1: "12", x2: "14", y2: "12" })] }));
|
|
53
|
+
}
|
|
54
|
+
export function ChartIcon(props) {
|
|
55
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("line", { x1: "18", y1: "20", x2: "18", y2: "10" }), _jsx("line", { x1: "12", y1: "20", x2: "12", y2: "4" }), _jsx("line", { x1: "6", y1: "20", x2: "6", y2: "14" })] }));
|
|
56
|
+
}
|
|
57
|
+
export function FlameIcon(props) {
|
|
58
|
+
return (_jsx("svg", { ...base(props), children: _jsx("path", { d: "M8.5 14.5A2.5 2.5 0 0 0 11 17v-3a2.5 2.5 0 1 1 0-5V6a3 3 0 0 0-3 3 3 3 0 0 0 .5 2.5C7.5 13 6 14.5 6 17a6 6 0 0 0 12 0c0-4-3-7-5-9 1.5 4-.5 5.5-2 6.5z" }) }));
|
|
59
|
+
}
|
|
60
|
+
export function ShieldIcon(props) {
|
|
61
|
+
return (_jsx("svg", { ...base(props), children: _jsx("path", { d: "M12 2 4 5v6c0 5 3.4 9.4 8 11 4.6-1.6 8-6 8-11V5l-8-3z" }) }));
|
|
62
|
+
}
|
|
63
|
+
export function ClockIcon(props) {
|
|
64
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12 6 12 12 16 14" })] }));
|
|
65
|
+
}
|
|
66
|
+
export function PlayIcon(props) {
|
|
67
|
+
return (_jsx("svg", { ...base(props), children: _jsx("polygon", { points: "5 3 19 12 5 21 5 3" }) }));
|
|
68
|
+
}
|
|
69
|
+
export function StopIcon(props) {
|
|
70
|
+
return (_jsx("svg", { ...base(props), children: _jsx("rect", { x: "6", y: "6", width: "12", height: "12" }) }));
|
|
71
|
+
}
|
|
72
|
+
export function ZapIcon(props) {
|
|
73
|
+
return (_jsx("svg", { ...base(props), children: _jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" }) }));
|
|
74
|
+
}
|
|
75
|
+
export function ClipboardIcon(props) {
|
|
76
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("rect", { x: "9", y: "2", width: "6", height: "4", rx: "1" }), _jsx("path", { d: "M9 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-3" })] }));
|
|
77
|
+
}
|
|
78
|
+
export function BookIcon(props) {
|
|
79
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("path", { d: "M4 19.5A2.5 2.5 0 0 1 6.5 17H20" }), _jsx("path", { d: "M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z" })] }));
|
|
80
|
+
}
|
|
81
|
+
export function ThumbsUpIcon(props) {
|
|
82
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("path", { d: "M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9A2 2 0 0 0 19.66 9H14z" }), _jsx("line", { x1: "7", y1: "22", x2: "7", y2: "11" })] }));
|
|
83
|
+
}
|
|
84
|
+
export function PencilIcon(props) {
|
|
85
|
+
return (_jsxs("svg", { ...base(props), children: [_jsx("path", { d: "M12 20h9" }), _jsx("path", { d: "M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z" })] }));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/cards/icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@steerable/agent-ui/cards`
|
|
3
|
+
*
|
|
4
|
+
* Subpath that bundles the 14 rich chat-block renderers used by deeppath /
|
|
5
|
+
* deeppath-agent / examples/web-shell. Every card consumes a typed `payload`
|
|
6
|
+
* sourced from the JSON schemas in `agent-protocol/spec/blocks/*.schema.json`
|
|
7
|
+
* (with TypeScript types generated by `pnpm gen`). All side-effects (submit,
|
|
8
|
+
* select, remediate, ...) flow through props -- apps stay in charge of state.
|
|
9
|
+
*/
|
|
10
|
+
export { OrchestrationPlanCard } from './OrchestrationPlanCard.js';
|
|
11
|
+
export type { OrchestrationPlanCardProps, OrchestrationTaskStatus, } from './OrchestrationPlanCard.js';
|
|
12
|
+
export { QuizCard } from './QuizCard.js';
|
|
13
|
+
export type { QuizCardProps } from './QuizCard.js';
|
|
14
|
+
export { CoverageReportCard } from './CoverageReportCard.js';
|
|
15
|
+
export type { CoverageReportCardProps } from './CoverageReportCard.js';
|
|
16
|
+
export { AnalysisDocumentCard } from './AnalysisDocumentCard.js';
|
|
17
|
+
export type { AnalysisDocumentCardProps } from './AnalysisDocumentCard.js';
|
|
18
|
+
export { ResearchPlanCard } from './ResearchPlanCard.js';
|
|
19
|
+
export type { ResearchPlanCardProps } from './ResearchPlanCard.js';
|
|
20
|
+
export { SuggestedRepliesCard } from './SuggestedRepliesCard.js';
|
|
21
|
+
export type { SuggestedRepliesCardProps } from './SuggestedRepliesCard.js';
|
|
22
|
+
export { AskUserQuestionsCard } from './AskUserQuestionsCard.js';
|
|
23
|
+
export type { AskUserQuestionsCardProps } from './AskUserQuestionsCard.js';
|
|
24
|
+
export { ThinkingProcessCard } from './ThinkingProcessCard.js';
|
|
25
|
+
export type { ThinkingProcessCardProps } from './ThinkingProcessCard.js';
|
|
26
|
+
export { PlanStepsCard } from './PlanStepsCard.js';
|
|
27
|
+
export type { PlanStepsCardProps } from './PlanStepsCard.js';
|
|
28
|
+
export { PlanSelectorCard } from './PlanSelectorCard.js';
|
|
29
|
+
export type { PlanSelectorCardProps } from './PlanSelectorCard.js';
|
|
30
|
+
export { SearchSourcesCard } from './SearchSourcesCard.js';
|
|
31
|
+
export type { SearchSourcesCardProps } from './SearchSourcesCard.js';
|
|
32
|
+
export { SummaryMessageCard } from './SummaryMessageCard.js';
|
|
33
|
+
export type { SummaryMessageCardProps } from './SummaryMessageCard.js';
|
|
34
|
+
export { ActionSegmentCard } from './ActionSegmentCard.js';
|
|
35
|
+
export type { ActionSegmentCardProps } from './ActionSegmentCard.js';
|
|
36
|
+
export { ToolExecutionCard } from './ToolExecutionCard.js';
|
|
37
|
+
export type { ToolExecutionCardProps } from './ToolExecutionCard.js';
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cards/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@steerable/agent-ui/cards`
|
|
3
|
+
*
|
|
4
|
+
* Subpath that bundles the 14 rich chat-block renderers used by deeppath /
|
|
5
|
+
* deeppath-agent / examples/web-shell. Every card consumes a typed `payload`
|
|
6
|
+
* sourced from the JSON schemas in `agent-protocol/spec/blocks/*.schema.json`
|
|
7
|
+
* (with TypeScript types generated by `pnpm gen`). All side-effects (submit,
|
|
8
|
+
* select, remediate, ...) flow through props -- apps stay in charge of state.
|
|
9
|
+
*/
|
|
10
|
+
export { OrchestrationPlanCard } from './OrchestrationPlanCard.js';
|
|
11
|
+
export { QuizCard } from './QuizCard.js';
|
|
12
|
+
export { CoverageReportCard } from './CoverageReportCard.js';
|
|
13
|
+
export { AnalysisDocumentCard } from './AnalysisDocumentCard.js';
|
|
14
|
+
export { ResearchPlanCard } from './ResearchPlanCard.js';
|
|
15
|
+
export { SuggestedRepliesCard } from './SuggestedRepliesCard.js';
|
|
16
|
+
export { AskUserQuestionsCard } from './AskUserQuestionsCard.js';
|
|
17
|
+
export { ThinkingProcessCard } from './ThinkingProcessCard.js';
|
|
18
|
+
export { PlanStepsCard } from './PlanStepsCard.js';
|
|
19
|
+
export { PlanSelectorCard } from './PlanSelectorCard.js';
|
|
20
|
+
export { SearchSourcesCard } from './SearchSourcesCard.js';
|
|
21
|
+
export { SummaryMessageCard } from './SummaryMessageCard.js';
|
|
22
|
+
export { ActionSegmentCard } from './ActionSegmentCard.js';
|
|
23
|
+
export { ToolExecutionCard } from './ToolExecutionCard.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cards/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAMnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version-agnostic helpers shared by the cards.
|
|
3
|
+
*/
|
|
4
|
+
import type * as React from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Return type for `renderMarkdown` / `renderLabel` / etc. slots.
|
|
7
|
+
*
|
|
8
|
+
* We deliberately accept `unknown` so the prop type doesn't anchor consumers
|
|
9
|
+
* to a specific `@types/react` major (`React.ReactNode` is nominally
|
|
10
|
+
* different between v18 and v19 even though structurally compatible -- a
|
|
11
|
+
* consumer on React 19 cannot pass a function declared to return
|
|
12
|
+
* `React.ReactNode` (v19) into a framework prop that wants v18's
|
|
13
|
+
* `React.ReactNode`). The card then casts back to `React.ReactNode` at the
|
|
14
|
+
* render site, where TypeScript only cares about runtime shape and `unknown`
|
|
15
|
+
* widens harmlessly.
|
|
16
|
+
*
|
|
17
|
+
* For consumers, this just means: "return any valid React child".
|
|
18
|
+
*/
|
|
19
|
+
export type RenderSlotResult = unknown;
|
|
20
|
+
/**
|
|
21
|
+
* Cast helper for use inside cards. Keeps render sites tidy.
|
|
22
|
+
*/
|
|
23
|
+
export declare function asReactNode(value: RenderSlotResult): React.ReactNode;
|
|
24
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cards/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAEpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cards/types.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,OAAO,KAAwB,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ChatAgent } from '@steerable/agent-protocol';
|
|
2
|
+
export interface AgentSelectorProps {
|
|
3
|
+
agents: ChatAgent[];
|
|
4
|
+
selectedId: string;
|
|
5
|
+
onSelect: (id: string) => void;
|
|
6
|
+
renderAgent?: (agent: ChatAgent, state: {
|
|
7
|
+
selected: boolean;
|
|
8
|
+
}) => React.ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* AgentSelector
|
|
15
|
+
*
|
|
16
|
+
* Keyboard support:
|
|
17
|
+
* - ArrowLeft / ArrowUp: move selection to previous agent
|
|
18
|
+
* - ArrowRight / ArrowDown: move selection to next agent
|
|
19
|
+
* - Home / End: jump to first / last agent
|
|
20
|
+
* - Enter / Space: select focused agent (native button behavior)
|
|
21
|
+
*/
|
|
22
|
+
export declare function AgentSelector(props: AgentSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=AgentSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentSelector.d.ts","sourceRoot":"","sources":["../../src/components/AgentSelector.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAeD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CA8GtD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { cn } from './cn.js';
|
|
4
|
+
function defaultRenderAgent(agent) {
|
|
5
|
+
return (_jsxs("span", { className: "inline-flex min-w-0 items-center gap-1.5", children: [agent.icon ? (_jsx("span", { "aria-hidden": true, className: "text-sm leading-none", children: agent.icon })) : null, _jsx("span", { className: "truncate", children: agent.name })] }));
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* AgentSelector
|
|
9
|
+
*
|
|
10
|
+
* Keyboard support:
|
|
11
|
+
* - ArrowLeft / ArrowUp: move selection to previous agent
|
|
12
|
+
* - ArrowRight / ArrowDown: move selection to next agent
|
|
13
|
+
* - Home / End: jump to first / last agent
|
|
14
|
+
* - Enter / Space: select focused agent (native button behavior)
|
|
15
|
+
*/
|
|
16
|
+
export function AgentSelector(props) {
|
|
17
|
+
const { agents, selectedId, onSelect, renderAgent = defaultRenderAgent, className, disabled = false, loading = false, } = props;
|
|
18
|
+
const selectedIndex = useMemo(() => agents.findIndex((a) => a.id === selectedId), [agents, selectedId]);
|
|
19
|
+
if (loading) {
|
|
20
|
+
return (_jsx("div", { className: cn('inline-flex h-9 items-center rounded-agent-md border border-agent-border bg-agent-canvas px-3 text-sm text-agent-muted-foreground', className), "aria-live": "polite", children: "Loading agents\u2026" }));
|
|
21
|
+
}
|
|
22
|
+
if (agents.length === 0) {
|
|
23
|
+
return (_jsx("div", { className: cn('inline-flex h-9 items-center rounded-agent-md border border-agent-border bg-agent-canvas px-3 text-sm text-agent-muted-foreground', className), children: "No agents" }));
|
|
24
|
+
}
|
|
25
|
+
return (_jsx("div", { role: "radiogroup", "aria-label": "Agent selector", className: cn('inline-flex max-w-full items-center gap-1 rounded-agent-lg border border-agent-border bg-agent-canvas p-1', className), children: agents.map((agent, index) => {
|
|
26
|
+
const selected = agent.id === selectedId;
|
|
27
|
+
const tabIndex = selected
|
|
28
|
+
? 0
|
|
29
|
+
: selectedIndex >= 0
|
|
30
|
+
? -1
|
|
31
|
+
: index === 0
|
|
32
|
+
? 0
|
|
33
|
+
: -1;
|
|
34
|
+
return (_jsx("button", { type: "button", role: "radio", "aria-checked": selected, "aria-label": agent.name, tabIndex: tabIndex, disabled: disabled, onClick: () => onSelect(agent.id), onKeyDown: (event) => {
|
|
35
|
+
if (disabled)
|
|
36
|
+
return;
|
|
37
|
+
let nextIndex = index;
|
|
38
|
+
if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {
|
|
39
|
+
nextIndex = Math.min(agents.length - 1, index + 1);
|
|
40
|
+
}
|
|
41
|
+
else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {
|
|
42
|
+
nextIndex = Math.max(0, index - 1);
|
|
43
|
+
}
|
|
44
|
+
else if (event.key === 'Home') {
|
|
45
|
+
nextIndex = 0;
|
|
46
|
+
}
|
|
47
|
+
else if (event.key === 'End') {
|
|
48
|
+
nextIndex = agents.length - 1;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (nextIndex !== index) {
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
const next = agents[nextIndex];
|
|
56
|
+
onSelect(next.id);
|
|
57
|
+
}
|
|
58
|
+
}, className: cn('inline-flex h-7 min-w-0 max-w-[220px] items-center rounded-agent-md px-2.5 text-sm transition-colors', selected
|
|
59
|
+
? 'bg-agent-accent text-agent-accent-foreground'
|
|
60
|
+
: 'text-agent-foreground hover:bg-agent-muted', disabled && 'cursor-not-allowed opacity-50'), title: agent.name, children: renderAgent(agent, { selected }) }, agent.id));
|
|
61
|
+
}) }));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=AgentSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentSelector.js","sourceRoot":"","sources":["../../src/components/AgentSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { AgentSelector } from './AgentSelector.js';
|
|
3
|
+
declare const meta: Meta<typeof AgentSelector>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof AgentSelector>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Disabled: Story;
|
|
8
|
+
export declare const SingleAgent: Story;
|
|
9
|
+
export declare const LongNames: Story;
|
|
10
|
+
export declare const Loading: Story;
|
|
11
|
+
export declare const Interactive: Story;
|
|
12
|
+
//# sourceMappingURL=AgentSelector.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentSelector.stories.d.ts","sourceRoot":"","sources":["../../src/components/AgentSelector.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA4BnD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAkBpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5C,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAoBvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { AgentSelector } from './AgentSelector.js';
|
|
4
|
+
const NOW = '2026-05-16T00:00:00Z';
|
|
5
|
+
const baseAgents = [
|
|
6
|
+
{
|
|
7
|
+
id: 'local-assistant',
|
|
8
|
+
name: 'Local Assistant',
|
|
9
|
+
icon: '๐ค',
|
|
10
|
+
createdAt: NOW,
|
|
11
|
+
updatedAt: NOW,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 'researcher',
|
|
15
|
+
name: 'Researcher',
|
|
16
|
+
icon: '๐',
|
|
17
|
+
createdAt: NOW,
|
|
18
|
+
updatedAt: NOW,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: 'planner',
|
|
22
|
+
name: 'Planner',
|
|
23
|
+
icon: '๐งญ',
|
|
24
|
+
createdAt: NOW,
|
|
25
|
+
updatedAt: NOW,
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
const meta = {
|
|
29
|
+
title: 'Components/AgentSelector',
|
|
30
|
+
component: AgentSelector,
|
|
31
|
+
parameters: {
|
|
32
|
+
layout: 'centered',
|
|
33
|
+
actions: { argTypesRegex: '^on[A-Z].*' },
|
|
34
|
+
docs: {
|
|
35
|
+
description: {
|
|
36
|
+
component: 'Segmented selector for choosing the active chat agent. Supports keyboard navigation and custom rendering via `renderAgent`.',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
args: {
|
|
41
|
+
agents: baseAgents,
|
|
42
|
+
selectedId: baseAgents[0].id,
|
|
43
|
+
onSelect: () => { },
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
export default meta;
|
|
47
|
+
export const Default = {};
|
|
48
|
+
export const Disabled = {
|
|
49
|
+
args: {
|
|
50
|
+
disabled: true,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
export const SingleAgent = {
|
|
54
|
+
args: {
|
|
55
|
+
agents: [baseAgents[0]],
|
|
56
|
+
selectedId: baseAgents[0].id,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
export const LongNames = {
|
|
60
|
+
args: {
|
|
61
|
+
agents: [
|
|
62
|
+
{
|
|
63
|
+
id: 'very-long',
|
|
64
|
+
name: 'This is a very long agent name that should truncate gracefully',
|
|
65
|
+
icon: '๐งช',
|
|
66
|
+
createdAt: NOW,
|
|
67
|
+
updatedAt: NOW,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'also-long',
|
|
71
|
+
name: 'Another very long and descriptive specialist agent name',
|
|
72
|
+
icon: '๐ ๏ธ',
|
|
73
|
+
createdAt: NOW,
|
|
74
|
+
updatedAt: NOW,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
selectedId: 'very-long',
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
export const Loading = {
|
|
81
|
+
args: {
|
|
82
|
+
loading: true,
|
|
83
|
+
agents: [],
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
export const Interactive = {
|
|
87
|
+
render: (args) => {
|
|
88
|
+
const InteractiveSelector = () => {
|
|
89
|
+
const [selectedId, setSelectedId] = useState(args.selectedId);
|
|
90
|
+
return (_jsx(AgentSelector, { ...args, selectedId: selectedId, onSelect: setSelectedId }));
|
|
91
|
+
};
|
|
92
|
+
return _jsx(InteractiveSelector, {});
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=AgentSelector.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentSelector.stories.js","sourceRoot":"","sources":["../../src/components/AgentSelector.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,GAAG,GAAG,sBAAsB,CAAC;AAEnC,MAAM,UAAU,GAAgB;IAC9B;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;CACF,CAAC;AAEF,MAAM,IAAI,GAA+B;IACvC,KAAK,EAAE,0BAA0B;IACjC,SAAS,EAAE,aAAa;IACxB,UAAU,EAAE;QACV,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;QACxC,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EACP,6HAA6H;aAChI;SACF;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5B,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;KACnB;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAU;IAC9B,IAAI,EAAE;QACJ,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,gEAAgE;gBACtE,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf;YACD;gBACE,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,yDAAyD;gBAC/D,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf;SACF;QACD,UAAU,EAAE,WAAW;KACxB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAE;KACX;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO,CACL,KAAC,aAAa,OACR,IAAI,EACR,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,aAAa,GACvB,CACH,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,KAAC,mBAAmB,KAAG,CAAC;IACjC,CAAC;CACF,CAAC"}
|