@salla.sa/ui-ai-kit-react 1.0.0 → 1.1.1

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.
Files changed (57) hide show
  1. package/dist/generated/components.d.ts +19 -2
  2. package/dist/generated/components.d.ts.map +1 -1
  3. package/dist/generated/components.js +31 -1
  4. package/dist/generated/components.js.map +1 -1
  5. package/dist/stories/ai-card.stories.d.ts +9 -0
  6. package/dist/stories/ai-card.stories.d.ts.map +1 -0
  7. package/dist/stories/ai-card.stories.js +28 -0
  8. package/dist/stories/ai-card.stories.js.map +1 -0
  9. package/dist/stories/ai-chat-container.stories.d.ts +9 -0
  10. package/dist/stories/ai-chat-container.stories.d.ts.map +1 -0
  11. package/dist/stories/ai-chat-container.stories.js +135 -0
  12. package/dist/stories/ai-chat-container.stories.js.map +1 -0
  13. package/dist/stories/ai-chat-header.stories.d.ts +15 -0
  14. package/dist/stories/ai-chat-header.stories.d.ts.map +1 -0
  15. package/dist/stories/ai-chat-header.stories.js +172 -0
  16. package/dist/stories/ai-chat-header.stories.js.map +1 -0
  17. package/dist/stories/ai-chat-message.stories.d.ts +11 -0
  18. package/dist/stories/ai-chat-message.stories.d.ts.map +1 -0
  19. package/dist/stories/ai-chat-message.stories.js +83 -0
  20. package/dist/stories/ai-chat-message.stories.js.map +1 -0
  21. package/dist/stories/ai-conversation-list.stories.d.ts +10 -0
  22. package/dist/stories/ai-conversation-list.stories.d.ts.map +1 -0
  23. package/dist/stories/ai-conversation-list.stories.js +82 -0
  24. package/dist/stories/ai-conversation-list.stories.js.map +1 -0
  25. package/dist/stories/ai-conversation-summary.stories.d.ts +12 -0
  26. package/dist/stories/ai-conversation-summary.stories.d.ts.map +1 -0
  27. package/dist/stories/ai-conversation-summary.stories.js +91 -0
  28. package/dist/stories/ai-conversation-summary.stories.js.map +1 -0
  29. package/dist/stories/ai-link.stories.d.ts +10 -0
  30. package/dist/stories/ai-link.stories.d.ts.map +1 -0
  31. package/dist/stories/ai-link.stories.js +35 -0
  32. package/dist/stories/ai-link.stories.js.map +1 -0
  33. package/dist/stories/ai-loading.stories.d.ts +22 -0
  34. package/dist/stories/ai-loading.stories.d.ts.map +1 -0
  35. package/dist/stories/ai-loading.stories.js +174 -0
  36. package/dist/stories/ai-loading.stories.js.map +1 -0
  37. package/dist/stories/ai-message-input.stories.d.ts +9 -0
  38. package/dist/stories/ai-message-input.stories.d.ts.map +1 -0
  39. package/dist/stories/ai-message-input.stories.js +88 -0
  40. package/dist/stories/ai-message-input.stories.js.map +1 -0
  41. package/dist/stories/ai-rating.stories.d.ts +10 -0
  42. package/dist/stories/ai-rating.stories.d.ts.map +1 -0
  43. package/dist/stories/ai-rating.stories.js +42 -0
  44. package/dist/stories/ai-rating.stories.js.map +1 -0
  45. package/dist/stories/ai-route-decision.stories.d.ts +11 -0
  46. package/dist/stories/ai-route-decision.stories.d.ts.map +1 -0
  47. package/dist/stories/ai-route-decision.stories.js +102 -0
  48. package/dist/stories/ai-route-decision.stories.js.map +1 -0
  49. package/dist/stories/ai-suggestion.stories.d.ts +10 -0
  50. package/dist/stories/ai-suggestion.stories.d.ts.map +1 -0
  51. package/dist/stories/ai-suggestion.stories.js +38 -0
  52. package/dist/stories/ai-suggestion.stories.js.map +1 -0
  53. package/dist/stories/ai-voice-input.stories.d.ts +13 -0
  54. package/dist/stories/ai-voice-input.stories.d.ts.map +1 -0
  55. package/dist/stories/ai-voice-input.stories.js +130 -0
  56. package/dist/stories/ai-voice-input.stories.js.map +1 -0
  57. package/package.json +16 -3
@@ -0,0 +1,11 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { AiChatMessage } from "../generated/components";
3
+ declare const meta: Meta<typeof AiChatMessage>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const UserMessage: Story;
7
+ export declare const AgentMessageSimple: Story;
8
+ export declare const AgentMessageMarkdown: Story;
9
+ export declare const FeedbackSelected: Story;
10
+ export declare const ConversationThread: Story;
11
+ //# sourceMappingURL=ai-chat-message.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-chat-message.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-chat-message.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAuBpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAenC,eAAO,MAAM,WAAW,EAAE,KAezB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAoBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAsBlC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAqB9B,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,KA8BhC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AiChatMessage } from "../generated/components";
3
+ const meta = {
4
+ title: "Chat/Chat Message",
5
+ component: AiChatMessage,
6
+ tags: ["autodocs"],
7
+ argTypes: {
8
+ role: {
9
+ control: { type: "select" },
10
+ options: ["user", "agent"],
11
+ },
12
+ content: { control: "text" },
13
+ format: {
14
+ control: { type: "select" },
15
+ options: ["text", "markdown"],
16
+ },
17
+ agentName: { control: "text" },
18
+ timestamp: { control: "text" },
19
+ showActions: { control: "boolean" },
20
+ enableRegenerate: { control: "boolean" },
21
+ feedbackValue: {
22
+ control: { type: "select" },
23
+ options: [undefined, "up", "down"],
24
+ },
25
+ },
26
+ };
27
+ export default meta;
28
+ const wrapStyle = {
29
+ padding: "24px",
30
+ background: "#f3f4f6",
31
+ direction: "rtl",
32
+ };
33
+ const threadStyle = {
34
+ ...wrapStyle,
35
+ display: "flex",
36
+ flexDirection: "column",
37
+ gap: "12px",
38
+ maxWidth: "480px",
39
+ };
40
+ export const UserMessage = {
41
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiChatMessage, { role: args.role, content: args.content, timestamp: args.timestamp }) })),
42
+ args: {
43
+ role: "user",
44
+ content: "مرحباً، كيف يمكنني تتبع طلبي؟",
45
+ timestamp: new Date(Date.now() - 120000).toISOString(),
46
+ },
47
+ };
48
+ export const AgentMessageSimple = {
49
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiChatMessage, { role: args.role, content: args.content, agentName: args.agentName, timestamp: args.timestamp, showActions: args.showActions }) })),
50
+ args: {
51
+ role: "agent",
52
+ content: "مرحباً بك! يسعدني مساعدتك في تتبع طلبك. هل يمكنك تزويدي برقم الطلب؟",
53
+ agentName: "الرد الآلي | Salla AI",
54
+ timestamp: new Date().toISOString(),
55
+ showActions: true,
56
+ },
57
+ };
58
+ export const AgentMessageMarkdown = {
59
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiChatMessage, { role: args.role, content: args.content, format: args.format, agentName: args.agentName, timestamp: args.timestamp, showActions: args.showActions, enableRegenerate: args.enableRegenerate }) })),
60
+ args: {
61
+ role: "agent",
62
+ content: `## تفاصيل طلبك\n\nوجدت طلبك **#ORD-2024-78945**. إليك الملخص:\n\n- **الحالة**: قيد الشحن\n- **التاريخ**: 10 مارس 2026\n- **المنتجات**: 3 عناصر\n\n### الخطوات التالية\n\nسيصلك *رمز التتبع* خلال ساعة.`,
63
+ format: "markdown",
64
+ agentName: "الرد الآلي | Salla AI",
65
+ timestamp: new Date().toISOString(),
66
+ showActions: true,
67
+ },
68
+ };
69
+ export const FeedbackSelected = {
70
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiChatMessage, { role: args.role, content: args.content, agentName: args.agentName, timestamp: args.timestamp, feedbackValue: args.feedbackValue, showActions: args.showActions }) })),
71
+ args: {
72
+ role: "agent",
73
+ content: "تم شحن طلبك وسيصلك خلال يومين.",
74
+ agentName: "الرد الآلي | Salla AI",
75
+ timestamp: new Date().toISOString(),
76
+ feedbackValue: "up",
77
+ showActions: true,
78
+ },
79
+ };
80
+ export const ConversationThread = {
81
+ render: () => (_jsxs("div", { style: threadStyle, children: [_jsx(AiChatMessage, { role: "user", content: "\u0645\u0631\u062D\u0628\u0627\u064B\u060C \u0623\u062D\u062A\u0627\u062C \u0645\u0633\u0627\u0639\u062F\u0629 \u0641\u064A \u062A\u062A\u0628\u0639 \u0637\u0644\u0628\u064A", timestamp: new Date(Date.now() - 300000).toISOString() }), _jsx(AiChatMessage, { role: "agent", content: "\u0645\u0631\u062D\u0628\u0627\u064B! \u064A\u0633\u0639\u062F\u0646\u064A \u0645\u0633\u0627\u0639\u062F\u062A\u0643. \u0647\u0644 \u064A\u0645\u0643\u0646\u0643 \u062A\u0632\u0648\u064A\u062F\u064A \u0628\u0631\u0642\u0645 \u0627\u0644\u0637\u0644\u0628\u061F", agentName: "\u0627\u0644\u0631\u062F \u0627\u0644\u0622\u0644\u064A | Salla AI", timestamp: new Date(Date.now() - 240000).toISOString(), showActions: true }), _jsx(AiChatMessage, { role: "user", content: "\u0628\u0627\u0644\u062A\u0623\u0643\u064A\u062F\u060C \u0631\u0642\u0645\u0647 #ORD-2024-78945", timestamp: new Date(Date.now() - 180000).toISOString() }), _jsx(AiChatMessage, { role: "agent", content: "**\u0648\u062C\u062F\u062A \u0637\u0644\u0628\u0643!** \u062D\u0627\u0644\u062A\u0647 \u0627\u0644\u0622\u0646 *\u0642\u064A\u062F \u0627\u0644\u0634\u062D\u0646* \u0648\u0633\u064A\u0635\u0644\u0643 \u062E\u0644\u0627\u0644 \u064A\u0648\u0645\u064A\u0646 \u0639\u0645\u0644.\\n\\n- \u0631\u0642\u0645 \u0627\u0644\u062A\u062A\u0628\u0639: **TRK-9876543**\\n- \u0634\u0631\u0643\u0629 \u0627\u0644\u0634\u062D\u0646: \u0623\u0631\u0627\u0645\u0643\u0633", format: "markdown", agentName: "\u0627\u0644\u0631\u062F \u0627\u0644\u0622\u0644\u064A | Salla AI", timestamp: new Date().toISOString(), showActions: true })] })),
82
+ };
83
+ //# sourceMappingURL=ai-chat-message.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-chat-message.stories.js","sourceRoot":"","sources":["../../src/stories/ai-chat-message.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AiConversationList } from '../generated/components';
3
+ declare const meta: Meta<typeof AiConversationList>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const Loading: Story;
8
+ export declare const NoActiveItem: Story;
9
+ export declare const Empty: Story;
10
+ //# sourceMappingURL=ai-conversation-list.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-conversation-list.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-conversation-list.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CAkBzC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAiCnC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAUnB,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { AiConversationList } from '../generated/components';
3
+ const meta = {
4
+ title: 'Chat/ConversationList',
5
+ component: AiConversationList,
6
+ tags: ['autodocs'],
7
+ argTypes: {
8
+ items: {
9
+ control: 'text',
10
+ description: 'JSON array of ConversationItem',
11
+ },
12
+ activeId: {
13
+ control: 'text',
14
+ description: 'ID of the active conversation',
15
+ },
16
+ loading: {
17
+ control: 'boolean',
18
+ description: 'Show skeleton loading state',
19
+ },
20
+ },
21
+ };
22
+ export default meta;
23
+ const sampleItems = JSON.stringify([
24
+ {
25
+ id: '1',
26
+ title: 'مساعدة في كتابة تقرير',
27
+ preview: 'أحتاج إلى مساعدة في كتابة تقرير عن أداء المبيعات للربع الثالث من هذا العام',
28
+ timestamp: new Date(Date.now() - 5 * 60 * 1000).toISOString(),
29
+ rating: 5,
30
+ },
31
+ {
32
+ id: '2',
33
+ title: 'تحليل البيانات',
34
+ preview: 'هل يمكنك مساعدتي في تحليل هذه البيانات وإخراج تقرير مختصر؟',
35
+ timestamp: new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString(),
36
+ rating: 3,
37
+ },
38
+ {
39
+ id: '3',
40
+ title: 'استفسار عن المنتجات',
41
+ preview: 'أريد معرفة المزيد عن المنتجات المتاحة وأسعارها وطرق الشحن',
42
+ timestamp: new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(),
43
+ rating: null,
44
+ },
45
+ {
46
+ id: '4',
47
+ title: 'دعم فني',
48
+ preview: 'واجهت مشكلة في تسجيل الدخول إلى حسابي ولا أستطيع إعادة تعيين كلمة المرور',
49
+ timestamp: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(),
50
+ rating: 2,
51
+ },
52
+ ]);
53
+ export const Default = {
54
+ render: args => (_jsx("div", { style: { width: '280px', height: '500px', border: '1px solid #e5e7eb', borderRadius: '12px', overflow: 'hidden' }, children: _jsx(AiConversationList, { items: args.items, activeId: args.activeId, loading: args.loading, onConversationSelect: e => console.log('select:', e.detail), onConversationDelete: e => console.log('delete:', e.detail) }) })),
55
+ args: {
56
+ items: sampleItems,
57
+ activeId: '1',
58
+ loading: false,
59
+ },
60
+ };
61
+ export const Loading = {
62
+ render: args => (_jsx("div", { style: { width: '280px', height: '500px', border: '1px solid #e5e7eb', borderRadius: '12px', overflow: 'hidden' }, children: _jsx(AiConversationList, { items: args.items, loading: args.loading }) })),
63
+ args: {
64
+ items: '[]',
65
+ loading: true,
66
+ },
67
+ };
68
+ export const NoActiveItem = {
69
+ render: args => (_jsx("div", { style: { width: '280px', height: '500px', border: '1px solid #e5e7eb', borderRadius: '12px', overflow: 'hidden' }, children: _jsx(AiConversationList, { items: args.items, activeId: args.activeId, onConversationSelect: e => console.log('select:', e.detail), onConversationDelete: e => console.log('delete:', e.detail) }) })),
70
+ args: {
71
+ items: sampleItems,
72
+ activeId: '',
73
+ },
74
+ };
75
+ export const Empty = {
76
+ render: args => (_jsx("div", { style: { width: '280px', height: '500px', border: '1px solid #e5e7eb', borderRadius: '12px', overflow: 'hidden' }, children: _jsx(AiConversationList, { items: args.items, loading: args.loading }) })),
77
+ args: {
78
+ items: '[]',
79
+ loading: false,
80
+ },
81
+ };
82
+ //# sourceMappingURL=ai-conversation-list.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-conversation-list.stories.js","sourceRoot":"","sources":["../../src/stories/ai-conversation-list.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,IAAI,GAAoC;IAC5C,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,gCAAgC;SAC9C;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,+BAA+B;SAC7C;QACD,OAAO,EAAE;YACP,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,6BAA6B;SAC3C;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC;QACE,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE,4EAA4E;QACrF,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QAC7D,MAAM,EAAE,CAAC;KACV;IACD;QACE,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,4DAA4D;QACrE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QAClE,MAAM,EAAE,CAAC;KACV;IACD;QACE,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EAAE,2DAA2D;QACpE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QACnE,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,0EAA0E;QACnF,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QACvE,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YACpH,KAAC,kBAAkB,IACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAC3D,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAC3D,GACE,CACP;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,KAAK;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YACpH,KAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,GAAI,GAC5D,CACP;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;KACd;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YACpH,KAAC,kBAAkB,IACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAC3D,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAC3D,GACE,CACP;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YACpH,KAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,GAAI,GAC5D,CACP;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;KACf;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AiConversationSummary } from '../generated/components';
3
+ declare const meta: Meta<typeof AiConversationSummary>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const SummaryOnly: Story;
7
+ export declare const WithRating: Story;
8
+ export declare const WithPreSelectedRating: Story;
9
+ export declare const LongSummary: Story;
10
+ export declare const NoLanguage: Story;
11
+ export declare const NoSlot: Story;
12
+ //# sourceMappingURL=ai-conversation-summary.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-conversation-summary.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-conversation-summary.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAY,MAAM,yBAAyB,CAAC;AAE1E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,qBAAqB,CAsB5C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAWnC,eAAO,MAAM,WAAW,EAAE,KAYzB,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,KAmBxB,CAAC;AAIF,eAAO,MAAM,qBAAqB,EAAE,KAmBnC,CAAC;AAIF,eAAO,MAAM,WAAW,EAAE,KAmBzB,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,KAYxB,CAAC;AAIF,eAAO,MAAM,MAAM,EAAE,KAapB,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { AiConversationSummary, AiRating } from '../generated/components';
3
+ const meta = {
4
+ title: 'Chat/ConversationSummary',
5
+ component: AiConversationSummary,
6
+ tags: ['autodocs'],
7
+ argTypes: {
8
+ title: {
9
+ control: 'text',
10
+ description: 'Card heading',
11
+ },
12
+ summary: {
13
+ control: 'text',
14
+ description: 'Summary body text',
15
+ },
16
+ messageCount: {
17
+ control: { type: 'number', min: 0 },
18
+ description: 'Total message count shown as a badge',
19
+ },
20
+ language: {
21
+ control: 'text',
22
+ description: 'Conversation language label',
23
+ },
24
+ },
25
+ };
26
+ export default meta;
27
+ const wrapStyle = {
28
+ padding: '24px',
29
+ background: '#f3f4f6',
30
+ direction: 'rtl',
31
+ maxWidth: '480px',
32
+ };
33
+ // ── Summary only ──────────────────────────────────────────
34
+ export const SummaryOnly = {
35
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiConversationSummary, { ...args }) })),
36
+ args: {
37
+ title: 'ملخص المحادثة',
38
+ summary: 'طلب التاجر الاطلاع على حالة المخزون لـ 5 منتجات. تم التحقق من توفر المنتجات وتزويده بالمعلومات المطلوبة بنجاح.',
39
+ messageCount: 8,
40
+ language: 'عربي',
41
+ },
42
+ };
43
+ // ── With rating ───────────────────────────────────────────
44
+ export const WithRating = {
45
+ name: 'With Rating Slot',
46
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiConversationSummary, { ...args, children: _jsx(AiRating, { question: "\u0643\u064A\u0641 \u0643\u0627\u0646\u062A \u062A\u062C\u0631\u0628\u062A\u0643\u061F", subtitle: "\u0631\u0623\u064A\u0643 \u064A\u0633\u0627\u0639\u062F\u0646\u0627 \u0646\u062D\u0633\u0646 \u0627\u0644\u062E\u062F\u0645\u0629", onRatingChange: (e) => console.log('rating:', e.detail) }) }) })),
47
+ args: {
48
+ title: 'ملخص المحادثة',
49
+ summary: 'طلب التاجر الاطلاع على حالة المخزون لـ 5 منتجات. تم التحقق من توفر المنتجات وتزويده بالمعلومات المطلوبة بنجاح.',
50
+ messageCount: 8,
51
+ language: 'عربي',
52
+ },
53
+ };
54
+ // ── With pre-selected rating ──────────────────────────────
55
+ export const WithPreSelectedRating = {
56
+ name: 'With Pre-Selected Rating',
57
+ render: () => (_jsx("div", { style: wrapStyle, children: _jsx(AiConversationSummary, { title: "\u0645\u0644\u062E\u0635 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629", summary: "\u062A\u0645 \u0627\u0644\u0631\u062F \u0639\u0644\u0649 \u0627\u0633\u062A\u0641\u0633\u0627\u0631 \u0627\u0644\u062A\u0627\u062C\u0631 \u062D\u0648\u0644 \u0633\u064A\u0627\u0633\u0629 \u0627\u0644\u0625\u0631\u062C\u0627\u0639 \u0648\u062A\u0641\u0627\u0635\u064A\u0644 \u0627\u0644\u0634\u062D\u0646. \u0627\u0633\u062A\u063A\u0631\u0642\u062A \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629 3 \u062F\u0642\u0627\u0626\u0642 \u0648\u062A\u0636\u0645\u0646\u062A 12 \u0631\u0633\u0627\u0644\u0629.", messageCount: 12, language: "\u0639\u0631\u0628\u064A", children: _jsx(AiRating, { question: "\u0643\u064A\u0641 \u0643\u0627\u0646\u062A \u062A\u062C\u0631\u0628\u062A\u0643\u061F", subtitle: "\u062A\u0645 \u0625\u0631\u0633\u0627\u0644 \u062A\u0642\u064A\u064A\u0645\u0643", value: 5, disabled: true }) }) })),
58
+ };
59
+ // ── Long summary ──────────────────────────────────────────
60
+ export const LongSummary = {
61
+ name: 'Long Summary',
62
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiConversationSummary, { ...args, children: _jsx(AiRating, { question: "\u0643\u064A\u0641 \u0643\u0627\u0646\u062A \u062A\u062C\u0631\u0628\u062A\u0643\u061F", subtitle: "\u0631\u0623\u064A\u0643 \u064A\u0633\u0627\u0639\u062F\u0646\u0627 \u0646\u062D\u0633\u0646 \u0627\u0644\u062E\u062F\u0645\u0629" }) }) })),
63
+ args: {
64
+ title: 'ملخص المحادثة',
65
+ summary: 'بدأ التاجر المحادثة باستفسار عن حالة 5 طلبات معلقة. تحقق وكيل الطلبات من الحالة ووجد أن طلبين تأخرا بسبب مشكلة في الشحن، بينما الثلاثة الأخرى قيد التجهيز. تم إبلاغ التاجر بالتفاصيل وتزويده بأرقام التتبع. أنهت المحادثة بتأكيد إرسال تنبيه للمورد لتسريع الطلبين المتأخرين.',
66
+ messageCount: 24,
67
+ language: 'عربي',
68
+ },
69
+ };
70
+ // ── No language ───────────────────────────────────────────
71
+ export const NoLanguage = {
72
+ name: 'No Language Badge',
73
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiConversationSummary, { ...args }) })),
74
+ args: {
75
+ title: 'ملخص المحادثة',
76
+ summary: 'تم الإجابة على سؤال التاجر بنجاح.',
77
+ messageCount: 4,
78
+ },
79
+ };
80
+ // ── No slot ───────────────────────────────────────────────
81
+ export const NoSlot = {
82
+ name: 'Without Rating (no slot)',
83
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiConversationSummary, { ...args }) })),
84
+ args: {
85
+ title: 'ملخص المحادثة',
86
+ summary: 'تمت الإجابة على الاستفسار وإغلاق المحادثة.',
87
+ messageCount: 6,
88
+ language: 'عربي',
89
+ },
90
+ };
91
+ //# sourceMappingURL=ai-conversation-summary.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-conversation-summary.stories.js","sourceRoot":"","sources":["../../src/stories/ai-conversation-summary.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AiLink } from '../generated/components';
3
+ declare const meta: Meta<typeof AiLink>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Playground: Story;
7
+ export declare const MultipleLinks: Story;
8
+ export declare const InsideCard: Story;
9
+ export declare const FullMessageContext: Story;
10
+ //# sourceMappingURL=ai-link.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-link.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-link.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAU,MAAM,EAAgB,MAAM,yBAAyB,CAAC;AAEvE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAY7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,eAAO,MAAM,UAAU,EAAE,KAWxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAcxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAkBhC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AiCard, AiLink, AiSuggestion } from '../generated/components';
3
+ const meta = {
4
+ title: 'UI/Link',
5
+ component: AiLink,
6
+ tags: ['autodocs'],
7
+ argTypes: {
8
+ label: { control: 'text' },
9
+ href: { control: 'text' },
10
+ target: {
11
+ control: { type: 'select' },
12
+ options: ['_blank', '_self'],
13
+ },
14
+ },
15
+ };
16
+ export default meta;
17
+ const wrapStyle = { padding: '24px', background: '#f3f4f6', direction: 'rtl' };
18
+ export const Playground = {
19
+ render: (args) => (_jsx("div", { style: wrapStyle, children: _jsx(AiLink, { label: args.label, href: args.href, target: args.target }) })),
20
+ args: {
21
+ label: 'صفحة الباقات',
22
+ href: '#',
23
+ target: '_blank',
24
+ },
25
+ };
26
+ export const MultipleLinks = {
27
+ render: () => (_jsxs("div", { style: { ...wrapStyle, display: 'flex', flexDirection: 'column', gap: '12px', alignItems: 'flex-end' }, children: [_jsx(AiLink, { label: "\u0635\u0641\u062D\u0629 \u0627\u0644\u0628\u0627\u0642\u0627\u062A", href: "#" }), _jsx(AiLink, { label: "\u0644\u0648\u062D\u0629 \u0627\u0644\u062A\u062D\u0643\u0645", href: "#" }), _jsx(AiLink, { label: "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0645\u062A\u062C\u0631", href: "#" })] })),
28
+ };
29
+ export const InsideCard = {
30
+ render: () => (_jsx("div", { style: { padding: '24px', background: '#f3f4f6', direction: 'rtl', maxWidth: '420px' }, children: _jsxs(AiCard, { children: [_jsx("p", { style: { margin: 0, fontSize: '14px', fontWeight: 500, color: '#333' }, children: "\u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0627\u0637\u0644\u0627\u0639 \u0639\u0644\u0649 \u062A\u0641\u0627\u0635\u064A\u0644 \u0627\u0644\u0628\u0627\u0642\u0627\u062A \u0627\u0644\u0645\u062A\u0627\u062D\u0629" }), _jsx("p", { style: { margin: 0, fontSize: '14px', color: '#737373' }, children: "\u0628\u0627\u0642\u0629 \u0628\u0644\u0633 \u062A\u0648\u0641\u0631 \u0645\u064A\u0632\u0627\u062A \u0645\u062A\u0642\u062F\u0645\u0629 \u0644\u0644\u062A\u0633\u0648\u064A\u0642 \u0648\u0625\u062F\u0627\u0631\u0629 \u0627\u0644\u0639\u0645\u0644\u0627\u0621." }), _jsx(AiLink, { label: "\u0635\u0641\u062D\u0629 \u0627\u0644\u0628\u0627\u0642\u0627\u062A", href: "#" })] }) })),
31
+ };
32
+ export const FullMessageContext = {
33
+ render: () => (_jsxs("div", { style: { padding: '24px', background: '#f3f4f6', direction: 'rtl', maxWidth: '480px', display: 'flex', flexDirection: 'column', gap: '12px' }, children: [_jsxs(AiCard, { children: [_jsx("p", { style: { margin: 0, fontSize: '14px', fontWeight: 500, color: '#333' }, children: "\u0627\u0644\u0641\u0631\u0642 \u0628\u064A\u0646 \u0628\u0627\u0642\u0629 \u0628\u0644\u0633 \u0648\u0628\u0631\u0648" }), _jsx("p", { style: { margin: 0, fontSize: '14px', color: '#737373' }, children: "\u0628\u0627\u0642\u0629 \u0628\u0644\u0633 \u0645\u0646\u0627\u0633\u0628\u0629 \u0644\u0644\u0645\u062A\u0627\u062C\u0631 \u0627\u0644\u0646\u0627\u0634\u0626\u0629\u060C \u0628\u064A\u0646\u0645\u0627 \u0628\u0627\u0642\u0629 \u0628\u0631\u0648 \u062A\u0648\u0641\u0631 \u0623\u062F\u0648\u0627\u062A \u062A\u0633\u0648\u064A\u0642 \u0645\u062A\u0642\u062F\u0645\u0629 \u0648\u062A\u0642\u0627\u0631\u064A\u0631 \u062A\u0641\u0635\u064A\u0644\u064A\u0629." }), _jsx(AiLink, { label: "\u0635\u0641\u062D\u0629 \u0627\u0644\u0628\u0627\u0642\u0627\u062A", href: "#" })] }), _jsxs("div", { style: { display: 'flex', gap: '8px', flexWrap: 'wrap' }, children: [_jsx(AiSuggestion, { label: "\u0642\u0627\u0631\u0646 \u0627\u0644\u0623\u0633\u0639\u0627\u0631" }), _jsx(AiSuggestion, { label: "\u0643\u064A\u0641 \u0623\u0631\u0642\u064A \u0628\u0627\u0642\u062A\u064A\u061F" })] })] })),
34
+ };
35
+ //# sourceMappingURL=ai-link.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-link.stories.js","sourceRoot":"","sources":["../../src/stories/ai-link.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AiLoading } from '../generated/components';
3
+ declare const meta: Meta<typeof AiLoading>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export interface LoadingStep {
7
+ step: number;
8
+ action: string;
9
+ reason?: string;
10
+ status?: 'pending' | 'executing' | 'completed' | 'failed';
11
+ }
12
+ export declare const Thinking: Story;
13
+ export declare const ThinkingWithSubtext: Story;
14
+ export declare const StepsPlanning: Story;
15
+ export declare const StepsInProgress: Story;
16
+ export declare const StepsWithDescriptions: Story;
17
+ export declare const StepsWithFailed: Story;
18
+ export declare const StepsAllCompleted: Story;
19
+ export declare const StepsCollapsed: Story;
20
+ export declare const StepsWithAgentBadges: Story;
21
+ export declare const StepsWithCurrentAgent: Story;
22
+ //# sourceMappingURL=ai-loading.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-loading.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-loading.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CA2ChC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC3D;AAmCD,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAOjC,CAAC;AAIF,eAAO,MAAM,aAAa,EAAE,KAc3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAiB7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAanC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAa/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAa5B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAelC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAcnC,CAAC"}
@@ -0,0 +1,174 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { AiLoading } from '../generated/components';
3
+ const meta = {
4
+ title: 'Chat/Loading',
5
+ component: AiLoading,
6
+ tags: ['autodocs'],
7
+ argTypes: {
8
+ mode: {
9
+ control: { type: 'select' },
10
+ options: ['thinking', 'steps'],
11
+ description: 'Main mode switch',
12
+ },
13
+ statusText: {
14
+ control: 'text',
15
+ description: 'Thinking mode status text',
16
+ },
17
+ thinkingSubtext: {
18
+ control: 'text',
19
+ description: 'Secondary shimmer line in thinking mode (e.g. live node name)',
20
+ },
21
+ steps: {
22
+ control: 'text',
23
+ description: 'Steps as JSON string array of LoadingStep',
24
+ },
25
+ headerTitle: {
26
+ control: 'text',
27
+ description: 'Steps card title',
28
+ },
29
+ currentAgent: {
30
+ control: 'text',
31
+ description: 'Agent name shown in header alongside sparkle',
32
+ },
33
+ showAgentBadges: {
34
+ control: 'boolean',
35
+ description: 'Show per-step agent chips',
36
+ },
37
+ expanded: {
38
+ control: 'boolean',
39
+ description: 'Steps card expand state',
40
+ },
41
+ collapsible: {
42
+ control: 'boolean',
43
+ description: 'Allow collapsing the steps card',
44
+ },
45
+ },
46
+ };
47
+ export default meta;
48
+ const stepsInProgress = [
49
+ { step: 1, action: 'البحث عن المعلومات المطلوبة', status: 'completed' },
50
+ { step: 2, action: 'تحليل البيانات وإعداد التقرير', status: 'executing' },
51
+ { step: 3, action: 'مراجعة النتائج والتحقق منها', status: 'pending' },
52
+ { step: 4, action: 'إرسال التقرير النهائي', status: 'pending' },
53
+ ];
54
+ const stepsAllCompleted = [
55
+ { step: 1, action: 'البحث عن المعلومات المطلوبة', status: 'completed' },
56
+ { step: 2, action: 'تحليل البيانات وإعداد التقرير', status: 'completed' },
57
+ { step: 3, action: 'مراجعة النتائج والتحقق منها', status: 'completed' },
58
+ ];
59
+ const stepsWithFailed = [
60
+ { step: 1, action: 'البحث عن المعلومات المطلوبة', status: 'completed' },
61
+ { step: 2, action: 'الاتصال بخدمة خارجية', status: 'failed', reason: 'تعذر الاتصال بالخدمة' },
62
+ { step: 3, action: 'مراجعة النتائج والتحقق منها', status: 'pending' },
63
+ ];
64
+ const stepsWithAgents = [
65
+ { step: 1, action: 'جلب بيانات المخزون', status: 'completed', reason: 'تحقق من توفر 48 منتجاً' },
66
+ { step: 2, action: 'التحقق من حالة الطلبات', status: 'executing', reason: 'يعالج 12 طلباً معلقاً' },
67
+ { step: 3, action: 'إعداد التقرير النهائي', status: 'pending' },
68
+ ];
69
+ const stepsWithDescriptions = [
70
+ { step: 1, action: 'البحث عن المعلومات', status: 'completed', reason: 'تم العثور على 127 نتيجة ذات صلة' },
71
+ { step: 2, action: 'تحليل البيانات', status: 'executing', reason: 'يتحقق من صحة البيانات...' },
72
+ { step: 3, action: 'إعداد الملخص', status: 'pending', reason: 'سيتم إنشاؤه بعد اكتمال التحليل' },
73
+ ];
74
+ // ── Thinking stories ─────────────────────────────────────
75
+ export const Thinking = {
76
+ args: {
77
+ mode: 'thinking',
78
+ statusText: 'جاري التفكير...',
79
+ },
80
+ };
81
+ export const ThinkingWithSubtext = {
82
+ name: 'Thinking — With Subtext',
83
+ args: {
84
+ mode: 'thinking',
85
+ statusText: 'جاري التفكير...',
86
+ thinkingSubtext: 'يتحقق من المخزون...',
87
+ },
88
+ };
89
+ // ── Steps stories ─────────────────────────────────────────
90
+ export const StepsPlanning = {
91
+ name: 'Steps — Planning (empty)',
92
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args }) })),
93
+ args: {
94
+ mode: 'steps',
95
+ steps: [],
96
+ headerTitle: 'خطة التنفيذ',
97
+ expanded: true,
98
+ collapsible: true,
99
+ },
100
+ };
101
+ export const StepsInProgress = {
102
+ name: 'Steps — In Progress',
103
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args, onToggleExpand: (e) => console.log('expand:', e.detail), onStepClick: (e) => console.log('step:', e.detail) }) })),
104
+ args: {
105
+ mode: 'steps',
106
+ steps: stepsInProgress,
107
+ expanded: true,
108
+ collapsible: true,
109
+ },
110
+ };
111
+ export const StepsWithDescriptions = {
112
+ name: 'Steps — With Descriptions',
113
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args }) })),
114
+ args: {
115
+ mode: 'steps',
116
+ steps: stepsWithDescriptions,
117
+ expanded: true,
118
+ collapsible: true,
119
+ },
120
+ };
121
+ export const StepsWithFailed = {
122
+ name: 'Steps — With Failed Step',
123
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args }) })),
124
+ args: {
125
+ mode: 'steps',
126
+ steps: stepsWithFailed,
127
+ expanded: true,
128
+ collapsible: true,
129
+ },
130
+ };
131
+ export const StepsAllCompleted = {
132
+ name: 'Steps — All Completed',
133
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args }) })),
134
+ args: {
135
+ mode: 'steps',
136
+ steps: stepsAllCompleted,
137
+ expanded: true,
138
+ collapsible: true,
139
+ },
140
+ };
141
+ export const StepsCollapsed = {
142
+ name: 'Steps — Collapsed (shows executing title)',
143
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args }) })),
144
+ args: {
145
+ mode: 'steps',
146
+ steps: stepsInProgress,
147
+ expanded: false,
148
+ collapsible: true,
149
+ },
150
+ };
151
+ export const StepsWithAgentBadges = {
152
+ name: 'Steps — With Agent Badges',
153
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args }) })),
154
+ args: {
155
+ mode: 'steps',
156
+ steps: stepsWithAgents,
157
+ showAgentBadges: true,
158
+ currentAgent: 'OrchestratorAgent',
159
+ expanded: true,
160
+ collapsible: true,
161
+ },
162
+ };
163
+ export const StepsWithCurrentAgent = {
164
+ name: 'Steps — Header with Current Agent',
165
+ render: (args) => (_jsx("div", { style: { minWidth: '360px' }, children: _jsx(AiLoading, { ...args }) })),
166
+ args: {
167
+ mode: 'steps',
168
+ steps: stepsInProgress,
169
+ currentAgent: 'PlannerAgent',
170
+ expanded: true,
171
+ collapsible: true,
172
+ },
173
+ };
174
+ //# sourceMappingURL=ai-loading.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-loading.stories.js","sourceRoot":"","sources":["../../src/stories/ai-loading.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { AiMessageInput } from "../generated/components";
3
+ declare const meta: Meta<typeof AiMessageInput>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const Disabled: Story;
8
+ export declare const WithVoiceToggle: Story;
9
+ //# sourceMappingURL=ai-message-input.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-message-input.stories.d.ts","sourceRoot":"","sources":["../../src/stories/ai-message-input.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AAEvE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAkCrC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAcrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AA6EF,eAAO,MAAM,eAAe,EAAE,KAE7B,CAAC"}