@salla.sa/ui-ai-kit-react 2.1.0 → 2.2.0
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/components.d.ts +6 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +23 -0
- package/dist/components.js.map +1 -0
- package/dist/generated/components.d.ts +14 -2
- package/dist/generated/components.d.ts.map +1 -1
- package/dist/generated/components.js +19 -3
- package/dist/generated/components.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/stories/ai-agent-error.stories.d.ts +2 -2
- package/dist/stories/ai-agent-error.stories.d.ts.map +1 -1
- package/dist/stories/ai-agent-error.stories.js +35 -35
- package/dist/stories/ai-agent-error.stories.js.map +1 -1
- package/dist/stories/ai-card.stories.d.ts +1 -1
- package/dist/stories/ai-card.stories.d.ts.map +1 -1
- package/dist/stories/ai-card.stories.js +1 -1
- package/dist/stories/ai-card.stories.js.map +1 -1
- package/dist/stories/ai-chat-container.stories.d.ts +5 -1
- package/dist/stories/ai-chat-container.stories.d.ts.map +1 -1
- package/dist/stories/ai-chat-container.stories.js +146 -17
- package/dist/stories/ai-chat-container.stories.js.map +1 -1
- package/dist/stories/ai-chat-header.stories.d.ts +4 -3
- package/dist/stories/ai-chat-header.stories.d.ts.map +1 -1
- package/dist/stories/ai-chat-header.stories.js +117 -75
- package/dist/stories/ai-chat-header.stories.js.map +1 -1
- package/dist/stories/ai-chat-message.stories.d.ts +1 -1
- package/dist/stories/ai-chat-message.stories.d.ts.map +1 -1
- package/dist/stories/ai-chat-message.stories.js +1 -1
- package/dist/stories/ai-chat-message.stories.js.map +1 -1
- package/dist/stories/ai-conversation-list.stories.d.ts +3 -2
- package/dist/stories/ai-conversation-list.stories.d.ts.map +1 -1
- package/dist/stories/ai-conversation-list.stories.js +86 -31
- package/dist/stories/ai-conversation-list.stories.js.map +1 -1
- package/dist/stories/ai-conversation-summary.stories.d.ts +1 -1
- package/dist/stories/ai-conversation-summary.stories.d.ts.map +1 -1
- package/dist/stories/ai-conversation-summary.stories.js +1 -1
- package/dist/stories/ai-conversation-summary.stories.js.map +1 -1
- package/dist/stories/ai-in-chat-browser.stories.d.ts +13 -0
- package/dist/stories/ai-in-chat-browser.stories.d.ts.map +1 -0
- package/dist/stories/ai-in-chat-browser.stories.js +71 -0
- package/dist/stories/ai-in-chat-browser.stories.js.map +1 -0
- package/dist/stories/ai-link.stories.d.ts +1 -1
- package/dist/stories/ai-link.stories.d.ts.map +1 -1
- package/dist/stories/ai-link.stories.js +1 -1
- package/dist/stories/ai-link.stories.js.map +1 -1
- package/dist/stories/ai-loading.stories.d.ts +1 -1
- package/dist/stories/ai-loading.stories.d.ts.map +1 -1
- package/dist/stories/ai-loading.stories.js +2 -2
- package/dist/stories/ai-loading.stories.js.map +1 -1
- package/dist/stories/ai-message-input.stories.d.ts +3 -1
- package/dist/stories/ai-message-input.stories.d.ts.map +1 -1
- package/dist/stories/ai-message-input.stories.js +50 -1
- package/dist/stories/ai-message-input.stories.js.map +1 -1
- package/dist/stories/ai-rating.stories.d.ts +1 -1
- package/dist/stories/ai-rating.stories.d.ts.map +1 -1
- package/dist/stories/ai-rating.stories.js +2 -2
- package/dist/stories/ai-rating.stories.js.map +1 -1
- package/dist/stories/ai-route-decision.stories.d.ts +1 -1
- package/dist/stories/ai-route-decision.stories.d.ts.map +1 -1
- package/dist/stories/ai-route-decision.stories.js +1 -1
- package/dist/stories/ai-route-decision.stories.js.map +1 -1
- package/dist/stories/ai-suggestion.stories.d.ts +1 -1
- package/dist/stories/ai-suggestion.stories.d.ts.map +1 -1
- package/dist/stories/ai-suggestion.stories.js +2 -2
- package/dist/stories/ai-suggestion.stories.js.map +1 -1
- package/dist/stories/ai-voice-input.stories.d.ts +1 -1
- package/dist/stories/ai-voice-input.stories.d.ts.map +1 -1
- package/dist/stories/ai-voice-input.stories.js +1 -1
- package/dist/stories/ai-voice-input.stories.js.map +1 -1
- package/package.json +6 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
-
import { AiCard, AiChatContainer, AiChatHeader, AiChatMessage,
|
|
3
|
+
import { AiCard, AiChatContainer, AiChatHeader, AiChatMessage, AiLink, AiLoading, AiMessageInput, AiRating, AiSuggestion, } from "../components";
|
|
4
4
|
const meta = {
|
|
5
5
|
title: "Chat/Chat Container",
|
|
6
6
|
component: AiChatContainer,
|
|
@@ -31,6 +31,22 @@ const meta = {
|
|
|
31
31
|
control: "boolean",
|
|
32
32
|
description: "Show AI watermark in the top half of the container",
|
|
33
33
|
},
|
|
34
|
+
loading: {
|
|
35
|
+
control: "boolean",
|
|
36
|
+
description: "Show skeleton loading state while loading conversation history",
|
|
37
|
+
},
|
|
38
|
+
error: {
|
|
39
|
+
control: "boolean",
|
|
40
|
+
description: "Show error state when conversation fails to load",
|
|
41
|
+
},
|
|
42
|
+
errorText: {
|
|
43
|
+
control: "text",
|
|
44
|
+
description: "Error message text displayed in the error state",
|
|
45
|
+
},
|
|
46
|
+
retryLabel: {
|
|
47
|
+
control: "text",
|
|
48
|
+
description: "Label for the retry button in the error state",
|
|
49
|
+
},
|
|
34
50
|
},
|
|
35
51
|
};
|
|
36
52
|
export default meta;
|
|
@@ -63,7 +79,7 @@ const steps = [
|
|
|
63
79
|
{ step: 4, action: "إعداد الروابط والمصادر", status: "pending" },
|
|
64
80
|
];
|
|
65
81
|
const comparisonContent = `باقة **بلس** مناسبة للمتاجر الصغيرة والمتوسطة، بينما باقة **برو** مصممة للمتاجر الكبيرة اللي تحتاج منتجات غير محدودة وعمولات أقل ودعم فني على مدار الساعة.\n\n**التوصية:** إذا كنت تتوقع نمواً سريعاً، باقة **برو** هي الأنسب.`;
|
|
66
|
-
const showcaseConversations =
|
|
82
|
+
const showcaseConversations = [
|
|
67
83
|
{
|
|
68
84
|
id: "1",
|
|
69
85
|
title: "مساعد سلة",
|
|
@@ -85,10 +101,9 @@ const showcaseConversations = JSON.stringify([
|
|
|
85
101
|
timestamp: new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(),
|
|
86
102
|
rating: null,
|
|
87
103
|
},
|
|
88
|
-
]
|
|
104
|
+
];
|
|
89
105
|
const ShowcaseConversationDemo = () => {
|
|
90
106
|
const [showVoice, setShowVoice] = useState(false);
|
|
91
|
-
const [listOpen, setListOpen] = useState(false);
|
|
92
107
|
const [activeId, setActiveId] = useState("1");
|
|
93
108
|
const [conversation, setConversation] = useState("مساعد سلة");
|
|
94
109
|
const handleConversationSelect = (e) => {
|
|
@@ -98,25 +113,15 @@ const ShowcaseConversationDemo = () => {
|
|
|
98
113
|
setConversation("محادثة جديدة");
|
|
99
114
|
}
|
|
100
115
|
else {
|
|
101
|
-
const item =
|
|
116
|
+
const item = showcaseConversations.find((c) => c.id === id);
|
|
102
117
|
setActiveId(id);
|
|
103
118
|
setConversation(item?.title ?? "");
|
|
104
119
|
}
|
|
105
|
-
setListOpen(false);
|
|
106
120
|
};
|
|
107
|
-
return (_jsx("div", { style: { position: "relative", height: "700px", background: "#f3f4f6" }, children: _jsxs(AiChatContainer, { isOpen: true, position: "float", floatHeight: "800px", width: "28rem", autoScroll: true, children: [_jsx(AiChatHeader, { slot: "header", isDraggable: true, mode: "agent", conversation: conversation,
|
|
121
|
+
return (_jsx("div", { style: { position: "relative", height: "700px", background: "#f3f4f6" }, children: _jsxs(AiChatContainer, { isOpen: true, position: "float", floatHeight: "800px", width: "28rem", autoScroll: true, children: [_jsx(AiChatHeader, { slot: "header", isDraggable: true, mode: "agent", conversation: conversation, conversationItems: showcaseConversations, conversationActiveId: activeId, onConversationSelect: handleConversationSelect, onConversationDelete: (e) => console.log("delete:", e.detail), onEditClick: () => {
|
|
108
122
|
setActiveId("");
|
|
109
123
|
setConversation("محادثة جديدة");
|
|
110
|
-
|
|
111
|
-
} }), listOpen && (_jsx("div", { style: {
|
|
112
|
-
position: "absolute",
|
|
113
|
-
inset: 0,
|
|
114
|
-
top: "56px",
|
|
115
|
-
zIndex: 10,
|
|
116
|
-
background: "white",
|
|
117
|
-
display: "flex",
|
|
118
|
-
flexDirection: "column",
|
|
119
|
-
}, children: _jsx(AiConversationList, { items: showcaseConversations, activeId: activeId, onConversationSelect: handleConversationSelect, onConversationDelete: (e) => console.log("delete:", e.detail) }) })), _jsxs("div", { style: {
|
|
124
|
+
} }), _jsxs("div", { style: {
|
|
120
125
|
display: "flex",
|
|
121
126
|
flexDirection: "column",
|
|
122
127
|
gap: "0.75rem",
|
|
@@ -132,4 +137,128 @@ const ShowcaseConversationDemo = () => {
|
|
|
132
137
|
export const ShowcaseConversation = {
|
|
133
138
|
render: () => _jsx(ShowcaseConversationDemo, {}),
|
|
134
139
|
};
|
|
140
|
+
// ── AutoScroll Demo ─────────────────────────────────────────────────────────
|
|
141
|
+
const agentReplies = [
|
|
142
|
+
"أهلاً! كيف أقدر أساعدك اليوم؟",
|
|
143
|
+
"بكل سرور، سأشرح لك الفرق بين الباقات.",
|
|
144
|
+
"باقة بلس مناسبة للمتاجر الصغيرة والمتوسطة.",
|
|
145
|
+
"باقة برو تدعم منتجات غير محدودة وعمولات أقل.",
|
|
146
|
+
"هل تريد مقارنة تفصيلية بين الباقتين؟",
|
|
147
|
+
"يمكنك الترقية من لوحة التحكم في أي وقت.",
|
|
148
|
+
"هل هناك شيء آخر أقدر أساعدك فيه؟",
|
|
149
|
+
];
|
|
150
|
+
const AutoScrollDemo = () => {
|
|
151
|
+
const [messages, setMessages] = useState([
|
|
152
|
+
{ role: "agent", content: "أهلاً! كيف أقدر أساعدك اليوم؟", id: 0 },
|
|
153
|
+
]);
|
|
154
|
+
const [replyIndex, setReplyIndex] = useState(1);
|
|
155
|
+
const [autoScroll, setAutoScroll] = useState(true);
|
|
156
|
+
const addUserMessage = () => {
|
|
157
|
+
const id = Date.now();
|
|
158
|
+
setMessages((prev) => [
|
|
159
|
+
...prev,
|
|
160
|
+
{ role: "user", content: `رسالة من المستخدم #${prev.length}`, id },
|
|
161
|
+
]);
|
|
162
|
+
setTimeout(() => {
|
|
163
|
+
const reply = agentReplies[replyIndex % agentReplies.length];
|
|
164
|
+
setReplyIndex((i) => i + 1);
|
|
165
|
+
setMessages((prev) => [
|
|
166
|
+
...prev,
|
|
167
|
+
{ role: "agent", content: reply, id: id + 1 },
|
|
168
|
+
]);
|
|
169
|
+
}, 600);
|
|
170
|
+
};
|
|
171
|
+
return (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "1rem", alignItems: "flex-start", padding: "1rem" }, children: [_jsxs("div", { style: { display: "flex", gap: "0.75rem", alignItems: "center" }, children: [_jsx("button", { onClick: addUserMessage, style: {
|
|
172
|
+
padding: "8px 16px",
|
|
173
|
+
background: "#004956",
|
|
174
|
+
color: "white",
|
|
175
|
+
border: "none",
|
|
176
|
+
borderRadius: "8px",
|
|
177
|
+
cursor: "pointer",
|
|
178
|
+
fontFamily: "inherit",
|
|
179
|
+
}, children: "\u0625\u0636\u0627\u0641\u0629 \u0631\u0633\u0627\u0644\u0629" }), _jsxs("label", { style: { display: "flex", alignItems: "center", gap: "6px", cursor: "pointer" }, children: [_jsx("input", { type: "checkbox", checked: autoScroll, onChange: (e) => setAutoScroll(e.target.checked) }), "autoScroll"] })] }), _jsx("div", { style: { position: "relative", height: "400px", width: "28rem" }, children: _jsxs(AiChatContainer, { isOpen: true, position: "left", width: "28rem", autoScroll: autoScroll, children: [_jsx(AiChatHeader, { slot: "header", conversation: "\u0627\u062E\u062A\u0628\u0627\u0631 \u0627\u0644\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u062A\u0644\u0642\u0627\u0626\u064A" }), _jsx("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem" }, children: messages.map((m) => (_jsx(AiChatMessage, { role: m.role, content: m.content, agentName: m.role === "agent" ? "سلة AI" : undefined }, m.id))) })] }) })] }));
|
|
180
|
+
};
|
|
181
|
+
export const AutoScrollTest = {
|
|
182
|
+
render: () => _jsx(AutoScrollDemo, {}),
|
|
183
|
+
parameters: {
|
|
184
|
+
docs: {
|
|
185
|
+
description: {
|
|
186
|
+
story: 'Click **إضافة رسالة** repeatedly to append messages. With **autoScroll** checked the list scrolls to the bottom automatically. Uncheck it to see messages stay in place.',
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
// ── Loading (Skeleton) State ────────────────────────────────────────────────
|
|
192
|
+
export const LoadingState = {
|
|
193
|
+
render: (args) => (_jsx("div", { style: { position: "relative", height: "600px", background: "#f3f4f6" }, children: _jsxs(AiChatContainer, { isOpen: args.isOpen, position: "float", width: "28rem", floatHeight: "600px", loading: args.loading, children: [_jsx(AiChatHeader, { slot: "header", titleLoading: true }), _jsx(AiMessageInput, { slot: "footer", disabled: true, placeholder: "\u062C\u0627\u0631\u064A \u0627\u0644\u062A\u062D\u0645\u064A\u0644..." })] }) })),
|
|
194
|
+
args: {
|
|
195
|
+
isOpen: true,
|
|
196
|
+
loading: true,
|
|
197
|
+
},
|
|
198
|
+
parameters: {
|
|
199
|
+
docs: {
|
|
200
|
+
description: {
|
|
201
|
+
story: 'When `loading` is true, the messages area shows skeleton placeholder bubbles. The header also shows a shimmer skeleton via `titleLoading` on `AiChatHeader`.',
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
// ── Error State ─────────────────────────────────────────────────────────────
|
|
207
|
+
const ErrorDemo = () => {
|
|
208
|
+
const [error, setError] = useState(true);
|
|
209
|
+
const [loading, setLoading] = useState(false);
|
|
210
|
+
const handleRetry = () => {
|
|
211
|
+
setError(false);
|
|
212
|
+
setLoading(true);
|
|
213
|
+
// Simulate a retry that fails after 2s
|
|
214
|
+
setTimeout(() => {
|
|
215
|
+
setLoading(false);
|
|
216
|
+
setError(true);
|
|
217
|
+
}, 2000);
|
|
218
|
+
};
|
|
219
|
+
return (_jsx("div", { style: { position: "relative", height: "600px", background: "#f3f4f6" }, children: _jsxs(AiChatContainer, { isOpen: true, position: "float", width: "28rem", floatHeight: "600px", error: error, loading: loading, errorText: "\u062A\u0639\u0630\u0651\u0631 \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629. \u062A\u062D\u0642\u0642 \u0645\u0646 \u0627\u062A\u0635\u0627\u0644\u0643 \u0628\u0627\u0644\u0625\u0646\u062A\u0631\u0646\u062A.", retryLabel: "\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629", onRetryClick: handleRetry, children: [_jsx(AiChatHeader, { slot: "header", conversation: "\u062E\u0637\u0623 \u0641\u064A \u0627\u0644\u062A\u062D\u0645\u064A\u0644", titleLoading: loading }), _jsx(AiMessageInput, { slot: "footer", disabled: true, placeholder: "\u063A\u064A\u0631 \u0645\u062A\u0627\u062D \u062D\u0627\u0644\u064A\u0627\u064B" })] }) }));
|
|
220
|
+
};
|
|
221
|
+
export const ErrorState = {
|
|
222
|
+
render: () => _jsx(ErrorDemo, {}),
|
|
223
|
+
parameters: {
|
|
224
|
+
docs: {
|
|
225
|
+
description: {
|
|
226
|
+
story: 'When `error` is true, the messages area displays an error icon, message, and retry button. Clicking retry triggers the `retryClick` event. This demo simulates a retry that shows loading skeletons for 2 seconds then falls back to the error state again.',
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
// ── Loading → Loaded Transition ─────────────────────────────────────────────
|
|
232
|
+
const LoadingTransitionDemo = () => {
|
|
233
|
+
const [loading, setLoading] = useState(true);
|
|
234
|
+
return (_jsxs("div", { style: {
|
|
235
|
+
display: "flex",
|
|
236
|
+
flexDirection: "column",
|
|
237
|
+
gap: "1rem",
|
|
238
|
+
alignItems: "flex-start",
|
|
239
|
+
padding: "1rem",
|
|
240
|
+
}, children: [_jsx("button", { onClick: () => setLoading((l) => !l), style: {
|
|
241
|
+
padding: "8px 16px",
|
|
242
|
+
background: "#004956",
|
|
243
|
+
color: "white",
|
|
244
|
+
border: "none",
|
|
245
|
+
borderRadius: "8px",
|
|
246
|
+
cursor: "pointer",
|
|
247
|
+
fontFamily: "inherit",
|
|
248
|
+
}, children: loading ? "تم التحميل — إظهار الرسائل" : "إعادة التحميل" }), _jsx("div", { style: { position: "relative", height: "500px", width: "28rem" }, children: _jsxs(AiChatContainer, { isOpen: true, position: "left", width: "28rem", loading: loading, children: [_jsx(AiChatHeader, { slot: "header", conversation: "\u0627\u0646\u062A\u0642\u0627\u0644 \u0627\u0644\u062A\u062D\u0645\u064A\u0644", titleLoading: loading }), _jsxs("div", { style: {
|
|
249
|
+
display: "flex",
|
|
250
|
+
flexDirection: "column",
|
|
251
|
+
gap: "0.75rem",
|
|
252
|
+
}, children: [_jsx(AiChatMessage, { role: "agent", content: "\u0623\u0647\u0644\u0627\u064B \u0648\u0633\u0647\u0644\u0627\u064B! \u0623\u0646\u0627 \u0645\u0633\u0627\u0639\u062F \u0633\u0644\u0629 \u0627\u0644\u0630\u0643\u064A \uD83E\uDD16", agentName: "\u0633\u0644\u0629 AI" }), _jsx(AiChatMessage, { role: "user", content: "\u0643\u064A\u0641 \u0623\u0631\u0642\u064A \u0628\u0627\u0642\u062A\u064A\u061F" }), _jsx(AiChatMessage, { role: "agent", content: "\u062A\u0631\u0642\u064A\u0629 \u0628\u0627\u0642\u062A\u0643 \u0633\u0647\u0644\u0629 \u0648\u0633\u0631\u064A\u0639\u0629! \u0627\u0630\u0647\u0628 \u0625\u0644\u0649 \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u2190 \u0627\u0644\u0628\u0627\u0642\u0629 \u0648\u0627\u0644\u0641\u0648\u062A\u0631\u0629.", agentName: "\u0633\u0644\u0629 AI" })] }), _jsx(AiMessageInput, { slot: "footer", disabled: loading, placeholder: loading ? "جاري التحميل..." : "اكتب رسالتك هنا..." })] }) })] }));
|
|
253
|
+
};
|
|
254
|
+
export const LoadingTransition = {
|
|
255
|
+
render: () => _jsx(LoadingTransitionDemo, {}),
|
|
256
|
+
parameters: {
|
|
257
|
+
docs: {
|
|
258
|
+
description: {
|
|
259
|
+
story: 'Toggle the button to switch between loading (skeleton) state and the actual conversation content. Demonstrates how the container transitions smoothly.',
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
};
|
|
135
264
|
//# sourceMappingURL=ai-chat-container.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-chat-container.stories.js","sourceRoot":"","sources":["../../src/stories/ai-chat-container.stories.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-chat-container.stories.js","sourceRoot":"","sources":["../../src/stories/ai-chat-container.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from
|
|
2
|
-
import { AiChatHeader } from
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { AiChatHeader } from "../components";
|
|
3
3
|
declare const meta: Meta<typeof AiChatHeader>;
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<typeof meta>;
|
|
6
6
|
export declare const AgentMode: Story;
|
|
7
7
|
export declare const HumanMode: Story;
|
|
8
8
|
export declare const HumanWithoutBack: Story;
|
|
9
|
+
export declare const BrowserMode: Story;
|
|
9
10
|
/** Avatar fallback: no URL → shows first letter of agentName */
|
|
10
11
|
export declare const AvatarFallback: Story;
|
|
11
12
|
/** Status indicator variants: online (green), offline (gray), busy (red), away (amber) */
|
|
12
13
|
export declare const StatusIndicatorVariants: Story;
|
|
13
14
|
export declare const WithConversationList: Story;
|
|
14
|
-
export declare const
|
|
15
|
+
export declare const TitleLoading: Story;
|
|
15
16
|
//# sourceMappingURL=ai-chat-header.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-chat-header.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-chat-header.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,
|
|
1
|
+
{"version":3,"file":"ai-chat-header.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-chat-header.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAEL,YAAY,EAEb,MAAM,eAAe,CAAC;AAEvB,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAiDnC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAqBvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAsB9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAmBzB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,cAAc,EAAE,KAyC5B,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,EAAE,KAiCrC,CAAC;AAyGF,eAAO,MAAM,oBAAoB,EAAE,KAUlC,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,KA4B1B,CAAC"}
|
|
@@ -1,160 +1,185 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from
|
|
3
|
-
import { AiChatContainer, AiChatHeader, AiChatMessage,
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { AiChatContainer, AiChatHeader, AiChatMessage, } from "../components";
|
|
4
4
|
const meta = {
|
|
5
|
-
title:
|
|
5
|
+
title: "Chat/Chat Header",
|
|
6
6
|
component: AiChatHeader,
|
|
7
|
-
tags: [
|
|
7
|
+
tags: ["autodocs"],
|
|
8
8
|
argTypes: {
|
|
9
9
|
mode: {
|
|
10
|
-
control: { type:
|
|
11
|
-
options: [
|
|
12
|
-
description:
|
|
10
|
+
control: { type: "select" },
|
|
11
|
+
options: ["agent", "human", "browser"],
|
|
12
|
+
description: "Layout variant",
|
|
13
13
|
},
|
|
14
14
|
conversation: {
|
|
15
|
-
control:
|
|
16
|
-
description:
|
|
15
|
+
control: "text",
|
|
16
|
+
description: "Conversation title (agent mode)",
|
|
17
17
|
},
|
|
18
18
|
agentName: {
|
|
19
|
-
control:
|
|
20
|
-
description:
|
|
19
|
+
control: "text",
|
|
20
|
+
description: "Human agent name (human mode)",
|
|
21
21
|
},
|
|
22
22
|
agentStatus: {
|
|
23
|
-
control:
|
|
24
|
-
description:
|
|
23
|
+
control: "text",
|
|
24
|
+
description: "Human agent status label (human mode); hidden when empty",
|
|
25
25
|
},
|
|
26
26
|
agentAvatar: {
|
|
27
|
-
control:
|
|
28
|
-
description:
|
|
27
|
+
control: "text",
|
|
28
|
+
description: "Human agent avatar URL; fallback to first letter of agentName when empty or broken",
|
|
29
29
|
},
|
|
30
30
|
showBack: {
|
|
31
|
-
control:
|
|
32
|
-
description:
|
|
31
|
+
control: "boolean",
|
|
32
|
+
description: "Show back button (human mode)",
|
|
33
|
+
},
|
|
34
|
+
pageTitle: {
|
|
35
|
+
control: "text",
|
|
36
|
+
description: "Page title displayed in the browser header (browser mode)",
|
|
37
|
+
},
|
|
38
|
+
pageUrl: {
|
|
39
|
+
control: "text",
|
|
40
|
+
description: "The external URL for the open-external button (browser mode)",
|
|
33
41
|
},
|
|
34
42
|
isDraggable: {
|
|
35
|
-
control:
|
|
36
|
-
description:
|
|
43
|
+
control: "boolean",
|
|
44
|
+
description: "Show drag handle (used when container is draggable)",
|
|
37
45
|
},
|
|
38
46
|
statusIndicator: {
|
|
39
|
-
control: { type:
|
|
40
|
-
options: [
|
|
41
|
-
description:
|
|
47
|
+
control: { type: "select" },
|
|
48
|
+
options: ["online", "offline", "busy", "away"],
|
|
49
|
+
description: "Online-dot color variant (human mode)",
|
|
42
50
|
},
|
|
43
51
|
},
|
|
44
52
|
};
|
|
45
53
|
export default meta;
|
|
46
54
|
export const AgentMode = {
|
|
47
|
-
render: (args) => (_jsx(AiChatHeader, { mode: args.mode, conversation: args.conversation, isDraggable: args.isDraggable, onCloseClick: () => console.log(
|
|
55
|
+
render: (args) => (_jsx(AiChatHeader, { mode: args.mode, conversation: args.conversation, isDraggable: args.isDraggable, onCloseClick: () => console.log("Close clicked"), onEditClick: () => console.log("Edit clicked"), onDropdownClick: () => console.log("Dropdown clicked") })),
|
|
48
56
|
args: {
|
|
49
|
-
mode:
|
|
50
|
-
conversation:
|
|
57
|
+
mode: "agent",
|
|
58
|
+
conversation: "محادثة جديدة",
|
|
51
59
|
isDraggable: true,
|
|
52
60
|
},
|
|
53
61
|
};
|
|
54
62
|
export const HumanMode = {
|
|
55
|
-
render: (args) => (_jsx(AiChatHeader, { mode: args.mode, agentName: args.agentName, agentStatus: args.agentStatus, agentAvatar: args.agentAvatar, showBack: args.showBack, statusIndicator: args.statusIndicator, onCloseClick: () => console.log(
|
|
63
|
+
render: (args) => (_jsx(AiChatHeader, { mode: args.mode, agentName: args.agentName, agentStatus: args.agentStatus, agentAvatar: args.agentAvatar, showBack: args.showBack, statusIndicator: args.statusIndicator, onCloseClick: () => console.log("Close clicked"), onBackClick: () => console.log("Back clicked") })),
|
|
56
64
|
args: {
|
|
57
|
-
mode:
|
|
58
|
-
agentName:
|
|
59
|
-
agentStatus:
|
|
60
|
-
agentAvatar:
|
|
65
|
+
mode: "human",
|
|
66
|
+
agentName: "هلا",
|
|
67
|
+
agentStatus: "Active",
|
|
68
|
+
agentAvatar: "https://i.pravatar.cc/40?img=5",
|
|
61
69
|
showBack: true,
|
|
62
|
-
statusIndicator:
|
|
70
|
+
statusIndicator: "online",
|
|
63
71
|
},
|
|
64
72
|
};
|
|
65
73
|
export const HumanWithoutBack = {
|
|
66
|
-
render: (args) => (_jsx(AiChatHeader, { mode: args.mode, agentName: args.agentName, agentStatus: args.agentStatus, agentAvatar: args.agentAvatar, showBack: args.showBack, isDraggable: args.isDraggable, statusIndicator: args.statusIndicator, onCloseClick: () => console.log(
|
|
74
|
+
render: (args) => (_jsx(AiChatHeader, { mode: args.mode, agentName: args.agentName, agentStatus: args.agentStatus, agentAvatar: args.agentAvatar, showBack: args.showBack, isDraggable: args.isDraggable, statusIndicator: args.statusIndicator, onCloseClick: () => console.log("Close clicked") })),
|
|
67
75
|
args: {
|
|
68
|
-
mode:
|
|
69
|
-
agentName:
|
|
70
|
-
agentStatus:
|
|
71
|
-
agentAvatar:
|
|
76
|
+
mode: "human",
|
|
77
|
+
agentName: "هلا",
|
|
78
|
+
agentStatus: "Active",
|
|
79
|
+
agentAvatar: "https://i.pravatar.cc/40?img=5",
|
|
72
80
|
showBack: false,
|
|
73
81
|
isDraggable: true,
|
|
74
|
-
statusIndicator:
|
|
82
|
+
statusIndicator: "online",
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
export const BrowserMode = {
|
|
86
|
+
render: (args) => (_jsx(AiChatHeader, { mode: "browser", pageTitle: args.pageTitle, pageUrl: args.pageUrl, isDraggable: args.isDraggable, onBackClick: () => console.log("Back / Close browser clicked"), onOpenExternal: (e) => console.log("Open external:", e.detail) })),
|
|
87
|
+
args: {
|
|
88
|
+
mode: "browser",
|
|
89
|
+
pageTitle: "تفاصيل الطلب #12345",
|
|
90
|
+
pageUrl: "https://example.com/order/12345",
|
|
91
|
+
isDraggable: false,
|
|
75
92
|
},
|
|
76
93
|
};
|
|
77
94
|
/** Avatar fallback: no URL → shows first letter of agentName */
|
|
78
95
|
export const AvatarFallback = {
|
|
79
|
-
render: () => (_jsxs("div", { style: { display:
|
|
96
|
+
render: () => (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [_jsx(AiChatHeader, { mode: "human", agentName: "\u0645\u062D\u0645\u062F", agentStatus: "\u0645\u062A\u0635\u0644", agentAvatar: "", showBack: true, statusIndicator: "online", onCloseClick: () => console.log("close"), onBackClick: () => console.log("back") }), _jsx(AiChatHeader, { mode: "human", agentName: "\u0633\u0627\u0631\u0629", agentStatus: "", agentAvatar: "", showBack: false, statusIndicator: "busy", onCloseClick: () => console.log("close") }), _jsx(AiChatHeader, { mode: "human", agentName: "\u0647\u0644\u0627", agentAvatar: "https://broken-url-that-will-404.example/img.png", showBack: true, statusIndicator: "away", onCloseClick: () => console.log("close"), onBackClick: () => console.log("back") })] })),
|
|
80
97
|
parameters: {
|
|
81
98
|
docs: {
|
|
82
99
|
description: {
|
|
83
|
-
story:
|
|
100
|
+
story: "When `agentAvatar` is empty or the image fails to load, a fallback div showing the first letter of `agentName` is rendered. `agentStatus` is hidden when blank.",
|
|
84
101
|
},
|
|
85
102
|
},
|
|
86
103
|
},
|
|
87
104
|
};
|
|
88
105
|
/** Status indicator variants: online (green), offline (gray), busy (red), away (amber) */
|
|
89
106
|
export const StatusIndicatorVariants = {
|
|
90
|
-
render: () => (_jsx("div", { style: { display:
|
|
107
|
+
render: () => (_jsx("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: ["online", "offline", "busy", "away"].map((status) => (_jsx(AiChatHeader, { mode: "human", agentName: "\u0647\u0644\u0627", agentStatus: status === "online"
|
|
108
|
+
? "متصل الآن"
|
|
109
|
+
: status === "offline"
|
|
110
|
+
? "غير متصل"
|
|
111
|
+
: status === "busy"
|
|
112
|
+
? "مشغول"
|
|
113
|
+
: "بعيد", agentAvatar: "https://i.pravatar.cc/40?img=5", showBack: false, statusIndicator: status, onCloseClick: () => console.log("close") }, status))) })),
|
|
91
114
|
parameters: {
|
|
92
115
|
docs: {
|
|
93
116
|
description: {
|
|
94
|
-
story:
|
|
117
|
+
story: "`statusIndicator` controls the online-dot color: **online** = green, **offline** = gray, **busy** = red, **away** = amber.",
|
|
95
118
|
},
|
|
96
119
|
},
|
|
97
120
|
},
|
|
98
121
|
};
|
|
99
|
-
const conversations =
|
|
122
|
+
const conversations = [
|
|
100
123
|
{
|
|
101
|
-
id:
|
|
102
|
-
title:
|
|
103
|
-
preview:
|
|
124
|
+
id: "1",
|
|
125
|
+
title: "مساعدة في كتابة تقرير",
|
|
126
|
+
preview: "أحتاج إلى مساعدة في كتابة تقرير عن أداء المبيعات للربع الثالث",
|
|
104
127
|
timestamp: new Date(Date.now() - 5 * 60 * 1000).toISOString(),
|
|
105
128
|
rating: 5,
|
|
106
129
|
},
|
|
107
130
|
{
|
|
108
|
-
id:
|
|
109
|
-
title:
|
|
110
|
-
preview:
|
|
131
|
+
id: "2",
|
|
132
|
+
title: "تحليل البيانات",
|
|
133
|
+
preview: "هل يمكنك مساعدتي في تحليل هذه البيانات وإخراج تقرير مختصر؟",
|
|
111
134
|
timestamp: new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString(),
|
|
112
135
|
rating: 3,
|
|
113
136
|
},
|
|
114
137
|
{
|
|
115
|
-
id:
|
|
116
|
-
title:
|
|
117
|
-
preview:
|
|
138
|
+
id: "3",
|
|
139
|
+
title: "استفسار عن المنتجات",
|
|
140
|
+
preview: "أريد معرفة المزيد عن المنتجات المتاحة وأسعارها وطرق الشحن",
|
|
118
141
|
timestamp: new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(),
|
|
119
142
|
rating: null,
|
|
120
143
|
},
|
|
121
144
|
{
|
|
122
|
-
id:
|
|
123
|
-
title:
|
|
124
|
-
preview:
|
|
145
|
+
id: "4",
|
|
146
|
+
title: "دعم فني",
|
|
147
|
+
preview: "واجهت مشكلة في تسجيل الدخول ولا أستطيع إعادة تعيين كلمة المرور",
|
|
125
148
|
timestamp: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(),
|
|
126
149
|
rating: 2,
|
|
127
150
|
},
|
|
128
|
-
]
|
|
151
|
+
];
|
|
129
152
|
const WithConversationListDemo = () => {
|
|
130
|
-
const [
|
|
131
|
-
const [
|
|
132
|
-
const [conversation, setConversation] = useState('مساعدة في كتابة تقرير');
|
|
153
|
+
const [activeId, setActiveId] = useState("1");
|
|
154
|
+
const [conversation, setConversation] = useState("مساعدة في كتابة تقرير");
|
|
133
155
|
const handleSelect = (e) => {
|
|
134
156
|
const id = e.detail;
|
|
135
157
|
if (!id) {
|
|
136
|
-
setActiveId(
|
|
137
|
-
setConversation(
|
|
158
|
+
setActiveId("");
|
|
159
|
+
setConversation("محادثة جديدة");
|
|
138
160
|
}
|
|
139
161
|
else {
|
|
140
|
-
const item =
|
|
162
|
+
const item = conversations.find((c) => c.id === id);
|
|
141
163
|
setActiveId(id);
|
|
142
|
-
setConversation(item?.title ??
|
|
164
|
+
setConversation(item?.title ?? "");
|
|
143
165
|
}
|
|
144
|
-
setListOpen(false);
|
|
145
166
|
};
|
|
146
167
|
const handleDelete = (e) => {
|
|
147
|
-
console.log(
|
|
168
|
+
console.log("delete:", e.detail);
|
|
148
169
|
};
|
|
149
|
-
return (_jsx("div", { style: {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
170
|
+
return (_jsx("div", { style: {
|
|
171
|
+
height: "600px",
|
|
172
|
+
}, children: _jsxs(AiChatContainer, { isOpen: true, position: "right", width: "32rem", children: [_jsx(AiChatHeader, { slot: "header", mode: "agent", conversation: conversation, conversationItems: conversations, conversationActiveId: activeId, onConversationSelect: handleSelect, onConversationDelete: handleDelete, onEditClick: () => {
|
|
173
|
+
setActiveId("");
|
|
174
|
+
setConversation("محادثة جديدة");
|
|
175
|
+
}, onCloseClick: () => console.log("close") }), _jsxs("div", { style: {
|
|
176
|
+
flex: 1,
|
|
177
|
+
padding: "1rem",
|
|
178
|
+
display: "flex",
|
|
179
|
+
flexDirection: "column",
|
|
180
|
+
gap: "0.75rem",
|
|
181
|
+
overflowY: "auto",
|
|
182
|
+
}, children: [_jsx(AiChatMessage, { role: "agent", content: "\u0623\u0647\u0644\u0627\u064B! \u0643\u064A\u0641 \u0623\u0642\u062F\u0631 \u0623\u0633\u0627\u0639\u062F\u0643 \u0627\u0644\u064A\u0648\u0645\u061F", agentName: "\u0633\u0644\u0629 AI", timestamp: new Date(Date.now() - 120000).toISOString(), showActions: true }), _jsx(AiChatMessage, { role: "user", content: "\u0623\u062D\u062A\u0627\u062C \u0645\u0633\u0627\u0639\u062F\u0629 \u0641\u064A \u062A\u0642\u0631\u064A\u0631 \u0627\u0644\u0645\u0628\u064A\u0639\u0627\u062A", timestamp: new Date(Date.now() - 60000).toISOString() })] })] }) }));
|
|
158
183
|
};
|
|
159
184
|
export const WithConversationList = {
|
|
160
185
|
render: () => _jsx(WithConversationListDemo, {}),
|
|
@@ -166,7 +191,24 @@ export const WithConversationList = {
|
|
|
166
191
|
},
|
|
167
192
|
},
|
|
168
193
|
};
|
|
169
|
-
|
|
170
|
-
|
|
194
|
+
// ── Title Loading State ─────────────────────────────────────────────────────
|
|
195
|
+
export const TitleLoading = {
|
|
196
|
+
render: (args) => (_jsx(AiChatHeader, { mode: "agent", titleLoading: args.titleLoading, conversation: "\u0645\u062D\u0627\u062F\u062B\u0629 \u062C\u062F\u064A\u062F\u0629", isDraggable: true, onCloseClick: () => console.log("Close clicked"), onEditClick: () => console.log("Edit clicked") })),
|
|
197
|
+
args: {
|
|
198
|
+
titleLoading: true,
|
|
199
|
+
},
|
|
200
|
+
argTypes: {
|
|
201
|
+
titleLoading: {
|
|
202
|
+
control: "boolean",
|
|
203
|
+
description: "Show a shimmer skeleton in place of the conversation title",
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
parameters: {
|
|
207
|
+
docs: {
|
|
208
|
+
description: {
|
|
209
|
+
story: 'When `titleLoading` is true, a shimmer skeleton replaces the conversation title and the dropdown chevron is hidden. Toggle the control to see the transition.',
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
},
|
|
171
213
|
};
|
|
172
214
|
//# sourceMappingURL=ai-chat-header.stories.js.map
|