@bikdotai/bik-component-library 0.0.718-beta.3 → 0.0.718-beta.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/cjs/assets/icons/Ai_event_generating.svg.js +1 -0
- package/dist/cjs/components/QueryBuilder/helpers/MetaCustomProcessor.d.ts +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsTrend.d.ts +1 -0
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsTrend.js +1 -1
- package/dist/cjs/components/bik-chatbot/components/AIChat.d.ts +5 -0
- package/dist/cjs/components/bik-chatbot/components/AIChat.js +1 -0
- package/dist/cjs/components/bik-chatbot/components/BIKChatbot.d.ts +36 -0
- package/dist/cjs/components/bik-chatbot/components/BIKChatbot.js +1 -0
- package/dist/cjs/components/bik-chatbot/components/ChatLoadingState.d.ts +7 -0
- package/dist/cjs/components/bik-chatbot/components/ChatLoadingState.js +177 -0
- package/dist/cjs/components/bik-chatbot/components/ChatWindow.d.ts +12 -0
- package/dist/cjs/components/bik-chatbot/components/ChatWindow.js +252 -0
- package/dist/cjs/components/bik-chatbot/components/ThinkingIndicator.d.ts +3 -0
- package/dist/cjs/components/bik-chatbot/components/ThinkingIndicator.js +188 -0
- package/dist/cjs/components/bik-chatbot/contexts/AIContext.d.ts +4 -0
- package/dist/cjs/components/bik-chatbot/contexts/AIContext.js +1 -0
- package/dist/cjs/components/bik-chatbot/index.d.ts +137 -0
- package/dist/cjs/components/bik-chatbot/services/aiService.d.ts +30 -0
- package/dist/cjs/components/bik-chatbot/services/aiService.js +1 -0
- package/dist/cjs/components/bik-chatbot/services/callToChatbot.d.ts +6 -0
- package/dist/cjs/components/bik-chatbot/services/callToChatbot.js +1 -0
- package/dist/cjs/components/bik-chatbot/services/db.d.ts +6 -0
- package/dist/cjs/components/bik-chatbot/services/db.js +1 -0
- package/dist/cjs/components/bik-chatbot/services/useAIChat.d.ts +7 -0
- package/dist/cjs/components/bik-chatbot/services/useAIChat.js +1 -0
- package/dist/cjs/components/bik-chatbot/types/ai.d.ts +158 -0
- package/dist/cjs/components/bik-chatbot/types/ai.js +1 -0
- package/dist/cjs/components/bik-chatbot/types/chat.d.ts +34 -0
- package/dist/cjs/components/bik-chatbot/types/chat.js +1 -0
- package/dist/cjs/components/bik-chatbot/types/components.d.ts +130 -0
- package/dist/cjs/components/bik-chatbot/types/index.d.ts +6 -0
- package/dist/cjs/components/bik-chatbot/utils/guardrails.d.ts +6 -0
- package/dist/cjs/components/bik-chatbot/utils/guardrails.js +1 -0
- package/dist/cjs/components/bik-chatbot/utils/markdown.d.ts +1 -0
- package/dist/cjs/components/bik-chatbot/utils/markdown.js +1 -0
- package/dist/cjs/components/bik-chatbot-examples/AnalyticsAdvisor.d.ts +8 -0
- package/dist/cjs/components/bik-chatbot-examples/ContentIdeasDemo.d.ts +12 -0
- package/dist/cjs/components/bik-chatbot-examples/SilentModeDemo.d.ts +17 -0
- package/dist/cjs/components/bik-chatbot-examples/SimpleChatbotDemo.d.ts +17 -0
- package/dist/cjs/components/bik-chatbot-examples/SimpleJsonChatDemo.d.ts +16 -0
- package/dist/cjs/components/bik-chatbot-examples/services/MockRequestExecutor.d.ts +17 -0
- package/dist/cjs/components/bik-chatbot-examples/types.ts/examples.d.ts +61 -0
- package/dist/cjs/index.d.ts +1 -2
- package/dist/cjs/index.js +1 -1
- package/dist/esm/assets/icons/Ai_event_generating.svg.js +1 -0
- package/dist/esm/components/QueryBuilder/helpers/MetaCustomProcessor.d.ts +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsTrend.d.ts +1 -0
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsTrend.js +1 -1
- package/dist/esm/components/bik-chatbot/components/AIChat.d.ts +5 -0
- package/dist/esm/components/bik-chatbot/components/AIChat.js +1 -0
- package/dist/esm/components/bik-chatbot/components/BIKChatbot.d.ts +36 -0
- package/dist/esm/components/bik-chatbot/components/BIKChatbot.js +1 -0
- package/dist/esm/components/bik-chatbot/components/ChatLoadingState.d.ts +7 -0
- package/dist/esm/components/bik-chatbot/components/ChatLoadingState.js +177 -0
- package/dist/esm/components/bik-chatbot/components/ChatWindow.d.ts +12 -0
- package/dist/esm/components/bik-chatbot/components/ChatWindow.js +252 -0
- package/dist/esm/components/bik-chatbot/components/ThinkingIndicator.d.ts +3 -0
- package/dist/esm/components/bik-chatbot/components/ThinkingIndicator.js +188 -0
- package/dist/esm/components/bik-chatbot/contexts/AIContext.d.ts +4 -0
- package/dist/esm/components/bik-chatbot/contexts/AIContext.js +1 -0
- package/dist/esm/components/bik-chatbot/index.d.ts +137 -0
- package/dist/esm/components/bik-chatbot/services/aiService.d.ts +30 -0
- package/dist/esm/components/bik-chatbot/services/aiService.js +1 -0
- package/dist/esm/components/bik-chatbot/services/callToChatbot.d.ts +6 -0
- package/dist/esm/components/bik-chatbot/services/callToChatbot.js +1 -0
- package/dist/esm/components/bik-chatbot/services/db.d.ts +6 -0
- package/dist/esm/components/bik-chatbot/services/db.js +1 -0
- package/dist/esm/components/bik-chatbot/services/useAIChat.d.ts +7 -0
- package/dist/esm/components/bik-chatbot/services/useAIChat.js +1 -0
- package/dist/esm/components/bik-chatbot/types/ai.d.ts +158 -0
- package/dist/esm/components/bik-chatbot/types/ai.js +1 -0
- package/dist/esm/components/bik-chatbot/types/chat.d.ts +34 -0
- package/dist/esm/components/bik-chatbot/types/chat.js +1 -0
- package/dist/esm/components/bik-chatbot/types/components.d.ts +130 -0
- package/dist/esm/components/bik-chatbot/types/index.d.ts +6 -0
- package/dist/esm/components/bik-chatbot/utils/guardrails.d.ts +6 -0
- package/dist/esm/components/bik-chatbot/utils/guardrails.js +1 -0
- package/dist/esm/components/bik-chatbot/utils/markdown.d.ts +1 -0
- package/dist/esm/components/bik-chatbot/utils/markdown.js +1 -0
- package/dist/esm/components/bik-chatbot-examples/AnalyticsAdvisor.d.ts +8 -0
- package/dist/esm/components/bik-chatbot-examples/ContentIdeasDemo.d.ts +12 -0
- package/dist/esm/components/bik-chatbot-examples/SilentModeDemo.d.ts +17 -0
- package/dist/esm/components/bik-chatbot-examples/SimpleChatbotDemo.d.ts +17 -0
- package/dist/esm/components/bik-chatbot-examples/SimpleJsonChatDemo.d.ts +16 -0
- package/dist/esm/components/bik-chatbot-examples/services/MockRequestExecutor.d.ts +17 -0
- package/dist/esm/components/bik-chatbot-examples/types.ts/examples.d.ts +61 -0
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +1 -1
- package/package.json +2 -3
- package/dist/cjs/components/feature-announcements/FeatureAnnouncement.types.d.ts +0 -27
- package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.d.ts +0 -14
- package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js +0 -1
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.d.ts +0 -13
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js +0 -1
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.d.ts +0 -13
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js +0 -1
- package/dist/cjs/components/feature-announcements/VideoModal.d.ts +0 -8
- package/dist/cjs/components/feature-announcements/VideoModal.js +0 -1
- package/dist/cjs/components/feature-announcements/index.d.ts +0 -6
- package/dist/cjs/components/feature-announcements/useFeatureAnnouncements.d.ts +0 -24
- package/dist/cjs/components/feature-announcements/useFeatureAnnouncements.js +0 -1
- package/dist/cjs/components/whats-new/WhatsNew.d.ts +0 -23
- package/dist/cjs/components/whats-new/WhatsNew.js +0 -1
- package/dist/cjs/components/whats-new/WhatsNew.styles.d.ts +0 -11
- package/dist/cjs/components/whats-new/WhatsNew.styles.js +0 -185
- package/dist/cjs/components/whats-new/WhatsNew.types.d.ts +0 -58
- package/dist/cjs/components/whats-new/WhatsNewButton.d.ts +0 -3
- package/dist/cjs/components/whats-new/WhatsNewButton.js +0 -1
- package/dist/cjs/components/whats-new/WhatsNewPanel.d.ts +0 -3
- package/dist/cjs/components/whats-new/WhatsNewPanel.js +0 -1
- package/dist/cjs/components/whats-new/WhatsNewProvider.d.ts +0 -4
- package/dist/cjs/components/whats-new/WhatsNewProvider.js +0 -1
- package/dist/cjs/components/whats-new/index.d.ts +0 -7
- package/dist/cjs/components/whats-new/useWhatsNew.d.ts +0 -9
- package/dist/cjs/components/whats-new/useWhatsNew.js +0 -1
- package/dist/esm/components/feature-announcements/FeatureAnnouncement.types.d.ts +0 -27
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.d.ts +0 -14
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js +0 -1
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.d.ts +0 -13
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.js +0 -1
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.d.ts +0 -13
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.js +0 -1
- package/dist/esm/components/feature-announcements/VideoModal.d.ts +0 -8
- package/dist/esm/components/feature-announcements/VideoModal.js +0 -1
- package/dist/esm/components/feature-announcements/index.d.ts +0 -6
- package/dist/esm/components/feature-announcements/useFeatureAnnouncements.d.ts +0 -24
- package/dist/esm/components/feature-announcements/useFeatureAnnouncements.js +0 -1
- package/dist/esm/components/whats-new/WhatsNew.d.ts +0 -23
- package/dist/esm/components/whats-new/WhatsNew.js +0 -1
- package/dist/esm/components/whats-new/WhatsNew.styles.d.ts +0 -11
- package/dist/esm/components/whats-new/WhatsNew.styles.js +0 -185
- package/dist/esm/components/whats-new/WhatsNew.types.d.ts +0 -58
- package/dist/esm/components/whats-new/WhatsNewButton.d.ts +0 -3
- package/dist/esm/components/whats-new/WhatsNewButton.js +0 -1
- package/dist/esm/components/whats-new/WhatsNewPanel.d.ts +0 -3
- package/dist/esm/components/whats-new/WhatsNewPanel.js +0 -1
- package/dist/esm/components/whats-new/WhatsNewProvider.d.ts +0 -4
- package/dist/esm/components/whats-new/WhatsNewProvider.js +0 -1
- package/dist/esm/components/whats-new/index.d.ts +0 -7
- package/dist/esm/components/whats-new/useWhatsNew.d.ts +0 -9
- package/dist/esm/components/whats-new/useWhatsNew.js +0 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import{j as e}from"../../../node_modules/react/jsx-runtime.js";import{useState as a,useEffect as t}from"react";import i,{keyframes as r}from"styled-components";const n=["Preparing to assist you...","Getting ready to brainstorm..."],s=[{symbol:"✨",text:"Get AI-powered ideas"},{symbol:"💬",text:"Ask me anything"}],o=r`
|
|
2
|
+
from {
|
|
3
|
+
opacity: 0;
|
|
4
|
+
transform: translateY(12px);
|
|
5
|
+
}
|
|
6
|
+
to {
|
|
7
|
+
opacity: 1;
|
|
8
|
+
transform: translateY(0);
|
|
9
|
+
}
|
|
10
|
+
`,d=r`
|
|
11
|
+
0%, 100% {
|
|
12
|
+
transform: scale(1);
|
|
13
|
+
opacity: 0.3;
|
|
14
|
+
}
|
|
15
|
+
50% {
|
|
16
|
+
transform: scale(1.4);
|
|
17
|
+
opacity: 1;
|
|
18
|
+
}
|
|
19
|
+
`,p=r`
|
|
20
|
+
from {
|
|
21
|
+
opacity: 0;
|
|
22
|
+
transform: translateX(-18px);
|
|
23
|
+
}
|
|
24
|
+
to {
|
|
25
|
+
opacity: 1;
|
|
26
|
+
transform: translateX(0);
|
|
27
|
+
}
|
|
28
|
+
`,l=i.div`
|
|
29
|
+
flex: 1;
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
justify-content: center;
|
|
33
|
+
padding: 24px;
|
|
34
|
+
min-height: 240px;
|
|
35
|
+
`,c=i.div`
|
|
36
|
+
text-align: center;
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-direction: column;
|
|
39
|
+
align-items: center;
|
|
40
|
+
gap: 24px;
|
|
41
|
+
max-width: 280px;
|
|
42
|
+
width: 100%;
|
|
43
|
+
`,x=i.div`
|
|
44
|
+
width: 76px;
|
|
45
|
+
height: 76px;
|
|
46
|
+
border-radius: 50%;
|
|
47
|
+
background: linear-gradient(
|
|
48
|
+
135deg,
|
|
49
|
+
rgba(255, 22, 106, 0.28) 0%,
|
|
50
|
+
rgba(123, 104, 238, 0.32) 100%
|
|
51
|
+
);
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
box-shadow: 0 22px 44px rgba(123, 104, 238, 0.22);
|
|
56
|
+
padding: 12px;
|
|
57
|
+
position: relative;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
|
|
60
|
+
&::after {
|
|
61
|
+
content: '';
|
|
62
|
+
position: absolute;
|
|
63
|
+
inset: 6px;
|
|
64
|
+
border-radius: 50%;
|
|
65
|
+
background: radial-gradient(
|
|
66
|
+
circle at 30% 30%,
|
|
67
|
+
rgba(255, 255, 255, 0.6),
|
|
68
|
+
transparent 70%
|
|
69
|
+
);
|
|
70
|
+
mix-blend-mode: screen;
|
|
71
|
+
}
|
|
72
|
+
`,f=r`
|
|
73
|
+
0% {
|
|
74
|
+
transform: scale(1);
|
|
75
|
+
filter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));
|
|
76
|
+
}
|
|
77
|
+
35% {
|
|
78
|
+
transform: scale(1.04);
|
|
79
|
+
filter: drop-shadow(0 10px 24px rgba(236, 72, 153, 0.32));
|
|
80
|
+
}
|
|
81
|
+
70% {
|
|
82
|
+
transform: scale(0.98);
|
|
83
|
+
filter: drop-shadow(0 4px 12px rgba(148, 163, 184, 0.18));
|
|
84
|
+
}
|
|
85
|
+
100% {
|
|
86
|
+
transform: scale(1);
|
|
87
|
+
filter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));
|
|
88
|
+
}
|
|
89
|
+
`,g=r`
|
|
90
|
+
0% {
|
|
91
|
+
transform: translateX(-120%);
|
|
92
|
+
opacity: 0;
|
|
93
|
+
}
|
|
94
|
+
30% {
|
|
95
|
+
opacity: 0.4;
|
|
96
|
+
}
|
|
97
|
+
60% {
|
|
98
|
+
transform: translateX(120%);
|
|
99
|
+
opacity: 0;
|
|
100
|
+
}
|
|
101
|
+
100% {
|
|
102
|
+
transform: translateX(120%);
|
|
103
|
+
opacity: 0;
|
|
104
|
+
}
|
|
105
|
+
`,m=i.div`
|
|
106
|
+
font-size: 14px;
|
|
107
|
+
color: #52586c;
|
|
108
|
+
line-height: 1.5;
|
|
109
|
+
min-height: 21px;
|
|
110
|
+
animation: ${o} 0.4s ease forwards;
|
|
111
|
+
`,b=i.div`
|
|
112
|
+
display: flex;
|
|
113
|
+
justify-content: center;
|
|
114
|
+
gap: 6px;
|
|
115
|
+
`,h=i.span`
|
|
116
|
+
width: 8px;
|
|
117
|
+
height: 8px;
|
|
118
|
+
border-radius: 50%;
|
|
119
|
+
background: linear-gradient(135deg, #f29cc9 0%, #b8a5f6 100%);
|
|
120
|
+
animation: ${d} 1.4s ease-in-out infinite;
|
|
121
|
+
animation-delay: ${e=>e.delay}s;
|
|
122
|
+
`,y=i.div`
|
|
123
|
+
display: flex;
|
|
124
|
+
flex-direction: column;
|
|
125
|
+
gap: 10px;
|
|
126
|
+
margin-top: 8px;
|
|
127
|
+
width: 100%;
|
|
128
|
+
`,u=i.div`
|
|
129
|
+
display: flex;
|
|
130
|
+
align-items: center;
|
|
131
|
+
gap: 12px;
|
|
132
|
+
background: linear-gradient(
|
|
133
|
+
135deg,
|
|
134
|
+
rgba(255, 255, 255, 0.92) 0%,
|
|
135
|
+
rgba(248, 246, 255, 0.96) 100%
|
|
136
|
+
);
|
|
137
|
+
border-radius: 12px;
|
|
138
|
+
padding: 12px;
|
|
139
|
+
box-shadow: inset 0 0 0 1px rgba(199, 210, 254, 0.3);
|
|
140
|
+
animation: ${p} 0.5s ease forwards;
|
|
141
|
+
animation-delay: ${e=>e.delay}s;
|
|
142
|
+
opacity: 0;
|
|
143
|
+
`,w=i.div`
|
|
144
|
+
width: 36px;
|
|
145
|
+
height: 36px;
|
|
146
|
+
border-radius: 10px;
|
|
147
|
+
background: linear-gradient(140deg, #ffffff 0%, #f7f3ff 100%);
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
justify-content: center;
|
|
151
|
+
box-shadow: 0 10px 20px rgba(197, 181, 255, 0.24);
|
|
152
|
+
font-size: 18px;
|
|
153
|
+
`,j=i.span`
|
|
154
|
+
font-size: 12px;
|
|
155
|
+
color: #5f6781;
|
|
156
|
+
text-align: left;
|
|
157
|
+
`,v=i.img`
|
|
158
|
+
width: 100%;
|
|
159
|
+
height: 100%;
|
|
160
|
+
object-fit: contain;
|
|
161
|
+
filter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));
|
|
162
|
+
animation: ${f} 2.6s ease-in-out infinite;
|
|
163
|
+
position: relative;
|
|
164
|
+
z-index: 1;
|
|
165
|
+
`,k=i.div`
|
|
166
|
+
position: absolute;
|
|
167
|
+
inset: 12px;
|
|
168
|
+
border-radius: 999px;
|
|
169
|
+
background: linear-gradient(
|
|
170
|
+
140deg,
|
|
171
|
+
rgba(255, 255, 255, 0.65),
|
|
172
|
+
rgba(255, 255, 255, 0)
|
|
173
|
+
);
|
|
174
|
+
animation: ${g} 2.6s ease-in-out infinite;
|
|
175
|
+
pointer-events: none;
|
|
176
|
+
z-index: 0;
|
|
177
|
+
`,$=i=>{let{className:r,style:o}=i;const[d,p]=a(0);return t((()=>{const e=window.setInterval((()=>{p((e=>(e+1)%n.length))}),2e3);return()=>window.clearInterval(e)}),[]),e.jsx(l,Object.assign({className:r,style:o},{children:e.jsxs(c,{children:[e.jsxs(x,{children:[e.jsx(k,{}),e.jsx(v,{src:"https://firebasestorage.googleapis.com/v0/b/bikayi-chat.appspot.com/o/images-uid%2Fcdf9c32d-6cf6-427f-b5c1-53cd424bfd5d?alt=media&token=740083c2-08ad-4295-a169-77c7d8ddaea9",alt:"AI thinking"})]}),e.jsx(m,{children:n[d]},d),e.jsx(b,{children:[0,1,2].map((a=>e.jsx(h,{delay:.22*a},a)))}),e.jsx(y,{children:s.map(((a,t)=>e.jsxs(u,Object.assign({delay:.4+.2*t},{children:[e.jsx(w,{children:a.symbol}),e.jsx(j,{children:a.text})]}),a.text)))})]})}))};export{$ as default};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChatWindowProps } from '../types';
|
|
3
|
+
export declare const CustomGradientText: import("styled-components").StyledComponent<"span", any, {
|
|
4
|
+
colors?: string | undefined;
|
|
5
|
+
angle?: number | undefined;
|
|
6
|
+
}, never>;
|
|
7
|
+
export type { ChatState } from '../types';
|
|
8
|
+
interface ChatWindowWithHeightProps extends ChatWindowProps {
|
|
9
|
+
chatWindowHeight?: string | number;
|
|
10
|
+
}
|
|
11
|
+
declare const ChatWindow: React.FC<ChatWindowWithHeightProps>;
|
|
12
|
+
export default ChatWindow;
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import{j as e}from"../../../node_modules/react/jsx-runtime.js";import t from"../../../assets/icons/Ai_event_generating.svg.js";import{useState as i,useRef as r,useEffect as n}from"react";import a from"styled-components";import{BodySecondary as o,BodyCaption as s}from"../../TypographyStyle.js";import{renderMarkdownLite as d}from"../utils/markdown.js";import l from"./ThinkingIndicator.js";const c=a.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
width: 100%;
|
|
5
|
+
min-width: 0;
|
|
6
|
+
min-height: 0;
|
|
7
|
+
height: 100%;
|
|
8
|
+
max-height: 100%;
|
|
9
|
+
background: white;
|
|
10
|
+
border-left: 1px solid #e5e7eb;
|
|
11
|
+
position: relative;
|
|
12
|
+
|
|
13
|
+
/* State-based styling */
|
|
14
|
+
${e=>{switch(e.chatState){case"conversation-starter":return"\n background: linear-gradient(180deg, #FFF6F9 0%, #FFFFFF 100%);\n ";case"thinking":return"\n background: linear-gradient(180deg, #F8F9FA 0%, #FFFFFF 100%);\n ";default:return"\n background: white;\n "}}}
|
|
15
|
+
`,x=a.div`
|
|
16
|
+
padding: 16px;
|
|
17
|
+
border-bottom: 1px solid #e5e7eb;
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: 8px;
|
|
21
|
+
background: white;
|
|
22
|
+
flex-shrink: 0;
|
|
23
|
+
|
|
24
|
+
.header-text {
|
|
25
|
+
font-size: 14px;
|
|
26
|
+
font-weight: 500;
|
|
27
|
+
color: #374151;
|
|
28
|
+
}
|
|
29
|
+
`,h=a.div`
|
|
30
|
+
flex: 1;
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
min-height: 0;
|
|
35
|
+
`,g=a.div`
|
|
36
|
+
flex: 1;
|
|
37
|
+
overflow-y: auto;
|
|
38
|
+
padding: 16px;
|
|
39
|
+
display: flex;
|
|
40
|
+
flex-direction: column;
|
|
41
|
+
gap: 16px;
|
|
42
|
+
background: #fafafa;
|
|
43
|
+
scroll-behavior: smooth;
|
|
44
|
+
min-height: 0;
|
|
45
|
+
|
|
46
|
+
/* Custom scrollbar */
|
|
47
|
+
&::-webkit-scrollbar {
|
|
48
|
+
width: 6px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&::-webkit-scrollbar-track {
|
|
52
|
+
background: #f1f1f1;
|
|
53
|
+
border-radius: 3px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&::-webkit-scrollbar-thumb {
|
|
57
|
+
background: #c1c1c1;
|
|
58
|
+
border-radius: 3px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&::-webkit-scrollbar-thumb:hover {
|
|
62
|
+
background: #a8a8a8;
|
|
63
|
+
}
|
|
64
|
+
`,p=a.div`
|
|
65
|
+
background: white;
|
|
66
|
+
border-radius: 12px;
|
|
67
|
+
padding: 16px;
|
|
68
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
69
|
+
border: 1px solid #e5e7eb;
|
|
70
|
+
`,b=a.div`
|
|
71
|
+
width: 100%;
|
|
72
|
+
height: 180px;
|
|
73
|
+
background: #f3f4f6;
|
|
74
|
+
border-radius: 8px;
|
|
75
|
+
display: flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
justify-content: center;
|
|
78
|
+
position: relative;
|
|
79
|
+
margin-bottom: 12px;
|
|
80
|
+
`,f=a.div`
|
|
81
|
+
width: 48px;
|
|
82
|
+
height: 48px;
|
|
83
|
+
background: rgba(0, 0, 0, 0.7);
|
|
84
|
+
border-radius: 50%;
|
|
85
|
+
display: flex;
|
|
86
|
+
align-items: center;
|
|
87
|
+
justify-content: center;
|
|
88
|
+
cursor: pointer;
|
|
89
|
+
transition: all 0.2s ease;
|
|
90
|
+
|
|
91
|
+
&:hover {
|
|
92
|
+
background: rgba(0, 0, 0, 0.8);
|
|
93
|
+
transform: scale(1.05);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
svg {
|
|
97
|
+
width: 16px;
|
|
98
|
+
height: 16px;
|
|
99
|
+
fill: white;
|
|
100
|
+
margin-left: 2px;
|
|
101
|
+
}
|
|
102
|
+
`,u=a.div`
|
|
103
|
+
font-size: 14px;
|
|
104
|
+
color: #374151;
|
|
105
|
+
line-height: 1.5;
|
|
106
|
+
`,m=a.div`
|
|
107
|
+
padding: 12px 16px;
|
|
108
|
+
border-radius: 16px;
|
|
109
|
+
font-size: 14px;
|
|
110
|
+
max-width: 80%;
|
|
111
|
+
white-space: pre-line;
|
|
112
|
+
word-wrap: break-word;
|
|
113
|
+
|
|
114
|
+
${e=>"user"===e.role?"\n background: linear-gradient(92.69deg, rgba(255, 230, 238, 0.5) 0.37%, rgba(255, 240, 231, 0.5) 100%);\n margin-left: auto;\n border-bottom-right-radius: 4px;\n \n & > div {\n background: linear-gradient(92.69deg, #FF166A 0.37%, #FB5F08 100%);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n display: inline-block;\n }\n ":"system"===e.role?"\n background: #f3f4f6;\n color: #6b7280;\n font-size: 12px;\n font-style: italic;\n text-align: center;\n margin: 0 auto;\n max-width: 90%;\n ":"\n background: white;\n color: #111827;\n border: 1px solid #e5e7eb;\n margin-right: auto;\n border-bottom-left-radius: 4px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n "}
|
|
115
|
+
`,k=a.div`
|
|
116
|
+
padding: 16px;
|
|
117
|
+
flex-shrink: 0;
|
|
118
|
+
`,v=a.div`
|
|
119
|
+
display: flex;
|
|
120
|
+
flex-direction: column;
|
|
121
|
+
gap: 8px;
|
|
122
|
+
align-items: flex-end;
|
|
123
|
+
`,w=a.button`
|
|
124
|
+
border: 1px dotted #febad2;
|
|
125
|
+
background: linear-gradient(
|
|
126
|
+
92.69deg,
|
|
127
|
+
rgba(255, 230, 238, 0.5) 0.37%,
|
|
128
|
+
rgba(255, 240, 231, 0.5) 100%
|
|
129
|
+
);
|
|
130
|
+
padding: 8px 16px;
|
|
131
|
+
border-radius: 8px;
|
|
132
|
+
font-size: 13px;
|
|
133
|
+
cursor: pointer;
|
|
134
|
+
transition: all 0.2s ease;
|
|
135
|
+
text-align: left;
|
|
136
|
+
max-width: 280px;
|
|
137
|
+
align-self: flex-end;
|
|
138
|
+
|
|
139
|
+
&:hover {
|
|
140
|
+
background: linear-gradient(
|
|
141
|
+
92.69deg,
|
|
142
|
+
rgba(255, 230, 238, 0.7) 0.37%,
|
|
143
|
+
rgba(255, 240, 231, 0.7) 100%
|
|
144
|
+
);
|
|
145
|
+
border-color: #f472b6;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
&:active {
|
|
149
|
+
transform: scale(0.98);
|
|
150
|
+
}
|
|
151
|
+
`,j=a.div`
|
|
152
|
+
padding: 16px;
|
|
153
|
+
background: white;
|
|
154
|
+
`,y=a.div`
|
|
155
|
+
display: flex;
|
|
156
|
+
flex-direction: column;
|
|
157
|
+
gap: 8px;
|
|
158
|
+
`,F=a.button`
|
|
159
|
+
background: #fef2f2;
|
|
160
|
+
color: #dc2626;
|
|
161
|
+
padding: 12px 16px;
|
|
162
|
+
border-radius: 8px;
|
|
163
|
+
font-size: 13px;
|
|
164
|
+
border: 1px solid #fecaca;
|
|
165
|
+
cursor: pointer;
|
|
166
|
+
transition: all 0.2s ease;
|
|
167
|
+
text-align: left;
|
|
168
|
+
|
|
169
|
+
&:hover {
|
|
170
|
+
background: #fee2e2;
|
|
171
|
+
border-color: #fca5a5;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
&:active {
|
|
175
|
+
transform: scale(0.98);
|
|
176
|
+
}
|
|
177
|
+
`,T=a.div`
|
|
178
|
+
padding: 16px;
|
|
179
|
+
flex-shrink: 0;
|
|
180
|
+
`,O=a.div`
|
|
181
|
+
position: relative;
|
|
182
|
+
display: flex;
|
|
183
|
+
width: 100%;
|
|
184
|
+
`,S=a.textarea`
|
|
185
|
+
flex: 1;
|
|
186
|
+
border: 1px solid ${e=>e.hasText?"#3b82f6":"#d1d5db"};
|
|
187
|
+
border-radius: 12px;
|
|
188
|
+
padding: 12px;
|
|
189
|
+
padding-right: 48px;
|
|
190
|
+
font-size: 14px;
|
|
191
|
+
outline: none;
|
|
192
|
+
color: #374151;
|
|
193
|
+
background: white;
|
|
194
|
+
box-shadow: 0px 2px 8px 0px #0000001f;
|
|
195
|
+
transition: all 0.2s ease;
|
|
196
|
+
resize: none;
|
|
197
|
+
min-height: 44px;
|
|
198
|
+
max-height: 120px;
|
|
199
|
+
font-family: inherit;
|
|
200
|
+
width: 100%;
|
|
201
|
+
|
|
202
|
+
&:focus {
|
|
203
|
+
border-color: #3b82f6;
|
|
204
|
+
background: white;
|
|
205
|
+
box-shadow: 0px 2px 8px 0px #0000001f, 0 0 0 3px rgba(59, 130, 246, 0.1);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
&::placeholder {
|
|
209
|
+
color: #9ca3af;
|
|
210
|
+
}
|
|
211
|
+
`,z=a.button`
|
|
212
|
+
position: absolute;
|
|
213
|
+
bottom: 10px;
|
|
214
|
+
right: 10px;
|
|
215
|
+
width: 36px;
|
|
216
|
+
height: 36px;
|
|
217
|
+
border-radius: 50%;
|
|
218
|
+
background: ${e=>e.hasText?"linear-gradient(135deg, #FF166A 0%, #FB5F08 100%)":"#e5e7eb"};
|
|
219
|
+
border: none;
|
|
220
|
+
display: flex;
|
|
221
|
+
align-items: center;
|
|
222
|
+
justify-content: center;
|
|
223
|
+
cursor: ${e=>e.disabled?"not-allowed":"pointer"};
|
|
224
|
+
transition: all 0.2s ease;
|
|
225
|
+
box-shadow: 0 2px 8px 0px #fa709a1c;
|
|
226
|
+
z-index: 2;
|
|
227
|
+
|
|
228
|
+
&:hover:not(:disabled) {
|
|
229
|
+
background: ${e=>e.hasText&&!e.disabled?"linear-gradient(135deg, #F857A6 0%, #FF5858 100%)":"#e5e7eb"};
|
|
230
|
+
transform: scale(1.05);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
&:active:not(:disabled) {
|
|
234
|
+
transform: scale(0.95);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
svg {
|
|
238
|
+
width: 16px;
|
|
239
|
+
height: 16px;
|
|
240
|
+
fill: white;
|
|
241
|
+
font-weight: bold;
|
|
242
|
+
}
|
|
243
|
+
`,C=a.span`
|
|
244
|
+
background: linear-gradient(
|
|
245
|
+
${e=>e.angle||92.69}deg,
|
|
246
|
+
${e=>e.colors||"#ff166a 0.37%, #fb5f08 100%"}
|
|
247
|
+
);
|
|
248
|
+
-webkit-background-clip: text;
|
|
249
|
+
-webkit-text-fill-color: transparent;
|
|
250
|
+
background-clip: text;
|
|
251
|
+
display: inline-block;
|
|
252
|
+
`,$=a=>{let{messages:$,onSend:A,header:B="Create with AI",placeholder:I="Discover the right event & launch campaigns for better conversions...",suggestions:M=["Top festivals for marketing","Top events this week?","Top August festivals near you"],iceBreakers:_,videoStarter:D,disabled:H=!1,isThinking:L=!1,onIceBreakerClick:W,chatState:K,chatWindowHeight:E,inputDisabled:N=!1}=a;const[P,V]=i(""),[q,G]=i(!1),[J,Q]=i(!1),R=r(null),U=r(null),X=q||L,Y=H||N,Z=K||(q||L?"thinking":J&&P.trim().length>0?"typing":0===$.length?"conversation-starter":$.length>0?"conversation":"default"),ee=()=>{!P.trim()||Y||X||(A(P),V(""),G(!0),setTimeout((()=>G(!1)),1500))},te=P.trim().length>0,ie=Y||X||!te;n((()=>{var e;null===(e=R.current)||void 0===e||e.scrollIntoView({behavior:"smooth"})}),[$,q,L]);const re=E||"100%";return e.jsxs(c,Object.assign({chatState:Z,style:{height:re}},{children:[e.jsxs(x,{children:[e.jsx(t,{height:24,width:24}),e.jsx("div",Object.assign({className:"header-text"},{children:B}))]}),e.jsxs(h,{children:[e.jsxs(g,{children:["conversation-starter"===Z&&D&&e.jsxs(p,{children:[e.jsx(b,{children:e.jsx(f,Object.assign({onClick:D.onPlay},{children:e.jsx("svg",Object.assign({viewBox:"0 0 24 24",fill:"currentColor"},{children:e.jsx("path",{d:"M8 5v14l11-7z"})}))}))}),e.jsxs(u,{children:[e.jsx(o,Object.assign({style:{fontWeight:500,marginBottom:"4px"}},{children:D.title})),e.jsx(s,{children:D.description})]})]}),$.map((t=>e.jsx(m,Object.assign({role:t.role},{children:"assistant"===t.role?e.jsx("div",{dangerouslySetInnerHTML:{__html:d(t.content)}}):e.jsx("div",Object.assign({style:{whiteSpace:"pre-wrap"}},{children:t.content}))}),t.id))),(q||L)&&e.jsx(l,{}),e.jsx("div",{ref:R})]}),_&&"conversation-starter"===Z&&e.jsx(k,{children:e.jsx(v,{children:_.map((t=>e.jsx(w,Object.assign({onClick:()=>{H||(null==W||W(t),A(t.text))}},{children:e.jsx(C,{children:t.text})}),t.id)))})}),!_&&M.length>0&&"default"===Z&&e.jsx(j,{children:e.jsx(y,{children:M.map((t=>e.jsx(F,Object.assign({onClick:()=>!H&&A(t)},{children:t}),t)))})}),e.jsx(T,{children:e.jsxs(O,{children:[e.jsx(S,{ref:U,value:P,onChange:e=>{if(Y)return;const t=e.target.value;V(t),Q(t.trim().length>0);const i=U.current;i&&(i.style.height="auto",i.style.height=`${Math.min(i.scrollHeight,117)}px`)},placeholder:I,onKeyDown:e=>{Y||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),!X&&P.trim()&&ee())},disabled:Y,hasText:te,chatState:Z}),e.jsx(z,Object.assign({onClick:ee,disabled:ie,hasText:te,"aria-label":"Send"},{children:e.jsxs("svg",Object.assign({viewBox:"0 0 24 24",width:"20",height:"20",stroke:"white",strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},{children:[e.jsx("path",{d:"M6 12h12"}),e.jsx("path",{d:"M12 6l6 6-6 6"})]}))}))]})})]})]}))};export{C as CustomGradientText,$ as default};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import{j as e}from"../../../node_modules/react/jsx-runtime.js";import{useState as t,useEffect as a}from"react";import i from"styled-components";const r=i.div`
|
|
2
|
+
background: #ffffff;
|
|
3
|
+
border: 1px solid ${e=>`${e.accent}33`};
|
|
4
|
+
padding: 16px 18px 20px;
|
|
5
|
+
border-radius: 16px;
|
|
6
|
+
border-bottom-left-radius: 6px;
|
|
7
|
+
width: clamp(260px, 70vw, 340px);
|
|
8
|
+
min-height: 140px;
|
|
9
|
+
margin-right: auto;
|
|
10
|
+
font-size: 14px;
|
|
11
|
+
color: #1f2937;
|
|
12
|
+
box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: flex-start;
|
|
15
|
+
gap: 14px;
|
|
16
|
+
position: relative;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
flex-shrink: 0;
|
|
19
|
+
|
|
20
|
+
&::after {
|
|
21
|
+
content: '';
|
|
22
|
+
position: absolute;
|
|
23
|
+
left: 18px;
|
|
24
|
+
right: 18px;
|
|
25
|
+
bottom: 10px;
|
|
26
|
+
height: 4px;
|
|
27
|
+
border-radius: 999px;
|
|
28
|
+
background: ${e=>e.gradient};
|
|
29
|
+
opacity: 0.35;
|
|
30
|
+
animation: glowPulse 2.4s ease-in-out infinite;
|
|
31
|
+
pointer-events: none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.icon-wrapper {
|
|
35
|
+
position: relative;
|
|
36
|
+
width: 44px;
|
|
37
|
+
height: 44px;
|
|
38
|
+
border-radius: 12px;
|
|
39
|
+
background: ${e=>e.gradient};
|
|
40
|
+
display: flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
box-shadow: 0 10px 25px ${e=>`${e.accent}26`};
|
|
44
|
+
animation: iconPulse 2.4s ease-in-out infinite;
|
|
45
|
+
flex-shrink: 0;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.icon-wrapper::after {
|
|
50
|
+
content: '';
|
|
51
|
+
position: absolute;
|
|
52
|
+
inset: 0;
|
|
53
|
+
border-radius: 12px;
|
|
54
|
+
background: radial-gradient(
|
|
55
|
+
circle at top left,
|
|
56
|
+
rgba(255, 255, 255, 0.7),
|
|
57
|
+
transparent 65%
|
|
58
|
+
);
|
|
59
|
+
mix-blend-mode: screen;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.icon-letter {
|
|
63
|
+
font-size: 18px;
|
|
64
|
+
font-weight: 700;
|
|
65
|
+
color: #ffffff;
|
|
66
|
+
letter-spacing: 0.02em;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.bubble-content {
|
|
70
|
+
display: flex;
|
|
71
|
+
flex-direction: column;
|
|
72
|
+
gap: 12px;
|
|
73
|
+
width: 100%;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.status-text {
|
|
77
|
+
font-weight: 500;
|
|
78
|
+
color: #1f2937;
|
|
79
|
+
line-height: 1.45;
|
|
80
|
+
animation: textFade 0.35s ease forwards;
|
|
81
|
+
min-height: 20px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.dots {
|
|
85
|
+
display: flex;
|
|
86
|
+
gap: 6px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.dot {
|
|
90
|
+
width: 6px;
|
|
91
|
+
height: 6px;
|
|
92
|
+
border-radius: 50%;
|
|
93
|
+
background: ${e=>e.accent};
|
|
94
|
+
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
|
|
95
|
+
animation: dotBounce 1.3s ease-in-out infinite;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.shimmer-group {
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-direction: column;
|
|
101
|
+
gap: 6px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.shimmer-line {
|
|
105
|
+
height: 6px;
|
|
106
|
+
border-radius: 999px;
|
|
107
|
+
background: rgba(148, 163, 184, 0.18);
|
|
108
|
+
position: relative;
|
|
109
|
+
overflow: hidden;
|
|
110
|
+
animation: shimmerAppear 0.4s ease forwards;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.shimmer-highlight {
|
|
114
|
+
position: absolute;
|
|
115
|
+
inset: 0;
|
|
116
|
+
background: linear-gradient(
|
|
117
|
+
90deg,
|
|
118
|
+
rgba(255, 255, 255, 0) 0%,
|
|
119
|
+
rgba(255, 255, 255, 0.75) 50%,
|
|
120
|
+
rgba(255, 255, 255, 0) 100%
|
|
121
|
+
);
|
|
122
|
+
transform: translateX(-100%);
|
|
123
|
+
animation: shimmerMove 1.8s linear infinite;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@keyframes iconPulse {
|
|
127
|
+
0%,
|
|
128
|
+
100% {
|
|
129
|
+
transform: scale(0.95) rotate(-3deg);
|
|
130
|
+
}
|
|
131
|
+
50% {
|
|
132
|
+
transform: scale(1.05) rotate(3deg);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@keyframes dotBounce {
|
|
137
|
+
0%,
|
|
138
|
+
100% {
|
|
139
|
+
transform: translateY(0) scale(1);
|
|
140
|
+
opacity: 0.35;
|
|
141
|
+
}
|
|
142
|
+
50% {
|
|
143
|
+
transform: translateY(-6px) scale(1.2);
|
|
144
|
+
opacity: 1;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@keyframes shimmerMove {
|
|
149
|
+
0% {
|
|
150
|
+
transform: translateX(-120%);
|
|
151
|
+
}
|
|
152
|
+
100% {
|
|
153
|
+
transform: translateX(140%);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@keyframes shimmerAppear {
|
|
158
|
+
from {
|
|
159
|
+
opacity: 0;
|
|
160
|
+
transform: translateY(2px);
|
|
161
|
+
}
|
|
162
|
+
to {
|
|
163
|
+
opacity: 1;
|
|
164
|
+
transform: translateY(0);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@keyframes glowPulse {
|
|
169
|
+
0%,
|
|
170
|
+
100% {
|
|
171
|
+
opacity: 0.2;
|
|
172
|
+
}
|
|
173
|
+
50% {
|
|
174
|
+
opacity: 0.55;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@keyframes textFade {
|
|
179
|
+
from {
|
|
180
|
+
opacity: 0;
|
|
181
|
+
transform: translateY(4px);
|
|
182
|
+
}
|
|
183
|
+
to {
|
|
184
|
+
opacity: 1;
|
|
185
|
+
transform: translateY(0);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
`,n=[{label:"A",text:"Analyzing your question...",gradient:"linear-gradient(135deg, #a855f7 0%, #7c3aed 100%)",accent:"#7c3aed"},{label:"C",text:"Crafting the perfect response...",gradient:"linear-gradient(135deg, #f97316 0%, #fb5f08 100%)",accent:"#fb5f08"},{label:"G",text:"Gathering insights...",gradient:"linear-gradient(135deg, #3b82f6 0%, #2563eb 100%)",accent:"#2563eb"}],s=()=>{const[i,s]=t(0);a((()=>{const e=window.setInterval((()=>{s((e=>(e+1)%n.length))}),1800);return()=>window.clearInterval(e)}),[]);const o=n[i];return e.jsxs(r,Object.assign({gradient:o.gradient,accent:o.accent,role:"status","aria-live":"polite"},{children:[e.jsx("div",Object.assign({className:"icon-wrapper"},{children:e.jsx("span",Object.assign({className:"icon-letter"},{children:o.label}))})),e.jsxs("div",Object.assign({className:"bubble-content"},{children:[e.jsx("div",Object.assign({className:"status-text"},{children:o.text})),e.jsx("div",Object.assign({className:"dots"},{children:[0,1,2,3,4].map((t=>e.jsx("span",{className:"dot",style:{animationDelay:.15*t+"s"}},t)))})),e.jsx("div",Object.assign({className:"shimmer-group"},{children:[60,80,45].map(((t,a)=>e.jsx("div",Object.assign({className:"shimmer-line",style:{width:`${t}%`,animationDelay:.25+.12*a+"s"}},{children:e.jsx("span",{className:"shimmer-highlight"})}),t)))}))]}))]}))};export{s as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{j as o}from"../../../node_modules/react/jsx-runtime.js";import{useState as s,useRef as t,useEffect as n,useCallback as r,useContext as i,createContext as a}from"react";import{useAIChat as l}from"../services/useAIChat.js";import{DEFAULT_MODEL as d,ALLOWED_MODELS as c}from"../types/ai.js";import{createExecutorApiAdapter as u}from"../services/callToChatbot.js";const m=a(null),p=i=>{let{children:a,systemPrompt:p,systemId:f,functions:v,tools:g,functionHandler:y,onMessageReceived:I,displayInUI:h,maxToolCalls:x,maxTokens:j,requestExecutor:A,baseUrl:C,endpointPath:P,responseFormat:b,conversationId:w="default-session",customModel:q,onSystemReady:E}=i;const[R,M]=s(null),[T,U]=s(!0),[F,k]=s(null),L=t(null);n((()=>p?A&&C?void k(null):(k("Chatbot authentication not configured: RequestExecutor and baseUrl are required"),void U(!1)):(k("systemPrompt is required for generic mode"),void U(!1))),[p,A,C]);const $=r((()=>e(void 0,void 0,void 0,(function*(){try{U(!0),k(null);const e=q||d;if(!c.includes(e))throw new Error(`Unsupported model: ${q||"default"}. Allowed models are: ${c.join(", ")}`);M({id:f||"generic",name:f?`${f} `:"Generic AI Assistant",model:e,systemPrompt:p,functions:v,tools:g})}catch(e){const o=(null==e?void 0:e.message)||"Failed to create AI system";k(o)}finally{U(!1)}}))),[q,p,f,v]);n((()=>{p&&$()}),[$]),n((()=>{R&&E&&R.id!==L.current&&(L.current=R.id,E(R)),R||(L.current=null)}),[R]);const{messages:_,conversation:H,sendMessage:z,isApiCallInProgress:G}=l({system:R||{id:"loading",name:"Loading...",model:d,systemPrompt:"Loading...",functions:[]},conversationId:w,skipInitialization:!R,customFunctions:v,functionHandler:y,responseFormat:b,onMessageReceived:I,displayInUI:h,maxToolCalls:x,maxTokens:j,apiAdapter:A&&C?u(A,C,P||void 0):()=>{throw new Error("Chatbot authentication not configured: RequestExecutor is required")}}),O={isReady:!!R&&!T,isLoading:T,isApiCallInProgress:G,system:R,messages:_,conversation:H,sendMessage:z,error:F};return o.jsx(m.Provider,Object.assign({value:O},{children:a}))},f=()=>{const e=i(m);if(!e)throw new Error("useAIContext must be used within an AIProvider");return e};export{p as AIProvider,f as useAIContext};
|