flowdit-chatbot-library 1.0.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.
Files changed (80) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +218 -0
  3. package/dist/assets/data/types/index.d.ts +2 -0
  4. package/dist/assets/data/types/index.d.ts.map +1 -0
  5. package/dist/assets/data/types/index.js +2 -0
  6. package/dist/assets/data/types/index.js.map +1 -0
  7. package/dist/assets/data/types/redux/action.d.ts +8 -0
  8. package/dist/assets/data/types/redux/action.d.ts.map +1 -0
  9. package/dist/assets/data/types/redux/action.js +9 -0
  10. package/dist/assets/data/types/redux/action.js.map +1 -0
  11. package/dist/assets/data/types/redux/index.d.ts +2 -0
  12. package/dist/assets/data/types/redux/index.d.ts.map +1 -0
  13. package/dist/assets/data/types/redux/index.js +2 -0
  14. package/dist/assets/data/types/redux/index.js.map +1 -0
  15. package/dist/assets/data/types/vm/chatbot.d.ts +5 -0
  16. package/dist/assets/data/types/vm/chatbot.d.ts.map +1 -0
  17. package/dist/assets/data/types/vm/chatbot.js +8 -0
  18. package/dist/assets/data/types/vm/chatbot.js.map +1 -0
  19. package/dist/assets/data/types/vm/index.d.ts +2 -0
  20. package/dist/assets/data/types/vm/index.d.ts.map +1 -0
  21. package/dist/assets/data/types/vm/index.js +2 -0
  22. package/dist/assets/data/types/vm/index.js.map +1 -0
  23. package/dist/index.d.ts +14 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +20 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/redux/Provider.d.ts +11 -0
  28. package/dist/redux/Provider.d.ts.map +1 -0
  29. package/dist/redux/Provider.js +12 -0
  30. package/dist/redux/Provider.js.map +1 -0
  31. package/dist/redux/actions/index.d.ts +8 -0
  32. package/dist/redux/actions/index.d.ts.map +1 -0
  33. package/dist/redux/actions/index.js +73 -0
  34. package/dist/redux/actions/index.js.map +1 -0
  35. package/dist/redux/hooks.d.ts +6 -0
  36. package/dist/redux/hooks.d.ts.map +1 -0
  37. package/dist/redux/hooks.js +27 -0
  38. package/dist/redux/hooks.js.map +1 -0
  39. package/dist/redux/reducers/actions/general.d.ts +7 -0
  40. package/dist/redux/reducers/actions/general.d.ts.map +1 -0
  41. package/dist/redux/reducers/actions/general.js +16 -0
  42. package/dist/redux/reducers/actions/general.js.map +1 -0
  43. package/dist/redux/reducers/actions/index.d.ts +5 -0
  44. package/dist/redux/reducers/actions/index.d.ts.map +1 -0
  45. package/dist/redux/reducers/actions/index.js +8 -0
  46. package/dist/redux/reducers/actions/index.js.map +1 -0
  47. package/dist/redux/reducers/index.d.ts +4 -0
  48. package/dist/redux/reducers/index.d.ts.map +1 -0
  49. package/dist/redux/reducers/index.js +15 -0
  50. package/dist/redux/reducers/index.js.map +1 -0
  51. package/dist/redux/store.d.ts +11 -0
  52. package/dist/redux/store.d.ts.map +1 -0
  53. package/dist/redux/store.js +20 -0
  54. package/dist/redux/store.js.map +1 -0
  55. package/dist/styles.css +434 -0
  56. package/dist/utilities/API.d.ts +17 -0
  57. package/dist/utilities/API.d.ts.map +1 -0
  58. package/dist/utilities/API.js +71 -0
  59. package/dist/utilities/API.js.map +1 -0
  60. package/dist/utilities/external-tools.d.ts +19 -0
  61. package/dist/utilities/external-tools.d.ts.map +1 -0
  62. package/dist/utilities/external-tools.js +27 -0
  63. package/dist/utilities/external-tools.js.map +1 -0
  64. package/dist/views/fullscreen/index.d.ts +20 -0
  65. package/dist/views/fullscreen/index.d.ts.map +1 -0
  66. package/dist/views/fullscreen/index.functions.d.ts +38 -0
  67. package/dist/views/fullscreen/index.functions.d.ts.map +1 -0
  68. package/dist/views/fullscreen/index.functions.js +484 -0
  69. package/dist/views/fullscreen/index.functions.js.map +1 -0
  70. package/dist/views/fullscreen/index.js +569 -0
  71. package/dist/views/fullscreen/index.js.map +1 -0
  72. package/dist/views/tools/ChecklistPreview.d.ts +4 -0
  73. package/dist/views/tools/ChecklistPreview.d.ts.map +1 -0
  74. package/dist/views/tools/ChecklistPreview.js +29 -0
  75. package/dist/views/tools/ChecklistPreview.js.map +1 -0
  76. package/dist/views/tools/index.d.ts +6 -0
  77. package/dist/views/tools/index.d.ts.map +1 -0
  78. package/dist/views/tools/index.js +8 -0
  79. package/dist/views/tools/index.js.map +1 -0
  80. package/package.json +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../redux/reducers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEjC,MAAM,YAAY,GAAiB,IAAI,YAAY,EAAE,CAAA;AAKrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAsB,YAAY,EAAE,MAAqB,EAAgB,EAAE;IACxG,oEAAoE;IACpE,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;QAChF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAA0B,CAA8B,CAAA;QACrF,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAC7C,uDAAuD;YACvD,OAAO,OAAO,CAAC,KAAK,EAAE,MAAgC,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { Store, UnknownAction } from 'redux';
2
+ import { ChatbotStore } from '../assets/data/types/vm';
3
+ /**
4
+ * Get or create the internal Redux store
5
+ */
6
+ export declare const getStore: () => Store<ChatbotStore, UnknownAction>;
7
+ /**
8
+ * Reset the store (useful for testing)
9
+ */
10
+ export declare const resetStore: () => void;
11
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../redux/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAKtD;;GAEG;AACH,eAAO,MAAM,QAAQ,QAAO,KAAK,CAAC,YAAY,EAAE,aAAa,CAK5D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAEtB,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { createStore } from 'redux';
2
+ import { chatbotReducer } from './reducers';
3
+ // Create the internal Redux store
4
+ let store = null;
5
+ /**
6
+ * Get or create the internal Redux store
7
+ */
8
+ export const getStore = () => {
9
+ if (!store) {
10
+ store = createStore(chatbotReducer);
11
+ }
12
+ return store;
13
+ };
14
+ /**
15
+ * Reset the store (useful for testing)
16
+ */
17
+ export const resetStore = () => {
18
+ store = null;
19
+ };
20
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../redux/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG3C,kCAAkC;AAClC,IAAI,KAAK,GAA8C,IAAI,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAuC,EAAE;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,WAAW,CAAC,cAAc,CAAuC,CAAA;IAC3E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,KAAK,GAAG,IAAI,CAAA;AACd,CAAC,CAAA"}
@@ -0,0 +1,434 @@
1
+ .chat-gpt-interface {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
5
+ background-color: #343541;
6
+ font-family: "Inter", system-ui, -apple-system, sans-serif;
7
+ color: #ECECF1;
8
+ overflow: hidden;
9
+ }
10
+ .chat-gpt-interface .chat-scroll-area {
11
+ flex: 1;
12
+ overflow-y: auto;
13
+ padding-bottom: 20px;
14
+ scroll-behavior: smooth;
15
+ display: flex;
16
+ flex-direction: column;
17
+ }
18
+ .chat-gpt-interface .chat-scroll-area::-webkit-scrollbar {
19
+ width: 8px;
20
+ }
21
+ .chat-gpt-interface .chat-scroll-area::-webkit-scrollbar-track {
22
+ background: transparent;
23
+ }
24
+ .chat-gpt-interface .chat-scroll-area::-webkit-scrollbar-thumb {
25
+ background-color: rgba(255, 255, 255, 0.2);
26
+ border-radius: 4px;
27
+ }
28
+ .chat-gpt-interface .chat-scroll-area .empty-state-container {
29
+ flex: 1;
30
+ display: flex;
31
+ flex-direction: column;
32
+ align-items: center;
33
+ justify-content: center;
34
+ padding: 0 20px;
35
+ margin-bottom: 150px;
36
+ }
37
+ .chat-gpt-interface .chat-scroll-area .empty-state-container .empty-state-content {
38
+ display: flex;
39
+ flex-direction: column;
40
+ align-items: center;
41
+ max-width: 600px;
42
+ width: 100%;
43
+ }
44
+ .chat-gpt-interface .chat-scroll-area .empty-state-container .empty-state-content .logo-placeholder {
45
+ background-color: #40414F;
46
+ width: 72px;
47
+ height: 72px;
48
+ border-radius: 50%;
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ margin-bottom: 24px;
53
+ }
54
+ .chat-gpt-interface .chat-scroll-area .empty-state-container .empty-state-content .logo-placeholder svg {
55
+ width: 40px;
56
+ height: 40px;
57
+ color: #ECECF1;
58
+ }
59
+ .chat-gpt-interface .chat-scroll-area .empty-state-container .empty-state-content h2 {
60
+ font-weight: 600;
61
+ margin-bottom: 40px;
62
+ color: #ECECF1;
63
+ }
64
+ .chat-gpt-interface .chat-scroll-area .empty-state-container .empty-state-content .capabilities-grid {
65
+ display: grid;
66
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
67
+ gap: 16px;
68
+ width: 100%;
69
+ }
70
+ .chat-gpt-interface .chat-scroll-area .empty-state-container .empty-state-content .capabilities-grid .capability-card {
71
+ background-color: rgba(255, 255, 255, 0.05);
72
+ border: 1px solid rgba(255, 255, 255, 0.1);
73
+ border-radius: 12px;
74
+ padding: 12px 16px;
75
+ text-align: center;
76
+ font-size: 14px;
77
+ color: #D1D5DB;
78
+ cursor: pointer;
79
+ transition: background-color 0.2s;
80
+ }
81
+ .chat-gpt-interface .chat-scroll-area .empty-state-container .empty-state-content .capabilities-grid .capability-card:hover {
82
+ background-color: rgba(255, 255, 255, 0.1);
83
+ }
84
+ .chat-gpt-interface .message-row {
85
+ width: 100%;
86
+ padding: 24px 0;
87
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
88
+ }
89
+ .chat-gpt-interface .message-row.user {
90
+ background-color: #343541;
91
+ }
92
+ .chat-gpt-interface .message-row.assistant {
93
+ background-color: #444654;
94
+ }
95
+ .chat-gpt-interface .message-row .message-content-container {
96
+ display: flex;
97
+ max-width: 800px;
98
+ margin: 0 auto;
99
+ padding: 0 16px;
100
+ gap: 24px;
101
+ }
102
+ .chat-gpt-interface .message-row .message-content-container .avatar {
103
+ width: 36px;
104
+ height: 36px;
105
+ border-radius: 4px;
106
+ flex-shrink: 0;
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ font-size: 20px;
111
+ }
112
+ .chat-gpt-interface .message-row .message-content-container .avatar.user-avatar {
113
+ background-color: #5436DA;
114
+ color: white;
115
+ }
116
+ .chat-gpt-interface .message-row .message-content-container .avatar.assistant-avatar {
117
+ background-color: #19C37D;
118
+ color: white;
119
+ }
120
+ .chat-gpt-interface .message-row .message-content-container .avatar img,
121
+ .chat-gpt-interface .message-row .message-content-container .avatar svg {
122
+ width: 24px;
123
+ height: 24px;
124
+ }
125
+ .chat-gpt-interface .message-row .message-content-container .text-content {
126
+ flex: 1;
127
+ line-height: 1.6;
128
+ font-size: 16px;
129
+ color: #D1D5DB;
130
+ min-width: 0;
131
+ text-align: start;
132
+ }
133
+ .chat-gpt-interface .message-row .message-content-container .text-content p {
134
+ margin-bottom: 1em;
135
+ }
136
+ .chat-gpt-interface .message-row .message-content-container .text-content p:last-child {
137
+ margin-bottom: 0;
138
+ }
139
+ .chat-gpt-interface .message-row .message-content-container .text-content h1,
140
+ .chat-gpt-interface .message-row .message-content-container .text-content h2,
141
+ .chat-gpt-interface .message-row .message-content-container .text-content h3,
142
+ .chat-gpt-interface .message-row .message-content-container .text-content h4,
143
+ .chat-gpt-interface .message-row .message-content-container .text-content h5,
144
+ .chat-gpt-interface .message-row .message-content-container .text-content h6 {
145
+ color: #ECECF1;
146
+ margin-top: 1em;
147
+ margin-bottom: 0.5em;
148
+ font-weight: 600;
149
+ }
150
+ .chat-gpt-interface .message-row .message-content-container .text-content ul,
151
+ .chat-gpt-interface .message-row .message-content-container .text-content ol {
152
+ margin-bottom: 1em;
153
+ padding-left: 1.5em;
154
+ }
155
+ .chat-gpt-interface .message-row .message-content-container .text-content li {
156
+ margin-bottom: 0.5em;
157
+ }
158
+ .chat-gpt-interface .message-row .message-content-container .text-content code {
159
+ background: rgba(255, 255, 255, 0.1);
160
+ padding: 2px 4px;
161
+ border-radius: 4px;
162
+ font-family: "Monaco", "Consolas", monospace;
163
+ font-size: 0.9em;
164
+ }
165
+ .chat-gpt-interface .message-row .message-content-container .text-content pre {
166
+ background: #000;
167
+ padding: 16px;
168
+ border-radius: 6px;
169
+ overflow-x: auto;
170
+ margin: 1em 0;
171
+ border: 1px solid rgba(255, 255, 255, 0.1);
172
+ }
173
+ .chat-gpt-interface .message-row .message-content-container .text-content pre code {
174
+ background: transparent;
175
+ padding: 0;
176
+ border: none;
177
+ color: #E0E0E0;
178
+ }
179
+ .chat-gpt-interface .input-area-container {
180
+ background-image: linear-gradient(180deg, rgba(53, 53, 65, 0), #353541 20%);
181
+ background-color: #353541;
182
+ padding: 20px 0 30px;
183
+ z-index: 10;
184
+ position: relative;
185
+ }
186
+ .chat-gpt-interface .input-area-container .scroll-bottom-btn {
187
+ position: absolute;
188
+ top: -50px;
189
+ left: 50%;
190
+ transform: translateX(-50%);
191
+ width: 32px;
192
+ height: 32px;
193
+ border-radius: 50%;
194
+ background-color: #40414F;
195
+ border: 1px solid rgba(255, 255, 255, 0.1);
196
+ color: #ECECF1;
197
+ display: flex;
198
+ align-items: center;
199
+ justify-content: center;
200
+ cursor: pointer;
201
+ z-index: 100;
202
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
203
+ transition: all 0.2s;
204
+ }
205
+ .chat-gpt-interface .input-area-container .scroll-bottom-btn:hover {
206
+ background-color: #50515F;
207
+ transform: translateX(-50%) translateY(-2px);
208
+ }
209
+ .chat-gpt-interface .input-area-container .scroll-bottom-btn svg {
210
+ width: 16px;
211
+ height: 16px;
212
+ }
213
+ .chat-gpt-interface .input-area-container .new-chat-floater {
214
+ position: absolute;
215
+ top: -40px;
216
+ right: 20px;
217
+ z-index: 100;
218
+ }
219
+ .chat-gpt-interface .input-area-container .new-chat-floater .new-chat-btn {
220
+ background-color: #444654;
221
+ border: 1px solid rgba(255, 255, 255, 0.1);
222
+ color: #ECECF1;
223
+ border-radius: 8px;
224
+ padding: 6px 12px;
225
+ font-size: 13px;
226
+ display: flex;
227
+ align-items: center;
228
+ gap: 8px;
229
+ cursor: pointer;
230
+ transition: all 0.2s;
231
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
232
+ }
233
+ .chat-gpt-interface .input-area-container .new-chat-floater .new-chat-btn:hover {
234
+ background-color: #50515F;
235
+ }
236
+ .chat-gpt-interface .input-area-container .new-chat-floater .new-chat-btn svg {
237
+ width: 14px;
238
+ height: 14px;
239
+ }
240
+ .chat-gpt-interface .input-area-container .input-wrapper {
241
+ max-width: 850px;
242
+ margin: 0 auto;
243
+ position: relative;
244
+ padding: 0 16px;
245
+ }
246
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design {
247
+ position: relative;
248
+ background-color: #2F2F2F;
249
+ border: 1px solid rgba(255, 255, 255, 0.1);
250
+ border-radius: 12px;
251
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
252
+ display: flex;
253
+ flex-direction: column;
254
+ padding: 10px 12px;
255
+ transition: border-color 0.2s;
256
+ }
257
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design:focus-within {
258
+ border-color: rgba(255, 255, 255, 0.3);
259
+ }
260
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-top-row {
261
+ width: 100%;
262
+ margin-bottom: 6px;
263
+ }
264
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-top-row textarea {
265
+ width: 100%;
266
+ background: transparent;
267
+ border: none;
268
+ color: #ECECF1;
269
+ padding: 0;
270
+ resize: none;
271
+ outline: none;
272
+ font-family: inherit;
273
+ font-size: 15px;
274
+ line-height: 1.5;
275
+ min-height: 24px;
276
+ max-height: 300px;
277
+ overflow-y: hidden;
278
+ }
279
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-top-row textarea::placeholder {
280
+ color: #8E8EA0;
281
+ font-weight: 400;
282
+ font-size: 13px;
283
+ }
284
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row {
285
+ display: flex;
286
+ align-items: center;
287
+ justify-content: space-between;
288
+ }
289
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls {
290
+ display: flex;
291
+ align-items: center;
292
+ gap: 8px;
293
+ }
294
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section {
295
+ position: relative;
296
+ }
297
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .control-btn.plus-btn {
298
+ width: 30px;
299
+ height: 30px;
300
+ border-radius: 50%;
301
+ background: transparent;
302
+ border: none;
303
+ color: #ACACBE;
304
+ display: flex;
305
+ align-items: center;
306
+ justify-content: center;
307
+ cursor: pointer;
308
+ transition: all 0.2s;
309
+ }
310
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .control-btn.plus-btn:hover, .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .control-btn.plus-btn.active {
311
+ background-color: #40414F;
312
+ color: #ECECF1;
313
+ }
314
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .control-btn.plus-btn svg {
315
+ width: 20px;
316
+ height: 20px;
317
+ stroke-width: 2px;
318
+ }
319
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .tools-menu {
320
+ position: absolute;
321
+ bottom: 100%;
322
+ left: 0;
323
+ margin-bottom: 12px;
324
+ background-color: #202123;
325
+ border: 1px solid rgba(255, 255, 255, 0.1);
326
+ border-radius: 8px;
327
+ width: 180px;
328
+ padding: 4px;
329
+ display: flex;
330
+ flex-direction: column;
331
+ gap: 2px;
332
+ opacity: 0;
333
+ transform: translateY(10px) scale(0.95);
334
+ pointer-events: none;
335
+ transition: all 0.1s;
336
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
337
+ z-index: 50;
338
+ }
339
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .tools-menu.show {
340
+ opacity: 1;
341
+ transform: translateY(0) scale(1);
342
+ pointer-events: auto;
343
+ }
344
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .tools-menu .tool-option {
345
+ display: flex;
346
+ align-items: center;
347
+ gap: 10px;
348
+ padding: 8px 10px;
349
+ border-radius: 4px;
350
+ cursor: pointer;
351
+ }
352
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .tools-menu .tool-option:hover {
353
+ background-color: #343541;
354
+ }
355
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .tools-menu .tool-option .icon-box {
356
+ display: flex;
357
+ align-items: center;
358
+ justify-content: center;
359
+ color: #ACACBE;
360
+ }
361
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .tools-menu .tool-option .icon-box svg {
362
+ width: 16px;
363
+ height: 16px;
364
+ }
365
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .tools-section .tools-menu .tool-option .text .title {
366
+ font-size: 13px;
367
+ color: #ECECF1;
368
+ }
369
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .mode-pill-btn {
370
+ display: flex;
371
+ align-items: center;
372
+ gap: 6px;
373
+ padding: 6px 10px;
374
+ border-radius: 8px;
375
+ background: transparent;
376
+ border: none;
377
+ color: #ACACBE;
378
+ font-size: 13px;
379
+ font-weight: 500;
380
+ cursor: pointer;
381
+ transition: all 0.2s;
382
+ }
383
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .mode-pill-btn .chevron {
384
+ display: flex;
385
+ align-items: center;
386
+ }
387
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .mode-pill-btn .chevron svg {
388
+ width: 12px;
389
+ height: 12px;
390
+ opacity: 0.7;
391
+ }
392
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .mode-pill-btn:hover {
393
+ background-color: #40414F;
394
+ color: #ECECF1;
395
+ }
396
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .left-controls .mode-pill-btn.active-mode {
397
+ color: #ECECF1;
398
+ font-weight: 500;
399
+ }
400
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .right-controls {
401
+ display: flex;
402
+ align-items: center;
403
+ }
404
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .right-controls .send-btn-circle {
405
+ width: 32px;
406
+ height: 32px;
407
+ border-radius: 50%;
408
+ background-color: #3C3C3C;
409
+ border: none;
410
+ color: #121212;
411
+ display: flex;
412
+ align-items: center;
413
+ justify-content: center;
414
+ cursor: default;
415
+ transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
416
+ }
417
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .right-controls .send-btn-circle.active {
418
+ background-color: #FFFFFF;
419
+ color: #000;
420
+ cursor: pointer;
421
+ }
422
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .right-controls .send-btn-circle:disabled {
423
+ opacity: 1;
424
+ }
425
+ .chat-gpt-interface .input-area-container .input-wrapper .input-box.user-specific-design .input-bottom-row .right-controls .send-btn-circle svg {
426
+ width: 16px;
427
+ height: 16px;
428
+ }
429
+ .chat-gpt-interface .input-area-container .footer-text {
430
+ text-align: center;
431
+ font-size: 11px;
432
+ color: #9CA3AF;
433
+ padding-top: 12px;
434
+ }
@@ -0,0 +1,17 @@
1
+ import { AxiosInstance } from 'axios';
2
+ export interface ChatbotAPIConfig {
3
+ baseURL?: string;
4
+ token?: string;
5
+ timeout?: number;
6
+ headers?: Record<string, string>;
7
+ withCredentials?: boolean;
8
+ }
9
+ declare let API: AxiosInstance | undefined;
10
+ /**
11
+ * Initialize the API instance with configuration
12
+ * This should be called before using the chatbot components
13
+ */
14
+ export declare const initializeAPI: (config?: ChatbotAPIConfig) => AxiosInstance;
15
+ export declare const getAPI: () => AxiosInstance;
16
+ export { API };
17
+ //# sourceMappingURL=API.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.d.ts","sourceRoot":"","sources":["../../utilities/API.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAGhE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AA4BD,QAAA,IAAI,GAAG,EAAE,aAAa,GAAG,SAAS,CAAA;AAElC;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,SAAQ,gBAAqB,kBA2B1D,CAAA;AAQD,eAAO,MAAM,MAAM,QAAO,aAKzB,CAAA;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -0,0 +1,71 @@
1
+ import axios from 'axios';
2
+ // Helper function to get environment variables (works with Vite, React, Next.js)
3
+ const getEnvVar = (key) => {
4
+ // Vite uses import.meta.env
5
+ try {
6
+ // @ts-ignore - import.meta may not be available in all environments
7
+ if (typeof import.meta !== 'undefined' && import.meta.env) {
8
+ // @ts-ignore
9
+ return import.meta.env[key] || '';
10
+ }
11
+ }
12
+ catch (e) {
13
+ // import.meta not available, fall through to process.env
14
+ }
15
+ // Node.js/React uses process.env (wrap in try-catch for browser safety)
16
+ try {
17
+ // @ts-ignore - process may not be available in browser
18
+ if (typeof process !== 'undefined' && process.env) {
19
+ // @ts-ignore
20
+ return process.env[key] || '';
21
+ }
22
+ }
23
+ catch (e) {
24
+ // process not available in browser, ignore
25
+ }
26
+ return '';
27
+ };
28
+ // Default API instance - can be configured by the consuming application
29
+ let API;
30
+ /**
31
+ * Initialize the API instance with configuration
32
+ * This should be called before using the chatbot components
33
+ */
34
+ export const initializeAPI = (config = {}) => {
35
+ const baseURL = config.baseURL ||
36
+ getEnvVar('VITE_CHAT_AI_ASSISTANT_API_URL') ||
37
+ getEnvVar('REACT_APP_CHAT_AI_ASSISTANT_API_URL') ||
38
+ getEnvVar('NEXT_PUBLIC_CHAT_AI_ASSISTANT_API_URL') ||
39
+ "";
40
+ const token = config.token ||
41
+ getEnvVar('VITE_CHAT_AI_TOKEN') ||
42
+ getEnvVar('REACT_APP_CHAT_AI_TOKEN') ||
43
+ "";
44
+ const baseConfig = {
45
+ baseURL,
46
+ headers: {
47
+ "Access-Control-Allow-Origin": "*",
48
+ "Access-Control-Allow-Headers": "*",
49
+ "Content-Type": "application/json",
50
+ ...(token && { Authorization: `Bearer ${token}` }),
51
+ ...config.headers
52
+ },
53
+ withCredentials: config.withCredentials ?? false,
54
+ timeout: config.timeout ?? 5 * 60 * 1000
55
+ };
56
+ API = axios.create(baseConfig);
57
+ return API;
58
+ };
59
+ // Initialize with defaults if not already initialized
60
+ if (!API) {
61
+ API = initializeAPI();
62
+ }
63
+ // Helper function to get API instance (ensures it's defined)
64
+ export const getAPI = () => {
65
+ if (!API) {
66
+ API = initializeAPI();
67
+ }
68
+ return API;
69
+ };
70
+ export { API };
71
+ //# sourceMappingURL=API.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../../utilities/API.ts"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAA;AAWhE,iFAAiF;AACjF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE;IACxC,4BAA4B;IAC5B,IAAI,CAAC;QACH,oEAAoE;QACpE,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1D,aAAa;YACb,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,yDAAyD;IAC3D,CAAC;IACD,wEAAwE;IACxE,IAAI,CAAC;QACH,uDAAuD;QACvD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,aAAa;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,2CAA2C;IAC7C,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,wEAAwE;AACxE,IAAI,GAA8B,CAAA;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAA2B,EAAE,EAAE,EAAE;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QAC5B,SAAS,CAAC,gCAAgC,CAAC;QAC3C,SAAS,CAAC,qCAAqC,CAAC;QAChD,SAAS,CAAC,uCAAuC,CAAC;QAClD,EAAE,CAAA;IAEJ,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;QACxB,SAAS,CAAC,oBAAoB,CAAC;QAC/B,SAAS,CAAC,yBAAyB,CAAC;QACpC,EAAE,CAAA;IAEJ,MAAM,UAAU,GAAuB;QACrC,OAAO;QACP,OAAO,EAAE;YACP,6BAA6B,EAAE,GAAG;YAClC,8BAA8B,EAAE,GAAG;YACnC,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,KAAK,IAAI,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;YAClD,GAAG,MAAM,CAAC,OAAO;SAClB;QACD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,KAAK;QAChD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;KACzC,CAAA;IAED,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,sDAAsD;AACtD,IAAI,CAAC,GAAG,EAAE,CAAC;IACT,GAAG,GAAG,aAAa,EAAE,CAAA;AACvB,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,MAAM,GAAG,GAAkB,EAAE;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,aAAa,EAAE,CAAA;IACvB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ export type ToolData = any;
2
+ export type ToolHandler = (data: ToolData) => void;
3
+ /**
4
+ * Set the Redux store reference for tool actions (for backward compatibility)
5
+ * Now uses internal store, but kept for API compatibility
6
+ * @deprecated No longer needed - library uses internal Redux store
7
+ */
8
+ export declare const setStore: (store?: {
9
+ dispatch: (action: {
10
+ type: string;
11
+ payload?: any;
12
+ }) => void;
13
+ }) => void;
14
+ /**
15
+ * Open checklist preview modal
16
+ * Uses the internal Redux store
17
+ */
18
+ export declare const openChecklistPreview: (data: any) => void;
19
+ //# sourceMappingURL=external-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-tools.d.ts","sourceRoot":"","sources":["../../utilities/external-tools.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAA;AAG1B,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;AAElD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ;IAAE,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAA;CAAE,SAG/F,CAAA;AAED;;;GAGG;AAEH,eAAO,MAAM,oBAAoB,GAAI,MAAM,GAAG,SAY7C,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { getStore } from "../redux/store";
2
+ /**
3
+ * Set the Redux store reference for tool actions (for backward compatibility)
4
+ * Now uses internal store, but kept for API compatibility
5
+ * @deprecated No longer needed - library uses internal Redux store
6
+ */
7
+ export const setStore = (store) => {
8
+ // No-op - library now uses internal store
9
+ console.warn('setStore() is deprecated. The library now uses its own internal Redux store.');
10
+ };
11
+ /**
12
+ * Open checklist preview modal
13
+ * Uses the internal Redux store
14
+ */
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ export const openChecklistPreview = (data) => {
17
+ console.log('Open checklist preview', data);
18
+ const store = getStore();
19
+ // Default implementation - users can override this
20
+ if (data && typeof data === 'object') {
21
+ // store.dispatch({
22
+ // type: CHATBOT_STORE_ACTION_TYPES.OPEN_PREVIEW_MODAL,
23
+ // payload: data
24
+ // })
25
+ }
26
+ };
27
+ //# sourceMappingURL=external-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-tools.js","sourceRoot":"","sources":["../../utilities/external-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AASzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAuE,EAAE,EAAE;IAClG,0CAA0C;IAC1C,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAA;AAC9F,CAAC,CAAA;AAED;;;GAGG;AACH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAS,EAAE,EAAE;IAChD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA;IAE3C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAExB,mDAAmD;IACnD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,oBAAoB;QACpB,0DAA0D;QAC1D,mBAAmB;QACnB,KAAK;IACP,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ type Role = "user" | "assistant";
3
+ type ToolCall = {
4
+ tool: string;
5
+ status: string;
6
+ data?: any;
7
+ };
8
+ type ChatMessage = {
9
+ id: string;
10
+ role: Role;
11
+ content: string;
12
+ status?: string;
13
+ toolCalls?: ToolCall[];
14
+ pendingToolCalls?: ToolCall[];
15
+ isStreaming?: boolean;
16
+ animationComplete?: boolean;
17
+ };
18
+ export type { ChatMessage, ToolCall };
19
+ export declare const FullScreenChat: React.FC;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../views/fullscreen/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAU1D,KAAK,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjC,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAA;AAiBD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;AAMrC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAguBlC,CAAA"}